Merge branch 'devel' of mmka.chem.univ.gda.pl:unres into devel
authorAdam Liwo <adam@matrix.chem.cornell.edu>
Mon, 18 Jun 2012 14:08:46 +0000 (10:08 -0400)
committerAdam Liwo <adam@matrix.chem.cornell.edu>
Mon, 18 Jun 2012 14:08:46 +0000 (10:08 -0400)
merge adam->devel (2nd attempt)
Conflicts:
.gitignore
bin/unres/MD/unres_ifort_MPICH_GAB.exe
examples/unres/MD/ff_gab/1L2Y_minim.inp
source/cluster/wham/src/DIMENSIONS.COMPAR
source/cluster/wham/src/include_unres/COMMON.INTERACT
source/cluster/wham/src/include_unres/COMMON.SBRIDGE
source/cluster/wham/src/include_unres/COMMON.TORSION
source/unres/src_MD/cinfo.f
source/unres/src_MIN/Makefile
source/xdrfpdb/src-M/xdrf
source/xdrfpdb/src/xdrf
source/xdrfpdb/src/xdrf2ang.f
source/xdrfpdb/src/xdrf2pdb-m.F

307 files changed:
.gitignore
CMakeLists.txt
PARAM/1igd.cart~ [deleted file]
PARAM/sccor_pdb_shelly.dat [new file with mode: 0644]
bin/unres/MIN/unres_min_gfortran.exe [new file with mode: 0755]
ctest/1LE1_mremd_MD000.cx [new file with mode: 0644]
ctest/ala10MD.cx [new file with mode: 0644]
examples/unres/MD/ff_gab/1L2Y_minim.inp
examples/unres/MD/ff_gab/fort.28 [deleted file]
examples/unres/MD/ff_gab/unres.pbs
examples/unres/MIN/1L2Y.pdb [new file with mode: 0644]
examples/unres/MIN/1L2Y_min.inp [new file with mode: 0644]
examples/unres/MIN/1L2Y_min.intin [new file with mode: 0644]
examples/unres/MIN/1L2Y_min.out_GB [new file with mode: 0644]
examples/unres/MIN/1L2Y_min_GB.int [new file with mode: 0644]
examples/unres/MIN/1L2Y_min_GB.mol2 [new file with mode: 0644]
examples/unres/MIN/1L2Y_min_GB.pdb [new file with mode: 0644]
examples/unres/MIN/1L2Y_min_GB.stat [new file with mode: 0644]
examples/unres/MIN/log [new file with mode: 0644]
examples/unres/MIN/unres.csh [new file with mode: 0755]
source/CMakeLists.txt [deleted file]
source/cluster/unres/src/CMakeLists.txt [new file with mode: 0644]
source/cluster/unres/src/hc.f
source/cluster/wham/src-M/CMakeLists.txt [new file with mode: 0644]
source/cluster/wham/src-M/diff [deleted file]
source/cluster/wham/src-M/energy_p_new.F
source/cluster/wham/src-M/hc.f
source/cluster/wham/src-M/map [deleted file]
source/cluster/wham/src-M/proc_proc.c
source/cluster/wham/src/CMakeLists.txt [new file with mode: 0644]
source/cluster/wham/src/DIMENSIONS.COMPAR
source/cluster/wham/src/diff [deleted file]
source/cluster/wham/src/energy_p_new.F
source/cluster/wham/src/hc.f
source/cluster/wham/src/include_unres/COMMON.INTERACT
source/cluster/wham/src/include_unres/COMMON.SBRIDGE
source/cluster/wham/src/include_unres/COMMON.TORSION
source/cluster/wham/src/map [deleted file]
source/cluster/wham/src/proc_proc.c
source/lib/xdrf-Argonne/Makefile [new file with mode: 0644]
source/lib/xdrf-Argonne/Makefile_jubl [new file with mode: 0644]
source/lib/xdrf-Argonne/Makefile_linux [new file with mode: 0644]
source/lib/xdrf-Argonne/RS6K.m4 [new file with mode: 0644]
source/lib/xdrf-Argonne/ftocstr.c [new file with mode: 0644]
source/lib/xdrf-Argonne/libxdrf.m4 [new file with mode: 0644]
source/lib/xdrf-Argonne/libxdrf.m4.org [new file with mode: 0644]
source/lib/xdrf-Argonne/types.h [new file with mode: 0644]
source/lib/xdrf-Argonne/underscore.m4 [new file with mode: 0644]
source/lib/xdrf-Argonne/xdr.c [new file with mode: 0644]
source/lib/xdrf-Argonne/xdr.h [new file with mode: 0644]
source/lib/xdrf-Argonne/xdr_array.c [new file with mode: 0644]
source/lib/xdrf-Argonne/xdr_float.c [new file with mode: 0644]
source/lib/xdrf-Argonne/xdr_stdio.c [new file with mode: 0644]
source/lib/xdrf-Argonne/xdrf.h [new file with mode: 0644]
source/lib/xdrf/CMakeLists.txt [new file with mode: 0644]
source/lib/xdrf/Makefile [new file with mode: 0644]
source/lib/xdrf/Makefile_jubl [new file with mode: 0644]
source/lib/xdrf/Makefile_linux [new file with mode: 0644]
source/lib/xdrf/RS6K.m4 [new file with mode: 0644]
source/lib/xdrf/ftocstr.c [new file with mode: 0644]
source/lib/xdrf/libxdrf.m4 [new file with mode: 0644]
source/lib/xdrf/types.h [new file with mode: 0644]
source/lib/xdrf/underscore.m4 [new file with mode: 0644]
source/lib/xdrf/xdr.c [new file with mode: 0644]
source/lib/xdrf/xdr.h [new file with mode: 0644]
source/lib/xdrf/xdr_array.c [new file with mode: 0644]
source/lib/xdrf/xdr_float.c [new file with mode: 0644]
source/lib/xdrf/xdr_stdio.c [new file with mode: 0644]
source/lib/xdrf/xdrf.h [new file with mode: 0644]
source/lib/xdrf_em64/Makefile [new file with mode: 0644]
source/lib/xdrf_em64/Makefile_jubl [new file with mode: 0644]
source/lib/xdrf_em64/Makefile_linux [new file with mode: 0644]
source/lib/xdrf_em64/RS6K.m4 [new file with mode: 0644]
source/lib/xdrf_em64/ftocstr.c [new file with mode: 0644]
source/lib/xdrf_em64/libxdrf.m4 [new file with mode: 0644]
source/lib/xdrf_em64/libxdrf.m4.org [new file with mode: 0644]
source/lib/xdrf_em64/types.h [new file with mode: 0644]
source/lib/xdrf_em64/underscore.m4 [new file with mode: 0644]
source/lib/xdrf_em64/xdr.c [new file with mode: 0644]
source/lib/xdrf_em64/xdr.h [new file with mode: 0644]
source/lib/xdrf_em64/xdr_array.c [new file with mode: 0644]
source/lib/xdrf_em64/xdr_float.c [new file with mode: 0644]
source/lib/xdrf_em64/xdr_stdio.c [new file with mode: 0644]
source/lib/xdrf_em64/xdrf.h [new file with mode: 0644]
source/unres/CMakeLists.txt [deleted file]
source/unres/src_CSA/CMakeLists.txt [new file with mode: 0644]
source/unres/src_CSA/cinfo.f.new [deleted file]
source/unres/src_CSA/compinfo.c
source/unres/src_CSA/energy_p_new_barrier.F
source/unres/src_MD-M/.symbolsizes.txt.swp [deleted file]
source/unres/src_MD-M/CMakeLists.txt [new file with mode: 0644]
source/unres/src_MD-M/a [deleted file]
source/unres/src_MD-M/b [deleted file]
source/unres/src_MD-M/compinfo [deleted file]
source/unres/src_MD-M/compinfo.c
source/unres/src_MD-M/dif [deleted file]
source/unres/src_MD-M/energy_p_new_barrier.F
source/unres/src_MD-M/log [deleted file]
source/unres/src_MD-M/proc_proc.c
source/unres/src_MD-M/together.F
source/unres/src_MD-M/unres.F
source/unres/src_MD-M/xdrf-Argonne/Makefile [deleted file]
source/unres/src_MD-M/xdrf-Argonne/Makefile_jubl [deleted file]
source/unres/src_MD-M/xdrf-Argonne/Makefile_linux [deleted file]
source/unres/src_MD-M/xdrf-Argonne/Makefile~ [deleted file]
source/unres/src_MD-M/xdrf-Argonne/RS6K.m4 [deleted file]
source/unres/src_MD-M/xdrf-Argonne/ftocstr.c [deleted file]
source/unres/src_MD-M/xdrf-Argonne/ftocstr.o [deleted file]
source/unres/src_MD-M/xdrf-Argonne/libxdrf.a [deleted file]
source/unres/src_MD-M/xdrf-Argonne/libxdrf.m4 [deleted file]
source/unres/src_MD-M/xdrf-Argonne/libxdrf.m4.org [deleted file]
source/unres/src_MD-M/xdrf-Argonne/libxdrf.m4~ [deleted file]
source/unres/src_MD-M/xdrf-Argonne/libxdrf.o [deleted file]
source/unres/src_MD-M/xdrf-Argonne/types.h [deleted file]
source/unres/src_MD-M/xdrf-Argonne/underscore.m4 [deleted file]
source/unres/src_MD-M/xdrf-Argonne/xdr.c [deleted file]
source/unres/src_MD-M/xdrf-Argonne/xdr.h [deleted file]
source/unres/src_MD-M/xdrf-Argonne/xdr.o [deleted file]
source/unres/src_MD-M/xdrf-Argonne/xdr_array.c [deleted file]
source/unres/src_MD-M/xdrf-Argonne/xdr_array.o [deleted file]
source/unres/src_MD-M/xdrf-Argonne/xdr_float.c [deleted file]
source/unres/src_MD-M/xdrf-Argonne/xdr_float.o [deleted file]
source/unres/src_MD-M/xdrf-Argonne/xdr_stdio.c [deleted file]
source/unres/src_MD-M/xdrf-Argonne/xdr_stdio.o [deleted file]
source/unres/src_MD-M/xdrf-Argonne/xdrf.h [deleted file]
source/unres/src_MD-M/xdrf/Makefile [deleted file]
source/unres/src_MD-M/xdrf/Makefile_jubl [deleted file]
source/unres/src_MD-M/xdrf/Makefile_linux [deleted file]
source/unres/src_MD-M/xdrf/Makefile~ [deleted file]
source/unres/src_MD-M/xdrf/RS6K.m4 [deleted file]
source/unres/src_MD-M/xdrf/ftocstr.c [deleted file]
source/unres/src_MD-M/xdrf/ftocstr.o [deleted file]
source/unres/src_MD-M/xdrf/libxdrf.a [deleted file]
source/unres/src_MD-M/xdrf/libxdrf.m4 [deleted file]
source/unres/src_MD-M/xdrf/libxdrf.m4.org [deleted file]
source/unres/src_MD-M/xdrf/libxdrf.m4~ [deleted file]
source/unres/src_MD-M/xdrf/libxdrf.o [deleted file]
source/unres/src_MD-M/xdrf/types.h [deleted file]
source/unres/src_MD-M/xdrf/underscore.m4 [deleted file]
source/unres/src_MD-M/xdrf/xdr.c [deleted file]
source/unres/src_MD-M/xdrf/xdr.h [deleted file]
source/unres/src_MD-M/xdrf/xdr_array.c [deleted file]
source/unres/src_MD-M/xdrf/xdr_float.c [deleted file]
source/unres/src_MD-M/xdrf/xdr_stdio.c [deleted file]
source/unres/src_MD-M/xdrf/xdrf.h [deleted file]
source/unres/src_MD-M/xdrf2pdb/Makefile [deleted file]
source/unres/src_MD-M/xdrf2pdb/Makefile_intrepid [deleted file]
source/unres/src_MD-M/xdrf2pdb/Makefile_jump [deleted file]
source/unres/src_MD-M/xdrf2pdb/Makefile_linux [deleted file]
source/unres/src_MD-M/xdrf2pdb/Makefile_linux~ [deleted file]
source/unres/src_MD-M/xdrf2pdb/geomout.F [deleted file]
source/unres/src_MD-M/xdrf2pdb/geomout.o [deleted file]
source/unres/src_MD-M/xdrf2pdb/misc.f [deleted file]
source/unres/src_MD-M/xdrf2pdb/misc.o [deleted file]
source/unres/src_MD-M/xdrf2pdb/nazwy.f [deleted file]
source/unres/src_MD-M/xdrf2pdb/nazwy.o [deleted file]
source/unres/src_MD-M/xdrf2pdb/rescode.f [deleted file]
source/unres/src_MD-M/xdrf2pdb/rescode.o [deleted file]
source/unres/src_MD-M/xdrf2pdb/xdrf2pdb.f [deleted file]
source/unres/src_MD-M/xdrf2pdb/xdrf2pdb.o [deleted file]
source/unres/src_MD-M/xdrf2pdb/xdrf2x.F [deleted file]
source/unres/src_MD-M/xdrf2pdb/xdrf2x.o [deleted file]
source/unres/src_MD-M/xdrf2pdb/xdrf_local/Makefile [deleted file]
source/unres/src_MD-M/xdrf2pdb/xdrf_local/ftocstr.c [deleted file]
source/unres/src_MD-M/xdrf2pdb/xdrf_local/libxdrf.m4 [deleted file]
source/unres/src_MD-M/xdrf2pdb/xdrf_local/libxdrf.m4.org [deleted file]
source/unres/src_MD-M/xdrf2pdb/xdrf_local/underscore.m4 [deleted file]
source/unres/src_MD-M/xdrf2pdb/xdrf_local/xdrf.h [deleted file]
source/unres/src_MD-M/xdrf_em64/Makefile [deleted file]
source/unres/src_MD-M/xdrf_em64/Makefile_jubl [deleted file]
source/unres/src_MD-M/xdrf_em64/Makefile_linux [deleted file]
source/unres/src_MD-M/xdrf_em64/Makefile~ [deleted file]
source/unres/src_MD-M/xdrf_em64/RS6K.m4 [deleted file]
source/unres/src_MD-M/xdrf_em64/ftocstr.c [deleted file]
source/unres/src_MD-M/xdrf_em64/ftocstr.o [deleted file]
source/unres/src_MD-M/xdrf_em64/libxdrf.a [deleted file]
source/unres/src_MD-M/xdrf_em64/libxdrf.m4 [deleted file]
source/unres/src_MD-M/xdrf_em64/libxdrf.m4.org [deleted file]
source/unres/src_MD-M/xdrf_em64/libxdrf.m4~ [deleted file]
source/unres/src_MD-M/xdrf_em64/libxdrf.o [deleted file]
source/unres/src_MD-M/xdrf_em64/types.h [deleted file]
source/unres/src_MD-M/xdrf_em64/underscore.m4 [deleted file]
source/unres/src_MD-M/xdrf_em64/xdr.c [deleted file]
source/unres/src_MD-M/xdrf_em64/xdr.h [deleted file]
source/unres/src_MD-M/xdrf_em64/xdr_array.c [deleted file]
source/unres/src_MD-M/xdrf_em64/xdr_float.c [deleted file]
source/unres/src_MD-M/xdrf_em64/xdr_stdio.c [deleted file]
source/unres/src_MD-M/xdrf_em64/xdrf.h [deleted file]
source/unres/src_MD/CMakeLists.txt
source/unres/src_MD/COMMON.CHAIN
source/unres/src_MD/COMMON.LOCAL
source/unres/src_MD/COMMON.SCCOR
source/unres/src_MD/COMMON.VAR
source/unres/src_MD/DIMENSIONS
source/unres/src_MD/Makefile_MPICH_ifort
source/unres/src_MD/checkder_p.F
source/unres/src_MD/cinfo.f
source/unres/src_MD/compinfo.c
source/unres/src_MD/dihed_cons.F
source/unres/src_MD/energy_p_new_barrier.F
source/unres/src_MD/gradient_p.F
source/unres/src_MD/initialize_p.F
source/unres/src_MD/int_to_cart.f
source/unres/src_MD/intcartderiv.F
source/unres/src_MD/map.f
source/unres/src_MD/parmread.F
source/unres/src_MD/readrtns.F
source/unres/src_MD/tmptmp
source/unres/src_MD/xdrf/Makefile [deleted file]
source/unres/src_MD/xdrf/Makefile_jubl [deleted file]
source/unres/src_MD/xdrf/Makefile_linux [deleted file]
source/unres/src_MD/xdrf/RS6K.m4 [deleted file]
source/unres/src_MD/xdrf/ftocstr.c [deleted file]
source/unres/src_MD/xdrf/libxdrf.m4 [deleted file]
source/unres/src_MD/xdrf/types.h [deleted file]
source/unres/src_MD/xdrf/underscore.m4 [deleted file]
source/unres/src_MD/xdrf/xdr.c [deleted file]
source/unres/src_MD/xdrf/xdr.h [deleted file]
source/unres/src_MD/xdrf/xdr_array.c [deleted file]
source/unres/src_MD/xdrf/xdr_float.c [deleted file]
source/unres/src_MD/xdrf/xdr_stdio.c [deleted file]
source/unres/src_MD/xdrf/xdrf.h [deleted file]
source/unres/src_MIN/CMakeLists.txt [new file with mode: 0644]
source/unres/src_MIN/Makefile_gfortran
source/unres/src_MIN/cinfo.f.new [deleted file]
source/unres/src_MIN/energy_p_new_barrier.F
source/wham/src-M/CMakeLists.txt [new file with mode: 0644]
source/wham/src-M/compinfo [deleted file]
source/wham/src-M/compinfo.c
source/wham/src-M/differ [deleted file]
source/wham/src-M/energy_p_new.F
source/wham/src-M/proc_proc.c
source/wham/src-M/xdrf.org/Makefile [deleted file]
source/wham/src-M/xdrf.org/RS6K.m4 [deleted file]
source/wham/src-M/xdrf.org/features.h [deleted file]
source/wham/src-M/xdrf.org/ftocstr.c [deleted file]
source/wham/src-M/xdrf.org/libxdrf.c [deleted file]
source/wham/src-M/xdrf.org/libxdrf.m4 [deleted file]
source/wham/src-M/xdrf.org/libxdrf.m4.org [deleted file]
source/wham/src-M/xdrf.org/types.h [deleted file]
source/wham/src-M/xdrf.org/underscore.m4 [deleted file]
source/wham/src-M/xdrf.org/xdr.c [deleted file]
source/wham/src-M/xdrf.org/xdr.h [deleted file]
source/wham/src-M/xdrf.org/xdr.o [deleted file]
source/wham/src-M/xdrf.org/xdr_array.c [deleted file]
source/wham/src-M/xdrf.org/xdr_array.o [deleted file]
source/wham/src-M/xdrf.org/xdr_float.c [deleted file]
source/wham/src-M/xdrf.org/xdr_float.o [deleted file]
source/wham/src-M/xdrf.org/xdr_stdio.c [deleted file]
source/wham/src-M/xdrf.org/xdr_stdio.o [deleted file]
source/wham/src-M/xdrf.org/xdrf.h [deleted file]
source/wham/src-M/xdrf/Makefile [deleted file]
source/wham/src-M/xdrf/Makefile~ [deleted file]
source/wham/src-M/xdrf/ftocstr.c [deleted file]
source/wham/src-M/xdrf/ftocstr.o [deleted file]
source/wham/src-M/xdrf/libxdrf.a [deleted file]
source/wham/src-M/xdrf/libxdrf.m4 [deleted file]
source/wham/src-M/xdrf/libxdrf.m4.org [deleted file]
source/wham/src-M/xdrf/libxdrf.m4~ [deleted file]
source/wham/src-M/xdrf/libxdrf.o [deleted file]
source/wham/src-M/xdrf/underscore.m4 [deleted file]
source/wham/src-M/xdrf/xdrf.h [deleted file]
source/wham/src/.readrtns.F.swp [deleted file]
source/wham/src/CMakeLists.txt [new file with mode: 0644]
source/wham/src/compinfo.c
source/wham/src/energy_p_new.F
source/wham/src/err [deleted file]
source/wham/src/log [deleted file]
source/wham/src/proc_proc.c
source/wham/src/tmptmp [deleted file]
source/wham/src/xdrf.org/Makefile [deleted file]
source/wham/src/xdrf.org/RS6K.m4 [deleted file]
source/wham/src/xdrf.org/features.h [deleted file]
source/wham/src/xdrf.org/ftocstr.c [deleted file]
source/wham/src/xdrf.org/libxdrf.c [deleted file]
source/wham/src/xdrf.org/libxdrf.m4 [deleted file]
source/wham/src/xdrf.org/libxdrf.m4.org [deleted file]
source/wham/src/xdrf.org/types.h [deleted file]
source/wham/src/xdrf.org/underscore.m4 [deleted file]
source/wham/src/xdrf.org/xdr.c [deleted file]
source/wham/src/xdrf.org/xdr.h [deleted file]
source/wham/src/xdrf.org/xdr.o [deleted file]
source/wham/src/xdrf.org/xdr_array.c [deleted file]
source/wham/src/xdrf.org/xdr_array.o [deleted file]
source/wham/src/xdrf.org/xdr_float.c [deleted file]
source/wham/src/xdrf.org/xdr_float.o [deleted file]
source/wham/src/xdrf.org/xdr_stdio.c [deleted file]
source/wham/src/xdrf.org/xdr_stdio.o [deleted file]
source/wham/src/xdrf.org/xdrf.h [deleted file]
source/wham/src/xdrf/Makefile [deleted file]
source/wham/src/xdrf/Makefile~ [deleted file]
source/wham/src/xdrf/ftocstr.c [deleted file]
source/wham/src/xdrf/libxdrf.m4 [deleted file]
source/wham/src/xdrf/libxdrf.m4.org [deleted file]
source/wham/src/xdrf/libxdrf.m4~ [deleted file]
source/wham/src/xdrf/underscore.m4 [deleted file]
source/wham/src/xdrf/xdrf.h [deleted file]
source/xdrfpdb/src-M/CMakeLists.txt [new file with mode: 0644]
source/xdrfpdb/src-M/xdrf2pdb-m.F
source/xdrfpdb/src-M/xdrf2pdb1.f [deleted file]
source/xdrfpdb/src/CMakeLists.txt [new file with mode: 0644]
source/xdrfpdb/src/Makefile
source/xdrfpdb/src/xdrf2ang.f
source/xdrfpdb/src/xdrf2pdb-m.F
source/xdrfpdb/src/xdrf2pdb1.f [deleted file]
source/xdrfpdb/src/xdrf2x.F
source/xdrfpdb/src/xdrf2x1.f [deleted file]

index 45bb905..4c3f4f2 100644 (file)
@@ -1,4 +1,24 @@
+<<<<<<< HEAD
 *.[oa] 
 *~
 *.swp
 *.[eo][0-9][0-9][0-9][0-9]*
+=======
+# ignore compiled stuff
+*.[oa]
+
+# ignore texteditors
+*.swp
+*~
+
+
+# ignore build dir
+build/
+
+# ignored dirs form adasko
+gradcheck/
+mapcheck/
+run/
+sympcheck/
+
+>>>>>>> aebadf9023e437f497f92dfcf2303c16f60917c1
index 631ddb6..5180752 100644 (file)
 # CMake project file for UNRES 
 #
 cmake_minimum_required(VERSION 2.8)
+   
+project(UNRESPACK Fortran C)
 
-project(unrespack C Fortran)
 set(UNRES_MAJOR 3)
 set(UNRES_MINOR 1)
 set(UNRES_PATCH 0)
-set(UNRES_VERSION ${SIMPLE_MAJOR}.${SIMPLE_MINOR}.${SIMPLE_PATCH})
+set(UNRES_VERSION ${UNRES_MAJOR}.${UNRES_MINOR}.${UNRES_PATCH})
+#======================================
+# CTest stuff
+#======================================
+
+include(CTest)
+enable_testing()
+# Set makefile verbose on
+set( CMAKE_VERBOSE_MAKEFILE 1 )
 
-enable_language (Fortran)
+#======================================
+# Fortran compilers stuff
+#======================================
+# Get the compiler name
+get_filename_component (Fortran_COMPILER_NAME ${CMAKE_Fortran_COMPILER} NAME)
 
+# Altough cmake enables you to set some compiler definitions it seems by default they are ignored.                 
+# This is a workaround to pass compiler definitions (preprocesor flags) to fortran compilers like ifort
+SET(CMAKE_Fortran_COMPILE_OBJECT "<CMAKE_Fortran_COMPILER>  ${CMAKE_START_TEMP_FILE} <FLAGS> <DEFINES> -c <SOURCE> -o <OBJECT> ${CMAKE_END_TEMP_FILE}")
+#set(CPPFLAGS "-DPROCOR -DLINUX -DPGI -DUNRES -DISNAN -DMP -DMPI -DSPLITELE -DLANGO -DCRYST_BOND -DCRYST_THETA -DCRYST_SC" )
+#add_definitions( ${CPPFLAGS} ) 
+
+   
 # make sure that the default is a RELEASE
 if (NOT CMAKE_BUILD_TYPE)
-  set (CMAKE_BUILD_TYPE RELEASE CACHE STRING
-      "Choose the type of build, options are: None Debug Release."
-      FORCE)
+  set (CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build, options are: None Debug Release." FORCE)
+  set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "None" "Debug" "Release" )
 endif (NOT CMAKE_BUILD_TYPE)
+   
+#=======================================  
+# Set the varous build variables 
+#=======================================
 
-
-# Set the force field
+# Set force field
 if (NOT UNRES_FF)
-  set(UNRES_FF "GAB" "E0LL2Y" CACHE STRING "Choose the force field, options are: GAB E0LL2Y " )
-  #message ( "Please set the Force field (UNRES_FF) to : GAB, 0ELE" )
+  set(UNRES_MD_FF "GAB" CACHE STRING "Choose the force field, options are: GAB E0LL2Y" )
+  set_property(CACHE UNRES_MD_FF PROPERTY STRINGS "GAB" "E0LL2Y")
 endif (NOT UNRES_FF)
 
-add_subdirectory(source)
+# Set CSA version force field
+if (NOT UNRES_CSA_FF)
+  set(UNRES_CSA_FF "4P" CACHE STRING "Choose the CSA version force field, options are: CASP3 ALPHA BETA ALPHABETA CASP5 3P 4P" )
+  set_property(CACHE UNRES_CSA_FF PROPERTY STRINGS "CASP3" "ALPHA" "BETA" "ALPHABETA" "CASP5" "3P" "4P" ) 
+endif (NOT UNRES_CSA_FF)
+
+# Use of MPI library (default ON)
+option(UNRES_WITH_MPI "Choose whether or not to use MPI library" ON )
+
+
+# Piasek cluster devel stuff
+option(UNRES_NA_MMCE "Kompilujemy na mmmce?" OFF )
+
+
+#=================================
+# MPI stuff
+#=================================
+
+# Note for the future - use finde package to get MPI 
+find_package(MPI)
+
+#if(MPI_LIBRARY)
+
+#MPI_INCLUDE_PATH
+
+
+if(MPIF_LOCAL_DIR)
+  find_library(MPIF_LIBRARY NAMES libmpich.a  NO_DEFAULT_PATH  PATHS  ${MPIF_LOCAL_DIR}/lib)
+  find_path( MPIF_INCLUDE_DIRECTORIES  NAMES mpif.h  NO_DEFAULT_PATH  PATHS  ${MPIF_LOCAL_DIR}/include  )
+else(MPIF_LOCAL_DIR)
+  find_library(MPIF_LIBRARY NAMES mpi mpich PATHS 
+       ${MPI_LIBRARY}
+       ${MPI_EXTRA_LIBRARY}
+       /users/local/mpi64/mpich-1.2.7p1/lib 
+       /usr/lib
+        /usr/local/lib
+        /usr/local/mpi/lib
+  )
+  find_path( MPIF_INCLUDE_DIRECTORIES NAMES  mpif.h PATHS
+       ${MPI_INCLUDE_PATH}
+       /users/local/mpi64/mpich-1.2.7p1/include
+       /usr/include
+       /usr/local/include   
+       /usr/include/mpi
+       /usr/local/mpi/include
+  )
+endif(MPIF_LOCAL_DIR)
+
+set( MPIF_LIBRARIES  ${MPIF_LIBRARY})
+
+if ( MPIF_INCLUDE_DIRECTORIES )
+  set( MPIF_FOUND TRUE )
+  message("MPI found")
+else ( MPIF_INCLUDE_DIRECTORIES )
+  set( MPIF_FOUND FALSE )
+  message("MPI not found - disabling MPI compile flags ")
+  set ( UNRES_WITH_MPI "OFF")
+endif ( MPIF_INCLUDE_DIRECTORIES )
+
+if (MPIF_FOUND)
+  message("MPIF_LIBRARIES=${MPIF_LIBRARY}")
+  message("MPIF_INCLUDE_DIRECTORIES=${MPIF_INCLUDE_DIRECTORIES}" )
+endif(MPIF_FOUND) 
+
+
+
+#======================================
+# Detect system architecture
+#=======================================
+
+if( CMAKE_SIZEOF_VOID_P EQUAL 4 )
+  set(architektura "32")
+else (CMAKE_SIZEOF_VOID_P EQUAL 4)
+  set(architektura "64")
+endif( CMAKE_SIZEOF_VOID_P EQUAL 4 )
+
+message("Detected ${architektura}-bit architecture")   
+
+#=======================================
+# Find other libraries
+#=======================================
+
+# used by unres/src_MIN
+find_package (Threads)
+
+
+
+#=======================================
+#  Create diractories for build targets
+#=======================================
+#execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/bin/unres/MD )
+
+#=======================================
+# Add source files
+#=======================================     
+
+
+add_subdirectory(source/lib/xdrf)
+
+
+if(UNRES_NA_MMCE)
+
+  if(UNRES_WITH_MPI)
+    # Brak MPI dla gfortrana, wiec tylko na ifort sie skompiluje
+    if (Fortran_COMPILER_NAME STREQUAL "ifort")
+      add_subdirectory(source/unres/src_MD)
+      add_subdirectory(source/unres/src_MD-M)
+      add_subdirectory(source/unres/src_CSA)
+      add_subdirectory(source/cluster/wham/src)
+      add_subdirectory(source/cluster/wham/src-M)
+    endif (Fortran_COMPILER_NAME STREQUAL "ifort")
+  else()
+    add_subdirectory(source/unres/src_MD)
+    # src_MD-M doesn't work yet witout MPI
+    # add_subdirectory(source/unres/src_MD-M)
+  endif()
+  add_subdirectory(source/unres/src_MIN)
+  add_subdirectory(source/cluster/unres/src)
+  add_subdirectory(source/xdrfpdb/src)
+  add_subdirectory(source/xdrfpdb/src-M)
+
+else()
+
+  add_subdirectory(source/unres/src_MD)
+  if(UNRES_WITH_MPI)
+    add_subdirectory(source/unres/src_MD-M)
+    add_subdirectory(source/unres/src_CSA)
+    add_subdirectory(source/wham/src)
+    add_subdirectory(source/wham/src-M)
+    add_subdirectory(source/cluster/wham/src)
+    add_subdirectory(source/cluster/wham/src-M)
+  endif(UNRES_WITH_MPI)
+  add_subdirectory(source/unres/src_MIN)
+  add_subdirectory(source/cluster/unres/src)
+  add_subdirectory(source/xdrfpdb/src)
+  add_subdirectory(source/xdrfpdb/src-M)
+
+endif(UNRES_NA_MMCE)
 
diff --git a/PARAM/1igd.cart~ b/PARAM/1igd.cart~
deleted file mode 100644 (file)
index 62f815b..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-ATOM      2  CA  MET     1       1.504   3.440   5.674  1.00  9.28      1IGD 119
-ATOM     10  CA  THR     2       0.874   7.070   6.635  1.00 12.11      1IGD 127
-ATOM     17  CA  PRO     3       4.095   8.990   7.462  1.00 10.61      1IGD 134
-ATOM     24  CA  ALA     4       5.217   9.211  11.085  1.00 11.96      1IGD 141
-ATOM     29  CA  VAL     5       4.507  12.752  12.313  1.00 12.02      1IGD 146
-ATOM     36  CA  THR     6       6.073  14.501  15.282  1.00  9.37      1IGD 153
-ATOM     43  CA  THR     7       4.600  17.292  17.383  1.00  7.26      1IGD 160
-ATOM     50  CA  TYR     8       7.006  20.232  17.534  1.00  5.67      1IGD 167
-ATOM     62  CA  LYS     9       6.690  23.052  20.037  1.00  5.25      1IGD 179
-ATOM     71  CA  LEU    10       7.444  26.753  19.641  1.00  4.92      1IGD 188
-ATOM     79  CA  VAL    11       8.253  28.823  22.735  1.00  4.74      1IGD 196
-ATOM     86  CA  ILE    12       7.702  32.483  21.877  1.00  6.55      1IGD 203
-ATOM     94  CA  ASN    13       9.277  35.307  23.868  1.00 11.08      1IGD 211
-ATOM    102  CA  GLY    14       8.171  38.243  21.680  1.00 10.70      1IGD 219
-ATOM    106  CA  LYS    15       7.722  41.895  22.494  1.00 13.87      1IGD 223
-ATOM    115  CA  THR    16       3.965  41.592  22.218  1.00 10.83      1IGD 232
-ATOM    122  CA  LEU    17       3.298  37.895  21.552  1.00  7.46      1IGD 239
-ATOM    130  CA  LYS    18       4.253  35.392  24.224  1.00  6.02      1IGD 247
-ATOM    139  CA  GLY    19       3.525  31.772  25.017  1.00  5.14      1IGD 256
-ATOM    143  CA  GLU    20       3.687  28.508  23.161  1.00  4.57      1IGD 260
-ATOM    152  CA  THR    21       2.162  26.919  20.099  1.00  5.79      1IGD 269
-ATOM    159  CA  THR    22       2.646  23.609  18.294  1.00  5.73      1IGD 276
-ATOM    166  CA  THR    23       2.651  22.082  14.854  1.00  6.63      1IGD 283
-ATOM    173  CA  LYS    24       2.813  18.533  13.499  1.00  8.78      1IGD 290
-ATOM    182  CA  ALA    25       5.323  17.635  10.791  1.00  8.12      1IGD 299
-ATOM    187  CA  VAL    26       7.228  14.757   9.285  1.00  9.17      1IGD 304
-ATOM    194  CA  ASP    27      10.610  16.449   9.979  1.00  8.29      1IGD 311
-ATOM    202  CA  ALA    28      12.101  19.437  11.758  1.00  7.92      1IGD 319
-ATOM    207  CA  GLU    29      12.698  21.484   8.624  1.00  8.29      1IGD 324
-ATOM    216  CA  THR    30       8.984  21.368   7.765  1.00  8.62      1IGD 333
-ATOM    223  CA  ALA    31       8.081  22.391  11.323  1.00  7.76      1IGD 340
-ATOM    228  CA  GLU    32      10.660  25.207  11.172  1.00  7.49      1IGD 345
-ATOM    237  CA  LYS    33       9.109  26.607   7.993  1.00  8.72      1IGD 354
-ATOM    246  CA  ALA    34       5.619  26.568   9.590  1.00  8.52      1IGD 363
-ATOM    251  CA  PHE    35       6.902  28.312  12.731  1.00  5.83      1IGD 368
-ATOM    262  CA  LYS    36       8.924  30.912  10.795  1.00  8.04      1IGD 379
-ATOM    271  CA  GLN    37       5.761  31.631   8.723  1.00  8.49      1IGD 388
-ATOM    280  CA  TYR    38       3.715  31.964  11.939  1.00  6.97      1IGD 397
-ATOM    292  CA  ALA    39       6.302  34.348  13.425  1.00  7.52      1IGD 409
-ATOM    297  CA  ASN    40       6.334  36.406  10.194  1.00 10.58      1IGD 414
-ATOM    305  CA  ASP    41       2.518  36.467  10.103  1.00 10.70      1IGD 422
-ATOM    313  CA  ASN    42       2.509  37.865  13.676  1.00  8.19      1IGD 430
-ATOM    321  CA  GLY    43       5.294  40.417  13.141  1.00 12.66      1IGD 438
-ATOM    325  CA  VAL    44       7.868  38.587  15.321  1.00 10.80      1IGD 442
-ATOM    332  CA  ASP    45      11.491  39.241  14.239  1.00 13.78      1IGD 449
-ATOM    340  CA  GLY    46      13.803  37.441  16.684  1.00 10.92      1IGD 457
-ATOM    344  CA  VAL    47      16.613  34.921  17.021  1.00  6.35      1IGD 461
-ATOM    351  CA  TRP    48      15.962  31.210  17.099  1.00  5.23      1IGD 468
-ATOM    365  CA  THR    49      17.087  27.992  18.645  1.00  5.24      1IGD 482
-ATOM    372  CA  TYR    50      16.092  24.419  17.890  1.00  5.26      1IGD 489
-ATOM    384  CA  ASP    51      16.668  21.546  20.354  1.00  6.92      1IGD 501
-ATOM    392  CA  ASP    52      16.351  18.192  18.597  1.00  8.34      1IGD 509
-ATOM    400  CA  ALA    53      16.176  16.397  21.979  1.00 14.44      1IGD 517
-ATOM    405  CA  THR    54      12.898  18.078  22.954  1.00  8.53      1IGD 522
-ATOM    412  CA  LYS    55      11.639  18.921  19.437  1.00  7.33      1IGD 529
-ATOM    421  CA  THR    56      11.328  22.535  20.573  1.00  5.13      1IGD 538
-ATOM    428  CA  PHE    57      12.045  25.743  18.732  1.00  4.37      1IGD 545
-ATOM    439  CA  THR    58      12.395  28.995  20.670  1.00  5.03      1IGD 556
-ATOM    446  CA  VAL    59      12.220  32.534  19.296  1.00  5.94      1IGD 563
-ATOM    453  CA  THR    60      13.100  35.625  21.294  1.00  6.83      1IGD 570
-ATOM    460  CA  GLU    61      12.905  39.298  20.415  1.00  9.61      1IGD 577
diff --git a/PARAM/sccor_pdb_shelly.dat b/PARAM/sccor_pdb_shelly.dat
new file mode 100644 (file)
index 0000000..39aae2c
--- /dev/null
@@ -0,0 +1,527 @@
+5  *** Parameters derived by pdb statistical analysis by Shelly Rackovsky ***
+4 4 4 4 4 4 4 4 3 1 3 3 3 2 3 2 3 3 3 5 
+6 0 *********** SCCC-Gly-Gly
+     1                    0.00000E+00       0.00000E+00
+     2                    0.00000E+00       0.00000E+00
+     3                    0.00000E+00       0.00000E+00
+     4                    0.00000E+00       0.00000E+00
+     5                    0.00000E+00       0.00000E+00
+     6                    0.00000E+00       0.00000E+00
+6 0 *********** SCCC-Gly-Asp
+     1                    0.00000E+00       0.00000E+00
+     2                    0.00000E+00       0.00000E+00
+     3                    0.00000E+00       0.00000E+00
+     4                    0.00000E+00       0.00000E+00
+     5                    0.00000E+00       0.00000E+00
+     6                    0.00000E+00       0.00000E+00
+6 0 *********** SCCC-Gly-Ala
+     1                    0.00000E+00       0.00000E+00
+     2                    0.00000E+00       0.00000E+00
+     3                    0.00000E+00       0.00000E+00
+     4                    0.00000E+00       0.00000E+00
+     5                    0.00000E+00       0.00000E+00
+     6                    0.00000E+00       0.00000E+00
+6 0 *********** SCCC-Gly-Cys
+     1                    0.00000E+00       0.00000E+00
+     2                    0.00000E+00       0.00000E+00
+     3                    0.00000E+00       0.00000E+00
+     4                    0.00000E+00       0.00000E+00
+     5                    0.00000E+00       0.00000E+00
+     6                    0.00000E+00       0.00000E+00
+6 0 *********** SCCC-Gly-Pro
+     1                    0.00000E+00       0.00000E+00
+     2                    0.00000E+00       0.00000E+00
+     3                    0.00000E+00       0.00000E+00
+     4                    0.00000E+00       0.00000E+00
+     5                    0.00000E+00       0.00000E+00
+     6                    0.00000E+00       0.00000E+00
+6 0 *********** SCCC-Asp-Gly
+     1                   -2.33674E-01      -5.31358E-01
+     2                   -4.88897E-01      -6.34765E-01
+     3                   -2.68667E-01       5.10088E-02
+     4                   -2.48344E-01      -2.04530E-01
+     5                    7.81149E-02      -9.89275E-04
+     6                   -5.25209E-02      -8.74971E-02
+6 0 *********** SCCC-Asp-Asp
+     1                   -3.67689E-03      -5.55082E-03
+     2                   -4.88763E-01      -4.13346E-01
+     3                    6.74458E-02      -8.94516E-02
+     4                   -1.48843E-01       3.05053E-02
+     5                   -2.32411E-03       6.93140E-02
+     6                   -3.65344E-02       1.18049E-01
+6 0 *********** SCCC-Asp-Ala
+     1                   -1.22253E-01       4.26719E-02
+     2                   -3.75906E-01      -4.76591E-01
+     3                    1.54140E-01      -1.50381E-01
+     4                   -2.79743E-02       3.45637E-02
+     5                    3.70630E-02      -1.80596E-02
+     6                    1.16381E-02       1.31634E-02
+6 0 *********** SCCC-Asp-Cys
+     1                   -3.85111E-01       3.52424E-01
+     2                   -4.08034E-01      -3.49952E-01
+     3                    6.35540E-03      -1.12671E-01
+     4                   -1.02048E-01       7.07537E-02
+     5                   -8.28533E-02      -6.45643E-02
+     6                    7.03106E-02       1.65406E-02
+6 0 *********** SCCC-Asp-Pro
+     1                   -1.50829E+00      -5.79772E-01
+     2                    1.03224E-01      -9.28513E-01
+     3                   -2.17808E-01       1.96654E-01
+     4                   -9.97970E-03      -1.86116E-01
+     5                    9.68333E-02      -3.40002E-04
+     6                    6.76090E-02      -1.60409E-02
+6 0 *********** SCCC-Ala-Gly
+     1                    1.08671E-01      -1.61916E-01
+     2                   -6.75374E-01      -4.41016E-01
+     3                    7.72515E-02       2.21794E-02
+     4                   -1.33440E-01      -3.52702E-02
+     5                    4.07103E-02      -8.30674E-03
+     6                   -3.38734E-02      -2.91658E-02
+6 0 *********** SCCC-Ala-Asp
+     1                    3.30143E-01      -2.37859E-01
+     2                   -5.58337E-01      -5.48182E-01
+     3                    1.59867E-01      -3.10240E-02
+     4                   -4.71581E-02       9.18808E-02
+     5                    7.58630E-03       1.36081E-02
+     6                   -5.18337E-02       1.67623E-02
+6 0 *********** SCCC-Ala-Ala
+     1                    3.01325E-02      -2.05463E-01
+     2                   -4.29621E-01      -4.94204E-01
+     3                    1.48297E-01      -2.46345E-02
+     4                   -6.66014E-02       7.33216E-02
+     5                   -4.61338E-03       9.99319E-03
+     6                   -1.72753E-02      -1.22783E-02
+6 0 *********** SCCC-Ala-Cys
+     1                   -1.89551E-01      -5.29036E-02
+     2                   -4.70536E-01      -5.46659E-01
+     3                    1.24188E-01      -4.54771E-02
+     4                   -9.01686E-02       7.87782E-02
+     5                    4.38317E-02      -1.50550E-02
+     6                   -1.40100E-02       4.48399E-03
+6 0 *********** SCCC-Ala-Pro
+     1                   -1.05516E+00      -8.27122E-01
+     2                    4.04216E-01      -6.30736E-01
+     3                   -5.65139E-02       1.31356E-01
+     4                    8.86212E-02      -1.93137E-02
+     5                    8.30847E-02       7.84107E-02
+     6                    1.09275E-03      -6.69432E-02
+6 0 *********** SCCC-Cys-Gly
+     1                    2.81717E-02      -9.16432E-02
+     2                   -5.80065E-01      -5.41676E-01
+     3                    8.35896E-02       2.32087E-02
+     4                   -2.52554E-02      -1.99537E-02
+     5                   -2.13136E-02       1.36707E-02
+     6                    5.82876E-02      -3.17349E-02
+6 0 *********** SCCC-Cys-Asp
+     1                   -1.56463E-01      -2.26207E-01
+     2                   -5.27000E-01      -6.19820E-01
+     3                    1.91887E-01       6.70580E-03
+     4                   -3.98226E-02       5.89435E-02
+     5                   -3.16575E-02      -1.15483E-02
+     6                   -2.96986E-02      -2.19490E-02
+6 0 *********** SCCC-Cys-Ala
+     1                   -3.36091E-01      -1.76255E-01
+     2                   -4.69818E-01      -5.33704E-01
+     3                    8.61098E-02       7.14942E-02
+     4                   -8.83260E-02       9.91528E-02
+     5                    3.34156E-02       8.38345E-03
+     6                    5.24593E-03      -3.06572E-02
+6 0 *********** SCCC-Cys-Cys
+     1                   -1.22127E-01      -1.71478E-01
+     2                   -6.74690E-01      -6.10165E-01
+     3                    1.73527E-01      -4.21592E-03
+     4                   -3.70829E-02       9.30684E-02
+     5                   -1.00968E-02      -6.23981E-02
+     6                   -8.89396E-03      -3.14081E-02
+6 0 *********** SCCC-Cys-Pro
+     1                   -1.17342E+00      -7.27036E-01
+     2                    6.83690E-01      -1.00092E+00
+     3                   -4.76000E-02       3.72246E-01
+     4                   -2.26563E-02      -1.70297E-01
+     5                   -2.22742E-02       1.16548E-01
+     6                    7.14525E-03      -4.24250E-02
+6 0 *********** SCCC-Pro-Gly
+     1                    4.02585E-01      -3.94531E-01
+     2                   -3.03503E-01       1.01518E+00
+     3                   -4.38168E-01      -3.04473E-01
+     4                    1.31142E-01      -9.95205E-02
+     5                   -3.80295E-02       8.15597E-02
+     6                    1.26077E-01      -2.53458E-02
+6 0 *********** SCCC-Pro-Asp
+     1                    2.49283E-03      -5.49089E-01
+     2                   -7.83933E-01       9.23601E-01
+     3                   -3.39174E-01      -3.82848E-01
+     4                    1.00026E-01      -1.82055E-01
+     5                   -1.75659E-01      -5.49745E-02
+     6                    8.55600E-02      -1.16096E-01
+6 0 *********** SCCC-Pro-Ala
+     1                   -4.15518E-01      -2.91572E-01
+     2                   -6.52264E-01       7.09750E-01
+     3                   -1.64167E-01      -4.41575E-01
+     4                    1.18955E-01      -3.95590E-02
+     5                   -7.92580E-02      -5.98595E-02
+     6                    9.27982E-02      -2.38264E-02
+6 0 *********** SCCC-Pro-Cys
+     1                   -3.26560E-01       4.41125E-02
+     2                   -6.99614E-01       7.59093E-01
+     3                   -2.81678E-01      -3.28174E-01
+     4                    1.31668E-01      -1.75615E-01
+     5                    7.10756E-03       5.43733E-02
+     6                    4.46549E-02      -1.44439E-02
+6 0 *********** SCCC-Pro-Pro
+     1                   -1.28703E+00       3.46321E-01
+     2                   -1.01267E+00      -8.23419E-01
+     3                   -1.57933E-01      -4.68436E-01
+     4                    8.11040E-02       2.82701E-01
+     5                   -9.53347E-02      -1.21811E-01
+     6                    2.61441E-01       9.39812E-02
+6 0 *********** CCCS-Gly-Gly
+     1                    0.00000E+00       0.00000E+00
+     2                    0.00000E+00       0.00000E+00
+     3                    0.00000E+00       0.00000E+00
+     4                    0.00000E+00       0.00000E+00
+     5                    0.00000E+00       0.00000E+00
+     6                    0.00000E+00       0.00000E+00
+6 0 *********** CCCS-Gly-Asp
+     1                   -6.31253E-02       2.38427E-01
+     2                   -1.11407E-01       5.53671E-01
+     3                    7.24875E-02       2.23541E-01
+     4                    6.83969E-03       4.24431E-02
+     5                    1.24417E-02       6.08425E-02
+     6                    6.11012E-02       7.83368E-02
+6 0 *********** CCCS-Gly-Ala
+     1                   -4.37385E-01       1.91403E-01
+     2                   -3.23631E-01       4.02741E-01
+     3                    5.64025E-02       4.08058E-03
+     4                   -5.74258E-02      -7.02841E-02
+     5                   -4.70532E-02      -5.70242E-02
+     6                   -9.28053E-03       4.39361E-02
+6 0 *********** CCCS-Gly-Cys
+     1                   -4.13393E-01       1.65041E-01
+     2                   -1.88107E-01       5.62683E-01
+     3                    5.60016E-02       7.38731E-02
+     4                   -5.95757E-03      -4.64401E-02
+     5                    1.01336E-02       5.56109E-02
+     6                   -2.35731E-03      -3.15908E-02
+6 0 *********** CCCS-Gly-Pro
+     1                    1.76496E+00       1.61351E-02
+     2                   -4.47793E-02       8.85324E-02
+     3                    5.63354E-01       2.17411E-01
+     4                    2.19564E-01       8.87204E-02
+     5                   -5.19152E-02       3.72129E-02
+     6                   -5.31883E-02       1.01306E-01
+6 0 *********** CCCS-Asp-Gly
+     1                    0.00000E+00       0.00000E+00
+     2                    0.00000E+00       0.00000E+00
+     3                    0.00000E+00       0.00000E+00
+     4                    0.00000E+00       0.00000E+00
+     5                    0.00000E+00       0.00000E+00
+     6                    0.00000E+00       0.00000E+00
+6 0 *********** CCCS-Asp-Asp
+     1                   -2.19269E-01       8.49318E-02
+     2                    3.49016E-01       1.09227E-01
+     3                   -1.97832E-02       7.72399E-02
+     4                    5.58331E-02      -3.06730E-02
+     5                    1.18306E-01      -2.23422E-02
+     6                   -4.37173E-03       4.71024E-02
+6 0 *********** CCCS-Asp-Ala
+     1                   -4.41640E-01      -5.72041E-03
+     2                    2.73360E-01       1.76355E-01
+     3                   -1.81199E-02      -4.96490E-03
+     4                   -5.22381E-02       2.83445E-02
+     5                    4.75320E-02       3.90300E-02
+     6                   -1.17571E-02      -2.22279E-02
+6 0 *********** CCCS-Asp-Cys
+     1                   -1.04268E+00      -6.40980E-02
+     2                    4.07555E-01      -8.57275E-02
+     3                   -9.99096E-02      -5.20481E-02
+     4                    6.49643E-03      -2.47447E-02
+     5                   -4.98284E-02      -8.55654E-03
+     6                    9.24429E-02      -3.30342E-02
+6 0 *********** CCCS-Asp-Pro
+     1                    5.12065E-01      -1.44224E+00
+     2                    1.29415E+00       5.67146E-01
+     3                   -7.38956E-02      -3.66674E-01
+     4                   -1.18527E-01       4.00056E-01
+     5                    1.03674E-01       1.46075E-01
+     6                    9.06869E-02      -1.14085E-01
+6 0 *********** CCCS-Ala-Gly
+     1                    0.00000E+00       0.00000E+00
+     2                    0.00000E+00       0.00000E+00
+     3                    0.00000E+00       0.00000E+00
+     4                    0.00000E+00       0.00000E+00
+     5                    0.00000E+00       0.00000E+00
+     6                    0.00000E+00       0.00000E+00
+6 0 *********** CCCS-Ala-Asp
+     1                   -1.18903E-01       1.83145E-01
+     2                    5.83533E-01       1.08640E-01
+     3                   -6.66729E-02       1.76102E-01
+     4                    4.89076E-02       5.31612E-02
+     5                    5.39967E-02       9.45165E-02
+     6                    8.03064E-02      -4.08910E-03
+6 0 *********** CCCS-Ala-Ala
+     1                   -2.92868E-01      -8.19322E-02
+     2                    4.63252E-01       1.35090E-01
+     3                   -9.30834E-02      -6.42975E-02
+     4                    6.48082E-02       5.29183E-02
+     5                   -1.88075E-02      -1.92230E-02
+     6                   -1.51650E-03       2.44986E-02
+6 0 *********** CCCS-Ala-Cys
+     1                   -5.81015E-01      -1.68223E-01
+     2                    6.20247E-01      -2.12253E-01
+     3                   -1.35184E-01      -6.88396E-02
+     4                    6.16762E-02      -2.05756E-02
+     5                   -3.94035E-02      -1.52101E-02
+     6                    2.08621E-02       3.07917E-03
+6 0 *********** CCCS-Ala-Pro
+     1                    9.10026E-01      -1.25074E+00
+     2                    1.42419E+00       1.07825E+00
+     3                    2.96946E-01      -4.44096E-01
+     4                    1.60238E-01       3.80481E-01
+     5                    3.09317E-02       1.68846E-01
+     6                   -1.77411E-01      -1.00691E-01
+6 0 *********** CCCS-Cys-Gly
+     1                    0.00000E+00       0.00000E+00
+     2                    0.00000E+00       0.00000E+00
+     3                    0.00000E+00       0.00000E+00
+     4                    0.00000E+00       0.00000E+00
+     5                    0.00000E+00       0.00000E+00
+     6                    0.00000E+00       0.00000E+00
+6 0 *********** CCCS-Cys-Asp
+     1                   -5.26562E-01      -3.09456E-01
+     2                    5.49368E-01      -1.44823E-01
+     3                   -7.22982E-02       9.84671E-02
+     4                    6.66287E-02      -9.44212E-03
+     5                    1.68578E-03       6.74414E-02
+     6                    3.89759E-02       1.95437E-02
+6 0 *********** CCCS-Cys-Ala
+     1                   -6.56521E-01      -4.61287E-01
+     2                    4.26599E-01      -4.27295E-02
+     3                   -5.80619E-02      -6.82714E-02
+     4                    7.55769E-02      -3.73619E-02
+     5                   -1.25281E-02      -9.43991E-03
+     6                   -2.08379E-02      -1.07485E-02
+6 0 *********** CCCS-Cys-Cys
+     1                   -5.58656E-01      -6.37550E-02
+     2                    6.60644E-01      -4.81978E-01
+     3                   -1.23335E-01      -1.07436E-01
+     4                    9.65717E-02      -4.24652E-02
+     5                   -2.48253E-02      -5.11826E-02
+     6                    6.85820E-05       1.76573E-02
+6 0 *********** CCCS-Cys-Pro
+     1                    4.90723E-01      -1.35625E+00
+     2                    1.67813E+00       1.18718E+00
+     3                    5.22746E-02      -5.00301E-01
+     4                    1.68735E-01       3.93464E-01
+     5                    4.28409E-02       8.91823E-02
+     6                   -1.62951E-02      -2.16810E-02
+6 0 *********** CCCS-Pro-Gly
+     1                    0.00000E+00       0.00000E+00
+     2                    0.00000E+00       0.00000E+00
+     3                    0.00000E+00       0.00000E+00
+     4                    0.00000E+00       0.00000E+00
+     5                    0.00000E+00       0.00000E+00
+     6                    0.00000E+00       0.00000E+00
+6 0 *********** CCCS-Pro-Asp
+     1                   -6.52828E-03       3.66128E-01
+     2                    8.72926E-01       2.83756E-01
+     3                   -6.39242E-02       4.15019E-01
+     4                    5.22042E-02       1.13759E-01
+     5                    3.15281E-02       1.19297E-01
+     6                    2.29414E-01       1.65320E-02
+6 0 *********** CCCS-Pro-Ala
+     1                   -1.92755E-01      -2.59299E-01
+     2                    6.27259E-01       3.23210E-01
+     3                    5.09623E-03      -5.98610E-02
+     4                    2.63549E-01       5.54537E-02
+     5                    1.07979E-02       1.42709E-02
+     6                    3.58365E-02      -1.09028E-02
+6 0 *********** CCCS-Pro-Cys
+     1                   -4.65856E-01      -2.86718E-01
+     2                    8.65762E-01      -1.35677E-01
+     3                   -1.54115E-01      -3.55263E-02
+     4                    8.94026E-02       1.99514E-02
+     5                   -4.23955E-02       6.54068E-02
+     6                    1.37749E-01       3.27344E-04
+6 0 *********** CCCS-Pro-Pro
+     1                    1.04077E+00      -4.87596E-01
+     2                    7.01383E-01       2.48642E+00
+     3                    1.47959E-01      -3.84847E-01
+     4                    1.09403E-02      -6.08211E-02
+     5                   -4.12137E-02       8.77603E-02
+     6                    5.29644E-02       1.44612E-02
+6 0 *********** SCCS-Gly-Gly
+     1                    0.00000E+00       0.00000E+00
+     2                    0.00000E+00       0.00000E+00
+     3                    0.00000E+00       0.00000E+00
+     4                    0.00000E+00       0.00000E+00
+     5                    0.00000E+00       0.00000E+00
+     6                    0.00000E+00       0.00000E+00
+6 0 *********** SCCS-Gly-Asp
+     1                    0.00000E+00       0.00000E+00
+     2                    0.00000E+00       0.00000E+00
+     3                    0.00000E+00       0.00000E+00
+     4                    0.00000E+00       0.00000E+00
+     5                    0.00000E+00       0.00000E+00
+     6                    0.00000E+00       0.00000E+00
+6 0 *********** SCCS-Gly-Ala
+     1                    0.00000E+00       0.00000E+00
+     2                    0.00000E+00       0.00000E+00
+     3                    0.00000E+00       0.00000E+00
+     4                    0.00000E+00       0.00000E+00
+     5                    0.00000E+00       0.00000E+00
+     6                    0.00000E+00       0.00000E+00
+6 0 *********** SCCS-Gly-Cys
+     1                    0.00000E+00       0.00000E+00
+     2                    0.00000E+00       0.00000E+00
+     3                    0.00000E+00       0.00000E+00
+     4                    0.00000E+00       0.00000E+00
+     5                    0.00000E+00       0.00000E+00
+     6                    0.00000E+00       0.00000E+00
+6 0 *********** SCCS-Gly-Pro
+     1                    0.00000E+00       0.00000E+00
+     2                    0.00000E+00       0.00000E+00
+     3                    0.00000E+00       0.00000E+00
+     4                    0.00000E+00       0.00000E+00
+     5                    0.00000E+00       0.00000E+00
+     6                    0.00000E+00       0.00000E+00
+6 0 *********** SCCS-Asp-Gly
+     1                    0.00000E+00       0.00000E+00
+     2                    0.00000E+00       0.00000E+00
+     3                    0.00000E+00       0.00000E+00
+     4                    0.00000E+00       0.00000E+00
+     5                    0.00000E+00       0.00000E+00
+     6                    0.00000E+00       0.00000E+00
+6 0 *********** SCCS-Asp-Asp
+     1                   -1.29367E-01       5.31310E-02
+     2                    2.52177E-01      -4.38233E-01
+     3                    2.89042E-02      -2.12699E-03
+     4                   -5.58810E-02      -1.26169E-01
+     5                   -1.35209E-02      -9.71544E-04
+     6                   -5.55150E-02       1.66374E-02
+6 0 *********** SCCS-Asp-Ala
+     1                   -6.19935E-02       1.46335E-02
+     2                    2.40900E-01      -1.77547E-01
+     3                    2.51822E-02      -5.24041E-02
+     4                   -1.68369E-03      -1.26395E-01
+     5                   -5.14003E-02      -3.09970E-02
+     6                    3.06234E-03      -8.67938E-03
+6 0 *********** SCCS-Asp-Cys
+     1                    4.64551E-01      -1.71287E-01
+     2                   -2.64537E-03      -4.16687E-01
+     3                   -4.88145E-02      -9.31462E-02
+     4                   -5.30998E-02      -6.70922E-02
+     5                    8.75378E-03       1.48263E-02
+     6                    2.66145E-02      -3.62959E-02
+6 0 *********** SCCS-Asp-Pro
+     1                    4.95445E-01       1.54011E+00
+     2                    1.12587E+00       5.33051E-01
+     3                    1.16352E-01       3.06477E-01
+     4                   -1.69937E-01      -8.91254E-02
+     5                    2.99610E-02      -1.99747E-01
+     6                    3.14083E-01      -9.27615E-02
+6 0 *********** SCCS-Ala-Gly
+     1                    0.00000E+00       0.00000E+00
+     2                    0.00000E+00       0.00000E+00
+     3                    0.00000E+00       0.00000E+00
+     4                    0.00000E+00       0.00000E+00
+     5                    0.00000E+00       0.00000E+00
+     6                    0.00000E+00       0.00000E+00
+6 0 *********** SCCS-Ala-Asp
+     1                   -3.03491E-01      -3.20195E-03
+     2                    1.87577E-01      -5.35195E-01
+     3                   -9.22075E-02      -2.45286E-02
+     4                   -5.52959E-02      -7.94812E-02
+     5                    2.30392E-02      -6.72315E-02
+     6                    1.13747E-02       1.06330E-02
+6 0 *********** SCCS-Ala-Ala
+     1                   -1.13071E-01       1.14720E-01
+     2                    1.77018E-01      -3.52529E-01
+     3                    2.53076E-02      -3.20530E-02
+     4                   -5.13892E-02      -8.88139E-02
+     5                    3.40895E-03      -1.14563E-02
+     6                   -3.36404E-02      -4.87838E-03
+6 0 *********** SCCS-Ala-Cys
+     1                    1.87671E-01       8.41887E-02
+     2                   -2.58899E-02      -5.91412E-01
+     3                   -6.02484E-02      -6.83110E-02
+     4                   -6.01972E-02      -7.62475E-02
+     5                    1.66086E-02       1.13310E-02
+     6                   -1.52069E-02       2.08523E-02
+6 0 *********** SCCS-Ala-Pro
+     1                    2.97957E-01       1.43349E+00
+     2                    8.50101E-01       6.28525E-01
+     3                    1.37592E-01       3.21604E-01
+     4                   -1.65330E-01       3.97088E-02
+     5                   -5.87512E-02       1.95385E-01
+     6                    4.59752E-02       5.96600E-02
+6 0 *********** SCCS-Cys-Gly
+     1                    0.00000E+00       0.00000E+00
+     2                    0.00000E+00       0.00000E+00
+     3                    0.00000E+00       0.00000E+00
+     4                    0.00000E+00       0.00000E+00
+     5                    0.00000E+00       0.00000E+00
+     6                    0.00000E+00       0.00000E+00
+6 0 *********** SCCS-Cys-Asp
+     1                    1.54696E-01       2.74801E-01
+     2                    1.75668E-01      -6.02466E-01
+     3                   -3.71949E-02       2.85682E-02
+     4                   -2.23575E-02      -7.93697E-02
+     5                    3.18670E-02      -3.26104E-02
+     6                    3.42890E-03       9.99826E-03
+6 0 *********** SCCS-Cys-Ala
+     1                    3.12256E-01       2.89927E-01
+     2                    1.38469E-01      -4.21609E-01
+     3                    4.30847E-02       8.17844E-03
+     4                   -6.30056E-02      -7.43044E-02
+     5                   -2.42299E-02      -1.05221E-02
+     6                   -2.32065E-02       1.07005E-02
+6 0 *********** SCCS-Cys-Cys
+     1                    5.42115E-02       1.91060E-01
+     2                   -1.45695E-01      -7.74412E-01
+     3                   -2.74454E-02      -6.31361E-03
+     4                   -6.08427E-02      -5.15224E-02
+     5                   -2.37106E-02       3.55272E-02
+     6                    2.34366E-04       1.57237E-02
+6 0 *********** SCCS-Cys-Pro
+     1                    5.25532E-01       1.45831E+00
+     2                    1.23695E+00       9.22229E-01
+     3                    2.26554E-01       3.11519E-01
+     4                    8.04527E-03       1.20234E-01
+     5                    1.10145E-01      -3.76652E-02
+     6                    1.20059E-01       3.98373E-02
+6 0 *********** SCCS-Pro-Gly
+     1                    0.00000E+00       0.00000E+00
+     2                    0.00000E+00       0.00000E+00
+     3                    0.00000E+00       0.00000E+00
+     4                    0.00000E+00       0.00000E+00
+     5                    0.00000E+00       0.00000E+00
+     6                    0.00000E+00       0.00000E+00
+6 0 *********** SCCS-Pro-Asp
+     1                   -4.75566E-01       4.02839E-01
+     2                   -9.91621E-01      -5.27652E-01
+     3                    1.01043E-01       1.27747E-01
+     4                    2.21600E-01       9.83514E-02
+     5                    9.14873E-02       2.88332E-01
+     6                   -8.89657E-02       6.69934E-02
+6 0 *********** SCCS-Pro-Ala
+     1                    9.73371E-02       2.90189E-01
+     2                   -5.61755E-01      -4.03787E-01
+     3                   -1.18288E-01      -1.57214E-01
+     4                    1.33916E-01       1.47170E-01
+     5                    9.77810E-02       6.01187E-02
+     6                   -5.20456E-02      -7.13409E-02
+6 0 *********** SCCS-Pro-Cys
+     1                    2.37390E-01       5.34492E-02
+     2                   -7.98945E-01      -9.34123E-02
+     3                   -2.65067E-02       1.77660E-01
+     4                    9.11318E-02       8.22393E-02
+     5                    5.66528E-02       3.50986E-02
+     6                   -3.68829E-02       1.55213E-02
+6 0 *********** SCCS-Pro-Pro
+     1                    1.33315E+00       3.64948E-01
+     2                    9.40733E-01      -1.29363E+00
+     3                   -8.51267E-01      -3.39368E-01
+     4                    2.81813E-01      -1.68113E-01
+     5                    2.73587E-01       1.92177E-01
+     6                    3.48452E-02      -4.05145E-01
diff --git a/bin/unres/MIN/unres_min_gfortran.exe b/bin/unres/MIN/unres_min_gfortran.exe
new file mode 100755 (executable)
index 0000000..8059828
Binary files /dev/null and b/bin/unres/MIN/unres_min_gfortran.exe differ
diff --git a/ctest/1LE1_mremd_MD000.cx b/ctest/1LE1_mremd_MD000.cx
new file mode 100644 (file)
index 0000000..4cabd92
Binary files /dev/null and b/ctest/1LE1_mremd_MD000.cx differ
diff --git a/ctest/ala10MD.cx b/ctest/ala10MD.cx
new file mode 100644 (file)
index 0000000..fe65c85
Binary files /dev/null and b/ctest/ala10MD.cx differ
index 2830886..a770a21 100644 (file)
@@ -1,6 +1,11 @@
 1L2Y
+<<<<<<< HEAD
 SEED=-3059743 REFSTR PDBREF MINIMIZE
 
+=======
+SEED=-3059743 PDBREF ENE
+maxmin=1000
+>>>>>>> aebadf9023e437f497f92dfcf2303c16f60917c1
 WLONG=1.35279 WSCP=1.59304 WELEC=0.71534 WBOND=1.00000 WANG=1.13873            &
 WSCLOC=0.16258 WTOR=1.98599 WTORD=1.57069 WCORRH=0.42887 WCORR5=0.00000        &
 WCORR6=0.00000 WEL_LOC=0.16036 WTURN3=1.68722 WTURN4=0.66230 WTURN6=0.00000    &
diff --git a/examples/unres/MD/ff_gab/fort.28 b/examples/unres/MD/ff_gab/fort.28
deleted file mode 100644 (file)
index e69de29..0000000
index 367e87f..f983fb9 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 #PBS -N PGA
 #PBS -q dque
-#PBS -l nodes=58:ppn=2
+#PBS -l nodes=1:ppn=1
 #PBS -l walltime=24:00:00
 #-----------------------------------------------------------------------------
 export POT=GB
diff --git a/examples/unres/MIN/1L2Y.pdb b/examples/unres/MIN/1L2Y.pdb
new file mode 100644 (file)
index 0000000..3186b8f
--- /dev/null
@@ -0,0 +1,11777 @@
+HEADER    DE NOVO PROTEIN                         25-FEB-02   1L2Y              
+TITLE     NMR STRUCTURE OF TRP-CAGE MINIPROTEIN CONSTRUCT TC5B                  
+COMPND    MOL_ID: 1;                                                            
+COMPND   2 MOLECULE: TC5B;                                                      
+COMPND   3 CHAIN: A;                                                            
+COMPND   4 ENGINEERED: YES                                                      
+SOURCE    MOL_ID: 1;                                                            
+SOURCE   2 SYNTHETIC: YES;                                                      
+SOURCE   3 OTHER_DETAILS: THE PROTEIN WAS SYNTHESIZED USING STANDARD            
+SOURCE   4 FMOC SOLID-PHASE SYNTHESIS METHODS ON AN APPLIED                     
+SOURCE   5 BIOSYSTEMS 433A PEPTIDE SYNTHESIZER.                                 
+KEYWDS    MINIPROTEIN, TWO-STATE FOLDING, TRP-CAGE                              
+EXPDTA    NMR, 38 STRUCTURES                                                    
+AUTHOR    J.W.NEIDIGH,R.M.FESINMEYER,N.H.ANDERSEN                               
+REVDAT   1   29-MAY-02 1L2Y    0                                                
+JRNL        AUTH   J.W.NEIDIGH,R.M.FESINMEYER,N.H.ANDERSEN                      
+JRNL        TITL   DESIGNING A 20-RESIDUE PROTEIN                               
+JRNL        REF    NAT.STRUCT.BIOL.              V.   9   425 2002              
+JRNL        REFN   ASTM NSBIEW  US ISSN 1072-8368                               
+REMARK   1                                                                      
+REMARK   2                                                                      
+REMARK   2 RESOLUTION. NOT APPLICABLE.                                          
+REMARK   3                                                                      
+REMARK   3 REFINEMENT.                                                          
+REMARK   3   PROGRAM     : NULL                                                 
+REMARK   3   AUTHORS     : NULL                                                 
+REMARK   3                                                                      
+REMARK   3  OTHER REFINEMENT REMARKS: 169 NOE DISTANCE CONSTRAINTS WERE         
+REMARK   3  EMPLOYED. CNS WAS EMPLOYED FOR S.A., FOLLOWED BY MINIMIZATION       
+REMARK   3  USING THE SANDER MODULE OF AMBER.                                   
+REMARK   4                                                                      
+REMARK   4 1L2Y COMPLIES WITH FORMAT V. 2.3, 09-JULY-1998                       
+REMARK 100                                                                      
+REMARK 100 THIS ENTRY HAS BEEN PROCESSED BY RCSB ON 28-FEB-2002.                
+REMARK 100 THE RCSB ID CODE IS RCSB015598.                                      
+REMARK 210                                                                      
+REMARK 210 EXPERIMENTAL DETAILS                                                 
+REMARK 210  EXPERIMENT TYPE                : NMR                                
+REMARK 210  TEMPERATURE           (KELVIN) : 282                                
+REMARK 210  PH                             : 7                                  
+REMARK 210  IONIC STRENGTH                 : NULL                               
+REMARK 210  PRESSURE                       : AMBIENT                            
+REMARK 210  SAMPLE CONTENTS                : 1.0-1.8 MM TC5B                    
+REMARK 210                                                                      
+REMARK 210  NMR EXPERIMENTS CONDUCTED      : 2D NOESY                           
+REMARK 210  SPECTROMETER FIELD STRENGTH    : 500 MHZ                            
+REMARK 210  SPECTROMETER MODEL             : DRX                                
+REMARK 210  SPECTROMETER MANUFACTURER      : BRUKER                             
+REMARK 210                                                                      
+REMARK 210  STRUCTURE DETERMINATION.                                            
+REMARK 210   SOFTWARE USED                 : XWINNMR 2.6, FELIX 95, CNS         
+REMARK 210                                   1.0, AMBER 6.0                     
+REMARK 210   METHOD USED                   : SIMULATED ANNEALING FROM           
+REMARK 210                                   RANDOM STRUCTURES FOLLOWED BY      
+REMARK 210                                   STEEPEST DESCENT MINIMIZATION      
+REMARK 210                                                                      
+REMARK 210 CONFORMERS, NUMBER CALCULATED   : 50                                 
+REMARK 210 CONFORMERS, NUMBER SUBMITTED    : 38                                 
+REMARK 210 CONFORMERS, SELECTION CRITERIA  : STRUCTURES WITH ACCEPTABLE         
+REMARK 210                                   COVALENT GEOMETRY, STRUCTURES      
+REMARK 210                                   WITH THE LEAST RESTRAINT           
+REMARK 210                                   VIOLATIONS                         
+REMARK 210                                                                      
+REMARK 210 BEST REPRESENTATIVE CONFORMER IN THIS ENSEMBLE : NULL                
+REMARK 210                                                                      
+REMARK 210 REMARK: THIS STRUCTURE WAS DETERMINED USING STANDARD 2D              
+REMARK 210  HOMONUCLEAR TECHNIQUES.                                             
+REMARK 215                                                                      
+REMARK 215 NMR STUDY                                                            
+REMARK 215 THE COORDINATES IN THIS ENTRY WERE GENERATED FROM SOLUTION           
+REMARK 215 NMR DATA.  PROTEIN DATA BANK CONVENTIONS REQUIRE THAT                
+REMARK 215 CRYST1 AND SCALE RECORDS BE INCLUDED, BUT THE VALUES ON              
+REMARK 215 THESE RECORDS ARE MEANINGLESS.                                       
+REMARK 500                                                                      
+REMARK 500 GEOMETRY AND STEREOCHEMISTRY                                         
+REMARK 500 SUBTOPIC: TORSION ANGLES                                             
+REMARK 500                                                                      
+REMARK 500 TORSION ANGLES OUTSIDE THE EXPECTED RAMACHANDRAN REGIONS:            
+REMARK 500 (M=MODEL NUMBER; RES=RESIDUE NAME; C=CHAIN IDENTIFIER;               
+REMARK 500 SSEQ=SEQUENCE NUMBER; I=INSERTION CODE).                             
+REMARK 500                                                                      
+REMARK 500 STANDARD TABLE:                                                      
+REMARK 500 FORMAT:(10X,I3,1X,A3,1X,A1,I4,A1,4X,F7.2,3X,F7.2)                    
+REMARK 500                                                                      
+REMARK 500  M RES CSSEQI        PSI       PHI                                   
+REMARK 500  5 LEU A   2      -34.83     72.95                                   
+REMARK 500  6 LEU A   2      -33.93     63.45                                   
+REMARK 500 13 LEU A   2      -33.72     66.32                                   
+REMARK 500 20 LEU A   2      -32.96     68.39                                   
+REMARK 500 23 LEU A   2      -47.12     63.92                                   
+REMARK 500 29 LEU A   2      -42.02     66.43                                   
+REMARK 900                                                                      
+REMARK 900 RELATED ENTRIES                                                      
+REMARK 900 RELATED ID: 5292   RELATED DB: BMRB                                  
+REMARK 900 BMRB 5292 IS CHEMICAL SHIFTS FOR TC5B IN BUFFER AND BUFFER           
+REMARK 900 CONTAINING 30 VOL-% TFE.                                             
+REMARK 900 RELATED ID: 1JRJ   RELATED DB: PDB                                   
+REMARK 900 1JRJ IS AN ANALAGOUS C-TERMINAL STRUCTURE.                           
+SEQRES   1 A   20  ASN LEU TYR ILE GLN TRP LEU LYS ASP GLY GLY PRO SER          
+SEQRES   2 A   20  SER GLY ARG PRO PRO PRO SER                                  
+HELIX    1   1 ASN A    1  ASP A    9  1                                   9    
+HELIX    2   2 GLY A   10  GLY A   15  5                                   6    
+CRYST1    1.000    1.000    1.000  90.00  90.00  90.00 P 1           1          
+ORIGX1      1.000000  0.000000  0.000000        0.00000                         
+ORIGX2      0.000000  1.000000  0.000000        0.00000                         
+ORIGX3      0.000000  0.000000  1.000000        0.00000                         
+SCALE1      1.000000  0.000000  0.000000        0.00000                         
+SCALE2      0.000000  1.000000  0.000000        0.00000                         
+SCALE3      0.000000  0.000000  1.000000        0.00000                         
+MODEL        1                                                                  
+ATOM      1  N   ASN A   1      -8.901   4.127  -0.555  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -8.608   3.135  -1.618  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -7.117   2.964  -1.897  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -6.634   1.849  -1.758  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -9.437   3.396  -2.889  0.00  0.00           C  
+ATOM      6  CG  ASN A   1     -10.915   3.130  -2.611  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1     -11.269   2.700  -1.524  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1     -11.806   3.406  -3.543  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -8.330   3.957   0.261  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -8.740   5.068  -0.889  0.00  0.00           H  
+ATOM     11 3H   ASN A   1      -9.877   4.041  -0.293  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -8.930   2.162  -1.239  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -9.310   4.417  -3.193  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -9.108   2.719  -3.679  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1     -11.572   3.791  -4.444  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1     -12.757   3.183  -3.294  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -6.379   4.031  -2.228  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -4.923   4.002  -2.452  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -4.136   3.187  -1.404  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -3.391   2.274  -1.760  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -4.411   5.450  -2.619  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -4.795   6.450  -1.495  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -3.612   6.803  -0.599  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -5.351   7.748  -2.084  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -6.821   4.923  -2.394  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -4.750   3.494  -3.403  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -3.340   5.414  -2.672  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -4.813   5.817  -3.564  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -5.568   6.022  -0.858  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -3.207   5.905  -0.146  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -2.841   7.304  -1.183  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -3.929   7.477   0.197  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -4.607   8.209  -2.736  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -6.255   7.544  -2.657  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -5.592   8.445  -1.281  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -4.354   3.455  -0.111  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.690   2.738   0.981  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -4.102   1.256   1.074  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.291   0.409   1.442  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -3.964   3.472   2.302  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -2.824   3.339   3.290  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -1.820   4.326   3.332  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -2.746   2.217   4.138  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -0.725   4.185   4.205  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -1.657   2.076   5.018  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -0.639   3.053   5.043  0.00  0.00           C  
+ATOM     47  OH  TYR A   3       0.433   2.881   5.861  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -4.934   4.245   0.120  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.615   2.768   0.796  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -4.117   4.513   2.091  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -4.886   3.096   2.750  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -1.877   5.200   2.695  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -3.513   1.456   4.101  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3       0.033   4.952   4.233  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -1.576   1.221   5.669  0.00  0.00           H  
+ATOM     56  HH  TYR A   3       1.187   3.395   5.567  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.342   0.925   0.689  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.857  -0.449   0.613  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -5.089  -1.221  -0.470  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -4.621  -2.334  -0.226  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.386  -0.466   0.343  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.197   0.540   1.197  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -7.959  -1.884   0.501  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -8.019   0.412   2.715  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -5.906   1.656   0.283  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.670  -0.941   1.568  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.554  -0.192  -0.697  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -7.900   1.531   0.912  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -9.257   0.424   0.964  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.509  -2.555  -0.232  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -7.759  -2.271   1.501  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -9.036  -1.871   0.332  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -8.306  -0.585   3.049  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4      -6.983   0.606   2.995  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4      -8.656   1.144   3.213  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -4.907  -0.601  -1.645  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -4.122  -1.167  -2.743  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.629  -1.321  -2.390  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -1.986  -2.240  -2.884  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -4.292  -0.313  -4.013  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -4.244  -1.171  -5.290  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -5.576  -1.860  -5.585  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -5.769  -3.044  -5.335  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -6.532  -1.146  -6.152  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -5.327   0.318  -1.763  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.517  -2.162  -2.940  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -5.238   0.191  -3.969  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -3.492   0.429  -4.053  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -3.993  -0.539  -6.120  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -3.458  -1.923  -5.205  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -6.389  -0.184  -6.408  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -7.392  -1.635  -6.335  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -2.074  -0.459  -1.528  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.716  -0.631  -0.993  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.631  -1.766   0.044  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.295  -2.579  -0.004  0.00  0.00           O  
+ATOM     97  CB  TRP A   6      -0.221   0.703  -0.417  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.148   0.652   0.194  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.319   0.664  -0.482  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.508   0.564   1.606  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.371   0.560   0.411  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       2.928   0.515   1.710  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       0.779   0.524   2.812  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.599   0.445   2.938  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.439   0.433   4.053  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       2.842   0.407   4.120  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.624   0.343  -1.242  0.00  0.00           H  
+ATOM    108  HA  TRP A   6      -0.052  -0.908  -1.813  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.206   1.425  -1.211  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -0.921   1.044   0.344  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.412   0.733  -1.558  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.360   0.536   0.156  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6      -0.299   0.571   2.773  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       4.679   0.418   2.961  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       0.862   0.400   4.966  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.334   0.360   5.081  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.600  -1.860   0.967  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.641  -2.932   1.963  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.847  -4.319   1.342  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.144  -5.248   1.742  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.710  -2.645   3.033  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.301  -1.579   4.069  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.475  -1.323   5.018  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -1.093  -2.007   4.914  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.316  -1.137   0.994  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.666  -2.978   2.445  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.600  -2.308   2.537  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -2.921  -3.571   3.572  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -2.061  -0.649   3.560  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.343  -0.992   4.449  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -3.725  -2.237   5.560  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -3.211  -0.549   5.739  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -1.270  -2.989   5.354  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7      -0.195  -2.045   4.300  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -0.922  -1.286   5.712  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.753  -4.481   0.360  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -3.024  -5.791  -0.269  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.796  -6.427  -0.937  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.719  -7.648  -1.030  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -4.224  -5.697  -1.232  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -3.930  -5.009  -2.577  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -3.682  -5.986  -3.736  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -3.494  -5.199  -5.039  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -4.563  -5.483  -6.023  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -3.321  -3.675   0.097  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.309  -6.478   0.529  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -4.565  -6.694  -1.436  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -5.019  -5.143  -0.731  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -4.769  -4.390  -2.830  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -3.062  -4.368  -2.469  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -2.799  -6.562  -3.536  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -4.524  -6.674  -3.818  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -3.502  -4.150  -4.813  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -2.511  -5.439  -5.457  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -4.621  -6.474  -6.211  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -5.442  -5.124  -5.657  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -4.382  -4.983  -6.881  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -0.828  -5.607  -1.355  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.466  -6.016  -1.905  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.481  -6.464  -0.832  0.00  0.00           C  
+ATOM    161  O   ASP A   9       2.545  -6.971  -1.194  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       1.033  -4.839  -2.724  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       0.672  -4.906  -4.210  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9      -0.532  -5.051  -4.522  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9       1.627  -4.815  -5.017  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -1.010  -4.616  -1.291  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.319  -6.867  -2.574  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       0.644  -3.924  -2.320  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       2.116  -4.837  -2.650  0.00  0.00           H  
+ATOM    170  N   GLY A  10       1.185  -6.278   0.464  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       2.060  -6.618   1.593  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.628  -5.412   2.353  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.496  -5.594   3.208  0.00  0.00           O  
+ATOM    174  H   GLY A  10       0.265  -5.908   0.693  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.486  -7.214   2.304  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.897  -7.228   1.252  0.00  0.00           H  
+ATOM    177  N   GLY A  11       2.172  -4.187   2.055  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.626  -2.967   2.723  0.00  0.00           C  
+ATOM    179  C   GLY A  11       4.157  -2.802   2.654  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.710  -2.829   1.551  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.481  -4.089   1.319  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       2.164  -2.109   2.237  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.280  -2.997   3.753  0.00  0.00           H  
+ATOM    184  N   PRO A  12       4.871  -2.651   3.794  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.333  -2.533   3.806  0.00  0.00           C  
+ATOM    186  C   PRO A  12       7.058  -3.729   3.165  0.00  0.00           C  
+ATOM    187  O   PRO A  12       8.139  -3.562   2.601  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.740  -2.387   5.279  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       5.460  -1.952   5.987  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       4.362  -2.615   5.160  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.611  -1.626   3.267  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       7.091  -3.323   5.670  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       7.531  -1.647   5.403  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       5.443  -2.302   7.001  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       5.358  -0.867   5.929  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       4.173  -3.609   5.516  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.440  -2.042   5.246  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.463  -4.929   3.205  0.00  0.00           N  
+ATOM    199  CA  SER A  13       7.049  -6.179   2.704  0.00  0.00           C  
+ATOM    200  C   SER A  13       6.897  -6.369   1.185  0.00  0.00           C  
+ATOM    201  O   SER A  13       7.025  -7.488   0.697  0.00  0.00           O  
+ATOM    202  CB  SER A  13       6.458  -7.371   3.472  0.00  0.00           C  
+ATOM    203  OG  SER A  13       6.763  -7.264   4.850  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.535  -4.999   3.613  0.00  0.00           H  
+ATOM    205  HA  SER A  13       8.121  -6.159   2.903  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       5.393  -7.382   3.344  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       6.880  -8.302   3.093  0.00  0.00           H  
+ATOM    208  HG  SER A  13       7.707  -7.394   4.970  0.00  0.00           H  
+ATOM    209  N   SER A  14       6.637  -5.290   0.434  0.00  0.00           N  
+ATOM    210  CA  SER A  14       6.389  -5.315  -1.015  0.00  0.00           C  
+ATOM    211  C   SER A  14       7.332  -4.405  -1.823  0.00  0.00           C  
+ATOM    212  O   SER A  14       7.082  -4.123  -2.993  0.00  0.00           O  
+ATOM    213  CB  SER A  14       4.914  -4.993  -1.265  0.00  0.00           C  
+ATOM    214  OG  SER A  14       4.431  -5.743  -2.358  0.00  0.00           O  
+ATOM    215  H   SER A  14       6.509  -4.415   0.930  0.00  0.00           H  
+ATOM    216  HA  SER A  14       6.562  -6.329  -1.378  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       4.344  -5.236  -0.389  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       4.778  -3.934  -1.457  0.00  0.00           H  
+ATOM    219  HG  SER A  14       3.714  -6.324  -1.987  0.00  0.00           H  
+ATOM    220  N   GLY A  15       8.419  -3.920  -1.202  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       9.451  -3.116  -1.870  0.00  0.00           C  
+ATOM    222  C   GLY A  15       8.984  -1.725  -2.316  0.00  0.00           C  
+ATOM    223  O   GLY A  15       9.539  -1.177  -3.267  0.00  0.00           O  
+ATOM    224  H   GLY A  15       8.573  -4.210  -0.246  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15      10.297  -2.987  -1.194  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15       9.805  -3.652  -2.752  0.00  0.00           H  
+ATOM    227  N   ARG A  16       7.956  -1.164  -1.660  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       7.289   0.084  -2.054  0.00  0.00           C  
+ATOM    229  C   ARG A  16       6.855   0.916  -0.829  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.222   0.366   0.076  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       6.110  -0.243  -2.994  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       5.046  -1.171  -2.378  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       3.923  -1.592  -3.338  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       4.251  -2.811  -4.100  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       4.859  -2.914  -5.274  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       5.289  -1.864  -5.937  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       5.035  -4.095  -5.809  0.00  0.00           N  
+ATOM    238  H   ARG A  16       7.579  -1.676  -0.874  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       8.009   0.663  -2.630  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       5.634   0.678  -3.269  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       6.524  -0.720  -3.880  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       5.538  -2.059  -2.031  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       4.579  -0.652  -1.549  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       3.033  -1.774  -2.766  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       3.669  -0.765  -4.003  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       3.963  -3.694  -3.698  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       5.150  -0.962  -5.521  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       5.761  -1.962  -6.815  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       4.649  -4.894  -5.327  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       5.508  -4.205  -6.684  0.00  0.00           H  
+ATOM    251  N   PRO A  17       7.156   2.230  -0.780  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.782   3.088   0.345  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.261   3.331   0.395  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.586   3.165  -0.624  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.554   4.394   0.119  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.677   4.474  -1.401  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       7.820   3.010  -1.816  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       7.107   2.628   1.279  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       7.009   5.234   0.505  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.548   4.308   0.561  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       6.800   4.914  -1.836  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.540   5.066  -1.707  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       7.349   2.844  -2.766  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       8.876   2.739  -1.855  0.00  0.00           H  
+ATOM    265  N   PRO A  18       4.710   3.739   1.555  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       3.287   4.031   1.686  0.00  0.00           C  
+ATOM    267  C   PRO A  18       2.901   5.305   0.913  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.684   6.256   0.871  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       3.035   4.190   3.187  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       4.385   4.655   3.729  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       5.393   3.949   2.823  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       2.719   3.181   1.316  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       2.274   4.924   3.372  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       2.781   3.223   3.618  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       4.482   5.721   3.654  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       4.518   4.377   4.775  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       6.262   4.562   2.682  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       5.662   2.983   3.253  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.688   5.360   0.336  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       1.185   6.543  -0.353  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.715   7.607   0.655  0.00  0.00           C  
+ATOM    282  O   PRO A  19      -0.124   7.324   1.513  0.00  0.00           O  
+ATOM    283  CB  PRO A  19       0.048   6.014  -1.229  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -0.519   4.852  -0.412  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       0.716   4.275   0.272  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       1.961   6.966  -0.991  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -0.697   6.770  -1.389  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19       0.463   5.630  -2.162  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -1.232   5.201   0.310  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -1.019   4.114  -1.041  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.470   3.937   1.260  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       1.121   3.461  -0.329  0.00  0.00           H  
+ATOM    293  N   SER A  20       1.271   8.822   0.549  0.00  0.00           N  
+ATOM    294  CA  SER A  20       0.852  10.027   1.285  0.00  0.00           C  
+ATOM    295  C   SER A  20      -0.406  10.657   0.683  0.00  0.00           C  
+ATOM    296  O   SER A  20      -0.387  10.916  -0.540  0.00  0.00           O  
+ATOM    297  CB  SER A  20       1.972  11.071   1.284  0.00  0.00           C  
+ATOM    298  OG  SER A  20       3.120  10.541   1.911  0.00  0.00           O  
+ATOM    299  OXT SER A  20      -1.341  10.903   1.473  0.00  0.00           O  
+ATOM    300  H   SER A  20       1.969   8.961  -0.165  0.00  0.00           H  
+ATOM    301  HA  SER A  20       0.601   9.760   2.310  0.00  0.00           H  
+ATOM    302 1HB  SER A  20       2.210  11.338   0.272  0.00  0.00           H  
+ATOM    303 2HB  SER A  20       1.636  11.959   1.824  0.00  0.00           H  
+ATOM    304  HG  SER A  20       2.831  10.040   2.676  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MODEL        2                                                                  
+ATOM      1  N   ASN A   1      -6.919   6.901   0.917  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -7.682   6.025  -0.010  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -6.840   4.889  -0.589  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -7.106   3.741  -0.253  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -8.428   6.847  -1.072  0.00  0.00           C  
+ATOM      6  CG  ASN A   1      -9.504   7.659  -0.362  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1      -9.180   8.568   0.382  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1     -10.768   7.290  -0.468  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -6.513   6.358   1.667  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -6.191   7.398   0.422  0.00  0.00           H  
+ATOM     11 3H   ASN A   1      -7.553   7.592   1.308  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -8.451   5.523   0.581  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -7.743   7.506  -1.571  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -8.886   6.189  -1.811  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1     -11.078   6.519  -1.037  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1     -11.417   7.848   0.064  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -5.819   5.175  -1.412  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -5.020   4.162  -2.130  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -4.244   3.179  -1.224  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -3.761   2.148  -1.693  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -4.073   4.863  -3.128  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -4.831   5.608  -4.250  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -5.010   7.109  -3.963  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -4.110   5.465  -5.592  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -5.631   6.133  -1.665  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -5.709   3.545  -2.710  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -3.472   5.572  -2.591  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -3.451   4.089  -3.583  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -5.820   5.160  -4.359  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -5.173   7.303  -2.907  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -4.124   7.663  -4.273  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -5.867   7.480  -4.526  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -3.114   5.904  -5.535  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -4.023   4.410  -5.855  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -4.683   5.969  -6.371  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -4.181   3.456   0.082  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.537   2.636   1.105  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -4.038   1.181   1.139  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.259   0.273   1.413  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -3.727   3.313   2.471  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -2.520   3.154   3.365  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -1.514   4.139   3.357  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -2.382   2.007   4.169  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -0.365   3.977   4.149  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -1.233   1.840   4.963  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -0.218   2.820   4.947  0.00  0.00           C  
+ATOM     47  OH  TYR A   3       0.909   2.639   5.687  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -4.618   4.309   0.378  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.470   2.610   0.881  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -3.905   4.360   2.315  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -4.610   2.907   2.968  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -1.614   5.025   2.743  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -3.154   1.253   4.165  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3       0.390   4.746   4.148  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -1.110   0.964   5.579  0.00  0.00           H  
+ATOM     56  HH  TYR A   3       1.602   3.248   5.433  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.316   0.947   0.804  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.914  -0.393   0.686  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -5.157  -1.200  -0.382  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -4.755  -2.338  -0.140  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.421  -0.283   0.330  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.214   0.632   1.300  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -8.099  -1.670   0.270  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -9.489   1.191   0.662  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -5.889   1.753   0.580  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.814  -0.911   1.639  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.477   0.157  -0.667  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -8.484   0.062   2.168  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -7.616   1.489   1.603  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.421  -2.428  -0.112  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -8.432  -1.979   1.263  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -8.967  -1.620  -0.389  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -9.235   1.742  -0.245  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4     -10.180   0.385   0.416  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4      -9.973   1.875   1.360  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -4.948  -0.605  -1.564  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -4.253  -1.225  -2.692  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.763  -1.444  -2.393  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -2.186  -2.435  -2.832  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -4.443  -0.345  -3.944  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -4.608  -1.157  -5.242  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -5.950  -0.859  -5.909  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -6.138   0.164  -6.544  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -6.941  -1.718  -5.770  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -5.217   0.365  -1.657  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.707  -2.201  -2.864  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -5.320   0.258  -3.806  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -3.591   0.328  -4.050  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -3.816  -0.901  -5.919  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -4.525  -2.228  -5.051  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -6.847  -2.590  -5.280  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -7.781  -1.439  -6.247  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -2.145  -0.549  -1.610  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.791  -0.749  -1.090  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.713  -1.909  -0.084  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.161  -2.766  -0.210  0.00  0.00           O  
+ATOM     97  CB  TRP A   6      -0.266   0.564  -0.501  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.149   0.501  -0.014  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.254   0.539  -0.795  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.637   0.388   1.358  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.382   0.433  -0.006  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       3.062   0.366   1.327  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       1.023   0.313   2.627  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.844   0.308   2.487  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.800   0.231   3.799  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       3.205   0.246   3.733  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.669   0.277  -1.341  0.00  0.00           H  
+ATOM    108  HA  TRP A   6      -0.144  -1.024  -1.920  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.327   1.320  -1.260  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -0.903   0.868   0.329  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.260   0.636  -1.868  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.347   0.425  -0.348  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6      -0.055   0.327   2.692  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       4.922   0.297   2.403  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       1.315   0.170   4.763  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.791   0.201   4.639  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.646  -1.992   0.877  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.701  -3.105   1.831  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.917  -4.465   1.152  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.290  -5.437   1.570  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.777  -2.856   2.905  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.370  -1.808   3.958  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.595  -1.444   4.805  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -1.255  -2.296   4.897  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.325  -1.238   0.964  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.726  -3.167   2.315  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.670  -2.517   2.417  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -2.988  -3.793   3.422  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -2.023  -0.911   3.448  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.368  -1.013   4.171  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -3.990  -2.337   5.292  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -3.314  -0.721   5.570  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -1.674  -2.706   5.816  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7      -0.651  -3.072   4.431  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -0.606  -1.459   5.148  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.727  -4.538   0.081  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -2.916  -5.759  -0.732  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.597  -6.366  -1.231  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.499  -7.582  -1.342  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -3.803  -5.459  -1.952  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -5.289  -5.218  -1.653  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -6.117  -6.512  -1.588  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -7.591  -6.248  -1.927  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -8.242  -5.337  -0.956  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -3.244  -3.695  -0.159  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.390  -6.527  -0.119  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -3.417  -4.581  -2.432  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -3.718  -6.282  -2.665  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -5.369  -4.715  -0.708  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -5.682  -4.593  -2.456  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -5.718  -7.218  -2.290  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -6.028  -6.959  -0.595  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -7.646  -5.806  -2.903  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -8.119  -7.204  -1.955  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -8.219  -5.741  -0.030  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -7.756  -4.452  -0.934  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -9.207  -5.176  -1.217  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -0.598  -5.528  -1.520  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.739  -5.926  -1.971  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.608  -6.494  -0.823  0.00  0.00           C  
+ATOM    161  O   ASP A   9       2.705  -7.002  -1.069  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       1.387  -4.675  -2.604  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       2.379  -4.929  -3.745  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9       2.947  -6.037  -3.844  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9       2.565  -3.967  -4.523  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -0.766  -4.537  -1.399  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.643  -6.697  -2.737  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       0.598  -4.057  -2.988  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       1.882  -4.089  -1.828  0.00  0.00           H  
+ATOM    170  N   GLY A  10       1.186  -6.365   0.446  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       1.973  -6.740   1.632  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.532  -5.564   2.451  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.354  -5.783   3.347  0.00  0.00           O  
+ATOM    174  H   GLY A  10       0.256  -5.985   0.605  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.333  -7.328   2.291  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.812  -7.373   1.342  0.00  0.00           H  
+ATOM    177  N   GLY A  11       2.105  -4.325   2.171  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.505  -3.133   2.918  0.00  0.00           C  
+ATOM    179  C   GLY A  11       4.031  -2.908   2.926  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.638  -2.849   1.855  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.516  -4.204   1.357  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       2.038  -2.263   2.459  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.123  -3.226   3.932  0.00  0.00           H  
+ATOM    184  N   PRO A  12       4.693  -2.777   4.097  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.148  -2.595   4.163  0.00  0.00           C  
+ATOM    186  C   PRO A  12       6.957  -3.724   3.506  0.00  0.00           C  
+ATOM    187  O   PRO A  12       8.099  -3.504   3.110  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.499  -2.497   5.652  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       5.185  -2.111   6.326  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       4.127  -2.769   5.441  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.400  -1.655   3.673  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       6.853  -3.440   6.022  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       7.273  -1.749   5.829  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       5.140  -2.494   7.327  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       5.066  -1.027   6.297  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       3.932  -3.771   5.772  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.200  -2.199   5.491  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.381  -4.927   3.375  0.00  0.00           N  
+ATOM    199  CA  SER A  13       7.056  -6.106   2.818  0.00  0.00           C  
+ATOM    200  C   SER A  13       7.017  -6.159   1.275  0.00  0.00           C  
+ATOM    201  O   SER A  13       7.448  -7.142   0.680  0.00  0.00           O  
+ATOM    202  CB  SER A  13       6.474  -7.366   3.479  0.00  0.00           C  
+ATOM    203  OG  SER A  13       7.471  -8.354   3.649  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.406  -5.030   3.647  0.00  0.00           H  
+ATOM    205  HA  SER A  13       8.108  -6.044   3.095  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       6.071  -7.105   4.439  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       5.651  -7.761   2.885  0.00  0.00           H  
+ATOM    208  HG  SER A  13       8.161  -8.011   4.225  0.00  0.00           H  
+ATOM    209  N   SER A  14       6.529  -5.095   0.619  0.00  0.00           N  
+ATOM    210  CA  SER A  14       6.302  -5.007  -0.834  0.00  0.00           C  
+ATOM    211  C   SER A  14       7.350  -4.180  -1.591  0.00  0.00           C  
+ATOM    212  O   SER A  14       7.202  -3.947  -2.792  0.00  0.00           O  
+ATOM    213  CB  SER A  14       4.935  -4.369  -1.091  0.00  0.00           C  
+ATOM    214  OG  SER A  14       3.965  -4.957  -0.265  0.00  0.00           O  
+ATOM    215  H   SER A  14       6.105  -4.361   1.178  0.00  0.00           H  
+ATOM    216  HA  SER A  14       6.289  -6.011  -1.260  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       4.989  -3.318  -0.882  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       4.656  -4.489  -2.138  0.00  0.00           H  
+ATOM    219  HG  SER A  14       3.647  -5.806  -0.666  0.00  0.00           H  
+ATOM    220  N   GLY A  15       8.373  -3.654  -0.908  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       9.445  -2.839  -1.497  0.00  0.00           C  
+ATOM    222  C   GLY A  15       9.049  -1.393  -1.840  0.00  0.00           C  
+ATOM    223  O   GLY A  15       9.855  -0.483  -1.659  0.00  0.00           O  
+ATOM    224  H   GLY A  15       8.407  -3.857   0.081  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15      10.287  -2.809  -0.807  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15       9.786  -3.320  -2.417  0.00  0.00           H  
+ATOM    227  N   ARG A  16       7.819  -1.163  -2.323  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       7.267   0.167  -2.623  0.00  0.00           C  
+ATOM    229  C   ARG A  16       6.861   0.912  -1.332  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.127   0.334  -0.526  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       6.068  -0.003  -3.571  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       5.414   1.333  -3.977  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       4.325   1.183  -5.049  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       3.153   0.425  -4.574  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       2.950  -0.885  -4.652  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       3.781  -1.719  -5.224  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       1.882  -1.432  -4.137  0.00  0.00           N  
+ATOM    238  H   ARG A  16       7.253  -1.991  -2.486  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       8.044   0.730  -3.139  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       6.405  -0.501  -4.460  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       5.323  -0.632  -3.081  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       4.972   1.774  -3.104  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       6.184   1.994  -4.374  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       4.002   2.161  -5.348  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       4.750   0.718  -5.940  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       2.420   0.960  -4.143  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       4.628  -1.423  -5.666  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       3.523  -2.718  -5.142  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       1.142  -0.941  -3.681  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       1.880  -2.460  -4.219  0.00  0.00           H  
+ATOM    251  N   PRO A  17       7.251   2.191  -1.139  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.871   2.981   0.038  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.351   3.255   0.119  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.652   3.132  -0.890  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.673   4.286  -0.077  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.906   4.435  -1.577  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       8.086   2.989  -2.028  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       7.180   2.447   0.936  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       7.111   5.116   0.307  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.633   4.169   0.430  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       7.061   4.889  -2.058  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.783   5.042  -1.795  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       7.767   2.872  -3.046  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       9.129   2.692  -1.905  0.00  0.00           H  
+ATOM    265  N   PRO A  18       4.829   3.643   1.300  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       3.403   3.904   1.495  0.00  0.00           C  
+ATOM    267  C   PRO A  18       2.923   5.149   0.722  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.644   6.147   0.672  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       3.222   4.081   3.006  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       4.595   4.541   3.490  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       5.551   3.810   2.554  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       2.843   3.030   1.174  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       2.475   4.822   3.217  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       2.979   3.120   3.459  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       4.701   5.605   3.396  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       4.768   4.278   4.535  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       6.440   4.391   2.399  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       5.790   2.828   2.968  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.700   5.129   0.152  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       1.125   6.268  -0.557  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.575   7.306   0.435  0.00  0.00           C  
+ATOM    282  O   PRO A  19      -0.344   7.009   1.205  0.00  0.00           O  
+ATOM    283  CB  PRO A  19       0.028   5.669  -1.440  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -0.475   4.478  -0.625  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       0.782   3.998   0.106  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       1.879   6.738  -1.190  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -0.759   6.379  -1.608  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19       0.474   5.307  -2.369  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -1.233   4.781   0.071  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -0.891   3.701  -1.265  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.533   3.683   1.101  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       1.245   3.191  -0.461  0.00  0.00           H  
+ATOM    293  N   SER A  20       1.145   8.513   0.410  0.00  0.00           N  
+ATOM    294  CA  SER A  20       0.696   9.699   1.148  0.00  0.00           C  
+ATOM    295  C   SER A  20      -0.231  10.590   0.317  0.00  0.00           C  
+ATOM    296  O   SER A  20      -1.174  11.122   0.943  0.00  0.00           O  
+ATOM    297  CB  SER A  20       1.911  10.475   1.671  0.00  0.00           C  
+ATOM    298  OG  SER A  20       2.908  10.615   0.673  0.00  0.00           O  
+ATOM    299  OXT SER A  20      -0.010  10.716  -0.908  0.00  0.00           O  
+ATOM    300  H   SER A  20       1.907   8.704  -0.228  0.00  0.00           H  
+ATOM    301  HA  SER A  20       0.105   9.384   2.006  0.00  0.00           H  
+ATOM    302 1HB  SER A  20       1.593  11.450   1.985  0.00  0.00           H  
+ATOM    303 2HB  SER A  20       2.334   9.927   2.515  0.00  0.00           H  
+ATOM    304  HG  SER A  20       3.569  11.243   0.968  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MODEL        3                                                                  
+ATOM      1  N   ASN A   1      -6.589   7.754  -0.571  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -7.389   6.514  -0.405  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -6.780   5.255  -1.052  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -7.487   4.266  -1.200  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -8.845   6.767  -0.857  0.00  0.00           C  
+ATOM      6  CG  ASN A   1      -9.521   7.797   0.047  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1      -8.922   8.257   1.009  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1     -10.737   8.213  -0.242  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -5.686   7.665  -0.127  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -6.476   7.977  -1.550  0.00  0.00           H  
+ATOM     11 3H   ASN A   1      -7.086   8.512  -0.117  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -7.439   6.298   0.664  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -8.842   7.132  -1.866  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -9.424   5.843  -0.797  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1     -11.261   7.891  -1.039  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1     -11.125   8.874   0.414  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -5.480   5.231  -1.392  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -4.832   4.056  -2.001  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -4.184   3.091  -0.988  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -3.640   2.061  -1.389  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -3.822   4.536  -3.062  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -4.511   4.943  -4.385  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -4.400   6.448  -4.640  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -3.900   4.181  -5.563  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -4.873   6.022  -1.250  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -5.585   3.455  -2.516  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -3.291   5.384  -2.674  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -3.120   3.726  -3.266  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -5.571   4.692  -4.345  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -4.890   6.998  -3.839  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -3.352   6.744  -4.701  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -4.890   6.694  -5.582  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -2.824   4.351  -5.605  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -4.093   3.114  -5.443  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -4.353   4.513  -6.498  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -4.252   3.387   0.316  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.584   2.609   1.367  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -4.003   1.131   1.375  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.167   0.257   1.584  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -3.828   3.261   2.737  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -2.625   3.147   3.649  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -1.668   4.180   3.663  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -2.431   2.000   4.441  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -0.512   4.070   4.456  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -1.274   1.880   5.234  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -0.306   2.910   5.235  0.00  0.00           C  
+ATOM     47  OH  TYR A   3       0.828   2.769   5.969  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -4.725   4.233   0.586  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.512   2.640   1.167  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -4.053   4.300   2.590  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -4.698   2.806   3.217  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -1.819   5.061   3.058  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -3.165   1.208   4.426  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3       0.213   4.873   4.463  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -1.103   1.003   5.839  0.00  0.00           H  
+ATOM     56  HH  TYR A   3       1.448   3.481   5.798  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.279   0.849   1.085  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.832  -0.507   0.951  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -5.162  -1.250  -0.218  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -4.774  -2.406  -0.080  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.364  -0.433   0.749  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.090   0.338   1.884  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -7.975  -1.842   0.631  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -9.163   1.282   1.326  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -5.896   1.633   0.934  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.625  -1.065   1.865  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.545   0.087  -0.194  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -8.556  -0.369   2.543  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -7.392   0.938   2.466  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.611  -2.347  -0.263  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -7.710  -2.438   1.506  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -9.061  -1.773   0.565  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -8.695   2.037   0.690  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4      -9.891   0.720   0.741  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4      -9.673   1.781   2.148  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -5.009  -0.575  -1.365  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -4.335  -1.103  -2.553  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.863  -1.419  -2.249  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -2.395  -2.511  -2.553  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -4.497  -0.107  -3.724  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -4.929  -0.785  -5.036  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -3.943  -1.843  -5.517  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -4.193  -3.032  -5.373  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -2.824  -1.457  -6.094  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -5.260   0.403  -1.368  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.818  -2.043  -2.816  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -5.239   0.620  -3.454  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -3.566   0.435  -3.888  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -5.882  -1.252  -4.881  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -5.049  -0.026  -5.809  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -2.586  -0.491  -6.238  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -2.170  -2.206  -6.277  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -2.154  -0.497  -1.588  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.771  -0.717  -1.152  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.632  -1.844  -0.111  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.256  -2.687  -0.229  0.00  0.00           O  
+ATOM     97  CB  TRP A   6      -0.212   0.604  -0.620  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.197   0.514  -0.129  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.296   0.452  -0.915  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.679   0.425   1.247  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.420   0.332  -0.121  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       3.101   0.324   1.215  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       1.066   0.422   2.519  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.882   0.249   2.375  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.839   0.334   3.694  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       3.243   0.260   3.625  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.607   0.391  -1.386  0.00  0.00           H  
+ATOM    108  HA  TRP A   6      -0.178  -1.016  -2.020  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.248   1.329  -1.411  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -0.841   0.958   0.197  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.289   0.483  -1.998  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.387   0.296  -0.451  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6      -0.010   0.498   2.586  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       4.957   0.179   2.290  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       1.352   0.341   4.659  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.829   0.212   4.531  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.520  -1.904   0.893  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.537  -3.007   1.858  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.844  -4.359   1.198  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.228  -5.350   1.586  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.520  -2.723   3.008  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.010  -1.728   4.070  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.122  -1.497   5.096  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -0.775  -2.236   4.826  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.201  -1.155   0.992  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.534  -3.107   2.271  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.422  -2.325   2.584  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -2.740  -3.665   3.514  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -1.763  -0.780   3.597  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.006  -1.098   4.599  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -3.380  -2.437   5.585  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -2.791  -0.787   5.854  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -0.973  -3.222   5.249  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7       0.080  -2.296   4.155  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -0.521  -1.546   5.630  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.716  -4.413   0.176  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -2.930  -5.631  -0.629  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.639  -6.169  -1.261  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.492  -7.384  -1.349  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -3.989  -5.413  -1.725  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -5.424  -5.638  -1.230  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -6.411  -5.713  -2.404  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -6.685  -4.341  -3.038  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -6.352  -4.311  -4.482  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -3.241  -3.572  -0.051  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.274  -6.422   0.036  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -3.906  -4.405  -2.084  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -3.797  -6.130  -2.525  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -5.464  -6.558  -0.680  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -5.719  -4.846  -0.542  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -6.003  -6.362  -3.154  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -7.356  -6.108  -2.033  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -7.726  -4.108  -2.919  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -6.117  -3.577  -2.500  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -5.352  -4.135  -4.636  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -6.602  -5.176  -4.938  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -6.827  -3.549  -4.942  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -0.694  -5.301  -1.644  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.627  -5.715  -2.141  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.545  -6.280  -1.027  0.00  0.00           C  
+ATOM    161  O   ASP A   9       2.653  -6.733  -1.322  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       1.362  -4.545  -2.833  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       0.631  -3.826  -3.974  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9       0.959  -2.631  -4.185  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9      -0.157  -4.486  -4.688  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -0.905  -4.313  -1.586  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.482  -6.505  -2.880  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       1.582  -3.813  -2.080  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       2.279  -4.946  -3.266  0.00  0.00           H  
+ATOM    170  N   GLY A  10       1.135  -6.232   0.250  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       1.917  -6.656   1.417  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.414  -5.500   2.294  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.054  -5.736   3.320  0.00  0.00           O  
+ATOM    174  H   GLY A  10       0.200  -5.879   0.438  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.298  -7.304   2.035  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.784  -7.233   1.096  0.00  0.00           H  
+ATOM    177  N   GLY A  11       2.142  -4.244   1.916  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.643  -3.083   2.643  0.00  0.00           C  
+ATOM    179  C   GLY A  11       4.182  -3.056   2.660  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.791  -3.197   1.594  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.623  -4.089   1.059  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       2.286  -2.178   2.156  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.244  -3.115   3.654  0.00  0.00           H  
+ATOM    184  N   PRO A  12       4.842  -2.900   3.832  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.302  -2.829   3.917  0.00  0.00           C  
+ATOM    186  C   PRO A  12       7.030  -4.020   3.276  0.00  0.00           C  
+ATOM    187  O   PRO A  12       8.132  -3.843   2.757  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.642  -2.717   5.411  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       5.352  -2.223   6.059  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       4.260  -2.809   5.166  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.628  -1.916   3.416  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       6.925  -3.673   5.809  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       7.463  -2.016   5.581  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       5.263  -2.588   7.064  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       5.314  -1.133   6.017  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       3.974  -3.782   5.516  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.381  -2.165   5.191  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.424  -5.220   3.257  0.00  0.00           N  
+ATOM    199  CA  SER A  13       7.055  -6.413   2.675  0.00  0.00           C  
+ATOM    200  C   SER A  13       7.230  -6.327   1.155  0.00  0.00           C  
+ATOM    201  O   SER A  13       8.109  -6.992   0.615  0.00  0.00           O  
+ATOM    202  CB  SER A  13       6.276  -7.683   3.042  0.00  0.00           C  
+ATOM    203  OG  SER A  13       5.083  -7.810   2.296  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.479  -5.307   3.613  0.00  0.00           H  
+ATOM    205  HA  SER A  13       8.051  -6.506   3.109  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       6.897  -8.537   2.850  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       6.031  -7.660   4.105  0.00  0.00           H  
+ATOM    208  HG  SER A  13       5.284  -8.181   1.431  0.00  0.00           H  
+ATOM    209  N   SER A  14       6.424  -5.506   0.464  0.00  0.00           N  
+ATOM    210  CA  SER A  14       6.562  -5.254  -0.977  0.00  0.00           C  
+ATOM    211  C   SER A  14       7.683  -4.260  -1.316  0.00  0.00           C  
+ATOM    212  O   SER A  14       7.958  -4.028  -2.492  0.00  0.00           O  
+ATOM    213  CB  SER A  14       5.232  -4.754  -1.561  0.00  0.00           C  
+ATOM    214  OG  SER A  14       4.689  -5.759  -2.390  0.00  0.00           O  
+ATOM    215  H   SER A  14       5.730  -4.974   0.980  0.00  0.00           H  
+ATOM    216  HA  SER A  14       6.816  -6.193  -1.471  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       4.548  -4.536  -0.764  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       5.400  -3.866  -2.170  0.00  0.00           H  
+ATOM    219  HG  SER A  14       3.898  -6.171  -1.941  0.00  0.00           H  
+ATOM    220  N   GLY A  15       8.320  -3.632  -0.318  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       9.452  -2.715  -0.493  0.00  0.00           C  
+ATOM    222  C   GLY A  15       9.088  -1.324  -1.031  0.00  0.00           C  
+ATOM    223  O   GLY A  15       9.745  -0.349  -0.674  0.00  0.00           O  
+ATOM    224  H   GLY A  15       8.043  -3.844   0.636  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15       9.948  -2.591   0.468  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15      10.165  -3.167  -1.183  0.00  0.00           H  
+ATOM    227  N   ARG A  16       8.043  -1.206  -1.866  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       7.509   0.078  -2.349  0.00  0.00           C  
+ATOM    229  C   ARG A  16       6.942   0.905  -1.177  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.183   0.348  -0.380  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       6.426  -0.188  -3.413  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       5.953   1.107  -4.102  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       4.797   0.884  -5.083  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       5.176  -0.019  -6.186  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       4.649  -1.200  -6.493  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       3.626  -1.720  -5.848  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       5.165  -1.891  -7.482  0.00  0.00           N  
+ATOM    238  H   ARG A  16       7.615  -2.078  -2.159  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       8.337   0.615  -2.807  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       6.828  -0.848  -4.157  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       5.573  -0.680  -2.944  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       5.630   1.797  -3.346  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       6.793   1.555  -4.637  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       3.970   0.454  -4.552  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       4.515   1.851  -5.503  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       5.943   0.289  -6.761  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       3.180  -1.223  -5.093  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       3.231  -2.612  -6.088  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       5.951  -1.541  -8.001  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       4.778  -2.789  -7.706  0.00  0.00           H  
+ATOM    251  N   PRO A  17       7.224   2.222  -1.082  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.670   3.081  -0.030  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.138   3.240  -0.131  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.571   3.021  -1.206  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.384   4.430  -0.195  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.755   4.460  -1.675  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       8.084   2.998  -1.964  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       6.923   2.656   0.942  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       6.729   5.243   0.053  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.293   4.437   0.408  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       6.932   4.798  -2.274  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.607   5.114  -1.870  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       7.877   2.763  -2.990  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       9.127   2.798  -1.720  0.00  0.00           H  
+ATOM    265  N   PRO A  18       4.461   3.639   0.965  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       3.015   3.863   0.981  0.00  0.00           C  
+ATOM    267  C   PRO A  18       2.598   5.121   0.193  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.428   5.993  -0.068  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       2.645   3.981   2.465  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       3.916   4.525   3.112  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       5.026   3.878   2.287  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       2.518   2.995   0.551  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       1.825   4.659   2.602  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       2.430   2.993   2.869  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       3.957   5.595   3.042  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       3.983   4.249   4.165  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       5.870   4.536   2.218  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       5.309   2.925   2.736  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.304   5.247  -0.167  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       0.774   6.401  -0.902  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.569   7.659  -0.043  0.00  0.00           C  
+ATOM    282  O   PRO A  19       0.515   8.755  -0.597  0.00  0.00           O  
+ATOM    283  CB  PRO A  19      -0.568   5.927  -1.467  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -1.027   4.877  -0.459  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       0.279   4.224  -0.018  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       1.443   6.655  -1.727  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -1.269   6.738  -1.523  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19      -0.411   5.458  -2.438  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -1.528   5.334   0.372  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -1.691   4.148  -0.918  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.212   3.908   1.005  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       0.512   3.395  -0.684  0.00  0.00           H  
+ATOM    293  N   SER A  20       0.445   7.509   1.283  0.00  0.00           N  
+ATOM    294  CA  SER A  20       0.349   8.586   2.279  0.00  0.00           C  
+ATOM    295  C   SER A  20       1.387   8.402   3.380  0.00  0.00           C  
+ATOM    296  O   SER A  20       1.887   9.446   3.847  0.00  0.00           O  
+ATOM    297  CB  SER A  20      -1.064   8.699   2.867  0.00  0.00           C  
+ATOM    298  OG  SER A  20      -1.468   7.515   3.527  0.00  0.00           O  
+ATOM    299  OXT SER A  20       1.609   7.229   3.761  0.00  0.00           O  
+ATOM    300  H   SER A  20       0.533   6.584   1.677  0.00  0.00           H  
+ATOM    301  HA  SER A  20       0.581   9.535   1.797  0.00  0.00           H  
+ATOM    302 1HB  SER A  20      -1.081   9.509   3.570  0.00  0.00           H  
+ATOM    303 2HB  SER A  20      -1.771   8.923   2.068  0.00  0.00           H  
+ATOM    304  HG  SER A  20      -0.877   7.386   4.279  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MODEL        4                                                                  
+ATOM      1  N   ASN A   1      -7.996   5.298  -0.779  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -7.990   4.067  -1.611  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -6.595   3.515  -1.890  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -6.409   2.326  -1.667  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -8.817   4.236  -2.891  0.00  0.00           C  
+ATOM      6  CG  ASN A   1     -10.260   4.485  -2.482  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1     -10.595   5.590  -2.090  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1     -11.097   3.465  -2.420  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -7.499   5.145   0.089  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -7.580   6.071  -1.279  0.00  0.00           H  
+ATOM     11 3H   ASN A   1      -8.957   5.549  -0.571  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -8.483   3.285  -1.032  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -8.449   5.070  -3.456  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -8.756   3.334  -3.502  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1     -10.855   2.524  -2.688  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1     -12.028   3.700  -2.110  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -5.616   4.322  -2.330  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -4.255   3.853  -2.649  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -3.609   2.984  -1.550  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -2.969   1.976  -1.846  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -3.364   5.074  -2.976  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -3.035   5.287  -4.464  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -2.298   4.086  -5.067  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -4.283   5.609  -5.288  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -5.808   5.284  -2.567  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -4.324   3.212  -3.525  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -3.868   5.953  -2.622  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -2.413   4.965  -2.461  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -2.366   6.146  -4.524  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -1.513   3.750  -4.388  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -2.985   3.262  -5.255  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -1.840   4.380  -6.010  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -4.988   4.779  -5.260  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -4.758   6.509  -4.897  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -3.993   5.793  -6.323  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -3.829   3.342  -0.280  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.352   2.587   0.881  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -3.885   1.142   0.933  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.182   0.255   1.410  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -3.714   3.350   2.166  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -2.571   3.426   3.153  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -1.826   4.614   3.277  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -2.238   2.307   3.939  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -0.758   4.692   4.190  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -1.172   2.377   4.854  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -0.434   3.573   4.988  0.00  0.00           C  
+ATOM     47  OH  TYR A   3       0.564   3.651   5.909  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -4.312   4.211  -0.115  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.266   2.531   0.815  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -4.003   4.349   1.900  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -4.571   2.877   2.649  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -2.070   5.479   2.676  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -2.810   1.398   3.838  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3      -0.198   5.613   4.266  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -0.916   1.531   5.472  0.00  0.00           H  
+ATOM     56  HH  TYR A   3       0.792   4.562   6.104  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.099   0.891   0.414  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.705  -0.444   0.348  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -4.882  -1.332  -0.589  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -4.466  -2.411  -0.181  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.191  -0.380  -0.086  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.038   0.622   0.737  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -7.836  -1.778  -0.048  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -8.051   0.390   2.254  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -5.574   1.642  -0.074  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.657  -0.892   1.341  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.230  -0.049  -1.125  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -7.652   1.607   0.557  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -9.066   0.590   0.375  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.351  -2.438  -0.767  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -7.744  -2.214   0.948  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -8.891  -1.708  -0.312  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -8.463  -0.592   2.485  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4      -7.043   0.470   2.659  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4      -8.674   1.150   2.725  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -4.600  -0.857  -1.811  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -3.712  -1.519  -2.775  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.314  -1.759  -2.183  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -1.803  -2.878  -2.255  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -3.634  -0.674  -4.062  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -4.792  -0.953  -5.031  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -4.542  -2.214  -5.853  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -4.848  -3.320  -5.436  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -3.968  -2.093  -7.036  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -4.948   0.063  -2.038  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.122  -2.500  -3.019  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -3.656   0.364  -3.792  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -2.694  -0.880  -4.579  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -5.696  -1.078  -4.467  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -4.898  -0.106  -5.710  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -3.693  -1.205  -7.419  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -3.810  -2.965  -7.512  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -1.713  -0.734  -1.561  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.400  -0.841  -0.917  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.353  -1.931   0.171  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.567  -2.757   0.175  0.00  0.00           O  
+ATOM     97  CB  TRP A   6       0.005   0.531  -0.361  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.372   0.565   0.247  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.532   0.625  -0.442  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.747   0.483   1.657  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.594   0.565   0.438  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       3.169   0.480   1.743  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       1.032   0.393   2.872  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.853   0.395   2.965  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.707   0.293   4.104  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       3.112   0.296   4.154  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.186   0.167  -1.566  0.00  0.00           H  
+ATOM    108  HA  TRP A   6       0.329  -1.126  -1.676  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.024   1.242  -1.164  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -0.716   0.838   0.395  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.616   0.684  -1.518  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.579   0.565   0.164  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6      -0.046   0.398   2.841  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       4.933   0.389   2.975  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       1.142   0.218   5.022  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.621   0.223   5.106  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.360  -1.961   1.060  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.529  -3.019   2.059  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.819  -4.386   1.425  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.263  -5.376   1.896  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.645  -2.652   3.058  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.265  -1.546   4.060  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.504  -1.129   4.860  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -1.186  -1.989   5.054  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.062  -1.224   1.020  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.594  -3.131   2.603  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.499  -2.320   2.500  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -2.915  -3.543   3.627  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -1.898  -0.680   3.518  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.273  -0.762   4.181  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -3.892  -1.977   5.422  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -3.243  -0.331   5.557  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -1.516  -2.875   5.597  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7      -0.258  -2.212   4.531  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -0.990  -1.188   5.767  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.636  -4.457   0.360  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -3.000  -5.710  -0.323  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.774  -6.506  -0.772  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.764  -7.728  -0.650  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -3.907  -5.437  -1.541  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -4.842  -6.624  -1.830  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -6.265  -6.337  -1.328  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -7.114  -7.612  -1.287  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -6.875  -8.381  -0.042  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -3.089  -3.595   0.056  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.534  -6.330   0.396  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -4.501  -4.566  -1.344  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -3.287  -5.248  -2.418  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -4.871  -6.798  -2.888  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -4.454  -7.529  -1.364  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -6.209  -5.923  -0.340  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -6.730  -5.625  -2.013  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -8.151  -7.343  -1.337  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -6.877  -8.220  -2.164  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -5.889  -8.591   0.053  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -7.168  -7.840   0.762  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -7.394  -9.248  -0.055  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -0.756  -5.802  -1.272  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.519  -6.369  -1.719  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.466  -6.750  -0.552  0.00  0.00           C  
+ATOM    161  O   ASP A   9       2.432  -7.481  -0.764  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       1.147  -5.356  -2.691  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       2.157  -5.999  -3.643  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9       3.367  -5.733  -3.478  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9       1.687  -6.708  -4.559  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -0.906  -4.806  -1.394  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.309  -7.281  -2.280  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       0.365  -4.908  -3.272  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       1.602  -4.539  -2.136  0.00  0.00           H  
+ATOM    170  N   GLY A  10       1.166  -6.322   0.686  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       1.940  -6.628   1.899  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.455  -5.411   2.687  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.258  -5.576   3.605  0.00  0.00           O  
+ATOM    174  H   GLY A  10       0.283  -5.838   0.808  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.308  -7.208   2.569  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.799  -7.243   1.641  0.00  0.00           H  
+ATOM    177  N   GLY A  11       2.025  -4.190   2.349  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.501  -2.933   2.929  0.00  0.00           C  
+ATOM    179  C   GLY A  11       4.035  -2.809   2.947  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.636  -2.640   1.883  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.426  -4.116   1.535  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       2.113  -2.118   2.323  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.088  -2.828   3.930  0.00  0.00           H  
+ATOM    184  N   PRO A  12       4.714  -2.887   4.112  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.177  -2.830   4.177  0.00  0.00           C  
+ATOM    186  C   PRO A  12       6.894  -3.885   3.322  0.00  0.00           C  
+ATOM    187  O   PRO A  12       8.009  -3.632   2.870  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.543  -2.996   5.656  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       5.275  -2.581   6.397  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       4.158  -3.015   5.451  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.493  -1.842   3.843  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       6.796  -4.015   5.874  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       7.390  -2.365   5.930  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       5.198  -3.086   7.340  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       5.255  -1.495   6.510  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       3.876  -4.032   5.645  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.286  -2.377   5.597  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.272  -5.048   3.067  0.00  0.00           N  
+ATOM    199  CA  SER A  13       6.859  -6.106   2.234  0.00  0.00           C  
+ATOM    200  C   SER A  13       6.522  -5.983   0.737  0.00  0.00           C  
+ATOM    201  O   SER A  13       6.868  -6.883  -0.022  0.00  0.00           O  
+ATOM    202  CB  SER A  13       6.517  -7.490   2.809  0.00  0.00           C  
+ATOM    203  OG  SER A  13       5.152  -7.809   2.665  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.336  -5.211   3.432  0.00  0.00           H  
+ATOM    205  HA  SER A  13       7.945  -6.021   2.301  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       7.100  -8.230   2.296  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       6.776  -7.504   3.869  0.00  0.00           H  
+ATOM    208  HG  SER A  13       4.960  -7.945   1.731  0.00  0.00           H  
+ATOM    209  N   SER A  14       5.879  -4.888   0.300  0.00  0.00           N  
+ATOM    210  CA  SER A  14       5.483  -4.641  -1.100  0.00  0.00           C  
+ATOM    211  C   SER A  14       6.594  -4.035  -1.979  0.00  0.00           C  
+ATOM    212  O   SER A  14       6.388  -3.818  -3.171  0.00  0.00           O  
+ATOM    213  CB  SER A  14       4.291  -3.674  -1.143  0.00  0.00           C  
+ATOM    214  OG  SER A  14       3.244  -4.095  -0.294  0.00  0.00           O  
+ATOM    215  H   SER A  14       5.551  -4.209   0.982  0.00  0.00           H  
+ATOM    216  HA  SER A  14       5.168  -5.582  -1.554  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       4.621  -2.702  -0.832  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       3.920  -3.612  -2.167  0.00  0.00           H  
+ATOM    219  HG  SER A  14       2.497  -3.486  -0.373  0.00  0.00           H  
+ATOM    220  N   GLY A  15       7.760  -3.685  -1.413  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       8.865  -3.074  -2.168  0.00  0.00           C  
+ATOM    222  C   GLY A  15       8.636  -1.615  -2.597  0.00  0.00           C  
+ATOM    223  O   GLY A  15       9.329  -1.131  -3.490  0.00  0.00           O  
+ATOM    224  H   GLY A  15       7.882  -3.900  -0.435  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15       9.772  -3.108  -1.566  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15       9.044  -3.662  -3.070  0.00  0.00           H  
+ATOM    227  N   ARG A  16       7.674  -0.910  -1.982  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       7.291   0.476  -2.303  0.00  0.00           C  
+ATOM    229  C   ARG A  16       6.926   1.243  -1.019  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.299   0.641  -0.143  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       6.095   0.409  -3.275  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       5.718   1.773  -3.872  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       4.496   1.668  -4.787  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       4.170   2.979  -5.381  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       4.620   3.482  -6.525  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       5.433   2.811  -7.310  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       4.260   4.687  -6.902  0.00  0.00           N  
+ATOM    238  H   ARG A  16       7.165  -1.374  -1.242  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       8.134   0.962  -2.796  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       6.346  -0.256  -4.078  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       5.232  -0.006  -2.753  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       5.497   2.454  -3.073  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       6.563   2.153  -4.447  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       4.704   0.968  -5.573  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       3.644   1.325  -4.197  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       3.562   3.570  -4.839  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       5.714   1.890  -7.023  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       5.768   3.197  -8.173  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       3.648   5.240  -6.327  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       4.602   5.065  -7.766  0.00  0.00           H  
+ATOM    251  N   PRO A  17       7.244   2.550  -0.887  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.834   3.351   0.272  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.302   3.529   0.364  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.613   3.423  -0.657  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.546   4.701   0.109  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.773   4.807  -1.398  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       8.043   3.359  -1.797  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       7.191   2.864   1.180  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       6.929   5.505   0.461  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.509   4.667   0.619  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       6.902   5.190  -1.895  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.614   5.459  -1.638  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       7.743   3.188  -2.813  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       9.099   3.130  -1.650  0.00  0.00           H  
+ATOM    265  N   PRO A  18       4.761   3.830   1.562  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       3.330   4.041   1.763  0.00  0.00           C  
+ATOM    267  C   PRO A  18       2.857   5.363   1.124  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.561   6.372   1.215  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       3.122   4.052   3.280  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       4.467   4.528   3.826  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       5.475   3.963   2.826  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       2.789   3.199   1.338  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       2.336   4.730   3.554  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       2.928   3.039   3.629  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       4.513   5.600   3.853  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       4.649   4.156   4.834  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       6.306   4.633   2.716  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       5.808   2.979   3.157  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.664   5.391   0.501  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       1.089   6.605  -0.071  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.480   7.494   1.027  0.00  0.00           C  
+ATOM    282  O   PRO A  19      -0.248   6.998   1.889  0.00  0.00           O  
+ATOM    283  CB  PRO A  19       0.030   6.099  -1.056  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -0.452   4.787  -0.431  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       0.776   4.254   0.301  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       1.850   7.167  -0.612  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -0.777   6.800  -1.143  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19       0.507   5.887  -2.015  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -1.258   4.965   0.255  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -0.783   4.076  -1.188  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.491   3.835   1.247  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       1.276   3.508  -0.318  0.00  0.00           H  
+ATOM    293  N   SER A  20       0.773   8.801   0.994  0.00  0.00           N  
+ATOM    294  CA  SER A  20       0.156   9.787   1.896  0.00  0.00           C  
+ATOM    295  C   SER A  20      -1.215  10.283   1.430  0.00  0.00           C  
+ATOM    296  O   SER A  20      -1.579  10.082   0.257  0.00  0.00           O  
+ATOM    297  CB  SER A  20       1.058  11.002   2.110  0.00  0.00           C  
+ATOM    298  OG  SER A  20       0.393  11.759   3.099  0.00  0.00           O  
+ATOM    299  OXT SER A  20      -1.809  10.968   2.306  0.00  0.00           O  
+ATOM    300  H   SER A  20       1.346   9.144   0.240  0.00  0.00           H  
+ATOM    301  HA  SER A  20      -0.001   9.315   2.867  0.00  0.00           H  
+ATOM    302 1HB  SER A  20       2.029  10.699   2.452  0.00  0.00           H  
+ATOM    303 2HB  SER A  20       1.131  11.580   1.186  0.00  0.00           H  
+ATOM    304  HG  SER A  20      -0.584  11.562   2.923  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MODEL        5                                                                  
+ATOM      1  N   ASN A   1      -8.175   6.595  -1.658  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -7.203   6.342  -0.567  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -5.868   5.761  -1.012  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -4.867   6.207  -0.471  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -7.789   5.475   0.551  0.00  0.00           C  
+ATOM      6  CG  ASN A   1      -8.492   6.367   1.553  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1      -9.561   6.874   1.264  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1      -7.884   6.637   2.695  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -7.762   7.177  -2.374  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -8.486   5.725  -2.069  0.00  0.00           H  
+ATOM     11 3H   ASN A   1      -8.985   7.069  -1.275  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -6.948   7.307  -0.124  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -8.491   4.779   0.135  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -6.995   4.925   1.061  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1      -6.974   6.276   2.941  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1      -8.390   7.244   3.321  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -5.828   4.741  -1.887  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -4.612   4.045  -2.368  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -3.979   3.125  -1.303  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -3.517   2.035  -1.641  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -3.580   5.040  -2.959  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -4.147   5.962  -4.067  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -3.532   7.367  -4.057  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -3.954   5.329  -5.447  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -6.690   4.354  -2.239  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -4.915   3.389  -3.185  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -3.214   5.658  -2.162  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -2.734   4.477  -3.358  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -5.216   6.098  -3.915  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -3.212   7.650  -3.053  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -2.676   7.423  -4.729  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -4.283   8.087  -4.385  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -2.891   5.203  -5.654  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -4.442   4.355  -5.483  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -4.390   5.972  -6.210  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -4.034   3.507  -0.022  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.488   2.754   1.113  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -3.999   1.304   1.197  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.219   0.398   1.481  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -3.764   3.518   2.421  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -2.555   3.588   3.333  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -1.776   4.762   3.370  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -2.195   2.479   4.123  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -0.643   4.831   4.199  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -1.050   2.538   4.942  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -0.268   3.716   4.975  0.00  0.00           C  
+ATOM     47  OH  TYR A   3       0.867   3.769   5.724  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -4.320   4.468   0.138  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.408   2.707   0.979  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -4.066   4.518   2.176  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -4.590   3.050   2.959  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -2.027   5.621   2.759  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -2.793   1.578   4.096  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3      -0.044   5.734   4.228  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -0.776   1.690   5.552  0.00  0.00           H  
+ATOM     56  HH  TYR A   3       1.327   2.931   5.742  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.288   1.067   0.907  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.894  -0.275   0.884  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -5.214  -1.162  -0.172  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -4.782  -2.273   0.130  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.430  -0.201   0.663  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.116   0.772   1.655  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -8.062  -1.596   0.813  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -8.454   2.122   1.015  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -5.869   1.867   0.710  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.718  -0.740   1.855  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.627   0.135  -0.357  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -9.024   0.321   2.007  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -7.470   0.935   2.519  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.644  -2.289   0.083  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -7.885  -1.983   1.817  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -9.137  -1.535   0.640  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -7.676   2.427   0.316  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4      -9.403   2.047   0.483  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4      -8.550   2.876   1.798  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -5.080  -0.655  -1.404  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -4.405  -1.359  -2.496  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.908  -1.559  -2.203  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -2.368  -2.623  -2.496  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -4.637  -0.594  -3.811  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -4.176  -1.352  -5.070  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -5.080  -2.517  -5.485  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -5.806  -3.119  -4.707  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -5.067  -2.886  -6.751  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -5.392   0.289  -1.566  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.856  -2.348  -2.581  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -5.687  -0.394  -3.904  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -4.096   0.353  -3.763  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -4.136  -0.654  -5.884  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -3.160  -1.723  -4.932  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -4.471  -2.439  -7.427  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -5.746  -3.581  -7.000  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -2.243  -0.575  -1.581  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.858  -0.716  -1.118  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.699  -1.828  -0.069  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.195  -2.668  -0.194  0.00  0.00           O  
+ATOM     97  CB  TRP A   6      -0.351   0.624  -0.585  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.048   0.578  -0.054  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.171   0.607  -0.807  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.497   0.476   1.333  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.277   0.517   0.018  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       2.921   0.430   1.339  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       0.854   0.427   2.590  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.676   0.352   2.517  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.600   0.338   3.783  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       3.006   0.310   3.748  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.729   0.304  -1.422  0.00  0.00           H  
+ATOM    108  HA  TRP A   6      -0.238  -0.999  -1.969  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.385   1.340  -1.384  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -1.007   0.967   0.214  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.193   0.693  -1.885  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.245   0.568  -0.288  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6      -0.224   0.468   2.624  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       4.754   0.329   2.457  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       1.091   0.294   4.733  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.573   0.259   4.666  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.582  -1.882   0.939  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.603  -2.983   1.905  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.840  -4.339   1.225  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.195  -5.312   1.611  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.648  -2.725   3.008  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.246  -1.632   4.018  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.417  -1.351   4.965  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -1.033  -2.033   4.868  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.278  -1.141   1.019  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.618  -3.051   2.362  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.566  -2.428   2.539  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -2.811  -3.653   3.557  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -2.009  -0.713   3.490  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.299  -1.072   4.387  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -3.642  -2.240   5.555  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -3.161  -0.532   5.635  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -1.219  -2.989   5.358  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7      -0.146  -2.116   4.244  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -0.847  -1.273   5.626  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.685  -4.402   0.182  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -2.936  -5.625  -0.601  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.667  -6.232  -1.217  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.582  -7.450  -1.336  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -3.985  -5.346  -1.693  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -4.692  -6.641  -2.114  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -5.718  -6.428  -3.232  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -5.032  -6.294  -4.599  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -5.771  -7.040  -5.645  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -3.211  -3.559  -0.040  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.336  -6.373   0.084  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -4.713  -4.655  -1.313  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -3.500  -4.897  -2.560  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -3.952  -7.338  -2.457  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -5.210  -7.046  -1.244  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -6.387  -7.266  -3.257  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -6.315  -5.536  -3.029  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -4.993  -5.257  -4.871  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -4.012  -6.679  -4.526  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -5.793  -8.024  -5.407  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -6.721  -6.700  -5.709  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -5.316  -6.938  -6.542  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -0.684  -5.400  -1.577  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.625  -5.836  -2.086  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.499  -6.498  -0.998  0.00  0.00           C  
+ATOM    161  O   ASP A   9       2.414  -7.249  -1.327  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       1.344  -4.617  -2.703  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       2.032  -4.934  -4.036  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9       1.293  -5.094  -5.034  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9       3.282  -4.935  -4.072  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -0.848  -4.407  -1.477  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.459  -6.576  -2.871  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       0.621  -3.842  -2.868  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       2.073  -4.222  -1.993  0.00  0.00           H  
+ATOM    170  N   GLY A  10       1.197  -6.249   0.290  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       1.964  -6.697   1.458  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.454  -5.562   2.375  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.219  -5.821   3.307  0.00  0.00           O  
+ATOM    174  H   GLY A  10       0.340  -5.733   0.471  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.338  -7.359   2.052  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.839  -7.260   1.131  0.00  0.00           H  
+ATOM    177  N   GLY A  11       2.062  -4.303   2.120  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.530  -3.141   2.879  0.00  0.00           C  
+ATOM    179  C   GLY A  11       4.060  -2.973   2.802  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.611  -3.075   1.699  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.492  -4.143   1.300  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       2.070  -2.244   2.466  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.200  -3.255   3.909  0.00  0.00           H  
+ATOM    184  N   PRO A  12       4.771  -2.727   3.926  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.226  -2.519   3.940  0.00  0.00           C  
+ATOM    186  C   PRO A  12       7.037  -3.646   3.278  0.00  0.00           C  
+ATOM    187  O   PRO A  12       8.097  -3.395   2.709  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.621  -2.378   5.418  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       5.327  -1.974   6.119  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       4.247  -2.658   5.284  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.447  -1.585   3.423  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       6.987  -3.310   5.804  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       7.399  -1.626   5.554  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       5.312  -2.328   7.132  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       5.205  -0.892   6.065  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       4.054  -3.644   5.660  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.323  -2.082   5.337  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.521  -4.880   3.304  0.00  0.00           N  
+ATOM    199  CA  SER A  13       7.176  -6.096   2.804  0.00  0.00           C  
+ATOM    200  C   SER A  13       7.053  -6.286   1.281  0.00  0.00           C  
+ATOM    201  O   SER A  13       7.203  -7.401   0.787  0.00  0.00           O  
+ATOM    202  CB  SER A  13       6.621  -7.302   3.574  0.00  0.00           C  
+ATOM    203  OG  SER A  13       6.881  -7.134   4.956  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.621  -5.007   3.748  0.00  0.00           H  
+ATOM    205  HA  SER A  13       8.242  -6.031   3.029  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       5.562  -7.373   3.414  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       7.106  -8.216   3.229  0.00  0.00           H  
+ATOM    208  HG  SER A  13       6.464  -7.849   5.442  0.00  0.00           H  
+ATOM    209  N   SER A  14       6.792  -5.202   0.538  0.00  0.00           N  
+ATOM    210  CA  SER A  14       6.428  -5.207  -0.894  0.00  0.00           C  
+ATOM    211  C   SER A  14       7.386  -4.379  -1.769  0.00  0.00           C  
+ATOM    212  O   SER A  14       7.101  -4.123  -2.941  0.00  0.00           O  
+ATOM    213  CB  SER A  14       4.978  -4.731  -1.093  0.00  0.00           C  
+ATOM    214  OG  SER A  14       4.172  -4.953   0.037  0.00  0.00           O  
+ATOM    215  H   SER A  14       6.675  -4.342   1.057  0.00  0.00           H  
+ATOM    216  HA  SER A  14       6.470  -6.235  -1.257  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       4.988  -3.679  -1.305  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       4.551  -5.239  -1.956  0.00  0.00           H  
+ATOM    219  HG  SER A  14       4.342  -4.220   0.679  0.00  0.00           H  
+ATOM    220  N   GLY A  15       8.502  -3.913  -1.182  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       9.546  -3.129  -1.849  0.00  0.00           C  
+ATOM    222  C   GLY A  15       9.114  -1.724  -2.287  0.00  0.00           C  
+ATOM    223  O   GLY A  15       9.680  -1.186  -3.235  0.00  0.00           O  
+ATOM    224  H   GLY A  15       8.649  -4.194  -0.222  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15      10.391  -3.019  -1.170  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15       9.893  -3.670  -2.730  0.00  0.00           H  
+ATOM    227  N   ARG A  16       8.100  -1.139  -1.630  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       7.450   0.119  -2.030  0.00  0.00           C  
+ATOM    229  C   ARG A  16       6.928   0.911  -0.816  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.269   0.321   0.044  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       6.317  -0.179  -3.034  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       5.288  -1.191  -2.504  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       4.285  -1.659  -3.553  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       4.933  -2.527  -4.549  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       4.527  -2.735  -5.794  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       3.493  -2.100  -6.302  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       5.167  -3.578  -6.566  0.00  0.00           N  
+ATOM    238  H   ARG A  16       7.708  -1.640  -0.844  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       8.196   0.717  -2.550  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       5.809   0.739  -3.257  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       6.768  -0.575  -3.945  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       5.817  -2.049  -2.135  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       4.734  -0.757  -1.678  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       3.499  -2.206  -3.068  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       3.837  -0.783  -4.024  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       5.648  -3.155  -4.195  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       2.947  -1.544  -5.671  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       3.153  -2.320  -7.218  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       5.883  -4.149  -6.152  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       4.831  -3.768  -7.490  0.00  0.00           H  
+ATOM    251  N   PRO A  17       7.167   2.235  -0.738  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.698   3.071   0.368  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.171   3.287   0.323  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.562   3.090  -0.732  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.457   4.393   0.202  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.658   4.498  -1.308  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       7.864   3.045  -1.729  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       6.972   2.607   1.317  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       6.878   5.217   0.571  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.428   4.317   0.695  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       6.793   4.919  -1.784  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.520   5.115  -1.561  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       7.450   2.878  -2.705  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       8.927   2.802  -1.714  0.00  0.00           H  
+ATOM    265  N   PRO A  18       4.543   3.703   1.441  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       3.105   3.956   1.499  0.00  0.00           C  
+ATOM    267  C   PRO A  18       2.686   5.190   0.673  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.440   6.163   0.597  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       2.777   4.132   2.983  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       4.091   4.608   3.598  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       5.149   3.902   2.752  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       2.585   3.075   1.131  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       2.005   4.865   3.119  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       2.506   3.167   3.411  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       4.187   5.674   3.523  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       4.169   4.334   4.651  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       6.028   4.511   2.668  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       5.384   2.932   3.191  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.485   5.179   0.063  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       0.959   6.296  -0.711  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.308   7.346   0.205  0.00  0.00           C  
+ATOM    282  O   PRO A  19      -0.866   7.217   0.563  0.00  0.00           O  
+ATOM    283  CB  PRO A  19      -0.038   5.662  -1.685  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -0.611   4.494  -0.880  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       0.571   4.046  -0.020  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       1.758   6.771  -1.284  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -0.808   6.358  -1.956  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19       0.500   5.276  -2.551  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -1.432   4.815  -0.268  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -0.960   3.695  -1.533  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.232   3.772   0.961  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       1.080   3.221  -0.514  0.00  0.00           H  
+ATOM    293  N   SER A  20       1.081   8.389   0.531  0.00  0.00           N  
+ATOM    294  CA  SER A  20       0.712   9.526   1.401  0.00  0.00           C  
+ATOM    295  C   SER A  20       0.588   9.160   2.890  0.00  0.00           C  
+ATOM    296  O   SER A  20       0.262  10.095   3.652  0.00  0.00           O  
+ATOM    297  CB  SER A  20      -0.566  10.221   0.907  0.00  0.00           C  
+ATOM    298  OG  SER A  20      -0.448  10.583  -0.457  0.00  0.00           O  
+ATOM    299  OXT SER A  20       0.841   7.989   3.253  0.00  0.00           O  
+ATOM    300  H   SER A  20       2.044   8.336   0.235  0.00  0.00           H  
+ATOM    301  HA  SER A  20       1.510  10.263   1.347  0.00  0.00           H  
+ATOM    302 1HB  SER A  20      -1.397   9.552   1.023  0.00  0.00           H  
+ATOM    303 2HB  SER A  20      -0.739  11.118   1.507  0.00  0.00           H  
+ATOM    304  HG  SER A  20      -1.325  10.595  -0.845  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MODEL        6                                                                  
+ATOM      1  N   ASN A   1      -8.386   5.528   0.323  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -7.252   6.475   0.201  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -5.976   5.793  -0.320  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -4.928   5.981   0.279  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -6.989   7.168   1.563  0.00  0.00           C  
+ATOM      6  CG  ASN A   1      -8.182   7.971   2.069  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1      -9.321   7.671   1.737  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1      -7.956   8.989   2.877  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -8.680   5.191  -0.583  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -8.133   4.750   0.917  0.00  0.00           H  
+ATOM     11 3H   ASN A   1      -9.162   6.024   0.757  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -7.519   7.256  -0.513  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -6.753   6.414   2.289  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -6.141   7.847   1.464  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1      -7.025   9.245   3.168  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1      -8.768   9.497   3.186  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -6.033   4.992  -1.399  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -4.893   4.279  -2.026  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -4.189   3.209  -1.150  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -3.787   2.161  -1.653  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -3.898   5.323  -2.592  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -3.403   5.048  -4.026  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -4.520   5.284  -5.049  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -2.245   5.991  -4.373  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -6.896   4.918  -1.915  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -5.303   3.724  -2.868  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -4.382   6.281  -2.586  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -3.041   5.381  -1.923  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -3.055   4.018  -4.106  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -5.356   4.614  -4.868  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -4.864   6.318  -4.993  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -4.141   5.093  -6.053  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -2.447   7.000  -4.006  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -1.330   5.621  -3.919  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -2.089   6.031  -5.450  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -4.112   3.429   0.165  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.496   2.595   1.193  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -4.014   1.148   1.203  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.249   0.231   1.485  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -3.710   3.279   2.555  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -2.553   3.084   3.510  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -1.561   4.078   3.620  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -2.456   1.903   4.268  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -0.454   3.878   4.467  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -1.355   1.701   5.120  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -0.345   2.682   5.210  0.00  0.00           C  
+ATOM     47  OH  TYR A   3       0.737   2.459   6.003  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -4.356   4.372   0.451  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.424   2.563   0.995  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -3.843   4.331   2.391  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -4.629   2.908   3.015  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -1.654   5.000   3.056  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -3.225   1.149   4.184  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3       0.299   4.646   4.556  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -1.263   0.796   5.701  0.00  0.00           H  
+ATOM     56  HH  TYR A   3       1.435   3.096   5.844  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.288   0.927   0.844  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.882  -0.413   0.700  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -5.155  -1.216  -0.392  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -4.783  -2.368  -0.166  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.403  -0.333   0.415  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.165   0.597   1.397  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -8.025  -1.739   0.474  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -8.569   1.925   0.742  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -5.849   1.736   0.639  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.742  -0.945   1.643  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.545   0.041  -0.602  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -9.051   0.094   1.733  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -7.558   0.797   2.280  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.561  -2.398  -0.261  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -7.892  -2.168   1.469  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -9.091  -1.683   0.250  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -7.690   2.447   0.367  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4      -9.256   1.730  -0.083  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4      -9.076   2.550   1.478  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -4.919  -0.602  -1.563  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -4.148  -1.213  -2.650  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.698  -1.477  -2.220  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -2.176  -2.563  -2.456  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -4.189  -0.338  -3.923  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -5.048  -0.952  -5.043  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -4.557  -0.530  -6.426  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -3.843  -1.254  -7.098  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -4.900   0.648  -6.907  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -5.147   0.379  -1.642  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.590  -2.184  -2.870  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -4.595   0.621  -3.666  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -3.171  -0.226  -4.301  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -5.003  -2.022  -4.969  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -6.090  -0.657  -4.912  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -5.491   1.299  -6.420  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -4.516   0.824  -7.820  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -2.058  -0.514  -1.548  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.698  -0.699  -1.033  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.598  -1.819   0.024  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.351  -2.603   0.007  0.00  0.00           O  
+ATOM     97  CB  TRP A   6      -0.182   0.633  -0.487  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.208   0.559   0.054  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.340   0.584  -0.684  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.636   0.399   1.441  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.434   0.426   0.145  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       3.060   0.338   1.464  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       0.968   0.306   2.680  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.793   0.231   2.652  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.692   0.176   3.881  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       3.098   0.160   3.871  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.537   0.370  -1.411  0.00  0.00           H  
+ATOM    108  HA  TRP A   6      -0.056  -0.999  -1.865  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.199   1.355  -1.281  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -0.845   0.977   0.306  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.372   0.691  -1.760  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.406   0.397  -0.171  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6      -0.111   0.343   2.699  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       4.871   0.201   2.617  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       1.165   0.101   4.820  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.644   0.086   4.800  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.583  -1.947   0.921  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.656  -3.076   1.851  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.870  -4.413   1.124  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.239  -5.396   1.507  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.744  -2.838   2.914  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.336  -1.840   4.014  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.558  -1.525   4.882  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -1.236  -2.386   4.934  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.308  -1.232   0.953  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.691  -3.164   2.348  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.619  -2.459   2.422  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -2.984  -3.790   3.391  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -1.981  -0.918   3.559  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.336  -1.072   4.269  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -3.942  -2.440   5.333  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -3.281  -0.829   5.675  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -1.580  -3.296   5.429  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7      -0.333  -2.606   4.369  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -0.987  -1.645   5.691  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.686  -4.452   0.056  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -2.868  -5.634  -0.809  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.553  -6.182  -1.385  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.446  -7.398  -1.524  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -3.855  -5.315  -1.947  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -5.312  -5.718  -1.691  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -5.595  -7.194  -2.011  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -7.083  -7.358  -2.351  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -7.467  -8.781  -2.499  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -3.201  -3.604  -0.166  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.277  -6.443  -0.202  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -3.830  -4.256  -2.119  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -3.518  -5.782  -2.874  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -5.538  -5.544  -0.657  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -5.933  -5.099  -2.340  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -4.999  -7.501  -2.849  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -5.322  -7.812  -1.153  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -7.668  -6.922  -1.564  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -7.274  -6.823  -3.286  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -6.831  -9.251  -3.130  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -7.436  -9.244  -1.601  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -8.406  -8.854  -2.869  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -0.560  -5.331  -1.687  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.784  -5.780  -2.096  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.568  -6.488  -0.965  0.00  0.00           C  
+ATOM    161  O   ASP A   9       2.503  -7.234  -1.258  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       1.632  -4.594  -2.600  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       1.231  -4.011  -3.959  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9       1.430  -4.722  -4.969  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9       0.856  -2.815  -4.003  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -0.747  -4.339  -1.618  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.686  -6.498  -2.912  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       1.563  -3.808  -1.872  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       2.656  -4.948  -2.713  0.00  0.00           H  
+ATOM    170  N   GLY A  10       1.199  -6.278   0.311  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       1.937  -6.750   1.490  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.431  -5.639   2.432  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.200  -5.926   3.352  0.00  0.00           O  
+ATOM    174  H   GLY A  10       0.336  -5.769   0.474  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.286  -7.408   2.066  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.807  -7.329   1.179  0.00  0.00           H  
+ATOM    177  N   GLY A  11       2.031  -4.376   2.219  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.470  -3.241   3.034  0.00  0.00           C  
+ATOM    179  C   GLY A  11       4.000  -3.062   3.006  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.575  -3.113   1.914  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.469  -4.186   1.397  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       2.015  -2.334   2.636  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.114  -3.391   4.051  0.00  0.00           H  
+ATOM    184  N   PRO A  12       4.686  -2.853   4.152  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.138  -2.627   4.199  0.00  0.00           C  
+ATOM    186  C   PRO A  12       6.979  -3.705   3.499  0.00  0.00           C  
+ATOM    187  O   PRO A  12       8.023  -3.398   2.928  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.504  -2.546   5.686  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       5.198  -2.156   6.370  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       4.133  -2.817   5.498  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.351  -1.666   3.730  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       6.853  -3.495   6.045  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       7.286  -1.807   5.866  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       5.162  -2.534   7.374  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       5.079  -1.073   6.340  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       3.931  -3.812   5.845  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.207  -2.241   5.544  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.508  -4.958   3.493  0.00  0.00           N  
+ATOM    199  CA  SER A  13       7.189  -6.103   2.872  0.00  0.00           C  
+ATOM    200  C   SER A  13       7.058  -6.147   1.336  0.00  0.00           C  
+ATOM    201  O   SER A  13       7.435  -7.142   0.722  0.00  0.00           O  
+ATOM    202  CB  SER A  13       6.693  -7.403   3.522  0.00  0.00           C  
+ATOM    203  OG  SER A  13       7.056  -7.403   4.891  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.629  -5.143   3.955  0.00  0.00           H  
+ATOM    205  HA  SER A  13       8.255  -6.026   3.087  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       5.625  -7.465   3.433  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       7.159  -8.260   3.034  0.00  0.00           H  
+ATOM    208  HG  SER A  13       6.918  -8.284   5.253  0.00  0.00           H  
+ATOM    209  N   SER A  14       6.545  -5.077   0.709  0.00  0.00           N  
+ATOM    210  CA  SER A  14       6.283  -4.978  -0.737  0.00  0.00           C  
+ATOM    211  C   SER A  14       7.371  -4.237  -1.526  0.00  0.00           C  
+ATOM    212  O   SER A  14       7.218  -4.034  -2.732  0.00  0.00           O  
+ATOM    213  CB  SER A  14       4.974  -4.222  -0.999  0.00  0.00           C  
+ATOM    214  OG  SER A  14       3.964  -4.544  -0.082  0.00  0.00           O  
+ATOM    215  H   SER A  14       6.237  -4.313   1.299  0.00  0.00           H  
+ATOM    216  HA  SER A  14       6.178  -5.981  -1.151  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       5.169  -3.169  -0.937  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       4.638  -4.447  -2.011  0.00  0.00           H  
+ATOM    219  HG  SER A  14       4.139  -4.000   0.726  0.00  0.00           H  
+ATOM    220  N   GLY A  15       8.414  -3.725  -0.859  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       9.471  -2.894  -1.454  0.00  0.00           C  
+ATOM    222  C   GLY A  15       9.041  -1.455  -1.795  0.00  0.00           C  
+ATOM    223  O   GLY A  15       9.819  -0.525  -1.599  0.00  0.00           O  
+ATOM    224  H   GLY A  15       8.450  -3.903   0.136  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15      10.311  -2.842  -0.764  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15       9.822  -3.367  -2.372  0.00  0.00           H  
+ATOM    227  N   ARG A  16       7.814  -1.262  -2.297  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       7.226   0.051  -2.611  0.00  0.00           C  
+ATOM    229  C   ARG A  16       6.816   0.830  -1.338  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.195   0.243  -0.447  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       6.050  -0.120  -3.595  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       4.880  -0.960  -3.052  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       3.737  -1.115  -4.058  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       4.012  -2.181  -5.038  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       3.322  -2.423  -6.147  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       2.338  -1.649  -6.533  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       3.618  -3.461  -6.892  0.00  0.00           N  
+ATOM    238  H   ARG A  16       7.281  -2.107  -2.474  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       8.002   0.620  -3.123  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       5.676   0.855  -3.843  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       6.426  -0.587  -4.506  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       5.248  -1.936  -2.800  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       4.474  -0.469  -2.174  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       2.836  -1.356  -3.526  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       3.570  -0.162  -4.563  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       4.727  -2.848  -4.801  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       1.964  -1.052  -5.816  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       1.772  -1.893  -7.322  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       4.226  -4.165  -6.517  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       3.002  -3.699  -7.645  0.00  0.00           H  
+ATOM    251  N   PRO A  17       7.097   2.147  -1.240  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.733   2.965  -0.077  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.211   3.205   0.012  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.514   3.057  -0.995  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.499   4.279  -0.266  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.601   4.413  -1.783  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       7.764   2.966  -2.245  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       7.073   2.472   0.834  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       6.958   5.103   0.157  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.500   4.183   0.158  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       6.711   4.851  -2.192  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.451   5.031  -2.080  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       7.305   2.827  -3.205  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       8.823   2.707  -2.277  0.00  0.00           H  
+ATOM    265  N   PRO A  18       4.682   3.595   1.190  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       3.257   3.860   1.368  0.00  0.00           C  
+ATOM    267  C   PRO A  18       2.815   5.129   0.616  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.586   6.086   0.526  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       3.049   4.007   2.879  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       4.407   4.496   3.377  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       5.393   3.792   2.447  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       2.691   3.004   1.010  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       2.280   4.725   3.093  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       2.830   3.031   3.313  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       4.488   5.562   3.288  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       4.575   4.231   4.423  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       6.262   4.402   2.293  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       5.666   2.823   2.864  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.564   5.179   0.116  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       1.048   6.326  -0.630  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.603   7.495   0.262  0.00  0.00           C  
+ATOM    282  O   PRO A  19       0.510   8.619  -0.227  0.00  0.00           O  
+ATOM    283  CB  PRO A  19      -0.136   5.763  -1.415  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -0.683   4.666  -0.501  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       0.585   4.100   0.134  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       1.801   6.695  -1.328  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -0.875   6.521  -1.589  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19       0.239   5.311  -2.333  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -1.340   5.073   0.243  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -1.221   3.904  -1.064  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.390   3.791   1.143  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       0.959   3.279  -0.477  0.00  0.00           H  
+ATOM    293  N   SER A  20       0.367   7.228   1.556  0.00  0.00           N  
+ATOM    294  CA  SER A  20      -0.233   8.139   2.544  0.00  0.00           C  
+ATOM    295  C   SER A  20      -1.656   8.585   2.160  0.00  0.00           C  
+ATOM    296  O   SER A  20      -2.384   7.708   1.628  0.00  0.00           O  
+ATOM    297  CB  SER A  20       0.737   9.297   2.810  0.00  0.00           C  
+ATOM    298  OG  SER A  20       0.750   9.605   4.190  0.00  0.00           O  
+ATOM    299  OXT SER A  20      -2.026   9.739   2.451  0.00  0.00           O  
+ATOM    300  H   SER A  20       0.453   6.262   1.817  0.00  0.00           H  
+ATOM    301  HA  SER A  20      -0.350   7.592   3.476  0.00  0.00           H  
+ATOM    302 1HB  SER A  20       1.724   9.013   2.499  0.00  0.00           H  
+ATOM    303 2HB  SER A  20       0.448  10.165   2.214  0.00  0.00           H  
+ATOM    304  HG  SER A  20       0.692  10.559   4.282  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MODEL        7                                                                  
+ATOM      1  N   ASN A   1      -8.903   5.528  -0.196  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -7.549   5.998  -0.581  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -6.760   4.831  -1.189  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -7.247   3.705  -1.144  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -6.831   6.647   0.620  0.00  0.00           C  
+ATOM      6  CG  ASN A   1      -5.684   7.538   0.154  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1      -4.583   7.063  -0.078  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1      -5.924   8.815  -0.078  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -9.364   5.129  -1.005  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -8.821   4.800   0.502  0.00  0.00           H  
+ATOM     11 3H   ASN A   1      -9.457   6.290   0.168  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -7.661   6.757  -1.358  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -7.535   7.240   1.171  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -6.437   5.876   1.282  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1      -6.803   9.269   0.111  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1      -5.123   9.345  -0.388  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -5.566   5.065  -1.745  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -4.705   4.017  -2.308  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -4.063   3.108  -1.244  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -3.570   2.036  -1.587  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -3.636   4.665  -3.218  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -3.984   4.537  -4.715  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -3.137   5.490  -5.557  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -3.737   3.110  -5.216  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -5.153   5.991  -1.653  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -5.332   3.363  -2.913  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -3.557   5.706  -2.970  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -2.666   4.195  -3.051  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -5.035   4.787  -4.864  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -3.377   6.522  -5.297  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -2.077   5.308  -5.382  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -3.356   5.339  -6.615  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -2.687   2.842  -5.096  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -4.350   2.412  -4.658  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -4.007   3.032  -6.270  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -4.102   3.487   0.042  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.503   2.730   1.149  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -3.977   1.265   1.216  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.168   0.369   1.448  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -3.768   3.466   2.474  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -2.672   3.279   3.509  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -1.783   4.339   3.784  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -2.536   2.057   4.196  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -0.765   4.177   4.741  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -1.523   1.895   5.162  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -0.640   2.961   5.441  0.00  0.00           C  
+ATOM     47  OH  TYR A   3       0.309   2.837   6.407  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -4.453   4.414   0.232  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.424   2.713   0.990  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -3.861   4.514   2.266  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -4.720   3.136   2.894  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -1.890   5.287   3.275  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -3.211   1.241   3.988  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3      -0.083   4.982   4.975  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -1.418   0.959   5.689  0.00  0.00           H  
+ATOM     56  HH  TYR A   3       0.037   2.243   7.107  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.269   1.004   0.959  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.833  -0.356   0.888  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -5.161  -1.164  -0.238  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -4.772  -2.318  -0.049  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.371  -0.313   0.696  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.110   0.552   1.752  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -7.954  -1.737   0.753  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -8.509   1.938   1.232  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -5.872   1.790   0.762  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.619  -0.864   1.831  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.587   0.085  -0.297  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -8.999   0.033   2.055  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -7.496   0.664   2.647  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.517  -2.368  -0.021  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -7.761  -2.183   1.729  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -9.031  -1.704   0.581  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -7.626   2.563   1.121  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4      -9.024   1.846   0.274  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4      -9.188   2.410   1.945  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -5.003  -0.544  -1.411  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -4.375  -1.125  -2.597  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.869  -1.353  -2.405  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -2.354  -2.357  -2.886  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -4.661  -0.216  -3.809  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -5.379  -0.927  -4.966  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -4.417  -1.485  -6.011  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -4.226  -0.906  -7.068  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -3.781  -2.614  -5.772  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -5.256   0.433  -1.455  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.826  -2.102  -2.768  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -5.275   0.600  -3.481  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -3.731   0.222  -4.174  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -5.955  -1.738  -4.564  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -6.017  -0.197  -5.466  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -3.799  -3.091  -4.886  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -3.166  -2.885  -6.520  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -2.181  -0.471  -1.666  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.803  -0.688  -1.216  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.702  -1.871  -0.236  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.137  -2.753  -0.420  0.00  0.00           O  
+ATOM     97  CB  TRP A   6      -0.253   0.612  -0.609  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.148   0.524  -0.079  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.275   0.502  -0.828  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.590   0.428   1.311  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.377   0.391   0.000  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       3.013   0.346   1.324  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       0.937   0.410   2.563  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.756   0.265   2.509  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.672   0.321   3.762  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       3.077   0.254   3.738  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.666   0.378  -1.389  0.00  0.00           H  
+ATOM    108  HA  TRP A   6      -0.189  -0.942  -2.080  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.274   1.369  -1.369  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -0.902   0.932   0.205  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.303   0.552  -1.909  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.354   0.366  -0.301  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6      -0.141   0.482   2.594  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       4.833   0.212   2.461  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       1.154   0.320   4.711  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.633   0.202   4.663  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.584  -1.939   0.773  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.618  -3.061   1.719  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.896  -4.418   1.055  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.383  -5.420   1.551  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.638  -2.803   2.843  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.158  -1.828   3.935  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.332  -1.509   4.865  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -1.029  -2.411   4.793  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.238  -1.169   0.902  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.625  -3.152   2.159  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.528  -2.398   2.401  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -2.875  -3.753   3.326  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -1.813  -0.903   3.475  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.138  -1.046   4.295  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -3.701  -2.424   5.328  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -3.014  -0.822   5.647  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -1.366  -3.322   5.290  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7      -0.162  -2.644   4.181  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -0.726  -1.685   5.547  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.649  -4.469  -0.060  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -2.926  -5.712  -0.805  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.673  -6.493  -1.213  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.747  -7.718  -1.261  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -3.745  -5.435  -2.077  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -5.245  -5.187  -1.834  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -6.112  -6.160  -2.652  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -6.013  -7.607  -2.144  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -6.775  -7.803  -0.889  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -3.091  -3.603  -0.351  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.486  -6.385  -0.157  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -3.336  -4.566  -2.556  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -3.629  -6.287  -2.748  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -5.457  -5.322  -0.791  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -5.483  -4.171  -2.145  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -7.135  -5.843  -2.591  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -5.787  -6.129  -3.694  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -6.405  -8.266  -2.895  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -4.957  -7.857  -1.989  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -6.431  -7.175  -0.174  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -7.755  -7.610  -1.046  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -6.676  -8.755  -0.564  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -0.575  -5.806  -1.542  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.679  -6.439  -1.960  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.407  -7.073  -0.759  0.00  0.00           C  
+ATOM    161  O   ASP A   9       1.771  -8.246  -0.798  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       1.529  -5.384  -2.684  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       2.629  -6.016  -3.539  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9       2.415  -6.083  -4.770  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9       3.661  -6.415  -2.960  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -0.608  -4.796  -1.483  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.451  -7.236  -2.670  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       0.890  -4.801  -3.319  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       1.960  -4.694  -1.962  0.00  0.00           H  
+ATOM    170  N   GLY A  10       1.538  -6.316   0.338  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       2.154  -6.771   1.590  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.656  -5.655   2.516  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.600  -5.875   3.278  0.00  0.00           O  
+ATOM    174  H   GLY A  10       1.219  -5.364   0.236  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.421  -7.360   2.140  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.998  -7.420   1.354  0.00  0.00           H  
+ATOM    177  N   GLY A  11       2.069  -4.451   2.456  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.511  -3.295   3.240  0.00  0.00           C  
+ATOM    179  C   GLY A  11       4.009  -2.997   3.049  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.473  -2.994   1.904  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.299  -4.330   1.814  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       1.950  -2.415   2.922  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.285  -3.490   4.287  0.00  0.00           H  
+ATOM    184  N   PRO A  12       4.798  -2.757   4.119  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.237  -2.490   4.008  0.00  0.00           C  
+ATOM    186  C   PRO A  12       7.033  -3.579   3.271  0.00  0.00           C  
+ATOM    187  O   PRO A  12       8.035  -3.275   2.626  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.745  -2.333   5.447  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       5.496  -1.973   6.248  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       4.382  -2.715   5.512  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.371  -1.546   3.479  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       7.173  -3.251   5.802  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       7.505  -1.553   5.517  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       5.579  -2.312   7.263  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       5.320  -0.898   6.189  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       4.273  -3.709   5.901  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.437  -2.188   5.641  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.580  -4.841   3.318  0.00  0.00           N  
+ATOM    199  CA  SER A  13       7.226  -5.980   2.655  0.00  0.00           C  
+ATOM    200  C   SER A  13       6.995  -6.022   1.132  0.00  0.00           C  
+ATOM    201  O   SER A  13       7.473  -6.945   0.480  0.00  0.00           O  
+ATOM    202  CB  SER A  13       6.775  -7.286   3.323  0.00  0.00           C  
+ATOM    203  OG  SER A  13       7.214  -7.315   4.671  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.719  -5.035   3.818  0.00  0.00           H  
+ATOM    205  HA  SER A  13       8.303  -5.894   2.797  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       5.704  -7.348   3.296  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       7.200  -8.143   2.797  0.00  0.00           H  
+ATOM    208  HG  SER A  13       8.172  -7.390   4.683  0.00  0.00           H  
+ATOM    209  N   SER A  14       6.312  -5.020   0.559  0.00  0.00           N  
+ATOM    210  CA  SER A  14       6.003  -4.909  -0.880  0.00  0.00           C  
+ATOM    211  C   SER A  14       7.153  -4.342  -1.729  0.00  0.00           C  
+ATOM    212  O   SER A  14       7.036  -4.271  -2.950  0.00  0.00           O  
+ATOM    213  CB  SER A  14       4.797  -3.981  -1.103  0.00  0.00           C  
+ATOM    214  OG  SER A  14       3.761  -4.194  -0.169  0.00  0.00           O  
+ATOM    215  H   SER A  14       5.943  -4.308   1.175  0.00  0.00           H  
+ATOM    216  HA  SER A  14       5.743  -5.896  -1.266  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       5.128  -2.964  -1.021  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       4.414  -4.137  -2.112  0.00  0.00           H  
+ATOM    219  HG  SER A  14       4.006  -3.709   0.659  0.00  0.00           H  
+ATOM    220  N   GLY A  15       8.240  -3.857  -1.110  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       9.347  -3.207  -1.825  0.00  0.00           C  
+ATOM    222  C   GLY A  15       9.072  -1.761  -2.273  0.00  0.00           C  
+ATOM    223  O   GLY A  15       9.838  -1.222  -3.067  0.00  0.00           O  
+ATOM    224  H   GLY A  15       8.290  -3.959  -0.106  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15      10.231  -3.198  -1.187  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15       9.588  -3.789  -2.715  0.00  0.00           H  
+ATOM    227  N   ARG A  16       7.994  -1.127  -1.781  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       7.572   0.231  -2.153  0.00  0.00           C  
+ATOM    229  C   ARG A  16       6.983   0.981  -0.944  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.181   0.382  -0.224  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       6.533   0.117  -3.285  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       6.200   1.481  -3.901  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       5.147   1.363  -5.008  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       5.045   2.615  -5.780  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       4.495   3.765  -5.404  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       3.939   3.937  -4.225  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       4.510   4.784  -6.232  0.00  0.00           N  
+ATOM    238  H   ARG A  16       7.425  -1.634  -1.117  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       8.445   0.765  -2.527  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       6.925  -0.523  -4.052  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       5.621  -0.343  -2.899  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       5.824   2.127  -3.131  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       7.111   1.904  -4.324  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       5.422   0.565  -5.670  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       4.180   1.105  -4.573  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       5.452   2.594  -6.699  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       3.987   3.199  -3.541  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       3.537   4.819  -3.965  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       4.943   4.701  -7.136  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       4.103   5.659  -5.956  0.00  0.00           H  
+ATOM    251  N   PRO A  17       7.298   2.279  -0.734  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.723   3.073   0.357  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.203   3.301   0.202  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.670   3.166  -0.908  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.497   4.399   0.343  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.943   4.539  -1.109  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       8.231   3.093  -1.505  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       6.912   2.560   1.300  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       6.863   5.216   0.629  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.374   4.317   0.985  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       7.164   4.960  -1.715  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.827   5.172  -1.206  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       8.069   2.954  -2.556  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       9.253   2.834  -1.225  0.00  0.00           H  
+ATOM    265  N   PRO A  18       4.505   3.662   1.301  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       3.065   3.925   1.293  0.00  0.00           C  
+ATOM    267  C   PRO A  18       2.700   5.218   0.535  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.563   6.066   0.303  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       2.661   4.003   2.774  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       3.933   4.476   3.472  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       5.039   3.819   2.649  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       2.557   3.083   0.827  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       1.863   4.706   2.916  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       2.402   3.008   3.132  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       4.014   5.546   3.443  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       3.962   4.161   4.516  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       5.912   4.443   2.633  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       5.271   2.838   3.065  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.420   5.389   0.147  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       0.934   6.590  -0.541  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.630   7.773   0.396  0.00  0.00           C  
+ATOM    282  O   PRO A  19       0.546   8.904  -0.075  0.00  0.00           O  
+ATOM    283  CB  PRO A  19      -0.347   6.136  -1.247  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -0.893   5.051  -0.317  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       0.371   4.378   0.209  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       1.659   6.921  -1.282  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -1.043   6.948  -1.342  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19      -0.093   5.696  -2.212  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -1.462   5.481   0.484  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -1.521   4.344  -0.854  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.226   4.052   1.221  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       0.641   3.547  -0.443  0.00  0.00           H  
+ATOM    293  N   SER A  20       0.436   7.512   1.697  0.00  0.00           N  
+ATOM    294  CA  SER A  20       0.332   8.504   2.776  0.00  0.00           C  
+ATOM    295  C   SER A  20       1.687   8.700   3.451  0.00  0.00           C  
+ATOM    296  O   SER A  20       2.070   9.878   3.606  0.00  0.00           O  
+ATOM    297  CB  SER A  20      -0.673   8.043   3.830  0.00  0.00           C  
+ATOM    298  OG  SER A  20      -1.935   7.948   3.212  0.00  0.00           O  
+ATOM    299  OXT SER A  20       2.277   7.664   3.828  0.00  0.00           O  
+ATOM    300  H   SER A  20       0.578   6.559   1.993  0.00  0.00           H  
+ATOM    301  HA  SER A  20       0.032   9.475   2.381  0.00  0.00           H  
+ATOM    302 1HB  SER A  20      -0.383   7.085   4.216  0.00  0.00           H  
+ATOM    303 2HB  SER A  20      -0.705   8.762   4.652  0.00  0.00           H  
+ATOM    304  HG  SER A  20      -1.800   8.230   2.302  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MODEL        8                                                                  
+ATOM      1  N   ASN A   1      -8.769   4.941   0.058  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -8.628   3.743  -0.810  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -7.194   3.417  -1.223  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -6.825   2.255  -1.104  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -9.576   3.798  -2.012  0.00  0.00           C  
+ATOM      6  CG  ASN A   1     -10.980   3.563  -1.485  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1     -11.581   4.475  -0.943  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1     -11.465   2.335  -1.495  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -8.177   4.864   0.873  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -8.539   5.782  -0.450  0.00  0.00           H  
+ATOM     11 3H   ASN A   1      -9.736   5.016   0.359  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -8.940   2.881  -0.218  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -9.516   4.760  -2.484  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -9.322   3.021  -2.735  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1     -10.980   1.548  -1.895  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1     -12.387   2.236  -1.101  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -6.386   4.385  -1.677  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -4.979   4.182  -2.071  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -4.170   3.301  -1.091  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -3.510   2.351  -1.513  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -4.298   5.547  -2.330  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -4.562   6.652  -1.277  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -3.311   7.480  -1.001  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -5.661   7.624  -1.728  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -6.742   5.314  -1.830  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -4.973   3.640  -3.018  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -3.239   5.382  -2.373  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -4.613   5.914  -3.308  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -4.870   6.194  -0.336  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -2.556   6.855  -0.534  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -2.907   7.891  -1.928  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -3.544   8.302  -0.323  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -5.277   8.270  -2.519  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -6.532   7.099  -2.108  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -5.957   8.251  -0.887  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -4.272   3.566   0.214  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.591   2.791   1.257  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -4.035   1.316   1.320  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.216   0.439   1.587  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -3.809   3.489   2.607  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -2.680   3.265   3.592  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -1.676   4.243   3.732  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -2.635   2.094   4.373  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -0.650   4.078   4.679  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -1.601   1.916   5.312  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -0.618   2.916   5.478  0.00  0.00           C  
+ATOM     47  OH  TYR A   3       0.344   2.765   6.428  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -4.793   4.381   0.493  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.522   2.805   1.039  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -3.904   4.544   2.433  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -4.748   3.153   3.047  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -1.691   5.139   3.130  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -3.397   1.337   4.260  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3       0.099   4.851   4.791  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -1.558   1.031   5.929  0.00  0.00           H  
+ATOM     56  HH  TYR A   3       0.794   3.595   6.593  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.312   1.025   1.029  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.855  -0.341   0.979  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -5.188  -1.123  -0.163  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -4.740  -2.254   0.031  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.398  -0.328   0.820  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.143   0.621   1.794  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -7.976  -1.749   0.938  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -7.792   0.462   3.281  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -5.901   1.775   0.693  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.609  -0.846   1.915  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.635   0.015  -0.186  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -7.917   1.630   1.508  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -9.215   0.465   1.676  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.579  -2.387   0.147  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -7.724  -2.190   1.903  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -9.062  -1.721   0.834  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -7.711  -0.590   3.551  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4      -6.848   0.965   3.496  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4      -8.578   0.918   3.885  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -5.075  -0.498  -1.343  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -4.362  -1.071  -2.489  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.867  -1.283  -2.198  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -2.320  -2.311  -2.590  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -4.555  -0.198  -3.737  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -5.995  -0.248  -4.266  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -6.126   0.517  -5.579  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -5.978  -0.031  -6.658  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -6.401   1.806  -5.540  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -5.445   0.441  -1.413  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.782  -2.057  -2.696  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -4.314   0.818  -3.488  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -3.891  -0.565  -4.522  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -6.273  -1.272  -4.428  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -6.680   0.175  -3.530  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -6.520   2.309  -4.682  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -6.457   2.229  -6.452  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -2.207  -0.362  -1.483  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.824  -0.567  -1.033  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.685  -1.753  -0.064  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.203  -2.588  -0.244  0.00  0.00           O  
+ATOM     97  CB  TRP A   6      -0.276   0.722  -0.418  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.118   0.612   0.126  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.254   0.594  -0.609  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.544   0.501   1.519  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.347   0.461   0.227  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       2.967   0.413   1.548  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       0.878   0.488   2.764  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.697   0.331   2.741  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.600   0.402   3.971  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       3.004   0.331   3.961  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.689   0.503  -1.249  0.00  0.00           H  
+ATOM    108  HA  TRP A   6      -0.214  -0.807  -1.905  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.281   1.482  -1.175  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -0.933   1.043   0.389  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.293   0.681  -1.686  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.326   0.458  -0.069  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6      -0.200   0.564   2.787  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       4.776   0.281   2.705  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       1.071   0.411   4.914  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.548   0.291   4.893  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.580  -1.874   0.927  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.599  -3.031   1.829  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.786  -4.356   1.073  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.124  -5.333   1.422  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.674  -2.852   2.916  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.324  -1.798   3.986  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.552  -1.544   4.867  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -1.168  -2.243   4.890  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.270  -1.136   1.054  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.625  -3.099   2.308  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.588  -2.556   2.439  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -2.827  -3.808   3.419  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -2.045  -0.863   3.506  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.374  -1.176   4.252  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -3.856  -2.467   5.361  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -3.318  -0.796   5.624  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -1.414  -3.187   5.378  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7      -0.257  -2.363   4.309  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -0.985  -1.485   5.652  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.609  -4.385   0.009  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -2.835  -5.565  -0.847  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.558  -6.137  -1.482  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.510  -7.335  -1.746  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -3.872  -5.210  -1.927  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -4.472  -6.419  -2.672  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -3.967  -6.562  -4.118  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -4.912  -7.488  -4.895  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -4.381  -7.814  -6.240  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -3.146  -3.541  -0.174  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.247  -6.357  -0.218  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -4.675  -4.677  -1.456  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -3.417  -4.531  -2.647  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -4.216  -7.311  -2.133  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -5.554  -6.284  -2.697  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -3.944  -5.597  -4.587  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -2.954  -6.968  -4.111  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -5.039  -8.398  -4.342  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -5.879  -6.986  -4.990  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -4.156  -6.967  -6.745  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -3.540  -8.372  -6.153  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -5.066  -8.339  -6.770  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -0.531  -5.310  -1.709  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.782  -5.753  -2.199  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.608  -6.478  -1.111  0.00  0.00           C  
+ATOM    161  O   ASP A   9       2.514  -7.238  -1.445  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       1.552  -4.536  -2.756  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       2.243  -4.819  -4.098  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9       3.496  -4.834  -4.151  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9       1.520  -4.894  -5.114  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -0.652  -4.327  -1.493  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.624  -6.460  -3.016  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       0.860  -3.728  -2.893  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       2.281  -4.194  -2.021  0.00  0.00           H  
+ATOM    170  N   GLY A  10       1.277  -6.270   0.176  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       2.025  -6.755   1.345  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.511  -5.652   2.302  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.330  -5.927   3.184  0.00  0.00           O  
+ATOM    174  H   GLY A  10       0.421  -5.751   0.355  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.382  -7.428   1.912  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.898  -7.318   1.016  0.00  0.00           H  
+ATOM    177  N   GLY A  11       2.061  -4.397   2.131  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.503  -3.261   2.946  0.00  0.00           C  
+ATOM    179  C   GLY A  11       4.031  -3.074   2.887  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.595  -3.162   1.791  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.442  -4.219   1.351  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       2.030  -2.351   2.579  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.173  -3.433   3.969  0.00  0.00           H  
+ATOM    184  N   PRO A  12       4.729  -2.844   4.022  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.186  -2.657   4.057  0.00  0.00           C  
+ATOM    186  C   PRO A  12       7.000  -3.804   3.440  0.00  0.00           C  
+ATOM    187  O   PRO A  12       8.098  -3.571   2.938  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.560  -2.503   5.537  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       5.258  -2.091   6.219  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       4.187  -2.773   5.373  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.428  -1.733   3.531  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       6.920  -3.432   5.936  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       7.339  -1.752   5.678  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       5.228  -2.441   7.233  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       5.143  -1.008   6.161  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       3.987  -3.759   5.747  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.262  -2.198   5.412  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.470  -5.035   3.441  0.00  0.00           N  
+ATOM    199  CA  SER A  13       7.162  -6.235   2.936  0.00  0.00           C  
+ATOM    200  C   SER A  13       7.153  -6.352   1.402  0.00  0.00           C  
+ATOM    201  O   SER A  13       7.495  -7.398   0.861  0.00  0.00           O  
+ATOM    202  CB  SER A  13       6.574  -7.490   3.595  0.00  0.00           C  
+ATOM    203  OG  SER A  13       6.813  -7.451   4.988  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.505  -5.137   3.737  0.00  0.00           H  
+ATOM    205  HA  SER A  13       8.211  -6.179   3.232  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       5.517  -7.526   3.415  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       7.054  -8.380   3.187  0.00  0.00           H  
+ATOM    208  HG  SER A  13       6.443  -6.640   5.343  0.00  0.00           H  
+ATOM    209  N   SER A  14       6.767  -5.279   0.701  0.00  0.00           N  
+ATOM    210  CA  SER A  14       6.504  -5.245  -0.744  0.00  0.00           C  
+ATOM    211  C   SER A  14       7.583  -4.513  -1.556  0.00  0.00           C  
+ATOM    212  O   SER A  14       7.477  -4.434  -2.776  0.00  0.00           O  
+ATOM    213  CB  SER A  14       5.171  -4.534  -0.999  0.00  0.00           C  
+ATOM    214  OG  SER A  14       4.177  -4.877  -0.070  0.00  0.00           O  
+ATOM    215  H   SER A  14       6.484  -4.475   1.245  0.00  0.00           H  
+ATOM    216  HA  SER A  14       6.420  -6.264  -1.123  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       5.334  -3.475  -0.949  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       4.831  -4.746  -2.011  0.00  0.00           H  
+ATOM    219  HG  SER A  14       4.259  -4.235   0.675  0.00  0.00           H  
+ATOM    220  N   GLY A  15       8.589  -3.916  -0.899  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       9.628  -3.120  -1.568  0.00  0.00           C  
+ATOM    222  C   GLY A  15       9.147  -1.769  -2.127  0.00  0.00           C  
+ATOM    223  O   GLY A  15       9.811  -1.210  -2.995  0.00  0.00           O  
+ATOM    224  H   GLY A  15       8.637  -4.053   0.102  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15      10.434  -2.923  -0.862  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15      10.042  -3.698  -2.394  0.00  0.00           H  
+ATOM    227  N   ARG A  16       8.006  -1.245  -1.647  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       7.372  -0.003  -2.121  0.00  0.00           C  
+ATOM    229  C   ARG A  16       6.899   0.883  -0.950  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.250   0.369  -0.033  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       6.209  -0.320  -3.084  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       5.215  -1.352  -2.526  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       3.904  -1.443  -3.304  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       4.061  -2.274  -4.499  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       3.904  -1.985  -5.776  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       3.635  -0.767  -6.189  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       4.003  -2.954  -6.651  0.00  0.00           N  
+ATOM    238  H   ARG A  16       7.548  -1.757  -0.908  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       8.120   0.548  -2.691  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       5.677   0.590  -3.285  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       6.620  -0.712  -4.017  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       5.685  -2.316  -2.545  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       4.960  -1.114  -1.497  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       3.151  -1.874  -2.673  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       3.536  -0.446  -3.542  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       4.127  -3.284  -4.320  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       3.507  -0.060  -5.490  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       3.473  -0.577  -7.160  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       4.040  -3.895  -6.271  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       3.899  -2.795  -7.633  0.00  0.00           H  
+ATOM    251  N   PRO A  17       7.166   2.205  -0.969  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.727   3.117   0.088  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.195   3.304   0.088  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.551   3.043  -0.934  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.460   4.433  -0.196  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.647   4.418  -1.712  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       7.865   2.938  -2.017  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       7.042   2.728   1.057  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       6.869   5.275   0.109  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.437   4.415   0.288  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       6.774   4.790  -2.212  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.499   5.023  -2.023  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       7.459   2.692  -2.979  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       8.930   2.705  -1.974  0.00  0.00           H  
+ATOM    265  N   PRO A  18       4.598   3.763   1.206  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       3.160   4.002   1.296  0.00  0.00           C  
+ATOM    267  C   PRO A  18       2.723   5.223   0.459  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.486   6.180   0.323  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       2.870   4.209   2.786  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       4.187   4.765   3.327  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       5.239   4.048   2.482  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       2.639   3.111   0.954  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       2.070   4.910   2.928  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       2.665   3.246   3.253  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       4.242   5.828   3.190  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       4.310   4.556   4.389  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       6.095   4.679   2.337  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       5.518   3.109   2.962  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.487   5.223  -0.081  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       0.954   6.306  -0.911  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.318   7.463  -0.116  0.00  0.00           C  
+ATOM    282  O   PRO A  19      -0.042   8.473  -0.718  0.00  0.00           O  
+ATOM    283  CB  PRO A  19      -0.097   5.617  -1.786  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -0.667   4.552  -0.849  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       0.572   4.092  -0.088  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       1.738   6.719  -1.548  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -0.857   6.308  -2.094  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19       0.396   5.133  -2.632  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -1.398   4.970  -0.184  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -1.129   3.736  -1.404  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.311   3.818   0.916  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       1.042   3.271  -0.628  0.00  0.00           H  
+ATOM    293  N   SER A  20       0.154   7.315   1.206  0.00  0.00           N  
+ATOM    294  CA  SER A  20      -0.381   8.320   2.134  0.00  0.00           C  
+ATOM    295  C   SER A  20       0.429   8.296   3.426  0.00  0.00           C  
+ATOM    296  O   SER A  20       0.669   7.163   3.906  0.00  0.00           O  
+ATOM    297  CB  SER A  20      -1.858   8.039   2.425  0.00  0.00           C  
+ATOM    298  OG  SER A  20      -2.535   9.236   2.730  0.00  0.00           O  
+ATOM    299  OXT SER A  20       0.789   9.398   3.882  0.00  0.00           O  
+ATOM    300  H   SER A  20       0.527   6.490   1.654  0.00  0.00           H  
+ATOM    301  HA  SER A  20      -0.263   9.307   1.688  0.00  0.00           H  
+ATOM    302 1HB  SER A  20      -2.309   7.588   1.562  0.00  0.00           H  
+ATOM    303 2HB  SER A  20      -1.945   7.348   3.266  0.00  0.00           H  
+ATOM    304  HG  SER A  20      -1.973   9.971   2.469  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MODEL        9                                                                  
+ATOM      1  N   ASN A   1      -6.355   7.914   0.576  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -6.778   6.858  -0.378  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -5.549   6.028  -0.782  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -4.530   6.178  -0.119  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -7.563   7.460  -1.562  0.00  0.00           C  
+ATOM      6  CG  ASN A   1      -8.448   6.400  -2.211  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1      -8.022   5.688  -3.104  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1      -9.658   6.188  -1.730  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -5.830   7.486   1.328  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -5.742   8.573   0.115  0.00  0.00           H  
+ATOM     11 3H   ASN A   1      -7.157   8.399   0.955  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -7.452   6.182   0.150  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -8.178   8.264  -1.206  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -6.872   7.865  -2.304  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1     -10.087   6.731  -1.001  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1     -10.166   5.465  -2.217  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -5.630   5.135  -1.783  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -4.587   4.213  -2.289  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -3.962   3.229  -1.269  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -3.407   2.204  -1.668  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -3.510   5.015  -3.058  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -3.772   5.277  -4.555  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -3.748   3.980  -5.372  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -5.076   6.028  -4.834  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -6.497   5.119  -2.318  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -5.078   3.561  -3.012  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -3.409   5.968  -2.575  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -2.567   4.475  -3.000  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -2.952   5.903  -4.913  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -2.862   3.397  -5.120  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -4.638   3.385  -5.182  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -3.712   4.225  -6.435  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -5.932   5.392  -4.613  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -5.123   6.933  -4.230  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -5.117   6.307  -5.887  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -4.092   3.484   0.034  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.507   2.707   1.123  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -3.985   1.247   1.144  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.180   0.347   1.372  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -3.807   3.419   2.451  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -2.696   3.269   3.468  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -1.753   4.303   3.625  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -2.590   2.095   4.240  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -0.711   4.172   4.561  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -1.550   1.959   5.180  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -0.611   3.005   5.344  0.00  0.00           C  
+ATOM     47  OH  TYR A   3       0.374   2.911   6.276  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -4.425   4.414   0.259  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.425   2.700   0.981  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -3.951   4.464   2.254  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -4.742   3.045   2.871  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -1.821   5.207   3.034  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -3.308   1.299   4.106  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3       0.006   4.966   4.698  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -1.462   1.059   5.769  0.00  0.00           H  
+ATOM     56  HH  TYR A   3       0.027   2.663   7.133  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.271   0.998   0.853  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.839  -0.354   0.750  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -5.129  -1.160  -0.354  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -4.715  -2.294  -0.121  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.375  -0.317   0.526  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.137   0.556   1.557  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -7.940  -1.748   0.590  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -8.425   1.981   1.063  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -5.872   1.793   0.698  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.651  -0.867   1.695  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.576   0.069  -0.474  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -9.072   0.079   1.780  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -7.585   0.601   2.497  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.504  -2.371  -0.192  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -7.727  -2.194   1.563  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -9.020  -1.731   0.437  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -7.512   2.575   1.038  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4      -8.867   1.949   0.066  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4      -9.137   2.458   1.739  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -4.949  -0.564  -1.544  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -4.210  -1.179  -2.650  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.730  -1.412  -2.309  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -2.180  -2.447  -2.679  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -4.326  -0.333  -3.929  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -5.654  -0.555  -4.672  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -5.597   0.001  -6.097  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -4.724  -0.323  -6.881  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -6.527   0.846  -6.499  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -5.256   0.391  -1.646  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.639  -2.162  -2.849  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -4.251   0.704  -3.662  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -3.512  -0.622  -4.596  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -5.858  -1.608  -4.716  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -6.466  -0.086  -4.117  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -7.297   1.142  -5.929  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -6.409   1.126  -7.459  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -2.081  -0.492  -1.584  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.717  -0.712  -1.094  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.634  -1.871  -0.083  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.235  -2.738  -0.203  0.00  0.00           O  
+ATOM     97  CB  TRP A   6      -0.168   0.595  -0.511  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.222   0.490   0.032  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.356   0.444  -0.705  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.648   0.375   1.425  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.446   0.307   0.129  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       3.068   0.266   1.450  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       0.980   0.360   2.668  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.796   0.163   2.643  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.699   0.248   3.874  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       3.103   0.153   3.864  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.567   0.373  -1.361  0.00  0.00           H  
+ATOM    108  HA  TRP A   6      -0.089  -0.993  -1.940  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.171   1.336  -1.287  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -0.824   0.933   0.292  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.407   0.492  -1.782  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.421   0.258  -0.183  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6      -0.097   0.448   2.689  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       4.873   0.086   2.605  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       1.170   0.248   4.818  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.648   0.079   4.793  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.559  -1.927   0.884  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.650  -3.030   1.843  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.902  -4.384   1.166  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.269  -5.361   1.560  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.733  -2.741   2.896  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.320  -1.710   3.964  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.516  -1.453   4.886  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -1.139  -2.196   4.813  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.231  -1.165   0.952  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.687  -3.126   2.344  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.603  -2.370   2.390  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -2.981  -3.673   3.405  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -2.041  -0.773   3.487  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.353  -1.069   4.302  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -3.815  -2.379   5.378  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -3.251  -0.717   5.645  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -1.303  -3.225   5.133  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7      -0.219  -2.141   4.234  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -1.022  -1.564   5.694  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.764  -4.435   0.137  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -3.064  -5.639  -0.660  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.824  -6.358  -1.202  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.858  -7.580  -1.310  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -3.983  -5.265  -1.837  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -5.484  -5.361  -1.533  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -5.970  -6.821  -1.519  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -7.373  -6.934  -2.133  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -7.546  -8.214  -2.860  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -3.276  -3.581  -0.075  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.567  -6.365  -0.022  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -3.764  -4.255  -2.124  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -3.765  -5.907  -2.694  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -5.673  -4.922  -0.572  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -6.001  -4.816  -2.323  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -5.288  -7.424  -2.086  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -5.982  -7.196  -0.493  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -8.103  -6.877  -1.348  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -7.516  -6.106  -2.833  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -6.850  -8.287  -3.593  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -7.431  -8.996  -2.230  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -8.463  -8.259  -3.283  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -0.763  -5.623  -1.552  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.496  -6.197  -2.043  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.282  -6.902  -0.920  0.00  0.00           C  
+ATOM    161  O   ASP A   9       1.817  -7.991  -1.121  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       1.321  -5.072  -2.691  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       2.292  -5.605  -3.748  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9       3.441  -5.927  -3.382  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9       1.868  -5.659  -4.923  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -0.837  -4.618  -1.476  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.265  -6.940  -2.810  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       0.651  -4.376  -3.157  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       1.866  -4.522  -1.921  0.00  0.00           H  
+ATOM    170  N   GLY A  10       1.295  -6.304   0.280  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       2.040  -6.794   1.445  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.489  -5.723   2.455  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.314  -6.013   3.317  0.00  0.00           O  
+ATOM    174  H   GLY A  10       0.707  -5.487   0.357  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.418  -7.514   1.975  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.937  -7.314   1.102  0.00  0.00           H  
+ATOM    177  N   GLY A  11       1.982  -4.483   2.376  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.428  -3.400   3.257  0.00  0.00           C  
+ATOM    179  C   GLY A  11       3.939  -3.116   3.122  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.431  -3.017   1.996  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.270  -4.287   1.690  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       1.885  -2.490   3.006  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.184  -3.679   4.281  0.00  0.00           H  
+ATOM    184  N   PRO A  12       4.698  -2.946   4.226  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.130  -2.631   4.172  0.00  0.00           C  
+ATOM    186  C   PRO A  12       7.010  -3.666   3.454  0.00  0.00           C  
+ATOM    187  O   PRO A  12       8.063  -3.297   2.936  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.588  -2.475   5.628  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       5.303  -2.191   6.399  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       4.243  -2.957   5.611  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.248  -1.673   3.664  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       7.051  -3.377   5.980  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       7.305  -1.661   5.732  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       5.371  -2.555   7.406  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       5.086  -1.123   6.366  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       4.164  -3.965   5.971  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.275  -2.469   5.727  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.616  -4.948   3.398  0.00  0.00           N  
+ATOM    199  CA  SER A  13       7.425  -6.010   2.779  0.00  0.00           C  
+ATOM    200  C   SER A  13       7.282  -6.083   1.247  0.00  0.00           C  
+ATOM    201  O   SER A  13       7.825  -6.993   0.624  0.00  0.00           O  
+ATOM    202  CB  SER A  13       7.160  -7.358   3.464  0.00  0.00           C  
+ATOM    203  OG  SER A  13       5.803  -7.725   3.370  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.705  -5.222   3.755  0.00  0.00           H  
+ATOM    205  HA  SER A  13       8.474  -5.782   2.964  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       7.759  -8.113   2.992  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       7.430  -7.277   4.519  0.00  0.00           H  
+ATOM    208  HG  SER A  13       5.735  -8.681   3.298  0.00  0.00           H  
+ATOM    209  N   SER A  14       6.606  -5.101   0.635  0.00  0.00           N  
+ATOM    210  CA  SER A  14       6.348  -4.975  -0.808  0.00  0.00           C  
+ATOM    211  C   SER A  14       7.404  -4.162  -1.577  0.00  0.00           C  
+ATOM    212  O   SER A  14       7.289  -3.990  -2.790  0.00  0.00           O  
+ATOM    213  CB  SER A  14       5.008  -4.262  -1.007  0.00  0.00           C  
+ATOM    214  OG  SER A  14       4.002  -4.863  -0.226  0.00  0.00           O  
+ATOM    215  H   SER A  14       6.121  -4.441   1.233  0.00  0.00           H  
+ATOM    216  HA  SER A  14       6.278  -5.969  -1.254  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       5.110  -3.234  -0.719  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       4.727  -4.291  -2.059  0.00  0.00           H  
+ATOM    219  HG  SER A  14       3.353  -4.187  -0.015  0.00  0.00           H  
+ATOM    220  N   GLY A  15       8.395  -3.574  -0.897  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       9.449  -2.750  -1.509  0.00  0.00           C  
+ATOM    222  C   GLY A  15       9.021  -1.317  -1.874  0.00  0.00           C  
+ATOM    223  O   GLY A  15       9.808  -0.389  -1.697  0.00  0.00           O  
+ATOM    224  H   GLY A  15       8.410  -3.718   0.104  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15      10.294  -2.689  -0.823  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15       9.796  -3.237  -2.420  0.00  0.00           H  
+ATOM    227  N   ARG A  16       7.790  -1.115  -2.367  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       7.218   0.212  -2.656  0.00  0.00           C  
+ATOM    229  C   ARG A  16       6.821   0.946  -1.353  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.154   0.335  -0.515  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       6.002   0.046  -3.589  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       5.399   1.393  -4.024  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       4.125   1.223  -4.857  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       3.497   2.535  -5.114  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       2.320   2.983  -4.685  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       1.482   2.226  -4.014  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       1.953   4.216  -4.940  0.00  0.00           N  
+ATOM    238  H   ARG A  16       7.238  -1.952  -2.530  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       7.984   0.787  -3.176  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       6.312  -0.490  -4.465  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       5.238  -0.540  -3.076  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       5.163   1.964  -3.147  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       6.135   1.947  -4.608  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       4.374   0.761  -5.793  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       3.445   0.561  -4.322  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       4.053   3.192  -5.635  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       1.728   1.264  -3.884  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       0.601   2.578  -3.692  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       2.560   4.835  -5.449  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       1.060   4.549  -4.627  0.00  0.00           H  
+ATOM    251  N   PRO A  17       7.132   2.251  -1.190  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.721   3.035  -0.016  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.194   3.259   0.062  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.507   3.162  -0.959  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.473   4.368  -0.143  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.674   4.523  -1.648  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       7.904   3.085  -2.103  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       7.053   2.520   0.885  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       6.889   5.177   0.251  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.446   4.287   0.346  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       6.803   4.942  -2.114  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.524   5.165  -1.882  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       7.561   2.953  -3.111  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       8.962   2.836  -2.011  0.00  0.00           H  
+ATOM    265  N   PRO A  18       4.651   3.589   1.252  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       3.222   3.833   1.437  0.00  0.00           C  
+ATOM    267  C   PRO A  18       2.772   5.142   0.759  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.480   6.148   0.843  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       3.004   3.890   2.953  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       4.356   4.348   3.494  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       5.355   3.724   2.520  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       2.669   2.988   1.034  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       2.233   4.593   3.203  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       2.784   2.892   3.327  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       4.430   5.418   3.487  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       4.520   4.003   4.516  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       6.211   4.361   2.405  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       5.649   2.736   2.877  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.591   5.165   0.108  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       1.031   6.371  -0.488  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.380   7.262   0.584  0.00  0.00           C  
+ATOM    282  O   PRO A  19      -0.321   6.767   1.470  0.00  0.00           O  
+ATOM    283  CB  PRO A  19       0.009   5.859  -1.504  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -0.512   4.571  -0.862  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       0.696   4.034  -0.095  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       1.809   6.936  -1.005  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -0.784   6.568  -1.642  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19       0.521   5.617  -2.437  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -1.327   4.778  -0.196  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -0.847   3.854  -1.611  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.386   3.632   0.850  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       1.206   3.279  -0.693  0.00  0.00           H  
+ATOM    293  N   SER A  20       0.592   8.578   0.472  0.00  0.00           N  
+ATOM    294  CA  SER A  20       0.019   9.620   1.329  0.00  0.00           C  
+ATOM    295  C   SER A  20      -0.235  10.875   0.498  0.00  0.00           C  
+ATOM    296  O   SER A  20       0.745  11.327  -0.137  0.00  0.00           O  
+ATOM    297  CB  SER A  20       0.977   9.898   2.490  0.00  0.00           C  
+ATOM    298  OG  SER A  20       0.308  10.641   3.489  0.00  0.00           O  
+ATOM    299  OXT SER A  20      -1.409  11.298   0.440  0.00  0.00           O  
+ATOM    300  H   SER A  20       1.168   8.935  -0.278  0.00  0.00           H  
+ATOM    301  HA  SER A  20      -0.939   9.293   1.731  0.00  0.00           H  
+ATOM    302 1HB  SER A  20       1.316   8.968   2.904  0.00  0.00           H  
+ATOM    303 2HB  SER A  20       1.845  10.449   2.120  0.00  0.00           H  
+ATOM    304  HG  SER A  20       0.955  10.989   4.106  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MODEL       10                                                                  
+ATOM      1  N   ASN A   1      -6.943   6.963   0.951  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -7.689   6.240  -0.107  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -6.888   5.124  -0.770  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -7.377   4.006  -0.773  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -8.340   7.202  -1.116  0.00  0.00           C  
+ATOM      6  CG  ASN A   1      -9.413   8.048  -0.430  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1      -9.573   7.981   0.781  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1     -10.146   8.872  -1.153  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -6.551   6.315   1.619  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -6.210   7.532   0.552  0.00  0.00           H  
+ATOM     11 3H   ASN A   1      -7.600   7.571   1.435  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -8.514   5.723   0.389  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -7.587   7.849  -1.524  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -8.816   6.622  -1.909  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1     -10.039   8.989  -2.148  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1     -10.843   9.380  -0.632  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -5.683   5.360  -1.308  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -4.939   4.305  -2.022  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -4.268   3.260  -1.097  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -3.716   2.270  -1.573  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -3.943   4.985  -2.983  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -3.510   4.134  -4.197  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -4.689   3.815  -5.127  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -2.467   4.910  -5.004  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -5.289   6.289  -1.343  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -5.665   3.756  -2.620  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -4.400   5.882  -3.353  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -3.059   5.272  -2.417  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -3.055   3.203  -3.864  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -5.375   3.120  -4.648  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -5.221   4.730  -5.390  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -4.321   3.345  -6.040  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -2.887   5.852  -5.359  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -1.596   5.115  -4.384  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -2.147   4.317  -5.861  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -4.340   3.443   0.228  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.683   2.595   1.228  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -4.096   1.115   1.160  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.266   0.248   1.427  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -3.925   3.179   2.630  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -2.760   2.970   3.580  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -1.680   3.874   3.561  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -2.753   1.884   4.475  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -0.588   3.691   4.430  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -1.662   1.698   5.348  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -0.577   2.599   5.325  0.00  0.00           C  
+ATOM     47  OH  TYR A   3       0.476   2.408   6.162  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -4.813   4.268   0.548  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.609   2.637   1.035  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -4.100   4.233   2.534  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -4.832   2.746   3.057  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -1.686   4.718   2.886  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -3.582   1.193   4.494  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3       0.229   4.396   4.422  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -1.639   0.873   6.042  0.00  0.00           H  
+ATOM     56  HH  TYR A   3       1.215   2.981   5.950  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.333   0.810   0.732  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.790  -0.565   0.464  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -4.909  -1.223  -0.610  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -4.439  -2.342  -0.417  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.285  -0.604   0.049  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.234   0.069   1.074  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -7.764  -2.056  -0.139  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -8.662   1.477   0.657  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -5.959   1.576   0.529  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.679  -1.148   1.381  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.388  -0.102  -0.916  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -9.112  -0.539   1.177  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -7.760   0.113   2.055  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.127  -2.599  -0.836  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -7.772  -2.577   0.819  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -8.776  -2.054  -0.550  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -7.813   2.149   0.745  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4      -9.034   1.472  -0.368  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4      -9.458   1.827   1.316  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -4.664  -0.521  -1.727  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -3.843  -0.981  -2.852  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.374  -1.203  -2.455  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -1.735  -2.102  -2.996  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -3.966   0.016  -4.026  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -4.731  -0.540  -5.248  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -3.839  -0.991  -6.408  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -2.801  -0.426  -6.704  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -4.226  -2.006  -7.158  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -4.986   0.437  -1.755  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.229  -1.945  -3.174  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -4.481   0.889  -3.674  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -2.974   0.357  -4.328  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -5.311  -1.383  -4.925  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -5.374   0.252  -5.631  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -5.133  -2.431  -7.060  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -3.683  -2.060  -8.004  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -1.859  -0.430  -1.488  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.534  -0.641  -0.897  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.505  -1.815   0.100  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.412  -2.635   0.060  0.00  0.00           O  
+ATOM     97  CB  TRP A   6      -0.068   0.666  -0.245  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.303   0.611   0.356  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.468   0.703  -0.325  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.674   0.434   1.758  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.528   0.564   0.550  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       3.097   0.425   1.849  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       0.953   0.284   2.960  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.775   0.299   3.069  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.622   0.134   4.190  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       3.026   0.159   4.250  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.448   0.312  -1.131  0.00  0.00           H  
+ATOM    108  HA  TRP A   6       0.169  -0.885  -1.694  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.074   1.434  -0.994  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -0.776   0.954   0.532  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.556   0.855  -1.394  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.512   0.575   0.270  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6      -0.126   0.291   2.931  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       4.854   0.309   3.090  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       1.050   0.016   5.100  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.527   0.067   5.203  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.510  -1.935   0.978  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.599  -3.048   1.926  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.809  -4.403   1.239  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.124  -5.355   1.613  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.699  -2.798   2.974  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.286  -1.852   4.119  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.491  -1.640   5.038  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -1.140  -2.415   4.972  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.224  -1.210   1.007  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.640  -3.131   2.434  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.547  -2.370   2.475  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -2.977  -3.755   3.419  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -1.983  -0.891   3.707  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.312  -1.199   4.473  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -3.814  -2.592   5.458  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -3.224  -0.969   5.855  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -1.389  -3.418   5.318  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7      -0.217  -2.452   4.397  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -0.968  -1.773   5.834  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.697  -4.510   0.235  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -2.957  -5.783  -0.469  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.729  -6.374  -1.170  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.710  -7.566  -1.460  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -4.168  -5.663  -1.419  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -4.006  -4.746  -2.644  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -3.193  -5.323  -3.812  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -3.386  -4.457  -5.061  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -2.231  -4.566  -5.977  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -3.247  -3.686  -0.007  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.228  -6.519   0.290  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -4.396  -6.648  -1.779  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -5.007  -5.283  -0.833  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -4.987  -4.511  -3.011  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -3.534  -3.825  -2.321  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -2.153  -5.339  -3.548  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -3.497  -6.350  -4.023  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -4.271  -4.779  -5.575  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -3.483  -3.417  -4.746  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -1.362  -4.377  -5.451  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -2.123  -5.504  -6.333  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -2.292  -3.898  -6.731  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -0.707  -5.552  -1.426  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.589  -5.960  -1.966  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.516  -6.588  -0.906  0.00  0.00           C  
+ATOM    161  O   ASP A   9       2.485  -7.250  -1.274  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       1.253  -4.722  -2.594  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       1.159  -4.718  -4.115  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9       2.240  -4.782  -4.738  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9       0.038  -4.607  -4.656  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -0.829  -4.576  -1.196  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.438  -6.713  -2.742  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       0.768  -3.843  -2.217  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       2.307  -4.701  -2.323  0.00  0.00           H  
+ATOM    170  N   GLY A  10       1.212  -6.406   0.389  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       2.037  -6.837   1.523  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.524  -5.698   2.431  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.335  -5.946   3.326  0.00  0.00           O  
+ATOM    174  H   GLY A  10       0.334  -5.944   0.606  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.452  -7.525   2.133  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.916  -7.372   1.161  0.00  0.00           H  
+ATOM    177  N   GLY A  11       2.079  -4.450   2.212  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.527  -3.280   2.968  0.00  0.00           C  
+ATOM    179  C   GLY A  11       4.060  -3.125   2.939  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.630  -3.169   1.842  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.473  -4.294   1.414  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       2.088  -2.385   2.527  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.161  -3.373   3.989  0.00  0.00           H  
+ATOM    184  N   PRO A  12       4.753  -2.971   4.089  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.211  -2.791   4.140  0.00  0.00           C  
+ATOM    186  C   PRO A  12       7.014  -3.874   3.403  0.00  0.00           C  
+ATOM    187  O   PRO A  12       8.041  -3.574   2.797  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.582  -2.768   5.628  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       5.287  -2.370   6.329  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       4.205  -2.974   5.438  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.452  -1.822   3.699  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       6.909  -3.736   5.954  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       7.381  -2.053   5.830  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       5.244  -2.782   7.319  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       5.193  -1.282   6.336  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       3.982  -3.977   5.748  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.295  -2.381   5.511  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.533  -5.123   3.409  0.00  0.00           N  
+ATOM    199  CA  SER A  13       7.187  -6.275   2.772  0.00  0.00           C  
+ATOM    200  C   SER A  13       7.064  -6.297   1.237  0.00  0.00           C  
+ATOM    201  O   SER A  13       7.472  -7.272   0.612  0.00  0.00           O  
+ATOM    202  CB  SER A  13       6.637  -7.571   3.386  0.00  0.00           C  
+ATOM    203  OG  SER A  13       6.985  -7.634   4.757  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.655  -5.302   3.884  0.00  0.00           H  
+ATOM    205  HA  SER A  13       8.253  -6.230   2.991  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       5.569  -7.587   3.288  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       7.058  -8.437   2.875  0.00  0.00           H  
+ATOM    208  HG  SER A  13       7.938  -7.738   4.830  0.00  0.00           H  
+ATOM    209  N   SER A  14       6.524  -5.234   0.624  0.00  0.00           N  
+ATOM    210  CA  SER A  14       6.244  -5.155  -0.818  0.00  0.00           C  
+ATOM    211  C   SER A  14       7.352  -4.486  -1.642  0.00  0.00           C  
+ATOM    212  O   SER A  14       7.292  -4.512  -2.869  0.00  0.00           O  
+ATOM    213  CB  SER A  14       4.956  -4.361  -1.069  0.00  0.00           C  
+ATOM    214  OG  SER A  14       3.953  -4.634  -0.126  0.00  0.00           O  
+ATOM    215  H   SER A  14       6.200  -4.481   1.217  0.00  0.00           H  
+ATOM    216  HA  SER A  14       6.093  -6.164  -1.206  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       5.186  -3.314  -1.030  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       4.589  -4.586  -2.070  0.00  0.00           H  
+ATOM    219  HG  SER A  14       4.150  -4.078   0.666  0.00  0.00           H  
+ATOM    220  N   GLY A  15       8.336  -3.840  -0.998  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       9.395  -3.094  -1.693  0.00  0.00           C  
+ATOM    222  C   GLY A  15       8.943  -1.756  -2.301  0.00  0.00           C  
+ATOM    223  O   GLY A  15       9.512  -1.327  -3.303  0.00  0.00           O  
+ATOM    224  H   GLY A  15       8.352  -3.897   0.012  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15      10.206  -2.893  -0.996  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15       9.795  -3.712  -2.500  0.00  0.00           H  
+ATOM    227  N   ARG A  16       7.916  -1.105  -1.732  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       7.364   0.181  -2.198  0.00  0.00           C  
+ATOM    229  C   ARG A  16       6.867   1.046  -1.024  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.262   0.497  -0.098  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       6.251  -0.057  -3.241  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       5.161  -1.058  -2.811  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       4.134  -1.346  -3.924  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       4.103  -2.766  -4.336  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       5.054  -3.492  -4.909  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       6.220  -2.996  -5.246  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       4.821  -4.753  -5.163  0.00  0.00           N  
+ATOM    238  H   ARG A  16       7.511  -1.511  -0.898  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       8.172   0.718  -2.695  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       5.778   0.884  -3.444  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       6.725  -0.430  -4.149  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       5.634  -1.981  -2.535  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       4.637  -0.670  -1.938  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       3.159  -1.073  -3.568  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       4.340  -0.723  -4.795  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       3.238  -3.299  -4.232  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       6.407  -2.037  -5.038  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       6.943  -3.615  -5.560  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       3.839  -5.043  -5.009  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       5.505  -5.381  -5.529  0.00  0.00           H  
+ATOM    251  N   PRO A  17       7.083   2.378  -1.045  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.638   3.277   0.023  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.104   3.442   0.035  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.455   3.170  -0.978  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.343   4.610  -0.260  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.496   4.611  -1.779  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       7.741   3.138  -2.101  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       6.968   2.888   0.986  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       6.744   5.438   0.067  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.332   4.604   0.204  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       6.603   4.967  -2.256  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.328   5.240  -2.103  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       7.319   2.890  -3.056  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       8.812   2.932  -2.083  0.00  0.00           H  
+ATOM    265  N   PRO A  18       4.512   3.890   1.161  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       3.074   4.111   1.260  0.00  0.00           C  
+ATOM    267  C   PRO A  18       2.616   5.335   0.440  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.395   6.265   0.230  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       2.796   4.301   2.754  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       4.105   4.879   3.287  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       5.162   4.183   2.431  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       2.556   3.220   0.910  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       1.983   4.984   2.910  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       2.610   3.329   3.214  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       4.140   5.943   3.153  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       4.240   4.666   4.348  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       6.005   4.829   2.279  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       5.463   3.249   2.906  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.341   5.370   0.004  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       0.777   6.481  -0.754  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.447   7.673   0.157  0.00  0.00           C  
+ATOM    282  O   PRO A  19      -0.482   7.605   0.965  0.00  0.00           O  
+ATOM    283  CB  PRO A  19      -0.466   5.904  -1.437  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -0.933   4.811  -0.475  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       0.371   4.292   0.127  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       1.481   6.804  -1.523  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -1.221   6.657  -1.557  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19      -0.172   5.448  -2.384  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -1.573   5.216   0.285  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -1.468   4.019  -0.996  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.227   4.038   1.160  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       0.725   3.441  -0.450  0.00  0.00           H  
+ATOM    293  N   SER A  20       1.209   8.762   0.004  0.00  0.00           N  
+ATOM    294  CA  SER A  20       1.059  10.038   0.716  0.00  0.00           C  
+ATOM    295  C   SER A  20       1.217  11.216  -0.248  0.00  0.00           C  
+ATOM    296  O   SER A  20       2.389  11.403  -0.664  0.00  0.00           O  
+ATOM    297  CB  SER A  20       2.098  10.115   1.845  0.00  0.00           C  
+ATOM    298  OG  SER A  20       3.359  10.263   1.230  0.00  0.00           O  
+ATOM    299  OXT SER A  20       0.202  11.886  -0.520  0.00  0.00           O  
+ATOM    300  H   SER A  20       1.991   8.709  -0.634  0.00  0.00           H  
+ATOM    301  HA  SER A  20       0.060  10.107   1.146  0.00  0.00           H  
+ATOM    302 1HB  SER A  20       1.894  10.958   2.477  0.00  0.00           H  
+ATOM    303 2HB  SER A  20       2.070   9.211   2.456  0.00  0.00           H  
+ATOM    304  HG  SER A  20       3.120  10.769   0.374  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MODEL       11                                                                  
+ATOM      1  N   ASN A   1      -6.688   7.436  -0.473  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -7.529   6.238  -0.712  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -6.749   5.006  -1.210  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -7.279   3.906  -1.158  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -8.713   6.573  -1.639  0.00  0.00           C  
+ATOM      6  CG  ASN A   1      -9.880   5.632  -1.366  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1     -10.413   5.629  -0.269  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1     -10.300   4.816  -2.315  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -5.936   7.221   0.168  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -6.305   7.780  -1.344  0.00  0.00           H  
+ATOM     11 3H   ASN A   1      -7.252   8.169  -0.065  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -7.963   5.944   0.246  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -9.025   7.584  -1.463  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -8.412   6.523  -2.686  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1      -9.869   4.743  -3.220  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1     -11.067   4.224  -2.039  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -5.494   5.147  -1.665  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -4.691   4.051  -2.237  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -4.046   3.125  -1.181  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -3.429   2.120  -1.531  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -3.615   4.692  -3.131  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -4.196   5.327  -4.413  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -3.432   6.605  -4.768  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -4.134   4.351  -5.589  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -5.038   6.044  -1.695  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -5.328   3.419  -2.859  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -3.113   5.455  -2.568  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -2.872   3.942  -3.409  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -5.238   5.607  -4.254  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -3.529   7.331  -3.961  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -2.377   6.382  -4.926  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -3.850   7.041  -5.676  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -3.107   4.029  -5.760  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -4.756   3.481  -5.378  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -4.508   4.834  -6.491  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -4.195   3.445   0.111  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.594   2.700   1.221  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -4.029   1.227   1.239  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.224   0.352   1.545  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -3.934   3.395   2.550  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -2.766   3.426   3.514  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -1.987   4.594   3.643  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -2.442   2.278   4.260  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -0.891   4.614   4.527  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -1.344   2.291   5.138  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -0.566   3.461   5.272  0.00  0.00           C  
+ATOM     47  OH  TYR A   3       0.481   3.472   6.138  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -4.719   4.274   0.329  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.512   2.721   1.090  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -4.233   4.404   2.342  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -4.777   2.889   3.026  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -2.219   5.478   3.065  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -3.039   1.385   4.148  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3      -0.292   5.509   4.627  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -1.086   1.416   5.715  0.00  0.00           H  
+ATOM     56  HH  TYR A   3       0.250   3.913   6.958  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.286   0.955   0.858  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.847  -0.393   0.739  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -5.076  -1.179  -0.327  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -4.596  -2.269  -0.040  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.361  -0.341   0.420  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.160   0.545   1.415  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -7.962  -1.760   0.413  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -9.201   1.423   0.710  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -5.875   1.740   0.624  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.714  -0.910   1.692  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.471   0.071  -0.583  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -8.664  -0.092   2.116  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -7.498   1.210   1.968  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.462  -2.390  -0.323  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -7.853  -2.219   1.398  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -9.022  -1.713   0.159  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -8.755   1.914  -0.157  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4     -10.046   0.816   0.386  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4      -9.552   2.192   1.399  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -4.908  -0.611  -1.532  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -4.116  -1.188  -2.627  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.676  -1.485  -2.194  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -2.183  -2.586  -2.432  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -4.133  -0.239  -3.843  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -5.217  -0.612  -4.859  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -5.369   0.472  -5.923  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -6.272   1.289  -5.876  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -4.484   0.535  -6.899  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -5.264   0.324  -1.655  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.559  -2.141  -2.917  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -4.314   0.761  -3.498  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -3.168  -0.273  -4.350  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -4.948  -1.535  -5.335  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -6.173  -0.735  -4.347  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -3.716  -0.109  -6.984  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -4.657   1.272  -7.562  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -2.015  -0.526  -1.535  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.661  -0.714  -1.009  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.581  -1.833   0.042  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.287  -2.706  -0.046  0.00  0.00           O  
+ATOM     97  CB  TRP A   6      -0.147   0.614  -0.453  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.240   0.540   0.100  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.369   0.426  -0.635  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.668   0.524   1.498  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.457   0.329   0.207  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       3.087   0.401   1.528  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       1.008   0.607   2.744  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.824   0.375   2.719  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.737   0.578   3.950  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       3.140   0.468   3.941  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.482   0.369  -1.404  0.00  0.00           H  
+ATOM    108  HA  TRP A   6      -0.009  -1.011  -1.832  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.158   1.339  -1.244  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -0.819   0.959   0.333  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.409   0.399  -1.716  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.432   0.245  -0.091  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6      -0.065   0.714   2.764  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       4.901   0.285   2.682  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       1.222   0.668   4.895  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.687   0.462   4.872  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.500  -1.852   1.018  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.566  -2.933   2.003  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.887  -4.289   1.365  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.341  -5.295   1.810  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.578  -2.606   3.117  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.079  -1.558   4.127  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.224  -1.188   5.075  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -0.891  -2.038   4.980  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.182  -1.096   1.068  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.574  -3.041   2.436  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.475  -2.234   2.660  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -2.812  -3.520   3.665  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -1.776  -0.664   3.583  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.066  -0.795   4.505  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -3.553  -2.070   5.626  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -2.889  -0.433   5.787  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -1.235  -2.453   5.927  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7      -0.314  -2.808   4.473  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -0.234  -1.196   5.184  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.711  -4.325   0.308  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -3.090  -5.545  -0.417  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.889  -6.299  -0.992  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.885  -7.526  -0.985  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -4.077  -5.189  -1.537  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -4.961  -6.377  -1.915  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -6.092  -5.927  -2.853  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -6.345  -6.989  -3.925  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -7.706  -6.871  -4.496  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -3.163  -3.451   0.044  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.576  -6.217   0.293  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -4.702  -4.383  -1.205  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -3.527  -4.857  -2.421  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -4.364  -7.118  -2.411  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -5.410  -6.796  -1.012  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -6.988  -5.780  -2.282  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -5.831  -4.988  -3.347  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -5.625  -6.869  -4.712  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -6.210  -7.979  -3.483  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -8.393  -7.094  -3.788  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -7.869  -5.930  -4.825  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -7.818  -7.515  -5.269  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -0.879  -5.565  -1.461  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.388  -6.124  -1.938  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.241  -6.707  -0.792  0.00  0.00           C  
+ATOM    161  O   ASP A   9       2.087  -7.564  -1.026  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       1.146  -5.019  -2.691  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       2.006  -5.586  -3.819  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9       3.181  -5.908  -3.534  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9       1.487  -5.664  -4.954  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -0.992  -4.558  -1.468  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.170  -6.935  -2.635  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       0.435  -4.333  -3.108  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       1.772  -4.458  -1.992  0.00  0.00           H  
+ATOM    170  N   GLY A  10       0.985  -6.274   0.450  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       1.737  -6.639   1.646  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.495  -5.468   2.278  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.461  -5.715   3.003  0.00  0.00           O  
+ATOM    174  H   GLY A  10       0.165  -5.692   0.580  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.039  -7.025   2.389  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.442  -7.433   1.411  0.00  0.00           H  
+ATOM    177  N   GLY A  11       2.110  -4.213   1.995  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.673  -3.013   2.615  0.00  0.00           C  
+ATOM    179  C   GLY A  11       4.207  -2.948   2.501  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.725  -3.042   1.386  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.398  -4.072   1.288  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       2.258  -2.139   2.116  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.357  -2.986   3.655  0.00  0.00           H  
+ATOM    184  N   PRO A  12       4.960  -2.809   3.616  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.424  -2.779   3.578  0.00  0.00           C  
+ATOM    186  C   PRO A  12       7.069  -4.028   2.960  0.00  0.00           C  
+ATOM    187  O   PRO A  12       8.189  -3.932   2.461  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.890  -2.607   5.031  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       5.663  -2.077   5.767  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       4.496  -2.685   4.991  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.736  -1.908   3.002  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       7.202  -3.547   5.443  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       7.726  -1.910   5.099  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       5.657  -2.404   6.789  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       5.630  -0.990   5.687  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       4.243  -3.649   5.389  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.623  -2.038   5.075  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.387  -5.186   2.959  0.00  0.00           N  
+ATOM    199  CA  SER A  13       6.949  -6.443   2.439  0.00  0.00           C  
+ATOM    200  C   SER A  13       7.314  -6.364   0.949  0.00  0.00           C  
+ATOM    201  O   SER A  13       8.295  -6.974   0.530  0.00  0.00           O  
+ATOM    202  CB  SER A  13       6.004  -7.621   2.705  0.00  0.00           C  
+ATOM    203  OG  SER A  13       4.930  -7.624   1.798  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.432  -5.191   3.307  0.00  0.00           H  
+ATOM    205  HA  SER A  13       7.871  -6.641   2.985  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       6.551  -8.539   2.604  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       5.606  -7.556   3.718  0.00  0.00           H  
+ATOM    208  HG  SER A  13       4.348  -6.883   2.036  0.00  0.00           H  
+ATOM    209  N   SER A  14       6.579  -5.561   0.169  0.00  0.00           N  
+ATOM    210  CA  SER A  14       6.820  -5.327  -1.256  0.00  0.00           C  
+ATOM    211  C   SER A  14       7.922  -4.294  -1.522  0.00  0.00           C  
+ATOM    212  O   SER A  14       8.242  -4.017  -2.677  0.00  0.00           O  
+ATOM    213  CB  SER A  14       5.537  -4.831  -1.928  0.00  0.00           C  
+ATOM    214  OG  SER A  14       4.441  -5.626  -1.548  0.00  0.00           O  
+ATOM    215  H   SER A  14       5.746  -5.132   0.560  0.00  0.00           H  
+ATOM    216  HA  SER A  14       7.104  -6.271  -1.725  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       5.355  -3.815  -1.634  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       5.656  -4.884  -3.011  0.00  0.00           H  
+ATOM    219  HG  SER A  14       3.881  -5.799  -2.406  0.00  0.00           H  
+ATOM    220  N   GLY A  15       8.461  -3.653  -0.477  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       9.520  -2.646  -0.549  0.00  0.00           C  
+ATOM    222  C   GLY A  15       9.063  -1.246  -0.987  0.00  0.00           C  
+ATOM    223  O   GLY A  15       9.688  -0.260  -0.601  0.00  0.00           O  
+ATOM    224  H   GLY A  15       8.144  -3.918   0.453  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15       9.982  -2.562   0.434  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15      10.282  -2.988  -1.252  0.00  0.00           H  
+ATOM    227  N   ARG A  16       7.983  -1.136  -1.775  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       7.407   0.144  -2.217  0.00  0.00           C  
+ATOM    229  C   ARG A  16       6.873   0.959  -1.017  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.188   0.381  -0.171  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       6.295  -0.134  -3.247  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       5.773   1.159  -3.895  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       4.638   0.926  -4.896  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       5.119   0.301  -6.142  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       4.470   0.248  -7.298  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       3.270   0.763  -7.440  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       5.020  -0.326  -8.342  0.00  0.00           N  
+ATOM    238  H   ARG A  16       7.569  -2.007  -2.081  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       8.207   0.703  -2.701  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       6.686  -0.773  -4.015  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       5.468  -0.652  -2.755  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       5.414   1.807  -3.119  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       6.591   1.664  -4.410  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       3.906   0.283  -4.446  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       4.201   1.899  -5.127  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       6.032  -0.122  -6.114  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       2.845   1.192  -6.637  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       2.779   0.716  -8.314  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       5.933  -0.740  -8.273  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       4.520  -0.368  -9.211  0.00  0.00           H  
+ATOM    251  N   PRO A  17       7.105   2.288  -0.945  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.592   3.134   0.139  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.058   3.310   0.093  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.451   3.102  -0.962  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.309   4.480  -0.034  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.588   4.545  -1.531  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       7.889   3.089  -1.878  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       6.871   2.694   1.095  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       6.679   5.292   0.274  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.253   4.460   0.511  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       6.731   4.902  -2.069  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.431   5.198  -1.763  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       7.597   2.878  -2.889  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       8.949   2.883  -1.728  0.00  0.00           H  
+ATOM    265  N   PRO A  18       4.425   3.724   1.211  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       2.983   3.945   1.275  0.00  0.00           C  
+ATOM    267  C   PRO A  18       2.554   5.198   0.492  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.293   6.183   0.449  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       2.654   4.089   2.764  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       3.948   4.624   3.370  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       5.036   3.983   2.507  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       2.476   3.068   0.878  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       1.847   4.781   2.913  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       2.438   3.109   3.186  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       3.988   5.694   3.306  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       4.049   4.343   4.419  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       5.868   4.652   2.399  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       5.351   3.039   2.955  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.342   5.203  -0.093  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       0.805   6.357  -0.803  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.320   7.423   0.190  0.00  0.00           C  
+ATOM    282  O   PRO A  19      -0.257   7.100   1.229  0.00  0.00           O  
+ATOM    283  CB  PRO A  19      -0.339   5.795  -1.648  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -0.864   4.631  -0.807  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       0.380   4.112  -0.089  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       1.566   6.787  -1.457  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -1.102   6.533  -1.800  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19       0.063   5.409  -2.586  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -1.599   4.969  -0.102  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -1.304   3.856  -1.430  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.138   3.834   0.919  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       0.800   3.273  -0.642  0.00  0.00           H  
+ATOM    293  N   SER A  20       0.540   8.696  -0.154  0.00  0.00           N  
+ATOM    294  CA  SER A  20       0.107   9.883   0.597  0.00  0.00           C  
+ATOM    295  C   SER A  20      -0.517  10.892  -0.359  0.00  0.00           C  
+ATOM    296  O   SER A  20       0.173  11.221  -1.351  0.00  0.00           O  
+ATOM    297  CB  SER A  20       1.287  10.518   1.338  0.00  0.00           C  
+ATOM    298  OG  SER A  20       1.823   9.586   2.254  0.00  0.00           O  
+ATOM    299  OXT SER A  20      -1.676  11.275  -0.100  0.00  0.00           O  
+ATOM    300  H   SER A  20       0.976   8.906  -1.042  0.00  0.00           H  
+ATOM    301  HA  SER A  20      -0.660   9.612   1.323  0.00  0.00           H  
+ATOM    302 1HB  SER A  20       2.043  10.801   0.631  0.00  0.00           H  
+ATOM    303 2HB  SER A  20       0.947  11.404   1.878  0.00  0.00           H  
+ATOM    304  HG  SER A  20       1.894   8.744   1.792  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MODEL       12                                                                  
+ATOM      1  N   ASN A   1      -4.775   8.349   0.978  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -5.666   7.501   0.145  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -4.883   6.315  -0.422  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -3.710   6.189  -0.099  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -6.368   8.312  -0.963  0.00  0.00           C  
+ATOM      6  CG  ASN A   1      -7.731   7.695  -1.245  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1      -8.561   7.621  -0.357  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1      -7.984   7.161  -2.427  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -4.291   7.782   1.665  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -4.059   8.774   0.407  0.00  0.00           H  
+ATOM     11 3H   ASN A   1      -5.305   9.067   1.452  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -6.445   7.096   0.797  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -6.493   9.328  -0.640  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -5.758   8.337  -1.869  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1      -7.370   7.224  -3.224  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1      -8.930   6.818  -2.517  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -5.505   5.439  -1.230  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -4.870   4.301  -1.933  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -4.253   3.217  -1.013  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -3.725   2.212  -1.488  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -3.879   4.858  -2.987  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -3.862   4.103  -4.338  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -3.942   5.102  -5.500  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -2.594   3.266  -4.529  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -6.484   5.595  -1.443  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -5.671   3.797  -2.474  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -4.141   5.880  -3.181  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -2.875   4.881  -2.566  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -4.728   3.445  -4.407  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -4.863   5.680  -5.430  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -3.088   5.780  -5.472  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -3.942   4.567  -6.450  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -1.714   3.909  -4.532  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -2.501   2.537  -3.726  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -2.650   2.733  -5.479  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -4.358   3.387   0.311  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.724   2.561   1.334  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -4.131   1.084   1.243  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.272   0.213   1.349  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -4.034   3.171   2.713  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -3.135   2.703   3.842  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -1.737   2.851   3.727  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -3.685   2.171   5.024  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -0.891   2.412   4.759  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -2.842   1.741   6.067  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -1.438   1.829   5.920  0.00  0.00           C  
+ATOM     47  OH  TYR A   3      -0.611   1.332   6.879  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -4.748   4.266   0.609  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.648   2.608   1.169  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -3.940   4.237   2.633  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -5.076   2.964   2.965  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -1.301   3.304   2.848  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -4.757   2.089   5.139  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3       0.181   2.515   4.674  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -3.268   1.331   6.971  0.00  0.00           H  
+ATOM     56  HH  TYR A   3      -1.077   0.804   7.527  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.411   0.798   0.958  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.929  -0.561   0.735  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -5.151  -1.265  -0.392  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -4.770  -2.424  -0.234  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.448  -0.558   0.412  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.318   0.310   1.355  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -8.010  -2.000   0.433  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -8.502   1.763   0.894  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -6.043   1.576   0.880  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.774  -1.132   1.651  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.573  -0.182  -0.605  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -9.288  -0.144   1.429  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -7.900   0.296   2.364  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.241  -2.738   0.216  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -8.427  -2.236   1.414  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -8.799  -2.084  -0.315  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -7.575   2.327   0.979  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4      -8.846   1.782  -0.141  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4      -9.256   2.242   1.519  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -4.901  -0.573  -1.513  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -4.125  -1.106  -2.634  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.693  -1.437  -2.204  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -2.251  -2.565  -2.402  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -4.128  -0.128  -3.830  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -5.010  -0.590  -5.001  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -4.334  -0.299  -6.339  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -4.559   0.724  -6.965  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -3.468  -1.181  -6.803  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -5.142   0.409  -1.535  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.578  -2.049  -2.940  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -4.488   0.824  -3.489  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -3.103  -0.020  -4.191  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -5.182  -1.646  -4.916  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -5.966  -0.069  -4.961  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -3.220  -2.017  -6.300  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -3.046  -0.932  -7.681  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -1.990  -0.483  -1.580  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.617  -0.690  -1.102  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.505  -1.806  -0.047  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.434  -2.605  -0.072  0.00  0.00           O  
+ATOM     97  CB  TRP A   6      -0.075   0.634  -0.556  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.309   0.540   0.003  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.446   0.522  -0.728  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.725   0.405   1.396  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.531   0.366   0.112  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       3.148   0.312   1.431  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       1.050   0.354   2.636  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.871   0.207   2.626  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.766   0.241   3.845  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       3.172   0.180   3.843  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.436   0.418  -1.445  0.00  0.00           H  
+ATOM    108  HA  TRP A   6       0.001  -0.996  -1.948  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.069   1.351  -1.354  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -0.741   0.996   0.231  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.490   0.606  -1.806  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.506   0.317  -0.195  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6      -0.028   0.413   2.652  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       4.948   0.144   2.596  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       1.233   0.211   4.786  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.712   0.109   4.775  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.478  -1.903   0.868  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.565  -3.023   1.803  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.788  -4.359   1.077  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.184  -5.351   1.478  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.659  -2.772   2.854  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.323  -1.690   3.899  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.521  -1.550   4.842  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -1.085  -2.027   4.739  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.200  -1.184   0.892  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.606  -3.120   2.310  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.552  -2.472   2.340  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -2.840  -3.707   3.385  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -2.150  -0.733   3.410  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.397  -1.228   4.278  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -3.729  -2.502   5.330  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -3.305  -0.807   5.605  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -1.199  -3.007   5.202  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7      -0.194  -2.019   4.114  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -0.952  -1.273   5.515  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.578  -4.390  -0.010  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -2.803  -5.590  -0.835  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.523  -6.177  -1.436  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.444  -7.395  -1.565  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -3.841  -5.306  -1.943  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -5.102  -6.183  -1.820  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -6.388  -5.360  -1.964  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -7.575  -6.172  -1.439  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -8.803  -5.348  -1.365  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -3.058  -3.531  -0.269  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.176  -6.367  -0.170  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -4.133  -4.275  -1.883  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -3.394  -5.473  -2.925  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -5.081  -6.931  -2.589  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -5.122  -6.674  -0.847  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -6.297  -4.453  -1.399  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -6.539  -5.092  -3.010  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -7.750  -7.001  -2.098  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -7.320  -6.540  -0.441  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -8.641  -4.541  -0.776  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -9.066  -5.030  -2.289  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -9.564  -5.888  -0.973  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -0.517  -5.351  -1.751  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.810  -5.841  -2.151  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.554  -6.575  -1.011  0.00  0.00           C  
+ATOM    161  O   ASP A   9       2.438  -7.380  -1.298  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       1.696  -4.676  -2.632  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       1.245  -3.986  -3.921  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9       0.666  -2.883  -3.811  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9       1.597  -4.502  -5.006  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -0.685  -4.351  -1.702  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.696  -6.548  -2.974  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       1.720  -3.937  -1.854  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       2.698  -5.068  -2.815  0.00  0.00           H  
+ATOM    170  N   GLY A  10       1.225  -6.295   0.263  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       1.982  -6.737   1.446  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.507  -5.606   2.352  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.317  -5.867   3.245  0.00  0.00           O  
+ATOM    174  H   GLY A  10       0.375  -5.762   0.424  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.336  -7.376   2.049  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.840  -7.334   1.133  0.00  0.00           H  
+ATOM    177  N   GLY A  11       2.078  -4.353   2.136  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.489  -3.194   2.933  0.00  0.00           C  
+ATOM    179  C   GLY A  11       4.018  -3.015   3.017  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.676  -2.975   1.975  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.434  -4.188   1.373  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       2.070  -2.296   2.478  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.056  -3.301   3.926  0.00  0.00           H  
+ATOM    184  N   PRO A  12       4.624  -2.897   4.222  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.074  -2.717   4.372  0.00  0.00           C  
+ATOM    186  C   PRO A  12       6.928  -3.824   3.735  0.00  0.00           C  
+ATOM    187  O   PRO A  12       8.086  -3.582   3.404  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.342  -2.659   5.880  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       4.997  -2.271   6.487  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       3.985  -2.895   5.530  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.352  -1.763   3.924  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       6.663  -3.615   6.246  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       7.115  -1.929   6.121  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       4.891  -2.675   7.475  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       4.893  -1.186   6.477  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       3.753  -3.898   5.834  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.065  -2.308   5.536  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.371  -5.030   3.550  0.00  0.00           N  
+ATOM    199  CA  SER A  13       7.084  -6.170   2.958  0.00  0.00           C  
+ATOM    200  C   SER A  13       7.083  -6.156   1.418  0.00  0.00           C  
+ATOM    201  O   SER A  13       7.625  -7.072   0.804  0.00  0.00           O  
+ATOM    202  CB  SER A  13       6.515  -7.484   3.508  0.00  0.00           C  
+ATOM    203  OG  SER A  13       6.707  -7.539   4.910  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.380  -5.139   3.743  0.00  0.00           H  
+ATOM    205  HA  SER A  13       8.130  -6.125   3.264  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       5.466  -7.537   3.290  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       7.033  -8.329   3.054  0.00  0.00           H  
+ATOM    208  HG  SER A  13       6.297  -6.766   5.305  0.00  0.00           H  
+ATOM    209  N   SER A  14       6.505  -5.124   0.784  0.00  0.00           N  
+ATOM    210  CA  SER A  14       6.326  -5.021  -0.674  0.00  0.00           C  
+ATOM    211  C   SER A  14       7.445  -4.276  -1.413  0.00  0.00           C  
+ATOM    212  O   SER A  14       7.363  -4.116  -2.632  0.00  0.00           O  
+ATOM    213  CB  SER A  14       5.029  -4.263  -0.971  0.00  0.00           C  
+ATOM    214  OG  SER A  14       3.953  -4.822  -0.267  0.00  0.00           O  
+ATOM    215  H   SER A  14       6.012  -4.435   1.345  0.00  0.00           H  
+ATOM    216  HA  SER A  14       6.241  -6.022  -1.098  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       5.146  -3.237  -0.678  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       4.818  -4.312  -2.040  0.00  0.00           H  
+ATOM    219  HG  SER A  14       3.220  -4.203  -0.295  0.00  0.00           H  
+ATOM    220  N   GLY A  15       8.438  -3.724  -0.707  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       9.507  -2.889  -1.274  0.00  0.00           C  
+ATOM    222  C   GLY A  15       9.063  -1.480  -1.708  0.00  0.00           C  
+ATOM    223  O   GLY A  15       9.798  -0.518  -1.489  0.00  0.00           O  
+ATOM    224  H   GLY A  15       8.430  -3.884   0.291  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15      10.304  -2.784  -0.538  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15       9.927  -3.393  -2.147  0.00  0.00           H  
+ATOM    227  N   ARG A  16       7.872  -1.340  -2.309  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       7.271  -0.051  -2.694  0.00  0.00           C  
+ATOM    229  C   ARG A  16       6.858   0.790  -1.462  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.260   0.241  -0.533  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       6.089  -0.273  -3.662  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       4.953  -1.164  -3.120  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       3.733  -1.249  -4.050  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       4.008  -2.020  -5.278  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       4.304  -1.553  -6.487  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       4.332  -0.266  -6.751  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       4.584  -2.382  -7.463  0.00  0.00           N  
+ATOM    238  H   ARG A  16       7.380  -2.207  -2.502  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       8.042   0.496  -3.233  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       5.672   0.686  -3.902  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       6.479  -0.726  -4.575  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       5.339  -2.155  -2.977  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       4.607  -0.763  -2.173  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       2.929  -1.722  -3.520  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       3.380  -0.245  -4.284  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       3.860  -3.017  -5.208  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       4.070   0.367  -6.019  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       4.528   0.072  -7.675  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       4.555  -3.374  -7.290  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       4.810  -2.036  -8.376  0.00  0.00           H  
+ATOM    251  N   PRO A  17       7.111   2.116  -1.447  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.730   2.992  -0.332  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.203   3.215  -0.255  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.512   3.033  -1.262  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.472   4.309  -0.592  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.586   4.354  -2.114  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       7.780   2.885  -2.487  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       7.081   2.557   0.604  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       6.910   5.146  -0.224  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.471   4.256  -0.155  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       6.692   4.750  -2.556  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.426   4.969  -2.440  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       7.339   2.682  -3.444  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       8.845   2.645  -2.487  0.00  0.00           H  
+ATOM    265  N   PRO A  18       4.666   3.621   0.914  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       3.235   3.860   1.094  0.00  0.00           C  
+ATOM    267  C   PRO A  18       2.748   5.165   0.425  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.529   6.100   0.248  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       3.024   3.899   2.612  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       4.361   4.406   3.146  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       5.372   3.796   2.177  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       2.688   3.015   0.682  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       2.228   4.570   2.871  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       2.846   2.890   2.983  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       4.404   5.478   3.124  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       4.538   4.078   4.171  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       6.209   4.455   2.048  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       5.693   2.821   2.549  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.443   5.263   0.091  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       0.813   6.446  -0.514  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.366   7.514   0.505  0.00  0.00           C  
+ATOM    282  O   PRO A  19      -0.168   8.563   0.135  0.00  0.00           O  
+ATOM    283  CB  PRO A  19      -0.418   5.883  -1.228  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -0.852   4.754  -0.291  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       0.481   4.171   0.160  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       1.483   6.910  -1.240  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -1.186   6.626  -1.322  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19      -0.127   5.468  -2.194  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -1.411   5.134   0.542  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -1.463   4.012  -0.801  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.406   3.804   1.165  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       0.786   3.388  -0.533  0.00  0.00           H  
+ATOM    293  N   SER A  20       0.475   7.235   1.804  0.00  0.00           N  
+ATOM    294  CA  SER A  20       0.117   8.121   2.917  0.00  0.00           C  
+ATOM    295  C   SER A  20       0.951   7.740   4.134  0.00  0.00           C  
+ATOM    296  O   SER A  20       1.145   6.518   4.316  0.00  0.00           O  
+ATOM    297  CB  SER A  20      -1.376   8.004   3.229  0.00  0.00           C  
+ATOM    298  OG  SER A  20      -2.078   8.526   2.113  0.00  0.00           O  
+ATOM    299  OXT SER A  20       1.384   8.682   4.830  0.00  0.00           O  
+ATOM    300  H   SER A  20       0.881   6.355   2.097  0.00  0.00           H  
+ATOM    301  HA  SER A  20       0.361   9.155   2.677  0.00  0.00           H  
+ATOM    302 1HB  SER A  20      -1.640   6.975   3.382  0.00  0.00           H  
+ATOM    303 2HB  SER A  20      -1.610   8.576   4.131  0.00  0.00           H  
+ATOM    304  HG  SER A  20      -1.383   8.683   1.436  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MODEL       13                                                                  
+ATOM      1  N   ASN A   1      -7.908   6.785  -1.311  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -7.019   6.327  -0.216  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -5.683   5.747  -0.661  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -4.708   6.050   0.013  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -7.728   5.352   0.732  0.00  0.00           C  
+ATOM      6  CG  ASN A   1      -8.620   6.137   1.676  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1      -9.560   6.770   1.223  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1      -8.313   6.173   2.959  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -7.434   7.466  -1.890  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -8.205   6.004  -1.879  0.00  0.00           H  
+ATOM     11 3H   ASN A   1      -8.733   7.210  -0.902  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -6.754   7.204   0.378  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -8.324   4.666   0.162  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -6.996   4.787   1.311  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1      -7.513   5.701   3.351  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1      -8.923   6.730   3.536  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -5.615   4.880  -1.688  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -4.406   4.163  -2.156  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -3.837   3.130  -1.158  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -3.364   2.071  -1.568  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -3.322   5.161  -2.622  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -3.769   6.069  -3.790  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -3.562   7.551  -3.463  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -3.001   5.730  -5.068  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -6.452   4.624  -2.189  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -4.692   3.585  -3.037  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -3.057   5.785  -1.790  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -2.440   4.595  -2.923  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -4.830   5.921  -3.991  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -4.099   7.813  -2.552  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -2.502   7.762  -3.318  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -3.938   8.167  -4.281  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -1.934   5.911  -4.924  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -3.157   4.681  -5.323  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -3.359   6.350  -5.889  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -3.941   3.391   0.150  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.446   2.538   1.230  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -4.000   1.103   1.182  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.277   0.167   1.508  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -3.738   3.210   2.583  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -2.672   2.927   3.623  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -1.567   3.795   3.740  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -2.765   1.788   4.444  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -0.550   3.520   4.672  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -1.751   1.512   5.382  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -0.641   2.375   5.495  0.00  0.00           C  
+ATOM     47  OH  TYR A   3       0.344   2.091   6.389  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -4.221   4.340   0.385  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.363   2.475   1.122  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -3.797   4.271   2.433  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -4.711   2.883   2.955  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -1.493   4.677   3.117  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -3.607   1.120   4.349  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3       0.291   4.191   4.755  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -1.801   0.643   6.018  0.00  0.00           H  
+ATOM     56  HH  TYR A   3       1.086   2.690   6.302  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.249   0.909   0.731  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.862  -0.418   0.547  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -5.108  -1.223  -0.524  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -4.705  -2.359  -0.275  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.371  -0.307   0.207  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.145   0.575   1.218  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -8.018  -1.702   0.164  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -8.506   1.935   0.617  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -5.779   1.731   0.489  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.769  -0.964   1.487  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.472   0.126  -0.790  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -9.048   0.069   1.502  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -7.554   0.726   2.123  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.562  -2.315  -0.613  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -7.904  -2.200   1.127  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -9.081  -1.610  -0.065  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -7.611   2.423   0.233  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4      -9.219   1.799  -0.198  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4      -8.963   2.563   1.384  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -4.883  -0.627  -1.705  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -4.097  -1.237  -2.779  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.654  -1.511  -2.339  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -2.134  -2.592  -2.614  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -4.124  -0.349  -4.035  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -5.446  -0.464  -4.826  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -6.302   0.803  -4.886  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -5.896   1.911  -4.564  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -7.545   0.678  -5.313  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -5.163   0.337  -1.814  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.533  -2.207  -3.026  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -3.993   0.673  -3.735  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -3.318  -0.674  -4.696  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -5.203  -0.745  -5.833  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -6.054  -1.268  -4.411  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -7.934  -0.208  -5.587  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -8.048   1.544  -5.402  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -2.027  -0.572  -1.618  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.693  -0.764  -1.047  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.644  -1.917  -0.026  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.231  -2.778  -0.111  0.00  0.00           O  
+ATOM     97  CB  TRP A   6      -0.213   0.557  -0.443  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.169   0.505   0.124  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.314   0.542  -0.597  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.577   0.373   1.518  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.396   0.430   0.252  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       3.001   0.346   1.569  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       0.887   0.268   2.747  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.712   0.258   2.772  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.592   0.150   3.960  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       2.998   0.165   3.978  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.505   0.316  -1.478  0.00  0.00           H  
+ATOM    108  HA  TRP A   6      -0.010  -1.033  -1.856  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.234   1.306  -1.211  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -0.898   0.860   0.348  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.368   0.630  -1.674  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.370   0.409  -0.063  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6      -0.194   0.280   2.749  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       4.792   0.247   2.758  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       1.046   0.055   4.888  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.527   0.092   4.916  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.605  -2.000   0.907  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.710  -3.134   1.832  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.929  -4.466   1.106  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.324  -5.461   1.502  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.824  -2.903   2.868  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.460  -1.924   4.000  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.711  -1.690   4.853  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -1.353  -2.460   4.918  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.291  -1.251   0.973  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.757  -3.234   2.349  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.682  -2.515   2.354  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -3.076  -3.862   3.324  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -2.134  -0.976   3.579  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.496  -1.248   4.240  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -4.067  -2.637   5.262  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -3.483  -1.016   5.677  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -1.664  -3.401   5.371  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7      -0.433  -2.614   4.360  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -1.147  -1.735   5.706  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.718  -4.492   0.018  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -2.894  -5.686  -0.829  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.564  -6.220  -1.379  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.459  -7.409  -1.665  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -3.864  -5.370  -1.980  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -4.388  -6.622  -2.718  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -4.505  -6.437  -4.242  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -3.209  -6.745  -5.018  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -2.118  -5.779  -4.739  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -3.231  -3.643  -0.211  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.325  -6.477  -0.214  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -4.705  -4.839  -1.577  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -3.360  -4.716  -2.685  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -3.715  -7.435  -2.526  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -5.377  -6.849  -2.317  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -5.276  -7.091  -4.602  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -4.855  -5.430  -4.471  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -2.873  -7.727  -4.745  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -3.446  -6.733  -6.086  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -2.396  -4.819  -4.880  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -1.774  -5.854  -3.793  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -1.282  -5.906  -5.304  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -0.551  -5.368  -1.570  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.787  -5.808  -1.980  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.595  -6.452  -0.830  0.00  0.00           C  
+ATOM    161  O   ASP A   9       2.685  -6.970  -1.090  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       1.594  -4.630  -2.566  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       0.973  -3.926  -3.776  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9       1.306  -2.727  -3.970  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9       0.255  -4.603  -4.551  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -0.687  -4.388  -1.343  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.689  -6.562  -2.762  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       1.719  -3.900  -1.790  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       2.559  -5.017  -2.894  0.00  0.00           H  
+ATOM    170  N   GLY A  10       1.155  -6.367   0.440  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       1.920  -6.800   1.627  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.495  -5.666   2.504  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.323  -5.931   3.387  0.00  0.00           O  
+ATOM    174  H   GLY A  10       0.231  -5.972   0.604  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.260  -7.399   2.254  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.750  -7.439   1.326  0.00  0.00           H  
+ATOM    177  N   GLY A  11       2.078  -4.413   2.271  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.452  -3.248   3.072  0.00  0.00           C  
+ATOM    179  C   GLY A  11       3.971  -2.986   3.103  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.593  -2.901   2.043  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.509  -4.255   1.448  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       1.968  -2.368   2.650  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.064  -3.396   4.078  0.00  0.00           H  
+ATOM    184  N   PRO A  12       4.608  -2.840   4.289  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.049  -2.569   4.388  0.00  0.00           C  
+ATOM    186  C   PRO A  12       6.947  -3.622   3.719  0.00  0.00           C  
+ATOM    187  O   PRO A  12       8.100  -3.334   3.404  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.365  -2.497   5.887  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       5.019  -2.212   6.546  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       4.017  -2.897   5.618  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.252  -1.600   3.932  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       6.768  -3.428   6.235  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       7.091  -1.712   6.104  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       4.978  -2.632   7.532  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       4.836  -1.136   6.553  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       3.866  -3.916   5.917  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.061  -2.377   5.665  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.430  -4.838   3.502  0.00  0.00           N  
+ATOM    199  CA  SER A  13       7.167  -5.968   2.930  0.00  0.00           C  
+ATOM    200  C   SER A  13       7.113  -6.043   1.392  0.00  0.00           C  
+ATOM    201  O   SER A  13       7.652  -6.980   0.805  0.00  0.00           O  
+ATOM    202  CB  SER A  13       6.723  -7.269   3.614  0.00  0.00           C  
+ATOM    203  OG  SER A  13       5.376  -7.634   3.349  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.454  -4.968   3.734  0.00  0.00           H  
+ATOM    205  HA  SER A  13       8.222  -5.839   3.177  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       7.360  -8.063   3.274  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       6.865  -7.162   4.691  0.00  0.00           H  
+ATOM    208  HG  SER A  13       4.737  -6.918   3.537  0.00  0.00           H  
+ATOM    209  N   SER A  14       6.508  -5.047   0.733  0.00  0.00           N  
+ATOM    210  CA  SER A  14       6.226  -5.028  -0.713  0.00  0.00           C  
+ATOM    211  C   SER A  14       7.223  -4.235  -1.564  0.00  0.00           C  
+ATOM    212  O   SER A  14       7.035  -4.116  -2.774  0.00  0.00           O  
+ATOM    213  CB  SER A  14       4.854  -4.397  -0.935  0.00  0.00           C  
+ATOM    214  OG  SER A  14       3.928  -5.006  -0.081  0.00  0.00           O  
+ATOM    215  H   SER A  14       6.017  -4.350   1.287  0.00  0.00           H  
+ATOM    216  HA  SER A  14       6.196  -6.052  -1.088  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       4.903  -3.346  -0.722  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       4.546  -4.527  -1.971  0.00  0.00           H  
+ATOM    219  HG  SER A  14       3.589  -5.837  -0.501  0.00  0.00           H  
+ATOM    220  N   GLY A  15       8.236  -3.613  -0.954  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       9.241  -2.785  -1.634  0.00  0.00           C  
+ATOM    222  C   GLY A  15       8.755  -1.388  -2.056  0.00  0.00           C  
+ATOM    223  O   GLY A  15       9.534  -0.439  -2.013  0.00  0.00           O  
+ATOM    224  H   GLY A  15       8.306  -3.739   0.046  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15      10.102  -2.664  -0.978  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15       9.576  -3.308  -2.531  0.00  0.00           H  
+ATOM    227  N   ARG A  16       7.484  -1.243  -2.458  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       6.866   0.043  -2.822  0.00  0.00           C  
+ATOM    229  C   ARG A  16       6.607   0.907  -1.567  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.048   0.385  -0.598  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       5.566  -0.231  -3.600  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       5.057   1.011  -4.351  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       3.793   0.732  -5.180  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       4.079  -0.101  -6.363  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       3.877  -1.406  -6.533  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       3.266  -2.191  -5.676  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       4.308  -1.979  -7.632  0.00  0.00           N  
+ATOM    238  H   ARG A  16       6.937  -2.095  -2.518  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       7.569   0.558  -3.476  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       5.749  -1.013  -4.312  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       4.793  -0.580  -2.914  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       4.834   1.777  -3.634  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       5.843   1.374  -5.018  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       3.079   0.222  -4.562  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       3.407   1.693  -5.529  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       4.530   0.371  -7.128  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       2.673  -1.883  -4.893  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       3.162  -3.167  -5.861  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       4.765  -1.448  -8.350  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       4.157  -2.963  -7.759  0.00  0.00           H  
+ATOM    251  N   PRO A  17       6.947   2.213  -1.560  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.730   3.085  -0.400  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.232   3.312  -0.095  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.400   3.172  -0.996  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.438   4.403  -0.744  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.414   4.433  -2.270  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       7.583   2.961  -2.635  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       7.208   2.638   0.471  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       6.907   5.241  -0.336  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.472   4.360  -0.399  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       6.481   4.818  -2.635  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.216   5.048  -2.679  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       7.104   2.750  -3.572  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       8.643   2.709  -2.673  0.00  0.00           H  
+ATOM    265  N   PRO A  18       4.878   3.687   1.151  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       3.495   3.929   1.554  0.00  0.00           C  
+ATOM    267  C   PRO A  18       2.938   5.209   0.903  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.617   6.239   0.913  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       3.524   4.048   3.081  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       4.937   4.549   3.376  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       5.775   3.886   2.283  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       2.889   3.069   1.280  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       2.789   4.750   3.425  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       3.390   3.061   3.527  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       4.989   5.618   3.306  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       5.272   4.261   4.373  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       6.593   4.522   2.003  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       6.135   2.918   2.635  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.706   5.185   0.359  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       1.071   6.373  -0.198  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.534   7.279   0.922  0.00  0.00           C  
+ATOM    282  O   PRO A  19       0.005   6.793   1.925  0.00  0.00           O  
+ATOM    283  CB  PRO A  19      -0.043   5.831  -1.093  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -0.475   4.546  -0.383  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       0.817   4.036   0.254  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       1.785   6.932  -0.806  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -0.857   6.527  -1.157  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19       0.371   5.580  -2.071  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -1.216   4.752   0.365  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -0.885   3.819  -1.084  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.616   3.632   1.228  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       1.276   3.286  -0.389  0.00  0.00           H  
+ATOM    293  N   SER A  20       0.660   8.597   0.722  0.00  0.00           N  
+ATOM    294  CA  SER A  20       0.150   9.654   1.607  0.00  0.00           C  
+ATOM    295  C   SER A  20      -1.110  10.284   1.016  0.00  0.00           C  
+ATOM    296  O   SER A  20      -2.094  10.380   1.786  0.00  0.00           O  
+ATOM    297  CB  SER A  20       1.248  10.701   1.823  0.00  0.00           C  
+ATOM    298  OG  SER A  20       0.910  11.534   2.908  0.00  0.00           O  
+ATOM    299  OXT SER A  20      -1.067  10.639  -0.179  0.00  0.00           O  
+ATOM    300  H   SER A  20       1.051   8.910  -0.152  0.00  0.00           H  
+ATOM    301  HA  SER A  20      -0.125   9.214   2.563  0.00  0.00           H  
+ATOM    302 1HB  SER A  20       2.177  10.205   2.031  0.00  0.00           H  
+ATOM    303 2HB  SER A  20       1.371  11.300   0.918  0.00  0.00           H  
+ATOM    304  HG  SER A  20       0.272  11.069   3.455  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MODEL       14                                                                  
+ATOM      1  N   ASN A   1      -6.401   7.662  -1.132  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -7.275   6.470  -1.269  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -6.573   5.259  -1.924  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -7.244   4.408  -2.495  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -8.588   6.852  -1.993  0.00  0.00           C  
+ATOM      6  CG  ASN A   1      -9.793   6.163  -1.354  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1      -9.671   5.136  -0.706  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1     -10.977   6.741  -1.450  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -5.636   7.473  -0.499  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -6.040   7.938  -2.035  0.00  0.00           H  
+ATOM     11 3H   ASN A   1      -6.938   8.429  -0.749  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -7.560   6.149  -0.264  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -8.722   7.915  -1.937  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -8.537   6.586  -3.050  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1     -11.144   7.601  -1.945  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1     -11.719   6.237  -0.991  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -5.236   5.147  -1.843  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -4.460   4.057  -2.472  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -3.853   3.067  -1.460  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -3.274   2.048  -1.840  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -3.389   4.680  -3.399  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -3.705   4.592  -4.905  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -3.639   3.147  -5.409  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -5.061   5.208  -5.270  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -4.672   5.849  -1.391  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -5.127   3.449  -3.079  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -3.286   5.716  -3.140  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -2.429   4.188  -3.232  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -2.935   5.159  -5.430  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -2.666   2.717  -5.172  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -4.417   2.537  -4.955  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -3.774   3.127  -6.492  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -5.877   4.592  -4.894  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -5.138   6.211  -4.856  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -5.148   5.268  -6.356  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -4.027   3.341  -0.163  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.458   2.567   0.937  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -3.944   1.109   0.964  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.174   0.216   1.296  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -3.759   3.287   2.260  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -2.564   3.330   3.186  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -1.713   4.454   3.196  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -2.297   2.234   4.021  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -0.605   4.489   4.064  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -1.182   2.255   4.876  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -0.339   3.386   4.907  0.00  0.00           C  
+ATOM     47  OH  TYR A   3       0.697   3.407   5.788  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -4.543   4.171   0.073  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.375   2.545   0.801  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -4.061   4.293   2.042  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -4.593   2.797   2.766  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -1.904   5.298   2.546  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -2.954   1.378   4.007  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3       0.032   5.362   4.078  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -0.969   1.423   5.532  0.00  0.00           H  
+ATOM     56  HH  TYR A   3       0.695   4.212   6.308  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.199   0.862   0.556  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.795  -0.478   0.440  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -4.969  -1.337  -0.529  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -4.571  -2.450  -0.193  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.277  -0.384  -0.008  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.120   0.501   0.945  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -7.894  -1.795  -0.096  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -9.475   0.918   0.356  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -5.761   1.657   0.298  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.759  -0.960   1.418  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.306   0.064  -1.002  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -8.297  -0.048   1.850  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -7.586   1.423   1.167  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.385  -2.392  -0.852  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -7.817  -2.302   0.867  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -8.945  -1.739  -0.379  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -9.330   1.364  -0.631  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4     -10.141   0.060   0.274  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4      -9.939   1.657   1.008  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -4.685  -0.803  -1.722  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -3.904  -1.463  -2.769  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.453  -1.702  -2.326  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -1.920  -2.790  -2.539  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -3.995  -0.617  -4.058  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -4.421  -1.431  -5.294  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -5.350  -0.621  -6.194  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -4.942   0.305  -6.876  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -6.636  -0.921  -6.208  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -4.991   0.144  -1.894  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.348  -2.442  -2.942  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -4.713   0.165  -3.902  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -3.039  -0.132  -4.264  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -3.546  -1.706  -5.851  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -4.941  -2.342  -4.994  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -7.025  -1.675  -5.669  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -7.188  -0.340  -6.815  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -1.834  -0.719  -1.658  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.498  -0.859  -1.070  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.433  -1.932   0.032  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.497  -2.744   0.055  0.00  0.00           O  
+ATOM     97  CB  TRP A   6      -0.042   0.505  -0.544  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.340   0.516   0.026  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.480   0.543  -0.699  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.754   0.502   1.428  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.565   0.518   0.155  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       3.179   0.507   1.471  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       1.081   0.494   2.669  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.905   0.515   2.669  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.798   0.487   3.882  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       3.205   0.501   3.885  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.329   0.162  -1.554  0.00  0.00           H  
+ATOM    108  HA  TRP A   6       0.193  -1.170  -1.855  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.076   1.206  -1.355  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -0.737   0.847   0.222  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.524   0.581  -1.779  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.549   0.548  -0.121  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6       0.001   0.500   2.681  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       4.985   0.520   2.640  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       1.267   0.489   4.823  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.747   0.509   4.821  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.429  -1.970   0.928  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.563  -3.019   1.940  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.832  -4.398   1.325  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.302  -5.380   1.840  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.671  -2.661   2.946  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.287  -1.567   3.960  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.511  -1.233   4.821  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -1.148  -1.999   4.892  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.136  -1.238   0.898  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.618  -3.107   2.473  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.527  -2.321   2.395  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -2.940  -3.558   3.506  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -1.976  -0.668   3.433  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.316  -0.864   4.185  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -3.850  -2.123   5.351  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -3.257  -0.464   5.550  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -1.377  -2.965   5.340  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7      -0.217  -2.069   4.334  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -1.013  -1.260   5.680  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.599  -4.488   0.226  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -2.976  -5.755  -0.427  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.777  -6.638  -0.783  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.856  -7.858  -0.664  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -3.803  -5.465  -1.696  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -4.622  -6.677  -2.165  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -5.863  -6.886  -1.280  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -6.602  -8.185  -1.607  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -5.801  -9.379  -1.240  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -3.048  -3.631  -0.094  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.571  -6.320   0.286  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -4.477  -4.656  -1.488  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -3.125  -5.174  -2.502  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -4.937  -6.516  -3.178  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -3.995  -7.568  -2.162  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -5.553  -6.915  -0.253  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -6.542  -6.046  -1.435  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -7.527  -8.206  -1.063  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -6.842  -8.200  -2.674  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -4.958  -9.420  -1.800  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -5.526  -9.332  -0.267  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -6.335 -10.225  -1.388  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -0.693  -6.000  -1.216  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.577  -6.608  -1.609  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.501  -6.893  -0.404  0.00  0.00           C  
+ATOM    161  O   ASP A   9       2.502  -7.590  -0.554  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       1.191  -5.620  -2.609  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       2.246  -6.195  -3.544  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9       1.842  -6.848  -4.529  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9       3.401  -5.726  -3.445  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -0.773  -4.997  -1.309  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.386  -7.552  -2.122  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       0.396  -5.225  -3.212  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       1.601  -4.770  -2.070  0.00  0.00           H  
+ATOM    170  N   GLY A  10       1.138  -6.413   0.799  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       1.851  -6.634   2.059  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.515  -5.385   2.659  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.469  -5.523   3.433  0.00  0.00           O  
+ATOM    174  H   GLY A  10       0.235  -5.953   0.859  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.135  -7.004   2.792  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.606  -7.406   1.922  0.00  0.00           H  
+ATOM    177  N   GLY A  11       2.037  -4.182   2.311  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.491  -2.882   2.819  0.00  0.00           C  
+ATOM    179  C   GLY A  11       4.020  -2.705   2.788  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.574  -2.593   1.694  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.318  -4.166   1.598  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       2.060  -2.105   2.191  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.102  -2.739   3.824  0.00  0.00           H  
+ATOM    184  N   PRO A  12       4.730  -2.700   3.937  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.196  -2.624   3.971  0.00  0.00           C  
+ATOM    186  C   PRO A  12       6.905  -3.715   3.153  0.00  0.00           C  
+ATOM    187  O   PRO A  12       8.004  -3.490   2.653  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.587  -2.742   5.450  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       5.333  -2.306   6.202  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       4.199  -2.770   5.292  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.504  -1.647   3.594  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       6.846  -3.754   5.696  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       7.442  -2.107   5.689  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       5.275  -2.782   7.162  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       5.315  -1.219   6.283  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       3.915  -3.777   5.531  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.335  -2.119   5.426  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.277  -4.888   3.002  0.00  0.00           N  
+ATOM    199  CA  SER A  13       6.825  -6.021   2.248  0.00  0.00           C  
+ATOM    200  C   SER A  13       6.595  -5.934   0.728  0.00  0.00           C  
+ATOM    201  O   SER A  13       7.075  -6.791  -0.007  0.00  0.00           O  
+ATOM    202  CB  SER A  13       6.342  -7.350   2.853  0.00  0.00           C  
+ATOM    203  OG  SER A  13       4.946  -7.537   2.785  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.343  -4.969   3.391  0.00  0.00           H  
+ATOM    205  HA  SER A  13       7.908  -6.013   2.377  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       6.816  -8.154   2.324  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       6.647  -7.388   3.900  0.00  0.00           H  
+ATOM    208  HG  SER A  13       4.461  -6.757   3.136  0.00  0.00           H  
+ATOM    209  N   SER A  14       5.937  -4.870   0.241  0.00  0.00           N  
+ATOM    210  CA  SER A  14       5.582  -4.659  -1.171  0.00  0.00           C  
+ATOM    211  C   SER A  14       6.709  -4.075  -2.046  0.00  0.00           C  
+ATOM    212  O   SER A  14       6.506  -3.867  -3.240  0.00  0.00           O  
+ATOM    213  CB  SER A  14       4.394  -3.697  -1.249  0.00  0.00           C  
+ATOM    214  OG  SER A  14       3.342  -4.095  -0.399  0.00  0.00           O  
+ATOM    215  H   SER A  14       5.543  -4.204   0.899  0.00  0.00           H  
+ATOM    216  HA  SER A  14       5.276  -5.613  -1.607  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       4.721  -2.717  -0.961  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       4.025  -3.661  -2.271  0.00  0.00           H  
+ATOM    219  HG  SER A  14       2.975  -3.313   0.029  0.00  0.00           H  
+ATOM    220  N   GLY A  15       7.873  -3.737  -1.470  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       8.999  -3.132  -2.201  0.00  0.00           C  
+ATOM    222  C   GLY A  15       8.848  -1.633  -2.516  0.00  0.00           C  
+ATOM    223  O   GLY A  15       9.535  -1.130  -3.401  0.00  0.00           O  
+ATOM    224  H   GLY A  15       7.986  -3.973  -0.495  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15       9.912  -3.262  -1.623  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15       9.130  -3.657  -3.149  0.00  0.00           H  
+ATOM    227  N   ARG A  16       7.939  -0.924  -1.830  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       7.559   0.475  -2.105  0.00  0.00           C  
+ATOM    229  C   ARG A  16       7.032   1.175  -0.838  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.351   0.518  -0.047  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       6.517   0.515  -3.247  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       5.357  -0.489  -3.097  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       4.496  -0.583  -4.360  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       3.700  -1.826  -4.349  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       3.398  -2.606  -5.380  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       3.636  -2.252  -6.620  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       2.850  -3.774  -5.180  0.00  0.00           N  
+ATOM    238  H   ARG A  16       7.441  -1.405  -1.093  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       8.452   1.000  -2.443  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       6.101   1.503  -3.285  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       7.040   0.296  -4.178  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       5.766  -1.458  -2.886  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       4.736  -0.217  -2.247  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       3.834   0.260  -4.400  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       5.162  -0.588  -5.225  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       3.410  -2.188  -3.456  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       4.099  -1.379  -6.787  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       3.425  -2.883  -7.370  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       3.013  -4.274  -4.292  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       2.589  -4.386  -5.930  0.00  0.00           H  
+ATOM    251  N   PRO A  17       7.296   2.484  -0.642  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.862   3.230   0.546  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.336   3.464   0.578  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.676   3.310  -0.454  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.636   4.555   0.478  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.830   4.776  -1.020  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       8.034   3.357  -1.545  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       7.157   2.685   1.444  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       7.068   5.354   0.914  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.609   4.434   0.956  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       6.963   5.230  -1.460  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.689   5.414  -1.228  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       7.651   3.270  -2.543  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       9.094   3.104  -1.509  0.00  0.00           H  
+ATOM    265  N   PRO A  18       4.762   3.851   1.737  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       3.324   4.085   1.879  0.00  0.00           C  
+ATOM    267  C   PRO A  18       2.832   5.288   1.045  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.507   6.319   1.003  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       3.085   4.299   3.378  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       4.437   4.766   3.908  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       5.429   4.018   3.023  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       2.803   3.182   1.576  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       2.333   5.047   3.541  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       2.823   3.348   3.843  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       4.548   5.828   3.800  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       4.568   4.519   4.962  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       6.330   4.589   2.906  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       5.634   3.036   3.452  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.660   5.185   0.385  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       1.102   6.250  -0.443  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.321   7.283   0.390  0.00  0.00           C  
+ATOM    282  O   PRO A  19      -0.811   7.023   0.804  0.00  0.00           O  
+ATOM    283  CB  PRO A  19       0.206   5.530  -1.455  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -0.321   4.332  -0.664  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       0.850   3.979   0.253  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       1.900   6.759  -0.984  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -0.598   6.163  -1.776  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19       0.818   5.174  -2.286  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -1.190   4.599  -0.094  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -0.584   3.506  -1.323  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.487   3.671   1.214  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       1.451   3.202  -0.216  0.00  0.00           H  
+ATOM    293  N   SER A  20       0.922   8.471   0.555  0.00  0.00           N  
+ATOM    294  CA  SER A  20       0.386   9.673   1.224  0.00  0.00           C  
+ATOM    295  C   SER A  20       0.416   9.627   2.763  0.00  0.00           C  
+ATOM    296  O   SER A  20       1.001   8.684   3.339  0.00  0.00           O  
+ATOM    297  CB  SER A  20      -1.018  10.026   0.706  0.00  0.00           C  
+ATOM    298  OG  SER A  20      -1.373  11.233   1.334  0.00  0.00           O  
+ATOM    299  OXT SER A  20      -0.165  10.594   3.315  0.00  0.00           O  
+ATOM    300  H   SER A  20       1.888   8.511   0.265  0.00  0.00           H  
+ATOM    301  HA  SER A  20       1.034  10.508   0.958  0.00  0.00           H  
+ATOM    302 1HB  SER A  20      -1.001  10.151  -0.360  0.00  0.00           H  
+ATOM    303 2HB  SER A  20      -1.730   9.255   1.002  0.00  0.00           H  
+ATOM    304  HG  SER A  20      -0.935  11.116   2.254  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MODEL       15                                                                  
+ATOM      1  N   ASN A   1      -5.555   8.004  -1.532  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -6.571   6.932  -1.361  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -6.105   5.544  -1.850  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -6.936   4.715  -2.200  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -7.897   7.340  -2.038  0.00  0.00           C  
+ATOM      6  CG  ASN A   1      -9.071   6.615  -1.385  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1      -9.297   6.771  -0.197  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1      -9.821   5.802  -2.107  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -4.747   7.831  -0.949  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -5.271   8.069  -2.500  0.00  0.00           H  
+ATOM     11 3H   ASN A   1      -5.951   8.893  -1.252  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -6.784   6.837  -0.294  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -8.035   8.399  -1.937  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -7.861   7.128  -3.108  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1      -9.603   5.565  -3.060  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1     -10.562   5.348  -1.598  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -4.794   5.254  -1.881  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -4.259   3.990  -2.422  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -3.783   3.017  -1.328  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -3.304   1.928  -1.638  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -3.148   4.316  -3.442  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -3.647   5.049  -4.702  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -2.468   5.586  -5.520  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -4.488   4.133  -5.599  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -4.097   5.917  -1.583  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -5.044   3.453  -2.954  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -2.418   4.936  -2.958  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -2.649   3.395  -3.748  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -4.253   5.904  -4.403  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -1.705   6.004  -4.864  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -2.024   4.789  -6.119  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -2.821   6.376  -6.183  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -3.921   3.235  -5.845  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -5.413   3.854  -5.094  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -4.743   4.655  -6.521  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -3.936   3.389  -0.051  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.430   2.642   1.105  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -3.954   1.198   1.152  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.201   0.279   1.464  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -3.762   3.414   2.395  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -2.656   3.341   3.430  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -1.845   4.468   3.678  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -2.409   2.135   4.112  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -0.773   4.382   4.586  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -1.337   2.043   5.019  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -0.505   3.158   5.243  0.00  0.00           C  
+ATOM     47  OH  TYR A   3       0.567   3.040   6.071  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -4.366   4.282   0.125  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.345   2.592   1.013  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -3.928   4.444   2.144  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -4.687   3.030   2.829  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -2.028   5.403   3.166  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -3.032   1.273   3.926  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3      -0.160   5.252   4.768  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -1.128   1.119   5.535  0.00  0.00           H  
+ATOM     56  HH  TYR A   3       1.163   3.787   5.994  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.227   0.988   0.788  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.849  -0.340   0.711  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -5.125  -1.216  -0.325  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -4.736  -2.340  -0.013  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.369  -0.238   0.414  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.095   0.818   1.288  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -8.031  -1.608   0.641  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -8.378   2.119   0.526  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -5.784   1.799   0.563  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.728  -0.819   1.684  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.507   0.023  -0.637  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -9.027   0.405   1.622  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -7.505   1.038   2.179  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.517  -2.377   0.069  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -7.986  -1.872   1.699  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -9.075  -1.566   0.331  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -7.483   2.471   0.011  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4      -9.168   1.948  -0.207  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4      -8.711   2.887   1.226  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -4.916  -0.702  -1.546  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -4.150  -1.391  -2.590  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.691  -1.624  -2.173  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -2.176  -2.721  -2.360  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -4.230  -0.639  -3.931  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -5.625  -0.733  -4.579  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -5.546  -0.884  -6.097  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -5.814  -1.942  -6.641  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -5.189   0.150  -6.835  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -5.185   0.257  -1.709  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.580  -2.380  -2.738  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -3.999   0.395  -3.760  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -3.503  -1.090  -4.608  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -6.138  -1.583  -4.173  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -6.209   0.153  -4.330  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -4.962   1.049  -6.453  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -5.143  -0.061  -7.818  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -2.038  -0.638  -1.550  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.680  -0.802  -1.023  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.581  -1.902   0.052  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.370  -2.683   0.054  0.00  0.00           O  
+ATOM     97  CB  TRP A   6      -0.182   0.548  -0.505  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.217   0.527   0.021  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.341   0.528  -0.734  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.664   0.460   1.409  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.445   0.460   0.092  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       3.088   0.426   1.419  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       1.014   0.427   2.664  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.837   0.383   2.600  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.756   0.370   3.860  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       3.163   0.355   3.831  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.505   0.261  -1.452  0.00  0.00           H  
+ATOM    108  HA  TRP A   6      -0.030  -1.112  -1.845  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.227   1.255  -1.311  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -0.844   0.890   0.290  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.361   0.562  -1.814  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.420   0.464  -0.212  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6      -0.065   0.453   2.696  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       4.916   0.365   2.548  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       1.242   0.352   4.811  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.723   0.327   4.755  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.576  -2.011   0.945  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.649  -3.105   1.914  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.882  -4.474   1.254  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.265  -5.442   1.698  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.712  -2.809   2.985  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.272  -1.754   4.020  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.470  -1.358   4.888  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -1.166  -2.267   4.955  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.302  -1.297   0.951  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.678  -3.182   2.402  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.598  -2.454   2.494  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -2.946  -3.732   3.519  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -1.907  -0.864   3.508  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.258  -0.942   4.261  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -3.855  -2.232   5.416  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -3.169  -0.607   5.619  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -1.504  -3.160   5.481  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7      -0.268  -2.501   4.389  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -0.914  -1.496   5.684  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.698  -4.571   0.188  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -2.920  -5.824  -0.568  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.620  -6.483  -1.050  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.511  -7.703  -0.966  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -3.867  -5.590  -1.762  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -5.354  -5.831  -1.453  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -6.249  -4.698  -1.982  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -7.691  -5.177  -2.180  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -8.665  -4.079  -1.976  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -3.180  -3.726  -0.103  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.374  -6.556   0.102  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -3.752  -4.574  -2.087  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -3.594  -6.271  -2.572  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -5.657  -6.753  -1.911  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -5.512  -5.922  -0.377  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -6.243  -3.889  -1.277  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -5.872  -4.334  -2.938  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -7.798  -5.556  -3.178  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -7.897  -5.991  -1.480  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -8.685  -3.817  -0.999  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -8.405  -3.272  -2.528  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -9.592  -4.377  -2.248  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -0.639  -5.703  -1.510  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.688  -6.202  -1.905  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.568  -6.674  -0.725  0.00  0.00           C  
+ATOM    161  O   ASP A   9       2.581  -7.332  -0.959  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       1.424  -5.117  -2.708  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       1.030  -5.128  -4.186  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9       1.768  -5.764  -4.970  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9       0.004  -4.494  -4.518  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -0.835  -4.715  -1.632  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.559  -7.070  -2.554  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       1.184  -4.157  -2.293  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       2.495  -5.299  -2.651  0.00  0.00           H  
+ATOM    170  N   GLY A  10       1.193  -6.382   0.530  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       1.971  -6.722   1.726  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.536  -5.512   2.484  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.434  -5.686   3.319  0.00  0.00           O  
+ATOM    174  H   GLY A  10       0.285  -5.945   0.663  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.329  -7.276   2.410  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.805  -7.370   1.457  0.00  0.00           H  
+ATOM    177  N   GLY A  11       2.052  -4.294   2.195  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.478  -3.045   2.826  0.00  0.00           C  
+ATOM    179  C   GLY A  11       4.005  -2.879   2.813  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.582  -2.906   1.721  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.402  -4.219   1.418  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       2.046  -2.213   2.270  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.084  -3.016   3.839  0.00  0.00           H  
+ATOM    184  N   PRO A  12       4.692  -2.759   3.973  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.152  -2.629   4.039  0.00  0.00           C  
+ATOM    186  C   PRO A  12       6.923  -3.746   3.321  0.00  0.00           C  
+ATOM    187  O   PRO A  12       8.027  -3.514   2.831  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.510  -2.622   5.531  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       5.218  -2.200   6.225  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       4.129  -2.762   5.317  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.435  -1.671   3.598  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       6.814  -3.599   5.854  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       7.322  -1.925   5.744  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       5.154  -2.624   7.209  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       5.152  -1.112   6.247  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       3.874  -3.761   5.613  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.237  -2.141   5.389  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.342  -4.949   3.227  0.00  0.00           N  
+ATOM    199  CA  SER A  13       6.953  -6.108   2.565  0.00  0.00           C  
+ATOM    200  C   SER A  13       6.835  -6.089   1.028  0.00  0.00           C  
+ATOM    201  O   SER A  13       7.310  -7.013   0.372  0.00  0.00           O  
+ATOM    202  CB  SER A  13       6.418  -7.407   3.189  0.00  0.00           C  
+ATOM    203  OG  SER A  13       5.049  -7.646   2.925  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.398  -5.042   3.586  0.00  0.00           H  
+ATOM    205  HA  SER A  13       8.021  -6.087   2.780  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       6.986  -8.229   2.798  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       6.570  -7.367   4.269  0.00  0.00           H  
+ATOM    208  HG  SER A  13       4.491  -6.875   3.179  0.00  0.00           H  
+ATOM    209  N   SER A  14       6.261  -5.024   0.445  0.00  0.00           N  
+ATOM    210  CA  SER A  14       5.991  -4.891  -1.000  0.00  0.00           C  
+ATOM    211  C   SER A  14       7.137  -4.279  -1.817  0.00  0.00           C  
+ATOM    212  O   SER A  14       7.039  -4.212  -3.040  0.00  0.00           O  
+ATOM    213  CB  SER A  14       4.767  -3.997  -1.251  0.00  0.00           C  
+ATOM    214  OG  SER A  14       3.740  -4.198  -0.309  0.00  0.00           O  
+ATOM    215  H   SER A  14       5.896  -4.305   1.059  0.00  0.00           H  
+ATOM    216  HA  SER A  14       5.772  -5.881  -1.404  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       5.077  -2.971  -1.206  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       4.387  -4.198  -2.253  0.00  0.00           H  
+ATOM    219  HG  SER A  14       3.989  -3.688   0.498  0.00  0.00           H  
+ATOM    220  N   GLY A  15       8.190  -3.753  -1.173  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       9.278  -3.048  -1.864  0.00  0.00           C  
+ATOM    222  C   GLY A  15       8.923  -1.636  -2.363  0.00  0.00           C  
+ATOM    223  O   GLY A  15       9.597  -1.125  -3.256  0.00  0.00           O  
+ATOM    224  H   GLY A  15       8.230  -3.874  -0.169  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15      10.132  -2.963  -1.193  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15       9.593  -3.638  -2.728  0.00  0.00           H  
+ATOM    227  N   ARG A  16       7.874  -1.002  -1.812  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       7.382   0.330  -2.201  0.00  0.00           C  
+ATOM    229  C   ARG A  16       6.915   1.120  -0.964  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.231   0.524  -0.128  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       6.224   0.134  -3.199  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       5.717   1.452  -3.807  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       4.513   1.235  -4.737  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       4.760   1.773  -6.087  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       5.414   1.176  -7.078  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       5.904  -0.036  -6.958  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       5.592   1.801  -8.218  0.00  0.00           N  
+ATOM    238  H   ARG A  16       7.386  -1.480  -1.068  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       8.193   0.866  -2.695  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       6.564  -0.500  -3.995  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       5.397  -0.368  -2.693  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       5.425   2.110  -3.011  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       6.533   1.921  -4.356  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       4.318   0.183  -4.813  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       3.650   1.750  -4.307  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       4.417   2.701  -6.269  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       5.763  -0.524  -6.091  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       6.395  -0.483  -7.711  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       5.241   2.733  -8.353  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       6.087   1.345  -8.963  0.00  0.00           H  
+ATOM    251  N   PRO A  17       7.201   2.434  -0.845  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.709   3.260   0.266  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.174   3.417   0.252  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.553   3.245  -0.801  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.409   4.616   0.102  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.686   4.697  -1.397  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       7.996   3.247  -1.757  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       7.014   2.807   1.209  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       6.770   5.418   0.418  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.355   4.606   0.646  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       6.826   5.053  -1.931  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.523   5.360  -1.621  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       7.719   3.047  -2.774  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       9.056   3.045  -1.589  0.00  0.00           H  
+ATOM    265  N   PRO A  18       4.551   3.769   1.395  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       3.107   3.972   1.479  0.00  0.00           C  
+ATOM    267  C   PRO A  18       2.667   5.246   0.736  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.406   6.231   0.715  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       2.790   4.070   2.975  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       4.088   4.608   3.577  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       5.169   3.986   2.696  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       2.605   3.104   1.061  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       1.976   4.746   3.152  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       2.591   3.076   3.371  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       4.120   5.679   3.526  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       4.200   4.315   4.621  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       6.005   4.652   2.605  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       5.478   3.028   3.113  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.453   5.261   0.157  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       0.895   6.437  -0.497  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.313   7.426   0.527  0.00  0.00           C  
+ATOM    282  O   PRO A  19      -0.289   7.024   1.526  0.00  0.00           O  
+ATOM    283  CB  PRO A  19      -0.191   5.879  -1.419  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -0.709   4.662  -0.648  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       0.528   4.140   0.072  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       1.661   6.937  -1.093  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -0.972   6.598  -1.574  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19       0.264   5.549  -2.354  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -1.469   4.948   0.054  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -1.113   3.904  -1.316  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.269   3.796   1.055  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       0.983   3.342  -0.516  0.00  0.00           H  
+ATOM    293  N   SER A  20       0.435   8.721   0.221  0.00  0.00           N  
+ATOM    294  CA  SER A  20      -0.096   9.858   0.986  0.00  0.00           C  
+ATOM    295  C   SER A  20      -0.738  10.863   0.030  0.00  0.00           C  
+ATOM    296  O   SER A  20       0.078  11.508  -0.677  0.00  0.00           O  
+ATOM    297  CB  SER A  20       1.036  10.515   1.790  0.00  0.00           C  
+ATOM    298  OG  SER A  20       1.921  11.080   0.848  0.00  0.00           O  
+ATOM    299  OXT SER A  20      -1.985  10.935   0.010  0.00  0.00           O  
+ATOM    300  H   SER A  20       0.966   8.976  -0.599  0.00  0.00           H  
+ATOM    301  HA  SER A  20      -0.871   9.518   1.672  0.00  0.00           H  
+ATOM    302 1HB  SER A  20       0.640  11.279   2.431  0.00  0.00           H  
+ATOM    303 2HB  SER A  20       1.548   9.780   2.415  0.00  0.00           H  
+ATOM    304  HG  SER A  20       1.284  11.357   0.104  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MODEL       16                                                                  
+ATOM      1  N   ASN A   1      -8.985   3.821  -0.843  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -8.461   2.997  -1.957  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -6.942   2.892  -1.960  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -6.453   1.798  -1.714  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -9.056   3.439  -3.298  0.00  0.00           C  
+ATOM      6  CG  ASN A   1     -10.516   3.025  -3.296  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1     -11.303   3.596  -2.558  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1     -10.879   1.968  -3.997  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -8.630   3.491   0.044  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -8.733   4.791  -0.971  0.00  0.00           H  
+ATOM     11 3H   ASN A   1      -9.999   3.760  -0.843  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -8.800   1.972  -1.795  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -8.975   4.504  -3.404  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -8.543   2.956  -4.125  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1     -10.234   1.458  -4.583  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1     -11.851   1.711  -3.928  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -6.201   3.988  -2.170  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -4.729   4.023  -2.199  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -4.037   3.168  -1.116  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -3.314   2.226  -1.445  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -4.249   5.491  -2.208  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -4.830   6.411  -1.102  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -3.744   6.981  -0.191  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -5.610   7.577  -1.716  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -6.656   4.854  -2.419  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -4.416   3.587  -3.149  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -3.181   5.487  -2.102  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -4.495   5.911  -3.186  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -5.519   5.848  -0.473  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -3.233   6.180   0.339  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -3.013   7.542  -0.773  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -4.187   7.648   0.549  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -4.940   8.203  -2.305  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -6.406   7.203  -2.358  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -6.050   8.182  -0.924  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -4.276   3.462   0.168  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.662   2.734   1.282  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -4.055   1.248   1.304  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.199   0.393   1.521  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -4.017   3.443   2.599  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -3.241   2.974   3.819  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -1.832   2.899   3.785  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -3.928   2.662   5.010  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -1.115   2.469   4.918  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -3.214   2.261   6.153  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -1.810   2.142   6.104  0.00  0.00           C  
+ATOM     47  OH  TYR A   3      -1.150   1.670   7.197  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -4.837   4.272   0.378  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.581   2.779   1.145  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -3.831   4.492   2.471  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -5.087   3.318   2.784  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -1.288   3.179   2.895  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -5.005   2.735   5.060  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3      -0.037   2.418   4.887  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -3.725   2.015   7.071  0.00  0.00           H  
+ATOM     56  HH  TYR A   3      -0.473   1.035   6.968  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.324   0.935   1.003  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.835  -0.433   0.848  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -5.070  -1.165  -0.259  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -4.556  -2.249  -0.010  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.373  -0.454   0.628  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.119   0.069   1.882  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -7.865  -1.878   0.304  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -8.406   1.577   1.860  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -5.933   1.699   0.766  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.626  -0.976   1.772  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.639   0.170  -0.222  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -9.055  -0.451   1.958  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -7.537  -0.172   2.773  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.467  -2.211  -0.654  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -7.552  -2.574   1.084  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -8.953  -1.892   0.229  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -7.613   2.129   1.361  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4      -9.347   1.759   1.338  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4      -8.496   1.941   2.884  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -4.953  -0.577  -1.456  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -4.193  -1.137  -2.578  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.737  -1.444  -2.205  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -2.269  -2.544  -2.502  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -4.275  -0.188  -3.786  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -5.565  -0.416  -4.589  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -5.973   0.808  -5.398  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -7.023   1.388  -5.178  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -5.173   1.247  -6.352  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -5.394   0.332  -1.576  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.644  -2.090  -2.855  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -4.256   0.826  -3.436  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -3.423  -0.354  -4.446  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -5.411  -1.237  -5.262  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -6.383  -0.657  -3.908  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -4.298   0.808  -6.577  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -5.526   2.044  -6.855  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -2.045  -0.512  -1.537  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.676  -0.717  -1.051  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.574  -1.823   0.011  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.277  -2.708  -0.097  0.00  0.00           O  
+ATOM     97  CB  TRP A   6      -0.129   0.610  -0.523  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.281   0.547  -0.017  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.388   0.529  -0.785  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.751   0.483   1.369  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.510   0.450   0.021  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       3.175   0.431   1.351  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       1.129   0.466   2.636  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.949   0.390   2.518  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.894   0.408   3.818  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       3.300   0.384   3.763  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.501   0.381  -1.357  0.00  0.00           H  
+ATOM    108  HA  TRP A   6      -0.053  -1.031  -1.891  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.167   1.328  -1.319  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -0.772   0.969   0.281  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.399   0.570  -1.868  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.480   0.455  -0.290  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6       0.051   0.501   2.690  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       5.027   0.361   2.446  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       1.403   0.391   4.779  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.881   0.356   4.673  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.457  -1.813   1.020  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.515  -2.880   2.022  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.825  -4.246   1.392  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.201  -5.233   1.781  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.540  -2.533   3.116  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.096  -1.425   4.093  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.250  -1.130   5.052  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -0.870  -1.826   4.923  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.129  -1.050   1.079  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.530  -2.978   2.476  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.444  -2.212   2.636  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -2.739  -3.435   3.698  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -1.858  -0.515   3.546  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.089  -0.709   4.497  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -3.566  -2.044   5.557  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -2.934  -0.410   5.803  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -1.062  -2.759   5.451  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7       0.000  -1.946   4.281  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -0.647  -1.045   5.648  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.718  -4.307   0.394  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -3.085  -5.532  -0.333  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.882  -6.223  -0.984  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.848  -7.448  -1.047  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -4.149  -5.208  -1.398  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -4.972  -6.445  -1.780  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -5.913  -6.206  -2.971  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -5.170  -6.233  -4.317  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -4.735  -4.890  -4.767  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -3.216  -3.446   0.170  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.506  -6.236   0.387  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -4.811  -4.457  -1.010  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -3.649  -4.799  -2.275  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -4.296  -7.239  -2.034  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -5.577  -6.724  -0.915  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -6.664  -6.972  -2.976  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -6.467  -5.274  -2.843  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -4.303  -6.857  -4.216  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -5.841  -6.664  -5.066  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -5.540  -4.295  -4.905  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -4.116  -4.470  -4.084  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -4.232  -4.964  -5.642  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -0.902  -5.444  -1.456  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.348  -5.945  -2.038  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.310  -6.525  -0.977  0.00  0.00           C  
+ATOM    161  O   ASP A   9       2.208  -7.294  -1.310  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       1.013  -4.797  -2.817  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       1.703  -5.285  -4.093  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9       2.951  -5.273  -4.135  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9       0.950  -5.620  -5.038  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -1.024  -4.442  -1.395  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.107  -6.748  -2.738  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       0.261  -4.080  -3.084  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       1.722  -4.274  -2.176  0.00  0.00           H  
+ATOM    170  N   GLY A  10       1.095  -6.194   0.306  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       1.925  -6.595   1.444  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.500  -5.422   2.247  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.312  -5.648   3.146  0.00  0.00           O  
+ATOM    174  H   GLY A  10       0.256  -5.661   0.510  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.317  -7.196   2.118  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.758  -7.207   1.101  0.00  0.00           H  
+ATOM    177  N   GLY A  11       2.118  -4.173   1.938  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.643  -2.980   2.600  0.00  0.00           C  
+ATOM    179  C   GLY A  11       4.177  -2.920   2.520  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.704  -2.996   1.404  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.494  -4.036   1.148  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       2.239  -2.102   2.100  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.298  -2.976   3.632  0.00  0.00           H  
+ATOM    184  N   PRO A  12       4.917  -2.819   3.647  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.382  -2.799   3.646  0.00  0.00           C  
+ATOM    186  C   PRO A  12       7.030  -4.001   2.943  0.00  0.00           C  
+ATOM    187  O   PRO A  12       8.063  -3.835   2.294  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.809  -2.746   5.118  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       5.582  -2.203   5.844  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       4.419  -2.739   5.012  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.713  -1.886   3.148  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       7.061  -3.725   5.477  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       7.675  -2.096   5.258  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       5.537  -2.571   6.851  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       5.587  -1.112   5.807  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       4.125  -3.710   5.361  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.565  -2.068   5.100  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.415  -5.193   3.014  0.00  0.00           N  
+ATOM    199  CA  SER A  13       6.932  -6.420   2.383  0.00  0.00           C  
+ATOM    200  C   SER A  13       7.055  -6.302   0.860  0.00  0.00           C  
+ATOM    201  O   SER A  13       7.865  -6.999   0.255  0.00  0.00           O  
+ATOM    202  CB  SER A  13       6.032  -7.613   2.710  0.00  0.00           C  
+ATOM    203  OG  SER A  13       5.997  -7.832   4.106  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.544  -5.278   3.527  0.00  0.00           H  
+ATOM    205  HA  SER A  13       7.927  -6.625   2.782  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       5.038  -7.414   2.358  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       6.424  -8.504   2.218  0.00  0.00           H  
+ATOM    208  HG  SER A  13       5.429  -8.585   4.283  0.00  0.00           H  
+ATOM    209  N   SER A  14       6.287  -5.390   0.254  0.00  0.00           N  
+ATOM    210  CA  SER A  14       6.322  -5.050  -1.172  0.00  0.00           C  
+ATOM    211  C   SER A  14       7.593  -4.289  -1.582  0.00  0.00           C  
+ATOM    212  O   SER A  14       7.834  -4.108  -2.773  0.00  0.00           O  
+ATOM    213  CB  SER A  14       5.101  -4.192  -1.567  0.00  0.00           C  
+ATOM    214  OG  SER A  14       4.017  -4.292  -0.662  0.00  0.00           O  
+ATOM    215  H   SER A  14       5.633  -4.881   0.831  0.00  0.00           H  
+ATOM    216  HA  SER A  14       6.280  -5.977  -1.745  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       5.409  -3.165  -1.614  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       4.775  -4.489  -2.563  0.00  0.00           H  
+ATOM    219  HG  SER A  14       4.222  -3.726   0.121  0.00  0.00           H  
+ATOM    220  N   GLY A  15       8.386  -3.785  -0.622  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       9.603  -3.011  -0.885  0.00  0.00           C  
+ATOM    222  C   GLY A  15       9.362  -1.593  -1.427  0.00  0.00           C  
+ATOM    223  O   GLY A  15      10.306  -0.952  -1.881  0.00  0.00           O  
+ATOM    224  H   GLY A  15       8.154  -3.973   0.353  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15      10.169  -2.923   0.042  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15      10.220  -3.549  -1.606  0.00  0.00           H  
+ATOM    227  N   ARG A  16       8.117  -1.096  -1.381  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       7.691   0.212  -1.899  0.00  0.00           C  
+ATOM    229  C   ARG A  16       7.091   1.060  -0.764  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.300   0.516   0.009  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       6.671  -0.025  -3.030  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       6.236   1.275  -3.721  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       5.149   1.034  -4.770  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       4.730   2.310  -5.382  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       3.684   2.515  -6.172  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       2.874   1.539  -6.511  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       3.433   3.717  -6.637  0.00  0.00           N  
+ATOM    238  H   ARG A  16       7.418  -1.684  -0.950  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       8.564   0.718  -2.312  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       7.115  -0.671  -3.763  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       5.791  -0.523  -2.617  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       5.857   1.951  -2.979  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       7.100   1.731  -4.204  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       5.533   0.385  -5.534  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       4.293   0.562  -4.283  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       5.293   3.114  -5.162  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       3.073   0.618  -6.161  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       2.086   1.696  -7.110  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       4.029   4.490  -6.397  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       2.642   3.867  -7.235  0.00  0.00           H  
+ATOM    251  N   PRO A  17       7.386   2.375  -0.671  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.796   3.253   0.346  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.267   3.389   0.203  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.733   3.160  -0.887  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.495   4.609   0.170  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.932   4.600  -1.293  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       8.291   3.135  -1.522  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       7.029   2.854   1.334  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       6.817   5.418   0.362  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.375   4.651   0.813  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       7.132   4.909  -1.938  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.783   5.259  -1.469  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       8.148   2.870  -2.552  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       9.319   2.954  -1.207  0.00  0.00           H  
+ATOM    265  N   PRO A  18       4.555   3.783   1.280  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       3.107   3.955   1.251  0.00  0.00           C  
+ATOM    267  C   PRO A  18       2.677   5.165   0.399  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.440   6.118   0.240  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       2.682   4.114   2.714  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       3.920   4.702   3.385  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       5.071   4.058   2.612  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       2.660   3.050   0.846  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       1.846   4.781   2.800  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       2.472   3.133   3.140  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       3.940   5.770   3.288  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       3.960   4.460   4.446  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       5.906   4.730   2.557  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       5.353   3.118   3.092  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.446   5.145  -0.145  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       0.886   6.247  -0.912  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.347   7.353   0.009  0.00  0.00           C  
+ATOM    282  O   PRO A  19      -0.657   7.156   0.691  0.00  0.00           O  
+ATOM    283  CB  PRO A  19      -0.216   5.613  -1.764  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -0.713   4.453  -0.902  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       0.539   4.007  -0.154  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       1.645   6.666  -1.575  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -1.005   6.315  -1.954  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19       0.222   5.216  -2.681  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -1.473   4.780  -0.218  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -1.118   3.650  -1.516  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.289   3.725   0.851  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       1.012   3.193  -0.700  0.00  0.00           H  
+ATOM    293  N   SER A  20       0.994   8.526  -0.049  0.00  0.00           N  
+ATOM    294  CA  SER A  20       0.653   9.774   0.659  0.00  0.00           C  
+ATOM    295  C   SER A  20       0.918   9.764   2.177  0.00  0.00           C  
+ATOM    296  O   SER A  20       0.442  10.754   2.789  0.00  0.00           O  
+ATOM    297  CB  SER A  20      -0.786  10.208   0.336  0.00  0.00           C  
+ATOM    298  OG  SER A  20      -0.959  11.455   0.965  0.00  0.00           O  
+ATOM    299  OXT SER A  20       1.603   8.846   2.675  0.00  0.00           O  
+ATOM    300  H   SER A  20       1.867   8.518  -0.553  0.00  0.00           H  
+ATOM    301  HA  SER A  20       1.307  10.553   0.271  0.00  0.00           H  
+ATOM    302 1HB  SER A  20      -0.919  10.302  -0.725  0.00  0.00           H  
+ATOM    303 2HB  SER A  20      -1.495   9.494   0.758  0.00  0.00           H  
+ATOM    304  HG  SER A  20      -0.420  11.315   1.824  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MODEL       17                                                                  
+ATOM      1  N   ASN A   1      -8.598   5.262  -0.292  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -8.658   3.999  -1.068  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -7.282   3.479  -1.479  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -7.038   2.293  -1.290  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -9.633   4.090  -2.256  0.00  0.00           C  
+ATOM      6  CG  ASN A   1     -11.034   3.705  -1.797  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1     -11.203   2.706  -1.121  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1     -12.056   4.485  -2.091  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -7.871   5.210   0.409  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -8.409   6.043  -0.906  0.00  0.00           H  
+ATOM     11 3H   ASN A   1      -9.483   5.425   0.171  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -9.048   3.224  -0.405  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -9.644   5.095  -2.633  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -9.339   3.378  -3.028  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1     -11.996   5.318  -2.653  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1     -12.946   4.132  -1.770  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -6.367   4.322  -1.982  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -5.025   3.900  -2.419  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -4.243   3.096  -1.364  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -3.570   2.120  -1.698  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -4.224   5.145  -2.840  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -4.672   5.767  -4.178  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -3.897   7.063  -4.418  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -4.426   4.814  -5.354  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -6.595   5.288  -2.162  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -5.133   3.236  -3.278  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -4.329   5.887  -2.073  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -3.170   4.876  -2.925  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -5.734   6.008  -4.131  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -4.056   7.754  -3.588  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -2.832   6.853  -4.509  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -4.248   7.538  -5.334  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -3.421   4.393  -5.292  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -5.156   4.005  -5.345  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -4.526   5.349  -6.297  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -4.383   3.462  -0.084  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.757   2.758   1.034  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -4.175   1.279   1.120  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.350   0.425   1.441  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -4.083   3.494   2.342  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -3.021   3.296   3.403  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -1.860   4.092   3.363  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -3.175   2.317   4.405  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -0.846   3.906   4.317  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -2.162   2.132   5.366  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -0.992   2.923   5.318  0.00  0.00           C  
+ATOM     47  OH  TYR A   3       0.011   2.729   6.217  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -4.910   4.298   0.109  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.678   2.791   0.884  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -4.169   4.543   2.134  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -5.054   3.166   2.719  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -1.741   4.850   2.600  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -4.067   1.705   4.436  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3       0.050   4.506   4.296  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -2.281   1.396   6.145  0.00  0.00           H  
+ATOM     56  HH  TYR A   3      -0.092   1.913   6.709  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.434   0.963   0.782  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.959  -0.407   0.754  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -5.234  -1.224  -0.323  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -4.791  -2.341  -0.056  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.489  -0.415   0.505  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.287   0.574   1.386  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -8.084  -1.834   0.645  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -7.998   0.474   2.893  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -6.027   1.699   0.419  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.758  -0.874   1.720  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.652  -0.114  -0.531  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -8.051   1.571   1.066  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -9.351   0.403   1.219  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.310  -2.600   0.624  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -8.633  -1.940   1.582  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -8.777  -2.015  -0.176  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -7.679  -0.532   3.164  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4      -7.214   1.179   3.165  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4      -8.902   0.718   3.451  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -5.082  -0.658  -1.529  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -4.322  -1.281  -2.612  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.862  -1.527  -2.213  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -2.351  -2.625  -2.425  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -4.396  -0.435  -3.898  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -5.293  -1.073  -4.971  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -4.805  -0.728  -6.375  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -4.736   0.424  -6.768  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -4.436  -1.716  -7.169  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -5.436   0.282  -1.657  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.757  -2.263  -2.799  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -4.789   0.532  -3.651  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -3.390  -0.336  -4.310  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -5.281  -2.139  -4.848  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -6.316  -0.718  -4.849  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -4.461  -2.680  -6.883  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -4.101  -1.424  -8.072  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -2.207  -0.530  -1.604  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.837  -0.672  -1.104  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.705  -1.777  -0.043  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.217  -2.593  -0.114  0.00  0.00           O  
+ATOM     97  CB  TRP A   6      -0.347   0.675  -0.564  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.007   0.616   0.072  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.190   0.555  -0.580  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.332   0.576   1.493  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.222   0.465   0.337  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       2.749   0.489   1.629  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       0.572   0.607   2.680  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.387   0.464   2.876  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.201   0.554   3.937  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       2.602   0.496   4.040  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.687   0.361  -1.494  0.00  0.00           H  
+ATOM    108  HA  TRP A   6      -0.192  -0.960  -1.936  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.308   1.372  -1.379  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -1.057   1.038   0.178  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.302   0.568  -1.656  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.213   0.428   0.099  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6      -0.505   0.677   2.615  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       4.464   0.415   2.929  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       0.600   0.564   4.832  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.067   0.481   5.014  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.635  -1.843   0.921  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.657  -2.918   1.915  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.850  -4.300   1.279  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.189  -5.245   1.705  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.734  -2.654   2.978  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.362  -1.573   4.010  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.534  -1.401   4.981  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -1.117  -1.940   4.827  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.351  -1.119   0.959  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.679  -2.957   2.392  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.631  -2.344   2.477  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -2.923  -3.583   3.518  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -2.187  -0.627   3.506  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.451  -1.204   4.427  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -3.657  -2.303   5.579  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -3.341  -0.562   5.647  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -1.237  -2.927   5.274  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7      -0.232  -1.942   4.191  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -0.962  -1.204   5.615  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.693  -4.415   0.243  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -2.927  -5.668  -0.497  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.653  -6.277  -1.088  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.528  -7.496  -1.107  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -3.973  -5.432  -1.602  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -5.211  -6.326  -1.434  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -6.475  -5.580  -1.872  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -7.711  -6.420  -1.540  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -8.949  -5.755  -2.006  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -3.216  -3.585  -0.025  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.295  -6.407   0.215  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -4.282  -4.405  -1.571  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -3.535  -5.617  -2.585  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -5.095  -7.207  -2.035  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -5.330  -6.615  -0.390  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -6.532  -4.641  -1.355  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -6.425  -5.375  -2.942  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -7.625  -7.376  -2.020  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -7.744  -6.556  -0.456  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -8.883  -4.758  -1.855  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -9.086  -5.926  -2.995  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -9.750  -6.109  -1.500  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -0.716  -5.437  -1.534  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.596  -5.859  -2.042  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.481  -6.488  -0.941  0.00  0.00           C  
+ATOM    161  O   ASP A   9       2.363  -7.284  -1.255  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       1.292  -4.644  -2.692  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       2.005  -4.972  -4.012  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9       3.245  -4.797  -4.077  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9       1.283  -5.311  -4.975  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -0.933  -4.447  -1.525  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.434  -6.621  -2.808  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       0.551  -3.893  -2.885  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       2.002  -4.208  -1.987  0.00  0.00           H  
+ATOM    170  N   GLY A  10       1.219  -6.165   0.339  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       2.000  -6.593   1.510  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.552  -5.441   2.368  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.421  -5.669   3.222  0.00  0.00           O  
+ATOM    174  H   GLY A  10       0.387  -5.611   0.509  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.359  -7.205   2.144  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.843  -7.202   1.190  0.00  0.00           H  
+ATOM    177  N   GLY A  11       2.100  -4.200   2.127  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.565  -3.016   2.844  0.00  0.00           C  
+ATOM    179  C   GLY A  11       4.085  -2.823   2.696  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.601  -2.976   1.581  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.469  -4.062   1.347  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       2.060  -2.134   2.448  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.283  -3.131   3.889  0.00  0.00           H  
+ATOM    184  N   PRO A  12       4.824  -2.520   3.787  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.277  -2.307   3.754  0.00  0.00           C  
+ATOM    186  C   PRO A  12       7.081  -3.495   3.201  0.00  0.00           C  
+ATOM    187  O   PRO A  12       8.203  -3.312   2.737  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.699  -2.018   5.204  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       5.406  -1.656   5.929  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       4.342  -2.429   5.160  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.486  -1.429   3.142  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       7.148  -2.886   5.646  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       7.420  -1.199   5.254  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       5.441  -1.968   6.955  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       5.218  -0.586   5.838  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       4.219  -3.410   5.578  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.387  -1.911   5.231  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.509  -4.707   3.214  0.00  0.00           N  
+ATOM    199  CA  SER A  13       7.159  -5.950   2.773  0.00  0.00           C  
+ATOM    200  C   SER A  13       7.030  -6.225   1.263  0.00  0.00           C  
+ATOM    201  O   SER A  13       7.213  -7.355   0.818  0.00  0.00           O  
+ATOM    202  CB  SER A  13       6.698  -7.124   3.649  0.00  0.00           C  
+ATOM    203  OG  SER A  13       5.331  -7.475   3.506  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.551  -4.762   3.529  0.00  0.00           H  
+ATOM    205  HA  SER A  13       8.229  -5.841   2.949  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       7.291  -7.982   3.396  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       6.899  -6.873   4.691  0.00  0.00           H  
+ATOM    208  HG  SER A  13       4.725  -6.704   3.495  0.00  0.00           H  
+ATOM    209  N   SER A  14       6.763  -5.177   0.472  0.00  0.00           N  
+ATOM    210  CA  SER A  14       6.427  -5.256  -0.961  0.00  0.00           C  
+ATOM    211  C   SER A  14       7.393  -4.454  -1.849  0.00  0.00           C  
+ATOM    212  O   SER A  14       7.103  -4.203  -3.018  0.00  0.00           O  
+ATOM    213  CB  SER A  14       4.966  -4.835  -1.209  0.00  0.00           C  
+ATOM    214  OG  SER A  14       4.155  -4.935  -0.060  0.00  0.00           O  
+ATOM    215  H   SER A  14       6.628  -4.294   0.943  0.00  0.00           H  
+ATOM    216  HA  SER A  14       6.505  -6.297  -1.276  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       4.957  -3.816  -1.545  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       4.553  -5.447  -2.010  0.00  0.00           H  
+ATOM    219  HG  SER A  14       4.335  -4.165   0.528  0.00  0.00           H  
+ATOM    220  N   GLY A  15       8.524  -3.999  -1.288  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       9.526  -3.183  -1.983  0.00  0.00           C  
+ATOM    222  C   GLY A  15       9.030  -1.786  -2.384  0.00  0.00           C  
+ATOM    223  O   GLY A  15       9.571  -1.198  -3.319  0.00  0.00           O  
+ATOM    224  H   GLY A  15       8.702  -4.280  -0.334  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15      10.392  -3.054  -1.335  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15       9.855  -3.702  -2.884  0.00  0.00           H  
+ATOM    227  N   ARG A  16       7.999  -1.262  -1.701  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       7.349   0.019  -2.007  0.00  0.00           C  
+ATOM    229  C   ARG A  16       6.893   0.760  -0.731  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.219   0.163   0.112  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       6.178  -0.191  -2.987  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       5.135  -1.203  -2.490  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       3.984  -1.428  -3.468  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       4.422  -2.198  -4.644  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       3.985  -2.079  -5.889  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       3.095  -1.174  -6.226  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       4.443  -2.867  -6.829  0.00  0.00           N  
+ATOM    238  H   ARG A  16       7.637  -1.808  -0.931  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       8.087   0.627  -2.526  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       5.690   0.752  -3.140  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       6.587  -0.548  -3.935  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       5.627  -2.142  -2.323  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       4.707  -0.869  -1.550  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       3.202  -1.967  -2.969  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       3.580  -0.460  -3.754  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       4.950  -3.039  -4.447  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       2.699  -0.623  -5.487  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       2.736  -1.119  -7.160  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       5.052  -3.623  -6.563  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       4.097  -2.799  -7.766  0.00  0.00           H  
+ATOM    251  N   PRO A  17       7.222   2.058  -0.583  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.818   2.862   0.570  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.308   3.175   0.566  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.649   2.986  -0.461  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.668   4.136   0.467  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.903   4.302  -1.030  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       7.972   2.866  -1.536  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       7.067   2.330   1.490  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       7.140   4.980   0.866  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.622   3.973   0.971  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       7.092   4.833  -1.490  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.828   4.841  -1.235  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       7.531   2.795  -2.511  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       9.009   2.530  -1.559  0.00  0.00           H  
+ATOM    265  N   PRO A  18       4.746   3.667   1.690  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       3.331   4.024   1.786  0.00  0.00           C  
+ATOM    267  C   PRO A  18       2.969   5.219   0.879  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.752   6.167   0.773  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       3.081   4.342   3.265  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       4.457   4.738   3.793  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       5.409   3.874   2.971  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       2.737   3.158   1.511  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       2.385   5.152   3.369  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       2.740   3.441   3.778  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       4.646   5.781   3.629  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       4.557   4.542   4.860  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       6.346   4.379   2.831  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       5.554   2.911   3.463  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.774   5.216   0.253  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       1.314   6.299  -0.608  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.874   7.500   0.242  0.00  0.00           C  
+ATOM    282  O   PRO A  19      -0.165   7.445   0.901  0.00  0.00           O  
+ATOM    283  CB  PRO A  19       0.174   5.693  -1.433  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -0.436   4.648  -0.498  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       0.761   4.170   0.330  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       2.114   6.607  -1.283  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -0.549   6.442  -1.694  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19       0.591   5.191  -2.307  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -1.187   5.087   0.130  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -0.891   3.829  -1.053  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.466   4.016   1.350  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       1.161   3.257  -0.105  0.00  0.00           H  
+ATOM    293  N   SER A  20       1.692   8.561   0.244  0.00  0.00           N  
+ATOM    294  CA  SER A  20       1.395   9.850   0.892  0.00  0.00           C  
+ATOM    295  C   SER A  20       0.641  10.781  -0.057  0.00  0.00           C  
+ATOM    296  O   SER A  20       1.191  11.035  -1.153  0.00  0.00           O  
+ATOM    297  CB  SER A  20       2.675  10.542   1.362  0.00  0.00           C  
+ATOM    298  OG  SER A  20       3.385   9.705   2.254  0.00  0.00           O  
+ATOM    299  OXT SER A  20      -0.453  11.237   0.341  0.00  0.00           O  
+ATOM    300  H   SER A  20       2.495   8.530  -0.365  0.00  0.00           H  
+ATOM    301  HA  SER A  20       0.748   9.687   1.754  0.00  0.00           H  
+ATOM    302 1HB  SER A  20       3.293  10.759   0.512  0.00  0.00           H  
+ATOM    303 2HB  SER A  20       2.412  11.474   1.867  0.00  0.00           H  
+ATOM    304  HG  SER A  20       3.522   8.859   1.817  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MODEL       18                                                                  
+ATOM      1  N   ASN A   1      -4.790   8.442   0.249  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -5.686   7.485  -0.453  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -4.849   6.300  -0.965  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -3.693   6.208  -0.570  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -6.519   8.196  -1.544  0.00  0.00           C  
+ATOM      6  CG  ASN A   1      -7.833   7.461  -1.812  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1      -7.853   6.422  -2.450  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1      -8.951   7.930  -1.294  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -4.244   7.939   0.938  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -4.142   8.858  -0.406  0.00  0.00           H  
+ATOM     11 3H   ASN A   1      -5.325   9.168   0.704  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -6.383   7.080   0.282  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -6.738   9.195  -1.220  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -5.944   8.259  -2.469  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1      -9.019   8.786  -0.768  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1      -9.770   7.389  -1.524  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -5.405   5.376  -1.765  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -4.751   4.202  -2.378  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -4.144   3.169  -1.390  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -3.662   2.112  -1.794  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -3.724   4.701  -3.418  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -3.530   3.738  -4.610  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -4.310   4.230  -5.834  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -2.051   3.617  -4.978  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -6.367   5.541  -2.065  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -5.530   3.669  -2.924  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -4.059   5.647  -3.798  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -2.776   4.864  -2.910  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -3.896   2.747  -4.351  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -5.363   4.348  -5.581  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -3.911   5.184  -6.179  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -4.230   3.497  -6.639  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -1.642   4.598  -5.223  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -1.504   3.192  -4.138  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -1.942   2.955  -5.838  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -4.199   3.443  -0.085  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.520   2.704   0.978  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -3.955   1.233   1.067  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.129   0.359   1.321  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -3.753   3.449   2.303  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -2.583   3.372   3.262  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -1.718   4.476   3.408  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -2.356   2.199   4.004  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -0.634   4.408   4.303  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -1.265   2.121   4.888  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -0.399   3.225   5.036  0.00  0.00           C  
+ATOM     47  OH  TYR A   3       0.654   3.151   5.892  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -4.531   4.367   0.144  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.450   2.720   0.763  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -3.942   4.482   2.082  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -4.647   3.061   2.792  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -1.875   5.381   2.835  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -3.021   1.359   3.886  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3       0.025   5.255   4.425  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -1.080   1.223   5.456  0.00  0.00           H  
+ATOM     56  HH  TYR A   3       0.402   3.418   6.779  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.239   0.944   0.809  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.793  -0.418   0.803  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -5.137  -1.278  -0.294  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -4.777  -2.429  -0.051  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.337  -0.377   0.654  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.002   0.564   1.695  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -7.933  -1.789   0.786  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -8.600   1.821   1.047  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -5.855   1.722   0.628  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.561  -0.884   1.762  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.578  -0.019  -0.348  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -8.786   0.027   2.194  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -7.278   0.868   2.451  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.587  -2.427  -0.028  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -7.641  -2.235   1.738  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -9.023  -1.740   0.735  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -7.889   2.268   0.350  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4      -9.514   1.556   0.511  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4      -8.845   2.548   1.821  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -4.930  -0.702  -1.487  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -4.240  -1.358  -2.602  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.757  -1.594  -2.286  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -2.238  -2.664  -2.596  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -4.402  -0.514  -3.877  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -5.825  -0.583  -4.457  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -6.299   0.780  -4.949  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -5.987   1.219  -6.043  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -7.068   1.504  -4.156  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -5.142   0.280  -1.577  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.690  -2.336  -2.774  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -4.176   0.508  -3.643  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -3.702  -0.864  -4.637  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -5.832  -1.272  -5.280  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -6.527  -0.953  -3.709  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -7.405   1.166  -3.274  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -7.384   2.362  -4.578  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -2.087  -0.635  -1.631  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.718  -0.822  -1.137  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.625  -1.935  -0.078  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.234  -2.811  -0.181  0.00  0.00           O  
+ATOM     97  CB  TRP A   6      -0.169   0.510  -0.615  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.231   0.448  -0.086  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.357   0.390  -0.836  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.678   0.412   1.305  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.461   0.324  -0.009  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       3.102   0.345   1.317  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       1.032   0.434   2.562  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.852   0.322   2.500  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.773   0.390   3.759  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       3.179   0.343   3.732  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.569   0.238  -1.442  0.00  0.00           H  
+ATOM    108  HA  TRP A   6      -0.091  -1.137  -1.973  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.191   1.219  -1.420  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -0.817   0.881   0.178  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.382   0.389  -1.919  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.439   0.289  -0.304  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6      -0.045   0.494   2.594  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       4.931   0.270   2.447  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       1.262   0.416   4.711  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.741   0.324   4.655  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.535  -1.954   0.908  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.599  -3.028   1.905  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.859  -4.404   1.277  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.246  -5.374   1.719  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.653  -2.718   2.982  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.238  -1.612   3.971  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.451  -1.213   4.816  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -1.124  -2.058   4.928  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.199  -1.184   0.968  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.619  -3.101   2.378  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.556  -2.409   2.491  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -2.850  -3.627   3.553  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -1.894  -0.741   3.419  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.238  -0.826   4.169  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -3.830  -2.080   5.360  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -3.169  -0.442   5.533  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -1.484  -2.855   5.579  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7      -0.258  -2.415   4.373  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -0.808  -1.215   5.538  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.699  -4.500   0.231  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -2.961  -5.760  -0.490  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.682  -6.440  -0.992  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.618  -7.666  -1.015  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -3.959  -5.521  -1.641  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -4.419  -6.827  -2.322  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -3.630  -7.226  -3.585  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -4.103  -6.440  -4.814  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -3.568  -7.025  -6.066  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -3.215  -3.664  -0.036  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.413  -6.457   0.217  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -4.821  -5.019  -1.247  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -3.524  -4.853  -2.384  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -4.327  -7.623  -1.608  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -5.470  -6.727  -2.593  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -2.588  -7.026  -3.423  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -3.798  -8.290  -3.759  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -5.175  -6.459  -4.850  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -3.782  -5.399  -4.713  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -2.555  -6.986  -6.067  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -3.851  -7.992  -6.145  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -3.914  -6.519  -6.870  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -0.674  -5.659  -1.382  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.615  -6.165  -1.853  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.571  -6.567  -0.705  0.00  0.00           C  
+ATOM    161  O   ASP A   9       2.686  -7.014  -0.969  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       1.231  -5.098  -2.777  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       2.189  -5.711  -3.799  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9       1.663  -6.222  -4.813  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9       3.416  -5.646  -3.568  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -0.796  -4.654  -1.332  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.438  -7.059  -2.454  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       0.441  -4.595  -3.301  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       1.736  -4.335  -2.183  0.00  0.00           H  
+ATOM    170  N   GLY A  10       1.188  -6.375   0.570  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       2.022  -6.675   1.745  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.601  -5.455   2.475  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.441  -5.624   3.363  0.00  0.00           O  
+ATOM    174  H   GLY A  10       0.253  -6.015   0.741  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.412  -7.227   2.460  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.853  -7.319   1.458  0.00  0.00           H  
+ATOM    177  N   GLY A  11       2.171  -4.233   2.128  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.595  -2.981   2.757  0.00  0.00           C  
+ATOM    179  C   GLY A  11       4.126  -2.821   2.820  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.764  -2.728   1.772  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.579  -4.166   1.309  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       2.194  -2.157   2.171  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.155  -2.927   3.750  0.00  0.00           H  
+ATOM    184  N   PRO A  12       4.762  -2.798   4.014  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.222  -2.711   4.128  0.00  0.00           C  
+ATOM    186  C   PRO A  12       6.985  -3.820   3.384  0.00  0.00           C  
+ATOM    187  O   PRO A  12       8.141  -3.624   3.019  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.536  -2.771   5.628  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       5.232  -2.347   6.300  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       4.159  -2.854   5.339  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.541  -1.745   3.735  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       6.809  -3.767   5.920  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       7.357  -2.104   5.890  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       5.131  -2.805   7.265  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       5.189  -1.259   6.357  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       3.884  -3.862   5.583  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.274  -2.223   5.414  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.349  -4.977   3.147  0.00  0.00           N  
+ATOM    199  CA  SER A  13       6.954  -6.124   2.463  0.00  0.00           C  
+ATOM    200  C   SER A  13       6.833  -6.062   0.928  0.00  0.00           C  
+ATOM    201  O   SER A  13       7.261  -6.986   0.242  0.00  0.00           O  
+ATOM    202  CB  SER A  13       6.368  -7.420   3.048  0.00  0.00           C  
+ATOM    203  OG  SER A  13       7.404  -8.335   3.350  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.372  -5.058   3.425  0.00  0.00           H  
+ATOM    205  HA  SER A  13       8.023  -6.116   2.682  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       5.826  -7.190   3.945  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       5.665  -7.873   2.347  0.00  0.00           H  
+ATOM    208  HG  SER A  13       7.993  -7.938   3.997  0.00  0.00           H  
+ATOM    209  N   SER A  14       6.285  -4.971   0.375  0.00  0.00           N  
+ATOM    210  CA  SER A  14       5.996  -4.784  -1.057  0.00  0.00           C  
+ATOM    211  C   SER A  14       7.108  -4.082  -1.850  0.00  0.00           C  
+ATOM    212  O   SER A  14       6.920  -3.757  -3.019  0.00  0.00           O  
+ATOM    213  CB  SER A  14       4.711  -3.968  -1.193  0.00  0.00           C  
+ATOM    214  OG  SER A  14       3.682  -4.612  -0.483  0.00  0.00           O  
+ATOM    215  H   SER A  14       5.894  -4.268   0.998  0.00  0.00           H  
+ATOM    216  HA  SER A  14       5.825  -5.757  -1.521  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       4.865  -2.985  -0.791  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       4.431  -3.871  -2.241  0.00  0.00           H  
+ATOM    219  HG  SER A  14       3.520  -5.494  -0.884  0.00  0.00           H  
+ATOM    220  N   GLY A  15       8.256  -3.783  -1.226  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       9.384  -3.115  -1.892  0.00  0.00           C  
+ATOM    222  C   GLY A  15       9.136  -1.644  -2.261  0.00  0.00           C  
+ATOM    223  O   GLY A  15       9.906  -1.080  -3.037  0.00  0.00           O  
+ATOM    224  H   GLY A  15       8.354  -4.097  -0.270  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15      10.260  -3.161  -1.246  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15       9.616  -3.654  -2.812  0.00  0.00           H  
+ATOM    227  N   ARG A  16       8.071  -1.022  -1.733  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       7.620   0.333  -2.073  0.00  0.00           C  
+ATOM    229  C   ARG A  16       7.039   1.042  -0.836  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.265   0.407  -0.118  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       6.558   0.205  -3.182  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       6.146   1.562  -3.766  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       5.085   1.404  -4.861  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       5.279   2.408  -5.922  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       4.427   2.749  -6.879  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       3.214   2.253  -6.941  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       4.794   3.604  -7.805  0.00  0.00           N  
+ATOM    238  H   ARG A  16       7.498  -1.558  -1.093  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       8.474   0.889  -2.457  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       6.958  -0.402  -3.972  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       5.678  -0.308  -2.787  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       5.747   2.173  -2.980  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       7.035   2.033  -4.183  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       5.162   0.422  -5.287  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       4.099   1.511  -4.406  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       6.183   2.845  -5.952  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       2.943   1.589  -6.236  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       2.578   2.515  -7.670  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       5.722   3.990  -7.801  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       4.153   3.860  -8.532  0.00  0.00           H  
+ATOM    251  N   PRO A  17       7.339   2.336  -0.597  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.761   3.096   0.517  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.236   3.291   0.376  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.700   3.157  -0.728  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.502   4.441   0.515  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.925   4.615  -0.941  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       8.240   3.185  -1.367  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       6.966   2.571   1.450  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       6.852   5.237   0.823  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.390   4.367   1.144  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       7.129   5.028  -1.529  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.791   5.270  -1.039  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       8.064   3.060  -2.418  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       9.272   2.943  -1.108  0.00  0.00           H  
+ATOM    265  N   PRO A  18       4.530   3.634   1.472  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       3.086   3.848   1.449  0.00  0.00           C  
+ATOM    267  C   PRO A  18       2.698   5.104   0.650  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.420   6.101   0.687  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       2.662   3.983   2.913  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       3.925   4.461   3.623  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       5.046   3.799   2.825  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       2.610   2.974   1.015  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       1.872   4.701   3.016  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       2.373   3.010   3.303  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       4.006   5.530   3.586  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       3.940   4.157   4.670  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       5.918   4.424   2.818  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       5.270   2.821   3.248  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.537   5.098  -0.033  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       1.010   6.280  -0.696  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.436   7.257   0.342  0.00  0.00           C  
+ATOM    282  O   PRO A  19      -0.227   6.870   1.309  0.00  0.00           O  
+ATOM    283  CB  PRO A  19      -0.043   5.743  -1.671  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -0.579   4.494  -0.969  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       0.631   3.970  -0.196  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       1.802   6.778  -1.258  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -0.825   6.462  -1.825  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19       0.453   5.447  -2.598  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -1.381   4.744  -0.302  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -0.944   3.756  -1.684  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.326   3.598   0.763  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       1.130   3.194  -0.777  0.00  0.00           H  
+ATOM    293  N   SER A  20       0.706   8.552   0.169  0.00  0.00           N  
+ATOM    294  CA  SER A  20       0.162   9.640   0.988  0.00  0.00           C  
+ATOM    295  C   SER A  20      -0.066  10.872   0.126  0.00  0.00           C  
+ATOM    296  O   SER A  20       0.918  11.303  -0.513  0.00  0.00           O  
+ATOM    297  CB  SER A  20       1.092   9.931   2.166  0.00  0.00           C  
+ATOM    298  OG  SER A  20       1.001   8.805   3.014  0.00  0.00           O  
+ATOM    299  OXT SER A  20      -1.239  11.304   0.086  0.00  0.00           O  
+ATOM    300  H   SER A  20       1.318   8.846  -0.582  0.00  0.00           H  
+ATOM    301  HA  SER A  20      -0.816   9.367   1.381  0.00  0.00           H  
+ATOM    302 1HB  SER A  20       2.100  10.060   1.823  0.00  0.00           H  
+ATOM    303 2HB  SER A  20       0.767  10.828   2.696  0.00  0.00           H  
+ATOM    304  HG  SER A  20       0.609   8.093   2.479  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MODEL       19                                                                  
+ATOM      1  N   ASN A   1      -4.711   8.428  -0.250  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -5.482   7.459  -1.069  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -4.637   6.216  -1.384  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -3.508   6.151  -0.914  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -6.058   8.123  -2.332  0.00  0.00           C  
+ATOM      6  CG  ASN A   1      -7.308   7.368  -2.763  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1      -8.229   7.219  -1.982  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1      -7.347   6.788  -3.948  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -4.276   7.945   0.525  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -3.969   8.859  -0.792  0.00  0.00           H  
+ATOM     11 3H   ASN A   1      -5.313   9.159   0.105  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -6.326   7.121  -0.463  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -6.310   9.144  -2.119  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -5.314   8.139  -3.131  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1      -6.635   6.892  -4.653  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1      -8.230   6.344  -4.151  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -5.165   5.225  -2.127  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -4.498   3.973  -2.561  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -3.959   3.039  -1.451  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -3.474   1.944  -1.745  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -3.435   4.298  -3.639  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -4.002   4.275  -5.079  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -3.796   5.613  -5.794  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -3.342   3.164  -5.900  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -6.111   5.349  -2.465  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -5.264   3.362  -3.041  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -3.039   5.276  -3.444  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -2.623   3.573  -3.570  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -5.074   4.082  -5.054  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -4.302   6.407  -5.250  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -2.731   5.843  -5.862  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -4.209   5.556  -6.802  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -2.271   3.350  -5.990  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -3.499   2.202  -5.413  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -3.782   3.126  -6.897  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -4.101   3.418  -0.179  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.547   2.721   0.982  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -4.035   1.268   1.120  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.246   0.381   1.446  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -3.866   3.547   2.234  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -2.864   3.337   3.348  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -1.722   4.158   3.414  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -3.059   2.315   4.297  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -0.764   3.952   4.424  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -2.106   2.111   5.311  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -0.953   2.921   5.370  0.00  0.00           C  
+ATOM     47  OH  TYR A   3      -0.015   2.685   6.326  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -4.435   4.356  -0.036  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.464   2.693   0.862  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -3.869   4.586   1.967  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -4.870   3.311   2.589  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -1.570   4.949   2.689  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -3.934   1.680   4.247  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3       0.103   4.591   4.475  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -2.233   1.337   6.051  0.00  0.00           H  
+ATOM     56  HH  TYR A   3       0.804   3.144   6.139  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.316   1.007   0.820  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.898  -0.342   0.812  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -5.161  -1.235  -0.200  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -4.707  -2.324   0.147  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.424  -0.311   0.536  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.202   0.658   1.464  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -8.008  -1.726   0.703  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -8.481   2.022   0.816  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -5.901   1.792   0.575  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.743  -0.778   1.800  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.593  -0.010  -0.501  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -9.140   0.204   1.722  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -7.659   0.801   2.399  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.552  -2.414  -0.005  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -7.831  -2.089   1.719  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -9.082  -1.713   0.513  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -7.555   2.566   0.645  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4      -9.003   1.881  -0.131  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4      -9.118   2.609   1.477  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -5.005  -0.767  -1.445  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -4.266  -1.471  -2.496  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.794  -1.703  -2.131  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -2.290  -2.798  -2.375  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -4.404  -0.714  -3.831  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -5.577  -1.242  -4.674  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -5.172  -2.342  -5.657  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -5.444  -2.266  -6.841  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -4.511  -3.407  -5.235  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -5.339   0.164  -1.640  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.705  -2.459  -2.606  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -4.567   0.326  -3.624  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -3.485  -0.802  -4.412  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -6.322  -1.636  -4.010  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -5.980  -0.410  -5.253  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -4.079  -3.463  -4.327  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -4.196  -3.952  -6.023  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -2.131  -0.715  -1.517  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.771  -0.866  -0.989  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.676  -1.954   0.096  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.217  -2.804   0.034  0.00  0.00           O  
+ATOM     97  CB  TRP A   6      -0.278   0.492  -0.481  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.076   0.483   0.156  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.258   0.449  -0.500  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.409   0.516   1.577  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.295   0.438   0.415  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       2.830   0.499   1.706  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       0.660   0.554   2.771  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.479   0.537   2.947  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.299   0.565   4.026  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       2.703   0.571   4.116  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.609   0.176  -1.403  0.00  0.00           H  
+ATOM    108  HA  TRP A   6      -0.117  -1.181  -1.802  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.248   1.167  -1.315  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -0.989   0.883   0.245  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.367   0.437  -1.575  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.290   0.412   0.180  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6      -0.419   0.574   2.716  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       4.558   0.526   2.988  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       0.705   0.572   4.929  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.181   0.592   5.084  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.612  -1.982   1.056  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.688  -3.061   2.044  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.950  -4.430   1.398  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.263  -5.384   1.758  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.739  -2.752   3.125  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.322  -1.677   4.150  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.497  -1.435   5.104  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -1.106  -2.095   4.988  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.302  -1.233   1.088  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.712  -3.148   2.521  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.632  -2.416   2.635  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -2.947  -3.672   3.673  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -2.094  -0.746   3.637  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.353  -1.060   4.542  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -3.770  -2.364   5.605  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -3.222  -0.700   5.856  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -1.285  -3.061   5.457  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7      -0.217  -2.154   4.362  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -0.919  -1.351   5.762  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.879  -4.534   0.430  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -3.176  -5.792  -0.293  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.940  -6.427  -0.932  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.861  -7.649  -0.988  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -4.234  -5.580  -1.389  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -5.650  -5.363  -0.841  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -6.641  -4.855  -1.906  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -7.271  -5.959  -2.767  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -6.386  -6.423  -3.863  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -3.427  -3.700   0.224  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.550  -6.525   0.424  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -3.957  -4.718  -1.966  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -4.252  -6.467  -2.023  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -6.013  -6.296  -0.455  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -5.609  -4.626  -0.042  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -7.431  -4.329  -1.405  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -6.171  -4.105  -2.541  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -7.499  -6.796  -2.135  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -8.193  -5.560  -3.199  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -6.162  -5.656  -4.484  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -5.528  -6.807  -3.488  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -6.850  -7.145  -4.401  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -1.006  -5.612  -1.428  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.249  -6.089  -2.012  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.195  -6.700  -0.957  0.00  0.00           C  
+ATOM    161  O   ASP A   9       1.906  -7.655  -1.257  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       0.908  -4.913  -2.751  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       1.926  -5.376  -3.792  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9       3.079  -5.637  -3.380  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9       1.557  -5.417  -4.986  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -1.181  -4.614  -1.403  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.021  -6.868  -2.743  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       0.144  -4.345  -3.245  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       1.399  -4.255  -2.030  0.00  0.00           H  
+ATOM    170  N   GLY A  10       1.167  -6.180   0.281  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       2.093  -6.534   1.364  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.641  -5.339   2.162  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.484  -5.529   3.044  0.00  0.00           O  
+ATOM    174  H   GLY A  10       0.409  -5.539   0.486  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.576  -7.194   2.060  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.946  -7.076   0.955  0.00  0.00           H  
+ATOM    177  N   GLY A  11       2.182  -4.110   1.882  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.599  -2.906   2.599  0.00  0.00           C  
+ATOM    179  C   GLY A  11       4.124  -2.698   2.547  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.696  -2.700   1.453  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.532  -3.983   1.113  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       2.116  -2.047   2.140  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.249  -2.984   3.627  0.00  0.00           H  
+ATOM    184  N   PRO A  12       4.822  -2.540   3.693  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.282  -2.419   3.719  0.00  0.00           C  
+ATOM    186  C   PRO A  12       7.024  -3.621   3.110  0.00  0.00           C  
+ATOM    187  O   PRO A  12       8.145  -3.463   2.631  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.668  -2.252   5.194  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       5.381  -1.788   5.872  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       4.292  -2.472   5.049  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.564  -1.518   3.171  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       7.000  -3.185   5.608  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       7.469  -1.522   5.318  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       5.348  -2.107   6.896  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       5.287  -0.705   5.777  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       4.098  -3.457   5.427  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.371  -1.895   5.104  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.411  -4.816   3.098  0.00  0.00           N  
+ATOM    199  CA  SER A  13       7.038  -6.057   2.614  0.00  0.00           C  
+ATOM    200  C   SER A  13       7.028  -6.197   1.080  0.00  0.00           C  
+ATOM    201  O   SER A  13       7.416  -7.241   0.562  0.00  0.00           O  
+ATOM    202  CB  SER A  13       6.390  -7.277   3.283  0.00  0.00           C  
+ATOM    203  OG  SER A  13       6.567  -7.211   4.686  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.434  -4.862   3.375  0.00  0.00           H  
+ATOM    205  HA  SER A  13       8.085  -6.051   2.913  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       5.341  -7.291   3.057  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       6.867  -8.188   2.919  0.00  0.00           H  
+ATOM    208  HG  SER A  13       6.098  -6.440   5.015  0.00  0.00           H  
+ATOM    209  N   SER A  14       6.620  -5.147   0.358  0.00  0.00           N  
+ATOM    210  CA  SER A  14       6.465  -5.116  -1.104  0.00  0.00           C  
+ATOM    211  C   SER A  14       7.520  -4.277  -1.839  0.00  0.00           C  
+ATOM    212  O   SER A  14       7.383  -4.035  -3.039  0.00  0.00           O  
+ATOM    213  CB  SER A  14       5.072  -4.582  -1.431  0.00  0.00           C  
+ATOM    214  OG  SER A  14       4.112  -5.580  -1.231  0.00  0.00           O  
+ATOM    215  H   SER A  14       6.276  -4.349   0.876  0.00  0.00           H  
+ATOM    216  HA  SER A  14       6.531  -6.130  -1.502  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       4.854  -3.747  -0.793  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       5.022  -4.287  -2.477  0.00  0.00           H  
+ATOM    219  HG  SER A  14       3.651  -5.690  -2.148  0.00  0.00           H  
+ATOM    220  N   GLY A  15       8.549  -3.780  -1.139  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       9.587  -2.933  -1.741  0.00  0.00           C  
+ATOM    222  C   GLY A  15       9.096  -1.536  -2.151  0.00  0.00           C  
+ATOM    223  O   GLY A  15       9.726  -0.894  -2.987  0.00  0.00           O  
+ATOM    224  H   GLY A  15       8.618  -4.033  -0.161  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15      10.410  -2.813  -1.039  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15       9.975  -3.426  -2.634  0.00  0.00           H  
+ATOM    227  N   ARG A  16       7.969  -1.073  -1.587  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       7.285   0.177  -1.944  0.00  0.00           C  
+ATOM    229  C   ARG A  16       6.807   0.935  -0.691  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.125   0.336   0.145  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       6.131  -0.110  -2.930  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       5.136  -1.187  -2.454  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       3.995  -1.438  -3.443  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       4.473  -2.075  -4.685  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       4.016  -1.881  -5.916  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       3.041  -1.038  -6.174  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       4.543  -2.530  -6.926  0.00  0.00           N  
+ATOM    238  H   ARG A  16       7.539  -1.660  -0.885  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       8.004   0.797  -2.475  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       5.588   0.802  -3.085  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       6.569  -0.435  -3.874  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       5.671  -2.106  -2.312  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       4.696  -0.891  -1.507  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       3.270  -2.080  -2.981  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       3.510  -0.485  -3.654  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       5.199  -2.769  -4.574  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       2.612  -0.568  -5.400  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       2.697  -0.911  -7.106  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       5.261  -3.213  -6.759  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       4.184  -2.398  -7.852  0.00  0.00           H  
+ATOM    251  N   PRO A  17       7.131   2.235  -0.537  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.706   3.032   0.616  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.183   3.290   0.607  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.540   3.099  -0.429  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.514   4.332   0.509  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.726   4.499  -0.992  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       7.879   3.059  -1.478  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       6.972   2.511   1.537  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       6.963   5.160   0.913  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.479   4.197   1.000  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       6.880   4.973  -1.451  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.611   5.095  -1.213  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       7.476   2.955  -2.467  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       8.931   2.771  -1.454  0.00  0.00           H  
+ATOM    265  N   PRO A  18       4.594   3.738   1.736  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       3.165   4.041   1.816  0.00  0.00           C  
+ATOM    267  C   PRO A  18       2.783   5.192   0.871  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.492   6.199   0.824  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       2.894   4.397   3.281  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       4.254   4.847   3.808  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       5.233   3.978   3.023  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       2.603   3.146   1.565  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       2.175   5.190   3.354  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       2.571   3.506   3.818  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       4.419   5.889   3.610  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       4.347   4.691   4.883  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       6.166   4.491   2.889  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       5.375   3.027   3.537  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.669   5.075   0.121  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       1.193   6.145  -0.742  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.412   7.189   0.066  0.00  0.00           C  
+ATOM    282  O   PRO A  19      -0.366   6.839   0.959  0.00  0.00           O  
+ATOM    283  CB  PRO A  19       0.286   5.445  -1.758  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -0.334   4.311  -0.945  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       0.787   3.922   0.021  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       2.027   6.623  -1.257  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -0.469   6.113  -2.125  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19       0.899   5.024  -2.558  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -1.202   4.649  -0.412  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -0.632   3.479  -1.581  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.379   3.683   0.984  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       1.349   3.085  -0.391  0.00  0.00           H  
+ATOM    293  N   SER A  20       0.545   8.452  -0.361  0.00  0.00           N  
+ATOM    294  CA  SER A  20      -0.267   9.613   0.032  0.00  0.00           C  
+ATOM    295  C   SER A  20       0.099  10.270   1.361  0.00  0.00           C  
+ATOM    296  O   SER A  20       1.001   9.777   2.071  0.00  0.00           O  
+ATOM    297  CB  SER A  20      -1.745   9.233   0.059  0.00  0.00           C  
+ATOM    298  OG  SER A  20      -2.498  10.392  -0.203  0.00  0.00           O  
+ATOM    299  OXT SER A  20      -0.596  11.284   1.612  0.00  0.00           O  
+ATOM    300  H   SER A  20       1.265   8.618  -1.047  0.00  0.00           H  
+ATOM    301  HA  SER A  20      -0.121  10.385  -0.723  0.00  0.00           H  
+ATOM    302 1HB  SER A  20      -1.944   8.492  -0.691  0.00  0.00           H  
+ATOM    303 2HB  SER A  20      -1.994   8.859   1.055  0.00  0.00           H  
+ATOM    304  HG  SER A  20      -2.028  11.083   0.314  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MODEL       20                                                                  
+ATOM      1  N   ASN A   1      -8.559   6.374  -1.226  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -7.539   6.170  -0.168  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -6.191   5.649  -0.655  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -5.194   6.053  -0.072  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -8.062   5.285   0.966  0.00  0.00           C  
+ATOM      6  CG  ASN A   1      -8.992   6.102   1.840  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1     -10.159   6.243   1.517  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1      -8.488   6.730   2.886  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -8.207   6.992  -1.945  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -8.827   5.491  -1.639  0.00  0.00           H  
+ATOM     11 3H   ASN A   1      -9.389   6.786  -0.814  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -7.316   7.145   0.269  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -8.596   4.450   0.554  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -7.238   4.906   1.572  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1      -7.518   6.672   3.157  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1      -9.151   7.262   3.426  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -6.126   4.735  -1.642  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -4.891   4.125  -2.180  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -4.153   3.176  -1.204  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -3.597   2.164  -1.636  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -3.962   5.228  -2.759  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -3.563   5.018  -4.237  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -3.974   6.221  -5.092  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -2.055   4.808  -4.389  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -6.972   4.387  -2.062  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -5.209   3.487  -3.002  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -4.470   6.170  -2.679  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -3.068   5.296  -2.140  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -4.066   4.139  -4.638  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -5.024   6.461  -4.923  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -3.363   7.091  -4.843  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -3.839   5.983  -6.147  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -1.524   5.712  -4.089  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -1.743   3.967  -3.772  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -1.820   4.596  -5.432  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -4.202   3.452   0.106  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.575   2.669   1.174  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -4.020   1.200   1.203  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.195   0.322   1.447  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -3.843   3.340   2.530  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -2.673   3.212   3.480  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -1.689   4.217   3.496  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -2.543   2.088   4.320  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -0.574   4.112   4.346  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -1.427   1.974   5.172  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -0.438   2.983   5.184  0.00  0.00           C  
+ATOM     47  OH  TYR A   3       0.646   2.858   5.993  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -4.568   4.369   0.345  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.498   2.677   1.000  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -4.041   4.382   2.366  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -4.737   2.911   2.988  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -1.794   5.082   2.856  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -3.296   1.314   4.305  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3       0.166   4.899   4.359  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -1.307   1.120   5.821  0.00  0.00           H  
+ATOM     56  HH  TYR A   3       1.278   3.565   5.851  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.303   0.928   0.911  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.843  -0.436   0.816  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -5.054  -1.237  -0.220  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -4.584  -2.327   0.084  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.357  -0.449   0.483  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.184   0.429   1.452  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -7.909  -1.886   0.515  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -8.655   1.719   0.779  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -5.915   1.709   0.742  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.704  -0.925   1.782  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.493  -0.077  -0.536  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -9.042  -0.126   1.779  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -7.595   0.676   2.336  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.390  -2.519  -0.204  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -7.795  -2.311   1.514  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -8.968  -1.881   0.251  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -7.807   2.246   0.343  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4      -9.375   1.482  -0.007  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4      -9.141   2.352   1.521  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -4.882  -0.682  -1.427  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -4.187  -1.318  -2.543  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.715  -1.599  -2.195  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -2.236  -2.714  -2.401  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -4.359  -0.428  -3.793  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -4.481  -1.221  -5.109  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -3.302  -1.006  -6.054  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -2.144  -1.029  -5.666  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -3.557  -0.777  -7.329  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -5.224   0.258  -1.562  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.671  -2.279  -2.721  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -5.247   0.161  -3.669  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -3.541   0.293  -3.855  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -4.542  -2.266  -4.873  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -5.394  -0.897  -5.613  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -4.491  -0.741  -7.700  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -2.737  -0.694  -7.906  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -2.029  -0.624  -1.578  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.665  -0.788  -1.058  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.556  -1.893   0.011  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.331  -2.745  -0.077  0.00  0.00           O  
+ATOM     97  CB  TRP A   6      -0.159   0.559  -0.523  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.225   0.523   0.051  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.372   0.435  -0.663  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.630   0.513   1.454  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.451   0.386   0.196  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       3.054   0.444   1.511  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       0.945   0.537   2.688  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.767   0.433   2.717  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.648   0.497   3.907  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       3.054   0.465   3.925  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.509   0.259  -1.436  0.00  0.00           H  
+ATOM    108  HA  TRP A   6      -0.018  -1.090  -1.882  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.168   1.265  -1.331  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -0.840   0.912   0.252  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.432   0.386  -1.739  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.433   0.309  -0.087  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6      -0.135   0.584   2.691  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       4.847   0.386   2.702  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       1.107   0.502   4.843  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.581   0.457   4.869  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.463  -1.916   0.999  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.525  -3.000   1.984  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.822  -4.357   1.333  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.178  -5.338   1.700  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.557  -2.691   3.086  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.097  -1.666   4.139  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.252  -1.407   5.113  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -0.893  -2.152   4.958  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.157  -1.171   1.046  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.541  -3.101   2.440  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.443  -2.310   2.615  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -2.794  -3.620   3.606  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -1.835  -0.730   3.648  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.113  -1.019   4.569  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -3.533  -2.334   5.614  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -2.951  -0.680   5.866  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -1.114  -3.120   5.409  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7      -0.012  -2.241   4.326  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -0.668  -1.436   5.747  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.738  -4.419   0.353  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -3.104  -5.647  -0.376  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.891  -6.322  -1.027  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.817  -7.547  -1.040  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -4.205  -5.340  -1.415  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -5.335  -6.380  -1.451  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -4.972  -7.663  -2.207  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -6.125  -8.664  -2.114  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -5.771  -9.943  -2.773  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -3.250  -3.563   0.145  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.490  -6.354   0.358  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -4.633  -4.384  -1.181  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -3.770  -5.224  -2.411  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -5.586  -6.642  -0.441  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -6.197  -5.928  -1.944  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -4.786  -7.429  -3.237  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -4.085  -8.111  -1.765  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -6.345  -8.851  -1.081  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -7.012  -8.228  -2.581  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -5.589  -9.789  -3.756  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -4.937 -10.327  -2.348  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -6.525 -10.610  -2.677  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -0.939  -5.531  -1.526  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.321  -6.020  -2.093  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.283  -6.607  -1.037  0.00  0.00           C  
+ATOM    161  O   ASP A   9       2.139  -7.419  -1.377  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       0.989  -4.858  -2.850  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       1.796  -5.335  -4.057  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9       3.019  -5.073  -4.070  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9       1.163  -5.904  -4.975  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -1.118  -4.533  -1.538  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.090  -6.813  -2.809  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       0.226  -4.185  -3.190  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       1.629  -4.297  -2.165  0.00  0.00           H  
+ATOM    170  N   GLY A  10       1.133  -6.217   0.240  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       2.010  -6.592   1.355  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.573  -5.411   2.161  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.398  -5.625   3.054  0.00  0.00           O  
+ATOM    174  H   GLY A  10       0.303  -5.675   0.461  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.445  -7.224   2.039  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.855  -7.173   0.983  0.00  0.00           H  
+ATOM    177  N   GLY A  11       2.155  -4.169   1.875  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.637  -2.966   2.554  0.00  0.00           C  
+ATOM    179  C   GLY A  11       4.173  -2.844   2.510  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.743  -2.864   1.419  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.499  -4.036   1.112  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       2.212  -2.097   2.057  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.276  -2.984   3.579  0.00  0.00           H  
+ATOM    184  N   PRO A  12       4.876  -2.729   3.659  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.341  -2.693   3.687  0.00  0.00           C  
+ATOM    186  C   PRO A  12       7.005  -3.929   3.062  0.00  0.00           C  
+ATOM    187  O   PRO A  12       8.095  -3.815   2.504  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.736  -2.568   5.165  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       5.479  -2.037   5.847  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       4.350  -2.640   5.013  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.678  -1.805   3.152  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       7.012  -3.524   5.567  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       7.579  -1.889   5.296  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       5.424  -2.369   6.866  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       5.453  -0.949   5.767  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       4.091  -3.614   5.380  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.468  -2.003   5.070  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.350  -5.101   3.114  0.00  0.00           N  
+ATOM    199  CA  SER A  13       6.894  -6.348   2.558  0.00  0.00           C  
+ATOM    200  C   SER A  13       7.064  -6.302   1.037  0.00  0.00           C  
+ATOM    201  O   SER A  13       7.806  -7.118   0.493  0.00  0.00           O  
+ATOM    202  CB  SER A  13       5.994  -7.536   2.906  0.00  0.00           C  
+ATOM    203  OG  SER A  13       6.670  -8.733   2.580  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.406  -5.120   3.489  0.00  0.00           H  
+ATOM    205  HA  SER A  13       7.875  -6.522   3.002  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       5.770  -7.523   3.955  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       5.068  -7.474   2.335  0.00  0.00           H  
+ATOM    208  HG  SER A  13       7.095  -8.611   1.716  0.00  0.00           H  
+ATOM    209  N   SER A  14       6.380  -5.370   0.366  0.00  0.00           N  
+ATOM    210  CA  SER A  14       6.436  -5.119  -1.073  0.00  0.00           C  
+ATOM    211  C   SER A  14       7.612  -4.213  -1.472  0.00  0.00           C  
+ATOM    212  O   SER A  14       7.787  -3.922  -2.655  0.00  0.00           O  
+ATOM    213  CB  SER A  14       5.135  -4.433  -1.522  0.00  0.00           C  
+ATOM    214  OG  SER A  14       4.021  -4.846  -0.754  0.00  0.00           O  
+ATOM    215  H   SER A  14       5.700  -4.806   0.866  0.00  0.00           H  
+ATOM    216  HA  SER A  14       6.525  -6.070  -1.599  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       5.251  -3.371  -1.420  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       4.963  -4.657  -2.575  0.00  0.00           H  
+ATOM    219  HG  SER A  14       3.267  -4.316  -1.024  0.00  0.00           H  
+ATOM    220  N   GLY A  15       8.377  -3.685  -0.506  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       9.506  -2.771  -0.715  0.00  0.00           C  
+ATOM    222  C   GLY A  15       9.108  -1.335  -1.091  0.00  0.00           C  
+ATOM    223  O   GLY A  15       9.766  -0.389  -0.660  0.00  0.00           O  
+ATOM    224  H   GLY A  15       8.157  -3.928   0.457  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15      10.096  -2.732   0.199  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15      10.140  -3.166  -1.510  0.00  0.00           H  
+ATOM    227  N   ARG A  16       8.034  -1.153  -1.871  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       7.469   0.154  -2.234  0.00  0.00           C  
+ATOM    229  C   ARG A  16       6.973   0.913  -0.978  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.211   0.332  -0.200  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       6.320  -0.061  -3.236  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       5.701   1.259  -3.728  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       4.282   1.081  -4.280  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       3.436   2.223  -3.888  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       2.113   2.270  -3.848  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       1.365   1.261  -4.236  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       1.519   3.348  -3.396  0.00  0.00           N  
+ATOM    238  H   ARG A  16       7.609  -2.003  -2.232  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       8.260   0.723  -2.719  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       6.701  -0.598  -4.084  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       5.552  -0.663  -2.744  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       5.665   1.948  -2.906  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       6.342   1.711  -4.487  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       4.323   1.021  -5.351  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       3.851   0.165  -3.875  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       3.920   3.015  -3.494  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       1.821   0.446  -4.608  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       0.362   1.295  -4.201  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       2.072   4.122  -3.070  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       0.518   3.399  -3.384  0.00  0.00           H  
+ATOM    251  N   PRO A  17       7.293   2.215  -0.808  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.771   3.037   0.288  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.246   3.279   0.193  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.657   3.102  -0.882  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.554   4.355   0.201  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.898   4.468  -1.280  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       8.151   3.015  -1.674  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       6.993   2.548   1.239  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       6.949   5.182   0.518  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.473   4.272   0.782  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       7.081   4.884  -1.837  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.774   5.093  -1.450  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       7.895   2.857  -2.704  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       9.194   2.757  -1.486  0.00  0.00           H  
+ATOM    265  N   PRO A  18       4.597   3.714   1.294  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       3.162   3.983   1.317  0.00  0.00           C  
+ATOM    267  C   PRO A  18       2.768   5.182   0.431  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.608   6.024   0.114  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       2.811   4.228   2.790  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       4.117   4.740   3.389  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       5.176   3.963   2.610  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       2.635   3.096   0.970  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       2.034   4.962   2.882  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       2.539   3.285   3.264  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       4.224   5.797   3.237  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       4.178   4.547   4.461  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       6.074   4.543   2.520  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       5.373   3.011   3.105  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.485   5.278   0.026  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       0.982   6.372  -0.808  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.682   7.673  -0.045  0.00  0.00           C  
+ATOM    282  O   PRO A  19       0.626   8.727  -0.675  0.00  0.00           O  
+ATOM    283  CB  PRO A  19      -0.302   5.824  -1.426  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -0.825   4.851  -0.371  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       0.452   4.272   0.229  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       1.699   6.601  -1.599  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -1.008   6.612  -1.603  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19      -0.052   5.278  -2.333  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -1.402   5.364   0.374  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -1.440   4.069  -0.815  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.318   4.081   1.276  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       0.728   3.363  -0.309  0.00  0.00           H  
+ATOM    293  N   SER A  20       0.482   7.598   1.276  0.00  0.00           N  
+ATOM    294  CA  SER A  20       0.266   8.724   2.196  0.00  0.00           C  
+ATOM    295  C   SER A  20       1.329   8.752   3.288  0.00  0.00           C  
+ATOM    296  O   SER A  20       1.742   7.644   3.706  0.00  0.00           O  
+ATOM    297  CB  SER A  20      -1.141   8.690   2.805  0.00  0.00           C  
+ATOM    298  OG  SER A  20      -1.374   7.496   3.524  0.00  0.00           O  
+ATOM    299  OXT SER A  20       1.652   9.878   3.716  0.00  0.00           O  
+ATOM    300  H   SER A  20       0.581   6.704   1.731  0.00  0.00           H  
+ATOM    301  HA  SER A  20       0.368   9.660   1.645  0.00  0.00           H  
+ATOM    302 1HB  SER A  20      -1.251   9.524   3.471  0.00  0.00           H  
+ATOM    303 2HB  SER A  20      -1.884   8.784   2.011  0.00  0.00           H  
+ATOM    304  HG  SER A  20      -0.759   7.480   4.268  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MODEL       21                                                                  
+ATOM      1  N   ASN A   1      -8.205   5.399   0.404  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -8.421   4.425  -0.695  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -7.126   3.775  -1.163  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -6.987   2.568  -1.004  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -9.214   5.043  -1.856  0.00  0.00           C  
+ATOM      6  CG  ASN A   1     -10.664   5.161  -1.424  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1     -10.997   6.047  -0.655  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1     -11.516   4.226  -1.803  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -7.624   4.992   1.125  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -7.759   6.235   0.050  0.00  0.00           H  
+ATOM     11 3H   ASN A   1      -9.098   5.664   0.802  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -9.021   3.603  -0.300  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -8.823   6.015  -2.087  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -9.147   4.412  -2.743  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1     -11.263   3.457  -2.402  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1     -12.463   4.349  -1.476  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -6.172   4.549  -1.692  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -4.889   4.051  -2.203  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -4.114   3.184  -1.190  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -3.509   2.181  -1.570  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -4.073   5.277  -2.655  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -4.033   5.475  -4.183  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -4.073   6.965  -4.529  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -2.762   4.845  -4.764  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -6.330   5.538  -1.816  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -5.081   3.408  -3.065  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -4.507   6.153  -2.213  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -3.055   5.173  -2.305  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -4.900   4.998  -4.643  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -5.100   7.324  -4.467  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -3.450   7.536  -3.839  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -3.711   7.128  -5.545  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -1.884   5.386  -4.413  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -2.688   3.801  -4.461  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -2.792   4.898  -5.853  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -4.187   3.525   0.103  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.556   2.775   1.192  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -4.000   1.305   1.250  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.195   0.429   1.563  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -3.840   3.474   2.532  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -2.641   3.483   3.456  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -1.834   4.634   3.549  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -2.318   2.335   4.203  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -0.712   4.643   4.398  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -1.190   2.334   5.043  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -0.385   3.488   5.143  0.00  0.00           C  
+ATOM     47  OH  TYR A   3       0.689   3.483   5.975  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -4.659   4.384   0.331  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.477   2.787   1.022  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -4.128   4.489   2.335  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -4.675   2.981   3.036  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -2.071   5.516   2.968  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -2.934   1.451   4.126  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3      -0.096   5.527   4.474  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -0.931   1.461   5.624  0.00  0.00           H  
+ATOM     56  HH  TYR A   3       0.536   4.026   6.750  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.268   1.027   0.907  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.809  -0.333   0.842  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -5.065  -1.132  -0.228  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -4.619  -2.244   0.044  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.333  -0.322   0.572  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.130   0.602   1.523  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -7.912  -1.748   0.626  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -7.837   0.419   3.019  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -5.853   1.783   0.573  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.628  -0.825   1.798  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.498   0.045  -0.442  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -7.904   1.618   1.263  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -9.195   0.439   1.352  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.438  -2.382  -0.123  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -7.755  -2.190   1.610  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -8.983  -1.721   0.418  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -7.575  -0.614   3.246  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4      -7.012   1.067   3.316  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4      -8.722   0.689   3.595  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -4.894  -0.554  -1.425  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -4.180  -1.182  -2.538  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.711  -1.453  -2.172  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -2.211  -2.547  -2.418  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -4.321  -0.301  -3.794  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -4.173  -1.098  -5.104  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -2.956  -0.675  -5.920  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -1.933  -1.333  -5.943  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -3.020   0.437  -6.629  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -5.218   0.396  -1.539  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.656  -2.143  -2.729  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -5.289   0.161  -3.782  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -3.593   0.512  -3.762  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -4.079  -2.139  -4.863  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -5.066  -0.948  -5.712  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -3.834   1.023  -6.661  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -2.179   0.616  -7.149  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -2.050  -0.491  -1.510  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.682  -0.649  -1.004  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.552  -1.777   0.033  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.343  -2.619  -0.074  0.00  0.00           O  
+ATOM     97  CB  TRP A   6      -0.195   0.683  -0.426  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.199   0.640   0.118  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.328   0.641  -0.626  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.638   0.542   1.510  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.424   0.533   0.208  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       3.060   0.471   1.527  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       0.987   0.512   2.761  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.807   0.373   2.709  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.723   0.410   3.959  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       3.128   0.343   3.936  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.536   0.387  -1.350  0.00  0.00           H  
+ATOM    108  HA  TRP A   6      -0.035  -0.916  -1.840  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.231   1.421  -1.204  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -0.865   0.995   0.375  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.362   0.708  -1.706  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.401   0.535  -0.078  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6      -0.088   0.583   2.787  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       4.885   0.322   2.660  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       1.210   0.395   4.909  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.683   0.276   4.862  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.451  -1.826   1.027  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.482  -2.920   2.000  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.770  -4.274   1.337  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.172  -5.271   1.735  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.494  -2.616   3.120  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.022  -1.536   4.111  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.153  -1.196   5.086  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -0.804  -1.981   4.934  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.149  -1.086   1.092  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.489  -3.014   2.435  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.409  -2.283   2.668  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -2.686  -3.532   3.681  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -1.764  -0.633   3.565  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.027  -0.854   4.530  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -3.418  -2.076   5.672  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -2.833  -0.402   5.761  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -1.025  -2.912   5.456  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7       0.060  -2.128   4.287  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -0.552  -1.214   5.664  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.622  -4.312   0.302  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -2.964  -5.533  -0.446  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.748  -6.215  -1.087  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.680  -7.440  -1.095  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -4.040  -5.202  -1.495  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -5.019  -6.365  -1.703  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -6.311  -5.884  -2.382  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -7.429  -6.917  -2.201  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -8.063  -6.804  -0.863  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -3.107  -3.448   0.065  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.372  -6.243   0.275  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -4.590  -4.341  -1.167  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -3.577  -4.927  -2.444  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -4.554  -7.109  -2.321  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -5.268  -6.792  -0.732  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -6.615  -4.953  -1.943  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -6.116  -5.737  -3.446  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -8.176  -6.759  -2.955  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -6.998  -7.914  -2.334  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -7.353  -6.774  -0.143  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -8.612  -5.957  -0.808  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -8.670  -7.595  -0.691  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -0.774  -5.426  -1.557  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.530  -5.873  -2.078  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.485  -6.399  -0.981  0.00  0.00           C  
+ATOM    161  O   ASP A   9       2.573  -6.882  -1.301  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       1.212  -4.694  -2.814  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       1.583  -4.991  -4.272  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9       2.782  -4.809  -4.612  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9       0.662  -5.343  -5.038  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -0.962  -4.430  -1.556  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.358  -6.689  -2.785  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       0.541  -3.857  -2.802  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       2.121  -4.414  -2.279  0.00  0.00           H  
+ATOM    170  N   GLY A  10       1.125  -6.270   0.304  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       1.936  -6.685   1.451  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.565  -5.530   2.237  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.424  -5.778   3.084  0.00  0.00           O  
+ATOM    174  H   GLY A  10       0.211  -5.877   0.508  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.298  -7.243   2.136  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.735  -7.352   1.125  0.00  0.00           H  
+ATOM    177  N   GLY A  11       2.184  -4.272   1.973  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.732  -3.116   2.683  0.00  0.00           C  
+ATOM    179  C   GLY A  11       4.265  -3.035   2.545  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.771  -3.134   1.422  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.507  -4.103   1.237  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       2.296  -2.204   2.279  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.443  -3.201   3.729  0.00  0.00           H  
+ATOM    184  N   PRO A  12       5.029  -2.881   3.651  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.491  -2.829   3.600  0.00  0.00           C  
+ATOM    186  C   PRO A  12       7.138  -4.072   2.966  0.00  0.00           C  
+ATOM    187  O   PRO A  12       8.211  -3.949   2.375  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.970  -2.642   5.048  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       5.734  -2.162   5.806  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       4.578  -2.795   5.033  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.783  -1.953   3.019  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       7.325  -3.570   5.452  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       7.775  -1.907   5.107  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       5.750  -2.505   6.823  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       5.663  -1.077   5.744  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       4.362  -3.773   5.418  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.684  -2.179   5.140  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.492  -5.249   3.030  0.00  0.00           N  
+ATOM    199  CA  SER A  13       7.032  -6.510   2.502  0.00  0.00           C  
+ATOM    200  C   SER A  13       7.252  -6.475   0.991  0.00  0.00           C  
+ATOM    201  O   SER A  13       8.198  -7.085   0.501  0.00  0.00           O  
+ATOM    202  CB  SER A  13       6.085  -7.675   2.806  0.00  0.00           C  
+ATOM    203  OG  SER A  13       5.872  -7.807   4.197  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.578  -5.299   3.472  0.00  0.00           H  
+ATOM    205  HA  SER A  13       7.994  -6.707   2.977  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       5.144  -7.497   2.322  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       6.513  -8.600   2.417  0.00  0.00           H  
+ATOM    208  HG  SER A  13       6.506  -8.436   4.551  0.00  0.00           H  
+ATOM    209  N   SER A  14       6.398  -5.751   0.257  0.00  0.00           N  
+ATOM    210  CA  SER A  14       6.540  -5.569  -1.189  0.00  0.00           C  
+ATOM    211  C   SER A  14       7.723  -4.673  -1.582  0.00  0.00           C  
+ATOM    212  O   SER A  14       8.110  -4.660  -2.750  0.00  0.00           O  
+ATOM    213  CB  SER A  14       5.248  -4.986  -1.771  0.00  0.00           C  
+ATOM    214  OG  SER A  14       4.583  -5.979  -2.515  0.00  0.00           O  
+ATOM    215  H   SER A  14       5.654  -5.262   0.743  0.00  0.00           H  
+ATOM    216  HA  SER A  14       6.710  -6.543  -1.651  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       4.614  -4.652  -0.972  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       5.507  -4.180  -2.451  0.00  0.00           H  
+ATOM    219  HG  SER A  14       3.809  -6.342  -2.003  0.00  0.00           H  
+ATOM    220  N   GLY A  15       8.298  -3.917  -0.635  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       9.467  -3.068  -0.877  0.00  0.00           C  
+ATOM    222  C   GLY A  15       9.130  -1.720  -1.522  0.00  0.00           C  
+ATOM    223  O   GLY A  15       9.898  -1.231  -2.349  0.00  0.00           O  
+ATOM    224  H   GLY A  15       7.970  -4.008   0.322  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15       9.963  -2.879   0.074  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15      10.166  -3.596  -1.527  0.00  0.00           H  
+ATOM    227  N   ARG A  16       7.986  -1.120  -1.164  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       7.493   0.155  -1.712  0.00  0.00           C  
+ATOM    229  C   ARG A  16       6.893   1.052  -0.617  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.228   0.526   0.276  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       6.486  -0.108  -2.852  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       5.371  -1.121  -2.515  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       4.390  -1.352  -3.682  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       4.505  -2.695  -4.282  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       5.417  -3.159  -5.117  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       6.381  -2.403  -5.595  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       5.336  -4.410  -5.482  0.00  0.00           N  
+ATOM    238  H   ARG A  16       7.428  -1.572  -0.451  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       8.348   0.677  -2.139  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       6.022   0.825  -3.109  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       7.046  -0.475  -3.709  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       5.827  -2.059  -2.261  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       4.805  -0.751  -1.666  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       3.389  -1.227  -3.316  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       4.531  -0.590  -4.449  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       3.776  -3.394  -4.104  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       6.393  -1.440  -5.320  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       7.062  -2.775  -6.231  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       4.489  -4.903  -5.147  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       6.023  -4.858  -6.055  0.00  0.00           H  
+ATOM    251  N   PRO A  17       7.075   2.387  -0.684  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.538   3.322   0.308  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.011   3.481   0.186  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.452   3.191  -0.874  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.258   4.647   0.031  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.545   4.595  -1.468  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       7.782   3.109  -1.733  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       6.789   2.972   1.310  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       6.629   5.482   0.272  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.199   4.671   0.582  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       6.707   4.957  -2.032  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.418   5.192  -1.732  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       7.395   2.837  -2.696  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       8.849   2.890  -1.670  0.00  0.00           H  
+ATOM    265  N   PRO A  18       4.330   3.962   1.245  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       2.890   4.179   1.221  0.00  0.00           C  
+ATOM    267  C   PRO A  18       2.501   5.385   0.341  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.270   6.342   0.211  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       2.483   4.404   2.680  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       3.743   4.989   3.313  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       4.873   4.294   2.554  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       2.410   3.277   0.849  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       1.664   5.093   2.748  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       2.248   3.446   3.144  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       3.784   6.052   3.175  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       3.788   4.783   4.383  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       5.715   4.952   2.453  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       5.153   3.376   3.072  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.280   5.377  -0.223  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       0.762   6.450  -1.060  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.382   7.663  -0.198  0.00  0.00           C  
+ATOM    282  O   PRO A  19      -0.624   7.631   0.512  0.00  0.00           O  
+ATOM    283  CB  PRO A  19      -0.435   5.840  -1.790  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -0.951   4.783  -0.812  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       0.299   4.311  -0.088  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       1.508   6.751  -1.796  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -1.185   6.582  -1.983  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19      -0.088   5.348  -2.699  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -1.652   5.211  -0.122  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -1.423   3.952  -1.333  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.083   4.134   0.948  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       0.683   3.414  -0.572  0.00  0.00           H  
+ATOM    293  N   SER A  20       1.217   8.708  -0.251  0.00  0.00           N  
+ATOM    294  CA  SER A  20       0.998  10.004   0.410  0.00  0.00           C  
+ATOM    295  C   SER A  20       0.315  10.992  -0.534  0.00  0.00           C  
+ATOM    296  O   SER A  20       0.887  11.215  -1.624  0.00  0.00           O  
+ATOM    297  CB  SER A  20       2.322  10.595   0.894  0.00  0.00           C  
+ATOM    298  OG  SER A  20       2.966   9.680   1.760  0.00  0.00           O  
+ATOM    299  OXT SER A  20      -0.750  11.510  -0.139  0.00  0.00           O  
+ATOM    300  H   SER A  20       1.987   8.656  -0.900  0.00  0.00           H  
+ATOM    301  HA  SER A  20       0.337   9.875   1.267  0.00  0.00           H  
+ATOM    302 1HB  SER A  20       2.954  10.792   0.050  0.00  0.00           H  
+ATOM    303 2HB  SER A  20       2.127  11.529   1.425  0.00  0.00           H  
+ATOM    304  HG  SER A  20       3.007   8.832   1.306  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MODEL       22                                                                  
+ATOM      1  N   ASN A   1      -7.147   6.420  -0.321  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -7.735   5.239  -1.002  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -6.654   4.233  -1.423  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -6.828   3.043  -1.189  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -8.631   5.670  -2.180  0.00  0.00           C  
+ATOM      6  CG  ASN A   1      -7.791   6.178  -3.342  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1      -6.938   7.030  -3.134  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1      -7.925   5.610  -4.527  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -6.444   6.132   0.344  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -6.730   7.032  -1.016  0.00  0.00           H  
+ATOM     11 3H   ASN A   1      -7.869   6.934   0.166  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -8.365   4.712  -0.285  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -9.211   4.828  -2.507  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -9.301   6.470  -1.860  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1      -8.593   4.875  -4.704  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1      -7.334   5.964  -5.263  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -5.522   4.698  -1.980  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -4.409   3.863  -2.457  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -3.793   2.972  -1.363  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -3.233   1.920  -1.669  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -3.326   4.784  -3.046  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -3.749   5.553  -4.315  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -2.850   6.776  -4.507  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -3.680   4.665  -5.559  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -5.460   5.679  -2.226  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -4.775   3.199  -3.243  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -3.054   5.502  -2.296  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -2.440   4.192  -3.280  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -4.770   5.913  -4.203  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -2.889   7.409  -3.621  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -1.821   6.467  -4.687  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -3.206   7.360  -5.357  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -2.700   4.193  -5.633  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -4.449   3.893  -5.510  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -3.847   5.268  -6.452  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -3.931   3.366  -0.089  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.447   2.623   1.074  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -3.964   1.180   1.109  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.229   0.272   1.491  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -3.837   3.358   2.368  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -2.695   3.445   3.358  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -1.990   4.653   3.499  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -2.319   2.321   4.114  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -0.914   4.751   4.400  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -1.242   2.408   5.016  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -0.539   3.622   5.162  0.00  0.00           C  
+ATOM     47  OH  TYR A   3       0.485   3.702   6.054  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -4.371   4.256   0.070  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.359   2.584   1.015  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -4.150   4.353   2.117  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -4.678   2.850   2.844  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -2.289   5.504   2.906  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -2.858   1.392   4.001  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3      -0.364   5.678   4.516  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -0.942   1.554   5.604  0.00  0.00           H  
+ATOM     56  HH  TYR A   3       0.190   4.071   6.890  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.213   0.963   0.670  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.823  -0.366   0.587  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -5.035  -1.235  -0.401  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -4.639  -2.349  -0.066  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.315  -0.267   0.189  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.131   0.588   1.186  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -7.906  -1.688   0.098  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -9.426   1.134   0.567  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -5.742   1.753   0.322  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.754  -0.841   1.568  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.380   0.200  -0.796  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -8.384  -0.019   2.034  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -7.554   1.453   1.513  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.613  -2.155  -0.842  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -7.546  -2.302   0.925  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -8.995  -1.665   0.139  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -9.186   1.834  -0.233  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4     -10.035   0.325   0.163  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4     -10.000   1.657   1.332  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -4.770  -0.707  -1.602  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -4.004  -1.401  -2.634  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.557  -1.659  -2.193  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -2.034  -2.749  -2.416  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -4.064  -0.600  -3.951  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -4.101  -1.517  -5.182  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -5.437  -2.250  -5.294  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -6.433  -1.708  -5.744  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -5.519  -3.495  -4.863  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -5.062   0.244  -1.779  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.475  -2.372  -2.776  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -4.948   0.009  -3.946  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -3.195   0.059  -4.019  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -3.954  -0.923  -6.064  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -3.280  -2.234  -5.138  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -4.727  -3.993  -4.495  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -6.432  -3.902  -4.971  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -1.937  -0.681  -1.518  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.600  -0.811  -0.937  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.532  -1.917   0.130  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.363  -2.764   0.091  0.00  0.00           O  
+ATOM     97  CB  TRP A   6      -0.164   0.545  -0.369  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.216   0.547   0.205  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.366   0.594  -0.508  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.619   0.456   1.606  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.444   0.504   0.353  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       3.043   0.441   1.664  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       0.931   0.375   2.834  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.753   0.369   2.869  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.631   0.287   4.054  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       3.038   0.291   4.074  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.437   0.199  -1.406  0.00  0.00           H  
+ATOM    108  HA  TRP A   6       0.095  -1.089  -1.730  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.202   1.270  -1.159  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -0.861   0.845   0.413  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.421   0.666  -1.584  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.427   0.496   0.079  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6      -0.148   0.387   2.825  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       4.834   0.356   2.853  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       1.088   0.221   4.984  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.566   0.226   5.014  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.493  -1.950   1.062  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.591  -3.020   2.054  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.887  -4.379   1.416  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.332  -5.379   1.867  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.648  -2.680   3.119  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.204  -1.596   4.116  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.353  -1.276   5.075  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -0.992  -2.019   4.955  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.199  -1.215   1.063  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.619  -3.132   2.532  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.533  -2.337   2.619  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -2.884  -3.585   3.682  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -1.950  -0.690   3.572  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.247  -1.017   4.508  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -3.565  -2.140   5.705  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -3.079  -0.432   5.708  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -1.200  -2.960   5.466  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7      -0.115  -2.141   4.324  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -0.770  -1.251   5.695  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.704  -4.425   0.351  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -3.024  -5.667  -0.363  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.783  -6.379  -0.902  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.714  -7.603  -0.824  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -4.029  -5.384  -1.498  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -4.718  -6.666  -1.991  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -5.727  -7.192  -0.954  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -5.697  -8.722  -0.865  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -6.010  -9.184   0.509  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -3.166  -3.563   0.071  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.461  -6.347   0.365  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -4.778  -4.706  -1.137  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -3.501  -4.924  -2.335  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -5.236  -6.455  -2.907  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -3.961  -7.422  -2.206  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -5.484  -6.782   0.007  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -6.729  -6.861  -1.233  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -6.422  -9.127  -1.544  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -4.703  -9.081  -1.147  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -5.172  -9.166   1.076  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -6.699  -8.578   0.933  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -6.369 -10.130   0.493  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -0.814  -5.616  -1.411  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.466  -6.130  -1.902  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.395  -6.627  -0.772  0.00  0.00           C  
+ATOM    161  O   ASP A   9       2.377  -7.317  -1.041  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       1.145  -5.018  -2.722  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       2.033  -5.572  -3.840  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9       1.516  -5.670  -4.975  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9       3.217  -5.858  -3.563  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -0.985  -4.619  -1.475  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.267  -6.973  -2.567  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       0.385  -4.401  -3.160  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       1.730  -4.377  -2.062  0.00  0.00           H  
+ATOM    170  N   GLY A  10       1.124  -6.267   0.493  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       1.948  -6.626   1.656  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.533  -5.439   2.437  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.358  -5.653   3.329  0.00  0.00           O  
+ATOM    174  H   GLY A  10       0.279  -5.730   0.656  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.331  -7.206   2.341  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.781  -7.257   1.345  0.00  0.00           H  
+ATOM    177  N   GLY A  11       2.128  -4.200   2.126  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.561  -2.998   2.829  0.00  0.00           C  
+ATOM    179  C   GLY A  11       4.092  -2.817   2.806  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.667  -2.692   1.724  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.538  -4.070   1.311  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       2.108  -2.134   2.348  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.187  -3.048   3.848  0.00  0.00           H  
+ATOM    184  N   PRO A  12       4.785  -2.805   3.967  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.246  -2.706   4.011  0.00  0.00           C  
+ATOM    186  C   PRO A  12       6.976  -3.836   3.263  0.00  0.00           C  
+ATOM    187  O   PRO A  12       8.113  -3.645   2.838  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.631  -2.710   5.496  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       5.341  -2.359   6.233  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       4.243  -2.888   5.316  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.540  -1.751   3.570  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       6.984  -3.679   5.793  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       7.415  -1.982   5.705  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       5.305  -2.841   7.191  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       5.252  -1.274   6.318  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       4.007  -3.905   5.563  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.346  -2.281   5.435  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.332  -4.997   3.071  0.00  0.00           N  
+ATOM    199  CA  SER A  13       6.911  -6.174   2.405  0.00  0.00           C  
+ATOM    200  C   SER A  13       6.618  -6.217   0.896  0.00  0.00           C  
+ATOM    201  O   SER A  13       6.579  -7.294   0.305  0.00  0.00           O  
+ATOM    202  CB  SER A  13       6.458  -7.466   3.098  0.00  0.00           C  
+ATOM    203  OG  SER A  13       6.899  -7.491   4.441  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.358  -5.057   3.358  0.00  0.00           H  
+ATOM    205  HA  SER A  13       7.997  -6.129   2.500  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       5.387  -7.520   3.078  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       6.893  -8.322   2.581  0.00  0.00           H  
+ATOM    208  HG  SER A  13       6.357  -6.887   4.951  0.00  0.00           H  
+ATOM    209  N   SER A  14       6.432  -5.052   0.265  0.00  0.00           N  
+ATOM    210  CA  SER A  14       6.076  -4.919  -1.157  0.00  0.00           C  
+ATOM    211  C   SER A  14       7.132  -4.174  -1.984  0.00  0.00           C  
+ATOM    212  O   SER A  14       6.929  -3.921  -3.169  0.00  0.00           O  
+ATOM    213  CB  SER A  14       4.715  -4.232  -1.266  0.00  0.00           C  
+ATOM    214  OG  SER A  14       3.775  -4.945  -0.496  0.00  0.00           O  
+ATOM    215  H   SER A  14       6.365  -4.227   0.848  0.00  0.00           H  
+ATOM    216  HA  SER A  14       5.970  -5.909  -1.604  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       4.790  -3.226  -0.900  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       4.396  -4.200  -2.306  0.00  0.00           H  
+ATOM    219  HG  SER A  14       3.597  -5.804  -0.924  0.00  0.00           H  
+ATOM    220  N   GLY A  15       8.259  -3.794  -1.363  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       9.337  -3.046  -2.017  0.00  0.00           C  
+ATOM    222  C   GLY A  15       8.945  -1.615  -2.403  0.00  0.00           C  
+ATOM    223  O   GLY A  15       9.471  -1.083  -3.379  0.00  0.00           O  
+ATOM    224  H   GLY A  15       8.370  -4.078  -0.400  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15      10.194  -2.991  -1.346  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15       9.646  -3.574  -2.921  0.00  0.00           H  
+ATOM    227  N   ARG A  16       8.005  -1.001  -1.666  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       7.468   0.335  -1.947  0.00  0.00           C  
+ATOM    229  C   ARG A  16       6.939   1.037  -0.683  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.297   0.382   0.141  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       6.363   0.241  -3.014  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       5.268  -0.802  -2.713  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       4.161  -0.846  -3.770  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       4.681  -1.237  -5.095  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       5.016  -0.436  -6.099  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       4.910   0.871  -6.014  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       5.479  -0.936  -7.220  0.00  0.00           N  
+ATOM    238  H   ARG A  16       7.638  -1.499  -0.867  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       8.282   0.927  -2.362  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       5.895   1.203  -3.097  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       6.844  -0.019  -3.959  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       5.727  -1.771  -2.660  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       4.810  -0.587  -1.750  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       3.418  -1.558  -3.465  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       3.662   0.123  -3.814  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       4.831  -2.228  -5.227  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       4.571   1.257  -5.151  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       5.171   1.470  -6.773  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       5.580  -1.932  -7.319  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       5.740  -0.329  -7.975  0.00  0.00           H  
+ATOM    251  N   PRO A  17       7.146   2.361  -0.541  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.642   3.137   0.592  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.117   3.361   0.511  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.532   3.158  -0.557  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.416   4.460   0.520  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.671   4.652  -0.972  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       7.829   3.228  -1.493  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       6.878   2.623   1.524  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       6.830   5.268   0.915  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.368   4.346   1.042  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       6.841   5.143  -1.443  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.569   5.244  -1.152  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       7.382   3.137  -2.464  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       8.886   2.963  -1.532  0.00  0.00           H  
+ATOM    265  N   PRO A  18       4.468   3.790   1.613  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       3.035   4.076   1.629  0.00  0.00           C  
+ATOM    267  C   PRO A  18       2.678   5.275   0.730  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.501   6.177   0.557  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       2.681   4.342   3.098  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       3.998   4.812   3.711  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       5.049   4.030   2.928  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       2.502   3.188   1.294  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       1.929   5.103   3.178  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       2.369   3.411   3.573  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       4.128   5.869   3.579  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       4.048   4.597   4.778  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       5.952   4.603   2.839  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       5.240   3.074   3.417  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.456   5.312   0.158  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       1.020   6.389  -0.730  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.573   7.658   0.014  0.00  0.00           C  
+ATOM    282  O   PRO A  19       0.781   8.756  -0.501  0.00  0.00           O  
+ATOM    283  CB  PRO A  19      -0.147   5.799  -1.525  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -0.739   4.750  -0.582  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       0.461   4.252   0.217  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       1.824   6.660  -1.417  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -0.871   6.555  -1.758  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19       0.235   5.311  -2.422  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -1.472   5.190   0.066  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -1.196   3.933  -1.136  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.178   4.064   1.235  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       0.863   3.356  -0.255  0.00  0.00           H  
+ATOM    293  N   SER A  20      -0.071   7.506   1.180  0.00  0.00           N  
+ATOM    294  CA  SER A  20      -0.495   8.598   2.070  0.00  0.00           C  
+ATOM    295  C   SER A  20       0.609   8.944   3.064  0.00  0.00           C  
+ATOM    296  O   SER A  20       0.894  10.155   3.181  0.00  0.00           O  
+ATOM    297  CB  SER A  20      -1.736   8.215   2.879  0.00  0.00           C  
+ATOM    298  OG  SER A  20      -2.830   7.879   2.044  0.00  0.00           O  
+ATOM    299  OXT SER A  20       1.084   7.996   3.730  0.00  0.00           O  
+ATOM    300  H   SER A  20      -0.157   6.569   1.538  0.00  0.00           H  
+ATOM    301  HA  SER A  20      -0.699   9.493   1.486  0.00  0.00           H  
+ATOM    302 1HB  SER A  20      -1.500   7.370   3.497  0.00  0.00           H  
+ATOM    303 2HB  SER A  20      -2.011   9.052   3.523  0.00  0.00           H  
+ATOM    304  HG  SER A  20      -3.169   8.700   1.678  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MODEL       23                                                                  
+ATOM      1  N   ASN A   1      -8.995   5.512  -1.807  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -8.139   5.500  -0.596  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -6.657   5.213  -0.847  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -5.857   5.704  -0.062  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -8.684   4.564   0.498  0.00  0.00           C  
+ATOM      6  CG  ASN A   1      -9.123   5.373   1.709  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1     -10.305   5.507   1.971  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1      -8.201   5.977   2.436  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -8.610   6.132  -2.507  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -9.086   4.582  -2.189  0.00  0.00           H  
+ATOM     11 3H   ASN A   1      -9.920   5.841  -1.561  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -8.157   6.511  -0.184  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -9.524   4.019   0.112  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -7.920   3.855   0.818  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1      -7.210   5.924   2.252  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1      -8.568   6.492   3.222  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -6.287   4.419  -1.870  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -4.918   3.992  -2.233  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -4.198   3.117  -1.189  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -3.649   2.074  -1.544  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -4.033   5.181  -2.661  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -4.577   5.992  -3.859  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -5.182   7.328  -3.410  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -3.464   6.283  -4.867  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -6.993   4.011  -2.461  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -5.014   3.355  -3.115  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -3.937   5.845  -1.824  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -3.061   4.766  -2.935  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -5.348   5.414  -4.371  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -6.031   7.162  -2.754  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -4.432   7.916  -2.879  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -5.517   7.893  -4.282  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -2.669   6.860  -4.395  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -3.056   5.346  -5.245  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -3.867   6.848  -5.709  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -4.220   3.498   0.091  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.550   2.790   1.185  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -3.980   1.315   1.283  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.150   0.440   1.515  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -3.809   3.544   2.496  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -2.752   3.301   3.554  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -1.653   4.178   3.655  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -2.869   2.215   4.443  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -0.683   3.985   4.655  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -1.899   2.018   5.443  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -0.812   2.911   5.561  0.00  0.00           C  
+ATOM     47  OH  TYR A   3       0.085   2.742   6.568  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -4.660   4.395   0.286  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.478   2.809   0.991  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -3.840   4.595   2.283  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -4.790   3.270   2.890  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -1.555   5.018   2.982  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -3.710   1.538   4.369  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3       0.149   4.672   4.736  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -1.977   1.210   6.151  0.00  0.00           H  
+ATOM     56  HH  TYR A   3       0.563   3.552   6.750  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.264   1.030   1.024  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.827  -0.326   0.952  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -5.114  -1.151  -0.131  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -4.658  -2.257   0.147  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.356  -0.272   0.705  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.110   0.581   1.757  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -7.947  -1.695   0.687  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -9.451   1.106   1.228  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -5.870   1.816   0.855  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.652  -0.820   1.909  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.515   0.178  -0.278  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -8.294  -0.024   2.624  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -7.523   1.453   2.040  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.530  -2.276  -0.135  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -7.726  -2.202   1.628  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -9.028  -1.659   0.555  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -9.295   1.636   0.288  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4     -10.147   0.285   1.062  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4      -9.883   1.794   1.955  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -4.980  -0.613  -1.354  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -4.248  -1.254  -2.452  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.764  -1.451  -2.115  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -2.210  -2.510  -2.406  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -4.397  -0.444  -3.752  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -5.780  -0.585  -4.421  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -5.677  -1.049  -5.874  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -4.908  -0.532  -6.667  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -6.453  -2.034  -6.287  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -5.284   0.340  -1.486  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.665  -2.247  -2.623  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -4.235   0.592  -3.525  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -3.627  -0.786  -4.446  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -6.358  -1.301  -3.870  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -6.280   0.383  -4.410  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -7.135  -2.486  -5.703  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -6.309  -2.278  -7.253  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -2.122  -0.471  -1.467  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.752  -0.626  -0.970  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.626  -1.773   0.051  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.275  -2.606  -0.073  0.00  0.00           O  
+ATOM     97  CB  TRP A   6      -0.246   0.708  -0.409  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.122   0.638   0.187  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.283   0.580  -0.505  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.498   0.590   1.599  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.337   0.446   0.374  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       2.919   0.485   1.681  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       0.791   0.638   2.820  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.609   0.442   2.898  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.472   0.592   4.050  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       2.875   0.504   4.093  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.627   0.394  -1.292  0.00  0.00           H  
+ATOM    108  HA  TRP A   6      -0.116  -0.900  -1.810  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.230   1.425  -1.207  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -0.932   1.060   0.358  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.377   0.619  -1.579  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.319   0.364   0.099  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6      -0.286   0.722   2.803  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       4.686   0.366   2.903  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       0.916   0.637   4.976  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.385   0.485   5.046  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.546  -1.866   1.019  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.600  -2.993   1.954  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.891  -4.331   1.257  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.258  -5.322   1.617  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.629  -2.736   3.069  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.255  -1.624   4.066  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.410  -1.464   5.059  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -0.975  -1.930   4.852  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.238  -1.124   1.101  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.616  -3.103   2.408  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.559  -2.467   2.606  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -2.758  -3.662   3.632  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -2.117  -0.684   3.539  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.330  -1.232   4.522  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -3.546  -2.384   5.627  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -3.198  -0.653   5.753  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -1.059  -2.897   5.349  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7      -0.117  -1.940   4.182  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -0.809  -1.154   5.600  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.780  -4.375   0.246  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -3.068  -5.596  -0.534  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.816  -6.219  -1.151  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.740  -7.439  -1.237  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -4.081  -5.335  -1.662  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -5.498  -4.986  -1.175  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -6.576  -5.917  -1.747  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -6.443  -7.334  -1.176  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -7.563  -8.199  -1.611  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -3.304  -3.525   0.051  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.475  -6.350   0.141  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -3.719  -4.518  -2.256  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -4.124  -6.228  -2.289  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -5.519  -5.056  -0.105  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -5.730  -3.973  -1.499  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -7.544  -5.528  -1.496  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -6.493  -5.943  -2.836  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -5.519  -7.762  -1.515  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -6.423  -7.269  -0.084  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -8.442  -7.832  -1.266  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -7.603  -8.242  -2.621  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -7.442  -9.138  -1.253  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -0.849  -5.393  -1.556  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.436  -5.853  -2.083  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.332  -6.506  -1.009  0.00  0.00           C  
+ATOM    161  O   ASP A   9       2.223  -7.275  -1.345  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       1.145  -4.662  -2.744  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       2.097  -5.123  -3.846  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9       1.661  -5.116  -5.015  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9       3.259  -5.441  -3.507  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -1.027  -4.396  -1.508  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.243  -6.603  -2.852  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       0.408  -4.009  -3.170  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       1.699  -4.094  -1.991  0.00  0.00           H  
+ATOM    170  N   GLY A  10       1.085  -6.233   0.280  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       1.935  -6.630   1.406  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.538  -5.448   2.178  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.381  -5.658   3.052  0.00  0.00           O  
+ATOM    174  H   GLY A  10       0.224  -5.740   0.500  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.338  -7.217   2.103  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.755  -7.257   1.056  0.00  0.00           H  
+ATOM    177  N   GLY A  11       2.139  -4.205   1.865  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.660  -3.003   2.510  0.00  0.00           C  
+ATOM    179  C   GLY A  11       4.193  -2.919   2.402  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.722  -3.051   1.294  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.481  -4.078   1.104  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       2.230  -2.129   2.025  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.339  -3.009   3.550  0.00  0.00           H  
+ATOM    184  N   PRO A  12       4.936  -2.732   3.516  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.401  -2.697   3.498  0.00  0.00           C  
+ATOM    186  C   PRO A  12       7.057  -3.980   2.962  0.00  0.00           C  
+ATOM    187  O   PRO A  12       8.194  -3.921   2.498  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.843  -2.444   4.945  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       5.600  -1.887   5.633  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       4.459  -2.571   4.884  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.718  -1.858   2.877  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       7.157  -3.358   5.411  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       7.673  -1.736   4.990  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       5.587  -2.145   6.675  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       5.548  -0.809   5.478  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       4.243  -3.527   5.321  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.561  -1.958   4.940  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.364  -5.132   2.996  0.00  0.00           N  
+ATOM    199  CA  SER A  13       6.922  -6.427   2.577  0.00  0.00           C  
+ATOM    200  C   SER A  13       7.348  -6.452   1.106  0.00  0.00           C  
+ATOM    201  O   SER A  13       8.273  -7.185   0.760  0.00  0.00           O  
+ATOM    202  CB  SER A  13       5.902  -7.544   2.812  0.00  0.00           C  
+ATOM    203  OG  SER A  13       6.513  -8.805   2.628  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.404  -5.115   3.326  0.00  0.00           H  
+ATOM    205  HA  SER A  13       7.802  -6.636   3.185  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       5.525  -7.475   3.814  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       5.073  -7.436   2.110  0.00  0.00           H  
+ATOM    208  HG  SER A  13       6.978  -8.809   1.779  0.00  0.00           H  
+ATOM    209  N   SER A  14       6.688  -5.663   0.253  0.00  0.00           N  
+ATOM    210  CA  SER A  14       7.033  -5.491  -1.164  0.00  0.00           C  
+ATOM    211  C   SER A  14       8.036  -4.355  -1.407  0.00  0.00           C  
+ATOM    212  O   SER A  14       8.270  -3.979  -2.556  0.00  0.00           O  
+ATOM    213  CB  SER A  14       5.763  -5.217  -1.973  0.00  0.00           C  
+ATOM    214  OG  SER A  14       4.936  -6.345  -2.040  0.00  0.00           O  
+ATOM    215  H   SER A  14       5.903  -5.135   0.612  0.00  0.00           H  
+ATOM    216  HA  SER A  14       7.475  -6.413  -1.545  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       5.221  -4.416  -1.508  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       6.026  -4.948  -2.995  0.00  0.00           H  
+ATOM    219  HG  SER A  14       4.164  -6.059  -2.655  0.00  0.00           H  
+ATOM    220  N   GLY A  15       8.590  -3.733  -0.358  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       9.577  -2.650  -0.433  0.00  0.00           C  
+ATOM    222  C   GLY A  15       9.029  -1.291  -0.893  0.00  0.00           C  
+ATOM    223  O   GLY A  15       9.565  -0.255  -0.498  0.00  0.00           O  
+ATOM    224  H   GLY A  15       8.346  -4.054   0.578  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15      10.022  -2.519   0.554  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15      10.370  -2.944  -1.121  0.00  0.00           H  
+ATOM    227  N   ARG A  16       7.961  -1.275  -1.702  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       7.253  -0.068  -2.152  0.00  0.00           C  
+ATOM    229  C   ARG A  16       6.758   0.782  -0.961  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.062   0.249  -0.094  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       6.114  -0.429  -3.128  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       5.073  -1.437  -2.599  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       4.058  -1.882  -3.667  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       2.925  -0.944  -3.816  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       2.827   0.118  -4.610  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       3.797   0.480  -5.418  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       1.736   0.848  -4.603  0.00  0.00           N  
+ATOM    238  H   ARG A  16       7.673  -2.184  -2.046  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       7.981   0.515  -2.712  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       5.597   0.477  -3.381  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       6.567  -0.849  -4.028  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       5.592  -2.305  -2.239  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       4.537  -1.022  -1.749  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       4.565  -1.958  -4.610  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       3.649  -2.842  -3.350  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       2.106  -1.187  -3.286  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       4.617  -0.096  -5.446  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       3.713   1.284  -6.011  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       0.947   0.584  -4.042  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       1.678   1.660  -5.191  0.00  0.00           H  
+ATOM    251  N   PRO A  17       7.067   2.094  -0.905  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.620   2.967   0.182  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.099   3.227   0.122  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.486   3.009  -0.928  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.427   4.260   0.005  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.667   4.322  -1.501  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       7.835   2.854  -1.882  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       6.870   2.512   1.140  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       6.867   5.112   0.340  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.385   4.162   0.519  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       6.828   4.758  -2.008  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.552   4.908  -1.749  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       7.456   2.680  -2.871  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       8.888   2.571  -1.812  0.00  0.00           H  
+ATOM    265  N   PRO A  18       4.480   3.698   1.223  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       3.051   4.007   1.257  0.00  0.00           C  
+ATOM    267  C   PRO A  18       2.699   5.236   0.396  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.570   6.059   0.111  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       2.722   4.232   2.738  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       4.041   4.721   3.329  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       5.086   3.950   2.524  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       2.496   3.146   0.892  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       1.954   4.972   2.852  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       2.449   3.284   3.200  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       4.155   5.779   3.195  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       4.113   4.505   4.395  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       5.979   4.535   2.413  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       5.300   2.999   3.013  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.420   5.393  -0.004  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       0.957   6.533  -0.802  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.749   7.823   0.014  0.00  0.00           C  
+ATOM    282  O   PRO A  19       0.677   8.899  -0.575  0.00  0.00           O  
+ATOM    283  CB  PRO A  19      -0.367   6.064  -1.415  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -0.913   5.086  -0.375  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       0.348   4.422   0.169  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       1.669   6.748  -1.599  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -1.038   6.889  -1.556  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19      -0.164   5.530  -2.346  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -1.441   5.605   0.402  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -1.584   4.357  -0.825  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.225   4.183   1.208  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       0.576   3.535  -0.421  0.00  0.00           H  
+ATOM    293  N   SER A  20       0.622   7.704   1.342  0.00  0.00           N  
+ATOM    294  CA  SER A  20       0.537   8.783   2.335  0.00  0.00           C  
+ATOM    295  C   SER A  20       1.931   9.218   2.798  0.00  0.00           C  
+ATOM    296  O   SER A  20       2.563   8.335   3.437  0.00  0.00           O  
+ATOM    297  CB  SER A  20      -0.247   8.262   3.545  0.00  0.00           C  
+ATOM    298  OG  SER A  20       0.531   7.207   4.069  0.00  0.00           O  
+ATOM    299  OXT SER A  20       2.277  10.398   2.599  0.00  0.00           O  
+ATOM    300  H   SER A  20       0.701   6.779   1.733  0.00  0.00           H  
+ATOM    301  HA  SER A  20       0.039   9.654   1.908  0.00  0.00           H  
+ATOM    302 1HB  SER A  20      -0.369   9.038   4.276  0.00  0.00           H  
+ATOM    303 2HB  SER A  20      -1.237   7.911   3.252  0.00  0.00           H  
+ATOM    304  HG  SER A  20       1.480   7.561   3.895  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MODEL       24                                                                  
+ATOM      1  N   ASN A   1      -6.292   7.385   1.128  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -7.232   6.863   0.107  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -6.739   5.538  -0.485  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -7.431   4.543  -0.336  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -7.545   7.923  -0.975  0.00  0.00           C  
+ATOM      6  CG  ASN A   1      -6.313   8.297  -1.796  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1      -5.208   8.306  -1.270  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1      -6.440   8.526  -3.087  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -6.040   6.659   1.782  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -5.460   7.735   0.662  0.00  0.00           H  
+ATOM     11 3H   ASN A   1      -6.719   8.150   1.634  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -8.173   6.624   0.607  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -8.294   7.530  -1.636  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -7.929   8.825  -0.499  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1      -7.324   8.491  -3.570  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1      -5.584   8.752  -3.571  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -5.556   5.496  -1.115  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -5.032   4.330  -1.843  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -4.313   3.290  -0.955  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -3.853   2.259  -1.446  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -4.138   4.841  -3.003  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -4.722   4.651  -4.418  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -4.894   3.173  -4.766  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -6.050   5.386  -4.636  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -5.044   6.368  -1.237  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -5.880   3.796  -2.268  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -3.967   5.890  -2.853  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -3.179   4.327  -2.975  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -4.002   5.061  -5.126  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -3.966   2.642  -4.555  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -5.713   2.736  -4.196  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -5.117   3.069  -5.827  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -6.733   5.221  -3.804  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -5.855   6.450  -4.745  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -6.526   5.028  -5.550  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -4.243   3.530   0.360  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.536   2.698   1.337  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -3.999   1.230   1.340  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.180   0.335   1.524  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -3.688   3.329   2.730  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -2.527   3.057   3.667  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -1.478   3.993   3.769  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -2.504   1.888   4.455  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -0.422   3.773   4.671  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -1.449   1.665   5.360  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -0.410   2.617   5.478  0.00  0.00           C  
+ATOM     47  OH  TYR A   3       0.592   2.435   6.380  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -4.647   4.393   0.678  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.476   2.708   1.078  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -3.781   4.391   2.610  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -4.613   2.981   3.190  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -1.485   4.893   3.169  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -3.302   1.165   4.368  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3       0.377   4.493   4.774  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -1.435   0.773   5.967  0.00  0.00           H  
+ATOM     56  HH  TYR A   3       0.371   1.780   7.044  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.291   0.971   1.083  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.855  -0.385   0.970  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -5.185  -1.167  -0.172  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -4.825  -2.331   0.000  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.390  -0.331   0.775  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.107   0.494   1.877  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -7.991  -1.748   0.746  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -8.694   1.795   1.319  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -5.903   1.762   0.942  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.647  -0.919   1.898  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.594   0.123  -0.197  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -8.901  -0.096   2.292  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -7.417   0.733   2.687  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.583  -2.322  -0.085  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -7.771  -2.267   1.681  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -9.072  -1.688   0.616  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -7.897   2.395   0.886  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4      -9.436   1.569   0.553  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4      -9.171   2.357   2.121  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -4.990  -0.524  -1.331  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -4.287  -1.099  -2.478  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.828  -1.408  -2.125  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -2.375  -2.526  -2.353  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -4.383  -0.141  -3.683  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -5.134  -0.729  -4.885  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -6.640  -0.793  -4.645  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -7.380   0.135  -4.919  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -7.150  -1.887  -4.116  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -5.215   0.461  -1.367  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.756  -2.048  -2.731  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -4.893   0.749  -3.368  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -3.380   0.134  -4.013  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -4.946  -0.115  -5.745  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -4.744  -1.721  -5.116  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -6.566  -2.656  -3.852  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -8.148  -1.839  -3.996  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -2.121  -0.454  -1.511  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.744  -0.663  -1.057  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.613  -1.790  -0.020  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.331  -2.579  -0.067  0.00  0.00           O  
+ATOM     97  CB  TRP A   6      -0.201   0.655  -0.509  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.191   0.564   0.027  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.317   0.549  -0.722  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.627   0.427   1.415  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.412   0.401   0.105  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       3.049   0.343   1.428  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       0.972   0.368   2.666  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.794   0.234   2.609  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.709   0.249   3.860  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       3.114   0.197   3.837  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.569   0.443  -1.359  0.00  0.00           H  
+ATOM    108  HA  TRP A   6      -0.136  -0.952  -1.917  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.211   1.379  -1.301  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -0.855   1.013   0.287  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.345   0.630  -1.800  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.387   0.366  -0.203  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6      -0.106   0.426   2.698  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       4.873   0.181   2.560  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       1.192   0.211   4.808  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.670   0.129   4.761  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.578  -1.920   0.901  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.631  -3.070   1.801  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.843  -4.394   1.050  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.191  -5.372   1.418  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.686  -2.859   2.899  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.268  -1.863   4.000  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.426  -1.718   4.994  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -1.023  -2.315   4.775  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.292  -1.197   0.964  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.656  -3.165   2.275  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.583  -2.492   2.437  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -2.886  -3.821   3.373  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -2.065  -0.889   3.560  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.316  -1.368   4.472  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -3.638  -2.679   5.461  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -3.167  -0.998   5.769  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -1.138  -3.351   5.097  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7      -0.138  -2.227   4.147  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -0.876  -1.684   5.651  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.657  -4.444  -0.024  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -2.775  -5.659  -0.860  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.440  -6.118  -1.450  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.240  -7.322  -1.591  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -3.774  -5.527  -2.021  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -5.249  -5.395  -1.620  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -6.167  -6.088  -2.648  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -7.424  -5.268  -2.953  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -8.590  -6.134  -3.235  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -3.174  -3.604  -0.275  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.108  -6.475  -0.218  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -3.507  -4.656  -2.587  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -3.662  -6.434  -2.619  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -5.393  -5.849  -0.659  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -5.497  -4.337  -1.541  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -5.619  -6.230  -3.559  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -6.435  -7.067  -2.249  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -7.648  -4.648  -2.106  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -7.213  -4.642  -3.824  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -8.371  -6.792  -3.971  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -8.842  -6.653  -2.403  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -9.385  -5.577  -3.521  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -0.520  -5.196  -1.760  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.824  -5.550  -2.228  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.682  -6.246  -1.149  0.00  0.00           C  
+ATOM    161  O   ASP A   9       2.738  -6.791  -1.479  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       1.569  -4.302  -2.729  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       0.926  -3.620  -3.934  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9       0.770  -4.314  -4.963  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9       0.694  -2.393  -3.841  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -0.774  -4.217  -1.668  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.732  -6.246  -3.065  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       1.611  -3.592  -1.925  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       2.563  -4.606  -3.037  0.00  0.00           H  
+ATOM    170  N   GLY A  10       1.266  -6.215   0.128  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       2.015  -6.734   1.274  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.595  -5.646   2.186  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.441  -5.959   3.033  0.00  0.00           O  
+ATOM    174  H   GLY A  10       0.348  -5.819   0.317  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.343  -7.348   1.874  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.832  -7.371   0.933  0.00  0.00           H  
+ATOM    177  N   GLY A  11       2.188  -4.378   2.015  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.682  -3.258   2.815  0.00  0.00           C  
+ATOM    179  C   GLY A  11       4.216  -3.151   2.773  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.797  -3.293   1.691  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.532  -4.174   1.270  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       2.262  -2.332   2.425  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.330  -3.391   3.837  0.00  0.00           H  
+ATOM    184  N   PRO A  12       4.904  -2.935   3.918  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.365  -2.823   3.965  0.00  0.00           C  
+ATOM    186  C   PRO A  12       7.102  -4.015   3.335  0.00  0.00           C  
+ATOM    187  O   PRO A  12       8.165  -3.833   2.746  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.736  -2.681   5.447  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       5.452  -2.189   6.112  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       4.353  -2.826   5.263  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.658  -1.915   3.438  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       7.038  -3.626   5.856  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       7.554  -1.973   5.589  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       5.394  -2.523   7.130  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       5.394  -1.103   6.036  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       4.102  -3.797   5.644  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.456  -2.209   5.293  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.528  -5.228   3.414  0.00  0.00           N  
+ATOM    199  CA  SER A  13       7.138  -6.446   2.859  0.00  0.00           C  
+ATOM    200  C   SER A  13       7.295  -6.407   1.333  0.00  0.00           C  
+ATOM    201  O   SER A  13       8.174  -7.073   0.792  0.00  0.00           O  
+ATOM    202  CB  SER A  13       6.348  -7.692   3.277  0.00  0.00           C  
+ATOM    203  OG  SER A  13       5.118  -7.809   2.592  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.614  -5.292   3.842  0.00  0.00           H  
+ATOM    205  HA  SER A  13       8.138  -6.537   3.280  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       6.942  -8.561   3.069  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       6.165  -7.667   4.352  0.00  0.00           H  
+ATOM    208  HG  SER A  13       4.500  -7.079   2.847  0.00  0.00           H  
+ATOM    209  N   SER A  14       6.489  -5.586   0.645  0.00  0.00           N  
+ATOM    210  CA  SER A  14       6.548  -5.376  -0.801  0.00  0.00           C  
+ATOM    211  C   SER A  14       7.615  -4.354  -1.227  0.00  0.00           C  
+ATOM    212  O   SER A  14       7.779  -4.098  -2.420  0.00  0.00           O  
+ATOM    213  CB  SER A  14       5.172  -4.906  -1.282  0.00  0.00           C  
+ATOM    214  OG  SER A  14       4.768  -5.648  -2.411  0.00  0.00           O  
+ATOM    215  H   SER A  14       5.813  -5.042   1.173  0.00  0.00           H  
+ATOM    216  HA  SER A  14       6.781  -6.328  -1.284  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       4.456  -5.042  -0.494  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       5.202  -3.849  -1.527  0.00  0.00           H  
+ATOM    219  HG  SER A  14       4.004  -6.211  -2.103  0.00  0.00           H  
+ATOM    220  N   GLY A  15       8.309  -3.713  -0.277  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       9.390  -2.752  -0.512  0.00  0.00           C  
+ATOM    222  C   GLY A  15       8.950  -1.376  -1.041  0.00  0.00           C  
+ATOM    223  O   GLY A  15       9.569  -0.373  -0.689  0.00  0.00           O  
+ATOM    224  H   GLY A  15       8.111  -3.947   0.692  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15       9.920  -2.595   0.428  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15      10.093  -3.179  -1.226  0.00  0.00           H  
+ATOM    227  N   ARG A  16       7.896  -1.304  -1.867  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       7.317  -0.041  -2.355  0.00  0.00           C  
+ATOM    229  C   ARG A  16       6.801   0.839  -1.194  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.157   0.315  -0.283  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       6.215  -0.292  -3.405  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       5.119  -1.280  -2.965  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       3.913  -1.309  -3.915  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       4.266  -1.765  -5.273  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       4.470  -3.012  -5.684  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       4.434  -4.046  -4.877  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       4.742  -3.246  -6.946  0.00  0.00           N  
+ATOM    238  H   ARG A  16       7.511  -2.196  -2.163  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       8.125   0.496  -2.848  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       5.747   0.647  -3.630  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       6.683  -0.678  -4.311  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       5.544  -2.264  -2.923  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       4.753  -1.013  -1.976  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       3.174  -1.974  -3.511  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       3.485  -0.307  -3.974  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       4.286  -1.055  -5.983  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       4.241  -3.927  -3.896  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       4.571  -4.985  -5.203  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       4.784  -2.494  -7.608  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       4.878  -4.192  -7.246  0.00  0.00           H  
+ATOM    251  N   PRO A  17       7.021   2.169  -1.222  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.564   3.076  -0.168  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.035   3.273  -0.193  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.408   3.044  -1.232  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.304   4.392  -0.436  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.488   4.390  -1.951  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       7.717   2.912  -2.265  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       6.863   2.681   0.803  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       6.718   5.234  -0.121  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.279   4.364   0.050  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       6.611   4.759  -2.447  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.336   5.002  -2.259  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       7.314   2.668  -3.229  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       8.783   2.685  -2.219  0.00  0.00           H  
+ATOM    265  N   PRO A  18       4.420   3.714   0.924  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       2.979   3.943   0.997  0.00  0.00           C  
+ATOM    267  C   PRO A  18       2.541   5.167   0.167  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.300   6.129   0.038  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       2.670   4.129   2.486  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       3.976   4.683   3.053  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       5.042   3.977   2.213  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       2.469   3.052   0.638  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       1.865   4.824   2.627  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       2.459   3.159   2.939  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       4.030   5.747   2.929  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       4.085   4.459   4.114  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       5.901   4.608   2.092  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       5.310   3.030   2.683  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.305   5.165  -0.369  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       0.753   6.266  -1.151  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.318   7.409  -0.226  0.00  0.00           C  
+ATOM    282  O   PRO A  19      -0.451   7.189   0.714  0.00  0.00           O  
+ATOM    283  CB  PRO A  19      -0.432   5.656  -1.908  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -0.932   4.559  -0.967  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       0.347   4.074  -0.285  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       1.493   6.630  -1.865  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -1.195   6.390  -2.081  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19      -0.073   5.200  -2.833  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -1.625   4.954  -0.249  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -1.416   3.748  -1.510  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.150   3.833   0.742  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       0.754   3.228  -0.832  0.00  0.00           H  
+ATOM    293  N   SER A  20       0.793   8.629  -0.503  0.00  0.00           N  
+ATOM    294  CA  SER A  20       0.416   9.847   0.221  0.00  0.00           C  
+ATOM    295  C   SER A  20       0.407  11.090  -0.662  0.00  0.00           C  
+ATOM    296  O   SER A  20       0.891  11.013  -1.811  0.00  0.00           O  
+ATOM    297  CB  SER A  20       1.359  10.094   1.397  0.00  0.00           C  
+ATOM    298  OG  SER A  20       0.787  11.196   2.067  0.00  0.00           O  
+ATOM    299  OXT SER A  20      -0.035  12.112  -0.078  0.00  0.00           O  
+ATOM    300  H   SER A  20       1.371   8.782  -1.320  0.00  0.00           H  
+ATOM    301  HA  SER A  20      -0.594   9.730   0.608  0.00  0.00           H  
+ATOM    302 1HB  SER A  20       1.400   9.236   2.040  0.00  0.00           H  
+ATOM    303 2HB  SER A  20       2.353  10.357   1.025  0.00  0.00           H  
+ATOM    304  HG  SER A  20       0.387  11.733   1.311  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MODEL       25                                                                  
+ATOM      1  N   ASN A   1      -8.822   3.713  -1.688  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -7.636   4.584  -1.839  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -6.387   3.720  -2.050  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -6.449   2.520  -1.793  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -7.493   5.546  -0.643  0.00  0.00           C  
+ATOM      6  CG  ASN A   1      -6.684   6.775  -1.045  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1      -5.471   6.716  -1.147  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1      -7.325   7.882  -1.371  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -8.903   3.106  -2.494  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -8.709   3.131  -0.870  0.00  0.00           H  
+ATOM     11 3H   ASN A   1      -9.662   4.268  -1.598  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -7.770   5.186  -2.739  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -8.468   5.855  -0.319  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -6.990   5.041   0.185  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1      -8.323   8.004  -1.308  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1      -6.719   8.647  -1.627  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -5.276   4.311  -2.504  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -4.020   3.626  -2.831  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -3.471   2.838  -1.629  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -2.958   1.734  -1.800  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -3.012   4.674  -3.361  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -2.196   4.219  -4.592  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -1.533   5.435  -5.247  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -1.091   3.204  -4.289  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -5.249   5.328  -2.518  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -4.228   2.905  -3.623  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -3.558   5.557  -3.630  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -2.343   4.981  -2.561  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -2.881   3.777  -5.315  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -2.296   6.145  -5.570  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -0.864   5.929  -4.541  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -0.962   5.119  -6.121  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -0.285   3.677  -3.730  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -1.483   2.363  -3.723  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -0.681   2.826  -5.224  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -3.666   3.358  -0.409  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.284   2.708   0.847  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -3.873   1.292   1.002  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.194   0.398   1.503  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -3.690   3.607   2.030  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -2.649   3.669   3.132  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -1.934   4.863   3.357  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -2.390   2.535   3.927  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -0.980   4.936   4.389  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -1.425   2.597   4.950  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -0.731   3.802   5.194  0.00  0.00           C  
+ATOM     47  OH  TYR A   3       0.150   3.872   6.227  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -4.047   4.292  -0.362  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.198   2.613   0.856  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -3.852   4.601   1.660  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -4.632   3.256   2.454  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -2.110   5.742   2.747  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -2.935   1.619   3.761  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3      -0.449   5.867   4.548  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -1.221   1.739   5.572  0.00  0.00           H  
+ATOM     56  HH  TYR A   3       0.326   4.786   6.461  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.115   1.071   0.535  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.776  -0.242   0.562  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -5.002  -1.217  -0.330  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -4.614  -2.289   0.122  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.263  -0.143   0.130  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.048   0.841   1.030  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -7.919  -1.539   0.153  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -9.483   1.110   0.557  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -5.572   1.829   0.046  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.741  -0.629   1.581  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.305   0.225  -0.896  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -8.090   0.432   2.021  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -7.535   1.802   1.049  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.419  -2.213  -0.543  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -7.865  -1.964   1.157  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -8.963  -1.481  -0.153  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -9.492   1.320  -0.512  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4     -10.118   0.247   0.759  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4      -9.887   1.968   1.096  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -4.757  -0.824  -1.585  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -4.017  -1.607  -2.576  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.587  -1.900  -2.083  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -2.148  -3.047  -2.102  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -4.057  -0.847  -3.919  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -4.071  -1.760  -5.155  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -2.773  -2.524  -5.382  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -2.723  -3.734  -5.250  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -1.697  -1.854  -5.752  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -5.059   0.104  -1.844  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.528  -2.564  -2.697  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -4.942  -0.241  -3.937  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -3.227  -0.144  -3.981  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -4.865  -2.472  -5.038  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -4.268  -1.149  -6.038  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -1.694  -0.862  -5.911  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -0.889  -2.443  -5.884  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -1.898  -0.878  -1.557  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.578  -0.992  -0.936  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.552  -2.023   0.205  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.292  -2.918   0.198  0.00  0.00           O  
+ATOM     97  CB  TRP A   6      -0.127   0.397  -0.466  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.249   0.448   0.122  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.402   0.437  -0.587  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.644   0.501   1.528  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.474   0.460   0.282  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       3.068   0.490   1.594  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       0.952   0.549   2.757  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.775   0.513   2.805  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.647   0.567   3.982  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       3.054   0.548   4.010  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.335   0.042  -1.580  0.00  0.00           H  
+ATOM    108  HA  TRP A   6       0.127  -1.341  -1.691  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.154   1.059  -1.310  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -0.830   0.770   0.277  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.467   0.400  -1.665  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.459   0.466   0.011  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6      -0.127   0.579   2.747  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       4.854   0.502   2.796  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       1.097   0.607   4.913  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.578   0.569   4.955  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.488  -1.942   1.163  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.617  -2.951   2.219  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.966  -4.341   1.668  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.376  -5.320   2.123  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.642  -2.514   3.280  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.149  -1.401   4.223  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.284  -0.995   5.164  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -0.953  -1.839   5.080  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.154  -1.170   1.141  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.644  -3.065   2.695  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.519  -2.160   2.773  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -2.902  -3.381   3.888  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -1.860  -0.531   3.640  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.142  -0.659   4.582  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -3.579  -1.842   5.783  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -2.959  -0.178   5.809  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -1.180  -2.772   5.594  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7      -0.070  -1.975   4.456  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -0.724  -1.071   5.819  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.866  -4.444   0.675  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -3.232  -5.709   0.014  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.995  -6.419  -0.554  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.851  -7.626  -0.374  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -4.313  -5.443  -1.057  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -5.232  -6.637  -1.368  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -4.597  -7.726  -2.241  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -5.626  -8.816  -2.553  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -4.979  -9.985  -3.192  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -3.334  -3.588   0.376  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.648  -6.368   0.776  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -4.926  -4.632  -0.716  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -3.853  -5.080  -1.976  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -5.526  -7.084  -0.438  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -6.106  -6.251  -1.896  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -4.253  -7.289  -3.159  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -3.770  -8.185  -1.708  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -6.094  -9.129  -1.640  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -6.396  -8.398  -3.207  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -4.519  -9.702  -4.048  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -4.281 -10.374  -2.570  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -5.664 -10.700  -3.404  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -1.077  -5.668  -1.169  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.212  -6.164  -1.668  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.207  -6.590  -0.560  0.00  0.00           C  
+ATOM    161  O   ASP A   9       2.261  -7.145  -0.857  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       0.834  -5.084  -2.569  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       1.509  -5.695  -3.797  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9       2.746  -5.888  -3.742  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9       0.788  -5.935  -4.790  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -1.310  -4.691  -1.337  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.016  -7.046  -2.280  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       0.061  -4.414  -2.894  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       1.556  -4.497  -1.999  0.00  0.00           H  
+ATOM    170  N   GLY A  10       0.892  -6.349   0.722  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       1.749  -6.664   1.870  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.432  -5.442   2.495  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.341  -5.612   3.316  0.00  0.00           O  
+ATOM    174  H   GLY A  10      -0.020  -5.949   0.925  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.134  -7.131   2.639  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.517  -7.381   1.579  0.00  0.00           H  
+ATOM    177  N   GLY A  11       2.030  -4.224   2.106  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.562  -2.956   2.594  0.00  0.00           C  
+ATOM    179  C   GLY A  11       4.077  -2.849   2.377  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.519  -2.945   1.227  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.324  -4.158   1.376  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       2.087  -2.147   2.042  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.297  -2.847   3.642  0.00  0.00           H  
+ATOM    184  N   PRO A  12       4.898  -2.704   3.442  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.359  -2.670   3.324  0.00  0.00           C  
+ATOM    186  C   PRO A  12       6.945  -3.880   2.582  0.00  0.00           C  
+ATOM    187  O   PRO A  12       7.983  -3.757   1.936  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.900  -2.604   4.759  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       5.728  -2.068   5.577  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       4.512  -2.626   4.845  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.641  -1.759   2.794  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       7.189  -3.579   5.102  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       7.769  -1.950   4.830  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       5.767  -2.427   6.588  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       5.715  -0.978   5.530  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       4.264  -3.600   5.220  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.657  -1.969   5.001  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.257  -5.031   2.623  0.00  0.00           N  
+ATOM    199  CA  SER A  13       6.670  -6.282   1.972  0.00  0.00           C  
+ATOM    200  C   SER A  13       6.824  -6.145   0.453  0.00  0.00           C  
+ATOM    201  O   SER A  13       7.646  -6.844  -0.133  0.00  0.00           O  
+ATOM    202  CB  SER A  13       5.666  -7.410   2.245  0.00  0.00           C  
+ATOM    203  OG  SER A  13       5.190  -7.395   3.578  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.393  -5.044   3.149  0.00  0.00           H  
+ATOM    205  HA  SER A  13       7.634  -6.578   2.384  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       4.832  -7.298   1.579  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       6.147  -8.369   2.042  0.00  0.00           H  
+ATOM    208  HG  SER A  13       4.440  -6.757   3.610  0.00  0.00           H  
+ATOM    209  N   SER A  14       6.065  -5.236  -0.178  0.00  0.00           N  
+ATOM    210  CA  SER A  14       6.173  -4.951  -1.616  0.00  0.00           C  
+ATOM    211  C   SER A  14       7.384  -4.059  -1.960  0.00  0.00           C  
+ATOM    212  O   SER A  14       7.680  -3.817  -3.128  0.00  0.00           O  
+ATOM    213  CB  SER A  14       4.873  -4.299  -2.106  0.00  0.00           C  
+ATOM    214  OG  SER A  14       4.686  -4.580  -3.476  0.00  0.00           O  
+ATOM    215  H   SER A  14       5.428  -4.670   0.375  0.00  0.00           H  
+ATOM    216  HA  SER A  14       6.289  -5.897  -2.145  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       4.045  -4.689  -1.546  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       4.926  -3.220  -1.965  0.00  0.00           H  
+ATOM    219  HG  SER A  14       3.848  -5.193  -3.590  0.00  0.00           H  
+ATOM    220  N   GLY A  15       8.094  -3.531  -0.951  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       9.291  -2.699  -1.108  0.00  0.00           C  
+ATOM    222  C   GLY A  15       9.020  -1.228  -1.452  0.00  0.00           C  
+ATOM    223  O   GLY A  15       9.943  -0.418  -1.405  0.00  0.00           O  
+ATOM    224  H   GLY A  15       7.836  -3.773   0.003  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15       9.859  -2.730  -0.178  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15       9.916  -3.120  -1.896  0.00  0.00           H  
+ATOM    227  N   ARG A  16       7.772  -0.861  -1.777  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       7.352   0.518  -2.058  0.00  0.00           C  
+ATOM    229  C   ARG A  16       6.926   1.233  -0.760  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.220   0.619   0.040  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       6.203   0.479  -3.084  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       5.906   1.869  -3.663  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       4.859   1.824  -4.784  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       5.035   2.953  -5.722  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       5.956   3.050  -6.675  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       6.818   2.086  -6.908  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       6.038   4.130  -7.417  0.00  0.00           N  
+ATOM    238  H   ARG A  16       7.080  -1.599  -1.790  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       8.204   1.035  -2.496  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       6.476  -0.180  -3.886  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       5.302   0.068  -2.623  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       5.541   2.500  -2.875  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       6.835   2.270  -4.065  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       4.961   0.902  -5.323  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       3.862   1.868  -4.338  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       4.410   3.733  -5.609  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       6.760   1.254  -6.348  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       7.516   2.163  -7.627  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       5.407   4.899  -7.273  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       6.744   4.192  -8.129  0.00  0.00           H  
+ATOM    251  N   PRO A  17       7.271   2.523  -0.549  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.808   3.297   0.611  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.279   3.519   0.624  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.632   3.367  -0.415  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.573   4.626   0.537  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.901   4.777  -0.945  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       8.157   3.337  -1.372  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       7.094   2.768   1.522  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       6.961   5.439   0.877  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.500   4.546   1.107  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       7.076   5.201  -1.484  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.773   5.411  -1.109  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       7.927   3.208  -2.412  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       9.192   3.067  -1.160  0.00  0.00           H  
+ATOM    265  N   PRO A  18       4.694   3.905   1.780  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       3.255   4.134   1.918  0.00  0.00           C  
+ATOM    267  C   PRO A  18       2.773   5.345   1.089  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.434   6.387   1.085  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       2.999   4.340   3.415  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       4.345   4.826   3.946  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       5.352   4.088   3.066  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       2.740   3.228   1.610  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       2.235   5.077   3.575  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       2.750   3.384   3.875  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       4.442   5.889   3.834  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       4.476   4.586   5.001  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       6.245   4.671   2.949  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       5.572   3.112   3.500  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.634   5.227   0.378  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       1.081   6.286  -0.462  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.140   7.224   0.318  0.00  0.00           C  
+ATOM    282  O   PRO A  19      -0.995   6.854   0.627  0.00  0.00           O  
+ATOM    283  CB  PRO A  19       0.343   5.530  -1.568  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -0.205   4.301  -0.835  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       0.881   3.994   0.190  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       1.884   6.872  -0.910  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -0.453   6.123  -1.976  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19       1.059   5.213  -2.327  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -1.137   4.524  -0.353  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -0.362   3.458  -1.502  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.439   3.685   1.117  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       1.543   3.227  -0.214  0.00  0.00           H  
+ATOM    293  N   SER A  20       0.592   8.464   0.558  0.00  0.00           N  
+ATOM    294  CA  SER A  20      -0.080   9.471   1.411  0.00  0.00           C  
+ATOM    295  C   SER A  20      -0.300   8.997   2.863  0.00  0.00           C  
+ATOM    296  O   SER A  20      -1.168   9.604   3.527  0.00  0.00           O  
+ATOM    297  CB  SER A  20      -1.392   9.955   0.771  0.00  0.00           C  
+ATOM    298  OG  SER A  20      -1.109  10.475  -0.508  0.00  0.00           O  
+ATOM    299  OXT SER A  20       0.428   8.079   3.303  0.00  0.00           O  
+ATOM    300  H   SER A  20       1.561   8.632   0.336  0.00  0.00           H  
+ATOM    301  HA  SER A  20       0.570  10.339   1.493  0.00  0.00           H  
+ATOM    302 1HB  SER A  20      -2.075   9.132   0.683  0.00  0.00           H  
+ATOM    303 2HB  SER A  20      -1.847  10.731   1.390  0.00  0.00           H  
+ATOM    304  HG  SER A  20      -0.488   9.864  -0.909  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MODEL       26                                                                  
+ATOM      1  N   ASN A   1      -6.391   7.510   1.067  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -7.401   6.806   0.244  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -6.844   5.505  -0.338  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -7.312   4.446   0.047  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -8.052   7.731  -0.811  0.00  0.00           C  
+ATOM      6  CG  ASN A   1      -9.488   7.309  -1.115  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1     -10.112   6.606  -0.339  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1     -10.066   7.738  -2.223  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -5.984   6.869   1.737  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -5.657   7.891   0.486  0.00  0.00           H  
+ATOM     11 3H   ASN A   1      -6.829   8.267   1.573  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -8.203   6.494   0.918  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -8.056   8.737  -0.438  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -7.467   7.735  -1.732  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1      -9.621   8.342  -2.895  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1     -11.024   7.438  -2.329  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -5.809   5.545  -1.190  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -5.260   4.361  -1.876  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -4.455   3.379  -0.984  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -3.894   2.406  -1.484  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -4.436   4.848  -3.091  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -4.581   3.949  -4.337  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -5.961   4.101  -4.990  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -3.517   4.307  -5.376  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -5.432   6.430  -1.495  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -6.112   3.787  -2.244  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -4.762   5.838  -3.347  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -3.385   4.897  -2.803  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -4.439   2.910  -4.055  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -6.748   3.783  -4.309  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -6.130   5.140  -5.275  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -6.013   3.478  -5.884  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -3.640   5.340  -5.703  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -2.523   4.177  -4.947  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -3.611   3.645  -6.237  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -4.393   3.603   0.335  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.609   2.805   1.286  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -3.980   1.311   1.271  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.097   0.457   1.342  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -3.768   3.413   2.688  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -2.733   2.956   3.700  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -1.416   3.452   3.615  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -3.089   2.094   4.759  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -0.459   3.085   4.578  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -2.137   1.743   5.737  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -0.818   2.240   5.645  0.00  0.00           C  
+ATOM     47  OH  TYR A   3       0.102   1.933   6.600  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -4.931   4.374   0.692  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.558   2.880   1.004  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -3.700   4.480   2.599  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -4.769   3.193   3.064  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -1.140   4.153   2.841  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -4.101   1.723   4.839  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3       0.543   3.484   4.536  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -2.415   1.104   6.560  0.00  0.00           H  
+ATOM     56  HH  TYR A   3      -0.304   1.658   7.423  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.271   0.979   1.105  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.754  -0.410   1.022  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -5.089  -1.175  -0.139  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -4.712  -2.334   0.030  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.299  -0.466   0.907  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.026   0.325   2.026  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -7.790  -1.925   0.951  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -8.616   1.639   1.507  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -5.941   1.734   1.048  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.466  -0.915   1.945  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.586  -0.056  -0.062  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -8.820  -0.280   2.419  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -7.342   0.536   2.850  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.387  -2.483   0.107  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -7.482  -2.388   1.890  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -8.878  -1.947   0.874  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -7.815   2.287   1.164  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4      -9.304   1.440   0.682  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4      -9.164   2.137   2.308  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -4.926  -0.531  -1.304  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -4.245  -1.108  -2.469  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.765  -1.396  -2.181  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -2.271  -2.461  -2.542  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -4.387  -0.170  -3.681  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -5.621  -0.468  -4.541  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -5.458  -1.776  -5.310  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -4.686  -1.876  -6.248  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -6.163  -2.827  -4.942  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -5.175   0.448  -1.343  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.705  -2.066  -2.705  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -4.457   0.839  -3.324  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -3.501  -0.243  -4.314  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -6.481  -0.542  -3.904  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -5.740   0.337  -5.267  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -6.842  -2.805  -4.203  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -5.976  -3.641  -5.504  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -2.070  -0.489  -1.486  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.694  -0.725  -1.048  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.586  -1.880  -0.041  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.293  -2.734  -0.172  0.00  0.00           O  
+ATOM     97  CB  TRP A   6      -0.120   0.575  -0.487  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.275   0.460   0.036  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.391   0.368  -0.723  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.722   0.382   1.424  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.492   0.238   0.099  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       3.144   0.266   1.428  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       1.079   0.400   2.681  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.896   0.202   2.607  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.824   0.321   3.875  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       3.227   0.234   3.842  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.540   0.365  -1.212  0.00  0.00           H  
+ATOM    108  HA  TRP A   6      -0.096  -1.008  -1.916  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.125   1.309  -1.269  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -0.758   0.938   0.318  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.415   0.380  -1.804  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.461   0.154  -0.221  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6       0.002   0.485   2.724  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       4.971   0.113   2.553  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       1.315   0.339   4.828  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.787   0.188   4.764  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.509  -1.961   0.928  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.576  -3.104   1.842  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.846  -4.428   1.109  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.246  -5.436   1.477  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.635  -2.881   2.933  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.340  -1.734   3.917  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.514  -1.637   4.896  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -1.050  -1.947   4.717  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.179  -1.199   1.017  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.602  -3.218   2.316  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.569  -2.670   2.449  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -2.724  -3.804   3.508  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -2.258  -0.794   3.378  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.444  -1.501   4.345  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -3.577  -2.544   5.497  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -3.373  -0.786   5.557  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -1.082  -2.901   5.242  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7      -0.188  -1.932   4.050  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -0.929  -1.141   5.440  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.690  -4.435   0.061  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -2.971  -5.620  -0.774  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.703  -6.283  -1.322  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.660  -7.507  -1.400  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -3.900  -5.260  -1.954  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -5.270  -5.950  -1.934  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -6.299  -5.296  -1.003  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -6.225  -5.825   0.432  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -7.472  -5.522   1.173  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -3.165  -3.561  -0.155  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.442  -6.380  -0.153  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -4.061  -4.199  -1.939  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -3.414  -5.561  -2.885  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -5.666  -5.938  -2.931  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -5.158  -7.008  -1.693  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -6.123  -4.238  -0.987  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -7.289  -5.514  -1.408  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -6.080  -6.888   0.407  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -5.360  -5.380   0.933  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -7.622  -4.522   1.214  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -8.262  -5.946   0.705  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -7.423  -5.889   2.114  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -0.697  -5.489  -1.696  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.578  -5.995  -2.210  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.430  -6.676  -1.116  0.00  0.00           C  
+ATOM    161  O   ASP A   9       2.217  -7.569  -1.419  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       1.320  -4.822  -2.871  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       2.419  -5.299  -3.819  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9       2.157  -5.333  -5.040  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9       3.520  -5.598  -3.301  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -0.826  -4.488  -1.630  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.373  -6.742  -2.979  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       0.614  -4.235  -3.427  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       1.750  -4.177  -2.102  0.00  0.00           H  
+ATOM    170  N   GLY A  10       1.241  -6.295   0.157  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       2.072  -6.717   1.292  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.600  -5.567   2.160  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.329  -5.819   3.122  0.00  0.00           O  
+ATOM    174  H   GLY A  10       0.439  -5.705   0.348  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.481  -7.376   1.928  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.933  -7.279   0.931  0.00  0.00           H  
+ATOM    177  N   GLY A  11       2.242  -4.309   1.862  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.640  -3.145   2.653  0.00  0.00           C  
+ATOM    179  C   GLY A  11       4.171  -3.021   2.779  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.857  -3.010   1.755  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.703  -4.147   1.019  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       2.262  -2.248   2.167  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.174  -3.222   3.633  0.00  0.00           H  
+ATOM    184  N   PRO A  12       4.750  -2.936   3.998  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.203  -2.848   4.176  0.00  0.00           C  
+ATOM    186  C   PRO A  12       6.986  -3.997   3.521  0.00  0.00           C  
+ATOM    187  O   PRO A  12       8.127  -3.802   3.103  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.446  -2.831   5.690  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       5.113  -2.378   6.278  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       4.086  -2.931   5.293  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.548  -1.905   3.749  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       6.705  -3.810   6.045  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       7.253  -2.148   5.957  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       4.966  -2.790   7.258  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       5.066  -1.289   6.283  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       3.799  -3.927   5.571  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.196  -2.303   5.294  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.377  -5.184   3.397  0.00  0.00           N  
+ATOM    199  CA  SER A  13       6.999  -6.365   2.789  0.00  0.00           C  
+ATOM    200  C   SER A  13       7.090  -6.294   1.255  0.00  0.00           C  
+ATOM    201  O   SER A  13       7.691  -7.181   0.653  0.00  0.00           O  
+ATOM    202  CB  SER A  13       6.253  -7.630   3.234  0.00  0.00           C  
+ATOM    203  OG  SER A  13       6.246  -7.721   4.648  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.417  -5.288   3.715  0.00  0.00           H  
+ATOM    205  HA  SER A  13       8.023  -6.439   3.156  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       5.242  -7.590   2.876  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       6.749  -8.510   2.826  0.00  0.00           H  
+ATOM    208  HG  SER A  13       7.152  -7.694   4.967  0.00  0.00           H  
+ATOM    209  N   SER A  14       6.547  -5.244   0.623  0.00  0.00           N  
+ATOM    210  CA  SER A  14       6.546  -5.037  -0.834  0.00  0.00           C  
+ATOM    211  C   SER A  14       7.710  -4.195  -1.366  0.00  0.00           C  
+ATOM    212  O   SER A  14       7.806  -3.980  -2.574  0.00  0.00           O  
+ATOM    213  CB  SER A  14       5.255  -4.326  -1.232  0.00  0.00           C  
+ATOM    214  OG  SER A  14       4.168  -5.191  -1.045  0.00  0.00           O  
+ATOM    215  H   SER A  14       6.016  -4.575   1.174  0.00  0.00           H  
+ATOM    216  HA  SER A  14       6.572  -6.003  -1.341  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       5.126  -3.452  -0.623  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       5.295  -4.054  -2.288  0.00  0.00           H  
+ATOM    219  HG  SER A  14       3.879  -5.451  -2.001  0.00  0.00           H  
+ATOM    220  N   GLY A  15       8.565  -3.636  -0.501  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       9.674  -2.757  -0.898  0.00  0.00           C  
+ATOM    222  C   GLY A  15       9.253  -1.339  -1.324  0.00  0.00           C  
+ATOM    223  O   GLY A  15       9.969  -0.382  -1.033  0.00  0.00           O  
+ATOM    224  H   GLY A  15       8.424  -3.831   0.482  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15      10.376  -2.674  -0.069  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15      10.203  -3.214  -1.736  0.00  0.00           H  
+ATOM    227  N   ARG A  16       8.102  -1.178  -1.996  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       7.531   0.125  -2.365  0.00  0.00           C  
+ATOM    229  C   ARG A  16       6.961   0.857  -1.128  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.215   0.232  -0.372  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       6.442  -0.081  -3.437  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       5.971   1.260  -4.018  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       4.982   1.094  -5.178  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       4.802   2.367  -5.907  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       5.658   2.919  -6.763  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       6.787   2.331  -7.088  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       5.400   4.083  -7.311  0.00  0.00           N  
+ATOM    238  H   ARG A  16       7.619  -2.035  -2.253  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       8.340   0.714  -2.794  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       6.841  -0.685  -4.229  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       5.593  -0.617  -3.009  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       5.493   1.822  -3.239  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       6.844   1.801  -4.375  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       5.357   0.352  -5.856  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       4.021   0.765  -4.779  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       3.960   2.882  -5.711  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       6.987   1.438  -6.674  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       7.437   2.753  -7.728  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       4.551   4.572  -7.091  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       6.056   4.492  -7.951  0.00  0.00           H  
+ATOM    251  N   PRO A  17       7.229   2.166  -0.931  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.645   2.952   0.164  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.124   3.174   0.002  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.593   2.997  -1.099  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.407   4.284   0.146  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.816   4.441  -1.315  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       8.118   3.003  -1.727  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       6.829   2.440   1.109  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       6.773   5.093   0.456  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.301   4.200   0.766  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       7.016   4.853  -1.900  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.685   5.087  -1.430  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       7.923   2.865  -2.773  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       9.154   2.758  -1.485  0.00  0.00           H  
+ATOM    265  N   PRO A  18       4.413   3.584   1.073  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       2.970   3.822   1.030  0.00  0.00           C  
+ATOM    267  C   PRO A  18       2.594   5.069   0.201  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.394   5.998   0.089  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       2.538   3.970   2.492  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       3.794   4.489   3.188  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       4.918   3.789   2.425  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       2.489   2.946   0.603  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       1.732   4.672   2.584  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       2.286   2.991   2.895  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       3.872   5.555   3.099  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       3.805   4.232   4.248  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       5.797   4.405   2.406  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       5.127   2.823   2.884  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.367   5.119  -0.360  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       0.902   6.218  -1.210  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.393   7.441  -0.434  0.00  0.00           C  
+ATOM    282  O   PRO A  19       0.376   8.539  -0.986  0.00  0.00           O  
+ATOM    283  CB  PRO A  19      -0.244   5.614  -2.031  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -0.838   4.567  -1.088  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       0.396   4.036  -0.365  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       1.700   6.542  -1.881  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -0.972   6.361  -2.283  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19       0.161   5.121  -2.915  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -1.529   5.013  -0.399  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -1.356   3.777  -1.634  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.146   3.757   0.640  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       0.819   3.209  -0.930  0.00  0.00           H  
+ATOM    293  N   SER A  20      -0.071   7.250   0.808  0.00  0.00           N  
+ATOM    294  CA  SER A  20      -0.627   8.275   1.694  0.00  0.00           C  
+ATOM    295  C   SER A  20      -0.615   7.810   3.147  0.00  0.00           C  
+ATOM    296  O   SER A  20      -0.310   6.619   3.378  0.00  0.00           O  
+ATOM    297  CB  SER A  20      -2.071   8.593   1.302  0.00  0.00           C  
+ATOM    298  OG  SER A  20      -2.519   9.564   2.220  0.00  0.00           O  
+ATOM    299  OXT SER A  20      -1.045   8.668   3.958  0.00  0.00           O  
+ATOM    300  H   SER A  20       0.027   6.343   1.249  0.00  0.00           H  
+ATOM    301  HA  SER A  20      -0.028   9.183   1.627  0.00  0.00           H  
+ATOM    302 1HB  SER A  20      -2.109   8.980   0.302  0.00  0.00           H  
+ATOM    303 2HB  SER A  20      -2.678   7.692   1.404  0.00  0.00           H  
+ATOM    304  HG  SER A  20      -1.976   9.352   3.052  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MODEL       27                                                                  
+ATOM      1  N   ASN A   1      -6.891   7.053   0.882  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -7.783   6.096   0.185  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -7.000   4.934  -0.439  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -7.252   3.795  -0.069  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -8.741   6.795  -0.802  0.00  0.00           C  
+ATOM      6  CG  ASN A   1     -10.186   6.423  -0.481  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1     -10.742   5.509  -1.060  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1     -10.818   7.078   0.477  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -6.270   6.561   1.512  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -6.341   7.576   0.215  0.00  0.00           H  
+ATOM     11 3H   ASN A   1      -7.442   7.704   1.424  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -8.409   5.625   0.947  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -8.621   7.858  -0.720  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -8.526   6.488  -1.827  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1     -10.460   7.874   0.978  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1     -11.767   6.760   0.616  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -6.006   5.194  -1.304  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -5.176   4.163  -1.955  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -4.381   3.236  -1.006  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -3.851   2.217  -1.451  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -4.228   4.849  -2.968  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -4.572   4.553  -4.446  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -4.888   5.843  -5.207  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -3.420   3.823  -5.139  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -5.840   6.139  -1.619  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -5.853   3.499  -2.494  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -4.280   5.910  -2.815  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -3.207   4.517  -2.778  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -5.453   3.919  -4.507  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -5.757   6.328  -4.763  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -4.034   6.520  -5.172  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -5.113   5.608  -6.248  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -2.521   4.441  -5.130  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -3.217   2.884  -4.623  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -3.691   3.600  -6.170  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -4.322   3.538   0.295  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.630   2.739   1.309  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -4.063   1.261   1.312  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.226   0.377   1.478  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -3.838   3.395   2.684  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -2.746   3.070   3.682  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -1.555   3.822   3.668  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -2.916   2.041   4.628  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -0.528   3.543   4.588  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -1.889   1.757   5.549  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -0.690   2.503   5.526  0.00  0.00           C  
+ATOM     47  OH  TYR A   3       0.302   2.210   6.407  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -4.782   4.379   0.596  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.564   2.767   1.081  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -3.870   4.459   2.551  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -4.808   3.100   3.087  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -1.427   4.632   2.963  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -3.834   1.470   4.653  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3       0.367   4.148   4.584  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -1.998   0.980   6.291  0.00  0.00           H  
+ATOM     56  HH  TYR A   3       1.068   2.771   6.272  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.351   0.975   1.056  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.888  -0.395   0.981  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -5.258  -1.202  -0.170  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -5.000  -2.397  -0.010  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.431  -0.365   0.840  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.123   0.422   1.988  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -8.009  -1.791   0.799  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -8.974   1.614   1.515  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -5.981   1.754   0.908  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.641  -0.909   1.910  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.663   0.104  -0.117  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -8.761  -0.255   2.523  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -7.383   0.790   2.700  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.689  -2.299  -0.111  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -7.678  -2.350   1.677  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -9.099  -1.748   0.791  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -8.549   2.540   1.901  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4      -9.023   1.674   0.427  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4      -9.990   1.511   1.898  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -5.008  -0.559  -1.320  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -4.326  -1.156  -2.473  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.853  -1.433  -2.147  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -2.377  -2.543  -2.369  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -4.472  -0.240  -3.703  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -5.830  -0.425  -4.399  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -6.178   0.770  -5.279  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -5.720   0.909  -6.400  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -7.002   1.685  -4.804  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -5.155   0.443  -1.336  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.787  -2.118  -2.705  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -4.380   0.781  -3.387  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -3.684  -0.462  -4.425  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -5.791  -1.307  -5.009  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -6.617  -0.559  -3.656  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -7.431   1.614  -3.898  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -7.199   2.423  -5.458  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -2.147  -0.465  -1.550  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.764  -0.655  -1.100  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.620  -1.767  -0.046  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.292  -2.590  -0.131  0.00  0.00           O  
+ATOM     97  CB  TRP A   6      -0.223   0.670  -0.570  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.164   0.588  -0.013  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.300   0.553  -0.745  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.583   0.484   1.384  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.385   0.445   0.101  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       3.006   0.404   1.417  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       0.917   0.446   2.628  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.739   0.321   2.605  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.641   0.345   3.833  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       3.047   0.297   3.825  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.601   0.431  -1.402  0.00  0.00           H  
+ATOM    108  HA  TRP A   6      -0.156  -0.955  -1.957  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.221   1.379  -1.376  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -0.886   1.043   0.211  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.343   0.604  -1.827  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.363   0.430  -0.184  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6      -0.163   0.502   2.652  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       4.818   0.270   2.567  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       1.113   0.309   4.774  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.594   0.239   4.756  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.538  -1.844   0.927  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.586  -2.971   1.862  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.803  -4.308   1.137  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.174  -5.298   1.515  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.666  -2.743   2.930  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.317  -1.692   4.002  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.510  -1.571   4.957  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -1.074  -2.069   4.817  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.228  -1.098   1.006  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.615  -3.051   2.349  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.562  -2.425   2.433  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -2.847  -3.693   3.438  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -2.144  -0.726   3.537  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.393  -1.251   4.403  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -3.709  -2.532   5.432  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -3.298  -0.838   5.731  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -1.167  -3.087   5.199  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7      -0.183  -1.995   4.196  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -0.956  -1.382   5.655  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.624  -4.342   0.073  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -2.837  -5.530  -0.770  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.539  -6.072  -1.384  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.398  -7.286  -1.490  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -3.851  -5.224  -1.892  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -4.867  -6.357  -2.133  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -6.241  -6.033  -1.528  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -6.193  -5.982   0.004  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -7.398  -5.322   0.557  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -3.095  -3.479  -0.180  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.224  -6.323  -0.132  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -4.391  -4.335  -1.628  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -3.307  -5.048  -2.822  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -4.979  -6.503  -3.190  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -4.495  -7.304  -1.740  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -6.567  -5.079  -1.897  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -6.954  -6.797  -1.840  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -6.136  -6.983   0.386  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -5.303  -5.427   0.313  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -7.411  -4.352   0.270  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -8.235  -5.778   0.219  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -7.387  -5.360   1.567  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -0.586  -5.196  -1.733  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.742  -5.596  -2.224  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.596  -6.294  -1.144  0.00  0.00           C  
+ATOM    161  O   ASP A   9       2.602  -6.919  -1.489  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       1.544  -4.384  -2.750  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       0.978  -3.644  -3.968  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9       1.381  -2.472  -4.162  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9       0.247  -4.280  -4.760  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -0.811  -4.209  -1.663  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.611  -6.302  -3.046  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       1.620  -3.675  -1.948  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       2.528  -4.743  -3.048  0.00  0.00           H  
+ATOM    170  N   GLY A  10       1.242  -6.171   0.145  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       2.030  -6.642   1.290  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.603  -5.520   2.168  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.419  -5.803   3.047  0.00  0.00           O  
+ATOM    174  H   GLY A  10       0.348  -5.733   0.351  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.391  -7.260   1.920  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.859  -7.262   0.950  0.00  0.00           H  
+ATOM    177  N   GLY A  11       2.213  -4.255   1.949  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.700  -3.121   2.734  0.00  0.00           C  
+ATOM    179  C   GLY A  11       4.238  -3.008   2.707  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.830  -3.106   1.626  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.566  -4.066   1.192  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       2.278  -2.203   2.330  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.340  -3.242   3.755  0.00  0.00           H  
+ATOM    184  N   PRO A  12       4.916  -2.815   3.863  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.378  -2.719   3.922  0.00  0.00           C  
+ATOM    186  C   PRO A  12       7.104  -3.938   3.329  0.00  0.00           C  
+ATOM    187  O   PRO A  12       8.203  -3.799   2.793  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.739  -2.555   5.405  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       5.447  -2.080   6.062  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       4.360  -2.729   5.208  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.689  -1.827   3.377  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       7.056  -3.491   5.824  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       7.544  -1.832   5.542  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       5.388  -2.415   7.080  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       5.375  -0.995   5.986  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       4.126  -3.708   5.580  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.453  -2.129   5.244  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.487  -5.126   3.383  0.00  0.00           N  
+ATOM    199  CA  SER A  13       7.062  -6.391   2.910  0.00  0.00           C  
+ATOM    200  C   SER A  13       7.106  -6.523   1.380  0.00  0.00           C  
+ATOM    201  O   SER A  13       7.528  -7.564   0.882  0.00  0.00           O  
+ATOM    202  CB  SER A  13       6.294  -7.570   3.525  0.00  0.00           C  
+ATOM    203  OG  SER A  13       6.273  -7.463   4.938  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.554  -5.180   3.780  0.00  0.00           H  
+ATOM    205  HA  SER A  13       8.093  -6.447   3.259  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       5.287  -7.567   3.155  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       6.781  -8.506   3.247  0.00  0.00           H  
+ATOM    208  HG  SER A  13       7.175  -7.487   5.266  0.00  0.00           H  
+ATOM    209  N   SER A  14       6.699  -5.485   0.633  0.00  0.00           N  
+ATOM    210  CA  SER A  14       6.610  -5.482  -0.834  0.00  0.00           C  
+ATOM    211  C   SER A  14       7.584  -4.502  -1.514  0.00  0.00           C  
+ATOM    212  O   SER A  14       7.442  -4.206  -2.702  0.00  0.00           O  
+ATOM    213  CB  SER A  14       5.155  -5.226  -1.232  0.00  0.00           C  
+ATOM    214  OG  SER A  14       4.800  -6.039  -2.327  0.00  0.00           O  
+ATOM    215  H   SER A  14       6.332  -4.681   1.131  0.00  0.00           H  
+ATOM    216  HA  SER A  14       6.872  -6.476  -1.198  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       4.515  -5.452  -0.401  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       4.998  -4.181  -1.482  0.00  0.00           H  
+ATOM    219  HG  SER A  14       3.937  -6.470  -2.076  0.00  0.00           H  
+ATOM    220  N   GLY A  15       8.565  -3.977  -0.761  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       9.672  -3.163  -1.282  0.00  0.00           C  
+ATOM    222  C   GLY A  15       9.268  -1.785  -1.820  0.00  0.00           C  
+ATOM    223  O   GLY A  15       9.964  -1.240  -2.674  0.00  0.00           O  
+ATOM    224  H   GLY A  15       8.599  -4.262   0.210  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15      10.403  -3.009  -0.487  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15      10.168  -3.709  -2.087  0.00  0.00           H  
+ATOM    227  N   ARG A  16       8.140  -1.233  -1.349  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       7.498  -0.025  -1.884  0.00  0.00           C  
+ATOM    229  C   ARG A  16       6.929   0.860  -0.758  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.271   0.329   0.139  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       6.407  -0.441  -2.895  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       5.361  -1.404  -2.301  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       4.279  -1.827  -3.291  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       4.779  -2.819  -4.260  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       4.349  -2.952  -5.509  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       3.327  -2.269  -5.969  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       4.939  -3.800  -6.319  0.00  0.00           N  
+ATOM    238  H   ARG A  16       7.655  -1.742  -0.622  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       8.255   0.540  -2.429  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       5.902   0.443  -3.234  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       6.890  -0.927  -3.745  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       5.869  -2.285  -1.958  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       4.860  -0.926  -1.472  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       3.459  -2.256  -2.747  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       3.903  -0.939  -3.800  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       5.524  -3.428  -3.947  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       2.617  -2.056  -5.244  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       3.019  -2.337  -6.918  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       5.659  -4.401  -5.958  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       4.587  -3.922  -7.250  0.00  0.00           H  
+ATOM    251  N   PRO A  17       7.128   2.192  -0.787  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.585   3.097   0.228  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.060   3.276   0.076  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.523   3.016  -1.003  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.327   4.419   0.005  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.594   4.418  -1.499  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       7.848   2.945  -1.807  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       6.811   2.711   1.221  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       6.717   5.255   0.287  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.275   4.397   0.543  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       6.743   4.783  -2.041  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.452   5.039  -1.758  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       7.478   2.699  -2.783  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       8.915   2.731  -1.732  0.00  0.00           H  
+ATOM    265  N   PRO A  18       4.352   3.730   1.131  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       2.910   3.955   1.082  0.00  0.00           C  
+ATOM    267  C   PRO A  18       2.524   5.163   0.203  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.330   6.074   0.016  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       2.481   4.156   2.540  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       3.734   4.715   3.207  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       4.864   4.002   2.467  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       2.431   3.060   0.690  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       1.667   4.852   2.608  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       2.235   3.190   2.981  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       3.798   5.778   3.077  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       3.753   4.504   4.277  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       5.732   4.631   2.414  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       5.090   3.058   2.966  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.275   5.206  -0.306  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       0.771   6.284  -1.164  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.330   7.537  -0.389  0.00  0.00           C  
+ATOM    282  O   PRO A  19       0.160   8.598  -0.988  0.00  0.00           O  
+ATOM    283  CB  PRO A  19      -0.429   5.664  -1.889  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -0.979   4.669  -0.864  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       0.284   4.149  -0.189  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       1.528   6.574  -1.894  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -1.160   6.411  -2.131  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19      -0.083   5.121  -2.771  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -1.622   5.157  -0.157  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -1.531   3.860  -1.339  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.091   3.933   0.844  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       0.650   3.279  -0.729  0.00  0.00           H  
+ATOM    293  N   SER A  20       0.116   7.403   0.925  0.00  0.00           N  
+ATOM    294  CA  SER A  20      -0.336   8.429   1.868  0.00  0.00           C  
+ATOM    295  C   SER A  20       0.288   8.158   3.235  0.00  0.00           C  
+ATOM    296  O   SER A  20       1.091   8.990   3.697  0.00  0.00           O  
+ATOM    297  CB  SER A  20      -1.868   8.401   1.974  0.00  0.00           C  
+ATOM    298  OG  SER A  20      -2.214   7.177   2.590  0.00  0.00           O  
+ATOM    299  OXT SER A  20      -0.112   7.093   3.776  0.00  0.00           O  
+ATOM    300  H   SER A  20       0.272   6.489   1.323  0.00  0.00           H  
+ATOM    301  HA  SER A  20      -0.007   9.414   1.535  0.00  0.00           H  
+ATOM    302 1HB  SER A  20      -2.212   9.224   2.570  0.00  0.00           H  
+ATOM    303 2HB  SER A  20      -2.324   8.479   0.986  0.00  0.00           H  
+ATOM    304  HG  SER A  20      -1.394   7.015   3.184  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MODEL       28                                                                  
+ATOM      1  N   ASN A   1      -4.637   8.314   0.281  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -5.414   7.451  -0.654  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -4.552   6.258  -1.103  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -3.410   6.182  -0.671  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -5.986   8.274  -1.830  0.00  0.00           C  
+ATOM      6  CG  ASN A   1      -7.060   7.510  -2.606  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1      -7.598   6.525  -2.122  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1      -7.361   7.888  -3.833  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -4.274   7.750   1.038  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -3.845   8.730  -0.193  0.00  0.00           H  
+ATOM     11 3H   ASN A   1      -5.220   9.048   0.659  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -6.264   7.034  -0.107  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -6.417   9.177  -1.442  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -5.178   8.555  -2.505  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1      -6.930   8.673  -4.294  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1      -8.069   7.331  -4.288  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -5.081   5.309  -1.895  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -4.421   4.095  -2.428  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -3.907   3.086  -1.373  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -3.438   2.004  -1.727  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -3.323   4.462  -3.461  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -3.852   4.852  -4.858  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -4.240   6.330  -4.955  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -2.790   4.587  -5.929  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -6.060   5.437  -2.149  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -5.183   3.538  -2.975  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -2.763   5.291  -3.073  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -2.689   3.583  -3.592  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -4.724   4.242  -5.093  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -5.010   6.557  -4.229  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -3.370   6.961  -4.774  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -4.633   6.540  -5.950  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -1.903   5.190  -5.739  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -2.517   3.530  -5.926  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -3.189   4.833  -6.912  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -4.044   3.394  -0.080  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.489   2.632   1.037  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -3.961   1.172   1.078  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.161   0.277   1.338  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -3.815   3.362   2.349  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -2.670   3.331   3.335  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -1.776   4.416   3.400  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -2.480   2.213   4.167  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -0.707   4.403   4.312  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -1.407   2.188   5.077  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -0.523   3.285   5.158  0.00  0.00           C  
+ATOM     47  OH  TYR A   3       0.472   3.267   6.085  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -4.369   4.327   0.113  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.405   2.622   0.917  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -4.046   4.385   2.124  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -4.703   2.925   2.808  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -1.914   5.270   2.750  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -3.164   1.380   4.111  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3      -0.031   5.245   4.351  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -1.257   1.345   5.732  0.00  0.00           H  
+ATOM     56  HH  TYR A   3       0.616   4.135   6.463  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.240   0.915   0.764  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.800  -0.440   0.662  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -5.054  -1.256  -0.409  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -4.725  -2.421  -0.194  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.321  -0.381   0.365  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.099   0.508   1.368  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -7.932  -1.793   0.371  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -8.620   1.792   0.710  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -5.837   1.705   0.575  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.656  -0.946   1.618  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.455   0.022  -0.641  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -8.933  -0.049   1.751  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -7.469   0.772   2.219  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.495  -2.396  -0.421  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -7.751  -2.278   1.331  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -9.007  -1.735   0.196  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -7.790   2.390   0.335  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4      -9.288   1.538  -0.114  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4      -9.178   2.375   1.445  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -4.758  -0.632  -1.557  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -4.009  -1.246  -2.650  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.556  -1.532  -2.257  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -2.056  -2.621  -2.522  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -4.126  -0.385  -3.921  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -4.525  -1.255  -5.121  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -4.816  -0.407  -6.354  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -5.867   0.201  -6.470  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -3.916  -0.347  -7.314  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -4.955   0.358  -1.625  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.460  -2.209  -2.849  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -4.872   0.371  -3.769  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -3.180   0.117  -4.130  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -3.722  -1.931  -5.344  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -5.434  -1.805  -4.876  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -3.043  -0.844  -7.271  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -4.190   0.218  -8.099  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -1.905  -0.591  -1.563  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.573  -0.794  -0.989  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.539  -1.937   0.047  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.365  -2.772   0.016  0.00  0.00           O  
+ATOM     97  CB  TRP A   6      -0.090   0.537  -0.404  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.273   0.496   0.209  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.441   0.483  -0.473  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.630   0.425   1.623  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.492   0.396   0.418  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       3.053   0.371   1.722  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       0.899   0.398   2.830  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.719   0.302   2.954  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.557   0.314   4.072  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       2.961   0.267   4.137  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.385   0.292  -1.412  0.00  0.00           H  
+ATOM    108  HA  TRP A   6       0.108  -1.080  -1.790  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.079   1.264  -1.193  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -0.793   0.874   0.356  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.536   0.516  -1.550  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.475   0.350   0.133  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6      -0.179   0.447   2.791  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       4.797   0.257   2.979  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       0.979   0.296   4.987  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.455   0.210   5.097  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.539  -2.023   0.936  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.647  -3.114   1.911  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.880  -4.491   1.263  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.299  -5.464   1.739  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.744  -2.801   2.945  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.387  -1.679   3.942  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.618  -1.346   4.787  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -1.248  -2.065   4.893  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.229  -1.275   0.955  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.693  -3.194   2.432  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.630  -2.508   2.415  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -2.953  -3.706   3.517  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -2.088  -0.784   3.401  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.425  -0.996   4.140  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -3.951  -2.230   5.330  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -3.378  -0.561   5.504  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -1.499  -2.980   5.429  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7      -0.325  -2.214   4.336  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -1.082  -1.265   5.612  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.664  -4.593   0.174  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -2.892  -5.859  -0.562  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.591  -6.528  -1.022  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.477  -7.746  -0.936  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -3.818  -5.628  -1.769  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -5.295  -5.486  -1.357  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -6.116  -4.646  -2.351  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -6.882  -5.452  -3.401  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -7.477  -4.544  -4.411  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -3.145  -3.750  -0.132  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.367  -6.574   0.111  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -3.512  -4.730  -2.271  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -3.736  -6.467  -2.462  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -5.729  -6.465  -1.296  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -5.344  -4.993  -0.387  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -6.826  -4.068  -1.791  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -5.454  -3.961  -2.867  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -6.208  -6.131  -3.888  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -7.667  -6.022  -2.896  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -8.054  -3.846  -3.961  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -6.746  -4.071  -4.926  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -8.047  -5.062  -5.068  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -0.606  -5.739  -1.457  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.739  -6.198  -1.825  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.651  -6.499  -0.611  0.00  0.00           C  
+ATOM    161  O   ASP A   9       2.838  -6.780  -0.797  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       1.370  -5.155  -2.771  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       1.177  -5.531  -4.240  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9       2.077  -6.215  -4.775  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9       0.135  -5.136  -4.811  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -0.801  -4.748  -1.533  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.652  -7.136  -2.376  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       0.911  -4.202  -2.593  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       2.441  -5.088  -2.597  0.00  0.00           H  
+ATOM    170  N   GLY A  10       1.167  -6.398   0.637  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       1.944  -6.694   1.851  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.520  -5.474   2.584  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.356  -5.650   3.475  0.00  0.00           O  
+ATOM    174  H   GLY A  10       0.189  -6.147   0.762  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.294  -7.220   2.549  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.770  -7.362   1.607  0.00  0.00           H  
+ATOM    177  N   GLY A  11       2.100  -4.254   2.229  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.528  -2.992   2.832  0.00  0.00           C  
+ATOM    179  C   GLY A  11       4.060  -2.837   2.922  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.712  -2.686   1.888  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.508  -4.184   1.407  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       2.150  -2.182   2.211  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.067  -2.896   3.812  0.00  0.00           H  
+ATOM    184  N   PRO A  12       4.678  -2.872   4.125  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.137  -2.792   4.262  0.00  0.00           C  
+ATOM    186  C   PRO A  12       6.903  -3.861   3.466  0.00  0.00           C  
+ATOM    187  O   PRO A  12       8.043  -3.629   3.069  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.429  -2.936   5.761  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       5.120  -2.531   6.433  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       4.058  -2.991   5.436  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.463  -1.808   3.926  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       6.685  -3.949   6.004  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       7.254  -2.292   6.069  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       5.002  -3.028   7.377  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       5.080  -1.447   6.534  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       3.779  -4.009   5.628  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.172  -2.363   5.530  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.278  -5.017   3.209  0.00  0.00           N  
+ATOM    199  CA  SER A  13       6.884  -6.142   2.489  0.00  0.00           C  
+ATOM    200  C   SER A  13       6.737  -6.043   0.960  0.00  0.00           C  
+ATOM    201  O   SER A  13       7.147  -6.960   0.254  0.00  0.00           O  
+ATOM    202  CB  SER A  13       6.306  -7.461   3.021  0.00  0.00           C  
+ATOM    203  OG  SER A  13       6.621  -7.599   4.395  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.320  -5.131   3.531  0.00  0.00           H  
+ATOM    205  HA  SER A  13       7.953  -6.155   2.698  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       5.240  -7.459   2.898  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       6.742  -8.301   2.479  0.00  0.00           H  
+ATOM    208  HG  SER A  13       5.808  -7.714   4.892  0.00  0.00           H  
+ATOM    209  N   SER A  14       6.176  -4.942   0.434  0.00  0.00           N  
+ATOM    210  CA  SER A  14       5.884  -4.748  -0.996  0.00  0.00           C  
+ATOM    211  C   SER A  14       7.004  -4.076  -1.802  0.00  0.00           C  
+ATOM    212  O   SER A  14       6.860  -3.890  -3.006  0.00  0.00           O  
+ATOM    213  CB  SER A  14       4.636  -3.874  -1.140  0.00  0.00           C  
+ATOM    214  OG  SER A  14       3.598  -4.383  -0.343  0.00  0.00           O  
+ATOM    215  H   SER A  14       5.795  -4.245   1.069  0.00  0.00           H  
+ATOM    216  HA  SER A  14       5.675  -5.716  -1.456  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       4.865  -2.873  -0.828  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       4.320  -3.854  -2.182  0.00  0.00           H  
+ATOM    219  HG  SER A  14       3.437  -5.331  -0.578  0.00  0.00           H  
+ATOM    220  N   GLY A  15       8.091  -3.636  -1.156  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       9.222  -2.961  -1.807  0.00  0.00           C  
+ATOM    222  C   GLY A  15       8.979  -1.499  -2.225  0.00  0.00           C  
+ATOM    223  O   GLY A  15       9.937  -0.811  -2.570  0.00  0.00           O  
+ATOM    224  H   GLY A  15       8.136  -3.819  -0.163  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15      10.080  -2.981  -1.136  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15       9.494  -3.517  -2.706  0.00  0.00           H  
+ATOM    227  N   ARG A  16       7.733  -1.005  -2.166  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       7.340   0.378  -2.469  0.00  0.00           C  
+ATOM    229  C   ARG A  16       6.864   1.090  -1.189  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.138   0.469  -0.408  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       6.242   0.351  -3.552  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       5.909   1.749  -4.102  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       4.828   1.696  -5.186  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       4.677   3.011  -5.838  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       4.080   3.264  -6.997  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       3.453   2.326  -7.670  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       4.108   4.474  -7.504  0.00  0.00           N  
+ATOM    238  H   ARG A  16       7.011  -1.654  -1.889  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       8.211   0.896  -2.870  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       6.577  -0.266  -4.364  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       5.337  -0.100  -3.141  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       5.561   2.365  -3.295  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       6.814   2.176  -4.534  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       5.104   0.967  -5.923  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       3.881   1.398  -4.732  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       5.099   3.795  -5.368  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       3.423   1.404  -7.274  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       3.006   2.520  -8.548  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       4.586   5.218  -7.026  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       3.669   4.656  -8.390  0.00  0.00           H  
+ATOM    251  N   PRO A  17       7.209   2.375  -0.963  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.738   3.134   0.201  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.208   3.346   0.203  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.576   3.259  -0.855  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.490   4.471   0.149  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.846   4.634  -1.326  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       8.110   3.196  -1.761  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       7.021   2.596   1.106  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       6.862   5.275   0.482  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.407   4.394   0.736  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       7.031   5.063  -1.877  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.720   5.268  -1.469  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       7.900   3.076  -2.806  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       9.141   2.925  -1.531  0.00  0.00           H  
+ATOM    265  N   PRO A  18       4.607   3.648   1.372  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       3.168   3.868   1.495  0.00  0.00           C  
+ATOM    267  C   PRO A  18       2.728   5.176   0.813  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.421   6.189   0.932  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       2.880   3.905   2.999  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       4.202   4.357   3.615  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       5.252   3.767   2.674  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       2.650   3.021   1.056  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       2.097   4.604   3.221  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       2.640   2.905   3.351  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       4.268   5.428   3.640  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       4.322   3.987   4.633  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       6.103   4.418   2.610  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       5.544   2.776   3.024  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.566   5.189   0.135  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       0.986   6.406  -0.419  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.340   7.243   0.694  0.00  0.00           C  
+ATOM    282  O   PRO A  19      -0.310   6.698   1.588  0.00  0.00           O  
+ATOM    283  CB  PRO A  19      -0.045   5.908  -1.435  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -0.542   4.596  -0.823  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       0.688   4.050  -0.100  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       1.751   6.996  -0.927  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -0.849   6.611  -1.542  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19       0.455   5.698  -2.382  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -1.344   4.774  -0.133  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -0.898   3.904  -1.584  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.402   3.603   0.833  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       1.199   3.327  -0.734  0.00  0.00           H  
+ATOM    293  N   SER A  20       0.480   8.571   0.624  0.00  0.00           N  
+ATOM    294  CA  SER A  20      -0.125   9.511   1.572  0.00  0.00           C  
+ATOM    295  C   SER A  20      -0.770  10.671   0.820  0.00  0.00           C  
+ATOM    296  O   SER A  20      -2.016  10.756   0.905  0.00  0.00           O  
+ATOM    297  CB  SER A  20       0.919   9.961   2.597  0.00  0.00           C  
+ATOM    298  OG  SER A  20       0.248  10.488   3.720  0.00  0.00           O  
+ATOM    299  OXT SER A  20      -0.011  11.405   0.152  0.00  0.00           O  
+ATOM    300  H   SER A  20       1.013   8.983  -0.129  0.00  0.00           H  
+ATOM    301  HA  SER A  20      -0.928   9.009   2.110  0.00  0.00           H  
+ATOM    302 1HB  SER A  20       1.519   9.122   2.895  0.00  0.00           H  
+ATOM    303 2HB  SER A  20       1.582  10.712   2.159  0.00  0.00           H  
+ATOM    304  HG  SER A  20      -0.420  11.104   3.405  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MODEL       29                                                                  
+ATOM      1  N   ASN A   1      -8.605   5.735  -1.508  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -7.571   6.051  -0.495  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -6.164   5.538  -0.832  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -5.240   5.940  -0.139  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -8.006   5.614   0.920  0.00  0.00           C  
+ATOM      6  CG  ASN A   1      -8.446   6.833   1.721  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1      -7.636   7.667   2.079  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1      -9.727   7.012   1.978  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -8.317   6.060  -2.422  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -8.771   4.738  -1.536  0.00  0.00           H  
+ATOM     11 3H   ASN A   1      -9.471   6.197  -1.263  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -7.456   7.138  -0.461  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -8.823   4.923   0.844  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -7.168   5.160   1.453  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1     -10.461   6.361   1.754  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1      -9.905   7.847   2.515  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -5.966   4.679  -1.852  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -4.666   4.117  -2.283  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -4.002   3.168  -1.262  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -3.524   2.099  -1.642  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -3.717   5.253  -2.748  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -3.317   5.246  -4.235  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -2.553   3.980  -4.653  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -4.536   5.478  -5.132  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -6.737   4.358  -2.414  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -4.871   3.489  -3.150  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -4.203   6.188  -2.545  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -2.806   5.212  -2.162  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -2.646   6.094  -4.387  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -1.523   4.249  -4.893  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -2.534   3.243  -3.853  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -3.005   3.530  -5.537  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -5.218   4.631  -5.088  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -5.054   6.385  -4.819  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -4.203   5.612  -6.162  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -4.025   3.502   0.030  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.458   2.724   1.133  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -3.964   1.270   1.170  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.186   0.358   1.441  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -3.738   3.456   2.457  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -2.570   3.419   3.420  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -1.797   4.577   3.646  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -2.245   2.219   4.078  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -0.713   4.539   4.544  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -1.149   2.170   4.960  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -0.388   3.333   5.204  0.00  0.00           C  
+ATOM     47  OH  TYR A   3       0.627   3.280   6.107  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -4.367   4.438   0.237  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.377   2.691   0.989  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -3.966   4.481   2.238  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -4.614   3.021   2.941  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -2.032   5.503   3.135  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -2.836   1.333   3.908  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3      -0.128   5.433   4.713  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -0.891   1.259   5.474  0.00  0.00           H  
+ATOM     56  HH  TYR A   3       0.617   4.042   6.689  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.244   1.037   0.838  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.834  -0.306   0.713  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -5.105  -1.123  -0.367  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -4.724  -2.268  -0.130  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.352  -0.235   0.407  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.137   0.689   1.373  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -7.972  -1.643   0.457  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -8.547   2.007   0.707  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -5.819   1.844   0.651  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.700  -0.825   1.663  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.482   0.137  -0.611  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -9.022   0.177   1.699  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -7.548   0.901   2.265  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.504  -2.298  -0.279  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -7.845  -2.074   1.451  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -9.037  -1.590   0.226  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -7.664   2.587   0.439  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4      -9.134   1.802  -0.191  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4      -9.164   2.579   1.400  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -4.897  -0.530  -1.550  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -4.198  -1.155  -2.673  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.723  -1.419  -2.333  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -2.200  -2.473  -2.684  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -4.336  -0.262  -3.917  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -3.914  -0.964  -5.221  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -5.086  -1.137  -6.184  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -5.679  -0.180  -6.653  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -5.471  -2.356  -6.511  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -5.132   0.448  -1.635  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.672  -2.115  -2.879  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -5.362   0.038  -4.009  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -3.724   0.632  -3.790  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -3.155  -0.376  -5.701  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -3.469  -1.937  -5.010  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -4.984  -3.177  -6.199  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -6.221  -2.372  -7.181  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -2.071  -0.497  -1.615  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.715  -0.699  -1.098  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.639  -1.865  -0.097  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.196  -2.757  -0.250  0.00  0.00           O  
+ATOM     97  CB  TRP A   6      -0.203   0.608  -0.484  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.201   0.530   0.024  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.311   0.523  -0.750  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.672   0.404   1.403  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.428   0.392   0.050  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       3.094   0.319   1.381  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       1.048   0.358   2.668  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.864   0.210   2.546  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.810   0.242   3.848  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       3.214   0.174   3.791  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.559   0.372  -1.412  0.00  0.00           H  
+ATOM    108  HA  TRP A   6      -0.064  -0.958  -1.933  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.249   1.374  -1.234  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -0.852   0.901   0.340  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.315   0.589  -1.829  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.395   0.361  -0.282  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6      -0.028   0.427   2.725  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       4.940   0.156   2.473  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       1.316   0.221   4.810  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.792   0.099   4.701  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.536  -1.900   0.899  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.617  -3.007   1.855  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.901  -4.357   1.181  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.360  -5.362   1.635  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.675  -2.710   2.932  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.221  -1.687   3.991  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.385  -1.386   4.937  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -1.031  -2.194   4.815  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.191  -1.126   0.991  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.645  -3.114   2.334  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.552  -2.327   2.447  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -2.922  -3.640   3.447  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -1.930  -0.760   3.500  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.245  -1.036   4.365  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -3.661  -2.286   5.488  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -3.096  -0.608   5.644  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -1.172  -3.243   5.075  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7      -0.114  -2.086   4.240  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -0.929  -1.613   5.731  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.692  -4.379   0.094  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -3.020  -5.583  -0.687  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.785  -6.364  -1.155  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.838  -7.588  -1.203  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -3.879  -5.189  -1.903  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -4.659  -6.371  -2.495  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -5.247  -6.001  -3.867  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -6.373  -6.957  -4.272  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -7.632  -6.645  -3.554  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -3.148  -3.504  -0.155  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.595  -6.254  -0.047  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -4.579  -4.436  -1.597  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -3.229  -4.772  -2.673  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -3.997  -7.208  -2.609  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -5.454  -6.641  -1.801  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -5.637  -5.002  -3.821  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -4.447  -6.061  -4.607  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -6.542  -6.870  -5.328  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -6.057  -7.983  -4.060  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -7.483  -6.699  -2.554  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -7.939  -5.708  -3.782  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -8.360  -7.298  -3.811  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -0.706  -5.663  -1.517  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.544  -6.266  -1.987  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.293  -6.977  -0.843  0.00  0.00           C  
+ATOM    161  O   ASP A   9       1.650  -8.148  -0.961  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       1.392  -5.171  -2.653  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       2.434  -5.757  -3.608  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9       3.525  -6.132  -3.128  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9       2.117  -5.814  -4.817  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -0.755  -4.653  -1.452  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.304  -7.017  -2.743  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       0.744  -4.518  -3.205  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       1.878  -4.560  -1.892  0.00  0.00           H  
+ATOM    170  N   GLY A  10       1.469  -6.281   0.289  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       2.142  -6.803   1.484  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.644  -5.740   2.469  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.613  -5.985   3.194  0.00  0.00           O  
+ATOM    174  H   GLY A  10       1.155  -5.323   0.250  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.445  -7.452   2.016  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.995  -7.408   1.175  0.00  0.00           H  
+ATOM    177  N   GLY A  11       2.028  -4.548   2.496  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.465  -3.422   3.328  0.00  0.00           C  
+ATOM    179  C   GLY A  11       3.961  -3.104   3.147  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.428  -3.060   2.005  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.229  -4.418   1.894  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       1.897  -2.535   3.047  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.242  -3.663   4.366  0.00  0.00           H  
+ATOM    184  N   PRO A  12       4.744  -2.895   4.229  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.184  -2.626   4.136  0.00  0.00           C  
+ATOM    186  C   PRO A  12       6.990  -3.695   3.379  0.00  0.00           C  
+ATOM    187  O   PRO A  12       8.035  -3.383   2.813  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.687  -2.517   5.581  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       5.435  -2.200   6.394  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       4.325  -2.910   5.621  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.325  -1.668   3.636  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       7.124  -3.443   5.902  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       7.439  -1.733   5.682  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       5.516  -2.586   7.392  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       5.256  -1.124   6.386  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       4.214  -3.919   5.968  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.379  -2.387   5.767  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.507  -4.946   3.334  0.00  0.00           N  
+ATOM    199  CA  SER A  13       7.187  -6.064   2.673  0.00  0.00           C  
+ATOM    200  C   SER A  13       7.029  -6.063   1.139  0.00  0.00           C  
+ATOM    201  O   SER A  13       7.451  -7.024   0.494  0.00  0.00           O  
+ATOM    202  CB  SER A  13       6.706  -7.387   3.280  0.00  0.00           C  
+ATOM    203  OG  SER A  13       7.516  -8.439   2.801  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.587  -5.127   3.723  0.00  0.00           H  
+ATOM    205  HA  SER A  13       8.254  -5.982   2.881  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       6.777  -7.338   4.350  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       5.667  -7.570   3.006  0.00  0.00           H  
+ATOM    208  HG  SER A  13       7.599  -8.303   1.840  0.00  0.00           H  
+ATOM    209  N   SER A  14       6.431  -5.007   0.568  0.00  0.00           N  
+ATOM    210  CA  SER A  14       6.122  -4.843  -0.863  0.00  0.00           C  
+ATOM    211  C   SER A  14       7.243  -4.167  -1.670  0.00  0.00           C  
+ATOM    212  O   SER A  14       7.126  -4.014  -2.885  0.00  0.00           O  
+ATOM    213  CB  SER A  14       4.869  -3.968  -1.035  0.00  0.00           C  
+ATOM    214  OG  SER A  14       3.852  -4.282  -0.111  0.00  0.00           O  
+ATOM    215  H   SER A  14       6.092  -4.293   1.198  0.00  0.00           H  
+ATOM    216  HA  SER A  14       5.916  -5.820  -1.304  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       5.148  -2.940  -0.902  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       4.489  -4.086  -2.049  0.00  0.00           H  
+ATOM    219  HG  SER A  14       4.047  -3.794   0.729  0.00  0.00           H  
+ATOM    220  N   GLY A  15       8.295  -3.658  -1.015  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       9.401  -2.924  -1.649  0.00  0.00           C  
+ATOM    222  C   GLY A  15       9.095  -1.469  -2.050  0.00  0.00           C  
+ATOM    223  O   GLY A  15      10.027  -0.688  -2.223  0.00  0.00           O  
+ATOM    224  H   GLY A  15       8.323  -3.798  -0.013  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15      10.254  -2.914  -0.971  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15       9.705  -3.456  -2.552  0.00  0.00           H  
+ATOM    227  N   ARG A  16       7.815  -1.082  -2.167  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       7.364   0.285  -2.472  0.00  0.00           C  
+ATOM    229  C   ARG A  16       6.898   1.010  -1.194  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.164   0.402  -0.414  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       6.227   0.209  -3.508  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       5.864   1.592  -4.069  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       4.667   1.536  -5.024  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       4.606   2.733  -5.883  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       4.305   3.981  -5.540  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       3.982   4.326  -4.313  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       4.338   4.924  -6.455  0.00  0.00           N  
+ATOM    238  H   ARG A  16       7.121  -1.806  -2.050  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       8.203   0.825  -2.912  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       6.538  -0.422  -4.318  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       5.345  -0.244  -3.049  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       5.623   2.244  -3.251  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       6.729   1.984  -4.604  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       4.756   0.665  -5.645  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       3.744   1.430  -4.452  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       4.837   2.583  -6.851  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       3.989   3.631  -3.582  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       3.762   5.278  -4.085  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       4.596   4.707  -7.402  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       4.116   5.872  -6.209  0.00  0.00           H  
+ATOM    251  N   PRO A  17       7.232   2.303  -0.989  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.749   3.076   0.161  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.224   3.306   0.130  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.612   3.230  -0.945  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.515   4.405   0.107  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.835   4.571  -1.375  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       8.095   3.134  -1.819  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       7.009   2.547   1.078  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       6.905   5.214   0.461  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.445   4.313   0.672  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       7.005   4.997  -1.906  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.703   5.210  -1.537  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       7.847   3.012  -2.856  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       9.137   2.873  -1.630  0.00  0.00           H  
+ATOM    265  N   PRO A  18       4.607   3.621   1.290  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       3.173   3.861   1.391  0.00  0.00           C  
+ATOM    267  C   PRO A  18       2.768   5.155   0.668  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.536   6.122   0.654  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       2.862   3.940   2.889  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       4.175   4.424   3.496  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       5.230   3.775   2.601  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       2.647   3.013   0.960  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       2.070   4.638   3.081  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       2.631   2.946   3.269  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       4.245   5.494   3.460  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       4.280   4.116   4.536  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       6.097   4.404   2.530  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       5.490   2.793   2.996  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.558   5.206   0.088  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       1.036   6.414  -0.536  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.580   7.431   0.525  0.00  0.00           C  
+ATOM    282  O   PRO A  19       0.139   7.063   1.615  0.00  0.00           O  
+ATOM    283  CB  PRO A  19      -0.114   5.918  -1.419  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -0.641   4.693  -0.668  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       0.599   4.117   0.004  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       1.800   6.874  -1.164  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -0.876   6.667  -1.512  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19       0.288   5.602  -2.384  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -1.374   4.978   0.062  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -1.084   3.963  -1.347  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.357   3.758   0.986  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       1.015   3.321  -0.613  0.00  0.00           H  
+ATOM    293  N   SER A  20       0.671   8.718   0.173  0.00  0.00           N  
+ATOM    294  CA  SER A  20       0.166   9.881   0.915  0.00  0.00           C  
+ATOM    295  C   SER A  20      -0.789  10.667   0.023  0.00  0.00           C  
+ATOM    296  O   SER A  20      -1.886  10.995   0.519  0.00  0.00           O  
+ATOM    297  CB  SER A  20       1.319  10.782   1.355  0.00  0.00           C  
+ATOM    298  OG  SER A  20       2.016  10.129   2.391  0.00  0.00           O  
+ATOM    299  OXT SER A  20      -0.396  10.900  -1.142  0.00  0.00           O  
+ATOM    300  H   SER A  20       0.997   8.943  -0.756  0.00  0.00           H  
+ATOM    301  HA  SER A  20      -0.403   9.569   1.792  0.00  0.00           H  
+ATOM    302 1HB  SER A  20       1.979  10.958   0.527  0.00  0.00           H  
+ATOM    303 2HB  SER A  20       0.933  11.738   1.713  0.00  0.00           H  
+ATOM    304  HG  SER A  20       1.901   9.185   2.245  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MODEL       30                                                                  
+ATOM      1  N   ASN A   1      -6.460   7.364   0.613  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -7.483   6.556  -0.103  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -6.889   5.287  -0.732  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -7.475   4.227  -0.571  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -8.236   7.406  -1.144  0.00  0.00           C  
+ATOM      6  CG  ASN A   1      -7.303   7.780  -2.289  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1      -6.233   8.314  -2.043  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1      -7.597   7.393  -3.514  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -5.878   6.774   1.192  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -5.887   7.854  -0.067  0.00  0.00           H  
+ATOM     11 3H   ASN A   1      -6.912   8.053   1.197  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -8.216   6.208   0.628  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -9.064   6.843  -1.530  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -8.607   8.320  -0.677  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1      -8.429   6.875  -3.745  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1      -6.919   7.643  -4.219  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -5.741   5.358  -1.420  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -5.100   4.220  -2.108  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -4.341   3.246  -1.180  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -3.776   2.254  -1.644  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -4.211   4.795  -3.233  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -5.026   4.979  -4.531  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -4.502   6.140  -5.376  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -5.004   3.695  -5.367  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -5.329   6.267  -1.601  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -5.882   3.615  -2.569  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -3.822   5.746  -2.923  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -3.367   4.131  -3.434  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -6.062   5.205  -4.277  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -4.492   7.057  -4.785  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -3.492   5.927  -5.725  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -5.154   6.287  -6.238  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -3.983   3.466  -5.675  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -5.397   2.860  -4.791  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -5.619   3.822  -6.259  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -4.369   3.488   0.136  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.657   2.701   1.145  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -4.098   1.228   1.178  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.268   0.347   1.389  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -3.837   3.357   2.523  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -2.642   3.161   3.434  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -1.695   4.196   3.573  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -2.458   1.945   4.120  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -0.570   4.016   4.396  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -1.331   1.761   4.945  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -0.383   2.798   5.082  0.00  0.00           C  
+ATOM     47  OH  TYR A   3       0.699   2.647   5.890  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -4.905   4.281   0.443  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.597   2.723   0.895  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -3.991   4.410   2.383  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -4.732   2.959   3.008  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -1.824   5.137   3.055  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -3.179   1.149   4.003  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3       0.151   4.808   4.521  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -1.180   0.826   5.463  0.00  0.00           H  
+ATOM     56  HH  TYR A   3       0.441   2.460   6.795  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.388   0.955   0.919  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.920  -0.410   0.824  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -5.170  -1.190  -0.266  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -4.654  -2.276  -0.009  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.449  -0.413   0.570  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.252   0.393   1.623  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -7.973  -1.860   0.555  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -8.642   1.792   1.136  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -6.009   1.734   0.758  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.730  -0.915   1.773  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.642   0.008  -0.418  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -9.148  -0.149   1.858  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -7.684   0.477   2.549  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.552  -2.404  -0.285  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -7.704  -2.366   1.485  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -9.059  -1.868   0.448  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -7.779   2.452   1.188  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4      -9.018   1.751   0.113  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4      -9.431   2.192   1.775  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -5.097  -0.628  -1.481  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -4.416  -1.240  -2.624  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.926  -1.482  -2.349  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -2.406  -2.535  -2.707  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -4.601  -0.369  -3.878  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -4.909  -1.238  -5.106  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -4.680  -0.468  -6.398  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -5.535   0.265  -6.866  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -3.518  -0.604  -7.008  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -5.464   0.307  -1.591  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.871  -2.214  -2.798  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -5.414   0.312  -3.716  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -3.691   0.207  -4.059  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -4.269  -2.099  -5.094  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -5.953  -1.554  -5.065  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -2.791  -1.203  -6.654  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -3.429  -0.080  -7.861  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -2.259  -0.532  -1.681  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.876  -0.690  -1.231  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.716  -1.832  -0.211  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.176  -2.668  -0.361  0.00  0.00           O  
+ATOM     97  CB  TRP A   6      -0.374   0.647  -0.679  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.038   0.612  -0.187  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.141   0.697  -0.963  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.520   0.464   1.184  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.265   0.595  -0.168  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       2.944   0.448   1.159  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       0.902   0.355   2.448  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.724   0.344   2.317  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.675   0.244   3.623  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       3.080   0.249   3.561  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.752   0.326  -1.458  0.00  0.00           H  
+ATOM    108  HA  TRP A   6      -0.260  -0.952  -2.093  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.441   1.380  -1.459  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -1.015   0.962   0.144  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.138   0.826  -2.038  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.223   0.685  -0.491  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6      -0.175   0.378   2.506  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       4.802   0.341   2.239  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       1.187   0.174   4.582  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.663   0.185   4.467  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.599  -1.914   0.796  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.593  -3.012   1.768  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.846  -4.384   1.129  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.193  -5.345   1.538  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.602  -2.751   2.902  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.105  -1.780   3.989  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.232  -1.537   4.996  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -0.894  -2.319   4.764  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.301  -1.181   0.888  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.591  -3.074   2.189  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.494  -2.341   2.469  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -2.838  -3.699   3.387  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -1.835  -0.833   3.527  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.108  -1.139   4.483  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -3.500  -2.472   5.489  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -2.913  -0.822   5.752  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -1.122  -3.301   5.179  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7      -0.027  -2.398   4.112  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -0.639  -1.639   5.576  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.722  -4.491   0.113  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -2.959  -5.749  -0.626  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.683  -6.372  -1.201  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.595  -7.593  -1.269  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -4.007  -5.555  -1.743  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -5.443  -5.846  -1.265  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -6.440  -4.718  -1.552  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -6.997  -4.739  -2.978  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -7.865  -3.560  -3.222  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -3.252  -3.655  -0.124  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.328  -6.495   0.081  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -3.958  -4.540  -2.087  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -3.787  -6.243  -2.562  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -5.788  -6.734  -1.758  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -5.439  -6.011  -0.187  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -7.260  -4.808  -0.866  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -5.951  -3.767  -1.378  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -6.181  -4.725  -3.675  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -7.572  -5.660  -3.111  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -8.644  -3.562  -2.574  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -7.341  -2.706  -3.093  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -8.232  -3.580  -4.164  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -0.696  -5.556  -1.580  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.598  -6.026  -2.075  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.519  -6.577  -0.966  0.00  0.00           C  
+ATOM    161  O   ASP A   9       2.545  -7.185  -1.279  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       1.286  -4.862  -2.807  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       2.136  -5.346  -3.982  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9       3.373  -5.444  -3.814  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9       1.579  -5.513  -5.084  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -0.850  -4.558  -1.514  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.421  -6.829  -2.794  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       0.534  -4.192  -3.177  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       1.907  -4.305  -2.103  0.00  0.00           H  
+ATOM    170  N   GLY A  10       1.200  -6.338   0.319  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       1.994  -6.734   1.492  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.551  -5.569   2.334  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.261  -5.808   3.315  0.00  0.00           O  
+ATOM    174  H   GLY A  10       0.312  -5.879   0.502  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.360  -7.337   2.142  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.835  -7.356   1.186  0.00  0.00           H  
+ATOM    177  N   GLY A  11       2.238  -4.314   1.983  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.630  -3.135   2.756  0.00  0.00           C  
+ATOM    179  C   GLY A  11       4.156  -2.921   2.790  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.786  -2.907   1.729  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.725  -4.177   1.122  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       2.172  -2.252   2.310  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.237  -3.250   3.763  0.00  0.00           H  
+ATOM    184  N   PRO A  12       4.785  -2.743   3.974  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.237  -2.551   4.077  0.00  0.00           C  
+ATOM    186  C   PRO A  12       7.066  -3.702   3.485  0.00  0.00           C  
+ATOM    187  O   PRO A  12       8.207  -3.486   3.077  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.543  -2.392   5.572  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       5.203  -2.021   6.203  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       4.182  -2.709   5.300  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.501  -1.628   3.560  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       6.913  -3.312   5.983  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       7.291  -1.616   5.745  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       5.137  -2.391   7.208  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       5.065  -0.941   6.157  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       3.987  -3.705   5.648  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.247  -2.149   5.311  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.502  -4.917   3.405  0.00  0.00           N  
+ATOM    199  CA  SER A  13       7.196  -6.128   2.940  0.00  0.00           C  
+ATOM    200  C   SER A  13       7.128  -6.326   1.416  0.00  0.00           C  
+ATOM    201  O   SER A  13       7.334  -7.437   0.931  0.00  0.00           O  
+ATOM    202  CB  SER A  13       6.674  -7.367   3.682  0.00  0.00           C  
+ATOM    203  OG  SER A  13       6.833  -7.217   5.081  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.524  -4.999   3.654  0.00  0.00           H  
+ATOM    205  HA  SER A  13       8.254  -6.034   3.186  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       5.633  -7.499   3.458  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       7.251  -8.238   3.368  0.00  0.00           H  
+ATOM    208  HG  SER A  13       6.115  -6.675   5.416  0.00  0.00           H  
+ATOM    209  N   SER A  14       6.854  -5.257   0.662  0.00  0.00           N  
+ATOM    210  CA  SER A  14       6.584  -5.293  -0.785  0.00  0.00           C  
+ATOM    211  C   SER A  14       7.566  -4.459  -1.616  0.00  0.00           C  
+ATOM    212  O   SER A  14       7.367  -4.289  -2.817  0.00  0.00           O  
+ATOM    213  CB  SER A  14       5.146  -4.838  -1.031  0.00  0.00           C  
+ATOM    214  OG  SER A  14       4.277  -5.620  -0.252  0.00  0.00           O  
+ATOM    215  H   SER A  14       6.601  -4.410   1.157  0.00  0.00           H  
+ATOM    216  HA  SER A  14       6.658  -6.321  -1.144  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       5.044  -3.806  -0.757  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       4.908  -4.937  -2.086  0.00  0.00           H  
+ATOM    219  HG  SER A  14       3.762  -6.253  -0.814  0.00  0.00           H  
+ATOM    220  N   GLY A  15       8.616  -3.911  -0.986  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       9.650  -3.115  -1.655  0.00  0.00           C  
+ATOM    222  C   GLY A  15       9.148  -1.778  -2.215  0.00  0.00           C  
+ATOM    223  O   GLY A  15       9.705  -1.282  -3.192  0.00  0.00           O  
+ATOM    224  H   GLY A  15       8.720  -4.130  -0.003  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15      10.451  -2.904  -0.947  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15      10.069  -3.693  -2.479  0.00  0.00           H  
+ATOM    227  N   ARG A  16       8.090  -1.203  -1.622  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       7.417   0.014  -2.096  0.00  0.00           C  
+ATOM    229  C   ARG A  16       6.924   0.888  -0.926  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.280   0.358  -0.018  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       6.269  -0.371  -3.052  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       5.250  -1.359  -2.458  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       4.104  -1.695  -3.419  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       4.341  -2.957  -4.134  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       4.904  -3.201  -5.305  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       5.427  -2.257  -6.053  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       4.910  -4.436  -5.734  0.00  0.00           N  
+ATOM    238  H   ARG A  16       7.706  -1.667  -0.809  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       8.145   0.582  -2.674  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       5.747   0.525  -3.327  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       6.708  -0.821  -3.943  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       5.762  -2.268  -2.207  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       4.813  -0.934  -1.563  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       3.194  -1.780  -2.857  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       3.933  -0.873  -4.115  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       3.985  -3.821  -3.714  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       5.402  -1.317  -5.706  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       5.836  -2.486  -6.938  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       4.381  -5.092  -5.130  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       5.299  -4.728  -6.606  0.00  0.00           H  
+ATOM    251  N   PRO A  17       7.173   2.212  -0.928  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.709   3.107   0.135  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.179   3.304   0.093  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.572   3.105  -0.963  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.453   4.424  -0.105  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.690   4.435  -1.615  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       7.884   2.960  -1.955  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       6.996   2.696   1.103  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       6.854   5.262   0.195  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.414   4.395   0.413  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       6.842   4.840  -2.134  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.568   5.026  -1.881  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       7.475   2.744  -2.923  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       8.945   2.707  -1.917  0.00  0.00           H  
+ATOM    265  N   PRO A  18       4.547   3.703   1.215  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       3.107   3.958   1.273  0.00  0.00           C  
+ATOM    267  C   PRO A  18       2.718   5.246   0.522  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.537   6.161   0.405  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       2.775   4.060   2.766  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       4.078   4.556   3.393  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       5.157   3.921   2.519  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       2.574   3.114   0.842  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       1.979   4.759   2.934  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       2.537   3.072   3.156  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       4.137   5.627   3.359  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       4.168   4.245   4.434  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       5.999   4.580   2.430  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       5.454   2.961   2.942  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.462   5.356   0.042  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       0.965   6.565  -0.607  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.679   7.670   0.424  0.00  0.00           C  
+ATOM    282  O   PRO A  19       0.133   7.394   1.493  0.00  0.00           O  
+ATOM    283  CB  PRO A  19      -0.307   6.120  -1.337  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -0.842   4.980  -0.470  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       0.425   4.333   0.092  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       1.694   6.927  -1.334  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -1.016   6.923  -1.394  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19      -0.038   5.730  -2.321  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -1.462   5.358   0.320  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -1.427   4.271  -1.057  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.263   4.017   1.104  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       0.718   3.493  -0.537  0.00  0.00           H  
+ATOM    293  N   SER A  20       1.033   8.915   0.077  0.00  0.00           N  
+ATOM    294  CA  SER A  20       0.705  10.139   0.828  0.00  0.00           C  
+ATOM    295  C   SER A  20      -0.786  10.478   0.742  0.00  0.00           C  
+ATOM    296  O   SER A  20      -1.375  10.693   1.822  0.00  0.00           O  
+ATOM    297  CB  SER A  20       1.520  11.322   0.296  0.00  0.00           C  
+ATOM    298  OG  SER A  20       2.902  11.054   0.415  0.00  0.00           O  
+ATOM    299  OXT SER A  20      -1.297  10.548  -0.398  0.00  0.00           O  
+ATOM    300  H   SER A  20       1.493   9.051  -0.810  0.00  0.00           H  
+ATOM    301  HA  SER A  20       0.929   9.985   1.882  0.00  0.00           H  
+ATOM    302 1HB  SER A  20       1.278  11.484  -0.737  0.00  0.00           H  
+ATOM    303 2HB  SER A  20       1.270  12.218   0.868  0.00  0.00           H  
+ATOM    304  HG  SER A  20       3.079  10.774   1.317  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MODEL       31                                                                  
+ATOM      1  N   ASN A   1      -5.909   7.522   0.267  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -6.878   6.859  -0.640  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -6.387   5.474  -1.074  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -7.073   4.506  -0.795  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -7.238   7.752  -1.848  0.00  0.00           C  
+ATOM      6  CG  ASN A   1      -6.030   7.972  -2.754  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1      -4.939   8.212  -2.259  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1      -6.143   7.768  -4.052  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -5.599   6.883   0.986  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -5.112   7.842  -0.277  0.00  0.00           H  
+ATOM     11 3H   ASN A   1      -6.337   8.328   0.703  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -7.798   6.680  -0.079  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -8.017   7.278  -2.413  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -7.592   8.722  -1.493  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1      -7.007   7.508  -4.498  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1      -5.297   7.914  -4.581  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -5.214   5.357  -1.714  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -4.723   4.133  -2.374  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -4.072   3.112  -1.410  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -3.514   2.099  -1.824  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -3.784   4.570  -3.527  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -4.051   3.825  -4.857  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -4.094   4.806  -6.033  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -2.990   2.766  -5.156  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -4.694   6.204  -1.928  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -5.592   3.628  -2.801  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -3.918   5.621  -3.694  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -2.742   4.452  -3.229  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -5.023   3.338  -4.815  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -4.920   5.505  -5.900  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -3.158   5.361  -6.096  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -4.250   4.259  -6.963  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -2.068   3.238  -5.500  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -2.771   2.189  -4.262  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -3.360   2.093  -5.930  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -4.158   3.379  -0.100  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.550   2.591   0.970  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -4.064   1.142   1.019  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.312   0.246   1.398  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -3.780   3.308   2.312  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -2.551   3.326   3.197  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -1.687   4.439   3.181  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -2.261   2.225   4.024  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -0.529   4.448   3.976  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -1.106   2.230   4.829  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -0.232   3.340   4.800  0.00  0.00           C  
+ATOM     47  OH  TYR A   3       0.880   3.349   5.583  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -4.674   4.203   0.150  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.477   2.550   0.784  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -4.071   4.321   2.112  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -4.604   2.835   2.848  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -1.899   5.294   2.555  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -2.925   1.374   4.033  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3       0.134   5.301   3.953  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -0.876   1.391   5.467  0.00  0.00           H  
+ATOM     56  HH  TYR A   3       0.691   3.713   6.450  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.318   0.899   0.604  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.916  -0.442   0.543  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -5.144  -1.321  -0.447  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -4.704  -2.405  -0.072  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.426  -0.393   0.201  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.210   0.560   1.137  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -8.041  -1.802   0.286  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -8.670   1.817   0.395  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -5.870   1.690   0.302  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.811  -0.900   1.529  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.537  -0.053  -0.832  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -9.071   0.045   1.518  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -7.591   0.854   1.986  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.564  -2.474  -0.427  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -7.920  -2.203   1.294  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -9.103  -1.755   0.046  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -7.834   2.238  -0.159  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4      -9.467   1.560  -0.304  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4      -9.041   2.553   1.108  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -4.941  -0.843  -1.684  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -4.117  -1.514  -2.693  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.686  -1.746  -2.187  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -2.209  -2.879  -2.229  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -4.134  -0.708  -4.002  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -5.442  -0.901  -4.795  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -6.166   0.412  -5.082  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -6.464   1.188  -4.184  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -6.497   0.688  -6.330  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -5.307   0.072  -1.913  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.539  -2.498  -2.896  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -4.024   0.333  -3.767  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -3.302  -1.031  -4.631  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -5.209  -1.374  -5.729  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -6.129  -1.543  -4.244  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -6.283   0.067  -7.093  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -7.002   1.548  -6.458  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -2.034  -0.709  -1.645  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.678  -0.829  -1.093  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.567  -1.888   0.023  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.376  -2.684   0.030  0.00  0.00           O  
+ATOM     97  CB  TRP A   6      -0.200   0.546  -0.612  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.200   0.544  -0.082  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.322   0.559  -0.836  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.651   0.467   1.306  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.427   0.481  -0.014  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       3.075   0.428   1.313  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       1.006   0.418   2.560  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.828   0.362   2.492  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.749   0.341   3.754  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       3.155   0.321   3.723  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.492   0.198  -1.645  0.00  0.00           H  
+ATOM    108  HA  TRP A   6      -0.016  -1.157  -1.898  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.249   1.230  -1.438  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -0.866   0.904   0.171  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.344   0.600  -1.918  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.399   0.465  -0.330  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6      -0.073   0.449   2.593  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       4.906   0.339   2.439  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       1.239   0.310   4.706  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.716   0.279   4.647  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.531  -1.946   0.950  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.587  -3.012   1.954  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.883  -4.387   1.338  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.259  -5.363   1.752  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.605  -2.670   3.056  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.118  -1.596   4.051  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.255  -1.244   5.014  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -0.920  -2.061   4.892  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.264  -1.238   0.941  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.599  -3.102   2.404  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.502  -2.314   2.587  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -2.828  -3.576   3.621  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -1.835  -0.698   3.507  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.107  -0.863   4.451  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -3.559  -2.129   5.572  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -2.924  -0.478   5.716  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -1.159  -2.994   5.401  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7      -0.046  -2.207   4.261  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -0.673  -1.303   5.635  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.772  -4.477   0.334  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -3.105  -5.716  -0.398  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.879  -6.425  -0.982  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.855  -7.653  -0.986  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -4.125  -5.413  -1.517  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -5.509  -6.032  -1.296  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -5.571  -7.539  -1.610  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -6.790  -7.876  -2.484  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -6.467  -7.814  -3.931  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -3.262  -3.623   0.071  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.545  -6.418   0.311  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -4.241  -4.349  -1.587  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -3.737  -5.743  -2.483  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -5.784  -5.888  -0.269  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -6.212  -5.498  -1.938  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -4.677  -7.825  -2.131  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -5.653  -8.084  -0.669  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -7.125  -8.867  -2.245  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -7.598  -7.177  -2.246  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -6.123  -6.897  -4.179  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -5.753  -8.496  -4.155  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -7.289  -8.017  -4.487  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -0.876  -5.673  -1.449  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.398  -6.223  -1.930  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.311  -6.762  -0.805  0.00  0.00           C  
+ATOM    161  O   ASP A   9       2.203  -7.564  -1.082  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       1.147  -5.144  -2.731  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       0.467  -4.801  -4.061  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9       0.290  -3.591  -4.324  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9       0.157  -5.754  -4.813  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -1.030  -4.670  -1.499  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.195  -7.060  -2.600  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       1.201  -4.253  -2.136  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       2.152  -5.505  -2.957  0.00  0.00           H  
+ATOM    170  N   GLY A  10       1.096  -6.352   0.456  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       1.939  -6.705   1.606  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.565  -5.512   2.347  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.435  -5.730   3.206  0.00  0.00           O  
+ATOM    174  H   GLY A  10       0.261  -5.800   0.631  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.326  -7.256   2.320  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.746  -7.365   1.289  0.00  0.00           H  
+ATOM    177  N   GLY A  11       2.176  -4.272   2.029  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.626  -3.057   2.710  0.00  0.00           C  
+ATOM    179  C   GLY A  11       4.158  -2.915   2.747  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.789  -2.963   1.691  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.547  -4.148   1.241  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       2.223  -2.195   2.180  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.209  -3.058   3.715  0.00  0.00           H  
+ATOM    184  N   PRO A  12       4.800  -2.763   3.930  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.259  -2.630   4.030  0.00  0.00           C  
+ATOM    186  C   PRO A  12       7.037  -3.777   3.366  0.00  0.00           C  
+ATOM    187  O   PRO A  12       8.146  -3.571   2.879  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.578  -2.563   5.529  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       5.267  -2.123   6.174  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       4.203  -2.726   5.258  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.554  -1.691   3.560  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       6.879  -3.525   5.897  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       7.381  -1.855   5.734  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       5.180  -2.511   7.171  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       5.195  -1.035   6.150  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       3.949  -3.717   5.582  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.303  -2.112   5.287  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.444  -4.979   3.307  0.00  0.00           N  
+ATOM    199  CA  SER A  13       7.043  -6.156   2.670  0.00  0.00           C  
+ATOM    200  C   SER A  13       6.983  -6.137   1.130  0.00  0.00           C  
+ATOM    201  O   SER A  13       7.548  -7.021   0.494  0.00  0.00           O  
+ATOM    202  CB  SER A  13       6.428  -7.435   3.253  0.00  0.00           C  
+ATOM    203  OG  SER A  13       5.089  -7.644   2.842  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.500  -5.052   3.666  0.00  0.00           H  
+ATOM    205  HA  SER A  13       8.101  -6.173   2.933  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       7.018  -8.273   2.935  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       6.467  -7.386   4.343  0.00  0.00           H  
+ATOM    208  HG  SER A  13       4.507  -6.893   3.104  0.00  0.00           H  
+ATOM    209  N   SER A  14       6.343  -5.125   0.518  0.00  0.00           N  
+ATOM    210  CA  SER A  14       6.214  -4.963  -0.941  0.00  0.00           C  
+ATOM    211  C   SER A  14       7.325  -4.127  -1.595  0.00  0.00           C  
+ATOM    212  O   SER A  14       7.306  -3.936  -2.809  0.00  0.00           O  
+ATOM    213  CB  SER A  14       4.882  -4.280  -1.265  0.00  0.00           C  
+ATOM    214  OG  SER A  14       3.823  -4.982  -0.663  0.00  0.00           O  
+ATOM    215  H   SER A  14       5.902  -4.413   1.097  0.00  0.00           H  
+ATOM    216  HA  SER A  14       6.217  -5.946  -1.415  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       4.899  -3.274  -0.893  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       4.731  -4.256  -2.345  0.00  0.00           H  
+ATOM    219  HG  SER A  14       4.199  -5.674  -0.113  0.00  0.00           H  
+ATOM    220  N   GLY A  15       8.258  -3.554  -0.822  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       9.356  -2.717  -1.330  0.00  0.00           C  
+ATOM    222  C   GLY A  15       8.956  -1.287  -1.733  0.00  0.00           C  
+ATOM    223  O   GLY A  15       9.753  -0.366  -1.564  0.00  0.00           O  
+ATOM    224  H   GLY A  15       8.204  -3.723   0.175  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15      10.135  -2.654  -0.570  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15       9.789  -3.199  -2.207  0.00  0.00           H  
+ATOM    227  N   ARG A  16       7.740  -1.078  -2.255  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       7.196   0.244  -2.606  0.00  0.00           C  
+ATOM    229  C   ARG A  16       6.800   1.026  -1.334  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.153   0.438  -0.465  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       6.004   0.043  -3.562  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       5.598   1.337  -4.286  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       4.649   1.070  -5.464  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       5.376   0.549  -6.647  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       5.988   1.239  -7.584  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       6.011   2.568  -7.581  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       6.613   0.642  -8.574  0.00  0.00           N  
+ATOM    238  H   ARG A  16       7.177  -1.909  -2.406  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       7.984   0.785  -3.128  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       6.273  -0.691  -4.297  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       5.146  -0.347  -3.007  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       5.106   1.985  -3.586  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       6.488   1.833  -4.670  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       3.914   0.349  -5.162  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       4.142   2.000  -5.728  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       5.404  -0.458  -6.736  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       5.535   3.037  -6.833  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       6.471   3.081  -8.301  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       6.628  -0.366  -8.623  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       7.076   1.176  -9.280  0.00  0.00           H  
+ATOM    251  N   PRO A  17       7.126   2.330  -1.200  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.809   3.113   0.002  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.294   3.369   0.169  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.551   3.273  -0.812  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.588   4.425  -0.160  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.688   4.594  -1.672  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       7.850   3.156  -2.157  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       7.177   2.582   0.880  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       7.056   5.245   0.283  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.589   4.309   0.258  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       6.798   5.040  -2.072  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.535   5.216  -1.960  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       7.432   3.044  -3.139  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       8.905   2.879  -2.151  0.00  0.00           H  
+ATOM    265  N   PRO A  18       4.828   3.720   1.386  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       3.415   3.979   1.661  0.00  0.00           C  
+ATOM    267  C   PRO A  18       2.921   5.257   0.956  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.633   6.262   0.960  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       3.307   4.111   3.185  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       4.701   4.568   3.609  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       5.614   3.867   2.605  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       2.830   3.121   1.340  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       2.567   4.840   3.454  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       3.099   3.135   3.621  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       4.796   5.634   3.537  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       4.929   4.279   4.636  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       6.488   4.461   2.417  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       5.884   2.880   2.982  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.704   5.254   0.376  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       1.131   6.433  -0.268  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.578   7.422   0.772  0.00  0.00           C  
+ATOM    282  O   PRO A  19      -0.096   7.022   1.725  0.00  0.00           O  
+ATOM    283  CB  PRO A  19       0.032   5.878  -1.180  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -0.464   4.639  -0.433  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       0.792   4.121   0.270  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       1.886   6.934  -0.875  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -0.759   6.592  -1.305  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19       0.474   5.572  -2.129  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -1.223   4.899   0.279  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -0.879   3.897  -1.115  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.545   3.752   1.247  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       1.257   3.344  -0.337  0.00  0.00           H  
+ATOM    293  N   SER A  20       0.825   8.716   0.549  0.00  0.00           N  
+ATOM    294  CA  SER A  20       0.360   9.847   1.362  0.00  0.00           C  
+ATOM    295  C   SER A  20      -0.255  10.948   0.496  0.00  0.00           C  
+ATOM    296  O   SER A  20       0.173  11.092  -0.672  0.00  0.00           O  
+ATOM    297  CB  SER A  20       1.496  10.383   2.241  0.00  0.00           C  
+ATOM    298  OG  SER A  20       2.667  10.641   1.485  0.00  0.00           O  
+ATOM    299  OXT SER A  20      -1.188  11.592   1.023  0.00  0.00           O  
+ATOM    300  H   SER A  20       1.372   9.005  -0.251  0.00  0.00           H  
+ATOM    301  HA  SER A  20      -0.439   9.514   2.020  0.00  0.00           H  
+ATOM    302 1HB  SER A  20       1.175  11.295   2.707  0.00  0.00           H  
+ATOM    303 2HB  SER A  20       1.726   9.639   3.008  0.00  0.00           H  
+ATOM    304  HG  SER A  20       3.313  11.084   2.036  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MODEL       32                                                                  
+ATOM      1  N   ASN A   1      -6.852   6.802   0.784  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -7.569   5.905  -0.155  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -6.675   4.784  -0.685  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -6.907   3.637  -0.312  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -8.306   6.688  -1.259  0.00  0.00           C  
+ATOM      6  CG  ASN A   1      -9.658   7.144  -0.720  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1     -10.402   6.342  -0.185  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1      -9.997   8.418  -0.771  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -6.406   6.262   1.512  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -6.150   7.342   0.294  0.00  0.00           H  
+ATOM     11 3H   ASN A   1      -7.507   7.441   1.214  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -8.341   5.383   0.416  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -7.724   7.543  -1.544  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -8.496   6.032  -2.110  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1      -9.452   9.144  -1.207  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1     -10.916   8.601  -0.396  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -5.641   5.081  -1.489  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -4.771   4.070  -2.118  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -4.066   3.118  -1.122  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -3.610   2.044  -1.507  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -3.736   4.788  -3.009  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -3.207   3.896  -4.155  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -4.121   3.970  -5.385  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -1.783   4.286  -4.551  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -5.488   6.032  -1.793  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -5.401   3.449  -2.761  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -4.197   5.657  -3.437  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -2.911   5.107  -2.379  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -3.172   2.861  -3.826  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -5.104   4.362  -5.124  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -3.683   4.602  -6.157  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -4.253   2.966  -5.790  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -1.718   5.358  -4.736  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -1.099   4.008  -3.752  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -1.488   3.743  -5.449  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -4.017   3.470   0.169  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.452   2.660   1.248  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -4.002   1.221   1.271  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.253   0.284   1.527  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -3.690   3.373   2.590  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -2.578   3.161   3.597  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -1.601   4.161   3.787  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -2.514   1.966   4.339  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -0.567   3.969   4.722  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -1.479   1.768   5.270  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -0.503   2.769   5.464  0.00  0.00           C  
+ATOM     47  OH  TYR A   3       0.485   2.574   6.378  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -4.399   4.368   0.410  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.376   2.600   1.088  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -3.782   4.426   2.403  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -4.635   3.037   3.021  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -1.635   5.081   3.217  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -3.259   1.196   4.191  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3       0.180   4.734   4.872  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -1.416   0.856   5.843  0.00  0.00           H  
+ATOM     56  HH  TYR A   3       0.286   3.012   7.208  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.291   1.031   0.946  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.931  -0.293   0.853  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -5.280  -1.132  -0.262  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -4.975  -2.308  -0.057  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.452  -0.139   0.612  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.150   0.694   1.716  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -8.133  -1.519   0.519  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -9.405   1.406   1.195  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -5.843   1.851   0.722  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.780  -0.822   1.794  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.585   0.372  -0.343  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -8.432   0.039   2.518  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -7.485   1.468   2.099  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.763  -2.077  -0.343  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -7.934  -2.097   1.423  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -9.211  -1.406   0.405  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -9.143   2.050   0.354  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4     -10.152   0.681   0.875  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4      -9.826   2.022   1.989  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -5.043  -0.527  -1.433  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -4.319  -1.165  -2.532  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.856  -1.426  -2.147  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -2.382  -2.537  -2.342  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -4.432  -0.330  -3.822  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -5.812  -0.453  -4.498  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -6.574   0.869  -4.544  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -6.511   1.619  -5.500  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -7.337   1.205  -3.520  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -5.183   0.474  -1.483  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.763  -2.143  -2.723  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -4.261   0.701  -3.579  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -3.682  -0.687  -4.528  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -5.671  -0.801  -5.503  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -6.424  -1.202  -3.994  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -7.488   0.604  -2.731  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -7.851   2.055  -3.678  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -2.161  -0.464  -1.529  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.783  -0.667  -1.057  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.645  -1.797  -0.021  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.314  -2.570  -0.062  0.00  0.00           O  
+ATOM     97  CB  TRP A   6      -0.249   0.652  -0.495  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.135   0.570   0.072  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.275   0.562  -0.652  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.545   0.458   1.469  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.360   0.439   0.197  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       2.968   0.390   1.513  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       0.867   0.423   2.708  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.691   0.320   2.711  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.580   0.342   3.919  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       2.987   0.304   3.924  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.607   0.442  -1.410  0.00  0.00           H  
+ATOM    108  HA  TRP A   6      -0.164  -0.953  -1.911  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.245   1.376  -1.287  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -0.917   0.998   0.291  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.321   0.634  -1.731  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.338   0.431  -0.094  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6      -0.213   0.476   2.719  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       4.771   0.289   2.684  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       1.047   0.329   4.859  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.522   0.272   4.860  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.613  -1.946   0.894  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.654  -3.093   1.806  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.835  -4.426   1.058  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.246  -5.420   1.478  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.752  -2.898   2.866  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.416  -1.848   3.943  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.648  -1.629   4.827  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -1.246  -2.272   4.838  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.340  -1.237   0.952  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.691  -3.164   2.309  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.651  -2.591   2.366  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -2.928  -3.852   3.365  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -2.156  -0.903   3.474  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.482  -1.286   4.215  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -3.923  -2.562   5.321  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -3.435  -0.875   5.585  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -1.429  -3.262   5.255  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7      -0.321  -2.286   4.263  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -1.123  -1.560   5.652  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.573  -4.450  -0.065  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -2.753  -5.637  -0.920  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.423  -6.194  -1.444  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.285  -7.410  -1.532  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -3.680  -5.295  -2.099  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -4.298  -6.504  -2.814  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -5.536  -7.065  -2.098  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -6.303  -8.006  -3.036  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -7.007  -7.254  -4.106  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -2.995  -3.577  -0.362  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.211  -6.421  -0.316  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -4.480  -4.685  -1.727  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -3.094  -4.770  -2.849  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -4.583  -6.205  -3.804  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -3.557  -7.296  -2.934  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -5.227  -7.608  -1.225  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -6.190  -6.253  -1.779  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -5.610  -8.689  -3.488  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -7.027  -8.580  -2.453  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -7.790  -6.744  -3.720  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -6.372  -6.589  -4.533  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -7.345  -7.883  -4.822  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -0.447  -5.329  -1.753  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.910  -5.749  -2.133  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.670  -6.459  -0.990  0.00  0.00           C  
+ATOM    161  O   ASP A   9       2.622  -7.186  -1.270  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       1.736  -4.535  -2.594  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       1.220  -3.854  -3.861  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9       1.591  -4.337  -4.953  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9       0.541  -2.814  -3.721  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -0.655  -4.337  -1.719  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.844  -6.450  -2.966  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       1.736  -3.811  -1.802  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       2.749  -4.874  -2.808  0.00  0.00           H  
+ATOM    170  N   GLY A  10       1.257  -6.258   0.274  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       1.961  -6.712   1.480  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.411  -5.586   2.425  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.160  -5.849   3.367  0.00  0.00           O  
+ATOM    174  H   GLY A  10       0.383  -5.760   0.408  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.304  -7.377   2.037  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.850  -7.277   1.196  0.00  0.00           H  
+ATOM    177  N   GLY A  11       2.008  -4.326   2.183  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.450  -3.174   2.973  0.00  0.00           C  
+ATOM    179  C   GLY A  11       3.980  -2.984   2.932  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.559  -3.040   1.839  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.456  -4.151   1.354  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       1.984  -2.274   2.571  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.101  -3.314   3.994  0.00  0.00           H  
+ATOM    184  N   PRO A  12       4.665  -2.766   4.078  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.116  -2.537   4.125  0.00  0.00           C  
+ATOM    186  C   PRO A  12       6.959  -3.639   3.466  0.00  0.00           C  
+ATOM    187  O   PRO A  12       8.019  -3.357   2.912  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.477  -2.417   5.612  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       5.164  -2.042   6.293  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       4.110  -2.726   5.425  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.331  -1.590   3.630  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       6.847  -3.351   5.989  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       7.243  -1.658   5.777  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       5.133  -2.413   7.299  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       5.028  -0.961   6.254  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       3.922  -3.721   5.781  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.178  -2.162   5.468  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.486  -4.890   3.490  0.00  0.00           N  
+ATOM    199  CA  SER A  13       7.202  -6.073   2.992  0.00  0.00           C  
+ATOM    200  C   SER A  13       7.143  -6.241   1.464  0.00  0.00           C  
+ATOM    201  O   SER A  13       7.476  -7.309   0.957  0.00  0.00           O  
+ATOM    202  CB  SER A  13       6.669  -7.320   3.710  0.00  0.00           C  
+ATOM    203  OG  SER A  13       6.903  -7.208   5.102  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.586  -5.054   3.924  0.00  0.00           H  
+ATOM    205  HA  SER A  13       8.256  -5.969   3.247  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       5.615  -7.410   3.532  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       7.175  -8.210   3.337  0.00  0.00           H  
+ATOM    208  HG  SER A  13       7.852  -7.195   5.257  0.00  0.00           H  
+ATOM    209  N   SER A  14       6.739  -5.198   0.725  0.00  0.00           N  
+ATOM    210  CA  SER A  14       6.405  -5.266  -0.708  0.00  0.00           C  
+ATOM    211  C   SER A  14       7.371  -4.503  -1.623  0.00  0.00           C  
+ATOM    212  O   SER A  14       7.116  -4.406  -2.826  0.00  0.00           O  
+ATOM    213  CB  SER A  14       4.983  -4.759  -0.973  0.00  0.00           C  
+ATOM    214  OG  SER A  14       4.134  -4.862   0.138  0.00  0.00           O  
+ATOM    215  H   SER A  14       6.478  -4.368   1.241  0.00  0.00           H  
+ATOM    216  HA  SER A  14       6.427  -6.311  -1.020  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       5.039  -3.727  -1.263  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       4.571  -5.340  -1.796  0.00  0.00           H  
+ATOM    219  HG  SER A  14       4.313  -4.115   0.764  0.00  0.00           H  
+ATOM    220  N   GLY A  15       8.442  -3.922  -1.059  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       9.474  -3.182  -1.792  0.00  0.00           C  
+ATOM    222  C   GLY A  15       9.029  -1.817  -2.334  0.00  0.00           C  
+ATOM    223  O   GLY A  15       9.636  -1.322  -3.282  0.00  0.00           O  
+ATOM    224  H   GLY A  15       8.567  -4.078  -0.067  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15      10.326  -3.018  -1.132  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15       9.816  -3.786  -2.634  0.00  0.00           H  
+ATOM    227  N   ARG A  16       7.971  -1.217  -1.769  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       7.354   0.032  -2.244  0.00  0.00           C  
+ATOM    229  C   ARG A  16       6.844   0.894  -1.071  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.204   0.347  -0.168  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       6.234  -0.313  -3.248  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       5.064  -1.085  -2.611  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       4.139  -1.794  -3.605  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       4.801  -2.956  -4.225  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       5.278  -3.071  -5.455  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       5.210  -2.093  -6.329  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       5.864  -4.186  -5.822  0.00  0.00           N  
+ATOM    238  H   ARG A  16       7.549  -1.675  -0.973  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       8.120   0.589  -2.783  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       5.854   0.601  -3.662  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       6.672  -0.909  -4.049  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       5.474  -1.825  -1.951  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       4.465  -0.382  -2.044  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       3.261  -2.128  -3.087  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       3.785  -1.084  -4.353  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       4.929  -3.770  -3.646  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       4.742  -1.252  -6.044  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       5.588  -2.189  -7.251  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       5.998  -4.910  -5.134  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       6.200  -4.304  -6.756  0.00  0.00           H  
+ATOM    251  N   PRO A  17       7.087   2.220  -1.065  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.655   3.106   0.019  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.123   3.267   0.052  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.470   3.043  -0.971  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.355   4.442  -0.256  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.509   4.455  -1.776  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       7.758   2.986  -2.109  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       6.997   2.705   0.974  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       6.753   5.266   0.076  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.342   4.438   0.209  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       6.616   4.812  -2.251  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.338   5.087  -2.096  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       7.347   2.746  -3.071  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       8.828   2.777  -2.079  0.00  0.00           H  
+ATOM    265  N   PRO A  18       4.537   3.673   1.196  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       3.102   3.903   1.304  0.00  0.00           C  
+ATOM    267  C   PRO A  18       2.667   5.149   0.509  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.454   6.085   0.353  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       2.819   4.069   2.799  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       4.134   4.621   3.345  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       5.189   3.944   2.471  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       2.575   3.028   0.934  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       2.014   4.759   2.964  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       2.618   3.095   3.244  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       4.176   5.688   3.241  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       4.266   4.380   4.399  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       6.030   4.595   2.329  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       5.495   3.002   2.927  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.416   5.184   0.020  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       0.856   6.338  -0.670  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.274   7.370   0.308  0.00  0.00           C  
+ATOM    282  O   PRO A  19      -0.285   7.006   1.346  0.00  0.00           O  
+ATOM    283  CB  PRO A  19      -0.241   5.744  -1.552  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -0.772   4.583  -0.706  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       0.476   4.073   0.003  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       1.613   6.813  -1.296  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -1.012   6.464  -1.746  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19       0.214   5.358  -2.465  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -1.504   4.924   0.000  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -1.221   3.803  -1.320  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.238   3.772   1.005  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       0.911   3.257  -0.574  0.00  0.00           H  
+ATOM    293  N   SER A  20       0.317   8.642  -0.115  0.00  0.00           N  
+ATOM    294  CA  SER A  20      -0.113   9.835   0.640  0.00  0.00           C  
+ATOM    295  C   SER A  20       0.639  10.031   1.968  0.00  0.00           C  
+ATOM    296  O   SER A  20       0.066  10.720   2.840  0.00  0.00           O  
+ATOM    297  CB  SER A  20      -1.636   9.826   0.849  0.00  0.00           C  
+ATOM    298  OG  SER A  20      -2.305   9.711  -0.395  0.00  0.00           O  
+ATOM    299  OXT SER A  20       1.796   9.565   2.056  0.00  0.00           O  
+ATOM    300  H   SER A  20       0.838   8.806  -0.960  0.00  0.00           H  
+ATOM    301  HA  SER A  20       0.140  10.716   0.055  0.00  0.00           H  
+ATOM    302 1HB  SER A  20      -1.902   8.994   1.472  0.00  0.00           H  
+ATOM    303 2HB  SER A  20      -1.934  10.755   1.339  0.00  0.00           H  
+ATOM    304  HG  SER A  20      -1.851  10.287  -1.014  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MODEL       33                                                                  
+ATOM      1  N   ASN A   1      -9.696   2.810  -1.214  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -8.702   3.862  -0.904  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -7.320   3.416  -1.392  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -7.058   2.216  -1.401  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -8.682   4.180   0.603  0.00  0.00           C  
+ATOM      6  CG  ASN A   1      -7.901   5.460   0.875  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1      -6.683   5.431   0.961  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1      -8.563   6.601   0.949  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -9.798   2.712  -2.215  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -9.371   1.928  -0.840  0.00  0.00           H  
+ATOM     11 3H   ASN A   1     -10.593   3.041  -0.806  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -8.978   4.770  -1.442  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -9.690   4.302   0.950  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -8.208   3.365   1.150  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1      -9.568   6.669   0.919  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1      -7.997   7.418   1.129  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -6.450   4.362  -1.773  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -5.070   4.110  -2.206  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -4.261   3.274  -1.198  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -3.535   2.363  -1.600  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -4.351   5.440  -2.547  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -4.514   6.597  -1.528  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -3.229   7.411  -1.372  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -5.623   7.572  -1.951  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -6.706   5.331  -1.654  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -5.109   3.519  -3.122  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -3.303   5.230  -2.636  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -4.699   5.782  -3.523  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -4.759   6.191  -0.552  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -2.500   6.830  -0.816  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -2.824   7.681  -2.347  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -3.422   8.320  -0.800  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -5.295   8.148  -2.819  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -6.539   7.048  -2.209  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -5.828   8.260  -1.132  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -4.415   3.532   0.107  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.672   2.802   1.139  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -4.041   1.307   1.188  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.171   0.461   1.386  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -3.879   3.480   2.497  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -2.767   3.185   3.485  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -1.673   4.066   3.584  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -2.814   2.034   4.294  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -0.633   3.814   4.497  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -1.769   1.770   5.202  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -0.678   2.659   5.305  0.00  0.00           C  
+ATOM     47  OH  TYR A   3       0.328   2.397   6.181  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -5.030   4.292   0.388  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.611   2.866   0.893  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -3.928   4.541   2.345  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -4.839   3.176   2.920  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -1.623   4.947   2.966  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -3.646   1.348   4.217  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3       0.183   4.517   4.582  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -1.786   0.898   5.835  0.00  0.00           H  
+ATOM     56  HH  TYR A   3       1.000   3.080   6.149  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.317   0.964   0.945  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.797  -0.427   0.890  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -5.106  -1.182  -0.260  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -4.649  -2.312  -0.079  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.343  -0.481   0.776  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.026   0.176   2.003  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -7.809  -1.944   0.634  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -9.518   0.486   1.806  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -5.958   1.710   0.720  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.510  -0.925   1.817  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.647   0.059  -0.122  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -7.929  -0.490   2.838  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -7.538   1.122   2.236  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.478  -2.358  -0.319  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -7.398  -2.547   1.445  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -8.894  -2.016   0.659  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -9.642   1.219   1.013  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4     -10.080  -0.412   1.556  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4      -9.924   0.899   2.728  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -4.987  -0.542  -1.429  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -4.265  -1.071  -2.589  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.780  -1.329  -2.278  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -2.258  -2.372  -2.663  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -4.444  -0.110  -3.783  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -5.274  -0.705  -4.937  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -4.406  -1.168  -6.106  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -3.743  -0.382  -6.761  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -4.396  -2.444  -6.437  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -5.362   0.397  -1.487  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.696  -2.043  -2.836  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -4.937   0.777  -3.433  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -3.468   0.199  -4.159  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -5.827  -1.546  -4.565  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -5.939   0.070  -5.317  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -4.933  -3.137  -5.951  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -3.802  -2.637  -7.226  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -2.110  -0.425  -1.550  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.735  -0.642  -1.083  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.618  -1.798  -0.074  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.284  -2.632  -0.196  0.00  0.00           O  
+ATOM     97  CB  TRP A   6      -0.178   0.660  -0.502  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.220   0.560   0.030  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.344   0.499  -0.720  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.660   0.470   1.420  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.446   0.394   0.108  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       3.084   0.389   1.433  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       1.008   0.446   2.674  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.829   0.330   2.618  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.746   0.354   3.871  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       3.152   0.312   3.847  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.590   0.437  -1.304  0.00  0.00           H  
+ATOM    108  HA  TRP A   6      -0.120  -0.916  -1.942  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.189   1.403  -1.276  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -0.826   1.000   0.307  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.370   0.522  -1.801  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.422   0.342  -0.195  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6      -0.071   0.498   2.709  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       4.908   0.276   2.569  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       1.228   0.327   4.819  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.709   0.259   4.771  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.541  -1.889   0.896  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.582  -3.011   1.838  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.783  -4.360   1.136  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.117  -5.321   1.517  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.666  -2.803   2.908  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.354  -1.713   3.950  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.542  -1.608   4.912  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -1.090  -2.018   4.764  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.233  -1.146   0.975  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.612  -3.079   2.329  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.578  -2.536   2.410  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -2.803  -3.746   3.442  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -2.222  -0.755   3.451  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.453  -1.399   4.353  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -3.663  -2.544   5.458  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -3.376  -0.804   5.626  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -1.148  -3.021   5.187  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7      -0.210  -1.944   4.128  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -0.982  -1.297   5.571  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.633  -4.432   0.094  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -2.884  -5.655  -0.692  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.596  -6.330  -1.179  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.525  -7.556  -1.201  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -3.808  -5.329  -1.882  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -4.241  -6.587  -2.655  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -5.060  -6.237  -3.903  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -5.306  -7.504  -4.738  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -4.559  -7.485  -6.019  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -3.173  -3.595  -0.117  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.386  -6.377  -0.047  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -4.685  -4.834  -1.511  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -3.277  -4.670  -2.567  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -3.365  -7.128  -2.956  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -4.835  -7.226  -2.000  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -6.002  -5.819  -3.605  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -4.524  -5.490  -4.491  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -4.994  -8.359  -4.169  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -6.379  -7.594  -4.932  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -4.868  -6.712  -6.594  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -3.566  -7.387  -5.848  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -4.715  -8.344  -6.529  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -0.590  -5.540  -1.563  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.696  -6.034  -2.059  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.604  -6.602  -0.943  0.00  0.00           C  
+ATOM    161  O   ASP A   9       2.534  -7.350  -1.236  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       1.377  -4.885  -2.828  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       2.180  -5.390  -4.029  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9       3.423  -5.398  -3.944  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9       1.517  -5.724  -5.041  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -0.734  -4.540  -1.523  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.502  -6.844  -2.765  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       0.622  -4.207  -3.177  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       2.011  -4.308  -2.158  0.00  0.00           H  
+ATOM    170  N   GLY A  10       1.315  -6.291   0.335  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       2.125  -6.667   1.501  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.634  -5.488   2.350  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.490  -5.686   3.216  0.00  0.00           O  
+ATOM    174  H   GLY A  10       0.438  -5.808   0.503  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.519  -7.303   2.147  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.993  -7.245   1.182  0.00  0.00           H  
+ATOM    177  N   GLY A  11       2.132  -4.266   2.113  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.535  -3.041   2.809  0.00  0.00           C  
+ATOM    179  C   GLY A  11       4.061  -2.833   2.842  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.676  -2.729   1.777  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.459  -4.179   1.364  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       2.091  -2.192   2.292  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.124  -3.070   3.815  0.00  0.00           H  
+ATOM    184  N   PRO A  12       4.716  -2.764   4.022  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.173  -2.628   4.110  0.00  0.00           C  
+ATOM    186  C   PRO A  12       6.953  -3.752   3.413  0.00  0.00           C  
+ATOM    187  O   PRO A  12       8.085  -3.532   2.985  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.510  -2.614   5.607  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       5.200  -2.211   6.279  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       4.136  -2.801   5.356  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.463  -1.674   3.669  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       6.824  -3.586   5.936  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       7.309  -1.906   5.829  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       5.129  -2.629   7.265  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       5.116  -1.124   6.289  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       3.912  -3.811   5.640  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.224  -2.208   5.422  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.364  -4.949   3.290  0.00  0.00           N  
+ATOM    199  CA  SER A  13       7.032  -6.120   2.719  0.00  0.00           C  
+ATOM    200  C   SER A  13       7.005  -6.154   1.183  0.00  0.00           C  
+ATOM    201  O   SER A  13       7.560  -7.084   0.599  0.00  0.00           O  
+ATOM    202  CB  SER A  13       6.426  -7.399   3.310  0.00  0.00           C  
+ATOM    203  OG  SER A  13       7.402  -8.420   3.301  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.392  -5.053   3.575  0.00  0.00           H  
+ATOM    205  HA  SER A  13       8.080  -6.085   3.021  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       6.109  -7.214   4.318  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       5.557  -7.710   2.730  0.00  0.00           H  
+ATOM    208  HG  SER A  13       7.730  -8.506   2.397  0.00  0.00           H  
+ATOM    209  N   SER A  14       6.381  -5.157   0.538  0.00  0.00           N  
+ATOM    210  CA  SER A  14       6.165  -5.055  -0.915  0.00  0.00           C  
+ATOM    211  C   SER A  14       7.342  -4.457  -1.697  0.00  0.00           C  
+ATOM    212  O   SER A  14       7.309  -4.428  -2.924  0.00  0.00           O  
+ATOM    213  CB  SER A  14       4.964  -4.138  -1.174  0.00  0.00           C  
+ATOM    214  OG  SER A  14       3.864  -4.511  -0.377  0.00  0.00           O  
+ATOM    215  H   SER A  14       5.881  -4.475   1.098  0.00  0.00           H  
+ATOM    216  HA  SER A  14       5.937  -6.042  -1.321  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       5.238  -3.127  -0.943  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       4.688  -4.185  -2.225  0.00  0.00           H  
+ATOM    219  HG  SER A  14       3.188  -3.835  -0.468  0.00  0.00           H  
+ATOM    220  N   GLY A  15       8.357  -3.909  -1.017  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       9.474  -3.213  -1.669  0.00  0.00           C  
+ATOM    222  C   GLY A  15       9.156  -1.791  -2.160  0.00  0.00           C  
+ATOM    223  O   GLY A  15       9.942  -1.231  -2.920  0.00  0.00           O  
+ATOM    224  H   GLY A  15       8.341  -3.994  -0.010  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15      10.311  -3.152  -0.976  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15       9.800  -3.797  -2.532  0.00  0.00           H  
+ATOM    227  N   ARG A  16       8.024  -1.197  -1.741  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       7.568   0.140  -2.156  0.00  0.00           C  
+ATOM    229  C   ARG A  16       7.012   0.930  -0.956  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.231   0.354  -0.196  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       6.504  -0.029  -3.256  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       6.136   1.305  -3.920  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       5.111   1.119  -5.043  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       4.902   2.373  -5.790  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       4.118   3.394  -5.467  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       3.401   3.409  -4.368  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       4.046   4.440  -6.259  0.00  0.00           N  
+ATOM    238  H   ARG A  16       7.441  -1.716  -1.100  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       8.423   0.671  -2.576  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       6.886  -0.694  -4.006  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       5.608  -0.485  -2.831  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       5.722   1.960  -3.177  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       7.039   1.747  -4.344  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       5.466   0.364  -5.719  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       4.167   0.759  -4.628  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       5.422   2.462  -6.647  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       3.504   2.647  -3.718  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       2.814   4.189  -4.136  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       4.589   4.478  -7.103  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       3.453   5.213  -6.014  0.00  0.00           H  
+ATOM    251  N   PRO A  17       7.341   2.229  -0.790  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.828   3.050   0.313  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.302   3.268   0.240  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.711   3.118  -0.837  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.588   4.382   0.217  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.955   4.479  -1.259  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       8.236   3.024  -1.624  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       7.073   2.564   1.257  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       6.962   5.202   0.511  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.498   4.326   0.815  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       7.141   4.874  -1.836  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.825   5.116  -1.425  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       8.031   2.852  -2.663  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       9.270   2.778  -1.381  0.00  0.00           H  
+ATOM    265  N   PRO A  18       4.658   3.643   1.366  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       3.221   3.898   1.414  0.00  0.00           C  
+ATOM    267  C   PRO A  18       2.834   5.170   0.637  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.623   6.115   0.574  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       2.872   4.023   2.901  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       4.173   4.506   3.536  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       5.248   3.833   2.686  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       2.702   3.039   0.999  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       2.085   4.736   3.051  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       2.619   3.041   3.300  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       4.254   5.575   3.483  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       4.246   4.214   4.585  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       6.117   4.459   2.619  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       5.501   2.862   3.113  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.620   5.223   0.057  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       1.139   6.367  -0.722  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.477   7.473   0.123  0.00  0.00           C  
+ATOM    282  O   PRO A  19       0.201   8.545  -0.412  0.00  0.00           O  
+ATOM    283  CB  PRO A  19       0.125   5.747  -1.684  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -0.519   4.650  -0.831  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       0.673   4.117  -0.040  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       1.956   6.812  -1.290  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -0.603   6.470  -1.999  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19       0.651   5.295  -2.525  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -1.270   5.054  -0.179  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -0.979   3.875  -1.444  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.362   3.806   0.939  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       1.138   3.304  -0.597  0.00  0.00           H  
+ATOM    293  N   SER A  20       0.213   7.210   1.410  0.00  0.00           N  
+ATOM    294  CA  SER A  20      -0.379   8.118   2.401  0.00  0.00           C  
+ATOM    295  C   SER A  20       0.477   8.085   3.667  0.00  0.00           C  
+ATOM    296  O   SER A  20       0.871   9.175   4.129  0.00  0.00           O  
+ATOM    297  CB  SER A  20      -1.821   7.700   2.717  0.00  0.00           C  
+ATOM    298  OG  SER A  20      -2.657   8.835   2.780  0.00  0.00           O  
+ATOM    299  OXT SER A  20       0.731   6.946   4.124  0.00  0.00           O  
+ATOM    300  H   SER A  20       0.539   6.334   1.792  0.00  0.00           H  
+ATOM    301  HA  SER A  20      -0.376   9.140   2.021  0.00  0.00           H  
+ATOM    302 1HB  SER A  20      -2.175   7.041   1.948  0.00  0.00           H  
+ATOM    303 2HB  SER A  20      -1.844   7.173   3.675  0.00  0.00           H  
+ATOM    304  HG  SER A  20      -3.473   8.604   3.228  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MODEL       34                                                                  
+ATOM      1  N   ASN A   1      -5.799   7.830  -0.622  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -6.880   6.904  -1.045  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -6.385   5.527  -1.533  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -7.195   4.623  -1.680  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -7.825   7.579  -2.066  0.00  0.00           C  
+ATOM      6  CG  ASN A   1      -9.296   7.287  -1.763  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1      -9.622   6.455  -0.932  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1     -10.226   7.998  -2.373  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -5.221   7.401   0.088  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -5.228   8.093  -1.416  0.00  0.00           H  
+ATOM     11 3H   ASN A   1      -6.207   8.670  -0.235  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -7.484   6.690  -0.160  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -7.668   8.640  -2.035  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -7.593   7.245  -3.078  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1     -10.030   8.724  -3.044  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1     -11.167   7.758  -2.108  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -5.074   5.320  -1.762  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -4.517   4.062  -2.295  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -3.967   3.102  -1.219  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -3.428   2.045  -1.548  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -3.448   4.425  -3.346  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -4.051   4.779  -4.719  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -3.023   5.544  -5.556  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -4.473   3.517  -5.479  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -4.397   6.057  -1.657  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -5.309   3.505  -2.795  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -2.890   5.269  -2.989  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -2.757   3.592  -3.484  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -4.923   5.421  -4.583  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -2.817   6.509  -5.095  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -2.096   4.973  -5.628  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -3.417   5.717  -6.558  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -3.615   2.859  -5.616  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -5.251   2.986  -4.932  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -4.869   3.792  -6.456  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -4.114   3.440   0.068  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.557   2.674   1.187  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -4.050   1.217   1.220  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.279   0.313   1.534  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -3.871   3.401   2.505  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -2.796   3.226   3.558  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -1.836   4.240   3.749  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -2.742   2.051   4.335  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -0.837   4.088   4.726  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -1.743   1.897   5.317  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -0.793   2.923   5.516  0.00  0.00           C  
+ATOM     47  OH  TYR A   3       0.148   2.813   6.496  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -4.583   4.306   0.272  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.473   2.651   1.067  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -3.978   4.449   2.299  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -4.828   3.055   2.899  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -1.865   5.144   3.155  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -3.469   1.267   4.176  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3      -0.106   4.866   4.894  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -1.699   0.996   5.909  0.00  0.00           H  
+ATOM     56  HH  TYR A   3      -0.189   2.359   7.268  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.316   0.983   0.838  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.917  -0.354   0.736  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -5.164  -1.204  -0.302  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -4.740  -2.313   0.009  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.431  -0.260   0.419  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.188   0.682   1.392  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -8.073  -1.658   0.464  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -8.662   1.967   0.703  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -5.883   1.784   0.606  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.806  -0.849   1.701  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.550   0.118  -0.599  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -9.043   0.163   1.781  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -7.554   0.946   2.240  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.627  -2.311  -0.285  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -7.939  -2.102   1.451  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -9.141  -1.582   0.251  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -7.826   2.470   0.218  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4      -9.419   1.723  -0.045  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4      -9.102   2.636   1.442  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -4.951  -0.669  -1.512  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -4.159  -1.301  -2.575  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.710  -1.563  -2.137  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -2.195  -2.659  -2.357  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -4.205  -0.425  -3.844  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -5.431  -0.707  -4.723  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -5.229  -1.914  -5.660  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -4.748  -2.967  -5.270  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -5.591  -1.783  -6.912  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -5.269   0.277  -1.662  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.597  -2.273  -2.805  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -4.227   0.606  -3.547  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -3.305  -0.586  -4.439  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -6.272  -0.904  -4.086  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -5.620   0.176  -5.336  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -6.009  -0.948  -7.281  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -5.424  -2.601  -7.488  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -2.061  -0.590  -1.483  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.707  -0.761  -0.942  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.625  -1.886   0.103  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.254  -2.748   0.014  0.00  0.00           O  
+ATOM     97  CB  TRP A   6      -0.203   0.570  -0.378  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.188   0.516   0.176  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.328   0.543  -0.554  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.611   0.411   1.571  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.420   0.431   0.286  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       3.036   0.358   1.604  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       0.941   0.370   2.813  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.764   0.276   2.797  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.660   0.285   4.021  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       3.067   0.241   4.016  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.536   0.304  -1.365  0.00  0.00           H  
+ATOM    108  HA  TRP A   6      -0.047  -1.048  -1.761  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.223   1.298  -1.166  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -0.876   0.904   0.412  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.371   0.637  -1.631  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.399   0.438  -0.005  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6      -0.139   0.419   2.832  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       4.843   0.240   2.765  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       1.130   0.269   4.964  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.612   0.191   4.946  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.566  -1.931   1.058  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.690  -3.054   1.991  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.955  -4.378   1.260  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.318  -5.376   1.595  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.786  -2.777   3.037  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.391  -1.764   4.129  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.612  -1.492   5.013  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -1.258  -2.274   5.027  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.249  -1.176   1.107  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.737  -3.180   2.499  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.649  -2.397   2.525  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -3.042  -3.717   3.527  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -2.078  -0.829   3.669  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.419  -1.078   4.410  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -3.953  -2.420   5.476  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -3.357  -0.782   5.798  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -1.530  -3.234   5.465  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7      -0.339  -2.386   4.455  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -1.069  -1.559   5.827  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.824  -4.393   0.234  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -3.130  -5.587  -0.573  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.901  -6.192  -1.263  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.908  -7.378  -1.579  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -4.203  -5.259  -1.628  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -5.048  -6.490  -2.013  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -5.129  -6.766  -3.523  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -3.903  -7.532  -4.050  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -2.952  -6.665  -4.790  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -3.348  -3.538   0.053  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.517  -6.346   0.108  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -4.855  -4.504  -1.233  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -3.725  -4.833  -2.511  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -4.619  -7.352  -1.538  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -6.060  -6.319  -1.647  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -6.009  -7.348  -3.720  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -5.287  -5.837  -4.075  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -3.389  -7.970  -3.216  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -4.260  -8.327  -4.710  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -3.417  -6.219  -5.569  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -2.573  -5.948  -4.185  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -2.177  -7.215  -5.141  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -0.868  -5.389  -1.528  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.415  -5.850  -2.062  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.361  -6.433  -0.997  0.00  0.00           C  
+ATOM    161  O   ASP A   9       2.393  -7.000  -1.356  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       1.128  -4.679  -2.755  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       1.821  -5.147  -4.033  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9       1.092  -5.500  -4.985  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9       3.071  -5.076  -4.089  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -0.983  -4.400  -1.335  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.222  -6.632  -2.802  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       0.407  -3.924  -3.002  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       1.858  -4.239  -2.072  0.00  0.00           H  
+ATOM    170  N   GLY A  10       1.065  -6.245   0.295  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       1.887  -6.698   1.422  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.425  -5.583   2.330  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.181  -5.881   3.256  0.00  0.00           O  
+ATOM    174  H   GLY A  10       0.187  -5.780   0.519  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.284  -7.365   2.037  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.742  -7.268   1.059  0.00  0.00           H  
+ATOM    177  N   GLY A  11       2.061  -4.312   2.104  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.490  -3.202   2.957  0.00  0.00           C  
+ATOM    179  C   GLY A  11       4.026  -3.036   2.995  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.652  -3.007   1.932  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.472  -4.098   1.305  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       2.054  -2.278   2.582  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.093  -3.382   3.955  0.00  0.00           H  
+ATOM    184  N   PRO A  12       4.674  -2.922   4.179  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.124  -2.708   4.301  0.00  0.00           C  
+ATOM    186  C   PRO A  12       7.022  -3.877   3.833  0.00  0.00           C  
+ATOM    187  O   PRO A  12       8.218  -3.871   4.113  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.391  -2.376   5.780  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       5.023  -2.264   6.447  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       4.073  -2.998   5.504  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.387  -1.837   3.703  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       6.965  -3.158   6.239  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       6.935  -1.434   5.867  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       5.033  -2.731   7.413  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       4.734  -1.214   6.511  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       3.967  -4.022   5.806  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.094  -2.523   5.547  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.477  -4.893   3.152  0.00  0.00           N  
+ATOM    199  CA  SER A  13       7.175  -6.119   2.726  0.00  0.00           C  
+ATOM    200  C   SER A  13       7.263  -6.275   1.201  0.00  0.00           C  
+ATOM    201  O   SER A  13       7.639  -7.338   0.711  0.00  0.00           O  
+ATOM    202  CB  SER A  13       6.505  -7.331   3.383  0.00  0.00           C  
+ATOM    203  OG  SER A  13       6.754  -7.284   4.773  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.498  -4.804   2.901  0.00  0.00           H  
+ATOM    205  HA  SER A  13       8.208  -6.093   3.078  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       5.448  -7.301   3.204  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       6.916  -8.258   2.983  0.00  0.00           H  
+ATOM    208  HG  SER A  13       6.699  -6.365   5.049  0.00  0.00           H  
+ATOM    209  N   SER A  14       6.946  -5.213   0.448  0.00  0.00           N  
+ATOM    210  CA  SER A  14       6.719  -5.256  -1.005  0.00  0.00           C  
+ATOM    211  C   SER A  14       7.679  -4.357  -1.805  0.00  0.00           C  
+ATOM    212  O   SER A  14       7.475  -4.156  -3.000  0.00  0.00           O  
+ATOM    213  CB  SER A  14       5.251  -4.902  -1.299  0.00  0.00           C  
+ATOM    214  OG  SER A  14       4.376  -5.610  -0.441  0.00  0.00           O  
+ATOM    215  H   SER A  14       6.585  -4.411   0.948  0.00  0.00           H  
+ATOM    216  HA  SER A  14       6.876  -6.275  -1.359  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       5.108  -3.848  -1.154  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       5.023  -5.134  -2.341  0.00  0.00           H  
+ATOM    219  HG  SER A  14       3.677  -6.081  -0.956  0.00  0.00           H  
+ATOM    220  N   GLY A  15       8.709  -3.785  -1.159  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       9.714  -2.925  -1.800  0.00  0.00           C  
+ATOM    222  C   GLY A  15       9.190  -1.564  -2.282  0.00  0.00           C  
+ATOM    223  O   GLY A  15       9.812  -0.954  -3.149  0.00  0.00           O  
+ATOM    224  H   GLY A  15       8.834  -4.046  -0.191  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15      10.523  -2.738  -1.093  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15      10.138  -3.448  -2.658  0.00  0.00           H  
+ATOM    227  N   ARG A  16       8.055  -1.092  -1.742  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       7.352   0.126  -2.173  0.00  0.00           C  
+ATOM    229  C   ARG A  16       6.879   0.975  -0.975  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.283   0.422  -0.047  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       6.179  -0.250  -3.105  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       5.216  -1.290  -2.506  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       3.913  -1.453  -3.294  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       3.979  -2.564  -4.251  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       4.099  -2.562  -5.568  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       4.326  -1.471  -6.261  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       3.956  -3.703  -6.191  0.00  0.00           N  
+ATOM    238  H   ARG A  16       7.635  -1.646  -1.010  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       8.053   0.718  -2.760  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       5.622   0.641  -3.323  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       6.585  -0.650  -4.035  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       5.716  -2.239  -2.480  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       4.938  -1.000  -1.497  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       3.113  -1.638  -2.604  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       3.642  -0.518  -3.782  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       3.778  -3.506  -3.901  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       4.431  -0.607  -5.761  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       4.393  -1.513  -7.260  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       3.656  -4.483  -5.580  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       3.997  -3.809  -7.186  0.00  0.00           H  
+ATOM    251  N   PRO A  17       7.088   2.308  -0.976  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.623   3.182   0.103  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.085   3.329   0.103  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.453   3.095  -0.930  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.322   4.523  -0.149  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.496   4.553  -1.666  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       7.747   3.086  -2.015  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       6.949   2.777   1.062  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       6.713   5.342   0.184  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.304   4.513   0.328  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       6.610   4.918  -2.148  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.331   5.187  -1.966  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       7.329   2.855  -2.976  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       8.819   2.881  -1.995  0.00  0.00           H  
+ATOM    265  N   PRO A  18       4.472   3.730   1.236  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       3.027   3.921   1.331  0.00  0.00           C  
+ATOM    267  C   PRO A  18       2.560   5.180   0.573  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.278   6.182   0.545  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       2.729   4.033   2.829  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       4.024   4.603   3.406  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       5.103   3.976   2.524  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       2.530   3.041   0.935  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       1.904   4.696   3.008  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       2.555   3.040   3.241  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       4.040   5.673   3.332  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       4.152   4.336   4.455  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       5.931   4.649   2.412  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       5.423   3.028   2.956  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.350   5.165  -0.019  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       0.784   6.306  -0.729  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.140   7.315   0.240  0.00  0.00           C  
+ATOM    282  O   PRO A  19      -0.739   6.964   1.032  0.00  0.00           O  
+ATOM    283  CB  PRO A  19      -0.244   5.698  -1.684  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -0.754   4.477  -0.918  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       0.472   4.010  -0.137  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       1.559   6.806  -1.311  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -1.041   6.389  -1.882  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19       0.259   5.368  -2.595  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -1.552   4.747  -0.254  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -1.111   3.700  -1.593  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.182   3.664   0.836  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       0.986   3.234  -0.702  0.00  0.00           H  
+ATOM    293  N   SER A  20       0.543   8.582   0.113  0.00  0.00           N  
+ATOM    294  CA  SER A  20       0.016   9.748   0.833  0.00  0.00           C  
+ATOM    295  C   SER A  20      -0.159  10.912  -0.134  0.00  0.00           C  
+ATOM    296  O   SER A  20      -1.277  11.467  -0.133  0.00  0.00           O  
+ATOM    297  CB  SER A  20       0.963  10.142   1.970  0.00  0.00           C  
+ATOM    298  OG  SER A  20       0.800   9.241   3.044  0.00  0.00           O  
+ATOM    299  OXT SER A  20       0.816  11.191  -0.866  0.00  0.00           O  
+ATOM    300  H   SER A  20       1.245   8.811  -0.579  0.00  0.00           H  
+ATOM    301  HA  SER A  20      -0.972   9.534   1.233  0.00  0.00           H  
+ATOM    302 1HB  SER A  20       1.977  10.105   1.621  0.00  0.00           H  
+ATOM    303 2HB  SER A  20       0.729  11.154   2.307  0.00  0.00           H  
+ATOM    304  HG  SER A  20      -0.132   9.020   3.102  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MODEL       35                                                                  
+ATOM      1  N   ASN A   1      -5.868   7.107   0.465  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -6.755   6.451  -0.528  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -6.147   5.130  -1.011  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -6.599   4.083  -0.564  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -7.175   7.413  -1.661  0.00  0.00           C  
+ATOM      6  CG  ASN A   1      -8.572   7.064  -2.164  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1      -8.793   5.981  -2.676  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1      -9.552   7.938  -2.002  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -5.629   6.454   1.200  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -5.021   7.437   0.025  0.00  0.00           H  
+ATOM     11 3H   ASN A   1      -6.346   7.894   0.882  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -7.671   6.165  -0.007  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -7.174   8.419  -1.289  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -6.479   7.362  -2.498  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1      -9.433   8.852  -1.600  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1     -10.445   7.627  -2.351  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -5.067   5.159  -1.809  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -4.393   3.972  -2.370  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -3.815   2.986  -1.322  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -3.405   1.881  -1.670  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -3.318   4.475  -3.359  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -2.775   3.391  -4.321  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -2.886   3.852  -5.776  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -1.305   3.059  -4.036  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -4.731   6.044  -2.158  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -5.136   3.416  -2.944  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -3.747   5.262  -3.949  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -2.496   4.924  -2.803  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -3.366   2.482  -4.221  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -3.924   4.091  -6.007  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -2.264   4.732  -5.945  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -2.567   3.048  -6.440  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -0.682   3.941  -4.189  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -1.195   2.711  -3.010  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -0.974   2.268  -4.708  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -3.811   3.352  -0.033  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.274   2.565   1.082  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -3.871   1.151   1.162  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.162   0.203   1.485  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -3.498   3.331   2.395  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -2.474   3.026   3.471  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -1.445   3.950   3.728  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -2.556   1.845   4.232  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -0.515   3.719   4.759  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -1.614   1.596   5.250  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -0.602   2.538   5.524  0.00  0.00           C  
+ATOM     47  OH  TYR A   3       0.272   2.308   6.543  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -4.199   4.255   0.180  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.199   2.466   0.933  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -3.461   4.382   2.183  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -4.496   3.115   2.779  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -1.383   4.866   3.163  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -3.347   1.135   4.044  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3       0.238   4.465   4.970  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -1.662   0.704   5.850  0.00  0.00           H  
+ATOM     56  HH  TYR A   3       0.748   3.106   6.781  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.156   0.994   0.814  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.850  -0.301   0.744  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -5.166  -1.221  -0.284  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -4.867  -2.383   0.001  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.341  -0.069   0.393  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.074   0.816   1.434  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -8.093  -1.407   0.261  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -9.121   1.725   0.775  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -5.666   1.828   0.551  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.792  -0.788   1.718  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.379   0.436  -0.575  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -8.565   0.180   2.146  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -7.376   1.460   1.967  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.735  -1.962  -0.606  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -7.943  -2.009   1.159  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -9.159  -1.227   0.131  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -8.623   2.466   0.151  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4      -9.802   1.138   0.157  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4      -9.693   2.241   1.546  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -4.893  -0.684  -1.479  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -4.220  -1.377  -2.577  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.743  -1.658  -2.245  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -2.248  -2.748  -2.519  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -4.380  -0.533  -3.859  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -4.875  -1.373  -5.046  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -5.310  -0.493  -6.218  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -4.652   0.465  -6.592  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -6.447  -0.772  -6.830  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -5.079   0.301  -1.598  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.712  -2.339  -2.718  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -5.088   0.251  -3.671  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -3.433  -0.060  -4.120  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -4.081  -2.018  -5.371  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -5.728  -1.974  -4.725  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -7.033  -1.546  -6.574  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -6.664  -0.145  -7.586  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -2.061  -0.708  -1.593  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.699  -0.882  -1.080  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.600  -1.986  -0.008  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.299  -2.830  -0.069  0.00  0.00           O  
+ATOM     97  CB  TRP A   6      -0.198   0.465  -0.550  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.182   0.437   0.022  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.329   0.427  -0.694  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.580   0.373   1.425  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.407   0.351   0.167  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       3.005   0.332   1.482  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       0.886   0.337   2.656  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.709   0.283   2.693  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.584   0.265   3.877  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       2.991   0.248   3.900  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.532   0.184  -1.455  0.00  0.00           H  
+ATOM    108  HA  TRP A   6      -0.054  -1.185  -1.905  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.210   1.168  -1.360  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -0.877   0.814   0.226  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.391   0.455  -1.774  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.385   0.314  -0.130  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6      -0.194   0.363   2.653  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       4.789   0.251   2.682  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       1.036   0.230   4.808  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.515   0.202   4.842  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.541  -2.027   0.949  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.640  -3.112   1.929  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.889  -4.468   1.261  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.238  -5.436   1.646  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.740  -2.826   2.968  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.343  -1.833   4.074  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.572  -1.572   4.953  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -1.217  -2.363   4.972  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.224  -1.274   0.990  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.682  -3.200   2.437  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.591  -2.427   2.451  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -3.015  -3.766   3.448  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -2.019  -0.896   3.626  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.372  -1.143   4.348  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -3.920  -2.504   5.398  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -3.325  -0.876   5.753  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -1.486  -3.340   5.377  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7      -0.290  -2.450   4.406  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -1.040  -1.673   5.795  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.770  -4.540   0.248  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -3.034  -5.773  -0.517  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.772  -6.426  -1.091  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.728  -7.650  -1.174  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -4.047  -5.506  -1.649  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -5.490  -5.877  -1.287  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -5.698  -7.403  -1.249  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -7.160  -7.768  -0.972  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -8.019  -7.558  -2.161  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -3.298  -3.699   0.023  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.441  -6.510   0.174  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -4.017  -4.461  -1.891  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -3.763  -6.070  -2.541  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -5.721  -5.471  -0.321  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -6.147  -5.448  -2.044  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -5.409  -7.817  -2.196  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -5.085  -7.829  -0.456  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -7.211  -8.801  -0.686  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -7.517  -7.163  -0.132  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -7.967  -6.595  -2.466  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -7.713  -8.153  -2.920  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -8.983  -7.781  -1.944  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -0.765  -5.631  -1.463  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.519  -6.121  -1.972  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.445  -6.678  -0.865  0.00  0.00           C  
+ATOM    161  O   ASP A   9       2.350  -7.452  -1.161  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       1.192  -4.971  -2.744  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       2.106  -5.477  -3.863  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9       1.541  -5.942  -4.878  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9       3.339  -5.352  -3.715  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -0.913  -4.632  -1.417  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.324  -6.932  -2.676  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       0.429  -4.352  -3.175  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       1.743  -4.334  -2.055  0.00  0.00           H  
+ATOM    170  N   GLY A  10       1.199  -6.324   0.409  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       2.035  -6.695   1.561  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.549  -5.516   2.405  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.396  -5.721   3.280  0.00  0.00           O  
+ATOM    174  H   GLY A  10       0.336  -5.822   0.592  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.449  -7.339   2.217  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.902  -7.263   1.226  0.00  0.00           H  
+ATOM    177  N   GLY A  11       2.066  -4.289   2.167  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.482  -3.079   2.879  0.00  0.00           C  
+ATOM    179  C   GLY A  11       4.013  -2.881   2.908  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.621  -2.749   1.846  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.409  -4.178   1.404  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       2.044  -2.219   2.376  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.076  -3.118   3.887  0.00  0.00           H  
+ATOM    184  N   PRO A  12       4.676  -2.846   4.086  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.134  -2.696   4.170  0.00  0.00           C  
+ATOM    186  C   PRO A  12       6.928  -3.774   3.419  0.00  0.00           C  
+ATOM    187  O   PRO A  12       8.047  -3.516   2.983  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.477  -2.732   5.665  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       5.171  -2.350   6.354  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       4.103  -2.919   5.422  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.404  -1.720   3.765  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       6.791  -3.715   5.961  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       7.280  -2.035   5.906  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       5.107  -2.794   7.329  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       5.083  -1.262   6.389  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       3.883  -3.937   5.681  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.191  -2.329   5.510  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.360  -4.977   3.249  0.00  0.00           N  
+ATOM    199  CA  SER A  13       7.010  -6.099   2.562  0.00  0.00           C  
+ATOM    200  C   SER A  13       6.911  -6.017   1.027  0.00  0.00           C  
+ATOM    201  O   SER A  13       7.428  -6.898   0.345  0.00  0.00           O  
+ATOM    202  CB  SER A  13       6.444  -7.423   3.092  0.00  0.00           C  
+ATOM    203  OG  SER A  13       6.672  -7.521   4.489  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.417  -5.134   3.594  0.00  0.00           H  
+ATOM    205  HA  SER A  13       8.075  -6.080   2.799  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       5.389  -7.461   2.900  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       6.937  -8.259   2.596  0.00  0.00           H  
+ATOM    208  HG  SER A  13       7.611  -7.422   4.660  0.00  0.00           H  
+ATOM    209  N   SER A  14       6.292  -4.962   0.480  0.00  0.00           N  
+ATOM    210  CA  SER A  14       6.048  -4.754  -0.957  0.00  0.00           C  
+ATOM    211  C   SER A  14       7.176  -4.018  -1.697  0.00  0.00           C  
+ATOM    212  O   SER A  14       7.059  -3.747  -2.892  0.00  0.00           O  
+ATOM    213  CB  SER A  14       4.777  -3.919  -1.127  0.00  0.00           C  
+ATOM    214  OG  SER A  14       3.709  -4.470  -0.389  0.00  0.00           O  
+ATOM    215  H   SER A  14       5.828  -4.305   1.101  0.00  0.00           H  
+ATOM    216  HA  SER A  14       5.888  -5.719  -1.440  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       4.964  -2.920  -0.782  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       4.508  -3.877  -2.181  0.00  0.00           H  
+ATOM    219  HG  SER A  14       2.926  -3.939  -0.562  0.00  0.00           H  
+ATOM    220  N   GLY A  15       8.243  -3.596  -1.007  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       9.361  -2.835  -1.585  0.00  0.00           C  
+ATOM    222  C   GLY A  15       9.056  -1.352  -1.859  0.00  0.00           C  
+ATOM    223  O   GLY A  15       9.930  -0.509  -1.670  0.00  0.00           O  
+ATOM    224  H   GLY A  15       8.265  -3.821  -0.022  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15      10.215  -2.889  -0.911  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15       9.653  -3.296  -2.529  0.00  0.00           H  
+ATOM    227  N   ARG A  16       7.831  -1.015  -2.290  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       7.367   0.368  -2.493  0.00  0.00           C  
+ATOM    229  C   ARG A  16       6.877   0.999  -1.170  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.119   0.344  -0.451  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       6.250   0.369  -3.554  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       5.874   1.792  -3.992  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       4.768   1.802  -5.052  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       4.592   3.152  -5.624  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       5.342   3.725  -6.562  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       6.353   3.099  -7.118  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       5.089   4.951  -6.960  0.00  0.00           N  
+ATOM    238  H   ARG A  16       7.202  -1.790  -2.478  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       8.215   0.937  -2.874  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       6.587  -0.180  -4.412  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       5.369  -0.141  -3.162  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       5.534   2.339  -3.134  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       6.762   2.274  -4.401  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       5.029   1.120  -5.838  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       3.833   1.483  -4.587  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       3.843   3.705  -5.240  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       6.545   2.161  -6.819  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       6.918   3.536  -7.824  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       4.328   5.470  -6.560  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       5.659   5.373  -7.669  0.00  0.00           H  
+ATOM    251  N   PRO A  17       7.221   2.269  -0.859  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.705   2.983   0.318  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.183   3.245   0.249  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.594   3.146  -0.833  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.498   4.298   0.370  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.885   4.544  -1.084  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       8.134   3.131  -1.601  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       6.917   2.397   1.214  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       6.889   5.098   0.744  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.399   4.155   0.967  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       7.088   5.020  -1.623  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.772   5.172  -1.170  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       7.928   3.076  -2.653  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       9.163   2.835  -1.385  0.00  0.00           H  
+ATOM    265  N   PRO A  18       4.535   3.602   1.379  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       3.098   3.869   1.415  0.00  0.00           C  
+ATOM    267  C   PRO A  18       2.719   5.165   0.669  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.544   6.071   0.542  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       2.731   3.957   2.902  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       4.030   4.415   3.560  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       5.106   3.739   2.712  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       2.577   3.026   0.967  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       1.947   4.671   3.062  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       2.465   2.968   3.271  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       4.125   5.483   3.523  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       4.086   4.106   4.605  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       5.991   4.345   2.679  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       5.326   2.749   3.115  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.459   5.284   0.203  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       0.978   6.448  -0.545  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.572   7.643   0.336  0.00  0.00           C  
+ATOM    282  O   PRO A  19       0.552   8.771  -0.151  0.00  0.00           O  
+ATOM    283  CB  PRO A  19      -0.242   5.929  -1.311  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -0.801   4.845  -0.388  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       0.449   4.236   0.235  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       1.734   6.784  -1.254  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -0.960   6.711  -1.465  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19       0.084   5.476  -2.248  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -1.437   5.271   0.364  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -1.352   4.094  -0.947  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.254   3.936   1.246  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       0.782   3.395  -0.374  0.00  0.00           H  
+ATOM    293  N   SER A  20       0.203   7.390   1.598  0.00  0.00           N  
+ATOM    294  CA  SER A  20      -0.287   8.373   2.572  0.00  0.00           C  
+ATOM    295  C   SER A  20      -0.081   7.848   3.993  0.00  0.00           C  
+ATOM    296  O   SER A  20      -0.913   6.978   4.355  0.00  0.00           O  
+ATOM    297  CB  SER A  20      -1.774   8.674   2.311  0.00  0.00           C  
+ATOM    298  OG  SER A  20      -2.506   7.508   2.636  0.00  0.00           O  
+ATOM    299  OXT SER A  20       0.876   8.292   4.654  0.00  0.00           O  
+ATOM    300  H   SER A  20       0.248   6.431   1.907  0.00  0.00           H  
+ATOM    301  HA  SER A  20       0.288   9.295   2.477  0.00  0.00           H  
+ATOM    302 1HB  SER A  20      -2.096   9.492   2.926  0.00  0.00           H  
+ATOM    303 2HB  SER A  20      -1.935   8.957   1.270  0.00  0.00           H  
+ATOM    304  HG  SER A  20      -1.946   7.163   3.425  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MODEL       36                                                                  
+ATOM      1  N   ASN A   1      -8.345   5.007   0.601  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -8.415   4.187  -0.632  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -7.045   3.669  -1.059  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -6.816   2.479  -0.901  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -9.197   4.893  -1.758  0.00  0.00           C  
+ATOM      6  CG  ASN A   1     -10.643   5.166  -1.337  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1     -10.996   4.994  -0.179  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1     -11.503   5.612  -2.232  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -7.873   4.502   1.338  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -7.870   5.880   0.423  0.00  0.00           H  
+ATOM     11 3H   ASN A   1      -9.297   5.207   0.895  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -8.987   3.291  -0.382  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -8.717   5.825  -1.987  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -9.208   4.248  -2.640  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1     -11.263   5.791  -3.194  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1     -12.436   5.760  -1.880  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -6.121   4.518  -1.533  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -4.809   4.093  -2.051  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -4.031   3.175  -1.085  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -3.434   2.185  -1.506  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -3.963   5.337  -2.400  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -4.300   6.102  -3.694  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -4.155   5.211  -4.929  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -5.687   6.754  -3.691  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -6.348   5.491  -1.680  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -4.967   3.507  -2.957  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -4.062   6.029  -1.586  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -2.931   5.009  -2.510  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -3.568   6.906  -3.783  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -3.189   4.708  -4.910  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -4.950   4.465  -4.963  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -4.210   5.824  -5.829  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -6.467   5.996  -3.738  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -5.803   7.376  -2.804  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -5.778   7.392  -4.570  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -4.080   3.473   0.219  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.443   2.669   1.265  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -3.970   1.221   1.326  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.220   0.316   1.685  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -3.618   3.386   2.614  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -2.451   3.202   3.563  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -1.484   4.220   3.700  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -2.336   2.022   4.319  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -0.422   4.070   4.610  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -1.266   1.859   5.218  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -0.314   2.887   5.374  0.00  0.00           C  
+ATOM     47  OH  TYR A   3       0.689   2.738   6.281  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -4.533   4.332   0.484  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.376   2.623   1.045  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -3.738   4.435   2.426  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -4.533   3.034   3.097  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -1.561   5.130   3.117  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -3.073   1.242   4.208  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3       0.304   4.861   4.721  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -1.168   0.961   5.808  0.00  0.00           H  
+ATOM     56  HH  TYR A   3       1.122   3.570   6.477  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.233   0.982   0.940  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.848  -0.352   0.877  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -5.163  -1.178  -0.214  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -4.701  -2.283   0.059  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.377  -0.269   0.636  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.108   0.711   1.586  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -8.024  -1.663   0.703  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -8.003   0.381   3.081  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -5.759   1.748   0.533  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.674  -0.861   1.826  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.542   0.099  -0.378  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -7.695   1.690   1.433  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -9.164   0.739   1.316  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.622  -2.307  -0.080  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -7.834  -2.127   1.670  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -9.101  -1.579   0.552  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -8.525  -0.550   3.300  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4      -6.959   0.295   3.382  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4      -8.466   1.184   3.656  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -5.052  -0.619  -1.428  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -4.299  -1.207  -2.540  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.854  -1.505  -2.123  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -2.421  -2.646  -2.248  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -4.364  -0.280  -3.767  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -5.703  -0.407  -4.512  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -5.997   0.832  -5.354  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -6.747   1.710  -4.957  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -5.409   0.958  -6.528  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -5.422   0.315  -1.546  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.752  -2.163  -2.806  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -4.243   0.735  -3.441  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -3.560  -0.532  -4.460  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -5.663  -1.264  -5.156  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -6.516  -0.529  -3.797  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -4.765   0.277  -6.894  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -5.664   1.794  -7.028  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -2.139  -0.521  -1.559  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.764  -0.708  -1.080  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.621  -1.821  -0.023  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.282  -2.655  -0.123  0.00  0.00           O  
+ATOM     97  CB  TRP A   6      -0.226   0.624  -0.556  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.177   0.552  -0.041  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.291   0.506  -0.805  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.636   0.472   1.346  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.401   0.391   0.008  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       3.059   0.386   1.338  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       1.004   0.469   2.607  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.822   0.325   2.511  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.758   0.393   3.795  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       3.163   0.337   3.750  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.566   0.400  -1.493  0.00  0.00           H  
+ATOM    108  HA  TRP A   6      -0.148  -1.012  -1.929  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.256   1.338  -1.356  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -0.872   0.979   0.246  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.305   0.538  -1.888  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.371   0.349  -0.315  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6      -0.074   0.535   2.657  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       4.900   0.268   2.446  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       1.258   0.397   4.753  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.733   0.301   4.667  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.520  -1.885   0.971  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.546  -3.008   1.915  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.821  -4.345   1.210  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.199  -5.346   1.565  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.568  -2.758   3.038  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.110  -1.733   4.094  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.291  -1.398   5.011  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -0.966  -2.250   4.977  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.224  -1.155   1.053  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.553  -3.100   2.352  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.476  -2.399   2.593  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -2.769  -3.700   3.549  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -1.780  -0.823   3.598  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.097  -0.955   4.426  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -3.659  -2.303   5.495  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -2.979  -0.690   5.779  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -1.320  -3.059   5.617  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7      -0.139  -2.614   4.372  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -0.594  -1.440   5.602  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.683  -4.366   0.182  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -3.015  -5.563  -0.608  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.848  -6.159  -1.409  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.978  -7.286  -1.891  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -4.151  -5.246  -1.594  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -5.168  -6.394  -1.663  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -5.900  -6.429  -3.012  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -5.280  -7.448  -3.983  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -3.846  -7.183  -4.280  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -3.170  -3.498  -0.036  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.348  -6.330   0.093  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -4.653  -4.353  -1.273  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -3.719  -5.054  -2.577  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -4.651  -7.324  -1.524  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -5.894  -6.248  -0.863  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -6.926  -6.694  -2.842  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -5.919  -5.435  -3.463  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -5.363  -8.426  -3.549  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -5.865  -7.435  -4.907  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -3.724  -6.252  -4.654  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -3.274  -7.269  -3.437  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -3.500  -7.847  -4.959  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -0.761  -5.409  -1.606  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.518  -5.887  -2.146  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.477  -6.413  -1.062  0.00  0.00           C  
+ATOM    161  O   ASP A   9       2.507  -6.993  -1.402  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       1.203  -4.746  -2.916  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       0.565  -4.528  -4.288  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9      -0.287  -3.621  -4.405  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9       0.935  -5.288  -5.208  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -0.838  -4.424  -1.369  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.340  -6.709  -2.843  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       1.118  -3.841  -2.345  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       2.251  -4.998  -3.073  0.00  0.00           H  
+ATOM    170  N   GLY A  10       1.166  -6.210   0.226  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       1.990  -6.622   1.367  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.542  -5.464   2.208  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.334  -5.711   3.115  0.00  0.00           O  
+ATOM    174  H   GLY A  10       0.272  -5.773   0.437  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.386  -7.249   2.021  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.837  -7.217   1.024  0.00  0.00           H  
+ATOM    177  N   GLY A  11       2.159  -4.210   1.925  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.661  -3.046   2.655  0.00  0.00           C  
+ATOM    179  C   GLY A  11       4.200  -2.979   2.631  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.782  -3.116   1.550  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.535  -4.045   1.144  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       2.267  -2.143   2.192  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.290  -3.099   3.676  0.00  0.00           H  
+ATOM    184  N   PRO A  12       4.884  -2.799   3.785  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.347  -2.733   3.841  0.00  0.00           C  
+ATOM    186  C   PRO A  12       7.047  -3.937   3.195  0.00  0.00           C  
+ATOM    187  O   PRO A  12       8.110  -3.775   2.595  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.717  -2.624   5.327  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       5.445  -2.101   5.991  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       4.334  -2.698   5.130  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.671  -1.826   3.329  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       6.987  -3.584   5.724  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       7.555  -1.942   5.483  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       5.372  -2.442   7.006  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       5.418  -1.013   5.926  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       4.059  -3.669   5.495  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.452  -2.058   5.170  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.446  -5.136   3.263  0.00  0.00           N  
+ATOM    199  CA  SER A  13       7.011  -6.363   2.690  0.00  0.00           C  
+ATOM    200  C   SER A  13       7.149  -6.316   1.165  0.00  0.00           C  
+ATOM    201  O   SER A  13       7.983  -7.035   0.623  0.00  0.00           O  
+ATOM    202  CB  SER A  13       6.153  -7.573   3.073  0.00  0.00           C  
+ATOM    203  OG  SER A  13       6.053  -7.692   4.480  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.546  -5.219   3.725  0.00  0.00           H  
+ATOM    205  HA  SER A  13       8.010  -6.507   3.102  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       5.170  -7.453   2.659  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       6.605  -8.481   2.668  0.00  0.00           H  
+ATOM    208  HG  SER A  13       6.911  -7.936   4.835  0.00  0.00           H  
+ATOM    209  N   SER A  14       6.381  -5.460   0.473  0.00  0.00           N  
+ATOM    210  CA  SER A  14       6.506  -5.250  -0.977  0.00  0.00           C  
+ATOM    211  C   SER A  14       7.628  -4.264  -1.351  0.00  0.00           C  
+ATOM    212  O   SER A  14       7.865  -4.012  -2.530  0.00  0.00           O  
+ATOM    213  CB  SER A  14       5.167  -4.770  -1.558  0.00  0.00           C  
+ATOM    214  OG  SER A  14       4.894  -5.465  -2.757  0.00  0.00           O  
+ATOM    215  H   SER A  14       5.734  -4.866   0.986  0.00  0.00           H  
+ATOM    216  HA  SER A  14       6.748  -6.210  -1.440  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       4.383  -4.958  -0.850  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       5.209  -3.700  -1.766  0.00  0.00           H  
+ATOM    219  HG  SER A  14       3.943  -5.622  -2.814  0.00  0.00           H  
+ATOM    220  N   GLY A  15       8.305  -3.650  -0.369  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       9.425  -2.723  -0.566  0.00  0.00           C  
+ATOM    222  C   GLY A  15       9.041  -1.328  -1.080  0.00  0.00           C  
+ATOM    223  O   GLY A  15       9.718  -0.356  -0.750  0.00  0.00           O  
+ATOM    224  H   GLY A  15       8.061  -3.868   0.595  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15       9.946  -2.602   0.385  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15      10.124  -3.163  -1.277  0.00  0.00           H  
+ATOM    227  N   ARG A  16       7.963  -1.202  -1.869  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       7.437   0.089  -2.339  0.00  0.00           C  
+ATOM    229  C   ARG A  16       6.901   0.917  -1.155  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.143   0.369  -0.352  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       6.345  -0.153  -3.399  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       6.052   1.130  -4.193  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       5.045   0.908  -5.333  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       5.431   1.681  -6.532  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       5.978   1.218  -7.653  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       6.157  -0.064  -7.871  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       6.370   2.053  -8.588  0.00  0.00           N  
+ATOM    238  H   ARG A  16       7.514  -2.068  -2.147  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       8.272   0.615  -2.801  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       6.677  -0.916  -4.076  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       5.432  -0.513  -2.923  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       5.653   1.865  -3.521  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       6.992   1.485  -4.616  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       5.018  -0.136  -5.581  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       4.058   1.230  -4.997  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       5.320   2.679  -6.467  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       5.847  -0.713  -7.171  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       6.562  -0.400  -8.725  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       6.273   3.046  -8.463  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       6.787   1.699  -9.428  0.00  0.00           H  
+ATOM    251  N   PRO A  17       7.223   2.224  -1.040  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.725   3.069   0.048  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.198   3.267  -0.012  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.600   3.082  -1.075  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.472   4.402  -0.100  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.803   4.461  -1.589  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       8.084   2.999  -1.923  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       6.988   2.611   1.003  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       6.847   5.226   0.187  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.397   4.366   0.477  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       6.973   4.836  -2.156  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.662   5.098  -1.791  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       7.847   2.797  -2.950  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       9.128   2.763  -1.708  0.00  0.00           H  
+ATOM    265  N   PRO A  18       4.558   3.663   1.109  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       3.118   3.895   1.157  0.00  0.00           C  
+ATOM    267  C   PRO A  18       2.704   5.139   0.350  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.494   6.075   0.206  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       2.775   4.055   2.641  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       4.071   4.582   3.251  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       5.151   3.896   2.419  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       2.608   3.020   0.760  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       1.974   4.756   2.776  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       2.543   3.080   3.070  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       4.134   5.649   3.159  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       4.154   4.332   4.308  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       6.013   4.529   2.331  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       5.412   2.939   2.872  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.454   5.184  -0.142  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       0.910   6.335  -0.849  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.561   7.461   0.136  0.00  0.00           C  
+ATOM    282  O   PRO A  19      -0.109   7.228   1.144  0.00  0.00           O  
+ATOM    283  CB  PRO A  19      -0.325   5.804  -1.578  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -0.816   4.675  -0.671  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       0.464   4.121  -0.057  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       1.631   6.703  -1.581  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -1.071   6.569  -1.676  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19      -0.024   5.388  -2.541  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -1.472   5.053   0.089  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -1.335   3.905  -1.236  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.297   3.850   0.968  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       0.811   3.272  -0.645  0.00  0.00           H  
+ATOM    293  N   SER A  20       1.026   8.673  -0.178  0.00  0.00           N  
+ATOM    294  CA  SER A  20       0.698   9.933   0.494  0.00  0.00           C  
+ATOM    295  C   SER A  20      -0.638  10.528   0.034  0.00  0.00           C  
+ATOM    296  O   SER A  20      -1.052  10.270  -1.120  0.00  0.00           O  
+ATOM    297  CB  SER A  20       1.845  10.928   0.290  0.00  0.00           C  
+ATOM    298  OG  SER A  20       2.324  10.900  -1.046  0.00  0.00           O  
+ATOM    299  OXT SER A  20      -1.231  11.239   0.875  0.00  0.00           O  
+ATOM    300  H   SER A  20       1.554   8.807  -1.028  0.00  0.00           H  
+ATOM    301  HA  SER A  20       0.586   9.752   1.561  0.00  0.00           H  
+ATOM    302 1HB  SER A  20       1.493  11.917   0.514  0.00  0.00           H  
+ATOM    303 2HB  SER A  20       2.664  10.654   0.959  0.00  0.00           H  
+ATOM    304  HG  SER A  20       2.939  11.625  -1.177  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MODEL       37                                                                  
+ATOM      1  N   ASN A   1      -5.798   7.479   0.401  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -6.588   7.022  -0.767  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -6.199   5.613  -1.207  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -7.021   4.713  -1.096  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -6.557   8.030  -1.932  0.00  0.00           C  
+ATOM      6  CG  ASN A   1      -7.956   8.586  -2.147  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1      -8.343   9.541  -1.498  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1      -8.767   7.973  -2.991  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -5.816   6.777   1.127  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -4.838   7.655   0.131  0.00  0.00           H  
+ATOM     11 3H   ASN A   1      -6.193   8.335   0.767  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -7.627   6.938  -0.443  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -5.884   8.832  -1.696  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -6.214   7.562  -2.856  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1      -8.509   7.171  -3.541  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1      -9.676   8.400  -3.071  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -4.963   5.401  -1.676  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -4.527   4.127  -2.262  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -4.002   3.108  -1.223  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -3.490   2.051  -1.588  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -3.515   4.448  -3.386  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -3.518   3.386  -4.508  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -3.924   3.985  -5.857  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -2.165   2.687  -4.652  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -4.310   6.167  -1.771  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -5.403   3.668  -2.726  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -3.766   5.400  -3.813  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -2.516   4.554  -2.964  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -4.262   2.639  -4.267  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -4.932   4.396  -5.784  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -3.228   4.767  -6.155  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -3.936   3.199  -6.614  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -1.412   3.394  -5.001  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -1.857   2.272  -3.692  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -2.253   1.872  -5.370  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -4.143   3.405   0.077  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.594   2.622   1.192  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -4.041   1.158   1.165  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.239   0.261   1.408  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -3.976   3.276   2.532  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -2.857   3.224   3.553  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -2.132   4.392   3.837  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -2.508   2.017   4.182  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -1.039   4.360   4.722  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -1.412   1.972   5.068  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -0.662   3.140   5.323  0.00  0.00           C  
+ATOM     47  OH  TYR A   3       0.439   3.086   6.118  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -4.628   4.258   0.296  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.507   2.635   1.105  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -4.228   4.303   2.352  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -4.863   2.793   2.949  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -2.417   5.309   3.354  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -3.069   1.122   3.968  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3      -0.485   5.260   4.942  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -1.123   1.050   5.550  0.00  0.00           H  
+ATOM     56  HH  TYR A   3       0.954   3.895   6.046  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.313   0.913   0.819  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.875  -0.433   0.687  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -5.150  -1.213  -0.419  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -4.782  -2.367  -0.218  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.404  -0.376   0.441  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.133   0.538   1.461  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -7.996  -1.794   0.489  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -8.579   1.867   0.834  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -5.909   1.712   0.664  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.703  -0.963   1.625  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.582   0.014  -0.564  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -8.999   0.022   1.830  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -7.484   0.744   2.314  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.610  -2.395  -0.333  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -7.734  -2.278   1.431  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -9.082  -1.752   0.406  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -7.781   2.293   0.225  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4      -9.456   1.698   0.209  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4      -8.839   2.575   1.623  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -4.916  -0.587  -1.582  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -4.177  -1.207  -2.684  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.695  -1.416  -2.351  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -2.131  -2.431  -2.746  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -4.323  -0.379  -3.966  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -5.742  -0.393  -4.567  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -6.425   0.974  -4.548  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -6.408   1.714  -5.514  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -7.071   1.361  -3.464  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -5.081   0.408  -1.625  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.585  -2.193  -2.872  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -4.062   0.637  -3.742  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -3.636  -0.777  -4.715  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -5.677  -0.726  -5.585  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -6.369  -1.116  -4.046  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -7.192   0.797  -2.646  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -7.525   2.252  -3.586  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -2.077  -0.504  -1.595  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.720  -0.701  -1.084  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.636  -1.874  -0.089  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.249  -2.721  -0.206  0.00  0.00           O  
+ATOM     97  CB  TRP A   6      -0.212   0.612  -0.482  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.182   0.533   0.054  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.314   0.521  -0.685  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.608   0.404   1.443  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.408   0.380   0.147  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       3.031   0.317   1.470  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       0.937   0.364   2.685  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.755   0.214   2.665  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.654   0.247   3.892  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       3.057   0.179   3.883  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.581   0.349  -1.361  0.00  0.00           H  
+ATOM    108  HA  TRP A   6      -0.070  -0.958  -1.922  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.239   1.366  -1.245  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -0.876   0.919   0.324  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.354   0.591  -1.764  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.380   0.346  -0.171  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6      -0.140   0.441   2.699  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       4.832   0.162   2.632  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       1.123   0.229   4.833  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.599   0.110   4.815  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.578  -1.972   0.862  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.635  -3.091   1.807  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.938  -4.442   1.140  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.409  -5.445   1.613  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.649  -2.806   2.929  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.162  -1.784   3.974  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.325  -1.421   4.903  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -1.020  -2.318   4.848  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.263  -1.224   0.945  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.647  -3.201   2.250  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.548  -2.428   2.482  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -2.870  -3.739   3.450  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -1.826  -0.882   3.469  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.144  -0.999   4.320  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -3.677  -2.310   5.426  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -2.996  -0.686   5.638  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -1.350  -3.197   5.402  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7      -0.162  -2.584   4.235  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -0.705  -1.549   5.553  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.727  -4.482   0.050  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -3.029  -5.712  -0.710  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.781  -6.486  -1.146  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.824  -7.713  -1.157  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -3.877  -5.403  -1.959  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -5.382  -5.303  -1.680  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -6.121  -4.820  -2.936  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -7.604  -4.569  -2.640  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -8.094  -3.337  -3.303  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -3.183  -3.613  -0.220  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.587  -6.394  -0.066  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -3.547  -4.468  -2.369  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -3.735  -6.199  -2.691  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -5.755  -6.268  -1.398  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -5.561  -4.609  -0.862  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -5.672  -3.907  -3.278  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -6.030  -5.569  -3.726  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -8.176  -5.405  -2.994  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -7.739  -4.483  -1.558  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -7.671  -2.528  -2.870  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -7.852  -3.348  -4.286  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -9.100  -3.265  -3.217  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -0.706  -5.789  -1.524  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.553  -6.406  -1.949  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.294  -7.047  -0.758  0.00  0.00           C  
+ATOM    161  O   ASP A   9       1.606  -8.237  -0.786  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       1.394  -5.344  -2.675  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       2.486  -5.969  -3.549  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9       2.263  -6.015  -4.778  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9       3.523  -6.378  -2.986  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -0.768  -4.780  -1.507  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.326  -7.201  -2.662  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       0.747  -4.757  -3.298  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       1.836  -4.661  -1.952  0.00  0.00           H  
+ATOM    170  N   GLY A  10       1.509  -6.275   0.317  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       2.156  -6.749   1.545  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.683  -5.650   2.474  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.675  -5.864   3.179  0.00  0.00           O  
+ATOM    174  H   GLY A  10       1.256  -5.305   0.206  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.435  -7.344   2.107  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.991  -7.399   1.279  0.00  0.00           H  
+ATOM    177  N   GLY A  11       2.059  -4.463   2.477  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.499  -3.312   3.269  0.00  0.00           C  
+ATOM    179  C   GLY A  11       3.991  -2.994   3.056  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.434  -2.979   1.903  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.253  -4.352   1.879  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       1.923  -2.437   2.974  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.296  -3.527   4.316  0.00  0.00           H  
+ATOM    184  N   PRO A  12       4.793  -2.762   4.118  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.229  -2.487   3.995  0.00  0.00           C  
+ATOM    186  C   PRO A  12       7.028  -3.585   3.274  0.00  0.00           C  
+ATOM    187  O   PRO A  12       8.076  -3.294   2.700  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.752  -2.306   5.426  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       5.507  -2.017   6.260  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       4.401  -2.765   5.520  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.358  -1.552   3.450  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       7.237  -3.200   5.768  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       7.469  -1.487   5.487  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       5.620  -2.390   7.260  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       5.297  -0.947   6.247  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       4.322  -3.771   5.884  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.446  -2.266   5.679  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.542  -4.835   3.272  0.00  0.00           N  
+ATOM    199  CA  SER A  13       7.225  -5.960   2.613  0.00  0.00           C  
+ATOM    200  C   SER A  13       7.090  -5.923   1.084  0.00  0.00           C  
+ATOM    201  O   SER A  13       7.812  -6.639   0.397  0.00  0.00           O  
+ATOM    202  CB  SER A  13       6.715  -7.304   3.143  0.00  0.00           C  
+ATOM    203  OG  SER A  13       6.868  -7.384   4.548  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.615  -5.000   3.652  0.00  0.00           H  
+ATOM    205  HA  SER A  13       8.289  -5.899   2.846  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       5.676  -7.407   2.896  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       7.295  -8.107   2.686  0.00  0.00           H  
+ATOM    208  HG  SER A  13       6.175  -6.863   4.961  0.00  0.00           H  
+ATOM    209  N   SER A  14       6.215  -5.060   0.547  0.00  0.00           N  
+ATOM    210  CA  SER A  14       5.985  -4.853  -0.893  0.00  0.00           C  
+ATOM    211  C   SER A  14       7.162  -4.169  -1.609  0.00  0.00           C  
+ATOM    212  O   SER A  14       7.144  -4.019  -2.829  0.00  0.00           O  
+ATOM    213  CB  SER A  14       4.753  -3.963  -1.131  0.00  0.00           C  
+ATOM    214  OG  SER A  14       3.717  -4.170  -0.195  0.00  0.00           O  
+ATOM    215  H   SER A  14       5.645  -4.521   1.187  0.00  0.00           H  
+ATOM    216  HA  SER A  14       5.802  -5.822  -1.361  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       5.060  -2.936  -1.075  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       4.378  -4.145  -2.137  0.00  0.00           H  
+ATOM    219  HG  SER A  14       3.940  -3.652   0.618  0.00  0.00           H  
+ATOM    220  N   GLY A  15       8.149  -3.648  -0.867  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       9.308  -2.922  -1.397  0.00  0.00           C  
+ATOM    222  C   GLY A  15       9.025  -1.456  -1.756  0.00  0.00           C  
+ATOM    223  O   GLY A  15       9.889  -0.604  -1.556  0.00  0.00           O  
+ATOM    224  H   GLY A  15       8.079  -3.767   0.134  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15      10.105  -2.947  -0.656  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15       9.666  -3.429  -2.292  0.00  0.00           H  
+ATOM    227  N   ARG A  16       7.825  -1.141  -2.266  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       7.373   0.232  -2.551  0.00  0.00           C  
+ATOM    229  C   ARG A  16       6.899   0.948  -1.262  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.146   0.343  -0.492  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       6.251   0.175  -3.606  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       5.730   1.567  -4.005  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       4.469   1.519  -4.875  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       4.763   1.758  -6.300  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       3.916   2.227  -7.208  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       2.658   2.472  -6.918  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       4.320   2.468  -8.433  0.00  0.00           N  
+ATOM    238  H   ARG A  16       7.201  -1.921  -2.440  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       8.223   0.770  -2.970  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       6.631  -0.312  -4.483  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       5.424  -0.414  -3.204  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       5.505   2.115  -3.110  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       6.516   2.126  -4.513  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       4.016   0.551  -4.774  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       3.800   2.303  -4.511  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       5.706   1.581  -6.603  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       2.347   2.274  -5.983  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       2.019   2.829  -7.604  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       5.274   2.298  -8.697  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       3.671   2.823  -9.112  0.00  0.00           H  
+ATOM    251  N   PRO A  17       7.238   2.239  -1.049  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.752   3.031   0.091  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.220   3.248   0.078  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.591   3.120  -0.974  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.502   4.368   0.005  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.850   4.499  -1.475  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       8.119   3.053  -1.878  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       7.029   2.523   1.014  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       6.875   5.179   0.323  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.421   4.310   0.590  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       7.030   4.911  -2.031  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.722   5.135  -1.635  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       7.895   2.907  -2.917  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       9.157   2.796  -1.662  0.00  0.00           H  
+ATOM    265  N   PRO A  18       4.609   3.598   1.230  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       3.169   3.836   1.328  0.00  0.00           C  
+ATOM    267  C   PRO A  18       2.742   5.156   0.656  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.546   6.084   0.554  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       2.862   3.850   2.829  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       4.166   4.332   3.459  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       5.241   3.765   2.532  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       2.644   3.006   0.861  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       2.058   4.525   3.049  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       2.652   2.837   3.167  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       4.207   5.404   3.483  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       4.282   3.964   4.478  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       6.067   4.446   2.460  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       5.572   2.793   2.901  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.469   5.271   0.226  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       0.934   6.477  -0.411  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.511   7.576   0.577  0.00  0.00           C  
+ATOM    282  O   PRO A  19       0.337   8.718   0.154  0.00  0.00           O  
+ATOM    283  CB  PRO A  19      -0.292   5.993  -1.191  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -0.802   4.823  -0.346  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       0.482   4.200   0.195  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       1.665   6.898  -1.103  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -1.032   6.767  -1.264  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19       0.019   5.632  -2.172  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -1.428   5.170   0.453  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -1.362   4.109  -0.947  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.321   3.813   1.183  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       0.825   3.424  -0.490  0.00  0.00           H  
+ATOM    293  N   SER A  20       0.305   7.237   1.858  0.00  0.00           N  
+ATOM    294  CA  SER A  20      -0.121   8.153   2.922  0.00  0.00           C  
+ATOM    295  C   SER A  20       0.633   7.935   4.225  0.00  0.00           C  
+ATOM    296  O   SER A  20       1.271   6.865   4.365  0.00  0.00           O  
+ATOM    297  CB  SER A  20      -1.606   7.996   3.229  0.00  0.00           C  
+ATOM    298  OG  SER A  20      -1.979   9.152   3.934  0.00  0.00           O  
+ATOM    299  OXT SER A  20       0.418   8.818   5.086  0.00  0.00           O  
+ATOM    300  H   SER A  20       0.556   6.306   2.160  0.00  0.00           H  
+ATOM    301  HA  SER A  20       0.065   9.179   2.607  0.00  0.00           H  
+ATOM    302 1HB  SER A  20      -2.169   7.916   2.319  0.00  0.00           H  
+ATOM    303 2HB  SER A  20      -1.742   7.145   3.893  0.00  0.00           H  
+ATOM    304  HG  SER A  20      -1.222   9.307   4.547  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MODEL       38                                                                  
+ATOM      1  N   ASN A   1      -6.430   7.268  -0.166  0.00  0.00           N  
+ATOM      2  CA  ASN A   1      -7.338   6.541  -1.083  0.00  0.00           C  
+ATOM      3  C   ASN A   1      -6.741   5.186  -1.487  0.00  0.00           C  
+ATOM      4  O   ASN A   1      -7.302   4.173  -1.103  0.00  0.00           O  
+ATOM      5  CB  ASN A   1      -7.816   7.420  -2.263  0.00  0.00           C  
+ATOM      6  CG  ASN A   1      -6.722   7.736  -3.278  0.00  0.00           C  
+ATOM      7  OD1 ASN A   1      -6.455   6.960  -4.175  0.00  0.00           O  
+ATOM      8  ND2 ASN A   1      -5.989   8.824  -3.136  0.00  0.00           N  
+ATOM      9 1H   ASN A   1      -6.139   6.658   0.586  0.00  0.00           H  
+ATOM     10 2H   ASN A   1      -5.611   7.592  -0.664  0.00  0.00           H  
+ATOM     11 3H   ASN A   1      -6.908   8.064   0.234  0.00  0.00           H  
+ATOM     12  HA  ASN A   1      -8.233   6.285  -0.514  0.00  0.00           H  
+ATOM     13 1HB  ASN A   1      -8.609   6.904  -2.770  0.00  0.00           H  
+ATOM     14 2HB  ASN A   1      -8.228   8.355  -1.876  0.00  0.00           H  
+ATOM     15 1HD2 ASN A   1      -6.187   9.584  -2.506  0.00  0.00           H  
+ATOM     16 2HD2 ASN A   1      -5.321   8.935  -3.885  0.00  0.00           H  
+ATOM     17  N   LEU A   2      -5.581   5.139  -2.154  0.00  0.00           N  
+ATOM     18  CA  LEU A   2      -4.935   3.924  -2.679  0.00  0.00           C  
+ATOM     19  C   LEU A   2      -4.238   3.028  -1.631  0.00  0.00           C  
+ATOM     20  O   LEU A   2      -3.619   2.024  -1.985  0.00  0.00           O  
+ATOM     21  CB  LEU A   2      -3.974   4.371  -3.806  0.00  0.00           C  
+ATOM     22  CG  LEU A   2      -4.642   4.256  -5.191  0.00  0.00           C  
+ATOM     23  CD1 LEU A   2      -3.992   5.215  -6.190  0.00  0.00           C  
+ATOM     24  CD2 LEU A   2      -4.527   2.822  -5.718  0.00  0.00           C  
+ATOM     25  H   LEU A   2      -5.206   6.000  -2.526  0.00  0.00           H  
+ATOM     26  HA  LEU A   2      -5.713   3.296  -3.117  0.00  0.00           H  
+ATOM     27 1HB  LEU A   2      -3.690   5.392  -3.639  0.00  0.00           H  
+ATOM     28 2HB  LEU A   2      -3.065   3.769  -3.800  0.00  0.00           H  
+ATOM     29  HG  LEU A   2      -5.698   4.515  -5.115  0.00  0.00           H  
+ATOM     30 1HD1 LEU A   2      -4.204   6.242  -5.892  0.00  0.00           H  
+ATOM     31 2HD1 LEU A   2      -2.915   5.058  -6.224  0.00  0.00           H  
+ATOM     32 3HD1 LEU A   2      -4.414   5.054  -7.182  0.00  0.00           H  
+ATOM     33 1HD2 LEU A   2      -3.478   2.549  -5.839  0.00  0.00           H  
+ATOM     34 2HD2 LEU A   2      -4.998   2.131  -5.020  0.00  0.00           H  
+ATOM     35 3HD2 LEU A   2      -5.031   2.745  -6.681  0.00  0.00           H  
+ATOM     36  N   TYR A   3      -4.360   3.359  -0.340  0.00  0.00           N  
+ATOM     37  CA  TYR A   3      -3.724   2.648   0.772  0.00  0.00           C  
+ATOM     38  C   TYR A   3      -4.137   1.169   0.856  0.00  0.00           C  
+ATOM     39  O   TYR A   3      -3.317   0.329   1.227  0.00  0.00           O  
+ATOM     40  CB  TYR A   3      -4.029   3.379   2.090  0.00  0.00           C  
+ATOM     41  CG  TYR A   3      -2.887   3.312   3.082  0.00  0.00           C  
+ATOM     42  CD1 TYR A   3      -1.861   4.274   3.013  0.00  0.00           C  
+ATOM     43  CD2 TYR A   3      -2.830   2.295   4.054  0.00  0.00           C  
+ATOM     44  CE1 TYR A   3      -0.765   4.215   3.892  0.00  0.00           C  
+ATOM     45  CE2 TYR A   3      -1.745   2.242   4.951  0.00  0.00           C  
+ATOM     46  CZ  TYR A   3      -0.706   3.197   4.866  0.00  0.00           C  
+ATOM     47  OH  TYR A   3       0.351   3.124   5.717  0.00  0.00           O  
+ATOM     48  H   TYR A   3      -4.937   4.156  -0.129  0.00  0.00           H  
+ATOM     49  HA  TYR A   3      -2.646   2.676   0.609  0.00  0.00           H  
+ATOM     50 1HB  TYR A   3      -4.231   4.410   1.870  0.00  0.00           H  
+ATOM     51 2HB  TYR A   3      -4.934   2.967   2.541  0.00  0.00           H  
+ATOM     52  HD1 TYR A   3      -1.912   5.069   2.285  0.00  0.00           H  
+ATOM     53  HD2 TYR A   3      -3.617   1.558   4.111  0.00  0.00           H  
+ATOM     54  HE1 TYR A   3       0.013   4.960   3.818  0.00  0.00           H  
+ATOM     55  HE2 TYR A   3      -1.685   1.473   5.706  0.00  0.00           H  
+ATOM     56  HH  TYR A   3       1.074   3.686   5.430  0.00  0.00           H  
+ATOM     57  N   ILE A   4      -5.379   0.841   0.456  0.00  0.00           N  
+ATOM     58  CA  ILE A   4      -5.867  -0.543   0.382  0.00  0.00           C  
+ATOM     59  C   ILE A   4      -4.972  -1.370  -0.545  0.00  0.00           C  
+ATOM     60  O   ILE A   4      -4.513  -2.431  -0.139  0.00  0.00           O  
+ATOM     61  CB  ILE A   4      -7.351  -0.631  -0.056  0.00  0.00           C  
+ATOM     62  CG1 ILE A   4      -8.267   0.276   0.803  0.00  0.00           C  
+ATOM     63  CG2 ILE A   4      -7.848  -2.085   0.043  0.00  0.00           C  
+ATOM     64  CD1 ILE A   4      -8.626   1.595   0.106  0.00  0.00           C  
+ATOM     65  H   ILE A   4      -5.992   1.589   0.165  0.00  0.00           H  
+ATOM     66  HA  ILE A   4      -5.785  -0.978   1.379  0.00  0.00           H  
+ATOM     67  HB  ILE A   4      -7.431  -0.341  -1.106  0.00  0.00           H  
+ATOM     68 1HG1 ILE A   4      -9.174  -0.257   1.016  0.00  0.00           H  
+ATOM     69 2HG1 ILE A   4      -7.782   0.492   1.756  0.00  0.00           H  
+ATOM     70 1HG2 ILE A   4      -7.271  -2.734  -0.616  0.00  0.00           H  
+ATOM     71 2HG2 ILE A   4      -7.761  -2.445   1.069  0.00  0.00           H  
+ATOM     72 3HG2 ILE A   4      -8.892  -2.140  -0.270  0.00  0.00           H  
+ATOM     73 1HD1 ILE A   4      -7.974   1.772  -0.749  0.00  0.00           H  
+ATOM     74 2HD1 ILE A   4      -9.658   1.551  -0.248  0.00  0.00           H  
+ATOM     75 3HD1 ILE A   4      -8.528   2.422   0.809  0.00  0.00           H  
+ATOM     76  N   GLN A   5      -4.692  -0.874  -1.757  0.00  0.00           N  
+ATOM     77  CA  GLN A   5      -3.867  -1.563  -2.751  0.00  0.00           C  
+ATOM     78  C   GLN A   5      -2.445  -1.809  -2.222  0.00  0.00           C  
+ATOM     79  O   GLN A   5      -1.929  -2.921  -2.330  0.00  0.00           O  
+ATOM     80  CB  GLN A   5      -3.847  -0.743  -4.058  0.00  0.00           C  
+ATOM     81  CG  GLN A   5      -3.727  -1.623  -5.311  0.00  0.00           C  
+ATOM     82  CD  GLN A   5      -5.084  -2.186  -5.734  0.00  0.00           C  
+ATOM     83  OE1 GLN A   5      -5.698  -2.984  -5.042  0.00  0.00           O  
+ATOM     84  NE2 GLN A   5      -5.615  -1.776  -6.871  0.00  0.00           N  
+ATOM     85  H   GLN A   5      -5.036   0.048  -1.986  0.00  0.00           H  
+ATOM     86  HA  GLN A   5      -4.323  -2.535  -2.945  0.00  0.00           H  
+ATOM     87 1HB  GLN A   5      -4.757  -0.178  -4.122  0.00  0.00           H  
+ATOM     88 2HB  GLN A   5      -3.011  -0.043  -4.034  0.00  0.00           H  
+ATOM     89 1HG  GLN A   5      -3.329  -1.033  -6.114  0.00  0.00           H  
+ATOM     90 2HG  GLN A   5      -3.035  -2.447  -5.128  0.00  0.00           H  
+ATOM     91 1HE2 GLN A   5      -5.153  -1.128  -7.485  0.00  0.00           H  
+ATOM     92 2HE2 GLN A   5      -6.510  -2.185  -7.079  0.00  0.00           H  
+ATOM     93  N   TRP A   6      -1.839  -0.788  -1.599  0.00  0.00           N  
+ATOM     94  CA  TRP A   6      -0.525  -0.892  -0.956  0.00  0.00           C  
+ATOM     95  C   TRP A   6      -0.505  -1.946   0.161  0.00  0.00           C  
+ATOM     96  O   TRP A   6       0.383  -2.798   0.180  0.00  0.00           O  
+ATOM     97  CB  TRP A   6      -0.095   0.486  -0.442  0.00  0.00           C  
+ATOM     98  CG  TRP A   6       1.244   0.517   0.231  0.00  0.00           C  
+ATOM     99  CD1 TRP A   6       2.442   0.440  -0.391  0.00  0.00           C  
+ATOM    100  CD2 TRP A   6       1.543   0.573   1.661  0.00  0.00           C  
+ATOM    101  NE1 TRP A   6       3.455   0.482   0.546  0.00  0.00           N  
+ATOM    102  CE2 TRP A   6       2.959   0.563   1.826  0.00  0.00           C  
+ATOM    103  CE3 TRP A   6       0.765   0.602   2.836  0.00  0.00           C  
+ATOM    104  CZ2 TRP A   6       3.578   0.610   3.082  0.00  0.00           C  
+ATOM    105  CZ3 TRP A   6       1.375   0.609   4.105  0.00  0.00           C  
+ATOM    106  CH2 TRP A   6       2.774   0.632   4.232  0.00  0.00           C  
+ATOM    107  H   TRP A   6      -2.350   0.086  -1.539  0.00  0.00           H  
+ATOM    108  HA  TRP A   6       0.198  -1.218  -1.705  0.00  0.00           H  
+ATOM    109 1HB  TRP A   6      -0.064   1.159  -1.277  0.00  0.00           H  
+ATOM    110 2HB  TRP A   6      -0.841   0.856   0.262  0.00  0.00           H  
+ATOM    111  HD1 TRP A   6       2.583   0.342  -1.457  0.00  0.00           H  
+ATOM    112  HE1 TRP A   6       4.453   0.438   0.329  0.00  0.00           H  
+ATOM    113  HE3 TRP A   6      -0.312   0.606   2.755  0.00  0.00           H  
+ATOM    114  HZ2 TRP A   6       4.655   0.607   3.156  0.00  0.00           H  
+ATOM    115  HZ3 TRP A   6       0.762   0.609   4.996  0.00  0.00           H  
+ATOM    116  HH2 TRP A   6       3.223   0.656   5.215  0.00  0.00           H  
+ATOM    117  N   LEU A   7      -1.495  -1.933   1.067  0.00  0.00           N  
+ATOM    118  CA  LEU A   7      -1.631  -2.979   2.085  0.00  0.00           C  
+ATOM    119  C   LEU A   7      -1.880  -4.365   1.470  0.00  0.00           C  
+ATOM    120  O   LEU A   7      -1.286  -5.334   1.938  0.00  0.00           O  
+ATOM    121  CB  LEU A   7      -2.736  -2.618   3.092  0.00  0.00           C  
+ATOM    122  CG  LEU A   7      -2.373  -1.484   4.072  0.00  0.00           C  
+ATOM    123  CD1 LEU A   7      -3.572  -1.205   4.981  0.00  0.00           C  
+ATOM    124  CD2 LEU A   7      -1.173  -1.831   4.963  0.00  0.00           C  
+ATOM    125  H   LEU A   7      -2.195  -1.196   1.019  0.00  0.00           H  
+ATOM    126  HA  LEU A   7      -0.684  -3.061   2.616  0.00  0.00           H  
+ATOM    127 1HB  LEU A   7      -3.605  -2.317   2.540  0.00  0.00           H  
+ATOM    128 2HB  LEU A   7      -2.968  -3.507   3.680  0.00  0.00           H  
+ATOM    129  HG  LEU A   7      -2.145  -0.578   3.513  0.00  0.00           H  
+ATOM    130 1HD1 LEU A   7      -4.432  -0.914   4.377  0.00  0.00           H  
+ATOM    131 2HD1 LEU A   7      -3.821  -2.097   5.558  0.00  0.00           H  
+ATOM    132 3HD1 LEU A   7      -3.338  -0.395   5.671  0.00  0.00           H  
+ATOM    133 1HD2 LEU A   7      -1.337  -2.790   5.456  0.00  0.00           H  
+ATOM    134 2HD2 LEU A   7      -0.263  -1.882   4.367  0.00  0.00           H  
+ATOM    135 3HD2 LEU A   7      -1.035  -1.059   5.719  0.00  0.00           H  
+ATOM    136  N   LYS A   8      -2.706  -4.471   0.416  0.00  0.00           N  
+ATOM    137  CA  LYS A   8      -3.040  -5.736  -0.258  0.00  0.00           C  
+ATOM    138  C   LYS A   8      -1.805  -6.466  -0.789  0.00  0.00           C  
+ATOM    139  O   LYS A   8      -1.742  -7.687  -0.688  0.00  0.00           O  
+ATOM    140  CB  LYS A   8      -4.034  -5.485  -1.410  0.00  0.00           C  
+ATOM    141  CG  LYS A   8      -4.931  -6.689  -1.757  0.00  0.00           C  
+ATOM    142  CD  LYS A   8      -6.238  -6.726  -0.944  0.00  0.00           C  
+ATOM    143  CE  LYS A   8      -6.111  -7.395   0.434  0.00  0.00           C  
+ATOM    144  NZ  LYS A   8      -6.596  -8.795   0.413  0.00  0.00           N  
+ATOM    145  H   LYS A   8      -3.180  -3.623   0.110  0.00  0.00           H  
+ATOM    146  HA  LYS A   8      -3.483  -6.388   0.485  0.00  0.00           H  
+ATOM    147 1HB  LYS A   8      -4.667  -4.665  -1.133  0.00  0.00           H  
+ATOM    148 2HB  LYS A   8      -3.469  -5.209  -2.302  0.00  0.00           H  
+ATOM    149 1HG  LYS A   8      -5.179  -6.640  -2.800  0.00  0.00           H  
+ATOM    150 2HG  LYS A   8      -4.383  -7.626  -1.648  0.00  0.00           H  
+ATOM    151 1HD  LYS A   8      -6.571  -5.716  -0.797  0.00  0.00           H  
+ATOM    152 2HD  LYS A   8      -6.998  -7.246  -1.531  0.00  0.00           H  
+ATOM    153 1HE  LYS A   8      -5.079  -7.389   0.729  0.00  0.00           H  
+ATOM    154 2HE  LYS A   8      -6.699  -6.816   1.151  0.00  0.00           H  
+ATOM    155 1HZ  LYS A   8      -7.551  -8.825   0.081  0.00  0.00           H  
+ATOM    156 2HZ  LYS A   8      -6.018  -9.355  -0.202  0.00  0.00           H  
+ATOM    157 3HZ  LYS A   8      -6.565  -9.193   1.343  0.00  0.00           H  
+ATOM    158  N   ASP A   9      -0.838  -5.715  -1.323  0.00  0.00           N  
+ATOM    159  CA  ASP A   9       0.450  -6.224  -1.807  0.00  0.00           C  
+ATOM    160  C   ASP A   9       1.375  -6.712  -0.666  0.00  0.00           C  
+ATOM    161  O   ASP A   9       2.268  -7.521  -0.902  0.00  0.00           O  
+ATOM    162  CB  ASP A   9       1.122  -5.114  -2.638  0.00  0.00           C  
+ATOM    163  CG  ASP A   9       1.749  -5.645  -3.931  0.00  0.00           C  
+ATOM    164  OD1 ASP A   9       2.908  -6.107  -3.879  0.00  0.00           O  
+ATOM    165  OD2 ASP A   9       1.053  -5.563  -4.967  0.00  0.00           O  
+ATOM    166  H   ASP A   9      -1.027  -4.724  -1.433  0.00  0.00           H  
+ATOM    167  HA  ASP A   9       0.258  -7.078  -2.459  0.00  0.00           H  
+ATOM    168 1HB  ASP A   9       0.383  -4.379  -2.891  0.00  0.00           H  
+ATOM    169 2HB  ASP A   9       1.874  -4.603  -2.038  0.00  0.00           H  
+ATOM    170  N   GLY A  10       1.131  -6.267   0.578  0.00  0.00           N  
+ATOM    171  CA  GLY A  10       1.947  -6.573   1.759  0.00  0.00           C  
+ATOM    172  C   GLY A  10       2.471  -5.343   2.517  0.00  0.00           C  
+ATOM    173  O   GLY A  10       3.312  -5.492   3.405  0.00  0.00           O  
+ATOM    174  H   GLY A  10       0.292  -5.717   0.714  0.00  0.00           H  
+ATOM    175 1HA  GLY A  10       1.343  -7.159   2.453  0.00  0.00           H  
+ATOM    176 2HA  GLY A  10       2.809  -7.177   1.472  0.00  0.00           H  
+ATOM    177  N   GLY A  11       2.017  -4.128   2.178  0.00  0.00           N  
+ATOM    178  CA  GLY A  11       2.486  -2.885   2.787  0.00  0.00           C  
+ATOM    179  C   GLY A  11       4.008  -2.719   2.637  0.00  0.00           C  
+ATOM    180  O   GLY A  11       4.503  -2.800   1.506  0.00  0.00           O  
+ATOM    181  H   GLY A  11       1.396  -4.039   1.378  0.00  0.00           H  
+ATOM    182 1HA  GLY A  11       2.001  -2.048   2.288  0.00  0.00           H  
+ATOM    183 2HA  GLY A  11       2.186  -2.879   3.832  0.00  0.00           H  
+ATOM    184  N   PRO A  12       4.780  -2.519   3.728  0.00  0.00           N  
+ATOM    185  CA  PRO A  12       6.239  -2.387   3.665  0.00  0.00           C  
+ATOM    186  C   PRO A  12       6.950  -3.575   3.000  0.00  0.00           C  
+ATOM    187  O   PRO A  12       7.979  -3.391   2.354  0.00  0.00           O  
+ATOM    188  CB  PRO A  12       6.713  -2.228   5.117  0.00  0.00           C  
+ATOM    189  CG  PRO A  12       5.470  -1.751   5.866  0.00  0.00           C  
+ATOM    190  CD  PRO A  12       4.331  -2.431   5.110  0.00  0.00           C  
+ATOM    191  HA  PRO A  12       6.480  -1.479   3.109  0.00  0.00           H  
+ATOM    192 1HB  PRO A  12       7.058  -3.165   5.510  0.00  0.00           H  
+ATOM    193 2HB  PRO A  12       7.527  -1.506   5.194  0.00  0.00           H  
+ATOM    194 1HG  PRO A  12       5.494  -2.065   6.892  0.00  0.00           H  
+ATOM    195 2HG  PRO A  12       5.378  -0.669   5.771  0.00  0.00           H  
+ATOM    196 1HD  PRO A  12       4.149  -3.411   5.508  0.00  0.00           H  
+ATOM    197 2HD  PRO A  12       3.421  -1.842   5.212  0.00  0.00           H  
+ATOM    198  N   SER A  13       6.391  -4.788   3.108  0.00  0.00           N  
+ATOM    199  CA  SER A  13       6.963  -6.030   2.565  0.00  0.00           C  
+ATOM    200  C   SER A  13       6.817  -6.172   1.040  0.00  0.00           C  
+ATOM    201  O   SER A  13       7.075  -7.245   0.502  0.00  0.00           O  
+ATOM    202  CB  SER A  13       6.348  -7.235   3.292  0.00  0.00           C  
+ATOM    203  OG  SER A  13       6.588  -7.135   4.685  0.00  0.00           O  
+ATOM    204  H   SER A  13       5.511  -4.881   3.605  0.00  0.00           H  
+ATOM    205  HA  SER A  13       8.033  -6.031   2.772  0.00  0.00           H  
+ATOM    206 1HB  SER A  13       5.290  -7.255   3.114  0.00  0.00           H  
+ATOM    207 2HB  SER A  13       6.798  -8.157   2.922  0.00  0.00           H  
+ATOM    208  HG  SER A  13       7.535  -7.126   4.838  0.00  0.00           H  
+ATOM    209  N   SER A  14       6.433  -5.095   0.342  0.00  0.00           N  
+ATOM    210  CA  SER A  14       6.094  -5.070  -1.091  0.00  0.00           C  
+ATOM    211  C   SER A  14       7.131  -4.326  -1.948  0.00  0.00           C  
+ATOM    212  O   SER A  14       6.912  -4.123  -3.139  0.00  0.00           O  
+ATOM    213  CB  SER A  14       4.713  -4.430  -1.320  0.00  0.00           C  
+ATOM    214  OG  SER A  14       3.852  -4.557  -0.209  0.00  0.00           O  
+ATOM    215  H   SER A  14       6.248  -4.262   0.883  0.00  0.00           H  
+ATOM    216  HA  SER A  14       6.036  -6.095  -1.458  0.00  0.00           H  
+ATOM    217 1HB  SER A  14       4.851  -3.386  -1.528  0.00  0.00           H  
+ATOM    218 2HB  SER A  14       4.256  -4.900  -2.188  0.00  0.00           H  
+ATOM    219  HG  SER A  14       4.090  -3.859   0.448  0.00  0.00           H  
+ATOM    220  N   GLY A  15       8.234  -3.851  -1.350  0.00  0.00           N  
+ATOM    221  CA  GLY A  15       9.242  -3.043  -2.046  0.00  0.00           C  
+ATOM    222  C   GLY A  15       8.765  -1.634  -2.430  0.00  0.00           C  
+ATOM    223  O   GLY A  15       9.339  -1.029  -3.333  0.00  0.00           O  
+ATOM    224  H   GLY A  15       8.368  -4.078  -0.374  0.00  0.00           H  
+ATOM    225 1HA  GLY A  15      10.125  -2.943  -1.415  0.00  0.00           H  
+ATOM    226 2HA  GLY A  15       9.540  -3.557  -2.962  0.00  0.00           H  
+ATOM    227  N   ARG A  16       7.712  -1.116  -1.776  0.00  0.00           N  
+ATOM    228  CA  ARG A  16       7.012   0.119  -2.159  0.00  0.00           C  
+ATOM    229  C   ARG A  16       6.744   1.004  -0.927  0.00  0.00           C  
+ATOM    230  O   ARG A  16       6.192   0.494   0.050  0.00  0.00           O  
+ATOM    231  CB  ARG A  16       5.715  -0.274  -2.903  0.00  0.00           C  
+ATOM    232  CG  ARG A  16       5.325   0.703  -4.024  0.00  0.00           C  
+ATOM    233  CD  ARG A  16       4.678   2.015  -3.540  0.00  0.00           C  
+ATOM    234  NE  ARG A  16       3.237   2.087  -3.842  0.00  0.00           N  
+ATOM    235  CZ  ARG A  16       2.680   2.273  -5.035  0.00  0.00           C  
+ATOM    236  NH1 ARG A  16       3.403   2.443  -6.118  0.00  0.00           N  
+ATOM    237  NH2 ARG A  16       1.375   2.289  -5.163  0.00  0.00           N  
+ATOM    238  H   ARG A  16       7.321  -1.668  -1.025  0.00  0.00           H  
+ATOM    239  HA  ARG A  16       7.663   0.650  -2.853  0.00  0.00           H  
+ATOM    240 1HB  ARG A  16       5.853  -1.247  -3.334  0.00  0.00           H  
+ATOM    241 2HB  ARG A  16       4.890  -0.391  -2.200  0.00  0.00           H  
+ATOM    242 1HG  ARG A  16       6.212   0.951  -4.574  0.00  0.00           H  
+ATOM    243 2HG  ARG A  16       4.637   0.186  -4.695  0.00  0.00           H  
+ATOM    244 1HD  ARG A  16       4.810   2.091  -2.478  0.00  0.00           H  
+ATOM    245 2HD  ARG A  16       5.186   2.860  -4.006  0.00  0.00           H  
+ATOM    246  HE  ARG A  16       2.615   2.042  -3.054  0.00  0.00           H  
+ATOM    247 1HH1 ARG A  16       4.402   2.431  -6.023  0.00  0.00           H  
+ATOM    248 2HH1 ARG A  16       2.980   2.582  -7.018  0.00  0.00           H  
+ATOM    249 1HH2 ARG A  16       0.783   2.132  -4.366  0.00  0.00           H  
+ATOM    250 2HH2 ARG A  16       0.966   2.417  -6.070  0.00  0.00           H  
+ATOM    251  N   PRO A  17       7.089   2.310  -0.946  0.00  0.00           N  
+ATOM    252  CA  PRO A  17       6.885   3.210   0.196  0.00  0.00           C  
+ATOM    253  C   PRO A  17       5.393   3.477   0.503  0.00  0.00           C  
+ATOM    254  O   PRO A  17       4.546   3.303  -0.377  0.00  0.00           O  
+ATOM    255  CB  PRO A  17       7.623   4.504  -0.182  0.00  0.00           C  
+ATOM    256  CG  PRO A  17       7.588   4.505  -1.707  0.00  0.00           C  
+ATOM    257  CD  PRO A  17       7.737   3.023  -2.038  0.00  0.00           C  
+ATOM    258  HA  PRO A  17       7.356   2.774   1.077  0.00  0.00           H  
+ATOM    259 1HB  PRO A  17       7.117   5.363   0.213  0.00  0.00           H  
+ATOM    260 2HB  PRO A  17       8.658   4.442   0.155  0.00  0.00           H  
+ATOM    261 1HG  PRO A  17       6.657   4.893  -2.074  0.00  0.00           H  
+ATOM    262 2HG  PRO A  17       8.394   5.099  -2.134  0.00  0.00           H  
+ATOM    263 1HD  PRO A  17       7.256   2.797  -2.970  0.00  0.00           H  
+ATOM    264 2HD  PRO A  17       8.794   2.757  -2.066  0.00  0.00           H  
+ATOM    265  N   PRO A  18       5.059   3.929   1.730  0.00  0.00           N  
+ATOM    266  CA  PRO A  18       3.682   4.205   2.144  0.00  0.00           C  
+ATOM    267  C   PRO A  18       3.095   5.411   1.383  0.00  0.00           C  
+ATOM    268  O   PRO A  18       3.661   6.502   1.452  0.00  0.00           O  
+ATOM    269  CB  PRO A  18       3.748   4.459   3.655  0.00  0.00           C  
+ATOM    270  CG  PRO A  18       5.175   4.956   3.878  0.00  0.00           C  
+ATOM    271  CD  PRO A  18       5.977   4.185   2.832  0.00  0.00           C  
+ATOM    272  HA  PRO A  18       3.080   3.317   1.975  0.00  0.00           H  
+ATOM    273 1HB  PRO A  18       3.033   5.203   3.949  0.00  0.00           H  
+ATOM    274 2HB  PRO A  18       3.609   3.517   4.186  0.00  0.00           H  
+ATOM    275 1HG  PRO A  18       5.245   6.014   3.714  0.00  0.00           H  
+ATOM    276 2HG  PRO A  18       5.524   4.748   4.890  0.00  0.00           H  
+ATOM    277 1HD  PRO A  18       6.810   4.771   2.495  0.00  0.00           H  
+ATOM    278 2HD  PRO A  18       6.310   3.236   3.253  0.00  0.00           H  
+ATOM    279  N   PRO A  19       1.966   5.253   0.661  0.00  0.00           N  
+ATOM    280  CA  PRO A  19       1.331   6.356  -0.052  0.00  0.00           C  
+ATOM    281  C   PRO A  19       0.578   7.268   0.928  0.00  0.00           C  
+ATOM    282  O   PRO A  19      -0.202   6.793   1.754  0.00  0.00           O  
+ATOM    283  CB  PRO A  19       0.397   5.681  -1.061  0.00  0.00           C  
+ATOM    284  CG  PRO A  19      -0.022   4.391  -0.357  0.00  0.00           C  
+ATOM    285  CD  PRO A  19       1.197   4.027   0.492  0.00  0.00           C  
+ATOM    286  HA  PRO A  19       2.080   6.941  -0.589  0.00  0.00           H  
+ATOM    287 1HB  PRO A  19      -0.455   6.299  -1.267  0.00  0.00           H  
+ATOM    288 2HB  PRO A  19       0.960   5.433  -1.961  0.00  0.00           H  
+ATOM    289 1HG  PRO A  19      -0.883   4.555   0.261  0.00  0.00           H  
+ATOM    290 2HG  PRO A  19      -0.265   3.606  -1.072  0.00  0.00           H  
+ATOM    291 1HD  PRO A  19       0.884   3.651   1.447  0.00  0.00           H  
+ATOM    292 2HD  PRO A  19       1.805   3.288  -0.030  0.00  0.00           H  
+ATOM    293  N   SER A  20       0.794   8.581   0.820  0.00  0.00           N  
+ATOM    294  CA  SER A  20       0.068   9.633   1.546  0.00  0.00           C  
+ATOM    295  C   SER A  20      -0.019  10.895   0.692  0.00  0.00           C  
+ATOM    296  O   SER A  20       0.894  11.061  -0.156  0.00  0.00           O  
+ATOM    297  CB  SER A  20       0.690   9.909   2.920  0.00  0.00           C  
+ATOM    298  OG  SER A  20       2.087  10.037   2.813  0.00  0.00           O  
+ATOM    299  OXT SER A  20      -1.022  11.612   0.858  0.00  0.00           O  
+ATOM    300  H   SER A  20       1.377   8.948   0.073  0.00  0.00           H  
+ATOM    301  HA  SER A  20      -0.962   9.316   1.705  0.00  0.00           H  
+ATOM    302 1HB  SER A  20       0.282  10.819   3.316  0.00  0.00           H  
+ATOM    303 2HB  SER A  20       0.461   9.076   3.584  0.00  0.00           H  
+ATOM    304  HG  SER A  20       2.347   9.513   2.048  0.00  0.00           H  
+TER     305      SER A  20                                                      
+ENDMDL                                                                          
+MASTER       78    0    0    2    0    0    0    611552   38    0    2          
+END                                                                             
diff --git a/examples/unres/MIN/1L2Y_min.inp b/examples/unres/MIN/1L2Y_min.inp
new file mode 100644 (file)
index 0000000..9372f63
--- /dev/null
@@ -0,0 +1,12 @@
+1L2Y ff_1l2y_1le1
+SEED=-3059743 PDBREF MINIMIZE CART RESCALE_MODE=0 PDBSTART OVERLAP NOSEARCHSC  &
+PDBOUT
+MAXMIN=2000 MAXFUN=5000
+WLONG=1.00000 WSCP=1.23315 WELEC=0.84476 WBOND=1.00000 WANG=0.62954            &
+WSCLOC=0.10554 WTOR=1.84316 WTORD=1.26571 WCORRH=0.19212 WCORR5=0.00000        &
+WCORR6=0.00000 WEL_LOC=0.37357 WTURN3=1.40323 WTURN4=0.64673 WTURN6=0.00000    &
+WVDWPP=0.23173 WHPB=1.00000 WSCCOR=0.0                                         &
+CUTOFF=7.00000 WCORR4=0.00000
+1L2Y.pdb
+ 0
+ 0
diff --git a/examples/unres/MIN/1L2Y_min.intin b/examples/unres/MIN/1L2Y_min.intin
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/examples/unres/MIN/1L2Y_min.out_GB b/examples/unres/MIN/1L2Y_min.out_GB
new file mode 100644 (file)
index 0000000..1323aec
--- /dev/null
@@ -0,0 +1,847 @@
+--------------------------------------------------------------------------------
+                              FILE ASSIGNMENT
+--------------------------------------------------------------------------------
+ Input file                      : 1L2Y_min.inp
+ Output file                     : 1L2Y_min.out_GB
+
+ Sidechain potential file        : ../../../PARAM/scinter_GB.parm
+ SCp potential file              : ../../../PARAM/scp.parm
+ Electrostatic potential file    : ../../../PARAM/electr_631Gdp.parm
+ Cumulant coefficient file       : ../../../PARAM/fourier_opt.parm.1igd_hc_iter3_3
+ Torsional parameter file        : ../../../PARAM/torsion_631Gdp.parm
+ Double torsional parameter file : ../../../PARAM/torsion_double_631Gdp.parm
+ SCCOR parameter file : ../../../PARAM/rotcorr_AM1.parm
+ Bond & inertia constant file    : ../../../PARAM/bond_AM1.parm
+ Bending parameter file          : ../../../PARAM/theta_abinitio.parm
+ Rotamer parameter file          : ../../../PARAM/rotamers_AM1_aura.10022007.parm
+ Threading database              : ../../../PARAM/patterns.cart
+--------------------------------------------------------------------------------
+ ### LAST MODIFIED  11/03/09 1:19PM by czarek
+ ++++ Compile info ++++
+ Version MINI energy and minimization only
+ Start reading THETA_PDB
+ End reading THETA_PDB
+
+Potential is GB , exponents are   6 12
+
+Disulfide bridge parameters:
+S-S bridge energy:      -5.50
+d0cm:      3.78 akcm:     15.10
+akth:     11.00 akct:     12.00
+v1ss:     -1.08 v2ss:      7.61 v3ss:     13.70
+RMSDBC =        3.0
+RMSDBC1 =        0.5
+RMSDBC1MAX =        1.5
+DRMS    =        0.1
+RMSDBCM =        3.0
+Time limit (min):     960.0
+ RESCALE_MODE           0
+Library  routine used to diagonalize matrices.
+
+********************************************************************************
+                    Options in energy minimization:
+********************************************************************************
+MaxMin: 2000 MaxFun: 5000MinMin: 2000 MinFun: 2000 TolF:   1.00000E-02 RTolF:   1.00000E-04
+
+Energy-term weights (unscaled):
+
+WSCC=     1.000000 (SC-SC)
+WSCP=     1.233150 (SC-p)
+WELEC=    0.844760 (p-p electr)
+WVDWPP=   0.231730 (p-p VDW)
+WBOND=    1.000000 (stretching)
+WANG=     0.629540 (bending)
+WSCLOC=   0.105540 (SC local)
+WTOR=     1.843160 (torsional)
+WTORD=    1.265710 (double torsional)
+WSTRAIN=  1.000000 (SS bridges & dist. cnstr.)
+WEL_LOC=  0.373570 (multi-body 3-rd order)
+WCORR4=   0.192120 (multi-body 4th order)
+WCORR5=   0.000000 (multi-body 5th order)
+WCORR6=   0.000000 (multi-body 6th order)
+WSCCOR=   0.000000 (back-scloc correlation)
+WTURN3=   1.403230 (turns, 3rd order)
+WTURN4=   0.646730 (turns, 4th order)
+WTURN6=   0.000000 (turns, 6th order)
+
+Hydrogen-bonding correlation between contact pairs of peptide groups
+
+Scaling factor of 1,4 SC-p interactions:   0.400
+General scaling factor of SC-p interactions:   1.000
+
+Energy-term weights (scaled):
+
+WSCC=     1.000000 (SC-SC)
+WSCP=     1.233150 (SC-p)
+WELEC=    0.844760 (p-p electr)
+WVDWPP=   0.231730 (p-p VDW)
+WBOND=    1.000000 (stretching)
+WANG=     0.629540 (bending)
+WSCLOC=   0.105540 (SC local)
+WTOR=     1.843160 (torsional)
+WTORD=    1.265710 (double torsional)
+WSTRAIN=  1.000000 (SS bridges & dist. cnstr.)
+WEL_LOC=  0.373570 (multi-body 3-rd order)
+WCORR4=   0.192120 (multi-body 4th order)
+WCORR5=   0.000000 (multi-body 5th order)
+WCORR6=   0.000000 (multi-body 6th order)
+WSCCOR=   0.000000 (back-scloc correlatkion)
+WTURN3=   1.403230 (turns, 3rd order)
+WTURN4=   0.646730 (turns, 4th order)
+WTURN6=   0.000000 (turns, 6th order)
+ Reference temperature for weights calculation:   300.00000000000000     
+ Parameters of the SS-bond potential:
+ D0CM   3.7799999999999998       AKCM   15.100000000000000       AKTH   11.000000000000000       AKCT   12.000000000000000     
+ V1SS  -1.0800000000000001       V2SS   7.6100000000000003       V3SS   13.699999999999999     
+ EBR  -5.5000000000000000     
+PDB data will be read from file 1L2Y.pdb
+ Nres:    21
+Backbone and SC coordinates as read from the PDB
+  1 21  D    -9.841   4.399  -5.051       -9.841   4.399  -5.051
+  2 14  ASN  -8.608   3.135  -1.618      -10.407   3.153  -2.437
+  3  5  LEU  -4.923   4.002  -2.452       -4.618   6.091  -1.850
+  4  8  TYR  -3.690   2.738   0.981       -1.959   3.143   3.797
+  5  4  ILE  -5.857  -0.449   0.613       -7.484  -0.369   1.074
+  6 13  GLN  -4.122  -1.167  -2.743       -5.089  -1.450  -4.853
+  7  7  TRP  -0.716  -0.631  -0.993        1.727   0.440   1.450
+  8  5  LEU  -1.641  -2.932   1.963       -2.244  -2.097   3.799
+  9 19  LYS  -3.024  -5.791  -0.269       -3.820  -5.527  -3.146
+ 10 16  ASP   0.466  -6.016  -1.905        0.653  -5.125  -3.676
+ 11 10  GLY   2.060  -6.618   1.593        2.060  -6.618   1.593
+ 12 10  GLY   2.626  -2.967   2.723        2.626  -2.967   2.723
+ 13 20  PRO   6.333  -2.533   3.806        5.724  -2.372   5.058
+ 14 12  SER   7.049  -6.179   2.704        6.757  -6.938   3.675
+ 15 12  SER   6.389  -5.315  -1.015        5.245  -5.350  -1.546
+ 16 10  GLY   9.451  -3.116  -1.870        9.451  -3.116  -1.870
+ 17 18  ARG   7.289   0.084  -2.054        5.225  -1.826  -3.986
+ 18 20  PRO   6.782   3.088   0.345        7.458   3.741  -0.688
+ 19 20  PRO   3.287   4.031   1.686        4.025   4.206   2.856
+ 20 20  PRO   1.185   6.543  -0.353        0.358   5.421  -0.430
+ 21 12  SER   0.852  10.027   1.285        1.151  10.636   1.488
+ 22 21  D    -1.250  12.539  -0.754       -1.250  12.539  -0.754
+nsup= 20 nstart_sup=  2
+ ITEL
+           1          21           0
+           2          14           1
+           3           5           1
+           4           8           1
+           5           4           1
+           6          13           1
+           7           7           1
+           8           5           1
+           9          19           1
+          10          16           1
+          11          10           1
+          12          10           2
+          13          20           1
+          14          12           1
+          15          12           1
+          16          10           1
+          17          18           2
+          18          20           2
+          19          20           2
+          20          20           1
+          21          12           0
+ ns=           0  iss:
+Boundaries in phi angle sampling:
+D      1    -180.0     180.0
+ASN    2    -180.0     180.0
+LEU    3    -180.0     180.0
+TYR    4    -180.0     180.0
+ILE    5    -180.0     180.0
+GLN    6    -180.0     180.0
+TRP    7    -180.0     180.0
+LEU    8    -180.0     180.0
+LYS    9    -180.0     180.0
+ASP   10    -180.0     180.0
+GLY   11    -180.0     180.0
+GLY   12    -180.0     180.0
+PRO   13    -180.0     180.0
+SER   14    -180.0     180.0
+SER   15    -180.0     180.0
+GLY   16    -180.0     180.0
+ARG   17    -180.0     180.0
+PRO   18    -180.0     180.0
+PRO   19    -180.0     180.0
+PRO   20    -180.0     180.0
+SER   21    -180.0     180.0
+D     22    -180.0     180.0
+nsup= 20
+ nsup=          20  nstart_sup=           2  nstart_seq=           2
+ NZ_START=           2  NZ_END=          21
+ IZ_SC=           0
+ Contact order:   0.0000000000000000     
+ Shifting contacts:           2           2
+
+Geometry of the virtual chain.
+  Res           d     Theta     Gamma       Dsc     Alpha      Beta 
+D     1     0.000     0.000     0.000     0.000     0.000     0.000
+ASN   2     3.861     0.000     0.000     1.977    94.624  -178.093
+LEU   3     3.876    92.239     0.000     2.195   102.878   -79.236
+TYR   4     3.861    92.239  -180.000     3.330   163.195    -7.440
+ILE   5     3.871    90.357    45.849     1.692   144.011  -104.516
+GLN   6     3.846    89.090    55.194     2.338   170.986  -139.318
+TRP   7     3.867    88.657    49.396     3.617   123.650   -21.913
+LEU   8     3.859    93.032    48.298     2.105   151.723  -105.899
+LYS   9     3.882    94.826    46.843     2.997   106.974   -55.960
+ASP  10     3.861    87.966    59.623     1.991   153.447  -128.646
+GLY  11     3.891    89.908    56.679     0.000     0.000     0.000
+GLY  12     3.864   100.181   -87.304     0.000     0.000     0.000
+PRO  13     3.886   109.073  -127.499     1.402   101.771  -115.580
+SER  14     3.876    89.537     4.261     1.267   144.515  -129.218
+SER  15     3.875    91.815    66.108     1.262   161.047  -100.177
+GLY  16     3.866   101.784    70.140     0.000     0.000     0.000
+ARG  17     3.866    92.201  -108.949     3.411   139.846  -132.716
+PRO  18     3.878   133.225   103.824     1.397   115.610  -118.024
+PRO  19     3.860   121.502  -122.527     1.395   118.575  -122.417
+PRO  20     3.858   117.950   -90.285     1.396   118.959  -126.207
+SER  21     3.864   114.201  -108.328     0.708   128.925   -37.341
+D    22     3.858   114.201   180.000     0.000     0.000     0.000
+Energy evaluation or minimization calculation.
+
+Conformations will be energy-minimized.
+********************************************************************************
+
+ Time for energy evaluation  6.95318157089216528E-310
+
+Virtual-chain energies:
+
+EVDW=     -1.798849E+01 WEIGHT=    1.000000D+00 (SC-SC)
+EVDW2=     4.471415E+01 WEIGHT=    1.233150D+00 (SC-p)
+EES=      -9.165378E+01 WEIGHT=    8.447600D-01 (p-p)
+EVDWPP=   -3.362882E+01 WEIGHT=    2.317300D-01 (p-p VDW)
+ESTR=      5.659036E+01 WEIGHT=    1.000000D+00 (stretching)
+EBE=      -5.669935E+00 WEIGHT=    6.295400D-01 (bending)
+ESC=       1.734458E+02 WEIGHT=    1.055400D-01 (SC local)
+ETORS=     1.479510E+01 WEIGHT=    1.843160D+00 (torsional)
+ETORSD=    1.006444E+00 WEIGHT=    1.265710D+00 (double torsional)
+EHBP=      0.000000E+00 WEIGHT=    1.000000D+00 (SS bridges & dist. cnstr.)
+ECORR4=   -6.528803E+01 WEIGHT=    1.921200D-01 (multi-body)
+ECORR5=    0.000000E+00 WEIGHT=    0.000000D+00 (multi-body)
+ECORR6=    0.000000E+00 WEIGHT=    0.000000D+00 (multi-body)
+EELLO=    -4.012900E+00 WEIGHT=    3.735700D-01 (electrostatic-local)
+ETURN3=    1.829789E+01 WEIGHT=    1.403230D+00 (turns, 3rd order)
+ETURN4=    6.580750E-01 WEIGHT=    6.467300D-01 (turns, 4th order)
+ETURN6=    0.000000E+00 WEIGHT=    0.000000D+00 (turns, 6th order)
+ESCCOR=    0.000000E+00 WEIGHT=    0.000000D+00 (backbone-rotamer corr)
+EDIHC=     0.000000E+00 (dihedral angle constraints)
+ESS=      -0.000000E+00 (disulfide-bridge intrinsic energy)
+UCONST=     0.000000E+00 (Constraint energy)
+ETOT=      6.386200E+01 (total)
+
+ nondefault values....
+
+ rdfcmx.... v(25) =  0.2000000D+01
+ afctol.... v(31) =  0.1000000D-01
+ rfctol.... v(32) =  0.1000000D-03
+ xftol..... v(34) =  0.1387779D-16
+ lmax0..... v(35) =  0.1000000D+00
+
+     i     initial x(i)        d(i)
+
+     1     0.123300D+01     0.100D+00
+     2    -0.126400D+01     0.100D+00
+     3     0.343300D+01     0.100D+00
+     4     0.368500D+01     0.100D+00
+     5     0.867000D+00     0.100D+00
+     6    -0.834000D+00     0.100D+00
+     7     0.123300D+01     0.100D+00
+     8    -0.126400D+01     0.100D+00
+     9     0.343300D+01     0.100D+00
+    10    -0.216700D+01     0.100D+00
+    11    -0.318700D+01     0.100D+00
+    12    -0.368000D+00     0.100D+00
+    13     0.173500D+01     0.100D+00
+    14    -0.718000D+00     0.100D+00
+    15    -0.335600D+01     0.100D+00
+    16     0.340600D+01     0.100D+00
+    17     0.536000D+00     0.100D+00
+    18     0.175000D+01     0.100D+00
+    19    -0.925000D+00     0.100D+00
+    20    -0.230100D+01     0.100D+00
+    21     0.295600D+01     0.100D+00
+    22    -0.138300D+01     0.100D+00
+    23    -0.285900D+01     0.100D+00
+    24    -0.223200D+01     0.100D+00
+    25     0.349000D+01     0.100D+00
+    26    -0.225000D+00     0.100D+00
+    27    -0.163600D+01     0.100D+00
+    28     0.159400D+01     0.100D+00
+    29    -0.602000D+00     0.100D+00
+    30     0.349800D+01     0.100D+00
+    31     0.566000D+00     0.100D+00
+    32     0.365100D+01     0.100D+00
+    33     0.113000D+01     0.100D+00
+    34     0.370700D+01     0.100D+00
+    35     0.434000D+00     0.100D+00
+    36     0.108300D+01     0.100D+00
+    37     0.716000D+00     0.100D+00
+    38    -0.364600D+01     0.100D+00
+    39    -0.110200D+01     0.100D+00
+    40    -0.660000D+00     0.100D+00
+    41     0.864000D+00     0.100D+00
+    42    -0.371900D+01     0.100D+00
+    43     0.306200D+01     0.100D+00
+    44     0.219900D+01     0.100D+00
+    45    -0.855000D+00     0.100D+00
+    46    -0.216200D+01     0.100D+00
+    47     0.320000D+01     0.100D+00
+    48    -0.184000D+00     0.100D+00
+    49    -0.507000D+00     0.100D+00
+    50     0.300400D+01     0.100D+00
+    51     0.239900D+01     0.100D+00
+    52    -0.349500D+01     0.100D+00
+    53     0.943000D+00     0.100D+00
+    54     0.134100D+01     0.100D+00
+    55    -0.210200D+01     0.100D+00
+    56     0.251200D+01     0.100D+00
+    57    -0.203900D+01     0.100D+00
+    58    -0.333000D+00     0.100D+00
+    59     0.348400D+01     0.100D+00
+    60     0.163800D+01     0.100D+00
+    61    -0.210200D+01     0.100D+00
+    62     0.251200D+01     0.100D+00
+    63    -0.203900D+01     0.100D+00
+    64    -0.179900D+01     0.100D+00
+    65     0.184000D-01     0.100D+00
+    66    -0.819000D+00     0.100D+00
+    67     0.304600D+00     0.100D+00
+    68     0.208860D+01     0.100D+00
+    69     0.602200D+00     0.100D+00
+    70     0.173089D+01     0.100D+00
+    71     0.405000D+00     0.100D+00
+    72     0.281567D+01     0.100D+00
+    73    -0.162660D+01     0.100D+00
+    74     0.796000D-01     0.100D+00
+    75     0.460800D+00     0.100D+00
+    76    -0.967167D+00     0.100D+00
+    77    -0.283167D+00     0.100D+00
+    78    -0.211000D+01     0.100D+00
+    79     0.244291D+01     0.100D+00
+    80     0.107064D+01     0.100D+00
+    81     0.244318D+01     0.100D+00
+    82    -0.603000D+00     0.100D+00
+    83     0.834800D+00     0.100D+00
+    84     0.183640D+01     0.100D+00
+    85    -0.795500D+00     0.100D+00
+    86     0.263500D+00     0.100D+00
+    87    -0.287700D+01     0.100D+00
+    88     0.187200D+00     0.100D+00
+    89     0.890600D+00     0.100D+00
+    90    -0.177060D+01     0.100D+00
+    91    -0.609250D+00     0.100D+00
+    92     0.161250D+00     0.100D+00
+    93     0.125200D+01     0.100D+00
+    94    -0.292333D+00     0.100D+00
+    95    -0.759000D+00     0.100D+00
+    96     0.971333D+00     0.100D+00
+    97    -0.114433D+01     0.100D+00
+    98    -0.353333D-01     0.100D+00
+    99    -0.531000D+00     0.100D+00
+   100    -0.206375D+01     0.100D+00
+   101    -0.190975D+01     0.100D+00
+   102    -0.193150D+01     0.100D+00
+   103     0.676250D+00     0.100D+00
+   104     0.653500D+00     0.100D+00
+   105    -0.103325D+01     0.100D+00
+   106     0.738000D+00     0.100D+00
+   107     0.175250D+00     0.100D+00
+   108     0.117025D+01     0.100D+00
+   109    -0.827500D+00     0.100D+00
+   110    -0.112200D+01     0.100D+00
+   111    -0.775000D-01     0.100D+00
+   112     0.298750D+00     0.100D+00
+   113     0.608500D+00     0.100D+00
+   114     0.203250D+00     0.100D+00
+
+    it   nf       f        reldf    preldf    reldx   stppar   d*step   npreldf
+
+     0    1  0.639D+02
+     2    6  0.278D+01  0.94D+00  0.12D+01  0.4D-01  0.4D+01  0.4D-01  0.34D+05
+     4    8 -0.582D+01  0.64D+00  0.34D+01  0.2D-01  0.2D+01  0.4D-01  0.87D+04
+     6   11 -0.127D+02  0.69D-01  0.24D+00  0.8D-02  0.2D+01  0.2D-01  0.19D+04
+     8   13 -0.175D+02  0.11D+00  0.14D+00  0.1D-01  0.2D+01  0.2D-01  0.59D+03
+    10   15 -0.194D+02  0.73D-01  0.18D+00  0.1D-01  0.2D+01  0.2D-01  0.94D+03
+    12   17 -0.221D+02  0.63D-01  0.11D+00  0.7D-02  0.2D+01  0.2D-01  0.29D+03
+    14   20 -0.235D+02  0.31D-01  0.35D-01  0.3D-02  0.2D+01  0.8D-02  0.15D+03
+    16   22 -0.249D+02  0.35D-01  0.51D-01  0.7D-02  0.2D+01  0.2D-01  0.12D+03
+    18   24 -0.263D+02  0.49D-01  0.57D-01  0.6D-02  0.2D+01  0.8D-02  0.17D+03
+    20   26 -0.273D+02  0.20D-01  0.21D-01  0.4D-02  0.2D+01  0.8D-02  0.82D+02
+    22   28 -0.290D+02  0.31D-01  0.43D-01  0.6D-02  0.2D+01  0.2D-01  0.13D+03
+    24   31 -0.299D+02  0.15D-01  0.24D-01  0.4D-02  0.2D+01  0.7D-02  0.15D+03
+    26   33 -0.306D+02  0.13D-01  0.18D-01  0.3D-02  0.2D+01  0.7D-02  0.10D+03
+    28   35 -0.313D+02  0.16D-01  0.18D-01  0.3D-02  0.2D+01  0.7D-02  0.92D+02
+    30   37 -0.320D+02  0.16D-01  0.17D-01  0.3D-02  0.2D+01  0.7D-02  0.84D+02
+    32   39 -0.326D+02  0.16D-01  0.17D-01  0.3D-02  0.2D+01  0.7D-02  0.91D+02
+    34   41 -0.332D+02  0.15D-01  0.16D-01  0.3D-02  0.2D+01  0.7D-02  0.87D+02
+    36   43 -0.338D+02  0.13D-01  0.14D-01  0.2D-02  0.2D+01  0.7D-02  0.79D+02
+    38   45 -0.343D+02  0.11D-01  0.12D-01  0.3D-02  0.2D+01  0.7D-02  0.68D+02
+    40   47 -0.348D+02  0.98D-02  0.10D-01  0.3D-02  0.2D+01  0.7D-02  0.57D+02
+    42   49 -0.358D+02  0.15D-01  0.18D-01  0.5D-02  0.2D+01  0.1D-01  0.90D+02
+    44   51 -0.363D+02  0.13D-01  0.16D-01  0.3D-02  0.2D+01  0.7D-02  0.48D+02
+    46   53 -0.368D+02  0.95D-02  0.10D-01  0.2D-02  0.2D+01  0.7D-02  0.41D+02
+    48   55 -0.373D+02  0.66D-02  0.71D-02  0.3D-02  0.2D+01  0.7D-02  0.48D+02
+    50   57 -0.377D+02  0.68D-02  0.71D-02  0.2D-02  0.2D+01  0.7D-02  0.43D+02
+    52   61 -0.386D+02  0.19D-01  0.25D-01  0.1D-01  0.2D+01  0.3D-01  0.48D+02
+    54   63 -0.394D+02  0.96D-03  0.50D-01  0.1D-01  0.2D+01  0.3D-01  0.11D+03
+    56   65 -0.411D+02  0.15D-01  0.28D-01  0.6D-02  0.2D+01  0.1D-01  0.39D+02
+    58   67 -0.422D+02  0.10D-01  0.14D-01  0.6D-02  0.2D+01  0.1D-01  0.54D+02
+    60   69 -0.432D+02  0.11D-01  0.14D-01  0.5D-02  0.2D+01  0.1D-01  0.70D+02
+    62   73 -0.451D+02  0.14D-01  0.69D-01  0.2D-01  0.2D+01  0.5D-01  0.11D+03
+    64   76 -0.468D+02  0.16D-01  0.58D-01  0.1D-01  0.2D+01  0.2D-01  0.68D+02
+    66   78 -0.478D+02  0.67D-02  0.35D-01  0.9D-02  0.2D+01  0.2D-01  0.46D+02
+    68   80 -0.487D+02  0.11D-01  0.42D-01  0.8D-02  0.2D+01  0.2D-01  0.38D+02
+    70   82 -0.491D+02  0.31D-03  0.43D-01  0.9D-02  0.2D+01  0.2D-01  0.45D+02
+    72   84 -0.505D+02  0.97D-02  0.22D-01  0.6D-02  0.2D+01  0.1D-01  0.42D+02
+    74   86 -0.511D+02  0.55D-02  0.92D-02  0.5D-02  0.2D+01  0.1D-01  0.18D+02
+    76   88 -0.514D+02  0.49D-02  0.10D-01  0.4D-02  0.2D+01  0.1D-01  0.95D+01
+    78   90 -0.518D+02  0.23D-02  0.86D-02  0.5D-02  0.2D+01  0.1D-01  0.11D+02
+    80   92 -0.522D+02  0.32D-02  0.92D-02  0.4D-02  0.2D+01  0.1D-01  0.12D+02
+    82   94 -0.526D+02  0.47D-02  0.94D-02  0.5D-02  0.2D+01  0.1D-01  0.12D+02
+    84   96 -0.527D+02  0.29D-02  0.79D-02  0.4D-02  0.2D+01  0.6D-02  0.65D+01
+    86   98 -0.530D+02  0.27D-02  0.39D-02  0.2D-02  0.2D+01  0.6D-02  0.68D+01
+    88  100 -0.532D+02  0.27D-02  0.35D-02  0.2D-02  0.2D+01  0.6D-02  0.55D+01
+    90  102 -0.534D+02  0.21D-02  0.29D-02  0.2D-02  0.2D+01  0.6D-02  0.40D+01
+    92  104 -0.536D+02  0.15D-02  0.24D-02  0.3D-02  0.2D+01  0.6D-02  0.42D+01
+    94  106 -0.537D+02  0.15D-02  0.23D-02  0.3D-02  0.2D+01  0.6D-02  0.45D+01
+    96  108 -0.539D+02  0.19D-02  0.26D-02  0.2D-02  0.2D+01  0.6D-02  0.38D+01
+    98  110 -0.540D+02  0.19D-02  0.26D-02  0.2D-02  0.2D+01  0.6D-02  0.32D+01
+   100  112 -0.541D+02  0.11D-02  0.23D-02  0.3D-02  0.2D+01  0.6D-02  0.34D+01
+   102  114 -0.543D+02  0.12D-02  0.23D-02  0.3D-02  0.2D+01  0.6D-02  0.35D+01
+   104  116 -0.544D+02  0.15D-02  0.25D-02  0.3D-02  0.2D+01  0.6D-02  0.24D+01
+   106  118 -0.545D+02  0.95D-03  0.17D-02  0.3D-02  0.2D+01  0.6D-02  0.18D+01
+   108  120 -0.547D+02  0.13D-02  0.19D-02  0.3D-02  0.2D+01  0.6D-02  0.20D+01
+   110  122 -0.548D+02  0.97D-03  0.19D-02  0.3D-02  0.2D+01  0.6D-02  0.16D+01
+   112  124 -0.548D+02  0.67D-03  0.20D-02  0.2D-02  0.2D+01  0.6D-02  0.16D+01
+   114  126 -0.549D+02  0.55D-03  0.22D-02  0.2D-02  0.2D+01  0.6D-02  0.18D+01
+   116  128 -0.550D+02  0.10D-02  0.17D-02  0.2D-02  0.2D+01  0.6D-02  0.13D+01
+   118  132 -0.551D+02  0.99D-04  0.17D-03  0.4D-03  0.2D+01  0.8D-03  0.13D+01
+   120  134 -0.551D+02  0.25D-03  0.28D-03  0.8D-03  0.2D+01  0.2D-02  0.88D+00
+   122  136 -0.551D+02  0.41D-03  0.51D-03  0.1D-02  0.2D+01  0.3D-02  0.47D+00
+   124  138 -0.552D+02  0.40D-03  0.69D-03  0.1D-02  0.2D+01  0.3D-02  0.43D+00
+   126  140 -0.552D+02  0.43D-03  0.68D-03  0.1D-02  0.2D+01  0.3D-02  0.42D+00
+   128  142 -0.552D+02  0.26D-03  0.59D-03  0.1D-02  0.2D+01  0.3D-02  0.41D+00
+   130  144 -0.553D+02  0.23D-03  0.61D-03  0.1D-02  0.2D+01  0.3D-02  0.47D+00
+   132  146 -0.553D+02  0.39D-03  0.68D-03  0.1D-02  0.2D+01  0.3D-02  0.39D+00
+   134  148 -0.553D+02  0.32D-03  0.55D-03  0.1D-02  0.2D+01  0.3D-02  0.36D+00
+   136  150 -0.554D+02  0.30D-03  0.57D-03  0.1D-02  0.2D+01  0.3D-02  0.30D+00
+   138  152 -0.554D+02  0.21D-03  0.50D-03  0.1D-02  0.2D+01  0.3D-02  0.34D+00
+   140  154 -0.554D+02  0.29D-03  0.55D-03  0.1D-02  0.2D+01  0.3D-02  0.40D+00
+   142  156 -0.555D+02  0.28D-03  0.50D-03  0.1D-02  0.2D+01  0.3D-02  0.30D+00
+   144  158 -0.555D+02  0.25D-03  0.49D-03  0.1D-02  0.2D+01  0.3D-02  0.27D+00
+   146  160 -0.555D+02  0.20D-03  0.47D-03  0.1D-02  0.2D+01  0.3D-02  0.30D+00
+   148  162 -0.556D+02  0.24D-03  0.47D-03  0.1D-02  0.2D+01  0.3D-02  0.28D+00
+   150  164 -0.556D+02  0.25D-03  0.46D-03  0.1D-02  0.2D+01  0.3D-02  0.25D+00
+   152  166 -0.556D+02  0.25D-03  0.44D-03  0.1D-02  0.2D+01  0.3D-02  0.26D+00
+   154  168 -0.556D+02  0.26D-03  0.45D-03  0.1D-02  0.2D+01  0.3D-02  0.26D+00
+   156  170 -0.557D+02  0.19D-03  0.41D-03  0.1D-02  0.2D+01  0.3D-02  0.24D+00
+   158  172 -0.557D+02  0.22D-03  0.42D-03  0.2D-02  0.2D+01  0.3D-02  0.26D+00
+   160  174 -0.557D+02  0.23D-03  0.40D-03  0.1D-02  0.2D+01  0.3D-02  0.26D+00
+   162  176 -0.558D+02  0.24D-03  0.39D-03  0.1D-02  0.2D+01  0.3D-02  0.25D+00
+   164  178 -0.558D+02  0.23D-03  0.40D-03  0.1D-02  0.2D+01  0.3D-02  0.21D+00
+   166  180 -0.558D+02  0.25D-03  0.38D-03  0.2D-02  0.2D+01  0.3D-02  0.22D+00
+   168  182 -0.559D+02  0.28D-03  0.38D-03  0.1D-02  0.2D+01  0.3D-02  0.27D+00
+   170  184 -0.559D+02  0.28D-03  0.36D-03  0.2D-02  0.2D+01  0.3D-02  0.32D+00
+   172  186 -0.559D+02  0.32D-03  0.38D-03  0.1D-02  0.2D+01  0.3D-02  0.43D+00
+   174  191 -0.562D+02  0.32D-02  0.41D-02  0.1D-01  0.2D+01  0.3D-01  0.40D+01
+   176  195 -0.563D+02  0.23D-03  0.83D-03  0.2D-02  0.2D+01  0.2D-02  0.21D+01
+   178  197 -0.563D+02  0.30D-03  0.35D-03  0.7D-03  0.2D+01  0.2D-02  0.80D+00
+   180  199 -0.564D+02  0.30D-03  0.90D-03  0.3D-02  0.2D+01  0.7D-02  0.24D+00
+   182  201 -0.564D+02  0.60D-03  0.11D-02  0.4D-02  0.2D+01  0.7D-02  0.30D+00
+   184  203 -0.564D+02  0.40D-03  0.75D-03  0.2D-02  0.2D+01  0.4D-02  0.21D+00
+   186  205 -0.565D+02  0.18D-03  0.30D-03  0.2D-02  0.2D+01  0.4D-02  0.11D+00
+   188  207 -0.565D+02  0.18D-03  0.26D-03  0.2D-02  0.2D+01  0.4D-02  0.14D+00
+   190  209 -0.565D+02  0.16D-03  0.28D-03  0.2D-02  0.2D+01  0.4D-02  0.10D+00
+   192  211 -0.565D+02  0.12D-03  0.25D-03  0.2D-02  0.2D+01  0.4D-02  0.90D-01
+   194  213 -0.565D+02  0.15D-03  0.26D-03  0.2D-02  0.2D+01  0.4D-02  0.10D+00
+   196  215 -0.565D+02  0.12D-03  0.26D-03  0.2D-02  0.2D+01  0.4D-02  0.99D-01
+   198  217 -0.566D+02  0.13D-03  0.24D-03  0.2D-02  0.2D+01  0.4D-02  0.11D+00
+   200  219 -0.566D+02  0.15D-03  0.24D-03  0.2D-02  0.2D+01  0.4D-02  0.67D-01
+   202  221 -0.566D+02  0.13D-03  0.26D-03  0.2D-02  0.2D+01  0.4D-02  0.95D-01
+   204  223 -0.566D+02  0.13D-03  0.22D-03  0.2D-02  0.2D+01  0.4D-02  0.85D-01
+   206  225 -0.566D+02  0.13D-03  0.24D-03  0.2D-02  0.2D+01  0.4D-02  0.74D-01
+   208  227 -0.566D+02  0.11D-03  0.22D-03  0.2D-02  0.2D+01  0.4D-02  0.78D-01
+   210  229 -0.566D+02  0.13D-03  0.21D-03  0.2D-02  0.2D+01  0.4D-02  0.63D-01
+   212  231 -0.567D+02  0.12D-03  0.18D-03  0.2D-02  0.2D+01  0.4D-02  0.54D-01
+   214  233 -0.567D+02  0.10D-03  0.17D-03  0.2D-02  0.2D+01  0.4D-02  0.64D-01
+   216  235 -0.567D+02  0.10D-03  0.18D-03  0.1D-02  0.2D+01  0.4D-02  0.51D-01
+   218  237 -0.567D+02  0.13D-03  0.19D-03  0.2D-02  0.2D+01  0.4D-02  0.45D-01
+   220  239 -0.567D+02  0.93D-04  0.19D-03  0.2D-02  0.2D+01  0.4D-02  0.54D-01
+   222  241 -0.567D+02  0.10D-03  0.18D-03  0.1D-02  0.2D+01  0.4D-02  0.42D-01
+   224  243 -0.567D+02  0.81D-04  0.16D-03  0.1D-02  0.2D+01  0.4D-02  0.42D-01
+   226  245 -0.567D+02  0.89D-04  0.16D-03  0.1D-02  0.2D+01  0.4D-02  0.32D-01
+   228  247 -0.567D+02  0.73D-04  0.16D-03  0.1D-02  0.2D+01  0.4D-02  0.28D-01
+   230  249 -0.568D+02  0.73D-04  0.13D-03  0.1D-02  0.2D+01  0.4D-02  0.27D-01
+   232  251 -0.568D+02  0.81D-04  0.17D-03  0.1D-02  0.2D+01  0.4D-02  0.33D-01
+   234  253 -0.568D+02  0.63D-04  0.14D-03  0.1D-02  0.2D+01  0.4D-02  0.23D-01
+   236  255 -0.568D+02  0.85D-04  0.16D-03  0.1D-02  0.2D+01  0.4D-02  0.29D-01
+   238  257 -0.568D+02  0.72D-04  0.13D-03  0.1D-02  0.2D+01  0.4D-02  0.23D-01
+   240  259 -0.568D+02  0.60D-04  0.14D-03  0.1D-02  0.2D+01  0.4D-02  0.22D-01
+   242  261 -0.568D+02  0.47D-04  0.15D-03  0.1D-02  0.2D+01  0.4D-02  0.24D-01
+   244  263 -0.568D+02  0.71D-04  0.16D-03  0.1D-02  0.2D+01  0.4D-02  0.24D-01
+   246  268 -0.568D+02  0.26D-04  0.59D-04  0.2D-03  0.3D+01  0.4D-03  0.22D-01
+   248  270 -0.568D+02  0.21D-04  0.26D-04  0.2D-03  0.2D+01  0.7D-03  0.17D-01
+   250  272 -0.568D+02  0.28D-04  0.32D-04  0.5D-03  0.2D+01  0.1D-02  0.86D-02
+   252  274 -0.568D+02  0.26D-04  0.35D-04  0.6D-03  0.2D+01  0.1D-02  0.10D-01
+   254  276 -0.568D+02  0.25D-04  0.33D-04  0.5D-03  0.2D+01  0.1D-02  0.11D-01
+   256  278 -0.568D+02  0.27D-04  0.34D-04  0.5D-03  0.2D+01  0.1D-02  0.13D-01
+   258  280 -0.568D+02  0.25D-04  0.33D-04  0.5D-03  0.2D+01  0.1D-02  0.11D-01
+   260  282 -0.568D+02  0.26D-04  0.33D-04  0.5D-03  0.2D+01  0.1D-02  0.10D-01
+   262  284 -0.568D+02  0.25D-04  0.32D-04  0.5D-03  0.2D+01  0.1D-02  0.11D-01
+   264  286 -0.568D+02  0.28D-04  0.33D-04  0.5D-03  0.2D+01  0.1D-02  0.10D-01
+   266  288 -0.568D+02  0.24D-04  0.29D-04  0.7D-03  0.2D+01  0.1D-02  0.11D-01
+   268  290 -0.568D+02  0.26D-04  0.32D-04  0.6D-03  0.2D+01  0.1D-02  0.11D-01
+   270  292 -0.568D+02  0.23D-04  0.31D-04  0.6D-03  0.2D+01  0.1D-02  0.93D-02
+   272  294 -0.568D+02  0.24D-04  0.30D-04  0.6D-03  0.2D+01  0.1D-02  0.10D-01
+   274  296 -0.569D+02  0.26D-04  0.30D-04  0.6D-03  0.2D+01  0.1D-02  0.11D-01
+   276  298 -0.569D+02  0.25D-04  0.30D-04  0.5D-03  0.2D+01  0.1D-02  0.11D-01
+   278  302 -0.569D+02  0.72D-04  0.10D-03  0.2D-02  0.2D+01  0.6D-02  0.10D-01
+   280  304 -0.569D+02  0.11D-03  0.16D-03  0.2D-02  0.2D+01  0.6D-02  0.36D-01
+   282  306 -0.569D+02  0.70D-04  0.15D-03  0.2D-02  0.2D+01  0.6D-02  0.29D-01
+   284  308 -0.569D+02  0.10D-03  0.15D-03  0.3D-02  0.2D+01  0.6D-02  0.35D-01
+   286  310 -0.569D+02  0.13D-03  0.15D-03  0.2D-02  0.2D+01  0.6D-02  0.46D-01
+   288  314 -0.569D+02  0.41D-03  0.52D-03  0.9D-02  0.2D+01  0.2D-01  0.64D-01
+   290  317 -0.571D+02  0.14D-02  0.16D-02  0.2D-01  0.2D+01  0.5D-01  0.68D+00
+   292  321 -0.571D+02  0.28D-03  0.17D-02  0.2D-02  0.3D+01  0.2D-02  0.39D+00
+   294  323 -0.572D+02  0.29D-03  0.38D-03  0.9D-03  0.2D+01  0.2D-02  0.14D+00
+   296  325 -0.572D+02  0.16D-03  0.21D-03  0.1D-02  0.2D+01  0.2D-02  0.36D-01
+   298  327 -0.572D+02  0.11D-03  0.23D-03  0.2D-02  0.2D+01  0.5D-02  0.20D-01
+   300  329 -0.572D+02  0.11D-03  0.41D-03  0.2D-02  0.2D+01  0.5D-02  0.46D-01
+   302  334 -0.572D+02  0.66D-04  0.11D-03  0.3D-03  0.3D+01  0.5D-03  0.29D-01
+   304  336 -0.572D+02  0.39D-04  0.48D-04  0.3D-03  0.2D+01  0.5D-03  0.24D-01
+   306  338 -0.572D+02  0.30D-04  0.35D-04  0.3D-03  0.2D+01  0.9D-03  0.13D-01
+   308  340 -0.572D+02  0.51D-04  0.76D-04  0.2D-02  0.2D+01  0.4D-02  0.67D-02
+   310  342 -0.572D+02  0.25D-04  0.18D-03  0.2D-02  0.2D+01  0.4D-02  0.20D-01
+   312  344 -0.573D+02  0.25D-04  0.17D-03  0.1D-02  0.2D+01  0.4D-02  0.16D-01
+   314  346 -0.573D+02  0.20D-04  0.18D-03  0.2D-02  0.2D+01  0.4D-02  0.22D-01
+   316  348 -0.573D+02  0.55D-04  0.18D-03  0.2D-02  0.2D+01  0.4D-02  0.18D-01
+   318  350 -0.573D+02  0.78D-04  0.17D-03  0.1D-02  0.2D+01  0.4D-02  0.14D-01
+   320  352 -0.573D+02  0.49D-04  0.12D-03  0.2D-02  0.2D+01  0.4D-02  0.13D-01
+   322  354 -0.573D+02  0.83D-04  0.12D-03  0.2D-02  0.2D+01  0.4D-02  0.14D-01
+   324  356 -0.573D+02  0.72D-04  0.11D-03  0.2D-02  0.2D+01  0.4D-02  0.14D-01
+   326  358 -0.573D+02  0.68D-04  0.11D-03  0.2D-02  0.2D+01  0.4D-02  0.16D-01
+   328  360 -0.573D+02  0.77D-04  0.11D-03  0.2D-02  0.2D+01  0.4D-02  0.19D-01
+   330  362 -0.573D+02  0.78D-04  0.12D-03  0.2D-02  0.2D+01  0.4D-02  0.23D-01
+   332  364 -0.573D+02  0.88D-04  0.12D-03  0.2D-02  0.2D+01  0.4D-02  0.23D-01
+   334  366 -0.573D+02  0.83D-04  0.10D-03  0.2D-02  0.2D+01  0.4D-02  0.28D-01
+   336  370 -0.574D+02  0.35D-03  0.56D-03  0.9D-02  0.2D+01  0.1D-01  0.70D-01
+   338  372 -0.574D+02  0.47D-03  0.76D-03  0.9D-02  0.2D+01  0.1D-01  0.78D-01
+   340  374 -0.575D+02  0.43D-03  0.73D-03  0.1D-01  0.2D+01  0.1D-01  0.84D-01
+   342  377 -0.575D+02  0.25D-03  0.73D-03  0.4D-02  0.2D+01  0.7D-02  0.73D-01
+   344  379 -0.576D+02  0.26D-03  0.50D-03  0.4D-02  0.2D+01  0.7D-02  0.51D-01
+   346  381 -0.576D+02  0.27D-03  0.39D-03  0.4D-02  0.2D+01  0.7D-02  0.88D-01
+   348  383 -0.576D+02  0.29D-03  0.43D-03  0.5D-02  0.2D+01  0.7D-02  0.34D-01
+   350  385 -0.576D+02  0.10D-03  0.53D-03  0.4D-02  0.2D+01  0.7D-02  0.34D-01
+   352  387 -0.577D+02  0.31D-03  0.57D-03  0.4D-02  0.2D+01  0.7D-02  0.43D-01
+   354  389 -0.577D+02  0.23D-03  0.53D-03  0.4D-02  0.2D+01  0.7D-02  0.33D-01
+   356  391 -0.577D+02  0.75D-04  0.42D-03  0.3D-02  0.2D+01  0.7D-02  0.25D-01
+   358  393 -0.577D+02  0.27D-03  0.60D-03  0.3D-02  0.2D+01  0.7D-02  0.34D-01
+   360  395 -0.578D+02  0.20D-03  0.51D-03  0.4D-02  0.2D+01  0.7D-02  0.20D-01
+   362  398 -0.578D+02  0.21D-04  0.29D-03  0.1D-02  0.2D+01  0.3D-02  0.20D-01
+   364  400 -0.578D+02  0.78D-04  0.98D-04  0.8D-03  0.2D+01  0.2D-02  0.21D-01
+   366  402 -0.578D+02  0.58D-04  0.67D-04  0.1D-02  0.2D+01  0.2D-02  0.90D-02
+   368  404 -0.578D+02  0.52D-04  0.62D-04  0.1D-02  0.2D+01  0.2D-02  0.84D-02
+   370  406 -0.578D+02  0.47D-04  0.57D-04  0.1D-02  0.2D+01  0.2D-02  0.79D-02
+   372  408 -0.578D+02  0.69D-04  0.93D-04  0.2D-02  0.2D+01  0.3D-02  0.70D-02
+   374  410 -0.578D+02  0.69D-04  0.11D-03  0.2D-02  0.2D+01  0.3D-02  0.12D-01
+   376  412 -0.578D+02  0.71D-04  0.11D-03  0.2D-02  0.2D+01  0.3D-02  0.83D-02
+   378  414 -0.578D+02  0.61D-04  0.10D-03  0.2D-02  0.2D+01  0.3D-02  0.74D-02
+   380  416 -0.578D+02  0.79D-04  0.11D-03  0.2D-02  0.2D+01  0.3D-02  0.79D-02
+   382  418 -0.579D+02  0.65D-04  0.11D-03  0.2D-02  0.2D+01  0.3D-02  0.72D-02
+   384  420 -0.579D+02  0.55D-04  0.99D-04  0.2D-02  0.2D+01  0.3D-02  0.69D-02
+   386  422 -0.579D+02  0.78D-04  0.10D-03  0.2D-02  0.2D+01  0.3D-02  0.76D-02
+   388  424 -0.579D+02  0.59D-04  0.86D-04  0.2D-02  0.2D+01  0.3D-02  0.58D-02
+   390  426 -0.579D+02  0.57D-04  0.86D-04  0.2D-02  0.2D+01  0.3D-02  0.70D-02
+   392  428 -0.579D+02  0.62D-04  0.81D-04  0.2D-02  0.2D+01  0.3D-02  0.73D-02
+   394  430 -0.579D+02  0.53D-04  0.86D-04  0.2D-02  0.2D+01  0.3D-02  0.83D-02
+   396  432 -0.579D+02  0.58D-04  0.84D-04  0.2D-02  0.2D+01  0.3D-02  0.66D-02
+   398  434 -0.579D+02  0.54D-04  0.71D-04  0.2D-02  0.2D+01  0.3D-02  0.62D-02
+   400  436 -0.579D+02  0.51D-04  0.72D-04  0.2D-02  0.2D+01  0.3D-02  0.72D-02
+   402  438 -0.579D+02  0.58D-04  0.72D-04  0.2D-02  0.2D+01  0.3D-02  0.71D-02
+   404  440 -0.579D+02  0.55D-04  0.68D-04  0.2D-02  0.2D+01  0.3D-02  0.68D-02
+   406  443 -0.579D+02  0.91D-04  0.11D-03  0.5D-02  0.2D+01  0.7D-02  0.72D-02
+   408  445 -0.579D+02  0.12D-03  0.16D-03  0.5D-02  0.2D+01  0.7D-02  0.16D-01
+   410  447 -0.580D+02  0.10D-03  0.13D-03  0.5D-02  0.2D+01  0.7D-02  0.10D-01
+   412  449 -0.580D+02  0.10D-03  0.13D-03  0.5D-02  0.2D+01  0.7D-02  0.15D-01
+   414  451 -0.580D+02  0.11D-03  0.14D-03  0.5D-02  0.2D+01  0.7D-02  0.15D-01
+   416  453 -0.580D+02  0.11D-03  0.13D-03  0.5D-02  0.2D+01  0.7D-02  0.16D-01
+   418  455 -0.580D+02  0.12D-03  0.14D-03  0.5D-02  0.2D+01  0.7D-02  0.20D-01
+   420  458 -0.580D+02  0.21D-03  0.29D-03  0.9D-02  0.2D+01  0.1D-01  0.27D-01
+   422  460 -0.581D+02  0.25D-03  0.32D-03  0.8D-02  0.2D+01  0.1D-01  0.23D-01
+   424  462 -0.581D+02  0.15D-03  0.42D-03  0.7D-02  0.2D+01  0.1D-01  0.64D-01
+   426  466 -0.581D+02  0.71D-04  0.14D-03  0.3D-03  0.2D+02  0.5D-03  0.81D-01
+   428  468 -0.581D+02  0.57D-04  0.60D-04  0.2D-03  0.2D+01  0.5D-03  0.10D+00
+   430  474 -0.582D+02  0.68D-03  0.13D-02  0.2D-01  0.2D+01  0.3D-01  0.11D+00
+   432  478 -0.583D+02  0.31D-03  0.61D-03  0.8D-03  0.1D+02  0.9D-03  0.22D+00
+   434  480 -0.583D+02  0.12D-03  0.15D-03  0.6D-03  0.2D+01  0.9D-03  0.31D+00
+   436  482 -0.584D+02  0.16D-03  0.16D-03  0.8D-03  0.2D+01  0.2D-02  0.32D+00
+   438  489 -0.587D+02  0.24D-02  0.11D-01  0.3D-01  0.2D+01  0.6D-01  0.12D+00
+   440  493 -0.589D+02  0.16D-02  0.79D-02  0.3D-02  0.3D+01  0.6D-02  0.52D+00
+   442  495 -0.592D+02  0.17D-02  0.23D-02  0.2D-02  0.2D+01  0.6D-02  0.27D+00
+   444  497 -0.593D+02  0.59D-03  0.11D-02  0.3D-02  0.2D+01  0.6D-02  0.11D+00
+   446  499 -0.594D+02  0.49D-03  0.73D-03  0.2D-02  0.2D+01  0.6D-02  0.39D-01
+   448  501 -0.594D+02  0.25D-03  0.53D-03  0.2D-02  0.2D+01  0.6D-02  0.19D-01
+   450  503 -0.594D+02  0.12D-03  0.48D-03  0.3D-02  0.2D+01  0.6D-02  0.18D-01
+   452  506 -0.594D+02  0.83D-04  0.31D-03  0.1D-02  0.2D+01  0.3D-02  0.16D-01
+   454  508 -0.595D+02  0.85D-04  0.14D-03  0.1D-02  0.2D+01  0.3D-02  0.64D-02
+   456  510 -0.595D+02  0.49D-04  0.13D-03  0.1D-02  0.2D+01  0.3D-02  0.60D-02
+   458  512 -0.595D+02  0.53D-04  0.14D-03  0.1D-02  0.2D+01  0.3D-02  0.61D-02
+   460  514 -0.595D+02  0.51D-04  0.12D-03  0.2D-02  0.2D+01  0.3D-02  0.40D-02
+   462  516 -0.595D+02  0.32D-04  0.11D-03  0.1D-02  0.2D+01  0.3D-02  0.42D-02
+   464  518 -0.595D+02  0.52D-04  0.12D-03  0.9D-03  0.2D+01  0.3D-02  0.30D-02
+   466  520 -0.595D+02  0.39D-04  0.95D-04  0.1D-02  0.2D+01  0.3D-02  0.40D-02
+   468  522 -0.595D+02  0.52D-04  0.10D-03  0.1D-02  0.2D+01  0.3D-02  0.38D-02
+   470  524 -0.595D+02  0.12D-04  0.94D-04  0.1D-02  0.2D+01  0.3D-02  0.25D-02
+   472  526 -0.595D+02  0.43D-04  0.98D-04  0.2D-02  0.2D+01  0.3D-02  0.38D-02
+   474  528 -0.595D+02  0.29D-04  0.74D-04  0.1D-02  0.2D+01  0.3D-02  0.25D-02
+   476  530 -0.595D+02  0.54D-04  0.85D-04  0.1D-02  0.2D+01  0.3D-02  0.23D-02
+   478  532 -0.595D+02  0.44D-04  0.10D-03  0.1D-02  0.2D+01  0.3D-02  0.20D-02
+   480  534 -0.595D+02  0.34D-04  0.74D-04  0.1D-02  0.2D+01  0.3D-02  0.18D-02
+   482  536 -0.595D+02  0.52D-04  0.89D-04  0.1D-02  0.2D+01  0.3D-02  0.31D-02
+   484  538 -0.595D+02  0.12D-04  0.69D-04  0.1D-02  0.2D+01  0.3D-02  0.25D-02
+   486  540 -0.595D+02  0.37D-04  0.66D-04  0.1D-02  0.2D+01  0.3D-02  0.29D-02
+   488  542 -0.595D+02  0.42D-04  0.59D-04  0.2D-02  0.2D+01  0.3D-02  0.18D-02
+   490  544 -0.595D+02  0.31D-04  0.58D-04  0.1D-02  0.2D+01  0.3D-02  0.15D-02
+   492  546 -0.596D+02  0.29D-04  0.54D-04  0.2D-02  0.2D+01  0.3D-02  0.19D-02
+   494  548 -0.596D+02  0.31D-04  0.57D-04  0.1D-02  0.2D+01  0.3D-02  0.20D-02
+   496  550 -0.596D+02  0.41D-04  0.61D-04  0.2D-02  0.2D+01  0.3D-02  0.26D-02
+   498  552 -0.596D+02  0.31D-04  0.47D-04  0.2D-02  0.2D+01  0.3D-02  0.17D-02
+   500  554 -0.596D+02  0.32D-04  0.51D-04  0.2D-02  0.2D+01  0.3D-02  0.15D-02
+   502  556 -0.596D+02  0.38D-04  0.47D-04  0.2D-02  0.2D+01  0.3D-02  0.20D-02
+   504  558 -0.596D+02  0.30D-04  0.42D-04  0.2D-02  0.2D+01  0.3D-02  0.16D-02
+   506  560 -0.596D+02  0.35D-04  0.49D-04  0.2D-02  0.2D+01  0.3D-02  0.17D-02
+   508  562 -0.596D+02  0.33D-04  0.41D-04  0.2D-02  0.2D+01  0.3D-02  0.19D-02
+   510  564 -0.596D+02  0.32D-04  0.38D-04  0.2D-02  0.2D+01  0.3D-02  0.17D-02
+   512  566 -0.596D+02  0.34D-04  0.41D-04  0.2D-02  0.2D+01  0.3D-02  0.18D-02
+   514  568 -0.596D+02  0.29D-04  0.36D-04  0.2D-02  0.2D+01  0.3D-02  0.19D-02
+   516  570 -0.596D+02  0.54D-04  0.65D-04  0.4D-02  0.2D+01  0.6D-02  0.19D-02
+   518  572 -0.596D+02  0.77D-04  0.95D-04  0.4D-02  0.2D+01  0.6D-02  0.60D-02
+   520  575 -0.596D+02  0.96D-04  0.12D-03  0.8D-02  0.2D+01  0.1D-01  0.32D-02
+   522  577 -0.596D+02  0.16D-03  0.22D-03  0.9D-02  0.2D+01  0.1D-01  0.72D-02
+   524  579 -0.596D+02  0.15D-03  0.18D-03  0.1D-01  0.2D+01  0.1D-01  0.47D-02
+   526  581 -0.597D+02  0.13D-03  0.15D-03  0.9D-02  0.2D+01  0.1D-01  0.90D-02
+   528  584 -0.597D+02  0.28D-03  0.35D-03  0.2D-01  0.2D+01  0.2D-01  0.16D-01
+   530  586 -0.597D+02  0.21D-03  0.37D-03  0.2D-01  0.2D+01  0.2D-01  0.11D-01
+   532  588 -0.597D+02  0.54D-04  0.63D-03  0.2D-01  0.2D+01  0.2D-01  0.10D-01
+   534  590 -0.598D+02  0.22D-03  0.73D-03  0.8D-02  0.2D+01  0.1D-01  0.11D-01
+   536  595 -0.598D+02  0.28D-04  0.64D-04  0.3D-03  0.2D+01  0.6D-03  0.86D-02
+   538  597 -0.598D+02  0.24D-04  0.27D-04  0.2D-03  0.2D+01  0.6D-03  0.65D-02
+   540  599 -0.598D+02  0.47D-04  0.53D-04  0.1D-02  0.2D+01  0.2D-02  0.38D-02
+   542  601 -0.598D+02  0.59D-04  0.77D-04  0.2D-02  0.2D+01  0.5D-02  0.33D-02
+   544  603 -0.598D+02  0.57D-04  0.12D-03  0.2D-02  0.2D+01  0.5D-02  0.16D-02
+   546  605 -0.598D+02  0.55D-04  0.87D-04  0.3D-02  0.2D+01  0.5D-02  0.23D-02
+   548  607 -0.598D+02  0.40D-04  0.89D-04  0.3D-02  0.2D+01  0.5D-02  0.17D-02
+   550  609 -0.598D+02  0.32D-04  0.86D-04  0.1D-02  0.2D+01  0.5D-02  0.18D-02
+   552  611 -0.598D+02  0.34D-04  0.11D-03  0.2D-02  0.2D+01  0.5D-02  0.17D-02
+   554  613 -0.598D+02  0.40D-04  0.10D-03  0.2D-02  0.2D+01  0.5D-02  0.16D-02
+   556  615 -0.598D+02  0.33D-04  0.89D-04  0.2D-02  0.2D+01  0.5D-02  0.14D-02
+   558  617 -0.598D+02  0.34D-04  0.80D-04  0.2D-02  0.2D+01  0.5D-02  0.12D-02
+   560  619 -0.598D+02  0.15D-04  0.90D-04  0.2D-02  0.2D+01  0.5D-02  0.18D-02
+   562  621 -0.598D+02  0.30D-04  0.87D-04  0.2D-02  0.2D+01  0.5D-02  0.10D-02
+   564  626 -0.598D+02  0.62D-05  0.10D-04  0.1D-03  0.2D+01  0.2D-03  0.15D-02
+   566  628 -0.598D+02  0.61D-05  0.69D-05  0.2D-03  0.2D+01  0.5D-03  0.12D-02
+   568  632 -0.598D+02  0.36D-04  0.55D-04  0.4D-02  0.2D+01  0.7D-02  0.71D-03
+   570  634 -0.598D+02  0.34D-04  0.95D-04  0.4D-02  0.2D+01  0.7D-02  0.18D-02
+   572  636 -0.598D+02  0.56D-04  0.15D-03  0.4D-02  0.2D+01  0.7D-02  0.22D-02
+   574  638 -0.598D+02  0.60D-04  0.12D-03  0.4D-02  0.2D+01  0.7D-02  0.21D-02
+   576  640 -0.599D+02  0.80D-04  0.14D-03  0.3D-02  0.2D+01  0.7D-02  0.25D-02
+   578  642 -0.599D+02  0.90D-04  0.11D-03  0.3D-02  0.2D+01  0.7D-02  0.45D-02
+   580  648 -0.600D+02  0.11D-02  0.11D-02  0.2D-01  0.2D+01  0.6D-01  0.20D-01
+   582  655 -0.600D+02  0.18D-03  0.38D-03  0.7D-03  0.3D+01  0.1D-02  0.48D-01
+   584  657 -0.600D+02  0.15D-03  0.16D-03  0.7D-03  0.2D+01  0.2D-02  0.53D-01
+   586  664 -0.602D+02  0.85D-03  0.21D-02  0.1D-01  0.2D+01  0.2D-01  0.12D+00
+   588  666 -0.603D+02  0.98D-03  0.28D-02  0.1D-01  0.2D+01  0.2D-01  0.80D-01
+   590  670 -0.603D+02  0.34D-03  0.39D-03  0.7D-03  0.2D+01  0.2D-02  0.18D-01
+   592  672 -0.603D+02  0.19D-03  0.21D-03  0.2D-02  0.2D+01  0.3D-02  0.12D-01
+   594  674 -0.604D+02  0.20D-03  0.31D-03  0.2D-02  0.2D+01  0.7D-02  0.72D-02
+   596  676 -0.604D+02  0.12D-03  0.44D-03  0.3D-02  0.2D+01  0.7D-02  0.31D-02
+   598  678 -0.604D+02  0.21D-04  0.35D-03  0.4D-02  0.2D+01  0.7D-02  0.54D-02
+   600  680 -0.604D+02  0.10D-03  0.23D-03  0.2D-02  0.2D+01  0.3D-02  0.25D-02
+   602  682 -0.604D+02  0.24D-04  0.91D-04  0.2D-02  0.2D+01  0.3D-02  0.14D-02
+   604  684 -0.604D+02  0.44D-04  0.90D-04  0.2D-02  0.2D+01  0.3D-02  0.12D-02
+   606  686 -0.604D+02  0.81D-05  0.10D-03  0.2D-02  0.2D+01  0.3D-02  0.14D-02
+   608  688 -0.604D+02  0.24D-04  0.45D-04  0.8D-03  0.2D+01  0.2D-02  0.12D-02
+   610  690 -0.604D+02  0.16D-04  0.31D-04  0.7D-03  0.2D+01  0.2D-02  0.33D-03
+   612  692 -0.604D+02  0.11D-04  0.21D-04  0.8D-03  0.2D+01  0.2D-02  0.34D-03
+   614  694 -0.604D+02  0.68D-05  0.20D-04  0.8D-03  0.2D+01  0.2D-02  0.20D-03
+   616  696 -0.604D+02  0.11D-04  0.22D-04  0.1D-02  0.2D+01  0.2D-02  0.22D-03
+   618  698 -0.604D+02  0.32D-05  0.15D-04  0.8D-03  0.2D+01  0.2D-02  0.98D-04
+
+ ***** relative function convergence *****
+
+ function    -0.604131D+02   reldx        0.802D-03
+ func. evals     698         grad. evals     619
+ preldf       0.154D-04      npreldf      0.983D-04
+
+     i      final x(i)        d(i)          g(i)
+
+     1    0.188373D+01     0.100D+00     0.123D-02
+     2    0.240430D+01     0.100D+00    -0.139D-02
+     3    0.138713D+01     0.100D+00     0.744D-03
+     4    0.335754D+01     0.100D+00     0.145D-01
+     5   -0.165182D+01     0.100D+00    -0.324D-01
+     6    0.425980D+00     0.100D+00     0.167D-01
+     7   -0.815524D+00     0.100D+00     0.266D-01
+     8    0.187523D-01     0.100D+00    -0.242D-01
+     9    0.368976D+01     0.100D+00     0.269D-01
+    10   -0.232713D+01     0.100D+00     0.145D-01
+    11   -0.284726D+01     0.100D+00     0.174D-01
+    12   -0.826346D+00     0.100D+00    -0.454D-02
+    13    0.299499D+01     0.100D+00     0.510D-02
+    14   -0.189578D+01     0.100D+00     0.335D-01
+    15   -0.134388D+01     0.100D+00    -0.657D-02
+    16    0.203342D+01     0.100D+00     0.213D-01
+    17    0.132643D+01     0.100D+00    -0.132D-01
+    18    0.290960D+01     0.100D+00    -0.151D-01
+    19   -0.260725D+01     0.100D+00     0.382D-01
+    20   -0.148453D+01     0.100D+00    -0.112D-02
+    21    0.228742D+01     0.100D+00    -0.393D-01
+    22    0.716270D+00     0.100D+00     0.206D-01
+    23   -0.335973D+01     0.100D+00     0.182D-03
+    24   -0.149098D+01     0.100D+00    -0.265D-01
+    25    0.376558D+01     0.100D+00    -0.279D-01
+    26    0.596569D+00     0.100D+00    -0.708D-02
+    27   -0.121820D+00     0.100D+00    -0.382D-01
+    28   -0.127750D-01     0.100D+00    -0.558D-02
+    29   -0.885453D+00     0.100D+00     0.194D-01
+    30    0.368914D+01     0.100D+00    -0.400D-01
+    31   -0.192411D+01     0.100D+00     0.176D-01
+    32    0.311592D+01     0.100D+00     0.185D-01
+    33    0.116428D+01     0.100D+00    -0.245D-01
+    34    0.245046D+01     0.100D+00     0.411D-01
+    35    0.255961D+01     0.100D+00     0.441D-01
+    36   -0.134073D+01     0.100D+00    -0.333D-01
+    37    0.284647D+01     0.100D+00     0.181D-01
+    38   -0.255589D+01     0.100D+00     0.107D-01
+    39    0.407033D+00     0.100D+00    -0.212D-01
+    40    0.123357D+01     0.100D+00     0.239D-01
+    41   -0.419238D+00     0.100D+00    -0.885D-02
+    42   -0.357951D+01     0.100D+00    -0.724D-01
+    43    0.257396D+01     0.100D+00     0.757D-02
+    44    0.140306D+01     0.100D+00     0.101D-01
+    45   -0.243439D+01     0.100D+00    -0.206D-01
+    46   -0.163639D+01     0.100D+00     0.166D-01
+    47    0.335021D+01     0.100D+00    -0.496D-02
+    48   -0.843042D+00     0.100D+00    -0.174D-01
+    49   -0.359107D+00     0.100D+00     0.275D-01
+    50    0.344487D+01     0.100D+00     0.156D-01
+    51    0.159266D+01     0.100D+00    -0.817D-02
+    52   -0.194978D+01     0.100D+00     0.164D-01
+    53   -0.371528D+00     0.100D+00    -0.103D-01
+    54    0.328040D+01     0.100D+00    -0.490D-01
+    55   -0.249456D+01     0.100D+00     0.122D-01
+    56    0.283698D+01     0.100D+00    -0.223D-01
+    57   -0.738709D+00     0.100D+00    -0.206D-01
+    58   -0.160637D+01     0.100D+00    -0.238D-02
+    59    0.683506D-01     0.100D+00     0.959D-03
+    60    0.346234D+01     0.100D+00    -0.670D-02
+    61    0.241483D+01     0.100D+00    -0.166D-02
+    62    0.375349D+01     0.100D+00    -0.418D-04
+    63    0.251204D+01     0.100D+00     0.166D-02
+    64   -0.255238D+00     0.100D+00     0.448D-03
+    65   -0.257324D+00     0.100D+00     0.336D-01
+    66    0.197488D+01     0.100D+00     0.263D-02
+    67    0.194032D+01     0.100D+00    -0.492D-01
+    68    0.248945D+00     0.100D+00    -0.129D-01
+    69    0.727269D+00     0.100D+00    -0.272D-01
+    70    0.249017D+01     0.100D+00     0.154D-01
+    71    0.649905D+00     0.100D+00     0.145D-01
+    72    0.214596D+01     0.100D+00     0.645D-01
+    73   -0.157556D+01     0.100D+00     0.418D-01
+    74   -0.122884D+00     0.100D+00    -0.193D-02
+    75   -0.421133D+00     0.100D+00     0.708D-02
+    76   -0.457464D+00     0.100D+00     0.788D-02
+    77    0.929670D+00     0.100D+00    -0.444D-02
+    78   -0.218948D+01     0.100D+00     0.648D-01
+    79    0.330109D+01     0.100D+00     0.459D-01
+    80    0.154040D+01     0.100D+00    -0.128D-02
+    81    0.416793D+00     0.100D+00     0.402D-02
+    82   -0.763611D+00     0.100D+00     0.462D-02
+    83    0.187587D+01     0.100D+00    -0.184D-01
+    84    0.479167D+00     0.100D+00     0.468D-02
+    85    0.125304D+00     0.100D+00     0.307D-02
+    86    0.244593D+00     0.100D+00    -0.106D-01
+    87   -0.305770D+01     0.100D+00     0.592D-01
+    88   -0.389252D-01     0.100D+00    -0.589D-02
+    89    0.128883D+01     0.100D+00    -0.181D-01
+    90   -0.156718D+01     0.100D+00    -0.602D-03
+    91   -0.726552D+00     0.100D+00     0.606D-01
+    92    0.910848D+00     0.100D+00    -0.817D-01
+    93    0.813641D+00     0.100D+00    -0.996D-01
+    94   -0.393879D+00     0.100D+00     0.658D-02
+    95   -0.829259D+00     0.100D+00    -0.104D-01
+    96    0.933077D+00     0.100D+00     0.330D-01
+    97   -0.867436D+00     0.100D+00    -0.119D-01
+    98    0.564717D+00     0.100D+00    -0.915D-02
+    99   -0.804089D+00     0.100D+00    -0.410D-02
+   100   -0.302270D+01     0.100D+00    -0.250D-01
+   101   -0.133999D+01     0.100D+00    -0.603D-02
+   102   -0.911639D+00     0.100D+00    -0.149D-01
+   103   -0.998525D+00     0.100D+00     0.146D+00
+   104    0.415586D-01     0.100D+00    -0.181D-01
+   105   -0.101231D+01     0.100D+00     0.105D+00
+   106    0.129130D+01     0.100D+00     0.225D+00
+   107    0.203868D+00     0.100D+00     0.447D-01
+   108    0.564633D+00     0.100D+00     0.112D+00
+   109   -0.196978D+00     0.100D+00     0.197D-01
+   110   -0.751178D+00     0.100D+00    -0.686D-01
+   111   -0.119111D+01     0.100D+00    -0.845D-01
+   112   -0.137654D+00     0.100D+00    -0.169D-01
+   113   -0.127731D+01     0.100D+00    -0.402D-01
+   114    0.267630D+00     0.100D+00    -0.248D-01
+
+Virtual-chain energies:
+
+EVDW=     -5.289578E+01 WEIGHT=    1.000000D+00 (SC-SC)
+EVDW2=     5.775118E+01 WEIGHT=    1.233150D+00 (SC-p)
+EES=      -1.186172E+02 WEIGHT=    8.447600D-01 (p-p)
+EVDWPP=   -2.337141E+00 WEIGHT=    2.317300D-01 (p-p VDW)
+ESTR=      2.069666E+00 WEIGHT=    1.000000D+00 (stretching)
+EBE=      -9.982381E+00 WEIGHT=    6.295400D-01 (bending)
+ESC=       6.392977E+01 WEIGHT=    1.055400D-01 (SC local)
+ETORS=     8.200430E+00 WEIGHT=    1.843160D+00 (torsional)
+ETORSD=    1.456741E+00 WEIGHT=    1.265710D+00 (double torsional)
+EHBP=      0.000000E+00 WEIGHT=    1.000000D+00 (SS bridges & dist. cnstr.)
+ECORR4=   -8.622975E+01 WEIGHT=    1.921200D-01 (multi-body)
+ECORR5=    0.000000E+00 WEIGHT=    0.000000D+00 (multi-body)
+ECORR6=    0.000000E+00 WEIGHT=    0.000000D+00 (multi-body)
+EELLO=    -8.532097E+00 WEIGHT=    3.735700D-01 (electrostatic-local)
+ETURN3=    1.873760E+01 WEIGHT=    1.403230D+00 (turns, 3rd order)
+ETURN4=   -6.214253E+00 WEIGHT=    6.467300D-01 (turns, 4th order)
+ETURN6=    0.000000E+00 WEIGHT=    0.000000D+00 (turns, 6th order)
+ESCCOR=    0.000000E+00 WEIGHT=    0.000000D+00 (backbone-rotamer corr)
+EDIHC=     0.000000E+00 (dihedral angle constraints)
+ESS=      -0.000000E+00 (disulfide-bridge intrinsic energy)
+UCONST=     0.000000E+00 (Constraint energy)
+ETOT=     -6.041313E+01 (total)
+
+Geometry of the virtual chain.
+  Res           d     Theta     Gamma       Dsc     Alpha      Beta 
+D     1     0.000     0.000     0.000     0.000     0.000     0.000
+ASN   2     3.355     0.000     0.000     2.008    98.794   -78.944
+LEU   3     3.766   103.476     0.000     2.087   117.317   -37.330
+TYR   4     3.779    85.174  -108.391     3.351   145.356   111.337
+ILE   5     3.769    85.148    75.355     1.635   158.873   -81.309
+GLN   6     3.791    88.149    58.397     2.422   116.589  -123.056
+TRP   7     3.789    88.665    40.053     3.667   173.853    90.436
+LEU   8     3.773    87.534    55.540     2.081   134.928  -160.141
+LYS   9     3.745    88.822    58.763     3.070   100.441   -73.061
+ASP  10     3.814    93.510    40.231     2.029   133.322  -143.190
+GLY  11     3.794    85.936    79.931     0.000     0.000   180.000
+GLY  12     3.843    96.146   -68.122     0.000     0.000   180.000
+PRO  13     3.789    96.704   -58.465     1.421   116.943  -132.213
+SER  14     3.847    89.557   -28.082     1.309   140.739  -115.467
+SER  15     3.809   102.316   118.708     1.311   108.505   -76.475
+GLY  16     3.811   141.128    92.010     0.000     0.000   180.000
+ARG  17     3.823   100.046   -74.643     3.430   131.170  -101.818
+PRO  18     3.812   137.745    78.949     1.423    92.450  -106.458
+PRO  19     3.834   108.529   -62.830     1.424   108.291  -119.614
+PRO  20     3.849    95.391  -130.817     1.422   115.420  -129.119
+SER  21     3.817    96.421  -171.218     1.312   135.938  -114.122
+D    22     5.122   105.045    96.667     0.000     0.000   180.000
+SUMSL return code:  4
+# of energy evaluations:                 699
+# of energy evaluations/sec:           0.000
+
+
+***** Computation time:    0 hours  0 minutes  0 seconds *****
diff --git a/examples/unres/MIN/1L2Y_min_GB.int b/examples/unres/MIN/1L2Y_min_GB.int
new file mode 100644 (file)
index 0000000..68a9934
--- /dev/null
@@ -0,0 +1,13 @@
+    0     -60.413 0
+  103.4760   85.1737   85.1483   88.1492   88.6648   87.5335   88.8224   93.5098
+   85.9355   96.1456   96.7040   89.5572  102.3158  141.1282  100.0458  137.7452
+  108.5290   95.3908   96.4215  105.0447
+ -108.3913   75.3546   58.3973   40.0530   55.5398   58.7633   40.2312   79.9312
+  -68.1216  -58.4651  -28.0825  118.7084   92.0102  -74.6435   78.9491  -62.8301
+ -130.8169 -171.2183   96.6675
+   98.7937  117.3169  145.3557  158.8731  116.5890  173.8534  134.9281  100.4407
+  133.3222    0.0000    0.0000  116.9426  140.7394  108.5049    0.0000  131.1704
+   92.4504  108.2907  115.4203  135.9383
+  -78.9440  -37.3304  111.3366  -81.3087 -123.0561   90.4360 -160.1415  -73.0610
+ -143.1896  180.0000  180.0000 -132.2131 -115.4669  -76.4751  180.0000 -101.8175
+ -106.4577 -119.6142 -129.1186 -114.1219
diff --git a/examples/unres/MIN/1L2Y_min_GB.mol2 b/examples/unres/MIN/1L2Y_min_GB.mol2
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/examples/unres/MIN/1L2Y_min_GB.pdb b/examples/unres/MIN/1L2Y_min_GB.pdb
new file mode 100644 (file)
index 0000000..8a5b536
--- /dev/null
@@ -0,0 +1,62 @@
+REMARK 1L2Y ff_1l2y_1le1                                  ENERGY    -6.04131E+01
+HELIX    1 H1  ASN      1  ASP      9  1                                       8
+HELIX    2 H2  GLY     10  GLY     15  1                                       5
+ATOM      1  CA  ASN     1       1.884   2.404   1.387          0.000
+ATOM      2  CB  ASN     1       1.628   2.147   3.362          0.000
+ATOM      3  CA  LEU     2       5.241   0.752   1.813          0.000
+ATOM      4  CB  LEU     2       7.182   1.001   2.540          0.000
+ATOM      5  CA  TYR     3       4.426   0.771   5.503          0.000
+ATOM      6  CB  TYR     3       6.916   1.421   7.649          0.000
+ATOM      7  CA  ILE     4       2.099  -2.076   4.677          0.000
+ATOM      8  CB  ILE     4       0.523  -2.199   4.255          0.000
+ATOM      9  CA  GLN     5       5.094  -3.972   3.333          0.000
+ATOM     10  CB  GLN     5       4.636  -3.042   1.143          0.000
+ATOM     11  CA  TRP     6       7.127  -2.645   6.242          0.000
+ATOM     12  CB  TRP     6      10.428  -1.105   6.659          0.000
+ATOM     13  CA  LEU     7       4.520  -4.130   8.530          0.000
+ATOM     14  CB  LEU     7       3.756  -2.254   9.009          0.000
+ATOM     15  CA  LYS     8       5.236  -7.490   7.039          0.000
+ATOM     16  CB  LYS     8       5.361  -7.245   3.981          0.000
+ATOM     17  CA  ASP     9       9.002  -6.893   6.917          0.000
+ATOM     18  CB  ASP     9       8.963  -5.604   5.350          0.000
+ATOM     19  CA  GLY    10       8.989  -7.779  10.606          0.000
+ATOM     20  CA  GLY    11       7.065  -4.663  11.770          0.000
+ATOM     21  CA  PRO    12       9.515  -2.103  10.430          0.000
+ATOM     22  CB  PRO    12       8.789  -1.192  11.243          0.000
+ATOM     23  CA  SER    13      12.362  -4.659  10.837          0.000
+ATOM     24  CB  SER    13      11.968  -5.488  11.770          0.000
+ATOM     25  CA  SER    14      13.595  -5.078   7.257          0.000
+ATOM     26  CB  SER    14      12.728  -4.513   6.453          0.000
+ATOM     27  CA  GLY    15      16.169  -3.675   4.823          0.000
+ATOM     28  CA  ARG    16      14.533  -0.325   3.980          0.000
+ATOM     29  CB  ARG    16      11.510  -1.665   3.068          0.000
+ATOM     30  CA  PRO    17      14.174   3.120   5.572          0.000
+ATOM     31  CB  PRO    17      13.175   3.162   4.560          0.000
+ATOM     32  CA  PRO    18      12.224   2.748   8.853          0.000
+ATOM     33  CB  PRO    18      13.515   2.952   9.417          0.000
+ATOM     34  CA  PRO    19       9.729   5.585   8.114          0.000
+ATOM     35  CB  PRO    19       9.532   4.834   6.923          0.000
+ATOM     36  CA  SER    20       8.123   5.654  11.576          0.000
+ATOM     37  CB  SER    20       7.985   4.377  11.844          0.000
+TER
+CONECT    1    3    2
+CONECT    3    5    4
+CONECT    5    7    6
+CONECT    7    9    8
+CONECT    9   11   10
+CONECT   11   13   12
+CONECT   13   15   14
+CONECT   15   17   16
+CONECT   17   19   18
+CONECT   19   20
+CONECT   20   21
+CONECT   21   23   22
+CONECT   23   25   24
+CONECT   25   27   26
+CONECT   27   28
+CONECT   28   30   29
+CONECT   30   32   31
+CONECT   32   34   33
+CONECT   34   36   35
+CONECT   36   37
+ENDMDL
diff --git a/examples/unres/MIN/1L2Y_min_GB.stat b/examples/unres/MIN/1L2Y_min_GB.stat
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/examples/unres/MIN/log b/examples/unres/MIN/log
new file mode 100644 (file)
index 0000000..e12147f
--- /dev/null
@@ -0,0 +1,12 @@
+STOP ********** Program terminated normally.
+********************************************************************************
+United-residue force field calculation - serial job.
+********************************************************************************
+Inside initialize indpdb=          52  pdbref= T
+ Call Read_Bridge.
+ ns=           0
+ after etotal
+ Calling MINIM_DC
+ SUMSL return code is           4  eval          698
+ # eval/s   0.0000000000000000     
+ refstr= T
diff --git a/examples/unres/MIN/unres.csh b/examples/unres/MIN/unres.csh
new file mode 100755 (executable)
index 0000000..7ef92dd
--- /dev/null
@@ -0,0 +1,26 @@
+#!/bin/csh
+setenv FGPROCS 1
+setenv POT GB
+setenv PREFIX 1L2Y_min
+setenv OUT1FILE NO
+#-----------------------------------------------------------------------------
+setenv UNRES_BIN ../../../bin/unres/MIN/unres_min_gfortran.exe
+#-----------------------------------------------------------------------------
+setenv DD ../../../PARAM
+setenv BONDPAR $DD/bond_AM1.parm
+setenv THETPAR $DD/theta_abinitio.parm
+setenv THETPARPDB $DD/thetaml.5parm
+setenv ROTPARPDB $DD/scgauss.parm
+setenv ROTPAR $DD/rotamers_AM1_aura.10022007.parm
+setenv TORPAR $DD/torsion_631Gdp.parm
+setenv TORDPAR $DD/torsion_double_631Gdp.parm
+setenv ELEPAR $DD/electr_631Gdp.parm
+setenv SIDEPAR $DD/scinter_${POT}.parm
+setenv FOURIER $DD/fourier_opt.parm.1igd_hc_iter3_3
+setenv SCCORPAR $DD/rotcorr_AM1.parm
+setenv SCPPAR $DD/scp.parm
+setenv PATTERN $DD/patterns.cart
+setenv PRINT_PARM NO
+#-----------------------------------------------------------------------------
+
+$UNRES_BIN 
diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt
deleted file mode 100644 (file)
index 63e5054..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-#
-# CMake project file for UNRES
-#
-
-add_subdirectory(unres) 
diff --git a/source/cluster/unres/src/CMakeLists.txt b/source/cluster/unres/src/CMakeLists.txt
new file mode 100644 (file)
index 0000000..fa3c5f5
--- /dev/null
@@ -0,0 +1,187 @@
+#
+# CMake project file for cluster analysis from UNRESMD  
+# 
+
+enable_language (Fortran)
+
+#================================
+# Set source file lists
+#================================
+set(UNRES_CLUSTER_UNRES_SRC0 
+       arcos.f
+       cartprint.f
+       chainbuild.f
+       contact.f
+       convert.f
+       fitsq.f
+       geomout.F
+       hc.f
+       initialize.f
+       intcor.f
+       main_clust.f
+       matmult.f
+       misc.f
+       noyes.f
+       pinorm.f
+       readpdb.f
+       readrtns.F
+       rescode.f
+       srtclust.f
+       timing.F
+       track.F
+       wrtclust.f
+)
+
+set(UNRES_CLUSTER_PP_SRC
+       geomout.F
+       readrtns.F
+       timing.F
+       track.F
+) 
+
+
+#================================================
+# Set comipiler flags for different sourcefiles  
+#================================================
+if (Fortran_COMPILER_NAME STREQUAL "ifort")
+  set(FFLAGS0 "-ip -w -I." ) 
+elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
+  set(FFLAGS0 "-I. " ) 
+endif (Fortran_COMPILER_NAME STREQUAL "ifort")
+
+
+set_property(SOURCE ${UNRES_CLUSTER_SRC0} PROPERTY COMPILE_FLAGS ${FFLAGS0} )
+
+
+#=========================================
+# System specific flags
+#=========================================
+if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+  set(CPPFLAGS "${CPPFLAGS} LINUX") 
+endif(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+
+
+
+#=========================================
+# Apply preprocesor flags to *.F files
+#=========================================
+set_property(SOURCE ${UNRES_CLUSTER_PP_SRC} PROPERTY COMPILE_DEFINITIONS ${CPPFLAGS} )  
+
+
+#========================================
+#  Setting binary name
+#========================================
+set(UNRES_CLUSTER_BIN "unres_clustMD.exe")
+
+#=========================================
+# cinfo.f stupid workaround for cmake
+#  - shame on me ]:)
+#=========================================
+#set_property(SOURCE compinfo.c PROPERTY CMAKE_C_FLAGS "-c" )
+#add_executable(compinfo-wham-m compinfo.c)
+#set_target_properties(compinfo-wham-m PROPERTIES OUTPUT_NAME compinfo)
+
+#set(UNRES_CINFO_DIR "${CMAKE_CURRENT_BINARY_DIR}" )
+#add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/cinfo.f 
+#      COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/cinfo.f ${CMAKE_CURRENT_BINARY_DIR}/cinfo.f
+#      COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/COMMON.IOUNITS ${CMAKE_CURRENT_BINARY_DIR}/COMMON.IOUNITS 
+#      COMMAND ${CMAKE_CURRENT_BINARY_DIR}/compinfo | true     
+#      DEPENDS compinfo-wham-m )
+#set_property(SOURCE ${UNRES_CINFO_DIR}/cinfo.f PROPERTY COMPILE_FLAGS ${FFLAGS0} )
+
+#=========================================
+# Set full unres CLUSTER sources
+#=========================================
+set(UNRES_CLUSTER_SRCS ${UNRES_CLUSTER_UNRES_SRC0} )
+
+#=========================================
+# Build the binary
+#=========================================
+add_executable(UNRES_CLUSTER_BIN ${UNRES_CLUSTER_SRCS} )
+set_target_properties(UNRES_CLUSTER_BIN PROPERTIES OUTPUT_NAME ${UNRES_CLUSTER_BIN})
+
+
+#=========================================
+# TESTS 
+#=========================================
+
+#-- Copy all the data files from the test directory into the source directory
+#SET(UNRES_TEST_FILES
+#      ala10.inp
+#    )
+
+#FOREACH (UNRES_TEST_FILE ${UNRES_TEST_FILES})
+#      SET (unres_test_dest "${CMAKE_CURRENT_BINARY_DIR}/${UNRES_TEST_FILE}")
+#      MESSAGE (STATUS " Copying ${UNRES_TEST_FILE} from ${CMAKE_SOURCE_DIR}/examples/unres/MD/ff_gab/${UNRES_TEST_FILE} to ${unres_test_dest}")
+#      ADD_CUSTOM_COMMAND (
+#          TARGET     ${UNRES_BIN}
+#          POST_BUILD
+#          COMMAND    ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/examples/unres/MD/ff_gab/${UNRES_TEST_FILE} ${unres_test_dest}
+#      )
+#ENDFOREACH (UNRES_TEST_FILE ${UNRES_TEST_FILES})
+
+#=========================================
+# Generate data test files
+#=========================================
+#  test_single_ala.sh
+#=========================================
+
+#FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh
+#"#!/bin/sh
+#export POT=GB
+#export PREFIX=ala10
+#-----------------------------------------------------------------------------
+#UNRES_BIN=./${UNRES_BIN}
+#-----------------------------------------------------------------------------
+#DD=${CMAKE_SOURCE_DIR}/PARAM
+#export BONDPAR=$DD/bond.parm
+#export THETPAR=$DD/thetaml.5parm
+#export ROTPAR=$DD/scgauss.parm
+#export TORPAR=$DD/torsion_631Gdp.parm
+#export TORDPAR=$DD/torsion_double_631Gdp.parm
+#export ELEPAR=$DD/electr_631Gdp.parm
+#export SIDEPAR=$DD/sc_GB_opt.1gab_3S_qclass5no310-shan2-sc-16-10-8k
+#export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
+#export SCPPAR=$DD/scp.parm
+#export SCCORPAR=$DD/rotcorr_AM1.parm
+#export PATTERN=$DD/patterns.cart
+#-----------------------------------------------------------------------------
+#$UNRES_BIN
+#")
+
+#=========================================
+#  ala10.inp
+#=========================================
+
+#file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/ala10.inp
+#"ala10 unblocked
+#SEED=-1111333 MD ONE_LETTER rescale_mode=2 PDBOUT
+#nstep=15000 ntwe=100 ntwx=1000 dt=0.1 lang=0 tbf t_bath=300 damax=1.0          &
+#reset_moment=1000 reset_vel=1000 MDPDB
+#WLONG=1.35279 WSCP=1.59304 WELEC=0.71534 WBOND=1.00000 WANG=1.13873            &
+#WSCLOC=0.16258 WTOR=1.98599 WTORD=1.57069 WCORRH=0.42887 WCORR5=0.00000        &
+#WCORR6=0.00000 WEL_LOC=0.16036 WTURN3=1.68722 WTURN4=0.66230 WTURN6=0.00000    &
+#WVDWPP=0.11371 WHPB=1.00000                                                    &
+#CUTOFF=7.00000 WCORR4=0.00000
+#12
+#XAAAAAAAAAAX 
+# 0
+# 0
+#   90.0000   90.0000   90.0000  90.000   90.000   90.000   90.000   90.000 
+#   90.0000   90.0000
+#  180.0000  180.0000  180.0000 180.000  180.000  180.000  180.000  180.000
+#  180.0000
+#  110.0000  110.0000  110.0000 100.000  110.000  100.000  110.000  110.000 
+#  110.0000  110.0000
+# -120.0000 -120.0000 -120.000 -120.000 -120.000 -120.000 -120.000 -120.000
+# -120.0000 -120.0000
+#")
+
+
+# Add tests
+
+#if(NOT UNRES_WITH_MPI)
+
+#  add_test(NAME UNRES_MD_Ala10 COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh )
+
+#endif(NOT UNRES_WITH_MPI)
index 3788cdb..2e03f24 100644 (file)
@@ -414,8 +414,10 @@ C-------------------------------------------------C
       CHARACTER*80 LINE
       INTEGER IORDER(LEV),HEIGHT(LEV)
       REAL CRITVAL(LEV)
-      INTEGER OUT(3*LEV,3*LEV)
-      INTEGER UP,ACROSS,BLANK
+C      INTEGER OUT(3*LEV,3*LEV)
+      CHARACTER*1 OUT(3*LEV,3*LEV)
+c      INTEGER UP,ACROSS,BLANK
+      CHARACTER*1 UP,ACROSS,BLANK
       DATA UP,ACROSS,BLANK/'|','-',' '/
 C
 C
diff --git a/source/cluster/wham/src-M/CMakeLists.txt b/source/cluster/wham/src-M/CMakeLists.txt
new file mode 100644 (file)
index 0000000..cd8871c
--- /dev/null
@@ -0,0 +1,238 @@
+#
+# CMake project file for cluster analysis from WHAM for oligomeric proteins  
+# 
+
+enable_language (Fortran C)
+
+#================================
+# Set source file lists
+#================================
+set(UNRES_CLUSTER_WHAM_M_SRC0 
+       arcos.f
+       cartprint.f
+       chainbuild.f
+       contact.f
+       convert.f
+       energy_p_new.F
+       fitsq.f
+       geomout.F
+       gnmr1.f
+       hc.f
+       icant.f
+       initialize_p.F
+       intcor.f
+       int_from_cart1.f
+       main_clust.F
+       matmult.f
+       misc.f
+       noyes.f
+       parmread.F
+       permut.f
+       pinorm.f
+       printmat.f
+       probabl.F
+       read_coords.F
+       readpdb.f
+       readrtns.F
+       rescode.f
+       setup_var.f
+       srtclust.f
+       timing.F
+       track.F
+       wrtclust.f
+       work_partition.F
+)
+
+set(UNRES_CLUSTER_WHAM_M_PP_SRC
+       energy_p_new.F
+       initialize_p.F
+       geomout.F
+       main_clust.F
+       parmread.F
+       probabl.F
+       read_coords.F
+       readrtns.F
+       timing.F
+       track.F
+       work_partition.F
+) 
+
+
+#================================================
+# Set comipiler flags for different sourcefiles  
+#================================================
+if (Fortran_COMPILER_NAME STREQUAL "ifort")
+  set(FFLAGS0 "-ip -w -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres"  ) 
+elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
+  set(FFLAGS0 "-I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres" ) 
+endif (Fortran_COMPILER_NAME STREQUAL "ifort")
+
+# Add MPI compiler flags
+if(UNRES_WITH_MPI)
+  set(FFLAGS0 "${FFLAGS0} -I${MPIF_INCLUDE_DIRECTORIES}")
+endif(UNRES_WITH_MPI)
+
+set_property(SOURCE ${UNRES_CLUSTER_WHAM_M_SRC0} PROPERTY COMPILE_FLAGS ${FFLAGS0} )
+
+set(CPPFLAGS "PROCOR -DSPLITELE -DPROCOR -DCRYST_BOND -DCRYST_THETA -DCRYST_SC" )
+
+if (Fortran_COMPILER_NAME STREQUAL "ifort")
+  # Add ifort preprocessor flags
+  set(CPPFLAGS "${CPPFLAGS} -DPGI") 
+elseif (Fortran_COMPILER_NAME STREQUAL "f95")
+  # Add new gfortran flags
+  set(CPPFLAGS "${CPPFLAGS} -DG77") 
+elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
+  # Add old gfortran flags
+  set(CPPFLAGS "${CPPFLAGS} -DG77") 
+endif (Fortran_COMPILER_NAME STREQUAL "ifort")
+
+
+#=========================================
+# System specific flags
+#=========================================
+if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+  set(CPPFLAGS "${CPPFLAGS} -DLINUX") 
+endif(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+
+#=========================================
+# Add MPI preprocessor flags
+#=========================================
+if (UNRES_WITH_MPI)
+  set(CPPFLAGS "${CPPFLAGS} -DMP -DMPI") 
+endif(UNRES_WITH_MPI)
+
+
+#=========================================
+# Apply preprocesor flags to *.F files
+#=========================================
+set_property(SOURCE ${UNRES_CLUSTER_WHAM_M_PP_SRC} PROPERTY COMPILE_DEFINITIONS ${CPPFLAGS} )  
+
+set_property(SOURCE proc_proc.c PROPERTY COMPILE_DEFINITIONS "LINUX -DPGI" )
+
+#========================================
+#  Setting binary name
+#========================================
+set(UNRES_CLUSTER_WHAM_M_BIN "unres_clustMD.exe")
+
+#=========================================
+# cinfo.f stupid workaround for cmake
+#  - shame on me ]:)
+#=========================================
+#set_property(SOURCE compinfo.c PROPERTY CMAKE_C_FLAGS "-c" )
+#add_executable(compinfo-wham-m compinfo.c)
+#set_target_properties(compinfo-wham-m PROPERTIES OUTPUT_NAME compinfo)
+
+#set(UNRES_CINFO_DIR "${CMAKE_CURRENT_BINARY_DIR}" )
+#add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/cinfo.f 
+#      COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/cinfo.f ${CMAKE_CURRENT_BINARY_DIR}/cinfo.f
+#      COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/COMMON.IOUNITS ${CMAKE_CURRENT_BINARY_DIR}/COMMON.IOUNITS 
+#      COMMAND ${CMAKE_CURRENT_BINARY_DIR}/compinfo | true     
+#      DEPENDS compinfo-wham-m )
+#set_property(SOURCE ${UNRES_CINFO_DIR}/cinfo.f PROPERTY COMPILE_FLAGS ${FFLAGS0} )
+
+#=========================================
+# Set full unres CLUSTER sources
+#=========================================
+set(UNRES_CLUSTER_WHAM_M_SRCS ${UNRES_CLUSTER_WHAM_M_SRC0} proc_proc.c)
+
+#=========================================
+# Build the binary
+#=========================================
+add_executable(UNRES_CLUSTER_WHAM_M_BIN ${UNRES_CLUSTER_WHAM_M_SRCS} )
+set_target_properties(UNRES_CLUSTER_WHAM_M_BIN PROPERTIES OUTPUT_NAME ${UNRES_CLUSTER_WHAM_M_BIN})
+
+#=========================================
+# Link libraries
+#=========================================
+# link MPI library (libmpich.a)  
+if(UNRES_WITH_MPI)
+  target_link_libraries( UNRES_CLUSTER_WHAM_M_BIN ${MPIF_LIBRARIES} )
+endif(UNRES_WITH_MPI)
+# link libxdrf.a 
+target_link_libraries( UNRES_CLUSTER_WHAM_M_BIN xdrf )
+
+#=========================================
+# TESTS 
+#=========================================
+
+#-- Copy all the data files from the test directory into the source directory
+#SET(UNRES_TEST_FILES
+#      ala10.inp
+#    )
+
+#FOREACH (UNRES_TEST_FILE ${UNRES_TEST_FILES})
+#      SET (unres_test_dest "${CMAKE_CURRENT_BINARY_DIR}/${UNRES_TEST_FILE}")
+#      MESSAGE (STATUS " Copying ${UNRES_TEST_FILE} from ${CMAKE_SOURCE_DIR}/examples/unres/MD/ff_gab/${UNRES_TEST_FILE} to ${unres_test_dest}")
+#      ADD_CUSTOM_COMMAND (
+#          TARGET     ${UNRES_BIN}
+#          POST_BUILD
+#          COMMAND    ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/examples/unres/MD/ff_gab/${UNRES_TEST_FILE} ${unres_test_dest}
+#      )
+#ENDFOREACH (UNRES_TEST_FILE ${UNRES_TEST_FILES})
+
+#=========================================
+# Generate data test files
+#=========================================
+#  test_single_ala.sh
+#=========================================
+
+#FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh
+#"#!/bin/sh
+#export POT=GB
+#export PREFIX=ala10
+#-----------------------------------------------------------------------------
+#UNRES_BIN=./${UNRES_BIN}
+#-----------------------------------------------------------------------------
+#DD=${CMAKE_SOURCE_DIR}/PARAM
+#export BONDPAR=$DD/bond.parm
+#export THETPAR=$DD/thetaml.5parm
+#export ROTPAR=$DD/scgauss.parm
+#export TORPAR=$DD/torsion_631Gdp.parm
+#export TORDPAR=$DD/torsion_double_631Gdp.parm
+#export ELEPAR=$DD/electr_631Gdp.parm
+#export SIDEPAR=$DD/sc_GB_opt.1gab_3S_qclass5no310-shan2-sc-16-10-8k
+#export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
+#export SCPPAR=$DD/scp.parm
+#export SCCORPAR=$DD/rotcorr_AM1.parm
+#export PATTERN=$DD/patterns.cart
+#-----------------------------------------------------------------------------
+#$UNRES_BIN
+#")
+
+#=========================================
+#  ala10.inp
+#=========================================
+
+#file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/ala10.inp
+#"ala10 unblocked
+#SEED=-1111333 MD ONE_LETTER rescale_mode=2 PDBOUT
+#nstep=15000 ntwe=100 ntwx=1000 dt=0.1 lang=0 tbf t_bath=300 damax=1.0          &
+#reset_moment=1000 reset_vel=1000 MDPDB
+#WLONG=1.35279 WSCP=1.59304 WELEC=0.71534 WBOND=1.00000 WANG=1.13873            &
+#WSCLOC=0.16258 WTOR=1.98599 WTORD=1.57069 WCORRH=0.42887 WCORR5=0.00000        &
+#WCORR6=0.00000 WEL_LOC=0.16036 WTURN3=1.68722 WTURN4=0.66230 WTURN6=0.00000    &
+#WVDWPP=0.11371 WHPB=1.00000                                                    &
+#CUTOFF=7.00000 WCORR4=0.00000
+#12
+#XAAAAAAAAAAX 
+# 0
+# 0
+#   90.0000   90.0000   90.0000  90.000   90.000   90.000   90.000   90.000 
+#   90.0000   90.0000
+#  180.0000  180.0000  180.0000 180.000  180.000  180.000  180.000  180.000
+#  180.0000
+#  110.0000  110.0000  110.0000 100.000  110.000  100.000  110.000  110.000 
+#  110.0000  110.0000
+# -120.0000 -120.0000 -120.000 -120.000 -120.000 -120.000 -120.000 -120.000
+# -120.0000 -120.0000
+#")
+
+
+# Add tests
+
+#if(NOT UNRES_WITH_MPI)
+
+#  add_test(NAME UNRES_MD_Ala10 COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh )
+
+#endif(NOT UNRES_WITH_MPI)
diff --git a/source/cluster/wham/src-M/diff b/source/cluster/wham/src-M/diff
deleted file mode 100644 (file)
index 5c7ed52..0000000
+++ /dev/null
@@ -1,952 +0,0 @@
-4c4
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-5a6
-> #ifndef ISNAN
-6a8
-> #endif
-83a86,89
-> C
-> C 21/5/07 Calculate local sicdechain correlation energy
-> C
->       call eback_sc_corr(esccor)
-99,125d104
-< C     call multibody(ecorr)
-< C 
-< C Sum the energies
-< C
-< C scale large componenets  
-< c#ifdef SCALE
-< c      ecorr5_scal=1000.0
-< c      eel_loc_scal=100.0
-< c      eello_turn3_scal=100.0
-< c      eello_turn4_scal=100.0
-< c      eturn6_scal=1000.0
-< c      ecorr6_scal=1000.0
-< c#else
-< c      ecorr5_scal=1.0
-< c      eel_loc_scal=1.0
-< c      eello_turn3_scal=1.0
-< c      eello_turn4_scal=1.0
-< c      eturn6_scal=1.0
-< c      ecorr6_scal=1.0
-< c#endif
-< c
-< c      ecorr5=ecorr5/ecorr5_scal
-< c      eel_loc=eel_loc/eel_loc_scal
-< c      eello_turn3=eello_turn3/eello_turn3_scal
-< c      eello_turn4=eello_turn4/eello_turn4_scal
-< c      eturn6=eturn6/eturn6_scal
-< c      ecorr6=ecorr6/ecorr6_scal
-133c112
-<      & +wbond*estr
----
->      & +wbond*estr+wsccor*fact(1)*esccor
-141c120
-<      & +wbond*estr
----
->      & +wbond*estr+wsccor*fact(1)*esccor
-172c151,152
-<       energia(19)=edihcnstr
----
->       energia(19)=esccor
->       energia(20)=edihcnstr
-173a154,160
-> #ifdef ISNAN
-> #ifdef AIX
->       if (isnan(etot).ne.0) energia(0)=1.0d+99
-> #else
->       if (isnan(etot)) energia(0)=1.0d+99
-> #endif
-> #else
-180a168
-> #endif
-201c189,190
-<      &                wturn6*fact(5)*gcorr6_turn(j,i)
----
->      &                wturn6*fact(5)*gcorr6_turn(j,i)+
->      &                wsccor*fact(2)*gsccorc(j,i)
-204c193,194
-<      &                  wstrain*ghpbx(j,i)+wcorr*gradxorr(j,i)
----
->      &                  wstrain*ghpbx(j,i)+wcorr*gradxorr(j,i)+
->      &                  wsccor*fact(2)*gsccorx(j,i)
-218c208,209
-<      &                wturn6*fact(5)*gcorr6_turn(j,i)
----
->      &                wturn6*fact(5)*gcorr6_turn(j,i)+
->      &                wsccor*fact(2)*gsccorc(j,i)
-221c212,213
-<      &                  wstrain*ghpbx(j,i)+wcorr*gradxorr(j,i)
----
->      &                  wstrain*ghpbx(j,i)+wcorr*gradxorr(j,i)+
->      &                  wsccor*fact(1)*gsccorx(j,i)
-224,225d215
-< cd      print '(i3,9(1pe12.4))',i,(gvdwc(k,i),k=1,3),(gelc(k,i),k=1,3),
-< cd   &        (gradc(k,i),k=1,3)
-230d219
-< cd        write (iout,*) i,g_corr5_loc(i)
-237a227
->      &   +wsccor*fact(1)*gsccor_loc(i)
-240,244d229
-< cd    print*,evdw,wsc,evdw2,wscp,ees+evdw1,welec,ebe,wang,
-< cd   &  escloc,wscloc,etors,wtor,ehpb,wstrain,nss,ebr,etot
-< cd    call enerprint(energia(0),fact)
-< cd    call intout
-< cd    stop
-251c236
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-279c264,265
-<       edihcnstr=energia(19)
----
->       esccor=energia(19)
->       edihcnstr=energia(20)
-289c275
-<      &  edihcnstr,ebr*nss,etot
----
->      &  esccor,wsccor*fact(1),edihcnstr,ebr*nss,etot
-308a295
->      & 'ESCCOR=',1pE16.6,' WEIGHT=',1pD16.6,' (backbone-rotamer corr)'/
-318c305,306
-<      &  eello_turn6,wturn6*fact(5),edihcnstr,ebr*nss,etot
----
->      &  eello_turn6,wturn6*fact(5),esccor*fact(1),wsccor,
->      &  edihcnstr,ebr*nss,etot
-336a325
->      & 'ESCCOR=',1pE16.6,' WEIGHT=',1pD16.6,' (backbone-rotamer corr)'/
-351c340
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-360a350
->       include 'COMMON.ENEPS'
-368a359,363
->       do i=1,210
->         do j=1,2
->           eneps_temp(j,i)=0.0d0
->         enddo
->       enddo
-398a394,395
->             eneps_temp(1,ij)=eneps_temp(1,ij)+e1/dabs(eps0ij)
->             eneps_temp(2,ij)=eneps_temp(2,ij)+e2/eps0ij
-512c509
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-519a517
->       include 'COMMON.ENEPS'
-526a525,529
->       do i=1,210
->         do j=1,2
->           eneps_temp(j,i)=0.0d0
->         enddo
->       enddo
-553a557,559
->             eneps_temp(1,ij)=eneps_temp(1,ij)+(e1+a_augm)
->      &        /dabs(eps(itypi,itypj))
->             eneps_temp(2,ij)=eneps_temp(2,ij)+e2/eps(itypi,itypj)
-601c607
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-609a616
->       include 'COMMON.ENEPS'
-616a624,628
->       do i=1,210
->         do j=1,2
->           eneps_temp(j,i)=0.0d0
->         enddo
->       enddo
-688a701,703
->             eneps_temp(1,ij)=eneps_temp(1,ij)+e1*aux
->      &        /dabs(eps(itypi,itypj))
->             eneps_temp(2,ij)=eneps_temp(2,ij)+e2*aux/eps(itypi,itypj)
-728c743
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-736a752
->       include 'COMMON.ENEPS'
-742a759,763
->       do i=1,210
->         do j=1,2
->           eneps_temp(j,i)=0.0d0
->         enddo
->       enddo
-819a841,843
->             eneps_temp(1,ij)=eneps_temp(1,ij)+aux*e1
->      &        /dabs(eps(itypi,itypj))
->             eneps_temp(2,ij)=eneps_temp(2,ij)+aux*e2/eps(itypi,itypj)
-859c883
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-867a892
->       include 'COMMON.ENEPS'
-873a899,903
->       do i=1,210
->         do j=1,2
->           eneps_temp(j,i)=0.0d0
->         enddo
->       enddo
-952a983,987
->             eneps_temp(1,ij)=eneps_temp(1,ij)+aux*(e1+e_augm)
->      &        /dabs(eps(itypi,itypj))
->             eneps_temp(2,ij)=eneps_temp(2,ij)+aux*e2/eps(itypi,itypj)
-> c            eneps_temp(ij)=eneps_temp(ij)
-> c     &         +(evdwij+e_augm)/eps(itypi,itypj)
-1035c1070
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-1073c1108
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-1232c1267
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-1415c1450
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-1500c1535
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-1683c1718
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-2432c2467
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-2699c2734
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-2810c2845
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-2887c2922
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-2968c3003
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-2978a3014
->       double precision u(3),ud(3)
-2988,2989c3024,3027
-<       estr=AKP*estr
-< c      write (iout,*) "estr",estr
----
->       estr=0.5d0*AKP*estr
-> c
-> c 09/18/07 AL: multimodal bond potential based on AM1 CA-SC PMF's included
-> c
-2993,2999c3031,3070
-<           diff=vbld(i+nres)-vbldsc0(iti)
-< c          write (iout,*) i,iti,vbld(i+nres),vbldsc0(iti),diff,
-< c     &      AKSC(iti)*diff*diff
-<           estr=estr+AKSC(iti)*diff*diff
-<           do j=1,3
-<             gradbx(j,i)=AKSC(iti)*diff*dc(j,i+nres)/vbld(i+nres)
-<           enddo
----
->           nbi=nbondterm(iti)
->           if (nbi.eq.1) then
->             diff=vbld(i+nres)-vbldsc0(1,iti)
-> c            write (iout,*) i,iti,vbld(i+nres),vbldsc0(1,iti),diff,
-> c     &      AKSC(1,iti),AKSC(1,iti)*diff*diff
->             estr=estr+0.5d0*AKSC(1,iti)*diff*diff
->             do j=1,3
->               gradbx(j,i)=AKSC(1,iti)*diff*dc(j,i+nres)/vbld(i+nres)
->             enddo
->           else
->             do j=1,nbi
->               diff=vbld(i+nres)-vbldsc0(j,iti)
->               ud(j)=aksc(j,iti)*diff
->               u(j)=abond0(j,iti)+0.5d0*ud(j)*diff
->             enddo
->             uprod=u(1)
->             do j=2,nbi
->               uprod=uprod*u(j)
->             enddo
->             usum=0.0d0
->             usumsqder=0.0d0
->             do j=1,nbi
->               uprod1=1.0d0
->               uprod2=1.0d0
->               do k=1,nbi
->                 if (k.ne.j) then
->                   uprod1=uprod1*u(k)
->                   uprod2=uprod2*u(k)*u(k)
->                 endif
->               enddo
->               usum=usum+uprod1
->               usumsqder=usumsqder+ud(j)*uprod2
->             enddo
-> c            write (iout,*) i,iti,vbld(i+nres),(vbldsc0(j,iti),
-> c     &      AKSC(j,iti),abond0(j,iti),u(j),j=1,nbi)
->             estr=estr+uprod/usum
->             do j=1,3
->              gradbx(j,i)=usumsqder/(usum*usum)*dc(j,i+nres)/vbld(i+nres)
->             enddo
->           endif
-3002,3003d3072
-< c      write (iout,*) "estr",estr
-<       estr=0.5d0*estr
-3005a3075
-> #ifdef CRYST_THETA
-3014c3084
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-3244a3315,3509
-> #else
-> C--------------------------------------------------------------------------
->       subroutine ebend(etheta)
-> C
-> C Evaluate the virtual-bond-angle energy given the virtual-bond dihedral
-> C angles gamma and its derivatives in consecutive thetas and gammas.
-> C ab initio-derived potentials from 
-> c Kozlowska et al., J. Phys.: Condens. Matter 19 (2007) 285203
-> C
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'DIMENSIONS.ZSCOPT'
->       include 'COMMON.LOCAL'
->       include 'COMMON.GEO'
->       include 'COMMON.INTERACT'
->       include 'COMMON.DERIV'
->       include 'COMMON.VAR'
->       include 'COMMON.CHAIN'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.NAMES'
->       include 'COMMON.FFIELD'
->       include 'COMMON.CONTROL'
->       double precision coskt(mmaxtheterm),sinkt(mmaxtheterm),
->      & cosph1(maxsingle),sinph1(maxsingle),cosph2(maxsingle),
->      & sinph2(maxsingle),cosph1ph2(maxdouble,maxdouble),
->      & sinph1ph2(maxdouble,maxdouble)
->       logical lprn /.false./, lprn1 /.false./
->       etheta=0.0D0
-> c      write (iout,*) "ithetyp",(ithetyp(i),i=1,ntyp1)
->       do i=ithet_start,ithet_end
->         dethetai=0.0d0
->         dephii=0.0d0
->         dephii1=0.0d0
->         theti2=0.5d0*theta(i)
->         ityp2=ithetyp(itype(i-1))
->         do k=1,nntheterm
->           coskt(k)=dcos(k*theti2)
->           sinkt(k)=dsin(k*theti2)
->         enddo
->         if (i.gt.3) then
-> #ifdef OSF
->           phii=phi(i)
->           if (phii.ne.phii) phii=150.0
-> #else
->           phii=phi(i)
-> #endif
->           ityp1=ithetyp(itype(i-2))
->           do k=1,nsingle
->             cosph1(k)=dcos(k*phii)
->             sinph1(k)=dsin(k*phii)
->           enddo
->         else
->           phii=0.0d0
->           ityp1=nthetyp+1
->           do k=1,nsingle
->             cosph1(k)=0.0d0
->             sinph1(k)=0.0d0
->           enddo 
->         endif
->         if (i.lt.nres) then
-> #ifdef OSF
->           phii1=phi(i+1)
->           if (phii1.ne.phii1) phii1=150.0
->           phii1=pinorm(phii1)
-> #else
->           phii1=phi(i+1)
-> #endif
->           ityp3=ithetyp(itype(i))
->           do k=1,nsingle
->             cosph2(k)=dcos(k*phii1)
->             sinph2(k)=dsin(k*phii1)
->           enddo
->         else
->           phii1=0.0d0
->           ityp3=nthetyp+1
->           do k=1,nsingle
->             cosph2(k)=0.0d0
->             sinph2(k)=0.0d0
->           enddo
->         endif  
-> c        write (iout,*) "i",i," ityp1",itype(i-2),ityp1,
-> c     &   " ityp2",itype(i-1),ityp2," ityp3",itype(i),ityp3
-> c        call flush(iout)
->         ethetai=aa0thet(ityp1,ityp2,ityp3)
->         do k=1,ndouble
->           do l=1,k-1
->             ccl=cosph1(l)*cosph2(k-l)
->             ssl=sinph1(l)*sinph2(k-l)
->             scl=sinph1(l)*cosph2(k-l)
->             csl=cosph1(l)*sinph2(k-l)
->             cosph1ph2(l,k)=ccl-ssl
->             cosph1ph2(k,l)=ccl+ssl
->             sinph1ph2(l,k)=scl+csl
->             sinph1ph2(k,l)=scl-csl
->           enddo
->         enddo
->         if (lprn) then
->         write (iout,*) "i",i," ityp1",ityp1," ityp2",ityp2,
->      &    " ityp3",ityp3," theti2",theti2," phii",phii," phii1",phii1
->         write (iout,*) "coskt and sinkt"
->         do k=1,nntheterm
->           write (iout,*) k,coskt(k),sinkt(k)
->         enddo
->         endif
->         do k=1,ntheterm
->           ethetai=ethetai+aathet(k,ityp1,ityp2,ityp3)*sinkt(k)
->           dethetai=dethetai+0.5d0*k*aathet(k,ityp1,ityp2,ityp3)
->      &      *coskt(k)
->           if (lprn)
->      &    write (iout,*) "k",k," aathet",aathet(k,ityp1,ityp2,ityp3),
->      &     " ethetai",ethetai
->         enddo
->         if (lprn) then
->         write (iout,*) "cosph and sinph"
->         do k=1,nsingle
->           write (iout,*) k,cosph1(k),sinph1(k),cosph2(k),sinph2(k)
->         enddo
->         write (iout,*) "cosph1ph2 and sinph2ph2"
->         do k=2,ndouble
->           do l=1,k-1
->             write (iout,*) l,k,cosph1ph2(l,k),cosph1ph2(k,l),
->      &         sinph1ph2(l,k),sinph1ph2(k,l) 
->           enddo
->         enddo
->         write(iout,*) "ethetai",ethetai
->         endif
->         do m=1,ntheterm2
->           do k=1,nsingle
->             aux=bbthet(k,m,ityp1,ityp2,ityp3)*cosph1(k)
->      &         +ccthet(k,m,ityp1,ityp2,ityp3)*sinph1(k)
->      &         +ddthet(k,m,ityp1,ityp2,ityp3)*cosph2(k)
->      &         +eethet(k,m,ityp1,ityp2,ityp3)*sinph2(k)
->             ethetai=ethetai+sinkt(m)*aux
->             dethetai=dethetai+0.5d0*m*aux*coskt(m)
->             dephii=dephii+k*sinkt(m)*(
->      &          ccthet(k,m,ityp1,ityp2,ityp3)*cosph1(k)-
->      &          bbthet(k,m,ityp1,ityp2,ityp3)*sinph1(k))
->             dephii1=dephii1+k*sinkt(m)*(
->      &          eethet(k,m,ityp1,ityp2,ityp3)*cosph2(k)-
->      &          ddthet(k,m,ityp1,ityp2,ityp3)*sinph2(k))
->             if (lprn)
->      &      write (iout,*) "m",m," k",k," bbthet",
->      &         bbthet(k,m,ityp1,ityp2,ityp3)," ccthet",
->      &         ccthet(k,m,ityp1,ityp2,ityp3)," ddthet",
->      &         ddthet(k,m,ityp1,ityp2,ityp3)," eethet",
->      &         eethet(k,m,ityp1,ityp2,ityp3)," ethetai",ethetai
->           enddo
->         enddo
->         if (lprn)
->      &  write(iout,*) "ethetai",ethetai
->         do m=1,ntheterm3
->           do k=2,ndouble
->             do l=1,k-1
->               aux=ffthet(l,k,m,ityp1,ityp2,ityp3)*cosph1ph2(l,k)+
->      &            ffthet(k,l,m,ityp1,ityp2,ityp3)*cosph1ph2(k,l)+
->      &            ggthet(l,k,m,ityp1,ityp2,ityp3)*sinph1ph2(l,k)+
->      &            ggthet(k,l,m,ityp1,ityp2,ityp3)*sinph1ph2(k,l)
->               ethetai=ethetai+sinkt(m)*aux
->               dethetai=dethetai+0.5d0*m*coskt(m)*aux
->               dephii=dephii+l*sinkt(m)*(
->      &           -ffthet(l,k,m,ityp1,ityp2,ityp3)*sinph1ph2(l,k)-
->      &            ffthet(k,l,m,ityp1,ityp2,ityp3)*sinph1ph2(k,l)+
->      &            ggthet(l,k,m,ityp1,ityp2,ityp3)*cosph1ph2(l,k)+
->      &            ggthet(k,l,m,ityp1,ityp2,ityp3)*cosph1ph2(k,l))
->               dephii1=dephii1+(k-l)*sinkt(m)*(
->      &           -ffthet(l,k,m,ityp1,ityp2,ityp3)*sinph1ph2(l,k)+
->      &            ffthet(k,l,m,ityp1,ityp2,ityp3)*sinph1ph2(k,l)+
->      &            ggthet(l,k,m,ityp1,ityp2,ityp3)*cosph1ph2(l,k)-
->      &            ggthet(k,l,m,ityp1,ityp2,ityp3)*cosph1ph2(k,l))
->               if (lprn) then
->               write (iout,*) "m",m," k",k," l",l," ffthet",
->      &            ffthet(l,k,m,ityp1,ityp2,ityp3),
->      &            ffthet(k,l,m,ityp1,ityp2,ityp3)," ggthet",
->      &            ggthet(l,k,m,ityp1,ityp2,ityp3),
->      &            ggthet(k,l,m,ityp1,ityp2,ityp3)," ethetai",ethetai
->               write (iout,*) cosph1ph2(l,k)*sinkt(m),
->      &            cosph1ph2(k,l)*sinkt(m),
->      &            sinph1ph2(l,k)*sinkt(m),sinph1ph2(k,l)*sinkt(m)
->               endif
->             enddo
->           enddo
->         enddo
-> 10      continue
->         if (lprn1) write (iout,'(i2,3f8.1,9h ethetai ,f10.5)') 
->      &   i,theta(i)*rad2deg,phii*rad2deg,
->      &   phii1*rad2deg,ethetai
->         etheta=etheta+ethetai
->         if (i.gt.3) gloc(i-3,icg)=gloc(i-3,icg)+wang*dephii
->         if (i.lt.nres) gloc(i-2,icg)=gloc(i-2,icg)+wang*dephii1
->         gloc(nphi+i-2,icg)=wang*dethetai
->       enddo
->       return
->       end
-> #endif
-> #ifdef CRYST_SC
-3252c3517
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-3525a3791,4113
-> #else
-> c----------------------------------------------------------------------------------
->       subroutine esc(escloc)
-> C Calculate the local energy of a side chain and its derivatives in the
-> C corresponding virtual-bond valence angles THETA and the spherical angles 
-> C ALPHA and OMEGA derived from AM1 all-atom calculations.
-> C added by Urszula Kozlowska. 07/11/2007
-> C
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'DIMENSIONS.ZSCOPT'
->       include 'COMMON.GEO'
->       include 'COMMON.LOCAL'
->       include 'COMMON.VAR'
->       include 'COMMON.SCROT'
->       include 'COMMON.INTERACT'
->       include 'COMMON.DERIV'
->       include 'COMMON.CHAIN'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.NAMES'
->       include 'COMMON.FFIELD'
->       include 'COMMON.CONTROL'
->       include 'COMMON.VECTORS'
->       double precision x_prime(3),y_prime(3),z_prime(3)
->      &    , sumene,dsc_i,dp2_i,x(65),
->      &     xx,yy,zz,sumene1,sumene2,sumene3,sumene4,s1,s1_6,s2,s2_6,
->      &    de_dxx,de_dyy,de_dzz,de_dt
->       double precision s1_t,s1_6_t,s2_t,s2_6_t
->       double precision 
->      & dXX_Ci1(3),dYY_Ci1(3),dZZ_Ci1(3),dXX_Ci(3),
->      & dYY_Ci(3),dZZ_Ci(3),dXX_XYZ(3),dYY_XYZ(3),dZZ_XYZ(3),
->      & dt_dCi(3),dt_dCi1(3)
->       common /sccalc/ time11,time12,time112,theti,it,nlobit
->       delta=0.02d0*pi
->       escloc=0.0D0
->       do i=loc_start,loc_end
->         costtab(i+1) =dcos(theta(i+1))
->         sinttab(i+1) =dsqrt(1-costtab(i+1)*costtab(i+1))
->         cost2tab(i+1)=dsqrt(0.5d0*(1.0d0+costtab(i+1)))
->         sint2tab(i+1)=dsqrt(0.5d0*(1.0d0-costtab(i+1)))
->         cosfac2=0.5d0/(1.0d0+costtab(i+1))
->         cosfac=dsqrt(cosfac2)
->         sinfac2=0.5d0/(1.0d0-costtab(i+1))
->         sinfac=dsqrt(sinfac2)
->         it=itype(i)
->         if (it.eq.10) goto 1
-> c
-> C  Compute the axes of tghe local cartesian coordinates system; store in
-> c   x_prime, y_prime and z_prime 
-> c
->         do j=1,3
->           x_prime(j) = 0.00
->           y_prime(j) = 0.00
->           z_prime(j) = 0.00
->         enddo
-> C        write(2,*) "dc_norm", dc_norm(1,i+nres),dc_norm(2,i+nres),
-> C     &   dc_norm(3,i+nres)
->         do j = 1,3
->           x_prime(j) = (dc_norm(j,i) - dc_norm(j,i-1))*cosfac
->           y_prime(j) = (dc_norm(j,i) + dc_norm(j,i-1))*sinfac
->         enddo
->         do j = 1,3
->           z_prime(j) = -uz(j,i-1)
->         enddo     
-> c       write (2,*) "i",i
-> c       write (2,*) "x_prime",(x_prime(j),j=1,3)
-> c       write (2,*) "y_prime",(y_prime(j),j=1,3)
-> c       write (2,*) "z_prime",(z_prime(j),j=1,3)
-> c       write (2,*) "xx",scalar(x_prime(1),x_prime(1)),
-> c      & " xy",scalar(x_prime(1),y_prime(1)),
-> c      & " xz",scalar(x_prime(1),z_prime(1)),
-> c      & " yy",scalar(y_prime(1),y_prime(1)),
-> c      & " yz",scalar(y_prime(1),z_prime(1)),
-> c      & " zz",scalar(z_prime(1),z_prime(1))
-> c
-> C Transform the unit vector of the ith side-chain centroid, dC_norm(*,i),
-> C to local coordinate system. Store in xx, yy, zz.
-> c
->         xx=0.0d0
->         yy=0.0d0
->         zz=0.0d0
->         do j = 1,3
->           xx = xx + x_prime(j)*dc_norm(j,i+nres)
->           yy = yy + y_prime(j)*dc_norm(j,i+nres)
->           zz = zz + z_prime(j)*dc_norm(j,i+nres)
->         enddo
-> 
->         xxtab(i)=xx
->         yytab(i)=yy
->         zztab(i)=zz
-> C
-> C Compute the energy of the ith side cbain
-> C
-> c        write (2,*) "xx",xx," yy",yy," zz",zz
->         it=itype(i)
->         do j = 1,65
->           x(j) = sc_parmin(j,it) 
->         enddo
-> #ifdef CHECK_COORD
-> Cc diagnostics - remove later
->         xx1 = dcos(alph(2))
->         yy1 = dsin(alph(2))*dcos(omeg(2))
->         zz1 = -dsin(alph(2))*dsin(omeg(2))
->         write(2,'(3f8.1,3f9.3,1x,3f9.3)') 
->      &    alph(2)*rad2deg,omeg(2)*rad2deg,theta(3)*rad2deg,xx,yy,zz,
->      &    xx1,yy1,zz1
-> C,"  --- ", xx_w,yy_w,zz_w
-> c end diagnostics
-> #endif
->         sumene1= x(1)+  x(2)*xx+  x(3)*yy+  x(4)*zz+  x(5)*xx**2
->      &   + x(6)*yy**2+  x(7)*zz**2+  x(8)*xx*zz+  x(9)*xx*yy
->      &   + x(10)*yy*zz
->         sumene2=  x(11) + x(12)*xx + x(13)*yy + x(14)*zz + x(15)*xx**2
->      & + x(16)*yy**2 + x(17)*zz**2 + x(18)*xx*zz + x(19)*xx*yy
->      & + x(20)*yy*zz
->         sumene3=  x(21) +x(22)*xx +x(23)*yy +x(24)*zz +x(25)*xx**2
->      &  +x(26)*yy**2 +x(27)*zz**2 +x(28)*xx*zz +x(29)*xx*yy
->      &  +x(30)*yy*zz +x(31)*xx**3 +x(32)*yy**3 +x(33)*zz**3
->      &  +x(34)*(xx**2)*yy +x(35)*(xx**2)*zz +x(36)*(yy**2)*xx
->      &  +x(37)*(yy**2)*zz +x(38)*(zz**2)*xx +x(39)*(zz**2)*yy
->      &  +x(40)*xx*yy*zz
->         sumene4= x(41) +x(42)*xx +x(43)*yy +x(44)*zz +x(45)*xx**2
->      &  +x(46)*yy**2 +x(47)*zz**2 +x(48)*xx*zz +x(49)*xx*yy
->      &  +x(50)*yy*zz +x(51)*xx**3 +x(52)*yy**3 +x(53)*zz**3
->      &  +x(54)*(xx**2)*yy +x(55)*(xx**2)*zz +x(56)*(yy**2)*xx
->      &  +x(57)*(yy**2)*zz +x(58)*(zz**2)*xx +x(59)*(zz**2)*yy
->      &  +x(60)*xx*yy*zz
->         dsc_i   = 0.743d0+x(61)
->         dp2_i   = 1.9d0+x(62)
->         dscp1=dsqrt(dsc_i**2+dp2_i**2-2*dsc_i*dp2_i
->      &          *(xx*cost2tab(i+1)+yy*sint2tab(i+1)))
->         dscp2=dsqrt(dsc_i**2+dp2_i**2-2*dsc_i*dp2_i
->      &          *(xx*cost2tab(i+1)-yy*sint2tab(i+1)))
->         s1=(1+x(63))/(0.1d0 + dscp1)
->         s1_6=(1+x(64))/(0.1d0 + dscp1**6)
->         s2=(1+x(65))/(0.1d0 + dscp2)
->         s2_6=(1+x(65))/(0.1d0 + dscp2**6)
->         sumene = ( sumene3*sint2tab(i+1) + sumene1)*(s1+s1_6)
->      & + (sumene4*cost2tab(i+1) +sumene2)*(s2+s2_6)
-> c        write(2,'(i2," sumene",7f9.3)') i,sumene1,sumene2,sumene3,
-> c     &   sumene4,
-> c     &   dscp1,dscp2,sumene
-> c        sumene = enesc(x,xx,yy,zz,cost2tab(i+1),sint2tab(i+1))
->         escloc = escloc + sumene
-> c        write (2,*) "escloc",escloc
->         if (.not. calc_grad) goto 1
-> #ifdef DEBUG
-> C
-> C This section to check the numerical derivatives of the energy of ith side
-> C chain in xx, yy, zz, and theta. Use the -DDEBUG compiler option or insert
-> C #define DEBUG in the code to turn it on.
-> C
->         write (2,*) "sumene               =",sumene
->         aincr=1.0d-7
->         xxsave=xx
->         xx=xx+aincr
->         write (2,*) xx,yy,zz
->         sumenep = enesc(x,xx,yy,zz,cost2tab(i+1),sint2tab(i+1))
->         de_dxx_num=(sumenep-sumene)/aincr
->         xx=xxsave
->         write (2,*) "xx+ sumene from enesc=",sumenep
->         yysave=yy
->         yy=yy+aincr
->         write (2,*) xx,yy,zz
->         sumenep = enesc(x,xx,yy,zz,cost2tab(i+1),sint2tab(i+1))
->         de_dyy_num=(sumenep-sumene)/aincr
->         yy=yysave
->         write (2,*) "yy+ sumene from enesc=",sumenep
->         zzsave=zz
->         zz=zz+aincr
->         write (2,*) xx,yy,zz
->         sumenep = enesc(x,xx,yy,zz,cost2tab(i+1),sint2tab(i+1))
->         de_dzz_num=(sumenep-sumene)/aincr
->         zz=zzsave
->         write (2,*) "zz+ sumene from enesc=",sumenep
->         costsave=cost2tab(i+1)
->         sintsave=sint2tab(i+1)
->         cost2tab(i+1)=dcos(0.5d0*(theta(i+1)+aincr))
->         sint2tab(i+1)=dsin(0.5d0*(theta(i+1)+aincr))
->         sumenep = enesc(x,xx,yy,zz,cost2tab(i+1),sint2tab(i+1))
->         de_dt_num=(sumenep-sumene)/aincr
->         write (2,*) " t+ sumene from enesc=",sumenep
->         cost2tab(i+1)=costsave
->         sint2tab(i+1)=sintsave
-> C End of diagnostics section.
-> #endif
-> C        
-> C Compute the gradient of esc
-> C
->         pom_s1=(1.0d0+x(63))/(0.1d0 + dscp1)**2
->         pom_s16=6*(1.0d0+x(64))/(0.1d0 + dscp1**6)**2
->         pom_s2=(1.0d0+x(65))/(0.1d0 + dscp2)**2
->         pom_s26=6*(1.0d0+x(65))/(0.1d0 + dscp2**6)**2
->         pom_dx=dsc_i*dp2_i*cost2tab(i+1)
->         pom_dy=dsc_i*dp2_i*sint2tab(i+1)
->         pom_dt1=-0.5d0*dsc_i*dp2_i*(xx*sint2tab(i+1)-yy*cost2tab(i+1))
->         pom_dt2=-0.5d0*dsc_i*dp2_i*(xx*sint2tab(i+1)+yy*cost2tab(i+1))
->         pom1=(sumene3*sint2tab(i+1)+sumene1)
->      &     *(pom_s1/dscp1+pom_s16*dscp1**4)
->         pom2=(sumene4*cost2tab(i+1)+sumene2)
->      &     *(pom_s2/dscp2+pom_s26*dscp2**4)
->         sumene1x=x(2)+2*x(5)*xx+x(8)*zz+ x(9)*yy
->         sumene3x=x(22)+2*x(25)*xx+x(28)*zz+x(29)*yy+3*x(31)*xx**2
->      &  +2*x(34)*xx*yy +2*x(35)*xx*zz +x(36)*(yy**2) +x(38)*(zz**2)
->      &  +x(40)*yy*zz
->         sumene2x=x(12)+2*x(15)*xx+x(18)*zz+ x(19)*yy
->         sumene4x=x(42)+2*x(45)*xx +x(48)*zz +x(49)*yy +3*x(51)*xx**2
->      &  +2*x(54)*xx*yy+2*x(55)*xx*zz+x(56)*(yy**2)+x(58)*(zz**2)
->      &  +x(60)*yy*zz
->         de_dxx =(sumene1x+sumene3x*sint2tab(i+1))*(s1+s1_6)
->      &        +(sumene2x+sumene4x*cost2tab(i+1))*(s2+s2_6)
->      &        +(pom1+pom2)*pom_dx
-> #ifdef DEBUG
->         write(2,*), "de_dxx = ", de_dxx,de_dxx_num
-> #endif
-> C
->         sumene1y=x(3) + 2*x(6)*yy + x(9)*xx + x(10)*zz
->         sumene3y=x(23) +2*x(26)*yy +x(29)*xx +x(30)*zz +3*x(32)*yy**2
->      &  +x(34)*(xx**2) +2*x(36)*yy*xx +2*x(37)*yy*zz +x(39)*(zz**2)
->      &  +x(40)*xx*zz
->         sumene2y=x(13) + 2*x(16)*yy + x(19)*xx + x(20)*zz
->         sumene4y=x(43)+2*x(46)*yy+x(49)*xx +x(50)*zz
->      &  +3*x(52)*yy**2+x(54)*xx**2+2*x(56)*yy*xx +2*x(57)*yy*zz
->      &  +x(59)*zz**2 +x(60)*xx*zz
->         de_dyy =(sumene1y+sumene3y*sint2tab(i+1))*(s1+s1_6)
->      &        +(sumene2y+sumene4y*cost2tab(i+1))*(s2+s2_6)
->      &        +(pom1-pom2)*pom_dy
-> #ifdef DEBUG
->         write(2,*), "de_dyy = ", de_dyy,de_dyy_num
-> #endif
-> C
->         de_dzz =(x(24) +2*x(27)*zz +x(28)*xx +x(30)*yy
->      &  +3*x(33)*zz**2 +x(35)*xx**2 +x(37)*yy**2 +2*x(38)*zz*xx 
->      &  +2*x(39)*zz*yy +x(40)*xx*yy)*sint2tab(i+1)*(s1+s1_6) 
->      &  +(x(4) + 2*x(7)*zz+  x(8)*xx + x(10)*yy)*(s1+s1_6) 
->      &  +(x(44)+2*x(47)*zz +x(48)*xx   +x(50)*yy  +3*x(53)*zz**2   
->      &  +x(55)*xx**2 +x(57)*(yy**2)+2*x(58)*zz*xx +2*x(59)*zz*yy  
->      &  +x(60)*xx*yy)*cost2tab(i+1)*(s2+s2_6)
->      &  + ( x(14) + 2*x(17)*zz+  x(18)*xx + x(20)*yy)*(s2+s2_6)
-> #ifdef DEBUG
->         write(2,*), "de_dzz = ", de_dzz,de_dzz_num
-> #endif
-> C
->         de_dt =  0.5d0*sumene3*cost2tab(i+1)*(s1+s1_6) 
->      &  -0.5d0*sumene4*sint2tab(i+1)*(s2+s2_6)
->      &  +pom1*pom_dt1+pom2*pom_dt2
-> #ifdef DEBUG
->         write(2,*), "de_dt = ", de_dt,de_dt_num
-> #endif
-> c 
-> C
->        cossc=scalar(dc_norm(1,i),dc_norm(1,i+nres))
->        cossc1=scalar(dc_norm(1,i-1),dc_norm(1,i+nres))
->        cosfac2xx=cosfac2*xx
->        sinfac2yy=sinfac2*yy
->        do k = 1,3
->          dt_dCi(k) = -(dc_norm(k,i-1)+costtab(i+1)*dc_norm(k,i))*
->      &      vbld_inv(i+1)
->          dt_dCi1(k)= -(dc_norm(k,i)+costtab(i+1)*dc_norm(k,i-1))*
->      &      vbld_inv(i)
->          pom=(dC_norm(k,i+nres)-cossc*dC_norm(k,i))*vbld_inv(i+1)
->          pom1=(dC_norm(k,i+nres)-cossc1*dC_norm(k,i-1))*vbld_inv(i)
-> c         write (iout,*) "i",i," k",k," pom",pom," pom1",pom1,
-> c     &    " dt_dCi",dt_dCi(k)," dt_dCi1",dt_dCi1(k)
-> c         write (iout,*) "dC_norm",(dC_norm(j,i),j=1,3),
-> c     &   (dC_norm(j,i-1),j=1,3)," vbld_inv",vbld_inv(i+1),vbld_inv(i)
->          dXX_Ci(k)=pom*cosfac-dt_dCi(k)*cosfac2xx
->          dXX_Ci1(k)=-pom1*cosfac-dt_dCi1(k)*cosfac2xx
->          dYY_Ci(k)=pom*sinfac+dt_dCi(k)*sinfac2yy
->          dYY_Ci1(k)=pom1*sinfac+dt_dCi1(k)*sinfac2yy
->          dZZ_Ci1(k)=0.0d0
->          dZZ_Ci(k)=0.0d0
->          do j=1,3
->            dZZ_Ci(k)=dZZ_Ci(k)-uzgrad(j,k,2,i-1)*dC_norm(j,i+nres)
->            dZZ_Ci1(k)=dZZ_Ci1(k)-uzgrad(j,k,1,i-1)*dC_norm(j,i+nres)
->          enddo
->           
->          dXX_XYZ(k)=vbld_inv(i+nres)*(x_prime(k)-xx*dC_norm(k,i+nres))
->          dYY_XYZ(k)=vbld_inv(i+nres)*(y_prime(k)-yy*dC_norm(k,i+nres))
->          dZZ_XYZ(k)=vbld_inv(i+nres)*(z_prime(k)-zz*dC_norm(k,i+nres))
-> c
->          dt_dCi(k) = -dt_dCi(k)/sinttab(i+1)
->          dt_dCi1(k)= -dt_dCi1(k)/sinttab(i+1)
->        enddo
-> 
->        do k=1,3
->          dXX_Ctab(k,i)=dXX_Ci(k)
->          dXX_C1tab(k,i)=dXX_Ci1(k)
->          dYY_Ctab(k,i)=dYY_Ci(k)
->          dYY_C1tab(k,i)=dYY_Ci1(k)
->          dZZ_Ctab(k,i)=dZZ_Ci(k)
->          dZZ_C1tab(k,i)=dZZ_Ci1(k)
->          dXX_XYZtab(k,i)=dXX_XYZ(k)
->          dYY_XYZtab(k,i)=dYY_XYZ(k)
->          dZZ_XYZtab(k,i)=dZZ_XYZ(k)
->        enddo
-> 
->        do k = 1,3
-> c         write (iout,*) "k",k," dxx_ci1",dxx_ci1(k)," dyy_ci1",
-> c     &    dyy_ci1(k)," dzz_ci1",dzz_ci1(k)
-> c         write (iout,*) "k",k," dxx_ci",dxx_ci(k)," dyy_ci",
-> c     &    dyy_ci(k)," dzz_ci",dzz_ci(k)
-> c         write (iout,*) "k",k," dt_dci",dt_dci(k)," dt_dci",
-> c     &    dt_dci(k)
-> c         write (iout,*) "k",k," dxx_XYZ",dxx_XYZ(k)," dyy_XYZ",
-> c     &    dyy_XYZ(k)," dzz_XYZ",dzz_XYZ(k) 
->          gscloc(k,i-1)=gscloc(k,i-1)+de_dxx*dxx_ci1(k)
->      &    +de_dyy*dyy_ci1(k)+de_dzz*dzz_ci1(k)+de_dt*dt_dCi1(k)
->          gscloc(k,i)=gscloc(k,i)+de_dxx*dxx_Ci(k)
->      &    +de_dyy*dyy_Ci(k)+de_dzz*dzz_Ci(k)+de_dt*dt_dCi(k)
->          gsclocx(k,i)=                 de_dxx*dxx_XYZ(k)
->      &    +de_dyy*dyy_XYZ(k)+de_dzz*dzz_XYZ(k)
->        enddo
-> c       write(iout,*) "ENERGY GRAD = ", (gscloc(k,i-1),k=1,3),
-> c     &  (gscloc(k,i),k=1,3),(gsclocx(k,i),k=1,3)  
-> 
-> C to check gradient call subroutine check_grad
-> 
->     1 continue
->       enddo
->       return
->       end
-> #endif
-3563c4151
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-3611c4199
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-3694c4282
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-3780c4368
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-3847a4436,4486
->       subroutine eback_sc_corr(esccor)
-> c 7/21/2007 Correlations between the backbone-local and side-chain-local
-> c        conformational states; temporarily implemented as differences
-> c        between UNRES torsional potentials (dependent on three types of
-> c        residues) and the torsional potentials dependent on all 20 types
-> c        of residues computed from AM1 energy surfaces of terminally-blocked
-> c        amino-acid residues.
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'DIMENSIONS.ZSCOPT'
->       include 'COMMON.VAR'
->       include 'COMMON.GEO'
->       include 'COMMON.LOCAL'
->       include 'COMMON.TORSION'
->       include 'COMMON.SCCOR'
->       include 'COMMON.INTERACT'
->       include 'COMMON.DERIV'
->       include 'COMMON.CHAIN'
->       include 'COMMON.NAMES'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.FFIELD'
->       include 'COMMON.CONTROL'
->       logical lprn
-> C Set lprn=.true. for debugging
->       lprn=.false.
-> c      lprn=.true.
-> c      write (iout,*) "EBACK_SC_COR",iphi_start,iphi_end,nterm_sccor
->       esccor=0.0D0
->       do i=iphi_start,iphi_end
->         esccor_ii=0.0D0
->         itori=itype(i-2)
->         itori1=itype(i-1)
->         phii=phi(i)
->         gloci=0.0D0
->         do j=1,nterm_sccor
->           v1ij=v1sccor(j,itori,itori1)
->           v2ij=v2sccor(j,itori,itori1)
->           cosphi=dcos(j*phii)
->           sinphi=dsin(j*phii)
->           esccor=esccor+v1ij*cosphi+v2ij*sinphi
->           gloci=gloci+j*(v2ij*cosphi-v1ij*sinphi)
->         enddo
->         if (lprn)
->      &  write (iout,'(2(a3,2x,i3,2x),2i3,6f8.3/26x,6f8.3/)')
->      &  restyp(itype(i-2)),i-2,restyp(itype(i-1)),i-1,itori,itori1,
->      &  (v1sccor(j,itori,itori1),j=1,6),(v2sccor(j,itori,itori1),j=1,6)
->         gsccor_loc(i-3)=gloci
->       enddo
->       return
->       end
-> c------------------------------------------------------------------------------
-4003c4642
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-4189c4828
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-4498c5137
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-4565c5204
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-4942c5581
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-5059c5698
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-5460c6099
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-5597c6236
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-5703c6342
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-5890c6529
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-6006c6645
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-6252c6891
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
index aa1ef75..c02d085 100644 (file)
@@ -6270,18 +6270,18 @@ c--------------------------------------------------------------------------
       logical lprn
       common /kutas/ lprn
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-C                                              
-C      Parallel       Antiparallel
-C                                             
-C          o             o         
-C         /l\           /j\       
-C        /   \         /   \      
-C       /| o |         | o |\     
-C     \ j|/k\|  /   \  |/k\|l /   
-C      \ /   \ /     \ /   \ /    
-C       o     o       o     o                
-C       i             i                     
-C
+C                                                                              C 
+C      Parallel       Antiparallel                                             C
+C                                                                              C
+C          o             o                                                     C
+C         /l\           /j\                                                    C
+C        /   \         /   \                                                   C
+C       /| o |         | o |\                                                  C
+C     \ j|/k\|  /   \  |/k\|l /                                                C
+C      \ /   \ /     \ /   \ /                                                 C
+C       o     o       o     o                                                  C
+C       i             i                                                        C
+C                                                                              C
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
       itk=itortyp(itype(k))
       s1= scalar2(AEAb1(1,2,imat),CUgb2(1,i))
@@ -6377,18 +6377,18 @@ c----------------------------------------------------------------------------
       logical lprn
       common /kutas/ lprn
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-C                                              
-C      Parallel       Antiparallel
-C                                             
-C          o             o         
-C     \   /l\           /j\   /   
-C      \ /   \         /   \ /    
-C       o| o |         | o |o     
-C     \ j|/k\|      \  |/k\|l     
-C      \ /   \       \ /   \      
-C       o             o                      
-C       i             i                     
-C
+C                                                                              C 
+C      Parallel       Antiparallel                                             C
+C                                                                              C
+C          o             o                                                     C
+C     \   /l\           /j\   /                                                C
+C      \ /   \         /   \ /                                                 C
+C       o| o |         | o |o                                                  C
+C     \ j|/k\|      \  |/k\|l                                                  C
+C      \ /   \       \ /   \                                                   C
+C       o             o                                                        C
+C       i             i                                                        C
+C                                                                              C
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
 cd      write (2,*) 'eello6_graph2: i,',i,' j',j,' k',k,' l',l
 C AL 7/4/01 s1 would occur in the sixth-order moment, 
@@ -6561,18 +6561,18 @@ c----------------------------------------------------------------------------
       double precision vv(2),pizda(2,2),auxmat(2,2),auxvec(2)
       logical swap
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-C                                              
-C      Parallel       Antiparallel
-C                                             
-C          o             o         
-C         /l\   /   \   /j\       
-C        /   \ /     \ /   \      
-C       /| o |o       o| o |\     
-C       j|/k\|  /      |/k\|l /   
-C        /   \ /       /   \ /    
-C       /     o       /     o                
-C       i             i                     
-C
+C                                                                              C
+C      Parallel       Antiparallel                                             C
+C                                                                              C
+C          o             o                                                     C
+C         /l\   /   \   /j\                                                    C
+C        /   \ /     \ /   \                                                   C
+C       /| o |o       o| o |\                                                  C
+C       j|/k\|  /      |/k\|l /                                                C
+C        /   \ /       /   \ /                                                 C
+C       /     o       /     o                                                  C
+C       i             i                                                        C
+C                                                                              C
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
 C
 C 4/7/01 AL Component s1 was removed, because it pertains to the respective 
@@ -6679,18 +6679,18 @@ c----------------------------------------------------------------------------
      & auxvec1(2),auxmat1(2,2)
       logical swap
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-C                                              
-C      Parallel       Antiparallel
-C                                             
-C          o             o         
-C         /l\   /   \   /j\       
-C        /   \ /     \ /   \      
-C       /| o |o       o| o |\     
-C     \ j|/k\|      \  |/k\|l     
-C      \ /   \       \ /   \      
-C       o     \       o     \                
-C       i             i                     
-C
+C                                                                              C
+C      Parallel       Antiparallel                                             C
+C                                                                              C
+C          o             o                                                     C
+C         /l\   /   \   /j\                                                    C
+C        /   \ /     \ /   \                                                   C
+C       /| o |o       o| o |\                                                  C
+C     \ j|/k\|      \  |/k\|l                                                  C
+C      \ /   \       \ /   \                                                   C
+C       o     \       o     \                                                  C
+C       i             i                                                        C
+C                                                                              C
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
 C
 C 4/7/01 AL Component s1 was removed, because it pertains to the respective 
index 3788cdb..a1a089e 100644 (file)
@@ -414,8 +414,10 @@ C-------------------------------------------------C
       CHARACTER*80 LINE
       INTEGER IORDER(LEV),HEIGHT(LEV)
       REAL CRITVAL(LEV)
-      INTEGER OUT(3*LEV,3*LEV)
-      INTEGER UP,ACROSS,BLANK
+c      INTEGER OUT(3*LEV,3*LEV)
+c      INTEGER UP,ACROSS,BLANK
+      CHARACTER*1 OUT(3*LEV,3*LEV)
+      CHARACTER*1 UP,ACROSS,BLANK
       DATA UP,ACROSS,BLANK/'|','-',' '/
 C
 C
diff --git a/source/cluster/wham/src-M/map b/source/cluster/wham/src-M/map
deleted file mode 100644 (file)
index 9c88872..0000000
+++ /dev/null
@@ -1,4716 +0,0 @@
-pgf90 -C -g  -c -I. -I../src_MD_T -I../src_MD -I/users/adam/MEY_MD/src -I/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/include -DLINUX -DPGI -DSPLITELE -DPROCOR -DMP -DMPI -C -g  -c -I. -I../src_MD_T -I../src_MD -I/users/adam/MEY_MD/src -I/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/include initialize_p.F
-pgf90 -C -g  main_clust.o arcos.o cartprint.o chainbuild.o convert.o initialize_p.o matmult.o readrtns.o pinorm.o rescode.o intcor.o timing.o misc.o geomout.o readpdb.o read_coords.o parmread.o probabl.o fitsq.o hc.o track.o wrtclust.o srtclust.o noyes.o contact.o printmat.o int_from_cart1.o energy_p_new.o icant.o proc_proc.o work_partition.o setup_var.o -L/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib -lmpich -lpmpich -m -o /users/adam/ZSCOREZ/bin/unres_clustMD_MPI
-Archive member included because of file (symbol)
-
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(abortf.o)
-                              work_partition.o (mpi_abort_)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(allgatherf.o)
-                              read_coords.o (mpi_allgather_)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bcastf.o)
-                              probabl.o (mpi_bcast_)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_rankf.o)
-                              main_clust.o (mpi_comm_rank_)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_sizef.o)
-                              main_clust.o (mpi_comm_size_)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(dup_fnf.o)
-                              main_clust.o (mpi_dup_fn_)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(finalizef.o)
-                              main_clust.o (mpi_finalize_)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(gathervf.o)
-                              main_clust.o (mpi_gatherv_)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initf.o)
-                              main_clust.o (mpi_init_)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(null_copyfnf.o)
-                              main_clust.o (mpi_null_copy_fn_)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(null_del_fnf.o)
-                              main_clust.o (mpi_null_delete_fn_)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(recvf.o)
-                              read_coords.o (mpi_recv_)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(sendf.o)
-                              read_coords.o (mpi_send_)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtickf.o)
-                              main_clust.o (mpi_wtick_)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtimef.o)
-                              main_clust.o (mpi_wtime_)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(farg.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initf.o) (mpir_iargc_)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(dup_fnf.o) (MPIR_F_TRUE)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfcmn.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o) (mpir_init_fcm_)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(mperror.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initf.o) (MPIR_Error)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(send.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(sendf.o) (MPI_Send)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(recv.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(recvf.o) (MPI_Recv)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_util.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o) (MPIR_Free_perm_type)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(abort.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(abortf.o) (MPI_Abort)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(init.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initf.o) (MPI_Init)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(init.o) (MPIR_Init)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(finalize.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(finalizef.o) (MPI_Finalize)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(errorstring.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(mperror.o) (MPI_Error_string)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o) (MPIR_Init_dtes)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(errfree.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(finalize.o) (PMPI_Errhandler_free)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtime.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtimef.o) (MPI_Wtime)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtick.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtickf.o) (MPI_Wtick)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(nerrmsg.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(send.o) (MPIR_Err_setmsg)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(msgqdllloc.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o) (MPIR_Msg_queue_export)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(util_hbt.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o) (MPIR_HBT_Init)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(ptrcvt.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o) (MPIR_PointerPerm)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bsendutil2.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(finalize.o) (MPIR_BsendRelease)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(keyval_free.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o) (MPI_Keyval_free)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(attr_getval.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o) (MPI_Attr_get)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(attr_util.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o) (MPIR_Attr_create_tree)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(attr_putval.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o) (MPI_Attr_put)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(group_free.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(finalize.o) (PMPI_Group_free)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(group_util.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o) (MPIR_CreateGroup)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_free.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(finalize.o) (PMPI_Comm_free)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_rank.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_rankf.o) (MPI_Comm_rank)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_name_put.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o) (MPI_Comm_set_name)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_size.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_sizef.o) (MPI_Comm_size)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_util.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o) (MPIR_Comm_make_coll)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(context_util.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_free.o) (MPIR_Context_dealloc)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(dup_fn.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(dup_fnf.o) (MPIR_dup_fn)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(barrier.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(finalize.o) (PMPI_Barrier)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bcast.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bcastf.o) (MPI_Bcast)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(gatherv.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(gathervf.o) (MPI_Gatherv)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(allgather.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(allgatherf.o) (MPI_Allgather)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(allreduce.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(context_util.o) (PMPI_Allreduce)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(global_ops.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o) (MPIR_MAXF)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(opfree.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(finalize.o) (PMPI_Op_free)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(oputil.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o) (MPIR_Op_setup)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(inter_fns.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_util.o) (MPIR_inter_collops)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_fns_new.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_util.o) (MPIR_intra_collops)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_scan.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_fns_new.o) (MPIR_intra_Scan)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(topo_util.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o) (MPIR_Topology_Init)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(statusc2f.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(recvf.o) (MPI_Status_c2f)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_utils.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o) (p4_proc_info)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_bm.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_utils.o) (bm_start)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_rm.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_utils.o) (rm_start)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_util.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_bm.o) (net_setup_anon_listener)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_cr.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_bm.o) (create_remote_processes)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_conn.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_bm.o) (handle_connection_interrupt)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_sr.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_utils.o) (socket_close_conn)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_list.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_bm.o) (listener)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_secure.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_cr.o) (start_slave)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(usc.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_bm.o) (usc_init)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2init.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o) (MPID_Init)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2hsend.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(send.o) (MPID_SendDatatype)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2hrecv.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(recv.o) (MPID_RecvDatatype)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2pack.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2hsend.o) (MPID_Msg_rep)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2mpack.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2hsend.o) (MPID_PackMessage)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bswap2.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2pack.o) (MPID_Type_swap_copy)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chdebug.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2init.o) (MPID_DEBUG_FILE)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chinit.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2init.o) (MPID_CH_InitMsgPass)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chhetero.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chinit.o) (MPID_CH_Init_hetero)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chtick.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtick.o) (MPID_CH_Wtick)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4priv.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chinit.o) (MPID_P4_Init)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(queue.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(finalize.o) (MPID_Dump_queues)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(cmnargs.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o) (MPID_ArgSqueeze)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(sbcnst2.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o) (MPID_SBinit)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(session.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4priv.o) (MPID_Process_group_init)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chpackflow.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chinit.o) (MPID_PacketFlowSetup)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chcancel.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chinit.o) (MPID_FinishCancelPackets)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(isend.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_fns_new.o) (PMPI_Isend)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(irecv.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_fns_new.o) (PMPI_Irecv)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wait.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bsendutil2.o) (MPI_Wait)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(test.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bsendutil2.o) (MPI_Test)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(cancel.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_fns_new.o) (PMPI_Cancel)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(waitall.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_fns_new.o) (PMPI_Waitall)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(sendrecv.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_util.o) (MPI_Sendrecv)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(testall.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(test.o) (PMPI_Testall)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(getcount.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_fns_new.o) (PMPI_Get_count)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_commit.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o) (MPI_Type_commit)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_contig.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o) (MPI_Type_contiguous)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_extent.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_scan.o) (MPI_Type_extent)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_free.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_fns_new.o) (PMPI_Type_free)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_ind.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_fns_new.o) (PMPI_Type_indexed)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_lb.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_scan.o) (MPI_Type_lb)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_size.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_fns_new.o) (PMPI_Type_size)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_struct.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o) (MPI_Type_struct)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(pack_size.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bsendutil2.o) (MPI_Pack_size)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(pack.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bsendutil2.o) (MPI_Pack)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(unpack.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_fns_new.o) (PMPI_Unpack)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o) (MPIR_Breakpoint)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(errset.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_util.o) (MPI_Errhandler_set)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(pkutil.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2pack.o) (MPIR_Unpack)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(keyvalcreate.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(topo_util.o) (MPI_Keyval_create)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(reduce.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_fns_new.o) (PMPI_Reduce)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_utils.o) (p4_global)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_MD.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_bm.o) (MD_initmem)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_error.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_utils.o) (p4_error)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_args.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_utils.o) (process_args)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_alloc.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_bm.o) (alloc_local_bm)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_debug.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_utils.o) (p4_dprintf)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_procgroup.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_args.o) (p4_alloc_procgroup)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_tsr.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4priv.o) (p4_recv)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_mon.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_tsr.o) (p4_moninit)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_broadcast.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4priv.o) (p4_broadcastx)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2recv.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2hrecv.o) (MPID_IrecvContig)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2send.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2hsend.o) (MPID_SendContig)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2cancel.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(cancel.o) (MPID_SendCancel)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chbeager.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chinit.o) (MPID_CH_Eagerb_setup)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chbrndv.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chinit.o) (MPID_CH_Rndvb_setup)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chchkdev.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chinit.o) (MPID_CH_Check_incoming)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chshort.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chinit.o) (MPID_CH_Short_setup)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chflow.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chbeager.o) (MPID_DebugFlow)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_hind.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_ind.o) (PMPI_Type_hindexed)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(dmpipk.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(pkutil.o) (MPIR_Pack_Hvector)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(close.o)
-                              main_clust.o (pgf90io_close)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(desc.o)
-                              readpdb.o (pghpfio_fmt_read)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(encodefmt.o)
-                              main_clust.o (pgf90io_encode_fmt)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(error.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(close.o) (__hpfio_errinit)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtread.o)
-                              readrtns.o (pgf90io_fmtr_init)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtwrite.o)
-                              main_clust.o (pgf90io_fmtw_init)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(ftnexit.o)
-                              /usr/pgi/linux86-64/6.0/lib/f90main.o (pgf90_exit)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(ldread.o)
-                              readrtns.o (pgf90io_ldr_init)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(ldwrite.o)
-                              main_clust.o (pgf90io_ldw_init)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(open.o)
-                              main_clust.o (pgf90io_open)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(pgifiodf.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(close.o) (pghpfio)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(rewind.o)
-                              misc.o (pgf90io_rewind)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(unf.o)
-                              main_clust.o (pgf90io_unf_init)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(utils.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(error.o) (__hpfio_alloc_fcb)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(utilsi64.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtread.o) (__hpf_atoxi64)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(allo.o)
-                              parmread.o (pgf90_alloc)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(entry.o)
-                              main_clust.o (pghpf_function_entry)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(hpfio.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(close.o) (__hpf_status_init)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(hpfio_hpf.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(desc.o) (__hpfio_main)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(error.o) (__hpf_abort)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(malloc.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(allo.o) (__hpf_malloc_without_abort)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(ptr.o)
-                              main_clust.o (pgf90_subchk)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(rdst.o)
-                              main_clust.o (pgf90_template1)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(rw.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o) (__hpf_rrecvl)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(version.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o) (__hpf_print_version)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(xfer.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(hpfio_hpf.o) (__hpf_getgbuf)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(stat_linux.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o) (__hpf_setarg)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(allo_i8.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o) (__f90_allo_term_i8)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(assign.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ldread.o) (__hpfio_assign)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtconv.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ldwrite.o) (__f90io_conv_buf)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtgetnum.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ldread.o) (__hpfio_getnum)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(fpcvt.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtconv.o) (__hpfio_ecvt)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(atol.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o) (__hpf_strtol)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(defs.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ptr.o) (f90DummyGenBlockPtr)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(dist.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(hpfio_hpf.o) (__hpf_describe_replication)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(comm.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(dist.o) (pghpf_comm_start)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(copy.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(dist.o) (pghpf_comm_copy)
-/usr/pgi/linux86-64/6.0/lib/libpgf90_rpm1.a(init_rpm1.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o) (__hpf_abortx)
-/usr/pgi/linux86-64/6.0/lib/libpgf90_rpm1.a(xfer_rpm1.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(rw.o) (__hpf_erecv)
-/usr/pgi/linux86-64/6.0/lib/libpgf902.a(cnfg.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtread.o) (__hpfio_cnfg_)
-/usr/pgi/linux86-64/6.0/lib/libpgf902.a(bcopy.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ptr.o) (__hpf_bcopy)
-/usr/pgi/linux86-64/6.0/lib/libpgf902.a(bcopys.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(rdst.o) (__hpf_bcopysl)
-/usr/pgi/linux86-64/6.0/lib/libpgf902.a(buffer.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o) (__hpf_zopen)
-/usr/pgi/linux86-64/6.0/lib/libpgf902.a(chn1t1.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(copy.o) (__hpf_chn_1to1)
-/usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(encodefmt.o) (__hpf_size_of)
-/usr/pgi/linux86-64/6.0/lib/libpgf902.a(cprof.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(entry.o) (__hpf_prof_init)
-/usr/pgi/linux86-64/6.0/lib/libpgf902.a(cprof2.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(entry.o) (__hpf_prof_arecv)
-/usr/pgi/linux86-64/6.0/lib/libpgf902.a(genlist.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf902.a(chn1t1.o) (__hpf_initndx)
-/usr/pgi/linux86-64/6.0/lib/libpgf902.a(hand.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90_rpm1.a(init_rpm1.o) (__hpf_sethand)
-/usr/pgi/linux86-64/6.0/lib/libpgf902.a(stat.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(entry.o) (__hpf_stat_init)
-/usr/pgi/linux86-64/6.0/lib/libpgf902.a(trace.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(entry.o) (__hpf_trac_init)
-/usr/pgi/linux86-64/6.0/lib/libpgf902.a(trace2.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(entry.o) (__hpf_trac_arecv)
-/usr/pgi/linux86-64/6.0/lib/libpgf902.a(xfer_heap_dum.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(malloc.o) (__hpf_sbrk)
-/usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(dacos.o)
-                              arcos.o (__mth_i_dacos)
-/usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(ftncharsup.o)
-                              readrtns.o (ftn_str_copy)
-/usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(flush3f.o)
-                              main_clust.o (flush_)
-/usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(getenv3f.o)
-                              readrtns.o (getenv_)
-/usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(fdate3f.o)
-                              geomout.o (fdate_)
-/usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(getarg3f.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(farg.o) (getarg_)
-/usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(cvt.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fpcvt.o) (ecvt)
-/usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(utils3f.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(getenv3f.o) (__fstr2cstr)
-/usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(utils.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(open.o) (__fio_eq_str)
-/usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(pgifiodf.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(utils.o) (pgi_fio)
-/usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(error.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(utils.o) (__fio_error)
-/usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(ftnexit.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(error.o) (ftn_exit)
-/usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(open.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(utils.o) (__fio_open)
-/usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(close.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(ftnexit.o) (__fio_close)
-/usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(cnfg.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(open.o) (__fio_cnfg_)
-/usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(pgdummy.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(error.o) (__PC_DOS)
-/usr/lib64/libc_nonshared.a(elf-init.oS)
-                              /usr/lib64/crt1.o (__libc_csu_init)
-/usr/lib64/libc_nonshared.a(atexit.oS)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o) (atexit)
-/usr/pgi/linux86-64/6.0/lib/libnspgc.a(pgdbg_utils.o)
-                              main_clust.o (__pgdbg_stub)
-/usr/pgi/linux86-64/6.0/lib/libpgc.a(mthi64.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(utilsi64.o) (__utl_i_add64)
-/usr/pgi/linux86-64/6.0/lib/libpgc.a(dpowi.o)
-                              parmread.o (__mth_i_dpowi)
-/usr/pgi/linux86-64/6.0/lib/libpgc.a(dfloatuk.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_utils.o) (__mth_i_dfloatuk)
-/usr/pgi/linux86-64/6.0/lib/libpgc.a(dint.o)
-                              timing.o (__mth_i_dint)
-/usr/pgi/linux86-64/6.0/lib/libpgc.a(pgstdinit.o)
-                              /usr/pgi/linux86-64/6.0/lib/f90main.o (__pgio_environ)
-/usr/pgi/linux86-64/6.0/lib/libpgc.a(mpmalloc.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(ftncharsup.o) (_mp_malloc)
-/usr/pgi/linux86-64/6.0/lib/libpgc.a(rtcrit.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ftnexit.o) (_mp_bcs_stdio)
-/usr/pgi/linux86-64/6.0/lib/libpgc.a(pgtempnam.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf902.a(cnfg.o) (__pgio_tempnam)
-/usr/pgi/linux86-64/6.0/lib/libpgc.a(va_arg.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(mperror.o) (__builtin_va_gparg1)
-/usr/pgi/linux86-64/6.0/lib/libpgc.a(pgargs.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o) (__pgio_get_argv)
-/usr/pgi/linux86-64/6.0/lib/libpgc.a(dsincosp.o)
-                              chainbuild.o (__mth_i_dsin)
-/usr/pgi/linux86-64/6.0/lib/libpgc.a(dtan.o)
-                              energy_p_new.o (__mth_i_dtan)
-/usr/pgi/linux86-64/6.0/lib/libpgc.a(datan.o)
-                              initialize_p.o (__mth_i_datan)
-/usr/pgi/linux86-64/6.0/lib/libpgc.a(fastmath.o)
-                              srtclust.o (__fmth_i_dlog)
-/usr/pgi/linux86-64/6.0/lib/libpgc.a(crit_dum.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(allo.o) (_mp_p)
-/usr/lib64/libc_nonshared.a(fstat.oS)
-                              /usr/pgi/linux86-64/6.0/lib/libpgc.a(pgstdinit.o) (fstat)
-
-Allocating common symbols
-Common symbol       size              file
-
-__P4LEN             0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4priv.o)
-MPIR_I_DOUBLE       0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-fnames_             0xf03             main_clust.o
-torsion_            0xfd8             initialize_p.o
-__hpf_zmem          0x4               /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
-MPI_FLOAT_INT_var   0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-MPIR_debug_cl       0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-total_pack_unacked  0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chpackflow.o)
-contacts_           0xbb88            readrtns.o
-contacts_hb_        0xd973f8          readrtns.o
-stoptim_            0x4               main_clust.o
-execer_mynodenum    0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-MPIR_I_LONG_LONG_INT
-                    0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-MPIR_Op_errno       0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(global_ops.o)
-p4_global           0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-__hpf_true_log4     0x4               /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-logging_flag        0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-rotat_old_          0x2ee0            readrtns.o
-minimm_             0x18              initialize_p.o
-p4_remote_debug_level
-                    0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-MPI_SHORT_INT_var   0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-execer_mastport     0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-restraints_         0x8               initialize_p.o
-csaunits_           0x30              main_clust.o
-execer_numtotnodes  0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-execer_masthost     0x64              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-geo_                0x40              main_clust.o
-stretch_            0x150             main_clust.o
-procgroup_file      0x100             /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-MPID_recvs          0x20              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(queue.o)
-mpi_data_           0x23c             main_clust.o
-contacts1_          0x2258f8          readrtns.o
-previous_           0x895a1c4         track.o
-MPIR_I_LB           0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-csafiles_           0xc00             main_clust.o
-rm_outfile_head     0x64              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-MPIR_I_PACKED       0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-MPID_byte_order     0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chhetero.o)
-MPIR_real4_dte      0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-mpipriv_            0x24              main_clust.o
-__hpf_mask_log4     0x4               /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-varref_             0x2710            main_clust.o
-MPI_LONG_INT_var    0x10              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-calcthet_           0x9c              energy_p_new.o
-__hpf_mask_int1     0x1               /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-indices_            0x18              chainbuild.o
-sserver_port        0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-MPIR_errhandlers    0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o)
-locel_              0x208             energy_p_new.o
-listener_info       0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-refstruct_          0x2f1c            main_clust.o
-whoami_p4           0x64              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-pghpf_me_           0x4               main_clust.o
-__hpf_shifts        0x88              /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-MPIR_I_LONG_INT     0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-MPIR_I_LONG_DOUBLE_INT
-                    0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-__hpf_entry_mflag   0x4               /usr/pgi/linux86-64/6.0/lib/libpgf90.a(entry.o)
-__hpf_test          0x4               /usr/pgi/linux86-64/6.0/lib/libpgf90.a(defs.o)
-sccalc_             0x28              energy_p_new.o
-MPIR_debug_s        0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-kutas_              0x4               energy_p_new.o
-precomp2_           0x17700           readrtns.o
-MPIR_I_2COMPLEX     0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-body_               0x6c00            main_clust.o
-execer_myhost       0x64              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-__P4FROM            0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4priv.o)
-ffield_             0x15c             initialize_p.o
-MPIR_rhandles       0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2init.o)
-MPIR_I_2DOUBLE_PRECISION
-                    0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-torcnstr_           0x1780            energy_p_new.o
-interact_           0x5f64            main_clust.o
-MPIR_I_COMPLEX      0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-derivat_            0x30864c          initialize_p.o
-MPIR_hbt_els        0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(util_hbt.o)
-MPIR_debug_c        0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-__hpf_np2           0x4               /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
-__hpf_tids          0x8               /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
-__argv_save         0x8               /usr/pgi/linux86-64/6.0/lib/libpgc.a(pgargs.o)
-MPIR_I_INTEGER      0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-__hpf_true_log1     0x1               /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-precomp1_           0x16760           readrtns.o
-MPIR_shandles       0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2init.o)
-clu_                0x45fb0fc         main_clust.o
-var_                0x5600            main_clust.o
-envar_fortranopt    0x8               /usr/pgi/linux86-64/6.0/lib/libpgf90.a(error.o)
-peptbond_           0x28              chainbuild.o
-__hpf_ioproc        0x4               /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
-p4_debug_level      0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-MPIR_I_INT          0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-__hpf_mask_log      0x4               /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-MPIR_I_SHORT        0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-__hpf_mask_int4     0x4               /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-MPIR_I_DOUBLE_INT   0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-invlen_             0xfa0             chainbuild.o
-free_               0xc               main_clust.o
-__hpf_tcpus         0x4               /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
-p4_local            0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-__hpf_quiet         0x4               /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
-MPIR_int1_dte       0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-__hpf_true_log8     0x8               /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-MPIR_debug_sqel     0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-__P4GLOBALTYPE      0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4priv.o)
-MPI_DOUBLE_INT_var  0x10              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-__hpf_pario         0x4               /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
-links_split_        0x8               initialize_p.o
-deriv_loc_          0x1e0             initialize_p.o
-execer_starting_remotes
-                    0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-MPIR_debug_qh       0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-links_              0x1e4             initialize_p.o
-__f90io_conv_buf    0x60              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtconv.o)
-__ftn_32in64_       0x4               /usr/pgi/linux86-64/6.0/lib/libpgf90.a(utilsi64.o)
-MPIR_I_LONG_DOUBLE  0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-srutu_              0x4               energy_p_new.o
-MPIR_I_DOUBLE_PRECISION
-                    0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-__argc_save         0x4               /usr/pgi/linux86-64/6.0/lib/libpgc.a(pgargs.o)
-MPIR_fdtels         0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o)
-__hpf_mask_int8     0x8               /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-MPIR_All_communicators
-                    0x10              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-MPIR_I_REAL         0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-pghpf_0l_           0x20              main_clust.o
-diploc_             0x3938            readrtns.o
-__hpf_lcpu          0x4               /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
-__hpf_mask_log1     0x1               /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-thetas_             0x960             chainbuild.o
-p4_myname_in_procgroup
-                    0x40              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-MPIR_I_LOGICAL      0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-MPI_LONG_DOUBLE_INT_var
-                    0x10              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-MPIR_debug_q        0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-MPIR_hbts           0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(util_hbt.o)
-MPIR_debug_sq       0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-ch_debug_buf        0x80              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2init.o)
-header_             0x50              main_clust.o
-rotat_              0xbb80            readrtns.o
-__hpf_mask_int2     0x2               /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-local_domain        0x64              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-__hpf_heapz         0x8               /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
-pghpf_0_            0x10              main_clust.o
-__hpf_mask_log2     0x2               /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-time1_              0x28              main_clust.o
-MPIR_I_2DOUBLE      0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-MPIR_I_UB           0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-calc_               0x1f0             energy_p_new.o
-MPIR_I_2DCOMPLEX    0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-__hpf_debug         0x4               /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
-execer_id           0x84              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-vectors_            0x14820           energy_p_new.o
-tty_orig            0x12              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_secure.o)
-sbridge_            0x74              initialize_p.o
-MPIR_I_2FLOAT       0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-MPID_MyWorldRank    0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2init.o)
-MPIR_I_2INTEGER     0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-__P4TYPE            0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4priv.o)
-cntrl_              0x44              main_clust.o
-MPIR_int4_dte       0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-p4_rm_rank          0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-MPIR_tid            0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o)
-MPIR_real8_dte      0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-MPIR_I_DCOMPLEX     0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-pghpf_lineno_       0x4               main_clust.o
-clu1_               0x898ed84         main_clust.o
-execer_mynumprocs   0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-parfiles_           0xa00             main_clust.o
-MPIR_I_FLOAT        0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-MPID_MyWorldSize    0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2init.o)
-hand_start_remotes  0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-MPIR_I_2INT         0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-rotmat_             0x11940           main_clust.o
-MPIR_I_BYTE         0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-dipint_             0x206cc80         readrtns.o
-pghpf_np_           0x4               main_clust.o
-p4_brdcst_info      0x18              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-fourier_            0x344             initialize_p.o
-__hpf_true_log2     0x2               /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-MPIR_qels           0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o)
-MPIR_I_CHAR         0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-MPIR_I_FLOAT_INT    0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-MPIR_int2_dte       0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-MPIR_dtes           0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-iounits_            0x5c              main_clust.o
-history_            0x1d4d4           track.o
-MPIR_I_USHORT       0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-MPIR_I_UCHAR        0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-__hpf_debugn        0x4               /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
-execer_pg           0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-__hpf_heap_block    0x8               /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
-MPIR_I_ULONG        0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-expect_ack          0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chpackflow.o)
-bm_outfile          0x64              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-p4_wd               0x100             /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-__hpf_mask_log8     0x8               /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-MPIR_I_SHORT_INT    0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-MPIR_topo_els       0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o)
-fourier1_           0x1a0             initialize_p.o
-MPIR_I_LONG         0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-MPIR_I_2REAL        0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-chain_              0xbbb8            main_clust.o
-MPIR_I_UINT         0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-alles_              0x238bdac         main_clust.o
-MPIR_debug_qel      0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-torsiond_           0x14200           initialize_p.o
-dipmat_             0x1e84800         readrtns.o
-sclocal_            0x22cc            chainbuild.o
-MPIR_debug_rh       0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-globmemsize         0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-pghpf_0c_           0x1               main_clust.o
-MPID_pack_info      0x10              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chpackflow.o)
-
-Memory Configuration
-
-Name             Origin             Length             Attributes
-*default*        0x0000000000000000 0xffffffffffffffff
-
-Linker script and memory map
-
-LOAD /usr/lib64/crt1.o
-LOAD /usr/lib64/crti.o
-LOAD /usr/lib/gcc/x86_64-redhat-linux/3.4.2/crtbegin.o
-LOAD /usr/pgi/linux86-64/6.0/lib/f90main.o
-LOAD main_clust.o
-LOAD arcos.o
-LOAD cartprint.o
-LOAD chainbuild.o
-LOAD convert.o
-LOAD initialize_p.o
-LOAD matmult.o
-LOAD readrtns.o
-LOAD pinorm.o
-LOAD rescode.o
-LOAD intcor.o
-LOAD timing.o
-LOAD misc.o
-LOAD geomout.o
-LOAD readpdb.o
-LOAD read_coords.o
-LOAD parmread.o
-LOAD probabl.o
-LOAD fitsq.o
-LOAD hc.o
-LOAD track.o
-LOAD wrtclust.o
-LOAD srtclust.o
-LOAD noyes.o
-LOAD contact.o
-LOAD printmat.o
-LOAD int_from_cart1.o
-LOAD energy_p_new.o
-LOAD icant.o
-LOAD proc_proc.o
-LOAD work_partition.o
-LOAD setup_var.o
-LOAD /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a
-LOAD /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libpmpich.a
-LOAD /usr/pgi/linux86-64/6.0/lib/libpgf90.a
-LOAD /usr/pgi/linux86-64/6.0/lib/libpgf90_rpm1.a
-LOAD /usr/pgi/linux86-64/6.0/lib/libpgf902.a
-LOAD /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a
-LOAD /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a
-LOAD /usr/lib64/libc.so
-START GROUP
-LOAD /lib64/libc.so.6
-LOAD /usr/lib64/libc_nonshared.a
-END GROUP
-LOAD /usr/pgi/linux86-64/6.0/lib/libnspgc.a
-LOAD /usr/pgi/linux86-64/6.0/lib/libpgc.a
-LOAD /usr/lib64/libm.so
-LOAD /usr/lib/gcc/x86_64-redhat-linux/3.4.2/libgcc.a
-LOAD /usr/lib64/libc.so
-START GROUP
-LOAD /lib64/libc.so.6
-LOAD /usr/lib64/libc_nonshared.a
-END GROUP
-LOAD /usr/lib/gcc/x86_64-redhat-linux/3.4.2/libgcc.a
-LOAD /usr/lib/gcc/x86_64-redhat-linux/3.4.2/crtend.o
-LOAD /usr/lib64/crtn.o
-                0x0000000000400000                PROVIDE (__executable_start, 0x400000)
-                0x00000000004001c8                . = (0x400000 + SIZEOF_HEADERS)
-
-.interp         0x00000000004001c8       0x1c
- *(.interp)
- .interp        0x00000000004001c8       0x1c /usr/lib64/crt1.o
-
-.note.ABI-tag   0x00000000004001e4       0x20
- .note.ABI-tag  0x00000000004001e4       0x20 /usr/lib64/crt1.o
-
-.hash           0x0000000000400208      0x494
- *(.hash)
- .hash          0x0000000000400208      0x494 /usr/lib64/crt1.o
-
-.dynsym         0x00000000004006a0      0xf00
- *(.dynsym)
- .dynsym        0x00000000004006a0      0xf00 /usr/lib64/crt1.o
-
-.dynstr         0x00000000004015a0      0x507
- *(.dynstr)
- .dynstr        0x00000000004015a0      0x507 /usr/lib64/crt1.o
-
-.gnu.version    0x0000000000401aa8      0x140
- *(.gnu.version)
- .gnu.version   0x0000000000401aa8      0x140 /usr/lib64/crt1.o
-
-.gnu.version_d
- *(.gnu.version_d)
-
-.gnu.version_r  0x0000000000401be8       0x50
- *(.gnu.version_r)
- .gnu.version_r
-                0x0000000000401be8       0x50 /usr/lib64/crt1.o
-
-.rel.dyn
- *(.rel.init)
- *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
- *(.rel.fini)
- *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
- *(.rel.data.rel.ro*)
- *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
- *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
- *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
- *(.rel.ctors)
- *(.rel.dtors)
- *(.rel.got)
- *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
-
-.rela.dyn       0x0000000000401c38       0x90
- *(.rela.init)
- *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
- *(.rela.fini)
- *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
- *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
- *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
- *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
- *(.rela.ctors)
- *(.rela.dtors)
- *(.rela.got)
- .rela.got      0x0000000000401c38       0x18 /usr/lib64/crt1.o
- *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
- .rela.bss      0x0000000000401c50       0x78 /usr/lib64/crt1.o
-
-.rel.plt
- *(.rel.plt)
-
-.rela.plt       0x0000000000401cc8      0xdc8
- *(.rela.plt)
- .rela.plt      0x0000000000401cc8      0xdc8 /usr/lib64/crt1.o
-
-.init           0x0000000000402a90       0x1d
- *(.init)
- .init          0x0000000000402a90        0x9 /usr/lib64/crti.o
-                0x0000000000402a90                _init
- .init          0x0000000000402a99        0x5 /usr/lib/gcc/x86_64-redhat-linux/3.4.2/crtbegin.o
- .init          0x0000000000402a9e        0x5 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
- .init          0x0000000000402aa3        0x5 /usr/lib/gcc/x86_64-redhat-linux/3.4.2/crtend.o
- .init          0x0000000000402aa8        0x5 /usr/lib64/crtn.o
-
-.plt            0x0000000000402ab0      0x940
- *(.plt)
- .plt           0x0000000000402ab0      0x940 /usr/lib64/crt1.o
-                0x0000000000402ac0                __cxa_atexit@@GLIBC_2.2.5
-                0x0000000000402ad0                fseek@@GLIBC_2.2.5
-                0x0000000000402ae0                geteuid@@GLIBC_2.2.5
-                0x0000000000402af0                xdr_array@@GLIBC_2.2.5
-                0x0000000000402b00                __libc_start_main@@GLIBC_2.2.5
-                0x0000000000402b10                fork@@GLIBC_2.2.5
-                0x0000000000402b20                catgets@@GLIBC_2.2.5
-                0x0000000000402b30                getrusage@@GLIBC_2.2.5
-                0x0000000000402b40                bcopy@@GLIBC_2.2.5
-                0x0000000000402b50                read@@GLIBC_2.2.5
-                0x0000000000402b60                chdir@@GLIBC_2.2.5
-                0x0000000000402b70                socket@@GLIBC_2.2.5
-                0x0000000000402b80                kill@@GLIBC_2.2.5
-                0x0000000000402b90                ftell@@GLIBC_2.2.5
-                0x0000000000402ba0                xdr_u_int@@GLIBC_2.2.5
-                0x0000000000402bb0                xdr_opaque@@GLIBC_2.2.5
-                0x0000000000402bc0                getchar@@GLIBC_2.2.5
-                0x0000000000402bd0                vsprintf@@GLIBC_2.2.5
-                0x0000000000402be0                write@@GLIBC_2.2.5
-                0x0000000000402bf0                toupper@@GLIBC_2.2.5
-                0x0000000000402c00                sigemptyset@@GLIBC_2.2.5
-                0x0000000000402c10                sigaddset@@GLIBC_2.2.5
-                0x0000000000402c20                wait@@GLIBC_2.2.5
-                0x0000000000402c30                gethostname@@GLIBC_2.2.5
-                0x0000000000402c40                isdigit@@GLIBC_2.2.5
-                0x0000000000402c50                htonl@@GLIBC_2.2.5
-                0x0000000000402c60                _IO_putc@@GLIBC_2.2.5
-                0x0000000000402c70                freopen@@GLIBC_2.2.5
-                0x0000000000402c80                getenv@@GLIBC_2.2.5
-                0x0000000000402c90                malloc@@GLIBC_2.2.5
-                0x0000000000402ca0                ferror@@GLIBC_2.2.5
-                0x0000000000402cb0                strncmp@@GLIBC_2.2.5
-                0x0000000000402cc0                accept@@GLIBC_2.2.5
-                0x0000000000402cd0                modf@@GLIBC_2.2.5
-                0x0000000000402ce0                strncat@@GLIBC_2.2.5
-                0x0000000000402cf0                setsid@@GLIBC_2.2.5
-                0x0000000000402d00                sigaction@@GLIBC_2.2.5
-                0x0000000000402d10                strncpy@@GLIBC_2.2.5
-                0x0000000000402d20                getdtablesize@@GLIBC_2.2.5
-                0x0000000000402d30                execlp@@GLIBC_2.2.5
-                0x0000000000402d40                memmove@@GLIBC_2.2.5
-                0x0000000000402d50                getpeername@@GLIBC_2.2.5
-                0x0000000000402d60                htons@@GLIBC_2.2.5
-                0x0000000000402d70                fwrite@@GLIBC_2.2.5
-                0x0000000000402d80                fclose@@GLIBC_2.2.5
-                0x0000000000402d90                vprintf@@GLIBC_2.2.5
-                0x0000000000402da0                sched_yield@@GLIBC_2.2.5
-                0x0000000000402db0                socketpair@@GLIBC_2.2.5
-                0x0000000000402dc0                xdr_float@@GLIBC_2.2.5
-                0x0000000000402dd0                fcntl@@GLIBC_2.2.5
-                0x0000000000402de0                listen@@GLIBC_2.2.5
-                0x0000000000402df0                feof@@GLIBC_2.2.5
-                0x0000000000402e00                strlen@@GLIBC_2.2.5
-                0x0000000000402e10                select@@GLIBC_2.2.5
-                0x0000000000402e20                getlogin@@GLIBC_2.2.5
-                0x0000000000402e30                ftruncate@@GLIBC_2.2.5
-                0x0000000000402e40                acos@@GLIBC_2.2.5
-                0x0000000000402e50                xdr_u_long@@GLIBC_2.2.5
-                0x0000000000402e60                getsockname@@GLIBC_2.2.5
-                0x0000000000402e70                fgetc@@GLIBC_2.2.5
-                0x0000000000402e80                fread@@GLIBC_2.2.5
-                0x0000000000402e90                inet_ntoa@@GLIBC_2.2.5
-                0x0000000000402ea0                strcpy@@GLIBC_2.2.5
-                0x0000000000402eb0                fprintf@@GLIBC_2.2.5
-                0x0000000000402ec0                perror@@GLIBC_2.2.5
-                0x0000000000402ed0                memcpy@@GLIBC_2.2.5
-                0x0000000000402ee0                strtol@@GLIBC_2.2.5
-                0x0000000000402ef0                fgets@@GLIBC_2.2.5
-                0x0000000000402f00                strcmp@@GLIBC_2.2.5
-                0x0000000000402f10                time@@GLIBC_2.2.5
-                0x0000000000402f20                getsockopt@@GLIBC_2.2.5
-                0x0000000000402f30                connect@@GLIBC_2.2.5
-                0x0000000000402f40                abort@@GLIBC_2.2.5
-                0x0000000000402f50                setsockopt@@GLIBC_2.2.5
-                0x0000000000402f60                realloc@@GLIBC_2.2.5
-                0x0000000000402f70                _exit@@GLIBC_2.2.5
-                0x0000000000402f80                _IO_getc@@GLIBC_2.2.5
-                0x0000000000402f90                fflush@@GLIBC_2.2.5
-                0x0000000000402fa0                ntohl@@GLIBC_2.2.5
-                0x0000000000402fb0                sscanf@@GLIBC_2.2.5
-                0x0000000000402fc0                setlocale@@GLIBC_2.2.5
-                0x0000000000402fd0                sleep@@GLIBC_2.2.5
-                0x0000000000402fe0                xdr_char@@GLIBC_2.2.5
-                0x0000000000402ff0                rindex@@GLIBC_2.2.5
-                0x0000000000403000                index@@GLIBC_2.2.5
-                0x0000000000403010                recv@@GLIBC_2.2.5
-                0x0000000000403020                printf@@GLIBC_2.2.5
-                0x0000000000403030                fileno@@GLIBC_2.2.5
-                0x0000000000403040                open@@GLIBC_2.2.5
-                0x0000000000403050                writev@@GLIBC_2.2.5
-                0x0000000000403060                ctime@@GLIBC_2.2.5
-                0x0000000000403070                xdr_double@@GLIBC_2.2.5
-                0x0000000000403080                uname@@GLIBC_2.2.5
-                0x0000000000403090                atoi@@GLIBC_2.2.5
-                0x00000000004030a0                bzero@@GLIBC_2.2.5
-                0x00000000004030b0                ntohs@@GLIBC_2.2.5
-                0x00000000004030c0                signal@@GLIBC_2.2.5
-                0x00000000004030d0                catopen@@GLIBC_2.2.5
-                0x00000000004030e0                __strtol_internal@@GLIBC_2.2.5
-                0x00000000004030f0                setitimer@@GLIBC_2.2.5
-                0x0000000000403100                nice@@GLIBC_2.2.5
-                0x0000000000403110                strchr@@GLIBC_2.2.5
-                0x0000000000403120                memset@@GLIBC_2.2.5
-                0x0000000000403130                sendto@@GLIBC_2.2.5
-                0x0000000000403140                xdr_short@@GLIBC_2.2.5
-                0x0000000000403150                strerror@@GLIBC_2.2.5
-                0x0000000000403160                unlink@@GLIBC_2.2.5
-                0x0000000000403170                isspace@@GLIBC_2.2.5
-                0x0000000000403180                clearerr@@GLIBC_2.2.5
-                0x0000000000403190                __strtod_internal@@GLIBC_2.2.5
-                0x00000000004031a0                getpid@@GLIBC_2.2.5
-                0x00000000004031b0                dup2@@GLIBC_2.2.5
-                0x00000000004031c0                fputc@@GLIBC_2.2.5
-                0x00000000004031d0                isatty@@GLIBC_2.2.5
-                0x00000000004031e0                fputs@@GLIBC_2.2.5
-                0x00000000004031f0                waitpid@@GLIBC_2.2.5
-                0x0000000000403200                exit@@GLIBC_2.2.5
-                0x0000000000403210                xdr_int@@GLIBC_2.2.5
-                0x0000000000403220                getpwuid@@GLIBC_2.2.5
-                0x0000000000403230                bind@@GLIBC_2.2.5
-                0x0000000000403240                xdr_u_short@@GLIBC_2.2.5
-                0x0000000000403250                calloc@@GLIBC_2.2.5
-                0x0000000000403260                access@@GLIBC_2.2.5
-                0x0000000000403270                sprintf@@GLIBC_2.2.5
-                0x0000000000403280                sigprocmask@@GLIBC_2.2.5
-                0x0000000000403290                __fxstat@@GLIBC_2.2.5
-                0x00000000004032a0                gethostbyname@@GLIBC_2.2.5
-                0x00000000004032b0                ioctl@@GLIBC_2.2.5
-                0x00000000004032c0                close@@GLIBC_2.2.5
-                0x00000000004032d0                __errno_location@@GLIBC_2.2.5
-                0x00000000004032e0                xdr_long@@GLIBC_2.2.5
-                0x00000000004032f0                xdr_u_char@@GLIBC_2.2.5
-                0x0000000000403300                puts@@GLIBC_2.2.5
-                0x0000000000403310                xdrmem_create@@GLIBC_2.2.5
-                0x0000000000403320                free@@GLIBC_2.2.5
-                0x0000000000403330                gettimeofday@@GLIBC_2.2.5
-                0x0000000000403340                fopen@@GLIBC_2.2.5
-                0x0000000000403350                bcmp@@GLIBC_2.2.5
-                0x0000000000403360                shutdown@@GLIBC_2.2.5
-                0x0000000000403370                putchar@@GLIBC_2.2.5
-                0x0000000000403380                strtok@@GLIBC_2.2.5
-                0x0000000000403390                strstr@@GLIBC_2.2.5
-                0x00000000004033a0                sbrk@@GLIBC_2.2.5
-                0x00000000004033b0                getuid@@GLIBC_2.2.5
-                0x00000000004033c0                __ctype_b_loc@@GLIBC_2.3
-                0x00000000004033d0                strcat@@GLIBC_2.2.5
-                0x00000000004033e0                getppid@@GLIBC_2.2.5
-
-.text           0x00000000004033f0   0x167528
- *(.text .stub .text.* .gnu.linkonce.t.*)
- .text          0x00000000004033f0       0x2c /usr/lib64/crt1.o
-                0x00000000004033f0                _start
- .text          0x000000000040341c       0x17 /usr/lib64/crti.o
- *fill*         0x0000000000403433        0xd 90909090
- .text          0x0000000000403440       0x66 /usr/lib/gcc/x86_64-redhat-linux/3.4.2/crtbegin.o
- *fill*         0x00000000004034a6        0x2 90909090
- .text          0x00000000004034a8       0x64 /usr/pgi/linux86-64/6.0/lib/f90main.o
-                0x00000000004034a8                main
- *fill*         0x000000000040350c        0x4 90909090
- .text          0x0000000000403510     0x4652 main_clust.o
-                0x0000000000406910                difconf_
-                0x00000000004075e0                distout_
-                0x0000000000403520                MAIN_
- *fill*         0x0000000000407b62        0xe 90909090
- .text          0x0000000000407b70       0x97 arcos.o
-                0x0000000000407b80                arcos_
- *fill*         0x0000000000407c07        0x9 90909090
- .text          0x0000000000407c10      0x642 cartprint.o
-                0x0000000000407c20                cartprint_
- *fill*         0x0000000000408252        0xe 90909090
- .text          0x0000000000408260     0x6492 chainbuild.o
-                0x000000000040d3f0                locate_side_chain_
-                0x000000000040b110                locate_next_res_
-                0x0000000000408270                chainbuild_
-                0x0000000000408e00                orig_frame_
- *fill*         0x000000000040e6f2        0xe 90909090
- .text          0x000000000040e700      0xa92 convert.o
-                0x000000000040ec80                var_to_geom_
-                0x000000000040e710                geom_to_var_
- *fill*         0x000000000040f192        0xe 90909090
- .text          0x000000000040f1a0     0x4092 initialize_p.o
-                0x000000000040f1b0                initialize_
-                0x0000000000412d30                int_partition_
-                0x0000000000410f30                nazwy_
-                0x0000000000413210                hpb_partition_
-                0x0000000000410f40                init_int_table_
- *fill*         0x0000000000413232        0xe 90909090
- .text          0x0000000000413240      0x3f2 matmult.o
-                0x0000000000413250                matmult_
- *fill*         0x0000000000413632        0xe 90909090
- .text          0x0000000000413640     0x6662 readrtns.o
-                0x0000000000417dc0                read_angles_
-                0x0000000000413d20                molread_
-                0x0000000000416c50                seq_comp_
-                0x0000000000418640                reada_
-                0x0000000000418d90                openunits_
-                0x0000000000413650                read_control_
-                0x0000000000418740                multreada_
-                0x00000000004189f0                readi_
-                0x0000000000416d70                read_bridge_
-                0x0000000000418ae0                card_concat_
- *fill*         0x0000000000419ca2        0xe 90909090
- .text          0x0000000000419cb0       0xa7 pinorm.o
-                0x0000000000419cc0                pinorm_
- *fill*         0x0000000000419d57        0x9 90909090
- .text          0x0000000000419d60      0x22b rescode.o
-                0x0000000000419d70                rescode_
- *fill*         0x0000000000419f8b        0x5 90909090
- .text          0x0000000000419f90     0x1bc7 intcor.o
-                0x0000000000419fa0                alpha_
-                0x000000000041b730                dist_
-                0x000000000041a830                beta_
- *fill*         0x000000000041bb57        0x9 90909090
- .text          0x000000000041bb60      0x2d2 timing.o
-                0x000000000041bba0                stopx_
-                0x000000000041bc60                dajczas_
-                0x000000000041bb70                set_timers_
-                0x000000000041bbf0                ovrtim_
-                0x000000000041bc40                tcpu_
- *fill*         0x000000000041be32        0xe 90909090
- .text          0x000000000041be40      0xba2 misc.o
-                0x000000000041c1e0                iblnk_
-                0x000000000041c250                ilen_
-                0x000000000041c430                lcase_
-                0x000000000041be50                find_arg_
-                0x000000000041c8e0                ucase_
-                0x000000000041bf40                find_group_
-                0x000000000041c5f0                lower_case_
-                0x000000000041c7e0                numstr_
-                0x000000000041c540                lcom_
-                0x000000000041c2b0                in_keywd_set_
-                0x000000000041c660                mykey_
- *fill*         0x000000000041c9e2        0xe 90909090
- .text          0x000000000041c9f0     0x3b02 geomout.o
-                0x000000000041f0d0                briefout_
-                0x000000000041fc20                cartout_
-                0x000000000041ca00                pdbout_
-                0x000000000041eae0                intout_
-                0x000000000041dab0                mol2out_
- *fill*         0x00000000004204f2        0xe 90909090
- .text          0x0000000000420500     0x2d02 readpdb.o
-                0x0000000000423030                sccenter_
-                0x0000000000420510                readpdb_
-                0x0000000000421fe0                int_from_cart_
- *fill*         0x0000000000423202        0xe 90909090
- .text          0x0000000000423210     0x6102 read_coords.o
-                0x0000000000427c10                receive_and_pass_cconf_
-                0x0000000000423220                read_coords_
-                0x0000000000424800                add_new_cconf_
-                0x0000000000427310                store_cconf_from_file_
-                0x0000000000428c30                dawrite_ccoords_
-                0x0000000000427780                write_and_send_cconf_
-                0x0000000000428590                daread_ccoords_
- *fill*         0x0000000000429312        0xe 90909090
- .text          0x0000000000429320    0x172f9 parmread.o
-                0x0000000000429330                parmread_
- *fill*         0x0000000000440619        0x7 90909090
- .text          0x0000000000440620     0x2ef2 probabl.o
-                0x0000000000440630                probabl_
-                0x0000000000443140                mysort1_
- *fill*         0x0000000000443512        0xe 90909090
- .text          0x0000000000443520     0x8652 fitsq.o
-                0x000000000044b420                mmmul_
-                0x000000000044ae60                mvvad_
-                0x000000000044a770                switch_
-                0x0000000000449d10                givns_
-                0x0000000000444a80                sivade_
-                0x000000000044b7c0                matvec_
-                0x000000000044b100                det_
-                0x0000000000443530                fitsq_
- *fill*         0x000000000044bb72        0xe 90909090
- .text          0x000000000044bb80     0x4590 hc.o
-                0x000000000044d5d0                ioffset_
-                0x000000000044bb90                hc_
-                0x000000000044d620                hcass_
-                0x000000000044ef40                hcden_
- .text          0x0000000000450110     0x3ee9 track.o
-                0x0000000000450120                track_
-                0x00000000004506d0                writrack_
-                0x0000000000450c90                plotree_
- *fill*         0x0000000000453ff9        0x7 90909090
- .text          0x0000000000454000     0x3a40 wrtclust.o
-                0x0000000000454010                wrtclust_
- .text          0x0000000000457a40     0x1842 srtclust.o
-                0x0000000000457a50                srtclust_
- *fill*         0x0000000000459282        0xe 90909090
- .text          0x0000000000459290      0x195 noyes.o
-                0x00000000004592a0                noyes_
- *fill*         0x0000000000459425        0xb 90909090
- .text          0x0000000000459430      0xbb7 contact.o
-                0x0000000000459440                contact_
-                0x0000000000459ce0                contact_fract_
- *fill*         0x0000000000459fe7        0x9 90909090
- .text          0x0000000000459ff0      0x6f2 printmat.o
-                0x000000000045a000                printmat_
- *fill*         0x000000000045a6e2        0xe 90909090
- .text          0x000000000045a6f0     0x1602 int_from_cart1.o
-                0x000000000045a700                int_from_cart1_
- *fill*         0x000000000045bcf2        0xe 90909090
- .text          0x000000000045bd00    0xa8597 energy_p_new.o
-                0x00000000004a01e0                unormderiv_
-                0x000000000046f370                vec_and_deriv_test_
-                0x00000000004a2360                ssbond_ene_
-                0x00000000004b1be0                ehbcorr_
-                0x00000000004a6810                esc_
-                0x00000000004aea40                multibody_
-                0x0000000000463600                egb_
-                0x0000000000477540                check_vecgrad_
-                0x00000000004b39c0                dipole_
-                0x0000000000460950                eljk_
-                0x00000000004aa250                enesc_bound_
-                0x00000000004af230                esccorr_
-                0x00000000004652f0                egbv_
-                0x000000000045dea0                enerprint_
-                0x00000000004e5570                eello6_graph1_
-                0x00000000004cfc50                eello4_
-                0x0000000000500ff0                transpose2_
-                0x00000000004d29b0                eello5_
-                0x0000000000461f30                ebp_
-                0x00000000004ad050                etor_d_
-                0x0000000000468030                vec_and_deriv_
-                0x00000000004ab4e0                spline1_
-                0x0000000000493090                eturn34_
-                0x00000000004a6640                mixder_
-                0x00000000004b55a0                calc_eello_
-                0x00000000004a1970                edis_
-                0x00000000004fa7f0                eello_turn6_
-                0x00000000004ab630                spline2_
-                0x00000000004f0ca0                eello6_graph3_
-                0x00000000004ceea0                kernel_
-                0x00000000005014d0                transpose_
-                0x0000000000480ce0                eelec_
-                0x000000000045ee00                elj_
-                0x00000000004b0070                multibody_hb_
-                0x00000000004ffe20                matvec2_
-                0x0000000000478a90                set_matrices_
-                0x00000000004ab750                etor_
-                0x0000000000504190                scalar_
-                0x0000000000500e80                scalar2_
-                0x00000000005016d0                prodmat3_
-                0x00000000004a0590                escp_
-                0x00000000004ab290                gcont_
-                0x000000000045bd10                etotal_
-                0x00000000004e3230                eello6_
-                0x00000000004a3fc0                ebond_
-                0x00000000004f4020                eello6_graph4_
-                0x0000000000467200                sc_grad_
-                0x00000000004a8b20                enesc_
-                0x0000000000500280                matmat2_
-                0x00000000004a5cd0                theteng_
-                0x00000000004a4640                ebend_
-                0x0000000000466a90                sc_angular_
-                0x000000000049fd10                vecpr_
-                0x00000000004eb350                eello6_graph2_
-                0x00000000004ab400                splinthet_
-                0x00000000004b09d0                multibody_eello_
- *fill*         0x0000000000504297        0x9 90909090
- .text          0x00000000005042a0       0x75 icant.o
-                0x00000000005042b0                icant_
- *fill*         0x0000000000504315        0x3 90909090
- .text          0x0000000000504318      0x267 proc_proc.o
-                0x00000000005043d7                dsvrgp__
-                0x0000000000504318                proc_proc_
-                0x00000000005043c6                proc_conv_r__
-                0x0000000000504391                proc_conv__
- *fill*         0x000000000050457f        0x1 90909090
- .text          0x0000000000504580      0xca2 work_partition.o
-                0x0000000000504590                work_partition_
- *fill*         0x0000000000505222        0xe 90909090
- .text          0x0000000000505230      0x272 setup_var.o
-                0x0000000000505240                setup_var_
- *fill*         0x00000000005054a2        0xe 90909090
- .text          0x00000000005054b0       0x1d /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(abortf.o)
-                0x00000000005054b0                pmpi_abort_
-                0x00000000005054b0                mpi_abort_
- *fill*         0x00000000005054cd        0x3 90909090
- .text          0x00000000005054d0       0x2c /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(allgatherf.o)
-                0x00000000005054d0                pmpi_allgather_
-                0x00000000005054d0                mpi_allgather_
- *fill*         0x00000000005054fc        0x4 90909090
- .text          0x0000000000505500       0x22 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bcastf.o)
-                0x0000000000505500                pmpi_bcast_
-                0x0000000000505500                mpi_bcast_
- *fill*         0x0000000000505522        0xe 90909090
- .text          0x0000000000505530       0x2c /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_rankf.o)
-                0x0000000000505530                mpi_comm_rank_
-                0x0000000000505530                pmpi_comm_rank_
- *fill*         0x000000000050555c        0x4 90909090
- .text          0x0000000000505560       0x2c /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_sizef.o)
-                0x0000000000505560                mpi_comm_size_
-                0x0000000000505560                pmpi_comm_size_
- *fill*         0x000000000050558c        0x4 90909090
- .text          0x0000000000505590       0x4b /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(dup_fnf.o)
-                0x0000000000505590                mpi_dup_fn_
-                0x0000000000505590                pmpi_dup_fn_
- *fill*         0x00000000005055db        0x5 90909090
- .text          0x00000000005055e0       0x19 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(finalizef.o)
-                0x00000000005055e0                mpi_finalize_
-                0x00000000005055e0                pmpi_finalize_
- *fill*         0x00000000005055f9        0x7 90909090
- .text          0x0000000000505600      0x10f /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(gathervf.o)
-                0x0000000000505600                mpi_gatherv_
-                0x0000000000505600                pmpi_gatherv_
- *fill*         0x000000000050570f        0x1 90909090
- .text          0x0000000000505710      0x1ea /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initf.o)
-                0x0000000000505710                pmpi_init_
-                0x0000000000505710                mpi_init_
- *fill*         0x00000000005058fa        0x6 90909090
- .text          0x0000000000505900       0x1f /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(null_copyfnf.o)
-                0x0000000000505900                mpi_null_copy_fn_
-                0x0000000000505900                pmpi_null_copy_fn_
- *fill*         0x000000000050591f        0x1 90909090
- .text          0x0000000000505920        0xd /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(null_del_fnf.o)
-                0x0000000000505920                mpi_null_delete_fn_
-                0x0000000000505920                pmpi_null_delete_fn_
- *fill*         0x000000000050592d        0x3 90909090
- .text          0x0000000000505930       0x42 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(recvf.o)
-                0x0000000000505930                pmpi_recv_
-                0x0000000000505930                mpi_recv_
- *fill*         0x0000000000505972        0xe 90909090
- .text          0x0000000000505980       0x1d /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(sendf.o)
-                0x0000000000505980                mpi_send_
-                0x0000000000505980                pmpi_send_
- *fill*         0x000000000050599d        0x3 90909090
- .text          0x00000000005059a0        0xb /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtickf.o)
-                0x00000000005059a0                mpi_wtick_
-                0x00000000005059a0                pmpi_wtick_
- *fill*         0x00000000005059ab        0x5 90909090
- .text          0x00000000005059b0        0xb /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtimef.o)
-                0x00000000005059b0                mpi_wtime_
-                0x00000000005059b0                pmpi_wtime_
- *fill*         0x00000000005059bb        0x5 90909090
- .text          0x00000000005059c0       0x25 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(farg.o)
-                0x00000000005059d0                mpir_getarg_
-                0x00000000005059c0                mpir_iargc_
- *fill*         0x00000000005059e5        0xb 90909090
- .text          0x00000000005059f0      0x646 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-                0x0000000000505bb0                mpir_init_bottom_
-                0x0000000000505b60                MPIR_Free_Fortran_keyvals
-                0x0000000000506030                mpir_init_fsize_
-                0x00000000005059f0                MPIR_InitFortran
-                0x0000000000505bf0                MPIR_InitFortranDatatypes
-                0x0000000000505fb0                MPIR_Free_Fortran_dtes
- *fill*         0x0000000000506036        0xa 90909090
- .text          0x0000000000506040       0x32 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfcmn.o)
-                0x0000000000506060                mpir_init_flog_
-                0x0000000000506040                mpir_init_fcm_
- *fill*         0x0000000000506072        0xe 90909090
- .text          0x0000000000506080      0x5c2 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(mperror.o)
-                0x0000000000506360                MPIR_Error
-                0x0000000000506080                MPIR_Errors_are_fatal
-                0x0000000000506500                MPIR_Set_Status_error_array
-                0x0000000000506210                MPIR_Errors_warn
-                0x0000000000506200                MPIR_Errors_return
- *fill*         0x0000000000506642        0xe 90909090
- .text          0x0000000000506650      0x31f /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(send.o)
-                0x0000000000506650                MPI_Send
-                0x0000000000506650                PMPI_Send
- *fill*         0x000000000050696f        0x1 90909090
- .text          0x0000000000506970      0x336 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(recv.o)
-                0x0000000000506970                PMPI_Recv
-                0x0000000000506970                MPI_Recv
- *fill*         0x0000000000506ca6        0xa 90909090
- .text          0x0000000000506cb0      0x35c /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_util.o)
-                0x0000000000506f30                MPIR_Type_get_limits
-                0x0000000000506cc0                MPIR_Type_permanent
-                0x0000000000506cb0                MPIR_Type_dup
-                0x0000000000506ce0                MPIR_Type_free
-                0x0000000000506ff0                MPIR_Datatype_iscontig
-                0x0000000000506f80                MPIR_Free_struct_internals
-                0x0000000000506f50                MPIR_Free_perm_type
- *fill*         0x000000000050700c        0x4 90909090
- .text          0x0000000000507010       0xd7 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(abort.o)
-                0x0000000000507010                MPI_Abort
-                0x0000000000507010                PMPI_Abort
- *fill*         0x00000000005070e7        0x9 90909090
- .text          0x00000000005070f0        0xb /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(init.o)
-                0x00000000005070f0                MPI_Init
-                0x00000000005070f0                PMPI_Init
- *fill*         0x00000000005070fb        0x5 90909090
- .text          0x0000000000507100      0xdc0 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o)
-                0x0000000000507100                MPIR_Init
-                0x0000000000507e80                MPIR_Errhandler_mark
-                0x0000000000507df0                MPIR_Errhandler_create
- .text          0x0000000000507ec0      0x29c /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(finalize.o)
-                0x0000000000507ec0                MPI_Finalize
-                0x0000000000507ec0                PMPI_Finalize
- *fill*         0x000000000050815c        0x4 90909090
- .text          0x0000000000508160       0x55 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(errorstring.o)
-                0x0000000000508160                MPI_Error_string
-                0x0000000000508160                PMPI_Error_string
- *fill*         0x00000000005081b5        0xb 90909090
- .text          0x00000000005081c0      0x6f9 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-                0x0000000000508650                MPIR_Free_dtes
-                0x0000000000508890                MPIR_Type_contiguous
-                0x0000000000508740                MPIR_Setup_base_datatype
-                0x0000000000508800                MPIR_Setup_complex_datatype
-                0x00000000005081c0                MPIR_Init_dtes
- *fill*         0x00000000005088b9        0x7 90909090
- .text          0x00000000005088c0      0x104 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(errfree.o)
-                0x00000000005088c0                PMPI_Errhandler_free
-                0x00000000005088c0                MPI_Errhandler_free
- *fill*         0x00000000005089c4        0xc 90909090
- .text          0x00000000005089d0        0xb /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtime.o)
-                0x00000000005089d0                PMPI_Wtime
-                0x00000000005089d0                MPI_Wtime
- *fill*         0x00000000005089db        0x5 90909090
- .text          0x00000000005089e0       0x18 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtick.o)
-                0x00000000005089e0                MPI_Wtick
-                0x00000000005089e0                PMPI_Wtick
- *fill*         0x00000000005089f8        0x8 90909090
- .text          0x0000000000508a00      0x97e /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(nerrmsg.o)
-                0x0000000000508f00                MPIR_Get_error_string
-                0x0000000000508e10                MPIR_GetErrorMessage
-                0x0000000000509050                MPIR_GetNLSMsg
-                0x0000000000508aa0                MPIR_Err_setmsg
-                0x0000000000508cc0                MPIR_Err_map_code_to_string
- *fill*         0x000000000050937e        0x2 90909090
- .text          0x0000000000509380        0x6 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(msgqdllloc.o)
-                0x0000000000509380                MPIR_Msg_queue_export
- *fill*         0x0000000000509386        0xa 90909090
- .text          0x0000000000509390      0xabb /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(util_hbt.o)
-                0x0000000000509560                MPIR_HBT_free_tree
-                0x00000000005094f0                MPIR_HBT_free_node
-                0x0000000000509470                MPIR_HBT_new_node
-                0x00000000005098e0                MPIR_HBT_delete
-                0x0000000000509410                MPIR_HBT_new_tree
-                0x0000000000509390                MPIR_HBT_Init
-                0x0000000000509610                MPIR_HBT_insert
-                0x00000000005093e0                MPIR_HBT_Free
-                0x00000000005095b0                MPIR_HBT_lookup
-                0x0000000000509520                MPIR_HBT_free_subtree
- *fill*         0x0000000000509e4b        0x5 90909090
- .text          0x0000000000509e50      0xce6 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(ptrcvt.o)
-                0x0000000000509fa0                MPIR_DestroyPointer
-                0x000000000050a910                MPIR_DumpPointers
-                0x000000000050a190                MPIR_FromPointer
-                0x0000000000509e70                MPIR_PointerOpts
-                0x0000000000509e50                MPIR_PointerPerm
-                0x000000000050a6e0                MPIR_RegPointerIdx
-                0x000000000050a410                MPIR_RmPointer
-                0x000000000050a010                MPIR_ToPointer
-                0x000000000050a5d0                MPIR_UsePointer
- *fill*         0x000000000050ab36        0xa 90909090
- .text          0x000000000050ab40      0x974 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bsendutil2.o)
-                0x000000000050ac00                MPIR_BsendRelease
-                0x000000000050b330                MPIR_IbsendDatatype
-                0x000000000050ab40                MPIR_BsendInitBuffer
- *fill*         0x000000000050b4b4        0xc 90909090
- .text          0x000000000050b4c0      0x1da /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(keyval_free.o)
-                0x000000000050b4c0                PMPI_Keyval_free
-                0x000000000050b4c0                MPI_Keyval_free
- *fill*         0x000000000050b69a        0x6 90909090
- .text          0x000000000050b6a0      0x17d /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(attr_getval.o)
-                0x000000000050b6a0                PMPI_Attr_get
-                0x000000000050b6a0                MPI_Attr_get
- *fill*         0x000000000050b81d        0x3 90909090
- .text          0x000000000050b820      0x682 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(attr_util.o)
-                0x000000000050bca0                MPIR_Attr_free_tree
-                0x000000000050be90                MPIR_Attr_make_perm
-                0x000000000050b820                MPIR_Attr_copy_node
-                0x000000000050baf0                MPIR_Attr_free_node
-                0x000000000050ba90                MPIR_Attr_copy
-                0x000000000050bc20                MPIR_Attr_free_subtree
-                0x000000000050b9f0                MPIR_Attr_copy_subtree
-                0x000000000050bd70                MPIR_Keyval_create
-                0x000000000050bd40                MPIR_Attr_create_tree
-                0x000000000050bd20                MPIR_Attr_dup_tree
- *fill*         0x000000000050bea2        0xe 90909090
- .text          0x000000000050beb0      0x2cd /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(attr_putval.o)
-                0x000000000050beb0                PMPI_Attr_put
-                0x000000000050beb0                MPI_Attr_put
- *fill*         0x000000000050c17d        0x3 90909090
- .text          0x000000000050c180      0x1bb /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(group_free.o)
-                0x000000000050c180                PMPI_Group_free
-                0x000000000050c180                MPI_Group_free
- *fill*         0x000000000050c33b        0x5 90909090
- .text          0x000000000050c340      0x3ed /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(group_util.o)
-                0x000000000050c340                MPIR_CreateGroup
-                0x000000000050c480                MPIR_SetToIdentity
-                0x000000000050c620                MPIR_Dump_ranges
-                0x000000000050c5a0                MPIR_Dump_ranks
-                0x000000000050c6b0                MPIR_Powers_of_2
-                0x000000000050c430                MPIR_FreeGroup
-                0x000000000050c4d0                MPIR_Dump_group
-                0x000000000050c720                MPIR_Group_N2_prev
- *fill*         0x000000000050c72d        0x3 90909090
- .text          0x000000000050c730      0x295 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_free.o)
-                0x000000000050c730                MPI_Comm_free
-                0x000000000050c730                PMPI_Comm_free
- *fill*         0x000000000050c9c5        0xb 90909090
- .text          0x000000000050c9d0       0xc5 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_rank.o)
-                0x000000000050c9d0                PMPI_Comm_rank
-                0x000000000050c9d0                MPI_Comm_rank
- *fill*         0x000000000050ca95        0xb 90909090
- .text          0x000000000050caa0      0x1db /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_name_put.o)
-                0x000000000050caa0                PMPI_Comm_set_name
-                0x000000000050caa0                MPI_Comm_set_name
- *fill*         0x000000000050cc7b        0x5 90909090
- .text          0x000000000050cc80      0x129 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_size.o)
-                0x000000000050cc80                MPI_Comm_size
-                0x000000000050cc80                PMPI_Comm_size
- *fill*         0x000000000050cda9        0x7 90909090
- .text          0x000000000050cdb0      0x604 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_util.o)
-                0x000000000050cf40                MPIR_Comm_N2_prev
-                0x000000000050d2d0                MPIR_Sort_split_table
-                0x000000000050d210                MPIR_Comm_remember
-                0x000000000050d290                MPIR_Comm_collops_init
-                0x000000000050cdb0                MPIR_Comm_make_coll
-                0x000000000050d180                MPIR_Comm_init
-                0x000000000050d080                MPIR_Intercomm_high
-                0x000000000050d240                MPIR_Comm_forget
-                0x000000000050cf60                MPIR_Dump_comm
- *fill*         0x000000000050d3b4        0xc 90909090
- .text          0x000000000050d3c0      0x138 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(context_util.o)
-                0x000000000050d3c0                MPIR_Context_alloc
-                0x000000000050d4f0                MPIR_Context_dealloc
- *fill*         0x000000000050d4f8        0x8 90909090
- .text          0x000000000050d500       0x12 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(dup_fn.o)
-                0x000000000050d500                MPIR_dup_fn
- *fill*         0x000000000050d512        0xe 90909090
- .text          0x000000000050d520      0x11c /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(barrier.o)
-                0x000000000050d520                PMPI_Barrier
-                0x000000000050d520                MPI_Barrier
- *fill*         0x000000000050d63c        0x4 90909090
- .text          0x000000000050d640      0x2bf /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bcast.o)
-                0x000000000050d640                PMPI_Bcast
-                0x000000000050d640                MPI_Bcast
- *fill*         0x000000000050d8ff        0x1 90909090
- .text          0x000000000050d900      0x395 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(gatherv.o)
-                0x000000000050d900                MPI_Gatherv
-                0x000000000050d900                PMPI_Gatherv
- *fill*         0x000000000050dc95        0xb 90909090
- .text          0x000000000050dca0      0x3a5 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(allgather.o)
-                0x000000000050dca0                MPI_Allgather
-                0x000000000050dca0                PMPI_Allgather
- *fill*         0x000000000050e045        0xb 90909090
- .text          0x000000000050e050      0x2cf /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(allreduce.o)
-                0x000000000050e050                PMPI_Allreduce
-                0x000000000050e050                MPI_Allreduce
- *fill*         0x000000000050e31f        0x1 90909090
- .text          0x000000000050e320     0x54f0 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(global_ops.o)
-                0x0000000000510ed0                MPIR_LXOR
-                0x000000000050ef30                MPIR_SUM
-                0x0000000000510b10                MPIR_BOR
-                0x0000000000510450                MPIR_LOR
-                0x000000000050e920                MPIR_MINF
-                0x000000000050f450                MPIR_PROD
-                0x0000000000511b80                MPIR_MAXLOC
-                0x000000000050e320                MPIR_MAXF
-                0x0000000000510090                MPIR_BAND
-                0x00000000005117c0                MPIR_BXOR
-                0x00000000005129c0                MPIR_MINLOC
-                0x000000000050f9d0                MPIR_LAND
- .text          0x0000000000513810      0x159 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(opfree.o)
-                0x0000000000513810                PMPI_Op_free
-                0x0000000000513810                MPI_Op_free
- *fill*         0x0000000000513969        0x7 90909090
- .text          0x0000000000513970       0x91 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(oputil.o)
-                0x0000000000513970                MPIR_Op_setup
- *fill*         0x0000000000513a01        0xf 90909090
- .text          0x0000000000513a10      0x2cd /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(inter_fns.o)
- *fill*         0x0000000000513cdd        0x3 90909090
- .text          0x0000000000513ce0     0x5e67 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_fns_new.o)
- *fill*         0x0000000000519b47        0x9 90909090
- .text          0x0000000000519b50      0x400 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_scan.o)
-                0x0000000000519b50                MPIR_intra_Scan
- .text          0x0000000000519f50      0x335 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(topo_util.o)
-                0x000000000051a270                MPIR_Topology_finalize
-                0x000000000051a240                MPIR_Topology_init
-                0x0000000000519fa0                MPIR_Topology_copy_fn
-                0x0000000000519f80                MPIR_Topology_Free
-                0x0000000000519f50                MPIR_Topology_Init
-                0x000000000051a1e0                MPIR_Topology_delete_fn
- *fill*         0x000000000051a285        0xb 90909090
- .text          0x000000000051a290       0x8c /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(statusc2f.o)
-                0x000000000051a290                PMPI_Status_c2f
-                0x000000000051a290                MPI_Status_c2f
- *fill*         0x000000000051a31c        0x4 90909090
- .text          0x000000000051a320     0x1bf0 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_utils.o)
-                0x000000000051ad60                in_same_cluster
-                0x000000000051a670                p4_get_cluster_masters
-                0x000000000051a6f0                p4_get_my_id_from_proc
-                0x000000000051a320                p4_post_init
-                0x000000000051bb00                get_qualified_hostname
-                0x000000000051a630                p4_global_barrier
-                0x000000000051a360                p4_machine_type
-                0x000000000051acb0                p4_get_my_cluster_id
-                0x000000000051a5d0                p4_num_cluster_ids
-                0x000000000051bbc0                same_data_representation
-                0x000000000051ada0                p4_cluster_shmem_sync
-                0x000000000051a5c0                p4_shfree
-                0x000000000051a570                p4_shmalloc
-                0x000000000051bca0                put_execer_port
-                0x000000000051ad00                p4_am_i_cluster_master
-                0x000000000051b670                fork_p4
-                0x000000000051ac90                p4_get_my_id
-                0x000000000051a5f0                p4_num_total_ids
-                0x000000000051b750                zap_p4_processes
-                0x000000000051b080                p4_accept_wait_timeout
-                0x000000000051bda0                init_usclock
-                0x000000000051bd90                clean_execer_port
-                0x000000000051ae20                get_pipe
-                0x000000000051ae80                setup_conntab
-                0x000000000051a330                p4_version
-                0x000000000051a6d0                p4_get_cluster_ids
-                0x000000000051a610                p4_num_total_slaves
-                0x000000000051bc20                p4_proc_info
-                0x000000000051a390                p4_initenv
-                0x000000000051b0b0                p4_wait_for_end
-                0x000000000051bdf0                p4_usclock
-                0x000000000051b7d0                zap_remote_p4_processes
- .text          0x000000000051bf10     0x121e /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_bm.o)
-                0x000000000051cef0                send_proc_table
-                0x000000000051c1c0                p4_startup
-                0x000000000051bf10                bm_start
-                0x000000000051c100                p4_create_procgroup
-                0x000000000051cd90                sync_with_remotes
-                0x000000000051c400                create_bm_processes
-                0x000000000051cb10                procgroup_to_proctable
- *fill*         0x000000000051d12e        0x2 90909090
- .text          0x000000000051d130     0x10a5 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_rm.o)
-                0x000000000051e010                receive_proc_table
-                0x000000000051d840                create_rm_processes
-                0x000000000051d130                rm_start
- *fill*         0x000000000051e1d5        0xb 90909090
- .text          0x000000000051e1e0     0x1f79 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_util.o)
-                0x000000000051ee20                net_conn_to_listener
-                0x000000000051fbe0                get_inet_addr
-                0x000000000051eaa0                net_accept
-                0x0000000000520120                p4_make_socket_nonblocking
-                0x000000000051f420                net_send
-                0x000000000051fc60                p4_print_sock_params
-                0x000000000051ff70                mpiexec_reopen_stdin
-                0x000000000051fc30                get_inet_addr_str
-                0x000000000051fa60                p4_timein_hostbyname
-                0x000000000051e270                p4_socket_control
-                0x000000000051fef0                dump_sockinfo
-                0x000000000051f5d0                net_send_w
-                0x000000000051e790                net_setup_listener
-                0x000000000051f0e0                net_recv
-                0x000000000051fe70                dump_sockaddr
-                0x000000000051fa80                gethostbyname_p4
-                0x000000000051e900                net_setup_anon_listener
-                0x000000000051f7b0                net_send2
-                0x000000000051fbd0                gethostname_p4
-                0x000000000051e610                net_set_sockbuf_size
-                0x000000000051f950                p4_socket_stat
- *fill*         0x0000000000520159        0x7 90909090
- .text          0x0000000000520160     0x12e2 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_cr.o)
-                0x0000000000520820                p4_accept_sigchild
-                0x0000000000520370                net_slave_info
-                0x00000000005208d0                net_create_slave
-                0x0000000000520780                p4_accept_timeout
-                0x0000000000520160                create_remote_processes
- *fill*         0x0000000000521442        0xe 90909090
- .text          0x0000000000521450      0xb74 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_conn.o)
-                0x00000000005214d0                p4_establish_all_conns
-                0x0000000000521450                p4_has_timedout
-                0x0000000000521570                establish_connection
-                0x0000000000521a40                handle_connection_interrupt
-                0x0000000000521680                request_connection
- *fill*         0x0000000000521fc4        0xc 90909090
- .text          0x0000000000521fd0     0x1a35 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_sr.o)
-                0x00000000005229e0                socket_recv_on_fd
-                0x0000000000522d10                sock_msg_avail_on_fd
-                0x0000000000522670                socket_recv
-                0x0000000000523330                p4_sockets_ready
-                0x0000000000523750                p4_look_for_close
-                0x0000000000523290                shutdown_p4_socks
-                0x0000000000522c60                socket_msgs_available
-                0x0000000000522e90                xdr_recv
-                0x0000000000523140                wait_for_ack
-                0x0000000000523830                p4_wait_for_socket_msg
-                0x0000000000522590                socket_close_conn
-                0x0000000000521fd0                xdr_send
-                0x00000000005231f0                send_ack
-                0x00000000005223c0                socket_send
- *fill*         0x0000000000523a05        0xb 90909090
- .text          0x0000000000523a10      0xcb1 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_list.o)
-                0x0000000000524440                net_recv_timeout
-                0x0000000000523a10                listener
- *fill*         0x00000000005246c1        0xf 90909090
- .text          0x00000000005246d0      0xbac /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_secure.o)
-                0x00000000005246d0                start_slave
-                0x00000000005251c0                getpw_ss
- *fill*         0x000000000052527c        0x4 90909090
- .text          0x0000000000525280       0x88 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(usc.o)
-                0x00000000005252d0                usc_MD_clock
-                0x0000000000525280                usc_init
- *fill*         0x0000000000525308        0x8 90909090
- .text          0x0000000000525310      0xc68 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2init.o)
-                0x0000000000525ea0                MPID_SetPktSize
-                0x0000000000525f00                MPID_WaitForCompleteRecv
-                0x0000000000525650                MPID_Abort
-                0x0000000000525310                MPID_Init
-                0x0000000000525f40                MPID_Version_name
-                0x0000000000525ca0                MPID_Complete_pending
-                0x0000000000525ec0                MPID_WaitForCompleteSend
-                0x0000000000525830                MPID_End
-                0x0000000000525990                MPID_DeviceCheck
- *fill*         0x0000000000525f78        0x8 90909090
- .text          0x0000000000525f80      0x348 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2hsend.o)
-                0x0000000000525f80                MPID_SendDatatype
-                0x0000000000526100                MPID_IsendDatatype
- *fill*         0x00000000005262c8        0x8 90909090
- .text          0x00000000005262d0      0x57f /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2hrecv.o)
-                0x0000000000526360                MPID_IrecvDatatype
-                0x00000000005262d0                MPID_RecvDatatype
- *fill*         0x000000000052684f        0x1 90909090
- .text          0x0000000000526850      0x4bb /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2pack.o)
-                0x00000000005269e0                MPID_Msg_act
-                0x0000000000526850                MPID_Msg_rep
-                0x0000000000526b70                MPID_Pack
-                0x0000000000526af0                MPID_Pack_size
-                0x0000000000526c90                MPID_Unpack
- *fill*         0x0000000000526d0b        0x5 90909090
- .text          0x0000000000526d10      0x2f5 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2mpack.o)
-                0x0000000000526d10                MPID_PackMessage
-                0x0000000000526e10                MPID_PackMessageFree
-                0x0000000000526e50                MPID_UnpackMessageSetup
-                0x0000000000526ed0                MPID_UnpackMessageComplete
- *fill*         0x0000000000527005        0xb 90909090
- .text          0x0000000000527010     0x13e5 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bswap2.o)
-                0x0000000000527890                MPID_Mem_XDR_ByteDecode
-                0x0000000000527e20                MPID_Type_XDR_decode
-                0x00000000005272f0                MPID_Type_swap_inplace
-                0x0000000000527460                MPID_Mem_convert_len
-                0x00000000005274b0                MPID_Mem_XDR_Len
-                0x0000000000527010                MPID_BSwap_N_inplace
-                0x0000000000527a90                MPID_Type_XDR_encode
-                0x0000000000527950                MPID_Mem_XDR_Decode_Logical
-                0x0000000000527670                MPID_Mem_XDR_Encode_Logical
-                0x0000000000527500                MPID_Mem_XDR_Encode
-                0x0000000000527120                MPID_Type_swap_copy
-                0x00000000005274c0                MPID_Mem_XDR_Init
-                0x00000000005274e0                MPID_Mem_XDR_Free
-                0x00000000005275d0                MPID_Mem_XDR_ByteEncode
-                0x0000000000527770                MPID_Mem_XDR_Decode
-                0x00000000005270b0                MPID_BSwap_N_copy
- *fill*         0x00000000005283f5        0xb 90909090
- .text          0x0000000000528400      0xae6 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chdebug.o)
-                0x0000000000528d60                MPID_SetMsgDebugFlag
-                0x0000000000528af0                MPID_Print_Send_Handle
-                0x0000000000528da0                MPID_Print_rhandle
-                0x0000000000528880                MPID_Get_print_pkt
-                0x0000000000528400                MPID_Rndv_print_pkt
-                0x0000000000528e10                MPID_Print_Short_data
-                0x00000000005285e0                MPID_Print_packet
-                0x0000000000528b30                MPID_SetDebugFile
-                0x0000000000528890                MPID_Print_mode
-                0x0000000000528a20                MPID_Print_pkt_data
-                0x0000000000528d90                MPID_PrintMsgDebug
-                0x0000000000528d40                MPID_SetDebugFlag
-                0x0000000000528dd0                MPID_Print_shandle
-                0x0000000000528530                MPID_Cancel_print_pkt
-                0x0000000000528c30                MPID_Set_tracefile
-                0x0000000000528d30                MPID_SetSpaceDebugFlag
-                0x0000000000528d80                MPID_GetMsgDebugFlag
- *fill*         0x0000000000528ee6        0xa 90909090
- .text          0x0000000000528ef0      0x4b8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chinit.o)
-                0x0000000000529130                MPID_CH_Abort
-                0x0000000000528ef0                MPID_CH_InitMsgPass
-                0x00000000005291e0                MPID_CH_End
-                0x0000000000529370                MPID_CH_Version_name
- *fill*         0x00000000005293a8        0x8 90909090
- .text          0x00000000005293b0      0x832 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chhetero.o)
-                0x0000000000529a60                MPID_CH_Pkt_unpack
-                0x0000000000529b50                MPID_GetByteOrder
-                0x0000000000529960                MPID_CH_Pkt_pack
-                0x00000000005298a0                MPID_CH_Comm_msgrep
-                0x00000000005293b0                MPID_CH_Init_hetero
-                0x0000000000529b30                MPID_CH_Hetero_free
-                0x0000000000529b90                MPID_ByteSwapInt
- *fill*         0x0000000000529be2        0xe 90909090
- .text          0x0000000000529bf0       0xd0 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chtick.o)
-                0x0000000000529bf0                MPID_CH_Wtick
- .text          0x0000000000529cc0      0x51b /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4priv.o)
-                0x000000000052a1a0                MPID_P4_End
-                0x0000000000529cc0                MPID_P4_Init
- *fill*         0x000000000052a1db        0x5 90909090
- .text          0x000000000052a1e0      0x8da /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(queue.o)
-                0x000000000052a790                MPID_Search_unexpected_queue
-                0x000000000052a9e0                MPID_Search_unexpected_queue_and_post
-                0x000000000052a8a0                MPID_Msg_arrived
-                0x000000000052a1e0                MPID_Dump_queues
-                0x000000000052a6e0                MPID_Search_unexpected_for_request
-                0x000000000052aa60                MPID_InitQueue
-                0x000000000052a200                MPID_Dump_queue
-                0x000000000052a5a0                MPID_Dequeue
- *fill*         0x000000000052aaba        0x6 90909090
- .text          0x000000000052aac0      0x632 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(cmnargs.o)
-                0x000000000052aac0                MPID_GetIntParameter
-                0x000000000052aaf0                MPID_ArgSqueeze
-                0x000000000052ab70                MPID_ProcessArgs
- *fill*         0x000000000052b0f2        0xe 90909090
- .text          0x000000000052b100      0x3ee /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(sbcnst2.o)
-                0x000000000052b300                MPID_SBdestroy
-                0x000000000052b100                MPID_SBinit
-                0x000000000052b4a0                MPID_SBReleaseAvail
-                0x000000000052b440                MPID_SBDump
-                0x000000000052b290                MPID_SBalloc
-                0x000000000052b1c0                MPID_SBiAllocate
-                0x000000000052b360                MPID_SBrelease
-                0x000000000052b2e0                MPID_SBPrealloc
-                0x000000000052b1a0                MPID_SBfree
-                0x000000000052b3b0                MPID_SBFlush
- *fill*         0x000000000052b4ee        0x2 90909090
- .text          0x000000000052b4f0       0x52 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(session.o)
-                0x000000000052b4f0                MPID_Process_group_init
- *fill*         0x000000000052b542        0xe 90909090
- .text          0x000000000052b550      0xc0a /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chpackflow.o)
-                0x000000000052b610                MPID_SendProtoAck
-                0x000000000052bd90                MPID_FinishRecvPackets
-                0x000000000052b550                MPID_PacketFlowSetup
-                0x000000000052b880                MPID_RecvProtoAck
-                0x000000000052c130                MPID_PackDelete
- *fill*         0x000000000052c15a        0x6 90909090
- .text          0x000000000052c160      0x9fc /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chcancel.o)
-                0x000000000052c380                MPID_SendCancelOkPacket
-                0x000000000052c160                MPID_SendCancelPacket
-                0x000000000052c900                MPID_FinishCancelPackets
-                0x000000000052c680                MPID_RecvCancelOkPacket
- *fill*         0x000000000052cb5c        0x4 90909090
- .text          0x000000000052cb60      0x3b1 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(isend.o)
-                0x000000000052cb60                PMPI_Isend
-                0x000000000052cb60                MPI_Isend
- *fill*         0x000000000052cf11        0xf 90909090
- .text          0x000000000052cf20      0x3c1 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(irecv.o)
-                0x000000000052cf20                PMPI_Irecv
-                0x000000000052cf20                MPI_Irecv
- *fill*         0x000000000052d2e1        0xf 90909090
- .text          0x000000000052d2f0       0xad /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wait.o)
-                0x000000000052d2f0                PMPI_Wait
-                0x000000000052d2f0                MPI_Wait
- *fill*         0x000000000052d39d        0x3 90909090
- .text          0x000000000052d3a0       0xf5 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(test.o)
-                0x000000000052d3a0                PMPI_Test
-                0x000000000052d3a0                MPI_Test
- *fill*         0x000000000052d495        0xb 90909090
- .text          0x000000000052d4a0      0x269 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(cancel.o)
-                0x000000000052d4a0                MPI_Cancel
-                0x000000000052d4a0                PMPI_Cancel
- *fill*         0x000000000052d709        0x7 90909090
- .text          0x000000000052d710      0x5fc /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(waitall.o)
-                0x000000000052d710                PMPI_Waitall
-                0x000000000052d710                MPI_Waitall
- *fill*         0x000000000052dd0c        0x4 90909090
- .text          0x000000000052dd10      0x271 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(sendrecv.o)
-                0x000000000052dd10                PMPI_Sendrecv
-                0x000000000052dd10                MPI_Sendrecv
- *fill*         0x000000000052df81        0xf 90909090
- .text          0x000000000052df90      0x5df /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(testall.o)
-                0x000000000052df90                MPI_Testall
-                0x000000000052df90                PMPI_Testall
- *fill*         0x000000000052e56f        0x1 90909090
- .text          0x000000000052e570      0x195 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(getcount.o)
-                0x000000000052e570                PMPI_Get_count
-                0x000000000052e570                MPI_Get_count
- *fill*         0x000000000052e705        0xb 90909090
- .text          0x000000000052e710      0x21f /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_commit.o)
-                0x000000000052e710                MPI_Type_commit
-                0x000000000052e710                PMPI_Type_commit
- *fill*         0x000000000052e92f        0x1 90909090
- .text          0x000000000052e930      0x408 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_contig.o)
-                0x000000000052e930                PMPI_Type_contiguous
-                0x000000000052e930                MPI_Type_contiguous
- *fill*         0x000000000052ed38        0x8 90909090
- .text          0x000000000052ed40       0xe3 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_extent.o)
-                0x000000000052ed40                MPI_Type_extent
-                0x000000000052ed40                PMPI_Type_extent
- *fill*         0x000000000052ee23        0xd 90909090
- .text          0x000000000052ee30      0x1c9 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_free.o)
-                0x000000000052ee30                MPI_Type_free
-                0x000000000052ee30                PMPI_Type_free
- *fill*         0x000000000052eff9        0x7 90909090
- .text          0x000000000052f000      0x382 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_ind.o)
-                0x000000000052f000                MPI_Type_indexed
-                0x000000000052f000                PMPI_Type_indexed
- *fill*         0x000000000052f382        0xe 90909090
- .text          0x000000000052f390      0x137 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_lb.o)
-                0x000000000052f390                MPI_Type_lb
-                0x000000000052f390                PMPI_Type_lb
- *fill*         0x000000000052f4c7        0x9 90909090
- .text          0x000000000052f4d0      0x146 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_size.o)
-                0x000000000052f4d0                MPI_Type_size
-                0x000000000052f4d0                PMPI_Type_size
- *fill*         0x000000000052f616        0xa 90909090
- .text          0x000000000052f620      0x8fe /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_struct.o)
-                0x000000000052f620                MPI_Type_struct
-                0x000000000052f620                PMPI_Type_struct
- *fill*         0x000000000052ff1e        0x2 90909090
- .text          0x000000000052ff20      0x266 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(pack_size.o)
-                0x000000000052ff20                PMPI_Pack_size
-                0x000000000052ff20                MPI_Pack_size
- *fill*         0x0000000000530186        0xa 90909090
- .text          0x0000000000530190      0x3af /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(pack.o)
-                0x0000000000530190                PMPI_Pack
-                0x0000000000530190                MPI_Pack
- *fill*         0x000000000053053f        0x1 90909090
- .text          0x0000000000530540      0x393 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(unpack.o)
-                0x0000000000530540                PMPI_Unpack
-                0x0000000000530540                MPI_Unpack
- *fill*         0x00000000005308d3        0xd 90909090
- .text          0x00000000005308e0      0x172 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-                0x00000000005308f0                MPIR_Breakpoint
- *fill*         0x0000000000530a52        0xe 90909090
- .text          0x0000000000530a60      0x1ae /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(errset.o)
-                0x0000000000530a60                PMPI_Errhandler_set
-                0x0000000000530a60                MPI_Errhandler_set
- *fill*         0x0000000000530c0e        0x2 90909090
- .text          0x0000000000530c10      0xe1c /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(pkutil.o)
-                0x00000000005311b0                MPIR_Unpack2
-                0x00000000005318f0                MPIR_PrintDatatypeUnpack
-                0x0000000000531680                MPIR_Elementcnt
-                0x0000000000530c10                MPIR_Unpack
-                0x00000000005317b0                MPIR_Printcontig2a
-                0x0000000000530d00                MPIR_Pack2
-                0x00000000005316f0                MPIR_Printcontig
-                0x0000000000531820                MPIR_PrintDatatypePack
-                0x0000000000531750                MPIR_Printcontig2
- *fill*         0x0000000000531a2c        0x4 90909090
- .text          0x0000000000531a30       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(keyvalcreate.o)
-                0x0000000000531a30                PMPI_Keyval_create
-                0x0000000000531a30                MPI_Keyval_create
- *fill*         0x0000000000531a44        0xc 90909090
- .text          0x0000000000531a50      0x2df /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(reduce.o)
-                0x0000000000531a50                PMPI_Reduce
-                0x0000000000531a50                MPI_Reduce
- *fill*         0x0000000000531d2f        0x1 90909090
- .text          0x0000000000531d30      0x520 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_MD.o)
-                0x0000000000531d40                MD_initenv
-                0x0000000000531d70                MD_shfree
-                0x0000000000531d50                MD_malloc_hint
-                0x0000000000531d60                MD_shmalloc
-                0x0000000000531db0                MD_clock
-                0x0000000000531d80                MD_set_reference_time
-                0x0000000000531e10                data_representation
-                0x0000000000531d30                MD_initmem
- .text          0x0000000000532250      0x6a2 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_error.o)
-                0x00000000005328e0                p4_set_hard_errors
-                0x0000000000532250                p4_soft_errors
-                0x0000000000532600                trap_sig_errs
-                0x00000000005322a0                p4_error
- *fill*         0x00000000005328f2        0xe 90909090
- .text          0x0000000000532900      0xbfd /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_args.o)
-                0x0000000000532900                process_args
- *fill*         0x00000000005334fd        0x3 90909090
- .text          0x0000000000533500      0x99d /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_alloc.o)
-                0x0000000000533ad0                free_p4_msg
-                0x0000000000533820                init_avail_buffs
-                0x00000000005335f0                alloc_local_rm
-                0x0000000000533930                alloc_p4_msg
-                0x0000000000533500                alloc_local_bm
-                0x0000000000533720                alloc_local_slave
-                0x0000000000533c20                free_avail_buffs
-                0x00000000005336d0                alloc_local_listener
-                0x0000000000533e10                alloc_listener_info
-                0x0000000000533880                p4_print_avail_buffs
-                0x0000000000533cb0                alloc_global
-                0x00000000005337f0                p4_set_avail_buff
- *fill*         0x0000000000533e9d        0x3 90909090
- .text          0x0000000000533ea0      0x7de /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_debug.o)
-                0x0000000000534270                dump_local
-                0x0000000000534130                dump_global
-                0x00000000005343a0                print_conn_type
-                0x0000000000533ff0                p4_dprint_last
-                0x0000000000533ed0                p4_dprintf
-                0x0000000000533ea0                p4_get_dbg_level
-                0x00000000005345c0                dump_conntab
-                0x0000000000534580                dump_tmsg
-                0x0000000000533eb0                p4_set_dbg_level
-                0x00000000005344e0                dump_procgroup
-                0x0000000000534000                p4_dprintfl
-                0x0000000000534480                dump_listener
- *fill*         0x000000000053467e        0x2 90909090
- .text          0x0000000000534680      0x4ad /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_procgroup.o)
-                0x00000000005346e0                read_procgroup
-                0x0000000000534680                p4_alloc_procgroup
-                0x00000000005349e0                install_in_proctable
- *fill*         0x0000000000534b2d        0x3 90909090
- .text          0x0000000000534b30      0xc01 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_tsr.o)
-                0x0000000000535530                initialize_msg_queue
-                0x0000000000535550                alloc_quel
-                0x0000000000535130                queue_p4_message
-                0x00000000005354f0                p4_msg_alloc
-                0x0000000000535430                get_tmsg
-                0x0000000000535660                free_avail_quels
-                0x0000000000535190                send_message
-                0x0000000000534f10                recv_message
-                0x00000000005356d0                p4_yield
-                0x0000000000535510                p4_msg_free
-                0x0000000000534f50                p4_any_messages_available
-                0x0000000000535620                free_quel
-                0x0000000000535000                p4_messages_available
-                0x0000000000534b30                search_p4_queue
-                0x00000000005356e0                p4_waitformsg
-                0x0000000000534d30                p4_recv
- *fill*         0x0000000000535731        0xf 90909090
- .text          0x0000000000535740      0x4d3 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_mon.o)
-                0x00000000005359d0                p4_askfor
-                0x0000000000535b80                p4_progend
-                0x0000000000535940                p4_barrier_init
-                0x0000000000535860                num_in_mon_queue
-                0x0000000000535800                p4_mexit
-                0x0000000000535830                p4_mcontinue
-                0x0000000000535810                p4_mdelay
-                0x0000000000535880                p4_getsub_init
-                0x0000000000535b40                p4_probend
-                0x0000000000535960                p4_barrier
-                0x00000000005358a0                p4_getsubs
-                0x00000000005357f0                p4_menter
-                0x0000000000535af0                p4_update
-                0x00000000005359b0                p4_askfor_init
-                0x0000000000535740                p4_moninit
-                0x0000000000535bc0                p4_create
- *fill*         0x0000000000535c13        0xd 90909090
- .text          0x0000000000535c20     0x1188 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_broadcast.o)
-                0x0000000000536a30                p4_flt_absmin_op
-                0x0000000000536cc0                p4_int_absmin_op
-                0x0000000000536950                p4_flt_absmax_op
-                0x00000000005364d0                p4_dbl_sum_op
-                0x00000000005365c0                p4_dbl_min_op
-                0x0000000000536220                p4_global_op
-                0x0000000000536710                p4_dbl_absmin_op
-                0x0000000000536810                p4_flt_sum_op
-                0x0000000000536860                p4_flt_mult_op
-                0x0000000000535c20                p4_broadcastx
-                0x0000000000536520                p4_dbl_mult_op
-                0x0000000000535cf0                subtree_broadcast_p4
-                0x0000000000536b90                p4_int_max_op
-                0x0000000000536bd0                p4_int_min_op
-                0x0000000000536c10                p4_int_absmax_op
-                0x0000000000536b10                p4_int_sum_op
-                0x0000000000536610                p4_dbl_absmax_op
-                0x0000000000536b50                p4_int_mult_op
-                0x0000000000536900                p4_flt_min_op
-                0x0000000000536570                p4_dbl_max_op
-                0x00000000005368b0                p4_flt_max_op
- *fill*         0x0000000000536da8        0x8 90909090
- .text          0x0000000000536db0      0x948 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2recv.o)
-                0x0000000000537480                MPID_RecvComplete
-                0x0000000000536e40                MPID_IrecvContig
-                0x00000000005376f0                MPID_Status_set_bytes
-                0x0000000000537220                MPID_RecvIcomplete
-                0x0000000000536db0                MPID_RecvContig
- *fill*         0x00000000005376f8        0x8 90909090
- .text          0x0000000000537700      0x763 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2send.o)
-                0x0000000000537b40                MPID_SendIcomplete
-                0x0000000000537700                MPID_SendContig
-                0x0000000000537c30                MPID_SendComplete
-                0x0000000000537a00                MPID_BsendContig
-                0x0000000000537870                MPID_IsendContig
- *fill*         0x0000000000537e63        0xd 90909090
- .text          0x0000000000537e70      0x479 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2cancel.o)
-                0x0000000000538150                MPID_RecvCancel
-                0x0000000000537e70                MPID_SendCancel
- *fill*         0x00000000005382e9        0x7 90909090
- .text          0x00000000005382f0     0x1976 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chbeager.o)
-                0x0000000000539ba0                MPID_CH_Eagerb_delete
-                0x00000000005382f0                MPID_CH_Eagerb_send
-                0x0000000000539bb0                MPID_CH_Eagerb_setup
-                0x0000000000539870                MPID_CH_Eagerb_cancel_send
-                0x0000000000538960                MPID_CH_Eagerb_recv
-                0x0000000000539880                MPID_CH_Eagerb_irecv
-                0x00000000005391d0                MPID_CH_Eagerb_isend
-                0x0000000000538ea0                MPID_CH_Eagerb_save
-                0x0000000000538c60                MPID_CH_Eagerb_unxrecv_start
- *fill*         0x0000000000539c66        0xa 90909090
- .text          0x0000000000539c70     0x25a0 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chbrndv.o)
-                0x000000000053bd80                MPID_CH_Rndvb_save_self
-                0x0000000000539c70                MPID_CH_Rndvb_isend
-                0x000000000053b8c0                MPID_CH_Rndvb_ack
-                0x000000000053a1f0                MPID_CH_Rndvb_send
-                0x000000000053a2f0                MPID_CH_Rndvb_irecv
-                0x000000000053ac80                MPID_CH_Rndvb_ok_to_send
-                0x000000000053c150                MPID_CH_Rndvb_delete
-                0x000000000053aa70                MPID_CH_Rndvb_save
-                0x000000000053b5d0                MPID_CH_Rndvb_unxrecv_test_end
-                0x000000000053c160                MPID_CH_Rndvb_setup
-                0x000000000053bea0                MPID_CH_Rndvb_unxrecv_start_self
-                0x000000000053aea0                MPID_CH_Rndvb_unxrecv_start
-                0x000000000053b1b0                MPID_CH_Rndvb_unxrecv_end
- .text          0x000000000053c210      0xf63 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chchkdev.o)
-                0x000000000053c210                MPID_CH_Check_incoming
- *fill*         0x000000000053d173        0xd 90909090
- .text          0x000000000053d180     0x18ca /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chshort.o)
-                0x000000000053e9a0                MPID_CH_Short_setup
-                0x000000000053e4b0                MPID_CH_Eagerb_unxrecv_start_short
-                0x000000000053d9c0                MPID_CH_Eagerb_isend_short
-                0x000000000053e6f0                MPID_CH_Eagerb_save_short
-                0x000000000053e220                MPID_CH_Eagerb_recv_short
-                0x000000000053d180                MPID_CH_Eagerb_send_short
-                0x000000000053e990                MPID_CH_Eagerb_short_delete
- *fill*         0x000000000053ea4a        0x6 90909090
- .text          0x000000000053ea50      0x4be /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chflow.o)
-                0x000000000053ea70                MPID_SendFlowPacket
-                0x000000000053edd0                MPID_FlowDelete
-                0x000000000053ec30                MPID_RecvFlowPacket
-                0x000000000053edf0                MPID_FlowDump
-                0x000000000053ea50                MPID_FlowDebug
-                0x000000000053ecd0                MPID_FlowSetup
- *fill*         0x000000000053ef0e        0x2 90909090
- .text          0x000000000053ef10      0x61e /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_hind.o)
-                0x000000000053ef10                PMPI_Type_hindexed
-                0x000000000053ef10                MPI_Type_hindexed
- *fill*         0x000000000053f52e        0x2 90909090
- .text          0x000000000053f530      0x48c /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(dmpipk.o)
-                0x000000000053f530                MPIR_Pack_Hvector
-                0x000000000053f9b0                MPIR_HvectorLen
-                0x000000000053f770                MPIR_UnPack_Hvector
- .text          0x000000000053f9bc      0x2f4 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(close.o)
-                0x000000000053fc2c                __hpfio_cleanup
-                0x000000000053fc05                pgcrf90io_close
-                0x000000000053fb87                pgf90io_close
-                0x000000000053faa3                __hpfio_close
- .text          0x000000000053fcb0       0xc0 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(desc.o)
-                0x000000000053fd10                pghpfio_usw_read
-                0x000000000053fce0                pghpfio_ldr
-                0x000000000053fd28                pghpfio_usw_write
-                0x000000000053fcc8                pghpfio_fmt_write
-                0x000000000053fcb0                pghpfio_fmt_read
-                0x000000000053fcf8                pghpfio_ldw
-                0x000000000053fd58                pghpfio_unf_write
-                0x000000000053fd40                pghpfio_unf_read
- .text          0x000000000053fd70      0xace /usr/pgi/linux86-64/6.0/lib/libpgf90.a(encodefmt.o)
-                0x000000000054081b                pgcrf90io_encode_fmtv
-                0x00000000005407f3                pgf90io_encode_fmtv
-                0x00000000005407cc                pgcrf90io_encode_fmt
-                0x00000000005407a0                pgf90io_encode_fmt
- *fill*         0x000000000054083e        0x2 90909090
- .text          0x0000000000540840      0x9ba /usr/pgi/linux86-64/6.0/lib/libpgf90.a(error.o)
-                0x0000000000540aff                __hpfio_errmsg
-                0x0000000000540cb7                __hpfio_eorerr
-                0x0000000000540f05                pgf90io_src_info
-                0x0000000000540f1b                pgcrf90io_src_info
-                0x00000000005408e0                __hpfio_error
-                0x0000000000540840                __hpfio_errinit
-                0x00000000005411c5                __hpfio_check_format
-                0x0000000000540b90                __hpfio_eoferr
- *fill*         0x00000000005411fa        0x2 90909090
- .text          0x00000000005411fc     0x2759 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtread.o)
-                0x0000000000541a85                pgf90io_fmt_read_a
-                0x000000000054170c                pgcrf90io_fmtr_intern_init
-                0x0000000000541adb                pgcrf90io_fmt_read
-                0x0000000000541794                pgcrf90io_fmtr_intern_initv
-                0x000000000054139d                pgf90io_fmtr_init
-                0x000000000054181f                pgcrf90io_fmtr_intern_inite
-                0x00000000005418c5                __f90io_fmt_read
-                0x00000000005417a5                pgf90io_fmtr_intern_inite
-                0x0000000000543947                pgcrf90io_fmtr_end
-                0x0000000000541833                pgf90io_fmtr_intern_initev
-                0x0000000000541443                pgcrf90io_fmtr_init
-                0x0000000000543939                pgf90io_fmtr_end
-                0x000000000054147a                pgf90io_fmtr_initv
-                0x0000000000541ab1                pgf90io_fmt_read64_a
-                0x0000000000541a59                pgf90io_fmt_read
-                0x000000000054171a                pgf90io_fmtr_intern_initv
-                0x00000000005418ae                pgcrf90io_fmtr_intern_initev
-                0x0000000000541693                pgf90io_fmtr_intern_init
-                0x0000000000541520                pgcrf90io_fmtr_initv
- *fill*         0x0000000000543955        0x3 90909090
- .text          0x0000000000543958     0x2390 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtwrite.o)
-                0x0000000000543bb7                pgcrf90io_fmtw_init
-                0x0000000000543b14                pgf90io_fmtw_init
-                0x0000000000543edd                pgf90io_fmtw_intern_inite
-                0x000000000054419c                pgcrf90io_fmt_write
-                0x0000000000543e31                pgf90io_fmtw_intern_initv
-                0x0000000000543ebb                pgcrf90io_fmtw_intern_initv
-                0x0000000000544177                pgf90io_fmt_write64_a
-                0x0000000000544152                pgf90io_fmt_write_a
-                0x0000000000545ccc                pgf90io_fmtw_end
-                0x0000000000543c8f                pgcrf90io_fmtw_initv
-                0x0000000000543f92                pgf90io_fmtw_intern_initev
-                0x0000000000543e12                pgcrf90io_fmtw_intern_init
-                0x0000000000543bec                pgf90io_fmtw_initv
-                0x000000000054412d                pgf90io_fmt_write
-                0x0000000000543d88                pgf90io_fmtw_intern_init
-                0x0000000000545cda                pgcrf90io_fmtw_end
-                0x0000000000543f6a                pgcrf90io_fmtw_intern_inite
-                0x000000000054401f                pgcrf90io_fmtw_intern_initev
-                0x000000000054404a                __f90io_fmt_write
- .text          0x0000000000545ce8      0x24a /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ftnexit.o)
-                0x0000000000545f11                pgcrf90_pause
-                0x0000000000545df8                pgcrf90_stop
-                0x0000000000545dd7                pgf90_stop
-                0x0000000000545d16                pgcrf90_exit
-                0x0000000000545ce8                pgf90_exit
-                0x0000000000545ee6                pgf90_pause
- *fill*         0x0000000000545f32        0x2 90909090
- .text          0x0000000000545f34     0x1008 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ldread.o)
-                0x0000000000546f2e                pgcrf90io_ldr_end
-                0x000000000054636b                pgcrf90io_ldr
-                0x0000000000546126                pgf90io_ldr_intern_inite
-                0x0000000000546030                pgcrf90io_ldr_init
-                0x0000000000546315                pgf90io_ldr_a
-                0x00000000005460b1                pgf90io_ldr_intern_init
-                0x000000000054618e                pgcrf90io_ldr_intern_inite
-                0x000000000054603e                f90io_ldr_intern_init
-                0x0000000000546f20                pgf90io_ldr_end
-                0x0000000000545fd7                pgf90io_ldr_init
-                0x0000000000546341                pgf90io_ldr64_a
-                0x0000000000546118                pgcrf90io_ldr_intern_init
-                0x00000000005462e9                pgf90io_ldr
-                0x00000000005461d5                __f90io_ldr
- .text          0x0000000000546f3c      0x918 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ldwrite.o)
-                0x000000000054747f                pgcrf90io_ldw
-                0x0000000000547127                pgf90io_ldw_intern_init
-                0x0000000000547262                __f90io_ldw
-                0x0000000000547841                pgcrf90io_ldw_end
-                0x000000000054745a                pgf90io_ldw64_a
-                0x0000000000547410                pgf90io_ldw
-                0x000000000054723a                pgcrf90io_ldw_intern_inite
-                0x00000000005471be                pgf90io_ldw_intern_inite
-                0x0000000000547079                pgcrf90io_ldw_init
-                0x0000000000547016                pgf90io_ldw_init
-                0x000000000054782e                pgf90io_ldw_end
-                0x0000000000547435                pgf90io_ldw_a
-                0x000000000054719f                pgcrf90io_ldw_intern_init
- .text          0x0000000000547854      0xfe8 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(open.o)
-                0x0000000000547854                __hpfio_open
-                0x000000000054855b                pgf90io_open_cvt
-                0x0000000000548367                pgf90io_open
-                0x0000000000548616                pgcrf90io_open
-                0x0000000000548786                pgcrf90io_open_cvt
- .text          0x000000000054883c       0xfd /usr/pgi/linux86-64/6.0/lib/libpgf90.a(rewind.o)
-                0x000000000054892b                pgcrf90io_rewind
-                0x00000000005488e4                pgf90io_rewind
- *fill*         0x0000000000548939        0x3 90909090
- .text          0x000000000054893c     0x1b8f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(unf.o)
-                0x0000000000548e44                pgf90io_unf_read_a
-                0x0000000000548ed8                __f90io_unf_write
-                0x0000000000548bc5                __f90io_unf_read
-                0x0000000000548e6e                pgf90io_unf_read64_a
-                0x0000000000549350                pgf90io_byte_write64
-                0x00000000005498d4                __f90io_usw_read
-                0x0000000000549304                pgf90io_unf_write64_a
-                0x000000000054a074                pgf90io_usw_write
-                0x00000000005492da                pgf90io_unf_write_a
-                0x0000000000549c06                __f90io_usw_write
-                0x0000000000549bb2                pgf90io_usw_read_a
-                0x0000000000548eba                pgf90io_byte_read64
-                0x000000000054936e                __f90io_unf_end
-                0x0000000000548e98                pgf90io_byte_read
-                0x000000000054a4bd                pgf90io_usw_end
-                0x0000000000548b5e                pgf90io_unf_init
-                0x00000000005497c0                __f90io_usw_init
-                0x000000000054986d                pgf90io_usw_init
-                0x00000000005497b2                pgf90io_unf_end
-                0x00000000005492b0                pgf90io_unf_write
-                0x000000000054932e                pgf90io_byte_write
-                0x0000000000548e1a                pgf90io_unf_read
-                0x000000000054a09e                pgf90io_usw_write_a
-                0x0000000000549bdc                pgf90io_usw_read64_a
-                0x0000000000548983                __f90io_unf_init
-                0x0000000000549b88                pgf90io_usw_read
-                0x000000000054a0c8                pgf90io_usw_write64_a
-                0x000000000054a0f2                __f90io_usw_end
- *fill*         0x000000000054a4cb        0x1 90909090
- .text          0x000000000054a4cc      0x682 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(utils.o)
-                0x000000000054a910                __hpfio_zeropad
-                0x000000000054a4cc                __hpfio_alloc_fcb
-                0x000000000054a985                __hpfio_eq_str
-                0x000000000054a586                __hpfio_rwinit
-                0x000000000054a8f1                __hpfio_find_unit
-                0x000000000054a540                __hpfio_free_fcb
-                0x000000000054a9ee                __hpfio_swap_bytes
- *fill*         0x000000000054ab4e        0x2 90909090
- .text          0x000000000054ab50      0xb21 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(utilsi64.o)
-                0x000000000054ab50                __hpf_atoxi32
-                0x000000000054ad6b                __hpf_atoxi64
-                0x000000000054adaa                __hpf_i64toax
- *fill*         0x000000000054b671        0x3 90909090
- .text          0x000000000054b674      0x97f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(allo.o)
-                0x000000000054bd31                pgf90_ptr_calloc
-                0x000000000054b774                pghpf_ptr_offset
-                0x000000000054b7a8                __hpf_alloc
-                0x000000000054ba90                ftn_allocate
-                0x000000000054bdb0                __hpf_dealloc
-                0x000000000054bd88                __hpf_local_allocate
-                0x000000000054bcd3                pgf90_calloc
-                0x000000000054b6be                __hpf_ptr_offset
-                0x000000000054bfc3                __hpf_deallocate
-                0x000000000054bb0d                pgf90_alloc
-                0x000000000054becd                ftn_dealloc
-                0x000000000054bfa7                pgf90_deallocx
-                0x000000000054ba31                ftn_allocated
-                0x000000000054bfdb                __hpf_local_deallocate
-                0x000000000054ba6f                pgf90_kallocated
-                0x000000000054bee0                pgf90_dealloc
-                0x000000000054bd60                __hpf_allocate
-                0x000000000054b674                __hpf_ptr_aligned
-                0x000000000054b9c7                __hpf_allocated
-                0x000000000054ba50                pgf90_allocated
-                0x000000000054bb0c                __f90_allo_term
-                0x000000000054beba                ftn_deallocate
-                0x000000000054bd02                pgf90_ptr_alloc
-                0x000000000054bad0                ftn_alloc
- *fill*         0x000000000054bff3        0x1 90909090
- .text          0x000000000054bff4      0x9ad /usr/pgi/linux86-64/6.0/lib/libpgf90.a(entry.o)
-                0x000000000054c8aa                __hpf_entry_asend_done
-                0x000000000054c5f2                __hpf_entry_recv
-                0x000000000054c24c                pghpf_line_entry
-                0x000000000054c6e0                __hpf_entry_send_done
-                0x000000000054bff4                __hpf_entry_init
-                0x000000000054c5ad                pghpf_tracecall
-                0x000000000054c970                __hpf_entry_term
-                0x000000000054c68a                __hpf_entry_send
-                0x000000000054c099                pghpf_function_entry
-                0x000000000054c8ec                __hpf_entry_await
-                0x000000000054c92e                __hpf_entry_await_done
-                0x000000000054c276                __hpf_traceback
-                0x000000000054c3fa                __hpf_tracecall
-                0x000000000054c722                __hpf_entry_copy
-                0x000000000054c207                pghpf_function_exit
-                0x000000000054c801                __hpf_entry_arecv_done
-                0x000000000054c3e7                pghpf_traceback
-                0x000000000054c79a                __hpf_entry_arecv
-                0x000000000054c758                __hpf_entry_copy_done
-                0x000000000054c648                __hpf_entry_recv_done
-                0x000000000054c843                __hpf_entry_asend
- *fill*         0x000000000054c9a1        0x3 90909090
- .text          0x000000000054c9a4      0x1d0 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(hpfio.o)
-                0x000000000054cacb                __hpfio_stat_bcst
-                0x000000000054cabb                __hpfio_stat_init
-                0x000000000054c9a4                __hpfio_loop
-                0x000000000054ca11                __hpf_status_init
-                0x000000000054ca21                __hpf_status_bcst
- .text          0x000000000054cb74      0x227 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(hpfio_hpf.o)
-                0x000000000054cc6b                __hpfio_main
- *fill*         0x000000000054cd9b        0x1 90909090
- .text          0x000000000054cd9c      0xeed /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
-                0x000000000054cda3                __hpf_ncpus
-                0x000000000054d055                __hpf_getopt
-                0x000000000054cd9c                __hpf_myprocnum
-                0x000000000054ce33                __hpf_abortp
-                0x000000000054cdb1                __hpf_is_ioproc
-                0x000000000054d86e                __hpf_passargs
-                0x000000000054db22                pghpf_init
-                0x000000000054cdaa                __hpf_getioproc
-                0x000000000054cdc4                __hpf_abort
-                0x000000000054d2a4                __hpf_getoptb
-                0x000000000054dc62                pgf90_compiled
-                0x000000000054ce68                __hpf_exit
-                0x000000000054dc01                __hpf_pull_them_in
-                0x000000000054d734                __hpf_procargs
-                0x000000000054d22c                __hpf_getoptn
-                0x000000000054cf21                __hpf_getenv
- *fill*         0x000000000054dc89        0x3 90909090
- .text          0x000000000054dc8c      0x788 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(malloc.o)
-                0x000000000054dc8c                __hpf_malloc_without_abort
-                0x000000000054dd9c                __hpf_calloc_without_abort
-                0x000000000054de25                __hpf_free
-                0x000000000054e396                __hpf_gmalloc
-                0x000000000054e406                __hpf_gfree
-                0x000000000054e3f8                __hpf_gcalloc
-                0x000000000054dd01                __hpf_realloc
-                0x000000000054ddeb                __hpf_calloc
-                0x000000000054dce4                __hpf_malloc
-                0x000000000054e32d                __hpf_gmalloc_without_abort
-                0x000000000054e3e0                __hpf_gcalloc_without_abort
-                0x000000000054e3d2                __hpf_grealloc
- .text          0x000000000054e414      0xe58 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ptr.o)
-                0x000000000054e463                pghpf_nullify
-                0x000000000054e4e0                pghpf_nullify_char
-                0x000000000054f113                pghpf_associated
-                0x000000000054f233                pgf90_ptrchk
-                0x000000000054ea02                pghpf_ptr_assign
-                0x000000000054ee67                pghpf_ptr_in_char
-                0x000000000054eee6                pghpf_ptr_out
-                0x000000000054f151                pghpf_associated_char
-                0x000000000054f013                __hpf_associated
-                0x000000000054ef95                pghpf_ptr_out_char
-                0x000000000054f261                pgf90_ptrcp
-                0x000000000054f17f                pgf90_subchk
-                0x000000000054eca0                pghpf_ptr_assign_charx
-                0x000000000054ee4a                pghpf_ptr_in
-                0x000000000054f1d7                pgf90_subchk64
-                0x000000000054e54e                pghpf_nullifyx
-                0x000000000054eaf3                pghpf_ptr_assign_char
-                0x000000000054e700                pghpf_ptr_asgn
-                0x000000000054e7e1                pghpf_ptr_asgn_char
-                0x000000000054ebb6                pghpf_ptr_assignx
- .text          0x000000000054f26c     0x30de /usr/pgi/linux86-64/6.0/lib/libpgf90.a(rdst.o)
-                0x00000000005505ff                pghpf_template
-                0x0000000000550fcf                pgf90_template3
-                0x0000000000550391                __hpf_copy_out
-                0x0000000000551bb8                pgf90_copy_f77_argsl
-                0x000000000055184c                pgf90_copy_f77_argw
-                0x000000000054f5e8                pghpf_qopy_in
-                0x00000000005515e3                pghpf_freen
-                0x00000000005512ff                pgf90_template3v
-                0x0000000000551575                pghpf_free
-                0x000000000055145d                pghpf_instance
-                0x00000000005511f6                pgf90_template2v
-                0x0000000000551142                pgf90_template1v
-                0x000000000054f26c                __hpf_stored_alike
-                0x0000000000551dd6                pgf90_copy_f90_arg
-                0x0000000000550eb7                pgf90_template2
-                0x0000000000552086                pgf90_copy_f90_argl
-                0x000000000054f55d                is_nonsequential_section
-                0x000000000055057c                pghpf_check_block_size
-                0x0000000000550dfa                pgf90_template1
-                0x0000000000550556                pghpf_copy_out
-                0x00000000005516a9                pgf90_copy_f77_arg
-                0x0000000000550c2d                pgf90_template
-                0x00000000005519fb                pgf90_copy_f77_argl
- *fill*         0x000000000055234a        0x2 90909090
- .text          0x000000000055234c      0x1ff /usr/pgi/linux86-64/6.0/lib/libpgf90.a(rw.o)
-                0x0000000000552416                __hpf_rrecv
-                0x0000000000552532                __hpf_rbcst
-                0x000000000055234c                __hpf_rrecvl
-                0x0000000000552448                __hpf_rbcstl
-                0x000000000055242f                __hpf_rsend
-                0x00000000005523b1                __hpf_rsendl
- *fill*         0x000000000055254b        0x1 90909090
- .text          0x000000000055254c       0x64 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(version.o)
-                0x000000000055254c                __hpf_print_version
- .text          0x00000000005525b0      0x796 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(xfer.o)
-                0x0000000000552c62                __hpf_chn_prune
-                0x0000000000552c0e                __hpf_getgbuf
-                0x00000000005529bc                __hpf_chain_em_up
-                0x0000000000552652                __hpf_frechn
-                0x000000000055270d                __hpf_rstchn
-                0x0000000000552be8                __hpf_setbase
-                0x00000000005525b0                __hpf_allchn
-                0x0000000000552891                __hpf_recvl
-                0x00000000005529dd                __hpf_adjbase
-                0x0000000000552766                __hpf_sendl
- *fill*         0x0000000000552d46        0x2 90909090
- .text          0x0000000000552d48      0x241 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(stat_linux.o)
-                0x0000000000552d90                __hpf_gettb
-                0x0000000000552d48                __hpf_setarg
-                0x0000000000552f12                __hpf_second
- *fill*         0x0000000000552f89        0x3 90909090
- .text          0x0000000000552f8c      0x9a3 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(allo_i8.o)
-                0x00000000005532e5                __hpf_allocated_i8
-                0x00000000005538ff                __hpf_deallocate_i8
-                0x00000000005533ae                ftn_allocate_i8
-                0x0000000000553602                pgf90_calloc_i8
-                0x000000000055381b                pgf90_dealloc_i8
-                0x00000000005536eb                __hpf_dealloc_i8
-                0x00000000005533f1                ftn_alloc_i8
-                0x0000000000552f8c                __hpf_ptr_aligned_i8
-                0x000000000055308a                pghpf_ptr_offset_i8
-                0x0000000000553664                pgf90_ptr_calloc_i8
-                0x00000000005538e3                pgf90_deallocx_i8
-                0x000000000055338d                pgf90_kallocated_i8
-                0x0000000000553633                pgf90_ptr_alloc_i8
-                0x00000000005536c0                __hpf_local_allocate_i8
-                0x0000000000553917                __hpf_local_deallocate_i8
-                0x0000000000553430                __f90_allo_term_i8
-                0x0000000000553431                pgf90_alloc_i8
-                0x00000000005537f5                ftn_deallocate_i8
-                0x0000000000552fd5                __hpf_ptr_offset_i8
-                0x000000000055336e                pgf90_allocated_i8
-                0x0000000000553808                ftn_dealloc_i8
-                0x0000000000553695                __hpf_allocate_i8
-                0x000000000055334f                ftn_allocated_i8
-                0x00000000005530be                __hpf_alloc_i8
- *fill*         0x000000000055392f        0x1 90909090
- .text          0x0000000000553930      0x2de /usr/pgi/linux86-64/6.0/lib/libpgf90.a(assign.o)
-                0x0000000000553930                __hpfio_assign
- *fill*         0x0000000000553c0e        0x2 90909090
- .text          0x0000000000553c10     0x18d3 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtconv.o)
-                0x00000000005548ef                __hpfio_fmt_e
-                0x0000000000554a17                __hpfio_fmt_f
-                0x0000000000553c28                __hpfio_default_convert
-                0x0000000000554293                __hpfio_fmt_i8
-                0x0000000000554122                __hpfio_fmt_i
-                0x0000000000554585                __hpfio_fmt_d
-                0x0000000000555426                __hpfio_chk_f
-                0x0000000000553c10                __hpfio_printbigreal
-                0x0000000000554677                __hpfio_fmt_g
- *fill*         0x00000000005554e3        0x1 90909090
- .text          0x00000000005554e4      0x359 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtgetnum.o)
-                0x00000000005554e4                __hpfio_getnum
- *fill*         0x000000000055583d        0x3 90909090
- .text          0x0000000000555840     0x13da /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fpcvt.o)
-                0x0000000000556a9d                __hpfio_fcvt
-                0x00000000005569b5                __hpfio_ecvt
-                0x000000000055695a                __hpfio_strtod
- *fill*         0x0000000000556c1a        0x2 90909090
- .text          0x0000000000556c1c       0xcf /usr/pgi/linux86-64/6.0/lib/libpgf90.a(atol.o)
-                0x0000000000556c1c                __hpf_atol
-                0x0000000000556c6a                __hpf_strtol
- *fill*         0x0000000000556ceb        0x1 90909090
- .text          0x0000000000556cec     0x582d /usr/pgi/linux86-64/6.0/lib/libpgf90.a(dist.o)
-                0x0000000000556ee7                pghpf_owner
-                0x000000000055b1d7                pghpf_kuboundaz
-                0x0000000000557a4c                __hpf_defaultproc
-                0x0000000000557ba4                __hpf_set_alignment
-                0x000000000055701e                __hpf_next_owner
-                0x000000000055745d                __hpf_cycle_bounds
-                0x000000000055b031                pghpf_lboundaz
-                0x0000000000557b3d                __hpf_localproc
-                0x000000000055b224                pghpf_size
-                0x0000000000558241                pgf90_sect
-                0x0000000000557e07                __hpf_finish_section
-                0x000000000055acfc                __hpf_copy_descriptor
-                0x0000000000557d88                __hpf_set_section
-                0x0000000000557740                pghpf_localize_bounds
-                0x0000000000559190                pgf90_sect2v
-                0x0000000000556cec                __hpf_new_gen_block
-                0x000000000055a863                pghpf_sect3v
-                0x000000000055b359                pghpf_kshape
-                0x000000000055b29d                pghpf_ksize
-                0x0000000000557508                pghpf_cyclic_loop
-                0x000000000055746c                __hpf_cyclic_loop
-                0x0000000000559d13                pgf90_sect3v
-                0x000000000055b074                pghpf_klbounda
-                0x0000000000557399                pghpf_localize_index
-                0x0000000000556cf2                __hpf_gen_block_bounds
-                0x000000000055b316                pghpf_shape
-                0x000000000055758a                block_setup
-                0x0000000000556fbf                __hpf_describe_replication
-                0x000000000055ae4b                pghpf_lbound
-                0x0000000000557c67                __hpf_finish_descriptor
-                0x0000000000558cb6                pgf90_sect2
-                0x0000000000557cec                __hpf_set_sectionx
-                0x000000000055a350                pghpf_sect3
-                0x000000000055716b                __hpf_localize
-                0x0000000000557c37                __hpf_use_allocation
-                0x000000000055b18e                pghpf_kubounda
-                0x0000000000557c3f                __hpf_set_single
-                0x0000000000556de1                int_mult_upper
-                0x000000000055ad96                pghpf_glextent
-                0x000000000055af81                pghpf_kubound
-                0x000000000055aeb0                pghpf_klbound
-                0x00000000005595ed                pgf90_sect3
-                0x0000000000557941                pghpf_processors
-                0x000000000055b0b7                pghpf_klboundaz
-                0x000000000055afee                pghpf_lbounda
-                0x0000000000556df0                _int_mult_upper
-                0x000000000055723d                __hpf_local_offset
-                0x000000000055b0fc                pghpf_ubounda
-                0x000000000055af16                pghpf_ubound
-                0x0000000000556e02                __hpf_gcd
-                0x0000000000557069                pghpf_islocal_idx
-                0x0000000000557070                __hpf_islocal
-                0x000000000055ad7f                pghpf_extent
-                0x0000000000558729                pgf90_sect1
-                0x00000000005589ff                pgf90_sect1v
-                0x000000000055b39e                __hpf_reverse_array
-                0x0000000000557e2e                pghpf_sect
-                0x0000000000557082                pghpf_islocal
-                0x0000000000557231                pghpf_localize_dim
-                0x000000000055b145                pghpf_uboundaz
-                0x000000000055768e                __hpf_block_loop
-                0x0000000000556eb2                __hpf_lcm
-                0x0000000000556ee1                __hpf_owner
-                0x000000000055764b                pghpf_block_loop
-                0x00000000005572a0                __hpf_local_address
-                0x000000000055ad34                __hpf_inherit_template
-                0x00000000005576e9                __hpf_block_bounds
- *fill*         0x000000000055c519        0x3 90909090
- .text          0x000000000055c51c      0x218 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(comm.o)
-                0x000000000055c55b                __hpf_comm_sked
-                0x000000000055c65f                pghpf_comm_free
-                0x000000000055c59a                pghpf_comm_start
-                0x000000000055c5c7                pghpf_comm_execute
-                0x000000000055c5c6                pghpf_comm_finish
- .text          0x000000000055c734     0x105f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(copy.o)
-                0x000000000055d39a                pghpf_transpose
-                0x000000000055d240                pghpf_copy_section
-                0x000000000055d2ec                pghpf_comm_copy
-                0x000000000055cbed                __hpf_copy
-                0x000000000055d47a                pghpf_copy_scalar
-                0x000000000055d0e0                pghpf_permute_section
-                0x000000000055cb61                copy_setup
- *fill*         0x000000000055d793        0x1 90909090
- .text          0x000000000055d794       0x5a /usr/pgi/linux86-64/6.0/lib/libpgf90_rpm1.a(init_rpm1.o)
-                0x000000000055d7ac                __hpf_endpar
-                0x000000000055d7e9                __hpf_barrier
-                0x000000000055d7eb                pghpf_tid
-                0x000000000055d7ad                __hpf_begpar
-                0x000000000055d7ea                pghpf_barrier
-                0x000000000055d794                __hpf_abortx
- *fill*         0x000000000055d7ee        0x2 90909090
- .text          0x000000000055d7f0       0xc9 /usr/pgi/linux86-64/6.0/lib/libpgf90_rpm1.a(xfer_rpm1.o)
-                0x000000000055d803                __hpf_esend
-                0x000000000055d816                __hpf_ebcopys
-                0x000000000055d7f0                __hpf_erecv
-                0x000000000055d859                __hpf_doit
- *fill*         0x000000000055d8b9        0x3 90909090
- .text          0x000000000055d8bc       0x7a /usr/pgi/linux86-64/6.0/lib/libpgf902.a(cnfg.o)
-                0x000000000055d8bc                __pgget_hpfio_cnfg_default_name
-                0x000000000055d8e2                __hpfio_scratch_name
-                0x000000000055d8c4                __pgget_hpfio_cnfg_true_mask
-                0x000000000055d8d3                __pgget_hpfio_cnfg_ftn_true
-                0x000000000055d8da                __pgget_hpfio_cnfg_ftn_true_addr
-                0x000000000055d8cb                __pgget_hpfio_cnfg_true_mask_addr
- *fill*         0x000000000055d936        0x2 90909090
- .text          0x000000000055d938       0x13 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(bcopy.o)
-                0x000000000055d938                __hpf_bcopy
- *fill*         0x000000000055d94b        0x1 90909090
- .text          0x000000000055d94c      0x3d7 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(bcopys.o)
-                0x000000000055d94c                __hpf_bcopysl
- *fill*         0x000000000055dd23        0x1 90909090
- .text          0x000000000055dd24      0x183 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(buffer.o)
-                0x000000000055de53                __hpf_zwrite
-                0x000000000055de8e                __hpf_zclose
-                0x000000000055dd24                __hpf_zopen
-                0x000000000055de87                __hpf_ztell
- *fill*         0x000000000055dea7        0x1 90909090
- .text          0x000000000055dea8      0x28b /usr/pgi/linux86-64/6.0/lib/libpgf902.a(chn1t1.o)
-                0x000000000055dea8                __hpf_chn_1to1
- *fill*         0x000000000055e133        0x1 90909090
- .text          0x000000000055e134      0x166 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-                0x000000000055e134                __hpf_init_consts
- *fill*         0x000000000055e29a        0x2 90909090
- .text          0x000000000055e29c       0x10 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(cprof.o)
-                0x000000000055e29c                __hpf_prof_init
-                0x000000000055e2a8                __hpf_prof_copy
-                0x000000000055e2a7                __hpf_prof_send_done
-                0x000000000055e2a2                __hpf_prof_function_entry
-                0x000000000055e2a9                __hpf_prof_copy_done
-                0x000000000055e2aa                __hpf_prof_function_exit
-                0x000000000055e2a6                __hpf_prof_send
-                0x000000000055e2a4                __hpf_prof_recv
-                0x000000000055e2a3                __hpf_prof_line_entry
-                0x000000000055e2a5                __hpf_prof_recv_done
-                0x000000000055e2ab                __hpf_prof_term
- .text          0x000000000055e2ac        0x6 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(cprof2.o)
-                0x000000000055e2af                __hpf_prof_asend_done
-                0x000000000055e2b1                __hpf_prof_await_done
-                0x000000000055e2ac                __hpf_prof_arecv
-                0x000000000055e2ae                __hpf_prof_asend
-                0x000000000055e2ad                __hpf_prof_arecv_done
-                0x000000000055e2b0                __hpf_prof_await
- *fill*         0x000000000055e2b2        0x2 90909090
- .text          0x000000000055e2b4      0x17e /usr/pgi/linux86-64/6.0/lib/libpgf902.a(genlist.o)
-                0x000000000055e384                __hpf_genlist
-                0x000000000055e2b4                __hpf_initndx
-                0x000000000055e34f                __hpf_findndx
- *fill*         0x000000000055e432        0x2 90909090
- .text          0x000000000055e434      0x1b7 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(hand.o)
-                0x000000000055e434                __hpf_psignal
-                0x000000000055e530                __hpf_sethand
- *fill*         0x000000000055e5eb        0x1 90909090
- .text          0x000000000055e5ec      0xea6 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(stat.o)
-                0x000000000055f3a4                __hpf_stat_recv_done
-                0x000000000055f403                __hpf_stat_arecv
-                0x000000000055e63a                __hpf_stat_init
-                0x000000000055f490                __hpf_stat_line_entry
-                0x000000000055f3d3                __hpf_stat_send_done
-                0x000000000055f462                __hpf_stat_await_done
-                0x000000000055e5ec                pghpf_times
-                0x000000000055f376                __hpf_stat_recv
-                0x000000000055f432                __hpf_stat_asend
-                0x000000000055f3a5                __hpf_stat_send
-                0x000000000055f1da                __hpf_stat_term
-                0x000000000055f461                __hpf_stat_await
-                0x000000000055f3d4                __hpf_stat_copy
-                0x000000000055f460                __hpf_stat_asend_done
-                0x000000000055f491                __hpf_stat_function_exit
-                0x000000000055f431                __hpf_stat_arecv_done
-                0x000000000055f463                pghpf_msgstats
-                0x000000000055f402                __hpf_stat_copy_done
-                0x000000000055f48f                __hpf_stat_function_entry
- *fill*         0x000000000055f492        0x2 90909090
- .text          0x000000000055f494       0xec /usr/pgi/linux86-64/6.0/lib/libpgf902.a(trace.o)
-                0x000000000055f571                __hpf_trac_line_entry
-                0x000000000055f575                __hpf_trac_send_done
-                0x000000000055f57f                __hpf_trac_term
-                0x000000000055f573                __hpf_trac_recv_done
-                0x000000000055f577                __hpf_trac_copy_done
-                0x000000000055f578                __hpf_trac_function_exit
-                0x000000000055f576                __hpf_trac_copy
-                0x000000000055f511                __hpf_trac_function_entry
-                0x000000000055f574                __hpf_trac_send
-                0x000000000055f572                __hpf_trac_recv
-                0x000000000055f494                __hpf_trac_init
- .text          0x000000000055f580        0x6 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(trace2.o)
-                0x000000000055f584                __hpf_trac_await
-                0x000000000055f581                __hpf_trac_arecv_done
-                0x000000000055f585                __hpf_trac_await_done
-                0x000000000055f583                __hpf_trac_asend_done
-                0x000000000055f580                __hpf_trac_arecv
-                0x000000000055f582                __hpf_trac_asend
- *fill*         0x000000000055f586        0x2 90909090
- .text          0x000000000055f588       0x1c /usr/pgi/linux86-64/6.0/lib/libpgf902.a(xfer_heap_dum.o)
-                0x000000000055f59e                __hpf_hrecv
-                0x000000000055f597                __hpf_hinit
-                0x000000000055f588                __hpf_sbrk
-                0x000000000055f598                __hpf_hsend
-                0x000000000055f596                __hpf_verghp
- .text          0x000000000055f5a4        0xe /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(dacos.o)
-                0x000000000055f5a4                __mth_i_dacos
- *fill*         0x000000000055f5b2        0x2 90909090
- .text          0x000000000055f5b4      0x4f2 /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(ftncharsup.o)
-                0x000000000055f9f9                ftn_str_malloc
-                0x000000000055f85f                ftn_str_index
-                0x000000000055f5b4                ftn_str_copy
-                0x000000000055fa89                ftn_str_free
-                0x000000000055f8ca                ftn_strcmp
- *fill*         0x000000000055faa6        0x2 90909090
- .text          0x000000000055faa8       0x22 /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(flush3f.o)
-                0x000000000055faa8                flush_
- *fill*         0x000000000055faca        0x2 90909090
- .text          0x000000000055facc       0x67 /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(getenv3f.o)
-                0x000000000055facc                getenv_
- *fill*         0x000000000055fb33        0x1 90909090
- .text          0x000000000055fb34       0x53 /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(fdate3f.o)
-                0x000000000055fb34                fdate_
- *fill*         0x000000000055fb87        0x1 90909090
- .text          0x000000000055fb88       0x8c /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(getarg3f.o)
-                0x000000000055fc13                pgftn_arg_init
-                0x000000000055fb88                getarg_
-                0x000000000055fbfe                iargc_
- .text          0x000000000055fc14      0x3f1 /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(cvt.o)
-                0x000000000055ffd1                fcvt
-                0x000000000055ff9d                ecvt
- *fill*         0x0000000000560005        0x3 90909090
- .text          0x0000000000560008      0x135 /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(utils3f.o)
-                0x000000000056005d                __cstr_free
-                0x0000000000560070                __fcp_cstr
-                0x0000000000560008                __fstr2cstr
-                0x00000000005600ae                __isatty3f
-                0x00000000005600f7                __getfile3f
- *fill*         0x000000000056013d        0x3 90909090
- .text          0x0000000000560140      0x80c /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(utils.o)
-                0x0000000000560810                __fio_swap_bytes
-                0x000000000056078f                __fio_putwchar
-                0x00000000005601b9                __fio_free_fcb
-                0x000000000056072d                __fio_num_euc
-                0x000000000056051c                __fio_zeropad
-                0x0000000000560683                __fio_euc2wchar
-                0x00000000005601ff                __fio_rwinit
-                0x00000000005604fd                __fio_find_unit
-                0x0000000000560140                __fio_alloc_fcb
-                0x0000000000560591                __fio_eq_str
-                0x00000000005605fa                __fio_wchar2euc
- .text          0x000000000056094c      0x86f /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(error.o)
-                0x000000000056094c                __fio_errinit
-                0x00000000005609cc                __fio_error
-                0x0000000000560bda                __fio_errmsg
-                0x0000000000561186                __fio_check_format
-                0x0000000000560f1f                fio_src_info
-                0x0000000000560c75                __fio_eoferr
- *fill*         0x00000000005611bb        0x1 90909090
- .text          0x00000000005611bc       0x58 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(ftnexit.o)
-                0x00000000005611bc                ftn_exit
- .text          0x0000000000561214      0xb47 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(open.o)
-                0x0000000000561214                fio_open
-                0x00000000005615df                __fio_open
-                0x0000000000561b7e                fio_nopen
-                0x0000000000561ca5                fio_open_cvt
- *fill*         0x0000000000561d5b        0x1 90909090
- .text          0x0000000000561d5c      0x1c0 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(close.o)
-                0x0000000000561e5d                __fio_close
-                0x0000000000561d5c                fio_close
- .text          0x0000000000561f1c       0x90 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(cnfg.o)
-                0x0000000000561f1c                __fio_scratch_name
- .text          0x0000000000561fac        0x1 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(pgdummy.o)
-                0x0000000000561fac                __pc_set_tmp
- *fill*         0x0000000000561fad        0x3 90909090
- .text          0x0000000000561fb0       0x99 /usr/lib64/libc_nonshared.a(elf-init.oS)
-                0x0000000000562010                __libc_csu_fini
-                0x0000000000561fb0                __libc_csu_init
- *fill*         0x0000000000562049        0x7 90909090
- .text          0x0000000000562050       0x18 /usr/lib64/libc_nonshared.a(atexit.oS)
-                0x0000000000562050                atexit
- *fill*         0x0000000000562068        0x8 90909090
- .text          0x0000000000562070      0x12e /usr/pgi/linux86-64/6.0/lib/libnspgc.a(pgdbg_utils.o)
-                0x0000000000562100                __set_xmmreg
-                0x0000000000562190                __pgdbg_stub
-                0x0000000000562070                __get_xmmreg
- *fill*         0x000000000056219e        0x2 90909090
- .text          0x00000000005621a0     0x16f7 /usr/pgi/linux86-64/6.0/lib/libpgc.a(mthi64.o)
-                0x00000000005637e6                __utl_i_dflt64
-                0x00000000005621a0                __utl_i_add64
-                0x000000000056385a                __utl_i_flt64
-                0x00000000005637af                __utl_i_dfix64
-                0x00000000005624f5                __utl_i_udiv64
-                0x00000000005622a9                __utl_i_mul64
-                0x000000000056230a                __utl_i_div64
-                0x000000000056381d                __utl_i_fix64
-                0x0000000000562220                __utl_i_sub64
- *fill*         0x0000000000563897        0x1 90909090
- .text          0x0000000000563898       0x84 /usr/pgi/linux86-64/6.0/lib/libpgc.a(dpowi.o)
-                0x0000000000563898                __mth_i_dpowi
- *fill*         0x000000000056391c        0x4 90909090
- .text          0x0000000000563920       0x26 /usr/pgi/linux86-64/6.0/lib/libpgc.a(dfloatuk.o)
-                0x0000000000563920                __mth_i_dfloatuk
- *fill*         0x0000000000563946        0xa 90909090
- .text          0x0000000000563950       0x5c /usr/pgi/linux86-64/6.0/lib/libpgc.a(dint.o)
-                0x0000000000563950                __mth_i_dint
- .text          0x00000000005639ac      0x1fa /usr/pgi/linux86-64/6.0/lib/libpgc.a(pgstdinit.o)
-                0x00000000005639ac                __pgio_environ
-                0x0000000000563b44                __pgio_fwrite
-                0x0000000000563a89                __pgio_ferror
-                0x0000000000563acb                __pgio_binary_mode
-                0x0000000000563a72                __pgio_feof
-                0x00000000005639b9                __pgio_errno
-                0x0000000000563ab1                __pgio_isatty
-                0x0000000000563aa0                __pgio_getfd
-                0x0000000000563a1e                __pgio_putc
-                0x0000000000563b73                __pgio_timezone
-                0x00000000005639fa                __pgio_stderr
-                0x00000000005639e0                __pgio_stdin
-                0x0000000000563a46                __pgio_putchar
-                0x0000000000563a3b                __pgio_getchar
-                0x00000000005639c6                __pgio_set_errno
-                0x0000000000563ada                __pgio_ispipe
-                0x0000000000563a5b                __pgio_clearerr
-                0x0000000000563a07                __pgio_getc
-                0x00000000005639ed                __pgio_stdout
- *fill*         0x0000000000563ba6        0x2 90909090
- .text          0x0000000000563ba8       0xfc /usr/pgi/linux86-64/6.0/lib/libpgc.a(mpmalloc.o)
-                0x0000000000563c2a                _mp_realloc
-                0x0000000000563be5                _mp_calloc
-                0x0000000000563ba8                _mp_malloc
-                0x0000000000563c6f                _mp_free
- .text          0x0000000000563ca4       0x2e /usr/pgi/linux86-64/6.0/lib/libpgc.a(rtcrit.o)
-                0x0000000000563cbd                _mp_ecs_stdio
-                0x0000000000563ca4                _mp_bcs_stdio
- *fill*         0x0000000000563cd2        0x2 90909090
- .text          0x0000000000563cd4      0x257 /usr/pgi/linux86-64/6.0/lib/libpgc.a(pgtempnam.o)
-                0x0000000000563ee7                __pgio_tempnam
- *fill*         0x0000000000563f2b        0x1 90909090
- .text          0x0000000000563f2c      0x660 /usr/pgi/linux86-64/6.0/lib/libpgc.a(va_arg.o)
-                0x00000000005642df                __builtin_va_memarg
-                0x000000000056434e                __builtin_va_genarg
-                0x000000000056419d                __builtin_va_fparg1
-                0x0000000000564067                __builtin_va_gparg1
-                0x0000000000564212                __builtin_va_fpargs
-                0x00000000005640d6                __builtin_va_gpargs
-                0x0000000000563f2c                dmp_va_list
- .text          0x000000000056458c       0x40 /usr/pgi/linux86-64/6.0/lib/libpgc.a(pgargs.o)
-                0x000000000056458c                __pgio_get_argv
-                0x00000000005645ba                __pgio_set_argc
-                0x00000000005645ae                __pgio_get_argc
-                0x0000000000564599                __pgio_set_argv
- *fill*         0x00000000005645cc        0x4 90909090
- .text          0x00000000005645d0     0x217a /usr/pgi/linux86-64/6.0/lib/libpgc.a(dsincosp.o)
-                0x00000000005645d0                __mth_dsincos
-                0x0000000000565510                __mth_i_dsin
-                0x0000000000565bd0                __mth_i_dcos
- *fill*         0x000000000056674a        0x6 90909090
- .text          0x0000000000566750      0xa5f /usr/pgi/linux86-64/6.0/lib/libpgc.a(dtan.o)
-                0x0000000000566750                __mth_i_dtan
- *fill*         0x00000000005671af        0x1 90909090
- .text          0x00000000005671b0      0x2be /usr/pgi/linux86-64/6.0/lib/libpgc.a(datan.o)
-                0x00000000005671b0                __mth_i_datan
- *fill*         0x000000000056746e        0x2 90909090
- .text          0x0000000000567470     0x33fc /usr/pgi/linux86-64/6.0/lib/libpgc.a(fastmath.o)
-                0x0000000000568480                __fmth_i_exp
-                0x0000000000568ba0                __fmth_i_dlog
-                0x0000000000567f50                __fmth_i_dexp
-                0x0000000000568570                __fvsexp
-                0x000000000056a6a0                __fmth_i_alog
-                0x0000000000567a20                __fmth_i_dpowd
-                0x0000000000567910                __fvdpow
-                0x0000000000569bd0                __fvslog
-                0x0000000000567580                __fmth_i_rpowr
-                0x00000000005682e0                __fvdexp
-                0x0000000000567470                __fvspow
-                0x0000000000569380                __fvdlog
- *fill*         0x000000000056a86c        0x4 90909090
- .text          0x000000000056a870       0x54 /usr/pgi/linux86-64/6.0/lib/libpgc.a(crit_dum.o)
-                0x000000000056a890                _mp_p
-                0x000000000056a880                _mp_ecs
-                0x000000000056a870                _mp_bcs
-                0x000000000056a8a0                _mp_v
-                0x000000000056a8c0                _mp_incr
-                0x000000000056a8b0                _mp_ptest
- *fill*         0x000000000056a8c4        0xc 90909090
- .text          0x000000000056a8d0        0xf /usr/lib64/libc_nonshared.a(fstat.oS)
-                0x000000000056a8d0                fstat
-                0x000000000056a8d0                __fstat
- *fill*         0x000000000056a8df        0x1 90909090
- .text          0x000000000056a8e0       0x36 /usr/lib/gcc/x86_64-redhat-linux/3.4.2/crtend.o
- *fill*         0x000000000056a916        0x2 90909090
- *(.text.*personality*)
- *(.gnu.warning)
-
-.fini           0x000000000056a918        0xe
- *(.fini)
- .fini          0x000000000056a918        0x4 /usr/lib64/crti.o
-                0x000000000056a918                _fini
- .fini          0x000000000056a91c        0x5 /usr/lib/gcc/x86_64-redhat-linux/3.4.2/crtbegin.o
- .fini          0x000000000056a921        0x5 /usr/lib64/crtn.o
-                0x000000000056a926                PROVIDE (__etext, .)
-                0x000000000056a926                PROVIDE (_etext, .)
-                0x000000000056a926                PROVIDE (etext, .)
-
-.rodata         0x000000000056a940     0x5560
- *(.rodata .rodata.* .gnu.linkonce.r.*)
- .rodata        0x000000000056a940        0x4 /usr/lib64/crt1.o
-                0x000000000056a940                _IO_stdin_used
- .rodata        0x000000000056a944        0x3 proc_proc.o
- .rodata.str1.1
-                0x000000000056a947       0x17 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(close.o)
- *fill*         0x000000000056a95e        0x2 00
- .rodata        0x000000000056a960      0x390 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(encodefmt.o)
- .rodata.str1.1
-                0x000000000056acf0      0x2f3 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(error.o)
-                                        0x2f7 (size before relaxing)
- *fill*         0x000000000056afe3       0x1d 00
- .rodata.str1.32
-                0x000000000056b000     0x127f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(error.o)
- *fill*         0x000000000056c27f        0x1 00
- .rodata        0x000000000056c280       0x31 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(error.o)
- .rodata.str1.1
-                0x000000000056c2b1        0x3 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtread.o)
-                                         0x12 (size before relaxing)
- *fill*         0x000000000056c2b4        0x4 00
- .rodata        0x000000000056c2b8      0x634 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtread.o)
- .rodata.str1.1
-                0x000000000056c8ec        0x8 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtwrite.o)
-                                         0x21 (size before relaxing)
- *fill*         0x000000000056c8f4        0x4 00
- .rodata        0x000000000056c8f8      0x4e0 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtwrite.o)
- .rodata.str1.1
-                0x000000000056cdd8       0x51 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ftnexit.o)
-                                         0x57 (size before relaxing)
- *fill*         0x000000000056ce29       0x17 00
- .rodata.str1.32
-                0x000000000056ce40       0x36 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ftnexit.o)
- .rodata.str1.1
-                0x000000000056ce76       0x13 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ldread.o)
- *fill*         0x000000000056ce89        0x7 00
- .rodata        0x000000000056ce90      0x4e8 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ldread.o)
- .rodata.str1.1
-                0x000000000056d378       0x1d /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ldwrite.o)
-                                         0x35 (size before relaxing)
- .rodata.str1.1
-                0x000000000056d395       0xbe /usr/pgi/linux86-64/6.0/lib/libpgf90.a(open.o)
-                                         0xea (size before relaxing)
- .rodata.str1.1
-                0x000000000056d453        0x0 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(rewind.o)
-                                          0x7 (size before relaxing)
- .rodata.str1.1
-                0x000000000056d453       0x23 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(unf.o)
- *fill*         0x000000000056d476        0xa 00
- .rodata.str1.32
-                0x000000000056d480       0x67 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(allo.o)
- .rodata.str1.1
-                0x000000000056d4e7       0x43 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(entry.o)
- .rodata.str1.1
-                0x000000000056d52a       0xca /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
-                                         0xde (size before relaxing)
- *fill*         0x000000000056d5f4        0xc 00
- .rodata.str1.32
-                0x000000000056d600       0xa0 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
- .rodata.str1.32
-                0x000000000056d6a0       0xaf /usr/pgi/linux86-64/6.0/lib/libpgf90.a(malloc.o)
- .rodata.str1.1
-                0x000000000056d74f        0xe /usr/pgi/linux86-64/6.0/lib/libpgf90.a(malloc.o)
- *fill*         0x000000000056d75d        0x3 00
- .rodata.str1.32
-                0x000000000056d760      0x30f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ptr.o)
- .rodata.str1.1
-                0x000000000056da6f       0xa9 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ptr.o)
- .rodata.str1.1
-                0x000000000056db18       0x59 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(rdst.o)
-                                         0x5d (size before relaxing)
- *fill*         0x000000000056db71        0xf 00
- .rodata.str1.32
-                0x000000000056db80      0x503 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(rdst.o)
- .rodata.str1.1
-                0x000000000056e083       0x32 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(version.o)
-                                         0x36 (size before relaxing)
- *fill*         0x000000000056e0b5        0xb 00
- .rodata.str1.32
-                0x000000000056e0c0       0x88 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(version.o)
- *fill*         0x000000000056e148       0x18 00
- .rodata.str1.32
-                0x000000000056e160       0x22 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(xfer.o)
- *fill*         0x000000000056e182        0x6 00
- .rodata.cst8   0x000000000056e188       0x10 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(stat_linux.o)
-                                         0x18 (size before relaxing)
- .rodata.str1.1
-                0x000000000056e198        0xd /usr/pgi/linux86-64/6.0/lib/libpgf90.a(stat_linux.o)
- .rodata.str1.32
-                0x000000000056e1a5        0x0 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(allo_i8.o)
-                                         0x67 (size before relaxing)
- *fill*         0x000000000056e1a5        0x3 00
- .rodata        0x000000000056e1a8      0x2d8 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(assign.o)
- .rodata.str1.1
-                0x000000000056e480       0x41 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtconv.o)
-                                         0x47 (size before relaxing)
- *fill*         0x000000000056e4c1        0x7 00
- .rodata        0x000000000056e4c8       0xc8 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtconv.o)
- .rodata.cst8   0x000000000056e590        0x0 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtconv.o)
-                                          0x8 (size before relaxing)
- .rodata.str1.1
-                0x000000000056e590        0xb /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fpcvt.o)
- *fill*         0x000000000056e59b        0x5 00
- .rodata        0x000000000056e5a0      0x270 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(atol.o)
- *fill*         0x000000000056e810       0x10 00
- .rodata.str1.32
-                0x000000000056e820      0x332 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(dist.o)
- .rodata.str1.1
-                0x000000000056eb52       0x54 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(dist.o)
- *fill*         0x000000000056eba6        0x2 00
- .rodata        0x000000000056eba8       0xc0 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(dist.o)
- *fill*         0x000000000056ec68       0x18 00
- .rodata.str1.32
-                0x000000000056ec80       0x5f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(comm.o)
- .rodata.str1.1
-                0x000000000056ecdf       0xb3 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(copy.o)
- *fill*         0x000000000056ed92        0xe 00
- .rodata.str1.32
-                0x000000000056eda0      0x4a7 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(copy.o)
- .rodata.str1.1
-                0x000000000056f247        0x0 /usr/pgi/linux86-64/6.0/lib/libpgf90_rpm1.a(init_rpm1.o)
-                                          0x5 (size before relaxing)
- .rodata.str1.1
-                0x000000000056f247       0x3a /usr/pgi/linux86-64/6.0/lib/libpgf90_rpm1.a(xfer_rpm1.o)
- *fill*         0x000000000056f281       0x1f 00
- .rodata.str1.32
-                0x000000000056f2a0       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90_rpm1.a(xfer_rpm1.o)
- .rodata.str1.1
-                0x000000000056f2bf        0xc /usr/pgi/linux86-64/6.0/lib/libpgf902.a(cnfg.o)
- .rodata.str1.1
-                0x000000000056f2cb       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf902.a(buffer.o)
- .rodata.str1.1
-                0x000000000056f2ea      0x115 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-                                        0x13f (size before relaxing)
- .rodata.str1.1
-                0x000000000056f3ff       0x87 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(hand.o)
-                                         0x8f (size before relaxing)
- *fill*         0x000000000056f486       0x1a 00
- .rodata.str1.32
-                0x000000000056f4a0       0x61 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(hand.o)
- .rodata.str1.1
-                0x000000000056f501       0x57 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(stat.o)
-                                         0x59 (size before relaxing)
- .rodata.cst8   0x000000000056f558       0x28 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(stat.o)
-                                         0x70 (size before relaxing)
- .rodata.str1.32
-                0x000000000056f580      0x34f /usr/pgi/linux86-64/6.0/lib/libpgf902.a(stat.o)
- .rodata.str1.1
-                0x000000000056f8cf       0x20 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(trace.o)
- *fill*         0x000000000056f8ef       0x11 00
- .rodata.str1.32
-                0x000000000056f900       0x31 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(trace.o)
- *fill*         0x000000000056f931        0xf 00
- .rodata.str1.32
-                0x000000000056f940       0x39 /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(ftncharsup.o)
- *fill*         0x000000000056f979        0x7 00
- .rodata        0x000000000056f980       0x30 /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(cvt.o)
- .rodata.str1.1
-                0x000000000056f9b0       0x12 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(error.o)
-                                        0x309 (size before relaxing)
- *fill*         0x000000000056f9c2       0x1e 00
- .rodata.str1.32
-                0x000000000056f9e0       0x4f /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(error.o)
-                                       0x11ff (size before relaxing)
- *fill*         0x000000000056fa2f       0x11 00
- .rodata        0x000000000056fa40       0x31 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(error.o)
- .rodata.str1.1
-                0x000000000056fa71        0xb /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(open.o)
-                                         0xaf (size before relaxing)
- .rodata.str1.1
-                0x000000000056fa7c        0x0 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(close.o)
-                                         0x17 (size before relaxing)
- .rodata.str1.1
-                0x000000000056fa7c       0x11 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(cnfg.o)
-                                         0x1d (size before relaxing)
- *fill*         0x000000000056fa8d        0x3 00
- .rodata        0x000000000056fa90        0x8 /usr/pgi/linux86-64/6.0/lib/libpgc.a(dpowi.o)
- .rodata        0x000000000056fa98       0x12 /usr/pgi/linux86-64/6.0/lib/libpgc.a(pgtempnam.o)
- *fill*         0x000000000056faaa        0x6 00
- .rodata        0x000000000056fab0       0x90 /usr/pgi/linux86-64/6.0/lib/libpgc.a(va_arg.o)
- .rodata        0x000000000056fb40      0x128 /usr/pgi/linux86-64/6.0/lib/libpgc.a(dsincosp.o)
- .rodata.cst8   0x000000000056fc68       0xe0 /usr/pgi/linux86-64/6.0/lib/libpgc.a(dsincosp.o)
-                                        0x278 (size before relaxing)
- .rodata        0x000000000056fd48       0x68 /usr/pgi/linux86-64/6.0/lib/libpgc.a(dtan.o)
- .rodata.cst8   0x000000000056fdb0       0x68 /usr/pgi/linux86-64/6.0/lib/libpgc.a(dtan.o)
-                                         0xf8 (size before relaxing)
- .rodata.cst8   0x000000000056fe18       0x88 /usr/pgi/linux86-64/6.0/lib/libpgc.a(datan.o)
-                                         0xc8 (size before relaxing)
-
-.rodata1
- *(.rodata1)
-
-.eh_frame_hdr
- *(.eh_frame_hdr)
-
-.eh_frame
- *(.eh_frame)
-
-.gcc_except_table
- *(.gcc_except_table)
- *(.gcc_except_table.*)
-                0x000000000056fea0                . = (ALIGN (0x100000) - ((0x100000 - .) & 0xfffff))
-                0x0000000000670000                . = (0x100000 DATA_SEGMENT_ALIGN 0x1000)
-
-.eh_frame       0x0000000000670000     0x6d2c
- *(.eh_frame)
- .eh_frame      0x0000000000670000       0x38 /usr/pgi/linux86-64/6.0/lib/f90main.o
- .eh_frame      0x0000000000670038       0x80 proc_proc.o
-                                         0x98 (size before relaxing)
- .eh_frame      0x00000000006700b8       0xb8 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(close.o)
-                                         0xd0 (size before relaxing)
- .eh_frame      0x0000000000670170      0x100 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(desc.o)
-                                        0x118 (size before relaxing)
- .eh_frame      0x0000000000670270      0x1c8 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(encodefmt.o)
-                                        0x1e0 (size before relaxing)
- .eh_frame      0x0000000000670438      0x168 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(error.o)
-                                        0x180 (size before relaxing)
- .eh_frame      0x00000000006705a0      0x580 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtread.o)
-                                        0x598 (size before relaxing)
- .eh_frame      0x0000000000670b20      0x588 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtwrite.o)
-                                        0x5a0 (size before relaxing)
- .eh_frame      0x00000000006710a8      0x108 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ftnexit.o)
-                                        0x120 (size before relaxing)
- .eh_frame      0x00000000006711b0      0x3c8 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ldread.o)
-                                        0x3e0 (size before relaxing)
- .eh_frame      0x0000000000671578      0x290 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ldwrite.o)
-                                        0x2a8 (size before relaxing)
- .eh_frame      0x0000000000671808      0x138 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(open.o)
-                                        0x150 (size before relaxing)
- .eh_frame      0x0000000000671940       0x68 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(rewind.o)
-                                         0x80 (size before relaxing)
- .eh_frame      0x00000000006719a8      0x4c0 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(unf.o)
-                                        0x4d8 (size before relaxing)
- .eh_frame      0x0000000000671e68      0x108 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(utils.o)
-                                        0x120 (size before relaxing)
- .eh_frame      0x0000000000671f70      0x108 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(utilsi64.o)
-                                        0x120 (size before relaxing)
- .eh_frame      0x0000000000672078      0x320 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(allo.o)
-                                        0x338 (size before relaxing)
- .eh_frame      0x0000000000672398      0x300 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(entry.o)
-                                        0x318 (size before relaxing)
- .eh_frame      0x0000000000672698       0xa0 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(hpfio.o)
-                                         0xb8 (size before relaxing)
- .eh_frame      0x0000000000672738       0x78 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(hpfio_hpf.o)
-                                         0x90 (size before relaxing)
- .eh_frame      0x00000000006727b0      0x368 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
-                                        0x380 (size before relaxing)
- .eh_frame      0x0000000000672b18      0x260 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(malloc.o)
-                                        0x278 (size before relaxing)
- .eh_frame      0x0000000000672d78      0x3e0 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ptr.o)
-                                        0x3f8 (size before relaxing)
- .eh_frame      0x0000000000673158      0x4d0 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(rdst.o)
-                                        0x4e8 (size before relaxing)
- .eh_frame      0x0000000000673628       0xd0 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(rw.o)
-                                         0xe8 (size before relaxing)
- .eh_frame      0x00000000006736f8       0x20 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(version.o)
-                                         0x38 (size before relaxing)
- .eh_frame      0x0000000000673718      0x198 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(xfer.o)
-                                        0x1b0 (size before relaxing)
- .eh_frame      0x00000000006738b0       0x88 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(stat_linux.o)
-                                         0xa0 (size before relaxing)
- .eh_frame      0x0000000000673938      0x320 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(allo_i8.o)
-                                        0x338 (size before relaxing)
- .eh_frame      0x0000000000673c58       0x88 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(assign.o)
-                                         0xa0 (size before relaxing)
- .eh_frame      0x0000000000673ce0      0x370 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtconv.o)
-                                        0x388 (size before relaxing)
- .eh_frame      0x0000000000674050       0x40 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtgetnum.o)
-                                         0x58 (size before relaxing)
- .eh_frame      0x0000000000674090      0x320 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fpcvt.o)
-                                        0x338 (size before relaxing)
- .eh_frame      0x00000000006743b0       0x40 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(atol.o)
-                                         0x58 (size before relaxing)
- .eh_frame      0x00000000006743f0      0xa68 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(dist.o)
-                                        0xa80 (size before relaxing)
- .eh_frame      0x0000000000674e58       0xe8 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(comm.o)
-                                        0x100 (size before relaxing)
- .eh_frame      0x0000000000674f40      0x228 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(copy.o)
-                                        0x240 (size before relaxing)
- .eh_frame      0x0000000000675168       0xa0 /usr/pgi/linux86-64/6.0/lib/libpgf90_rpm1.a(init_rpm1.o)
-                                         0xb8 (size before relaxing)
- .eh_frame      0x0000000000675208       0x90 /usr/pgi/linux86-64/6.0/lib/libpgf90_rpm1.a(xfer_rpm1.o)
-                                         0xa8 (size before relaxing)
- .eh_frame      0x0000000000675298       0x98 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(cnfg.o)
-                                         0xb0 (size before relaxing)
- .eh_frame      0x0000000000675330       0x20 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(bcopy.o)
-                                         0x38 (size before relaxing)
- .eh_frame      0x0000000000675350       0x28 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(bcopys.o)
-                                         0x40 (size before relaxing)
- .eh_frame      0x0000000000675378       0x80 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(buffer.o)
-                                         0x98 (size before relaxing)
- .eh_frame      0x00000000006753f8       0x40 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(chn1t1.o)
-                                         0x58 (size before relaxing)
- .eh_frame      0x0000000000675438       0x28 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-                                         0x40 (size before relaxing)
- .eh_frame      0x0000000000675460      0x108 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(cprof.o)
-                                        0x120 (size before relaxing)
- .eh_frame      0x0000000000675568       0x90 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(cprof2.o)
-                                         0xa8 (size before relaxing)
- .eh_frame      0x00000000006755f8       0x68 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(genlist.o)
-                                         0x80 (size before relaxing)
- .eh_frame      0x0000000000675660       0x68 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(hand.o)
-                                         0x80 (size before relaxing)
- .eh_frame      0x00000000006756c8      0x2e0 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(stat.o)
-                                        0x2f8 (size before relaxing)
- .eh_frame      0x00000000006759a8      0x118 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(trace.o)
-                                        0x130 (size before relaxing)
- .eh_frame      0x0000000000675ac0       0x90 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(trace2.o)
-                                         0xa8 (size before relaxing)
- .eh_frame      0x0000000000675b50       0x80 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(xfer_heap_dum.o)
-                                         0x98 (size before relaxing)
- .eh_frame      0x0000000000675bd0       0x20 /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(dacos.o)
-                                         0x38 (size before relaxing)
- .eh_frame      0x0000000000675bf0       0xc0 /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(ftncharsup.o)
-                                         0xd8 (size before relaxing)
- .eh_frame      0x0000000000675cb0       0x20 /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(flush3f.o)
-                                         0x38 (size before relaxing)
- .eh_frame      0x0000000000675cd0       0x28 /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(getenv3f.o)
-                                         0x40 (size before relaxing)
- .eh_frame      0x0000000000675cf8       0x28 /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(fdate3f.o)
-                                         0x40 (size before relaxing)
- .eh_frame      0x0000000000675d20       0x60 /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(getarg3f.o)
-                                         0x78 (size before relaxing)
- .eh_frame      0x0000000000675d80       0x80 /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(cvt.o)
-                                         0x98 (size before relaxing)
- .eh_frame      0x0000000000675e00       0xa0 /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(utils3f.o)
-                                         0xb8 (size before relaxing)
- .eh_frame      0x0000000000675ea0      0x168 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(utils.o)
-                                        0x180 (size before relaxing)
- .eh_frame      0x0000000000676008      0x118 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(error.o)
-                                        0x130 (size before relaxing)
- .eh_frame      0x0000000000676120       0x20 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(ftnexit.o)
-                                         0x38 (size before relaxing)
- .eh_frame      0x0000000000676140       0xe0 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(open.o)
-                                         0xf8 (size before relaxing)
- .eh_frame      0x0000000000676220       0x48 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(close.o)
-                                         0x60 (size before relaxing)
- .eh_frame      0x0000000000676268       0x20 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(cnfg.o)
-                                         0x38 (size before relaxing)
- .eh_frame      0x0000000000676288       0x18 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(pgdummy.o)
-                                         0x30 (size before relaxing)
- .eh_frame      0x00000000006762a0       0x58 /usr/lib64/libc_nonshared.a(elf-init.oS)
- .eh_frame      0x00000000006762f8       0x18 /usr/lib64/libc_nonshared.a(atexit.oS)
-                                         0x30 (size before relaxing)
- .eh_frame      0x0000000000676310      0x388 /usr/pgi/linux86-64/6.0/lib/libpgc.a(mthi64.o)
- .eh_frame      0x0000000000676698       0x20 /usr/pgi/linux86-64/6.0/lib/libpgc.a(dpowi.o)
-                                         0x38 (size before relaxing)
- .eh_frame      0x00000000006766b8      0x260 /usr/pgi/linux86-64/6.0/lib/libpgc.a(pgstdinit.o)
-                                        0x278 (size before relaxing)
- .eh_frame      0x0000000000676918       0x80 /usr/pgi/linux86-64/6.0/lib/libpgc.a(mpmalloc.o)
-                                         0x98 (size before relaxing)
- .eh_frame      0x0000000000676998       0x40 /usr/pgi/linux86-64/6.0/lib/libpgc.a(rtcrit.o)
-                                         0x58 (size before relaxing)
- .eh_frame      0x00000000006769d8       0x80 /usr/pgi/linux86-64/6.0/lib/libpgc.a(pgtempnam.o)
-                                         0x98 (size before relaxing)
- .eh_frame      0x0000000000676a58       0xe0 /usr/pgi/linux86-64/6.0/lib/libpgc.a(va_arg.o)
-                                         0xf8 (size before relaxing)
- .eh_frame      0x0000000000676b38       0x80 /usr/pgi/linux86-64/6.0/lib/libpgc.a(pgargs.o)
-                                         0x98 (size before relaxing)
- .eh_frame      0x0000000000676bb8       0xc8 /usr/pgi/linux86-64/6.0/lib/libpgc.a(dsincosp.o)
- .eh_frame      0x0000000000676c80       0x78 /usr/pgi/linux86-64/6.0/lib/libpgc.a(dtan.o)
-                                         0x90 (size before relaxing)
- .eh_frame      0x0000000000676cf8       0x18 /usr/pgi/linux86-64/6.0/lib/libpgc.a(datan.o)
-                                         0x30 (size before relaxing)
- .eh_frame      0x0000000000676d10       0x18 /usr/lib64/libc_nonshared.a(fstat.oS)
-                                         0x30 (size before relaxing)
- .eh_frame      0x0000000000676d28        0x4 /usr/lib/gcc/x86_64-redhat-linux/3.4.2/crtend.o
-
-.gcc_except_table
- *(.gcc_except_table)
- *(.gcc_except_table.*)
-
-.tdata
- *(.tdata .tdata.* .gnu.linkonce.td.*)
-
-.tbss
- *(.tbss .tbss.* .gnu.linkonce.tb.*)
- *(.tcommon)
-                0x0000000000676d30                . = ALIGN (0x8)
-                0x0000000000676d30                PROVIDE (__preinit_array_start, .)
-
-.preinit_array
- *(.preinit_array)
-                0x0000000000676d30                PROVIDE (__preinit_array_end, .)
-                0x0000000000676d30                PROVIDE (__init_array_start, .)
-
-.init_array
- *(.init_array)
-                0x0000000000676d30                PROVIDE (__init_array_end, .)
-                0x0000000000676d30                PROVIDE (__fini_array_start, .)
-
-.fini_array
- *(.fini_array)
-                0x0000000000676d30                PROVIDE (__fini_array_end, .)
-
-.ctors          0x0000000000676d30       0x10
- *crtbegin*.o(.ctors)
- *(EXCLUDE_FILE(*crtend*.o) .ctors)
- .ctors         0x0000000000676d30        0x8 /usr/lib/gcc/x86_64-redhat-linux/3.4.2/crtbegin.o
- *(SORT(.ctors.*))
- *(.ctors)
- .ctors         0x0000000000676d38        0x8 /usr/lib/gcc/x86_64-redhat-linux/3.4.2/crtend.o
-
-.dtors          0x0000000000676d40       0x10
- *crtbegin*.o(.dtors)
- *(EXCLUDE_FILE(*crtend*.o) .dtors)
- .dtors         0x0000000000676d40        0x8 /usr/lib/gcc/x86_64-redhat-linux/3.4.2/crtbegin.o
- *(SORT(.dtors.*))
- *(.dtors)
- .dtors         0x0000000000676d48        0x8 /usr/lib/gcc/x86_64-redhat-linux/3.4.2/crtend.o
-
-.jcr            0x0000000000676d50        0x8
- *(.jcr)
- .jcr           0x0000000000676d50        0x8 /usr/lib/gcc/x86_64-redhat-linux/3.4.2/crtend.o
-
-.data.rel.ro
- *(.data.rel.ro.local)
- *(.data.rel.ro*)
-
-.dynamic        0x0000000000676d58      0x1b0
- *(.dynamic)
- .dynamic       0x0000000000676d58      0x1b0 /usr/lib64/crt1.o
-                0x0000000000676d58                _DYNAMIC
-
-.got            0x0000000000676f08       0x10
- *(.got)
- .got           0x0000000000676f08       0x10 /usr/lib64/crt1.o
-                0x0000000000676f18                . = (. DATA_SEGMENT_RELRO_END 0x18)
-
-.got.plt        0x0000000000676f18      0x4b0
- *(.got.plt)
- .got.plt       0x0000000000676f18      0x4b0 /usr/lib64/crt1.o
-                0x0000000000676f18                _GLOBAL_OFFSET_TABLE_
-
-.data           0x00000000006773e0    0x229f8
- *(.data .data.* .gnu.linkonce.d.*)
- .data          0x00000000006773e0        0x4 /usr/lib64/crt1.o
-                0x00000000006773e0                data_start
-                0x00000000006773e0                __data_start
- *fill*         0x00000000006773e4        0x4 00
- .data          0x00000000006773e8       0x10 /usr/lib/gcc/x86_64-redhat-linux/3.4.2/crtbegin.o
-                0x00000000006773e8                __dso_handle
- *fill*         0x00000000006773f8        0x8 00
- .data          0x0000000000677400      0x920 main_clust.o
- .data          0x0000000000677d20       0x30 arcos.o
- *fill*         0x0000000000677d50       0x10 00
- .data          0x0000000000677d60      0x1d8 cartprint.o
- *fill*         0x0000000000677f38        0x8 00
- .data          0x0000000000677f40      0x268 chainbuild.o
- .data          0x00000000006781a8       0x60 convert.o
- *fill*         0x0000000000678208       0x18 00
- .data          0x0000000000678220      0x570 initialize_p.o
-                0x0000000000678580                names_
-                0x0000000000678350                potentials_
-                0x0000000000678360                namterm_
- .data          0x0000000000678790       0x30 matmult.o
- .data          0x00000000006787c0      0xdc0 readrtns.o
- .data          0x0000000000679580       0x20 pinorm.o
- .data          0x00000000006795a0       0xb8 rescode.o
- *fill*         0x0000000000679658        0x8 00
- .data          0x0000000000679660       0x80 intcor.o
- .data          0x00000000006796e0      0x118 timing.o
- *fill*         0x00000000006797f8        0x8 00
- .data          0x0000000000679800       0xa0 misc.o
- .data          0x00000000006798a0      0x7e8 geomout.o
- *fill*         0x000000000067a088        0x8 00
- .data          0x000000000067a090      0x240 readpdb.o
- .data          0x000000000067a2d0      0x6d0 read_coords.o
- .data          0x000000000067a9a0      0xdb8 parmread.o
- *fill*         0x000000000067b758        0x8 00
- .data          0x000000000067b760      0x148 probabl.o
- *fill*         0x000000000067b8a8       0x18 00
- .data          0x000000000067b8c0      0x2f0 fitsq.o
- *fill*         0x000000000067bbb0       0x10 00
- .data          0x000000000067bbc0      0x410 hc.o
- .data          0x000000000067bfd0      0x3a0 track.o
- *fill*         0x000000000067c370       0x10 00
- .data          0x000000000067c380      0x5f0 wrtclust.o
- .data          0x000000000067c970      0x130 srtclust.o
- .data          0x000000000067caa0       0x70 noyes.o
- .data          0x000000000067cb10       0xc8 contact.o
- *fill*         0x000000000067cbd8        0x8 00
- .data          0x000000000067cbe0      0x118 printmat.o
- *fill*         0x000000000067ccf8        0x8 00
- .data          0x000000000067cd00      0x198 int_from_cart1.o
- *fill*         0x000000000067ce98        0x8 00
- .data          0x000000000067cea0     0x2828 energy_p_new.o
- .data          0x000000000067f6c8       0x10 icant.o
- *fill*         0x000000000067f6d8        0x8 00
- .data          0x000000000067f6e0      0x130 work_partition.o
- .data          0x000000000067f810       0x28 setup_var.o
- .data          0x000000000067f838       0x22 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initf.o)
- *fill*         0x000000000067f85a        0x2 00
- *fill*         0x000000000067f85c        0x4 00
- .data          0x000000000067f860       0x64 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-                0x000000000067f8a0                MPIR_F_STATUSES_IGNORE
-                0x000000000067f860                MPIR_F_TRUE
-                0x000000000067f870                MPIR_F_FALSE
-                0x000000000067f880                MPIR_F_MPI_BOTTOM
-                0x000000000067f890                MPIR_F_STATUS_IGNORE
- *fill*         0x000000000067f8c4        0xc 00
- .data          0x000000000067f8d0      0x154 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(mperror.o)
- *fill*         0x000000000067fa24        0xc 00
- .data          0x000000000067fa30       0x39 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(send.o)
- *fill*         0x000000000067fa69        0x7 00
- .data          0x000000000067fa70       0x39 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(recv.o)
- *fill*         0x000000000067faa9        0x7 00
- .data          0x000000000067fab0       0x3e /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_util.o)
- *fill*         0x000000000067faee        0x2 00
- .data          0x000000000067faf0       0x3a /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(abort.o)
- *fill*         0x000000000067fb2a        0x2 00
- *fill*         0x000000000067fb2c        0x4 00
- .data          0x000000000067fb30      0x299 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o)
-                0x000000000067fd90                MPIR_Dump_Ptrs
-                0x000000000067fda0                MPICHX_QOS_BANDWIDTH
-                0x000000000067fdb0                MPICHX_QOS_PARAMETERS
-                0x000000000067fd40                MPIR_COMM_SELF
-                0x000000000067fd20                MPIR_Infotable_max
-                0x000000000067fd70                MPIR_Print_queues
-                0x000000000067fd30                MPIR_COMM_WORLD
-                0x000000000067fd10                MPIR_Infotable_ptr
-                0x000000000067fd80                MPIR_Dump_Mem
-                0x000000000067fd00                MPIR_Infotable
-                0x000000000067fd60                MPIR_Has_been_initialized
-                0x000000000067fd50                MPIR_GROUP_EMPTY
- *fill*         0x000000000067fdc9        0x3 00
- *fill*         0x000000000067fdcc        0x4 00
- .data          0x000000000067fdd0        0x8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-                0x000000000067fdd0                MPIR_PACKED_PTR
- *fill*         0x000000000067fdd8        0x8 00
- .data          0x000000000067fde0       0x34 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(errfree.o)
- *fill*         0x000000000067fe14        0xc 00
- .data          0x000000000067fe20     0x3a54 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(nerrmsg.o)
- *fill*         0x0000000000683874        0xc 00
- .data          0x0000000000683880      0x378 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(ptrcvt.o)
- *fill*         0x0000000000683bf8        0x8 00
- .data          0x0000000000683c00      0x174 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bsendutil2.o)
- *fill*         0x0000000000683d74        0xc 00
- .data          0x0000000000683d80       0x40 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(keyval_free.o)
- .data          0x0000000000683dc0       0x3d /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(attr_getval.o)
- *fill*         0x0000000000683dfd        0x3 00
- .data          0x0000000000683e00       0xb2 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(attr_util.o)
- *fill*         0x0000000000683eb2        0xe 00
- .data          0x0000000000683ec0       0x5d /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(attr_putval.o)
- *fill*         0x0000000000683f1d        0x3 00
- .data          0x0000000000683f20       0x4f /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(group_free.o)
- *fill*         0x0000000000683f6f        0x1 00
- .data          0x0000000000683f70      0x115 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(group_util.o)
- *fill*         0x0000000000684085        0xb 00
- .data          0x0000000000684090       0x4e /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_free.o)
- *fill*         0x00000000006840de        0x2 00
- .data          0x00000000006840e0       0x2e /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_rank.o)
- *fill*         0x000000000068410e        0x2 00
- .data          0x0000000000684110       0x84 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_name_put.o)
- *fill*         0x0000000000684194        0xc 00
- .data          0x00000000006841a0       0x3e /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_size.o)
- *fill*         0x00000000006841de        0x2 00
- .data          0x00000000006841e0       0xf3 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_util.o)
- *fill*         0x00000000006842d3        0xd 00
- .data          0x00000000006842e0        0x4 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(context_util.o)
- *fill*         0x00000000006842e4        0xc 00
- .data          0x00000000006842f0       0x2c /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(barrier.o)
- *fill*         0x000000000068431c        0x4 00
- .data          0x0000000000684320       0x3a /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bcast.o)
- *fill*         0x000000000068435a        0x6 00
- .data          0x0000000000684360       0x6c /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(gatherv.o)
- *fill*         0x00000000006843cc        0x4 00
- .data          0x00000000006843d0       0x6e /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(allgather.o)
- *fill*         0x000000000068443e        0x2 00
- .data          0x0000000000684440       0x5e /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(allreduce.o)
- *fill*         0x000000000068449e        0x2 00
- .data          0x00000000006844a0      0xb40 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(global_ops.o)
- .data          0x0000000000684fe0       0x2c /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(opfree.o)
- .data          0x000000000068500c       0x17 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(oputil.o)
- *fill*         0x0000000000685023       0x1d 00
- .data          0x0000000000685040      0x208 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(inter_fns.o)
-                0x0000000000685240                MPIR_inter_collops
- *fill*         0x0000000000685248       0x18 00
- .data          0x0000000000685260      0x433 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_fns_new.o)
-                0x00000000006855e0                MPIR_intra_collops
- *fill*         0x0000000000685693        0xd 00
- .data          0x00000000006856a0       0x39 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_scan.o)
- *fill*         0x00000000006856d9        0x7 00
- .data          0x00000000006856e0        0x4 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(topo_util.o)
-                0x00000000006856e0                MPIR_TOPOLOGY_KEYVAL
- .data          0x00000000006856e4       0x1b /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(statusc2f.o)
- *fill*         0x00000000006856ff        0x1 00
- .data          0x0000000000685700      0xb64 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_utils.o)
- .data          0x0000000000686264      0x3f3 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_bm.o)
- *fill*         0x0000000000686657        0x1 00
- .data          0x0000000000686658      0x469 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_rm.o)
- *fill*         0x0000000000686ac1        0xf 00
- .data          0x0000000000686ad0      0xb14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_util.o)
- *fill*         0x00000000006875e4        0xc 00
- .data          0x00000000006875f0      0x5d4 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_cr.o)
- *fill*         0x0000000000687bc4        0xc 00
- .data          0x0000000000687bd0      0x6f4 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_conn.o)
- .data          0x00000000006882c4      0x593 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_sr.o)
- *fill*         0x0000000000688857        0x9 00
- .data          0x0000000000688860      0x4b8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_list.o)
- *fill*         0x0000000000688d18        0x8 00
- .data          0x0000000000688d20      0x168 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_secure.o)
-                0x0000000000688e80                start_prog_error
- *fill*         0x0000000000688e88        0x8 00
- .data          0x0000000000688e90        0x8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(usc.o)
-                0x0000000000688e90                usc_MD_rollover_val
- *fill*         0x0000000000688e98        0x8 00
- .data          0x0000000000688ea0      0x1f4 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2init.o)
-                0x0000000000689060                MPID_Print_queues
-                0x0000000000689080                MPID_devset
-                0x0000000000689070                MPID_n_pending
- .data          0x0000000000689094      0x159 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2hrecv.o)
- *fill*         0x00000000006891ed        0x3 00
- .data          0x00000000006891f0       0xbd /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2pack.o)
- *fill*         0x00000000006892ad        0x3 00
- .data          0x00000000006892b0       0x3b /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2mpack.o)
- *fill*         0x00000000006892eb       0x15 00
- .data          0x0000000000689300      0x508 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bswap2.o)
- *fill*         0x0000000000689808       0x18 00
- .data          0x0000000000689820      0x580 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chdebug.o)
-                0x0000000000689c80                MPID_TRACE_FILE
-                0x0000000000689c90                MPID_DEBUG_FILE
-                0x0000000000689ca0                MPID_UseDebugFile
-                0x0000000000689cb0                MPID_DebugFlag
- .data          0x0000000000689da0      0x101 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chinit.o)
- *fill*         0x0000000000689ea1        0xf 00
- .data          0x0000000000689eb0       0x64 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chhetero.o)
-                0x0000000000689f10                MPID_IS_HETERO
-                0x0000000000689f00                MPID_procinfo
- *fill*         0x0000000000689f14        0xc 00
- .data          0x0000000000689f20        0x8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chtick.o)
- *fill*         0x0000000000689f28        0x8 00
- .data          0x0000000000689f30      0x108 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4priv.o)
- *fill*         0x000000000068a038        0x8 00
- .data          0x000000000068a040      0x164 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(queue.o)
- .data          0x000000000068a1a4      0x1f1 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(cmnargs.o)
- *fill*         0x000000000068a395        0x3 00
- .data          0x000000000068a398       0x2d /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(sbcnst2.o)
- *fill*         0x000000000068a3c5        0x3 00
- .data          0x000000000068a3c8       0x18 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(session.o)
- .data          0x000000000068a3e0      0x3e5 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chpackflow.o)
- *fill*         0x000000000068a7c5        0xb 00
- .data          0x000000000068a7d0      0x2f4 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chcancel.o)
-                0x000000000068aac0                expect_cancel_ack
- *fill*         0x000000000068aac4        0xc 00
- .data          0x000000000068aad0       0x4a /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(isend.o)
- *fill*         0x000000000068ab1a        0x6 00
- .data          0x000000000068ab20       0x4a /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(irecv.o)
- *fill*         0x000000000068ab6a        0x2 00
- .data          0x000000000068ab6c       0x10 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wait.o)
- .data          0x000000000068ab7c       0x10 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(test.o)
- *fill*         0x000000000068ab8c        0x4 00
- .data          0x000000000068ab90       0x4b /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(cancel.o)
- *fill*         0x000000000068abdb        0x5 00
- .data          0x000000000068abe0       0x4c /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(waitall.o)
- *fill*         0x000000000068ac2c        0x4 00
- .data          0x000000000068ac30       0x4d /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(sendrecv.o)
- *fill*         0x000000000068ac7d        0x3 00
- .data          0x000000000068ac80       0x2c /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(testall.o)
- *fill*         0x000000000068acac        0x4 00
- .data          0x000000000068acb0       0x3e /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(getcount.o)
- *fill*         0x000000000068acee        0x2 00
- .data          0x000000000068acf0       0x30 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_commit.o)
- .data          0x000000000068ad20       0x74 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_contig.o)
- *fill*         0x000000000068ad94        0xc 00
- .data          0x000000000068ada0       0x30 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_extent.o)
- .data          0x000000000068add0       0x4e /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_free.o)
- *fill*         0x000000000068ae1e        0x2 00
- .data          0x000000000068ae20       0x71 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_ind.o)
- *fill*         0x000000000068ae91        0xf 00
- .data          0x000000000068aea0       0x2c /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_lb.o)
- *fill*         0x000000000068aecc        0x4 00
- .data          0x000000000068aed0       0x3e /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_size.o)
- *fill*         0x000000000068af0e        0x2 00
- .data          0x000000000068af10       0xd0 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_struct.o)
- .data          0x000000000068afe0       0x5e /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(pack_size.o)
- *fill*         0x000000000068b03e        0x2 00
- .data          0x000000000068b040       0xa9 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(pack.o)
- *fill*         0x000000000068b0e9        0x7 00
- .data          0x000000000068b0f0       0x5b /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(unpack.o)
- *fill*         0x000000000068b14b        0x5 00
- .data          0x000000000068b150       0x60 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-                0x000000000068b190                MPIR_debug_abort_string
-                0x000000000068b1a0                MPIR_being_debugged
-                0x000000000068b150                MPIR_proctable
-                0x000000000068b180                MPIR_debug_gate
-                0x000000000068b160                MPIR_proctable_size
-                0x000000000068b170                MPIR_debug_state
- *fill*         0x000000000068b1b0       0x10 00
- .data          0x000000000068b1c0       0x33 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(errset.o)
- *fill*         0x000000000068b1f3        0xd 00
- .data          0x000000000068b200      0x110 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(pkutil.o)
- .data          0x000000000068b310       0x4b /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(reduce.o)
- *fill*         0x000000000068b35b        0x1 00
- .data          0x000000000068b35c      0x13f /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_MD.o)
- *fill*         0x000000000068b49b        0x5 00
- .data          0x000000000068b4a0      0x234 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_error.o)
-                0x000000000068b670                p4_hard_errors
- .data          0x000000000068b6d4      0x412 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_args.o)
- *fill*         0x000000000068bae6       0x1a 00
- .data          0x000000000068bb00      0x360 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_alloc.o)
- .data          0x000000000068be60      0x390 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_debug.o)
- .data          0x000000000068c1f0      0x1be /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_procgroup.o)
- *fill*         0x000000000068c3ae        0x2 00
- .data          0x000000000068c3b0      0x334 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_tsr.o)
- .data          0x000000000068c6e4       0x67 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_mon.o)
- *fill*         0x000000000068c74b        0x1 00
- .data          0x000000000068c74c      0x211 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_broadcast.o)
- *fill*         0x000000000068c95d        0x3 00
- .data          0x000000000068c960      0x234 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2recv.o)
- .data          0x000000000068cb94      0x1af /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2send.o)
- *fill*         0x000000000068cd43        0x1 00
- .data          0x000000000068cd44      0x155 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2cancel.o)
- *fill*         0x000000000068ce99        0x3 00
- .data          0x000000000068ce9c      0x733 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chbeager.o)
- *fill*         0x000000000068d5cf        0x1 00
- .data          0x000000000068d5d0      0xb24 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chbrndv.o)
- *fill*         0x000000000068e0f4        0xc 00
- .data          0x000000000068e100      0x5e4 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chchkdev.o)
- .data          0x000000000068e6e4      0x79c /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chshort.o)
- .data          0x000000000068ee80      0x194 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chflow.o)
-                0x000000000068f010                MPID_DebugFlow
-                0x000000000068f000                MPID_flow_info
- *fill*         0x000000000068f014        0xc 00
- .data          0x000000000068f020       0x72 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_hind.o)
- *fill*         0x000000000068f092        0x2 00
- *fill*         0x000000000068f094        0x4 00
- .data          0x000000000068f098        0xc /usr/pgi/linux86-64/6.0/lib/libpgf90.a(encodefmt.o)
- *fill*         0x000000000068f0a4       0x1c 00
- .data          0x000000000068f0c0      0x398 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(error.o)
- *fill*         0x000000000068f458        0x8 00
- .data          0x000000000068f460       0x84 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtread.o)
- *fill*         0x000000000068f4e4       0x1c 00
- .data          0x000000000068f500       0x98 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtwrite.o)
- *fill*         0x000000000068f598        0x8 00
- .data          0x000000000068f5a0       0x60 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ldread.o)
- .data          0x000000000068f600       0x11 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ldwrite.o)
- *fill*         0x000000000068f611        0x3 00
- *fill*         0x000000000068f614        0xc 00
- .data          0x000000000068f620       0x70 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(pgifiodf.o)
-                0x000000000068f660                __hpfio_type_size
-                0x000000000068f620                pghpfio
- *fill*         0x000000000068f690       0x10 00
- .data          0x000000000068f6a0      0x228 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(utils.o)
- .data          0x000000000068f8c8       0x28 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(utilsi64.o)
- *fill*         0x000000000068f8f0       0x10 00
- .data          0x000000000068f900     0x4014 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(allo.o)
- *fill*         0x0000000000693914        0x4 00
- .data          0x0000000000693918        0xc /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
- *fill*         0x0000000000693924        0x4 00
- .data          0x0000000000693928       0x1c /usr/pgi/linux86-64/6.0/lib/libpgf90.a(malloc.o)
- *fill*         0x0000000000693944       0x1c 00
- .data          0x0000000000693960       0x20 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(rdst.o)
- .data          0x0000000000693980       0x28 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(version.o)
-                0x0000000000693980                version
- .data          0x00000000006939a8        0x8 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(stat_linux.o)
- *fill*         0x00000000006939b0       0x10 00
- .data          0x00000000006939c0     0x401c /usr/pgi/linux86-64/6.0/lib/libpgf90.a(allo_i8.o)
- *fill*         0x00000000006979dc        0x4 00
- .data          0x00000000006979e0       0x68 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtconv.o)
- .data          0x0000000000697a48        0xc /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtgetnum.o)
- *fill*         0x0000000000697a54        0xc 00
- .data          0x0000000000697a60      0x578 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fpcvt.o)
- .data          0x0000000000697fd8       0x10 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(defs.o)
-                0x0000000000697fe0                f90DummyGenBlockPtr
-                0x0000000000697fd8                f90DummyGenBlock
- *fill*         0x0000000000697fe8       0x18 00
- .data          0x0000000000698000       0xdc /usr/pgi/linux86-64/6.0/lib/libpgf90.a(dist.o)
- *fill*         0x00000000006980dc        0x4 00
- .data          0x00000000006980e0       0x20 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(copy.o)
- .data          0x0000000000698100       0x10 /usr/pgi/linux86-64/6.0/lib/libpgf90_rpm1.a(init_rpm1.o)
-                0x0000000000698108                __hpf_transnam
- .data          0x0000000000698110        0x4 /usr/pgi/linux86-64/6.0/lib/libpgf90_rpm1.a(xfer_rpm1.o)
-                0x0000000000698110                __hpf_minxfer
- *fill*         0x0000000000698114        0xc 00
- .data          0x0000000000698120       0x10 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(cnfg.o)
-                0x0000000000698120                __hpfio_cnfg_
- *fill*         0x0000000000698130       0x10 00
- .data          0x0000000000698140      0x950 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-                0x0000000000698420                __hpf_one
-                0x0000000000698440                __hpf_zed
-                0x00000000006984a0                __hpf_maxs
-                0x0000000000698300                pghpf_type_
-                0x00000000006985e0                __hpf_mins
-                0x0000000000698850                __hpf_true_log
-                0x00000000006981e0                __hpf_typenames
-                0x0000000000698860                __hpf_trues
-                0x0000000000698740                __hpf_units
-                0x0000000000698980                __hpf_masks
-                0x0000000000698140                __hpf_size_of
- *fill*         0x0000000000698a90       0x10 00
- .data          0x0000000000698aa0       0xd0 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(hand.o)
- *fill*         0x0000000000698b70       0x10 00
- .data          0x0000000000698b80      0x328 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(stat.o)
- *fill*         0x0000000000698ea8        0x8 00
- .data          0x0000000000698eb0       0x25 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(trace.o)
- *fill*         0x0000000000698ed5        0x3 00
- *fill*         0x0000000000698ed8        0x8 00
- .data          0x0000000000698ee0      0x228 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(utils.o)
- *fill*         0x0000000000699108       0x18 00
- .data          0x0000000000699120       0x68 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(pgifiodf.o)
-                0x0000000000699120                pgi_fio
-                0x0000000000699160                __fio_type_size
- *fill*         0x0000000000699188       0x18 00
- .data          0x00000000006991a0      0x398 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(error.o)
- *fill*         0x0000000000699538        0x8 00
- .data          0x0000000000699540       0x10 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(cnfg.o)
-                0x0000000000699540                __fio_cnfg_
- .data          0x0000000000699550        0x8 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(pgdummy.o)
-                0x0000000000699554                __PC_DOS
-                0x0000000000699550                __PC_DATA
- *fill*         0x0000000000699558        0x8 00
- .data          0x0000000000699560       0x10 /usr/pgi/linux86-64/6.0/lib/libnspgc.a(pgdbg_utils.o)
- .data          0x0000000000699570       0x10 /usr/pgi/linux86-64/6.0/lib/libpgc.a(mthi64.o)
- .data          0x0000000000699580        0x8 /usr/pgi/linux86-64/6.0/lib/libpgc.a(mpmalloc.o)
- .data          0x0000000000699588        0x8 /usr/pgi/linux86-64/6.0/lib/libpgc.a(rtcrit.o)
- *fill*         0x0000000000699590       0x10 00
- .data          0x00000000006995a0       0x3f /usr/pgi/linux86-64/6.0/lib/libpgc.a(pgtempnam.o)
- *fill*         0x00000000006995df        0x1 00
- .data          0x00000000006995e0      0x3f0 /usr/pgi/linux86-64/6.0/lib/libpgc.a(dsincosp.o)
- *fill*         0x00000000006999d0       0x10 00
- .data          0x00000000006999e0      0x3f0 /usr/pgi/linux86-64/6.0/lib/libpgc.a(dtan.o)
- .data          0x0000000000699dd0        0x8 /usr/pgi/linux86-64/6.0/lib/libpgc.a(datan.o)
- *(.gnu.linkonce.d.*personality*)
-
-.data1
- *(.data1)
-                0x0000000000699dd8                _edata = .
-                0x0000000000699dd8                PROVIDE (edata, .)
-                0x0000000000699dd8                __bss_start = .
-
-.bss            0x0000000000699de0 0x6a9f2968
- *(.dynbss)
- .dynbss        0x0000000000699de0       0x28 /usr/lib64/crt1.o
-                0x0000000000699de0                timezone@@GLIBC_2.2.5
-                0x0000000000699de8                stderr@@GLIBC_2.2.5
-                0x0000000000699df0                _environ@@GLIBC_2.2.5
-                0x0000000000699df8                stdin@@GLIBC_2.2.5
-                0x0000000000699df0                __environ@@GLIBC_2.2.5
-                0x0000000000699de0                __timezone@@GLIBC_2.2.5
-                0x0000000000699e00                stdout@@GLIBC_2.2.5
-                0x0000000000699df0                environ@@GLIBC_2.2.5
- *(.bss .bss.* .gnu.linkonce.b.*)
- .bss           0x0000000000699e08        0x1 /usr/lib/gcc/x86_64-redhat-linux/3.4.2/crtbegin.o
- *fill*         0x0000000000699e09        0x3 00
- *fill*         0x0000000000699e0c       0x14 00
- .bss           0x0000000000699e20 0x4d4adea8 main_clust.o
- *fill*         0x000000004db47cc8       0x18 00
- .bss           0x000000004db47ce0       0x18 chainbuild.o
- *fill*         0x000000004db47cf8        0x8 00
- .bss           0x000000004db47d00       0x24 matmult.o
- *fill*         0x000000004db47d24       0x1c 00
- .bss           0x000000004db47d40     0x2720 readrtns.o
- .bss           0x000000004db4a460      0x3e8 geomout.o
- *fill*         0x000000004db4a848       0x18 00
- .bss           0x000000004db4a860      0x3c0 readpdb.o
- .bss           0x000000004db4ac20     0x1910 read_coords.o
- *fill*         0x000000004db4c530       0x10 00
- .bss           0x000000004db4c540      0x120 parmread.o
- .bss           0x000000004db4c660    0x131e8 probabl.o
- *fill*         0x000000004db5f848       0x18 00
- .bss           0x000000004db5f860      0x2a8 fitsq.o
- *fill*         0x000000004db5fb08       0x18 00
- .bss           0x000000004db5fb20   0x605040 track.o
- .bss           0x000000004e164b60     0xbb80 srtclust.o
- .bss           0x000000004e1706e0    0x161e0 energy_p_new.o
- .bss           0x000000004e1868c0       0x10 proc_proc.o
- .bss           0x000000004e1868d0       0x34 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o)
- *fill*         0x000000004e186904       0x1c 00
- .bss           0x000000004e186920     0x2060 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(nerrmsg.o)
- .bss           0x000000004e188980     0x6800 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(ptrcvt.o)
- .bss           0x000000004e18f180     0x1070 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_utils.o)
- .bss           0x000000004e1901f0       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_rm.o)
- *fill*         0x000000004e190204        0xc 00
- .bss           0x000000004e190210       0x10 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_util.o)
- .bss           0x000000004e190220      0x200 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_cr.o)
- .bss           0x000000004e190420        0x8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_conn.o)
- *fill*         0x000000004e190428       0x18 00
- .bss           0x000000004e190440      0x4fa /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_secure.o)
- *fill*         0x000000004e19093a        0x2 00
- *fill*         0x000000004e19093c        0x4 00
- .bss           0x000000004e190940       0x48 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
- *fill*         0x000000004e190988        0x8 00
- .bss           0x000000004e190990       0x28 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(pkutil.o)
- *fill*         0x000000004e1909b8        0x8 00
- .bss           0x000000004e1909c0        0x4 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_error.o)
- *fill*         0x000000004e1909c4       0x1c 00
- .bss           0x000000004e1909e0       0x64 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_args.o)
- *fill*         0x000000004e190a44       0x1c 00
- .bss           0x000000004e190a60       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_debug.o)
- *fill*         0x000000004e190a74        0xc 00
- .bss           0x000000004e190a80       0x18 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_tsr.o)
- *fill*         0x000000004e190a98        0x8 00
- .bss           0x000000004e190aa0       0x75 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(encodefmt.o)
- *fill*         0x000000004e190b15        0xb 00
- .bss           0x000000004e190b20       0xa4 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(error.o)
- *fill*         0x000000004e190bc4       0x1c 00
- .bss           0x000000004e190be0      0x118 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtread.o)
- *fill*         0x000000004e190cf8        0x8 00
- .bss           0x000000004e190d00      0x110 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtwrite.o)
- *fill*         0x000000004e190e10       0x10 00
- .bss           0x000000004e190e20      0x220 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ldread.o)
- .bss           0x000000004e191040       0x48 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ldwrite.o)
- .bss           0x000000004e191088        0x8 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(open.o)
- *fill*         0x000000004e191090       0x10 00
- .bss           0x000000004e1910a0     0x1050 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(unf.o)
- .bss           0x000000004e1920f0        0x4 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(allo.o)
- *fill*         0x000000004e1920f4        0x4 00
- .bss           0x000000004e1920f8       0x24 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(entry.o)
- *fill*         0x000000004e19211c        0x4 00
- .bss           0x000000004e192120       0x10 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(hpfio.o)
- *fill*         0x000000004e192130       0x10 00
- .bss           0x000000004e192140      0x428 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
- *fill*         0x000000004e192568       0x18 00
- .bss           0x000000004e192580      0x288 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ptr.o)
- .bss           0x000000004e192808       0x10 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(xfer.o)
- .bss           0x000000004e192818        0x4 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(allo_i8.o)
- *fill*         0x000000004e19281c        0x4 00
- .bss           0x000000004e192820      0x100 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtconv.o)
- .bss           0x000000004e192920       0xa0 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtgetnum.o)
- .bss           0x000000004e1929c0      0x220 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fpcvt.o)
- .bss           0x000000004e192be0        0x8 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(dist.o)
- .bss           0x000000004e192be8       0x20 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(buffer.o)
- *fill*         0x000000004e192c08        0x8 00
- .bss           0x000000004e192c10       0x90 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
- .bss           0x000000004e192ca0      0x200 /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(cvt.o)
- .bss           0x000000004e192ea0       0xa0 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(error.o)
- .bss           0x000000004e192f40        0x4 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(ftnexit.o)
- *fill*         0x000000004e192f44        0x4 00
- .bss           0x000000004e192f48        0x8 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(open.o)
- .bss           0x000000004e192f50        0x4 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(cnfg.o)
- .bss           0x000000004e192f54        0x4 /usr/pgi/linux86-64/6.0/lib/libpgc.a(pgtempnam.o)
- .bss           0x000000004e192f58        0x4 /usr/pgi/linux86-64/6.0/lib/libpgc.a(crit_dum.o)
- *(COMMON)
- *fill*         0x000000004e192f5c        0x4 00
- COMMON         0x000000004e192f60  0xf34d471 main_clust.o
-                0x000000004e192f60                fnames_
-                0x000000004e193e70                stoptim_
-                0x000000004e193e80                csaunits_
-                0x000000004e193ec0                geo_
-                0x000000004e193f00                stretch_
-                0x000000004e194060                mpi_data_
-                0x000000004e1942a0                csafiles_
-                0x000000004e194ea0                mpipriv_
-                0x000000004e194ee0                varref_
-                0x000000004e197600                refstruct_
-                0x000000004e19a520                pghpf_me_
-                0x000000004e19a540                body_
-                0x000000004e1a1140                interact_
-                0x000000004e1a70c0                clu_
-                0x00000000527a21c0                var_
-                0x00000000527a77c0                free_
-                0x00000000527a77e0                pghpf_0l_
-                0x00000000527a7800                header_
-                0x00000000527a7850                pghpf_0_
-                0x00000000527a7860                time1_
-                0x00000000527a78a0                cntrl_
-                0x00000000527a78f0                pghpf_lineno_
-                0x00000000527a7900                clu1_
-                0x000000005b1366a0                parfiles_
-                0x000000005b1370a0                rotmat_
-                0x000000005b1489e0                pghpf_np_
-                0x000000005b148a00                iounits_
-                0x000000005b148a60                chain_
-                0x000000005b154620                alles_
-                0x000000005d4e03d0                pghpf_0c_
- *fill*         0x000000005d4e03d1        0xf 00
- COMMON         0x000000005d4e03e0     0x3c2c chainbuild.o
-                0x000000005d4e03e0                indices_
-                0x000000005d4e0400                peptbond_
-                0x000000005d4e0440                invlen_
-                0x000000005d4e13e0                thetas_
-                0x000000005d4e1d40                sclocal_
- *fill*         0x000000005d4e400c       0x14 00
- COMMON         0x000000005d4e4020   0x31e340 initialize_p.o
-                0x000000005d4e4020                torsion_
-                0x000000005d4e5000                minimm_
-                0x000000005d4e5020                restraints_
-                0x000000005d4e5040                ffield_
-                0x000000005d4e51a0                derivat_
-                0x000000005d7ed7f0                links_split_
-                0x000000005d7ed800                deriv_loc_
-                0x000000005d7ed9e0                links_
-                0x000000005d7edbe0                sbridge_
-                0x000000005d7edc60                fourier_
-                0x000000005d7edfc0                fourier1_
-                0x000000005d7ee160                torsiond_
- COMMON         0x000000005d802360  0x4ef9f20 readrtns.o
-                0x000000005d802360                contacts_
-                0x000000005d80df00                contacts_hb_
-                0x000000005e5a5300                rotat_old_
-                0x000000005e5a81e0                contacts1_
-                0x000000005e7cdae0                precomp2_
-                0x000000005e7e51e0                precomp1_
-                0x000000005e7fb940                diploc_
-                0x000000005e7ff280                rotat_
-                0x000000005e80ae00                dipint_
-                0x0000000060877a80                dipmat_
- COMMON         0x00000000626fc280  0x89776b4 track.o
-                0x00000000626fc280                previous_
-                0x000000006b056460                history_
- *fill*         0x000000006b073934        0xc 00
- COMMON         0x000000006b073940    0x164c0 energy_p_new.o
-                0x000000006b073940                calcthet_
-                0x000000006b0739e0                locel_
-                0x000000006b073c00                sccalc_
-                0x000000006b073c30                kutas_
-                0x000000006b073c40                torcnstr_
-                0x000000006b0753c0                srutu_
-                0x000000006b0753e0                calc_
-                0x000000006b0755e0                vectors_
- COMMON         0x000000006b089e00      0xbe8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-                0x000000006b089e00                MPIR_real4_dte
-                0x000000006b089ec0                MPIR_I_2COMPLEX
-                0x000000006b089f80                MPIR_I_2DOUBLE_PRECISION
-                0x000000006b08a040                MPIR_I_COMPLEX
-                0x000000006b08a100                MPIR_I_INTEGER
-                0x000000006b08a1c0                MPIR_int1_dte
-                0x000000006b08a280                MPIR_I_DOUBLE_PRECISION
-                0x000000006b08a340                MPIR_I_REAL
-                0x000000006b08a400                MPIR_I_LOGICAL
-                0x000000006b08a4c0                MPIR_I_2DCOMPLEX
-                0x000000006b08a580                MPIR_I_2INTEGER
-                0x000000006b08a640                MPIR_int4_dte
-                0x000000006b08a700                MPIR_real8_dte
-                0x000000006b08a7c0                MPIR_I_DCOMPLEX
-                0x000000006b08a880                MPIR_int2_dte
-                0x000000006b08a940                MPIR_I_2REAL
- *fill*         0x000000006b08a9e8        0x8 00
- COMMON         0x000000006b08a9f0       0x48 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o)
-                0x000000006b08a9f0                MPIR_errhandlers
-                0x000000006b08aa00                MPIR_fdtels
-                0x000000006b08aa10                MPIR_tid
-                0x000000006b08aa20                MPIR_qels
-                0x000000006b08aa30                MPIR_topo_els
- *fill*         0x000000006b08aa38        0x8 00
- COMMON         0x000000006b08aa40     0x11e8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-                0x000000006b08aa40                MPIR_I_DOUBLE
-                0x000000006b08aaf0                MPI_FLOAT_INT_var
-                0x000000006b08ab00                MPIR_I_LONG_LONG_INT
-                0x000000006b08abb0                MPI_SHORT_INT_var
-                0x000000006b08abc0                MPIR_I_LB
-                0x000000006b08ac80                MPIR_I_PACKED
-                0x000000006b08ad30                MPI_LONG_INT_var
-                0x000000006b08ad40                MPIR_I_LONG_INT
-                0x000000006b08ae00                MPIR_I_LONG_DOUBLE_INT
-                0x000000006b08aec0                MPIR_I_INT
-                0x000000006b08af80                MPIR_I_SHORT
-                0x000000006b08b040                MPIR_I_DOUBLE_INT
-                0x000000006b08b0f0                MPI_DOUBLE_INT_var
-                0x000000006b08b100                MPIR_I_LONG_DOUBLE
-                0x000000006b08b1b0                MPI_LONG_DOUBLE_INT_var
-                0x000000006b08b1c0                MPIR_I_2DOUBLE
-                0x000000006b08b280                MPIR_I_UB
-                0x000000006b08b340                MPIR_I_2FLOAT
-                0x000000006b08b400                MPIR_I_FLOAT
-                0x000000006b08b4c0                MPIR_I_2INT
-                0x000000006b08b580                MPIR_I_BYTE
-                0x000000006b08b640                MPIR_I_CHAR
-                0x000000006b08b700                MPIR_I_FLOAT_INT
-                0x000000006b08b7b0                MPIR_dtes
-                0x000000006b08b7c0                MPIR_I_USHORT
-                0x000000006b08b880                MPIR_I_UCHAR
-                0x000000006b08b940                MPIR_I_ULONG
-                0x000000006b08ba00                MPIR_I_SHORT_INT
-                0x000000006b08bac0                MPIR_I_LONG
-                0x000000006b08bb80                MPIR_I_UINT
- *fill*         0x000000006b08bc28        0x8 00
- COMMON         0x000000006b08bc30       0x18 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(util_hbt.o)
-                0x000000006b08bc30                MPIR_hbt_els
-                0x000000006b08bc40                MPIR_hbts
- *fill*         0x000000006b08bc48        0x8 00
- COMMON         0x000000006b08bc50        0x4 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(global_ops.o)
-                0x000000006b08bc50                MPIR_Op_errno
- *fill*         0x000000006b08bc54        0xc 00
- COMMON         0x000000006b08bc60       0x12 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_secure.o)
-                0x000000006b08bc60                tty_orig
- *fill*         0x000000006b08bc72        0xe 00
- COMMON         0x000000006b08bc80       0xb4 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2init.o)
-                0x000000006b08bc80                MPIR_rhandles
-                0x000000006b08bc90                MPIR_shandles
-                0x000000006b08bca0                ch_debug_buf
-                0x000000006b08bd20                MPID_MyWorldRank
-                0x000000006b08bd30                MPID_MyWorldSize
- *fill*         0x000000006b08bd34        0xc 00
- COMMON         0x000000006b08bd40        0x4 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chhetero.o)
-                0x000000006b08bd40                MPID_byte_order
- *fill*         0x000000006b08bd44        0xc 00
- COMMON         0x000000006b08bd50       0x34 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4priv.o)
-                0x000000006b08bd50                __P4LEN
-                0x000000006b08bd60                __P4FROM
-                0x000000006b08bd70                __P4GLOBALTYPE
-                0x000000006b08bd80                __P4TYPE
- *fill*         0x000000006b08bd84       0x1c 00
- COMMON         0x000000006b08bda0       0x20 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(queue.o)
-                0x000000006b08bda0                MPID_recvs
- COMMON         0x000000006b08bdc0       0x30 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chpackflow.o)
-                0x000000006b08bdc0                total_pack_unacked
-                0x000000006b08bdd0                expect_ack
-                0x000000006b08bde0                MPID_pack_info
- COMMON         0x000000006b08bdf0       0x98 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-                0x000000006b08bdf0                MPIR_debug_cl
-                0x000000006b08be00                MPIR_debug_s
-                0x000000006b08be10                MPIR_debug_c
-                0x000000006b08be20                MPIR_debug_sqel
-                0x000000006b08be30                MPIR_debug_qh
-                0x000000006b08be40                MPIR_All_communicators
-                0x000000006b08be50                MPIR_debug_q
-                0x000000006b08be60                MPIR_debug_sq
-                0x000000006b08be70                MPIR_debug_qel
-                0x000000006b08be80                MPIR_debug_rh
- *fill*         0x000000006b08be88       0x18 00
- COMMON         0x000000006b08bea0      0x6e4 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-                0x000000006b08bea0                execer_mynodenum
-                0x000000006b08beb0                p4_global
-                0x000000006b08bec0                logging_flag
-                0x000000006b08bed0                p4_remote_debug_level
-                0x000000006b08bee0                execer_mastport
-                0x000000006b08bef0                execer_numtotnodes
-                0x000000006b08bf00                execer_masthost
-                0x000000006b08bf80                procgroup_file
-                0x000000006b08c080                rm_outfile_head
-                0x000000006b08c0f0                sserver_port
-                0x000000006b08c100                listener_info
-                0x000000006b08c120                whoami_p4
-                0x000000006b08c1a0                execer_myhost
-                0x000000006b08c210                p4_debug_level
-                0x000000006b08c220                p4_local
-                0x000000006b08c230                execer_starting_remotes
-                0x000000006b08c240                p4_myname_in_procgroup
-                0x000000006b08c280                local_domain
-                0x000000006b08c300                execer_id
-                0x000000006b08c390                p4_rm_rank
-                0x000000006b08c3a0                execer_mynumprocs
-                0x000000006b08c3b0                hand_start_remotes
-                0x000000006b08c3c0                p4_brdcst_info
-                0x000000006b08c3e0                execer_pg
-                0x000000006b08c400                bm_outfile
-                0x000000006b08c480                p4_wd
-                0x000000006b08c580                globmemsize
- *fill*         0x000000006b08c584        0x4 00
- COMMON         0x000000006b08c588        0x8 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(error.o)
-                0x000000006b08c588                envar_fortranopt
- COMMON         0x000000006b08c590        0x4 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(utilsi64.o)
-                0x000000006b08c590                __ftn_32in64_
- COMMON         0x000000006b08c594        0x4 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(entry.o)
-                0x000000006b08c594                __hpf_entry_mflag
- COMMON         0x000000006b08c598       0x40 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
-                0x000000006b08c598                __hpf_zmem
-                0x000000006b08c59c                __hpf_np2
-                0x000000006b08c5a0                __hpf_tids
-                0x000000006b08c5a8                __hpf_ioproc
-                0x000000006b08c5ac                __hpf_tcpus
-                0x000000006b08c5b0                __hpf_quiet
-                0x000000006b08c5b4                __hpf_pario
-                0x000000006b08c5b8                __hpf_lcpu
-                0x000000006b08c5c0                __hpf_heapz
-                0x000000006b08c5c8                __hpf_debug
-                0x000000006b08c5cc                __hpf_debugn
-                0x000000006b08c5d0                __hpf_heap_block
- *fill*         0x000000006b08c5d8        0x8 00
- COMMON         0x000000006b08c5e0       0x60 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtconv.o)
-                0x000000006b08c5e0                __f90io_conv_buf
- COMMON         0x000000006b08c640        0x4 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(defs.o)
-                0x000000006b08c640                __hpf_test
- *fill*         0x000000006b08c644       0x1c 00
- COMMON         0x000000006b08c660       0xd8 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-                0x000000006b08c660                __hpf_true_log4
-                0x000000006b08c664                __hpf_mask_log4
-                0x000000006b08c668                __hpf_mask_int1
-                0x000000006b08c680                __hpf_shifts
-                0x000000006b08c708                __hpf_true_log1
-                0x000000006b08c70c                __hpf_mask_log
-                0x000000006b08c710                __hpf_mask_int4
-                0x000000006b08c718                __hpf_true_log8
-                0x000000006b08c720                __hpf_mask_int8
-                0x000000006b08c728                __hpf_mask_log1
-                0x000000006b08c72a                __hpf_mask_int2
-                0x000000006b08c72c                __hpf_mask_log2
-                0x000000006b08c72e                __hpf_true_log2
-                0x000000006b08c730                __hpf_mask_log8
- COMMON         0x000000006b08c738        0xc /usr/pgi/linux86-64/6.0/lib/libpgc.a(pgargs.o)
-                0x000000006b08c738                __argv_save
-                0x000000006b08c740                __argc_save
-                0x000000006b08c748                . = ALIGN (0x8)
- *fill*         0x000000006b08c744        0x4 00
- *fill*         0x000000006b08c748        0x0 00
- *fill*         0x000000006b08c748        0x0 00
- *fill*         0x000000006b08c748        0x0 00
-                0x000000006b08c748                . = ALIGN (0x8)
-                0x000000006b08c748                _end = .
-                0x000000006b08c748                PROVIDE (end, .)
-                0x000000006b08c748                . = DATA_SEGMENT_END (.)
-
-.stab
- *(.stab)
-
-.stabstr
- *(.stabstr)
-
-.stab.excl
- *(.stab.excl)
-
-.stab.exclstr
- *(.stab.exclstr)
-
-.stab.index
- *(.stab.index)
-
-.stab.indexstr
- *(.stab.indexstr)
-
-.comment        0x0000000000000000      0xaf5
- *(.comment)
- .comment       0x0000000000000000       0x31 /usr/lib64/crt1.o
- .comment       0x0000000000000031       0x31 /usr/lib64/crti.o
- .comment       0x0000000000000062       0x31 /usr/lib/gcc/x86_64-redhat-linux/3.4.2/crtbegin.o
- .comment       0x0000000000000093       0x1f /usr/pgi/linux86-64/6.0/lib/f90main.o
- .comment       0x00000000000000b2       0x31 proc_proc.o
- .comment       0x00000000000000e3       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(close.o)
- .comment       0x0000000000000102       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(desc.o)
- .comment       0x0000000000000121       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(encodefmt.o)
- .comment       0x0000000000000140       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(error.o)
- .comment       0x000000000000015f       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtread.o)
- .comment       0x000000000000017e       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtwrite.o)
- .comment       0x000000000000019d       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ftnexit.o)
- .comment       0x00000000000001bc       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ldread.o)
- .comment       0x00000000000001db       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ldwrite.o)
- .comment       0x00000000000001fa       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(open.o)
- .comment       0x0000000000000219       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(pgifiodf.o)
- .comment       0x0000000000000238       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(rewind.o)
- .comment       0x0000000000000257       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(unf.o)
- .comment       0x0000000000000276       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(utils.o)
- .comment       0x0000000000000295       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(utilsi64.o)
- .comment       0x00000000000002b4       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(allo.o)
- .comment       0x00000000000002d3       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(entry.o)
- .comment       0x00000000000002f2       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(hpfio.o)
- .comment       0x0000000000000311       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(hpfio_hpf.o)
- .comment       0x0000000000000330       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
- .comment       0x000000000000034f       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(malloc.o)
- .comment       0x000000000000036e       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ptr.o)
- .comment       0x000000000000038d       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(rdst.o)
- .comment       0x00000000000003ac       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(rw.o)
- .comment       0x00000000000003cb       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(version.o)
- .comment       0x00000000000003ea       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(xfer.o)
- .comment       0x0000000000000409       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(stat_linux.o)
- .comment       0x0000000000000428       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(allo_i8.o)
- .comment       0x0000000000000447       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(assign.o)
- .comment       0x0000000000000466       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtconv.o)
- .comment       0x0000000000000485       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtgetnum.o)
- .comment       0x00000000000004a4       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fpcvt.o)
- .comment       0x00000000000004c3       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(atol.o)
- .comment       0x00000000000004e2       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(defs.o)
- .comment       0x0000000000000501       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(dist.o)
- .comment       0x0000000000000520       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(comm.o)
- .comment       0x000000000000053f       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(copy.o)
- .comment       0x000000000000055e       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90_rpm1.a(init_rpm1.o)
- .comment       0x000000000000057d       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90_rpm1.a(xfer_rpm1.o)
- .comment       0x000000000000059c       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf902.a(cnfg.o)
- .comment       0x00000000000005bb       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf902.a(bcopy.o)
- .comment       0x00000000000005da       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf902.a(bcopys.o)
- .comment       0x00000000000005f9       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf902.a(buffer.o)
- .comment       0x0000000000000618       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf902.a(chn1t1.o)
- .comment       0x0000000000000637       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
- .comment       0x0000000000000656       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf902.a(cprof.o)
- .comment       0x0000000000000675       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf902.a(cprof2.o)
- .comment       0x0000000000000694       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf902.a(genlist.o)
- .comment       0x00000000000006b3       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf902.a(hand.o)
- .comment       0x00000000000006d2       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf902.a(stat.o)
- .comment       0x00000000000006f1       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf902.a(trace.o)
- .comment       0x0000000000000710       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf902.a(trace2.o)
- .comment       0x000000000000072f       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf902.a(xfer_heap_dum.o)
- .comment       0x000000000000074e       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(dacos.o)
- .comment       0x000000000000076d       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(ftncharsup.o)
- .comment       0x000000000000078c       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(flush3f.o)
- .comment       0x00000000000007ab       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(getenv3f.o)
- .comment       0x00000000000007ca       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(fdate3f.o)
- .comment       0x00000000000007e9       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(getarg3f.o)
- .comment       0x0000000000000808       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(cvt.o)
- .comment       0x0000000000000827       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(utils3f.o)
- .comment       0x0000000000000846       0x1f /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(utils.o)
- .comment       0x0000000000000865       0x1f /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(pgifiodf.o)
- .comment       0x0000000000000884       0x1f /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(error.o)
- .comment       0x00000000000008a3       0x1f /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(ftnexit.o)
- .comment       0x00000000000008c2       0x1f /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(open.o)
- .comment       0x00000000000008e1       0x1f /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(close.o)
- .comment       0x0000000000000900       0x1f /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(cnfg.o)
- .comment       0x000000000000091f       0x1f /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(pgdummy.o)
- .comment       0x000000000000093e       0x1f /usr/pgi/linux86-64/6.0/lib/libpgc.a(mthi64.o)
- .comment       0x000000000000095d       0x1f /usr/pgi/linux86-64/6.0/lib/libpgc.a(dpowi.o)
- .comment       0x000000000000097c       0x1f /usr/pgi/linux86-64/6.0/lib/libpgc.a(pgstdinit.o)
- .comment       0x000000000000099b       0x1f /usr/pgi/linux86-64/6.0/lib/libpgc.a(mpmalloc.o)
- .comment       0x00000000000009ba       0x1f /usr/pgi/linux86-64/6.0/lib/libpgc.a(rtcrit.o)
- .comment       0x00000000000009d9       0x1f /usr/pgi/linux86-64/6.0/lib/libpgc.a(pgtempnam.o)
- .comment       0x00000000000009f8       0x1f /usr/pgi/linux86-64/6.0/lib/libpgc.a(va_arg.o)
- .comment       0x0000000000000a17       0x1f /usr/pgi/linux86-64/6.0/lib/libpgc.a(pgargs.o)
- .comment       0x0000000000000a36       0x1f /usr/pgi/linux86-64/6.0/lib/libpgc.a(dsincosp.o)
- .comment       0x0000000000000a55       0x1f /usr/pgi/linux86-64/6.0/lib/libpgc.a(dtan.o)
- .comment       0x0000000000000a74       0x1f /usr/pgi/linux86-64/6.0/lib/libpgc.a(datan.o)
- .comment       0x0000000000000a93       0x31 /usr/lib/gcc/x86_64-redhat-linux/3.4.2/crtend.o
- .comment       0x0000000000000ac4       0x31 /usr/lib64/crtn.o
-
-.debug
- *(.debug)
-
-.line
- *(.line)
-
-.debug_srcinfo
- *(.debug_srcinfo)
-
-.debug_sfnames
- *(.debug_sfnames)
-
-.debug_aranges  0x0000000000000000      0xa00
- *(.debug_aranges)
- .debug_aranges
-                0x0000000000000000       0x50 main_clust.o
- .debug_aranges
-                0x0000000000000050       0x50 arcos.o
- .debug_aranges
-                0x00000000000000a0       0x50 cartprint.o
- .debug_aranges
-                0x00000000000000f0       0x50 chainbuild.o
- .debug_aranges
-                0x0000000000000140       0x50 convert.o
- .debug_aranges
-                0x0000000000000190       0x50 initialize_p.o
- .debug_aranges
-                0x00000000000001e0       0x50 matmult.o
- .debug_aranges
-                0x0000000000000230       0x50 readrtns.o
- .debug_aranges
-                0x0000000000000280       0x50 pinorm.o
- .debug_aranges
-                0x00000000000002d0       0x50 rescode.o
- .debug_aranges
-                0x0000000000000320       0x50 intcor.o
- .debug_aranges
-                0x0000000000000370       0x50 timing.o
- .debug_aranges
-                0x00000000000003c0       0x50 misc.o
- .debug_aranges
-                0x0000000000000410       0x50 geomout.o
- .debug_aranges
-                0x0000000000000460       0x50 readpdb.o
- .debug_aranges
-                0x00000000000004b0       0x50 read_coords.o
- .debug_aranges
-                0x0000000000000500       0x50 parmread.o
- .debug_aranges
-                0x0000000000000550       0x50 probabl.o
- .debug_aranges
-                0x00000000000005a0       0x50 fitsq.o
- .debug_aranges
-                0x00000000000005f0       0x50 hc.o
- .debug_aranges
-                0x0000000000000640       0x50 track.o
- .debug_aranges
-                0x0000000000000690       0x50 wrtclust.o
- .debug_aranges
-                0x00000000000006e0       0x50 srtclust.o
- .debug_aranges
-                0x0000000000000730       0x50 noyes.o
- .debug_aranges
-                0x0000000000000780       0x50 contact.o
- .debug_aranges
-                0x00000000000007d0       0x50 printmat.o
- .debug_aranges
-                0x0000000000000820       0x50 int_from_cart1.o
- .debug_aranges
-                0x0000000000000870       0x50 energy_p_new.o
- .debug_aranges
-                0x00000000000008c0       0x50 icant.o
- .debug_aranges
-                0x0000000000000910       0x50 work_partition.o
- .debug_aranges
-                0x0000000000000960       0x50 setup_var.o
- .debug_aranges
-                0x00000000000009b0       0x50 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-
-.debug_pubnames
-                0x0000000000000000      0xb1a
- *(.debug_pubnames)
- .debug_pubnames
-                0x0000000000000000       0x33 main_clust.o
- .debug_pubnames
-                0x0000000000000033       0x1c arcos.o
- .debug_pubnames
-                0x000000000000004f       0x20 cartprint.o
- .debug_pubnames
-                0x000000000000006f       0x5a chainbuild.o
- .debug_pubnames
-                0x00000000000000c9       0x32 convert.o
- .debug_pubnames
-                0x00000000000000fb       0x58 initialize_p.o
- .debug_pubnames
-                0x0000000000000153       0x1e matmult.o
- .debug_pubnames
-                0x0000000000000171       0x9c readrtns.o
- .debug_pubnames
-                0x000000000000020d       0x1d pinorm.o
- .debug_pubnames
-                0x000000000000022a       0x1e rescode.o
- .debug_pubnames
-                0x0000000000000248       0x2e intcor.o
- .debug_pubnames
-                0x0000000000000276       0x4b timing.o
- .debug_pubnames
-                0x00000000000002c1       0x93 misc.o
- .debug_pubnames
-                0x0000000000000354       0x4d geomout.o
- .debug_pubnames
-                0x00000000000003a1       0x3d readpdb.o
- .debug_pubnames
-                0x00000000000003de       0xa9 read_coords.o
- .debug_pubnames
-                0x0000000000000487       0x1f parmread.o
- .debug_pubnames
-                0x00000000000004a6       0x2a probabl.o
- .debug_pubnames
-                0x00000000000004d0       0x63 fitsq.o
- .debug_pubnames
-                0x0000000000000533       0x39 hc.o
- .debug_pubnames
-                0x000000000000056c       0x35 track.o
- .debug_pubnames
-                0x00000000000005a1       0x1f wrtclust.o
- .debug_pubnames
-                0x00000000000005c0       0x1f srtclust.o
- .debug_pubnames
-                0x00000000000005df       0x1c noyes.o
- .debug_pubnames
-                0x00000000000005fb       0x30 contact.o
- .debug_pubnames
-                0x000000000000062b       0x1f printmat.o
- .debug_pubnames
-                0x000000000000064a       0x25 int_from_cart1.o
- .debug_pubnames
-                0x000000000000066f      0x2df energy_p_new.o
- .debug_pubnames
-                0x000000000000094e       0x1c icant.o
- .debug_pubnames
-                0x000000000000096a       0x25 work_partition.o
- .debug_pubnames
-                0x000000000000098f       0x20 setup_var.o
- .debug_pubnames
-                0x00000000000009af      0x16b /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-
-.debug_info     0x0000000000000000    0xd920c
- *(.debug_info .gnu.linkonce.wi.*)
- .debug_info    0x0000000000000000     0x5ee0 main_clust.o
- .debug_info    0x0000000000005ee0      0x174 arcos.o
- .debug_info    0x0000000000006054     0x168c cartprint.o
- .debug_info    0x00000000000076e0     0x6937 chainbuild.o
- .debug_info    0x000000000000e017      0xee2 convert.o
- .debug_info    0x000000000000eef9     0x80c1 initialize_p.o
- .debug_info    0x0000000000016fba      0x30e matmult.o
- .debug_info    0x00000000000172c8     0xb255 readrtns.o
- .debug_info    0x000000000002251d      0x17f pinorm.o
- .debug_info    0x000000000002269c      0xae7 rescode.o
- .debug_info    0x0000000000023183     0x12a1 intcor.o
- .debug_info    0x0000000000024424     0x1528 timing.o
- .debug_info    0x000000000002594c      0x725 misc.o
- .debug_info    0x0000000000026071     0x9528 geomout.o
- .debug_info    0x000000000002f599     0x4364 readpdb.o
- .debug_info    0x00000000000338fd    0x13ada read_coords.o
- .debug_info    0x00000000000473d7     0x2a9a parmread.o
- .debug_info    0x0000000000049e71     0x3637 probabl.o
- .debug_info    0x000000000004d4a8     0x1457 fitsq.o
- .debug_info    0x000000000004e8ff     0x17e5 hc.o
- .debug_info    0x00000000000500e4     0x2afe track.o
- .debug_info    0x0000000000052be2     0x1a13 wrtclust.o
- .debug_info    0x00000000000545f5     0x1072 srtclust.o
- .debug_info    0x0000000000055667       0xb8 noyes.o
- .debug_info    0x000000000005571f     0x24d6 contact.o
- .debug_info    0x0000000000057bf5      0x177 printmat.o
- .debug_info    0x0000000000057d6c     0x1f2e int_from_cart1.o
- .debug_info    0x0000000000059c9a    0x78f44 energy_p_new.o
- .debug_info    0x00000000000d2bde       0xb0 icant.o
- .debug_info    0x00000000000d2c8e     0x1fe7 work_partition.o
- .debug_info    0x00000000000d4c75     0x194a setup_var.o
- .debug_info    0x00000000000d65bf     0x2c4d /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-
-.debug_abbrev   0x0000000000000000    0x5338a
- *(.debug_abbrev)
- .debug_abbrev  0x0000000000000000     0x2782 main_clust.o
- .debug_abbrev  0x0000000000002782       0xb8 arcos.o
- .debug_abbrev  0x000000000000283a      0x8be cartprint.o
- .debug_abbrev  0x00000000000030f8     0x293c chainbuild.o
- .debug_abbrev  0x0000000000005a34      0x632 convert.o
- .debug_abbrev  0x0000000000006066     0x3730 initialize_p.o
- .debug_abbrev  0x0000000000009796      0x1b2 matmult.o
- .debug_abbrev  0x0000000000009948     0x49d0 readrtns.o
- .debug_abbrev  0x000000000000e318       0xbc pinorm.o
- .debug_abbrev  0x000000000000e3d4      0x54a rescode.o
- .debug_abbrev  0x000000000000e91e      0x986 intcor.o
- .debug_abbrev  0x000000000000f2a4      0xa88 timing.o
- .debug_abbrev  0x000000000000fd2c      0x476 misc.o
- .debug_abbrev  0x00000000000101a2     0x3abe geomout.o
- .debug_abbrev  0x0000000000013c60     0x1aae readpdb.o
- .debug_abbrev  0x000000000001570e     0x832e read_coords.o
- .debug_abbrev  0x000000000001da3c     0x110e parmread.o
- .debug_abbrev  0x000000000001eb4a     0x1800 probabl.o
- .debug_abbrev  0x000000000002034a      0xaa6 fitsq.o
- .debug_abbrev  0x0000000000020df0      0xc16 hc.o
- .debug_abbrev  0x0000000000021a06     0x13fe track.o
- .debug_abbrev  0x0000000000022e04      0xbc6 wrtclust.o
- .debug_abbrev  0x00000000000239ca      0x7c2 srtclust.o
- .debug_abbrev  0x000000000002418c       0x5e noyes.o
- .debug_abbrev  0x00000000000241ea     0x1014 contact.o
- .debug_abbrev  0x00000000000251fe       0xcf printmat.o
- .debug_abbrev  0x00000000000252cd      0xc1a int_from_cart1.o
- .debug_abbrev  0x0000000000025ee7    0x2aac4 energy_p_new.o
- .debug_abbrev  0x00000000000509ab       0x5b icant.o
- .debug_abbrev  0x0000000000050a06      0xed6 work_partition.o
- .debug_abbrev  0x00000000000518dc      0xa12 setup_var.o
- .debug_abbrev  0x00000000000522ee     0x109c /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-
-.debug_line     0x0000000000000000    0x14996
- *(.debug_line)
- .debug_line    0x0000000000000000      0xc09 main_clust.o
- .debug_line    0x0000000000000c09       0xa0 arcos.o
- .debug_line    0x0000000000000ca9       0xa4 cartprint.o
- .debug_line    0x0000000000000d4d      0x7e9 chainbuild.o
- .debug_line    0x0000000000001536      0x1c2 convert.o
- .debug_line    0x00000000000016f8      0xe6f initialize_p.o
- .debug_line    0x0000000000002567       0xf6 matmult.o
- .debug_line    0x000000000000265d      0xff7 readrtns.o
- .debug_line    0x0000000000003654       0xc5 pinorm.o
- .debug_line    0x0000000000003719      0x132 rescode.o
- .debug_line    0x000000000000384b      0x2b1 intcor.o
- .debug_line    0x0000000000003afc      0x1c1 timing.o
- .debug_line    0x0000000000003cbd      0x67b misc.o
- .debug_line    0x0000000000004338      0x4da geomout.o
- .debug_line    0x0000000000004812      0x61e readpdb.o
- .debug_line    0x0000000000004e30      0x9ca read_coords.o
- .debug_line    0x00000000000057fa     0x1303 parmread.o
- .debug_line    0x0000000000006afd      0x55e probabl.o
- .debug_line    0x000000000000705b      0xd90 fitsq.o
- .debug_line    0x0000000000007deb      0xaf9 hc.o
- .debug_line    0x00000000000088e4      0x7f0 track.o
- .debug_line    0x00000000000090d4      0x787 wrtclust.o
- .debug_line    0x000000000000985b      0x3df srtclust.o
- .debug_line    0x0000000000009c3a       0xe8 noyes.o
- .debug_line    0x0000000000009d22      0x22e contact.o
- .debug_line    0x0000000000009f50       0xd3 printmat.o
- .debug_line    0x000000000000a023      0x271 int_from_cart1.o
- .debug_line    0x000000000000a294     0xa187 energy_p_new.o
- .debug_line    0x000000000001441b       0xac icant.o
- .debug_line    0x00000000000144c7      0x259 work_partition.o
- .debug_line    0x0000000000014720      0x14c setup_var.o
- .debug_line    0x000000000001486c      0x12a /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-
-.debug_frame    0x0000000000000000     0x6940
- *(.debug_frame)
- .debug_frame   0x0000000000000000       0x78 main_clust.o
- .debug_frame   0x0000000000000078       0x38 arcos.o
- .debug_frame   0x00000000000000b0       0x38 cartprint.o
- .debug_frame   0x00000000000000e8       0x98 chainbuild.o
- .debug_frame   0x0000000000000180       0x58 convert.o
- .debug_frame   0x00000000000001d8       0x98 initialize_p.o
- .debug_frame   0x0000000000000270       0x38 matmult.o
- .debug_frame   0x00000000000002a8      0x158 readrtns.o
- .debug_frame   0x0000000000000400       0x38 pinorm.o
- .debug_frame   0x0000000000000438       0x38 rescode.o
- .debug_frame   0x0000000000000470       0x78 intcor.o
- .debug_frame   0x00000000000004e8       0xb8 timing.o
- .debug_frame   0x00000000000005a0      0x178 misc.o
- .debug_frame   0x0000000000000718       0xb8 geomout.o
- .debug_frame   0x00000000000007d0       0x78 readpdb.o
- .debug_frame   0x0000000000000848       0xf8 read_coords.o
- .debug_frame   0x0000000000000940       0x38 parmread.o
- .debug_frame   0x0000000000000978       0x58 probabl.o
- .debug_frame   0x00000000000009d0      0x118 fitsq.o
- .debug_frame   0x0000000000000ae8       0x98 hc.o
- .debug_frame   0x0000000000000b80       0x78 track.o
- .debug_frame   0x0000000000000bf8       0x38 wrtclust.o
- .debug_frame   0x0000000000000c30       0x38 srtclust.o
- .debug_frame   0x0000000000000c68       0x38 noyes.o
- .debug_frame   0x0000000000000ca0       0x58 contact.o
- .debug_frame   0x0000000000000cf8       0x38 printmat.o
- .debug_frame   0x0000000000000d30       0x38 int_from_cart1.o
- .debug_frame   0x0000000000000d68      0x718 energy_p_new.o
- .debug_frame   0x0000000000001480       0x38 icant.o
- .debug_frame   0x00000000000014b8       0x38 work_partition.o
- .debug_frame   0x00000000000014f0       0x38 setup_var.o
- .debug_frame   0x0000000000001528       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(abortf.o)
- .debug_frame   0x0000000000001560       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(allgatherf.o)
- .debug_frame   0x0000000000001598       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bcastf.o)
- .debug_frame   0x00000000000015d0       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_rankf.o)
- .debug_frame   0x0000000000001608       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_sizef.o)
- .debug_frame   0x0000000000001640       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(dup_fnf.o)
- .debug_frame   0x0000000000001678       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(finalizef.o)
- .debug_frame   0x00000000000016b0       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(gathervf.o)
- .debug_frame   0x00000000000016e8       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initf.o)
- .debug_frame   0x0000000000001720       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(null_copyfnf.o)
- .debug_frame   0x0000000000001758       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(null_del_fnf.o)
- .debug_frame   0x0000000000001790       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(recvf.o)
- .debug_frame   0x00000000000017c8       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(sendf.o)
- .debug_frame   0x0000000000001800       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtickf.o)
- .debug_frame   0x0000000000001838       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtimef.o)
- .debug_frame   0x0000000000001870       0x58 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(farg.o)
- .debug_frame   0x00000000000018c8       0xd8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
- .debug_frame   0x00000000000019a0       0x58 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfcmn.o)
- .debug_frame   0x00000000000019f8       0xb8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(mperror.o)
- .debug_frame   0x0000000000001ab0       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(send.o)
- .debug_frame   0x0000000000001ae8       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(recv.o)
- .debug_frame   0x0000000000001b20       0xf8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_util.o)
- .debug_frame   0x0000000000001c18       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(abort.o)
- .debug_frame   0x0000000000001c50       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(init.o)
- .debug_frame   0x0000000000001c88       0x78 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o)
- .debug_frame   0x0000000000001d00       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(finalize.o)
- .debug_frame   0x0000000000001d38       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(errorstring.o)
- .debug_frame   0x0000000000001d70       0xb8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
- .debug_frame   0x0000000000001e28       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(errfree.o)
- .debug_frame   0x0000000000001e60       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtime.o)
- .debug_frame   0x0000000000001e98       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtick.o)
- .debug_frame   0x0000000000001ed0       0xf8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(nerrmsg.o)
- .debug_frame   0x0000000000001fc8       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(msgqdllloc.o)
- .debug_frame   0x0000000000002000      0x158 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(util_hbt.o)
- .debug_frame   0x0000000000002158      0x158 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(ptrcvt.o)
- .debug_frame   0x00000000000022b0       0xd8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bsendutil2.o)
- .debug_frame   0x0000000000002388       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(keyval_free.o)
- .debug_frame   0x00000000000023c0       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(attr_getval.o)
- .debug_frame   0x00000000000023f8      0x158 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(attr_util.o)
- .debug_frame   0x0000000000002550       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(attr_putval.o)
- .debug_frame   0x0000000000002588       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(group_free.o)
- .debug_frame   0x00000000000025c0      0x118 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(group_util.o)
- .debug_frame   0x00000000000026d8       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_free.o)
- .debug_frame   0x0000000000002710       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_rank.o)
- .debug_frame   0x0000000000002748       0x58 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_name_put.o)
- .debug_frame   0x00000000000027a0       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_size.o)
- .debug_frame   0x00000000000027d8      0x138 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_util.o)
- .debug_frame   0x0000000000002910       0x58 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(context_util.o)
- .debug_frame   0x0000000000002968       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(dup_fn.o)
- .debug_frame   0x00000000000029a0       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(barrier.o)
- .debug_frame   0x00000000000029d8       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bcast.o)
- .debug_frame   0x0000000000002a10       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(gatherv.o)
- .debug_frame   0x0000000000002a48       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(allgather.o)
- .debug_frame   0x0000000000002a80       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(allreduce.o)
- .debug_frame   0x0000000000002ab8      0x198 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(global_ops.o)
- .debug_frame   0x0000000000002c50       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(opfree.o)
- .debug_frame   0x0000000000002c88       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(oputil.o)
- .debug_frame   0x0000000000002cc0      0x1f8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(inter_fns.o)
- .debug_frame   0x0000000000002eb8      0x1b8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_fns_new.o)
- .debug_frame   0x0000000000003070       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_scan.o)
- .debug_frame   0x00000000000030a8       0xd8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(topo_util.o)
- .debug_frame   0x0000000000003180       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(statusc2f.o)
- .debug_frame   0x00000000000031b8      0x418 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_utils.o)
- .debug_frame   0x00000000000035d0       0xf8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_bm.o)
- .debug_frame   0x00000000000036c8       0x78 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_rm.o)
- .debug_frame   0x0000000000003740      0x2f8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_util.o)
- .debug_frame   0x0000000000003a38       0xb8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_cr.o)
- .debug_frame   0x0000000000003af0       0xb8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_conn.o)
- .debug_frame   0x0000000000003ba8      0x1d8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_sr.o)
- .debug_frame   0x0000000000003d80      0x118 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_list.o)
- .debug_frame   0x0000000000003e98       0xf8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_secure.o)
- .debug_frame   0x0000000000003f90       0x58 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(usc.o)
- .debug_frame   0x0000000000003fe8      0x138 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2init.o)
- .debug_frame   0x0000000000004120       0x58 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2hsend.o)
- .debug_frame   0x0000000000004178       0x58 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2hrecv.o)
- .debug_frame   0x00000000000041d0       0xb8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2pack.o)
- .debug_frame   0x0000000000004288       0x98 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2mpack.o)
- .debug_frame   0x0000000000004320      0x218 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bswap2.o)
- .debug_frame   0x0000000000004538      0x238 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chdebug.o)
- .debug_frame   0x0000000000004770       0x98 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chinit.o)
- .debug_frame   0x0000000000004808       0xf8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chhetero.o)
- .debug_frame   0x0000000000004900       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chtick.o)
- .debug_frame   0x0000000000004938       0x58 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4priv.o)
- .debug_frame   0x0000000000004990      0x158 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(queue.o)
- .debug_frame   0x0000000000004ae8       0x78 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(cmnargs.o)
- .debug_frame   0x0000000000004b60      0x158 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(sbcnst2.o)
- .debug_frame   0x0000000000004cb8       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(session.o)
- .debug_frame   0x0000000000004cf0       0xb8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chpackflow.o)
- .debug_frame   0x0000000000004da8       0x98 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chcancel.o)
- .debug_frame   0x0000000000004e40       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(isend.o)
- .debug_frame   0x0000000000004e78       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(irecv.o)
- .debug_frame   0x0000000000004eb0       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wait.o)
- .debug_frame   0x0000000000004ee8       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(test.o)
- .debug_frame   0x0000000000004f20       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(cancel.o)
- .debug_frame   0x0000000000004f58       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(waitall.o)
- .debug_frame   0x0000000000004f90       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(sendrecv.o)
- .debug_frame   0x0000000000004fc8       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(testall.o)
- .debug_frame   0x0000000000005000       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(getcount.o)
- .debug_frame   0x0000000000005038       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_commit.o)
- .debug_frame   0x0000000000005070       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_contig.o)
- .debug_frame   0x00000000000050a8       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_extent.o)
- .debug_frame   0x00000000000050e0       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_free.o)
- .debug_frame   0x0000000000005118       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_ind.o)
- .debug_frame   0x0000000000005150       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_lb.o)
- .debug_frame   0x0000000000005188       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_size.o)
- .debug_frame   0x00000000000051c0       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_struct.o)
- .debug_frame   0x00000000000051f8       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(pack_size.o)
- .debug_frame   0x0000000000005230       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(pack.o)
- .debug_frame   0x0000000000005268       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(unpack.o)
- .debug_frame   0x00000000000052a0       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
- .debug_frame   0x00000000000052d8       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(errset.o)
- .debug_frame   0x0000000000005310      0x138 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(pkutil.o)
- .debug_frame   0x0000000000005448       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(keyvalcreate.o)
- .debug_frame   0x0000000000005480       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(reduce.o)
- .debug_frame   0x00000000000054b8      0x118 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_MD.o)
- .debug_frame   0x00000000000055d0       0xb8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_error.o)
- .debug_frame   0x0000000000005688       0x98 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_args.o)
- .debug_frame   0x0000000000005720      0x198 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_alloc.o)
- .debug_frame   0x00000000000058b8      0x198 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_debug.o)
- .debug_frame   0x0000000000005a50       0x78 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_procgroup.o)
- .debug_frame   0x0000000000005ac8      0x218 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_tsr.o)
- .debug_frame   0x0000000000005ce0      0x218 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_mon.o)
- .debug_frame   0x0000000000005ef8      0x2d8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_broadcast.o)
- .debug_frame   0x00000000000061d0       0xb8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2recv.o)
- .debug_frame   0x0000000000006288       0xb8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2send.o)
- .debug_frame   0x0000000000006340       0x58 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2cancel.o)
- .debug_frame   0x0000000000006398      0x138 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chbeager.o)
- .debug_frame   0x00000000000064d0      0x1b8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chbrndv.o)
- .debug_frame   0x0000000000006688       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chchkdev.o)
- .debug_frame   0x00000000000066c0       0xf8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chshort.o)
- .debug_frame   0x00000000000067b8       0xd8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chflow.o)
- .debug_frame   0x0000000000006890       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_hind.o)
- .debug_frame   0x00000000000068c8       0x78 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(dmpipk.o)
-
-.debug_str
- *(.debug_str)
-
-.debug_loc
- *(.debug_loc)
-
-.debug_macinfo
- *(.debug_macinfo)
-
-.debug_weaknames
- *(.debug_weaknames)
-
-.debug_funcnames
- *(.debug_funcnames)
-
-.debug_typenames
- *(.debug_typenames)
-
-.debug_varnames
- *(.debug_varnames)
-
-/DISCARD/
- *(.note.GNU-stack)
-OUTPUT(/users/adam/ZSCOREZ/bin/unres_clustMD_MPI elf64-x86-64)
-
-.note           0x0000000000000000      0xce4
- .note          0x0000000000000000       0x14 main_clust.o
- .note          0x0000000000000014       0x14 arcos.o
- .note          0x0000000000000028       0x14 cartprint.o
- .note          0x000000000000003c       0x14 chainbuild.o
- .note          0x0000000000000050       0x14 convert.o
- .note          0x0000000000000064       0x14 initialize_p.o
- .note          0x0000000000000078       0x14 matmult.o
- .note          0x000000000000008c       0x14 readrtns.o
- .note          0x00000000000000a0       0x14 pinorm.o
- .note          0x00000000000000b4       0x14 rescode.o
- .note          0x00000000000000c8       0x14 intcor.o
- .note          0x00000000000000dc       0x14 timing.o
- .note          0x00000000000000f0       0x14 misc.o
- .note          0x0000000000000104       0x14 geomout.o
- .note          0x0000000000000118       0x14 readpdb.o
- .note          0x000000000000012c       0x14 read_coords.o
- .note          0x0000000000000140       0x14 parmread.o
- .note          0x0000000000000154       0x14 probabl.o
- .note          0x0000000000000168       0x14 fitsq.o
- .note          0x000000000000017c       0x14 hc.o
- .note          0x0000000000000190       0x14 track.o
- .note          0x00000000000001a4       0x14 wrtclust.o
- .note          0x00000000000001b8       0x14 srtclust.o
- .note          0x00000000000001cc       0x14 noyes.o
- .note          0x00000000000001e0       0x14 contact.o
- .note          0x00000000000001f4       0x14 printmat.o
- .note          0x0000000000000208       0x14 int_from_cart1.o
- .note          0x000000000000021c       0x14 energy_p_new.o
- .note          0x0000000000000230       0x14 icant.o
- .note          0x0000000000000244       0x14 work_partition.o
- .note          0x0000000000000258       0x14 setup_var.o
- .note          0x000000000000026c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(abortf.o)
- .note          0x0000000000000280       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(allgatherf.o)
- .note          0x0000000000000294       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bcastf.o)
- .note          0x00000000000002a8       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_rankf.o)
- .note          0x00000000000002bc       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_sizef.o)
- .note          0x00000000000002d0       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(dup_fnf.o)
- .note          0x00000000000002e4       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(finalizef.o)
- .note          0x00000000000002f8       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(gathervf.o)
- .note          0x000000000000030c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initf.o)
- .note          0x0000000000000320       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(null_copyfnf.o)
- .note          0x0000000000000334       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(null_del_fnf.o)
- .note          0x0000000000000348       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(recvf.o)
- .note          0x000000000000035c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(sendf.o)
- .note          0x0000000000000370       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtickf.o)
- .note          0x0000000000000384       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtimef.o)
- .note          0x0000000000000398       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(farg.o)
- .note          0x00000000000003ac       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
- .note          0x00000000000003c0       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfcmn.o)
- .note          0x00000000000003d4       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(mperror.o)
- .note          0x00000000000003e8       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(send.o)
- .note          0x00000000000003fc       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(recv.o)
- .note          0x0000000000000410       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_util.o)
- .note          0x0000000000000424       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(abort.o)
- .note          0x0000000000000438       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(init.o)
- .note          0x000000000000044c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o)
- .note          0x0000000000000460       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(finalize.o)
- .note          0x0000000000000474       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(errorstring.o)
- .note          0x0000000000000488       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
- .note          0x000000000000049c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(errfree.o)
- .note          0x00000000000004b0       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtime.o)
- .note          0x00000000000004c4       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtick.o)
- .note          0x00000000000004d8       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(nerrmsg.o)
- .note          0x00000000000004ec       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(msgqdllloc.o)
- .note          0x0000000000000500       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(util_hbt.o)
- .note          0x0000000000000514       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(ptrcvt.o)
- .note          0x0000000000000528       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bsendutil2.o)
- .note          0x000000000000053c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(keyval_free.o)
- .note          0x0000000000000550       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(attr_getval.o)
- .note          0x0000000000000564       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(attr_util.o)
- .note          0x0000000000000578       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(attr_putval.o)
- .note          0x000000000000058c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(group_free.o)
- .note          0x00000000000005a0       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(group_util.o)
- .note          0x00000000000005b4       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_free.o)
- .note          0x00000000000005c8       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_rank.o)
- .note          0x00000000000005dc       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_name_put.o)
- .note          0x00000000000005f0       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_size.o)
- .note          0x0000000000000604       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_util.o)
- .note          0x0000000000000618       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(context_util.o)
- .note          0x000000000000062c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(dup_fn.o)
- .note          0x0000000000000640       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(barrier.o)
- .note          0x0000000000000654       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bcast.o)
- .note          0x0000000000000668       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(gatherv.o)
- .note          0x000000000000067c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(allgather.o)
- .note          0x0000000000000690       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(allreduce.o)
- .note          0x00000000000006a4       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(global_ops.o)
- .note          0x00000000000006b8       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(opfree.o)
- .note          0x00000000000006cc       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(oputil.o)
- .note          0x00000000000006e0       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(inter_fns.o)
- .note          0x00000000000006f4       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_fns_new.o)
- .note          0x0000000000000708       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_scan.o)
- .note          0x000000000000071c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(topo_util.o)
- .note          0x0000000000000730       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(statusc2f.o)
- .note          0x0000000000000744       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_utils.o)
- .note          0x0000000000000758       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_bm.o)
- .note          0x000000000000076c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_rm.o)
- .note          0x0000000000000780       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_util.o)
- .note          0x0000000000000794       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_cr.o)
- .note          0x00000000000007a8       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_conn.o)
- .note          0x00000000000007bc       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_sr.o)
- .note          0x00000000000007d0       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_list.o)
- .note          0x00000000000007e4       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_secure.o)
- .note          0x00000000000007f8       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(usc.o)
- .note          0x000000000000080c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2init.o)
- .note          0x0000000000000820       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2hsend.o)
- .note          0x0000000000000834       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2hrecv.o)
- .note          0x0000000000000848       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2pack.o)
- .note          0x000000000000085c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2mpack.o)
- .note          0x0000000000000870       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bswap2.o)
- .note          0x0000000000000884       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chdebug.o)
- .note          0x0000000000000898       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chinit.o)
- .note          0x00000000000008ac       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chhetero.o)
- .note          0x00000000000008c0       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chtick.o)
- .note          0x00000000000008d4       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4priv.o)
- .note          0x00000000000008e8       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(queue.o)
- .note          0x00000000000008fc       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(cmnargs.o)
- .note          0x0000000000000910       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(sbcnst2.o)
- .note          0x0000000000000924       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(session.o)
- .note          0x0000000000000938       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chpackflow.o)
- .note          0x000000000000094c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chcancel.o)
- .note          0x0000000000000960       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(isend.o)
- .note          0x0000000000000974       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(irecv.o)
- .note          0x0000000000000988       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wait.o)
- .note          0x000000000000099c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(test.o)
- .note          0x00000000000009b0       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(cancel.o)
- .note          0x00000000000009c4       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(waitall.o)
- .note          0x00000000000009d8       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(sendrecv.o)
- .note          0x00000000000009ec       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(testall.o)
- .note          0x0000000000000a00       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(getcount.o)
- .note          0x0000000000000a14       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_commit.o)
- .note          0x0000000000000a28       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_contig.o)
- .note          0x0000000000000a3c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_extent.o)
- .note          0x0000000000000a50       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_free.o)
- .note          0x0000000000000a64       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_ind.o)
- .note          0x0000000000000a78       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_lb.o)
- .note          0x0000000000000a8c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_size.o)
- .note          0x0000000000000aa0       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_struct.o)
- .note          0x0000000000000ab4       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(pack_size.o)
- .note          0x0000000000000ac8       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(pack.o)
- .note          0x0000000000000adc       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(unpack.o)
- .note          0x0000000000000af0       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
- .note          0x0000000000000b04       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(errset.o)
- .note          0x0000000000000b18       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(pkutil.o)
- .note          0x0000000000000b2c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(keyvalcreate.o)
- .note          0x0000000000000b40       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(reduce.o)
- .note          0x0000000000000b54       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
- .note          0x0000000000000b68       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_MD.o)
- .note          0x0000000000000b7c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_error.o)
- .note          0x0000000000000b90       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_args.o)
- .note          0x0000000000000ba4       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_alloc.o)
- .note          0x0000000000000bb8       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_debug.o)
- .note          0x0000000000000bcc       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_procgroup.o)
- .note          0x0000000000000be0       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_tsr.o)
- .note          0x0000000000000bf4       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_mon.o)
- .note          0x0000000000000c08       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_broadcast.o)
- .note          0x0000000000000c1c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2recv.o)
- .note          0x0000000000000c30       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2send.o)
- .note          0x0000000000000c44       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2cancel.o)
- .note          0x0000000000000c58       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chbeager.o)
- .note          0x0000000000000c6c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chbrndv.o)
- .note          0x0000000000000c80       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chchkdev.o)
- .note          0x0000000000000c94       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chshort.o)
- .note          0x0000000000000ca8       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chflow.o)
- .note          0x0000000000000cbc       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_hind.o)
- .note          0x0000000000000cd0       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(dmpipk.o)
index d77c5a4..f023520 100644 (file)
@@ -1,5 +1,6 @@
 #include <stdlib.h>
 #include <math.h>
+#include <stdio.h>
 
 #ifdef CRAY
 void PROC_PROC(long int *f, int *i)
diff --git a/source/cluster/wham/src/CMakeLists.txt b/source/cluster/wham/src/CMakeLists.txt
new file mode 100644 (file)
index 0000000..120d163
--- /dev/null
@@ -0,0 +1,240 @@
+#
+# CMake project file for cluster analysis from WHAM for single-chain proteins  
+# 
+
+enable_language (Fortran)
+
+#================================
+# Set source file lists
+#================================
+set(UNRES_CLUSTER_WHAM_SRC0 
+       arcos.f
+       cartprint.f
+       chainbuild.f
+       contact.f
+       convert.f
+       energy_p_new.F
+       fitsq.f
+       geomout.F
+       hc.f
+       icant.f
+       initialize_p.F
+       intcor.f
+       int_from_cart1.f
+       main_clust.F
+       matmult.f
+       misc.f
+       noyes.f
+       parmread.F
+       pinorm.f
+       probabl.F
+       read_coords.F
+       readpdb.f
+       readrtns.F
+       rescode.f
+       setup_var.f
+       srtclust.f
+       timing.F
+       track.F
+       wrtclust.f
+       work_partition.F
+)
+
+set(UNRES_CLUSTER_WHAM_PP_SRC
+       energy_p_new.F
+       initialize_p.F
+       geomout.F
+       main_clust.F
+       parmread.F
+       probabl.F
+       read_coords.F
+       readrtns.F
+       timing.F
+       track.F
+       work_partition.F
+) 
+
+
+#================================================
+# Set comipiler flags for different sourcefiles  
+#================================================
+if (Fortran_COMPILER_NAME STREQUAL "ifort")
+  set(FFLAGS0 "-ip -w -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres " ) 
+elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
+  set(FFLAGS0 "-I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres " ) 
+endif (Fortran_COMPILER_NAME STREQUAL "ifort")
+
+# Add MPI compiler flags
+if(UNRES_WITH_MPI)
+  set(FFLAGS0 "${FFLAGS0} -I${MPIF_INCLUDE_DIRECTORIES}")
+endif(UNRES_WITH_MPI)
+
+set_property(SOURCE ${UNRES_CLUSTER_WHAM_SRC0} PROPERTY COMPILE_FLAGS ${FFLAGS0} )
+
+set(CPPFLAGS "PROCOR -DSPLITELE -DPROCOR -DCRYST_BOND -DCRYST_THETA -DCRYST_SC" )
+
+if (Fortran_COMPILER_NAME STREQUAL "ifort")
+  # Add ifort preprocessor flags
+  set(CPPFLAGS "${CPPFLAGS} -DPGI") 
+elseif (Fortran_COMPILER_NAME STREQUAL "f95")
+  # Add new gfortran flags
+  set(CPPFLAGS "${CPPFLAGS} -DG77") 
+elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
+  # Add old gfortran flags
+  set(CPPFLAGS "${CPPFLAGS} -DG77") 
+endif (Fortran_COMPILER_NAME STREQUAL "ifort")
+
+
+#=========================================
+# System specific flags
+#=========================================
+if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+  set(CPPFLAGS "${CPPFLAGS} -DLINUX") 
+endif(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+
+#=========================================
+# Add MPI preprocessor flags
+#=========================================
+if (UNRES_WITH_MPI)
+  set(CPPFLAGS "${CPPFLAGS} -DMP -DMPI") 
+endif(UNRES_WITH_MPI)
+
+
+#=========================================
+# Apply preprocesor flags to *.F files
+#=========================================
+set_property(SOURCE ${UNRES_CLUSTER_WHAM_PP_SRC} PROPERTY COMPILE_DEFINITIONS ${CPPFLAGS} )  
+
+
+#========================================
+#  Setting binary name
+#========================================
+set(UNRES_CLUSTER_WHAM_BIN "unres_clustMD.exe")
+
+#=========================================
+# cinfo.f stupid workaround for cmake
+#  - shame on me ]:)
+#=========================================
+#set_property(SOURCE compinfo.c PROPERTY CMAKE_C_FLAGS "-c" )
+#add_executable(compinfo-wham-m compinfo.c)
+#set_target_properties(compinfo-wham-m PROPERTIES OUTPUT_NAME compinfo)
+
+#set(UNRES_CINFO_DIR "${CMAKE_CURRENT_BINARY_DIR}" )
+#add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/cinfo.f 
+#      COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/cinfo.f ${CMAKE_CURRENT_BINARY_DIR}/cinfo.f
+#      COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/COMMON.IOUNITS ${CMAKE_CURRENT_BINARY_DIR}/COMMON.IOUNITS 
+#      COMMAND ${CMAKE_CURRENT_BINARY_DIR}/compinfo | true     
+#      DEPENDS compinfo-wham-m )
+#set_property(SOURCE ${UNRES_CINFO_DIR}/cinfo.f PROPERTY COMPILE_FLAGS ${FFLAGS0} )
+
+set_property(SOURCE proc_proc.c PROPERTY COMPILE_DEFINITIONS "LINUX -DPGI" )  
+
+
+
+#=========================================
+# Set full unres CLUSTER sources
+#=========================================
+set(UNRES_CLUSTER_WHAM_SRCS ${UNRES_CLUSTER_WHAM_SRC0} proc_proc.c)
+
+
+
+#=========================================
+# Build the binary
+#=========================================
+add_executable(UNRES_CLUSTER_WHAM_BIN ${UNRES_CLUSTER_WHAM_SRCS} )
+set_target_properties(UNRES_CLUSTER_WHAM_BIN PROPERTIES OUTPUT_NAME ${UNRES_CLUSTER_WHAM_BIN})
+
+#=========================================
+# Link libraries
+#=========================================
+# link MPI library (libmpich.a)  
+if(UNRES_WITH_MPI)
+  target_link_libraries( UNRES_CLUSTER_WHAM_BIN ${MPIF_LIBRARIES} )
+endif(UNRES_WITH_MPI)
+# link libxdrf.a 
+target_link_libraries( UNRES_CLUSTER_WHAM_BIN xdrf )
+
+#=========================================
+# TESTS 
+#=========================================
+
+#-- Copy all the data files from the test directory into the source directory
+#SET(UNRES_TEST_FILES
+#      ala10.inp
+#    )
+
+#FOREACH (UNRES_TEST_FILE ${UNRES_TEST_FILES})
+#      SET (unres_test_dest "${CMAKE_CURRENT_BINARY_DIR}/${UNRES_TEST_FILE}")
+#      MESSAGE (STATUS " Copying ${UNRES_TEST_FILE} from ${CMAKE_SOURCE_DIR}/examples/unres/MD/ff_gab/${UNRES_TEST_FILE} to ${unres_test_dest}")
+#      ADD_CUSTOM_COMMAND (
+#          TARGET     ${UNRES_BIN}
+#          POST_BUILD
+#          COMMAND    ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/examples/unres/MD/ff_gab/${UNRES_TEST_FILE} ${unres_test_dest}
+#      )
+#ENDFOREACH (UNRES_TEST_FILE ${UNRES_TEST_FILES})
+
+#=========================================
+# Generate data test files
+#=========================================
+#  test_single_ala.sh
+#=========================================
+
+#FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh
+#"#!/bin/sh
+#export POT=GB
+#export PREFIX=ala10
+#-----------------------------------------------------------------------------
+#UNRES_BIN=./${UNRES_BIN}
+#-----------------------------------------------------------------------------
+#DD=${CMAKE_SOURCE_DIR}/PARAM
+#export BONDPAR=$DD/bond.parm
+#export THETPAR=$DD/thetaml.5parm
+#export ROTPAR=$DD/scgauss.parm
+#export TORPAR=$DD/torsion_631Gdp.parm
+#export TORDPAR=$DD/torsion_double_631Gdp.parm
+#export ELEPAR=$DD/electr_631Gdp.parm
+#export SIDEPAR=$DD/sc_GB_opt.1gab_3S_qclass5no310-shan2-sc-16-10-8k
+#export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
+#export SCPPAR=$DD/scp.parm
+#export SCCORPAR=$DD/rotcorr_AM1.parm
+#export PATTERN=$DD/patterns.cart
+#-----------------------------------------------------------------------------
+#$UNRES_BIN
+#")
+
+#=========================================
+#  ala10.inp
+#=========================================
+
+#file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/ala10.inp
+#"ala10 unblocked
+#SEED=-1111333 MD ONE_LETTER rescale_mode=2 PDBOUT
+#nstep=15000 ntwe=100 ntwx=1000 dt=0.1 lang=0 tbf t_bath=300 damax=1.0          &
+#reset_moment=1000 reset_vel=1000 MDPDB
+#WLONG=1.35279 WSCP=1.59304 WELEC=0.71534 WBOND=1.00000 WANG=1.13873            &
+#WSCLOC=0.16258 WTOR=1.98599 WTORD=1.57069 WCORRH=0.42887 WCORR5=0.00000        &
+#WCORR6=0.00000 WEL_LOC=0.16036 WTURN3=1.68722 WTURN4=0.66230 WTURN6=0.00000    &
+#WVDWPP=0.11371 WHPB=1.00000                                                    &
+#CUTOFF=7.00000 WCORR4=0.00000
+#12
+#XAAAAAAAAAAX 
+# 0
+# 0
+#   90.0000   90.0000   90.0000  90.000   90.000   90.000   90.000   90.000 
+#   90.0000   90.0000
+#  180.0000  180.0000  180.0000 180.000  180.000  180.000  180.000  180.000
+#  180.0000
+#  110.0000  110.0000  110.0000 100.000  110.000  100.000  110.000  110.000 
+#  110.0000  110.0000
+# -120.0000 -120.0000 -120.000 -120.000 -120.000 -120.000 -120.000 -120.000
+# -120.0000 -120.0000
+#")
+
+
+# Add tests
+
+#if(NOT UNRES_WITH_MPI)
+
+#  add_test(NAME UNRES_MD_Ala10 COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh )
+
+#endif(NOT UNRES_WITH_MPI)
index 08e2231..f5d44d1 100644 (file)
@@ -2,6 +2,14 @@
 *
 * Array dimensions for level-based conformation comparison program:
 *
+<<<<<<< HEAD
+=======
+* Max. number of conformations in the data set.
+*
+      integer maxconf
+      PARAMETER (MAXCONF=maxstr_proc)
+*
+>>>>>>> aebadf9023e437f497f92dfcf2303c16f60917c1
 * Max. number levels of comparison
 *
       integer maxlevel
diff --git a/source/cluster/wham/src/diff b/source/cluster/wham/src/diff
deleted file mode 100644 (file)
index 5c7ed52..0000000
+++ /dev/null
@@ -1,952 +0,0 @@
-4c4
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-5a6
-> #ifndef ISNAN
-6a8
-> #endif
-83a86,89
-> C
-> C 21/5/07 Calculate local sicdechain correlation energy
-> C
->       call eback_sc_corr(esccor)
-99,125d104
-< C     call multibody(ecorr)
-< C 
-< C Sum the energies
-< C
-< C scale large componenets  
-< c#ifdef SCALE
-< c      ecorr5_scal=1000.0
-< c      eel_loc_scal=100.0
-< c      eello_turn3_scal=100.0
-< c      eello_turn4_scal=100.0
-< c      eturn6_scal=1000.0
-< c      ecorr6_scal=1000.0
-< c#else
-< c      ecorr5_scal=1.0
-< c      eel_loc_scal=1.0
-< c      eello_turn3_scal=1.0
-< c      eello_turn4_scal=1.0
-< c      eturn6_scal=1.0
-< c      ecorr6_scal=1.0
-< c#endif
-< c
-< c      ecorr5=ecorr5/ecorr5_scal
-< c      eel_loc=eel_loc/eel_loc_scal
-< c      eello_turn3=eello_turn3/eello_turn3_scal
-< c      eello_turn4=eello_turn4/eello_turn4_scal
-< c      eturn6=eturn6/eturn6_scal
-< c      ecorr6=ecorr6/ecorr6_scal
-133c112
-<      & +wbond*estr
----
->      & +wbond*estr+wsccor*fact(1)*esccor
-141c120
-<      & +wbond*estr
----
->      & +wbond*estr+wsccor*fact(1)*esccor
-172c151,152
-<       energia(19)=edihcnstr
----
->       energia(19)=esccor
->       energia(20)=edihcnstr
-173a154,160
-> #ifdef ISNAN
-> #ifdef AIX
->       if (isnan(etot).ne.0) energia(0)=1.0d+99
-> #else
->       if (isnan(etot)) energia(0)=1.0d+99
-> #endif
-> #else
-180a168
-> #endif
-201c189,190
-<      &                wturn6*fact(5)*gcorr6_turn(j,i)
----
->      &                wturn6*fact(5)*gcorr6_turn(j,i)+
->      &                wsccor*fact(2)*gsccorc(j,i)
-204c193,194
-<      &                  wstrain*ghpbx(j,i)+wcorr*gradxorr(j,i)
----
->      &                  wstrain*ghpbx(j,i)+wcorr*gradxorr(j,i)+
->      &                  wsccor*fact(2)*gsccorx(j,i)
-218c208,209
-<      &                wturn6*fact(5)*gcorr6_turn(j,i)
----
->      &                wturn6*fact(5)*gcorr6_turn(j,i)+
->      &                wsccor*fact(2)*gsccorc(j,i)
-221c212,213
-<      &                  wstrain*ghpbx(j,i)+wcorr*gradxorr(j,i)
----
->      &                  wstrain*ghpbx(j,i)+wcorr*gradxorr(j,i)+
->      &                  wsccor*fact(1)*gsccorx(j,i)
-224,225d215
-< cd      print '(i3,9(1pe12.4))',i,(gvdwc(k,i),k=1,3),(gelc(k,i),k=1,3),
-< cd   &        (gradc(k,i),k=1,3)
-230d219
-< cd        write (iout,*) i,g_corr5_loc(i)
-237a227
->      &   +wsccor*fact(1)*gsccor_loc(i)
-240,244d229
-< cd    print*,evdw,wsc,evdw2,wscp,ees+evdw1,welec,ebe,wang,
-< cd   &  escloc,wscloc,etors,wtor,ehpb,wstrain,nss,ebr,etot
-< cd    call enerprint(energia(0),fact)
-< cd    call intout
-< cd    stop
-251c236
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-279c264,265
-<       edihcnstr=energia(19)
----
->       esccor=energia(19)
->       edihcnstr=energia(20)
-289c275
-<      &  edihcnstr,ebr*nss,etot
----
->      &  esccor,wsccor*fact(1),edihcnstr,ebr*nss,etot
-308a295
->      & 'ESCCOR=',1pE16.6,' WEIGHT=',1pD16.6,' (backbone-rotamer corr)'/
-318c305,306
-<      &  eello_turn6,wturn6*fact(5),edihcnstr,ebr*nss,etot
----
->      &  eello_turn6,wturn6*fact(5),esccor*fact(1),wsccor,
->      &  edihcnstr,ebr*nss,etot
-336a325
->      & 'ESCCOR=',1pE16.6,' WEIGHT=',1pD16.6,' (backbone-rotamer corr)'/
-351c340
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-360a350
->       include 'COMMON.ENEPS'
-368a359,363
->       do i=1,210
->         do j=1,2
->           eneps_temp(j,i)=0.0d0
->         enddo
->       enddo
-398a394,395
->             eneps_temp(1,ij)=eneps_temp(1,ij)+e1/dabs(eps0ij)
->             eneps_temp(2,ij)=eneps_temp(2,ij)+e2/eps0ij
-512c509
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-519a517
->       include 'COMMON.ENEPS'
-526a525,529
->       do i=1,210
->         do j=1,2
->           eneps_temp(j,i)=0.0d0
->         enddo
->       enddo
-553a557,559
->             eneps_temp(1,ij)=eneps_temp(1,ij)+(e1+a_augm)
->      &        /dabs(eps(itypi,itypj))
->             eneps_temp(2,ij)=eneps_temp(2,ij)+e2/eps(itypi,itypj)
-601c607
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-609a616
->       include 'COMMON.ENEPS'
-616a624,628
->       do i=1,210
->         do j=1,2
->           eneps_temp(j,i)=0.0d0
->         enddo
->       enddo
-688a701,703
->             eneps_temp(1,ij)=eneps_temp(1,ij)+e1*aux
->      &        /dabs(eps(itypi,itypj))
->             eneps_temp(2,ij)=eneps_temp(2,ij)+e2*aux/eps(itypi,itypj)
-728c743
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-736a752
->       include 'COMMON.ENEPS'
-742a759,763
->       do i=1,210
->         do j=1,2
->           eneps_temp(j,i)=0.0d0
->         enddo
->       enddo
-819a841,843
->             eneps_temp(1,ij)=eneps_temp(1,ij)+aux*e1
->      &        /dabs(eps(itypi,itypj))
->             eneps_temp(2,ij)=eneps_temp(2,ij)+aux*e2/eps(itypi,itypj)
-859c883
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-867a892
->       include 'COMMON.ENEPS'
-873a899,903
->       do i=1,210
->         do j=1,2
->           eneps_temp(j,i)=0.0d0
->         enddo
->       enddo
-952a983,987
->             eneps_temp(1,ij)=eneps_temp(1,ij)+aux*(e1+e_augm)
->      &        /dabs(eps(itypi,itypj))
->             eneps_temp(2,ij)=eneps_temp(2,ij)+aux*e2/eps(itypi,itypj)
-> c            eneps_temp(ij)=eneps_temp(ij)
-> c     &         +(evdwij+e_augm)/eps(itypi,itypj)
-1035c1070
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-1073c1108
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-1232c1267
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-1415c1450
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-1500c1535
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-1683c1718
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-2432c2467
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-2699c2734
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-2810c2845
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-2887c2922
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-2968c3003
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-2978a3014
->       double precision u(3),ud(3)
-2988,2989c3024,3027
-<       estr=AKP*estr
-< c      write (iout,*) "estr",estr
----
->       estr=0.5d0*AKP*estr
-> c
-> c 09/18/07 AL: multimodal bond potential based on AM1 CA-SC PMF's included
-> c
-2993,2999c3031,3070
-<           diff=vbld(i+nres)-vbldsc0(iti)
-< c          write (iout,*) i,iti,vbld(i+nres),vbldsc0(iti),diff,
-< c     &      AKSC(iti)*diff*diff
-<           estr=estr+AKSC(iti)*diff*diff
-<           do j=1,3
-<             gradbx(j,i)=AKSC(iti)*diff*dc(j,i+nres)/vbld(i+nres)
-<           enddo
----
->           nbi=nbondterm(iti)
->           if (nbi.eq.1) then
->             diff=vbld(i+nres)-vbldsc0(1,iti)
-> c            write (iout,*) i,iti,vbld(i+nres),vbldsc0(1,iti),diff,
-> c     &      AKSC(1,iti),AKSC(1,iti)*diff*diff
->             estr=estr+0.5d0*AKSC(1,iti)*diff*diff
->             do j=1,3
->               gradbx(j,i)=AKSC(1,iti)*diff*dc(j,i+nres)/vbld(i+nres)
->             enddo
->           else
->             do j=1,nbi
->               diff=vbld(i+nres)-vbldsc0(j,iti)
->               ud(j)=aksc(j,iti)*diff
->               u(j)=abond0(j,iti)+0.5d0*ud(j)*diff
->             enddo
->             uprod=u(1)
->             do j=2,nbi
->               uprod=uprod*u(j)
->             enddo
->             usum=0.0d0
->             usumsqder=0.0d0
->             do j=1,nbi
->               uprod1=1.0d0
->               uprod2=1.0d0
->               do k=1,nbi
->                 if (k.ne.j) then
->                   uprod1=uprod1*u(k)
->                   uprod2=uprod2*u(k)*u(k)
->                 endif
->               enddo
->               usum=usum+uprod1
->               usumsqder=usumsqder+ud(j)*uprod2
->             enddo
-> c            write (iout,*) i,iti,vbld(i+nres),(vbldsc0(j,iti),
-> c     &      AKSC(j,iti),abond0(j,iti),u(j),j=1,nbi)
->             estr=estr+uprod/usum
->             do j=1,3
->              gradbx(j,i)=usumsqder/(usum*usum)*dc(j,i+nres)/vbld(i+nres)
->             enddo
->           endif
-3002,3003d3072
-< c      write (iout,*) "estr",estr
-<       estr=0.5d0*estr
-3005a3075
-> #ifdef CRYST_THETA
-3014c3084
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-3244a3315,3509
-> #else
-> C--------------------------------------------------------------------------
->       subroutine ebend(etheta)
-> C
-> C Evaluate the virtual-bond-angle energy given the virtual-bond dihedral
-> C angles gamma and its derivatives in consecutive thetas and gammas.
-> C ab initio-derived potentials from 
-> c Kozlowska et al., J. Phys.: Condens. Matter 19 (2007) 285203
-> C
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'DIMENSIONS.ZSCOPT'
->       include 'COMMON.LOCAL'
->       include 'COMMON.GEO'
->       include 'COMMON.INTERACT'
->       include 'COMMON.DERIV'
->       include 'COMMON.VAR'
->       include 'COMMON.CHAIN'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.NAMES'
->       include 'COMMON.FFIELD'
->       include 'COMMON.CONTROL'
->       double precision coskt(mmaxtheterm),sinkt(mmaxtheterm),
->      & cosph1(maxsingle),sinph1(maxsingle),cosph2(maxsingle),
->      & sinph2(maxsingle),cosph1ph2(maxdouble,maxdouble),
->      & sinph1ph2(maxdouble,maxdouble)
->       logical lprn /.false./, lprn1 /.false./
->       etheta=0.0D0
-> c      write (iout,*) "ithetyp",(ithetyp(i),i=1,ntyp1)
->       do i=ithet_start,ithet_end
->         dethetai=0.0d0
->         dephii=0.0d0
->         dephii1=0.0d0
->         theti2=0.5d0*theta(i)
->         ityp2=ithetyp(itype(i-1))
->         do k=1,nntheterm
->           coskt(k)=dcos(k*theti2)
->           sinkt(k)=dsin(k*theti2)
->         enddo
->         if (i.gt.3) then
-> #ifdef OSF
->           phii=phi(i)
->           if (phii.ne.phii) phii=150.0
-> #else
->           phii=phi(i)
-> #endif
->           ityp1=ithetyp(itype(i-2))
->           do k=1,nsingle
->             cosph1(k)=dcos(k*phii)
->             sinph1(k)=dsin(k*phii)
->           enddo
->         else
->           phii=0.0d0
->           ityp1=nthetyp+1
->           do k=1,nsingle
->             cosph1(k)=0.0d0
->             sinph1(k)=0.0d0
->           enddo 
->         endif
->         if (i.lt.nres) then
-> #ifdef OSF
->           phii1=phi(i+1)
->           if (phii1.ne.phii1) phii1=150.0
->           phii1=pinorm(phii1)
-> #else
->           phii1=phi(i+1)
-> #endif
->           ityp3=ithetyp(itype(i))
->           do k=1,nsingle
->             cosph2(k)=dcos(k*phii1)
->             sinph2(k)=dsin(k*phii1)
->           enddo
->         else
->           phii1=0.0d0
->           ityp3=nthetyp+1
->           do k=1,nsingle
->             cosph2(k)=0.0d0
->             sinph2(k)=0.0d0
->           enddo
->         endif  
-> c        write (iout,*) "i",i," ityp1",itype(i-2),ityp1,
-> c     &   " ityp2",itype(i-1),ityp2," ityp3",itype(i),ityp3
-> c        call flush(iout)
->         ethetai=aa0thet(ityp1,ityp2,ityp3)
->         do k=1,ndouble
->           do l=1,k-1
->             ccl=cosph1(l)*cosph2(k-l)
->             ssl=sinph1(l)*sinph2(k-l)
->             scl=sinph1(l)*cosph2(k-l)
->             csl=cosph1(l)*sinph2(k-l)
->             cosph1ph2(l,k)=ccl-ssl
->             cosph1ph2(k,l)=ccl+ssl
->             sinph1ph2(l,k)=scl+csl
->             sinph1ph2(k,l)=scl-csl
->           enddo
->         enddo
->         if (lprn) then
->         write (iout,*) "i",i," ityp1",ityp1," ityp2",ityp2,
->      &    " ityp3",ityp3," theti2",theti2," phii",phii," phii1",phii1
->         write (iout,*) "coskt and sinkt"
->         do k=1,nntheterm
->           write (iout,*) k,coskt(k),sinkt(k)
->         enddo
->         endif
->         do k=1,ntheterm
->           ethetai=ethetai+aathet(k,ityp1,ityp2,ityp3)*sinkt(k)
->           dethetai=dethetai+0.5d0*k*aathet(k,ityp1,ityp2,ityp3)
->      &      *coskt(k)
->           if (lprn)
->      &    write (iout,*) "k",k," aathet",aathet(k,ityp1,ityp2,ityp3),
->      &     " ethetai",ethetai
->         enddo
->         if (lprn) then
->         write (iout,*) "cosph and sinph"
->         do k=1,nsingle
->           write (iout,*) k,cosph1(k),sinph1(k),cosph2(k),sinph2(k)
->         enddo
->         write (iout,*) "cosph1ph2 and sinph2ph2"
->         do k=2,ndouble
->           do l=1,k-1
->             write (iout,*) l,k,cosph1ph2(l,k),cosph1ph2(k,l),
->      &         sinph1ph2(l,k),sinph1ph2(k,l) 
->           enddo
->         enddo
->         write(iout,*) "ethetai",ethetai
->         endif
->         do m=1,ntheterm2
->           do k=1,nsingle
->             aux=bbthet(k,m,ityp1,ityp2,ityp3)*cosph1(k)
->      &         +ccthet(k,m,ityp1,ityp2,ityp3)*sinph1(k)
->      &         +ddthet(k,m,ityp1,ityp2,ityp3)*cosph2(k)
->      &         +eethet(k,m,ityp1,ityp2,ityp3)*sinph2(k)
->             ethetai=ethetai+sinkt(m)*aux
->             dethetai=dethetai+0.5d0*m*aux*coskt(m)
->             dephii=dephii+k*sinkt(m)*(
->      &          ccthet(k,m,ityp1,ityp2,ityp3)*cosph1(k)-
->      &          bbthet(k,m,ityp1,ityp2,ityp3)*sinph1(k))
->             dephii1=dephii1+k*sinkt(m)*(
->      &          eethet(k,m,ityp1,ityp2,ityp3)*cosph2(k)-
->      &          ddthet(k,m,ityp1,ityp2,ityp3)*sinph2(k))
->             if (lprn)
->      &      write (iout,*) "m",m," k",k," bbthet",
->      &         bbthet(k,m,ityp1,ityp2,ityp3)," ccthet",
->      &         ccthet(k,m,ityp1,ityp2,ityp3)," ddthet",
->      &         ddthet(k,m,ityp1,ityp2,ityp3)," eethet",
->      &         eethet(k,m,ityp1,ityp2,ityp3)," ethetai",ethetai
->           enddo
->         enddo
->         if (lprn)
->      &  write(iout,*) "ethetai",ethetai
->         do m=1,ntheterm3
->           do k=2,ndouble
->             do l=1,k-1
->               aux=ffthet(l,k,m,ityp1,ityp2,ityp3)*cosph1ph2(l,k)+
->      &            ffthet(k,l,m,ityp1,ityp2,ityp3)*cosph1ph2(k,l)+
->      &            ggthet(l,k,m,ityp1,ityp2,ityp3)*sinph1ph2(l,k)+
->      &            ggthet(k,l,m,ityp1,ityp2,ityp3)*sinph1ph2(k,l)
->               ethetai=ethetai+sinkt(m)*aux
->               dethetai=dethetai+0.5d0*m*coskt(m)*aux
->               dephii=dephii+l*sinkt(m)*(
->      &           -ffthet(l,k,m,ityp1,ityp2,ityp3)*sinph1ph2(l,k)-
->      &            ffthet(k,l,m,ityp1,ityp2,ityp3)*sinph1ph2(k,l)+
->      &            ggthet(l,k,m,ityp1,ityp2,ityp3)*cosph1ph2(l,k)+
->      &            ggthet(k,l,m,ityp1,ityp2,ityp3)*cosph1ph2(k,l))
->               dephii1=dephii1+(k-l)*sinkt(m)*(
->      &           -ffthet(l,k,m,ityp1,ityp2,ityp3)*sinph1ph2(l,k)+
->      &            ffthet(k,l,m,ityp1,ityp2,ityp3)*sinph1ph2(k,l)+
->      &            ggthet(l,k,m,ityp1,ityp2,ityp3)*cosph1ph2(l,k)-
->      &            ggthet(k,l,m,ityp1,ityp2,ityp3)*cosph1ph2(k,l))
->               if (lprn) then
->               write (iout,*) "m",m," k",k," l",l," ffthet",
->      &            ffthet(l,k,m,ityp1,ityp2,ityp3),
->      &            ffthet(k,l,m,ityp1,ityp2,ityp3)," ggthet",
->      &            ggthet(l,k,m,ityp1,ityp2,ityp3),
->      &            ggthet(k,l,m,ityp1,ityp2,ityp3)," ethetai",ethetai
->               write (iout,*) cosph1ph2(l,k)*sinkt(m),
->      &            cosph1ph2(k,l)*sinkt(m),
->      &            sinph1ph2(l,k)*sinkt(m),sinph1ph2(k,l)*sinkt(m)
->               endif
->             enddo
->           enddo
->         enddo
-> 10      continue
->         if (lprn1) write (iout,'(i2,3f8.1,9h ethetai ,f10.5)') 
->      &   i,theta(i)*rad2deg,phii*rad2deg,
->      &   phii1*rad2deg,ethetai
->         etheta=etheta+ethetai
->         if (i.gt.3) gloc(i-3,icg)=gloc(i-3,icg)+wang*dephii
->         if (i.lt.nres) gloc(i-2,icg)=gloc(i-2,icg)+wang*dephii1
->         gloc(nphi+i-2,icg)=wang*dethetai
->       enddo
->       return
->       end
-> #endif
-> #ifdef CRYST_SC
-3252c3517
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-3525a3791,4113
-> #else
-> c----------------------------------------------------------------------------------
->       subroutine esc(escloc)
-> C Calculate the local energy of a side chain and its derivatives in the
-> C corresponding virtual-bond valence angles THETA and the spherical angles 
-> C ALPHA and OMEGA derived from AM1 all-atom calculations.
-> C added by Urszula Kozlowska. 07/11/2007
-> C
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'DIMENSIONS.ZSCOPT'
->       include 'COMMON.GEO'
->       include 'COMMON.LOCAL'
->       include 'COMMON.VAR'
->       include 'COMMON.SCROT'
->       include 'COMMON.INTERACT'
->       include 'COMMON.DERIV'
->       include 'COMMON.CHAIN'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.NAMES'
->       include 'COMMON.FFIELD'
->       include 'COMMON.CONTROL'
->       include 'COMMON.VECTORS'
->       double precision x_prime(3),y_prime(3),z_prime(3)
->      &    , sumene,dsc_i,dp2_i,x(65),
->      &     xx,yy,zz,sumene1,sumene2,sumene3,sumene4,s1,s1_6,s2,s2_6,
->      &    de_dxx,de_dyy,de_dzz,de_dt
->       double precision s1_t,s1_6_t,s2_t,s2_6_t
->       double precision 
->      & dXX_Ci1(3),dYY_Ci1(3),dZZ_Ci1(3),dXX_Ci(3),
->      & dYY_Ci(3),dZZ_Ci(3),dXX_XYZ(3),dYY_XYZ(3),dZZ_XYZ(3),
->      & dt_dCi(3),dt_dCi1(3)
->       common /sccalc/ time11,time12,time112,theti,it,nlobit
->       delta=0.02d0*pi
->       escloc=0.0D0
->       do i=loc_start,loc_end
->         costtab(i+1) =dcos(theta(i+1))
->         sinttab(i+1) =dsqrt(1-costtab(i+1)*costtab(i+1))
->         cost2tab(i+1)=dsqrt(0.5d0*(1.0d0+costtab(i+1)))
->         sint2tab(i+1)=dsqrt(0.5d0*(1.0d0-costtab(i+1)))
->         cosfac2=0.5d0/(1.0d0+costtab(i+1))
->         cosfac=dsqrt(cosfac2)
->         sinfac2=0.5d0/(1.0d0-costtab(i+1))
->         sinfac=dsqrt(sinfac2)
->         it=itype(i)
->         if (it.eq.10) goto 1
-> c
-> C  Compute the axes of tghe local cartesian coordinates system; store in
-> c   x_prime, y_prime and z_prime 
-> c
->         do j=1,3
->           x_prime(j) = 0.00
->           y_prime(j) = 0.00
->           z_prime(j) = 0.00
->         enddo
-> C        write(2,*) "dc_norm", dc_norm(1,i+nres),dc_norm(2,i+nres),
-> C     &   dc_norm(3,i+nres)
->         do j = 1,3
->           x_prime(j) = (dc_norm(j,i) - dc_norm(j,i-1))*cosfac
->           y_prime(j) = (dc_norm(j,i) + dc_norm(j,i-1))*sinfac
->         enddo
->         do j = 1,3
->           z_prime(j) = -uz(j,i-1)
->         enddo     
-> c       write (2,*) "i",i
-> c       write (2,*) "x_prime",(x_prime(j),j=1,3)
-> c       write (2,*) "y_prime",(y_prime(j),j=1,3)
-> c       write (2,*) "z_prime",(z_prime(j),j=1,3)
-> c       write (2,*) "xx",scalar(x_prime(1),x_prime(1)),
-> c      & " xy",scalar(x_prime(1),y_prime(1)),
-> c      & " xz",scalar(x_prime(1),z_prime(1)),
-> c      & " yy",scalar(y_prime(1),y_prime(1)),
-> c      & " yz",scalar(y_prime(1),z_prime(1)),
-> c      & " zz",scalar(z_prime(1),z_prime(1))
-> c
-> C Transform the unit vector of the ith side-chain centroid, dC_norm(*,i),
-> C to local coordinate system. Store in xx, yy, zz.
-> c
->         xx=0.0d0
->         yy=0.0d0
->         zz=0.0d0
->         do j = 1,3
->           xx = xx + x_prime(j)*dc_norm(j,i+nres)
->           yy = yy + y_prime(j)*dc_norm(j,i+nres)
->           zz = zz + z_prime(j)*dc_norm(j,i+nres)
->         enddo
-> 
->         xxtab(i)=xx
->         yytab(i)=yy
->         zztab(i)=zz
-> C
-> C Compute the energy of the ith side cbain
-> C
-> c        write (2,*) "xx",xx," yy",yy," zz",zz
->         it=itype(i)
->         do j = 1,65
->           x(j) = sc_parmin(j,it) 
->         enddo
-> #ifdef CHECK_COORD
-> Cc diagnostics - remove later
->         xx1 = dcos(alph(2))
->         yy1 = dsin(alph(2))*dcos(omeg(2))
->         zz1 = -dsin(alph(2))*dsin(omeg(2))
->         write(2,'(3f8.1,3f9.3,1x,3f9.3)') 
->      &    alph(2)*rad2deg,omeg(2)*rad2deg,theta(3)*rad2deg,xx,yy,zz,
->      &    xx1,yy1,zz1
-> C,"  --- ", xx_w,yy_w,zz_w
-> c end diagnostics
-> #endif
->         sumene1= x(1)+  x(2)*xx+  x(3)*yy+  x(4)*zz+  x(5)*xx**2
->      &   + x(6)*yy**2+  x(7)*zz**2+  x(8)*xx*zz+  x(9)*xx*yy
->      &   + x(10)*yy*zz
->         sumene2=  x(11) + x(12)*xx + x(13)*yy + x(14)*zz + x(15)*xx**2
->      & + x(16)*yy**2 + x(17)*zz**2 + x(18)*xx*zz + x(19)*xx*yy
->      & + x(20)*yy*zz
->         sumene3=  x(21) +x(22)*xx +x(23)*yy +x(24)*zz +x(25)*xx**2
->      &  +x(26)*yy**2 +x(27)*zz**2 +x(28)*xx*zz +x(29)*xx*yy
->      &  +x(30)*yy*zz +x(31)*xx**3 +x(32)*yy**3 +x(33)*zz**3
->      &  +x(34)*(xx**2)*yy +x(35)*(xx**2)*zz +x(36)*(yy**2)*xx
->      &  +x(37)*(yy**2)*zz +x(38)*(zz**2)*xx +x(39)*(zz**2)*yy
->      &  +x(40)*xx*yy*zz
->         sumene4= x(41) +x(42)*xx +x(43)*yy +x(44)*zz +x(45)*xx**2
->      &  +x(46)*yy**2 +x(47)*zz**2 +x(48)*xx*zz +x(49)*xx*yy
->      &  +x(50)*yy*zz +x(51)*xx**3 +x(52)*yy**3 +x(53)*zz**3
->      &  +x(54)*(xx**2)*yy +x(55)*(xx**2)*zz +x(56)*(yy**2)*xx
->      &  +x(57)*(yy**2)*zz +x(58)*(zz**2)*xx +x(59)*(zz**2)*yy
->      &  +x(60)*xx*yy*zz
->         dsc_i   = 0.743d0+x(61)
->         dp2_i   = 1.9d0+x(62)
->         dscp1=dsqrt(dsc_i**2+dp2_i**2-2*dsc_i*dp2_i
->      &          *(xx*cost2tab(i+1)+yy*sint2tab(i+1)))
->         dscp2=dsqrt(dsc_i**2+dp2_i**2-2*dsc_i*dp2_i
->      &          *(xx*cost2tab(i+1)-yy*sint2tab(i+1)))
->         s1=(1+x(63))/(0.1d0 + dscp1)
->         s1_6=(1+x(64))/(0.1d0 + dscp1**6)
->         s2=(1+x(65))/(0.1d0 + dscp2)
->         s2_6=(1+x(65))/(0.1d0 + dscp2**6)
->         sumene = ( sumene3*sint2tab(i+1) + sumene1)*(s1+s1_6)
->      & + (sumene4*cost2tab(i+1) +sumene2)*(s2+s2_6)
-> c        write(2,'(i2," sumene",7f9.3)') i,sumene1,sumene2,sumene3,
-> c     &   sumene4,
-> c     &   dscp1,dscp2,sumene
-> c        sumene = enesc(x,xx,yy,zz,cost2tab(i+1),sint2tab(i+1))
->         escloc = escloc + sumene
-> c        write (2,*) "escloc",escloc
->         if (.not. calc_grad) goto 1
-> #ifdef DEBUG
-> C
-> C This section to check the numerical derivatives of the energy of ith side
-> C chain in xx, yy, zz, and theta. Use the -DDEBUG compiler option or insert
-> C #define DEBUG in the code to turn it on.
-> C
->         write (2,*) "sumene               =",sumene
->         aincr=1.0d-7
->         xxsave=xx
->         xx=xx+aincr
->         write (2,*) xx,yy,zz
->         sumenep = enesc(x,xx,yy,zz,cost2tab(i+1),sint2tab(i+1))
->         de_dxx_num=(sumenep-sumene)/aincr
->         xx=xxsave
->         write (2,*) "xx+ sumene from enesc=",sumenep
->         yysave=yy
->         yy=yy+aincr
->         write (2,*) xx,yy,zz
->         sumenep = enesc(x,xx,yy,zz,cost2tab(i+1),sint2tab(i+1))
->         de_dyy_num=(sumenep-sumene)/aincr
->         yy=yysave
->         write (2,*) "yy+ sumene from enesc=",sumenep
->         zzsave=zz
->         zz=zz+aincr
->         write (2,*) xx,yy,zz
->         sumenep = enesc(x,xx,yy,zz,cost2tab(i+1),sint2tab(i+1))
->         de_dzz_num=(sumenep-sumene)/aincr
->         zz=zzsave
->         write (2,*) "zz+ sumene from enesc=",sumenep
->         costsave=cost2tab(i+1)
->         sintsave=sint2tab(i+1)
->         cost2tab(i+1)=dcos(0.5d0*(theta(i+1)+aincr))
->         sint2tab(i+1)=dsin(0.5d0*(theta(i+1)+aincr))
->         sumenep = enesc(x,xx,yy,zz,cost2tab(i+1),sint2tab(i+1))
->         de_dt_num=(sumenep-sumene)/aincr
->         write (2,*) " t+ sumene from enesc=",sumenep
->         cost2tab(i+1)=costsave
->         sint2tab(i+1)=sintsave
-> C End of diagnostics section.
-> #endif
-> C        
-> C Compute the gradient of esc
-> C
->         pom_s1=(1.0d0+x(63))/(0.1d0 + dscp1)**2
->         pom_s16=6*(1.0d0+x(64))/(0.1d0 + dscp1**6)**2
->         pom_s2=(1.0d0+x(65))/(0.1d0 + dscp2)**2
->         pom_s26=6*(1.0d0+x(65))/(0.1d0 + dscp2**6)**2
->         pom_dx=dsc_i*dp2_i*cost2tab(i+1)
->         pom_dy=dsc_i*dp2_i*sint2tab(i+1)
->         pom_dt1=-0.5d0*dsc_i*dp2_i*(xx*sint2tab(i+1)-yy*cost2tab(i+1))
->         pom_dt2=-0.5d0*dsc_i*dp2_i*(xx*sint2tab(i+1)+yy*cost2tab(i+1))
->         pom1=(sumene3*sint2tab(i+1)+sumene1)
->      &     *(pom_s1/dscp1+pom_s16*dscp1**4)
->         pom2=(sumene4*cost2tab(i+1)+sumene2)
->      &     *(pom_s2/dscp2+pom_s26*dscp2**4)
->         sumene1x=x(2)+2*x(5)*xx+x(8)*zz+ x(9)*yy
->         sumene3x=x(22)+2*x(25)*xx+x(28)*zz+x(29)*yy+3*x(31)*xx**2
->      &  +2*x(34)*xx*yy +2*x(35)*xx*zz +x(36)*(yy**2) +x(38)*(zz**2)
->      &  +x(40)*yy*zz
->         sumene2x=x(12)+2*x(15)*xx+x(18)*zz+ x(19)*yy
->         sumene4x=x(42)+2*x(45)*xx +x(48)*zz +x(49)*yy +3*x(51)*xx**2
->      &  +2*x(54)*xx*yy+2*x(55)*xx*zz+x(56)*(yy**2)+x(58)*(zz**2)
->      &  +x(60)*yy*zz
->         de_dxx =(sumene1x+sumene3x*sint2tab(i+1))*(s1+s1_6)
->      &        +(sumene2x+sumene4x*cost2tab(i+1))*(s2+s2_6)
->      &        +(pom1+pom2)*pom_dx
-> #ifdef DEBUG
->         write(2,*), "de_dxx = ", de_dxx,de_dxx_num
-> #endif
-> C
->         sumene1y=x(3) + 2*x(6)*yy + x(9)*xx + x(10)*zz
->         sumene3y=x(23) +2*x(26)*yy +x(29)*xx +x(30)*zz +3*x(32)*yy**2
->      &  +x(34)*(xx**2) +2*x(36)*yy*xx +2*x(37)*yy*zz +x(39)*(zz**2)
->      &  +x(40)*xx*zz
->         sumene2y=x(13) + 2*x(16)*yy + x(19)*xx + x(20)*zz
->         sumene4y=x(43)+2*x(46)*yy+x(49)*xx +x(50)*zz
->      &  +3*x(52)*yy**2+x(54)*xx**2+2*x(56)*yy*xx +2*x(57)*yy*zz
->      &  +x(59)*zz**2 +x(60)*xx*zz
->         de_dyy =(sumene1y+sumene3y*sint2tab(i+1))*(s1+s1_6)
->      &        +(sumene2y+sumene4y*cost2tab(i+1))*(s2+s2_6)
->      &        +(pom1-pom2)*pom_dy
-> #ifdef DEBUG
->         write(2,*), "de_dyy = ", de_dyy,de_dyy_num
-> #endif
-> C
->         de_dzz =(x(24) +2*x(27)*zz +x(28)*xx +x(30)*yy
->      &  +3*x(33)*zz**2 +x(35)*xx**2 +x(37)*yy**2 +2*x(38)*zz*xx 
->      &  +2*x(39)*zz*yy +x(40)*xx*yy)*sint2tab(i+1)*(s1+s1_6) 
->      &  +(x(4) + 2*x(7)*zz+  x(8)*xx + x(10)*yy)*(s1+s1_6) 
->      &  +(x(44)+2*x(47)*zz +x(48)*xx   +x(50)*yy  +3*x(53)*zz**2   
->      &  +x(55)*xx**2 +x(57)*(yy**2)+2*x(58)*zz*xx +2*x(59)*zz*yy  
->      &  +x(60)*xx*yy)*cost2tab(i+1)*(s2+s2_6)
->      &  + ( x(14) + 2*x(17)*zz+  x(18)*xx + x(20)*yy)*(s2+s2_6)
-> #ifdef DEBUG
->         write(2,*), "de_dzz = ", de_dzz,de_dzz_num
-> #endif
-> C
->         de_dt =  0.5d0*sumene3*cost2tab(i+1)*(s1+s1_6) 
->      &  -0.5d0*sumene4*sint2tab(i+1)*(s2+s2_6)
->      &  +pom1*pom_dt1+pom2*pom_dt2
-> #ifdef DEBUG
->         write(2,*), "de_dt = ", de_dt,de_dt_num
-> #endif
-> c 
-> C
->        cossc=scalar(dc_norm(1,i),dc_norm(1,i+nres))
->        cossc1=scalar(dc_norm(1,i-1),dc_norm(1,i+nres))
->        cosfac2xx=cosfac2*xx
->        sinfac2yy=sinfac2*yy
->        do k = 1,3
->          dt_dCi(k) = -(dc_norm(k,i-1)+costtab(i+1)*dc_norm(k,i))*
->      &      vbld_inv(i+1)
->          dt_dCi1(k)= -(dc_norm(k,i)+costtab(i+1)*dc_norm(k,i-1))*
->      &      vbld_inv(i)
->          pom=(dC_norm(k,i+nres)-cossc*dC_norm(k,i))*vbld_inv(i+1)
->          pom1=(dC_norm(k,i+nres)-cossc1*dC_norm(k,i-1))*vbld_inv(i)
-> c         write (iout,*) "i",i," k",k," pom",pom," pom1",pom1,
-> c     &    " dt_dCi",dt_dCi(k)," dt_dCi1",dt_dCi1(k)
-> c         write (iout,*) "dC_norm",(dC_norm(j,i),j=1,3),
-> c     &   (dC_norm(j,i-1),j=1,3)," vbld_inv",vbld_inv(i+1),vbld_inv(i)
->          dXX_Ci(k)=pom*cosfac-dt_dCi(k)*cosfac2xx
->          dXX_Ci1(k)=-pom1*cosfac-dt_dCi1(k)*cosfac2xx
->          dYY_Ci(k)=pom*sinfac+dt_dCi(k)*sinfac2yy
->          dYY_Ci1(k)=pom1*sinfac+dt_dCi1(k)*sinfac2yy
->          dZZ_Ci1(k)=0.0d0
->          dZZ_Ci(k)=0.0d0
->          do j=1,3
->            dZZ_Ci(k)=dZZ_Ci(k)-uzgrad(j,k,2,i-1)*dC_norm(j,i+nres)
->            dZZ_Ci1(k)=dZZ_Ci1(k)-uzgrad(j,k,1,i-1)*dC_norm(j,i+nres)
->          enddo
->           
->          dXX_XYZ(k)=vbld_inv(i+nres)*(x_prime(k)-xx*dC_norm(k,i+nres))
->          dYY_XYZ(k)=vbld_inv(i+nres)*(y_prime(k)-yy*dC_norm(k,i+nres))
->          dZZ_XYZ(k)=vbld_inv(i+nres)*(z_prime(k)-zz*dC_norm(k,i+nres))
-> c
->          dt_dCi(k) = -dt_dCi(k)/sinttab(i+1)
->          dt_dCi1(k)= -dt_dCi1(k)/sinttab(i+1)
->        enddo
-> 
->        do k=1,3
->          dXX_Ctab(k,i)=dXX_Ci(k)
->          dXX_C1tab(k,i)=dXX_Ci1(k)
->          dYY_Ctab(k,i)=dYY_Ci(k)
->          dYY_C1tab(k,i)=dYY_Ci1(k)
->          dZZ_Ctab(k,i)=dZZ_Ci(k)
->          dZZ_C1tab(k,i)=dZZ_Ci1(k)
->          dXX_XYZtab(k,i)=dXX_XYZ(k)
->          dYY_XYZtab(k,i)=dYY_XYZ(k)
->          dZZ_XYZtab(k,i)=dZZ_XYZ(k)
->        enddo
-> 
->        do k = 1,3
-> c         write (iout,*) "k",k," dxx_ci1",dxx_ci1(k)," dyy_ci1",
-> c     &    dyy_ci1(k)," dzz_ci1",dzz_ci1(k)
-> c         write (iout,*) "k",k," dxx_ci",dxx_ci(k)," dyy_ci",
-> c     &    dyy_ci(k)," dzz_ci",dzz_ci(k)
-> c         write (iout,*) "k",k," dt_dci",dt_dci(k)," dt_dci",
-> c     &    dt_dci(k)
-> c         write (iout,*) "k",k," dxx_XYZ",dxx_XYZ(k)," dyy_XYZ",
-> c     &    dyy_XYZ(k)," dzz_XYZ",dzz_XYZ(k) 
->          gscloc(k,i-1)=gscloc(k,i-1)+de_dxx*dxx_ci1(k)
->      &    +de_dyy*dyy_ci1(k)+de_dzz*dzz_ci1(k)+de_dt*dt_dCi1(k)
->          gscloc(k,i)=gscloc(k,i)+de_dxx*dxx_Ci(k)
->      &    +de_dyy*dyy_Ci(k)+de_dzz*dzz_Ci(k)+de_dt*dt_dCi(k)
->          gsclocx(k,i)=                 de_dxx*dxx_XYZ(k)
->      &    +de_dyy*dyy_XYZ(k)+de_dzz*dzz_XYZ(k)
->        enddo
-> c       write(iout,*) "ENERGY GRAD = ", (gscloc(k,i-1),k=1,3),
-> c     &  (gscloc(k,i),k=1,3),(gsclocx(k,i),k=1,3)  
-> 
-> C to check gradient call subroutine check_grad
-> 
->     1 continue
->       enddo
->       return
->       end
-> #endif
-3563c4151
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-3611c4199
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-3694c4282
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-3780c4368
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-3847a4436,4486
->       subroutine eback_sc_corr(esccor)
-> c 7/21/2007 Correlations between the backbone-local and side-chain-local
-> c        conformational states; temporarily implemented as differences
-> c        between UNRES torsional potentials (dependent on three types of
-> c        residues) and the torsional potentials dependent on all 20 types
-> c        of residues computed from AM1 energy surfaces of terminally-blocked
-> c        amino-acid residues.
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'DIMENSIONS.ZSCOPT'
->       include 'COMMON.VAR'
->       include 'COMMON.GEO'
->       include 'COMMON.LOCAL'
->       include 'COMMON.TORSION'
->       include 'COMMON.SCCOR'
->       include 'COMMON.INTERACT'
->       include 'COMMON.DERIV'
->       include 'COMMON.CHAIN'
->       include 'COMMON.NAMES'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.FFIELD'
->       include 'COMMON.CONTROL'
->       logical lprn
-> C Set lprn=.true. for debugging
->       lprn=.false.
-> c      lprn=.true.
-> c      write (iout,*) "EBACK_SC_COR",iphi_start,iphi_end,nterm_sccor
->       esccor=0.0D0
->       do i=iphi_start,iphi_end
->         esccor_ii=0.0D0
->         itori=itype(i-2)
->         itori1=itype(i-1)
->         phii=phi(i)
->         gloci=0.0D0
->         do j=1,nterm_sccor
->           v1ij=v1sccor(j,itori,itori1)
->           v2ij=v2sccor(j,itori,itori1)
->           cosphi=dcos(j*phii)
->           sinphi=dsin(j*phii)
->           esccor=esccor+v1ij*cosphi+v2ij*sinphi
->           gloci=gloci+j*(v2ij*cosphi-v1ij*sinphi)
->         enddo
->         if (lprn)
->      &  write (iout,'(2(a3,2x,i3,2x),2i3,6f8.3/26x,6f8.3/)')
->      &  restyp(itype(i-2)),i-2,restyp(itype(i-1)),i-1,itori,itori1,
->      &  (v1sccor(j,itori,itori1),j=1,6),(v2sccor(j,itori,itori1),j=1,6)
->         gsccor_loc(i-3)=gloci
->       enddo
->       return
->       end
-> c------------------------------------------------------------------------------
-4003c4642
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-4189c4828
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-4498c5137
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-4565c5204
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-4942c5581
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-5059c5698
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-5460c6099
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-5597c6236
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-5703c6342
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-5890c6529
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-6006c6645
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
-6252c6891
-<       include 'sizesclu.dat'
----
->       include 'DIMENSIONS.ZSCOPT'
index 8e98d39..bf9c563 100644 (file)
@@ -336,7 +336,7 @@ C
       implicit real*8 (a-h,o-z)
       include 'DIMENSIONS'
       include 'sizesclu.dat'
-      include "DIMENSIONS.COMPAR"
+c      include "DIMENSIONS.COMPAR"
       parameter (accur=1.0d-10)
       include 'COMMON.GEO'
       include 'COMMON.VAR'
@@ -497,7 +497,7 @@ C
       implicit real*8 (a-h,o-z)
       include 'DIMENSIONS'
       include 'sizesclu.dat'
-      include "DIMENSIONS.COMPAR"
+c      include "DIMENSIONS.COMPAR"
       include 'COMMON.GEO'
       include 'COMMON.VAR'
       include 'COMMON.LOCAL'
@@ -586,7 +586,7 @@ C
       implicit real*8 (a-h,o-z)
       include 'DIMENSIONS'
       include 'sizesclu.dat'
-      include "DIMENSIONS.COMPAR"
+c      include "DIMENSIONS.COMPAR"
       include 'COMMON.GEO'
       include 'COMMON.VAR'
       include 'COMMON.LOCAL'
@@ -713,7 +713,7 @@ C
       implicit real*8 (a-h,o-z)
       include 'DIMENSIONS'
       include 'sizesclu.dat'
-      include "DIMENSIONS.COMPAR"
+c      include "DIMENSIONS.COMPAR"
       include 'COMMON.GEO'
       include 'COMMON.VAR'
       include 'COMMON.LOCAL'
@@ -844,7 +844,7 @@ C
       implicit real*8 (a-h,o-z)
       include 'DIMENSIONS'
       include 'sizesclu.dat'
-      include "DIMENSIONS.COMPAR"
+c      include "DIMENSIONS.COMPAR"
       include 'COMMON.GEO'
       include 'COMMON.VAR'
       include 'COMMON.LOCAL'
@@ -6239,18 +6239,18 @@ c--------------------------------------------------------------------------
       logical lprn
       common /kutas/ lprn
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-C                                              
-C      Parallel       Antiparallel
-C                                             
-C          o             o         
-C         /l\           /j\       
-C        /   \         /   \      
-C       /| o |         | o |\     
-C     \ j|/k\|  /   \  |/k\|l /   
-C      \ /   \ /     \ /   \ /    
-C       o     o       o     o                
-C       i             i                     
-C
+C                                                                              C
+C      Parallel       Antiparallel                                             C
+C                                                                              C
+C          o             o                                                     C
+C         /l\           /j\                                                    C
+C        /   \         /   \                                                   C
+C       /| o |         | o |\                                                  C
+C     \ j|/k\|  /   \  |/k\|l /                                                C
+C      \ /   \ /     \ /   \ /                                                 C
+C       o     o       o     o                                                  C
+C       i             i                                                        C
+C                                                                              C
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
       itk=itortyp(itype(k))
       s1= scalar2(AEAb1(1,2,imat),CUgb2(1,i))
@@ -6346,18 +6346,18 @@ c----------------------------------------------------------------------------
       logical lprn
       common /kutas/ lprn
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-C                                              
-C      Parallel       Antiparallel
-C                                             
-C          o             o         
-C     \   /l\           /j\   /   
-C      \ /   \         /   \ /    
-C       o| o |         | o |o     
-C     \ j|/k\|      \  |/k\|l     
-C      \ /   \       \ /   \      
-C       o             o                      
-C       i             i                     
-C
+C                                                                              C 
+C      Parallel       Antiparallel                                             C
+C                                                                              C
+C          o             o                                                     C
+C     \   /l\           /j\   /                                                C
+C      \ /   \         /   \ /                                                 C
+C       o| o |         | o |o                                                  C
+C     \ j|/k\|      \  |/k\|l                                                  C
+C      \ /   \       \ /   \                                                   C
+C       o             o                                                        C
+C       i             i                                                        C
+C                                                                              C
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
 cd      write (2,*) 'eello6_graph2: i,',i,' j',j,' k',k,' l',l
 C AL 7/4/01 s1 would occur in the sixth-order moment, 
@@ -6530,18 +6530,18 @@ c----------------------------------------------------------------------------
       double precision vv(2),pizda(2,2),auxmat(2,2),auxvec(2)
       logical swap
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-C                                              
-C      Parallel       Antiparallel
-C                                             
-C          o             o         
-C         /l\   /   \   /j\       
-C        /   \ /     \ /   \      
-C       /| o |o       o| o |\     
-C       j|/k\|  /      |/k\|l /   
-C        /   \ /       /   \ /    
-C       /     o       /     o                
-C       i             i                     
-C
+C                                                                              C
+C      Parallel       Antiparallel                                             C
+C                                                                              C
+C          o             o                                                     C
+C         /l\   /   \   /j\                                                    C
+C        /   \ /     \ /   \                                                   C
+C       /| o |o       o| o |\                                                  C
+C       j|/k\|  /      |/k\|l /                                                C
+C        /   \ /       /   \ /                                                 C
+C       /     o       /     o                                                  C
+C       i             i                                                        C
+C                                                                              C
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
 C
 C 4/7/01 AL Component s1 was removed, because it pertains to the respective 
@@ -6648,18 +6648,18 @@ c----------------------------------------------------------------------------
      & auxvec1(2),auxmat1(2,2)
       logical swap
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-C                                              
-C      Parallel       Antiparallel
-C                                             
-C          o             o         
-C         /l\   /   \   /j\       
-C        /   \ /     \ /   \      
-C       /| o |o       o| o |\     
-C     \ j|/k\|      \  |/k\|l     
-C      \ /   \       \ /   \      
-C       o     \       o     \                
-C       i             i                     
-C
+C                                                                              C
+C      Parallel       Antiparallel                                             C
+C                                                                              C
+C          o             o                                                     C
+C         /l\   /   \   /j\                                                    C
+C        /   \ /     \ /   \                                                   C
+C       /| o |o       o| o |\                                                  C
+C     \ j|/k\|      \  |/k\|l                                                  C
+C      \ /   \       \ /   \                                                   C
+C       o     \       o     \                                                  C
+C       i             i                                                        C
+C                                                                              C
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
 C
 C 4/7/01 AL Component s1 was removed, because it pertains to the respective 
index 3788cdb..a1a089e 100644 (file)
@@ -414,8 +414,10 @@ C-------------------------------------------------C
       CHARACTER*80 LINE
       INTEGER IORDER(LEV),HEIGHT(LEV)
       REAL CRITVAL(LEV)
-      INTEGER OUT(3*LEV,3*LEV)
-      INTEGER UP,ACROSS,BLANK
+c      INTEGER OUT(3*LEV,3*LEV)
+c      INTEGER UP,ACROSS,BLANK
+      CHARACTER*1 OUT(3*LEV,3*LEV)
+      CHARACTER*1 UP,ACROSS,BLANK
       DATA UP,ACROSS,BLANK/'|','-',' '/
 C
 C
index 23bfd42..2545afb 100644 (file)
@@ -19,7 +19,15 @@ C 12/1/95 Array EPS included in the COMMON block.
      & r0d(ntyp,2),rpp(2,2),epp(2,2),elpp6(2,2),elpp3(2,2),
      & eps_scp(20,2),rscp(20,2),eps_orig(ntyp,ntyp)
 c 12/5/03 modified 09/18/03 Bond stretching parameters.
+<<<<<<< HEAD
       double precision vbldp0,vbldsc0,akp,aksc,abond0
       integer nbondterm
       common /stretch/ vbldp0,vbldsc0(maxbondterm,ntyp),akp,
      & aksc(maxbondterm,ntyp),abond0(maxbondterm,ntyp),nbondterm(ntyp)
+=======
+      double precision vbldp0,vbldsc0,akp,aksc,abond0,distchainmax
+      integer nbondterm
+      common /stretch/ vbldp0,vbldsc0(maxbondterm,ntyp),akp,
+     & aksc(maxbondterm,ntyp),abond0(maxbondterm,ntyp),
+     & distchainmax,nbondterm(ntyp)
+>>>>>>> aebadf9023e437f497f92dfcf2303c16f60917c1
index 7bba010..2848b61 100644 (file)
@@ -1,4 +1,5 @@
       double precision ebr,d0cm,akcm,akth,akct,v1ss,v2ss,v3ss,dhpb,
+<<<<<<< HEAD
      & dhpb1,forcon,weidis
       integer ns,nss,nfree,iss,ihpb,jhpb,nhpb,link_start,link_end,
      & ibecarb
@@ -6,5 +7,13 @@
      &  nfree,iss(maxss)
       common /links/ dhpb(maxdim),dhpb1(maxdim),forcon(maxdim),
      & ihpb(maxdim),jhpb(maxdim),ibecarb(maxdim),nhpb
+=======
+     & forcon,weidis
+      integer ns,nss,nfree,iss,ihpb,jhpb,nhpb,link_start,link_end
+      common /sbridge/ ebr,d0cm,akcm,akth,akct,v1ss,v2ss,v3ss,ns,nss,
+     &  nfree,iss(maxss)
+      common /links/ dhpb(maxdim),forcon(maxdim),ihpb(maxdim),
+     & jhpb(maxdim),nhpb
+>>>>>>> aebadf9023e437f497f92dfcf2303c16f60917c1
       common /restraints/ weidis
       common /links_split/ link_start,link_end
index 8a12451..957dcff 100644 (file)
@@ -4,8 +4,13 @@ C Torsional constants of the rotation about virtual-bond dihedral angles
       common/torsion/v0(maxtor,maxtor),v1(maxterm,maxtor,maxtor),
      &    v2(maxterm,maxtor,maxtor),vlor1(maxlor,maxtor,maxtor),
      &    vlor2(maxlor,maxtor,maxtor),vlor3(maxlor,maxtor,maxtor),
+<<<<<<< HEAD
      &    itortyp(ntyp),ntortyp,nterm(maxtor,maxtor),nlor(maxtor,maxtor) 
      &    ,nterm_old
+=======
+     &    itortyp(ntyp),ntortyp,nterm(maxtor,maxtor),
+     &    nlor(maxtor,maxtor),nterm_old
+>>>>>>> aebadf9023e437f497f92dfcf2303c16f60917c1
 C 6/23/01 - constants for double torsionals
       double precision v1c,v1s,v2c,v2s
       integer ntermd_1,ntermd_2
diff --git a/source/cluster/wham/src/map b/source/cluster/wham/src/map
deleted file mode 100644 (file)
index 9c88872..0000000
+++ /dev/null
@@ -1,4716 +0,0 @@
-pgf90 -C -g  -c -I. -I../src_MD_T -I../src_MD -I/users/adam/MEY_MD/src -I/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/include -DLINUX -DPGI -DSPLITELE -DPROCOR -DMP -DMPI -C -g  -c -I. -I../src_MD_T -I../src_MD -I/users/adam/MEY_MD/src -I/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/include initialize_p.F
-pgf90 -C -g  main_clust.o arcos.o cartprint.o chainbuild.o convert.o initialize_p.o matmult.o readrtns.o pinorm.o rescode.o intcor.o timing.o misc.o geomout.o readpdb.o read_coords.o parmread.o probabl.o fitsq.o hc.o track.o wrtclust.o srtclust.o noyes.o contact.o printmat.o int_from_cart1.o energy_p_new.o icant.o proc_proc.o work_partition.o setup_var.o -L/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib -lmpich -lpmpich -m -o /users/adam/ZSCOREZ/bin/unres_clustMD_MPI
-Archive member included because of file (symbol)
-
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(abortf.o)
-                              work_partition.o (mpi_abort_)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(allgatherf.o)
-                              read_coords.o (mpi_allgather_)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bcastf.o)
-                              probabl.o (mpi_bcast_)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_rankf.o)
-                              main_clust.o (mpi_comm_rank_)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_sizef.o)
-                              main_clust.o (mpi_comm_size_)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(dup_fnf.o)
-                              main_clust.o (mpi_dup_fn_)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(finalizef.o)
-                              main_clust.o (mpi_finalize_)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(gathervf.o)
-                              main_clust.o (mpi_gatherv_)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initf.o)
-                              main_clust.o (mpi_init_)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(null_copyfnf.o)
-                              main_clust.o (mpi_null_copy_fn_)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(null_del_fnf.o)
-                              main_clust.o (mpi_null_delete_fn_)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(recvf.o)
-                              read_coords.o (mpi_recv_)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(sendf.o)
-                              read_coords.o (mpi_send_)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtickf.o)
-                              main_clust.o (mpi_wtick_)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtimef.o)
-                              main_clust.o (mpi_wtime_)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(farg.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initf.o) (mpir_iargc_)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(dup_fnf.o) (MPIR_F_TRUE)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfcmn.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o) (mpir_init_fcm_)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(mperror.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initf.o) (MPIR_Error)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(send.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(sendf.o) (MPI_Send)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(recv.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(recvf.o) (MPI_Recv)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_util.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o) (MPIR_Free_perm_type)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(abort.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(abortf.o) (MPI_Abort)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(init.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initf.o) (MPI_Init)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(init.o) (MPIR_Init)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(finalize.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(finalizef.o) (MPI_Finalize)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(errorstring.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(mperror.o) (MPI_Error_string)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o) (MPIR_Init_dtes)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(errfree.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(finalize.o) (PMPI_Errhandler_free)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtime.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtimef.o) (MPI_Wtime)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtick.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtickf.o) (MPI_Wtick)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(nerrmsg.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(send.o) (MPIR_Err_setmsg)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(msgqdllloc.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o) (MPIR_Msg_queue_export)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(util_hbt.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o) (MPIR_HBT_Init)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(ptrcvt.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o) (MPIR_PointerPerm)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bsendutil2.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(finalize.o) (MPIR_BsendRelease)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(keyval_free.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o) (MPI_Keyval_free)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(attr_getval.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o) (MPI_Attr_get)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(attr_util.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o) (MPIR_Attr_create_tree)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(attr_putval.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o) (MPI_Attr_put)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(group_free.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(finalize.o) (PMPI_Group_free)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(group_util.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o) (MPIR_CreateGroup)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_free.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(finalize.o) (PMPI_Comm_free)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_rank.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_rankf.o) (MPI_Comm_rank)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_name_put.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o) (MPI_Comm_set_name)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_size.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_sizef.o) (MPI_Comm_size)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_util.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o) (MPIR_Comm_make_coll)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(context_util.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_free.o) (MPIR_Context_dealloc)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(dup_fn.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(dup_fnf.o) (MPIR_dup_fn)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(barrier.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(finalize.o) (PMPI_Barrier)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bcast.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bcastf.o) (MPI_Bcast)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(gatherv.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(gathervf.o) (MPI_Gatherv)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(allgather.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(allgatherf.o) (MPI_Allgather)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(allreduce.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(context_util.o) (PMPI_Allreduce)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(global_ops.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o) (MPIR_MAXF)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(opfree.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(finalize.o) (PMPI_Op_free)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(oputil.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o) (MPIR_Op_setup)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(inter_fns.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_util.o) (MPIR_inter_collops)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_fns_new.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_util.o) (MPIR_intra_collops)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_scan.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_fns_new.o) (MPIR_intra_Scan)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(topo_util.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o) (MPIR_Topology_Init)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(statusc2f.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(recvf.o) (MPI_Status_c2f)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_utils.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o) (p4_proc_info)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_bm.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_utils.o) (bm_start)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_rm.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_utils.o) (rm_start)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_util.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_bm.o) (net_setup_anon_listener)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_cr.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_bm.o) (create_remote_processes)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_conn.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_bm.o) (handle_connection_interrupt)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_sr.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_utils.o) (socket_close_conn)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_list.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_bm.o) (listener)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_secure.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_cr.o) (start_slave)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(usc.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_bm.o) (usc_init)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2init.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o) (MPID_Init)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2hsend.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(send.o) (MPID_SendDatatype)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2hrecv.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(recv.o) (MPID_RecvDatatype)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2pack.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2hsend.o) (MPID_Msg_rep)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2mpack.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2hsend.o) (MPID_PackMessage)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bswap2.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2pack.o) (MPID_Type_swap_copy)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chdebug.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2init.o) (MPID_DEBUG_FILE)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chinit.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2init.o) (MPID_CH_InitMsgPass)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chhetero.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chinit.o) (MPID_CH_Init_hetero)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chtick.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtick.o) (MPID_CH_Wtick)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4priv.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chinit.o) (MPID_P4_Init)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(queue.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(finalize.o) (MPID_Dump_queues)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(cmnargs.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o) (MPID_ArgSqueeze)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(sbcnst2.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o) (MPID_SBinit)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(session.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4priv.o) (MPID_Process_group_init)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chpackflow.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chinit.o) (MPID_PacketFlowSetup)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chcancel.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chinit.o) (MPID_FinishCancelPackets)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(isend.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_fns_new.o) (PMPI_Isend)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(irecv.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_fns_new.o) (PMPI_Irecv)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wait.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bsendutil2.o) (MPI_Wait)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(test.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bsendutil2.o) (MPI_Test)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(cancel.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_fns_new.o) (PMPI_Cancel)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(waitall.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_fns_new.o) (PMPI_Waitall)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(sendrecv.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_util.o) (MPI_Sendrecv)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(testall.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(test.o) (PMPI_Testall)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(getcount.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_fns_new.o) (PMPI_Get_count)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_commit.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o) (MPI_Type_commit)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_contig.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o) (MPI_Type_contiguous)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_extent.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_scan.o) (MPI_Type_extent)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_free.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_fns_new.o) (PMPI_Type_free)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_ind.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_fns_new.o) (PMPI_Type_indexed)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_lb.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_scan.o) (MPI_Type_lb)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_size.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_fns_new.o) (PMPI_Type_size)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_struct.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o) (MPI_Type_struct)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(pack_size.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bsendutil2.o) (MPI_Pack_size)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(pack.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bsendutil2.o) (MPI_Pack)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(unpack.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_fns_new.o) (PMPI_Unpack)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o) (MPIR_Breakpoint)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(errset.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_util.o) (MPI_Errhandler_set)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(pkutil.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2pack.o) (MPIR_Unpack)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(keyvalcreate.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(topo_util.o) (MPI_Keyval_create)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(reduce.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_fns_new.o) (PMPI_Reduce)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_utils.o) (p4_global)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_MD.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_bm.o) (MD_initmem)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_error.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_utils.o) (p4_error)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_args.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_utils.o) (process_args)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_alloc.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_bm.o) (alloc_local_bm)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_debug.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_utils.o) (p4_dprintf)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_procgroup.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_args.o) (p4_alloc_procgroup)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_tsr.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4priv.o) (p4_recv)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_mon.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_tsr.o) (p4_moninit)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_broadcast.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4priv.o) (p4_broadcastx)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2recv.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2hrecv.o) (MPID_IrecvContig)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2send.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2hsend.o) (MPID_SendContig)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2cancel.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(cancel.o) (MPID_SendCancel)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chbeager.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chinit.o) (MPID_CH_Eagerb_setup)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chbrndv.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chinit.o) (MPID_CH_Rndvb_setup)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chchkdev.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chinit.o) (MPID_CH_Check_incoming)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chshort.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chinit.o) (MPID_CH_Short_setup)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chflow.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chbeager.o) (MPID_DebugFlow)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_hind.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_ind.o) (PMPI_Type_hindexed)
-/usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(dmpipk.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(pkutil.o) (MPIR_Pack_Hvector)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(close.o)
-                              main_clust.o (pgf90io_close)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(desc.o)
-                              readpdb.o (pghpfio_fmt_read)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(encodefmt.o)
-                              main_clust.o (pgf90io_encode_fmt)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(error.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(close.o) (__hpfio_errinit)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtread.o)
-                              readrtns.o (pgf90io_fmtr_init)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtwrite.o)
-                              main_clust.o (pgf90io_fmtw_init)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(ftnexit.o)
-                              /usr/pgi/linux86-64/6.0/lib/f90main.o (pgf90_exit)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(ldread.o)
-                              readrtns.o (pgf90io_ldr_init)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(ldwrite.o)
-                              main_clust.o (pgf90io_ldw_init)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(open.o)
-                              main_clust.o (pgf90io_open)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(pgifiodf.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(close.o) (pghpfio)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(rewind.o)
-                              misc.o (pgf90io_rewind)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(unf.o)
-                              main_clust.o (pgf90io_unf_init)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(utils.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(error.o) (__hpfio_alloc_fcb)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(utilsi64.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtread.o) (__hpf_atoxi64)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(allo.o)
-                              parmread.o (pgf90_alloc)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(entry.o)
-                              main_clust.o (pghpf_function_entry)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(hpfio.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(close.o) (__hpf_status_init)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(hpfio_hpf.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(desc.o) (__hpfio_main)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(error.o) (__hpf_abort)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(malloc.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(allo.o) (__hpf_malloc_without_abort)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(ptr.o)
-                              main_clust.o (pgf90_subchk)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(rdst.o)
-                              main_clust.o (pgf90_template1)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(rw.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o) (__hpf_rrecvl)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(version.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o) (__hpf_print_version)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(xfer.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(hpfio_hpf.o) (__hpf_getgbuf)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(stat_linux.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o) (__hpf_setarg)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(allo_i8.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o) (__f90_allo_term_i8)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(assign.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ldread.o) (__hpfio_assign)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtconv.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ldwrite.o) (__f90io_conv_buf)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtgetnum.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ldread.o) (__hpfio_getnum)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(fpcvt.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtconv.o) (__hpfio_ecvt)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(atol.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o) (__hpf_strtol)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(defs.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ptr.o) (f90DummyGenBlockPtr)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(dist.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(hpfio_hpf.o) (__hpf_describe_replication)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(comm.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(dist.o) (pghpf_comm_start)
-/usr/pgi/linux86-64/6.0/lib/libpgf90.a(copy.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(dist.o) (pghpf_comm_copy)
-/usr/pgi/linux86-64/6.0/lib/libpgf90_rpm1.a(init_rpm1.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o) (__hpf_abortx)
-/usr/pgi/linux86-64/6.0/lib/libpgf90_rpm1.a(xfer_rpm1.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(rw.o) (__hpf_erecv)
-/usr/pgi/linux86-64/6.0/lib/libpgf902.a(cnfg.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtread.o) (__hpfio_cnfg_)
-/usr/pgi/linux86-64/6.0/lib/libpgf902.a(bcopy.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ptr.o) (__hpf_bcopy)
-/usr/pgi/linux86-64/6.0/lib/libpgf902.a(bcopys.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(rdst.o) (__hpf_bcopysl)
-/usr/pgi/linux86-64/6.0/lib/libpgf902.a(buffer.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o) (__hpf_zopen)
-/usr/pgi/linux86-64/6.0/lib/libpgf902.a(chn1t1.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(copy.o) (__hpf_chn_1to1)
-/usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(encodefmt.o) (__hpf_size_of)
-/usr/pgi/linux86-64/6.0/lib/libpgf902.a(cprof.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(entry.o) (__hpf_prof_init)
-/usr/pgi/linux86-64/6.0/lib/libpgf902.a(cprof2.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(entry.o) (__hpf_prof_arecv)
-/usr/pgi/linux86-64/6.0/lib/libpgf902.a(genlist.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf902.a(chn1t1.o) (__hpf_initndx)
-/usr/pgi/linux86-64/6.0/lib/libpgf902.a(hand.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90_rpm1.a(init_rpm1.o) (__hpf_sethand)
-/usr/pgi/linux86-64/6.0/lib/libpgf902.a(stat.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(entry.o) (__hpf_stat_init)
-/usr/pgi/linux86-64/6.0/lib/libpgf902.a(trace.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(entry.o) (__hpf_trac_init)
-/usr/pgi/linux86-64/6.0/lib/libpgf902.a(trace2.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(entry.o) (__hpf_trac_arecv)
-/usr/pgi/linux86-64/6.0/lib/libpgf902.a(xfer_heap_dum.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(malloc.o) (__hpf_sbrk)
-/usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(dacos.o)
-                              arcos.o (__mth_i_dacos)
-/usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(ftncharsup.o)
-                              readrtns.o (ftn_str_copy)
-/usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(flush3f.o)
-                              main_clust.o (flush_)
-/usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(getenv3f.o)
-                              readrtns.o (getenv_)
-/usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(fdate3f.o)
-                              geomout.o (fdate_)
-/usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(getarg3f.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(farg.o) (getarg_)
-/usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(cvt.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fpcvt.o) (ecvt)
-/usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(utils3f.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(getenv3f.o) (__fstr2cstr)
-/usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(utils.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(open.o) (__fio_eq_str)
-/usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(pgifiodf.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(utils.o) (pgi_fio)
-/usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(error.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(utils.o) (__fio_error)
-/usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(ftnexit.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(error.o) (ftn_exit)
-/usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(open.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(utils.o) (__fio_open)
-/usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(close.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(ftnexit.o) (__fio_close)
-/usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(cnfg.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(open.o) (__fio_cnfg_)
-/usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(pgdummy.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(error.o) (__PC_DOS)
-/usr/lib64/libc_nonshared.a(elf-init.oS)
-                              /usr/lib64/crt1.o (__libc_csu_init)
-/usr/lib64/libc_nonshared.a(atexit.oS)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o) (atexit)
-/usr/pgi/linux86-64/6.0/lib/libnspgc.a(pgdbg_utils.o)
-                              main_clust.o (__pgdbg_stub)
-/usr/pgi/linux86-64/6.0/lib/libpgc.a(mthi64.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(utilsi64.o) (__utl_i_add64)
-/usr/pgi/linux86-64/6.0/lib/libpgc.a(dpowi.o)
-                              parmread.o (__mth_i_dpowi)
-/usr/pgi/linux86-64/6.0/lib/libpgc.a(dfloatuk.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_utils.o) (__mth_i_dfloatuk)
-/usr/pgi/linux86-64/6.0/lib/libpgc.a(dint.o)
-                              timing.o (__mth_i_dint)
-/usr/pgi/linux86-64/6.0/lib/libpgc.a(pgstdinit.o)
-                              /usr/pgi/linux86-64/6.0/lib/f90main.o (__pgio_environ)
-/usr/pgi/linux86-64/6.0/lib/libpgc.a(mpmalloc.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(ftncharsup.o) (_mp_malloc)
-/usr/pgi/linux86-64/6.0/lib/libpgc.a(rtcrit.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ftnexit.o) (_mp_bcs_stdio)
-/usr/pgi/linux86-64/6.0/lib/libpgc.a(pgtempnam.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf902.a(cnfg.o) (__pgio_tempnam)
-/usr/pgi/linux86-64/6.0/lib/libpgc.a(va_arg.o)
-                              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(mperror.o) (__builtin_va_gparg1)
-/usr/pgi/linux86-64/6.0/lib/libpgc.a(pgargs.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o) (__pgio_get_argv)
-/usr/pgi/linux86-64/6.0/lib/libpgc.a(dsincosp.o)
-                              chainbuild.o (__mth_i_dsin)
-/usr/pgi/linux86-64/6.0/lib/libpgc.a(dtan.o)
-                              energy_p_new.o (__mth_i_dtan)
-/usr/pgi/linux86-64/6.0/lib/libpgc.a(datan.o)
-                              initialize_p.o (__mth_i_datan)
-/usr/pgi/linux86-64/6.0/lib/libpgc.a(fastmath.o)
-                              srtclust.o (__fmth_i_dlog)
-/usr/pgi/linux86-64/6.0/lib/libpgc.a(crit_dum.o)
-                              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(allo.o) (_mp_p)
-/usr/lib64/libc_nonshared.a(fstat.oS)
-                              /usr/pgi/linux86-64/6.0/lib/libpgc.a(pgstdinit.o) (fstat)
-
-Allocating common symbols
-Common symbol       size              file
-
-__P4LEN             0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4priv.o)
-MPIR_I_DOUBLE       0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-fnames_             0xf03             main_clust.o
-torsion_            0xfd8             initialize_p.o
-__hpf_zmem          0x4               /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
-MPI_FLOAT_INT_var   0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-MPIR_debug_cl       0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-total_pack_unacked  0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chpackflow.o)
-contacts_           0xbb88            readrtns.o
-contacts_hb_        0xd973f8          readrtns.o
-stoptim_            0x4               main_clust.o
-execer_mynodenum    0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-MPIR_I_LONG_LONG_INT
-                    0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-MPIR_Op_errno       0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(global_ops.o)
-p4_global           0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-__hpf_true_log4     0x4               /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-logging_flag        0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-rotat_old_          0x2ee0            readrtns.o
-minimm_             0x18              initialize_p.o
-p4_remote_debug_level
-                    0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-MPI_SHORT_INT_var   0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-execer_mastport     0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-restraints_         0x8               initialize_p.o
-csaunits_           0x30              main_clust.o
-execer_numtotnodes  0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-execer_masthost     0x64              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-geo_                0x40              main_clust.o
-stretch_            0x150             main_clust.o
-procgroup_file      0x100             /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-MPID_recvs          0x20              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(queue.o)
-mpi_data_           0x23c             main_clust.o
-contacts1_          0x2258f8          readrtns.o
-previous_           0x895a1c4         track.o
-MPIR_I_LB           0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-csafiles_           0xc00             main_clust.o
-rm_outfile_head     0x64              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-MPIR_I_PACKED       0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-MPID_byte_order     0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chhetero.o)
-MPIR_real4_dte      0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-mpipriv_            0x24              main_clust.o
-__hpf_mask_log4     0x4               /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-varref_             0x2710            main_clust.o
-MPI_LONG_INT_var    0x10              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-calcthet_           0x9c              energy_p_new.o
-__hpf_mask_int1     0x1               /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-indices_            0x18              chainbuild.o
-sserver_port        0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-MPIR_errhandlers    0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o)
-locel_              0x208             energy_p_new.o
-listener_info       0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-refstruct_          0x2f1c            main_clust.o
-whoami_p4           0x64              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-pghpf_me_           0x4               main_clust.o
-__hpf_shifts        0x88              /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-MPIR_I_LONG_INT     0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-MPIR_I_LONG_DOUBLE_INT
-                    0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-__hpf_entry_mflag   0x4               /usr/pgi/linux86-64/6.0/lib/libpgf90.a(entry.o)
-__hpf_test          0x4               /usr/pgi/linux86-64/6.0/lib/libpgf90.a(defs.o)
-sccalc_             0x28              energy_p_new.o
-MPIR_debug_s        0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-kutas_              0x4               energy_p_new.o
-precomp2_           0x17700           readrtns.o
-MPIR_I_2COMPLEX     0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-body_               0x6c00            main_clust.o
-execer_myhost       0x64              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-__P4FROM            0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4priv.o)
-ffield_             0x15c             initialize_p.o
-MPIR_rhandles       0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2init.o)
-MPIR_I_2DOUBLE_PRECISION
-                    0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-torcnstr_           0x1780            energy_p_new.o
-interact_           0x5f64            main_clust.o
-MPIR_I_COMPLEX      0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-derivat_            0x30864c          initialize_p.o
-MPIR_hbt_els        0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(util_hbt.o)
-MPIR_debug_c        0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-__hpf_np2           0x4               /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
-__hpf_tids          0x8               /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
-__argv_save         0x8               /usr/pgi/linux86-64/6.0/lib/libpgc.a(pgargs.o)
-MPIR_I_INTEGER      0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-__hpf_true_log1     0x1               /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-precomp1_           0x16760           readrtns.o
-MPIR_shandles       0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2init.o)
-clu_                0x45fb0fc         main_clust.o
-var_                0x5600            main_clust.o
-envar_fortranopt    0x8               /usr/pgi/linux86-64/6.0/lib/libpgf90.a(error.o)
-peptbond_           0x28              chainbuild.o
-__hpf_ioproc        0x4               /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
-p4_debug_level      0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-MPIR_I_INT          0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-__hpf_mask_log      0x4               /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-MPIR_I_SHORT        0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-__hpf_mask_int4     0x4               /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-MPIR_I_DOUBLE_INT   0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-invlen_             0xfa0             chainbuild.o
-free_               0xc               main_clust.o
-__hpf_tcpus         0x4               /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
-p4_local            0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-__hpf_quiet         0x4               /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
-MPIR_int1_dte       0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-__hpf_true_log8     0x8               /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-MPIR_debug_sqel     0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-__P4GLOBALTYPE      0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4priv.o)
-MPI_DOUBLE_INT_var  0x10              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-__hpf_pario         0x4               /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
-links_split_        0x8               initialize_p.o
-deriv_loc_          0x1e0             initialize_p.o
-execer_starting_remotes
-                    0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-MPIR_debug_qh       0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-links_              0x1e4             initialize_p.o
-__f90io_conv_buf    0x60              /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtconv.o)
-__ftn_32in64_       0x4               /usr/pgi/linux86-64/6.0/lib/libpgf90.a(utilsi64.o)
-MPIR_I_LONG_DOUBLE  0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-srutu_              0x4               energy_p_new.o
-MPIR_I_DOUBLE_PRECISION
-                    0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-__argc_save         0x4               /usr/pgi/linux86-64/6.0/lib/libpgc.a(pgargs.o)
-MPIR_fdtels         0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o)
-__hpf_mask_int8     0x8               /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-MPIR_All_communicators
-                    0x10              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-MPIR_I_REAL         0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-pghpf_0l_           0x20              main_clust.o
-diploc_             0x3938            readrtns.o
-__hpf_lcpu          0x4               /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
-__hpf_mask_log1     0x1               /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-thetas_             0x960             chainbuild.o
-p4_myname_in_procgroup
-                    0x40              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-MPIR_I_LOGICAL      0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-MPI_LONG_DOUBLE_INT_var
-                    0x10              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-MPIR_debug_q        0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-MPIR_hbts           0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(util_hbt.o)
-MPIR_debug_sq       0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-ch_debug_buf        0x80              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2init.o)
-header_             0x50              main_clust.o
-rotat_              0xbb80            readrtns.o
-__hpf_mask_int2     0x2               /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-local_domain        0x64              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-__hpf_heapz         0x8               /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
-pghpf_0_            0x10              main_clust.o
-__hpf_mask_log2     0x2               /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-time1_              0x28              main_clust.o
-MPIR_I_2DOUBLE      0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-MPIR_I_UB           0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-calc_               0x1f0             energy_p_new.o
-MPIR_I_2DCOMPLEX    0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-__hpf_debug         0x4               /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
-execer_id           0x84              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-vectors_            0x14820           energy_p_new.o
-tty_orig            0x12              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_secure.o)
-sbridge_            0x74              initialize_p.o
-MPIR_I_2FLOAT       0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-MPID_MyWorldRank    0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2init.o)
-MPIR_I_2INTEGER     0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-__P4TYPE            0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4priv.o)
-cntrl_              0x44              main_clust.o
-MPIR_int4_dte       0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-p4_rm_rank          0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-MPIR_tid            0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o)
-MPIR_real8_dte      0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-MPIR_I_DCOMPLEX     0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-pghpf_lineno_       0x4               main_clust.o
-clu1_               0x898ed84         main_clust.o
-execer_mynumprocs   0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-parfiles_           0xa00             main_clust.o
-MPIR_I_FLOAT        0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-MPID_MyWorldSize    0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2init.o)
-hand_start_remotes  0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-MPIR_I_2INT         0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-rotmat_             0x11940           main_clust.o
-MPIR_I_BYTE         0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-dipint_             0x206cc80         readrtns.o
-pghpf_np_           0x4               main_clust.o
-p4_brdcst_info      0x18              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-fourier_            0x344             initialize_p.o
-__hpf_true_log2     0x2               /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-MPIR_qels           0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o)
-MPIR_I_CHAR         0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-MPIR_I_FLOAT_INT    0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-MPIR_int2_dte       0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-MPIR_dtes           0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-iounits_            0x5c              main_clust.o
-history_            0x1d4d4           track.o
-MPIR_I_USHORT       0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-MPIR_I_UCHAR        0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-__hpf_debugn        0x4               /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
-execer_pg           0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-__hpf_heap_block    0x8               /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
-MPIR_I_ULONG        0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-expect_ack          0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chpackflow.o)
-bm_outfile          0x64              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-p4_wd               0x100             /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-__hpf_mask_log8     0x8               /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-MPIR_I_SHORT_INT    0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-MPIR_topo_els       0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o)
-fourier1_           0x1a0             initialize_p.o
-MPIR_I_LONG         0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-MPIR_I_2REAL        0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-chain_              0xbbb8            main_clust.o
-MPIR_I_UINT         0xa8              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-alles_              0x238bdac         main_clust.o
-MPIR_debug_qel      0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-torsiond_           0x14200           initialize_p.o
-dipmat_             0x1e84800         readrtns.o
-sclocal_            0x22cc            chainbuild.o
-MPIR_debug_rh       0x8               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-globmemsize         0x4               /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-pghpf_0c_           0x1               main_clust.o
-MPID_pack_info      0x10              /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chpackflow.o)
-
-Memory Configuration
-
-Name             Origin             Length             Attributes
-*default*        0x0000000000000000 0xffffffffffffffff
-
-Linker script and memory map
-
-LOAD /usr/lib64/crt1.o
-LOAD /usr/lib64/crti.o
-LOAD /usr/lib/gcc/x86_64-redhat-linux/3.4.2/crtbegin.o
-LOAD /usr/pgi/linux86-64/6.0/lib/f90main.o
-LOAD main_clust.o
-LOAD arcos.o
-LOAD cartprint.o
-LOAD chainbuild.o
-LOAD convert.o
-LOAD initialize_p.o
-LOAD matmult.o
-LOAD readrtns.o
-LOAD pinorm.o
-LOAD rescode.o
-LOAD intcor.o
-LOAD timing.o
-LOAD misc.o
-LOAD geomout.o
-LOAD readpdb.o
-LOAD read_coords.o
-LOAD parmread.o
-LOAD probabl.o
-LOAD fitsq.o
-LOAD hc.o
-LOAD track.o
-LOAD wrtclust.o
-LOAD srtclust.o
-LOAD noyes.o
-LOAD contact.o
-LOAD printmat.o
-LOAD int_from_cart1.o
-LOAD energy_p_new.o
-LOAD icant.o
-LOAD proc_proc.o
-LOAD work_partition.o
-LOAD setup_var.o
-LOAD /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a
-LOAD /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libpmpich.a
-LOAD /usr/pgi/linux86-64/6.0/lib/libpgf90.a
-LOAD /usr/pgi/linux86-64/6.0/lib/libpgf90_rpm1.a
-LOAD /usr/pgi/linux86-64/6.0/lib/libpgf902.a
-LOAD /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a
-LOAD /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a
-LOAD /usr/lib64/libc.so
-START GROUP
-LOAD /lib64/libc.so.6
-LOAD /usr/lib64/libc_nonshared.a
-END GROUP
-LOAD /usr/pgi/linux86-64/6.0/lib/libnspgc.a
-LOAD /usr/pgi/linux86-64/6.0/lib/libpgc.a
-LOAD /usr/lib64/libm.so
-LOAD /usr/lib/gcc/x86_64-redhat-linux/3.4.2/libgcc.a
-LOAD /usr/lib64/libc.so
-START GROUP
-LOAD /lib64/libc.so.6
-LOAD /usr/lib64/libc_nonshared.a
-END GROUP
-LOAD /usr/lib/gcc/x86_64-redhat-linux/3.4.2/libgcc.a
-LOAD /usr/lib/gcc/x86_64-redhat-linux/3.4.2/crtend.o
-LOAD /usr/lib64/crtn.o
-                0x0000000000400000                PROVIDE (__executable_start, 0x400000)
-                0x00000000004001c8                . = (0x400000 + SIZEOF_HEADERS)
-
-.interp         0x00000000004001c8       0x1c
- *(.interp)
- .interp        0x00000000004001c8       0x1c /usr/lib64/crt1.o
-
-.note.ABI-tag   0x00000000004001e4       0x20
- .note.ABI-tag  0x00000000004001e4       0x20 /usr/lib64/crt1.o
-
-.hash           0x0000000000400208      0x494
- *(.hash)
- .hash          0x0000000000400208      0x494 /usr/lib64/crt1.o
-
-.dynsym         0x00000000004006a0      0xf00
- *(.dynsym)
- .dynsym        0x00000000004006a0      0xf00 /usr/lib64/crt1.o
-
-.dynstr         0x00000000004015a0      0x507
- *(.dynstr)
- .dynstr        0x00000000004015a0      0x507 /usr/lib64/crt1.o
-
-.gnu.version    0x0000000000401aa8      0x140
- *(.gnu.version)
- .gnu.version   0x0000000000401aa8      0x140 /usr/lib64/crt1.o
-
-.gnu.version_d
- *(.gnu.version_d)
-
-.gnu.version_r  0x0000000000401be8       0x50
- *(.gnu.version_r)
- .gnu.version_r
-                0x0000000000401be8       0x50 /usr/lib64/crt1.o
-
-.rel.dyn
- *(.rel.init)
- *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
- *(.rel.fini)
- *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
- *(.rel.data.rel.ro*)
- *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
- *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
- *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
- *(.rel.ctors)
- *(.rel.dtors)
- *(.rel.got)
- *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
-
-.rela.dyn       0x0000000000401c38       0x90
- *(.rela.init)
- *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
- *(.rela.fini)
- *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
- *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
- *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
- *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
- *(.rela.ctors)
- *(.rela.dtors)
- *(.rela.got)
- .rela.got      0x0000000000401c38       0x18 /usr/lib64/crt1.o
- *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
- .rela.bss      0x0000000000401c50       0x78 /usr/lib64/crt1.o
-
-.rel.plt
- *(.rel.plt)
-
-.rela.plt       0x0000000000401cc8      0xdc8
- *(.rela.plt)
- .rela.plt      0x0000000000401cc8      0xdc8 /usr/lib64/crt1.o
-
-.init           0x0000000000402a90       0x1d
- *(.init)
- .init          0x0000000000402a90        0x9 /usr/lib64/crti.o
-                0x0000000000402a90                _init
- .init          0x0000000000402a99        0x5 /usr/lib/gcc/x86_64-redhat-linux/3.4.2/crtbegin.o
- .init          0x0000000000402a9e        0x5 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
- .init          0x0000000000402aa3        0x5 /usr/lib/gcc/x86_64-redhat-linux/3.4.2/crtend.o
- .init          0x0000000000402aa8        0x5 /usr/lib64/crtn.o
-
-.plt            0x0000000000402ab0      0x940
- *(.plt)
- .plt           0x0000000000402ab0      0x940 /usr/lib64/crt1.o
-                0x0000000000402ac0                __cxa_atexit@@GLIBC_2.2.5
-                0x0000000000402ad0                fseek@@GLIBC_2.2.5
-                0x0000000000402ae0                geteuid@@GLIBC_2.2.5
-                0x0000000000402af0                xdr_array@@GLIBC_2.2.5
-                0x0000000000402b00                __libc_start_main@@GLIBC_2.2.5
-                0x0000000000402b10                fork@@GLIBC_2.2.5
-                0x0000000000402b20                catgets@@GLIBC_2.2.5
-                0x0000000000402b30                getrusage@@GLIBC_2.2.5
-                0x0000000000402b40                bcopy@@GLIBC_2.2.5
-                0x0000000000402b50                read@@GLIBC_2.2.5
-                0x0000000000402b60                chdir@@GLIBC_2.2.5
-                0x0000000000402b70                socket@@GLIBC_2.2.5
-                0x0000000000402b80                kill@@GLIBC_2.2.5
-                0x0000000000402b90                ftell@@GLIBC_2.2.5
-                0x0000000000402ba0                xdr_u_int@@GLIBC_2.2.5
-                0x0000000000402bb0                xdr_opaque@@GLIBC_2.2.5
-                0x0000000000402bc0                getchar@@GLIBC_2.2.5
-                0x0000000000402bd0                vsprintf@@GLIBC_2.2.5
-                0x0000000000402be0                write@@GLIBC_2.2.5
-                0x0000000000402bf0                toupper@@GLIBC_2.2.5
-                0x0000000000402c00                sigemptyset@@GLIBC_2.2.5
-                0x0000000000402c10                sigaddset@@GLIBC_2.2.5
-                0x0000000000402c20                wait@@GLIBC_2.2.5
-                0x0000000000402c30                gethostname@@GLIBC_2.2.5
-                0x0000000000402c40                isdigit@@GLIBC_2.2.5
-                0x0000000000402c50                htonl@@GLIBC_2.2.5
-                0x0000000000402c60                _IO_putc@@GLIBC_2.2.5
-                0x0000000000402c70                freopen@@GLIBC_2.2.5
-                0x0000000000402c80                getenv@@GLIBC_2.2.5
-                0x0000000000402c90                malloc@@GLIBC_2.2.5
-                0x0000000000402ca0                ferror@@GLIBC_2.2.5
-                0x0000000000402cb0                strncmp@@GLIBC_2.2.5
-                0x0000000000402cc0                accept@@GLIBC_2.2.5
-                0x0000000000402cd0                modf@@GLIBC_2.2.5
-                0x0000000000402ce0                strncat@@GLIBC_2.2.5
-                0x0000000000402cf0                setsid@@GLIBC_2.2.5
-                0x0000000000402d00                sigaction@@GLIBC_2.2.5
-                0x0000000000402d10                strncpy@@GLIBC_2.2.5
-                0x0000000000402d20                getdtablesize@@GLIBC_2.2.5
-                0x0000000000402d30                execlp@@GLIBC_2.2.5
-                0x0000000000402d40                memmove@@GLIBC_2.2.5
-                0x0000000000402d50                getpeername@@GLIBC_2.2.5
-                0x0000000000402d60                htons@@GLIBC_2.2.5
-                0x0000000000402d70                fwrite@@GLIBC_2.2.5
-                0x0000000000402d80                fclose@@GLIBC_2.2.5
-                0x0000000000402d90                vprintf@@GLIBC_2.2.5
-                0x0000000000402da0                sched_yield@@GLIBC_2.2.5
-                0x0000000000402db0                socketpair@@GLIBC_2.2.5
-                0x0000000000402dc0                xdr_float@@GLIBC_2.2.5
-                0x0000000000402dd0                fcntl@@GLIBC_2.2.5
-                0x0000000000402de0                listen@@GLIBC_2.2.5
-                0x0000000000402df0                feof@@GLIBC_2.2.5
-                0x0000000000402e00                strlen@@GLIBC_2.2.5
-                0x0000000000402e10                select@@GLIBC_2.2.5
-                0x0000000000402e20                getlogin@@GLIBC_2.2.5
-                0x0000000000402e30                ftruncate@@GLIBC_2.2.5
-                0x0000000000402e40                acos@@GLIBC_2.2.5
-                0x0000000000402e50                xdr_u_long@@GLIBC_2.2.5
-                0x0000000000402e60                getsockname@@GLIBC_2.2.5
-                0x0000000000402e70                fgetc@@GLIBC_2.2.5
-                0x0000000000402e80                fread@@GLIBC_2.2.5
-                0x0000000000402e90                inet_ntoa@@GLIBC_2.2.5
-                0x0000000000402ea0                strcpy@@GLIBC_2.2.5
-                0x0000000000402eb0                fprintf@@GLIBC_2.2.5
-                0x0000000000402ec0                perror@@GLIBC_2.2.5
-                0x0000000000402ed0                memcpy@@GLIBC_2.2.5
-                0x0000000000402ee0                strtol@@GLIBC_2.2.5
-                0x0000000000402ef0                fgets@@GLIBC_2.2.5
-                0x0000000000402f00                strcmp@@GLIBC_2.2.5
-                0x0000000000402f10                time@@GLIBC_2.2.5
-                0x0000000000402f20                getsockopt@@GLIBC_2.2.5
-                0x0000000000402f30                connect@@GLIBC_2.2.5
-                0x0000000000402f40                abort@@GLIBC_2.2.5
-                0x0000000000402f50                setsockopt@@GLIBC_2.2.5
-                0x0000000000402f60                realloc@@GLIBC_2.2.5
-                0x0000000000402f70                _exit@@GLIBC_2.2.5
-                0x0000000000402f80                _IO_getc@@GLIBC_2.2.5
-                0x0000000000402f90                fflush@@GLIBC_2.2.5
-                0x0000000000402fa0                ntohl@@GLIBC_2.2.5
-                0x0000000000402fb0                sscanf@@GLIBC_2.2.5
-                0x0000000000402fc0                setlocale@@GLIBC_2.2.5
-                0x0000000000402fd0                sleep@@GLIBC_2.2.5
-                0x0000000000402fe0                xdr_char@@GLIBC_2.2.5
-                0x0000000000402ff0                rindex@@GLIBC_2.2.5
-                0x0000000000403000                index@@GLIBC_2.2.5
-                0x0000000000403010                recv@@GLIBC_2.2.5
-                0x0000000000403020                printf@@GLIBC_2.2.5
-                0x0000000000403030                fileno@@GLIBC_2.2.5
-                0x0000000000403040                open@@GLIBC_2.2.5
-                0x0000000000403050                writev@@GLIBC_2.2.5
-                0x0000000000403060                ctime@@GLIBC_2.2.5
-                0x0000000000403070                xdr_double@@GLIBC_2.2.5
-                0x0000000000403080                uname@@GLIBC_2.2.5
-                0x0000000000403090                atoi@@GLIBC_2.2.5
-                0x00000000004030a0                bzero@@GLIBC_2.2.5
-                0x00000000004030b0                ntohs@@GLIBC_2.2.5
-                0x00000000004030c0                signal@@GLIBC_2.2.5
-                0x00000000004030d0                catopen@@GLIBC_2.2.5
-                0x00000000004030e0                __strtol_internal@@GLIBC_2.2.5
-                0x00000000004030f0                setitimer@@GLIBC_2.2.5
-                0x0000000000403100                nice@@GLIBC_2.2.5
-                0x0000000000403110                strchr@@GLIBC_2.2.5
-                0x0000000000403120                memset@@GLIBC_2.2.5
-                0x0000000000403130                sendto@@GLIBC_2.2.5
-                0x0000000000403140                xdr_short@@GLIBC_2.2.5
-                0x0000000000403150                strerror@@GLIBC_2.2.5
-                0x0000000000403160                unlink@@GLIBC_2.2.5
-                0x0000000000403170                isspace@@GLIBC_2.2.5
-                0x0000000000403180                clearerr@@GLIBC_2.2.5
-                0x0000000000403190                __strtod_internal@@GLIBC_2.2.5
-                0x00000000004031a0                getpid@@GLIBC_2.2.5
-                0x00000000004031b0                dup2@@GLIBC_2.2.5
-                0x00000000004031c0                fputc@@GLIBC_2.2.5
-                0x00000000004031d0                isatty@@GLIBC_2.2.5
-                0x00000000004031e0                fputs@@GLIBC_2.2.5
-                0x00000000004031f0                waitpid@@GLIBC_2.2.5
-                0x0000000000403200                exit@@GLIBC_2.2.5
-                0x0000000000403210                xdr_int@@GLIBC_2.2.5
-                0x0000000000403220                getpwuid@@GLIBC_2.2.5
-                0x0000000000403230                bind@@GLIBC_2.2.5
-                0x0000000000403240                xdr_u_short@@GLIBC_2.2.5
-                0x0000000000403250                calloc@@GLIBC_2.2.5
-                0x0000000000403260                access@@GLIBC_2.2.5
-                0x0000000000403270                sprintf@@GLIBC_2.2.5
-                0x0000000000403280                sigprocmask@@GLIBC_2.2.5
-                0x0000000000403290                __fxstat@@GLIBC_2.2.5
-                0x00000000004032a0                gethostbyname@@GLIBC_2.2.5
-                0x00000000004032b0                ioctl@@GLIBC_2.2.5
-                0x00000000004032c0                close@@GLIBC_2.2.5
-                0x00000000004032d0                __errno_location@@GLIBC_2.2.5
-                0x00000000004032e0                xdr_long@@GLIBC_2.2.5
-                0x00000000004032f0                xdr_u_char@@GLIBC_2.2.5
-                0x0000000000403300                puts@@GLIBC_2.2.5
-                0x0000000000403310                xdrmem_create@@GLIBC_2.2.5
-                0x0000000000403320                free@@GLIBC_2.2.5
-                0x0000000000403330                gettimeofday@@GLIBC_2.2.5
-                0x0000000000403340                fopen@@GLIBC_2.2.5
-                0x0000000000403350                bcmp@@GLIBC_2.2.5
-                0x0000000000403360                shutdown@@GLIBC_2.2.5
-                0x0000000000403370                putchar@@GLIBC_2.2.5
-                0x0000000000403380                strtok@@GLIBC_2.2.5
-                0x0000000000403390                strstr@@GLIBC_2.2.5
-                0x00000000004033a0                sbrk@@GLIBC_2.2.5
-                0x00000000004033b0                getuid@@GLIBC_2.2.5
-                0x00000000004033c0                __ctype_b_loc@@GLIBC_2.3
-                0x00000000004033d0                strcat@@GLIBC_2.2.5
-                0x00000000004033e0                getppid@@GLIBC_2.2.5
-
-.text           0x00000000004033f0   0x167528
- *(.text .stub .text.* .gnu.linkonce.t.*)
- .text          0x00000000004033f0       0x2c /usr/lib64/crt1.o
-                0x00000000004033f0                _start
- .text          0x000000000040341c       0x17 /usr/lib64/crti.o
- *fill*         0x0000000000403433        0xd 90909090
- .text          0x0000000000403440       0x66 /usr/lib/gcc/x86_64-redhat-linux/3.4.2/crtbegin.o
- *fill*         0x00000000004034a6        0x2 90909090
- .text          0x00000000004034a8       0x64 /usr/pgi/linux86-64/6.0/lib/f90main.o
-                0x00000000004034a8                main
- *fill*         0x000000000040350c        0x4 90909090
- .text          0x0000000000403510     0x4652 main_clust.o
-                0x0000000000406910                difconf_
-                0x00000000004075e0                distout_
-                0x0000000000403520                MAIN_
- *fill*         0x0000000000407b62        0xe 90909090
- .text          0x0000000000407b70       0x97 arcos.o
-                0x0000000000407b80                arcos_
- *fill*         0x0000000000407c07        0x9 90909090
- .text          0x0000000000407c10      0x642 cartprint.o
-                0x0000000000407c20                cartprint_
- *fill*         0x0000000000408252        0xe 90909090
- .text          0x0000000000408260     0x6492 chainbuild.o
-                0x000000000040d3f0                locate_side_chain_
-                0x000000000040b110                locate_next_res_
-                0x0000000000408270                chainbuild_
-                0x0000000000408e00                orig_frame_
- *fill*         0x000000000040e6f2        0xe 90909090
- .text          0x000000000040e700      0xa92 convert.o
-                0x000000000040ec80                var_to_geom_
-                0x000000000040e710                geom_to_var_
- *fill*         0x000000000040f192        0xe 90909090
- .text          0x000000000040f1a0     0x4092 initialize_p.o
-                0x000000000040f1b0                initialize_
-                0x0000000000412d30                int_partition_
-                0x0000000000410f30                nazwy_
-                0x0000000000413210                hpb_partition_
-                0x0000000000410f40                init_int_table_
- *fill*         0x0000000000413232        0xe 90909090
- .text          0x0000000000413240      0x3f2 matmult.o
-                0x0000000000413250                matmult_
- *fill*         0x0000000000413632        0xe 90909090
- .text          0x0000000000413640     0x6662 readrtns.o
-                0x0000000000417dc0                read_angles_
-                0x0000000000413d20                molread_
-                0x0000000000416c50                seq_comp_
-                0x0000000000418640                reada_
-                0x0000000000418d90                openunits_
-                0x0000000000413650                read_control_
-                0x0000000000418740                multreada_
-                0x00000000004189f0                readi_
-                0x0000000000416d70                read_bridge_
-                0x0000000000418ae0                card_concat_
- *fill*         0x0000000000419ca2        0xe 90909090
- .text          0x0000000000419cb0       0xa7 pinorm.o
-                0x0000000000419cc0                pinorm_
- *fill*         0x0000000000419d57        0x9 90909090
- .text          0x0000000000419d60      0x22b rescode.o
-                0x0000000000419d70                rescode_
- *fill*         0x0000000000419f8b        0x5 90909090
- .text          0x0000000000419f90     0x1bc7 intcor.o
-                0x0000000000419fa0                alpha_
-                0x000000000041b730                dist_
-                0x000000000041a830                beta_
- *fill*         0x000000000041bb57        0x9 90909090
- .text          0x000000000041bb60      0x2d2 timing.o
-                0x000000000041bba0                stopx_
-                0x000000000041bc60                dajczas_
-                0x000000000041bb70                set_timers_
-                0x000000000041bbf0                ovrtim_
-                0x000000000041bc40                tcpu_
- *fill*         0x000000000041be32        0xe 90909090
- .text          0x000000000041be40      0xba2 misc.o
-                0x000000000041c1e0                iblnk_
-                0x000000000041c250                ilen_
-                0x000000000041c430                lcase_
-                0x000000000041be50                find_arg_
-                0x000000000041c8e0                ucase_
-                0x000000000041bf40                find_group_
-                0x000000000041c5f0                lower_case_
-                0x000000000041c7e0                numstr_
-                0x000000000041c540                lcom_
-                0x000000000041c2b0                in_keywd_set_
-                0x000000000041c660                mykey_
- *fill*         0x000000000041c9e2        0xe 90909090
- .text          0x000000000041c9f0     0x3b02 geomout.o
-                0x000000000041f0d0                briefout_
-                0x000000000041fc20                cartout_
-                0x000000000041ca00                pdbout_
-                0x000000000041eae0                intout_
-                0x000000000041dab0                mol2out_
- *fill*         0x00000000004204f2        0xe 90909090
- .text          0x0000000000420500     0x2d02 readpdb.o
-                0x0000000000423030                sccenter_
-                0x0000000000420510                readpdb_
-                0x0000000000421fe0                int_from_cart_
- *fill*         0x0000000000423202        0xe 90909090
- .text          0x0000000000423210     0x6102 read_coords.o
-                0x0000000000427c10                receive_and_pass_cconf_
-                0x0000000000423220                read_coords_
-                0x0000000000424800                add_new_cconf_
-                0x0000000000427310                store_cconf_from_file_
-                0x0000000000428c30                dawrite_ccoords_
-                0x0000000000427780                write_and_send_cconf_
-                0x0000000000428590                daread_ccoords_
- *fill*         0x0000000000429312        0xe 90909090
- .text          0x0000000000429320    0x172f9 parmread.o
-                0x0000000000429330                parmread_
- *fill*         0x0000000000440619        0x7 90909090
- .text          0x0000000000440620     0x2ef2 probabl.o
-                0x0000000000440630                probabl_
-                0x0000000000443140                mysort1_
- *fill*         0x0000000000443512        0xe 90909090
- .text          0x0000000000443520     0x8652 fitsq.o
-                0x000000000044b420                mmmul_
-                0x000000000044ae60                mvvad_
-                0x000000000044a770                switch_
-                0x0000000000449d10                givns_
-                0x0000000000444a80                sivade_
-                0x000000000044b7c0                matvec_
-                0x000000000044b100                det_
-                0x0000000000443530                fitsq_
- *fill*         0x000000000044bb72        0xe 90909090
- .text          0x000000000044bb80     0x4590 hc.o
-                0x000000000044d5d0                ioffset_
-                0x000000000044bb90                hc_
-                0x000000000044d620                hcass_
-                0x000000000044ef40                hcden_
- .text          0x0000000000450110     0x3ee9 track.o
-                0x0000000000450120                track_
-                0x00000000004506d0                writrack_
-                0x0000000000450c90                plotree_
- *fill*         0x0000000000453ff9        0x7 90909090
- .text          0x0000000000454000     0x3a40 wrtclust.o
-                0x0000000000454010                wrtclust_
- .text          0x0000000000457a40     0x1842 srtclust.o
-                0x0000000000457a50                srtclust_
- *fill*         0x0000000000459282        0xe 90909090
- .text          0x0000000000459290      0x195 noyes.o
-                0x00000000004592a0                noyes_
- *fill*         0x0000000000459425        0xb 90909090
- .text          0x0000000000459430      0xbb7 contact.o
-                0x0000000000459440                contact_
-                0x0000000000459ce0                contact_fract_
- *fill*         0x0000000000459fe7        0x9 90909090
- .text          0x0000000000459ff0      0x6f2 printmat.o
-                0x000000000045a000                printmat_
- *fill*         0x000000000045a6e2        0xe 90909090
- .text          0x000000000045a6f0     0x1602 int_from_cart1.o
-                0x000000000045a700                int_from_cart1_
- *fill*         0x000000000045bcf2        0xe 90909090
- .text          0x000000000045bd00    0xa8597 energy_p_new.o
-                0x00000000004a01e0                unormderiv_
-                0x000000000046f370                vec_and_deriv_test_
-                0x00000000004a2360                ssbond_ene_
-                0x00000000004b1be0                ehbcorr_
-                0x00000000004a6810                esc_
-                0x00000000004aea40                multibody_
-                0x0000000000463600                egb_
-                0x0000000000477540                check_vecgrad_
-                0x00000000004b39c0                dipole_
-                0x0000000000460950                eljk_
-                0x00000000004aa250                enesc_bound_
-                0x00000000004af230                esccorr_
-                0x00000000004652f0                egbv_
-                0x000000000045dea0                enerprint_
-                0x00000000004e5570                eello6_graph1_
-                0x00000000004cfc50                eello4_
-                0x0000000000500ff0                transpose2_
-                0x00000000004d29b0                eello5_
-                0x0000000000461f30                ebp_
-                0x00000000004ad050                etor_d_
-                0x0000000000468030                vec_and_deriv_
-                0x00000000004ab4e0                spline1_
-                0x0000000000493090                eturn34_
-                0x00000000004a6640                mixder_
-                0x00000000004b55a0                calc_eello_
-                0x00000000004a1970                edis_
-                0x00000000004fa7f0                eello_turn6_
-                0x00000000004ab630                spline2_
-                0x00000000004f0ca0                eello6_graph3_
-                0x00000000004ceea0                kernel_
-                0x00000000005014d0                transpose_
-                0x0000000000480ce0                eelec_
-                0x000000000045ee00                elj_
-                0x00000000004b0070                multibody_hb_
-                0x00000000004ffe20                matvec2_
-                0x0000000000478a90                set_matrices_
-                0x00000000004ab750                etor_
-                0x0000000000504190                scalar_
-                0x0000000000500e80                scalar2_
-                0x00000000005016d0                prodmat3_
-                0x00000000004a0590                escp_
-                0x00000000004ab290                gcont_
-                0x000000000045bd10                etotal_
-                0x00000000004e3230                eello6_
-                0x00000000004a3fc0                ebond_
-                0x00000000004f4020                eello6_graph4_
-                0x0000000000467200                sc_grad_
-                0x00000000004a8b20                enesc_
-                0x0000000000500280                matmat2_
-                0x00000000004a5cd0                theteng_
-                0x00000000004a4640                ebend_
-                0x0000000000466a90                sc_angular_
-                0x000000000049fd10                vecpr_
-                0x00000000004eb350                eello6_graph2_
-                0x00000000004ab400                splinthet_
-                0x00000000004b09d0                multibody_eello_
- *fill*         0x0000000000504297        0x9 90909090
- .text          0x00000000005042a0       0x75 icant.o
-                0x00000000005042b0                icant_
- *fill*         0x0000000000504315        0x3 90909090
- .text          0x0000000000504318      0x267 proc_proc.o
-                0x00000000005043d7                dsvrgp__
-                0x0000000000504318                proc_proc_
-                0x00000000005043c6                proc_conv_r__
-                0x0000000000504391                proc_conv__
- *fill*         0x000000000050457f        0x1 90909090
- .text          0x0000000000504580      0xca2 work_partition.o
-                0x0000000000504590                work_partition_
- *fill*         0x0000000000505222        0xe 90909090
- .text          0x0000000000505230      0x272 setup_var.o
-                0x0000000000505240                setup_var_
- *fill*         0x00000000005054a2        0xe 90909090
- .text          0x00000000005054b0       0x1d /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(abortf.o)
-                0x00000000005054b0                pmpi_abort_
-                0x00000000005054b0                mpi_abort_
- *fill*         0x00000000005054cd        0x3 90909090
- .text          0x00000000005054d0       0x2c /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(allgatherf.o)
-                0x00000000005054d0                pmpi_allgather_
-                0x00000000005054d0                mpi_allgather_
- *fill*         0x00000000005054fc        0x4 90909090
- .text          0x0000000000505500       0x22 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bcastf.o)
-                0x0000000000505500                pmpi_bcast_
-                0x0000000000505500                mpi_bcast_
- *fill*         0x0000000000505522        0xe 90909090
- .text          0x0000000000505530       0x2c /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_rankf.o)
-                0x0000000000505530                mpi_comm_rank_
-                0x0000000000505530                pmpi_comm_rank_
- *fill*         0x000000000050555c        0x4 90909090
- .text          0x0000000000505560       0x2c /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_sizef.o)
-                0x0000000000505560                mpi_comm_size_
-                0x0000000000505560                pmpi_comm_size_
- *fill*         0x000000000050558c        0x4 90909090
- .text          0x0000000000505590       0x4b /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(dup_fnf.o)
-                0x0000000000505590                mpi_dup_fn_
-                0x0000000000505590                pmpi_dup_fn_
- *fill*         0x00000000005055db        0x5 90909090
- .text          0x00000000005055e0       0x19 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(finalizef.o)
-                0x00000000005055e0                mpi_finalize_
-                0x00000000005055e0                pmpi_finalize_
- *fill*         0x00000000005055f9        0x7 90909090
- .text          0x0000000000505600      0x10f /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(gathervf.o)
-                0x0000000000505600                mpi_gatherv_
-                0x0000000000505600                pmpi_gatherv_
- *fill*         0x000000000050570f        0x1 90909090
- .text          0x0000000000505710      0x1ea /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initf.o)
-                0x0000000000505710                pmpi_init_
-                0x0000000000505710                mpi_init_
- *fill*         0x00000000005058fa        0x6 90909090
- .text          0x0000000000505900       0x1f /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(null_copyfnf.o)
-                0x0000000000505900                mpi_null_copy_fn_
-                0x0000000000505900                pmpi_null_copy_fn_
- *fill*         0x000000000050591f        0x1 90909090
- .text          0x0000000000505920        0xd /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(null_del_fnf.o)
-                0x0000000000505920                mpi_null_delete_fn_
-                0x0000000000505920                pmpi_null_delete_fn_
- *fill*         0x000000000050592d        0x3 90909090
- .text          0x0000000000505930       0x42 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(recvf.o)
-                0x0000000000505930                pmpi_recv_
-                0x0000000000505930                mpi_recv_
- *fill*         0x0000000000505972        0xe 90909090
- .text          0x0000000000505980       0x1d /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(sendf.o)
-                0x0000000000505980                mpi_send_
-                0x0000000000505980                pmpi_send_
- *fill*         0x000000000050599d        0x3 90909090
- .text          0x00000000005059a0        0xb /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtickf.o)
-                0x00000000005059a0                mpi_wtick_
-                0x00000000005059a0                pmpi_wtick_
- *fill*         0x00000000005059ab        0x5 90909090
- .text          0x00000000005059b0        0xb /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtimef.o)
-                0x00000000005059b0                mpi_wtime_
-                0x00000000005059b0                pmpi_wtime_
- *fill*         0x00000000005059bb        0x5 90909090
- .text          0x00000000005059c0       0x25 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(farg.o)
-                0x00000000005059d0                mpir_getarg_
-                0x00000000005059c0                mpir_iargc_
- *fill*         0x00000000005059e5        0xb 90909090
- .text          0x00000000005059f0      0x646 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-                0x0000000000505bb0                mpir_init_bottom_
-                0x0000000000505b60                MPIR_Free_Fortran_keyvals
-                0x0000000000506030                mpir_init_fsize_
-                0x00000000005059f0                MPIR_InitFortran
-                0x0000000000505bf0                MPIR_InitFortranDatatypes
-                0x0000000000505fb0                MPIR_Free_Fortran_dtes
- *fill*         0x0000000000506036        0xa 90909090
- .text          0x0000000000506040       0x32 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfcmn.o)
-                0x0000000000506060                mpir_init_flog_
-                0x0000000000506040                mpir_init_fcm_
- *fill*         0x0000000000506072        0xe 90909090
- .text          0x0000000000506080      0x5c2 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(mperror.o)
-                0x0000000000506360                MPIR_Error
-                0x0000000000506080                MPIR_Errors_are_fatal
-                0x0000000000506500                MPIR_Set_Status_error_array
-                0x0000000000506210                MPIR_Errors_warn
-                0x0000000000506200                MPIR_Errors_return
- *fill*         0x0000000000506642        0xe 90909090
- .text          0x0000000000506650      0x31f /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(send.o)
-                0x0000000000506650                MPI_Send
-                0x0000000000506650                PMPI_Send
- *fill*         0x000000000050696f        0x1 90909090
- .text          0x0000000000506970      0x336 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(recv.o)
-                0x0000000000506970                PMPI_Recv
-                0x0000000000506970                MPI_Recv
- *fill*         0x0000000000506ca6        0xa 90909090
- .text          0x0000000000506cb0      0x35c /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_util.o)
-                0x0000000000506f30                MPIR_Type_get_limits
-                0x0000000000506cc0                MPIR_Type_permanent
-                0x0000000000506cb0                MPIR_Type_dup
-                0x0000000000506ce0                MPIR_Type_free
-                0x0000000000506ff0                MPIR_Datatype_iscontig
-                0x0000000000506f80                MPIR_Free_struct_internals
-                0x0000000000506f50                MPIR_Free_perm_type
- *fill*         0x000000000050700c        0x4 90909090
- .text          0x0000000000507010       0xd7 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(abort.o)
-                0x0000000000507010                MPI_Abort
-                0x0000000000507010                PMPI_Abort
- *fill*         0x00000000005070e7        0x9 90909090
- .text          0x00000000005070f0        0xb /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(init.o)
-                0x00000000005070f0                MPI_Init
-                0x00000000005070f0                PMPI_Init
- *fill*         0x00000000005070fb        0x5 90909090
- .text          0x0000000000507100      0xdc0 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o)
-                0x0000000000507100                MPIR_Init
-                0x0000000000507e80                MPIR_Errhandler_mark
-                0x0000000000507df0                MPIR_Errhandler_create
- .text          0x0000000000507ec0      0x29c /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(finalize.o)
-                0x0000000000507ec0                MPI_Finalize
-                0x0000000000507ec0                PMPI_Finalize
- *fill*         0x000000000050815c        0x4 90909090
- .text          0x0000000000508160       0x55 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(errorstring.o)
-                0x0000000000508160                MPI_Error_string
-                0x0000000000508160                PMPI_Error_string
- *fill*         0x00000000005081b5        0xb 90909090
- .text          0x00000000005081c0      0x6f9 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-                0x0000000000508650                MPIR_Free_dtes
-                0x0000000000508890                MPIR_Type_contiguous
-                0x0000000000508740                MPIR_Setup_base_datatype
-                0x0000000000508800                MPIR_Setup_complex_datatype
-                0x00000000005081c0                MPIR_Init_dtes
- *fill*         0x00000000005088b9        0x7 90909090
- .text          0x00000000005088c0      0x104 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(errfree.o)
-                0x00000000005088c0                PMPI_Errhandler_free
-                0x00000000005088c0                MPI_Errhandler_free
- *fill*         0x00000000005089c4        0xc 90909090
- .text          0x00000000005089d0        0xb /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtime.o)
-                0x00000000005089d0                PMPI_Wtime
-                0x00000000005089d0                MPI_Wtime
- *fill*         0x00000000005089db        0x5 90909090
- .text          0x00000000005089e0       0x18 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtick.o)
-                0x00000000005089e0                MPI_Wtick
-                0x00000000005089e0                PMPI_Wtick
- *fill*         0x00000000005089f8        0x8 90909090
- .text          0x0000000000508a00      0x97e /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(nerrmsg.o)
-                0x0000000000508f00                MPIR_Get_error_string
-                0x0000000000508e10                MPIR_GetErrorMessage
-                0x0000000000509050                MPIR_GetNLSMsg
-                0x0000000000508aa0                MPIR_Err_setmsg
-                0x0000000000508cc0                MPIR_Err_map_code_to_string
- *fill*         0x000000000050937e        0x2 90909090
- .text          0x0000000000509380        0x6 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(msgqdllloc.o)
-                0x0000000000509380                MPIR_Msg_queue_export
- *fill*         0x0000000000509386        0xa 90909090
- .text          0x0000000000509390      0xabb /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(util_hbt.o)
-                0x0000000000509560                MPIR_HBT_free_tree
-                0x00000000005094f0                MPIR_HBT_free_node
-                0x0000000000509470                MPIR_HBT_new_node
-                0x00000000005098e0                MPIR_HBT_delete
-                0x0000000000509410                MPIR_HBT_new_tree
-                0x0000000000509390                MPIR_HBT_Init
-                0x0000000000509610                MPIR_HBT_insert
-                0x00000000005093e0                MPIR_HBT_Free
-                0x00000000005095b0                MPIR_HBT_lookup
-                0x0000000000509520                MPIR_HBT_free_subtree
- *fill*         0x0000000000509e4b        0x5 90909090
- .text          0x0000000000509e50      0xce6 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(ptrcvt.o)
-                0x0000000000509fa0                MPIR_DestroyPointer
-                0x000000000050a910                MPIR_DumpPointers
-                0x000000000050a190                MPIR_FromPointer
-                0x0000000000509e70                MPIR_PointerOpts
-                0x0000000000509e50                MPIR_PointerPerm
-                0x000000000050a6e0                MPIR_RegPointerIdx
-                0x000000000050a410                MPIR_RmPointer
-                0x000000000050a010                MPIR_ToPointer
-                0x000000000050a5d0                MPIR_UsePointer
- *fill*         0x000000000050ab36        0xa 90909090
- .text          0x000000000050ab40      0x974 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bsendutil2.o)
-                0x000000000050ac00                MPIR_BsendRelease
-                0x000000000050b330                MPIR_IbsendDatatype
-                0x000000000050ab40                MPIR_BsendInitBuffer
- *fill*         0x000000000050b4b4        0xc 90909090
- .text          0x000000000050b4c0      0x1da /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(keyval_free.o)
-                0x000000000050b4c0                PMPI_Keyval_free
-                0x000000000050b4c0                MPI_Keyval_free
- *fill*         0x000000000050b69a        0x6 90909090
- .text          0x000000000050b6a0      0x17d /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(attr_getval.o)
-                0x000000000050b6a0                PMPI_Attr_get
-                0x000000000050b6a0                MPI_Attr_get
- *fill*         0x000000000050b81d        0x3 90909090
- .text          0x000000000050b820      0x682 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(attr_util.o)
-                0x000000000050bca0                MPIR_Attr_free_tree
-                0x000000000050be90                MPIR_Attr_make_perm
-                0x000000000050b820                MPIR_Attr_copy_node
-                0x000000000050baf0                MPIR_Attr_free_node
-                0x000000000050ba90                MPIR_Attr_copy
-                0x000000000050bc20                MPIR_Attr_free_subtree
-                0x000000000050b9f0                MPIR_Attr_copy_subtree
-                0x000000000050bd70                MPIR_Keyval_create
-                0x000000000050bd40                MPIR_Attr_create_tree
-                0x000000000050bd20                MPIR_Attr_dup_tree
- *fill*         0x000000000050bea2        0xe 90909090
- .text          0x000000000050beb0      0x2cd /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(attr_putval.o)
-                0x000000000050beb0                PMPI_Attr_put
-                0x000000000050beb0                MPI_Attr_put
- *fill*         0x000000000050c17d        0x3 90909090
- .text          0x000000000050c180      0x1bb /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(group_free.o)
-                0x000000000050c180                PMPI_Group_free
-                0x000000000050c180                MPI_Group_free
- *fill*         0x000000000050c33b        0x5 90909090
- .text          0x000000000050c340      0x3ed /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(group_util.o)
-                0x000000000050c340                MPIR_CreateGroup
-                0x000000000050c480                MPIR_SetToIdentity
-                0x000000000050c620                MPIR_Dump_ranges
-                0x000000000050c5a0                MPIR_Dump_ranks
-                0x000000000050c6b0                MPIR_Powers_of_2
-                0x000000000050c430                MPIR_FreeGroup
-                0x000000000050c4d0                MPIR_Dump_group
-                0x000000000050c720                MPIR_Group_N2_prev
- *fill*         0x000000000050c72d        0x3 90909090
- .text          0x000000000050c730      0x295 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_free.o)
-                0x000000000050c730                MPI_Comm_free
-                0x000000000050c730                PMPI_Comm_free
- *fill*         0x000000000050c9c5        0xb 90909090
- .text          0x000000000050c9d0       0xc5 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_rank.o)
-                0x000000000050c9d0                PMPI_Comm_rank
-                0x000000000050c9d0                MPI_Comm_rank
- *fill*         0x000000000050ca95        0xb 90909090
- .text          0x000000000050caa0      0x1db /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_name_put.o)
-                0x000000000050caa0                PMPI_Comm_set_name
-                0x000000000050caa0                MPI_Comm_set_name
- *fill*         0x000000000050cc7b        0x5 90909090
- .text          0x000000000050cc80      0x129 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_size.o)
-                0x000000000050cc80                MPI_Comm_size
-                0x000000000050cc80                PMPI_Comm_size
- *fill*         0x000000000050cda9        0x7 90909090
- .text          0x000000000050cdb0      0x604 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_util.o)
-                0x000000000050cf40                MPIR_Comm_N2_prev
-                0x000000000050d2d0                MPIR_Sort_split_table
-                0x000000000050d210                MPIR_Comm_remember
-                0x000000000050d290                MPIR_Comm_collops_init
-                0x000000000050cdb0                MPIR_Comm_make_coll
-                0x000000000050d180                MPIR_Comm_init
-                0x000000000050d080                MPIR_Intercomm_high
-                0x000000000050d240                MPIR_Comm_forget
-                0x000000000050cf60                MPIR_Dump_comm
- *fill*         0x000000000050d3b4        0xc 90909090
- .text          0x000000000050d3c0      0x138 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(context_util.o)
-                0x000000000050d3c0                MPIR_Context_alloc
-                0x000000000050d4f0                MPIR_Context_dealloc
- *fill*         0x000000000050d4f8        0x8 90909090
- .text          0x000000000050d500       0x12 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(dup_fn.o)
-                0x000000000050d500                MPIR_dup_fn
- *fill*         0x000000000050d512        0xe 90909090
- .text          0x000000000050d520      0x11c /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(barrier.o)
-                0x000000000050d520                PMPI_Barrier
-                0x000000000050d520                MPI_Barrier
- *fill*         0x000000000050d63c        0x4 90909090
- .text          0x000000000050d640      0x2bf /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bcast.o)
-                0x000000000050d640                PMPI_Bcast
-                0x000000000050d640                MPI_Bcast
- *fill*         0x000000000050d8ff        0x1 90909090
- .text          0x000000000050d900      0x395 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(gatherv.o)
-                0x000000000050d900                MPI_Gatherv
-                0x000000000050d900                PMPI_Gatherv
- *fill*         0x000000000050dc95        0xb 90909090
- .text          0x000000000050dca0      0x3a5 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(allgather.o)
-                0x000000000050dca0                MPI_Allgather
-                0x000000000050dca0                PMPI_Allgather
- *fill*         0x000000000050e045        0xb 90909090
- .text          0x000000000050e050      0x2cf /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(allreduce.o)
-                0x000000000050e050                PMPI_Allreduce
-                0x000000000050e050                MPI_Allreduce
- *fill*         0x000000000050e31f        0x1 90909090
- .text          0x000000000050e320     0x54f0 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(global_ops.o)
-                0x0000000000510ed0                MPIR_LXOR
-                0x000000000050ef30                MPIR_SUM
-                0x0000000000510b10                MPIR_BOR
-                0x0000000000510450                MPIR_LOR
-                0x000000000050e920                MPIR_MINF
-                0x000000000050f450                MPIR_PROD
-                0x0000000000511b80                MPIR_MAXLOC
-                0x000000000050e320                MPIR_MAXF
-                0x0000000000510090                MPIR_BAND
-                0x00000000005117c0                MPIR_BXOR
-                0x00000000005129c0                MPIR_MINLOC
-                0x000000000050f9d0                MPIR_LAND
- .text          0x0000000000513810      0x159 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(opfree.o)
-                0x0000000000513810                PMPI_Op_free
-                0x0000000000513810                MPI_Op_free
- *fill*         0x0000000000513969        0x7 90909090
- .text          0x0000000000513970       0x91 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(oputil.o)
-                0x0000000000513970                MPIR_Op_setup
- *fill*         0x0000000000513a01        0xf 90909090
- .text          0x0000000000513a10      0x2cd /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(inter_fns.o)
- *fill*         0x0000000000513cdd        0x3 90909090
- .text          0x0000000000513ce0     0x5e67 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_fns_new.o)
- *fill*         0x0000000000519b47        0x9 90909090
- .text          0x0000000000519b50      0x400 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_scan.o)
-                0x0000000000519b50                MPIR_intra_Scan
- .text          0x0000000000519f50      0x335 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(topo_util.o)
-                0x000000000051a270                MPIR_Topology_finalize
-                0x000000000051a240                MPIR_Topology_init
-                0x0000000000519fa0                MPIR_Topology_copy_fn
-                0x0000000000519f80                MPIR_Topology_Free
-                0x0000000000519f50                MPIR_Topology_Init
-                0x000000000051a1e0                MPIR_Topology_delete_fn
- *fill*         0x000000000051a285        0xb 90909090
- .text          0x000000000051a290       0x8c /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(statusc2f.o)
-                0x000000000051a290                PMPI_Status_c2f
-                0x000000000051a290                MPI_Status_c2f
- *fill*         0x000000000051a31c        0x4 90909090
- .text          0x000000000051a320     0x1bf0 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_utils.o)
-                0x000000000051ad60                in_same_cluster
-                0x000000000051a670                p4_get_cluster_masters
-                0x000000000051a6f0                p4_get_my_id_from_proc
-                0x000000000051a320                p4_post_init
-                0x000000000051bb00                get_qualified_hostname
-                0x000000000051a630                p4_global_barrier
-                0x000000000051a360                p4_machine_type
-                0x000000000051acb0                p4_get_my_cluster_id
-                0x000000000051a5d0                p4_num_cluster_ids
-                0x000000000051bbc0                same_data_representation
-                0x000000000051ada0                p4_cluster_shmem_sync
-                0x000000000051a5c0                p4_shfree
-                0x000000000051a570                p4_shmalloc
-                0x000000000051bca0                put_execer_port
-                0x000000000051ad00                p4_am_i_cluster_master
-                0x000000000051b670                fork_p4
-                0x000000000051ac90                p4_get_my_id
-                0x000000000051a5f0                p4_num_total_ids
-                0x000000000051b750                zap_p4_processes
-                0x000000000051b080                p4_accept_wait_timeout
-                0x000000000051bda0                init_usclock
-                0x000000000051bd90                clean_execer_port
-                0x000000000051ae20                get_pipe
-                0x000000000051ae80                setup_conntab
-                0x000000000051a330                p4_version
-                0x000000000051a6d0                p4_get_cluster_ids
-                0x000000000051a610                p4_num_total_slaves
-                0x000000000051bc20                p4_proc_info
-                0x000000000051a390                p4_initenv
-                0x000000000051b0b0                p4_wait_for_end
-                0x000000000051bdf0                p4_usclock
-                0x000000000051b7d0                zap_remote_p4_processes
- .text          0x000000000051bf10     0x121e /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_bm.o)
-                0x000000000051cef0                send_proc_table
-                0x000000000051c1c0                p4_startup
-                0x000000000051bf10                bm_start
-                0x000000000051c100                p4_create_procgroup
-                0x000000000051cd90                sync_with_remotes
-                0x000000000051c400                create_bm_processes
-                0x000000000051cb10                procgroup_to_proctable
- *fill*         0x000000000051d12e        0x2 90909090
- .text          0x000000000051d130     0x10a5 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_rm.o)
-                0x000000000051e010                receive_proc_table
-                0x000000000051d840                create_rm_processes
-                0x000000000051d130                rm_start
- *fill*         0x000000000051e1d5        0xb 90909090
- .text          0x000000000051e1e0     0x1f79 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_util.o)
-                0x000000000051ee20                net_conn_to_listener
-                0x000000000051fbe0                get_inet_addr
-                0x000000000051eaa0                net_accept
-                0x0000000000520120                p4_make_socket_nonblocking
-                0x000000000051f420                net_send
-                0x000000000051fc60                p4_print_sock_params
-                0x000000000051ff70                mpiexec_reopen_stdin
-                0x000000000051fc30                get_inet_addr_str
-                0x000000000051fa60                p4_timein_hostbyname
-                0x000000000051e270                p4_socket_control
-                0x000000000051fef0                dump_sockinfo
-                0x000000000051f5d0                net_send_w
-                0x000000000051e790                net_setup_listener
-                0x000000000051f0e0                net_recv
-                0x000000000051fe70                dump_sockaddr
-                0x000000000051fa80                gethostbyname_p4
-                0x000000000051e900                net_setup_anon_listener
-                0x000000000051f7b0                net_send2
-                0x000000000051fbd0                gethostname_p4
-                0x000000000051e610                net_set_sockbuf_size
-                0x000000000051f950                p4_socket_stat
- *fill*         0x0000000000520159        0x7 90909090
- .text          0x0000000000520160     0x12e2 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_cr.o)
-                0x0000000000520820                p4_accept_sigchild
-                0x0000000000520370                net_slave_info
-                0x00000000005208d0                net_create_slave
-                0x0000000000520780                p4_accept_timeout
-                0x0000000000520160                create_remote_processes
- *fill*         0x0000000000521442        0xe 90909090
- .text          0x0000000000521450      0xb74 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_conn.o)
-                0x00000000005214d0                p4_establish_all_conns
-                0x0000000000521450                p4_has_timedout
-                0x0000000000521570                establish_connection
-                0x0000000000521a40                handle_connection_interrupt
-                0x0000000000521680                request_connection
- *fill*         0x0000000000521fc4        0xc 90909090
- .text          0x0000000000521fd0     0x1a35 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_sr.o)
-                0x00000000005229e0                socket_recv_on_fd
-                0x0000000000522d10                sock_msg_avail_on_fd
-                0x0000000000522670                socket_recv
-                0x0000000000523330                p4_sockets_ready
-                0x0000000000523750                p4_look_for_close
-                0x0000000000523290                shutdown_p4_socks
-                0x0000000000522c60                socket_msgs_available
-                0x0000000000522e90                xdr_recv
-                0x0000000000523140                wait_for_ack
-                0x0000000000523830                p4_wait_for_socket_msg
-                0x0000000000522590                socket_close_conn
-                0x0000000000521fd0                xdr_send
-                0x00000000005231f0                send_ack
-                0x00000000005223c0                socket_send
- *fill*         0x0000000000523a05        0xb 90909090
- .text          0x0000000000523a10      0xcb1 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_list.o)
-                0x0000000000524440                net_recv_timeout
-                0x0000000000523a10                listener
- *fill*         0x00000000005246c1        0xf 90909090
- .text          0x00000000005246d0      0xbac /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_secure.o)
-                0x00000000005246d0                start_slave
-                0x00000000005251c0                getpw_ss
- *fill*         0x000000000052527c        0x4 90909090
- .text          0x0000000000525280       0x88 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(usc.o)
-                0x00000000005252d0                usc_MD_clock
-                0x0000000000525280                usc_init
- *fill*         0x0000000000525308        0x8 90909090
- .text          0x0000000000525310      0xc68 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2init.o)
-                0x0000000000525ea0                MPID_SetPktSize
-                0x0000000000525f00                MPID_WaitForCompleteRecv
-                0x0000000000525650                MPID_Abort
-                0x0000000000525310                MPID_Init
-                0x0000000000525f40                MPID_Version_name
-                0x0000000000525ca0                MPID_Complete_pending
-                0x0000000000525ec0                MPID_WaitForCompleteSend
-                0x0000000000525830                MPID_End
-                0x0000000000525990                MPID_DeviceCheck
- *fill*         0x0000000000525f78        0x8 90909090
- .text          0x0000000000525f80      0x348 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2hsend.o)
-                0x0000000000525f80                MPID_SendDatatype
-                0x0000000000526100                MPID_IsendDatatype
- *fill*         0x00000000005262c8        0x8 90909090
- .text          0x00000000005262d0      0x57f /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2hrecv.o)
-                0x0000000000526360                MPID_IrecvDatatype
-                0x00000000005262d0                MPID_RecvDatatype
- *fill*         0x000000000052684f        0x1 90909090
- .text          0x0000000000526850      0x4bb /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2pack.o)
-                0x00000000005269e0                MPID_Msg_act
-                0x0000000000526850                MPID_Msg_rep
-                0x0000000000526b70                MPID_Pack
-                0x0000000000526af0                MPID_Pack_size
-                0x0000000000526c90                MPID_Unpack
- *fill*         0x0000000000526d0b        0x5 90909090
- .text          0x0000000000526d10      0x2f5 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2mpack.o)
-                0x0000000000526d10                MPID_PackMessage
-                0x0000000000526e10                MPID_PackMessageFree
-                0x0000000000526e50                MPID_UnpackMessageSetup
-                0x0000000000526ed0                MPID_UnpackMessageComplete
- *fill*         0x0000000000527005        0xb 90909090
- .text          0x0000000000527010     0x13e5 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bswap2.o)
-                0x0000000000527890                MPID_Mem_XDR_ByteDecode
-                0x0000000000527e20                MPID_Type_XDR_decode
-                0x00000000005272f0                MPID_Type_swap_inplace
-                0x0000000000527460                MPID_Mem_convert_len
-                0x00000000005274b0                MPID_Mem_XDR_Len
-                0x0000000000527010                MPID_BSwap_N_inplace
-                0x0000000000527a90                MPID_Type_XDR_encode
-                0x0000000000527950                MPID_Mem_XDR_Decode_Logical
-                0x0000000000527670                MPID_Mem_XDR_Encode_Logical
-                0x0000000000527500                MPID_Mem_XDR_Encode
-                0x0000000000527120                MPID_Type_swap_copy
-                0x00000000005274c0                MPID_Mem_XDR_Init
-                0x00000000005274e0                MPID_Mem_XDR_Free
-                0x00000000005275d0                MPID_Mem_XDR_ByteEncode
-                0x0000000000527770                MPID_Mem_XDR_Decode
-                0x00000000005270b0                MPID_BSwap_N_copy
- *fill*         0x00000000005283f5        0xb 90909090
- .text          0x0000000000528400      0xae6 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chdebug.o)
-                0x0000000000528d60                MPID_SetMsgDebugFlag
-                0x0000000000528af0                MPID_Print_Send_Handle
-                0x0000000000528da0                MPID_Print_rhandle
-                0x0000000000528880                MPID_Get_print_pkt
-                0x0000000000528400                MPID_Rndv_print_pkt
-                0x0000000000528e10                MPID_Print_Short_data
-                0x00000000005285e0                MPID_Print_packet
-                0x0000000000528b30                MPID_SetDebugFile
-                0x0000000000528890                MPID_Print_mode
-                0x0000000000528a20                MPID_Print_pkt_data
-                0x0000000000528d90                MPID_PrintMsgDebug
-                0x0000000000528d40                MPID_SetDebugFlag
-                0x0000000000528dd0                MPID_Print_shandle
-                0x0000000000528530                MPID_Cancel_print_pkt
-                0x0000000000528c30                MPID_Set_tracefile
-                0x0000000000528d30                MPID_SetSpaceDebugFlag
-                0x0000000000528d80                MPID_GetMsgDebugFlag
- *fill*         0x0000000000528ee6        0xa 90909090
- .text          0x0000000000528ef0      0x4b8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chinit.o)
-                0x0000000000529130                MPID_CH_Abort
-                0x0000000000528ef0                MPID_CH_InitMsgPass
-                0x00000000005291e0                MPID_CH_End
-                0x0000000000529370                MPID_CH_Version_name
- *fill*         0x00000000005293a8        0x8 90909090
- .text          0x00000000005293b0      0x832 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chhetero.o)
-                0x0000000000529a60                MPID_CH_Pkt_unpack
-                0x0000000000529b50                MPID_GetByteOrder
-                0x0000000000529960                MPID_CH_Pkt_pack
-                0x00000000005298a0                MPID_CH_Comm_msgrep
-                0x00000000005293b0                MPID_CH_Init_hetero
-                0x0000000000529b30                MPID_CH_Hetero_free
-                0x0000000000529b90                MPID_ByteSwapInt
- *fill*         0x0000000000529be2        0xe 90909090
- .text          0x0000000000529bf0       0xd0 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chtick.o)
-                0x0000000000529bf0                MPID_CH_Wtick
- .text          0x0000000000529cc0      0x51b /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4priv.o)
-                0x000000000052a1a0                MPID_P4_End
-                0x0000000000529cc0                MPID_P4_Init
- *fill*         0x000000000052a1db        0x5 90909090
- .text          0x000000000052a1e0      0x8da /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(queue.o)
-                0x000000000052a790                MPID_Search_unexpected_queue
-                0x000000000052a9e0                MPID_Search_unexpected_queue_and_post
-                0x000000000052a8a0                MPID_Msg_arrived
-                0x000000000052a1e0                MPID_Dump_queues
-                0x000000000052a6e0                MPID_Search_unexpected_for_request
-                0x000000000052aa60                MPID_InitQueue
-                0x000000000052a200                MPID_Dump_queue
-                0x000000000052a5a0                MPID_Dequeue
- *fill*         0x000000000052aaba        0x6 90909090
- .text          0x000000000052aac0      0x632 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(cmnargs.o)
-                0x000000000052aac0                MPID_GetIntParameter
-                0x000000000052aaf0                MPID_ArgSqueeze
-                0x000000000052ab70                MPID_ProcessArgs
- *fill*         0x000000000052b0f2        0xe 90909090
- .text          0x000000000052b100      0x3ee /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(sbcnst2.o)
-                0x000000000052b300                MPID_SBdestroy
-                0x000000000052b100                MPID_SBinit
-                0x000000000052b4a0                MPID_SBReleaseAvail
-                0x000000000052b440                MPID_SBDump
-                0x000000000052b290                MPID_SBalloc
-                0x000000000052b1c0                MPID_SBiAllocate
-                0x000000000052b360                MPID_SBrelease
-                0x000000000052b2e0                MPID_SBPrealloc
-                0x000000000052b1a0                MPID_SBfree
-                0x000000000052b3b0                MPID_SBFlush
- *fill*         0x000000000052b4ee        0x2 90909090
- .text          0x000000000052b4f0       0x52 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(session.o)
-                0x000000000052b4f0                MPID_Process_group_init
- *fill*         0x000000000052b542        0xe 90909090
- .text          0x000000000052b550      0xc0a /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chpackflow.o)
-                0x000000000052b610                MPID_SendProtoAck
-                0x000000000052bd90                MPID_FinishRecvPackets
-                0x000000000052b550                MPID_PacketFlowSetup
-                0x000000000052b880                MPID_RecvProtoAck
-                0x000000000052c130                MPID_PackDelete
- *fill*         0x000000000052c15a        0x6 90909090
- .text          0x000000000052c160      0x9fc /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chcancel.o)
-                0x000000000052c380                MPID_SendCancelOkPacket
-                0x000000000052c160                MPID_SendCancelPacket
-                0x000000000052c900                MPID_FinishCancelPackets
-                0x000000000052c680                MPID_RecvCancelOkPacket
- *fill*         0x000000000052cb5c        0x4 90909090
- .text          0x000000000052cb60      0x3b1 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(isend.o)
-                0x000000000052cb60                PMPI_Isend
-                0x000000000052cb60                MPI_Isend
- *fill*         0x000000000052cf11        0xf 90909090
- .text          0x000000000052cf20      0x3c1 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(irecv.o)
-                0x000000000052cf20                PMPI_Irecv
-                0x000000000052cf20                MPI_Irecv
- *fill*         0x000000000052d2e1        0xf 90909090
- .text          0x000000000052d2f0       0xad /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wait.o)
-                0x000000000052d2f0                PMPI_Wait
-                0x000000000052d2f0                MPI_Wait
- *fill*         0x000000000052d39d        0x3 90909090
- .text          0x000000000052d3a0       0xf5 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(test.o)
-                0x000000000052d3a0                PMPI_Test
-                0x000000000052d3a0                MPI_Test
- *fill*         0x000000000052d495        0xb 90909090
- .text          0x000000000052d4a0      0x269 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(cancel.o)
-                0x000000000052d4a0                MPI_Cancel
-                0x000000000052d4a0                PMPI_Cancel
- *fill*         0x000000000052d709        0x7 90909090
- .text          0x000000000052d710      0x5fc /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(waitall.o)
-                0x000000000052d710                PMPI_Waitall
-                0x000000000052d710                MPI_Waitall
- *fill*         0x000000000052dd0c        0x4 90909090
- .text          0x000000000052dd10      0x271 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(sendrecv.o)
-                0x000000000052dd10                PMPI_Sendrecv
-                0x000000000052dd10                MPI_Sendrecv
- *fill*         0x000000000052df81        0xf 90909090
- .text          0x000000000052df90      0x5df /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(testall.o)
-                0x000000000052df90                MPI_Testall
-                0x000000000052df90                PMPI_Testall
- *fill*         0x000000000052e56f        0x1 90909090
- .text          0x000000000052e570      0x195 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(getcount.o)
-                0x000000000052e570                PMPI_Get_count
-                0x000000000052e570                MPI_Get_count
- *fill*         0x000000000052e705        0xb 90909090
- .text          0x000000000052e710      0x21f /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_commit.o)
-                0x000000000052e710                MPI_Type_commit
-                0x000000000052e710                PMPI_Type_commit
- *fill*         0x000000000052e92f        0x1 90909090
- .text          0x000000000052e930      0x408 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_contig.o)
-                0x000000000052e930                PMPI_Type_contiguous
-                0x000000000052e930                MPI_Type_contiguous
- *fill*         0x000000000052ed38        0x8 90909090
- .text          0x000000000052ed40       0xe3 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_extent.o)
-                0x000000000052ed40                MPI_Type_extent
-                0x000000000052ed40                PMPI_Type_extent
- *fill*         0x000000000052ee23        0xd 90909090
- .text          0x000000000052ee30      0x1c9 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_free.o)
-                0x000000000052ee30                MPI_Type_free
-                0x000000000052ee30                PMPI_Type_free
- *fill*         0x000000000052eff9        0x7 90909090
- .text          0x000000000052f000      0x382 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_ind.o)
-                0x000000000052f000                MPI_Type_indexed
-                0x000000000052f000                PMPI_Type_indexed
- *fill*         0x000000000052f382        0xe 90909090
- .text          0x000000000052f390      0x137 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_lb.o)
-                0x000000000052f390                MPI_Type_lb
-                0x000000000052f390                PMPI_Type_lb
- *fill*         0x000000000052f4c7        0x9 90909090
- .text          0x000000000052f4d0      0x146 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_size.o)
-                0x000000000052f4d0                MPI_Type_size
-                0x000000000052f4d0                PMPI_Type_size
- *fill*         0x000000000052f616        0xa 90909090
- .text          0x000000000052f620      0x8fe /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_struct.o)
-                0x000000000052f620                MPI_Type_struct
-                0x000000000052f620                PMPI_Type_struct
- *fill*         0x000000000052ff1e        0x2 90909090
- .text          0x000000000052ff20      0x266 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(pack_size.o)
-                0x000000000052ff20                PMPI_Pack_size
-                0x000000000052ff20                MPI_Pack_size
- *fill*         0x0000000000530186        0xa 90909090
- .text          0x0000000000530190      0x3af /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(pack.o)
-                0x0000000000530190                PMPI_Pack
-                0x0000000000530190                MPI_Pack
- *fill*         0x000000000053053f        0x1 90909090
- .text          0x0000000000530540      0x393 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(unpack.o)
-                0x0000000000530540                PMPI_Unpack
-                0x0000000000530540                MPI_Unpack
- *fill*         0x00000000005308d3        0xd 90909090
- .text          0x00000000005308e0      0x172 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-                0x00000000005308f0                MPIR_Breakpoint
- *fill*         0x0000000000530a52        0xe 90909090
- .text          0x0000000000530a60      0x1ae /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(errset.o)
-                0x0000000000530a60                PMPI_Errhandler_set
-                0x0000000000530a60                MPI_Errhandler_set
- *fill*         0x0000000000530c0e        0x2 90909090
- .text          0x0000000000530c10      0xe1c /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(pkutil.o)
-                0x00000000005311b0                MPIR_Unpack2
-                0x00000000005318f0                MPIR_PrintDatatypeUnpack
-                0x0000000000531680                MPIR_Elementcnt
-                0x0000000000530c10                MPIR_Unpack
-                0x00000000005317b0                MPIR_Printcontig2a
-                0x0000000000530d00                MPIR_Pack2
-                0x00000000005316f0                MPIR_Printcontig
-                0x0000000000531820                MPIR_PrintDatatypePack
-                0x0000000000531750                MPIR_Printcontig2
- *fill*         0x0000000000531a2c        0x4 90909090
- .text          0x0000000000531a30       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(keyvalcreate.o)
-                0x0000000000531a30                PMPI_Keyval_create
-                0x0000000000531a30                MPI_Keyval_create
- *fill*         0x0000000000531a44        0xc 90909090
- .text          0x0000000000531a50      0x2df /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(reduce.o)
-                0x0000000000531a50                PMPI_Reduce
-                0x0000000000531a50                MPI_Reduce
- *fill*         0x0000000000531d2f        0x1 90909090
- .text          0x0000000000531d30      0x520 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_MD.o)
-                0x0000000000531d40                MD_initenv
-                0x0000000000531d70                MD_shfree
-                0x0000000000531d50                MD_malloc_hint
-                0x0000000000531d60                MD_shmalloc
-                0x0000000000531db0                MD_clock
-                0x0000000000531d80                MD_set_reference_time
-                0x0000000000531e10                data_representation
-                0x0000000000531d30                MD_initmem
- .text          0x0000000000532250      0x6a2 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_error.o)
-                0x00000000005328e0                p4_set_hard_errors
-                0x0000000000532250                p4_soft_errors
-                0x0000000000532600                trap_sig_errs
-                0x00000000005322a0                p4_error
- *fill*         0x00000000005328f2        0xe 90909090
- .text          0x0000000000532900      0xbfd /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_args.o)
-                0x0000000000532900                process_args
- *fill*         0x00000000005334fd        0x3 90909090
- .text          0x0000000000533500      0x99d /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_alloc.o)
-                0x0000000000533ad0                free_p4_msg
-                0x0000000000533820                init_avail_buffs
-                0x00000000005335f0                alloc_local_rm
-                0x0000000000533930                alloc_p4_msg
-                0x0000000000533500                alloc_local_bm
-                0x0000000000533720                alloc_local_slave
-                0x0000000000533c20                free_avail_buffs
-                0x00000000005336d0                alloc_local_listener
-                0x0000000000533e10                alloc_listener_info
-                0x0000000000533880                p4_print_avail_buffs
-                0x0000000000533cb0                alloc_global
-                0x00000000005337f0                p4_set_avail_buff
- *fill*         0x0000000000533e9d        0x3 90909090
- .text          0x0000000000533ea0      0x7de /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_debug.o)
-                0x0000000000534270                dump_local
-                0x0000000000534130                dump_global
-                0x00000000005343a0                print_conn_type
-                0x0000000000533ff0                p4_dprint_last
-                0x0000000000533ed0                p4_dprintf
-                0x0000000000533ea0                p4_get_dbg_level
-                0x00000000005345c0                dump_conntab
-                0x0000000000534580                dump_tmsg
-                0x0000000000533eb0                p4_set_dbg_level
-                0x00000000005344e0                dump_procgroup
-                0x0000000000534000                p4_dprintfl
-                0x0000000000534480                dump_listener
- *fill*         0x000000000053467e        0x2 90909090
- .text          0x0000000000534680      0x4ad /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_procgroup.o)
-                0x00000000005346e0                read_procgroup
-                0x0000000000534680                p4_alloc_procgroup
-                0x00000000005349e0                install_in_proctable
- *fill*         0x0000000000534b2d        0x3 90909090
- .text          0x0000000000534b30      0xc01 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_tsr.o)
-                0x0000000000535530                initialize_msg_queue
-                0x0000000000535550                alloc_quel
-                0x0000000000535130                queue_p4_message
-                0x00000000005354f0                p4_msg_alloc
-                0x0000000000535430                get_tmsg
-                0x0000000000535660                free_avail_quels
-                0x0000000000535190                send_message
-                0x0000000000534f10                recv_message
-                0x00000000005356d0                p4_yield
-                0x0000000000535510                p4_msg_free
-                0x0000000000534f50                p4_any_messages_available
-                0x0000000000535620                free_quel
-                0x0000000000535000                p4_messages_available
-                0x0000000000534b30                search_p4_queue
-                0x00000000005356e0                p4_waitformsg
-                0x0000000000534d30                p4_recv
- *fill*         0x0000000000535731        0xf 90909090
- .text          0x0000000000535740      0x4d3 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_mon.o)
-                0x00000000005359d0                p4_askfor
-                0x0000000000535b80                p4_progend
-                0x0000000000535940                p4_barrier_init
-                0x0000000000535860                num_in_mon_queue
-                0x0000000000535800                p4_mexit
-                0x0000000000535830                p4_mcontinue
-                0x0000000000535810                p4_mdelay
-                0x0000000000535880                p4_getsub_init
-                0x0000000000535b40                p4_probend
-                0x0000000000535960                p4_barrier
-                0x00000000005358a0                p4_getsubs
-                0x00000000005357f0                p4_menter
-                0x0000000000535af0                p4_update
-                0x00000000005359b0                p4_askfor_init
-                0x0000000000535740                p4_moninit
-                0x0000000000535bc0                p4_create
- *fill*         0x0000000000535c13        0xd 90909090
- .text          0x0000000000535c20     0x1188 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_broadcast.o)
-                0x0000000000536a30                p4_flt_absmin_op
-                0x0000000000536cc0                p4_int_absmin_op
-                0x0000000000536950                p4_flt_absmax_op
-                0x00000000005364d0                p4_dbl_sum_op
-                0x00000000005365c0                p4_dbl_min_op
-                0x0000000000536220                p4_global_op
-                0x0000000000536710                p4_dbl_absmin_op
-                0x0000000000536810                p4_flt_sum_op
-                0x0000000000536860                p4_flt_mult_op
-                0x0000000000535c20                p4_broadcastx
-                0x0000000000536520                p4_dbl_mult_op
-                0x0000000000535cf0                subtree_broadcast_p4
-                0x0000000000536b90                p4_int_max_op
-                0x0000000000536bd0                p4_int_min_op
-                0x0000000000536c10                p4_int_absmax_op
-                0x0000000000536b10                p4_int_sum_op
-                0x0000000000536610                p4_dbl_absmax_op
-                0x0000000000536b50                p4_int_mult_op
-                0x0000000000536900                p4_flt_min_op
-                0x0000000000536570                p4_dbl_max_op
-                0x00000000005368b0                p4_flt_max_op
- *fill*         0x0000000000536da8        0x8 90909090
- .text          0x0000000000536db0      0x948 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2recv.o)
-                0x0000000000537480                MPID_RecvComplete
-                0x0000000000536e40                MPID_IrecvContig
-                0x00000000005376f0                MPID_Status_set_bytes
-                0x0000000000537220                MPID_RecvIcomplete
-                0x0000000000536db0                MPID_RecvContig
- *fill*         0x00000000005376f8        0x8 90909090
- .text          0x0000000000537700      0x763 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2send.o)
-                0x0000000000537b40                MPID_SendIcomplete
-                0x0000000000537700                MPID_SendContig
-                0x0000000000537c30                MPID_SendComplete
-                0x0000000000537a00                MPID_BsendContig
-                0x0000000000537870                MPID_IsendContig
- *fill*         0x0000000000537e63        0xd 90909090
- .text          0x0000000000537e70      0x479 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2cancel.o)
-                0x0000000000538150                MPID_RecvCancel
-                0x0000000000537e70                MPID_SendCancel
- *fill*         0x00000000005382e9        0x7 90909090
- .text          0x00000000005382f0     0x1976 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chbeager.o)
-                0x0000000000539ba0                MPID_CH_Eagerb_delete
-                0x00000000005382f0                MPID_CH_Eagerb_send
-                0x0000000000539bb0                MPID_CH_Eagerb_setup
-                0x0000000000539870                MPID_CH_Eagerb_cancel_send
-                0x0000000000538960                MPID_CH_Eagerb_recv
-                0x0000000000539880                MPID_CH_Eagerb_irecv
-                0x00000000005391d0                MPID_CH_Eagerb_isend
-                0x0000000000538ea0                MPID_CH_Eagerb_save
-                0x0000000000538c60                MPID_CH_Eagerb_unxrecv_start
- *fill*         0x0000000000539c66        0xa 90909090
- .text          0x0000000000539c70     0x25a0 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chbrndv.o)
-                0x000000000053bd80                MPID_CH_Rndvb_save_self
-                0x0000000000539c70                MPID_CH_Rndvb_isend
-                0x000000000053b8c0                MPID_CH_Rndvb_ack
-                0x000000000053a1f0                MPID_CH_Rndvb_send
-                0x000000000053a2f0                MPID_CH_Rndvb_irecv
-                0x000000000053ac80                MPID_CH_Rndvb_ok_to_send
-                0x000000000053c150                MPID_CH_Rndvb_delete
-                0x000000000053aa70                MPID_CH_Rndvb_save
-                0x000000000053b5d0                MPID_CH_Rndvb_unxrecv_test_end
-                0x000000000053c160                MPID_CH_Rndvb_setup
-                0x000000000053bea0                MPID_CH_Rndvb_unxrecv_start_self
-                0x000000000053aea0                MPID_CH_Rndvb_unxrecv_start
-                0x000000000053b1b0                MPID_CH_Rndvb_unxrecv_end
- .text          0x000000000053c210      0xf63 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chchkdev.o)
-                0x000000000053c210                MPID_CH_Check_incoming
- *fill*         0x000000000053d173        0xd 90909090
- .text          0x000000000053d180     0x18ca /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chshort.o)
-                0x000000000053e9a0                MPID_CH_Short_setup
-                0x000000000053e4b0                MPID_CH_Eagerb_unxrecv_start_short
-                0x000000000053d9c0                MPID_CH_Eagerb_isend_short
-                0x000000000053e6f0                MPID_CH_Eagerb_save_short
-                0x000000000053e220                MPID_CH_Eagerb_recv_short
-                0x000000000053d180                MPID_CH_Eagerb_send_short
-                0x000000000053e990                MPID_CH_Eagerb_short_delete
- *fill*         0x000000000053ea4a        0x6 90909090
- .text          0x000000000053ea50      0x4be /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chflow.o)
-                0x000000000053ea70                MPID_SendFlowPacket
-                0x000000000053edd0                MPID_FlowDelete
-                0x000000000053ec30                MPID_RecvFlowPacket
-                0x000000000053edf0                MPID_FlowDump
-                0x000000000053ea50                MPID_FlowDebug
-                0x000000000053ecd0                MPID_FlowSetup
- *fill*         0x000000000053ef0e        0x2 90909090
- .text          0x000000000053ef10      0x61e /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_hind.o)
-                0x000000000053ef10                PMPI_Type_hindexed
-                0x000000000053ef10                MPI_Type_hindexed
- *fill*         0x000000000053f52e        0x2 90909090
- .text          0x000000000053f530      0x48c /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(dmpipk.o)
-                0x000000000053f530                MPIR_Pack_Hvector
-                0x000000000053f9b0                MPIR_HvectorLen
-                0x000000000053f770                MPIR_UnPack_Hvector
- .text          0x000000000053f9bc      0x2f4 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(close.o)
-                0x000000000053fc2c                __hpfio_cleanup
-                0x000000000053fc05                pgcrf90io_close
-                0x000000000053fb87                pgf90io_close
-                0x000000000053faa3                __hpfio_close
- .text          0x000000000053fcb0       0xc0 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(desc.o)
-                0x000000000053fd10                pghpfio_usw_read
-                0x000000000053fce0                pghpfio_ldr
-                0x000000000053fd28                pghpfio_usw_write
-                0x000000000053fcc8                pghpfio_fmt_write
-                0x000000000053fcb0                pghpfio_fmt_read
-                0x000000000053fcf8                pghpfio_ldw
-                0x000000000053fd58                pghpfio_unf_write
-                0x000000000053fd40                pghpfio_unf_read
- .text          0x000000000053fd70      0xace /usr/pgi/linux86-64/6.0/lib/libpgf90.a(encodefmt.o)
-                0x000000000054081b                pgcrf90io_encode_fmtv
-                0x00000000005407f3                pgf90io_encode_fmtv
-                0x00000000005407cc                pgcrf90io_encode_fmt
-                0x00000000005407a0                pgf90io_encode_fmt
- *fill*         0x000000000054083e        0x2 90909090
- .text          0x0000000000540840      0x9ba /usr/pgi/linux86-64/6.0/lib/libpgf90.a(error.o)
-                0x0000000000540aff                __hpfio_errmsg
-                0x0000000000540cb7                __hpfio_eorerr
-                0x0000000000540f05                pgf90io_src_info
-                0x0000000000540f1b                pgcrf90io_src_info
-                0x00000000005408e0                __hpfio_error
-                0x0000000000540840                __hpfio_errinit
-                0x00000000005411c5                __hpfio_check_format
-                0x0000000000540b90                __hpfio_eoferr
- *fill*         0x00000000005411fa        0x2 90909090
- .text          0x00000000005411fc     0x2759 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtread.o)
-                0x0000000000541a85                pgf90io_fmt_read_a
-                0x000000000054170c                pgcrf90io_fmtr_intern_init
-                0x0000000000541adb                pgcrf90io_fmt_read
-                0x0000000000541794                pgcrf90io_fmtr_intern_initv
-                0x000000000054139d                pgf90io_fmtr_init
-                0x000000000054181f                pgcrf90io_fmtr_intern_inite
-                0x00000000005418c5                __f90io_fmt_read
-                0x00000000005417a5                pgf90io_fmtr_intern_inite
-                0x0000000000543947                pgcrf90io_fmtr_end
-                0x0000000000541833                pgf90io_fmtr_intern_initev
-                0x0000000000541443                pgcrf90io_fmtr_init
-                0x0000000000543939                pgf90io_fmtr_end
-                0x000000000054147a                pgf90io_fmtr_initv
-                0x0000000000541ab1                pgf90io_fmt_read64_a
-                0x0000000000541a59                pgf90io_fmt_read
-                0x000000000054171a                pgf90io_fmtr_intern_initv
-                0x00000000005418ae                pgcrf90io_fmtr_intern_initev
-                0x0000000000541693                pgf90io_fmtr_intern_init
-                0x0000000000541520                pgcrf90io_fmtr_initv
- *fill*         0x0000000000543955        0x3 90909090
- .text          0x0000000000543958     0x2390 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtwrite.o)
-                0x0000000000543bb7                pgcrf90io_fmtw_init
-                0x0000000000543b14                pgf90io_fmtw_init
-                0x0000000000543edd                pgf90io_fmtw_intern_inite
-                0x000000000054419c                pgcrf90io_fmt_write
-                0x0000000000543e31                pgf90io_fmtw_intern_initv
-                0x0000000000543ebb                pgcrf90io_fmtw_intern_initv
-                0x0000000000544177                pgf90io_fmt_write64_a
-                0x0000000000544152                pgf90io_fmt_write_a
-                0x0000000000545ccc                pgf90io_fmtw_end
-                0x0000000000543c8f                pgcrf90io_fmtw_initv
-                0x0000000000543f92                pgf90io_fmtw_intern_initev
-                0x0000000000543e12                pgcrf90io_fmtw_intern_init
-                0x0000000000543bec                pgf90io_fmtw_initv
-                0x000000000054412d                pgf90io_fmt_write
-                0x0000000000543d88                pgf90io_fmtw_intern_init
-                0x0000000000545cda                pgcrf90io_fmtw_end
-                0x0000000000543f6a                pgcrf90io_fmtw_intern_inite
-                0x000000000054401f                pgcrf90io_fmtw_intern_initev
-                0x000000000054404a                __f90io_fmt_write
- .text          0x0000000000545ce8      0x24a /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ftnexit.o)
-                0x0000000000545f11                pgcrf90_pause
-                0x0000000000545df8                pgcrf90_stop
-                0x0000000000545dd7                pgf90_stop
-                0x0000000000545d16                pgcrf90_exit
-                0x0000000000545ce8                pgf90_exit
-                0x0000000000545ee6                pgf90_pause
- *fill*         0x0000000000545f32        0x2 90909090
- .text          0x0000000000545f34     0x1008 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ldread.o)
-                0x0000000000546f2e                pgcrf90io_ldr_end
-                0x000000000054636b                pgcrf90io_ldr
-                0x0000000000546126                pgf90io_ldr_intern_inite
-                0x0000000000546030                pgcrf90io_ldr_init
-                0x0000000000546315                pgf90io_ldr_a
-                0x00000000005460b1                pgf90io_ldr_intern_init
-                0x000000000054618e                pgcrf90io_ldr_intern_inite
-                0x000000000054603e                f90io_ldr_intern_init
-                0x0000000000546f20                pgf90io_ldr_end
-                0x0000000000545fd7                pgf90io_ldr_init
-                0x0000000000546341                pgf90io_ldr64_a
-                0x0000000000546118                pgcrf90io_ldr_intern_init
-                0x00000000005462e9                pgf90io_ldr
-                0x00000000005461d5                __f90io_ldr
- .text          0x0000000000546f3c      0x918 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ldwrite.o)
-                0x000000000054747f                pgcrf90io_ldw
-                0x0000000000547127                pgf90io_ldw_intern_init
-                0x0000000000547262                __f90io_ldw
-                0x0000000000547841                pgcrf90io_ldw_end
-                0x000000000054745a                pgf90io_ldw64_a
-                0x0000000000547410                pgf90io_ldw
-                0x000000000054723a                pgcrf90io_ldw_intern_inite
-                0x00000000005471be                pgf90io_ldw_intern_inite
-                0x0000000000547079                pgcrf90io_ldw_init
-                0x0000000000547016                pgf90io_ldw_init
-                0x000000000054782e                pgf90io_ldw_end
-                0x0000000000547435                pgf90io_ldw_a
-                0x000000000054719f                pgcrf90io_ldw_intern_init
- .text          0x0000000000547854      0xfe8 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(open.o)
-                0x0000000000547854                __hpfio_open
-                0x000000000054855b                pgf90io_open_cvt
-                0x0000000000548367                pgf90io_open
-                0x0000000000548616                pgcrf90io_open
-                0x0000000000548786                pgcrf90io_open_cvt
- .text          0x000000000054883c       0xfd /usr/pgi/linux86-64/6.0/lib/libpgf90.a(rewind.o)
-                0x000000000054892b                pgcrf90io_rewind
-                0x00000000005488e4                pgf90io_rewind
- *fill*         0x0000000000548939        0x3 90909090
- .text          0x000000000054893c     0x1b8f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(unf.o)
-                0x0000000000548e44                pgf90io_unf_read_a
-                0x0000000000548ed8                __f90io_unf_write
-                0x0000000000548bc5                __f90io_unf_read
-                0x0000000000548e6e                pgf90io_unf_read64_a
-                0x0000000000549350                pgf90io_byte_write64
-                0x00000000005498d4                __f90io_usw_read
-                0x0000000000549304                pgf90io_unf_write64_a
-                0x000000000054a074                pgf90io_usw_write
-                0x00000000005492da                pgf90io_unf_write_a
-                0x0000000000549c06                __f90io_usw_write
-                0x0000000000549bb2                pgf90io_usw_read_a
-                0x0000000000548eba                pgf90io_byte_read64
-                0x000000000054936e                __f90io_unf_end
-                0x0000000000548e98                pgf90io_byte_read
-                0x000000000054a4bd                pgf90io_usw_end
-                0x0000000000548b5e                pgf90io_unf_init
-                0x00000000005497c0                __f90io_usw_init
-                0x000000000054986d                pgf90io_usw_init
-                0x00000000005497b2                pgf90io_unf_end
-                0x00000000005492b0                pgf90io_unf_write
-                0x000000000054932e                pgf90io_byte_write
-                0x0000000000548e1a                pgf90io_unf_read
-                0x000000000054a09e                pgf90io_usw_write_a
-                0x0000000000549bdc                pgf90io_usw_read64_a
-                0x0000000000548983                __f90io_unf_init
-                0x0000000000549b88                pgf90io_usw_read
-                0x000000000054a0c8                pgf90io_usw_write64_a
-                0x000000000054a0f2                __f90io_usw_end
- *fill*         0x000000000054a4cb        0x1 90909090
- .text          0x000000000054a4cc      0x682 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(utils.o)
-                0x000000000054a910                __hpfio_zeropad
-                0x000000000054a4cc                __hpfio_alloc_fcb
-                0x000000000054a985                __hpfio_eq_str
-                0x000000000054a586                __hpfio_rwinit
-                0x000000000054a8f1                __hpfio_find_unit
-                0x000000000054a540                __hpfio_free_fcb
-                0x000000000054a9ee                __hpfio_swap_bytes
- *fill*         0x000000000054ab4e        0x2 90909090
- .text          0x000000000054ab50      0xb21 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(utilsi64.o)
-                0x000000000054ab50                __hpf_atoxi32
-                0x000000000054ad6b                __hpf_atoxi64
-                0x000000000054adaa                __hpf_i64toax
- *fill*         0x000000000054b671        0x3 90909090
- .text          0x000000000054b674      0x97f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(allo.o)
-                0x000000000054bd31                pgf90_ptr_calloc
-                0x000000000054b774                pghpf_ptr_offset
-                0x000000000054b7a8                __hpf_alloc
-                0x000000000054ba90                ftn_allocate
-                0x000000000054bdb0                __hpf_dealloc
-                0x000000000054bd88                __hpf_local_allocate
-                0x000000000054bcd3                pgf90_calloc
-                0x000000000054b6be                __hpf_ptr_offset
-                0x000000000054bfc3                __hpf_deallocate
-                0x000000000054bb0d                pgf90_alloc
-                0x000000000054becd                ftn_dealloc
-                0x000000000054bfa7                pgf90_deallocx
-                0x000000000054ba31                ftn_allocated
-                0x000000000054bfdb                __hpf_local_deallocate
-                0x000000000054ba6f                pgf90_kallocated
-                0x000000000054bee0                pgf90_dealloc
-                0x000000000054bd60                __hpf_allocate
-                0x000000000054b674                __hpf_ptr_aligned
-                0x000000000054b9c7                __hpf_allocated
-                0x000000000054ba50                pgf90_allocated
-                0x000000000054bb0c                __f90_allo_term
-                0x000000000054beba                ftn_deallocate
-                0x000000000054bd02                pgf90_ptr_alloc
-                0x000000000054bad0                ftn_alloc
- *fill*         0x000000000054bff3        0x1 90909090
- .text          0x000000000054bff4      0x9ad /usr/pgi/linux86-64/6.0/lib/libpgf90.a(entry.o)
-                0x000000000054c8aa                __hpf_entry_asend_done
-                0x000000000054c5f2                __hpf_entry_recv
-                0x000000000054c24c                pghpf_line_entry
-                0x000000000054c6e0                __hpf_entry_send_done
-                0x000000000054bff4                __hpf_entry_init
-                0x000000000054c5ad                pghpf_tracecall
-                0x000000000054c970                __hpf_entry_term
-                0x000000000054c68a                __hpf_entry_send
-                0x000000000054c099                pghpf_function_entry
-                0x000000000054c8ec                __hpf_entry_await
-                0x000000000054c92e                __hpf_entry_await_done
-                0x000000000054c276                __hpf_traceback
-                0x000000000054c3fa                __hpf_tracecall
-                0x000000000054c722                __hpf_entry_copy
-                0x000000000054c207                pghpf_function_exit
-                0x000000000054c801                __hpf_entry_arecv_done
-                0x000000000054c3e7                pghpf_traceback
-                0x000000000054c79a                __hpf_entry_arecv
-                0x000000000054c758                __hpf_entry_copy_done
-                0x000000000054c648                __hpf_entry_recv_done
-                0x000000000054c843                __hpf_entry_asend
- *fill*         0x000000000054c9a1        0x3 90909090
- .text          0x000000000054c9a4      0x1d0 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(hpfio.o)
-                0x000000000054cacb                __hpfio_stat_bcst
-                0x000000000054cabb                __hpfio_stat_init
-                0x000000000054c9a4                __hpfio_loop
-                0x000000000054ca11                __hpf_status_init
-                0x000000000054ca21                __hpf_status_bcst
- .text          0x000000000054cb74      0x227 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(hpfio_hpf.o)
-                0x000000000054cc6b                __hpfio_main
- *fill*         0x000000000054cd9b        0x1 90909090
- .text          0x000000000054cd9c      0xeed /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
-                0x000000000054cda3                __hpf_ncpus
-                0x000000000054d055                __hpf_getopt
-                0x000000000054cd9c                __hpf_myprocnum
-                0x000000000054ce33                __hpf_abortp
-                0x000000000054cdb1                __hpf_is_ioproc
-                0x000000000054d86e                __hpf_passargs
-                0x000000000054db22                pghpf_init
-                0x000000000054cdaa                __hpf_getioproc
-                0x000000000054cdc4                __hpf_abort
-                0x000000000054d2a4                __hpf_getoptb
-                0x000000000054dc62                pgf90_compiled
-                0x000000000054ce68                __hpf_exit
-                0x000000000054dc01                __hpf_pull_them_in
-                0x000000000054d734                __hpf_procargs
-                0x000000000054d22c                __hpf_getoptn
-                0x000000000054cf21                __hpf_getenv
- *fill*         0x000000000054dc89        0x3 90909090
- .text          0x000000000054dc8c      0x788 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(malloc.o)
-                0x000000000054dc8c                __hpf_malloc_without_abort
-                0x000000000054dd9c                __hpf_calloc_without_abort
-                0x000000000054de25                __hpf_free
-                0x000000000054e396                __hpf_gmalloc
-                0x000000000054e406                __hpf_gfree
-                0x000000000054e3f8                __hpf_gcalloc
-                0x000000000054dd01                __hpf_realloc
-                0x000000000054ddeb                __hpf_calloc
-                0x000000000054dce4                __hpf_malloc
-                0x000000000054e32d                __hpf_gmalloc_without_abort
-                0x000000000054e3e0                __hpf_gcalloc_without_abort
-                0x000000000054e3d2                __hpf_grealloc
- .text          0x000000000054e414      0xe58 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ptr.o)
-                0x000000000054e463                pghpf_nullify
-                0x000000000054e4e0                pghpf_nullify_char
-                0x000000000054f113                pghpf_associated
-                0x000000000054f233                pgf90_ptrchk
-                0x000000000054ea02                pghpf_ptr_assign
-                0x000000000054ee67                pghpf_ptr_in_char
-                0x000000000054eee6                pghpf_ptr_out
-                0x000000000054f151                pghpf_associated_char
-                0x000000000054f013                __hpf_associated
-                0x000000000054ef95                pghpf_ptr_out_char
-                0x000000000054f261                pgf90_ptrcp
-                0x000000000054f17f                pgf90_subchk
-                0x000000000054eca0                pghpf_ptr_assign_charx
-                0x000000000054ee4a                pghpf_ptr_in
-                0x000000000054f1d7                pgf90_subchk64
-                0x000000000054e54e                pghpf_nullifyx
-                0x000000000054eaf3                pghpf_ptr_assign_char
-                0x000000000054e700                pghpf_ptr_asgn
-                0x000000000054e7e1                pghpf_ptr_asgn_char
-                0x000000000054ebb6                pghpf_ptr_assignx
- .text          0x000000000054f26c     0x30de /usr/pgi/linux86-64/6.0/lib/libpgf90.a(rdst.o)
-                0x00000000005505ff                pghpf_template
-                0x0000000000550fcf                pgf90_template3
-                0x0000000000550391                __hpf_copy_out
-                0x0000000000551bb8                pgf90_copy_f77_argsl
-                0x000000000055184c                pgf90_copy_f77_argw
-                0x000000000054f5e8                pghpf_qopy_in
-                0x00000000005515e3                pghpf_freen
-                0x00000000005512ff                pgf90_template3v
-                0x0000000000551575                pghpf_free
-                0x000000000055145d                pghpf_instance
-                0x00000000005511f6                pgf90_template2v
-                0x0000000000551142                pgf90_template1v
-                0x000000000054f26c                __hpf_stored_alike
-                0x0000000000551dd6                pgf90_copy_f90_arg
-                0x0000000000550eb7                pgf90_template2
-                0x0000000000552086                pgf90_copy_f90_argl
-                0x000000000054f55d                is_nonsequential_section
-                0x000000000055057c                pghpf_check_block_size
-                0x0000000000550dfa                pgf90_template1
-                0x0000000000550556                pghpf_copy_out
-                0x00000000005516a9                pgf90_copy_f77_arg
-                0x0000000000550c2d                pgf90_template
-                0x00000000005519fb                pgf90_copy_f77_argl
- *fill*         0x000000000055234a        0x2 90909090
- .text          0x000000000055234c      0x1ff /usr/pgi/linux86-64/6.0/lib/libpgf90.a(rw.o)
-                0x0000000000552416                __hpf_rrecv
-                0x0000000000552532                __hpf_rbcst
-                0x000000000055234c                __hpf_rrecvl
-                0x0000000000552448                __hpf_rbcstl
-                0x000000000055242f                __hpf_rsend
-                0x00000000005523b1                __hpf_rsendl
- *fill*         0x000000000055254b        0x1 90909090
- .text          0x000000000055254c       0x64 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(version.o)
-                0x000000000055254c                __hpf_print_version
- .text          0x00000000005525b0      0x796 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(xfer.o)
-                0x0000000000552c62                __hpf_chn_prune
-                0x0000000000552c0e                __hpf_getgbuf
-                0x00000000005529bc                __hpf_chain_em_up
-                0x0000000000552652                __hpf_frechn
-                0x000000000055270d                __hpf_rstchn
-                0x0000000000552be8                __hpf_setbase
-                0x00000000005525b0                __hpf_allchn
-                0x0000000000552891                __hpf_recvl
-                0x00000000005529dd                __hpf_adjbase
-                0x0000000000552766                __hpf_sendl
- *fill*         0x0000000000552d46        0x2 90909090
- .text          0x0000000000552d48      0x241 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(stat_linux.o)
-                0x0000000000552d90                __hpf_gettb
-                0x0000000000552d48                __hpf_setarg
-                0x0000000000552f12                __hpf_second
- *fill*         0x0000000000552f89        0x3 90909090
- .text          0x0000000000552f8c      0x9a3 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(allo_i8.o)
-                0x00000000005532e5                __hpf_allocated_i8
-                0x00000000005538ff                __hpf_deallocate_i8
-                0x00000000005533ae                ftn_allocate_i8
-                0x0000000000553602                pgf90_calloc_i8
-                0x000000000055381b                pgf90_dealloc_i8
-                0x00000000005536eb                __hpf_dealloc_i8
-                0x00000000005533f1                ftn_alloc_i8
-                0x0000000000552f8c                __hpf_ptr_aligned_i8
-                0x000000000055308a                pghpf_ptr_offset_i8
-                0x0000000000553664                pgf90_ptr_calloc_i8
-                0x00000000005538e3                pgf90_deallocx_i8
-                0x000000000055338d                pgf90_kallocated_i8
-                0x0000000000553633                pgf90_ptr_alloc_i8
-                0x00000000005536c0                __hpf_local_allocate_i8
-                0x0000000000553917                __hpf_local_deallocate_i8
-                0x0000000000553430                __f90_allo_term_i8
-                0x0000000000553431                pgf90_alloc_i8
-                0x00000000005537f5                ftn_deallocate_i8
-                0x0000000000552fd5                __hpf_ptr_offset_i8
-                0x000000000055336e                pgf90_allocated_i8
-                0x0000000000553808                ftn_dealloc_i8
-                0x0000000000553695                __hpf_allocate_i8
-                0x000000000055334f                ftn_allocated_i8
-                0x00000000005530be                __hpf_alloc_i8
- *fill*         0x000000000055392f        0x1 90909090
- .text          0x0000000000553930      0x2de /usr/pgi/linux86-64/6.0/lib/libpgf90.a(assign.o)
-                0x0000000000553930                __hpfio_assign
- *fill*         0x0000000000553c0e        0x2 90909090
- .text          0x0000000000553c10     0x18d3 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtconv.o)
-                0x00000000005548ef                __hpfio_fmt_e
-                0x0000000000554a17                __hpfio_fmt_f
-                0x0000000000553c28                __hpfio_default_convert
-                0x0000000000554293                __hpfio_fmt_i8
-                0x0000000000554122                __hpfio_fmt_i
-                0x0000000000554585                __hpfio_fmt_d
-                0x0000000000555426                __hpfio_chk_f
-                0x0000000000553c10                __hpfio_printbigreal
-                0x0000000000554677                __hpfio_fmt_g
- *fill*         0x00000000005554e3        0x1 90909090
- .text          0x00000000005554e4      0x359 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtgetnum.o)
-                0x00000000005554e4                __hpfio_getnum
- *fill*         0x000000000055583d        0x3 90909090
- .text          0x0000000000555840     0x13da /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fpcvt.o)
-                0x0000000000556a9d                __hpfio_fcvt
-                0x00000000005569b5                __hpfio_ecvt
-                0x000000000055695a                __hpfio_strtod
- *fill*         0x0000000000556c1a        0x2 90909090
- .text          0x0000000000556c1c       0xcf /usr/pgi/linux86-64/6.0/lib/libpgf90.a(atol.o)
-                0x0000000000556c1c                __hpf_atol
-                0x0000000000556c6a                __hpf_strtol
- *fill*         0x0000000000556ceb        0x1 90909090
- .text          0x0000000000556cec     0x582d /usr/pgi/linux86-64/6.0/lib/libpgf90.a(dist.o)
-                0x0000000000556ee7                pghpf_owner
-                0x000000000055b1d7                pghpf_kuboundaz
-                0x0000000000557a4c                __hpf_defaultproc
-                0x0000000000557ba4                __hpf_set_alignment
-                0x000000000055701e                __hpf_next_owner
-                0x000000000055745d                __hpf_cycle_bounds
-                0x000000000055b031                pghpf_lboundaz
-                0x0000000000557b3d                __hpf_localproc
-                0x000000000055b224                pghpf_size
-                0x0000000000558241                pgf90_sect
-                0x0000000000557e07                __hpf_finish_section
-                0x000000000055acfc                __hpf_copy_descriptor
-                0x0000000000557d88                __hpf_set_section
-                0x0000000000557740                pghpf_localize_bounds
-                0x0000000000559190                pgf90_sect2v
-                0x0000000000556cec                __hpf_new_gen_block
-                0x000000000055a863                pghpf_sect3v
-                0x000000000055b359                pghpf_kshape
-                0x000000000055b29d                pghpf_ksize
-                0x0000000000557508                pghpf_cyclic_loop
-                0x000000000055746c                __hpf_cyclic_loop
-                0x0000000000559d13                pgf90_sect3v
-                0x000000000055b074                pghpf_klbounda
-                0x0000000000557399                pghpf_localize_index
-                0x0000000000556cf2                __hpf_gen_block_bounds
-                0x000000000055b316                pghpf_shape
-                0x000000000055758a                block_setup
-                0x0000000000556fbf                __hpf_describe_replication
-                0x000000000055ae4b                pghpf_lbound
-                0x0000000000557c67                __hpf_finish_descriptor
-                0x0000000000558cb6                pgf90_sect2
-                0x0000000000557cec                __hpf_set_sectionx
-                0x000000000055a350                pghpf_sect3
-                0x000000000055716b                __hpf_localize
-                0x0000000000557c37                __hpf_use_allocation
-                0x000000000055b18e                pghpf_kubounda
-                0x0000000000557c3f                __hpf_set_single
-                0x0000000000556de1                int_mult_upper
-                0x000000000055ad96                pghpf_glextent
-                0x000000000055af81                pghpf_kubound
-                0x000000000055aeb0                pghpf_klbound
-                0x00000000005595ed                pgf90_sect3
-                0x0000000000557941                pghpf_processors
-                0x000000000055b0b7                pghpf_klboundaz
-                0x000000000055afee                pghpf_lbounda
-                0x0000000000556df0                _int_mult_upper
-                0x000000000055723d                __hpf_local_offset
-                0x000000000055b0fc                pghpf_ubounda
-                0x000000000055af16                pghpf_ubound
-                0x0000000000556e02                __hpf_gcd
-                0x0000000000557069                pghpf_islocal_idx
-                0x0000000000557070                __hpf_islocal
-                0x000000000055ad7f                pghpf_extent
-                0x0000000000558729                pgf90_sect1
-                0x00000000005589ff                pgf90_sect1v
-                0x000000000055b39e                __hpf_reverse_array
-                0x0000000000557e2e                pghpf_sect
-                0x0000000000557082                pghpf_islocal
-                0x0000000000557231                pghpf_localize_dim
-                0x000000000055b145                pghpf_uboundaz
-                0x000000000055768e                __hpf_block_loop
-                0x0000000000556eb2                __hpf_lcm
-                0x0000000000556ee1                __hpf_owner
-                0x000000000055764b                pghpf_block_loop
-                0x00000000005572a0                __hpf_local_address
-                0x000000000055ad34                __hpf_inherit_template
-                0x00000000005576e9                __hpf_block_bounds
- *fill*         0x000000000055c519        0x3 90909090
- .text          0x000000000055c51c      0x218 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(comm.o)
-                0x000000000055c55b                __hpf_comm_sked
-                0x000000000055c65f                pghpf_comm_free
-                0x000000000055c59a                pghpf_comm_start
-                0x000000000055c5c7                pghpf_comm_execute
-                0x000000000055c5c6                pghpf_comm_finish
- .text          0x000000000055c734     0x105f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(copy.o)
-                0x000000000055d39a                pghpf_transpose
-                0x000000000055d240                pghpf_copy_section
-                0x000000000055d2ec                pghpf_comm_copy
-                0x000000000055cbed                __hpf_copy
-                0x000000000055d47a                pghpf_copy_scalar
-                0x000000000055d0e0                pghpf_permute_section
-                0x000000000055cb61                copy_setup
- *fill*         0x000000000055d793        0x1 90909090
- .text          0x000000000055d794       0x5a /usr/pgi/linux86-64/6.0/lib/libpgf90_rpm1.a(init_rpm1.o)
-                0x000000000055d7ac                __hpf_endpar
-                0x000000000055d7e9                __hpf_barrier
-                0x000000000055d7eb                pghpf_tid
-                0x000000000055d7ad                __hpf_begpar
-                0x000000000055d7ea                pghpf_barrier
-                0x000000000055d794                __hpf_abortx
- *fill*         0x000000000055d7ee        0x2 90909090
- .text          0x000000000055d7f0       0xc9 /usr/pgi/linux86-64/6.0/lib/libpgf90_rpm1.a(xfer_rpm1.o)
-                0x000000000055d803                __hpf_esend
-                0x000000000055d816                __hpf_ebcopys
-                0x000000000055d7f0                __hpf_erecv
-                0x000000000055d859                __hpf_doit
- *fill*         0x000000000055d8b9        0x3 90909090
- .text          0x000000000055d8bc       0x7a /usr/pgi/linux86-64/6.0/lib/libpgf902.a(cnfg.o)
-                0x000000000055d8bc                __pgget_hpfio_cnfg_default_name
-                0x000000000055d8e2                __hpfio_scratch_name
-                0x000000000055d8c4                __pgget_hpfio_cnfg_true_mask
-                0x000000000055d8d3                __pgget_hpfio_cnfg_ftn_true
-                0x000000000055d8da                __pgget_hpfio_cnfg_ftn_true_addr
-                0x000000000055d8cb                __pgget_hpfio_cnfg_true_mask_addr
- *fill*         0x000000000055d936        0x2 90909090
- .text          0x000000000055d938       0x13 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(bcopy.o)
-                0x000000000055d938                __hpf_bcopy
- *fill*         0x000000000055d94b        0x1 90909090
- .text          0x000000000055d94c      0x3d7 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(bcopys.o)
-                0x000000000055d94c                __hpf_bcopysl
- *fill*         0x000000000055dd23        0x1 90909090
- .text          0x000000000055dd24      0x183 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(buffer.o)
-                0x000000000055de53                __hpf_zwrite
-                0x000000000055de8e                __hpf_zclose
-                0x000000000055dd24                __hpf_zopen
-                0x000000000055de87                __hpf_ztell
- *fill*         0x000000000055dea7        0x1 90909090
- .text          0x000000000055dea8      0x28b /usr/pgi/linux86-64/6.0/lib/libpgf902.a(chn1t1.o)
-                0x000000000055dea8                __hpf_chn_1to1
- *fill*         0x000000000055e133        0x1 90909090
- .text          0x000000000055e134      0x166 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-                0x000000000055e134                __hpf_init_consts
- *fill*         0x000000000055e29a        0x2 90909090
- .text          0x000000000055e29c       0x10 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(cprof.o)
-                0x000000000055e29c                __hpf_prof_init
-                0x000000000055e2a8                __hpf_prof_copy
-                0x000000000055e2a7                __hpf_prof_send_done
-                0x000000000055e2a2                __hpf_prof_function_entry
-                0x000000000055e2a9                __hpf_prof_copy_done
-                0x000000000055e2aa                __hpf_prof_function_exit
-                0x000000000055e2a6                __hpf_prof_send
-                0x000000000055e2a4                __hpf_prof_recv
-                0x000000000055e2a3                __hpf_prof_line_entry
-                0x000000000055e2a5                __hpf_prof_recv_done
-                0x000000000055e2ab                __hpf_prof_term
- .text          0x000000000055e2ac        0x6 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(cprof2.o)
-                0x000000000055e2af                __hpf_prof_asend_done
-                0x000000000055e2b1                __hpf_prof_await_done
-                0x000000000055e2ac                __hpf_prof_arecv
-                0x000000000055e2ae                __hpf_prof_asend
-                0x000000000055e2ad                __hpf_prof_arecv_done
-                0x000000000055e2b0                __hpf_prof_await
- *fill*         0x000000000055e2b2        0x2 90909090
- .text          0x000000000055e2b4      0x17e /usr/pgi/linux86-64/6.0/lib/libpgf902.a(genlist.o)
-                0x000000000055e384                __hpf_genlist
-                0x000000000055e2b4                __hpf_initndx
-                0x000000000055e34f                __hpf_findndx
- *fill*         0x000000000055e432        0x2 90909090
- .text          0x000000000055e434      0x1b7 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(hand.o)
-                0x000000000055e434                __hpf_psignal
-                0x000000000055e530                __hpf_sethand
- *fill*         0x000000000055e5eb        0x1 90909090
- .text          0x000000000055e5ec      0xea6 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(stat.o)
-                0x000000000055f3a4                __hpf_stat_recv_done
-                0x000000000055f403                __hpf_stat_arecv
-                0x000000000055e63a                __hpf_stat_init
-                0x000000000055f490                __hpf_stat_line_entry
-                0x000000000055f3d3                __hpf_stat_send_done
-                0x000000000055f462                __hpf_stat_await_done
-                0x000000000055e5ec                pghpf_times
-                0x000000000055f376                __hpf_stat_recv
-                0x000000000055f432                __hpf_stat_asend
-                0x000000000055f3a5                __hpf_stat_send
-                0x000000000055f1da                __hpf_stat_term
-                0x000000000055f461                __hpf_stat_await
-                0x000000000055f3d4                __hpf_stat_copy
-                0x000000000055f460                __hpf_stat_asend_done
-                0x000000000055f491                __hpf_stat_function_exit
-                0x000000000055f431                __hpf_stat_arecv_done
-                0x000000000055f463                pghpf_msgstats
-                0x000000000055f402                __hpf_stat_copy_done
-                0x000000000055f48f                __hpf_stat_function_entry
- *fill*         0x000000000055f492        0x2 90909090
- .text          0x000000000055f494       0xec /usr/pgi/linux86-64/6.0/lib/libpgf902.a(trace.o)
-                0x000000000055f571                __hpf_trac_line_entry
-                0x000000000055f575                __hpf_trac_send_done
-                0x000000000055f57f                __hpf_trac_term
-                0x000000000055f573                __hpf_trac_recv_done
-                0x000000000055f577                __hpf_trac_copy_done
-                0x000000000055f578                __hpf_trac_function_exit
-                0x000000000055f576                __hpf_trac_copy
-                0x000000000055f511                __hpf_trac_function_entry
-                0x000000000055f574                __hpf_trac_send
-                0x000000000055f572                __hpf_trac_recv
-                0x000000000055f494                __hpf_trac_init
- .text          0x000000000055f580        0x6 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(trace2.o)
-                0x000000000055f584                __hpf_trac_await
-                0x000000000055f581                __hpf_trac_arecv_done
-                0x000000000055f585                __hpf_trac_await_done
-                0x000000000055f583                __hpf_trac_asend_done
-                0x000000000055f580                __hpf_trac_arecv
-                0x000000000055f582                __hpf_trac_asend
- *fill*         0x000000000055f586        0x2 90909090
- .text          0x000000000055f588       0x1c /usr/pgi/linux86-64/6.0/lib/libpgf902.a(xfer_heap_dum.o)
-                0x000000000055f59e                __hpf_hrecv
-                0x000000000055f597                __hpf_hinit
-                0x000000000055f588                __hpf_sbrk
-                0x000000000055f598                __hpf_hsend
-                0x000000000055f596                __hpf_verghp
- .text          0x000000000055f5a4        0xe /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(dacos.o)
-                0x000000000055f5a4                __mth_i_dacos
- *fill*         0x000000000055f5b2        0x2 90909090
- .text          0x000000000055f5b4      0x4f2 /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(ftncharsup.o)
-                0x000000000055f9f9                ftn_str_malloc
-                0x000000000055f85f                ftn_str_index
-                0x000000000055f5b4                ftn_str_copy
-                0x000000000055fa89                ftn_str_free
-                0x000000000055f8ca                ftn_strcmp
- *fill*         0x000000000055faa6        0x2 90909090
- .text          0x000000000055faa8       0x22 /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(flush3f.o)
-                0x000000000055faa8                flush_
- *fill*         0x000000000055faca        0x2 90909090
- .text          0x000000000055facc       0x67 /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(getenv3f.o)
-                0x000000000055facc                getenv_
- *fill*         0x000000000055fb33        0x1 90909090
- .text          0x000000000055fb34       0x53 /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(fdate3f.o)
-                0x000000000055fb34                fdate_
- *fill*         0x000000000055fb87        0x1 90909090
- .text          0x000000000055fb88       0x8c /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(getarg3f.o)
-                0x000000000055fc13                pgftn_arg_init
-                0x000000000055fb88                getarg_
-                0x000000000055fbfe                iargc_
- .text          0x000000000055fc14      0x3f1 /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(cvt.o)
-                0x000000000055ffd1                fcvt
-                0x000000000055ff9d                ecvt
- *fill*         0x0000000000560005        0x3 90909090
- .text          0x0000000000560008      0x135 /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(utils3f.o)
-                0x000000000056005d                __cstr_free
-                0x0000000000560070                __fcp_cstr
-                0x0000000000560008                __fstr2cstr
-                0x00000000005600ae                __isatty3f
-                0x00000000005600f7                __getfile3f
- *fill*         0x000000000056013d        0x3 90909090
- .text          0x0000000000560140      0x80c /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(utils.o)
-                0x0000000000560810                __fio_swap_bytes
-                0x000000000056078f                __fio_putwchar
-                0x00000000005601b9                __fio_free_fcb
-                0x000000000056072d                __fio_num_euc
-                0x000000000056051c                __fio_zeropad
-                0x0000000000560683                __fio_euc2wchar
-                0x00000000005601ff                __fio_rwinit
-                0x00000000005604fd                __fio_find_unit
-                0x0000000000560140                __fio_alloc_fcb
-                0x0000000000560591                __fio_eq_str
-                0x00000000005605fa                __fio_wchar2euc
- .text          0x000000000056094c      0x86f /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(error.o)
-                0x000000000056094c                __fio_errinit
-                0x00000000005609cc                __fio_error
-                0x0000000000560bda                __fio_errmsg
-                0x0000000000561186                __fio_check_format
-                0x0000000000560f1f                fio_src_info
-                0x0000000000560c75                __fio_eoferr
- *fill*         0x00000000005611bb        0x1 90909090
- .text          0x00000000005611bc       0x58 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(ftnexit.o)
-                0x00000000005611bc                ftn_exit
- .text          0x0000000000561214      0xb47 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(open.o)
-                0x0000000000561214                fio_open
-                0x00000000005615df                __fio_open
-                0x0000000000561b7e                fio_nopen
-                0x0000000000561ca5                fio_open_cvt
- *fill*         0x0000000000561d5b        0x1 90909090
- .text          0x0000000000561d5c      0x1c0 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(close.o)
-                0x0000000000561e5d                __fio_close
-                0x0000000000561d5c                fio_close
- .text          0x0000000000561f1c       0x90 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(cnfg.o)
-                0x0000000000561f1c                __fio_scratch_name
- .text          0x0000000000561fac        0x1 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(pgdummy.o)
-                0x0000000000561fac                __pc_set_tmp
- *fill*         0x0000000000561fad        0x3 90909090
- .text          0x0000000000561fb0       0x99 /usr/lib64/libc_nonshared.a(elf-init.oS)
-                0x0000000000562010                __libc_csu_fini
-                0x0000000000561fb0                __libc_csu_init
- *fill*         0x0000000000562049        0x7 90909090
- .text          0x0000000000562050       0x18 /usr/lib64/libc_nonshared.a(atexit.oS)
-                0x0000000000562050                atexit
- *fill*         0x0000000000562068        0x8 90909090
- .text          0x0000000000562070      0x12e /usr/pgi/linux86-64/6.0/lib/libnspgc.a(pgdbg_utils.o)
-                0x0000000000562100                __set_xmmreg
-                0x0000000000562190                __pgdbg_stub
-                0x0000000000562070                __get_xmmreg
- *fill*         0x000000000056219e        0x2 90909090
- .text          0x00000000005621a0     0x16f7 /usr/pgi/linux86-64/6.0/lib/libpgc.a(mthi64.o)
-                0x00000000005637e6                __utl_i_dflt64
-                0x00000000005621a0                __utl_i_add64
-                0x000000000056385a                __utl_i_flt64
-                0x00000000005637af                __utl_i_dfix64
-                0x00000000005624f5                __utl_i_udiv64
-                0x00000000005622a9                __utl_i_mul64
-                0x000000000056230a                __utl_i_div64
-                0x000000000056381d                __utl_i_fix64
-                0x0000000000562220                __utl_i_sub64
- *fill*         0x0000000000563897        0x1 90909090
- .text          0x0000000000563898       0x84 /usr/pgi/linux86-64/6.0/lib/libpgc.a(dpowi.o)
-                0x0000000000563898                __mth_i_dpowi
- *fill*         0x000000000056391c        0x4 90909090
- .text          0x0000000000563920       0x26 /usr/pgi/linux86-64/6.0/lib/libpgc.a(dfloatuk.o)
-                0x0000000000563920                __mth_i_dfloatuk
- *fill*         0x0000000000563946        0xa 90909090
- .text          0x0000000000563950       0x5c /usr/pgi/linux86-64/6.0/lib/libpgc.a(dint.o)
-                0x0000000000563950                __mth_i_dint
- .text          0x00000000005639ac      0x1fa /usr/pgi/linux86-64/6.0/lib/libpgc.a(pgstdinit.o)
-                0x00000000005639ac                __pgio_environ
-                0x0000000000563b44                __pgio_fwrite
-                0x0000000000563a89                __pgio_ferror
-                0x0000000000563acb                __pgio_binary_mode
-                0x0000000000563a72                __pgio_feof
-                0x00000000005639b9                __pgio_errno
-                0x0000000000563ab1                __pgio_isatty
-                0x0000000000563aa0                __pgio_getfd
-                0x0000000000563a1e                __pgio_putc
-                0x0000000000563b73                __pgio_timezone
-                0x00000000005639fa                __pgio_stderr
-                0x00000000005639e0                __pgio_stdin
-                0x0000000000563a46                __pgio_putchar
-                0x0000000000563a3b                __pgio_getchar
-                0x00000000005639c6                __pgio_set_errno
-                0x0000000000563ada                __pgio_ispipe
-                0x0000000000563a5b                __pgio_clearerr
-                0x0000000000563a07                __pgio_getc
-                0x00000000005639ed                __pgio_stdout
- *fill*         0x0000000000563ba6        0x2 90909090
- .text          0x0000000000563ba8       0xfc /usr/pgi/linux86-64/6.0/lib/libpgc.a(mpmalloc.o)
-                0x0000000000563c2a                _mp_realloc
-                0x0000000000563be5                _mp_calloc
-                0x0000000000563ba8                _mp_malloc
-                0x0000000000563c6f                _mp_free
- .text          0x0000000000563ca4       0x2e /usr/pgi/linux86-64/6.0/lib/libpgc.a(rtcrit.o)
-                0x0000000000563cbd                _mp_ecs_stdio
-                0x0000000000563ca4                _mp_bcs_stdio
- *fill*         0x0000000000563cd2        0x2 90909090
- .text          0x0000000000563cd4      0x257 /usr/pgi/linux86-64/6.0/lib/libpgc.a(pgtempnam.o)
-                0x0000000000563ee7                __pgio_tempnam
- *fill*         0x0000000000563f2b        0x1 90909090
- .text          0x0000000000563f2c      0x660 /usr/pgi/linux86-64/6.0/lib/libpgc.a(va_arg.o)
-                0x00000000005642df                __builtin_va_memarg
-                0x000000000056434e                __builtin_va_genarg
-                0x000000000056419d                __builtin_va_fparg1
-                0x0000000000564067                __builtin_va_gparg1
-                0x0000000000564212                __builtin_va_fpargs
-                0x00000000005640d6                __builtin_va_gpargs
-                0x0000000000563f2c                dmp_va_list
- .text          0x000000000056458c       0x40 /usr/pgi/linux86-64/6.0/lib/libpgc.a(pgargs.o)
-                0x000000000056458c                __pgio_get_argv
-                0x00000000005645ba                __pgio_set_argc
-                0x00000000005645ae                __pgio_get_argc
-                0x0000000000564599                __pgio_set_argv
- *fill*         0x00000000005645cc        0x4 90909090
- .text          0x00000000005645d0     0x217a /usr/pgi/linux86-64/6.0/lib/libpgc.a(dsincosp.o)
-                0x00000000005645d0                __mth_dsincos
-                0x0000000000565510                __mth_i_dsin
-                0x0000000000565bd0                __mth_i_dcos
- *fill*         0x000000000056674a        0x6 90909090
- .text          0x0000000000566750      0xa5f /usr/pgi/linux86-64/6.0/lib/libpgc.a(dtan.o)
-                0x0000000000566750                __mth_i_dtan
- *fill*         0x00000000005671af        0x1 90909090
- .text          0x00000000005671b0      0x2be /usr/pgi/linux86-64/6.0/lib/libpgc.a(datan.o)
-                0x00000000005671b0                __mth_i_datan
- *fill*         0x000000000056746e        0x2 90909090
- .text          0x0000000000567470     0x33fc /usr/pgi/linux86-64/6.0/lib/libpgc.a(fastmath.o)
-                0x0000000000568480                __fmth_i_exp
-                0x0000000000568ba0                __fmth_i_dlog
-                0x0000000000567f50                __fmth_i_dexp
-                0x0000000000568570                __fvsexp
-                0x000000000056a6a0                __fmth_i_alog
-                0x0000000000567a20                __fmth_i_dpowd
-                0x0000000000567910                __fvdpow
-                0x0000000000569bd0                __fvslog
-                0x0000000000567580                __fmth_i_rpowr
-                0x00000000005682e0                __fvdexp
-                0x0000000000567470                __fvspow
-                0x0000000000569380                __fvdlog
- *fill*         0x000000000056a86c        0x4 90909090
- .text          0x000000000056a870       0x54 /usr/pgi/linux86-64/6.0/lib/libpgc.a(crit_dum.o)
-                0x000000000056a890                _mp_p
-                0x000000000056a880                _mp_ecs
-                0x000000000056a870                _mp_bcs
-                0x000000000056a8a0                _mp_v
-                0x000000000056a8c0                _mp_incr
-                0x000000000056a8b0                _mp_ptest
- *fill*         0x000000000056a8c4        0xc 90909090
- .text          0x000000000056a8d0        0xf /usr/lib64/libc_nonshared.a(fstat.oS)
-                0x000000000056a8d0                fstat
-                0x000000000056a8d0                __fstat
- *fill*         0x000000000056a8df        0x1 90909090
- .text          0x000000000056a8e0       0x36 /usr/lib/gcc/x86_64-redhat-linux/3.4.2/crtend.o
- *fill*         0x000000000056a916        0x2 90909090
- *(.text.*personality*)
- *(.gnu.warning)
-
-.fini           0x000000000056a918        0xe
- *(.fini)
- .fini          0x000000000056a918        0x4 /usr/lib64/crti.o
-                0x000000000056a918                _fini
- .fini          0x000000000056a91c        0x5 /usr/lib/gcc/x86_64-redhat-linux/3.4.2/crtbegin.o
- .fini          0x000000000056a921        0x5 /usr/lib64/crtn.o
-                0x000000000056a926                PROVIDE (__etext, .)
-                0x000000000056a926                PROVIDE (_etext, .)
-                0x000000000056a926                PROVIDE (etext, .)
-
-.rodata         0x000000000056a940     0x5560
- *(.rodata .rodata.* .gnu.linkonce.r.*)
- .rodata        0x000000000056a940        0x4 /usr/lib64/crt1.o
-                0x000000000056a940                _IO_stdin_used
- .rodata        0x000000000056a944        0x3 proc_proc.o
- .rodata.str1.1
-                0x000000000056a947       0x17 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(close.o)
- *fill*         0x000000000056a95e        0x2 00
- .rodata        0x000000000056a960      0x390 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(encodefmt.o)
- .rodata.str1.1
-                0x000000000056acf0      0x2f3 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(error.o)
-                                        0x2f7 (size before relaxing)
- *fill*         0x000000000056afe3       0x1d 00
- .rodata.str1.32
-                0x000000000056b000     0x127f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(error.o)
- *fill*         0x000000000056c27f        0x1 00
- .rodata        0x000000000056c280       0x31 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(error.o)
- .rodata.str1.1
-                0x000000000056c2b1        0x3 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtread.o)
-                                         0x12 (size before relaxing)
- *fill*         0x000000000056c2b4        0x4 00
- .rodata        0x000000000056c2b8      0x634 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtread.o)
- .rodata.str1.1
-                0x000000000056c8ec        0x8 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtwrite.o)
-                                         0x21 (size before relaxing)
- *fill*         0x000000000056c8f4        0x4 00
- .rodata        0x000000000056c8f8      0x4e0 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtwrite.o)
- .rodata.str1.1
-                0x000000000056cdd8       0x51 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ftnexit.o)
-                                         0x57 (size before relaxing)
- *fill*         0x000000000056ce29       0x17 00
- .rodata.str1.32
-                0x000000000056ce40       0x36 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ftnexit.o)
- .rodata.str1.1
-                0x000000000056ce76       0x13 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ldread.o)
- *fill*         0x000000000056ce89        0x7 00
- .rodata        0x000000000056ce90      0x4e8 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ldread.o)
- .rodata.str1.1
-                0x000000000056d378       0x1d /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ldwrite.o)
-                                         0x35 (size before relaxing)
- .rodata.str1.1
-                0x000000000056d395       0xbe /usr/pgi/linux86-64/6.0/lib/libpgf90.a(open.o)
-                                         0xea (size before relaxing)
- .rodata.str1.1
-                0x000000000056d453        0x0 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(rewind.o)
-                                          0x7 (size before relaxing)
- .rodata.str1.1
-                0x000000000056d453       0x23 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(unf.o)
- *fill*         0x000000000056d476        0xa 00
- .rodata.str1.32
-                0x000000000056d480       0x67 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(allo.o)
- .rodata.str1.1
-                0x000000000056d4e7       0x43 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(entry.o)
- .rodata.str1.1
-                0x000000000056d52a       0xca /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
-                                         0xde (size before relaxing)
- *fill*         0x000000000056d5f4        0xc 00
- .rodata.str1.32
-                0x000000000056d600       0xa0 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
- .rodata.str1.32
-                0x000000000056d6a0       0xaf /usr/pgi/linux86-64/6.0/lib/libpgf90.a(malloc.o)
- .rodata.str1.1
-                0x000000000056d74f        0xe /usr/pgi/linux86-64/6.0/lib/libpgf90.a(malloc.o)
- *fill*         0x000000000056d75d        0x3 00
- .rodata.str1.32
-                0x000000000056d760      0x30f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ptr.o)
- .rodata.str1.1
-                0x000000000056da6f       0xa9 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ptr.o)
- .rodata.str1.1
-                0x000000000056db18       0x59 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(rdst.o)
-                                         0x5d (size before relaxing)
- *fill*         0x000000000056db71        0xf 00
- .rodata.str1.32
-                0x000000000056db80      0x503 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(rdst.o)
- .rodata.str1.1
-                0x000000000056e083       0x32 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(version.o)
-                                         0x36 (size before relaxing)
- *fill*         0x000000000056e0b5        0xb 00
- .rodata.str1.32
-                0x000000000056e0c0       0x88 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(version.o)
- *fill*         0x000000000056e148       0x18 00
- .rodata.str1.32
-                0x000000000056e160       0x22 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(xfer.o)
- *fill*         0x000000000056e182        0x6 00
- .rodata.cst8   0x000000000056e188       0x10 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(stat_linux.o)
-                                         0x18 (size before relaxing)
- .rodata.str1.1
-                0x000000000056e198        0xd /usr/pgi/linux86-64/6.0/lib/libpgf90.a(stat_linux.o)
- .rodata.str1.32
-                0x000000000056e1a5        0x0 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(allo_i8.o)
-                                         0x67 (size before relaxing)
- *fill*         0x000000000056e1a5        0x3 00
- .rodata        0x000000000056e1a8      0x2d8 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(assign.o)
- .rodata.str1.1
-                0x000000000056e480       0x41 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtconv.o)
-                                         0x47 (size before relaxing)
- *fill*         0x000000000056e4c1        0x7 00
- .rodata        0x000000000056e4c8       0xc8 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtconv.o)
- .rodata.cst8   0x000000000056e590        0x0 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtconv.o)
-                                          0x8 (size before relaxing)
- .rodata.str1.1
-                0x000000000056e590        0xb /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fpcvt.o)
- *fill*         0x000000000056e59b        0x5 00
- .rodata        0x000000000056e5a0      0x270 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(atol.o)
- *fill*         0x000000000056e810       0x10 00
- .rodata.str1.32
-                0x000000000056e820      0x332 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(dist.o)
- .rodata.str1.1
-                0x000000000056eb52       0x54 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(dist.o)
- *fill*         0x000000000056eba6        0x2 00
- .rodata        0x000000000056eba8       0xc0 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(dist.o)
- *fill*         0x000000000056ec68       0x18 00
- .rodata.str1.32
-                0x000000000056ec80       0x5f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(comm.o)
- .rodata.str1.1
-                0x000000000056ecdf       0xb3 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(copy.o)
- *fill*         0x000000000056ed92        0xe 00
- .rodata.str1.32
-                0x000000000056eda0      0x4a7 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(copy.o)
- .rodata.str1.1
-                0x000000000056f247        0x0 /usr/pgi/linux86-64/6.0/lib/libpgf90_rpm1.a(init_rpm1.o)
-                                          0x5 (size before relaxing)
- .rodata.str1.1
-                0x000000000056f247       0x3a /usr/pgi/linux86-64/6.0/lib/libpgf90_rpm1.a(xfer_rpm1.o)
- *fill*         0x000000000056f281       0x1f 00
- .rodata.str1.32
-                0x000000000056f2a0       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90_rpm1.a(xfer_rpm1.o)
- .rodata.str1.1
-                0x000000000056f2bf        0xc /usr/pgi/linux86-64/6.0/lib/libpgf902.a(cnfg.o)
- .rodata.str1.1
-                0x000000000056f2cb       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf902.a(buffer.o)
- .rodata.str1.1
-                0x000000000056f2ea      0x115 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-                                        0x13f (size before relaxing)
- .rodata.str1.1
-                0x000000000056f3ff       0x87 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(hand.o)
-                                         0x8f (size before relaxing)
- *fill*         0x000000000056f486       0x1a 00
- .rodata.str1.32
-                0x000000000056f4a0       0x61 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(hand.o)
- .rodata.str1.1
-                0x000000000056f501       0x57 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(stat.o)
-                                         0x59 (size before relaxing)
- .rodata.cst8   0x000000000056f558       0x28 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(stat.o)
-                                         0x70 (size before relaxing)
- .rodata.str1.32
-                0x000000000056f580      0x34f /usr/pgi/linux86-64/6.0/lib/libpgf902.a(stat.o)
- .rodata.str1.1
-                0x000000000056f8cf       0x20 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(trace.o)
- *fill*         0x000000000056f8ef       0x11 00
- .rodata.str1.32
-                0x000000000056f900       0x31 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(trace.o)
- *fill*         0x000000000056f931        0xf 00
- .rodata.str1.32
-                0x000000000056f940       0x39 /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(ftncharsup.o)
- *fill*         0x000000000056f979        0x7 00
- .rodata        0x000000000056f980       0x30 /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(cvt.o)
- .rodata.str1.1
-                0x000000000056f9b0       0x12 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(error.o)
-                                        0x309 (size before relaxing)
- *fill*         0x000000000056f9c2       0x1e 00
- .rodata.str1.32
-                0x000000000056f9e0       0x4f /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(error.o)
-                                       0x11ff (size before relaxing)
- *fill*         0x000000000056fa2f       0x11 00
- .rodata        0x000000000056fa40       0x31 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(error.o)
- .rodata.str1.1
-                0x000000000056fa71        0xb /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(open.o)
-                                         0xaf (size before relaxing)
- .rodata.str1.1
-                0x000000000056fa7c        0x0 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(close.o)
-                                         0x17 (size before relaxing)
- .rodata.str1.1
-                0x000000000056fa7c       0x11 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(cnfg.o)
-                                         0x1d (size before relaxing)
- *fill*         0x000000000056fa8d        0x3 00
- .rodata        0x000000000056fa90        0x8 /usr/pgi/linux86-64/6.0/lib/libpgc.a(dpowi.o)
- .rodata        0x000000000056fa98       0x12 /usr/pgi/linux86-64/6.0/lib/libpgc.a(pgtempnam.o)
- *fill*         0x000000000056faaa        0x6 00
- .rodata        0x000000000056fab0       0x90 /usr/pgi/linux86-64/6.0/lib/libpgc.a(va_arg.o)
- .rodata        0x000000000056fb40      0x128 /usr/pgi/linux86-64/6.0/lib/libpgc.a(dsincosp.o)
- .rodata.cst8   0x000000000056fc68       0xe0 /usr/pgi/linux86-64/6.0/lib/libpgc.a(dsincosp.o)
-                                        0x278 (size before relaxing)
- .rodata        0x000000000056fd48       0x68 /usr/pgi/linux86-64/6.0/lib/libpgc.a(dtan.o)
- .rodata.cst8   0x000000000056fdb0       0x68 /usr/pgi/linux86-64/6.0/lib/libpgc.a(dtan.o)
-                                         0xf8 (size before relaxing)
- .rodata.cst8   0x000000000056fe18       0x88 /usr/pgi/linux86-64/6.0/lib/libpgc.a(datan.o)
-                                         0xc8 (size before relaxing)
-
-.rodata1
- *(.rodata1)
-
-.eh_frame_hdr
- *(.eh_frame_hdr)
-
-.eh_frame
- *(.eh_frame)
-
-.gcc_except_table
- *(.gcc_except_table)
- *(.gcc_except_table.*)
-                0x000000000056fea0                . = (ALIGN (0x100000) - ((0x100000 - .) & 0xfffff))
-                0x0000000000670000                . = (0x100000 DATA_SEGMENT_ALIGN 0x1000)
-
-.eh_frame       0x0000000000670000     0x6d2c
- *(.eh_frame)
- .eh_frame      0x0000000000670000       0x38 /usr/pgi/linux86-64/6.0/lib/f90main.o
- .eh_frame      0x0000000000670038       0x80 proc_proc.o
-                                         0x98 (size before relaxing)
- .eh_frame      0x00000000006700b8       0xb8 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(close.o)
-                                         0xd0 (size before relaxing)
- .eh_frame      0x0000000000670170      0x100 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(desc.o)
-                                        0x118 (size before relaxing)
- .eh_frame      0x0000000000670270      0x1c8 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(encodefmt.o)
-                                        0x1e0 (size before relaxing)
- .eh_frame      0x0000000000670438      0x168 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(error.o)
-                                        0x180 (size before relaxing)
- .eh_frame      0x00000000006705a0      0x580 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtread.o)
-                                        0x598 (size before relaxing)
- .eh_frame      0x0000000000670b20      0x588 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtwrite.o)
-                                        0x5a0 (size before relaxing)
- .eh_frame      0x00000000006710a8      0x108 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ftnexit.o)
-                                        0x120 (size before relaxing)
- .eh_frame      0x00000000006711b0      0x3c8 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ldread.o)
-                                        0x3e0 (size before relaxing)
- .eh_frame      0x0000000000671578      0x290 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ldwrite.o)
-                                        0x2a8 (size before relaxing)
- .eh_frame      0x0000000000671808      0x138 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(open.o)
-                                        0x150 (size before relaxing)
- .eh_frame      0x0000000000671940       0x68 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(rewind.o)
-                                         0x80 (size before relaxing)
- .eh_frame      0x00000000006719a8      0x4c0 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(unf.o)
-                                        0x4d8 (size before relaxing)
- .eh_frame      0x0000000000671e68      0x108 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(utils.o)
-                                        0x120 (size before relaxing)
- .eh_frame      0x0000000000671f70      0x108 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(utilsi64.o)
-                                        0x120 (size before relaxing)
- .eh_frame      0x0000000000672078      0x320 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(allo.o)
-                                        0x338 (size before relaxing)
- .eh_frame      0x0000000000672398      0x300 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(entry.o)
-                                        0x318 (size before relaxing)
- .eh_frame      0x0000000000672698       0xa0 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(hpfio.o)
-                                         0xb8 (size before relaxing)
- .eh_frame      0x0000000000672738       0x78 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(hpfio_hpf.o)
-                                         0x90 (size before relaxing)
- .eh_frame      0x00000000006727b0      0x368 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
-                                        0x380 (size before relaxing)
- .eh_frame      0x0000000000672b18      0x260 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(malloc.o)
-                                        0x278 (size before relaxing)
- .eh_frame      0x0000000000672d78      0x3e0 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ptr.o)
-                                        0x3f8 (size before relaxing)
- .eh_frame      0x0000000000673158      0x4d0 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(rdst.o)
-                                        0x4e8 (size before relaxing)
- .eh_frame      0x0000000000673628       0xd0 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(rw.o)
-                                         0xe8 (size before relaxing)
- .eh_frame      0x00000000006736f8       0x20 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(version.o)
-                                         0x38 (size before relaxing)
- .eh_frame      0x0000000000673718      0x198 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(xfer.o)
-                                        0x1b0 (size before relaxing)
- .eh_frame      0x00000000006738b0       0x88 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(stat_linux.o)
-                                         0xa0 (size before relaxing)
- .eh_frame      0x0000000000673938      0x320 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(allo_i8.o)
-                                        0x338 (size before relaxing)
- .eh_frame      0x0000000000673c58       0x88 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(assign.o)
-                                         0xa0 (size before relaxing)
- .eh_frame      0x0000000000673ce0      0x370 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtconv.o)
-                                        0x388 (size before relaxing)
- .eh_frame      0x0000000000674050       0x40 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtgetnum.o)
-                                         0x58 (size before relaxing)
- .eh_frame      0x0000000000674090      0x320 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fpcvt.o)
-                                        0x338 (size before relaxing)
- .eh_frame      0x00000000006743b0       0x40 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(atol.o)
-                                         0x58 (size before relaxing)
- .eh_frame      0x00000000006743f0      0xa68 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(dist.o)
-                                        0xa80 (size before relaxing)
- .eh_frame      0x0000000000674e58       0xe8 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(comm.o)
-                                        0x100 (size before relaxing)
- .eh_frame      0x0000000000674f40      0x228 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(copy.o)
-                                        0x240 (size before relaxing)
- .eh_frame      0x0000000000675168       0xa0 /usr/pgi/linux86-64/6.0/lib/libpgf90_rpm1.a(init_rpm1.o)
-                                         0xb8 (size before relaxing)
- .eh_frame      0x0000000000675208       0x90 /usr/pgi/linux86-64/6.0/lib/libpgf90_rpm1.a(xfer_rpm1.o)
-                                         0xa8 (size before relaxing)
- .eh_frame      0x0000000000675298       0x98 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(cnfg.o)
-                                         0xb0 (size before relaxing)
- .eh_frame      0x0000000000675330       0x20 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(bcopy.o)
-                                         0x38 (size before relaxing)
- .eh_frame      0x0000000000675350       0x28 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(bcopys.o)
-                                         0x40 (size before relaxing)
- .eh_frame      0x0000000000675378       0x80 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(buffer.o)
-                                         0x98 (size before relaxing)
- .eh_frame      0x00000000006753f8       0x40 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(chn1t1.o)
-                                         0x58 (size before relaxing)
- .eh_frame      0x0000000000675438       0x28 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-                                         0x40 (size before relaxing)
- .eh_frame      0x0000000000675460      0x108 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(cprof.o)
-                                        0x120 (size before relaxing)
- .eh_frame      0x0000000000675568       0x90 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(cprof2.o)
-                                         0xa8 (size before relaxing)
- .eh_frame      0x00000000006755f8       0x68 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(genlist.o)
-                                         0x80 (size before relaxing)
- .eh_frame      0x0000000000675660       0x68 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(hand.o)
-                                         0x80 (size before relaxing)
- .eh_frame      0x00000000006756c8      0x2e0 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(stat.o)
-                                        0x2f8 (size before relaxing)
- .eh_frame      0x00000000006759a8      0x118 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(trace.o)
-                                        0x130 (size before relaxing)
- .eh_frame      0x0000000000675ac0       0x90 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(trace2.o)
-                                         0xa8 (size before relaxing)
- .eh_frame      0x0000000000675b50       0x80 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(xfer_heap_dum.o)
-                                         0x98 (size before relaxing)
- .eh_frame      0x0000000000675bd0       0x20 /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(dacos.o)
-                                         0x38 (size before relaxing)
- .eh_frame      0x0000000000675bf0       0xc0 /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(ftncharsup.o)
-                                         0xd8 (size before relaxing)
- .eh_frame      0x0000000000675cb0       0x20 /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(flush3f.o)
-                                         0x38 (size before relaxing)
- .eh_frame      0x0000000000675cd0       0x28 /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(getenv3f.o)
-                                         0x40 (size before relaxing)
- .eh_frame      0x0000000000675cf8       0x28 /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(fdate3f.o)
-                                         0x40 (size before relaxing)
- .eh_frame      0x0000000000675d20       0x60 /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(getarg3f.o)
-                                         0x78 (size before relaxing)
- .eh_frame      0x0000000000675d80       0x80 /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(cvt.o)
-                                         0x98 (size before relaxing)
- .eh_frame      0x0000000000675e00       0xa0 /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(utils3f.o)
-                                         0xb8 (size before relaxing)
- .eh_frame      0x0000000000675ea0      0x168 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(utils.o)
-                                        0x180 (size before relaxing)
- .eh_frame      0x0000000000676008      0x118 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(error.o)
-                                        0x130 (size before relaxing)
- .eh_frame      0x0000000000676120       0x20 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(ftnexit.o)
-                                         0x38 (size before relaxing)
- .eh_frame      0x0000000000676140       0xe0 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(open.o)
-                                         0xf8 (size before relaxing)
- .eh_frame      0x0000000000676220       0x48 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(close.o)
-                                         0x60 (size before relaxing)
- .eh_frame      0x0000000000676268       0x20 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(cnfg.o)
-                                         0x38 (size before relaxing)
- .eh_frame      0x0000000000676288       0x18 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(pgdummy.o)
-                                         0x30 (size before relaxing)
- .eh_frame      0x00000000006762a0       0x58 /usr/lib64/libc_nonshared.a(elf-init.oS)
- .eh_frame      0x00000000006762f8       0x18 /usr/lib64/libc_nonshared.a(atexit.oS)
-                                         0x30 (size before relaxing)
- .eh_frame      0x0000000000676310      0x388 /usr/pgi/linux86-64/6.0/lib/libpgc.a(mthi64.o)
- .eh_frame      0x0000000000676698       0x20 /usr/pgi/linux86-64/6.0/lib/libpgc.a(dpowi.o)
-                                         0x38 (size before relaxing)
- .eh_frame      0x00000000006766b8      0x260 /usr/pgi/linux86-64/6.0/lib/libpgc.a(pgstdinit.o)
-                                        0x278 (size before relaxing)
- .eh_frame      0x0000000000676918       0x80 /usr/pgi/linux86-64/6.0/lib/libpgc.a(mpmalloc.o)
-                                         0x98 (size before relaxing)
- .eh_frame      0x0000000000676998       0x40 /usr/pgi/linux86-64/6.0/lib/libpgc.a(rtcrit.o)
-                                         0x58 (size before relaxing)
- .eh_frame      0x00000000006769d8       0x80 /usr/pgi/linux86-64/6.0/lib/libpgc.a(pgtempnam.o)
-                                         0x98 (size before relaxing)
- .eh_frame      0x0000000000676a58       0xe0 /usr/pgi/linux86-64/6.0/lib/libpgc.a(va_arg.o)
-                                         0xf8 (size before relaxing)
- .eh_frame      0x0000000000676b38       0x80 /usr/pgi/linux86-64/6.0/lib/libpgc.a(pgargs.o)
-                                         0x98 (size before relaxing)
- .eh_frame      0x0000000000676bb8       0xc8 /usr/pgi/linux86-64/6.0/lib/libpgc.a(dsincosp.o)
- .eh_frame      0x0000000000676c80       0x78 /usr/pgi/linux86-64/6.0/lib/libpgc.a(dtan.o)
-                                         0x90 (size before relaxing)
- .eh_frame      0x0000000000676cf8       0x18 /usr/pgi/linux86-64/6.0/lib/libpgc.a(datan.o)
-                                         0x30 (size before relaxing)
- .eh_frame      0x0000000000676d10       0x18 /usr/lib64/libc_nonshared.a(fstat.oS)
-                                         0x30 (size before relaxing)
- .eh_frame      0x0000000000676d28        0x4 /usr/lib/gcc/x86_64-redhat-linux/3.4.2/crtend.o
-
-.gcc_except_table
- *(.gcc_except_table)
- *(.gcc_except_table.*)
-
-.tdata
- *(.tdata .tdata.* .gnu.linkonce.td.*)
-
-.tbss
- *(.tbss .tbss.* .gnu.linkonce.tb.*)
- *(.tcommon)
-                0x0000000000676d30                . = ALIGN (0x8)
-                0x0000000000676d30                PROVIDE (__preinit_array_start, .)
-
-.preinit_array
- *(.preinit_array)
-                0x0000000000676d30                PROVIDE (__preinit_array_end, .)
-                0x0000000000676d30                PROVIDE (__init_array_start, .)
-
-.init_array
- *(.init_array)
-                0x0000000000676d30                PROVIDE (__init_array_end, .)
-                0x0000000000676d30                PROVIDE (__fini_array_start, .)
-
-.fini_array
- *(.fini_array)
-                0x0000000000676d30                PROVIDE (__fini_array_end, .)
-
-.ctors          0x0000000000676d30       0x10
- *crtbegin*.o(.ctors)
- *(EXCLUDE_FILE(*crtend*.o) .ctors)
- .ctors         0x0000000000676d30        0x8 /usr/lib/gcc/x86_64-redhat-linux/3.4.2/crtbegin.o
- *(SORT(.ctors.*))
- *(.ctors)
- .ctors         0x0000000000676d38        0x8 /usr/lib/gcc/x86_64-redhat-linux/3.4.2/crtend.o
-
-.dtors          0x0000000000676d40       0x10
- *crtbegin*.o(.dtors)
- *(EXCLUDE_FILE(*crtend*.o) .dtors)
- .dtors         0x0000000000676d40        0x8 /usr/lib/gcc/x86_64-redhat-linux/3.4.2/crtbegin.o
- *(SORT(.dtors.*))
- *(.dtors)
- .dtors         0x0000000000676d48        0x8 /usr/lib/gcc/x86_64-redhat-linux/3.4.2/crtend.o
-
-.jcr            0x0000000000676d50        0x8
- *(.jcr)
- .jcr           0x0000000000676d50        0x8 /usr/lib/gcc/x86_64-redhat-linux/3.4.2/crtend.o
-
-.data.rel.ro
- *(.data.rel.ro.local)
- *(.data.rel.ro*)
-
-.dynamic        0x0000000000676d58      0x1b0
- *(.dynamic)
- .dynamic       0x0000000000676d58      0x1b0 /usr/lib64/crt1.o
-                0x0000000000676d58                _DYNAMIC
-
-.got            0x0000000000676f08       0x10
- *(.got)
- .got           0x0000000000676f08       0x10 /usr/lib64/crt1.o
-                0x0000000000676f18                . = (. DATA_SEGMENT_RELRO_END 0x18)
-
-.got.plt        0x0000000000676f18      0x4b0
- *(.got.plt)
- .got.plt       0x0000000000676f18      0x4b0 /usr/lib64/crt1.o
-                0x0000000000676f18                _GLOBAL_OFFSET_TABLE_
-
-.data           0x00000000006773e0    0x229f8
- *(.data .data.* .gnu.linkonce.d.*)
- .data          0x00000000006773e0        0x4 /usr/lib64/crt1.o
-                0x00000000006773e0                data_start
-                0x00000000006773e0                __data_start
- *fill*         0x00000000006773e4        0x4 00
- .data          0x00000000006773e8       0x10 /usr/lib/gcc/x86_64-redhat-linux/3.4.2/crtbegin.o
-                0x00000000006773e8                __dso_handle
- *fill*         0x00000000006773f8        0x8 00
- .data          0x0000000000677400      0x920 main_clust.o
- .data          0x0000000000677d20       0x30 arcos.o
- *fill*         0x0000000000677d50       0x10 00
- .data          0x0000000000677d60      0x1d8 cartprint.o
- *fill*         0x0000000000677f38        0x8 00
- .data          0x0000000000677f40      0x268 chainbuild.o
- .data          0x00000000006781a8       0x60 convert.o
- *fill*         0x0000000000678208       0x18 00
- .data          0x0000000000678220      0x570 initialize_p.o
-                0x0000000000678580                names_
-                0x0000000000678350                potentials_
-                0x0000000000678360                namterm_
- .data          0x0000000000678790       0x30 matmult.o
- .data          0x00000000006787c0      0xdc0 readrtns.o
- .data          0x0000000000679580       0x20 pinorm.o
- .data          0x00000000006795a0       0xb8 rescode.o
- *fill*         0x0000000000679658        0x8 00
- .data          0x0000000000679660       0x80 intcor.o
- .data          0x00000000006796e0      0x118 timing.o
- *fill*         0x00000000006797f8        0x8 00
- .data          0x0000000000679800       0xa0 misc.o
- .data          0x00000000006798a0      0x7e8 geomout.o
- *fill*         0x000000000067a088        0x8 00
- .data          0x000000000067a090      0x240 readpdb.o
- .data          0x000000000067a2d0      0x6d0 read_coords.o
- .data          0x000000000067a9a0      0xdb8 parmread.o
- *fill*         0x000000000067b758        0x8 00
- .data          0x000000000067b760      0x148 probabl.o
- *fill*         0x000000000067b8a8       0x18 00
- .data          0x000000000067b8c0      0x2f0 fitsq.o
- *fill*         0x000000000067bbb0       0x10 00
- .data          0x000000000067bbc0      0x410 hc.o
- .data          0x000000000067bfd0      0x3a0 track.o
- *fill*         0x000000000067c370       0x10 00
- .data          0x000000000067c380      0x5f0 wrtclust.o
- .data          0x000000000067c970      0x130 srtclust.o
- .data          0x000000000067caa0       0x70 noyes.o
- .data          0x000000000067cb10       0xc8 contact.o
- *fill*         0x000000000067cbd8        0x8 00
- .data          0x000000000067cbe0      0x118 printmat.o
- *fill*         0x000000000067ccf8        0x8 00
- .data          0x000000000067cd00      0x198 int_from_cart1.o
- *fill*         0x000000000067ce98        0x8 00
- .data          0x000000000067cea0     0x2828 energy_p_new.o
- .data          0x000000000067f6c8       0x10 icant.o
- *fill*         0x000000000067f6d8        0x8 00
- .data          0x000000000067f6e0      0x130 work_partition.o
- .data          0x000000000067f810       0x28 setup_var.o
- .data          0x000000000067f838       0x22 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initf.o)
- *fill*         0x000000000067f85a        0x2 00
- *fill*         0x000000000067f85c        0x4 00
- .data          0x000000000067f860       0x64 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-                0x000000000067f8a0                MPIR_F_STATUSES_IGNORE
-                0x000000000067f860                MPIR_F_TRUE
-                0x000000000067f870                MPIR_F_FALSE
-                0x000000000067f880                MPIR_F_MPI_BOTTOM
-                0x000000000067f890                MPIR_F_STATUS_IGNORE
- *fill*         0x000000000067f8c4        0xc 00
- .data          0x000000000067f8d0      0x154 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(mperror.o)
- *fill*         0x000000000067fa24        0xc 00
- .data          0x000000000067fa30       0x39 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(send.o)
- *fill*         0x000000000067fa69        0x7 00
- .data          0x000000000067fa70       0x39 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(recv.o)
- *fill*         0x000000000067faa9        0x7 00
- .data          0x000000000067fab0       0x3e /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_util.o)
- *fill*         0x000000000067faee        0x2 00
- .data          0x000000000067faf0       0x3a /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(abort.o)
- *fill*         0x000000000067fb2a        0x2 00
- *fill*         0x000000000067fb2c        0x4 00
- .data          0x000000000067fb30      0x299 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o)
-                0x000000000067fd90                MPIR_Dump_Ptrs
-                0x000000000067fda0                MPICHX_QOS_BANDWIDTH
-                0x000000000067fdb0                MPICHX_QOS_PARAMETERS
-                0x000000000067fd40                MPIR_COMM_SELF
-                0x000000000067fd20                MPIR_Infotable_max
-                0x000000000067fd70                MPIR_Print_queues
-                0x000000000067fd30                MPIR_COMM_WORLD
-                0x000000000067fd10                MPIR_Infotable_ptr
-                0x000000000067fd80                MPIR_Dump_Mem
-                0x000000000067fd00                MPIR_Infotable
-                0x000000000067fd60                MPIR_Has_been_initialized
-                0x000000000067fd50                MPIR_GROUP_EMPTY
- *fill*         0x000000000067fdc9        0x3 00
- *fill*         0x000000000067fdcc        0x4 00
- .data          0x000000000067fdd0        0x8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-                0x000000000067fdd0                MPIR_PACKED_PTR
- *fill*         0x000000000067fdd8        0x8 00
- .data          0x000000000067fde0       0x34 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(errfree.o)
- *fill*         0x000000000067fe14        0xc 00
- .data          0x000000000067fe20     0x3a54 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(nerrmsg.o)
- *fill*         0x0000000000683874        0xc 00
- .data          0x0000000000683880      0x378 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(ptrcvt.o)
- *fill*         0x0000000000683bf8        0x8 00
- .data          0x0000000000683c00      0x174 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bsendutil2.o)
- *fill*         0x0000000000683d74        0xc 00
- .data          0x0000000000683d80       0x40 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(keyval_free.o)
- .data          0x0000000000683dc0       0x3d /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(attr_getval.o)
- *fill*         0x0000000000683dfd        0x3 00
- .data          0x0000000000683e00       0xb2 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(attr_util.o)
- *fill*         0x0000000000683eb2        0xe 00
- .data          0x0000000000683ec0       0x5d /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(attr_putval.o)
- *fill*         0x0000000000683f1d        0x3 00
- .data          0x0000000000683f20       0x4f /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(group_free.o)
- *fill*         0x0000000000683f6f        0x1 00
- .data          0x0000000000683f70      0x115 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(group_util.o)
- *fill*         0x0000000000684085        0xb 00
- .data          0x0000000000684090       0x4e /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_free.o)
- *fill*         0x00000000006840de        0x2 00
- .data          0x00000000006840e0       0x2e /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_rank.o)
- *fill*         0x000000000068410e        0x2 00
- .data          0x0000000000684110       0x84 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_name_put.o)
- *fill*         0x0000000000684194        0xc 00
- .data          0x00000000006841a0       0x3e /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_size.o)
- *fill*         0x00000000006841de        0x2 00
- .data          0x00000000006841e0       0xf3 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_util.o)
- *fill*         0x00000000006842d3        0xd 00
- .data          0x00000000006842e0        0x4 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(context_util.o)
- *fill*         0x00000000006842e4        0xc 00
- .data          0x00000000006842f0       0x2c /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(barrier.o)
- *fill*         0x000000000068431c        0x4 00
- .data          0x0000000000684320       0x3a /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bcast.o)
- *fill*         0x000000000068435a        0x6 00
- .data          0x0000000000684360       0x6c /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(gatherv.o)
- *fill*         0x00000000006843cc        0x4 00
- .data          0x00000000006843d0       0x6e /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(allgather.o)
- *fill*         0x000000000068443e        0x2 00
- .data          0x0000000000684440       0x5e /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(allreduce.o)
- *fill*         0x000000000068449e        0x2 00
- .data          0x00000000006844a0      0xb40 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(global_ops.o)
- .data          0x0000000000684fe0       0x2c /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(opfree.o)
- .data          0x000000000068500c       0x17 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(oputil.o)
- *fill*         0x0000000000685023       0x1d 00
- .data          0x0000000000685040      0x208 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(inter_fns.o)
-                0x0000000000685240                MPIR_inter_collops
- *fill*         0x0000000000685248       0x18 00
- .data          0x0000000000685260      0x433 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_fns_new.o)
-                0x00000000006855e0                MPIR_intra_collops
- *fill*         0x0000000000685693        0xd 00
- .data          0x00000000006856a0       0x39 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_scan.o)
- *fill*         0x00000000006856d9        0x7 00
- .data          0x00000000006856e0        0x4 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(topo_util.o)
-                0x00000000006856e0                MPIR_TOPOLOGY_KEYVAL
- .data          0x00000000006856e4       0x1b /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(statusc2f.o)
- *fill*         0x00000000006856ff        0x1 00
- .data          0x0000000000685700      0xb64 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_utils.o)
- .data          0x0000000000686264      0x3f3 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_bm.o)
- *fill*         0x0000000000686657        0x1 00
- .data          0x0000000000686658      0x469 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_rm.o)
- *fill*         0x0000000000686ac1        0xf 00
- .data          0x0000000000686ad0      0xb14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_util.o)
- *fill*         0x00000000006875e4        0xc 00
- .data          0x00000000006875f0      0x5d4 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_cr.o)
- *fill*         0x0000000000687bc4        0xc 00
- .data          0x0000000000687bd0      0x6f4 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_conn.o)
- .data          0x00000000006882c4      0x593 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_sr.o)
- *fill*         0x0000000000688857        0x9 00
- .data          0x0000000000688860      0x4b8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_list.o)
- *fill*         0x0000000000688d18        0x8 00
- .data          0x0000000000688d20      0x168 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_secure.o)
-                0x0000000000688e80                start_prog_error
- *fill*         0x0000000000688e88        0x8 00
- .data          0x0000000000688e90        0x8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(usc.o)
-                0x0000000000688e90                usc_MD_rollover_val
- *fill*         0x0000000000688e98        0x8 00
- .data          0x0000000000688ea0      0x1f4 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2init.o)
-                0x0000000000689060                MPID_Print_queues
-                0x0000000000689080                MPID_devset
-                0x0000000000689070                MPID_n_pending
- .data          0x0000000000689094      0x159 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2hrecv.o)
- *fill*         0x00000000006891ed        0x3 00
- .data          0x00000000006891f0       0xbd /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2pack.o)
- *fill*         0x00000000006892ad        0x3 00
- .data          0x00000000006892b0       0x3b /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2mpack.o)
- *fill*         0x00000000006892eb       0x15 00
- .data          0x0000000000689300      0x508 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bswap2.o)
- *fill*         0x0000000000689808       0x18 00
- .data          0x0000000000689820      0x580 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chdebug.o)
-                0x0000000000689c80                MPID_TRACE_FILE
-                0x0000000000689c90                MPID_DEBUG_FILE
-                0x0000000000689ca0                MPID_UseDebugFile
-                0x0000000000689cb0                MPID_DebugFlag
- .data          0x0000000000689da0      0x101 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chinit.o)
- *fill*         0x0000000000689ea1        0xf 00
- .data          0x0000000000689eb0       0x64 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chhetero.o)
-                0x0000000000689f10                MPID_IS_HETERO
-                0x0000000000689f00                MPID_procinfo
- *fill*         0x0000000000689f14        0xc 00
- .data          0x0000000000689f20        0x8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chtick.o)
- *fill*         0x0000000000689f28        0x8 00
- .data          0x0000000000689f30      0x108 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4priv.o)
- *fill*         0x000000000068a038        0x8 00
- .data          0x000000000068a040      0x164 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(queue.o)
- .data          0x000000000068a1a4      0x1f1 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(cmnargs.o)
- *fill*         0x000000000068a395        0x3 00
- .data          0x000000000068a398       0x2d /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(sbcnst2.o)
- *fill*         0x000000000068a3c5        0x3 00
- .data          0x000000000068a3c8       0x18 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(session.o)
- .data          0x000000000068a3e0      0x3e5 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chpackflow.o)
- *fill*         0x000000000068a7c5        0xb 00
- .data          0x000000000068a7d0      0x2f4 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chcancel.o)
-                0x000000000068aac0                expect_cancel_ack
- *fill*         0x000000000068aac4        0xc 00
- .data          0x000000000068aad0       0x4a /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(isend.o)
- *fill*         0x000000000068ab1a        0x6 00
- .data          0x000000000068ab20       0x4a /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(irecv.o)
- *fill*         0x000000000068ab6a        0x2 00
- .data          0x000000000068ab6c       0x10 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wait.o)
- .data          0x000000000068ab7c       0x10 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(test.o)
- *fill*         0x000000000068ab8c        0x4 00
- .data          0x000000000068ab90       0x4b /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(cancel.o)
- *fill*         0x000000000068abdb        0x5 00
- .data          0x000000000068abe0       0x4c /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(waitall.o)
- *fill*         0x000000000068ac2c        0x4 00
- .data          0x000000000068ac30       0x4d /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(sendrecv.o)
- *fill*         0x000000000068ac7d        0x3 00
- .data          0x000000000068ac80       0x2c /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(testall.o)
- *fill*         0x000000000068acac        0x4 00
- .data          0x000000000068acb0       0x3e /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(getcount.o)
- *fill*         0x000000000068acee        0x2 00
- .data          0x000000000068acf0       0x30 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_commit.o)
- .data          0x000000000068ad20       0x74 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_contig.o)
- *fill*         0x000000000068ad94        0xc 00
- .data          0x000000000068ada0       0x30 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_extent.o)
- .data          0x000000000068add0       0x4e /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_free.o)
- *fill*         0x000000000068ae1e        0x2 00
- .data          0x000000000068ae20       0x71 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_ind.o)
- *fill*         0x000000000068ae91        0xf 00
- .data          0x000000000068aea0       0x2c /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_lb.o)
- *fill*         0x000000000068aecc        0x4 00
- .data          0x000000000068aed0       0x3e /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_size.o)
- *fill*         0x000000000068af0e        0x2 00
- .data          0x000000000068af10       0xd0 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_struct.o)
- .data          0x000000000068afe0       0x5e /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(pack_size.o)
- *fill*         0x000000000068b03e        0x2 00
- .data          0x000000000068b040       0xa9 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(pack.o)
- *fill*         0x000000000068b0e9        0x7 00
- .data          0x000000000068b0f0       0x5b /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(unpack.o)
- *fill*         0x000000000068b14b        0x5 00
- .data          0x000000000068b150       0x60 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-                0x000000000068b190                MPIR_debug_abort_string
-                0x000000000068b1a0                MPIR_being_debugged
-                0x000000000068b150                MPIR_proctable
-                0x000000000068b180                MPIR_debug_gate
-                0x000000000068b160                MPIR_proctable_size
-                0x000000000068b170                MPIR_debug_state
- *fill*         0x000000000068b1b0       0x10 00
- .data          0x000000000068b1c0       0x33 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(errset.o)
- *fill*         0x000000000068b1f3        0xd 00
- .data          0x000000000068b200      0x110 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(pkutil.o)
- .data          0x000000000068b310       0x4b /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(reduce.o)
- *fill*         0x000000000068b35b        0x1 00
- .data          0x000000000068b35c      0x13f /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_MD.o)
- *fill*         0x000000000068b49b        0x5 00
- .data          0x000000000068b4a0      0x234 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_error.o)
-                0x000000000068b670                p4_hard_errors
- .data          0x000000000068b6d4      0x412 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_args.o)
- *fill*         0x000000000068bae6       0x1a 00
- .data          0x000000000068bb00      0x360 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_alloc.o)
- .data          0x000000000068be60      0x390 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_debug.o)
- .data          0x000000000068c1f0      0x1be /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_procgroup.o)
- *fill*         0x000000000068c3ae        0x2 00
- .data          0x000000000068c3b0      0x334 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_tsr.o)
- .data          0x000000000068c6e4       0x67 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_mon.o)
- *fill*         0x000000000068c74b        0x1 00
- .data          0x000000000068c74c      0x211 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_broadcast.o)
- *fill*         0x000000000068c95d        0x3 00
- .data          0x000000000068c960      0x234 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2recv.o)
- .data          0x000000000068cb94      0x1af /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2send.o)
- *fill*         0x000000000068cd43        0x1 00
- .data          0x000000000068cd44      0x155 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2cancel.o)
- *fill*         0x000000000068ce99        0x3 00
- .data          0x000000000068ce9c      0x733 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chbeager.o)
- *fill*         0x000000000068d5cf        0x1 00
- .data          0x000000000068d5d0      0xb24 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chbrndv.o)
- *fill*         0x000000000068e0f4        0xc 00
- .data          0x000000000068e100      0x5e4 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chchkdev.o)
- .data          0x000000000068e6e4      0x79c /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chshort.o)
- .data          0x000000000068ee80      0x194 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chflow.o)
-                0x000000000068f010                MPID_DebugFlow
-                0x000000000068f000                MPID_flow_info
- *fill*         0x000000000068f014        0xc 00
- .data          0x000000000068f020       0x72 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_hind.o)
- *fill*         0x000000000068f092        0x2 00
- *fill*         0x000000000068f094        0x4 00
- .data          0x000000000068f098        0xc /usr/pgi/linux86-64/6.0/lib/libpgf90.a(encodefmt.o)
- *fill*         0x000000000068f0a4       0x1c 00
- .data          0x000000000068f0c0      0x398 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(error.o)
- *fill*         0x000000000068f458        0x8 00
- .data          0x000000000068f460       0x84 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtread.o)
- *fill*         0x000000000068f4e4       0x1c 00
- .data          0x000000000068f500       0x98 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtwrite.o)
- *fill*         0x000000000068f598        0x8 00
- .data          0x000000000068f5a0       0x60 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ldread.o)
- .data          0x000000000068f600       0x11 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ldwrite.o)
- *fill*         0x000000000068f611        0x3 00
- *fill*         0x000000000068f614        0xc 00
- .data          0x000000000068f620       0x70 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(pgifiodf.o)
-                0x000000000068f660                __hpfio_type_size
-                0x000000000068f620                pghpfio
- *fill*         0x000000000068f690       0x10 00
- .data          0x000000000068f6a0      0x228 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(utils.o)
- .data          0x000000000068f8c8       0x28 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(utilsi64.o)
- *fill*         0x000000000068f8f0       0x10 00
- .data          0x000000000068f900     0x4014 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(allo.o)
- *fill*         0x0000000000693914        0x4 00
- .data          0x0000000000693918        0xc /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
- *fill*         0x0000000000693924        0x4 00
- .data          0x0000000000693928       0x1c /usr/pgi/linux86-64/6.0/lib/libpgf90.a(malloc.o)
- *fill*         0x0000000000693944       0x1c 00
- .data          0x0000000000693960       0x20 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(rdst.o)
- .data          0x0000000000693980       0x28 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(version.o)
-                0x0000000000693980                version
- .data          0x00000000006939a8        0x8 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(stat_linux.o)
- *fill*         0x00000000006939b0       0x10 00
- .data          0x00000000006939c0     0x401c /usr/pgi/linux86-64/6.0/lib/libpgf90.a(allo_i8.o)
- *fill*         0x00000000006979dc        0x4 00
- .data          0x00000000006979e0       0x68 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtconv.o)
- .data          0x0000000000697a48        0xc /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtgetnum.o)
- *fill*         0x0000000000697a54        0xc 00
- .data          0x0000000000697a60      0x578 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fpcvt.o)
- .data          0x0000000000697fd8       0x10 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(defs.o)
-                0x0000000000697fe0                f90DummyGenBlockPtr
-                0x0000000000697fd8                f90DummyGenBlock
- *fill*         0x0000000000697fe8       0x18 00
- .data          0x0000000000698000       0xdc /usr/pgi/linux86-64/6.0/lib/libpgf90.a(dist.o)
- *fill*         0x00000000006980dc        0x4 00
- .data          0x00000000006980e0       0x20 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(copy.o)
- .data          0x0000000000698100       0x10 /usr/pgi/linux86-64/6.0/lib/libpgf90_rpm1.a(init_rpm1.o)
-                0x0000000000698108                __hpf_transnam
- .data          0x0000000000698110        0x4 /usr/pgi/linux86-64/6.0/lib/libpgf90_rpm1.a(xfer_rpm1.o)
-                0x0000000000698110                __hpf_minxfer
- *fill*         0x0000000000698114        0xc 00
- .data          0x0000000000698120       0x10 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(cnfg.o)
-                0x0000000000698120                __hpfio_cnfg_
- *fill*         0x0000000000698130       0x10 00
- .data          0x0000000000698140      0x950 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-                0x0000000000698420                __hpf_one
-                0x0000000000698440                __hpf_zed
-                0x00000000006984a0                __hpf_maxs
-                0x0000000000698300                pghpf_type_
-                0x00000000006985e0                __hpf_mins
-                0x0000000000698850                __hpf_true_log
-                0x00000000006981e0                __hpf_typenames
-                0x0000000000698860                __hpf_trues
-                0x0000000000698740                __hpf_units
-                0x0000000000698980                __hpf_masks
-                0x0000000000698140                __hpf_size_of
- *fill*         0x0000000000698a90       0x10 00
- .data          0x0000000000698aa0       0xd0 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(hand.o)
- *fill*         0x0000000000698b70       0x10 00
- .data          0x0000000000698b80      0x328 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(stat.o)
- *fill*         0x0000000000698ea8        0x8 00
- .data          0x0000000000698eb0       0x25 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(trace.o)
- *fill*         0x0000000000698ed5        0x3 00
- *fill*         0x0000000000698ed8        0x8 00
- .data          0x0000000000698ee0      0x228 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(utils.o)
- *fill*         0x0000000000699108       0x18 00
- .data          0x0000000000699120       0x68 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(pgifiodf.o)
-                0x0000000000699120                pgi_fio
-                0x0000000000699160                __fio_type_size
- *fill*         0x0000000000699188       0x18 00
- .data          0x00000000006991a0      0x398 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(error.o)
- *fill*         0x0000000000699538        0x8 00
- .data          0x0000000000699540       0x10 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(cnfg.o)
-                0x0000000000699540                __fio_cnfg_
- .data          0x0000000000699550        0x8 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(pgdummy.o)
-                0x0000000000699554                __PC_DOS
-                0x0000000000699550                __PC_DATA
- *fill*         0x0000000000699558        0x8 00
- .data          0x0000000000699560       0x10 /usr/pgi/linux86-64/6.0/lib/libnspgc.a(pgdbg_utils.o)
- .data          0x0000000000699570       0x10 /usr/pgi/linux86-64/6.0/lib/libpgc.a(mthi64.o)
- .data          0x0000000000699580        0x8 /usr/pgi/linux86-64/6.0/lib/libpgc.a(mpmalloc.o)
- .data          0x0000000000699588        0x8 /usr/pgi/linux86-64/6.0/lib/libpgc.a(rtcrit.o)
- *fill*         0x0000000000699590       0x10 00
- .data          0x00000000006995a0       0x3f /usr/pgi/linux86-64/6.0/lib/libpgc.a(pgtempnam.o)
- *fill*         0x00000000006995df        0x1 00
- .data          0x00000000006995e0      0x3f0 /usr/pgi/linux86-64/6.0/lib/libpgc.a(dsincosp.o)
- *fill*         0x00000000006999d0       0x10 00
- .data          0x00000000006999e0      0x3f0 /usr/pgi/linux86-64/6.0/lib/libpgc.a(dtan.o)
- .data          0x0000000000699dd0        0x8 /usr/pgi/linux86-64/6.0/lib/libpgc.a(datan.o)
- *(.gnu.linkonce.d.*personality*)
-
-.data1
- *(.data1)
-                0x0000000000699dd8                _edata = .
-                0x0000000000699dd8                PROVIDE (edata, .)
-                0x0000000000699dd8                __bss_start = .
-
-.bss            0x0000000000699de0 0x6a9f2968
- *(.dynbss)
- .dynbss        0x0000000000699de0       0x28 /usr/lib64/crt1.o
-                0x0000000000699de0                timezone@@GLIBC_2.2.5
-                0x0000000000699de8                stderr@@GLIBC_2.2.5
-                0x0000000000699df0                _environ@@GLIBC_2.2.5
-                0x0000000000699df8                stdin@@GLIBC_2.2.5
-                0x0000000000699df0                __environ@@GLIBC_2.2.5
-                0x0000000000699de0                __timezone@@GLIBC_2.2.5
-                0x0000000000699e00                stdout@@GLIBC_2.2.5
-                0x0000000000699df0                environ@@GLIBC_2.2.5
- *(.bss .bss.* .gnu.linkonce.b.*)
- .bss           0x0000000000699e08        0x1 /usr/lib/gcc/x86_64-redhat-linux/3.4.2/crtbegin.o
- *fill*         0x0000000000699e09        0x3 00
- *fill*         0x0000000000699e0c       0x14 00
- .bss           0x0000000000699e20 0x4d4adea8 main_clust.o
- *fill*         0x000000004db47cc8       0x18 00
- .bss           0x000000004db47ce0       0x18 chainbuild.o
- *fill*         0x000000004db47cf8        0x8 00
- .bss           0x000000004db47d00       0x24 matmult.o
- *fill*         0x000000004db47d24       0x1c 00
- .bss           0x000000004db47d40     0x2720 readrtns.o
- .bss           0x000000004db4a460      0x3e8 geomout.o
- *fill*         0x000000004db4a848       0x18 00
- .bss           0x000000004db4a860      0x3c0 readpdb.o
- .bss           0x000000004db4ac20     0x1910 read_coords.o
- *fill*         0x000000004db4c530       0x10 00
- .bss           0x000000004db4c540      0x120 parmread.o
- .bss           0x000000004db4c660    0x131e8 probabl.o
- *fill*         0x000000004db5f848       0x18 00
- .bss           0x000000004db5f860      0x2a8 fitsq.o
- *fill*         0x000000004db5fb08       0x18 00
- .bss           0x000000004db5fb20   0x605040 track.o
- .bss           0x000000004e164b60     0xbb80 srtclust.o
- .bss           0x000000004e1706e0    0x161e0 energy_p_new.o
- .bss           0x000000004e1868c0       0x10 proc_proc.o
- .bss           0x000000004e1868d0       0x34 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o)
- *fill*         0x000000004e186904       0x1c 00
- .bss           0x000000004e186920     0x2060 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(nerrmsg.o)
- .bss           0x000000004e188980     0x6800 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(ptrcvt.o)
- .bss           0x000000004e18f180     0x1070 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_utils.o)
- .bss           0x000000004e1901f0       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_rm.o)
- *fill*         0x000000004e190204        0xc 00
- .bss           0x000000004e190210       0x10 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_util.o)
- .bss           0x000000004e190220      0x200 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_cr.o)
- .bss           0x000000004e190420        0x8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_conn.o)
- *fill*         0x000000004e190428       0x18 00
- .bss           0x000000004e190440      0x4fa /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_secure.o)
- *fill*         0x000000004e19093a        0x2 00
- *fill*         0x000000004e19093c        0x4 00
- .bss           0x000000004e190940       0x48 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
- *fill*         0x000000004e190988        0x8 00
- .bss           0x000000004e190990       0x28 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(pkutil.o)
- *fill*         0x000000004e1909b8        0x8 00
- .bss           0x000000004e1909c0        0x4 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_error.o)
- *fill*         0x000000004e1909c4       0x1c 00
- .bss           0x000000004e1909e0       0x64 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_args.o)
- *fill*         0x000000004e190a44       0x1c 00
- .bss           0x000000004e190a60       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_debug.o)
- *fill*         0x000000004e190a74        0xc 00
- .bss           0x000000004e190a80       0x18 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_tsr.o)
- *fill*         0x000000004e190a98        0x8 00
- .bss           0x000000004e190aa0       0x75 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(encodefmt.o)
- *fill*         0x000000004e190b15        0xb 00
- .bss           0x000000004e190b20       0xa4 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(error.o)
- *fill*         0x000000004e190bc4       0x1c 00
- .bss           0x000000004e190be0      0x118 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtread.o)
- *fill*         0x000000004e190cf8        0x8 00
- .bss           0x000000004e190d00      0x110 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtwrite.o)
- *fill*         0x000000004e190e10       0x10 00
- .bss           0x000000004e190e20      0x220 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ldread.o)
- .bss           0x000000004e191040       0x48 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ldwrite.o)
- .bss           0x000000004e191088        0x8 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(open.o)
- *fill*         0x000000004e191090       0x10 00
- .bss           0x000000004e1910a0     0x1050 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(unf.o)
- .bss           0x000000004e1920f0        0x4 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(allo.o)
- *fill*         0x000000004e1920f4        0x4 00
- .bss           0x000000004e1920f8       0x24 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(entry.o)
- *fill*         0x000000004e19211c        0x4 00
- .bss           0x000000004e192120       0x10 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(hpfio.o)
- *fill*         0x000000004e192130       0x10 00
- .bss           0x000000004e192140      0x428 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
- *fill*         0x000000004e192568       0x18 00
- .bss           0x000000004e192580      0x288 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ptr.o)
- .bss           0x000000004e192808       0x10 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(xfer.o)
- .bss           0x000000004e192818        0x4 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(allo_i8.o)
- *fill*         0x000000004e19281c        0x4 00
- .bss           0x000000004e192820      0x100 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtconv.o)
- .bss           0x000000004e192920       0xa0 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtgetnum.o)
- .bss           0x000000004e1929c0      0x220 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fpcvt.o)
- .bss           0x000000004e192be0        0x8 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(dist.o)
- .bss           0x000000004e192be8       0x20 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(buffer.o)
- *fill*         0x000000004e192c08        0x8 00
- .bss           0x000000004e192c10       0x90 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
- .bss           0x000000004e192ca0      0x200 /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(cvt.o)
- .bss           0x000000004e192ea0       0xa0 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(error.o)
- .bss           0x000000004e192f40        0x4 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(ftnexit.o)
- *fill*         0x000000004e192f44        0x4 00
- .bss           0x000000004e192f48        0x8 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(open.o)
- .bss           0x000000004e192f50        0x4 /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(cnfg.o)
- .bss           0x000000004e192f54        0x4 /usr/pgi/linux86-64/6.0/lib/libpgc.a(pgtempnam.o)
- .bss           0x000000004e192f58        0x4 /usr/pgi/linux86-64/6.0/lib/libpgc.a(crit_dum.o)
- *(COMMON)
- *fill*         0x000000004e192f5c        0x4 00
- COMMON         0x000000004e192f60  0xf34d471 main_clust.o
-                0x000000004e192f60                fnames_
-                0x000000004e193e70                stoptim_
-                0x000000004e193e80                csaunits_
-                0x000000004e193ec0                geo_
-                0x000000004e193f00                stretch_
-                0x000000004e194060                mpi_data_
-                0x000000004e1942a0                csafiles_
-                0x000000004e194ea0                mpipriv_
-                0x000000004e194ee0                varref_
-                0x000000004e197600                refstruct_
-                0x000000004e19a520                pghpf_me_
-                0x000000004e19a540                body_
-                0x000000004e1a1140                interact_
-                0x000000004e1a70c0                clu_
-                0x00000000527a21c0                var_
-                0x00000000527a77c0                free_
-                0x00000000527a77e0                pghpf_0l_
-                0x00000000527a7800                header_
-                0x00000000527a7850                pghpf_0_
-                0x00000000527a7860                time1_
-                0x00000000527a78a0                cntrl_
-                0x00000000527a78f0                pghpf_lineno_
-                0x00000000527a7900                clu1_
-                0x000000005b1366a0                parfiles_
-                0x000000005b1370a0                rotmat_
-                0x000000005b1489e0                pghpf_np_
-                0x000000005b148a00                iounits_
-                0x000000005b148a60                chain_
-                0x000000005b154620                alles_
-                0x000000005d4e03d0                pghpf_0c_
- *fill*         0x000000005d4e03d1        0xf 00
- COMMON         0x000000005d4e03e0     0x3c2c chainbuild.o
-                0x000000005d4e03e0                indices_
-                0x000000005d4e0400                peptbond_
-                0x000000005d4e0440                invlen_
-                0x000000005d4e13e0                thetas_
-                0x000000005d4e1d40                sclocal_
- *fill*         0x000000005d4e400c       0x14 00
- COMMON         0x000000005d4e4020   0x31e340 initialize_p.o
-                0x000000005d4e4020                torsion_
-                0x000000005d4e5000                minimm_
-                0x000000005d4e5020                restraints_
-                0x000000005d4e5040                ffield_
-                0x000000005d4e51a0                derivat_
-                0x000000005d7ed7f0                links_split_
-                0x000000005d7ed800                deriv_loc_
-                0x000000005d7ed9e0                links_
-                0x000000005d7edbe0                sbridge_
-                0x000000005d7edc60                fourier_
-                0x000000005d7edfc0                fourier1_
-                0x000000005d7ee160                torsiond_
- COMMON         0x000000005d802360  0x4ef9f20 readrtns.o
-                0x000000005d802360                contacts_
-                0x000000005d80df00                contacts_hb_
-                0x000000005e5a5300                rotat_old_
-                0x000000005e5a81e0                contacts1_
-                0x000000005e7cdae0                precomp2_
-                0x000000005e7e51e0                precomp1_
-                0x000000005e7fb940                diploc_
-                0x000000005e7ff280                rotat_
-                0x000000005e80ae00                dipint_
-                0x0000000060877a80                dipmat_
- COMMON         0x00000000626fc280  0x89776b4 track.o
-                0x00000000626fc280                previous_
-                0x000000006b056460                history_
- *fill*         0x000000006b073934        0xc 00
- COMMON         0x000000006b073940    0x164c0 energy_p_new.o
-                0x000000006b073940                calcthet_
-                0x000000006b0739e0                locel_
-                0x000000006b073c00                sccalc_
-                0x000000006b073c30                kutas_
-                0x000000006b073c40                torcnstr_
-                0x000000006b0753c0                srutu_
-                0x000000006b0753e0                calc_
-                0x000000006b0755e0                vectors_
- COMMON         0x000000006b089e00      0xbe8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
-                0x000000006b089e00                MPIR_real4_dte
-                0x000000006b089ec0                MPIR_I_2COMPLEX
-                0x000000006b089f80                MPIR_I_2DOUBLE_PRECISION
-                0x000000006b08a040                MPIR_I_COMPLEX
-                0x000000006b08a100                MPIR_I_INTEGER
-                0x000000006b08a1c0                MPIR_int1_dte
-                0x000000006b08a280                MPIR_I_DOUBLE_PRECISION
-                0x000000006b08a340                MPIR_I_REAL
-                0x000000006b08a400                MPIR_I_LOGICAL
-                0x000000006b08a4c0                MPIR_I_2DCOMPLEX
-                0x000000006b08a580                MPIR_I_2INTEGER
-                0x000000006b08a640                MPIR_int4_dte
-                0x000000006b08a700                MPIR_real8_dte
-                0x000000006b08a7c0                MPIR_I_DCOMPLEX
-                0x000000006b08a880                MPIR_int2_dte
-                0x000000006b08a940                MPIR_I_2REAL
- *fill*         0x000000006b08a9e8        0x8 00
- COMMON         0x000000006b08a9f0       0x48 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o)
-                0x000000006b08a9f0                MPIR_errhandlers
-                0x000000006b08aa00                MPIR_fdtels
-                0x000000006b08aa10                MPIR_tid
-                0x000000006b08aa20                MPIR_qels
-                0x000000006b08aa30                MPIR_topo_els
- *fill*         0x000000006b08aa38        0x8 00
- COMMON         0x000000006b08aa40     0x11e8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
-                0x000000006b08aa40                MPIR_I_DOUBLE
-                0x000000006b08aaf0                MPI_FLOAT_INT_var
-                0x000000006b08ab00                MPIR_I_LONG_LONG_INT
-                0x000000006b08abb0                MPI_SHORT_INT_var
-                0x000000006b08abc0                MPIR_I_LB
-                0x000000006b08ac80                MPIR_I_PACKED
-                0x000000006b08ad30                MPI_LONG_INT_var
-                0x000000006b08ad40                MPIR_I_LONG_INT
-                0x000000006b08ae00                MPIR_I_LONG_DOUBLE_INT
-                0x000000006b08aec0                MPIR_I_INT
-                0x000000006b08af80                MPIR_I_SHORT
-                0x000000006b08b040                MPIR_I_DOUBLE_INT
-                0x000000006b08b0f0                MPI_DOUBLE_INT_var
-                0x000000006b08b100                MPIR_I_LONG_DOUBLE
-                0x000000006b08b1b0                MPI_LONG_DOUBLE_INT_var
-                0x000000006b08b1c0                MPIR_I_2DOUBLE
-                0x000000006b08b280                MPIR_I_UB
-                0x000000006b08b340                MPIR_I_2FLOAT
-                0x000000006b08b400                MPIR_I_FLOAT
-                0x000000006b08b4c0                MPIR_I_2INT
-                0x000000006b08b580                MPIR_I_BYTE
-                0x000000006b08b640                MPIR_I_CHAR
-                0x000000006b08b700                MPIR_I_FLOAT_INT
-                0x000000006b08b7b0                MPIR_dtes
-                0x000000006b08b7c0                MPIR_I_USHORT
-                0x000000006b08b880                MPIR_I_UCHAR
-                0x000000006b08b940                MPIR_I_ULONG
-                0x000000006b08ba00                MPIR_I_SHORT_INT
-                0x000000006b08bac0                MPIR_I_LONG
-                0x000000006b08bb80                MPIR_I_UINT
- *fill*         0x000000006b08bc28        0x8 00
- COMMON         0x000000006b08bc30       0x18 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(util_hbt.o)
-                0x000000006b08bc30                MPIR_hbt_els
-                0x000000006b08bc40                MPIR_hbts
- *fill*         0x000000006b08bc48        0x8 00
- COMMON         0x000000006b08bc50        0x4 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(global_ops.o)
-                0x000000006b08bc50                MPIR_Op_errno
- *fill*         0x000000006b08bc54        0xc 00
- COMMON         0x000000006b08bc60       0x12 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_secure.o)
-                0x000000006b08bc60                tty_orig
- *fill*         0x000000006b08bc72        0xe 00
- COMMON         0x000000006b08bc80       0xb4 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2init.o)
-                0x000000006b08bc80                MPIR_rhandles
-                0x000000006b08bc90                MPIR_shandles
-                0x000000006b08bca0                ch_debug_buf
-                0x000000006b08bd20                MPID_MyWorldRank
-                0x000000006b08bd30                MPID_MyWorldSize
- *fill*         0x000000006b08bd34        0xc 00
- COMMON         0x000000006b08bd40        0x4 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chhetero.o)
-                0x000000006b08bd40                MPID_byte_order
- *fill*         0x000000006b08bd44        0xc 00
- COMMON         0x000000006b08bd50       0x34 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4priv.o)
-                0x000000006b08bd50                __P4LEN
-                0x000000006b08bd60                __P4FROM
-                0x000000006b08bd70                __P4GLOBALTYPE
-                0x000000006b08bd80                __P4TYPE
- *fill*         0x000000006b08bd84       0x1c 00
- COMMON         0x000000006b08bda0       0x20 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(queue.o)
-                0x000000006b08bda0                MPID_recvs
- COMMON         0x000000006b08bdc0       0x30 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chpackflow.o)
-                0x000000006b08bdc0                total_pack_unacked
-                0x000000006b08bdd0                expect_ack
-                0x000000006b08bde0                MPID_pack_info
- COMMON         0x000000006b08bdf0       0x98 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-                0x000000006b08bdf0                MPIR_debug_cl
-                0x000000006b08be00                MPIR_debug_s
-                0x000000006b08be10                MPIR_debug_c
-                0x000000006b08be20                MPIR_debug_sqel
-                0x000000006b08be30                MPIR_debug_qh
-                0x000000006b08be40                MPIR_All_communicators
-                0x000000006b08be50                MPIR_debug_q
-                0x000000006b08be60                MPIR_debug_sq
-                0x000000006b08be70                MPIR_debug_qel
-                0x000000006b08be80                MPIR_debug_rh
- *fill*         0x000000006b08be88       0x18 00
- COMMON         0x000000006b08bea0      0x6e4 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
-                0x000000006b08bea0                execer_mynodenum
-                0x000000006b08beb0                p4_global
-                0x000000006b08bec0                logging_flag
-                0x000000006b08bed0                p4_remote_debug_level
-                0x000000006b08bee0                execer_mastport
-                0x000000006b08bef0                execer_numtotnodes
-                0x000000006b08bf00                execer_masthost
-                0x000000006b08bf80                procgroup_file
-                0x000000006b08c080                rm_outfile_head
-                0x000000006b08c0f0                sserver_port
-                0x000000006b08c100                listener_info
-                0x000000006b08c120                whoami_p4
-                0x000000006b08c1a0                execer_myhost
-                0x000000006b08c210                p4_debug_level
-                0x000000006b08c220                p4_local
-                0x000000006b08c230                execer_starting_remotes
-                0x000000006b08c240                p4_myname_in_procgroup
-                0x000000006b08c280                local_domain
-                0x000000006b08c300                execer_id
-                0x000000006b08c390                p4_rm_rank
-                0x000000006b08c3a0                execer_mynumprocs
-                0x000000006b08c3b0                hand_start_remotes
-                0x000000006b08c3c0                p4_brdcst_info
-                0x000000006b08c3e0                execer_pg
-                0x000000006b08c400                bm_outfile
-                0x000000006b08c480                p4_wd
-                0x000000006b08c580                globmemsize
- *fill*         0x000000006b08c584        0x4 00
- COMMON         0x000000006b08c588        0x8 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(error.o)
-                0x000000006b08c588                envar_fortranopt
- COMMON         0x000000006b08c590        0x4 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(utilsi64.o)
-                0x000000006b08c590                __ftn_32in64_
- COMMON         0x000000006b08c594        0x4 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(entry.o)
-                0x000000006b08c594                __hpf_entry_mflag
- COMMON         0x000000006b08c598       0x40 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
-                0x000000006b08c598                __hpf_zmem
-                0x000000006b08c59c                __hpf_np2
-                0x000000006b08c5a0                __hpf_tids
-                0x000000006b08c5a8                __hpf_ioproc
-                0x000000006b08c5ac                __hpf_tcpus
-                0x000000006b08c5b0                __hpf_quiet
-                0x000000006b08c5b4                __hpf_pario
-                0x000000006b08c5b8                __hpf_lcpu
-                0x000000006b08c5c0                __hpf_heapz
-                0x000000006b08c5c8                __hpf_debug
-                0x000000006b08c5cc                __hpf_debugn
-                0x000000006b08c5d0                __hpf_heap_block
- *fill*         0x000000006b08c5d8        0x8 00
- COMMON         0x000000006b08c5e0       0x60 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtconv.o)
-                0x000000006b08c5e0                __f90io_conv_buf
- COMMON         0x000000006b08c640        0x4 /usr/pgi/linux86-64/6.0/lib/libpgf90.a(defs.o)
-                0x000000006b08c640                __hpf_test
- *fill*         0x000000006b08c644       0x1c 00
- COMMON         0x000000006b08c660       0xd8 /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
-                0x000000006b08c660                __hpf_true_log4
-                0x000000006b08c664                __hpf_mask_log4
-                0x000000006b08c668                __hpf_mask_int1
-                0x000000006b08c680                __hpf_shifts
-                0x000000006b08c708                __hpf_true_log1
-                0x000000006b08c70c                __hpf_mask_log
-                0x000000006b08c710                __hpf_mask_int4
-                0x000000006b08c718                __hpf_true_log8
-                0x000000006b08c720                __hpf_mask_int8
-                0x000000006b08c728                __hpf_mask_log1
-                0x000000006b08c72a                __hpf_mask_int2
-                0x000000006b08c72c                __hpf_mask_log2
-                0x000000006b08c72e                __hpf_true_log2
-                0x000000006b08c730                __hpf_mask_log8
- COMMON         0x000000006b08c738        0xc /usr/pgi/linux86-64/6.0/lib/libpgc.a(pgargs.o)
-                0x000000006b08c738                __argv_save
-                0x000000006b08c740                __argc_save
-                0x000000006b08c748                . = ALIGN (0x8)
- *fill*         0x000000006b08c744        0x4 00
- *fill*         0x000000006b08c748        0x0 00
- *fill*         0x000000006b08c748        0x0 00
- *fill*         0x000000006b08c748        0x0 00
-                0x000000006b08c748                . = ALIGN (0x8)
-                0x000000006b08c748                _end = .
-                0x000000006b08c748                PROVIDE (end, .)
-                0x000000006b08c748                . = DATA_SEGMENT_END (.)
-
-.stab
- *(.stab)
-
-.stabstr
- *(.stabstr)
-
-.stab.excl
- *(.stab.excl)
-
-.stab.exclstr
- *(.stab.exclstr)
-
-.stab.index
- *(.stab.index)
-
-.stab.indexstr
- *(.stab.indexstr)
-
-.comment        0x0000000000000000      0xaf5
- *(.comment)
- .comment       0x0000000000000000       0x31 /usr/lib64/crt1.o
- .comment       0x0000000000000031       0x31 /usr/lib64/crti.o
- .comment       0x0000000000000062       0x31 /usr/lib/gcc/x86_64-redhat-linux/3.4.2/crtbegin.o
- .comment       0x0000000000000093       0x1f /usr/pgi/linux86-64/6.0/lib/f90main.o
- .comment       0x00000000000000b2       0x31 proc_proc.o
- .comment       0x00000000000000e3       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(close.o)
- .comment       0x0000000000000102       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(desc.o)
- .comment       0x0000000000000121       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(encodefmt.o)
- .comment       0x0000000000000140       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(error.o)
- .comment       0x000000000000015f       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtread.o)
- .comment       0x000000000000017e       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtwrite.o)
- .comment       0x000000000000019d       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ftnexit.o)
- .comment       0x00000000000001bc       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ldread.o)
- .comment       0x00000000000001db       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ldwrite.o)
- .comment       0x00000000000001fa       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(open.o)
- .comment       0x0000000000000219       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(pgifiodf.o)
- .comment       0x0000000000000238       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(rewind.o)
- .comment       0x0000000000000257       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(unf.o)
- .comment       0x0000000000000276       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(utils.o)
- .comment       0x0000000000000295       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(utilsi64.o)
- .comment       0x00000000000002b4       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(allo.o)
- .comment       0x00000000000002d3       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(entry.o)
- .comment       0x00000000000002f2       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(hpfio.o)
- .comment       0x0000000000000311       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(hpfio_hpf.o)
- .comment       0x0000000000000330       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(initpar.o)
- .comment       0x000000000000034f       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(malloc.o)
- .comment       0x000000000000036e       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(ptr.o)
- .comment       0x000000000000038d       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(rdst.o)
- .comment       0x00000000000003ac       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(rw.o)
- .comment       0x00000000000003cb       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(version.o)
- .comment       0x00000000000003ea       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(xfer.o)
- .comment       0x0000000000000409       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(stat_linux.o)
- .comment       0x0000000000000428       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(allo_i8.o)
- .comment       0x0000000000000447       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(assign.o)
- .comment       0x0000000000000466       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtconv.o)
- .comment       0x0000000000000485       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fmtgetnum.o)
- .comment       0x00000000000004a4       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(fpcvt.o)
- .comment       0x00000000000004c3       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(atol.o)
- .comment       0x00000000000004e2       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(defs.o)
- .comment       0x0000000000000501       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(dist.o)
- .comment       0x0000000000000520       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(comm.o)
- .comment       0x000000000000053f       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90.a(copy.o)
- .comment       0x000000000000055e       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90_rpm1.a(init_rpm1.o)
- .comment       0x000000000000057d       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90_rpm1.a(xfer_rpm1.o)
- .comment       0x000000000000059c       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf902.a(cnfg.o)
- .comment       0x00000000000005bb       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf902.a(bcopy.o)
- .comment       0x00000000000005da       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf902.a(bcopys.o)
- .comment       0x00000000000005f9       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf902.a(buffer.o)
- .comment       0x0000000000000618       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf902.a(chn1t1.o)
- .comment       0x0000000000000637       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf902.a(const.o)
- .comment       0x0000000000000656       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf902.a(cprof.o)
- .comment       0x0000000000000675       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf902.a(cprof2.o)
- .comment       0x0000000000000694       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf902.a(genlist.o)
- .comment       0x00000000000006b3       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf902.a(hand.o)
- .comment       0x00000000000006d2       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf902.a(stat.o)
- .comment       0x00000000000006f1       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf902.a(trace.o)
- .comment       0x0000000000000710       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf902.a(trace2.o)
- .comment       0x000000000000072f       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf902.a(xfer_heap_dum.o)
- .comment       0x000000000000074e       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(dacos.o)
- .comment       0x000000000000076d       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(ftncharsup.o)
- .comment       0x000000000000078c       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(flush3f.o)
- .comment       0x00000000000007ab       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(getenv3f.o)
- .comment       0x00000000000007ca       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(fdate3f.o)
- .comment       0x00000000000007e9       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(getarg3f.o)
- .comment       0x0000000000000808       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(cvt.o)
- .comment       0x0000000000000827       0x1f /usr/pgi/linux86-64/6.0/lib/libpgf90rtl.a(utils3f.o)
- .comment       0x0000000000000846       0x1f /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(utils.o)
- .comment       0x0000000000000865       0x1f /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(pgifiodf.o)
- .comment       0x0000000000000884       0x1f /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(error.o)
- .comment       0x00000000000008a3       0x1f /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(ftnexit.o)
- .comment       0x00000000000008c2       0x1f /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(open.o)
- .comment       0x00000000000008e1       0x1f /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(close.o)
- .comment       0x0000000000000900       0x1f /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(cnfg.o)
- .comment       0x000000000000091f       0x1f /usr/pgi/linux86-64/6.0/lib/libpgftnrtl.a(pgdummy.o)
- .comment       0x000000000000093e       0x1f /usr/pgi/linux86-64/6.0/lib/libpgc.a(mthi64.o)
- .comment       0x000000000000095d       0x1f /usr/pgi/linux86-64/6.0/lib/libpgc.a(dpowi.o)
- .comment       0x000000000000097c       0x1f /usr/pgi/linux86-64/6.0/lib/libpgc.a(pgstdinit.o)
- .comment       0x000000000000099b       0x1f /usr/pgi/linux86-64/6.0/lib/libpgc.a(mpmalloc.o)
- .comment       0x00000000000009ba       0x1f /usr/pgi/linux86-64/6.0/lib/libpgc.a(rtcrit.o)
- .comment       0x00000000000009d9       0x1f /usr/pgi/linux86-64/6.0/lib/libpgc.a(pgtempnam.o)
- .comment       0x00000000000009f8       0x1f /usr/pgi/linux86-64/6.0/lib/libpgc.a(va_arg.o)
- .comment       0x0000000000000a17       0x1f /usr/pgi/linux86-64/6.0/lib/libpgc.a(pgargs.o)
- .comment       0x0000000000000a36       0x1f /usr/pgi/linux86-64/6.0/lib/libpgc.a(dsincosp.o)
- .comment       0x0000000000000a55       0x1f /usr/pgi/linux86-64/6.0/lib/libpgc.a(dtan.o)
- .comment       0x0000000000000a74       0x1f /usr/pgi/linux86-64/6.0/lib/libpgc.a(datan.o)
- .comment       0x0000000000000a93       0x31 /usr/lib/gcc/x86_64-redhat-linux/3.4.2/crtend.o
- .comment       0x0000000000000ac4       0x31 /usr/lib64/crtn.o
-
-.debug
- *(.debug)
-
-.line
- *(.line)
-
-.debug_srcinfo
- *(.debug_srcinfo)
-
-.debug_sfnames
- *(.debug_sfnames)
-
-.debug_aranges  0x0000000000000000      0xa00
- *(.debug_aranges)
- .debug_aranges
-                0x0000000000000000       0x50 main_clust.o
- .debug_aranges
-                0x0000000000000050       0x50 arcos.o
- .debug_aranges
-                0x00000000000000a0       0x50 cartprint.o
- .debug_aranges
-                0x00000000000000f0       0x50 chainbuild.o
- .debug_aranges
-                0x0000000000000140       0x50 convert.o
- .debug_aranges
-                0x0000000000000190       0x50 initialize_p.o
- .debug_aranges
-                0x00000000000001e0       0x50 matmult.o
- .debug_aranges
-                0x0000000000000230       0x50 readrtns.o
- .debug_aranges
-                0x0000000000000280       0x50 pinorm.o
- .debug_aranges
-                0x00000000000002d0       0x50 rescode.o
- .debug_aranges
-                0x0000000000000320       0x50 intcor.o
- .debug_aranges
-                0x0000000000000370       0x50 timing.o
- .debug_aranges
-                0x00000000000003c0       0x50 misc.o
- .debug_aranges
-                0x0000000000000410       0x50 geomout.o
- .debug_aranges
-                0x0000000000000460       0x50 readpdb.o
- .debug_aranges
-                0x00000000000004b0       0x50 read_coords.o
- .debug_aranges
-                0x0000000000000500       0x50 parmread.o
- .debug_aranges
-                0x0000000000000550       0x50 probabl.o
- .debug_aranges
-                0x00000000000005a0       0x50 fitsq.o
- .debug_aranges
-                0x00000000000005f0       0x50 hc.o
- .debug_aranges
-                0x0000000000000640       0x50 track.o
- .debug_aranges
-                0x0000000000000690       0x50 wrtclust.o
- .debug_aranges
-                0x00000000000006e0       0x50 srtclust.o
- .debug_aranges
-                0x0000000000000730       0x50 noyes.o
- .debug_aranges
-                0x0000000000000780       0x50 contact.o
- .debug_aranges
-                0x00000000000007d0       0x50 printmat.o
- .debug_aranges
-                0x0000000000000820       0x50 int_from_cart1.o
- .debug_aranges
-                0x0000000000000870       0x50 energy_p_new.o
- .debug_aranges
-                0x00000000000008c0       0x50 icant.o
- .debug_aranges
-                0x0000000000000910       0x50 work_partition.o
- .debug_aranges
-                0x0000000000000960       0x50 setup_var.o
- .debug_aranges
-                0x00000000000009b0       0x50 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-
-.debug_pubnames
-                0x0000000000000000      0xb1a
- *(.debug_pubnames)
- .debug_pubnames
-                0x0000000000000000       0x33 main_clust.o
- .debug_pubnames
-                0x0000000000000033       0x1c arcos.o
- .debug_pubnames
-                0x000000000000004f       0x20 cartprint.o
- .debug_pubnames
-                0x000000000000006f       0x5a chainbuild.o
- .debug_pubnames
-                0x00000000000000c9       0x32 convert.o
- .debug_pubnames
-                0x00000000000000fb       0x58 initialize_p.o
- .debug_pubnames
-                0x0000000000000153       0x1e matmult.o
- .debug_pubnames
-                0x0000000000000171       0x9c readrtns.o
- .debug_pubnames
-                0x000000000000020d       0x1d pinorm.o
- .debug_pubnames
-                0x000000000000022a       0x1e rescode.o
- .debug_pubnames
-                0x0000000000000248       0x2e intcor.o
- .debug_pubnames
-                0x0000000000000276       0x4b timing.o
- .debug_pubnames
-                0x00000000000002c1       0x93 misc.o
- .debug_pubnames
-                0x0000000000000354       0x4d geomout.o
- .debug_pubnames
-                0x00000000000003a1       0x3d readpdb.o
- .debug_pubnames
-                0x00000000000003de       0xa9 read_coords.o
- .debug_pubnames
-                0x0000000000000487       0x1f parmread.o
- .debug_pubnames
-                0x00000000000004a6       0x2a probabl.o
- .debug_pubnames
-                0x00000000000004d0       0x63 fitsq.o
- .debug_pubnames
-                0x0000000000000533       0x39 hc.o
- .debug_pubnames
-                0x000000000000056c       0x35 track.o
- .debug_pubnames
-                0x00000000000005a1       0x1f wrtclust.o
- .debug_pubnames
-                0x00000000000005c0       0x1f srtclust.o
- .debug_pubnames
-                0x00000000000005df       0x1c noyes.o
- .debug_pubnames
-                0x00000000000005fb       0x30 contact.o
- .debug_pubnames
-                0x000000000000062b       0x1f printmat.o
- .debug_pubnames
-                0x000000000000064a       0x25 int_from_cart1.o
- .debug_pubnames
-                0x000000000000066f      0x2df energy_p_new.o
- .debug_pubnames
-                0x000000000000094e       0x1c icant.o
- .debug_pubnames
-                0x000000000000096a       0x25 work_partition.o
- .debug_pubnames
-                0x000000000000098f       0x20 setup_var.o
- .debug_pubnames
-                0x00000000000009af      0x16b /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-
-.debug_info     0x0000000000000000    0xd920c
- *(.debug_info .gnu.linkonce.wi.*)
- .debug_info    0x0000000000000000     0x5ee0 main_clust.o
- .debug_info    0x0000000000005ee0      0x174 arcos.o
- .debug_info    0x0000000000006054     0x168c cartprint.o
- .debug_info    0x00000000000076e0     0x6937 chainbuild.o
- .debug_info    0x000000000000e017      0xee2 convert.o
- .debug_info    0x000000000000eef9     0x80c1 initialize_p.o
- .debug_info    0x0000000000016fba      0x30e matmult.o
- .debug_info    0x00000000000172c8     0xb255 readrtns.o
- .debug_info    0x000000000002251d      0x17f pinorm.o
- .debug_info    0x000000000002269c      0xae7 rescode.o
- .debug_info    0x0000000000023183     0x12a1 intcor.o
- .debug_info    0x0000000000024424     0x1528 timing.o
- .debug_info    0x000000000002594c      0x725 misc.o
- .debug_info    0x0000000000026071     0x9528 geomout.o
- .debug_info    0x000000000002f599     0x4364 readpdb.o
- .debug_info    0x00000000000338fd    0x13ada read_coords.o
- .debug_info    0x00000000000473d7     0x2a9a parmread.o
- .debug_info    0x0000000000049e71     0x3637 probabl.o
- .debug_info    0x000000000004d4a8     0x1457 fitsq.o
- .debug_info    0x000000000004e8ff     0x17e5 hc.o
- .debug_info    0x00000000000500e4     0x2afe track.o
- .debug_info    0x0000000000052be2     0x1a13 wrtclust.o
- .debug_info    0x00000000000545f5     0x1072 srtclust.o
- .debug_info    0x0000000000055667       0xb8 noyes.o
- .debug_info    0x000000000005571f     0x24d6 contact.o
- .debug_info    0x0000000000057bf5      0x177 printmat.o
- .debug_info    0x0000000000057d6c     0x1f2e int_from_cart1.o
- .debug_info    0x0000000000059c9a    0x78f44 energy_p_new.o
- .debug_info    0x00000000000d2bde       0xb0 icant.o
- .debug_info    0x00000000000d2c8e     0x1fe7 work_partition.o
- .debug_info    0x00000000000d4c75     0x194a setup_var.o
- .debug_info    0x00000000000d65bf     0x2c4d /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-
-.debug_abbrev   0x0000000000000000    0x5338a
- *(.debug_abbrev)
- .debug_abbrev  0x0000000000000000     0x2782 main_clust.o
- .debug_abbrev  0x0000000000002782       0xb8 arcos.o
- .debug_abbrev  0x000000000000283a      0x8be cartprint.o
- .debug_abbrev  0x00000000000030f8     0x293c chainbuild.o
- .debug_abbrev  0x0000000000005a34      0x632 convert.o
- .debug_abbrev  0x0000000000006066     0x3730 initialize_p.o
- .debug_abbrev  0x0000000000009796      0x1b2 matmult.o
- .debug_abbrev  0x0000000000009948     0x49d0 readrtns.o
- .debug_abbrev  0x000000000000e318       0xbc pinorm.o
- .debug_abbrev  0x000000000000e3d4      0x54a rescode.o
- .debug_abbrev  0x000000000000e91e      0x986 intcor.o
- .debug_abbrev  0x000000000000f2a4      0xa88 timing.o
- .debug_abbrev  0x000000000000fd2c      0x476 misc.o
- .debug_abbrev  0x00000000000101a2     0x3abe geomout.o
- .debug_abbrev  0x0000000000013c60     0x1aae readpdb.o
- .debug_abbrev  0x000000000001570e     0x832e read_coords.o
- .debug_abbrev  0x000000000001da3c     0x110e parmread.o
- .debug_abbrev  0x000000000001eb4a     0x1800 probabl.o
- .debug_abbrev  0x000000000002034a      0xaa6 fitsq.o
- .debug_abbrev  0x0000000000020df0      0xc16 hc.o
- .debug_abbrev  0x0000000000021a06     0x13fe track.o
- .debug_abbrev  0x0000000000022e04      0xbc6 wrtclust.o
- .debug_abbrev  0x00000000000239ca      0x7c2 srtclust.o
- .debug_abbrev  0x000000000002418c       0x5e noyes.o
- .debug_abbrev  0x00000000000241ea     0x1014 contact.o
- .debug_abbrev  0x00000000000251fe       0xcf printmat.o
- .debug_abbrev  0x00000000000252cd      0xc1a int_from_cart1.o
- .debug_abbrev  0x0000000000025ee7    0x2aac4 energy_p_new.o
- .debug_abbrev  0x00000000000509ab       0x5b icant.o
- .debug_abbrev  0x0000000000050a06      0xed6 work_partition.o
- .debug_abbrev  0x00000000000518dc      0xa12 setup_var.o
- .debug_abbrev  0x00000000000522ee     0x109c /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-
-.debug_line     0x0000000000000000    0x14996
- *(.debug_line)
- .debug_line    0x0000000000000000      0xc09 main_clust.o
- .debug_line    0x0000000000000c09       0xa0 arcos.o
- .debug_line    0x0000000000000ca9       0xa4 cartprint.o
- .debug_line    0x0000000000000d4d      0x7e9 chainbuild.o
- .debug_line    0x0000000000001536      0x1c2 convert.o
- .debug_line    0x00000000000016f8      0xe6f initialize_p.o
- .debug_line    0x0000000000002567       0xf6 matmult.o
- .debug_line    0x000000000000265d      0xff7 readrtns.o
- .debug_line    0x0000000000003654       0xc5 pinorm.o
- .debug_line    0x0000000000003719      0x132 rescode.o
- .debug_line    0x000000000000384b      0x2b1 intcor.o
- .debug_line    0x0000000000003afc      0x1c1 timing.o
- .debug_line    0x0000000000003cbd      0x67b misc.o
- .debug_line    0x0000000000004338      0x4da geomout.o
- .debug_line    0x0000000000004812      0x61e readpdb.o
- .debug_line    0x0000000000004e30      0x9ca read_coords.o
- .debug_line    0x00000000000057fa     0x1303 parmread.o
- .debug_line    0x0000000000006afd      0x55e probabl.o
- .debug_line    0x000000000000705b      0xd90 fitsq.o
- .debug_line    0x0000000000007deb      0xaf9 hc.o
- .debug_line    0x00000000000088e4      0x7f0 track.o
- .debug_line    0x00000000000090d4      0x787 wrtclust.o
- .debug_line    0x000000000000985b      0x3df srtclust.o
- .debug_line    0x0000000000009c3a       0xe8 noyes.o
- .debug_line    0x0000000000009d22      0x22e contact.o
- .debug_line    0x0000000000009f50       0xd3 printmat.o
- .debug_line    0x000000000000a023      0x271 int_from_cart1.o
- .debug_line    0x000000000000a294     0xa187 energy_p_new.o
- .debug_line    0x000000000001441b       0xac icant.o
- .debug_line    0x00000000000144c7      0x259 work_partition.o
- .debug_line    0x0000000000014720      0x14c setup_var.o
- .debug_line    0x000000000001486c      0x12a /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
-
-.debug_frame    0x0000000000000000     0x6940
- *(.debug_frame)
- .debug_frame   0x0000000000000000       0x78 main_clust.o
- .debug_frame   0x0000000000000078       0x38 arcos.o
- .debug_frame   0x00000000000000b0       0x38 cartprint.o
- .debug_frame   0x00000000000000e8       0x98 chainbuild.o
- .debug_frame   0x0000000000000180       0x58 convert.o
- .debug_frame   0x00000000000001d8       0x98 initialize_p.o
- .debug_frame   0x0000000000000270       0x38 matmult.o
- .debug_frame   0x00000000000002a8      0x158 readrtns.o
- .debug_frame   0x0000000000000400       0x38 pinorm.o
- .debug_frame   0x0000000000000438       0x38 rescode.o
- .debug_frame   0x0000000000000470       0x78 intcor.o
- .debug_frame   0x00000000000004e8       0xb8 timing.o
- .debug_frame   0x00000000000005a0      0x178 misc.o
- .debug_frame   0x0000000000000718       0xb8 geomout.o
- .debug_frame   0x00000000000007d0       0x78 readpdb.o
- .debug_frame   0x0000000000000848       0xf8 read_coords.o
- .debug_frame   0x0000000000000940       0x38 parmread.o
- .debug_frame   0x0000000000000978       0x58 probabl.o
- .debug_frame   0x00000000000009d0      0x118 fitsq.o
- .debug_frame   0x0000000000000ae8       0x98 hc.o
- .debug_frame   0x0000000000000b80       0x78 track.o
- .debug_frame   0x0000000000000bf8       0x38 wrtclust.o
- .debug_frame   0x0000000000000c30       0x38 srtclust.o
- .debug_frame   0x0000000000000c68       0x38 noyes.o
- .debug_frame   0x0000000000000ca0       0x58 contact.o
- .debug_frame   0x0000000000000cf8       0x38 printmat.o
- .debug_frame   0x0000000000000d30       0x38 int_from_cart1.o
- .debug_frame   0x0000000000000d68      0x718 energy_p_new.o
- .debug_frame   0x0000000000001480       0x38 icant.o
- .debug_frame   0x00000000000014b8       0x38 work_partition.o
- .debug_frame   0x00000000000014f0       0x38 setup_var.o
- .debug_frame   0x0000000000001528       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(abortf.o)
- .debug_frame   0x0000000000001560       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(allgatherf.o)
- .debug_frame   0x0000000000001598       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bcastf.o)
- .debug_frame   0x00000000000015d0       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_rankf.o)
- .debug_frame   0x0000000000001608       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_sizef.o)
- .debug_frame   0x0000000000001640       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(dup_fnf.o)
- .debug_frame   0x0000000000001678       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(finalizef.o)
- .debug_frame   0x00000000000016b0       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(gathervf.o)
- .debug_frame   0x00000000000016e8       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initf.o)
- .debug_frame   0x0000000000001720       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(null_copyfnf.o)
- .debug_frame   0x0000000000001758       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(null_del_fnf.o)
- .debug_frame   0x0000000000001790       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(recvf.o)
- .debug_frame   0x00000000000017c8       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(sendf.o)
- .debug_frame   0x0000000000001800       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtickf.o)
- .debug_frame   0x0000000000001838       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtimef.o)
- .debug_frame   0x0000000000001870       0x58 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(farg.o)
- .debug_frame   0x00000000000018c8       0xd8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
- .debug_frame   0x00000000000019a0       0x58 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfcmn.o)
- .debug_frame   0x00000000000019f8       0xb8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(mperror.o)
- .debug_frame   0x0000000000001ab0       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(send.o)
- .debug_frame   0x0000000000001ae8       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(recv.o)
- .debug_frame   0x0000000000001b20       0xf8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_util.o)
- .debug_frame   0x0000000000001c18       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(abort.o)
- .debug_frame   0x0000000000001c50       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(init.o)
- .debug_frame   0x0000000000001c88       0x78 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o)
- .debug_frame   0x0000000000001d00       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(finalize.o)
- .debug_frame   0x0000000000001d38       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(errorstring.o)
- .debug_frame   0x0000000000001d70       0xb8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
- .debug_frame   0x0000000000001e28       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(errfree.o)
- .debug_frame   0x0000000000001e60       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtime.o)
- .debug_frame   0x0000000000001e98       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtick.o)
- .debug_frame   0x0000000000001ed0       0xf8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(nerrmsg.o)
- .debug_frame   0x0000000000001fc8       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(msgqdllloc.o)
- .debug_frame   0x0000000000002000      0x158 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(util_hbt.o)
- .debug_frame   0x0000000000002158      0x158 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(ptrcvt.o)
- .debug_frame   0x00000000000022b0       0xd8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bsendutil2.o)
- .debug_frame   0x0000000000002388       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(keyval_free.o)
- .debug_frame   0x00000000000023c0       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(attr_getval.o)
- .debug_frame   0x00000000000023f8      0x158 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(attr_util.o)
- .debug_frame   0x0000000000002550       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(attr_putval.o)
- .debug_frame   0x0000000000002588       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(group_free.o)
- .debug_frame   0x00000000000025c0      0x118 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(group_util.o)
- .debug_frame   0x00000000000026d8       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_free.o)
- .debug_frame   0x0000000000002710       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_rank.o)
- .debug_frame   0x0000000000002748       0x58 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_name_put.o)
- .debug_frame   0x00000000000027a0       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_size.o)
- .debug_frame   0x00000000000027d8      0x138 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_util.o)
- .debug_frame   0x0000000000002910       0x58 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(context_util.o)
- .debug_frame   0x0000000000002968       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(dup_fn.o)
- .debug_frame   0x00000000000029a0       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(barrier.o)
- .debug_frame   0x00000000000029d8       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bcast.o)
- .debug_frame   0x0000000000002a10       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(gatherv.o)
- .debug_frame   0x0000000000002a48       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(allgather.o)
- .debug_frame   0x0000000000002a80       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(allreduce.o)
- .debug_frame   0x0000000000002ab8      0x198 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(global_ops.o)
- .debug_frame   0x0000000000002c50       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(opfree.o)
- .debug_frame   0x0000000000002c88       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(oputil.o)
- .debug_frame   0x0000000000002cc0      0x1f8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(inter_fns.o)
- .debug_frame   0x0000000000002eb8      0x1b8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_fns_new.o)
- .debug_frame   0x0000000000003070       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_scan.o)
- .debug_frame   0x00000000000030a8       0xd8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(topo_util.o)
- .debug_frame   0x0000000000003180       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(statusc2f.o)
- .debug_frame   0x00000000000031b8      0x418 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_utils.o)
- .debug_frame   0x00000000000035d0       0xf8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_bm.o)
- .debug_frame   0x00000000000036c8       0x78 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_rm.o)
- .debug_frame   0x0000000000003740      0x2f8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_util.o)
- .debug_frame   0x0000000000003a38       0xb8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_cr.o)
- .debug_frame   0x0000000000003af0       0xb8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_conn.o)
- .debug_frame   0x0000000000003ba8      0x1d8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_sr.o)
- .debug_frame   0x0000000000003d80      0x118 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_list.o)
- .debug_frame   0x0000000000003e98       0xf8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_secure.o)
- .debug_frame   0x0000000000003f90       0x58 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(usc.o)
- .debug_frame   0x0000000000003fe8      0x138 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2init.o)
- .debug_frame   0x0000000000004120       0x58 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2hsend.o)
- .debug_frame   0x0000000000004178       0x58 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2hrecv.o)
- .debug_frame   0x00000000000041d0       0xb8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2pack.o)
- .debug_frame   0x0000000000004288       0x98 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2mpack.o)
- .debug_frame   0x0000000000004320      0x218 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bswap2.o)
- .debug_frame   0x0000000000004538      0x238 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chdebug.o)
- .debug_frame   0x0000000000004770       0x98 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chinit.o)
- .debug_frame   0x0000000000004808       0xf8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chhetero.o)
- .debug_frame   0x0000000000004900       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chtick.o)
- .debug_frame   0x0000000000004938       0x58 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4priv.o)
- .debug_frame   0x0000000000004990      0x158 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(queue.o)
- .debug_frame   0x0000000000004ae8       0x78 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(cmnargs.o)
- .debug_frame   0x0000000000004b60      0x158 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(sbcnst2.o)
- .debug_frame   0x0000000000004cb8       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(session.o)
- .debug_frame   0x0000000000004cf0       0xb8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chpackflow.o)
- .debug_frame   0x0000000000004da8       0x98 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chcancel.o)
- .debug_frame   0x0000000000004e40       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(isend.o)
- .debug_frame   0x0000000000004e78       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(irecv.o)
- .debug_frame   0x0000000000004eb0       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wait.o)
- .debug_frame   0x0000000000004ee8       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(test.o)
- .debug_frame   0x0000000000004f20       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(cancel.o)
- .debug_frame   0x0000000000004f58       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(waitall.o)
- .debug_frame   0x0000000000004f90       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(sendrecv.o)
- .debug_frame   0x0000000000004fc8       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(testall.o)
- .debug_frame   0x0000000000005000       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(getcount.o)
- .debug_frame   0x0000000000005038       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_commit.o)
- .debug_frame   0x0000000000005070       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_contig.o)
- .debug_frame   0x00000000000050a8       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_extent.o)
- .debug_frame   0x00000000000050e0       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_free.o)
- .debug_frame   0x0000000000005118       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_ind.o)
- .debug_frame   0x0000000000005150       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_lb.o)
- .debug_frame   0x0000000000005188       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_size.o)
- .debug_frame   0x00000000000051c0       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_struct.o)
- .debug_frame   0x00000000000051f8       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(pack_size.o)
- .debug_frame   0x0000000000005230       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(pack.o)
- .debug_frame   0x0000000000005268       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(unpack.o)
- .debug_frame   0x00000000000052a0       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
- .debug_frame   0x00000000000052d8       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(errset.o)
- .debug_frame   0x0000000000005310      0x138 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(pkutil.o)
- .debug_frame   0x0000000000005448       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(keyvalcreate.o)
- .debug_frame   0x0000000000005480       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(reduce.o)
- .debug_frame   0x00000000000054b8      0x118 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_MD.o)
- .debug_frame   0x00000000000055d0       0xb8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_error.o)
- .debug_frame   0x0000000000005688       0x98 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_args.o)
- .debug_frame   0x0000000000005720      0x198 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_alloc.o)
- .debug_frame   0x00000000000058b8      0x198 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_debug.o)
- .debug_frame   0x0000000000005a50       0x78 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_procgroup.o)
- .debug_frame   0x0000000000005ac8      0x218 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_tsr.o)
- .debug_frame   0x0000000000005ce0      0x218 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_mon.o)
- .debug_frame   0x0000000000005ef8      0x2d8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_broadcast.o)
- .debug_frame   0x00000000000061d0       0xb8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2recv.o)
- .debug_frame   0x0000000000006288       0xb8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2send.o)
- .debug_frame   0x0000000000006340       0x58 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2cancel.o)
- .debug_frame   0x0000000000006398      0x138 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chbeager.o)
- .debug_frame   0x00000000000064d0      0x1b8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chbrndv.o)
- .debug_frame   0x0000000000006688       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chchkdev.o)
- .debug_frame   0x00000000000066c0       0xf8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chshort.o)
- .debug_frame   0x00000000000067b8       0xd8 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chflow.o)
- .debug_frame   0x0000000000006890       0x38 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_hind.o)
- .debug_frame   0x00000000000068c8       0x78 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(dmpipk.o)
-
-.debug_str
- *(.debug_str)
-
-.debug_loc
- *(.debug_loc)
-
-.debug_macinfo
- *(.debug_macinfo)
-
-.debug_weaknames
- *(.debug_weaknames)
-
-.debug_funcnames
- *(.debug_funcnames)
-
-.debug_typenames
- *(.debug_typenames)
-
-.debug_varnames
- *(.debug_varnames)
-
-/DISCARD/
- *(.note.GNU-stack)
-OUTPUT(/users/adam/ZSCOREZ/bin/unres_clustMD_MPI elf64-x86-64)
-
-.note           0x0000000000000000      0xce4
- .note          0x0000000000000000       0x14 main_clust.o
- .note          0x0000000000000014       0x14 arcos.o
- .note          0x0000000000000028       0x14 cartprint.o
- .note          0x000000000000003c       0x14 chainbuild.o
- .note          0x0000000000000050       0x14 convert.o
- .note          0x0000000000000064       0x14 initialize_p.o
- .note          0x0000000000000078       0x14 matmult.o
- .note          0x000000000000008c       0x14 readrtns.o
- .note          0x00000000000000a0       0x14 pinorm.o
- .note          0x00000000000000b4       0x14 rescode.o
- .note          0x00000000000000c8       0x14 intcor.o
- .note          0x00000000000000dc       0x14 timing.o
- .note          0x00000000000000f0       0x14 misc.o
- .note          0x0000000000000104       0x14 geomout.o
- .note          0x0000000000000118       0x14 readpdb.o
- .note          0x000000000000012c       0x14 read_coords.o
- .note          0x0000000000000140       0x14 parmread.o
- .note          0x0000000000000154       0x14 probabl.o
- .note          0x0000000000000168       0x14 fitsq.o
- .note          0x000000000000017c       0x14 hc.o
- .note          0x0000000000000190       0x14 track.o
- .note          0x00000000000001a4       0x14 wrtclust.o
- .note          0x00000000000001b8       0x14 srtclust.o
- .note          0x00000000000001cc       0x14 noyes.o
- .note          0x00000000000001e0       0x14 contact.o
- .note          0x00000000000001f4       0x14 printmat.o
- .note          0x0000000000000208       0x14 int_from_cart1.o
- .note          0x000000000000021c       0x14 energy_p_new.o
- .note          0x0000000000000230       0x14 icant.o
- .note          0x0000000000000244       0x14 work_partition.o
- .note          0x0000000000000258       0x14 setup_var.o
- .note          0x000000000000026c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(abortf.o)
- .note          0x0000000000000280       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(allgatherf.o)
- .note          0x0000000000000294       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bcastf.o)
- .note          0x00000000000002a8       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_rankf.o)
- .note          0x00000000000002bc       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_sizef.o)
- .note          0x00000000000002d0       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(dup_fnf.o)
- .note          0x00000000000002e4       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(finalizef.o)
- .note          0x00000000000002f8       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(gathervf.o)
- .note          0x000000000000030c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initf.o)
- .note          0x0000000000000320       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(null_copyfnf.o)
- .note          0x0000000000000334       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(null_del_fnf.o)
- .note          0x0000000000000348       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(recvf.o)
- .note          0x000000000000035c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(sendf.o)
- .note          0x0000000000000370       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtickf.o)
- .note          0x0000000000000384       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtimef.o)
- .note          0x0000000000000398       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(farg.o)
- .note          0x00000000000003ac       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfutil.o)
- .note          0x00000000000003c0       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initfcmn.o)
- .note          0x00000000000003d4       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(mperror.o)
- .note          0x00000000000003e8       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(send.o)
- .note          0x00000000000003fc       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(recv.o)
- .note          0x0000000000000410       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_util.o)
- .note          0x0000000000000424       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(abort.o)
- .note          0x0000000000000438       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(init.o)
- .note          0x000000000000044c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initutil.o)
- .note          0x0000000000000460       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(finalize.o)
- .note          0x0000000000000474       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(errorstring.o)
- .note          0x0000000000000488       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(initdte.o)
- .note          0x000000000000049c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(errfree.o)
- .note          0x00000000000004b0       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtime.o)
- .note          0x00000000000004c4       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wtick.o)
- .note          0x00000000000004d8       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(nerrmsg.o)
- .note          0x00000000000004ec       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(msgqdllloc.o)
- .note          0x0000000000000500       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(util_hbt.o)
- .note          0x0000000000000514       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(ptrcvt.o)
- .note          0x0000000000000528       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bsendutil2.o)
- .note          0x000000000000053c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(keyval_free.o)
- .note          0x0000000000000550       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(attr_getval.o)
- .note          0x0000000000000564       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(attr_util.o)
- .note          0x0000000000000578       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(attr_putval.o)
- .note          0x000000000000058c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(group_free.o)
- .note          0x00000000000005a0       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(group_util.o)
- .note          0x00000000000005b4       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_free.o)
- .note          0x00000000000005c8       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_rank.o)
- .note          0x00000000000005dc       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_name_put.o)
- .note          0x00000000000005f0       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_size.o)
- .note          0x0000000000000604       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(comm_util.o)
- .note          0x0000000000000618       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(context_util.o)
- .note          0x000000000000062c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(dup_fn.o)
- .note          0x0000000000000640       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(barrier.o)
- .note          0x0000000000000654       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bcast.o)
- .note          0x0000000000000668       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(gatherv.o)
- .note          0x000000000000067c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(allgather.o)
- .note          0x0000000000000690       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(allreduce.o)
- .note          0x00000000000006a4       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(global_ops.o)
- .note          0x00000000000006b8       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(opfree.o)
- .note          0x00000000000006cc       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(oputil.o)
- .note          0x00000000000006e0       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(inter_fns.o)
- .note          0x00000000000006f4       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_fns_new.o)
- .note          0x0000000000000708       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(intra_scan.o)
- .note          0x000000000000071c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(topo_util.o)
- .note          0x0000000000000730       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(statusc2f.o)
- .note          0x0000000000000744       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_utils.o)
- .note          0x0000000000000758       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_bm.o)
- .note          0x000000000000076c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_rm.o)
- .note          0x0000000000000780       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_util.o)
- .note          0x0000000000000794       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_cr.o)
- .note          0x00000000000007a8       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_conn.o)
- .note          0x00000000000007bc       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_sr.o)
- .note          0x00000000000007d0       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_sock_list.o)
- .note          0x00000000000007e4       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_secure.o)
- .note          0x00000000000007f8       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(usc.o)
- .note          0x000000000000080c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2init.o)
- .note          0x0000000000000820       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2hsend.o)
- .note          0x0000000000000834       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2hrecv.o)
- .note          0x0000000000000848       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2pack.o)
- .note          0x000000000000085c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2mpack.o)
- .note          0x0000000000000870       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(bswap2.o)
- .note          0x0000000000000884       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chdebug.o)
- .note          0x0000000000000898       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chinit.o)
- .note          0x00000000000008ac       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chhetero.o)
- .note          0x00000000000008c0       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chtick.o)
- .note          0x00000000000008d4       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4priv.o)
- .note          0x00000000000008e8       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(queue.o)
- .note          0x00000000000008fc       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(cmnargs.o)
- .note          0x0000000000000910       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(sbcnst2.o)
- .note          0x0000000000000924       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(session.o)
- .note          0x0000000000000938       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chpackflow.o)
- .note          0x000000000000094c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chcancel.o)
- .note          0x0000000000000960       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(isend.o)
- .note          0x0000000000000974       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(irecv.o)
- .note          0x0000000000000988       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(wait.o)
- .note          0x000000000000099c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(test.o)
- .note          0x00000000000009b0       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(cancel.o)
- .note          0x00000000000009c4       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(waitall.o)
- .note          0x00000000000009d8       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(sendrecv.o)
- .note          0x00000000000009ec       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(testall.o)
- .note          0x0000000000000a00       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(getcount.o)
- .note          0x0000000000000a14       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_commit.o)
- .note          0x0000000000000a28       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_contig.o)
- .note          0x0000000000000a3c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_extent.o)
- .note          0x0000000000000a50       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_free.o)
- .note          0x0000000000000a64       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_ind.o)
- .note          0x0000000000000a78       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_lb.o)
- .note          0x0000000000000a8c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_size.o)
- .note          0x0000000000000aa0       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_struct.o)
- .note          0x0000000000000ab4       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(pack_size.o)
- .note          0x0000000000000ac8       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(pack.o)
- .note          0x0000000000000adc       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(unpack.o)
- .note          0x0000000000000af0       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(debugutil.o)
- .note          0x0000000000000b04       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(errset.o)
- .note          0x0000000000000b18       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(pkutil.o)
- .note          0x0000000000000b2c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(keyvalcreate.o)
- .note          0x0000000000000b40       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(reduce.o)
- .note          0x0000000000000b54       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_globals.o)
- .note          0x0000000000000b68       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_MD.o)
- .note          0x0000000000000b7c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_error.o)
- .note          0x0000000000000b90       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_args.o)
- .note          0x0000000000000ba4       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_alloc.o)
- .note          0x0000000000000bb8       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_debug.o)
- .note          0x0000000000000bcc       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_procgroup.o)
- .note          0x0000000000000be0       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_tsr.o)
- .note          0x0000000000000bf4       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_mon.o)
- .note          0x0000000000000c08       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(p4_broadcast.o)
- .note          0x0000000000000c1c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2recv.o)
- .note          0x0000000000000c30       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2send.o)
- .note          0x0000000000000c44       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(adi2cancel.o)
- .note          0x0000000000000c58       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chbeager.o)
- .note          0x0000000000000c6c       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chbrndv.o)
- .note          0x0000000000000c80       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chchkdev.o)
- .note          0x0000000000000c94       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chshort.o)
- .note          0x0000000000000ca8       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(chflow.o)
- .note          0x0000000000000cbc       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(type_hind.o)
- .note          0x0000000000000cd0       0x14 /usr/local/mpich-1.2.5.2_pgi64-6.0-4_ssh/lib/libmpich.a(dmpipk.o)
index d77c5a4..f023520 100644 (file)
@@ -1,5 +1,6 @@
 #include <stdlib.h>
 #include <math.h>
+#include <stdio.h>
 
 #ifdef CRAY
 void PROC_PROC(long int *f, int *i)
diff --git a/source/lib/xdrf-Argonne/Makefile b/source/lib/xdrf-Argonne/Makefile
new file mode 100644 (file)
index 0000000..f03276e
--- /dev/null
@@ -0,0 +1,27 @@
+# This make file is part of the xdrf package.
+#
+# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
+#
+# 2006 modified by Cezary Czaplewski
+
+# Set C compiler and flags for ARCH
+CC      = cc
+CFLAGS         = -O 
+
+M4     = m4
+M4FILE = underscore.m4
+
+libxdrf.a:  libxdrf.o ftocstr.o
+       ar cr libxdrf.a $?
+
+clean:
+       rm -f libxdrf.o ftocstr.o libxdrf.a 
+
+ftocstr.o: ftocstr.c
+       $(CC) $(CFLAGS) -c ftocstr.c
+
+libxdrf.o:     libxdrf.m4 $(M4FILE)
+       $(M4) $(M4FILE) libxdrf.m4 > libxdrf.c
+       $(CC) $(CFLAGS) -c libxdrf.c
+       rm -f libxdrf.c
+
diff --git a/source/lib/xdrf-Argonne/Makefile_jubl b/source/lib/xdrf-Argonne/Makefile_jubl
new file mode 100644 (file)
index 0000000..8dc35cf
--- /dev/null
@@ -0,0 +1,31 @@
+# This make file is part of the xdrf package.
+#
+# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
+#
+# 2006 modified by Cezary Czaplewski
+
+# Set C compiler and flags for ARCH
+BGLSYS = /bgl/BlueLight/ppcfloor/bglsys
+
+CC = /usr/bin/blrts_xlc
+CPPC = /usr/bin/blrts_xlc
+
+CFLAGS= -O2 -I$(BGLSYS)/include -L$(BGLSYS)/lib -qarch=440d -qtune=440
+
+M4     = m4
+M4FILE = RS6K.m4
+
+libxdrf.a:  libxdrf.o ftocstr.o xdr_array.o  xdr.o  xdr_float.o  xdr_stdio.o
+       ar cr libxdrf.a $?
+
+clean:
+       rm -f *.o libxdrf.a 
+
+ftocstr.o: ftocstr.c
+       $(CC) $(CFLAGS) -c ftocstr.c
+
+libxdrf.o:     libxdrf.m4 $(M4FILE)
+       $(M4) $(M4FILE) libxdrf.m4 > libxdrf.c
+       $(CC) $(CFLAGS) -c libxdrf.c
+#      rm -f libxdrf.c
+
diff --git a/source/lib/xdrf-Argonne/Makefile_linux b/source/lib/xdrf-Argonne/Makefile_linux
new file mode 100644 (file)
index 0000000..f03276e
--- /dev/null
@@ -0,0 +1,27 @@
+# This make file is part of the xdrf package.
+#
+# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
+#
+# 2006 modified by Cezary Czaplewski
+
+# Set C compiler and flags for ARCH
+CC      = cc
+CFLAGS         = -O 
+
+M4     = m4
+M4FILE = underscore.m4
+
+libxdrf.a:  libxdrf.o ftocstr.o
+       ar cr libxdrf.a $?
+
+clean:
+       rm -f libxdrf.o ftocstr.o libxdrf.a 
+
+ftocstr.o: ftocstr.c
+       $(CC) $(CFLAGS) -c ftocstr.c
+
+libxdrf.o:     libxdrf.m4 $(M4FILE)
+       $(M4) $(M4FILE) libxdrf.m4 > libxdrf.c
+       $(CC) $(CFLAGS) -c libxdrf.c
+       rm -f libxdrf.c
+
diff --git a/source/lib/xdrf-Argonne/RS6K.m4 b/source/lib/xdrf-Argonne/RS6K.m4
new file mode 100644 (file)
index 0000000..0331d97
--- /dev/null
@@ -0,0 +1,20 @@
+divert(-1)
+undefine(`len')
+#
+# do nothing special to FORTRAN function names
+#
+define(`FUNCTION',`$1')
+#
+# FORTRAN character strings are passed as follows:
+# a pointer to the base of the string is passed in the normal
+# argument list, and the length is passed by value as an extra
+# argument, after all of the other arguments.
+#
+define(`ARGS',`($1`'undivert(1))')
+define(`SAVE',`divert(1)$1`'divert(0)')
+define(`STRING_ARG',`$1_ptr`'SAVE(`, $1_len')')
+define(`STRING_ARG_DECL',`char * $1_ptr; int $1_len')
+define(`STRING_LEN',`$1_len')
+define(`STRING_PTR',`$1_ptr')
+divert(0)
+
diff --git a/source/lib/xdrf-Argonne/ftocstr.c b/source/lib/xdrf-Argonne/ftocstr.c
new file mode 100644 (file)
index 0000000..ed2113f
--- /dev/null
@@ -0,0 +1,35 @@
+
+
+int ftocstr(ds, dl, ss, sl)
+    char *ds, *ss;      /* dst, src ptrs */
+    int dl;             /* dst max len */
+    int sl;             /* src len */
+{
+    char *p;
+
+    for (p = ss + sl; --p >= ss && *p == ' '; ) ;
+    sl = p - ss + 1;
+    dl--;
+    ds[0] = 0;
+    if (sl > dl)
+        return 1;
+    while (sl--)
+       (*ds++ = *ss++);
+    *ds = '\0';
+    return 0;
+}
+
+
+int ctofstr(ds, dl, ss)
+       char *ds;               /* dest space */
+       int dl;                 /* max dest length */
+       char *ss;               /* src string (0-term) */
+{
+    while (dl && *ss) {
+       *ds++ = *ss++;
+       dl--;
+    }
+    while (dl--)
+       *ds++ = ' ';
+    return 0;
+}
diff --git a/source/lib/xdrf-Argonne/libxdrf.m4 b/source/lib/xdrf-Argonne/libxdrf.m4
new file mode 100644 (file)
index 0000000..a6da458
--- /dev/null
@@ -0,0 +1,1238 @@
+/*____________________________________________________________________________
+ |
+ | libxdrf - portable fortran interface to xdr. some xdr routines
+ |          are C routines for compressed coordinates
+ |
+ | version 1.1
+ |
+ | This collection of routines is intended to write and read
+ | data in a portable way to a file, so data written on one type
+ | of machine can be read back on a different type.
+ |
+ | all fortran routines use an integer 'xdrid', which is an id to the
+ | current xdr file, and is set by xdrfopen.
+ | most routines have in integer 'ret' which is the return value.
+ | The value of 'ret' is zero on failure, and most of the time one
+ | on succes.
+ |
+ | There are three routines useful for C users:
+ |  xdropen(), xdrclose(), xdr3dfcoord().
+ | The first two replace xdrstdio_create and xdr_destroy, and *must* be
+ | used when you plan to use xdr3dfcoord(). (they are also a bit
+ | easier to interface). For writing data other than compressed coordinates 
+ | you should use the standard C xdr routines (see xdr man page)
+ |
+ | xdrfopen(xdrid, filename, mode, ret)
+ |     character *(*) filename
+ |     character *(*) mode
+ |
+ |     this will open the file with the given filename (string)
+ |     and the given mode, it returns an id in xdrid, which is
+ |     to be used in all other calls to xdrf routines.
+ |     mode is 'w' to create, or update an file, for all other
+ |     values of mode the file is opened for reading
+ |
+ |     you need to call xdrfclose to flush the output and close
+ |     the file.
+ |     Note that you should not use xdrstdio_create, which comes with the
+ |     standard xdr library
+ |
+ | xdrfclose(xdrid, ret)
+ |     flush the data to the file, and closes the file;
+ |     You should not use xdr_destroy (which comes standard with
+ |     the xdr libraries.
+ |
+ | xdrfbool(xdrid, bp, ret)
+ |     integer pb
+ |
+ |     This filter produces values of either 1 or 0    
+ |
+ | xdrfchar(xdrid, cp, ret)
+ |     character cp
+ |
+ |     filter that translate between characters and their xdr representation
+ |     Note that the characters in not compressed and occupies 4 bytes.
+ |
+ | xdrfdouble(xdrid, dp, ret)
+ |     double dp
+ |
+ |     read/write a double.
+ |
+ | xdrffloat(xdrid, fp, ret)
+ |     float fp
+ |
+ |     read/write a float.
+ |
+ | xdrfint(xdrid, ip, ret)
+ |     integer ip
+ |
+ |     read/write integer.
+ |
+ | xdrflong(xdrid, lp, ret)
+ |     integer lp
+ |
+ |     this routine has a possible portablility problem due to 64 bits longs.
+ |
+ | xdrfshort(xdrid, sp, ret)
+ |     integer *2 sp
+ |
+ | xdrfstring(xdrid, sp, maxsize, ret)
+ |     character *(*)
+ |     integer maxsize
+ |
+ |     read/write a string, with maximum length given by maxsize
+ |
+ | xdrfwrapstring(xdris, sp, ret)
+ |     character *(*)
+ |
+ |     read/write a string (it is the same as xdrfstring accept that it finds
+ |     the stringlength itself.
+ |
+ | xdrfvector(xdrid, cp, size, xdrfproc, ret)
+ |     character *(*)
+ |     integer size
+ |     external xdrfproc
+ |
+ |     read/write an array pointed to by cp, with number of elements
+ |     defined by 'size'. the routine 'xdrfproc' is the name
+ |     of one of the above routines to read/write data (like xdrfdouble)
+ |     In contrast with the c-version you don't need to specify the
+ |     byte size of an element.
+ |     xdrfstring is not allowed here (it is in the c version)
+ |     
+ | xdrf3dfcoord(xdrid, fp, size, precision, ret)
+ |     real (*) fp
+ |     real precision
+ |     integer size
+ |
+ |     this is *NOT* a standard xdr routine. I named it this way, because
+ |     it invites people to use the other xdr routines.
+ |     It is introduced to store specifically 3d coordinates of molecules
+ |     (as found in molecular dynamics) and it writes it in a compressed way.
+ |     It starts by multiplying all numbers by precision and
+ |     rounding the result to integer. effectively converting
+ |     all floating point numbers to fixed point.
+ |     it uses an algorithm for compression that is optimized for
+ |     molecular data, but could be used for other 3d coordinates
+ |     as well. There is subtantial overhead involved, so call this
+ |     routine only if you have a large number of coordinates to read/write
+ |
+ | ________________________________________________________________________
+ |
+ | Below are the routines to be used by C programmers. Use the 'normal'
+ | xdr routines to write integers, floats, etc (see man xdr)   
+ |
+ | int xdropen(XDR *xdrs, const char *filename, const char *type)
+ |     This will open the file with the given filename and the 
+ |     given mode. You should pass it an allocated XDR struct
+ |     in xdrs, to be used in all other calls to xdr routines.
+ |     Mode is 'w' to create, or update an file, and for all 
+ |     other values of mode the file is opened for reading. 
+ |     You need to call xdrclose to flush the output and close
+ |     the file.
+ |
+ |     Note that you should not use xdrstdio_create, which
+ |     comes with the standard xdr library.
+ |
+ | int xdrclose(XDR *xdrs)
+ |     Flush the data to the file, and close the file;
+ |     You should not use xdr_destroy (which comes standard
+ |     with the xdr libraries).
+ |      
+ | int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision)
+ |     This is \fInot\fR a standard xdr routine. I named it this 
+ |     way, because it invites people to use the other xdr 
+ |     routines.
+ |
+ |     (c) 1995 Frans van Hoesel, hoesel@chem.rug.nl
+*/     
+
+
+#include <limits.h>
+#include <malloc.h>
+#include <math.h>
+/* #include <rpc/rpc.h>
+#include <rpc/xdr.h> */
+#include "xdr.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include "xdrf.h"
+
+int ftocstr(char *, int, char *, int);
+int ctofstr(char *, int, char *);
+
+#define MAXID 20
+static FILE *xdrfiles[MAXID];
+static XDR *xdridptr[MAXID];
+static char xdrmodes[MAXID];
+static unsigned int cnt;
+
+typedef void (* FUNCTION(xdrfproc)) (int *, void *, int *);
+
+void
+FUNCTION(xdrfbool) ARGS(`xdrid, pb, ret')
+int *xdrid, *ret;
+int *pb;
+{
+       *ret = xdr_bool(xdridptr[*xdrid], (bool_t *) pb);
+       cnt += sizeof(int);
+}
+
+void
+FUNCTION(xdrfchar) ARGS(`xdrid, cp, ret')
+int *xdrid, *ret;
+char *cp;
+{
+       *ret = xdr_char(xdridptr[*xdrid], cp);
+       cnt += sizeof(char);
+}
+
+void
+FUNCTION(xdrfdouble) ARGS(`xdrid, dp, ret')
+int *xdrid, *ret;
+double *dp;
+{
+       *ret = xdr_double(xdridptr[*xdrid], dp);
+       cnt += sizeof(double);
+}
+
+void
+FUNCTION(xdrffloat) ARGS(`xdrid, fp, ret')
+int *xdrid, *ret;
+float *fp;
+{
+       *ret = xdr_float(xdridptr[*xdrid], fp);
+       cnt += sizeof(float);
+}
+
+void
+FUNCTION(xdrfint) ARGS(`xdrid, ip, ret')
+int *xdrid, *ret;
+int *ip;
+{
+       *ret = xdr_int(xdridptr[*xdrid], ip);
+       cnt += sizeof(int);
+}
+
+void
+FUNCTION(xdrflong) ARGS(`xdrid, lp, ret')
+int *xdrid, *ret;
+long *lp;
+{
+       *ret = xdr_long(xdridptr[*xdrid], lp);
+       cnt += sizeof(long);
+}
+
+void
+FUNCTION(xdrfshort) ARGS(`xdrid, sp, ret')
+int *xdrid, *ret;
+short *sp;
+{
+       *ret = xdr_short(xdridptr[*xdrid], sp);
+       cnt += sizeof(sp);
+}
+
+void
+FUNCTION(xdrfuchar) ARGS(`xdrid, ucp, ret')
+int *xdrid, *ret;
+char *ucp;
+{
+       *ret = xdr_u_char(xdridptr[*xdrid], ucp);
+       cnt += sizeof(char);
+}
+
+void
+FUNCTION(xdrfulong) ARGS(`xdrid, ulp, ret')
+int *xdrid, *ret;
+unsigned long *ulp;
+{
+       *ret = xdr_u_long(xdridptr[*xdrid], ulp);
+       cnt += sizeof(unsigned long);
+}
+
+void
+FUNCTION(xdrfushort) ARGS(`xdrid, usp, ret')
+int *xdrid, *ret;
+unsigned short *usp;
+{
+       *ret = xdr_u_short(xdridptr[*xdrid], usp);
+       cnt += sizeof(unsigned short);
+}
+
+void 
+FUNCTION(xdrf3dfcoord) ARGS(`xdrid, fp, size, precision, ret')
+int *xdrid, *ret;
+float *fp;
+int *size;
+float *precision;
+{
+       *ret = xdr3dfcoord(xdridptr[*xdrid], fp, size, precision);
+}
+
+void
+FUNCTION(xdrfstring) ARGS(`xdrid, STRING_ARG(sp), maxsize, ret')
+int *xdrid, *ret;
+STRING_ARG_DECL(sp);
+int *maxsize;
+{
+       char *tsp;
+
+       tsp = (char*) malloc(((STRING_LEN(sp)) + 1) * sizeof(char));
+       if (tsp == NULL) {
+           *ret = -1;
+           return;
+       }
+       if (ftocstr(tsp, *maxsize+1, STRING_PTR(sp), STRING_LEN(sp))) {
+           *ret = -1;
+           free(tsp);
+           return;
+       }
+       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int) *maxsize);
+       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
+       cnt += *maxsize;
+       free(tsp);
+}
+
+void
+FUNCTION(xdrfwrapstring) ARGS(`xdrid,  STRING_ARG(sp), ret')
+int *xdrid, *ret;
+STRING_ARG_DECL(sp);
+{
+       char *tsp;
+       int maxsize;
+       maxsize = (STRING_LEN(sp)) + 1;
+       tsp = (char*) malloc(maxsize * sizeof(char));
+       if (tsp == NULL) {
+           *ret = -1;
+           return;
+       }
+       if (ftocstr(tsp, maxsize, STRING_PTR(sp), STRING_LEN(sp))) {
+           *ret = -1;
+           free(tsp);
+           return;
+       }
+       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int)maxsize);
+       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
+       cnt += maxsize;
+       free(tsp);
+}
+
+void
+FUNCTION(xdrfopaque) ARGS(`xdrid, cp, ccnt, ret')
+int *xdrid, *ret;
+caddr_t *cp;
+int *ccnt;
+{
+       *ret = xdr_opaque(xdridptr[*xdrid], (caddr_t)*cp, (u_int)*ccnt);
+       cnt += *ccnt;
+}
+
+void
+FUNCTION(xdrfsetpos) ARGS(`xdrid, pos, ret')
+int *xdrid, *ret;
+int *pos;
+{
+       *ret = xdr_setpos(xdridptr[*xdrid], (u_int) *pos);
+}
+
+void
+FUNCTION(xdrf) ARGS(`xdrid, pos')
+int *xdrid, *pos;
+{
+       *pos = xdr_getpos(xdridptr[*xdrid]);
+}
+
+void
+FUNCTION(xdrfvector) ARGS(`xdrid, cp, size, elproc, ret')
+int *xdrid, *ret;
+char *cp;
+int *size;
+FUNCTION(xdrfproc) elproc;
+{
+       int lcnt;
+       cnt = 0;
+       for (lcnt = 0; lcnt < *size; lcnt++) {
+               elproc(xdrid, (cp+cnt) , ret);
+       }
+}
+
+
+void
+FUNCTION(xdrfclose) ARGS(`xdrid, ret')
+int *xdrid;
+int *ret;
+{
+       *ret = xdrclose(xdridptr[*xdrid]);
+       cnt = 0;
+}
+
+void
+FUNCTION(xdrfopen) ARGS(`xdrid,  STRING_ARG(fp), STRING_ARG(mode), ret')
+int *xdrid;
+STRING_ARG_DECL(fp);
+STRING_ARG_DECL(mode);
+int *ret;
+{
+       char fname[512];
+       char fmode[3];
+
+       if (ftocstr(fname, sizeof(fname), STRING_PTR(fp), STRING_LEN(fp))) {
+               *ret = 0;
+       }
+       if (ftocstr(fmode, sizeof(fmode), STRING_PTR(mode),
+                       STRING_LEN(mode))) {
+               *ret = 0;
+       }
+
+       *xdrid = xdropen(NULL, fname, fmode);
+       if (*xdrid == 0)
+               *ret = 0;
+       else 
+               *ret = 1;       
+}
+
+/*___________________________________________________________________________
+ |
+ | what follows are the C routines for opening, closing xdr streams
+ | and the routine to read/write compressed coordinates together
+ | with some routines to assist in this task (those are marked
+ | static and cannot be called from user programs)
+*/
+#define MAXABS INT_MAX-2
+
+#ifndef MIN
+#define MIN(x,y) ((x) < (y) ? (x):(y))
+#endif
+#ifndef MAX
+#define MAX(x,y) ((x) > (y) ? (x):(y))
+#endif
+#ifndef SQR
+#define SQR(x) ((x)*(x))
+#endif
+static int magicints[] = {
+    0, 0, 0, 0, 0, 0, 0, 0, 0,
+    8, 10, 12, 16, 20, 25, 32, 40, 50, 64,
+    80, 101, 128, 161, 203, 256, 322, 406, 512, 645,
+    812, 1024, 1290, 1625, 2048, 2580, 3250, 4096, 5060, 6501,
+    8192, 10321, 13003, 16384, 20642, 26007, 32768, 41285, 52015, 65536,
+    82570, 104031, 131072, 165140, 208063, 262144, 330280, 416127, 524287, 660561,
+    832255, 1048576, 1321122, 1664510, 2097152, 2642245, 3329021, 4194304, 5284491, 6658042,
+    8388607, 10568983, 13316085, 16777216 };
+
+#define FIRSTIDX 9
+/* note that magicints[FIRSTIDX-1] == 0 */
+#define LASTIDX (sizeof(magicints) / sizeof(*magicints))
+
+
+/*__________________________________________________________________________
+ |
+ | xdropen - open xdr file
+ |
+ | This versions differs from xdrstdio_create, because I need to know
+ | the state of the file (read or write) so I can use xdr3dfcoord
+ | in eigther read or write mode, and the file descriptor
+ | so I can close the file (something xdr_destroy doesn't do).
+ |
+*/
+
+int xdropen(XDR *xdrs, const char *filename, const char *type) {
+    static int init_done = 0;
+    enum xdr_op lmode;
+    const char *type1;
+    int xdrid;
+    
+    if (init_done == 0) {
+       for (xdrid = 1; xdrid < MAXID; xdrid++) {
+           xdridptr[xdrid] = NULL;
+       }
+       init_done = 1;
+    }
+    xdrid = 1;
+    while (xdrid < MAXID && xdridptr[xdrid] != NULL) {
+       xdrid++;
+    }
+    if (xdrid == MAXID) {
+       return 0;
+    }
+    if (*type == 'w' || *type == 'W') {
+           type = "w+";
+           type1 = "w+";
+           lmode = XDR_ENCODE;
+    } else if (*type == 'a' || *type == 'A') {
+           type = "w+";
+            type1 = "a+";
+           lmode = XDR_ENCODE;
+    } else {
+           type = "r";
+            type1 = "r";
+           lmode = XDR_DECODE;
+    }
+    xdrfiles[xdrid] = fopen(filename, type1);
+    if (xdrfiles[xdrid] == NULL) {
+       xdrs = NULL;
+       return 0;
+    }
+    xdrmodes[xdrid] = *type;
+    /* next test isn't usefull in the case of C language
+     * but is used for the Fortran interface
+     * (C users are expected to pass the address of an already allocated
+     * XDR staructure)
+     */
+    if (xdrs == NULL) {
+       xdridptr[xdrid] = (XDR *) malloc(sizeof(XDR));
+       xdrstdio_create(xdridptr[xdrid], xdrfiles[xdrid], lmode);
+    } else {
+       xdridptr[xdrid] = xdrs;
+       xdrstdio_create(xdrs, xdrfiles[xdrid], lmode);
+    }
+    return xdrid;
+}
+
+/*_________________________________________________________________________
+ |
+ | xdrclose - close a xdr file
+ |
+ | This will flush the xdr buffers, and destroy the xdr stream.
+ | It also closes the associated file descriptor (this is *not*
+ | done by xdr_destroy).
+ |
+*/
+int xdrclose(XDR *xdrs) {
+    int xdrid;
+    
+    if (xdrs == NULL) {
+       fprintf(stderr, "xdrclose: passed a NULL pointer\n");
+       exit(1);
+    }
+    for (xdrid = 1; xdrid < MAXID; xdrid++) {
+       if (xdridptr[xdrid] == xdrs) {
+           
+           xdr_destroy(xdrs);
+           fclose(xdrfiles[xdrid]);
+           xdridptr[xdrid] = NULL;
+           return 1;
+       }
+    } 
+    fprintf(stderr, "xdrclose: no such open xdr file\n");
+    exit(1);
+    
+}
+
+/*____________________________________________________________________________
+ |
+ | sendbits - encode num into buf using the specified number of bits
+ |
+ | This routines appends the value of num to the bits already present in
+ | the array buf. You need to give it the number of bits to use and you
+ | better make sure that this number of bits is enough to hold the value
+ | Also num must be positive.
+ |
+*/
+
+static void sendbits(int buf[], int num_of_bits, int num) {
+    
+    unsigned int cnt, lastbyte;
+    int lastbits;
+    unsigned char * cbuf;
+    
+    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
+    cnt = (unsigned int) buf[0];
+    lastbits = buf[1];
+    lastbyte =(unsigned int) buf[2];
+    while (num_of_bits >= 8) {
+       lastbyte = (lastbyte << 8) | ((num >> (num_of_bits -8)) /* & 0xff*/);
+       cbuf[cnt++] = lastbyte >> lastbits;
+       num_of_bits -= 8;
+    }
+    if (num_of_bits > 0) {
+       lastbyte = (lastbyte << num_of_bits) | num;
+       lastbits += num_of_bits;
+       if (lastbits >= 8) {
+           lastbits -= 8;
+           cbuf[cnt++] = lastbyte >> lastbits;
+       }
+    }
+    buf[0] = cnt;
+    buf[1] = lastbits;
+    buf[2] = lastbyte;
+    if (lastbits>0) {
+       cbuf[cnt] = lastbyte << (8 - lastbits);
+    }
+}
+
+/*_________________________________________________________________________
+ |
+ | sizeofint - calculate bitsize of an integer
+ |
+ | return the number of bits needed to store an integer with given max size
+ |
+*/
+
+static int sizeofint(const int size) {
+    unsigned int num = 1;
+    int num_of_bits = 0;
+    
+    while (size >= num && num_of_bits < 32) {
+       num_of_bits++;
+       num <<= 1;
+    }
+    return num_of_bits;
+}
+
+/*___________________________________________________________________________
+ |
+ | sizeofints - calculate 'bitsize' of compressed ints
+ |
+ | given the number of small unsigned integers and the maximum value
+ | return the number of bits needed to read or write them with the
+ | routines receiveints and sendints. You need this parameter when
+ | calling these routines. Note that for many calls I can use
+ | the variable 'smallidx' which is exactly the number of bits, and
+ | So I don't need to call 'sizeofints for those calls.
+*/
+
+static int sizeofints( const int num_of_ints, unsigned int sizes[]) {
+    int i, num;
+    unsigned int num_of_bytes, num_of_bits, bytes[32], bytecnt, tmp;
+    num_of_bytes = 1;
+    bytes[0] = 1;
+    num_of_bits = 0;
+    for (i=0; i < num_of_ints; i++) {  
+       tmp = 0;
+       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
+           tmp = bytes[bytecnt] * sizes[i] + tmp;
+           bytes[bytecnt] = tmp & 0xff;
+           tmp >>= 8;
+       }
+       while (tmp != 0) {
+           bytes[bytecnt++] = tmp & 0xff;
+           tmp >>= 8;
+       }
+       num_of_bytes = bytecnt;
+    }
+    num = 1;
+    num_of_bytes--;
+    while (bytes[num_of_bytes] >= num) {
+       num_of_bits++;
+       num *= 2;
+    }
+    return num_of_bits + num_of_bytes * 8;
+
+}
+    
+/*____________________________________________________________________________
+ |
+ | sendints - send a small set of small integers in compressed format
+ |
+ | this routine is used internally by xdr3dfcoord, to send a set of
+ | small integers to the buffer. 
+ | Multiplication with fixed (specified maximum ) sizes is used to get
+ | to one big, multibyte integer. Allthough the routine could be
+ | modified to handle sizes bigger than 16777216, or more than just
+ | a few integers, this is not done, because the gain in compression
+ | isn't worth the effort. Note that overflowing the multiplication
+ | or the byte buffer (32 bytes) is unchecked and causes bad results.
+ |
+ */
+static void sendints(int buf[], const int num_of_ints, const int num_of_bits,
+       unsigned int sizes[], unsigned int nums[]) {
+
+    int i;
+    unsigned int bytes[32], num_of_bytes, bytecnt, tmp;
+
+    tmp = nums[0];
+    num_of_bytes = 0;
+    do {
+       bytes[num_of_bytes++] = tmp & 0xff;
+       tmp >>= 8;
+    } while (tmp != 0);
+
+    for (i = 1; i < num_of_ints; i++) {
+       if (nums[i] >= sizes[i]) {
+           fprintf(stderr,"major breakdown in sendints num %d doesn't "
+                   "match size %d\n", nums[i], sizes[i]);
+           exit(1);
+       }
+       /* use one step multiply */    
+       tmp = nums[i];
+       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
+           tmp = bytes[bytecnt] * sizes[i] + tmp;
+           bytes[bytecnt] = tmp & 0xff;
+           tmp >>= 8;
+       }
+       while (tmp != 0) {
+           bytes[bytecnt++] = tmp & 0xff;
+           tmp >>= 8;
+       }
+       num_of_bytes = bytecnt;
+    }
+    if (num_of_bits >= num_of_bytes * 8) {
+       for (i = 0; i < num_of_bytes; i++) {
+           sendbits(buf, 8, bytes[i]);
+       }
+       sendbits(buf, num_of_bits - num_of_bytes * 8, 0);
+    } else {
+       for (i = 0; i < num_of_bytes-1; i++) {
+           sendbits(buf, 8, bytes[i]);
+       }
+       sendbits(buf, num_of_bits- (num_of_bytes -1) * 8, bytes[i]);
+    }
+}
+
+
+/*___________________________________________________________________________
+ |
+ | receivebits - decode number from buf using specified number of bits
+ | 
+ | extract the number of bits from the array buf and construct an integer
+ | from it. Return that value.
+ |
+*/
+
+static int receivebits(int buf[], int num_of_bits) {
+
+    int cnt, num; 
+    unsigned int lastbits, lastbyte;
+    unsigned char * cbuf;
+    int mask = (1 << num_of_bits) -1;
+
+    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
+    cnt = buf[0];
+    lastbits = (unsigned int) buf[1];
+    lastbyte = (unsigned int) buf[2];
+    
+    num = 0;
+    while (num_of_bits >= 8) {
+       lastbyte = ( lastbyte << 8 ) | cbuf[cnt++];
+       num |=  (lastbyte >> lastbits) << (num_of_bits - 8);
+       num_of_bits -=8;
+    }
+    if (num_of_bits > 0) {
+       if (lastbits < num_of_bits) {
+           lastbits += 8;
+           lastbyte = (lastbyte << 8) | cbuf[cnt++];
+       }
+       lastbits -= num_of_bits;
+       num |= (lastbyte >> lastbits) & ((1 << num_of_bits) -1);
+    }
+    num &= mask;
+    buf[0] = cnt;
+    buf[1] = lastbits;
+    buf[2] = lastbyte;
+    return num; 
+}
+
+/*____________________________________________________________________________
+ |
+ | receiveints - decode 'small' integers from the buf array
+ |
+ | this routine is the inverse from sendints() and decodes the small integers
+ | written to buf by calculating the remainder and doing divisions with
+ | the given sizes[]. You need to specify the total number of bits to be
+ | used from buf in num_of_bits.
+ |
+*/
+
+static void receiveints(int buf[], const int num_of_ints, int num_of_bits,
+       unsigned int sizes[], int nums[]) {
+    int bytes[32];
+    int i, j, num_of_bytes, p, num;
+    
+    bytes[1] = bytes[2] = bytes[3] = 0;
+    num_of_bytes = 0;
+    while (num_of_bits > 8) {
+       bytes[num_of_bytes++] = receivebits(buf, 8);
+       num_of_bits -= 8;
+    }
+    if (num_of_bits > 0) {
+       bytes[num_of_bytes++] = receivebits(buf, num_of_bits);
+    }
+    for (i = num_of_ints-1; i > 0; i--) {
+       num = 0;
+       for (j = num_of_bytes-1; j >=0; j--) {
+           num = (num << 8) | bytes[j];
+           p = num / sizes[i];
+           bytes[j] = p;
+           num = num - p * sizes[i];
+       }
+       nums[i] = num;
+    }
+    nums[0] = bytes[0] | (bytes[1] << 8) | (bytes[2] << 16) | (bytes[3] << 24);
+}
+    
+/*____________________________________________________________________________
+ |
+ | xdr3dfcoord - read or write compressed 3d coordinates to xdr file.
+ |
+ | this routine reads or writes (depending on how you opened the file with
+ | xdropen() ) a large number of 3d coordinates (stored in *fp).
+ | The number of coordinates triplets to write is given by *size. On
+ | read this number may be zero, in which case it reads as many as were written
+ | or it may specify the number if triplets to read (which should match the
+ | number written).
+ | Compression is achieved by first converting all floating numbers to integer
+ | using multiplication by *precision and rounding to the nearest integer.
+ | Then the minimum and maximum value are calculated to determine the range.
+ | The limited range of integers so found, is used to compress the coordinates.
+ | In addition the differences between succesive coordinates is calculated.
+ | If the difference happens to be 'small' then only the difference is saved,
+ | compressing the data even more. The notion of 'small' is changed dynamically
+ | and is enlarged or reduced whenever needed or possible.
+ | Extra compression is achieved in the case of GROMOS and coordinates of
+ | water molecules. GROMOS first writes out the Oxygen position, followed by
+ | the two hydrogens. In order to make the differences smaller (and thereby
+ | compression the data better) the order is changed into first one hydrogen
+ | then the oxygen, followed by the other hydrogen. This is rather special, but
+ | it shouldn't harm in the general case.
+ |
+ */
+int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) {
+    
+
+    static int *ip = NULL;
+    static int oldsize;
+    static int *buf;
+
+    int minint[3], maxint[3], mindiff, *lip, diff;
+    int lint1, lint2, lint3, oldlint1, oldlint2, oldlint3, smallidx;
+    int minidx, maxidx;
+    unsigned sizeint[3], sizesmall[3], bitsizeint[3], size3, *luip;
+    int flag, k;
+    int small, smaller, larger, i, is_small, is_smaller, run, prevrun;
+    float *lfp, lf;
+    int tmp, *thiscoord,  prevcoord[3];
+    unsigned int tmpcoord[30];
+
+    int bufsize, xdrid, lsize;
+    unsigned int bitsize;
+    float inv_precision;
+    int errval = 1;
+
+    /* find out if xdrs is opened for reading or for writing */
+    xdrid = 0;
+    while (xdridptr[xdrid] != xdrs) {
+       xdrid++;
+       if (xdrid >= MAXID) {
+           fprintf(stderr, "xdr error. no open xdr stream\n");
+           exit (1);
+       }
+    }
+    if (xdrmodes[xdrid] == 'w') {
+
+       /* xdrs is open for writing */
+
+       if (xdr_int(xdrs, size) == 0)
+           return 0;
+       size3 = *size * 3;
+       /* when the number of coordinates is small, don't try to compress; just
+        * write them as floats using xdr_vector
+        */
+       if (*size <= 9 ) {
+           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
+               (xdrproc_t)xdr_float));
+       }
+       
+       xdr_float(xdrs, precision);
+       if (ip == NULL) {
+           ip = (int *)malloc(size3 * sizeof(*ip));
+           if (ip == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           bufsize = size3 * 1.2;
+           buf = (int *)malloc(bufsize * sizeof(*buf));
+           if (buf == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           oldsize = *size;
+       } else if (*size > oldsize) {
+           ip = (int *)realloc(ip, size3 * sizeof(*ip));
+           if (ip == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           bufsize = size3 * 1.2;
+           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
+           if (buf == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           oldsize = *size;
+       }
+       /* buf[0-2] are special and do not contain actual data */
+       buf[0] = buf[1] = buf[2] = 0;
+       minint[0] = minint[1] = minint[2] = INT_MAX;
+       maxint[0] = maxint[1] = maxint[2] = INT_MIN;
+       prevrun = -1;
+       lfp = fp;
+       lip = ip;
+       mindiff = INT_MAX;
+       oldlint1 = oldlint2 = oldlint3 = 0;
+       while(lfp < fp + size3 ) {
+           /* find nearest integer */
+           if (*lfp >= 0.0)
+               lf = *lfp * *precision + 0.5;
+           else
+               lf = *lfp * *precision - 0.5;
+           if (fabs(lf) > MAXABS) {
+               /* scaling would cause overflow */
+               errval = 0;
+           }
+           lint1 = lf;
+           if (lint1 < minint[0]) minint[0] = lint1;
+           if (lint1 > maxint[0]) maxint[0] = lint1;
+           *lip++ = lint1;
+           lfp++;
+           if (*lfp >= 0.0)
+               lf = *lfp * *precision + 0.5;
+           else
+               lf = *lfp * *precision - 0.5;
+           if (fabs(lf) > MAXABS) {
+               /* scaling would cause overflow */
+               errval = 0;
+           }
+           lint2 = lf;
+           if (lint2 < minint[1]) minint[1] = lint2;
+           if (lint2 > maxint[1]) maxint[1] = lint2;
+           *lip++ = lint2;
+           lfp++;
+           if (*lfp >= 0.0)
+               lf = *lfp * *precision + 0.5;
+           else
+               lf = *lfp * *precision - 0.5;
+           if (fabs(lf) > MAXABS) {
+               /* scaling would cause overflow */
+               errval = 0;
+           }
+           lint3 = lf;
+           if (lint3 < minint[2]) minint[2] = lint3;
+           if (lint3 > maxint[2]) maxint[2] = lint3;
+           *lip++ = lint3;
+           lfp++;
+           diff = abs(oldlint1-lint1)+abs(oldlint2-lint2)+abs(oldlint3-lint3);
+           if (diff < mindiff && lfp > fp + 3)
+               mindiff = diff;
+           oldlint1 = lint1;
+           oldlint2 = lint2;
+           oldlint3 = lint3;
+       }
+       xdr_int(xdrs, &(minint[0]));
+       xdr_int(xdrs, &(minint[1]));
+       xdr_int(xdrs, &(minint[2]));
+       
+       xdr_int(xdrs, &(maxint[0]));
+       xdr_int(xdrs, &(maxint[1]));
+       xdr_int(xdrs, &(maxint[2]));
+       
+       if ((float)maxint[0] - (float)minint[0] >= MAXABS ||
+               (float)maxint[1] - (float)minint[1] >= MAXABS ||
+               (float)maxint[2] - (float)minint[2] >= MAXABS) {
+           /* turning value in unsigned by subtracting minint
+            * would cause overflow
+            */
+           errval = 0;
+       }
+       sizeint[0] = maxint[0] - minint[0]+1;
+       sizeint[1] = maxint[1] - minint[1]+1;
+       sizeint[2] = maxint[2] - minint[2]+1;
+       
+       /* check if one of the sizes is to big to be multiplied */
+       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
+           bitsizeint[0] = sizeofint(sizeint[0]);
+           bitsizeint[1] = sizeofint(sizeint[1]);
+           bitsizeint[2] = sizeofint(sizeint[2]);
+           bitsize = 0; /* flag the use of large sizes */
+       } else {
+           bitsize = sizeofints(3, sizeint);
+       }
+       lip = ip;
+       luip = (unsigned int *) ip;
+       smallidx = FIRSTIDX;
+       while (smallidx < LASTIDX && magicints[smallidx] < mindiff) {
+           smallidx++;
+       }
+       xdr_int(xdrs, &smallidx);
+       maxidx = MIN(LASTIDX, smallidx + 8) ;
+       minidx = maxidx - 8; /* often this equal smallidx */
+       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
+       small = magicints[smallidx] / 2;
+       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
+       larger = magicints[maxidx] / 2;
+       i = 0;
+       while (i < *size) {
+           is_small = 0;
+           thiscoord = (int *)(luip) + i * 3;
+           if (smallidx < maxidx && i >= 1 &&
+                   abs(thiscoord[0] - prevcoord[0]) < larger &&
+                   abs(thiscoord[1] - prevcoord[1]) < larger &&
+                   abs(thiscoord[2] - prevcoord[2]) < larger) {
+               is_smaller = 1;
+           } else if (smallidx > minidx) {
+               is_smaller = -1;
+           } else {
+               is_smaller = 0;
+           }
+           if (i + 1 < *size) {
+               if (abs(thiscoord[0] - thiscoord[3]) < small &&
+                       abs(thiscoord[1] - thiscoord[4]) < small &&
+                       abs(thiscoord[2] - thiscoord[5]) < small) {
+                   /* interchange first with second atom for better
+                    * compression of water molecules
+                    */
+                   tmp = thiscoord[0]; thiscoord[0] = thiscoord[3];
+                       thiscoord[3] = tmp;
+                   tmp = thiscoord[1]; thiscoord[1] = thiscoord[4];
+                       thiscoord[4] = tmp;
+                   tmp = thiscoord[2]; thiscoord[2] = thiscoord[5];
+                       thiscoord[5] = tmp;
+                   is_small = 1;
+               }
+    
+           }
+           tmpcoord[0] = thiscoord[0] - minint[0];
+           tmpcoord[1] = thiscoord[1] - minint[1];
+           tmpcoord[2] = thiscoord[2] - minint[2];
+           if (bitsize == 0) {
+               sendbits(buf, bitsizeint[0], tmpcoord[0]);
+               sendbits(buf, bitsizeint[1], tmpcoord[1]);
+               sendbits(buf, bitsizeint[2], tmpcoord[2]);
+           } else {
+               sendints(buf, 3, bitsize, sizeint, tmpcoord);
+           }
+           prevcoord[0] = thiscoord[0];
+           prevcoord[1] = thiscoord[1];
+           prevcoord[2] = thiscoord[2];
+           thiscoord = thiscoord + 3;
+           i++;
+           
+           run = 0;
+           if (is_small == 0 && is_smaller == -1)
+               is_smaller = 0;
+           while (is_small && run < 8*3) {
+               if (is_smaller == -1 && (
+                       SQR(thiscoord[0] - prevcoord[0]) +
+                       SQR(thiscoord[1] - prevcoord[1]) +
+                       SQR(thiscoord[2] - prevcoord[2]) >= smaller * smaller)) {
+                   is_smaller = 0;
+               }
+
+               tmpcoord[run++] = thiscoord[0] - prevcoord[0] + small;
+               tmpcoord[run++] = thiscoord[1] - prevcoord[1] + small;
+               tmpcoord[run++] = thiscoord[2] - prevcoord[2] + small;
+               
+               prevcoord[0] = thiscoord[0];
+               prevcoord[1] = thiscoord[1];
+               prevcoord[2] = thiscoord[2];
+
+               i++;
+               thiscoord = thiscoord + 3;
+               is_small = 0;
+               if (i < *size &&
+                       abs(thiscoord[0] - prevcoord[0]) < small &&
+                       abs(thiscoord[1] - prevcoord[1]) < small &&
+                       abs(thiscoord[2] - prevcoord[2]) < small) {
+                   is_small = 1;
+               }
+           }
+           if (run != prevrun || is_smaller != 0) {
+               prevrun = run;
+               sendbits(buf, 1, 1); /* flag the change in run-length */
+               sendbits(buf, 5, run+is_smaller+1);
+           } else {
+               sendbits(buf, 1, 0); /* flag the fact that runlength did not change */
+           }
+           for (k=0; k < run; k+=3) {
+               sendints(buf, 3, smallidx, sizesmall, &tmpcoord[k]);    
+           }
+           if (is_smaller != 0) {
+               smallidx += is_smaller;
+               if (is_smaller < 0) {
+                   small = smaller;
+                   smaller = magicints[smallidx-1] / 2;
+               } else {
+                   smaller = small;
+                   small = magicints[smallidx] / 2;
+               }
+               sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
+           }
+       }
+       if (buf[1] != 0) buf[0]++;;
+       xdr_int(xdrs, &(buf[0])); /* buf[0] holds the length in bytes */
+       return errval * (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]));
+    } else {
+       
+       /* xdrs is open for reading */
+       
+       if (xdr_int(xdrs, &lsize) == 0) 
+           return 0;
+       if (*size != 0 && lsize != *size) {
+           fprintf(stderr, "wrong number of coordinates in xdr3dfcoor; "
+                   "%d arg vs %d in file", *size, lsize);
+       }
+       *size = lsize;
+       size3 = *size * 3;
+       if (*size <= 9) {
+           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
+               (xdrproc_t)xdr_float));
+       }
+       xdr_float(xdrs, precision);
+       if (ip == NULL) {
+           ip = (int *)malloc(size3 * sizeof(*ip));
+           if (ip == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           bufsize = size3 * 1.2;
+           buf = (int *)malloc(bufsize * sizeof(*buf));
+           if (buf == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           oldsize = *size;
+       } else if (*size > oldsize) {
+           ip = (int *)realloc(ip, size3 * sizeof(*ip));
+           if (ip == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           bufsize = size3 * 1.2;
+           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
+           if (buf == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           oldsize = *size;
+       }
+       buf[0] = buf[1] = buf[2] = 0;
+       
+       xdr_int(xdrs, &(minint[0]));
+       xdr_int(xdrs, &(minint[1]));
+       xdr_int(xdrs, &(minint[2]));
+
+       xdr_int(xdrs, &(maxint[0]));
+       xdr_int(xdrs, &(maxint[1]));
+       xdr_int(xdrs, &(maxint[2]));
+               
+       sizeint[0] = maxint[0] - minint[0]+1;
+       sizeint[1] = maxint[1] - minint[1]+1;
+       sizeint[2] = maxint[2] - minint[2]+1;
+       
+       /* check if one of the sizes is to big to be multiplied */
+       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
+           bitsizeint[0] = sizeofint(sizeint[0]);
+           bitsizeint[1] = sizeofint(sizeint[1]);
+           bitsizeint[2] = sizeofint(sizeint[2]);
+           bitsize = 0; /* flag the use of large sizes */
+       } else {
+           bitsize = sizeofints(3, sizeint);
+       }
+       
+       xdr_int(xdrs, &smallidx);
+       maxidx = MIN(LASTIDX, smallidx + 8) ;
+       minidx = maxidx - 8; /* often this equal smallidx */
+       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
+       small = magicints[smallidx] / 2;
+       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
+       larger = magicints[maxidx];
+
+       /* buf[0] holds the length in bytes */
+
+       if (xdr_int(xdrs, &(buf[0])) == 0)
+           return 0;
+       if (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]) == 0)
+           return 0;
+       buf[0] = buf[1] = buf[2] = 0;
+       
+       lfp = fp;
+       inv_precision = 1.0 / * precision;
+       run = 0;
+       i = 0;
+       lip = ip;
+       while ( i < lsize ) {
+           thiscoord = (int *)(lip) + i * 3;
+
+           if (bitsize == 0) {
+               thiscoord[0] = receivebits(buf, bitsizeint[0]);
+               thiscoord[1] = receivebits(buf, bitsizeint[1]);
+               thiscoord[2] = receivebits(buf, bitsizeint[2]);
+           } else {
+               receiveints(buf, 3, bitsize, sizeint, thiscoord);
+           }
+           
+           i++;
+           thiscoord[0] += minint[0];
+           thiscoord[1] += minint[1];
+           thiscoord[2] += minint[2];
+           
+           prevcoord[0] = thiscoord[0];
+           prevcoord[1] = thiscoord[1];
+           prevcoord[2] = thiscoord[2];
+           
+          
+           flag = receivebits(buf, 1);
+           is_smaller = 0;
+           if (flag == 1) {
+               run = receivebits(buf, 5);
+               is_smaller = run % 3;
+               run -= is_smaller;
+               is_smaller--;
+           }
+           if (run > 0) {
+               thiscoord += 3;
+               for (k = 0; k < run; k+=3) {
+                   receiveints(buf, 3, smallidx, sizesmall, thiscoord);
+                   i++;
+                   thiscoord[0] += prevcoord[0] - small;
+                   thiscoord[1] += prevcoord[1] - small;
+                   thiscoord[2] += prevcoord[2] - small;
+                   if (k == 0) {
+                       /* interchange first with second atom for better
+                        * compression of water molecules
+                        */
+                       tmp = thiscoord[0]; thiscoord[0] = prevcoord[0];
+                               prevcoord[0] = tmp;
+                       tmp = thiscoord[1]; thiscoord[1] = prevcoord[1];
+                               prevcoord[1] = tmp;
+                       tmp = thiscoord[2]; thiscoord[2] = prevcoord[2];
+                               prevcoord[2] = tmp;
+                       *lfp++ = prevcoord[0] * inv_precision;
+                       *lfp++ = prevcoord[1] * inv_precision;
+                       *lfp++ = prevcoord[2] * inv_precision;
+                   } else {
+                       prevcoord[0] = thiscoord[0];
+                       prevcoord[1] = thiscoord[1];
+                       prevcoord[2] = thiscoord[2];
+                   }
+                   *lfp++ = thiscoord[0] * inv_precision;
+                   *lfp++ = thiscoord[1] * inv_precision;
+                   *lfp++ = thiscoord[2] * inv_precision;
+               }
+           } else {
+               *lfp++ = thiscoord[0] * inv_precision;
+               *lfp++ = thiscoord[1] * inv_precision;
+               *lfp++ = thiscoord[2] * inv_precision;          
+           }
+           smallidx += is_smaller;
+           if (is_smaller < 0) {
+               small = smaller;
+               if (smallidx > FIRSTIDX) {
+                   smaller = magicints[smallidx - 1] /2;
+               } else {
+                   smaller = 0;
+               }
+           } else if (is_smaller > 0) {
+               smaller = small;
+               small = magicints[smallidx] / 2;
+           }
+           sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
+       }
+    }
+    return 1;
+}
+
+
+   
diff --git a/source/lib/xdrf-Argonne/libxdrf.m4.org b/source/lib/xdrf-Argonne/libxdrf.m4.org
new file mode 100644 (file)
index 0000000..b14b374
--- /dev/null
@@ -0,0 +1,1230 @@
+/*____________________________________________________________________________
+ |
+ | libxdrf - portable fortran interface to xdr. some xdr routines
+ |          are C routines for compressed coordinates
+ |
+ | version 1.1
+ |
+ | This collection of routines is intended to write and read
+ | data in a portable way to a file, so data written on one type
+ | of machine can be read back on a different type.
+ |
+ | all fortran routines use an integer 'xdrid', which is an id to the
+ | current xdr file, and is set by xdrfopen.
+ | most routines have in integer 'ret' which is the return value.
+ | The value of 'ret' is zero on failure, and most of the time one
+ | on succes.
+ |
+ | There are three routines useful for C users:
+ |  xdropen(), xdrclose(), xdr3dfcoord().
+ | The first two replace xdrstdio_create and xdr_destroy, and *must* be
+ | used when you plan to use xdr3dfcoord(). (they are also a bit
+ | easier to interface). For writing data other than compressed coordinates 
+ | you should use the standard C xdr routines (see xdr man page)
+ |
+ | xdrfopen(xdrid, filename, mode, ret)
+ |     character *(*) filename
+ |     character *(*) mode
+ |
+ |     this will open the file with the given filename (string)
+ |     and the given mode, it returns an id in xdrid, which is
+ |     to be used in all other calls to xdrf routines.
+ |     mode is 'w' to create, or update an file, for all other
+ |     values of mode the file is opened for reading
+ |
+ |     you need to call xdrfclose to flush the output and close
+ |     the file.
+ |     Note that you should not use xdrstdio_create, which comes with the
+ |     standard xdr library
+ |
+ | xdrfclose(xdrid, ret)
+ |     flush the data to the file, and closes the file;
+ |     You should not use xdr_destroy (which comes standard with
+ |     the xdr libraries.
+ |
+ | xdrfbool(xdrid, bp, ret)
+ |     integer pb
+ |
+ |     This filter produces values of either 1 or 0    
+ |
+ | xdrfchar(xdrid, cp, ret)
+ |     character cp
+ |
+ |     filter that translate between characters and their xdr representation
+ |     Note that the characters in not compressed and occupies 4 bytes.
+ |
+ | xdrfdouble(xdrid, dp, ret)
+ |     double dp
+ |
+ |     read/write a double.
+ |
+ | xdrffloat(xdrid, fp, ret)
+ |     float fp
+ |
+ |     read/write a float.
+ |
+ | xdrfint(xdrid, ip, ret)
+ |     integer ip
+ |
+ |     read/write integer.
+ |
+ | xdrflong(xdrid, lp, ret)
+ |     integer lp
+ |
+ |     this routine has a possible portablility problem due to 64 bits longs.
+ |
+ | xdrfshort(xdrid, sp, ret)
+ |     integer *2 sp
+ |
+ | xdrfstring(xdrid, sp, maxsize, ret)
+ |     character *(*)
+ |     integer maxsize
+ |
+ |     read/write a string, with maximum length given by maxsize
+ |
+ | xdrfwrapstring(xdris, sp, ret)
+ |     character *(*)
+ |
+ |     read/write a string (it is the same as xdrfstring accept that it finds
+ |     the stringlength itself.
+ |
+ | xdrfvector(xdrid, cp, size, xdrfproc, ret)
+ |     character *(*)
+ |     integer size
+ |     external xdrfproc
+ |
+ |     read/write an array pointed to by cp, with number of elements
+ |     defined by 'size'. the routine 'xdrfproc' is the name
+ |     of one of the above routines to read/write data (like xdrfdouble)
+ |     In contrast with the c-version you don't need to specify the
+ |     byte size of an element.
+ |     xdrfstring is not allowed here (it is in the c version)
+ |     
+ | xdrf3dfcoord(xdrid, fp, size, precision, ret)
+ |     real (*) fp
+ |     real precision
+ |     integer size
+ |
+ |     this is *NOT* a standard xdr routine. I named it this way, because
+ |     it invites people to use the other xdr routines.
+ |     It is introduced to store specifically 3d coordinates of molecules
+ |     (as found in molecular dynamics) and it writes it in a compressed way.
+ |     It starts by multiplying all numbers by precision and
+ |     rounding the result to integer. effectively converting
+ |     all floating point numbers to fixed point.
+ |     it uses an algorithm for compression that is optimized for
+ |     molecular data, but could be used for other 3d coordinates
+ |     as well. There is subtantial overhead involved, so call this
+ |     routine only if you have a large number of coordinates to read/write
+ |
+ | ________________________________________________________________________
+ |
+ | Below are the routines to be used by C programmers. Use the 'normal'
+ | xdr routines to write integers, floats, etc (see man xdr)   
+ |
+ | int xdropen(XDR *xdrs, const char *filename, const char *type)
+ |     This will open the file with the given filename and the 
+ |     given mode. You should pass it an allocated XDR struct
+ |     in xdrs, to be used in all other calls to xdr routines.
+ |     Mode is 'w' to create, or update an file, and for all 
+ |     other values of mode the file is opened for reading. 
+ |     You need to call xdrclose to flush the output and close
+ |     the file.
+ |
+ |     Note that you should not use xdrstdio_create, which
+ |     comes with the standard xdr library.
+ |
+ | int xdrclose(XDR *xdrs)
+ |     Flush the data to the file, and close the file;
+ |     You should not use xdr_destroy (which comes standard
+ |     with the xdr libraries).
+ |      
+ | int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision)
+ |     This is \fInot\fR a standard xdr routine. I named it this 
+ |     way, because it invites people to use the other xdr 
+ |     routines.
+ |
+ |     (c) 1995 Frans van Hoesel, hoesel@chem.rug.nl
+*/     
+
+
+#include <limits.h>
+#include <malloc.h>
+#include <math.h>
+#include <rpc/rpc.h>
+#include <rpc/xdr.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include "xdrf.h"
+
+int ftocstr(char *, int, char *, int);
+int ctofstr(char *, int, char *);
+
+#define MAXID 20
+static FILE *xdrfiles[MAXID];
+static XDR *xdridptr[MAXID];
+static char xdrmodes[MAXID];
+static unsigned int cnt;
+
+typedef void (* FUNCTION(xdrfproc)) (int *, void *, int *);
+
+void
+FUNCTION(xdrfbool) ARGS(`xdrid, pb, ret')
+int *xdrid, *ret;
+int *pb;
+{
+       *ret = xdr_bool(xdridptr[*xdrid], (bool_t *) pb);
+       cnt += sizeof(int);
+}
+
+void
+FUNCTION(xdrfchar) ARGS(`xdrid, cp, ret')
+int *xdrid, *ret;
+char *cp;
+{
+       *ret = xdr_char(xdridptr[*xdrid], cp);
+       cnt += sizeof(char);
+}
+
+void
+FUNCTION(xdrfdouble) ARGS(`xdrid, dp, ret')
+int *xdrid, *ret;
+double *dp;
+{
+       *ret = xdr_double(xdridptr[*xdrid], dp);
+       cnt += sizeof(double);
+}
+
+void
+FUNCTION(xdrffloat) ARGS(`xdrid, fp, ret')
+int *xdrid, *ret;
+float *fp;
+{
+       *ret = xdr_float(xdridptr[*xdrid], fp);
+       cnt += sizeof(float);
+}
+
+void
+FUNCTION(xdrfint) ARGS(`xdrid, ip, ret')
+int *xdrid, *ret;
+int *ip;
+{
+       *ret = xdr_int(xdridptr[*xdrid], ip);
+       cnt += sizeof(int);
+}
+
+void
+FUNCTION(xdrflong) ARGS(`xdrid, lp, ret')
+int *xdrid, *ret;
+long *lp;
+{
+       *ret = xdr_long(xdridptr[*xdrid], lp);
+       cnt += sizeof(long);
+}
+
+void
+FUNCTION(xdrfshort) ARGS(`xdrid, sp, ret')
+int *xdrid, *ret;
+short *sp;
+{
+       *ret = xdr_short(xdridptr[*xdrid], sp);
+       cnt += sizeof(sp);
+}
+
+void
+FUNCTION(xdrfuchar) ARGS(`xdrid, ucp, ret')
+int *xdrid, *ret;
+char *ucp;
+{
+       *ret = xdr_u_char(xdridptr[*xdrid], ucp);
+       cnt += sizeof(char);
+}
+
+void
+FUNCTION(xdrfulong) ARGS(`xdrid, ulp, ret')
+int *xdrid, *ret;
+unsigned long *ulp;
+{
+       *ret = xdr_u_long(xdridptr[*xdrid], ulp);
+       cnt += sizeof(unsigned long);
+}
+
+void
+FUNCTION(xdrfushort) ARGS(`xdrid, usp, ret')
+int *xdrid, *ret;
+unsigned short *usp;
+{
+       *ret = xdr_u_short(xdridptr[*xdrid], usp);
+       cnt += sizeof(unsigned short);
+}
+
+void 
+FUNCTION(xdrf3dfcoord) ARGS(`xdrid, fp, size, precision, ret')
+int *xdrid, *ret;
+float *fp;
+int *size;
+float *precision;
+{
+       *ret = xdr3dfcoord(xdridptr[*xdrid], fp, size, precision);
+}
+
+void
+FUNCTION(xdrfstring) ARGS(`xdrid, STRING_ARG(sp), maxsize, ret')
+int *xdrid, *ret;
+STRING_ARG_DECL(sp);
+int *maxsize;
+{
+       char *tsp;
+
+       tsp = (char*) malloc(((STRING_LEN(sp)) + 1) * sizeof(char));
+       if (tsp == NULL) {
+           *ret = -1;
+           return;
+       }
+       if (ftocstr(tsp, *maxsize+1, STRING_PTR(sp), STRING_LEN(sp))) {
+           *ret = -1;
+           free(tsp);
+           return;
+       }
+       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int) *maxsize);
+       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
+       cnt += *maxsize;
+       free(tsp);
+}
+
+void
+FUNCTION(xdrfwrapstring) ARGS(`xdrid,  STRING_ARG(sp), ret')
+int *xdrid, *ret;
+STRING_ARG_DECL(sp);
+{
+       char *tsp;
+       int maxsize;
+       maxsize = (STRING_LEN(sp)) + 1;
+       tsp = (char*) malloc(maxsize * sizeof(char));
+       if (tsp == NULL) {
+           *ret = -1;
+           return;
+       }
+       if (ftocstr(tsp, maxsize, STRING_PTR(sp), STRING_LEN(sp))) {
+           *ret = -1;
+           free(tsp);
+           return;
+       }
+       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int)maxsize);
+       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
+       cnt += maxsize;
+       free(tsp);
+}
+
+void
+FUNCTION(xdrfopaque) ARGS(`xdrid, cp, ccnt, ret')
+int *xdrid, *ret;
+caddr_t *cp;
+int *ccnt;
+{
+       *ret = xdr_opaque(xdridptr[*xdrid], (caddr_t)*cp, (u_int)*ccnt);
+       cnt += *ccnt;
+}
+
+void
+FUNCTION(xdrfsetpos) ARGS(`xdrid, pos, ret')
+int *xdrid, *ret;
+int *pos;
+{
+       *ret = xdr_setpos(xdridptr[*xdrid], (u_int) *pos);
+}
+
+void
+FUNCTION(xdrf) ARGS(`xdrid, pos')
+int *xdrid, *pos;
+{
+       *pos = xdr_getpos(xdridptr[*xdrid]);
+}
+
+void
+FUNCTION(xdrfvector) ARGS(`xdrid, cp, size, elproc, ret')
+int *xdrid, *ret;
+char *cp;
+int *size;
+FUNCTION(xdrfproc) elproc;
+{
+       int lcnt;
+       cnt = 0;
+       for (lcnt = 0; lcnt < *size; lcnt++) {
+               elproc(xdrid, (cp+cnt) , ret);
+       }
+}
+
+
+void
+FUNCTION(xdrfclose) ARGS(`xdrid, ret')
+int *xdrid;
+int *ret;
+{
+       *ret = xdrclose(xdridptr[*xdrid]);
+       cnt = 0;
+}
+
+void
+FUNCTION(xdrfopen) ARGS(`xdrid,  STRING_ARG(fp), STRING_ARG(mode), ret')
+int *xdrid;
+STRING_ARG_DECL(fp);
+STRING_ARG_DECL(mode);
+int *ret;
+{
+       char fname[512];
+       char fmode[3];
+
+       if (ftocstr(fname, sizeof(fname), STRING_PTR(fp), STRING_LEN(fp))) {
+               *ret = 0;
+       }
+       if (ftocstr(fmode, sizeof(fmode), STRING_PTR(mode),
+                       STRING_LEN(mode))) {
+               *ret = 0;
+       }
+
+       *xdrid = xdropen(NULL, fname, fmode);
+       if (*xdrid == 0)
+               *ret = 0;
+       else 
+               *ret = 1;       
+}
+
+/*___________________________________________________________________________
+ |
+ | what follows are the C routines for opening, closing xdr streams
+ | and the routine to read/write compressed coordinates together
+ | with some routines to assist in this task (those are marked
+ | static and cannot be called from user programs)
+*/
+#define MAXABS INT_MAX-2
+
+#ifndef MIN
+#define MIN(x,y) ((x) < (y) ? (x):(y))
+#endif
+#ifndef MAX
+#define MAX(x,y) ((x) > (y) ? (x):(y))
+#endif
+#ifndef SQR
+#define SQR(x) ((x)*(x))
+#endif
+static int magicints[] = {
+    0, 0, 0, 0, 0, 0, 0, 0, 0,
+    8, 10, 12, 16, 20, 25, 32, 40, 50, 64,
+    80, 101, 128, 161, 203, 256, 322, 406, 512, 645,
+    812, 1024, 1290, 1625, 2048, 2580, 3250, 4096, 5060, 6501,
+    8192, 10321, 13003, 16384, 20642, 26007, 32768, 41285, 52015, 65536,
+    82570, 104031, 131072, 165140, 208063, 262144, 330280, 416127, 524287, 660561,
+    832255, 1048576, 1321122, 1664510, 2097152, 2642245, 3329021, 4194304, 5284491, 6658042,
+    8388607, 10568983, 13316085, 16777216 };
+
+#define FIRSTIDX 9
+/* note that magicints[FIRSTIDX-1] == 0 */
+#define LASTIDX (sizeof(magicints) / sizeof(*magicints))
+
+
+/*__________________________________________________________________________
+ |
+ | xdropen - open xdr file
+ |
+ | This versions differs from xdrstdio_create, because I need to know
+ | the state of the file (read or write) so I can use xdr3dfcoord
+ | in eigther read or write mode, and the file descriptor
+ | so I can close the file (something xdr_destroy doesn't do).
+ |
+*/
+
+int xdropen(XDR *xdrs, const char *filename, const char *type) {
+    static int init_done = 0;
+    enum xdr_op lmode;
+    int xdrid;
+    
+    if (init_done == 0) {
+       for (xdrid = 1; xdrid < MAXID; xdrid++) {
+           xdridptr[xdrid] = NULL;
+       }
+       init_done = 1;
+    }
+    xdrid = 1;
+    while (xdrid < MAXID && xdridptr[xdrid] != NULL) {
+       xdrid++;
+    }
+    if (xdrid == MAXID) {
+       return 0;
+    }
+    if (*type == 'w' || *type == 'W') {
+           type = "w+";
+           lmode = XDR_ENCODE;
+    } else {
+           type = "r";
+           lmode = XDR_DECODE;
+    }
+    xdrfiles[xdrid] = fopen(filename, type);
+    if (xdrfiles[xdrid] == NULL) {
+       xdrs = NULL;
+       return 0;
+    }
+    xdrmodes[xdrid] = *type;
+    /* next test isn't usefull in the case of C language
+     * but is used for the Fortran interface
+     * (C users are expected to pass the address of an already allocated
+     * XDR staructure)
+     */
+    if (xdrs == NULL) {
+       xdridptr[xdrid] = (XDR *) malloc(sizeof(XDR));
+       xdrstdio_create(xdridptr[xdrid], xdrfiles[xdrid], lmode);
+    } else {
+       xdridptr[xdrid] = xdrs;
+       xdrstdio_create(xdrs, xdrfiles[xdrid], lmode);
+    }
+    return xdrid;
+}
+
+/*_________________________________________________________________________
+ |
+ | xdrclose - close a xdr file
+ |
+ | This will flush the xdr buffers, and destroy the xdr stream.
+ | It also closes the associated file descriptor (this is *not*
+ | done by xdr_destroy).
+ |
+*/
+int xdrclose(XDR *xdrs) {
+    int xdrid;
+    
+    if (xdrs == NULL) {
+       fprintf(stderr, "xdrclose: passed a NULL pointer\n");
+       exit(1);
+    }
+    for (xdrid = 1; xdrid < MAXID; xdrid++) {
+       if (xdridptr[xdrid] == xdrs) {
+           
+           xdr_destroy(xdrs);
+           fclose(xdrfiles[xdrid]);
+           xdridptr[xdrid] = NULL;
+           return 1;
+       }
+    } 
+    fprintf(stderr, "xdrclose: no such open xdr file\n");
+    exit(1);
+    
+}
+
+/*____________________________________________________________________________
+ |
+ | sendbits - encode num into buf using the specified number of bits
+ |
+ | This routines appends the value of num to the bits already present in
+ | the array buf. You need to give it the number of bits to use and you
+ | better make sure that this number of bits is enough to hold the value
+ | Also num must be positive.
+ |
+*/
+
+static void sendbits(int buf[], int num_of_bits, int num) {
+    
+    unsigned int cnt, lastbyte;
+    int lastbits;
+    unsigned char * cbuf;
+    
+    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
+    cnt = (unsigned int) buf[0];
+    lastbits = buf[1];
+    lastbyte =(unsigned int) buf[2];
+    while (num_of_bits >= 8) {
+       lastbyte = (lastbyte << 8) | ((num >> (num_of_bits -8)) /* & 0xff*/);
+       cbuf[cnt++] = lastbyte >> lastbits;
+       num_of_bits -= 8;
+    }
+    if (num_of_bits > 0) {
+       lastbyte = (lastbyte << num_of_bits) | num;
+       lastbits += num_of_bits;
+       if (lastbits >= 8) {
+           lastbits -= 8;
+           cbuf[cnt++] = lastbyte >> lastbits;
+       }
+    }
+    buf[0] = cnt;
+    buf[1] = lastbits;
+    buf[2] = lastbyte;
+    if (lastbits>0) {
+       cbuf[cnt] = lastbyte << (8 - lastbits);
+    }
+}
+
+/*_________________________________________________________________________
+ |
+ | sizeofint - calculate bitsize of an integer
+ |
+ | return the number of bits needed to store an integer with given max size
+ |
+*/
+
+static int sizeofint(const int size) {
+    unsigned int num = 1;
+    int num_of_bits = 0;
+    
+    while (size >= num && num_of_bits < 32) {
+       num_of_bits++;
+       num <<= 1;
+    }
+    return num_of_bits;
+}
+
+/*___________________________________________________________________________
+ |
+ | sizeofints - calculate 'bitsize' of compressed ints
+ |
+ | given the number of small unsigned integers and the maximum value
+ | return the number of bits needed to read or write them with the
+ | routines receiveints and sendints. You need this parameter when
+ | calling these routines. Note that for many calls I can use
+ | the variable 'smallidx' which is exactly the number of bits, and
+ | So I don't need to call 'sizeofints for those calls.
+*/
+
+static int sizeofints( const int num_of_ints, unsigned int sizes[]) {
+    int i, num;
+    unsigned int num_of_bytes, num_of_bits, bytes[32], bytecnt, tmp;
+    num_of_bytes = 1;
+    bytes[0] = 1;
+    num_of_bits = 0;
+    for (i=0; i < num_of_ints; i++) {  
+       tmp = 0;
+       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
+           tmp = bytes[bytecnt] * sizes[i] + tmp;
+           bytes[bytecnt] = tmp & 0xff;
+           tmp >>= 8;
+       }
+       while (tmp != 0) {
+           bytes[bytecnt++] = tmp & 0xff;
+           tmp >>= 8;
+       }
+       num_of_bytes = bytecnt;
+    }
+    num = 1;
+    num_of_bytes--;
+    while (bytes[num_of_bytes] >= num) {
+       num_of_bits++;
+       num *= 2;
+    }
+    return num_of_bits + num_of_bytes * 8;
+
+}
+    
+/*____________________________________________________________________________
+ |
+ | sendints - send a small set of small integers in compressed format
+ |
+ | this routine is used internally by xdr3dfcoord, to send a set of
+ | small integers to the buffer. 
+ | Multiplication with fixed (specified maximum ) sizes is used to get
+ | to one big, multibyte integer. Allthough the routine could be
+ | modified to handle sizes bigger than 16777216, or more than just
+ | a few integers, this is not done, because the gain in compression
+ | isn't worth the effort. Note that overflowing the multiplication
+ | or the byte buffer (32 bytes) is unchecked and causes bad results.
+ |
+ */
+static void sendints(int buf[], const int num_of_ints, const int num_of_bits,
+       unsigned int sizes[], unsigned int nums[]) {
+
+    int i;
+    unsigned int bytes[32], num_of_bytes, bytecnt, tmp;
+
+    tmp = nums[0];
+    num_of_bytes = 0;
+    do {
+       bytes[num_of_bytes++] = tmp & 0xff;
+       tmp >>= 8;
+    } while (tmp != 0);
+
+    for (i = 1; i < num_of_ints; i++) {
+       if (nums[i] >= sizes[i]) {
+           fprintf(stderr,"major breakdown in sendints num %d doesn't "
+                   "match size %d\n", nums[i], sizes[i]);
+           exit(1);
+       }
+       /* use one step multiply */    
+       tmp = nums[i];
+       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
+           tmp = bytes[bytecnt] * sizes[i] + tmp;
+           bytes[bytecnt] = tmp & 0xff;
+           tmp >>= 8;
+       }
+       while (tmp != 0) {
+           bytes[bytecnt++] = tmp & 0xff;
+           tmp >>= 8;
+       }
+       num_of_bytes = bytecnt;
+    }
+    if (num_of_bits >= num_of_bytes * 8) {
+       for (i = 0; i < num_of_bytes; i++) {
+           sendbits(buf, 8, bytes[i]);
+       }
+       sendbits(buf, num_of_bits - num_of_bytes * 8, 0);
+    } else {
+       for (i = 0; i < num_of_bytes-1; i++) {
+           sendbits(buf, 8, bytes[i]);
+       }
+       sendbits(buf, num_of_bits- (num_of_bytes -1) * 8, bytes[i]);
+    }
+}
+
+
+/*___________________________________________________________________________
+ |
+ | receivebits - decode number from buf using specified number of bits
+ | 
+ | extract the number of bits from the array buf and construct an integer
+ | from it. Return that value.
+ |
+*/
+
+static int receivebits(int buf[], int num_of_bits) {
+
+    int cnt, num; 
+    unsigned int lastbits, lastbyte;
+    unsigned char * cbuf;
+    int mask = (1 << num_of_bits) -1;
+
+    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
+    cnt = buf[0];
+    lastbits = (unsigned int) buf[1];
+    lastbyte = (unsigned int) buf[2];
+    
+    num = 0;
+    while (num_of_bits >= 8) {
+       lastbyte = ( lastbyte << 8 ) | cbuf[cnt++];
+       num |=  (lastbyte >> lastbits) << (num_of_bits - 8);
+       num_of_bits -=8;
+    }
+    if (num_of_bits > 0) {
+       if (lastbits < num_of_bits) {
+           lastbits += 8;
+           lastbyte = (lastbyte << 8) | cbuf[cnt++];
+       }
+       lastbits -= num_of_bits;
+       num |= (lastbyte >> lastbits) & ((1 << num_of_bits) -1);
+    }
+    num &= mask;
+    buf[0] = cnt;
+    buf[1] = lastbits;
+    buf[2] = lastbyte;
+    return num; 
+}
+
+/*____________________________________________________________________________
+ |
+ | receiveints - decode 'small' integers from the buf array
+ |
+ | this routine is the inverse from sendints() and decodes the small integers
+ | written to buf by calculating the remainder and doing divisions with
+ | the given sizes[]. You need to specify the total number of bits to be
+ | used from buf in num_of_bits.
+ |
+*/
+
+static void receiveints(int buf[], const int num_of_ints, int num_of_bits,
+       unsigned int sizes[], int nums[]) {
+    int bytes[32];
+    int i, j, num_of_bytes, p, num;
+    
+    bytes[1] = bytes[2] = bytes[3] = 0;
+    num_of_bytes = 0;
+    while (num_of_bits > 8) {
+       bytes[num_of_bytes++] = receivebits(buf, 8);
+       num_of_bits -= 8;
+    }
+    if (num_of_bits > 0) {
+       bytes[num_of_bytes++] = receivebits(buf, num_of_bits);
+    }
+    for (i = num_of_ints-1; i > 0; i--) {
+       num = 0;
+       for (j = num_of_bytes-1; j >=0; j--) {
+           num = (num << 8) | bytes[j];
+           p = num / sizes[i];
+           bytes[j] = p;
+           num = num - p * sizes[i];
+       }
+       nums[i] = num;
+    }
+    nums[0] = bytes[0] | (bytes[1] << 8) | (bytes[2] << 16) | (bytes[3] << 24);
+}
+    
+/*____________________________________________________________________________
+ |
+ | xdr3dfcoord - read or write compressed 3d coordinates to xdr file.
+ |
+ | this routine reads or writes (depending on how you opened the file with
+ | xdropen() ) a large number of 3d coordinates (stored in *fp).
+ | The number of coordinates triplets to write is given by *size. On
+ | read this number may be zero, in which case it reads as many as were written
+ | or it may specify the number if triplets to read (which should match the
+ | number written).
+ | Compression is achieved by first converting all floating numbers to integer
+ | using multiplication by *precision and rounding to the nearest integer.
+ | Then the minimum and maximum value are calculated to determine the range.
+ | The limited range of integers so found, is used to compress the coordinates.
+ | In addition the differences between succesive coordinates is calculated.
+ | If the difference happens to be 'small' then only the difference is saved,
+ | compressing the data even more. The notion of 'small' is changed dynamically
+ | and is enlarged or reduced whenever needed or possible.
+ | Extra compression is achieved in the case of GROMOS and coordinates of
+ | water molecules. GROMOS first writes out the Oxygen position, followed by
+ | the two hydrogens. In order to make the differences smaller (and thereby
+ | compression the data better) the order is changed into first one hydrogen
+ | then the oxygen, followed by the other hydrogen. This is rather special, but
+ | it shouldn't harm in the general case.
+ |
+ */
+int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) {
+    
+
+    static int *ip = NULL;
+    static int oldsize;
+    static int *buf;
+
+    int minint[3], maxint[3], mindiff, *lip, diff;
+    int lint1, lint2, lint3, oldlint1, oldlint2, oldlint3, smallidx;
+    int minidx, maxidx;
+    unsigned sizeint[3], sizesmall[3], bitsizeint[3], size3, *luip;
+    int flag, k;
+    int small, smaller, larger, i, is_small, is_smaller, run, prevrun;
+    float *lfp, lf;
+    int tmp, *thiscoord,  prevcoord[3];
+    unsigned int tmpcoord[30];
+
+    int bufsize, xdrid, lsize;
+    unsigned int bitsize;
+    float inv_precision;
+    int errval = 1;
+
+    /* find out if xdrs is opened for reading or for writing */
+    xdrid = 0;
+    while (xdridptr[xdrid] != xdrs) {
+       xdrid++;
+       if (xdrid >= MAXID) {
+           fprintf(stderr, "xdr error. no open xdr stream\n");
+           exit (1);
+       }
+    }
+    if (xdrmodes[xdrid] == 'w') {
+
+       /* xdrs is open for writing */
+
+       if (xdr_int(xdrs, size) == 0)
+           return 0;
+       size3 = *size * 3;
+       /* when the number of coordinates is small, don't try to compress; just
+        * write them as floats using xdr_vector
+        */
+       if (*size <= 9 ) {
+           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
+               (xdrproc_t)xdr_float));
+       }
+       
+       xdr_float(xdrs, precision);
+       if (ip == NULL) {
+           ip = (int *)malloc(size3 * sizeof(*ip));
+           if (ip == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           bufsize = size3 * 1.2;
+           buf = (int *)malloc(bufsize * sizeof(*buf));
+           if (buf == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           oldsize = *size;
+       } else if (*size > oldsize) {
+           ip = (int *)realloc(ip, size3 * sizeof(*ip));
+           if (ip == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           bufsize = size3 * 1.2;
+           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
+           if (buf == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           oldsize = *size;
+       }
+       /* buf[0-2] are special and do not contain actual data */
+       buf[0] = buf[1] = buf[2] = 0;
+       minint[0] = minint[1] = minint[2] = INT_MAX;
+       maxint[0] = maxint[1] = maxint[2] = INT_MIN;
+       prevrun = -1;
+       lfp = fp;
+       lip = ip;
+       mindiff = INT_MAX;
+       oldlint1 = oldlint2 = oldlint3 = 0;
+       while(lfp < fp + size3 ) {
+           /* find nearest integer */
+           if (*lfp >= 0.0)
+               lf = *lfp * *precision + 0.5;
+           else
+               lf = *lfp * *precision - 0.5;
+           if (fabs(lf) > MAXABS) {
+               /* scaling would cause overflow */
+               errval = 0;
+           }
+           lint1 = lf;
+           if (lint1 < minint[0]) minint[0] = lint1;
+           if (lint1 > maxint[0]) maxint[0] = lint1;
+           *lip++ = lint1;
+           lfp++;
+           if (*lfp >= 0.0)
+               lf = *lfp * *precision + 0.5;
+           else
+               lf = *lfp * *precision - 0.5;
+           if (fabs(lf) > MAXABS) {
+               /* scaling would cause overflow */
+               errval = 0;
+           }
+           lint2 = lf;
+           if (lint2 < minint[1]) minint[1] = lint2;
+           if (lint2 > maxint[1]) maxint[1] = lint2;
+           *lip++ = lint2;
+           lfp++;
+           if (*lfp >= 0.0)
+               lf = *lfp * *precision + 0.5;
+           else
+               lf = *lfp * *precision - 0.5;
+           if (fabs(lf) > MAXABS) {
+               /* scaling would cause overflow */
+               errval = 0;
+           }
+           lint3 = lf;
+           if (lint3 < minint[2]) minint[2] = lint3;
+           if (lint3 > maxint[2]) maxint[2] = lint3;
+           *lip++ = lint3;
+           lfp++;
+           diff = abs(oldlint1-lint1)+abs(oldlint2-lint2)+abs(oldlint3-lint3);
+           if (diff < mindiff && lfp > fp + 3)
+               mindiff = diff;
+           oldlint1 = lint1;
+           oldlint2 = lint2;
+           oldlint3 = lint3;
+       }
+       xdr_int(xdrs, &(minint[0]));
+       xdr_int(xdrs, &(minint[1]));
+       xdr_int(xdrs, &(minint[2]));
+       
+       xdr_int(xdrs, &(maxint[0]));
+       xdr_int(xdrs, &(maxint[1]));
+       xdr_int(xdrs, &(maxint[2]));
+       
+       if ((float)maxint[0] - (float)minint[0] >= MAXABS ||
+               (float)maxint[1] - (float)minint[1] >= MAXABS ||
+               (float)maxint[2] - (float)minint[2] >= MAXABS) {
+           /* turning value in unsigned by subtracting minint
+            * would cause overflow
+            */
+           errval = 0;
+       }
+       sizeint[0] = maxint[0] - minint[0]+1;
+       sizeint[1] = maxint[1] - minint[1]+1;
+       sizeint[2] = maxint[2] - minint[2]+1;
+       
+       /* check if one of the sizes is to big to be multiplied */
+       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
+           bitsizeint[0] = sizeofint(sizeint[0]);
+           bitsizeint[1] = sizeofint(sizeint[1]);
+           bitsizeint[2] = sizeofint(sizeint[2]);
+           bitsize = 0; /* flag the use of large sizes */
+       } else {
+           bitsize = sizeofints(3, sizeint);
+       }
+       lip = ip;
+       luip = (unsigned int *) ip;
+       smallidx = FIRSTIDX;
+       while (smallidx < LASTIDX && magicints[smallidx] < mindiff) {
+           smallidx++;
+       }
+       xdr_int(xdrs, &smallidx);
+       maxidx = MIN(LASTIDX, smallidx + 8) ;
+       minidx = maxidx - 8; /* often this equal smallidx */
+       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
+       small = magicints[smallidx] / 2;
+       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
+       larger = magicints[maxidx] / 2;
+       i = 0;
+       while (i < *size) {
+           is_small = 0;
+           thiscoord = (int *)(luip) + i * 3;
+           if (smallidx < maxidx && i >= 1 &&
+                   abs(thiscoord[0] - prevcoord[0]) < larger &&
+                   abs(thiscoord[1] - prevcoord[1]) < larger &&
+                   abs(thiscoord[2] - prevcoord[2]) < larger) {
+               is_smaller = 1;
+           } else if (smallidx > minidx) {
+               is_smaller = -1;
+           } else {
+               is_smaller = 0;
+           }
+           if (i + 1 < *size) {
+               if (abs(thiscoord[0] - thiscoord[3]) < small &&
+                       abs(thiscoord[1] - thiscoord[4]) < small &&
+                       abs(thiscoord[2] - thiscoord[5]) < small) {
+                   /* interchange first with second atom for better
+                    * compression of water molecules
+                    */
+                   tmp = thiscoord[0]; thiscoord[0] = thiscoord[3];
+                       thiscoord[3] = tmp;
+                   tmp = thiscoord[1]; thiscoord[1] = thiscoord[4];
+                       thiscoord[4] = tmp;
+                   tmp = thiscoord[2]; thiscoord[2] = thiscoord[5];
+                       thiscoord[5] = tmp;
+                   is_small = 1;
+               }
+    
+           }
+           tmpcoord[0] = thiscoord[0] - minint[0];
+           tmpcoord[1] = thiscoord[1] - minint[1];
+           tmpcoord[2] = thiscoord[2] - minint[2];
+           if (bitsize == 0) {
+               sendbits(buf, bitsizeint[0], tmpcoord[0]);
+               sendbits(buf, bitsizeint[1], tmpcoord[1]);
+               sendbits(buf, bitsizeint[2], tmpcoord[2]);
+           } else {
+               sendints(buf, 3, bitsize, sizeint, tmpcoord);
+           }
+           prevcoord[0] = thiscoord[0];
+           prevcoord[1] = thiscoord[1];
+           prevcoord[2] = thiscoord[2];
+           thiscoord = thiscoord + 3;
+           i++;
+           
+           run = 0;
+           if (is_small == 0 && is_smaller == -1)
+               is_smaller = 0;
+           while (is_small && run < 8*3) {
+               if (is_smaller == -1 && (
+                       SQR(thiscoord[0] - prevcoord[0]) +
+                       SQR(thiscoord[1] - prevcoord[1]) +
+                       SQR(thiscoord[2] - prevcoord[2]) >= smaller * smaller)) {
+                   is_smaller = 0;
+               }
+
+               tmpcoord[run++] = thiscoord[0] - prevcoord[0] + small;
+               tmpcoord[run++] = thiscoord[1] - prevcoord[1] + small;
+               tmpcoord[run++] = thiscoord[2] - prevcoord[2] + small;
+               
+               prevcoord[0] = thiscoord[0];
+               prevcoord[1] = thiscoord[1];
+               prevcoord[2] = thiscoord[2];
+
+               i++;
+               thiscoord = thiscoord + 3;
+               is_small = 0;
+               if (i < *size &&
+                       abs(thiscoord[0] - prevcoord[0]) < small &&
+                       abs(thiscoord[1] - prevcoord[1]) < small &&
+                       abs(thiscoord[2] - prevcoord[2]) < small) {
+                   is_small = 1;
+               }
+           }
+           if (run != prevrun || is_smaller != 0) {
+               prevrun = run;
+               sendbits(buf, 1, 1); /* flag the change in run-length */
+               sendbits(buf, 5, run+is_smaller+1);
+           } else {
+               sendbits(buf, 1, 0); /* flag the fact that runlength did not change */
+           }
+           for (k=0; k < run; k+=3) {
+               sendints(buf, 3, smallidx, sizesmall, &tmpcoord[k]);    
+           }
+           if (is_smaller != 0) {
+               smallidx += is_smaller;
+               if (is_smaller < 0) {
+                   small = smaller;
+                   smaller = magicints[smallidx-1] / 2;
+               } else {
+                   smaller = small;
+                   small = magicints[smallidx] / 2;
+               }
+               sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
+           }
+       }
+       if (buf[1] != 0) buf[0]++;;
+       xdr_int(xdrs, &(buf[0])); /* buf[0] holds the length in bytes */
+       return errval * (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]));
+    } else {
+       
+       /* xdrs is open for reading */
+       
+       if (xdr_int(xdrs, &lsize) == 0) 
+           return 0;
+       if (*size != 0 && lsize != *size) {
+           fprintf(stderr, "wrong number of coordinates in xdr3dfcoor; "
+                   "%d arg vs %d in file", *size, lsize);
+       }
+       *size = lsize;
+       size3 = *size * 3;
+       if (*size <= 9) {
+           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
+               (xdrproc_t)xdr_float));
+       }
+       xdr_float(xdrs, precision);
+       if (ip == NULL) {
+           ip = (int *)malloc(size3 * sizeof(*ip));
+           if (ip == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           bufsize = size3 * 1.2;
+           buf = (int *)malloc(bufsize * sizeof(*buf));
+           if (buf == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           oldsize = *size;
+       } else if (*size > oldsize) {
+           ip = (int *)realloc(ip, size3 * sizeof(*ip));
+           if (ip == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           bufsize = size3 * 1.2;
+           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
+           if (buf == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           oldsize = *size;
+       }
+       buf[0] = buf[1] = buf[2] = 0;
+       
+       xdr_int(xdrs, &(minint[0]));
+       xdr_int(xdrs, &(minint[1]));
+       xdr_int(xdrs, &(minint[2]));
+
+       xdr_int(xdrs, &(maxint[0]));
+       xdr_int(xdrs, &(maxint[1]));
+       xdr_int(xdrs, &(maxint[2]));
+               
+       sizeint[0] = maxint[0] - minint[0]+1;
+       sizeint[1] = maxint[1] - minint[1]+1;
+       sizeint[2] = maxint[2] - minint[2]+1;
+       
+       /* check if one of the sizes is to big to be multiplied */
+       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
+           bitsizeint[0] = sizeofint(sizeint[0]);
+           bitsizeint[1] = sizeofint(sizeint[1]);
+           bitsizeint[2] = sizeofint(sizeint[2]);
+           bitsize = 0; /* flag the use of large sizes */
+       } else {
+           bitsize = sizeofints(3, sizeint);
+       }
+       
+       xdr_int(xdrs, &smallidx);
+       maxidx = MIN(LASTIDX, smallidx + 8) ;
+       minidx = maxidx - 8; /* often this equal smallidx */
+       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
+       small = magicints[smallidx] / 2;
+       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
+       larger = magicints[maxidx];
+
+       /* buf[0] holds the length in bytes */
+
+       if (xdr_int(xdrs, &(buf[0])) == 0)
+           return 0;
+       if (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]) == 0)
+           return 0;
+       buf[0] = buf[1] = buf[2] = 0;
+       
+       lfp = fp;
+       inv_precision = 1.0 / * precision;
+       run = 0;
+       i = 0;
+       lip = ip;
+       while ( i < lsize ) {
+           thiscoord = (int *)(lip) + i * 3;
+
+           if (bitsize == 0) {
+               thiscoord[0] = receivebits(buf, bitsizeint[0]);
+               thiscoord[1] = receivebits(buf, bitsizeint[1]);
+               thiscoord[2] = receivebits(buf, bitsizeint[2]);
+           } else {
+               receiveints(buf, 3, bitsize, sizeint, thiscoord);
+           }
+           
+           i++;
+           thiscoord[0] += minint[0];
+           thiscoord[1] += minint[1];
+           thiscoord[2] += minint[2];
+           
+           prevcoord[0] = thiscoord[0];
+           prevcoord[1] = thiscoord[1];
+           prevcoord[2] = thiscoord[2];
+           
+          
+           flag = receivebits(buf, 1);
+           is_smaller = 0;
+           if (flag == 1) {
+               run = receivebits(buf, 5);
+               is_smaller = run % 3;
+               run -= is_smaller;
+               is_smaller--;
+           }
+           if (run > 0) {
+               thiscoord += 3;
+               for (k = 0; k < run; k+=3) {
+                   receiveints(buf, 3, smallidx, sizesmall, thiscoord);
+                   i++;
+                   thiscoord[0] += prevcoord[0] - small;
+                   thiscoord[1] += prevcoord[1] - small;
+                   thiscoord[2] += prevcoord[2] - small;
+                   if (k == 0) {
+                       /* interchange first with second atom for better
+                        * compression of water molecules
+                        */
+                       tmp = thiscoord[0]; thiscoord[0] = prevcoord[0];
+                               prevcoord[0] = tmp;
+                       tmp = thiscoord[1]; thiscoord[1] = prevcoord[1];
+                               prevcoord[1] = tmp;
+                       tmp = thiscoord[2]; thiscoord[2] = prevcoord[2];
+                               prevcoord[2] = tmp;
+                       *lfp++ = prevcoord[0] * inv_precision;
+                       *lfp++ = prevcoord[1] * inv_precision;
+                       *lfp++ = prevcoord[2] * inv_precision;
+                   } else {
+                       prevcoord[0] = thiscoord[0];
+                       prevcoord[1] = thiscoord[1];
+                       prevcoord[2] = thiscoord[2];
+                   }
+                   *lfp++ = thiscoord[0] * inv_precision;
+                   *lfp++ = thiscoord[1] * inv_precision;
+                   *lfp++ = thiscoord[2] * inv_precision;
+               }
+           } else {
+               *lfp++ = thiscoord[0] * inv_precision;
+               *lfp++ = thiscoord[1] * inv_precision;
+               *lfp++ = thiscoord[2] * inv_precision;          
+           }
+           smallidx += is_smaller;
+           if (is_smaller < 0) {
+               small = smaller;
+               if (smallidx > FIRSTIDX) {
+                   smaller = magicints[smallidx - 1] /2;
+               } else {
+                   smaller = 0;
+               }
+           } else if (is_smaller > 0) {
+               smaller = small;
+               small = magicints[smallidx] / 2;
+           }
+           sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
+       }
+    }
+    return 1;
+}
+
+
+   
diff --git a/source/lib/xdrf-Argonne/types.h b/source/lib/xdrf-Argonne/types.h
new file mode 100644 (file)
index 0000000..871f3fd
--- /dev/null
@@ -0,0 +1,99 @@
+/*
+ * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
+ * unrestricted use provided that this legend is included on all tape
+ * media and as a part of the software program in whole or part.  Users
+ * may copy or modify Sun RPC without charge, but are not authorized
+ * to license or distribute it to anyone else except as part of a product or
+ * program developed by the user.
+ *
+ * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
+ * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
+ *
+ * Sun RPC is provided with no support and without any obligation on the
+ * part of Sun Microsystems, Inc. to assist in its use, correction,
+ * modification or enhancement.
+ *
+ * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
+ * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
+ * OR ANY PART THEREOF.
+ *
+ * In no event will Sun Microsystems, Inc. be liable for any lost revenue
+ * or profits or other special, indirect and consequential damages, even if
+ * Sun has been advised of the possibility of such damages.
+ *
+ * Sun Microsystems, Inc.
+ * 2550 Garcia Avenue
+ * Mountain View, California  94043
+ */
+/* fixincludes should not add extern "C" to this file */
+/*
+ * Rpc additions to <sys/types.h>
+ */
+#ifndef _RPC_TYPES_H
+#define _RPC_TYPES_H 1
+
+typedef int bool_t;
+typedef int enum_t;
+/* This needs to be changed to uint32_t in the future */
+typedef unsigned long rpcprog_t;
+typedef unsigned long rpcvers_t;
+typedef unsigned long rpcproc_t;
+typedef unsigned long rpcprot_t;
+typedef unsigned long rpcport_t;
+
+#define        __dontcare__    -1
+
+#ifndef FALSE
+#      define  FALSE   (0)
+#endif
+
+#ifndef TRUE
+#      define  TRUE    (1)
+#endif
+
+#ifndef NULL
+#      define  NULL 0
+#endif
+
+#include <stdlib.h>            /* For malloc decl.  */
+#define mem_alloc(bsize)       malloc(bsize)
+/*
+ * XXX: This must not use the second argument, or code in xdr_array.c needs
+ * to be modified.
+ */
+#define mem_free(ptr, bsize)   free(ptr)
+
+#ifndef makedev /* ie, we haven't already included it */
+#include <sys/types.h>
+#endif
+
+#ifndef __u_char_defined
+typedef __u_char u_char;
+typedef __u_short u_short;
+typedef __u_int u_int;
+typedef __u_long u_long;
+typedef __quad_t quad_t;
+typedef __u_quad_t u_quad_t;
+typedef __fsid_t fsid_t;
+# define __u_char_defined
+#endif
+#ifndef __daddr_t_defined
+typedef __daddr_t daddr_t;
+typedef __caddr_t caddr_t;
+# define __daddr_t_defined
+#endif
+
+#include <sys/time.h>
+#include <sys/param.h>
+
+#include <netinet/in.h>
+
+#ifndef INADDR_LOOPBACK
+#define       INADDR_LOOPBACK         (u_long)0x7F000001
+#endif
+#ifndef MAXHOSTNAMELEN
+#define        MAXHOSTNAMELEN  64
+#endif
+
+#endif /* rpc/types.h */
diff --git a/source/lib/xdrf-Argonne/underscore.m4 b/source/lib/xdrf-Argonne/underscore.m4
new file mode 100644 (file)
index 0000000..4d620a0
--- /dev/null
@@ -0,0 +1,19 @@
+divert(-1)
+undefine(`len')
+#
+# append an underscore to FORTRAN function names
+#
+define(`FUNCTION',`$1_')
+#
+# FORTRAN character strings are passed as follows:
+# a pointer to the base of the string is passed in the normal
+# argument list, and the length is passed by value as an extra
+# argument, after all of the other arguments.
+#
+define(`ARGS',`($1`'undivert(1))')
+define(`SAVE',`divert(1)$1`'divert(0)')
+define(`STRING_ARG',`$1_ptr`'SAVE(`, $1_len')')
+define(`STRING_ARG_DECL',`char * $1_ptr; int $1_len')
+define(`STRING_LEN',`$1_len')
+define(`STRING_PTR',`$1_ptr')
+divert(0)
diff --git a/source/lib/xdrf-Argonne/xdr.c b/source/lib/xdrf-Argonne/xdr.c
new file mode 100644 (file)
index 0000000..33b8544
--- /dev/null
@@ -0,0 +1,752 @@
+# define INTUSE(name) name
+# define INTDEF(name)
+/* @(#)xdr.c   2.1 88/07/29 4.0 RPCSRC */
+/*
+ * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
+ * unrestricted use provided that this legend is included on all tape
+ * media and as a part of the software program in whole or part.  Users
+ * may copy or modify Sun RPC without charge, but are not authorized
+ * to license or distribute it to anyone else except as part of a product or
+ * program developed by the user.
+ *
+ * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
+ * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
+ *
+ * Sun RPC is provided with no support and without any obligation on the
+ * part of Sun Microsystems, Inc. to assist in its use, correction,
+ * modification or enhancement.
+ *
+ * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
+ * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
+ * OR ANY PART THEREOF.
+ *
+ * In no event will Sun Microsystems, Inc. be liable for any lost revenue
+ * or profits or other special, indirect and consequential damages, even if
+ * Sun has been advised of the possibility of such damages.
+ *
+ * Sun Microsystems, Inc.
+ * 2550 Garcia Avenue
+ * Mountain View, California  94043
+ */
+#if !defined(lint) && defined(SCCSIDS)
+static char sccsid[] = "@(#)xdr.c 1.35 87/08/12";
+#endif
+
+/*
+ * xdr.c, Generic XDR routines implementation.
+ *
+ * Copyright (C) 1986, Sun Microsystems, Inc.
+ *
+ * These are the "generic" xdr routines used to serialize and de-serialize
+ * most common data items.  See xdr.h for more info on the interface to
+ * xdr.
+ */
+
+#include <stdio.h>
+#include <limits.h>
+#include <string.h>
+#include <libintl.h>
+
+#include "types.h"
+#include "xdr.h"
+
+#ifdef USE_IN_LIBIO
+# include <wchar.h>
+#endif
+
+/*
+ * constants specific to the xdr "protocol"
+ */
+#define XDR_FALSE      ((long) 0)
+#define XDR_TRUE       ((long) 1)
+#define LASTUNSIGNED   ((u_int) 0-1)
+
+/*
+ * for unit alignment
+ */
+static const char xdr_zero[BYTES_PER_XDR_UNIT] = {0, 0, 0, 0};
+
+/*
+ * Free a data structure using XDR
+ * Not a filter, but a convenient utility nonetheless
+ */
+void
+xdr_free (xdrproc_t proc, char *objp)
+{
+  XDR x;
+
+  x.x_op = XDR_FREE;
+  (*proc) (&x, objp);
+}
+
+/*
+ * XDR nothing
+ */
+bool_t
+xdr_void (void)
+{
+  return TRUE;
+}
+INTDEF(xdr_void)
+
+/*
+ * XDR integers
+ */
+bool_t
+xdr_int (XDR *xdrs, int *ip)
+{
+
+#if INT_MAX < LONG_MAX
+  long l;
+
+  switch (xdrs->x_op)
+    {
+    case XDR_ENCODE:
+      l = (long) *ip;
+      return XDR_PUTLONG (xdrs, &l);
+
+    case XDR_DECODE:
+      if (!XDR_GETLONG (xdrs, &l))
+       {
+         return FALSE;
+       }
+      *ip = (int) l;
+    case XDR_FREE:
+      return TRUE;
+    }
+  return FALSE;
+#elif INT_MAX == LONG_MAX
+  return INTUSE(xdr_long) (xdrs, (long *) ip);
+#elif INT_MAX == SHRT_MAX
+  return INTUSE(xdr_short) (xdrs, (short *) ip);
+#else
+#error unexpected integer sizes in_xdr_int()
+#endif
+}
+INTDEF(xdr_int)
+
+/*
+ * XDR unsigned integers
+ */
+bool_t
+xdr_u_int (XDR *xdrs, u_int *up)
+{
+#if UINT_MAX < ULONG_MAX
+  long l;
+
+  switch (xdrs->x_op)
+    {
+    case XDR_ENCODE:
+      l = (u_long) * up;
+      return XDR_PUTLONG (xdrs, &l);
+
+    case XDR_DECODE:
+      if (!XDR_GETLONG (xdrs, &l))
+       {
+         return FALSE;
+       }
+      *up = (u_int) (u_long) l;
+    case XDR_FREE:
+      return TRUE;
+    }
+  return FALSE;
+#elif UINT_MAX == ULONG_MAX
+  return INTUSE(xdr_u_long) (xdrs, (u_long *) up);
+#elif UINT_MAX == USHRT_MAX
+  return INTUSE(xdr_short) (xdrs, (short *) up);
+#else
+#error unexpected integer sizes in_xdr_u_int()
+#endif
+}
+INTDEF(xdr_u_int)
+
+/*
+ * XDR long integers
+ * The definition of xdr_long() is kept for backward
+ * compatibility. Instead xdr_int() should be used.
+ */
+bool_t
+xdr_long (XDR *xdrs, long *lp)
+{
+
+  if (xdrs->x_op == XDR_ENCODE
+      && (sizeof (int32_t) == sizeof (long)
+         || (int32_t) *lp == *lp))
+    return XDR_PUTLONG (xdrs, lp);
+
+  if (xdrs->x_op == XDR_DECODE)
+    return XDR_GETLONG (xdrs, lp);
+
+  if (xdrs->x_op == XDR_FREE)
+    return TRUE;
+
+  return FALSE;
+}
+INTDEF(xdr_long)
+
+/*
+ * XDR unsigned long integers
+ * The definition of xdr_u_long() is kept for backward
+ * compatibility. Instead xdr_u_int() should be used.
+ */
+bool_t
+xdr_u_long (XDR *xdrs, u_long *ulp)
+{
+  switch (xdrs->x_op)
+    {
+    case XDR_DECODE:
+      {
+       long int tmp;
+
+       if (XDR_GETLONG (xdrs, &tmp) == FALSE)
+         return FALSE;
+
+       *ulp = (uint32_t) tmp;
+       return TRUE;
+      }
+
+    case XDR_ENCODE:
+      if (sizeof (uint32_t) != sizeof (u_long)
+         && (uint32_t) *ulp != *ulp)
+       return FALSE;
+
+      return XDR_PUTLONG (xdrs, (long *) ulp);
+
+    case XDR_FREE:
+      return TRUE;
+    }
+  return FALSE;
+}
+INTDEF(xdr_u_long)
+
+/*
+ * XDR hyper integers
+ * same as xdr_u_hyper - open coded to save a proc call!
+ */
+bool_t
+xdr_hyper (XDR *xdrs, quad_t *llp)
+{
+  long int t1, t2;
+
+  if (xdrs->x_op == XDR_ENCODE)
+    {
+      t1 = (long) ((*llp) >> 32);
+      t2 = (long) (*llp);
+      return (XDR_PUTLONG(xdrs, &t1) && XDR_PUTLONG(xdrs, &t2));
+    }
+
+  if (xdrs->x_op == XDR_DECODE)
+    {
+      if (!XDR_GETLONG(xdrs, &t1) || !XDR_GETLONG(xdrs, &t2))
+       return FALSE;
+      *llp = ((quad_t) t1) << 32;
+      *llp |= (uint32_t) t2;
+      return TRUE;
+    }
+
+  if (xdrs->x_op == XDR_FREE)
+    return TRUE;
+
+  return FALSE;
+}
+INTDEF(xdr_hyper)
+
+
+/*
+ * XDR hyper integers
+ * same as xdr_hyper - open coded to save a proc call!
+ */
+bool_t
+xdr_u_hyper (XDR *xdrs, u_quad_t *ullp)
+{
+  long int t1, t2;
+
+  if (xdrs->x_op == XDR_ENCODE)
+    {
+      t1 = (unsigned long) ((*ullp) >> 32);
+      t2 = (unsigned long) (*ullp);
+      return (XDR_PUTLONG(xdrs, &t1) && XDR_PUTLONG(xdrs, &t2));
+    }
+
+  if (xdrs->x_op == XDR_DECODE)
+    {
+      if (!XDR_GETLONG(xdrs, &t1) || !XDR_GETLONG(xdrs, &t2))
+       return FALSE;
+      *ullp = ((u_quad_t) t1) << 32;
+      *ullp |= (uint32_t) t2;
+      return TRUE;
+    }
+
+  if (xdrs->x_op == XDR_FREE)
+    return TRUE;
+
+  return FALSE;
+}
+INTDEF(xdr_u_hyper)
+
+bool_t
+xdr_longlong_t (XDR *xdrs, quad_t *llp)
+{
+  return INTUSE(xdr_hyper) (xdrs, llp);
+}
+
+bool_t
+xdr_u_longlong_t (XDR *xdrs, u_quad_t *ullp)
+{
+  return INTUSE(xdr_u_hyper) (xdrs, ullp);
+}
+
+/*
+ * XDR short integers
+ */
+bool_t
+xdr_short (XDR *xdrs, short *sp)
+{
+  long l;
+
+  switch (xdrs->x_op)
+    {
+    case XDR_ENCODE:
+      l = (long) *sp;
+      return XDR_PUTLONG (xdrs, &l);
+
+    case XDR_DECODE:
+      if (!XDR_GETLONG (xdrs, &l))
+       {
+         return FALSE;
+       }
+      *sp = (short) l;
+      return TRUE;
+
+    case XDR_FREE:
+      return TRUE;
+    }
+  return FALSE;
+}
+INTDEF(xdr_short)
+
+/*
+ * XDR unsigned short integers
+ */
+bool_t
+xdr_u_short (XDR *xdrs, u_short *usp)
+{
+  long l;
+
+  switch (xdrs->x_op)
+    {
+    case XDR_ENCODE:
+      l = (u_long) * usp;
+      return XDR_PUTLONG (xdrs, &l);
+
+    case XDR_DECODE:
+      if (!XDR_GETLONG (xdrs, &l))
+       {
+         return FALSE;
+       }
+      *usp = (u_short) (u_long) l;
+      return TRUE;
+
+    case XDR_FREE:
+      return TRUE;
+    }
+  return FALSE;
+}
+INTDEF(xdr_u_short)
+
+
+/*
+ * XDR a char
+ */
+bool_t
+xdr_char (XDR *xdrs, char *cp)
+{
+  int i;
+
+  i = (*cp);
+  if (!INTUSE(xdr_int) (xdrs, &i))
+    {
+      return FALSE;
+    }
+  *cp = i;
+  return TRUE;
+}
+
+/*
+ * XDR an unsigned char
+ */
+bool_t
+xdr_u_char (XDR *xdrs, u_char *cp)
+{
+  u_int u;
+
+  u = (*cp);
+  if (!INTUSE(xdr_u_int) (xdrs, &u))
+    {
+      return FALSE;
+    }
+  *cp = u;
+  return TRUE;
+}
+
+/*
+ * XDR booleans
+ */
+bool_t
+xdr_bool (XDR *xdrs, bool_t *bp)
+{
+  long lb;
+
+  switch (xdrs->x_op)
+    {
+    case XDR_ENCODE:
+      lb = *bp ? XDR_TRUE : XDR_FALSE;
+      return XDR_PUTLONG (xdrs, &lb);
+
+    case XDR_DECODE:
+      if (!XDR_GETLONG (xdrs, &lb))
+       {
+         return FALSE;
+       }
+      *bp = (lb == XDR_FALSE) ? FALSE : TRUE;
+      return TRUE;
+
+    case XDR_FREE:
+      return TRUE;
+    }
+  return FALSE;
+}
+INTDEF(xdr_bool)
+
+/*
+ * XDR enumerations
+ */
+bool_t
+xdr_enum (XDR *xdrs, enum_t *ep)
+{
+  enum sizecheck
+    {
+      SIZEVAL
+    };                         /* used to find the size of an enum */
+
+  /*
+   * enums are treated as ints
+   */
+  if (sizeof (enum sizecheck) == 4)
+    {
+#if INT_MAX < LONG_MAX
+      long l;
+
+      switch (xdrs->x_op)
+       {
+       case XDR_ENCODE:
+         l = *ep;
+         return XDR_PUTLONG (xdrs, &l);
+
+       case XDR_DECODE:
+         if (!XDR_GETLONG (xdrs, &l))
+           {
+             return FALSE;
+           }
+         *ep = l;
+       case XDR_FREE:
+         return TRUE;
+
+       }
+      return FALSE;
+#else
+      return INTUSE(xdr_long) (xdrs, (long *) ep);
+#endif
+    }
+  else if (sizeof (enum sizecheck) == sizeof (short))
+    {
+      return INTUSE(xdr_short) (xdrs, (short *) ep);
+    }
+  else
+    {
+      return FALSE;
+    }
+}
+INTDEF(xdr_enum)
+
+/*
+ * XDR opaque data
+ * Allows the specification of a fixed size sequence of opaque bytes.
+ * cp points to the opaque object and cnt gives the byte length.
+ */
+bool_t
+xdr_opaque (XDR *xdrs, caddr_t cp, u_int cnt)
+{
+  u_int rndup;
+  static char crud[BYTES_PER_XDR_UNIT];
+
+  /*
+   * if no data we are done
+   */
+  if (cnt == 0)
+    return TRUE;
+
+  /*
+   * round byte count to full xdr units
+   */
+  rndup = cnt % BYTES_PER_XDR_UNIT;
+  if (rndup > 0)
+    rndup = BYTES_PER_XDR_UNIT - rndup;
+
+  switch (xdrs->x_op)
+    {
+    case XDR_DECODE:
+      if (!XDR_GETBYTES (xdrs, cp, cnt))
+       {
+         return FALSE;
+       }
+      if (rndup == 0)
+       return TRUE;
+      return XDR_GETBYTES (xdrs, (caddr_t)crud, rndup);
+
+    case XDR_ENCODE:
+      if (!XDR_PUTBYTES (xdrs, cp, cnt))
+       {
+         return FALSE;
+       }
+      if (rndup == 0)
+       return TRUE;
+      return XDR_PUTBYTES (xdrs, xdr_zero, rndup);
+
+    case XDR_FREE:
+      return TRUE;
+    }
+  return FALSE;
+}
+INTDEF(xdr_opaque)
+
+/*
+ * XDR counted bytes
+ * *cpp is a pointer to the bytes, *sizep is the count.
+ * If *cpp is NULL maxsize bytes are allocated
+ */
+bool_t
+xdr_bytes (xdrs, cpp, sizep, maxsize)
+     XDR *xdrs;
+     char **cpp;
+     u_int *sizep;
+     u_int maxsize;
+{
+  char *sp = *cpp;     /* sp is the actual string pointer */
+  u_int nodesize;
+
+  /*
+   * first deal with the length since xdr bytes are counted
+   */
+  if (!INTUSE(xdr_u_int) (xdrs, sizep))
+    {
+      return FALSE;
+    }
+  nodesize = *sizep;
+  if ((nodesize > maxsize) && (xdrs->x_op != XDR_FREE))
+    {
+      return FALSE;
+    }
+
+  /*
+   * now deal with the actual bytes
+   */
+  switch (xdrs->x_op)
+    {
+    case XDR_DECODE:
+      if (nodesize == 0)
+       {
+         return TRUE;
+       }
+      if (sp == NULL)
+       {
+         *cpp = sp = (char *) mem_alloc (nodesize);
+       }
+      if (sp == NULL)
+       {
+         fprintf (NULL, "%s", "xdr_bytes: out of memory\n");
+         return FALSE;
+       }
+      /* fall into ... */
+
+    case XDR_ENCODE:
+      return INTUSE(xdr_opaque) (xdrs, sp, nodesize);
+
+    case XDR_FREE:
+      if (sp != NULL)
+       {
+         mem_free (sp, nodesize);
+         *cpp = NULL;
+       }
+      return TRUE;
+    }
+  return FALSE;
+}
+INTDEF(xdr_bytes)
+
+/*
+ * Implemented here due to commonality of the object.
+ */
+bool_t
+xdr_netobj (xdrs, np)
+     XDR *xdrs;
+     struct netobj *np;
+{
+
+  return INTUSE(xdr_bytes) (xdrs, &np->n_bytes, &np->n_len, MAX_NETOBJ_SZ);
+}
+INTDEF(xdr_netobj)
+
+/*
+ * XDR a discriminated union
+ * Support routine for discriminated unions.
+ * You create an array of xdrdiscrim structures, terminated with
+ * an entry with a null procedure pointer.  The routine gets
+ * the discriminant value and then searches the array of xdrdiscrims
+ * looking for that value.  It calls the procedure given in the xdrdiscrim
+ * to handle the discriminant.  If there is no specific routine a default
+ * routine may be called.
+ * If there is no specific or default routine an error is returned.
+ */
+bool_t
+xdr_union (xdrs, dscmp, unp, choices, dfault)
+     XDR *xdrs;
+     enum_t *dscmp;            /* enum to decide which arm to work on */
+     char *unp;                        /* the union itself */
+     const struct xdr_discrim *choices;        /* [value, xdr proc] for each arm */
+     xdrproc_t dfault;         /* default xdr routine */
+{
+  enum_t dscm;
+
+  /*
+   * we deal with the discriminator;  it's an enum
+   */
+  if (!INTUSE(xdr_enum) (xdrs, dscmp))
+    {
+      return FALSE;
+    }
+  dscm = *dscmp;
+
+  /*
+   * search choices for a value that matches the discriminator.
+   * if we find one, execute the xdr routine for that value.
+   */
+  for (; choices->proc != NULL_xdrproc_t; choices++)
+    {
+      if (choices->value == dscm)
+       return (*(choices->proc)) (xdrs, unp, LASTUNSIGNED);
+    }
+
+  /*
+   * no match - execute the default xdr routine if there is one
+   */
+  return ((dfault == NULL_xdrproc_t) ? FALSE :
+         (*dfault) (xdrs, unp, LASTUNSIGNED));
+}
+INTDEF(xdr_union)
+
+
+/*
+ * Non-portable xdr primitives.
+ * Care should be taken when moving these routines to new architectures.
+ */
+
+
+/*
+ * XDR null terminated ASCII strings
+ * xdr_string deals with "C strings" - arrays of bytes that are
+ * terminated by a NULL character.  The parameter cpp references a
+ * pointer to storage; If the pointer is null, then the necessary
+ * storage is allocated.  The last parameter is the max allowed length
+ * of the string as specified by a protocol.
+ */
+bool_t
+xdr_string (xdrs, cpp, maxsize)
+     XDR *xdrs;
+     char **cpp;
+     u_int maxsize;
+{
+  char *sp = *cpp;     /* sp is the actual string pointer */
+  u_int size;
+  u_int nodesize;
+
+  /*
+   * first deal with the length since xdr strings are counted-strings
+   */
+  switch (xdrs->x_op)
+    {
+    case XDR_FREE:
+      if (sp == NULL)
+       {
+         return TRUE;          /* already free */
+       }
+      /* fall through... */
+    case XDR_ENCODE:
+      if (sp == NULL)
+       return FALSE;
+      size = strlen (sp);
+      break;
+    case XDR_DECODE:
+      break;
+    }
+  if (!INTUSE(xdr_u_int) (xdrs, &size))
+    {
+      return FALSE;
+    }
+  if (size > maxsize)
+    {
+      return FALSE;
+    }
+  nodesize = size + 1;
+  if (nodesize == 0)
+    {
+      /* This means an overflow.  It a bug in the caller which
+        provided a too large maxsize but nevertheless catch it
+        here.  */
+      return FALSE;
+    }
+
+  /*
+   * now deal with the actual bytes
+   */
+  switch (xdrs->x_op)
+    {
+    case XDR_DECODE:
+      if (sp == NULL)
+       *cpp = sp = (char *) mem_alloc (nodesize);
+      if (sp == NULL)
+       {
+         fprintf (NULL, "%s", "xdr_string: out of memory\n");
+         return FALSE;
+       }
+      sp[size] = 0;
+      /* fall into ... */
+
+    case XDR_ENCODE:
+      return INTUSE(xdr_opaque) (xdrs, sp, size);
+
+    case XDR_FREE:
+      mem_free (sp, nodesize);
+      *cpp = NULL;
+      return TRUE;
+    }
+  return FALSE;
+}
+INTDEF(xdr_string)
+
+/*
+ * Wrapper for xdr_string that can be called directly from
+ * routines like clnt_call
+ */
+bool_t
+xdr_wrapstring (xdrs, cpp)
+     XDR *xdrs;
+     char **cpp;
+{
+  if (INTUSE(xdr_string) (xdrs, cpp, LASTUNSIGNED))
+    {
+      return TRUE;
+    }
+  return FALSE;
+}
diff --git a/source/lib/xdrf-Argonne/xdr.h b/source/lib/xdrf-Argonne/xdr.h
new file mode 100644 (file)
index 0000000..2602ad9
--- /dev/null
@@ -0,0 +1,379 @@
+/*
+ * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
+ * unrestricted use provided that this legend is included on all tape
+ * media and as a part of the software program in whole or part.  Users
+ * may copy or modify Sun RPC without charge, but are not authorized
+ * to license or distribute it to anyone else except as part of a product or
+ * program developed by the user.
+ *
+ * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
+ * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
+ *
+ * Sun RPC is provided with no support and without any obligation on the
+ * part of Sun Microsystems, Inc. to assist in its use, correction,
+ * modification or enhancement.
+ *
+ * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
+ * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
+ * OR ANY PART THEREOF.
+ *
+ * In no event will Sun Microsystems, Inc. be liable for any lost revenue
+ * or profits or other special, indirect and consequential damages, even if
+ * Sun has been advised of the possibility of such damages.
+ *
+ * Sun Microsystems, Inc.
+ * 2550 Garcia Avenue
+ * Mountain View, California  94043
+ */
+
+/*
+ * xdr.h, External Data Representation Serialization Routines.
+ *
+ * Copyright (C) 1984, Sun Microsystems, Inc.
+ */
+
+#ifndef _RPC_XDR_H
+#define _RPC_XDR_H 1
+
+#include <features.h>
+#include <sys/types.h>
+#include "types.h"
+
+/* We need FILE.  */
+#include <stdio.h>
+
+__BEGIN_DECLS
+
+/*
+ * XDR provides a conventional way for converting between C data
+ * types and an external bit-string representation.  Library supplied
+ * routines provide for the conversion on built-in C data types.  These
+ * routines and utility routines defined here are used to help implement
+ * a type encode/decode routine for each user-defined type.
+ *
+ * Each data type provides a single procedure which takes two arguments:
+ *
+ *      bool_t
+ *      xdrproc(xdrs, argresp)
+ *              XDR *xdrs;
+ *              <type> *argresp;
+ *
+ * xdrs is an instance of a XDR handle, to which or from which the data
+ * type is to be converted.  argresp is a pointer to the structure to be
+ * converted.  The XDR handle contains an operation field which indicates
+ * which of the operations (ENCODE, DECODE * or FREE) is to be performed.
+ *
+ * XDR_DECODE may allocate space if the pointer argresp is null.  This
+ * data can be freed with the XDR_FREE operation.
+ *
+ * We write only one procedure per data type to make it easy
+ * to keep the encode and decode procedures for a data type consistent.
+ * In many cases the same code performs all operations on a user defined type,
+ * because all the hard work is done in the component type routines.
+ * decode as a series of calls on the nested data types.
+ */
+
+/*
+ * Xdr operations.  XDR_ENCODE causes the type to be encoded into the
+ * stream.  XDR_DECODE causes the type to be extracted from the stream.
+ * XDR_FREE can be used to release the space allocated by an XDR_DECODE
+ * request.
+ */
+enum xdr_op {
+  XDR_ENCODE = 0,
+  XDR_DECODE = 1,
+  XDR_FREE = 2
+};
+
+/*
+ * This is the number of bytes per unit of external data.
+ */
+#define BYTES_PER_XDR_UNIT     (4)
+/*
+ * This only works if the above is a power of 2.  But it's defined to be
+ * 4 by the appropriate RFCs.  So it will work.  And it's normally quicker
+ * than the old routine.
+ */
+#if 1
+#define RNDUP(x)  (((x) + BYTES_PER_XDR_UNIT - 1) & ~(BYTES_PER_XDR_UNIT - 1))
+#else /* this is the old routine */
+#define RNDUP(x)  ((((x) + BYTES_PER_XDR_UNIT - 1) / BYTES_PER_XDR_UNIT) \
+                   * BYTES_PER_XDR_UNIT)
+#endif
+
+/*
+ * The XDR handle.
+ * Contains operation which is being applied to the stream,
+ * an operations vector for the particular implementation (e.g. see xdr_mem.c),
+ * and two private fields for the use of the particular implementation.
+ */
+typedef struct XDR XDR;
+struct XDR
+  {
+    enum xdr_op x_op;          /* operation; fast additional param */
+    struct xdr_ops
+      {
+       bool_t (*x_getlong) (XDR *__xdrs, long *__lp);
+       /* get a long from underlying stream */
+       bool_t (*x_putlong) (XDR *__xdrs, __const long *__lp);
+       /* put a long to " */
+       bool_t (*x_getbytes) (XDR *__xdrs, caddr_t __addr, u_int __len);
+       /* get some bytes from " */
+       bool_t (*x_putbytes) (XDR *__xdrs, __const char *__addr, u_int __len);
+       /* put some bytes to " */
+       u_int (*x_getpostn) (__const XDR *__xdrs);
+       /* returns bytes off from beginning */
+       bool_t (*x_setpostn) (XDR *__xdrs, u_int __pos);
+       /* lets you reposition the stream */
+       int32_t *(*x_inline) (XDR *__xdrs, u_int __len);
+       /* buf quick ptr to buffered data */
+       void (*x_destroy) (XDR *__xdrs);
+       /* free privates of this xdr_stream */
+       bool_t (*x_getint32) (XDR *__xdrs, int32_t *__ip);
+       /* get a int from underlying stream */
+       bool_t (*x_putint32) (XDR *__xdrs, __const int32_t *__ip);
+       /* put a int to " */
+      }
+     *x_ops;
+    caddr_t x_public;          /* users' data */
+    caddr_t x_private;         /* pointer to private data */
+    caddr_t x_base;            /* private used for position info */
+    u_int x_handy;             /* extra private word */
+  };
+
+/*
+ * A xdrproc_t exists for each data type which is to be encoded or decoded.
+ *
+ * The second argument to the xdrproc_t is a pointer to an opaque pointer.
+ * The opaque pointer generally points to a structure of the data type
+ * to be decoded.  If this pointer is 0, then the type routines should
+ * allocate dynamic storage of the appropriate size and return it.
+ * bool_t       (*xdrproc_t)(XDR *, caddr_t *);
+ */
+typedef bool_t (*xdrproc_t) (XDR *, void *,...);
+
+
+/*
+ * Operations defined on a XDR handle
+ *
+ * XDR          *xdrs;
+ * int32_t      *int32p;
+ * long         *longp;
+ * caddr_t       addr;
+ * u_int         len;
+ * u_int         pos;
+ */
+#define XDR_GETINT32(xdrs, int32p)                      \
+        (*(xdrs)->x_ops->x_getint32)(xdrs, int32p)
+#define xdr_getint32(xdrs, int32p)                      \
+        (*(xdrs)->x_ops->x_getint32)(xdrs, int32p)
+
+#define XDR_PUTINT32(xdrs, int32p)                      \
+        (*(xdrs)->x_ops->x_putint32)(xdrs, int32p)
+#define xdr_putint32(xdrs, int32p)                      \
+        (*(xdrs)->x_ops->x_putint32)(xdrs, int32p)
+
+#define XDR_GETLONG(xdrs, longp)                       \
+       (*(xdrs)->x_ops->x_getlong)(xdrs, longp)
+#define xdr_getlong(xdrs, longp)                       \
+       (*(xdrs)->x_ops->x_getlong)(xdrs, longp)
+
+#define XDR_PUTLONG(xdrs, longp)                       \
+       (*(xdrs)->x_ops->x_putlong)(xdrs, longp)
+#define xdr_putlong(xdrs, longp)                       \
+       (*(xdrs)->x_ops->x_putlong)(xdrs, longp)
+
+#define XDR_GETBYTES(xdrs, addr, len)                  \
+       (*(xdrs)->x_ops->x_getbytes)(xdrs, addr, len)
+#define xdr_getbytes(xdrs, addr, len)                  \
+       (*(xdrs)->x_ops->x_getbytes)(xdrs, addr, len)
+
+#define XDR_PUTBYTES(xdrs, addr, len)                  \
+       (*(xdrs)->x_ops->x_putbytes)(xdrs, addr, len)
+#define xdr_putbytes(xdrs, addr, len)                  \
+       (*(xdrs)->x_ops->x_putbytes)(xdrs, addr, len)
+
+#define XDR_GETPOS(xdrs)                               \
+       (*(xdrs)->x_ops->x_getpostn)(xdrs)
+#define xdr_getpos(xdrs)                               \
+       (*(xdrs)->x_ops->x_getpostn)(xdrs)
+
+#define XDR_SETPOS(xdrs, pos)                          \
+       (*(xdrs)->x_ops->x_setpostn)(xdrs, pos)
+#define xdr_setpos(xdrs, pos)                          \
+       (*(xdrs)->x_ops->x_setpostn)(xdrs, pos)
+
+#define        XDR_INLINE(xdrs, len)                           \
+       (*(xdrs)->x_ops->x_inline)(xdrs, len)
+#define        xdr_inline(xdrs, len)                           \
+       (*(xdrs)->x_ops->x_inline)(xdrs, len)
+
+#define        XDR_DESTROY(xdrs)                                       \
+       do {                                                    \
+               if ((xdrs)->x_ops->x_destroy)                   \
+                       (*(xdrs)->x_ops->x_destroy)(xdrs);      \
+       } while (0)
+#define        xdr_destroy(xdrs)                                       \
+       do {                                                    \
+               if ((xdrs)->x_ops->x_destroy)                   \
+                       (*(xdrs)->x_ops->x_destroy)(xdrs);      \
+       } while (0)
+
+/*
+ * Support struct for discriminated unions.
+ * You create an array of xdrdiscrim structures, terminated with
+ * a entry with a null procedure pointer.  The xdr_union routine gets
+ * the discriminant value and then searches the array of structures
+ * for a matching value.  If a match is found the associated xdr routine
+ * is called to handle that part of the union.  If there is
+ * no match, then a default routine may be called.
+ * If there is no match and no default routine it is an error.
+ */
+#define NULL_xdrproc_t ((xdrproc_t)0)
+struct xdr_discrim
+{
+  int value;
+  xdrproc_t proc;
+};
+
+/*
+ * Inline routines for fast encode/decode of primitive data types.
+ * Caveat emptor: these use single memory cycles to get the
+ * data from the underlying buffer, and will fail to operate
+ * properly if the data is not aligned.  The standard way to use these
+ * is to say:
+ *      if ((buf = XDR_INLINE(xdrs, count)) == NULL)
+ *              return (FALSE);
+ *      <<< macro calls >>>
+ * where ``count'' is the number of bytes of data occupied
+ * by the primitive data types.
+ *
+ * N.B. and frozen for all time: each data type here uses 4 bytes
+ * of external representation.
+ */
+
+#define IXDR_GET_INT32(buf)           ((int32_t)ntohl((uint32_t)*(buf)++))
+#define IXDR_PUT_INT32(buf, v)        (*(buf)++ = (int32_t)htonl((uint32_t)(v)))
+#define IXDR_GET_U_INT32(buf)         ((uint32_t)IXDR_GET_INT32(buf))
+#define IXDR_PUT_U_INT32(buf, v)      IXDR_PUT_INT32(buf, (int32_t)(v))
+
+/* WARNING: The IXDR_*_LONG defines are removed by Sun for new platforms
+ * and shouldn't be used any longer. Code which use this defines or longs
+ * in the RPC code will not work on 64bit Solaris platforms !
+ */
+#define IXDR_GET_LONG(buf) ((long)IXDR_GET_U_INT32(buf))
+#define IXDR_PUT_LONG(buf, v) ((long)IXDR_PUT_INT32(buf, (long)(v)))
+#define IXDR_GET_U_LONG(buf)         ((u_long)IXDR_GET_LONG(buf))
+#define IXDR_PUT_U_LONG(buf, v)              IXDR_PUT_LONG(buf, (long)(v))
+
+
+#define IXDR_GET_BOOL(buf)            ((bool_t)IXDR_GET_LONG(buf))
+#define IXDR_GET_ENUM(buf, t)         ((t)IXDR_GET_LONG(buf))
+#define IXDR_GET_SHORT(buf)           ((short)IXDR_GET_LONG(buf))
+#define IXDR_GET_U_SHORT(buf)         ((u_short)IXDR_GET_LONG(buf))
+
+#define IXDR_PUT_BOOL(buf, v)         IXDR_PUT_LONG(buf, (long)(v))
+#define IXDR_PUT_ENUM(buf, v)         IXDR_PUT_LONG(buf, (long)(v))
+#define IXDR_PUT_SHORT(buf, v)        IXDR_PUT_LONG(buf, (long)(v))
+#define IXDR_PUT_U_SHORT(buf, v)      IXDR_PUT_LONG(buf, (long)(v))
+
+/*
+ * These are the "generic" xdr routines.
+ * None of these can have const applied because it's not possible to
+ * know whether the call is a read or a write to the passed parameter
+ * also, the XDR structure is always updated by some of these calls.
+ */
+extern bool_t xdr_void (void) __THROW;
+extern bool_t xdr_short (XDR *__xdrs, short *__sp) __THROW;
+extern bool_t xdr_u_short (XDR *__xdrs, u_short *__usp) __THROW;
+extern bool_t xdr_int (XDR *__xdrs, int *__ip) __THROW;
+extern bool_t xdr_u_int (XDR *__xdrs, u_int *__up) __THROW;
+extern bool_t xdr_long (XDR *__xdrs, long *__lp) __THROW;
+extern bool_t xdr_u_long (XDR *__xdrs, u_long *__ulp) __THROW;
+extern bool_t xdr_hyper (XDR *__xdrs, quad_t *__llp) __THROW;
+extern bool_t xdr_u_hyper (XDR *__xdrs, u_quad_t *__ullp) __THROW;
+extern bool_t xdr_longlong_t (XDR *__xdrs, quad_t *__llp) __THROW;
+extern bool_t xdr_u_longlong_t (XDR *__xdrs, u_quad_t *__ullp) __THROW;
+extern bool_t xdr_int8_t (XDR *__xdrs, int8_t *__ip) __THROW;
+extern bool_t xdr_uint8_t (XDR *__xdrs, uint8_t *__up) __THROW;
+extern bool_t xdr_int16_t (XDR *__xdrs, int16_t *__ip) __THROW;
+extern bool_t xdr_uint16_t (XDR *__xdrs, uint16_t *__up) __THROW;
+extern bool_t xdr_int32_t (XDR *__xdrs, int32_t *__ip) __THROW;
+extern bool_t xdr_uint32_t (XDR *__xdrs, uint32_t *__up) __THROW;
+extern bool_t xdr_int64_t (XDR *__xdrs, int64_t *__ip) __THROW;
+extern bool_t xdr_uint64_t (XDR *__xdrs, uint64_t *__up) __THROW;
+extern bool_t xdr_quad_t (XDR *__xdrs, quad_t *__ip) __THROW;
+extern bool_t xdr_u_quad_t (XDR *__xdrs, u_quad_t *__up) __THROW;
+extern bool_t xdr_bool (XDR *__xdrs, bool_t *__bp) __THROW;
+extern bool_t xdr_enum (XDR *__xdrs, enum_t *__ep) __THROW;
+extern bool_t xdr_array (XDR * _xdrs, caddr_t *__addrp, u_int *__sizep,
+                        u_int __maxsize, u_int __elsize, xdrproc_t __elproc)
+     __THROW;
+extern bool_t xdr_bytes (XDR *__xdrs, char **__cpp, u_int *__sizep,
+                        u_int __maxsize) __THROW;
+extern bool_t xdr_opaque (XDR *__xdrs, caddr_t __cp, u_int __cnt) __THROW;
+extern bool_t xdr_string (XDR *__xdrs, char **__cpp, u_int __maxsize) __THROW;
+extern bool_t xdr_union (XDR *__xdrs, enum_t *__dscmp, char *__unp,
+                        __const struct xdr_discrim *__choices,
+                        xdrproc_t dfault) __THROW;
+extern bool_t xdr_char (XDR *__xdrs, char *__cp) __THROW;
+extern bool_t xdr_u_char (XDR *__xdrs, u_char *__cp) __THROW;
+extern bool_t xdr_vector (XDR *__xdrs, char *__basep, u_int __nelem,
+                         u_int __elemsize, xdrproc_t __xdr_elem) __THROW;
+extern bool_t xdr_float (XDR *__xdrs, float *__fp) __THROW;
+extern bool_t xdr_double (XDR *__xdrs, double *__dp) __THROW;
+extern bool_t xdr_reference (XDR *__xdrs, caddr_t *__xpp, u_int __size,
+                            xdrproc_t __proc) __THROW;
+extern bool_t xdr_pointer (XDR *__xdrs, char **__objpp,
+                          u_int __obj_size, xdrproc_t __xdr_obj) __THROW;
+extern bool_t xdr_wrapstring (XDR *__xdrs, char **__cpp) __THROW;
+extern u_long xdr_sizeof (xdrproc_t, void *) __THROW;
+
+/*
+ * Common opaque bytes objects used by many rpc protocols;
+ * declared here due to commonality.
+ */
+#define MAX_NETOBJ_SZ 1024
+struct netobj
+{
+  u_int n_len;
+  char *n_bytes;
+};
+typedef struct netobj netobj;
+extern bool_t xdr_netobj (XDR *__xdrs, struct netobj *__np) __THROW;
+
+/*
+ * These are the public routines for the various implementations of
+ * xdr streams.
+ */
+
+/* XDR using memory buffers */
+extern void xdrmem_create (XDR *__xdrs, __const caddr_t __addr,
+                          u_int __size, enum xdr_op __xop) __THROW;
+
+/* XDR using stdio library */
+extern void xdrstdio_create (XDR *__xdrs, FILE *__file, enum xdr_op __xop)
+     __THROW;
+
+/* XDR pseudo records for tcp */
+extern void xdrrec_create (XDR *__xdrs, u_int __sendsize,
+                          u_int __recvsize, caddr_t __tcp_handle,
+                          int (*__readit) (char *, char *, int),
+                          int (*__writeit) (char *, char *, int)) __THROW;
+
+/* make end of xdr record */
+extern bool_t xdrrec_endofrecord (XDR *__xdrs, bool_t __sendnow) __THROW;
+
+/* move to beginning of next record */
+extern bool_t xdrrec_skiprecord (XDR *__xdrs) __THROW;
+
+/* true if no more input */
+extern bool_t xdrrec_eof (XDR *__xdrs) __THROW;
+
+/* free memory buffers for xdr */
+extern void xdr_free (xdrproc_t __proc, char *__objp) __THROW;
+
+__END_DECLS
+
+#endif /* rpc/xdr.h */
diff --git a/source/lib/xdrf-Argonne/xdr_array.c b/source/lib/xdrf-Argonne/xdr_array.c
new file mode 100644 (file)
index 0000000..836405c
--- /dev/null
@@ -0,0 +1,174 @@
+# define INTUSE(name) name
+# define INTDEF(name)
+/* @(#)xdr_array.c     2.1 88/07/29 4.0 RPCSRC */
+/*
+ * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
+ * unrestricted use provided that this legend is included on all tape
+ * media and as a part of the software program in whole or part.  Users
+ * may copy or modify Sun RPC without charge, but are not authorized
+ * to license or distribute it to anyone else except as part of a product or
+ * program developed by the user.
+ *
+ * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
+ * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
+ *
+ * Sun RPC is provided with no support and without any obligation on the
+ * part of Sun Microsystems, Inc. to assist in its use, correction,
+ * modification or enhancement.
+ *
+ * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
+ * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
+ * OR ANY PART THEREOF.
+ *
+ * In no event will Sun Microsystems, Inc. be liable for any lost revenue
+ * or profits or other special, indirect and consequential damages, even if
+ * Sun has been advised of the possibility of such damages.
+ *
+ * Sun Microsystems, Inc.
+ * 2550 Garcia Avenue
+ * Mountain View, California  94043
+ */
+#if !defined(lint) && defined(SCCSIDS)
+static char sccsid[] = "@(#)xdr_array.c 1.10 87/08/11 Copyr 1984 Sun Micro";
+#endif
+
+/*
+ * xdr_array.c, Generic XDR routines implementation.
+ *
+ * Copyright (C) 1984, Sun Microsystems, Inc.
+ *
+ * These are the "non-trivial" xdr primitives used to serialize and de-serialize
+ * arrays.  See xdr.h for more info on the interface to xdr.
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include "types.h"
+#include "xdr.h"
+#include <libintl.h>
+#include <limits.h>
+
+#ifdef USE_IN_LIBIO
+# include <wchar.h>
+#endif
+
+#define LASTUNSIGNED   ((u_int)0-1)
+
+
+/*
+ * XDR an array of arbitrary elements
+ * *addrp is a pointer to the array, *sizep is the number of elements.
+ * If addrp is NULL (*sizep * elsize) bytes are allocated.
+ * elsize is the size (in bytes) of each element, and elproc is the
+ * xdr procedure to call to handle each element of the array.
+ */
+bool_t
+xdr_array (xdrs, addrp, sizep, maxsize, elsize, elproc)
+     XDR *xdrs;
+     caddr_t *addrp;           /* array pointer */
+     u_int *sizep;             /* number of elements */
+     u_int maxsize;            /* max numberof elements */
+     u_int elsize;             /* size in bytes of each element */
+     xdrproc_t elproc;         /* xdr routine to handle each element */
+{
+  u_int i;
+  caddr_t target = *addrp;
+  u_int c;             /* the actual element count */
+  bool_t stat = TRUE;
+  u_int nodesize;
+
+  /* like strings, arrays are really counted arrays */
+  if (!INTUSE(xdr_u_int) (xdrs, sizep))
+    {
+      return FALSE;
+    }
+  c = *sizep;
+  /*
+   * XXX: Let the overflow possibly happen with XDR_FREE because mem_free()
+   * doesn't actually use its second argument anyway.
+   */
+  if ((c > maxsize || c > UINT_MAX / elsize) && (xdrs->x_op != XDR_FREE))
+    {
+      return FALSE;
+    }
+  nodesize = c * elsize;
+
+  /*
+   * if we are deserializing, we may need to allocate an array.
+   * We also save time by checking for a null array if we are freeing.
+   */
+  if (target == NULL)
+    switch (xdrs->x_op)
+      {
+      case XDR_DECODE:
+       if (c == 0)
+         return TRUE;
+       *addrp = target = mem_alloc (nodesize);
+       if (target == NULL)
+         {
+           fprintf (stderr, "%s", "xdr_array: out of memory\n");
+           return FALSE;
+         }
+       __bzero (target, nodesize);
+       break;
+
+      case XDR_FREE:
+       return TRUE;
+      default:
+       break;
+      }
+
+  /*
+   * now we xdr each element of array
+   */
+  for (i = 0; (i < c) && stat; i++)
+    {
+      stat = (*elproc) (xdrs, target, LASTUNSIGNED);
+      target += elsize;
+    }
+
+  /*
+   * the array may need freeing
+   */
+  if (xdrs->x_op == XDR_FREE)
+    {
+      mem_free (*addrp, nodesize);
+      *addrp = NULL;
+    }
+  return stat;
+}
+INTDEF(xdr_array)
+
+/*
+ * xdr_vector():
+ *
+ * XDR a fixed length array. Unlike variable-length arrays,
+ * the storage of fixed length arrays is static and unfreeable.
+ * > basep: base of the array
+ * > size: size of the array
+ * > elemsize: size of each element
+ * > xdr_elem: routine to XDR each element
+ */
+bool_t
+xdr_vector (xdrs, basep, nelem, elemsize, xdr_elem)
+     XDR *xdrs;
+     char *basep;
+     u_int nelem;
+     u_int elemsize;
+     xdrproc_t xdr_elem;
+{
+  u_int i;
+  char *elptr;
+
+  elptr = basep;
+  for (i = 0; i < nelem; i++)
+    {
+      if (!(*xdr_elem) (xdrs, elptr, LASTUNSIGNED))
+       {
+         return FALSE;
+       }
+      elptr += elemsize;
+    }
+  return TRUE;
+}
diff --git a/source/lib/xdrf-Argonne/xdr_float.c b/source/lib/xdrf-Argonne/xdr_float.c
new file mode 100644 (file)
index 0000000..15d3c88
--- /dev/null
@@ -0,0 +1,307 @@
+/* @(#)xdr_float.c     2.1 88/07/29 4.0 RPCSRC */
+/*
+ * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
+ * unrestricted use provided that this legend is included on all tape
+ * media and as a part of the software program in whole or part.  Users
+ * may copy or modify Sun RPC without charge, but are not authorized
+ * to license or distribute it to anyone else except as part of a product or
+ * program developed by the user.
+ *
+ * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
+ * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
+ *
+ * Sun RPC is provided with no support and without any obligation on the
+ * part of Sun Microsystems, Inc. to assist in its use, correction,
+ * modification or enhancement.
+ *
+ * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
+ * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
+ * OR ANY PART THEREOF.
+ *
+ * In no event will Sun Microsystems, Inc. be liable for any lost revenue
+ * or profits or other special, indirect and consequential damages, even if
+ * Sun has been advised of the possibility of such damages.
+ *
+ * Sun Microsystems, Inc.
+ * 2550 Garcia Avenue
+ * Mountain View, California  94043
+ */
+#if !defined(lint) && defined(SCCSIDS)
+static char sccsid[] = "@(#)xdr_float.c 1.12 87/08/11 Copyr 1984 Sun Micro";
+#endif
+
+/*
+ * xdr_float.c, Generic XDR routines implementation.
+ *
+ * Copyright (C) 1984, Sun Microsystems, Inc.
+ *
+ * These are the "floating point" xdr routines used to (de)serialize
+ * most common data items.  See xdr.h for more info on the interface to
+ * xdr.
+ */
+
+#include <stdio.h>
+#include <endian.h>
+
+#include "types.h"
+#include "xdr.h"
+
+/*
+ * NB: Not portable.
+ * This routine works on Suns (Sky / 68000's) and Vaxen.
+ */
+
+#define LSW    (__FLOAT_WORD_ORDER == __BIG_ENDIAN)
+
+#ifdef vax
+
+/* What IEEE single precision floating point looks like on a Vax */
+struct ieee_single {
+       unsigned int    mantissa: 23;
+       unsigned int    exp     : 8;
+       unsigned int    sign    : 1;
+};
+
+/* Vax single precision floating point */
+struct vax_single {
+       unsigned int    mantissa1 : 7;
+       unsigned int    exp       : 8;
+       unsigned int    sign      : 1;
+       unsigned int    mantissa2 : 16;
+};
+
+#define VAX_SNG_BIAS   0x81
+#define IEEE_SNG_BIAS  0x7f
+
+static struct sgl_limits {
+       struct vax_single s;
+       struct ieee_single ieee;
+} sgl_limits[2] = {
+       {{ 0x7f, 0xff, 0x0, 0xffff },   /* Max Vax */
+       { 0x0, 0xff, 0x0 }},            /* Max IEEE */
+       {{ 0x0, 0x0, 0x0, 0x0 },        /* Min Vax */
+       { 0x0, 0x0, 0x0 }}              /* Min IEEE */
+};
+#endif /* vax */
+
+bool_t
+xdr_float(xdrs, fp)
+     XDR *xdrs;
+     float *fp;
+{
+#ifdef vax
+       struct ieee_single is;
+       struct vax_single vs, *vsp;
+       struct sgl_limits *lim;
+       int i;
+#endif
+       switch (xdrs->x_op) {
+
+       case XDR_ENCODE:
+#ifdef vax
+               vs = *((struct vax_single *)fp);
+               for (i = 0, lim = sgl_limits;
+                       i < sizeof(sgl_limits)/sizeof(struct sgl_limits);
+                       i++, lim++) {
+                       if ((vs.mantissa2 == lim->s.mantissa2) &&
+                               (vs.exp == lim->s.exp) &&
+                               (vs.mantissa1 == lim->s.mantissa1)) {
+                               is = lim->ieee;
+                               goto shipit;
+                       }
+               }
+               is.exp = vs.exp - VAX_SNG_BIAS + IEEE_SNG_BIAS;
+               is.mantissa = (vs.mantissa1 << 16) | vs.mantissa2;
+       shipit:
+               is.sign = vs.sign;
+               return (XDR_PUTLONG(xdrs, (long *)&is));
+#else
+               if (sizeof(float) == sizeof(long))
+                       return (XDR_PUTLONG(xdrs, (long *)fp));
+               else if (sizeof(float) == sizeof(int)) {
+                       long tmp = *(int *)fp;
+                       return (XDR_PUTLONG(xdrs, &tmp));
+               }
+               break;
+#endif
+
+       case XDR_DECODE:
+#ifdef vax
+               vsp = (struct vax_single *)fp;
+               if (!XDR_GETLONG(xdrs, (long *)&is))
+                       return (FALSE);
+               for (i = 0, lim = sgl_limits;
+                       i < sizeof(sgl_limits)/sizeof(struct sgl_limits);
+                       i++, lim++) {
+                       if ((is.exp == lim->ieee.exp) &&
+                               (is.mantissa == lim->ieee.mantissa)) {
+                               *vsp = lim->s;
+                               goto doneit;
+                       }
+               }
+               vsp->exp = is.exp - IEEE_SNG_BIAS + VAX_SNG_BIAS;
+               vsp->mantissa2 = is.mantissa;
+               vsp->mantissa1 = (is.mantissa >> 16);
+       doneit:
+               vsp->sign = is.sign;
+               return (TRUE);
+#else
+               if (sizeof(float) == sizeof(long))
+                       return (XDR_GETLONG(xdrs, (long *)fp));
+               else if (sizeof(float) == sizeof(int)) {
+                       long tmp;
+                       if (XDR_GETLONG(xdrs, &tmp)) {
+                               *(int *)fp = tmp;
+                               return (TRUE);
+                       }
+               }
+               break;
+#endif
+
+       case XDR_FREE:
+               return (TRUE);
+       }
+       return (FALSE);
+}
+
+/*
+ * This routine works on Suns (Sky / 68000's) and Vaxen.
+ */
+
+#ifdef vax
+/* What IEEE double precision floating point looks like on a Vax */
+struct ieee_double {
+       unsigned int    mantissa1 : 20;
+       unsigned int    exp       : 11;
+       unsigned int    sign      : 1;
+       unsigned int    mantissa2 : 32;
+};
+
+/* Vax double precision floating point */
+struct  vax_double {
+       unsigned int    mantissa1 : 7;
+       unsigned int    exp       : 8;
+       unsigned int    sign      : 1;
+       unsigned int    mantissa2 : 16;
+       unsigned int    mantissa3 : 16;
+       unsigned int    mantissa4 : 16;
+};
+
+#define VAX_DBL_BIAS   0x81
+#define IEEE_DBL_BIAS  0x3ff
+#define MASK(nbits)    ((1 << nbits) - 1)
+
+static struct dbl_limits {
+       struct  vax_double d;
+       struct  ieee_double ieee;
+} dbl_limits[2] = {
+       {{ 0x7f, 0xff, 0x0, 0xffff, 0xffff, 0xffff },   /* Max Vax */
+       { 0x0, 0x7ff, 0x0, 0x0 }},                      /* Max IEEE */
+       {{ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},               /* Min Vax */
+       { 0x0, 0x0, 0x0, 0x0 }}                         /* Min IEEE */
+};
+
+#endif /* vax */
+
+
+bool_t
+xdr_double(xdrs, dp)
+     XDR *xdrs;
+     double *dp;
+{
+#ifdef vax
+       struct  ieee_double id;
+       struct  vax_double vd;
+       register struct dbl_limits *lim;
+       int i;
+#endif
+
+       switch (xdrs->x_op) {
+
+       case XDR_ENCODE:
+#ifdef vax
+               vd = *((struct vax_double *)dp);
+               for (i = 0, lim = dbl_limits;
+                       i < sizeof(dbl_limits)/sizeof(struct dbl_limits);
+                       i++, lim++) {
+                       if ((vd.mantissa4 == lim->d.mantissa4) &&
+                               (vd.mantissa3 == lim->d.mantissa3) &&
+                               (vd.mantissa2 == lim->d.mantissa2) &&
+                               (vd.mantissa1 == lim->d.mantissa1) &&
+                               (vd.exp == lim->d.exp)) {
+                               id = lim->ieee;
+                               goto shipit;
+                       }
+               }
+               id.exp = vd.exp - VAX_DBL_BIAS + IEEE_DBL_BIAS;
+               id.mantissa1 = (vd.mantissa1 << 13) | (vd.mantissa2 >> 3);
+               id.mantissa2 = ((vd.mantissa2 & MASK(3)) << 29) |
+                               (vd.mantissa3 << 13) |
+                               ((vd.mantissa4 >> 3) & MASK(13));
+       shipit:
+               id.sign = vd.sign;
+               dp = (double *)&id;
+#endif
+               if (2*sizeof(long) == sizeof(double)) {
+                       long *lp = (long *)dp;
+                       return (XDR_PUTLONG(xdrs, lp+!LSW) &&
+                               XDR_PUTLONG(xdrs, lp+LSW));
+               } else if (2*sizeof(int) == sizeof(double)) {
+                       int *ip = (int *)dp;
+                       long tmp[2];
+                       tmp[0] = ip[!LSW];
+                       tmp[1] = ip[LSW];
+                       return (XDR_PUTLONG(xdrs, tmp) &&
+                               XDR_PUTLONG(xdrs, tmp+1));
+               }
+               break;
+
+       case XDR_DECODE:
+#ifdef vax
+               lp = (long *)&id;
+               if (!XDR_GETLONG(xdrs, lp++) || !XDR_GETLONG(xdrs, lp))
+                       return (FALSE);
+               for (i = 0, lim = dbl_limits;
+                       i < sizeof(dbl_limits)/sizeof(struct dbl_limits);
+                       i++, lim++) {
+                       if ((id.mantissa2 == lim->ieee.mantissa2) &&
+                               (id.mantissa1 == lim->ieee.mantissa1) &&
+                               (id.exp == lim->ieee.exp)) {
+                               vd = lim->d;
+                               goto doneit;
+                       }
+               }
+               vd.exp = id.exp - IEEE_DBL_BIAS + VAX_DBL_BIAS;
+               vd.mantissa1 = (id.mantissa1 >> 13);
+               vd.mantissa2 = ((id.mantissa1 & MASK(13)) << 3) |
+                               (id.mantissa2 >> 29);
+               vd.mantissa3 = (id.mantissa2 >> 13);
+               vd.mantissa4 = (id.mantissa2 << 3);
+       doneit:
+               vd.sign = id.sign;
+               *dp = *((double *)&vd);
+               return (TRUE);
+#else
+               if (2*sizeof(long) == sizeof(double)) {
+                       long *lp = (long *)dp;
+                       return (XDR_GETLONG(xdrs, lp+!LSW) &&
+                               XDR_GETLONG(xdrs, lp+LSW));
+               } else if (2*sizeof(int) == sizeof(double)) {
+                       int *ip = (int *)dp;
+                       long tmp[2];
+                       if (XDR_GETLONG(xdrs, tmp+!LSW) &&
+                           XDR_GETLONG(xdrs, tmp+LSW)) {
+                               ip[0] = tmp[0];
+                               ip[1] = tmp[1];
+                               return (TRUE);
+                       }
+               }
+               break;
+#endif
+
+       case XDR_FREE:
+               return (TRUE);
+       }
+       return (FALSE);
+}
diff --git a/source/lib/xdrf-Argonne/xdr_stdio.c b/source/lib/xdrf-Argonne/xdr_stdio.c
new file mode 100644 (file)
index 0000000..12b1709
--- /dev/null
@@ -0,0 +1,196 @@
+/*
+ * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
+ * unrestricted use provided that this legend is included on all tape
+ * media and as a part of the software program in whole or part.  Users
+ * may copy or modify Sun RPC without charge, but are not authorized
+ * to license or distribute it to anyone else except as part of a product or
+ * program developed by the user.
+ *
+ * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
+ * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
+ *
+ * Sun RPC is provided with no support and without any obligation on the
+ * part of Sun Microsystems, Inc. to assist in its use, correction,
+ * modification or enhancement.
+ *
+ * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
+ * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
+ * OR ANY PART THEREOF.
+ *
+ * In no event will Sun Microsystems, Inc. be liable for any lost revenue
+ * or profits or other special, indirect and consequential damages, even if
+ * Sun has been advised of the possibility of such damages.
+ *
+ * Sun Microsystems, Inc.
+ * 2550 Garcia Avenue
+ * Mountain View, California  94043
+ */
+
+/*
+ * xdr_stdio.c, XDR implementation on standard i/o file.
+ *
+ * Copyright (C) 1984, Sun Microsystems, Inc.
+ *
+ * This set of routines implements a XDR on a stdio stream.
+ * XDR_ENCODE serializes onto the stream, XDR_DECODE de-serializes
+ * from the stream.
+ */
+
+#include "types.h"
+#include <stdio.h>
+#include "xdr.h"
+
+#ifdef USE_IN_LIBIO
+# include <libio/iolibio.h>
+# define fflush(s) INTUSE(_IO_fflush) (s)
+# define fread(p, m, n, s) INTUSE(_IO_fread) (p, m, n, s)
+# define ftell(s) INTUSE(_IO_ftell) (s)
+# define fwrite(p, m, n, s) INTUSE(_IO_fwrite) (p, m, n, s)
+#endif
+
+static bool_t xdrstdio_getlong (XDR *, long *);
+static bool_t xdrstdio_putlong (XDR *, const long *);
+static bool_t xdrstdio_getbytes (XDR *, caddr_t, u_int);
+static bool_t xdrstdio_putbytes (XDR *, const char *, u_int);
+static u_int xdrstdio_getpos (const XDR *);
+static bool_t xdrstdio_setpos (XDR *, u_int);
+static int32_t *xdrstdio_inline (XDR *, u_int);
+static void xdrstdio_destroy (XDR *);
+static bool_t xdrstdio_getint32 (XDR *, int32_t *);
+static bool_t xdrstdio_putint32 (XDR *, const int32_t *);
+
+/*
+ * Ops vector for stdio type XDR
+ */
+static const struct xdr_ops xdrstdio_ops =
+{
+  xdrstdio_getlong,            /* deserialize a long int */
+  xdrstdio_putlong,            /* serialize a long int */
+  xdrstdio_getbytes,           /* deserialize counted bytes */
+  xdrstdio_putbytes,           /* serialize counted bytes */
+  xdrstdio_getpos,             /* get offset in the stream */
+  xdrstdio_setpos,             /* set offset in the stream */
+  xdrstdio_inline,             /* prime stream for inline macros */
+  xdrstdio_destroy,            /* destroy stream */
+  xdrstdio_getint32,           /* deserialize a int */
+  xdrstdio_putint32            /* serialize a int */
+};
+
+/*
+ * Initialize a stdio xdr stream.
+ * Sets the xdr stream handle xdrs for use on the stream file.
+ * Operation flag is set to op.
+ */
+void
+xdrstdio_create (XDR *xdrs, FILE *file, enum xdr_op op)
+{
+  xdrs->x_op = op;
+  /* We have to add the const since the `struct xdr_ops' in `struct XDR'
+     is not `const'.  */
+  xdrs->x_ops = (struct xdr_ops *) &xdrstdio_ops;
+  xdrs->x_private = (caddr_t) file;
+  xdrs->x_handy = 0;
+  xdrs->x_base = 0;
+}
+
+/*
+ * Destroy a stdio xdr stream.
+ * Cleans up the xdr stream handle xdrs previously set up by xdrstdio_create.
+ */
+static void
+xdrstdio_destroy (XDR *xdrs)
+{
+  (void) fflush ((FILE *) xdrs->x_private);
+  /* xx should we close the file ?? */
+};
+
+static bool_t
+xdrstdio_getlong (XDR *xdrs, long *lp)
+{
+  u_int32_t mycopy;
+
+  if (fread ((caddr_t) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1)
+    return FALSE;
+  *lp = (long) ntohl (mycopy);
+  return TRUE;
+}
+
+static bool_t
+xdrstdio_putlong (XDR *xdrs, const long *lp)
+{
+  int32_t mycopy = htonl ((u_int32_t) *lp);
+
+  if (fwrite ((caddr_t) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1)
+    return FALSE;
+  return TRUE;
+}
+
+static bool_t
+xdrstdio_getbytes (XDR *xdrs, const caddr_t addr, u_int len)
+{
+  if ((len != 0) && (fread (addr, (int) len, 1,
+                           (FILE *) xdrs->x_private) != 1))
+    return FALSE;
+  return TRUE;
+}
+
+static bool_t
+xdrstdio_putbytes (XDR *xdrs, const char *addr, u_int len)
+{
+  if ((len != 0) && (fwrite (addr, (int) len, 1,
+                            (FILE *) xdrs->x_private) != 1))
+    return FALSE;
+  return TRUE;
+}
+
+static u_int
+xdrstdio_getpos (const XDR *xdrs)
+{
+  return (u_int) ftell ((FILE *) xdrs->x_private);
+}
+
+static bool_t
+xdrstdio_setpos (XDR *xdrs, u_int pos)
+{
+  return fseek ((FILE *) xdrs->x_private, (long) pos, 0) < 0 ? FALSE : TRUE;
+}
+
+static int32_t *
+xdrstdio_inline (XDR *xdrs, u_int len)
+{
+  /*
+   * Must do some work to implement this: must insure
+   * enough data in the underlying stdio buffer,
+   * that the buffer is aligned so that we can indirect through a
+   * long *, and stuff this pointer in xdrs->x_buf.  Doing
+   * a fread or fwrite to a scratch buffer would defeat
+   * most of the gains to be had here and require storage
+   * management on this buffer, so we don't do this.
+   */
+  return NULL;
+}
+
+static bool_t
+xdrstdio_getint32 (XDR *xdrs, int32_t *ip)
+{
+  int32_t mycopy;
+
+  if (fread ((caddr_t) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1)
+    return FALSE;
+  *ip = ntohl (mycopy);
+  return TRUE;
+}
+
+static bool_t
+xdrstdio_putint32 (XDR *xdrs, const int32_t *ip)
+{
+  int32_t mycopy = htonl (*ip);
+
+  ip = &mycopy;
+  if (fwrite ((caddr_t) ip, 4, 1, (FILE *) xdrs->x_private) != 1)
+    return FALSE;
+  return TRUE;
+}
+
+/* libc_hidden_def (xdrstdio_create) */
diff --git a/source/lib/xdrf-Argonne/xdrf.h b/source/lib/xdrf-Argonne/xdrf.h
new file mode 100644 (file)
index 0000000..dedf5a2
--- /dev/null
@@ -0,0 +1,10 @@
+/*_________________________________________________________________
+ |
+ | xdrf.h - include file for C routines that want to use the 
+ |         functions below.
+*/
+
+int xdropen(XDR *xdrs, const char *filename, const char *type);
+int xdrclose(XDR *xdrs) ;
+int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) ;
+
diff --git a/source/lib/xdrf/CMakeLists.txt b/source/lib/xdrf/CMakeLists.txt
new file mode 100644 (file)
index 0000000..26baa36
--- /dev/null
@@ -0,0 +1,19 @@
+#
+# CMake project file for UNRESPACK
+#
+
+# m4 macro processor 
+add_custom_command(
+   OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/libxdrf.c
+   COMMAND m4 
+   ARGS ${CMAKE_CURRENT_SOURCE_DIR}/underscore.m4 ${CMAKE_CURRENT_SOURCE_DIR}/libxdrf.m4 > ${CMAKE_CURRENT_BINARY_DIR}/libxdrf.c
+   VERBATIM
+)
+
+# add headers from current dir
+include_directories(${CMAKE_CURRENT_SOURCE_DIR})
+# compile the libxdrf library
+add_library(xdrf STATIC ${CMAKE_CURRENT_BINARY_DIR}/libxdrf.c ftocstr.c)
+set(UNRES_XDRFLIB ${CMAKE_CURRENT_BINARY_DIR}/libxdrf.a PARENT_SCOPE)
+
+#add_dependencies( ${UNRES_BIN} xdrf ) 
diff --git a/source/lib/xdrf/Makefile b/source/lib/xdrf/Makefile
new file mode 100644 (file)
index 0000000..02c29f6
--- /dev/null
@@ -0,0 +1,27 @@
+# This make file is part of the xdrf package.
+#
+# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
+#
+# 2006 modified by Cezary Czaplewski
+
+# Set C compiler and flags for ARCH
+CC      = gcc
+CFLAGS         = -O 
+
+M4     = m4
+M4FILE = underscore.m4
+
+libxdrf.a:  libxdrf.o ftocstr.o
+       ar cr libxdrf.a $?
+
+clean:
+       rm -f libxdrf.o ftocstr.o libxdrf.a 
+
+ftocstr.o: ftocstr.c
+       $(CC) $(CFLAGS) -c ftocstr.c
+
+libxdrf.o:     libxdrf.m4 $(M4FILE)
+       $(M4) $(M4FILE) libxdrf.m4 > libxdrf.c
+       $(CC) $(CFLAGS) -c libxdrf.c
+       rm -f libxdrf.c
+
diff --git a/source/lib/xdrf/Makefile_jubl b/source/lib/xdrf/Makefile_jubl
new file mode 100644 (file)
index 0000000..8dc35cf
--- /dev/null
@@ -0,0 +1,31 @@
+# This make file is part of the xdrf package.
+#
+# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
+#
+# 2006 modified by Cezary Czaplewski
+
+# Set C compiler and flags for ARCH
+BGLSYS = /bgl/BlueLight/ppcfloor/bglsys
+
+CC = /usr/bin/blrts_xlc
+CPPC = /usr/bin/blrts_xlc
+
+CFLAGS= -O2 -I$(BGLSYS)/include -L$(BGLSYS)/lib -qarch=440d -qtune=440
+
+M4     = m4
+M4FILE = RS6K.m4
+
+libxdrf.a:  libxdrf.o ftocstr.o xdr_array.o  xdr.o  xdr_float.o  xdr_stdio.o
+       ar cr libxdrf.a $?
+
+clean:
+       rm -f *.o libxdrf.a 
+
+ftocstr.o: ftocstr.c
+       $(CC) $(CFLAGS) -c ftocstr.c
+
+libxdrf.o:     libxdrf.m4 $(M4FILE)
+       $(M4) $(M4FILE) libxdrf.m4 > libxdrf.c
+       $(CC) $(CFLAGS) -c libxdrf.c
+#      rm -f libxdrf.c
+
diff --git a/source/lib/xdrf/Makefile_linux b/source/lib/xdrf/Makefile_linux
new file mode 100644 (file)
index 0000000..f03276e
--- /dev/null
@@ -0,0 +1,27 @@
+# This make file is part of the xdrf package.
+#
+# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
+#
+# 2006 modified by Cezary Czaplewski
+
+# Set C compiler and flags for ARCH
+CC      = cc
+CFLAGS         = -O 
+
+M4     = m4
+M4FILE = underscore.m4
+
+libxdrf.a:  libxdrf.o ftocstr.o
+       ar cr libxdrf.a $?
+
+clean:
+       rm -f libxdrf.o ftocstr.o libxdrf.a 
+
+ftocstr.o: ftocstr.c
+       $(CC) $(CFLAGS) -c ftocstr.c
+
+libxdrf.o:     libxdrf.m4 $(M4FILE)
+       $(M4) $(M4FILE) libxdrf.m4 > libxdrf.c
+       $(CC) $(CFLAGS) -c libxdrf.c
+       rm -f libxdrf.c
+
diff --git a/source/lib/xdrf/RS6K.m4 b/source/lib/xdrf/RS6K.m4
new file mode 100644 (file)
index 0000000..0331d97
--- /dev/null
@@ -0,0 +1,20 @@
+divert(-1)
+undefine(`len')
+#
+# do nothing special to FORTRAN function names
+#
+define(`FUNCTION',`$1')
+#
+# FORTRAN character strings are passed as follows:
+# a pointer to the base of the string is passed in the normal
+# argument list, and the length is passed by value as an extra
+# argument, after all of the other arguments.
+#
+define(`ARGS',`($1`'undivert(1))')
+define(`SAVE',`divert(1)$1`'divert(0)')
+define(`STRING_ARG',`$1_ptr`'SAVE(`, $1_len')')
+define(`STRING_ARG_DECL',`char * $1_ptr; int $1_len')
+define(`STRING_LEN',`$1_len')
+define(`STRING_PTR',`$1_ptr')
+divert(0)
+
diff --git a/source/lib/xdrf/ftocstr.c b/source/lib/xdrf/ftocstr.c
new file mode 100644 (file)
index 0000000..ed2113f
--- /dev/null
@@ -0,0 +1,35 @@
+
+
+int ftocstr(ds, dl, ss, sl)
+    char *ds, *ss;      /* dst, src ptrs */
+    int dl;             /* dst max len */
+    int sl;             /* src len */
+{
+    char *p;
+
+    for (p = ss + sl; --p >= ss && *p == ' '; ) ;
+    sl = p - ss + 1;
+    dl--;
+    ds[0] = 0;
+    if (sl > dl)
+        return 1;
+    while (sl--)
+       (*ds++ = *ss++);
+    *ds = '\0';
+    return 0;
+}
+
+
+int ctofstr(ds, dl, ss)
+       char *ds;               /* dest space */
+       int dl;                 /* max dest length */
+       char *ss;               /* src string (0-term) */
+{
+    while (dl && *ss) {
+       *ds++ = *ss++;
+       dl--;
+    }
+    while (dl--)
+       *ds++ = ' ';
+    return 0;
+}
diff --git a/source/lib/xdrf/libxdrf.m4 b/source/lib/xdrf/libxdrf.m4
new file mode 100644 (file)
index 0000000..a6da458
--- /dev/null
@@ -0,0 +1,1238 @@
+/*____________________________________________________________________________
+ |
+ | libxdrf - portable fortran interface to xdr. some xdr routines
+ |          are C routines for compressed coordinates
+ |
+ | version 1.1
+ |
+ | This collection of routines is intended to write and read
+ | data in a portable way to a file, so data written on one type
+ | of machine can be read back on a different type.
+ |
+ | all fortran routines use an integer 'xdrid', which is an id to the
+ | current xdr file, and is set by xdrfopen.
+ | most routines have in integer 'ret' which is the return value.
+ | The value of 'ret' is zero on failure, and most of the time one
+ | on succes.
+ |
+ | There are three routines useful for C users:
+ |  xdropen(), xdrclose(), xdr3dfcoord().
+ | The first two replace xdrstdio_create and xdr_destroy, and *must* be
+ | used when you plan to use xdr3dfcoord(). (they are also a bit
+ | easier to interface). For writing data other than compressed coordinates 
+ | you should use the standard C xdr routines (see xdr man page)
+ |
+ | xdrfopen(xdrid, filename, mode, ret)
+ |     character *(*) filename
+ |     character *(*) mode
+ |
+ |     this will open the file with the given filename (string)
+ |     and the given mode, it returns an id in xdrid, which is
+ |     to be used in all other calls to xdrf routines.
+ |     mode is 'w' to create, or update an file, for all other
+ |     values of mode the file is opened for reading
+ |
+ |     you need to call xdrfclose to flush the output and close
+ |     the file.
+ |     Note that you should not use xdrstdio_create, which comes with the
+ |     standard xdr library
+ |
+ | xdrfclose(xdrid, ret)
+ |     flush the data to the file, and closes the file;
+ |     You should not use xdr_destroy (which comes standard with
+ |     the xdr libraries.
+ |
+ | xdrfbool(xdrid, bp, ret)
+ |     integer pb
+ |
+ |     This filter produces values of either 1 or 0    
+ |
+ | xdrfchar(xdrid, cp, ret)
+ |     character cp
+ |
+ |     filter that translate between characters and their xdr representation
+ |     Note that the characters in not compressed and occupies 4 bytes.
+ |
+ | xdrfdouble(xdrid, dp, ret)
+ |     double dp
+ |
+ |     read/write a double.
+ |
+ | xdrffloat(xdrid, fp, ret)
+ |     float fp
+ |
+ |     read/write a float.
+ |
+ | xdrfint(xdrid, ip, ret)
+ |     integer ip
+ |
+ |     read/write integer.
+ |
+ | xdrflong(xdrid, lp, ret)
+ |     integer lp
+ |
+ |     this routine has a possible portablility problem due to 64 bits longs.
+ |
+ | xdrfshort(xdrid, sp, ret)
+ |     integer *2 sp
+ |
+ | xdrfstring(xdrid, sp, maxsize, ret)
+ |     character *(*)
+ |     integer maxsize
+ |
+ |     read/write a string, with maximum length given by maxsize
+ |
+ | xdrfwrapstring(xdris, sp, ret)
+ |     character *(*)
+ |
+ |     read/write a string (it is the same as xdrfstring accept that it finds
+ |     the stringlength itself.
+ |
+ | xdrfvector(xdrid, cp, size, xdrfproc, ret)
+ |     character *(*)
+ |     integer size
+ |     external xdrfproc
+ |
+ |     read/write an array pointed to by cp, with number of elements
+ |     defined by 'size'. the routine 'xdrfproc' is the name
+ |     of one of the above routines to read/write data (like xdrfdouble)
+ |     In contrast with the c-version you don't need to specify the
+ |     byte size of an element.
+ |     xdrfstring is not allowed here (it is in the c version)
+ |     
+ | xdrf3dfcoord(xdrid, fp, size, precision, ret)
+ |     real (*) fp
+ |     real precision
+ |     integer size
+ |
+ |     this is *NOT* a standard xdr routine. I named it this way, because
+ |     it invites people to use the other xdr routines.
+ |     It is introduced to store specifically 3d coordinates of molecules
+ |     (as found in molecular dynamics) and it writes it in a compressed way.
+ |     It starts by multiplying all numbers by precision and
+ |     rounding the result to integer. effectively converting
+ |     all floating point numbers to fixed point.
+ |     it uses an algorithm for compression that is optimized for
+ |     molecular data, but could be used for other 3d coordinates
+ |     as well. There is subtantial overhead involved, so call this
+ |     routine only if you have a large number of coordinates to read/write
+ |
+ | ________________________________________________________________________
+ |
+ | Below are the routines to be used by C programmers. Use the 'normal'
+ | xdr routines to write integers, floats, etc (see man xdr)   
+ |
+ | int xdropen(XDR *xdrs, const char *filename, const char *type)
+ |     This will open the file with the given filename and the 
+ |     given mode. You should pass it an allocated XDR struct
+ |     in xdrs, to be used in all other calls to xdr routines.
+ |     Mode is 'w' to create, or update an file, and for all 
+ |     other values of mode the file is opened for reading. 
+ |     You need to call xdrclose to flush the output and close
+ |     the file.
+ |
+ |     Note that you should not use xdrstdio_create, which
+ |     comes with the standard xdr library.
+ |
+ | int xdrclose(XDR *xdrs)
+ |     Flush the data to the file, and close the file;
+ |     You should not use xdr_destroy (which comes standard
+ |     with the xdr libraries).
+ |      
+ | int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision)
+ |     This is \fInot\fR a standard xdr routine. I named it this 
+ |     way, because it invites people to use the other xdr 
+ |     routines.
+ |
+ |     (c) 1995 Frans van Hoesel, hoesel@chem.rug.nl
+*/     
+
+
+#include <limits.h>
+#include <malloc.h>
+#include <math.h>
+/* #include <rpc/rpc.h>
+#include <rpc/xdr.h> */
+#include "xdr.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include "xdrf.h"
+
+int ftocstr(char *, int, char *, int);
+int ctofstr(char *, int, char *);
+
+#define MAXID 20
+static FILE *xdrfiles[MAXID];
+static XDR *xdridptr[MAXID];
+static char xdrmodes[MAXID];
+static unsigned int cnt;
+
+typedef void (* FUNCTION(xdrfproc)) (int *, void *, int *);
+
+void
+FUNCTION(xdrfbool) ARGS(`xdrid, pb, ret')
+int *xdrid, *ret;
+int *pb;
+{
+       *ret = xdr_bool(xdridptr[*xdrid], (bool_t *) pb);
+       cnt += sizeof(int);
+}
+
+void
+FUNCTION(xdrfchar) ARGS(`xdrid, cp, ret')
+int *xdrid, *ret;
+char *cp;
+{
+       *ret = xdr_char(xdridptr[*xdrid], cp);
+       cnt += sizeof(char);
+}
+
+void
+FUNCTION(xdrfdouble) ARGS(`xdrid, dp, ret')
+int *xdrid, *ret;
+double *dp;
+{
+       *ret = xdr_double(xdridptr[*xdrid], dp);
+       cnt += sizeof(double);
+}
+
+void
+FUNCTION(xdrffloat) ARGS(`xdrid, fp, ret')
+int *xdrid, *ret;
+float *fp;
+{
+       *ret = xdr_float(xdridptr[*xdrid], fp);
+       cnt += sizeof(float);
+}
+
+void
+FUNCTION(xdrfint) ARGS(`xdrid, ip, ret')
+int *xdrid, *ret;
+int *ip;
+{
+       *ret = xdr_int(xdridptr[*xdrid], ip);
+       cnt += sizeof(int);
+}
+
+void
+FUNCTION(xdrflong) ARGS(`xdrid, lp, ret')
+int *xdrid, *ret;
+long *lp;
+{
+       *ret = xdr_long(xdridptr[*xdrid], lp);
+       cnt += sizeof(long);
+}
+
+void
+FUNCTION(xdrfshort) ARGS(`xdrid, sp, ret')
+int *xdrid, *ret;
+short *sp;
+{
+       *ret = xdr_short(xdridptr[*xdrid], sp);
+       cnt += sizeof(sp);
+}
+
+void
+FUNCTION(xdrfuchar) ARGS(`xdrid, ucp, ret')
+int *xdrid, *ret;
+char *ucp;
+{
+       *ret = xdr_u_char(xdridptr[*xdrid], ucp);
+       cnt += sizeof(char);
+}
+
+void
+FUNCTION(xdrfulong) ARGS(`xdrid, ulp, ret')
+int *xdrid, *ret;
+unsigned long *ulp;
+{
+       *ret = xdr_u_long(xdridptr[*xdrid], ulp);
+       cnt += sizeof(unsigned long);
+}
+
+void
+FUNCTION(xdrfushort) ARGS(`xdrid, usp, ret')
+int *xdrid, *ret;
+unsigned short *usp;
+{
+       *ret = xdr_u_short(xdridptr[*xdrid], usp);
+       cnt += sizeof(unsigned short);
+}
+
+void 
+FUNCTION(xdrf3dfcoord) ARGS(`xdrid, fp, size, precision, ret')
+int *xdrid, *ret;
+float *fp;
+int *size;
+float *precision;
+{
+       *ret = xdr3dfcoord(xdridptr[*xdrid], fp, size, precision);
+}
+
+void
+FUNCTION(xdrfstring) ARGS(`xdrid, STRING_ARG(sp), maxsize, ret')
+int *xdrid, *ret;
+STRING_ARG_DECL(sp);
+int *maxsize;
+{
+       char *tsp;
+
+       tsp = (char*) malloc(((STRING_LEN(sp)) + 1) * sizeof(char));
+       if (tsp == NULL) {
+           *ret = -1;
+           return;
+       }
+       if (ftocstr(tsp, *maxsize+1, STRING_PTR(sp), STRING_LEN(sp))) {
+           *ret = -1;
+           free(tsp);
+           return;
+       }
+       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int) *maxsize);
+       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
+       cnt += *maxsize;
+       free(tsp);
+}
+
+void
+FUNCTION(xdrfwrapstring) ARGS(`xdrid,  STRING_ARG(sp), ret')
+int *xdrid, *ret;
+STRING_ARG_DECL(sp);
+{
+       char *tsp;
+       int maxsize;
+       maxsize = (STRING_LEN(sp)) + 1;
+       tsp = (char*) malloc(maxsize * sizeof(char));
+       if (tsp == NULL) {
+           *ret = -1;
+           return;
+       }
+       if (ftocstr(tsp, maxsize, STRING_PTR(sp), STRING_LEN(sp))) {
+           *ret = -1;
+           free(tsp);
+           return;
+       }
+       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int)maxsize);
+       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
+       cnt += maxsize;
+       free(tsp);
+}
+
+void
+FUNCTION(xdrfopaque) ARGS(`xdrid, cp, ccnt, ret')
+int *xdrid, *ret;
+caddr_t *cp;
+int *ccnt;
+{
+       *ret = xdr_opaque(xdridptr[*xdrid], (caddr_t)*cp, (u_int)*ccnt);
+       cnt += *ccnt;
+}
+
+void
+FUNCTION(xdrfsetpos) ARGS(`xdrid, pos, ret')
+int *xdrid, *ret;
+int *pos;
+{
+       *ret = xdr_setpos(xdridptr[*xdrid], (u_int) *pos);
+}
+
+void
+FUNCTION(xdrf) ARGS(`xdrid, pos')
+int *xdrid, *pos;
+{
+       *pos = xdr_getpos(xdridptr[*xdrid]);
+}
+
+void
+FUNCTION(xdrfvector) ARGS(`xdrid, cp, size, elproc, ret')
+int *xdrid, *ret;
+char *cp;
+int *size;
+FUNCTION(xdrfproc) elproc;
+{
+       int lcnt;
+       cnt = 0;
+       for (lcnt = 0; lcnt < *size; lcnt++) {
+               elproc(xdrid, (cp+cnt) , ret);
+       }
+}
+
+
+void
+FUNCTION(xdrfclose) ARGS(`xdrid, ret')
+int *xdrid;
+int *ret;
+{
+       *ret = xdrclose(xdridptr[*xdrid]);
+       cnt = 0;
+}
+
+void
+FUNCTION(xdrfopen) ARGS(`xdrid,  STRING_ARG(fp), STRING_ARG(mode), ret')
+int *xdrid;
+STRING_ARG_DECL(fp);
+STRING_ARG_DECL(mode);
+int *ret;
+{
+       char fname[512];
+       char fmode[3];
+
+       if (ftocstr(fname, sizeof(fname), STRING_PTR(fp), STRING_LEN(fp))) {
+               *ret = 0;
+       }
+       if (ftocstr(fmode, sizeof(fmode), STRING_PTR(mode),
+                       STRING_LEN(mode))) {
+               *ret = 0;
+       }
+
+       *xdrid = xdropen(NULL, fname, fmode);
+       if (*xdrid == 0)
+               *ret = 0;
+       else 
+               *ret = 1;       
+}
+
+/*___________________________________________________________________________
+ |
+ | what follows are the C routines for opening, closing xdr streams
+ | and the routine to read/write compressed coordinates together
+ | with some routines to assist in this task (those are marked
+ | static and cannot be called from user programs)
+*/
+#define MAXABS INT_MAX-2
+
+#ifndef MIN
+#define MIN(x,y) ((x) < (y) ? (x):(y))
+#endif
+#ifndef MAX
+#define MAX(x,y) ((x) > (y) ? (x):(y))
+#endif
+#ifndef SQR
+#define SQR(x) ((x)*(x))
+#endif
+static int magicints[] = {
+    0, 0, 0, 0, 0, 0, 0, 0, 0,
+    8, 10, 12, 16, 20, 25, 32, 40, 50, 64,
+    80, 101, 128, 161, 203, 256, 322, 406, 512, 645,
+    812, 1024, 1290, 1625, 2048, 2580, 3250, 4096, 5060, 6501,
+    8192, 10321, 13003, 16384, 20642, 26007, 32768, 41285, 52015, 65536,
+    82570, 104031, 131072, 165140, 208063, 262144, 330280, 416127, 524287, 660561,
+    832255, 1048576, 1321122, 1664510, 2097152, 2642245, 3329021, 4194304, 5284491, 6658042,
+    8388607, 10568983, 13316085, 16777216 };
+
+#define FIRSTIDX 9
+/* note that magicints[FIRSTIDX-1] == 0 */
+#define LASTIDX (sizeof(magicints) / sizeof(*magicints))
+
+
+/*__________________________________________________________________________
+ |
+ | xdropen - open xdr file
+ |
+ | This versions differs from xdrstdio_create, because I need to know
+ | the state of the file (read or write) so I can use xdr3dfcoord
+ | in eigther read or write mode, and the file descriptor
+ | so I can close the file (something xdr_destroy doesn't do).
+ |
+*/
+
+int xdropen(XDR *xdrs, const char *filename, const char *type) {
+    static int init_done = 0;
+    enum xdr_op lmode;
+    const char *type1;
+    int xdrid;
+    
+    if (init_done == 0) {
+       for (xdrid = 1; xdrid < MAXID; xdrid++) {
+           xdridptr[xdrid] = NULL;
+       }
+       init_done = 1;
+    }
+    xdrid = 1;
+    while (xdrid < MAXID && xdridptr[xdrid] != NULL) {
+       xdrid++;
+    }
+    if (xdrid == MAXID) {
+       return 0;
+    }
+    if (*type == 'w' || *type == 'W') {
+           type = "w+";
+           type1 = "w+";
+           lmode = XDR_ENCODE;
+    } else if (*type == 'a' || *type == 'A') {
+           type = "w+";
+            type1 = "a+";
+           lmode = XDR_ENCODE;
+    } else {
+           type = "r";
+            type1 = "r";
+           lmode = XDR_DECODE;
+    }
+    xdrfiles[xdrid] = fopen(filename, type1);
+    if (xdrfiles[xdrid] == NULL) {
+       xdrs = NULL;
+       return 0;
+    }
+    xdrmodes[xdrid] = *type;
+    /* next test isn't usefull in the case of C language
+     * but is used for the Fortran interface
+     * (C users are expected to pass the address of an already allocated
+     * XDR staructure)
+     */
+    if (xdrs == NULL) {
+       xdridptr[xdrid] = (XDR *) malloc(sizeof(XDR));
+       xdrstdio_create(xdridptr[xdrid], xdrfiles[xdrid], lmode);
+    } else {
+       xdridptr[xdrid] = xdrs;
+       xdrstdio_create(xdrs, xdrfiles[xdrid], lmode);
+    }
+    return xdrid;
+}
+
+/*_________________________________________________________________________
+ |
+ | xdrclose - close a xdr file
+ |
+ | This will flush the xdr buffers, and destroy the xdr stream.
+ | It also closes the associated file descriptor (this is *not*
+ | done by xdr_destroy).
+ |
+*/
+int xdrclose(XDR *xdrs) {
+    int xdrid;
+    
+    if (xdrs == NULL) {
+       fprintf(stderr, "xdrclose: passed a NULL pointer\n");
+       exit(1);
+    }
+    for (xdrid = 1; xdrid < MAXID; xdrid++) {
+       if (xdridptr[xdrid] == xdrs) {
+           
+           xdr_destroy(xdrs);
+           fclose(xdrfiles[xdrid]);
+           xdridptr[xdrid] = NULL;
+           return 1;
+       }
+    } 
+    fprintf(stderr, "xdrclose: no such open xdr file\n");
+    exit(1);
+    
+}
+
+/*____________________________________________________________________________
+ |
+ | sendbits - encode num into buf using the specified number of bits
+ |
+ | This routines appends the value of num to the bits already present in
+ | the array buf. You need to give it the number of bits to use and you
+ | better make sure that this number of bits is enough to hold the value
+ | Also num must be positive.
+ |
+*/
+
+static void sendbits(int buf[], int num_of_bits, int num) {
+    
+    unsigned int cnt, lastbyte;
+    int lastbits;
+    unsigned char * cbuf;
+    
+    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
+    cnt = (unsigned int) buf[0];
+    lastbits = buf[1];
+    lastbyte =(unsigned int) buf[2];
+    while (num_of_bits >= 8) {
+       lastbyte = (lastbyte << 8) | ((num >> (num_of_bits -8)) /* & 0xff*/);
+       cbuf[cnt++] = lastbyte >> lastbits;
+       num_of_bits -= 8;
+    }
+    if (num_of_bits > 0) {
+       lastbyte = (lastbyte << num_of_bits) | num;
+       lastbits += num_of_bits;
+       if (lastbits >= 8) {
+           lastbits -= 8;
+           cbuf[cnt++] = lastbyte >> lastbits;
+       }
+    }
+    buf[0] = cnt;
+    buf[1] = lastbits;
+    buf[2] = lastbyte;
+    if (lastbits>0) {
+       cbuf[cnt] = lastbyte << (8 - lastbits);
+    }
+}
+
+/*_________________________________________________________________________
+ |
+ | sizeofint - calculate bitsize of an integer
+ |
+ | return the number of bits needed to store an integer with given max size
+ |
+*/
+
+static int sizeofint(const int size) {
+    unsigned int num = 1;
+    int num_of_bits = 0;
+    
+    while (size >= num && num_of_bits < 32) {
+       num_of_bits++;
+       num <<= 1;
+    }
+    return num_of_bits;
+}
+
+/*___________________________________________________________________________
+ |
+ | sizeofints - calculate 'bitsize' of compressed ints
+ |
+ | given the number of small unsigned integers and the maximum value
+ | return the number of bits needed to read or write them with the
+ | routines receiveints and sendints. You need this parameter when
+ | calling these routines. Note that for many calls I can use
+ | the variable 'smallidx' which is exactly the number of bits, and
+ | So I don't need to call 'sizeofints for those calls.
+*/
+
+static int sizeofints( const int num_of_ints, unsigned int sizes[]) {
+    int i, num;
+    unsigned int num_of_bytes, num_of_bits, bytes[32], bytecnt, tmp;
+    num_of_bytes = 1;
+    bytes[0] = 1;
+    num_of_bits = 0;
+    for (i=0; i < num_of_ints; i++) {  
+       tmp = 0;
+       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
+           tmp = bytes[bytecnt] * sizes[i] + tmp;
+           bytes[bytecnt] = tmp & 0xff;
+           tmp >>= 8;
+       }
+       while (tmp != 0) {
+           bytes[bytecnt++] = tmp & 0xff;
+           tmp >>= 8;
+       }
+       num_of_bytes = bytecnt;
+    }
+    num = 1;
+    num_of_bytes--;
+    while (bytes[num_of_bytes] >= num) {
+       num_of_bits++;
+       num *= 2;
+    }
+    return num_of_bits + num_of_bytes * 8;
+
+}
+    
+/*____________________________________________________________________________
+ |
+ | sendints - send a small set of small integers in compressed format
+ |
+ | this routine is used internally by xdr3dfcoord, to send a set of
+ | small integers to the buffer. 
+ | Multiplication with fixed (specified maximum ) sizes is used to get
+ | to one big, multibyte integer. Allthough the routine could be
+ | modified to handle sizes bigger than 16777216, or more than just
+ | a few integers, this is not done, because the gain in compression
+ | isn't worth the effort. Note that overflowing the multiplication
+ | or the byte buffer (32 bytes) is unchecked and causes bad results.
+ |
+ */
+static void sendints(int buf[], const int num_of_ints, const int num_of_bits,
+       unsigned int sizes[], unsigned int nums[]) {
+
+    int i;
+    unsigned int bytes[32], num_of_bytes, bytecnt, tmp;
+
+    tmp = nums[0];
+    num_of_bytes = 0;
+    do {
+       bytes[num_of_bytes++] = tmp & 0xff;
+       tmp >>= 8;
+    } while (tmp != 0);
+
+    for (i = 1; i < num_of_ints; i++) {
+       if (nums[i] >= sizes[i]) {
+           fprintf(stderr,"major breakdown in sendints num %d doesn't "
+                   "match size %d\n", nums[i], sizes[i]);
+           exit(1);
+       }
+       /* use one step multiply */    
+       tmp = nums[i];
+       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
+           tmp = bytes[bytecnt] * sizes[i] + tmp;
+           bytes[bytecnt] = tmp & 0xff;
+           tmp >>= 8;
+       }
+       while (tmp != 0) {
+           bytes[bytecnt++] = tmp & 0xff;
+           tmp >>= 8;
+       }
+       num_of_bytes = bytecnt;
+    }
+    if (num_of_bits >= num_of_bytes * 8) {
+       for (i = 0; i < num_of_bytes; i++) {
+           sendbits(buf, 8, bytes[i]);
+       }
+       sendbits(buf, num_of_bits - num_of_bytes * 8, 0);
+    } else {
+       for (i = 0; i < num_of_bytes-1; i++) {
+           sendbits(buf, 8, bytes[i]);
+       }
+       sendbits(buf, num_of_bits- (num_of_bytes -1) * 8, bytes[i]);
+    }
+}
+
+
+/*___________________________________________________________________________
+ |
+ | receivebits - decode number from buf using specified number of bits
+ | 
+ | extract the number of bits from the array buf and construct an integer
+ | from it. Return that value.
+ |
+*/
+
+static int receivebits(int buf[], int num_of_bits) {
+
+    int cnt, num; 
+    unsigned int lastbits, lastbyte;
+    unsigned char * cbuf;
+    int mask = (1 << num_of_bits) -1;
+
+    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
+    cnt = buf[0];
+    lastbits = (unsigned int) buf[1];
+    lastbyte = (unsigned int) buf[2];
+    
+    num = 0;
+    while (num_of_bits >= 8) {
+       lastbyte = ( lastbyte << 8 ) | cbuf[cnt++];
+       num |=  (lastbyte >> lastbits) << (num_of_bits - 8);
+       num_of_bits -=8;
+    }
+    if (num_of_bits > 0) {
+       if (lastbits < num_of_bits) {
+           lastbits += 8;
+           lastbyte = (lastbyte << 8) | cbuf[cnt++];
+       }
+       lastbits -= num_of_bits;
+       num |= (lastbyte >> lastbits) & ((1 << num_of_bits) -1);
+    }
+    num &= mask;
+    buf[0] = cnt;
+    buf[1] = lastbits;
+    buf[2] = lastbyte;
+    return num; 
+}
+
+/*____________________________________________________________________________
+ |
+ | receiveints - decode 'small' integers from the buf array
+ |
+ | this routine is the inverse from sendints() and decodes the small integers
+ | written to buf by calculating the remainder and doing divisions with
+ | the given sizes[]. You need to specify the total number of bits to be
+ | used from buf in num_of_bits.
+ |
+*/
+
+static void receiveints(int buf[], const int num_of_ints, int num_of_bits,
+       unsigned int sizes[], int nums[]) {
+    int bytes[32];
+    int i, j, num_of_bytes, p, num;
+    
+    bytes[1] = bytes[2] = bytes[3] = 0;
+    num_of_bytes = 0;
+    while (num_of_bits > 8) {
+       bytes[num_of_bytes++] = receivebits(buf, 8);
+       num_of_bits -= 8;
+    }
+    if (num_of_bits > 0) {
+       bytes[num_of_bytes++] = receivebits(buf, num_of_bits);
+    }
+    for (i = num_of_ints-1; i > 0; i--) {
+       num = 0;
+       for (j = num_of_bytes-1; j >=0; j--) {
+           num = (num << 8) | bytes[j];
+           p = num / sizes[i];
+           bytes[j] = p;
+           num = num - p * sizes[i];
+       }
+       nums[i] = num;
+    }
+    nums[0] = bytes[0] | (bytes[1] << 8) | (bytes[2] << 16) | (bytes[3] << 24);
+}
+    
+/*____________________________________________________________________________
+ |
+ | xdr3dfcoord - read or write compressed 3d coordinates to xdr file.
+ |
+ | this routine reads or writes (depending on how you opened the file with
+ | xdropen() ) a large number of 3d coordinates (stored in *fp).
+ | The number of coordinates triplets to write is given by *size. On
+ | read this number may be zero, in which case it reads as many as were written
+ | or it may specify the number if triplets to read (which should match the
+ | number written).
+ | Compression is achieved by first converting all floating numbers to integer
+ | using multiplication by *precision and rounding to the nearest integer.
+ | Then the minimum and maximum value are calculated to determine the range.
+ | The limited range of integers so found, is used to compress the coordinates.
+ | In addition the differences between succesive coordinates is calculated.
+ | If the difference happens to be 'small' then only the difference is saved,
+ | compressing the data even more. The notion of 'small' is changed dynamically
+ | and is enlarged or reduced whenever needed or possible.
+ | Extra compression is achieved in the case of GROMOS and coordinates of
+ | water molecules. GROMOS first writes out the Oxygen position, followed by
+ | the two hydrogens. In order to make the differences smaller (and thereby
+ | compression the data better) the order is changed into first one hydrogen
+ | then the oxygen, followed by the other hydrogen. This is rather special, but
+ | it shouldn't harm in the general case.
+ |
+ */
+int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) {
+    
+
+    static int *ip = NULL;
+    static int oldsize;
+    static int *buf;
+
+    int minint[3], maxint[3], mindiff, *lip, diff;
+    int lint1, lint2, lint3, oldlint1, oldlint2, oldlint3, smallidx;
+    int minidx, maxidx;
+    unsigned sizeint[3], sizesmall[3], bitsizeint[3], size3, *luip;
+    int flag, k;
+    int small, smaller, larger, i, is_small, is_smaller, run, prevrun;
+    float *lfp, lf;
+    int tmp, *thiscoord,  prevcoord[3];
+    unsigned int tmpcoord[30];
+
+    int bufsize, xdrid, lsize;
+    unsigned int bitsize;
+    float inv_precision;
+    int errval = 1;
+
+    /* find out if xdrs is opened for reading or for writing */
+    xdrid = 0;
+    while (xdridptr[xdrid] != xdrs) {
+       xdrid++;
+       if (xdrid >= MAXID) {
+           fprintf(stderr, "xdr error. no open xdr stream\n");
+           exit (1);
+       }
+    }
+    if (xdrmodes[xdrid] == 'w') {
+
+       /* xdrs is open for writing */
+
+       if (xdr_int(xdrs, size) == 0)
+           return 0;
+       size3 = *size * 3;
+       /* when the number of coordinates is small, don't try to compress; just
+        * write them as floats using xdr_vector
+        */
+       if (*size <= 9 ) {
+           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
+               (xdrproc_t)xdr_float));
+       }
+       
+       xdr_float(xdrs, precision);
+       if (ip == NULL) {
+           ip = (int *)malloc(size3 * sizeof(*ip));
+           if (ip == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           bufsize = size3 * 1.2;
+           buf = (int *)malloc(bufsize * sizeof(*buf));
+           if (buf == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           oldsize = *size;
+       } else if (*size > oldsize) {
+           ip = (int *)realloc(ip, size3 * sizeof(*ip));
+           if (ip == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           bufsize = size3 * 1.2;
+           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
+           if (buf == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           oldsize = *size;
+       }
+       /* buf[0-2] are special and do not contain actual data */
+       buf[0] = buf[1] = buf[2] = 0;
+       minint[0] = minint[1] = minint[2] = INT_MAX;
+       maxint[0] = maxint[1] = maxint[2] = INT_MIN;
+       prevrun = -1;
+       lfp = fp;
+       lip = ip;
+       mindiff = INT_MAX;
+       oldlint1 = oldlint2 = oldlint3 = 0;
+       while(lfp < fp + size3 ) {
+           /* find nearest integer */
+           if (*lfp >= 0.0)
+               lf = *lfp * *precision + 0.5;
+           else
+               lf = *lfp * *precision - 0.5;
+           if (fabs(lf) > MAXABS) {
+               /* scaling would cause overflow */
+               errval = 0;
+           }
+           lint1 = lf;
+           if (lint1 < minint[0]) minint[0] = lint1;
+           if (lint1 > maxint[0]) maxint[0] = lint1;
+           *lip++ = lint1;
+           lfp++;
+           if (*lfp >= 0.0)
+               lf = *lfp * *precision + 0.5;
+           else
+               lf = *lfp * *precision - 0.5;
+           if (fabs(lf) > MAXABS) {
+               /* scaling would cause overflow */
+               errval = 0;
+           }
+           lint2 = lf;
+           if (lint2 < minint[1]) minint[1] = lint2;
+           if (lint2 > maxint[1]) maxint[1] = lint2;
+           *lip++ = lint2;
+           lfp++;
+           if (*lfp >= 0.0)
+               lf = *lfp * *precision + 0.5;
+           else
+               lf = *lfp * *precision - 0.5;
+           if (fabs(lf) > MAXABS) {
+               /* scaling would cause overflow */
+               errval = 0;
+           }
+           lint3 = lf;
+           if (lint3 < minint[2]) minint[2] = lint3;
+           if (lint3 > maxint[2]) maxint[2] = lint3;
+           *lip++ = lint3;
+           lfp++;
+           diff = abs(oldlint1-lint1)+abs(oldlint2-lint2)+abs(oldlint3-lint3);
+           if (diff < mindiff && lfp > fp + 3)
+               mindiff = diff;
+           oldlint1 = lint1;
+           oldlint2 = lint2;
+           oldlint3 = lint3;
+       }
+       xdr_int(xdrs, &(minint[0]));
+       xdr_int(xdrs, &(minint[1]));
+       xdr_int(xdrs, &(minint[2]));
+       
+       xdr_int(xdrs, &(maxint[0]));
+       xdr_int(xdrs, &(maxint[1]));
+       xdr_int(xdrs, &(maxint[2]));
+       
+       if ((float)maxint[0] - (float)minint[0] >= MAXABS ||
+               (float)maxint[1] - (float)minint[1] >= MAXABS ||
+               (float)maxint[2] - (float)minint[2] >= MAXABS) {
+           /* turning value in unsigned by subtracting minint
+            * would cause overflow
+            */
+           errval = 0;
+       }
+       sizeint[0] = maxint[0] - minint[0]+1;
+       sizeint[1] = maxint[1] - minint[1]+1;
+       sizeint[2] = maxint[2] - minint[2]+1;
+       
+       /* check if one of the sizes is to big to be multiplied */
+       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
+           bitsizeint[0] = sizeofint(sizeint[0]);
+           bitsizeint[1] = sizeofint(sizeint[1]);
+           bitsizeint[2] = sizeofint(sizeint[2]);
+           bitsize = 0; /* flag the use of large sizes */
+       } else {
+           bitsize = sizeofints(3, sizeint);
+       }
+       lip = ip;
+       luip = (unsigned int *) ip;
+       smallidx = FIRSTIDX;
+       while (smallidx < LASTIDX && magicints[smallidx] < mindiff) {
+           smallidx++;
+       }
+       xdr_int(xdrs, &smallidx);
+       maxidx = MIN(LASTIDX, smallidx + 8) ;
+       minidx = maxidx - 8; /* often this equal smallidx */
+       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
+       small = magicints[smallidx] / 2;
+       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
+       larger = magicints[maxidx] / 2;
+       i = 0;
+       while (i < *size) {
+           is_small = 0;
+           thiscoord = (int *)(luip) + i * 3;
+           if (smallidx < maxidx && i >= 1 &&
+                   abs(thiscoord[0] - prevcoord[0]) < larger &&
+                   abs(thiscoord[1] - prevcoord[1]) < larger &&
+                   abs(thiscoord[2] - prevcoord[2]) < larger) {
+               is_smaller = 1;
+           } else if (smallidx > minidx) {
+               is_smaller = -1;
+           } else {
+               is_smaller = 0;
+           }
+           if (i + 1 < *size) {
+               if (abs(thiscoord[0] - thiscoord[3]) < small &&
+                       abs(thiscoord[1] - thiscoord[4]) < small &&
+                       abs(thiscoord[2] - thiscoord[5]) < small) {
+                   /* interchange first with second atom for better
+                    * compression of water molecules
+                    */
+                   tmp = thiscoord[0]; thiscoord[0] = thiscoord[3];
+                       thiscoord[3] = tmp;
+                   tmp = thiscoord[1]; thiscoord[1] = thiscoord[4];
+                       thiscoord[4] = tmp;
+                   tmp = thiscoord[2]; thiscoord[2] = thiscoord[5];
+                       thiscoord[5] = tmp;
+                   is_small = 1;
+               }
+    
+           }
+           tmpcoord[0] = thiscoord[0] - minint[0];
+           tmpcoord[1] = thiscoord[1] - minint[1];
+           tmpcoord[2] = thiscoord[2] - minint[2];
+           if (bitsize == 0) {
+               sendbits(buf, bitsizeint[0], tmpcoord[0]);
+               sendbits(buf, bitsizeint[1], tmpcoord[1]);
+               sendbits(buf, bitsizeint[2], tmpcoord[2]);
+           } else {
+               sendints(buf, 3, bitsize, sizeint, tmpcoord);
+           }
+           prevcoord[0] = thiscoord[0];
+           prevcoord[1] = thiscoord[1];
+           prevcoord[2] = thiscoord[2];
+           thiscoord = thiscoord + 3;
+           i++;
+           
+           run = 0;
+           if (is_small == 0 && is_smaller == -1)
+               is_smaller = 0;
+           while (is_small && run < 8*3) {
+               if (is_smaller == -1 && (
+                       SQR(thiscoord[0] - prevcoord[0]) +
+                       SQR(thiscoord[1] - prevcoord[1]) +
+                       SQR(thiscoord[2] - prevcoord[2]) >= smaller * smaller)) {
+                   is_smaller = 0;
+               }
+
+               tmpcoord[run++] = thiscoord[0] - prevcoord[0] + small;
+               tmpcoord[run++] = thiscoord[1] - prevcoord[1] + small;
+               tmpcoord[run++] = thiscoord[2] - prevcoord[2] + small;
+               
+               prevcoord[0] = thiscoord[0];
+               prevcoord[1] = thiscoord[1];
+               prevcoord[2] = thiscoord[2];
+
+               i++;
+               thiscoord = thiscoord + 3;
+               is_small = 0;
+               if (i < *size &&
+                       abs(thiscoord[0] - prevcoord[0]) < small &&
+                       abs(thiscoord[1] - prevcoord[1]) < small &&
+                       abs(thiscoord[2] - prevcoord[2]) < small) {
+                   is_small = 1;
+               }
+           }
+           if (run != prevrun || is_smaller != 0) {
+               prevrun = run;
+               sendbits(buf, 1, 1); /* flag the change in run-length */
+               sendbits(buf, 5, run+is_smaller+1);
+           } else {
+               sendbits(buf, 1, 0); /* flag the fact that runlength did not change */
+           }
+           for (k=0; k < run; k+=3) {
+               sendints(buf, 3, smallidx, sizesmall, &tmpcoord[k]);    
+           }
+           if (is_smaller != 0) {
+               smallidx += is_smaller;
+               if (is_smaller < 0) {
+                   small = smaller;
+                   smaller = magicints[smallidx-1] / 2;
+               } else {
+                   smaller = small;
+                   small = magicints[smallidx] / 2;
+               }
+               sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
+           }
+       }
+       if (buf[1] != 0) buf[0]++;;
+       xdr_int(xdrs, &(buf[0])); /* buf[0] holds the length in bytes */
+       return errval * (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]));
+    } else {
+       
+       /* xdrs is open for reading */
+       
+       if (xdr_int(xdrs, &lsize) == 0) 
+           return 0;
+       if (*size != 0 && lsize != *size) {
+           fprintf(stderr, "wrong number of coordinates in xdr3dfcoor; "
+                   "%d arg vs %d in file", *size, lsize);
+       }
+       *size = lsize;
+       size3 = *size * 3;
+       if (*size <= 9) {
+           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
+               (xdrproc_t)xdr_float));
+       }
+       xdr_float(xdrs, precision);
+       if (ip == NULL) {
+           ip = (int *)malloc(size3 * sizeof(*ip));
+           if (ip == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           bufsize = size3 * 1.2;
+           buf = (int *)malloc(bufsize * sizeof(*buf));
+           if (buf == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           oldsize = *size;
+       } else if (*size > oldsize) {
+           ip = (int *)realloc(ip, size3 * sizeof(*ip));
+           if (ip == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           bufsize = size3 * 1.2;
+           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
+           if (buf == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           oldsize = *size;
+       }
+       buf[0] = buf[1] = buf[2] = 0;
+       
+       xdr_int(xdrs, &(minint[0]));
+       xdr_int(xdrs, &(minint[1]));
+       xdr_int(xdrs, &(minint[2]));
+
+       xdr_int(xdrs, &(maxint[0]));
+       xdr_int(xdrs, &(maxint[1]));
+       xdr_int(xdrs, &(maxint[2]));
+               
+       sizeint[0] = maxint[0] - minint[0]+1;
+       sizeint[1] = maxint[1] - minint[1]+1;
+       sizeint[2] = maxint[2] - minint[2]+1;
+       
+       /* check if one of the sizes is to big to be multiplied */
+       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
+           bitsizeint[0] = sizeofint(sizeint[0]);
+           bitsizeint[1] = sizeofint(sizeint[1]);
+           bitsizeint[2] = sizeofint(sizeint[2]);
+           bitsize = 0; /* flag the use of large sizes */
+       } else {
+           bitsize = sizeofints(3, sizeint);
+       }
+       
+       xdr_int(xdrs, &smallidx);
+       maxidx = MIN(LASTIDX, smallidx + 8) ;
+       minidx = maxidx - 8; /* often this equal smallidx */
+       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
+       small = magicints[smallidx] / 2;
+       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
+       larger = magicints[maxidx];
+
+       /* buf[0] holds the length in bytes */
+
+       if (xdr_int(xdrs, &(buf[0])) == 0)
+           return 0;
+       if (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]) == 0)
+           return 0;
+       buf[0] = buf[1] = buf[2] = 0;
+       
+       lfp = fp;
+       inv_precision = 1.0 / * precision;
+       run = 0;
+       i = 0;
+       lip = ip;
+       while ( i < lsize ) {
+           thiscoord = (int *)(lip) + i * 3;
+
+           if (bitsize == 0) {
+               thiscoord[0] = receivebits(buf, bitsizeint[0]);
+               thiscoord[1] = receivebits(buf, bitsizeint[1]);
+               thiscoord[2] = receivebits(buf, bitsizeint[2]);
+           } else {
+               receiveints(buf, 3, bitsize, sizeint, thiscoord);
+           }
+           
+           i++;
+           thiscoord[0] += minint[0];
+           thiscoord[1] += minint[1];
+           thiscoord[2] += minint[2];
+           
+           prevcoord[0] = thiscoord[0];
+           prevcoord[1] = thiscoord[1];
+           prevcoord[2] = thiscoord[2];
+           
+          
+           flag = receivebits(buf, 1);
+           is_smaller = 0;
+           if (flag == 1) {
+               run = receivebits(buf, 5);
+               is_smaller = run % 3;
+               run -= is_smaller;
+               is_smaller--;
+           }
+           if (run > 0) {
+               thiscoord += 3;
+               for (k = 0; k < run; k+=3) {
+                   receiveints(buf, 3, smallidx, sizesmall, thiscoord);
+                   i++;
+                   thiscoord[0] += prevcoord[0] - small;
+                   thiscoord[1] += prevcoord[1] - small;
+                   thiscoord[2] += prevcoord[2] - small;
+                   if (k == 0) {
+                       /* interchange first with second atom for better
+                        * compression of water molecules
+                        */
+                       tmp = thiscoord[0]; thiscoord[0] = prevcoord[0];
+                               prevcoord[0] = tmp;
+                       tmp = thiscoord[1]; thiscoord[1] = prevcoord[1];
+                               prevcoord[1] = tmp;
+                       tmp = thiscoord[2]; thiscoord[2] = prevcoord[2];
+                               prevcoord[2] = tmp;
+                       *lfp++ = prevcoord[0] * inv_precision;
+                       *lfp++ = prevcoord[1] * inv_precision;
+                       *lfp++ = prevcoord[2] * inv_precision;
+                   } else {
+                       prevcoord[0] = thiscoord[0];
+                       prevcoord[1] = thiscoord[1];
+                       prevcoord[2] = thiscoord[2];
+                   }
+                   *lfp++ = thiscoord[0] * inv_precision;
+                   *lfp++ = thiscoord[1] * inv_precision;
+                   *lfp++ = thiscoord[2] * inv_precision;
+               }
+           } else {
+               *lfp++ = thiscoord[0] * inv_precision;
+               *lfp++ = thiscoord[1] * inv_precision;
+               *lfp++ = thiscoord[2] * inv_precision;          
+           }
+           smallidx += is_smaller;
+           if (is_smaller < 0) {
+               small = smaller;
+               if (smallidx > FIRSTIDX) {
+                   smaller = magicints[smallidx - 1] /2;
+               } else {
+                   smaller = 0;
+               }
+           } else if (is_smaller > 0) {
+               smaller = small;
+               small = magicints[smallidx] / 2;
+           }
+           sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
+       }
+    }
+    return 1;
+}
+
+
+   
diff --git a/source/lib/xdrf/types.h b/source/lib/xdrf/types.h
new file mode 100644 (file)
index 0000000..871f3fd
--- /dev/null
@@ -0,0 +1,99 @@
+/*
+ * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
+ * unrestricted use provided that this legend is included on all tape
+ * media and as a part of the software program in whole or part.  Users
+ * may copy or modify Sun RPC without charge, but are not authorized
+ * to license or distribute it to anyone else except as part of a product or
+ * program developed by the user.
+ *
+ * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
+ * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
+ *
+ * Sun RPC is provided with no support and without any obligation on the
+ * part of Sun Microsystems, Inc. to assist in its use, correction,
+ * modification or enhancement.
+ *
+ * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
+ * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
+ * OR ANY PART THEREOF.
+ *
+ * In no event will Sun Microsystems, Inc. be liable for any lost revenue
+ * or profits or other special, indirect and consequential damages, even if
+ * Sun has been advised of the possibility of such damages.
+ *
+ * Sun Microsystems, Inc.
+ * 2550 Garcia Avenue
+ * Mountain View, California  94043
+ */
+/* fixincludes should not add extern "C" to this file */
+/*
+ * Rpc additions to <sys/types.h>
+ */
+#ifndef _RPC_TYPES_H
+#define _RPC_TYPES_H 1
+
+typedef int bool_t;
+typedef int enum_t;
+/* This needs to be changed to uint32_t in the future */
+typedef unsigned long rpcprog_t;
+typedef unsigned long rpcvers_t;
+typedef unsigned long rpcproc_t;
+typedef unsigned long rpcprot_t;
+typedef unsigned long rpcport_t;
+
+#define        __dontcare__    -1
+
+#ifndef FALSE
+#      define  FALSE   (0)
+#endif
+
+#ifndef TRUE
+#      define  TRUE    (1)
+#endif
+
+#ifndef NULL
+#      define  NULL 0
+#endif
+
+#include <stdlib.h>            /* For malloc decl.  */
+#define mem_alloc(bsize)       malloc(bsize)
+/*
+ * XXX: This must not use the second argument, or code in xdr_array.c needs
+ * to be modified.
+ */
+#define mem_free(ptr, bsize)   free(ptr)
+
+#ifndef makedev /* ie, we haven't already included it */
+#include <sys/types.h>
+#endif
+
+#ifndef __u_char_defined
+typedef __u_char u_char;
+typedef __u_short u_short;
+typedef __u_int u_int;
+typedef __u_long u_long;
+typedef __quad_t quad_t;
+typedef __u_quad_t u_quad_t;
+typedef __fsid_t fsid_t;
+# define __u_char_defined
+#endif
+#ifndef __daddr_t_defined
+typedef __daddr_t daddr_t;
+typedef __caddr_t caddr_t;
+# define __daddr_t_defined
+#endif
+
+#include <sys/time.h>
+#include <sys/param.h>
+
+#include <netinet/in.h>
+
+#ifndef INADDR_LOOPBACK
+#define       INADDR_LOOPBACK         (u_long)0x7F000001
+#endif
+#ifndef MAXHOSTNAMELEN
+#define        MAXHOSTNAMELEN  64
+#endif
+
+#endif /* rpc/types.h */
diff --git a/source/lib/xdrf/underscore.m4 b/source/lib/xdrf/underscore.m4
new file mode 100644 (file)
index 0000000..4d620a0
--- /dev/null
@@ -0,0 +1,19 @@
+divert(-1)
+undefine(`len')
+#
+# append an underscore to FORTRAN function names
+#
+define(`FUNCTION',`$1_')
+#
+# FORTRAN character strings are passed as follows:
+# a pointer to the base of the string is passed in the normal
+# argument list, and the length is passed by value as an extra
+# argument, after all of the other arguments.
+#
+define(`ARGS',`($1`'undivert(1))')
+define(`SAVE',`divert(1)$1`'divert(0)')
+define(`STRING_ARG',`$1_ptr`'SAVE(`, $1_len')')
+define(`STRING_ARG_DECL',`char * $1_ptr; int $1_len')
+define(`STRING_LEN',`$1_len')
+define(`STRING_PTR',`$1_ptr')
+divert(0)
diff --git a/source/lib/xdrf/xdr.c b/source/lib/xdrf/xdr.c
new file mode 100644 (file)
index 0000000..33b8544
--- /dev/null
@@ -0,0 +1,752 @@
+# define INTUSE(name) name
+# define INTDEF(name)
+/* @(#)xdr.c   2.1 88/07/29 4.0 RPCSRC */
+/*
+ * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
+ * unrestricted use provided that this legend is included on all tape
+ * media and as a part of the software program in whole or part.  Users
+ * may copy or modify Sun RPC without charge, but are not authorized
+ * to license or distribute it to anyone else except as part of a product or
+ * program developed by the user.
+ *
+ * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
+ * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
+ *
+ * Sun RPC is provided with no support and without any obligation on the
+ * part of Sun Microsystems, Inc. to assist in its use, correction,
+ * modification or enhancement.
+ *
+ * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
+ * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
+ * OR ANY PART THEREOF.
+ *
+ * In no event will Sun Microsystems, Inc. be liable for any lost revenue
+ * or profits or other special, indirect and consequential damages, even if
+ * Sun has been advised of the possibility of such damages.
+ *
+ * Sun Microsystems, Inc.
+ * 2550 Garcia Avenue
+ * Mountain View, California  94043
+ */
+#if !defined(lint) && defined(SCCSIDS)
+static char sccsid[] = "@(#)xdr.c 1.35 87/08/12";
+#endif
+
+/*
+ * xdr.c, Generic XDR routines implementation.
+ *
+ * Copyright (C) 1986, Sun Microsystems, Inc.
+ *
+ * These are the "generic" xdr routines used to serialize and de-serialize
+ * most common data items.  See xdr.h for more info on the interface to
+ * xdr.
+ */
+
+#include <stdio.h>
+#include <limits.h>
+#include <string.h>
+#include <libintl.h>
+
+#include "types.h"
+#include "xdr.h"
+
+#ifdef USE_IN_LIBIO
+# include <wchar.h>
+#endif
+
+/*
+ * constants specific to the xdr "protocol"
+ */
+#define XDR_FALSE      ((long) 0)
+#define XDR_TRUE       ((long) 1)
+#define LASTUNSIGNED   ((u_int) 0-1)
+
+/*
+ * for unit alignment
+ */
+static const char xdr_zero[BYTES_PER_XDR_UNIT] = {0, 0, 0, 0};
+
+/*
+ * Free a data structure using XDR
+ * Not a filter, but a convenient utility nonetheless
+ */
+void
+xdr_free (xdrproc_t proc, char *objp)
+{
+  XDR x;
+
+  x.x_op = XDR_FREE;
+  (*proc) (&x, objp);
+}
+
+/*
+ * XDR nothing
+ */
+bool_t
+xdr_void (void)
+{
+  return TRUE;
+}
+INTDEF(xdr_void)
+
+/*
+ * XDR integers
+ */
+bool_t
+xdr_int (XDR *xdrs, int *ip)
+{
+
+#if INT_MAX < LONG_MAX
+  long l;
+
+  switch (xdrs->x_op)
+    {
+    case XDR_ENCODE:
+      l = (long) *ip;
+      return XDR_PUTLONG (xdrs, &l);
+
+    case XDR_DECODE:
+      if (!XDR_GETLONG (xdrs, &l))
+       {
+         return FALSE;
+       }
+      *ip = (int) l;
+    case XDR_FREE:
+      return TRUE;
+    }
+  return FALSE;
+#elif INT_MAX == LONG_MAX
+  return INTUSE(xdr_long) (xdrs, (long *) ip);
+#elif INT_MAX == SHRT_MAX
+  return INTUSE(xdr_short) (xdrs, (short *) ip);
+#else
+#error unexpected integer sizes in_xdr_int()
+#endif
+}
+INTDEF(xdr_int)
+
+/*
+ * XDR unsigned integers
+ */
+bool_t
+xdr_u_int (XDR *xdrs, u_int *up)
+{
+#if UINT_MAX < ULONG_MAX
+  long l;
+
+  switch (xdrs->x_op)
+    {
+    case XDR_ENCODE:
+      l = (u_long) * up;
+      return XDR_PUTLONG (xdrs, &l);
+
+    case XDR_DECODE:
+      if (!XDR_GETLONG (xdrs, &l))
+       {
+         return FALSE;
+       }
+      *up = (u_int) (u_long) l;
+    case XDR_FREE:
+      return TRUE;
+    }
+  return FALSE;
+#elif UINT_MAX == ULONG_MAX
+  return INTUSE(xdr_u_long) (xdrs, (u_long *) up);
+#elif UINT_MAX == USHRT_MAX
+  return INTUSE(xdr_short) (xdrs, (short *) up);
+#else
+#error unexpected integer sizes in_xdr_u_int()
+#endif
+}
+INTDEF(xdr_u_int)
+
+/*
+ * XDR long integers
+ * The definition of xdr_long() is kept for backward
+ * compatibility. Instead xdr_int() should be used.
+ */
+bool_t
+xdr_long (XDR *xdrs, long *lp)
+{
+
+  if (xdrs->x_op == XDR_ENCODE
+      && (sizeof (int32_t) == sizeof (long)
+         || (int32_t) *lp == *lp))
+    return XDR_PUTLONG (xdrs, lp);
+
+  if (xdrs->x_op == XDR_DECODE)
+    return XDR_GETLONG (xdrs, lp);
+
+  if (xdrs->x_op == XDR_FREE)
+    return TRUE;
+
+  return FALSE;
+}
+INTDEF(xdr_long)
+
+/*
+ * XDR unsigned long integers
+ * The definition of xdr_u_long() is kept for backward
+ * compatibility. Instead xdr_u_int() should be used.
+ */
+bool_t
+xdr_u_long (XDR *xdrs, u_long *ulp)
+{
+  switch (xdrs->x_op)
+    {
+    case XDR_DECODE:
+      {
+       long int tmp;
+
+       if (XDR_GETLONG (xdrs, &tmp) == FALSE)
+         return FALSE;
+
+       *ulp = (uint32_t) tmp;
+       return TRUE;
+      }
+
+    case XDR_ENCODE:
+      if (sizeof (uint32_t) != sizeof (u_long)
+         && (uint32_t) *ulp != *ulp)
+       return FALSE;
+
+      return XDR_PUTLONG (xdrs, (long *) ulp);
+
+    case XDR_FREE:
+      return TRUE;
+    }
+  return FALSE;
+}
+INTDEF(xdr_u_long)
+
+/*
+ * XDR hyper integers
+ * same as xdr_u_hyper - open coded to save a proc call!
+ */
+bool_t
+xdr_hyper (XDR *xdrs, quad_t *llp)
+{
+  long int t1, t2;
+
+  if (xdrs->x_op == XDR_ENCODE)
+    {
+      t1 = (long) ((*llp) >> 32);
+      t2 = (long) (*llp);
+      return (XDR_PUTLONG(xdrs, &t1) && XDR_PUTLONG(xdrs, &t2));
+    }
+
+  if (xdrs->x_op == XDR_DECODE)
+    {
+      if (!XDR_GETLONG(xdrs, &t1) || !XDR_GETLONG(xdrs, &t2))
+       return FALSE;
+      *llp = ((quad_t) t1) << 32;
+      *llp |= (uint32_t) t2;
+      return TRUE;
+    }
+
+  if (xdrs->x_op == XDR_FREE)
+    return TRUE;
+
+  return FALSE;
+}
+INTDEF(xdr_hyper)
+
+
+/*
+ * XDR hyper integers
+ * same as xdr_hyper - open coded to save a proc call!
+ */
+bool_t
+xdr_u_hyper (XDR *xdrs, u_quad_t *ullp)
+{
+  long int t1, t2;
+
+  if (xdrs->x_op == XDR_ENCODE)
+    {
+      t1 = (unsigned long) ((*ullp) >> 32);
+      t2 = (unsigned long) (*ullp);
+      return (XDR_PUTLONG(xdrs, &t1) && XDR_PUTLONG(xdrs, &t2));
+    }
+
+  if (xdrs->x_op == XDR_DECODE)
+    {
+      if (!XDR_GETLONG(xdrs, &t1) || !XDR_GETLONG(xdrs, &t2))
+       return FALSE;
+      *ullp = ((u_quad_t) t1) << 32;
+      *ullp |= (uint32_t) t2;
+      return TRUE;
+    }
+
+  if (xdrs->x_op == XDR_FREE)
+    return TRUE;
+
+  return FALSE;
+}
+INTDEF(xdr_u_hyper)
+
+bool_t
+xdr_longlong_t (XDR *xdrs, quad_t *llp)
+{
+  return INTUSE(xdr_hyper) (xdrs, llp);
+}
+
+bool_t
+xdr_u_longlong_t (XDR *xdrs, u_quad_t *ullp)
+{
+  return INTUSE(xdr_u_hyper) (xdrs, ullp);
+}
+
+/*
+ * XDR short integers
+ */
+bool_t
+xdr_short (XDR *xdrs, short *sp)
+{
+  long l;
+
+  switch (xdrs->x_op)
+    {
+    case XDR_ENCODE:
+      l = (long) *sp;
+      return XDR_PUTLONG (xdrs, &l);
+
+    case XDR_DECODE:
+      if (!XDR_GETLONG (xdrs, &l))
+       {
+         return FALSE;
+       }
+      *sp = (short) l;
+      return TRUE;
+
+    case XDR_FREE:
+      return TRUE;
+    }
+  return FALSE;
+}
+INTDEF(xdr_short)
+
+/*
+ * XDR unsigned short integers
+ */
+bool_t
+xdr_u_short (XDR *xdrs, u_short *usp)
+{
+  long l;
+
+  switch (xdrs->x_op)
+    {
+    case XDR_ENCODE:
+      l = (u_long) * usp;
+      return XDR_PUTLONG (xdrs, &l);
+
+    case XDR_DECODE:
+      if (!XDR_GETLONG (xdrs, &l))
+       {
+         return FALSE;
+       }
+      *usp = (u_short) (u_long) l;
+      return TRUE;
+
+    case XDR_FREE:
+      return TRUE;
+    }
+  return FALSE;
+}
+INTDEF(xdr_u_short)
+
+
+/*
+ * XDR a char
+ */
+bool_t
+xdr_char (XDR *xdrs, char *cp)
+{
+  int i;
+
+  i = (*cp);
+  if (!INTUSE(xdr_int) (xdrs, &i))
+    {
+      return FALSE;
+    }
+  *cp = i;
+  return TRUE;
+}
+
+/*
+ * XDR an unsigned char
+ */
+bool_t
+xdr_u_char (XDR *xdrs, u_char *cp)
+{
+  u_int u;
+
+  u = (*cp);
+  if (!INTUSE(xdr_u_int) (xdrs, &u))
+    {
+      return FALSE;
+    }
+  *cp = u;
+  return TRUE;
+}
+
+/*
+ * XDR booleans
+ */
+bool_t
+xdr_bool (XDR *xdrs, bool_t *bp)
+{
+  long lb;
+
+  switch (xdrs->x_op)
+    {
+    case XDR_ENCODE:
+      lb = *bp ? XDR_TRUE : XDR_FALSE;
+      return XDR_PUTLONG (xdrs, &lb);
+
+    case XDR_DECODE:
+      if (!XDR_GETLONG (xdrs, &lb))
+       {
+         return FALSE;
+       }
+      *bp = (lb == XDR_FALSE) ? FALSE : TRUE;
+      return TRUE;
+
+    case XDR_FREE:
+      return TRUE;
+    }
+  return FALSE;
+}
+INTDEF(xdr_bool)
+
+/*
+ * XDR enumerations
+ */
+bool_t
+xdr_enum (XDR *xdrs, enum_t *ep)
+{
+  enum sizecheck
+    {
+      SIZEVAL
+    };                         /* used to find the size of an enum */
+
+  /*
+   * enums are treated as ints
+   */
+  if (sizeof (enum sizecheck) == 4)
+    {
+#if INT_MAX < LONG_MAX
+      long l;
+
+      switch (xdrs->x_op)
+       {
+       case XDR_ENCODE:
+         l = *ep;
+         return XDR_PUTLONG (xdrs, &l);
+
+       case XDR_DECODE:
+         if (!XDR_GETLONG (xdrs, &l))
+           {
+             return FALSE;
+           }
+         *ep = l;
+       case XDR_FREE:
+         return TRUE;
+
+       }
+      return FALSE;
+#else
+      return INTUSE(xdr_long) (xdrs, (long *) ep);
+#endif
+    }
+  else if (sizeof (enum sizecheck) == sizeof (short))
+    {
+      return INTUSE(xdr_short) (xdrs, (short *) ep);
+    }
+  else
+    {
+      return FALSE;
+    }
+}
+INTDEF(xdr_enum)
+
+/*
+ * XDR opaque data
+ * Allows the specification of a fixed size sequence of opaque bytes.
+ * cp points to the opaque object and cnt gives the byte length.
+ */
+bool_t
+xdr_opaque (XDR *xdrs, caddr_t cp, u_int cnt)
+{
+  u_int rndup;
+  static char crud[BYTES_PER_XDR_UNIT];
+
+  /*
+   * if no data we are done
+   */
+  if (cnt == 0)
+    return TRUE;
+
+  /*
+   * round byte count to full xdr units
+   */
+  rndup = cnt % BYTES_PER_XDR_UNIT;
+  if (rndup > 0)
+    rndup = BYTES_PER_XDR_UNIT - rndup;
+
+  switch (xdrs->x_op)
+    {
+    case XDR_DECODE:
+      if (!XDR_GETBYTES (xdrs, cp, cnt))
+       {
+         return FALSE;
+       }
+      if (rndup == 0)
+       return TRUE;
+      return XDR_GETBYTES (xdrs, (caddr_t)crud, rndup);
+
+    case XDR_ENCODE:
+      if (!XDR_PUTBYTES (xdrs, cp, cnt))
+       {
+         return FALSE;
+       }
+      if (rndup == 0)
+       return TRUE;
+      return XDR_PUTBYTES (xdrs, xdr_zero, rndup);
+
+    case XDR_FREE:
+      return TRUE;
+    }
+  return FALSE;
+}
+INTDEF(xdr_opaque)
+
+/*
+ * XDR counted bytes
+ * *cpp is a pointer to the bytes, *sizep is the count.
+ * If *cpp is NULL maxsize bytes are allocated
+ */
+bool_t
+xdr_bytes (xdrs, cpp, sizep, maxsize)
+     XDR *xdrs;
+     char **cpp;
+     u_int *sizep;
+     u_int maxsize;
+{
+  char *sp = *cpp;     /* sp is the actual string pointer */
+  u_int nodesize;
+
+  /*
+   * first deal with the length since xdr bytes are counted
+   */
+  if (!INTUSE(xdr_u_int) (xdrs, sizep))
+    {
+      return FALSE;
+    }
+  nodesize = *sizep;
+  if ((nodesize > maxsize) && (xdrs->x_op != XDR_FREE))
+    {
+      return FALSE;
+    }
+
+  /*
+   * now deal with the actual bytes
+   */
+  switch (xdrs->x_op)
+    {
+    case XDR_DECODE:
+      if (nodesize == 0)
+       {
+         return TRUE;
+       }
+      if (sp == NULL)
+       {
+         *cpp = sp = (char *) mem_alloc (nodesize);
+       }
+      if (sp == NULL)
+       {
+         fprintf (NULL, "%s", "xdr_bytes: out of memory\n");
+         return FALSE;
+       }
+      /* fall into ... */
+
+    case XDR_ENCODE:
+      return INTUSE(xdr_opaque) (xdrs, sp, nodesize);
+
+    case XDR_FREE:
+      if (sp != NULL)
+       {
+         mem_free (sp, nodesize);
+         *cpp = NULL;
+       }
+      return TRUE;
+    }
+  return FALSE;
+}
+INTDEF(xdr_bytes)
+
+/*
+ * Implemented here due to commonality of the object.
+ */
+bool_t
+xdr_netobj (xdrs, np)
+     XDR *xdrs;
+     struct netobj *np;
+{
+
+  return INTUSE(xdr_bytes) (xdrs, &np->n_bytes, &np->n_len, MAX_NETOBJ_SZ);
+}
+INTDEF(xdr_netobj)
+
+/*
+ * XDR a discriminated union
+ * Support routine for discriminated unions.
+ * You create an array of xdrdiscrim structures, terminated with
+ * an entry with a null procedure pointer.  The routine gets
+ * the discriminant value and then searches the array of xdrdiscrims
+ * looking for that value.  It calls the procedure given in the xdrdiscrim
+ * to handle the discriminant.  If there is no specific routine a default
+ * routine may be called.
+ * If there is no specific or default routine an error is returned.
+ */
+bool_t
+xdr_union (xdrs, dscmp, unp, choices, dfault)
+     XDR *xdrs;
+     enum_t *dscmp;            /* enum to decide which arm to work on */
+     char *unp;                        /* the union itself */
+     const struct xdr_discrim *choices;        /* [value, xdr proc] for each arm */
+     xdrproc_t dfault;         /* default xdr routine */
+{
+  enum_t dscm;
+
+  /*
+   * we deal with the discriminator;  it's an enum
+   */
+  if (!INTUSE(xdr_enum) (xdrs, dscmp))
+    {
+      return FALSE;
+    }
+  dscm = *dscmp;
+
+  /*
+   * search choices for a value that matches the discriminator.
+   * if we find one, execute the xdr routine for that value.
+   */
+  for (; choices->proc != NULL_xdrproc_t; choices++)
+    {
+      if (choices->value == dscm)
+       return (*(choices->proc)) (xdrs, unp, LASTUNSIGNED);
+    }
+
+  /*
+   * no match - execute the default xdr routine if there is one
+   */
+  return ((dfault == NULL_xdrproc_t) ? FALSE :
+         (*dfault) (xdrs, unp, LASTUNSIGNED));
+}
+INTDEF(xdr_union)
+
+
+/*
+ * Non-portable xdr primitives.
+ * Care should be taken when moving these routines to new architectures.
+ */
+
+
+/*
+ * XDR null terminated ASCII strings
+ * xdr_string deals with "C strings" - arrays of bytes that are
+ * terminated by a NULL character.  The parameter cpp references a
+ * pointer to storage; If the pointer is null, then the necessary
+ * storage is allocated.  The last parameter is the max allowed length
+ * of the string as specified by a protocol.
+ */
+bool_t
+xdr_string (xdrs, cpp, maxsize)
+     XDR *xdrs;
+     char **cpp;
+     u_int maxsize;
+{
+  char *sp = *cpp;     /* sp is the actual string pointer */
+  u_int size;
+  u_int nodesize;
+
+  /*
+   * first deal with the length since xdr strings are counted-strings
+   */
+  switch (xdrs->x_op)
+    {
+    case XDR_FREE:
+      if (sp == NULL)
+       {
+         return TRUE;          /* already free */
+       }
+      /* fall through... */
+    case XDR_ENCODE:
+      if (sp == NULL)
+       return FALSE;
+      size = strlen (sp);
+      break;
+    case XDR_DECODE:
+      break;
+    }
+  if (!INTUSE(xdr_u_int) (xdrs, &size))
+    {
+      return FALSE;
+    }
+  if (size > maxsize)
+    {
+      return FALSE;
+    }
+  nodesize = size + 1;
+  if (nodesize == 0)
+    {
+      /* This means an overflow.  It a bug in the caller which
+        provided a too large maxsize but nevertheless catch it
+        here.  */
+      return FALSE;
+    }
+
+  /*
+   * now deal with the actual bytes
+   */
+  switch (xdrs->x_op)
+    {
+    case XDR_DECODE:
+      if (sp == NULL)
+       *cpp = sp = (char *) mem_alloc (nodesize);
+      if (sp == NULL)
+       {
+         fprintf (NULL, "%s", "xdr_string: out of memory\n");
+         return FALSE;
+       }
+      sp[size] = 0;
+      /* fall into ... */
+
+    case XDR_ENCODE:
+      return INTUSE(xdr_opaque) (xdrs, sp, size);
+
+    case XDR_FREE:
+      mem_free (sp, nodesize);
+      *cpp = NULL;
+      return TRUE;
+    }
+  return FALSE;
+}
+INTDEF(xdr_string)
+
+/*
+ * Wrapper for xdr_string that can be called directly from
+ * routines like clnt_call
+ */
+bool_t
+xdr_wrapstring (xdrs, cpp)
+     XDR *xdrs;
+     char **cpp;
+{
+  if (INTUSE(xdr_string) (xdrs, cpp, LASTUNSIGNED))
+    {
+      return TRUE;
+    }
+  return FALSE;
+}
diff --git a/source/lib/xdrf/xdr.h b/source/lib/xdrf/xdr.h
new file mode 100644 (file)
index 0000000..2602ad9
--- /dev/null
@@ -0,0 +1,379 @@
+/*
+ * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
+ * unrestricted use provided that this legend is included on all tape
+ * media and as a part of the software program in whole or part.  Users
+ * may copy or modify Sun RPC without charge, but are not authorized
+ * to license or distribute it to anyone else except as part of a product or
+ * program developed by the user.
+ *
+ * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
+ * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
+ *
+ * Sun RPC is provided with no support and without any obligation on the
+ * part of Sun Microsystems, Inc. to assist in its use, correction,
+ * modification or enhancement.
+ *
+ * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
+ * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
+ * OR ANY PART THEREOF.
+ *
+ * In no event will Sun Microsystems, Inc. be liable for any lost revenue
+ * or profits or other special, indirect and consequential damages, even if
+ * Sun has been advised of the possibility of such damages.
+ *
+ * Sun Microsystems, Inc.
+ * 2550 Garcia Avenue
+ * Mountain View, California  94043
+ */
+
+/*
+ * xdr.h, External Data Representation Serialization Routines.
+ *
+ * Copyright (C) 1984, Sun Microsystems, Inc.
+ */
+
+#ifndef _RPC_XDR_H
+#define _RPC_XDR_H 1
+
+#include <features.h>
+#include <sys/types.h>
+#include "types.h"
+
+/* We need FILE.  */
+#include <stdio.h>
+
+__BEGIN_DECLS
+
+/*
+ * XDR provides a conventional way for converting between C data
+ * types and an external bit-string representation.  Library supplied
+ * routines provide for the conversion on built-in C data types.  These
+ * routines and utility routines defined here are used to help implement
+ * a type encode/decode routine for each user-defined type.
+ *
+ * Each data type provides a single procedure which takes two arguments:
+ *
+ *      bool_t
+ *      xdrproc(xdrs, argresp)
+ *              XDR *xdrs;
+ *              <type> *argresp;
+ *
+ * xdrs is an instance of a XDR handle, to which or from which the data
+ * type is to be converted.  argresp is a pointer to the structure to be
+ * converted.  The XDR handle contains an operation field which indicates
+ * which of the operations (ENCODE, DECODE * or FREE) is to be performed.
+ *
+ * XDR_DECODE may allocate space if the pointer argresp is null.  This
+ * data can be freed with the XDR_FREE operation.
+ *
+ * We write only one procedure per data type to make it easy
+ * to keep the encode and decode procedures for a data type consistent.
+ * In many cases the same code performs all operations on a user defined type,
+ * because all the hard work is done in the component type routines.
+ * decode as a series of calls on the nested data types.
+ */
+
+/*
+ * Xdr operations.  XDR_ENCODE causes the type to be encoded into the
+ * stream.  XDR_DECODE causes the type to be extracted from the stream.
+ * XDR_FREE can be used to release the space allocated by an XDR_DECODE
+ * request.
+ */
+enum xdr_op {
+  XDR_ENCODE = 0,
+  XDR_DECODE = 1,
+  XDR_FREE = 2
+};
+
+/*
+ * This is the number of bytes per unit of external data.
+ */
+#define BYTES_PER_XDR_UNIT     (4)
+/*
+ * This only works if the above is a power of 2.  But it's defined to be
+ * 4 by the appropriate RFCs.  So it will work.  And it's normally quicker
+ * than the old routine.
+ */
+#if 1
+#define RNDUP(x)  (((x) + BYTES_PER_XDR_UNIT - 1) & ~(BYTES_PER_XDR_UNIT - 1))
+#else /* this is the old routine */
+#define RNDUP(x)  ((((x) + BYTES_PER_XDR_UNIT - 1) / BYTES_PER_XDR_UNIT) \
+                   * BYTES_PER_XDR_UNIT)
+#endif
+
+/*
+ * The XDR handle.
+ * Contains operation which is being applied to the stream,
+ * an operations vector for the particular implementation (e.g. see xdr_mem.c),
+ * and two private fields for the use of the particular implementation.
+ */
+typedef struct XDR XDR;
+struct XDR
+  {
+    enum xdr_op x_op;          /* operation; fast additional param */
+    struct xdr_ops
+      {
+       bool_t (*x_getlong) (XDR *__xdrs, long *__lp);
+       /* get a long from underlying stream */
+       bool_t (*x_putlong) (XDR *__xdrs, __const long *__lp);
+       /* put a long to " */
+       bool_t (*x_getbytes) (XDR *__xdrs, caddr_t __addr, u_int __len);
+       /* get some bytes from " */
+       bool_t (*x_putbytes) (XDR *__xdrs, __const char *__addr, u_int __len);
+       /* put some bytes to " */
+       u_int (*x_getpostn) (__const XDR *__xdrs);
+       /* returns bytes off from beginning */
+       bool_t (*x_setpostn) (XDR *__xdrs, u_int __pos);
+       /* lets you reposition the stream */
+       int32_t *(*x_inline) (XDR *__xdrs, u_int __len);
+       /* buf quick ptr to buffered data */
+       void (*x_destroy) (XDR *__xdrs);
+       /* free privates of this xdr_stream */
+       bool_t (*x_getint32) (XDR *__xdrs, int32_t *__ip);
+       /* get a int from underlying stream */
+       bool_t (*x_putint32) (XDR *__xdrs, __const int32_t *__ip);
+       /* put a int to " */
+      }
+     *x_ops;
+    caddr_t x_public;          /* users' data */
+    caddr_t x_private;         /* pointer to private data */
+    caddr_t x_base;            /* private used for position info */
+    u_int x_handy;             /* extra private word */
+  };
+
+/*
+ * A xdrproc_t exists for each data type which is to be encoded or decoded.
+ *
+ * The second argument to the xdrproc_t is a pointer to an opaque pointer.
+ * The opaque pointer generally points to a structure of the data type
+ * to be decoded.  If this pointer is 0, then the type routines should
+ * allocate dynamic storage of the appropriate size and return it.
+ * bool_t       (*xdrproc_t)(XDR *, caddr_t *);
+ */
+typedef bool_t (*xdrproc_t) (XDR *, void *,...);
+
+
+/*
+ * Operations defined on a XDR handle
+ *
+ * XDR          *xdrs;
+ * int32_t      *int32p;
+ * long         *longp;
+ * caddr_t       addr;
+ * u_int         len;
+ * u_int         pos;
+ */
+#define XDR_GETINT32(xdrs, int32p)                      \
+        (*(xdrs)->x_ops->x_getint32)(xdrs, int32p)
+#define xdr_getint32(xdrs, int32p)                      \
+        (*(xdrs)->x_ops->x_getint32)(xdrs, int32p)
+
+#define XDR_PUTINT32(xdrs, int32p)                      \
+        (*(xdrs)->x_ops->x_putint32)(xdrs, int32p)
+#define xdr_putint32(xdrs, int32p)                      \
+        (*(xdrs)->x_ops->x_putint32)(xdrs, int32p)
+
+#define XDR_GETLONG(xdrs, longp)                       \
+       (*(xdrs)->x_ops->x_getlong)(xdrs, longp)
+#define xdr_getlong(xdrs, longp)                       \
+       (*(xdrs)->x_ops->x_getlong)(xdrs, longp)
+
+#define XDR_PUTLONG(xdrs, longp)                       \
+       (*(xdrs)->x_ops->x_putlong)(xdrs, longp)
+#define xdr_putlong(xdrs, longp)                       \
+       (*(xdrs)->x_ops->x_putlong)(xdrs, longp)
+
+#define XDR_GETBYTES(xdrs, addr, len)                  \
+       (*(xdrs)->x_ops->x_getbytes)(xdrs, addr, len)
+#define xdr_getbytes(xdrs, addr, len)                  \
+       (*(xdrs)->x_ops->x_getbytes)(xdrs, addr, len)
+
+#define XDR_PUTBYTES(xdrs, addr, len)                  \
+       (*(xdrs)->x_ops->x_putbytes)(xdrs, addr, len)
+#define xdr_putbytes(xdrs, addr, len)                  \
+       (*(xdrs)->x_ops->x_putbytes)(xdrs, addr, len)
+
+#define XDR_GETPOS(xdrs)                               \
+       (*(xdrs)->x_ops->x_getpostn)(xdrs)
+#define xdr_getpos(xdrs)                               \
+       (*(xdrs)->x_ops->x_getpostn)(xdrs)
+
+#define XDR_SETPOS(xdrs, pos)                          \
+       (*(xdrs)->x_ops->x_setpostn)(xdrs, pos)
+#define xdr_setpos(xdrs, pos)                          \
+       (*(xdrs)->x_ops->x_setpostn)(xdrs, pos)
+
+#define        XDR_INLINE(xdrs, len)                           \
+       (*(xdrs)->x_ops->x_inline)(xdrs, len)
+#define        xdr_inline(xdrs, len)                           \
+       (*(xdrs)->x_ops->x_inline)(xdrs, len)
+
+#define        XDR_DESTROY(xdrs)                                       \
+       do {                                                    \
+               if ((xdrs)->x_ops->x_destroy)                   \
+                       (*(xdrs)->x_ops->x_destroy)(xdrs);      \
+       } while (0)
+#define        xdr_destroy(xdrs)                                       \
+       do {                                                    \
+               if ((xdrs)->x_ops->x_destroy)                   \
+                       (*(xdrs)->x_ops->x_destroy)(xdrs);      \
+       } while (0)
+
+/*
+ * Support struct for discriminated unions.
+ * You create an array of xdrdiscrim structures, terminated with
+ * a entry with a null procedure pointer.  The xdr_union routine gets
+ * the discriminant value and then searches the array of structures
+ * for a matching value.  If a match is found the associated xdr routine
+ * is called to handle that part of the union.  If there is
+ * no match, then a default routine may be called.
+ * If there is no match and no default routine it is an error.
+ */
+#define NULL_xdrproc_t ((xdrproc_t)0)
+struct xdr_discrim
+{
+  int value;
+  xdrproc_t proc;
+};
+
+/*
+ * Inline routines for fast encode/decode of primitive data types.
+ * Caveat emptor: these use single memory cycles to get the
+ * data from the underlying buffer, and will fail to operate
+ * properly if the data is not aligned.  The standard way to use these
+ * is to say:
+ *      if ((buf = XDR_INLINE(xdrs, count)) == NULL)
+ *              return (FALSE);
+ *      <<< macro calls >>>
+ * where ``count'' is the number of bytes of data occupied
+ * by the primitive data types.
+ *
+ * N.B. and frozen for all time: each data type here uses 4 bytes
+ * of external representation.
+ */
+
+#define IXDR_GET_INT32(buf)           ((int32_t)ntohl((uint32_t)*(buf)++))
+#define IXDR_PUT_INT32(buf, v)        (*(buf)++ = (int32_t)htonl((uint32_t)(v)))
+#define IXDR_GET_U_INT32(buf)         ((uint32_t)IXDR_GET_INT32(buf))
+#define IXDR_PUT_U_INT32(buf, v)      IXDR_PUT_INT32(buf, (int32_t)(v))
+
+/* WARNING: The IXDR_*_LONG defines are removed by Sun for new platforms
+ * and shouldn't be used any longer. Code which use this defines or longs
+ * in the RPC code will not work on 64bit Solaris platforms !
+ */
+#define IXDR_GET_LONG(buf) ((long)IXDR_GET_U_INT32(buf))
+#define IXDR_PUT_LONG(buf, v) ((long)IXDR_PUT_INT32(buf, (long)(v)))
+#define IXDR_GET_U_LONG(buf)         ((u_long)IXDR_GET_LONG(buf))
+#define IXDR_PUT_U_LONG(buf, v)              IXDR_PUT_LONG(buf, (long)(v))
+
+
+#define IXDR_GET_BOOL(buf)            ((bool_t)IXDR_GET_LONG(buf))
+#define IXDR_GET_ENUM(buf, t)         ((t)IXDR_GET_LONG(buf))
+#define IXDR_GET_SHORT(buf)           ((short)IXDR_GET_LONG(buf))
+#define IXDR_GET_U_SHORT(buf)         ((u_short)IXDR_GET_LONG(buf))
+
+#define IXDR_PUT_BOOL(buf, v)         IXDR_PUT_LONG(buf, (long)(v))
+#define IXDR_PUT_ENUM(buf, v)         IXDR_PUT_LONG(buf, (long)(v))
+#define IXDR_PUT_SHORT(buf, v)        IXDR_PUT_LONG(buf, (long)(v))
+#define IXDR_PUT_U_SHORT(buf, v)      IXDR_PUT_LONG(buf, (long)(v))
+
+/*
+ * These are the "generic" xdr routines.
+ * None of these can have const applied because it's not possible to
+ * know whether the call is a read or a write to the passed parameter
+ * also, the XDR structure is always updated by some of these calls.
+ */
+extern bool_t xdr_void (void) __THROW;
+extern bool_t xdr_short (XDR *__xdrs, short *__sp) __THROW;
+extern bool_t xdr_u_short (XDR *__xdrs, u_short *__usp) __THROW;
+extern bool_t xdr_int (XDR *__xdrs, int *__ip) __THROW;
+extern bool_t xdr_u_int (XDR *__xdrs, u_int *__up) __THROW;
+extern bool_t xdr_long (XDR *__xdrs, long *__lp) __THROW;
+extern bool_t xdr_u_long (XDR *__xdrs, u_long *__ulp) __THROW;
+extern bool_t xdr_hyper (XDR *__xdrs, quad_t *__llp) __THROW;
+extern bool_t xdr_u_hyper (XDR *__xdrs, u_quad_t *__ullp) __THROW;
+extern bool_t xdr_longlong_t (XDR *__xdrs, quad_t *__llp) __THROW;
+extern bool_t xdr_u_longlong_t (XDR *__xdrs, u_quad_t *__ullp) __THROW;
+extern bool_t xdr_int8_t (XDR *__xdrs, int8_t *__ip) __THROW;
+extern bool_t xdr_uint8_t (XDR *__xdrs, uint8_t *__up) __THROW;
+extern bool_t xdr_int16_t (XDR *__xdrs, int16_t *__ip) __THROW;
+extern bool_t xdr_uint16_t (XDR *__xdrs, uint16_t *__up) __THROW;
+extern bool_t xdr_int32_t (XDR *__xdrs, int32_t *__ip) __THROW;
+extern bool_t xdr_uint32_t (XDR *__xdrs, uint32_t *__up) __THROW;
+extern bool_t xdr_int64_t (XDR *__xdrs, int64_t *__ip) __THROW;
+extern bool_t xdr_uint64_t (XDR *__xdrs, uint64_t *__up) __THROW;
+extern bool_t xdr_quad_t (XDR *__xdrs, quad_t *__ip) __THROW;
+extern bool_t xdr_u_quad_t (XDR *__xdrs, u_quad_t *__up) __THROW;
+extern bool_t xdr_bool (XDR *__xdrs, bool_t *__bp) __THROW;
+extern bool_t xdr_enum (XDR *__xdrs, enum_t *__ep) __THROW;
+extern bool_t xdr_array (XDR * _xdrs, caddr_t *__addrp, u_int *__sizep,
+                        u_int __maxsize, u_int __elsize, xdrproc_t __elproc)
+     __THROW;
+extern bool_t xdr_bytes (XDR *__xdrs, char **__cpp, u_int *__sizep,
+                        u_int __maxsize) __THROW;
+extern bool_t xdr_opaque (XDR *__xdrs, caddr_t __cp, u_int __cnt) __THROW;
+extern bool_t xdr_string (XDR *__xdrs, char **__cpp, u_int __maxsize) __THROW;
+extern bool_t xdr_union (XDR *__xdrs, enum_t *__dscmp, char *__unp,
+                        __const struct xdr_discrim *__choices,
+                        xdrproc_t dfault) __THROW;
+extern bool_t xdr_char (XDR *__xdrs, char *__cp) __THROW;
+extern bool_t xdr_u_char (XDR *__xdrs, u_char *__cp) __THROW;
+extern bool_t xdr_vector (XDR *__xdrs, char *__basep, u_int __nelem,
+                         u_int __elemsize, xdrproc_t __xdr_elem) __THROW;
+extern bool_t xdr_float (XDR *__xdrs, float *__fp) __THROW;
+extern bool_t xdr_double (XDR *__xdrs, double *__dp) __THROW;
+extern bool_t xdr_reference (XDR *__xdrs, caddr_t *__xpp, u_int __size,
+                            xdrproc_t __proc) __THROW;
+extern bool_t xdr_pointer (XDR *__xdrs, char **__objpp,
+                          u_int __obj_size, xdrproc_t __xdr_obj) __THROW;
+extern bool_t xdr_wrapstring (XDR *__xdrs, char **__cpp) __THROW;
+extern u_long xdr_sizeof (xdrproc_t, void *) __THROW;
+
+/*
+ * Common opaque bytes objects used by many rpc protocols;
+ * declared here due to commonality.
+ */
+#define MAX_NETOBJ_SZ 1024
+struct netobj
+{
+  u_int n_len;
+  char *n_bytes;
+};
+typedef struct netobj netobj;
+extern bool_t xdr_netobj (XDR *__xdrs, struct netobj *__np) __THROW;
+
+/*
+ * These are the public routines for the various implementations of
+ * xdr streams.
+ */
+
+/* XDR using memory buffers */
+extern void xdrmem_create (XDR *__xdrs, __const caddr_t __addr,
+                          u_int __size, enum xdr_op __xop) __THROW;
+
+/* XDR using stdio library */
+extern void xdrstdio_create (XDR *__xdrs, FILE *__file, enum xdr_op __xop)
+     __THROW;
+
+/* XDR pseudo records for tcp */
+extern void xdrrec_create (XDR *__xdrs, u_int __sendsize,
+                          u_int __recvsize, caddr_t __tcp_handle,
+                          int (*__readit) (char *, char *, int),
+                          int (*__writeit) (char *, char *, int)) __THROW;
+
+/* make end of xdr record */
+extern bool_t xdrrec_endofrecord (XDR *__xdrs, bool_t __sendnow) __THROW;
+
+/* move to beginning of next record */
+extern bool_t xdrrec_skiprecord (XDR *__xdrs) __THROW;
+
+/* true if no more input */
+extern bool_t xdrrec_eof (XDR *__xdrs) __THROW;
+
+/* free memory buffers for xdr */
+extern void xdr_free (xdrproc_t __proc, char *__objp) __THROW;
+
+__END_DECLS
+
+#endif /* rpc/xdr.h */
diff --git a/source/lib/xdrf/xdr_array.c b/source/lib/xdrf/xdr_array.c
new file mode 100644 (file)
index 0000000..836405c
--- /dev/null
@@ -0,0 +1,174 @@
+# define INTUSE(name) name
+# define INTDEF(name)
+/* @(#)xdr_array.c     2.1 88/07/29 4.0 RPCSRC */
+/*
+ * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
+ * unrestricted use provided that this legend is included on all tape
+ * media and as a part of the software program in whole or part.  Users
+ * may copy or modify Sun RPC without charge, but are not authorized
+ * to license or distribute it to anyone else except as part of a product or
+ * program developed by the user.
+ *
+ * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
+ * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
+ *
+ * Sun RPC is provided with no support and without any obligation on the
+ * part of Sun Microsystems, Inc. to assist in its use, correction,
+ * modification or enhancement.
+ *
+ * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
+ * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
+ * OR ANY PART THEREOF.
+ *
+ * In no event will Sun Microsystems, Inc. be liable for any lost revenue
+ * or profits or other special, indirect and consequential damages, even if
+ * Sun has been advised of the possibility of such damages.
+ *
+ * Sun Microsystems, Inc.
+ * 2550 Garcia Avenue
+ * Mountain View, California  94043
+ */
+#if !defined(lint) && defined(SCCSIDS)
+static char sccsid[] = "@(#)xdr_array.c 1.10 87/08/11 Copyr 1984 Sun Micro";
+#endif
+
+/*
+ * xdr_array.c, Generic XDR routines implementation.
+ *
+ * Copyright (C) 1984, Sun Microsystems, Inc.
+ *
+ * These are the "non-trivial" xdr primitives used to serialize and de-serialize
+ * arrays.  See xdr.h for more info on the interface to xdr.
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include "types.h"
+#include "xdr.h"
+#include <libintl.h>
+#include <limits.h>
+
+#ifdef USE_IN_LIBIO
+# include <wchar.h>
+#endif
+
+#define LASTUNSIGNED   ((u_int)0-1)
+
+
+/*
+ * XDR an array of arbitrary elements
+ * *addrp is a pointer to the array, *sizep is the number of elements.
+ * If addrp is NULL (*sizep * elsize) bytes are allocated.
+ * elsize is the size (in bytes) of each element, and elproc is the
+ * xdr procedure to call to handle each element of the array.
+ */
+bool_t
+xdr_array (xdrs, addrp, sizep, maxsize, elsize, elproc)
+     XDR *xdrs;
+     caddr_t *addrp;           /* array pointer */
+     u_int *sizep;             /* number of elements */
+     u_int maxsize;            /* max numberof elements */
+     u_int elsize;             /* size in bytes of each element */
+     xdrproc_t elproc;         /* xdr routine to handle each element */
+{
+  u_int i;
+  caddr_t target = *addrp;
+  u_int c;             /* the actual element count */
+  bool_t stat = TRUE;
+  u_int nodesize;
+
+  /* like strings, arrays are really counted arrays */
+  if (!INTUSE(xdr_u_int) (xdrs, sizep))
+    {
+      return FALSE;
+    }
+  c = *sizep;
+  /*
+   * XXX: Let the overflow possibly happen with XDR_FREE because mem_free()
+   * doesn't actually use its second argument anyway.
+   */
+  if ((c > maxsize || c > UINT_MAX / elsize) && (xdrs->x_op != XDR_FREE))
+    {
+      return FALSE;
+    }
+  nodesize = c * elsize;
+
+  /*
+   * if we are deserializing, we may need to allocate an array.
+   * We also save time by checking for a null array if we are freeing.
+   */
+  if (target == NULL)
+    switch (xdrs->x_op)
+      {
+      case XDR_DECODE:
+       if (c == 0)
+         return TRUE;
+       *addrp = target = mem_alloc (nodesize);
+       if (target == NULL)
+         {
+           fprintf (stderr, "%s", "xdr_array: out of memory\n");
+           return FALSE;
+         }
+       __bzero (target, nodesize);
+       break;
+
+      case XDR_FREE:
+       return TRUE;
+      default:
+       break;
+      }
+
+  /*
+   * now we xdr each element of array
+   */
+  for (i = 0; (i < c) && stat; i++)
+    {
+      stat = (*elproc) (xdrs, target, LASTUNSIGNED);
+      target += elsize;
+    }
+
+  /*
+   * the array may need freeing
+   */
+  if (xdrs->x_op == XDR_FREE)
+    {
+      mem_free (*addrp, nodesize);
+      *addrp = NULL;
+    }
+  return stat;
+}
+INTDEF(xdr_array)
+
+/*
+ * xdr_vector():
+ *
+ * XDR a fixed length array. Unlike variable-length arrays,
+ * the storage of fixed length arrays is static and unfreeable.
+ * > basep: base of the array
+ * > size: size of the array
+ * > elemsize: size of each element
+ * > xdr_elem: routine to XDR each element
+ */
+bool_t
+xdr_vector (xdrs, basep, nelem, elemsize, xdr_elem)
+     XDR *xdrs;
+     char *basep;
+     u_int nelem;
+     u_int elemsize;
+     xdrproc_t xdr_elem;
+{
+  u_int i;
+  char *elptr;
+
+  elptr = basep;
+  for (i = 0; i < nelem; i++)
+    {
+      if (!(*xdr_elem) (xdrs, elptr, LASTUNSIGNED))
+       {
+         return FALSE;
+       }
+      elptr += elemsize;
+    }
+  return TRUE;
+}
diff --git a/source/lib/xdrf/xdr_float.c b/source/lib/xdrf/xdr_float.c
new file mode 100644 (file)
index 0000000..15d3c88
--- /dev/null
@@ -0,0 +1,307 @@
+/* @(#)xdr_float.c     2.1 88/07/29 4.0 RPCSRC */
+/*
+ * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
+ * unrestricted use provided that this legend is included on all tape
+ * media and as a part of the software program in whole or part.  Users
+ * may copy or modify Sun RPC without charge, but are not authorized
+ * to license or distribute it to anyone else except as part of a product or
+ * program developed by the user.
+ *
+ * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
+ * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
+ *
+ * Sun RPC is provided with no support and without any obligation on the
+ * part of Sun Microsystems, Inc. to assist in its use, correction,
+ * modification or enhancement.
+ *
+ * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
+ * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
+ * OR ANY PART THEREOF.
+ *
+ * In no event will Sun Microsystems, Inc. be liable for any lost revenue
+ * or profits or other special, indirect and consequential damages, even if
+ * Sun has been advised of the possibility of such damages.
+ *
+ * Sun Microsystems, Inc.
+ * 2550 Garcia Avenue
+ * Mountain View, California  94043
+ */
+#if !defined(lint) && defined(SCCSIDS)
+static char sccsid[] = "@(#)xdr_float.c 1.12 87/08/11 Copyr 1984 Sun Micro";
+#endif
+
+/*
+ * xdr_float.c, Generic XDR routines implementation.
+ *
+ * Copyright (C) 1984, Sun Microsystems, Inc.
+ *
+ * These are the "floating point" xdr routines used to (de)serialize
+ * most common data items.  See xdr.h for more info on the interface to
+ * xdr.
+ */
+
+#include <stdio.h>
+#include <endian.h>
+
+#include "types.h"
+#include "xdr.h"
+
+/*
+ * NB: Not portable.
+ * This routine works on Suns (Sky / 68000's) and Vaxen.
+ */
+
+#define LSW    (__FLOAT_WORD_ORDER == __BIG_ENDIAN)
+
+#ifdef vax
+
+/* What IEEE single precision floating point looks like on a Vax */
+struct ieee_single {
+       unsigned int    mantissa: 23;
+       unsigned int    exp     : 8;
+       unsigned int    sign    : 1;
+};
+
+/* Vax single precision floating point */
+struct vax_single {
+       unsigned int    mantissa1 : 7;
+       unsigned int    exp       : 8;
+       unsigned int    sign      : 1;
+       unsigned int    mantissa2 : 16;
+};
+
+#define VAX_SNG_BIAS   0x81
+#define IEEE_SNG_BIAS  0x7f
+
+static struct sgl_limits {
+       struct vax_single s;
+       struct ieee_single ieee;
+} sgl_limits[2] = {
+       {{ 0x7f, 0xff, 0x0, 0xffff },   /* Max Vax */
+       { 0x0, 0xff, 0x0 }},            /* Max IEEE */
+       {{ 0x0, 0x0, 0x0, 0x0 },        /* Min Vax */
+       { 0x0, 0x0, 0x0 }}              /* Min IEEE */
+};
+#endif /* vax */
+
+bool_t
+xdr_float(xdrs, fp)
+     XDR *xdrs;
+     float *fp;
+{
+#ifdef vax
+       struct ieee_single is;
+       struct vax_single vs, *vsp;
+       struct sgl_limits *lim;
+       int i;
+#endif
+       switch (xdrs->x_op) {
+
+       case XDR_ENCODE:
+#ifdef vax
+               vs = *((struct vax_single *)fp);
+               for (i = 0, lim = sgl_limits;
+                       i < sizeof(sgl_limits)/sizeof(struct sgl_limits);
+                       i++, lim++) {
+                       if ((vs.mantissa2 == lim->s.mantissa2) &&
+                               (vs.exp == lim->s.exp) &&
+                               (vs.mantissa1 == lim->s.mantissa1)) {
+                               is = lim->ieee;
+                               goto shipit;
+                       }
+               }
+               is.exp = vs.exp - VAX_SNG_BIAS + IEEE_SNG_BIAS;
+               is.mantissa = (vs.mantissa1 << 16) | vs.mantissa2;
+       shipit:
+               is.sign = vs.sign;
+               return (XDR_PUTLONG(xdrs, (long *)&is));
+#else
+               if (sizeof(float) == sizeof(long))
+                       return (XDR_PUTLONG(xdrs, (long *)fp));
+               else if (sizeof(float) == sizeof(int)) {
+                       long tmp = *(int *)fp;
+                       return (XDR_PUTLONG(xdrs, &tmp));
+               }
+               break;
+#endif
+
+       case XDR_DECODE:
+#ifdef vax
+               vsp = (struct vax_single *)fp;
+               if (!XDR_GETLONG(xdrs, (long *)&is))
+                       return (FALSE);
+               for (i = 0, lim = sgl_limits;
+                       i < sizeof(sgl_limits)/sizeof(struct sgl_limits);
+                       i++, lim++) {
+                       if ((is.exp == lim->ieee.exp) &&
+                               (is.mantissa == lim->ieee.mantissa)) {
+                               *vsp = lim->s;
+                               goto doneit;
+                       }
+               }
+               vsp->exp = is.exp - IEEE_SNG_BIAS + VAX_SNG_BIAS;
+               vsp->mantissa2 = is.mantissa;
+               vsp->mantissa1 = (is.mantissa >> 16);
+       doneit:
+               vsp->sign = is.sign;
+               return (TRUE);
+#else
+               if (sizeof(float) == sizeof(long))
+                       return (XDR_GETLONG(xdrs, (long *)fp));
+               else if (sizeof(float) == sizeof(int)) {
+                       long tmp;
+                       if (XDR_GETLONG(xdrs, &tmp)) {
+                               *(int *)fp = tmp;
+                               return (TRUE);
+                       }
+               }
+               break;
+#endif
+
+       case XDR_FREE:
+               return (TRUE);
+       }
+       return (FALSE);
+}
+
+/*
+ * This routine works on Suns (Sky / 68000's) and Vaxen.
+ */
+
+#ifdef vax
+/* What IEEE double precision floating point looks like on a Vax */
+struct ieee_double {
+       unsigned int    mantissa1 : 20;
+       unsigned int    exp       : 11;
+       unsigned int    sign      : 1;
+       unsigned int    mantissa2 : 32;
+};
+
+/* Vax double precision floating point */
+struct  vax_double {
+       unsigned int    mantissa1 : 7;
+       unsigned int    exp       : 8;
+       unsigned int    sign      : 1;
+       unsigned int    mantissa2 : 16;
+       unsigned int    mantissa3 : 16;
+       unsigned int    mantissa4 : 16;
+};
+
+#define VAX_DBL_BIAS   0x81
+#define IEEE_DBL_BIAS  0x3ff
+#define MASK(nbits)    ((1 << nbits) - 1)
+
+static struct dbl_limits {
+       struct  vax_double d;
+       struct  ieee_double ieee;
+} dbl_limits[2] = {
+       {{ 0x7f, 0xff, 0x0, 0xffff, 0xffff, 0xffff },   /* Max Vax */
+       { 0x0, 0x7ff, 0x0, 0x0 }},                      /* Max IEEE */
+       {{ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},               /* Min Vax */
+       { 0x0, 0x0, 0x0, 0x0 }}                         /* Min IEEE */
+};
+
+#endif /* vax */
+
+
+bool_t
+xdr_double(xdrs, dp)
+     XDR *xdrs;
+     double *dp;
+{
+#ifdef vax
+       struct  ieee_double id;
+       struct  vax_double vd;
+       register struct dbl_limits *lim;
+       int i;
+#endif
+
+       switch (xdrs->x_op) {
+
+       case XDR_ENCODE:
+#ifdef vax
+               vd = *((struct vax_double *)dp);
+               for (i = 0, lim = dbl_limits;
+                       i < sizeof(dbl_limits)/sizeof(struct dbl_limits);
+                       i++, lim++) {
+                       if ((vd.mantissa4 == lim->d.mantissa4) &&
+                               (vd.mantissa3 == lim->d.mantissa3) &&
+                               (vd.mantissa2 == lim->d.mantissa2) &&
+                               (vd.mantissa1 == lim->d.mantissa1) &&
+                               (vd.exp == lim->d.exp)) {
+                               id = lim->ieee;
+                               goto shipit;
+                       }
+               }
+               id.exp = vd.exp - VAX_DBL_BIAS + IEEE_DBL_BIAS;
+               id.mantissa1 = (vd.mantissa1 << 13) | (vd.mantissa2 >> 3);
+               id.mantissa2 = ((vd.mantissa2 & MASK(3)) << 29) |
+                               (vd.mantissa3 << 13) |
+                               ((vd.mantissa4 >> 3) & MASK(13));
+       shipit:
+               id.sign = vd.sign;
+               dp = (double *)&id;
+#endif
+               if (2*sizeof(long) == sizeof(double)) {
+                       long *lp = (long *)dp;
+                       return (XDR_PUTLONG(xdrs, lp+!LSW) &&
+                               XDR_PUTLONG(xdrs, lp+LSW));
+               } else if (2*sizeof(int) == sizeof(double)) {
+                       int *ip = (int *)dp;
+                       long tmp[2];
+                       tmp[0] = ip[!LSW];
+                       tmp[1] = ip[LSW];
+                       return (XDR_PUTLONG(xdrs, tmp) &&
+                               XDR_PUTLONG(xdrs, tmp+1));
+               }
+               break;
+
+       case XDR_DECODE:
+#ifdef vax
+               lp = (long *)&id;
+               if (!XDR_GETLONG(xdrs, lp++) || !XDR_GETLONG(xdrs, lp))
+                       return (FALSE);
+               for (i = 0, lim = dbl_limits;
+                       i < sizeof(dbl_limits)/sizeof(struct dbl_limits);
+                       i++, lim++) {
+                       if ((id.mantissa2 == lim->ieee.mantissa2) &&
+                               (id.mantissa1 == lim->ieee.mantissa1) &&
+                               (id.exp == lim->ieee.exp)) {
+                               vd = lim->d;
+                               goto doneit;
+                       }
+               }
+               vd.exp = id.exp - IEEE_DBL_BIAS + VAX_DBL_BIAS;
+               vd.mantissa1 = (id.mantissa1 >> 13);
+               vd.mantissa2 = ((id.mantissa1 & MASK(13)) << 3) |
+                               (id.mantissa2 >> 29);
+               vd.mantissa3 = (id.mantissa2 >> 13);
+               vd.mantissa4 = (id.mantissa2 << 3);
+       doneit:
+               vd.sign = id.sign;
+               *dp = *((double *)&vd);
+               return (TRUE);
+#else
+               if (2*sizeof(long) == sizeof(double)) {
+                       long *lp = (long *)dp;
+                       return (XDR_GETLONG(xdrs, lp+!LSW) &&
+                               XDR_GETLONG(xdrs, lp+LSW));
+               } else if (2*sizeof(int) == sizeof(double)) {
+                       int *ip = (int *)dp;
+                       long tmp[2];
+                       if (XDR_GETLONG(xdrs, tmp+!LSW) &&
+                           XDR_GETLONG(xdrs, tmp+LSW)) {
+                               ip[0] = tmp[0];
+                               ip[1] = tmp[1];
+                               return (TRUE);
+                       }
+               }
+               break;
+#endif
+
+       case XDR_FREE:
+               return (TRUE);
+       }
+       return (FALSE);
+}
diff --git a/source/lib/xdrf/xdr_stdio.c b/source/lib/xdrf/xdr_stdio.c
new file mode 100644 (file)
index 0000000..12b1709
--- /dev/null
@@ -0,0 +1,196 @@
+/*
+ * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
+ * unrestricted use provided that this legend is included on all tape
+ * media and as a part of the software program in whole or part.  Users
+ * may copy or modify Sun RPC without charge, but are not authorized
+ * to license or distribute it to anyone else except as part of a product or
+ * program developed by the user.
+ *
+ * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
+ * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
+ *
+ * Sun RPC is provided with no support and without any obligation on the
+ * part of Sun Microsystems, Inc. to assist in its use, correction,
+ * modification or enhancement.
+ *
+ * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
+ * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
+ * OR ANY PART THEREOF.
+ *
+ * In no event will Sun Microsystems, Inc. be liable for any lost revenue
+ * or profits or other special, indirect and consequential damages, even if
+ * Sun has been advised of the possibility of such damages.
+ *
+ * Sun Microsystems, Inc.
+ * 2550 Garcia Avenue
+ * Mountain View, California  94043
+ */
+
+/*
+ * xdr_stdio.c, XDR implementation on standard i/o file.
+ *
+ * Copyright (C) 1984, Sun Microsystems, Inc.
+ *
+ * This set of routines implements a XDR on a stdio stream.
+ * XDR_ENCODE serializes onto the stream, XDR_DECODE de-serializes
+ * from the stream.
+ */
+
+#include "types.h"
+#include <stdio.h>
+#include "xdr.h"
+
+#ifdef USE_IN_LIBIO
+# include <libio/iolibio.h>
+# define fflush(s) INTUSE(_IO_fflush) (s)
+# define fread(p, m, n, s) INTUSE(_IO_fread) (p, m, n, s)
+# define ftell(s) INTUSE(_IO_ftell) (s)
+# define fwrite(p, m, n, s) INTUSE(_IO_fwrite) (p, m, n, s)
+#endif
+
+static bool_t xdrstdio_getlong (XDR *, long *);
+static bool_t xdrstdio_putlong (XDR *, const long *);
+static bool_t xdrstdio_getbytes (XDR *, caddr_t, u_int);
+static bool_t xdrstdio_putbytes (XDR *, const char *, u_int);
+static u_int xdrstdio_getpos (const XDR *);
+static bool_t xdrstdio_setpos (XDR *, u_int);
+static int32_t *xdrstdio_inline (XDR *, u_int);
+static void xdrstdio_destroy (XDR *);
+static bool_t xdrstdio_getint32 (XDR *, int32_t *);
+static bool_t xdrstdio_putint32 (XDR *, const int32_t *);
+
+/*
+ * Ops vector for stdio type XDR
+ */
+static const struct xdr_ops xdrstdio_ops =
+{
+  xdrstdio_getlong,            /* deserialize a long int */
+  xdrstdio_putlong,            /* serialize a long int */
+  xdrstdio_getbytes,           /* deserialize counted bytes */
+  xdrstdio_putbytes,           /* serialize counted bytes */
+  xdrstdio_getpos,             /* get offset in the stream */
+  xdrstdio_setpos,             /* set offset in the stream */
+  xdrstdio_inline,             /* prime stream for inline macros */
+  xdrstdio_destroy,            /* destroy stream */
+  xdrstdio_getint32,           /* deserialize a int */
+  xdrstdio_putint32            /* serialize a int */
+};
+
+/*
+ * Initialize a stdio xdr stream.
+ * Sets the xdr stream handle xdrs for use on the stream file.
+ * Operation flag is set to op.
+ */
+void
+xdrstdio_create (XDR *xdrs, FILE *file, enum xdr_op op)
+{
+  xdrs->x_op = op;
+  /* We have to add the const since the `struct xdr_ops' in `struct XDR'
+     is not `const'.  */
+  xdrs->x_ops = (struct xdr_ops *) &xdrstdio_ops;
+  xdrs->x_private = (caddr_t) file;
+  xdrs->x_handy = 0;
+  xdrs->x_base = 0;
+}
+
+/*
+ * Destroy a stdio xdr stream.
+ * Cleans up the xdr stream handle xdrs previously set up by xdrstdio_create.
+ */
+static void
+xdrstdio_destroy (XDR *xdrs)
+{
+  (void) fflush ((FILE *) xdrs->x_private);
+  /* xx should we close the file ?? */
+};
+
+static bool_t
+xdrstdio_getlong (XDR *xdrs, long *lp)
+{
+  u_int32_t mycopy;
+
+  if (fread ((caddr_t) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1)
+    return FALSE;
+  *lp = (long) ntohl (mycopy);
+  return TRUE;
+}
+
+static bool_t
+xdrstdio_putlong (XDR *xdrs, const long *lp)
+{
+  int32_t mycopy = htonl ((u_int32_t) *lp);
+
+  if (fwrite ((caddr_t) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1)
+    return FALSE;
+  return TRUE;
+}
+
+static bool_t
+xdrstdio_getbytes (XDR *xdrs, const caddr_t addr, u_int len)
+{
+  if ((len != 0) && (fread (addr, (int) len, 1,
+                           (FILE *) xdrs->x_private) != 1))
+    return FALSE;
+  return TRUE;
+}
+
+static bool_t
+xdrstdio_putbytes (XDR *xdrs, const char *addr, u_int len)
+{
+  if ((len != 0) && (fwrite (addr, (int) len, 1,
+                            (FILE *) xdrs->x_private) != 1))
+    return FALSE;
+  return TRUE;
+}
+
+static u_int
+xdrstdio_getpos (const XDR *xdrs)
+{
+  return (u_int) ftell ((FILE *) xdrs->x_private);
+}
+
+static bool_t
+xdrstdio_setpos (XDR *xdrs, u_int pos)
+{
+  return fseek ((FILE *) xdrs->x_private, (long) pos, 0) < 0 ? FALSE : TRUE;
+}
+
+static int32_t *
+xdrstdio_inline (XDR *xdrs, u_int len)
+{
+  /*
+   * Must do some work to implement this: must insure
+   * enough data in the underlying stdio buffer,
+   * that the buffer is aligned so that we can indirect through a
+   * long *, and stuff this pointer in xdrs->x_buf.  Doing
+   * a fread or fwrite to a scratch buffer would defeat
+   * most of the gains to be had here and require storage
+   * management on this buffer, so we don't do this.
+   */
+  return NULL;
+}
+
+static bool_t
+xdrstdio_getint32 (XDR *xdrs, int32_t *ip)
+{
+  int32_t mycopy;
+
+  if (fread ((caddr_t) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1)
+    return FALSE;
+  *ip = ntohl (mycopy);
+  return TRUE;
+}
+
+static bool_t
+xdrstdio_putint32 (XDR *xdrs, const int32_t *ip)
+{
+  int32_t mycopy = htonl (*ip);
+
+  ip = &mycopy;
+  if (fwrite ((caddr_t) ip, 4, 1, (FILE *) xdrs->x_private) != 1)
+    return FALSE;
+  return TRUE;
+}
+
+/* libc_hidden_def (xdrstdio_create) */
diff --git a/source/lib/xdrf/xdrf.h b/source/lib/xdrf/xdrf.h
new file mode 100644 (file)
index 0000000..dedf5a2
--- /dev/null
@@ -0,0 +1,10 @@
+/*_________________________________________________________________
+ |
+ | xdrf.h - include file for C routines that want to use the 
+ |         functions below.
+*/
+
+int xdropen(XDR *xdrs, const char *filename, const char *type);
+int xdrclose(XDR *xdrs) ;
+int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) ;
+
diff --git a/source/lib/xdrf_em64/Makefile b/source/lib/xdrf_em64/Makefile
new file mode 100644 (file)
index 0000000..f03276e
--- /dev/null
@@ -0,0 +1,27 @@
+# This make file is part of the xdrf package.
+#
+# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
+#
+# 2006 modified by Cezary Czaplewski
+
+# Set C compiler and flags for ARCH
+CC      = cc
+CFLAGS         = -O 
+
+M4     = m4
+M4FILE = underscore.m4
+
+libxdrf.a:  libxdrf.o ftocstr.o
+       ar cr libxdrf.a $?
+
+clean:
+       rm -f libxdrf.o ftocstr.o libxdrf.a 
+
+ftocstr.o: ftocstr.c
+       $(CC) $(CFLAGS) -c ftocstr.c
+
+libxdrf.o:     libxdrf.m4 $(M4FILE)
+       $(M4) $(M4FILE) libxdrf.m4 > libxdrf.c
+       $(CC) $(CFLAGS) -c libxdrf.c
+       rm -f libxdrf.c
+
diff --git a/source/lib/xdrf_em64/Makefile_jubl b/source/lib/xdrf_em64/Makefile_jubl
new file mode 100644 (file)
index 0000000..8dc35cf
--- /dev/null
@@ -0,0 +1,31 @@
+# This make file is part of the xdrf package.
+#
+# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
+#
+# 2006 modified by Cezary Czaplewski
+
+# Set C compiler and flags for ARCH
+BGLSYS = /bgl/BlueLight/ppcfloor/bglsys
+
+CC = /usr/bin/blrts_xlc
+CPPC = /usr/bin/blrts_xlc
+
+CFLAGS= -O2 -I$(BGLSYS)/include -L$(BGLSYS)/lib -qarch=440d -qtune=440
+
+M4     = m4
+M4FILE = RS6K.m4
+
+libxdrf.a:  libxdrf.o ftocstr.o xdr_array.o  xdr.o  xdr_float.o  xdr_stdio.o
+       ar cr libxdrf.a $?
+
+clean:
+       rm -f *.o libxdrf.a 
+
+ftocstr.o: ftocstr.c
+       $(CC) $(CFLAGS) -c ftocstr.c
+
+libxdrf.o:     libxdrf.m4 $(M4FILE)
+       $(M4) $(M4FILE) libxdrf.m4 > libxdrf.c
+       $(CC) $(CFLAGS) -c libxdrf.c
+#      rm -f libxdrf.c
+
diff --git a/source/lib/xdrf_em64/Makefile_linux b/source/lib/xdrf_em64/Makefile_linux
new file mode 100644 (file)
index 0000000..f03276e
--- /dev/null
@@ -0,0 +1,27 @@
+# This make file is part of the xdrf package.
+#
+# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
+#
+# 2006 modified by Cezary Czaplewski
+
+# Set C compiler and flags for ARCH
+CC      = cc
+CFLAGS         = -O 
+
+M4     = m4
+M4FILE = underscore.m4
+
+libxdrf.a:  libxdrf.o ftocstr.o
+       ar cr libxdrf.a $?
+
+clean:
+       rm -f libxdrf.o ftocstr.o libxdrf.a 
+
+ftocstr.o: ftocstr.c
+       $(CC) $(CFLAGS) -c ftocstr.c
+
+libxdrf.o:     libxdrf.m4 $(M4FILE)
+       $(M4) $(M4FILE) libxdrf.m4 > libxdrf.c
+       $(CC) $(CFLAGS) -c libxdrf.c
+       rm -f libxdrf.c
+
diff --git a/source/lib/xdrf_em64/RS6K.m4 b/source/lib/xdrf_em64/RS6K.m4
new file mode 100644 (file)
index 0000000..0331d97
--- /dev/null
@@ -0,0 +1,20 @@
+divert(-1)
+undefine(`len')
+#
+# do nothing special to FORTRAN function names
+#
+define(`FUNCTION',`$1')
+#
+# FORTRAN character strings are passed as follows:
+# a pointer to the base of the string is passed in the normal
+# argument list, and the length is passed by value as an extra
+# argument, after all of the other arguments.
+#
+define(`ARGS',`($1`'undivert(1))')
+define(`SAVE',`divert(1)$1`'divert(0)')
+define(`STRING_ARG',`$1_ptr`'SAVE(`, $1_len')')
+define(`STRING_ARG_DECL',`char * $1_ptr; int $1_len')
+define(`STRING_LEN',`$1_len')
+define(`STRING_PTR',`$1_ptr')
+divert(0)
+
diff --git a/source/lib/xdrf_em64/ftocstr.c b/source/lib/xdrf_em64/ftocstr.c
new file mode 100644 (file)
index 0000000..ed2113f
--- /dev/null
@@ -0,0 +1,35 @@
+
+
+int ftocstr(ds, dl, ss, sl)
+    char *ds, *ss;      /* dst, src ptrs */
+    int dl;             /* dst max len */
+    int sl;             /* src len */
+{
+    char *p;
+
+    for (p = ss + sl; --p >= ss && *p == ' '; ) ;
+    sl = p - ss + 1;
+    dl--;
+    ds[0] = 0;
+    if (sl > dl)
+        return 1;
+    while (sl--)
+       (*ds++ = *ss++);
+    *ds = '\0';
+    return 0;
+}
+
+
+int ctofstr(ds, dl, ss)
+       char *ds;               /* dest space */
+       int dl;                 /* max dest length */
+       char *ss;               /* src string (0-term) */
+{
+    while (dl && *ss) {
+       *ds++ = *ss++;
+       dl--;
+    }
+    while (dl--)
+       *ds++ = ' ';
+    return 0;
+}
diff --git a/source/lib/xdrf_em64/libxdrf.m4 b/source/lib/xdrf_em64/libxdrf.m4
new file mode 100644 (file)
index 0000000..a6da458
--- /dev/null
@@ -0,0 +1,1238 @@
+/*____________________________________________________________________________
+ |
+ | libxdrf - portable fortran interface to xdr. some xdr routines
+ |          are C routines for compressed coordinates
+ |
+ | version 1.1
+ |
+ | This collection of routines is intended to write and read
+ | data in a portable way to a file, so data written on one type
+ | of machine can be read back on a different type.
+ |
+ | all fortran routines use an integer 'xdrid', which is an id to the
+ | current xdr file, and is set by xdrfopen.
+ | most routines have in integer 'ret' which is the return value.
+ | The value of 'ret' is zero on failure, and most of the time one
+ | on succes.
+ |
+ | There are three routines useful for C users:
+ |  xdropen(), xdrclose(), xdr3dfcoord().
+ | The first two replace xdrstdio_create and xdr_destroy, and *must* be
+ | used when you plan to use xdr3dfcoord(). (they are also a bit
+ | easier to interface). For writing data other than compressed coordinates 
+ | you should use the standard C xdr routines (see xdr man page)
+ |
+ | xdrfopen(xdrid, filename, mode, ret)
+ |     character *(*) filename
+ |     character *(*) mode
+ |
+ |     this will open the file with the given filename (string)
+ |     and the given mode, it returns an id in xdrid, which is
+ |     to be used in all other calls to xdrf routines.
+ |     mode is 'w' to create, or update an file, for all other
+ |     values of mode the file is opened for reading
+ |
+ |     you need to call xdrfclose to flush the output and close
+ |     the file.
+ |     Note that you should not use xdrstdio_create, which comes with the
+ |     standard xdr library
+ |
+ | xdrfclose(xdrid, ret)
+ |     flush the data to the file, and closes the file;
+ |     You should not use xdr_destroy (which comes standard with
+ |     the xdr libraries.
+ |
+ | xdrfbool(xdrid, bp, ret)
+ |     integer pb
+ |
+ |     This filter produces values of either 1 or 0    
+ |
+ | xdrfchar(xdrid, cp, ret)
+ |     character cp
+ |
+ |     filter that translate between characters and their xdr representation
+ |     Note that the characters in not compressed and occupies 4 bytes.
+ |
+ | xdrfdouble(xdrid, dp, ret)
+ |     double dp
+ |
+ |     read/write a double.
+ |
+ | xdrffloat(xdrid, fp, ret)
+ |     float fp
+ |
+ |     read/write a float.
+ |
+ | xdrfint(xdrid, ip, ret)
+ |     integer ip
+ |
+ |     read/write integer.
+ |
+ | xdrflong(xdrid, lp, ret)
+ |     integer lp
+ |
+ |     this routine has a possible portablility problem due to 64 bits longs.
+ |
+ | xdrfshort(xdrid, sp, ret)
+ |     integer *2 sp
+ |
+ | xdrfstring(xdrid, sp, maxsize, ret)
+ |     character *(*)
+ |     integer maxsize
+ |
+ |     read/write a string, with maximum length given by maxsize
+ |
+ | xdrfwrapstring(xdris, sp, ret)
+ |     character *(*)
+ |
+ |     read/write a string (it is the same as xdrfstring accept that it finds
+ |     the stringlength itself.
+ |
+ | xdrfvector(xdrid, cp, size, xdrfproc, ret)
+ |     character *(*)
+ |     integer size
+ |     external xdrfproc
+ |
+ |     read/write an array pointed to by cp, with number of elements
+ |     defined by 'size'. the routine 'xdrfproc' is the name
+ |     of one of the above routines to read/write data (like xdrfdouble)
+ |     In contrast with the c-version you don't need to specify the
+ |     byte size of an element.
+ |     xdrfstring is not allowed here (it is in the c version)
+ |     
+ | xdrf3dfcoord(xdrid, fp, size, precision, ret)
+ |     real (*) fp
+ |     real precision
+ |     integer size
+ |
+ |     this is *NOT* a standard xdr routine. I named it this way, because
+ |     it invites people to use the other xdr routines.
+ |     It is introduced to store specifically 3d coordinates of molecules
+ |     (as found in molecular dynamics) and it writes it in a compressed way.
+ |     It starts by multiplying all numbers by precision and
+ |     rounding the result to integer. effectively converting
+ |     all floating point numbers to fixed point.
+ |     it uses an algorithm for compression that is optimized for
+ |     molecular data, but could be used for other 3d coordinates
+ |     as well. There is subtantial overhead involved, so call this
+ |     routine only if you have a large number of coordinates to read/write
+ |
+ | ________________________________________________________________________
+ |
+ | Below are the routines to be used by C programmers. Use the 'normal'
+ | xdr routines to write integers, floats, etc (see man xdr)   
+ |
+ | int xdropen(XDR *xdrs, const char *filename, const char *type)
+ |     This will open the file with the given filename and the 
+ |     given mode. You should pass it an allocated XDR struct
+ |     in xdrs, to be used in all other calls to xdr routines.
+ |     Mode is 'w' to create, or update an file, and for all 
+ |     other values of mode the file is opened for reading. 
+ |     You need to call xdrclose to flush the output and close
+ |     the file.
+ |
+ |     Note that you should not use xdrstdio_create, which
+ |     comes with the standard xdr library.
+ |
+ | int xdrclose(XDR *xdrs)
+ |     Flush the data to the file, and close the file;
+ |     You should not use xdr_destroy (which comes standard
+ |     with the xdr libraries).
+ |      
+ | int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision)
+ |     This is \fInot\fR a standard xdr routine. I named it this 
+ |     way, because it invites people to use the other xdr 
+ |     routines.
+ |
+ |     (c) 1995 Frans van Hoesel, hoesel@chem.rug.nl
+*/     
+
+
+#include <limits.h>
+#include <malloc.h>
+#include <math.h>
+/* #include <rpc/rpc.h>
+#include <rpc/xdr.h> */
+#include "xdr.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include "xdrf.h"
+
+int ftocstr(char *, int, char *, int);
+int ctofstr(char *, int, char *);
+
+#define MAXID 20
+static FILE *xdrfiles[MAXID];
+static XDR *xdridptr[MAXID];
+static char xdrmodes[MAXID];
+static unsigned int cnt;
+
+typedef void (* FUNCTION(xdrfproc)) (int *, void *, int *);
+
+void
+FUNCTION(xdrfbool) ARGS(`xdrid, pb, ret')
+int *xdrid, *ret;
+int *pb;
+{
+       *ret = xdr_bool(xdridptr[*xdrid], (bool_t *) pb);
+       cnt += sizeof(int);
+}
+
+void
+FUNCTION(xdrfchar) ARGS(`xdrid, cp, ret')
+int *xdrid, *ret;
+char *cp;
+{
+       *ret = xdr_char(xdridptr[*xdrid], cp);
+       cnt += sizeof(char);
+}
+
+void
+FUNCTION(xdrfdouble) ARGS(`xdrid, dp, ret')
+int *xdrid, *ret;
+double *dp;
+{
+       *ret = xdr_double(xdridptr[*xdrid], dp);
+       cnt += sizeof(double);
+}
+
+void
+FUNCTION(xdrffloat) ARGS(`xdrid, fp, ret')
+int *xdrid, *ret;
+float *fp;
+{
+       *ret = xdr_float(xdridptr[*xdrid], fp);
+       cnt += sizeof(float);
+}
+
+void
+FUNCTION(xdrfint) ARGS(`xdrid, ip, ret')
+int *xdrid, *ret;
+int *ip;
+{
+       *ret = xdr_int(xdridptr[*xdrid], ip);
+       cnt += sizeof(int);
+}
+
+void
+FUNCTION(xdrflong) ARGS(`xdrid, lp, ret')
+int *xdrid, *ret;
+long *lp;
+{
+       *ret = xdr_long(xdridptr[*xdrid], lp);
+       cnt += sizeof(long);
+}
+
+void
+FUNCTION(xdrfshort) ARGS(`xdrid, sp, ret')
+int *xdrid, *ret;
+short *sp;
+{
+       *ret = xdr_short(xdridptr[*xdrid], sp);
+       cnt += sizeof(sp);
+}
+
+void
+FUNCTION(xdrfuchar) ARGS(`xdrid, ucp, ret')
+int *xdrid, *ret;
+char *ucp;
+{
+       *ret = xdr_u_char(xdridptr[*xdrid], ucp);
+       cnt += sizeof(char);
+}
+
+void
+FUNCTION(xdrfulong) ARGS(`xdrid, ulp, ret')
+int *xdrid, *ret;
+unsigned long *ulp;
+{
+       *ret = xdr_u_long(xdridptr[*xdrid], ulp);
+       cnt += sizeof(unsigned long);
+}
+
+void
+FUNCTION(xdrfushort) ARGS(`xdrid, usp, ret')
+int *xdrid, *ret;
+unsigned short *usp;
+{
+       *ret = xdr_u_short(xdridptr[*xdrid], usp);
+       cnt += sizeof(unsigned short);
+}
+
+void 
+FUNCTION(xdrf3dfcoord) ARGS(`xdrid, fp, size, precision, ret')
+int *xdrid, *ret;
+float *fp;
+int *size;
+float *precision;
+{
+       *ret = xdr3dfcoord(xdridptr[*xdrid], fp, size, precision);
+}
+
+void
+FUNCTION(xdrfstring) ARGS(`xdrid, STRING_ARG(sp), maxsize, ret')
+int *xdrid, *ret;
+STRING_ARG_DECL(sp);
+int *maxsize;
+{
+       char *tsp;
+
+       tsp = (char*) malloc(((STRING_LEN(sp)) + 1) * sizeof(char));
+       if (tsp == NULL) {
+           *ret = -1;
+           return;
+       }
+       if (ftocstr(tsp, *maxsize+1, STRING_PTR(sp), STRING_LEN(sp))) {
+           *ret = -1;
+           free(tsp);
+           return;
+       }
+       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int) *maxsize);
+       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
+       cnt += *maxsize;
+       free(tsp);
+}
+
+void
+FUNCTION(xdrfwrapstring) ARGS(`xdrid,  STRING_ARG(sp), ret')
+int *xdrid, *ret;
+STRING_ARG_DECL(sp);
+{
+       char *tsp;
+       int maxsize;
+       maxsize = (STRING_LEN(sp)) + 1;
+       tsp = (char*) malloc(maxsize * sizeof(char));
+       if (tsp == NULL) {
+           *ret = -1;
+           return;
+       }
+       if (ftocstr(tsp, maxsize, STRING_PTR(sp), STRING_LEN(sp))) {
+           *ret = -1;
+           free(tsp);
+           return;
+       }
+       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int)maxsize);
+       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
+       cnt += maxsize;
+       free(tsp);
+}
+
+void
+FUNCTION(xdrfopaque) ARGS(`xdrid, cp, ccnt, ret')
+int *xdrid, *ret;
+caddr_t *cp;
+int *ccnt;
+{
+       *ret = xdr_opaque(xdridptr[*xdrid], (caddr_t)*cp, (u_int)*ccnt);
+       cnt += *ccnt;
+}
+
+void
+FUNCTION(xdrfsetpos) ARGS(`xdrid, pos, ret')
+int *xdrid, *ret;
+int *pos;
+{
+       *ret = xdr_setpos(xdridptr[*xdrid], (u_int) *pos);
+}
+
+void
+FUNCTION(xdrf) ARGS(`xdrid, pos')
+int *xdrid, *pos;
+{
+       *pos = xdr_getpos(xdridptr[*xdrid]);
+}
+
+void
+FUNCTION(xdrfvector) ARGS(`xdrid, cp, size, elproc, ret')
+int *xdrid, *ret;
+char *cp;
+int *size;
+FUNCTION(xdrfproc) elproc;
+{
+       int lcnt;
+       cnt = 0;
+       for (lcnt = 0; lcnt < *size; lcnt++) {
+               elproc(xdrid, (cp+cnt) , ret);
+       }
+}
+
+
+void
+FUNCTION(xdrfclose) ARGS(`xdrid, ret')
+int *xdrid;
+int *ret;
+{
+       *ret = xdrclose(xdridptr[*xdrid]);
+       cnt = 0;
+}
+
+void
+FUNCTION(xdrfopen) ARGS(`xdrid,  STRING_ARG(fp), STRING_ARG(mode), ret')
+int *xdrid;
+STRING_ARG_DECL(fp);
+STRING_ARG_DECL(mode);
+int *ret;
+{
+       char fname[512];
+       char fmode[3];
+
+       if (ftocstr(fname, sizeof(fname), STRING_PTR(fp), STRING_LEN(fp))) {
+               *ret = 0;
+       }
+       if (ftocstr(fmode, sizeof(fmode), STRING_PTR(mode),
+                       STRING_LEN(mode))) {
+               *ret = 0;
+       }
+
+       *xdrid = xdropen(NULL, fname, fmode);
+       if (*xdrid == 0)
+               *ret = 0;
+       else 
+               *ret = 1;       
+}
+
+/*___________________________________________________________________________
+ |
+ | what follows are the C routines for opening, closing xdr streams
+ | and the routine to read/write compressed coordinates together
+ | with some routines to assist in this task (those are marked
+ | static and cannot be called from user programs)
+*/
+#define MAXABS INT_MAX-2
+
+#ifndef MIN
+#define MIN(x,y) ((x) < (y) ? (x):(y))
+#endif
+#ifndef MAX
+#define MAX(x,y) ((x) > (y) ? (x):(y))
+#endif
+#ifndef SQR
+#define SQR(x) ((x)*(x))
+#endif
+static int magicints[] = {
+    0, 0, 0, 0, 0, 0, 0, 0, 0,
+    8, 10, 12, 16, 20, 25, 32, 40, 50, 64,
+    80, 101, 128, 161, 203, 256, 322, 406, 512, 645,
+    812, 1024, 1290, 1625, 2048, 2580, 3250, 4096, 5060, 6501,
+    8192, 10321, 13003, 16384, 20642, 26007, 32768, 41285, 52015, 65536,
+    82570, 104031, 131072, 165140, 208063, 262144, 330280, 416127, 524287, 660561,
+    832255, 1048576, 1321122, 1664510, 2097152, 2642245, 3329021, 4194304, 5284491, 6658042,
+    8388607, 10568983, 13316085, 16777216 };
+
+#define FIRSTIDX 9
+/* note that magicints[FIRSTIDX-1] == 0 */
+#define LASTIDX (sizeof(magicints) / sizeof(*magicints))
+
+
+/*__________________________________________________________________________
+ |
+ | xdropen - open xdr file
+ |
+ | This versions differs from xdrstdio_create, because I need to know
+ | the state of the file (read or write) so I can use xdr3dfcoord
+ | in eigther read or write mode, and the file descriptor
+ | so I can close the file (something xdr_destroy doesn't do).
+ |
+*/
+
+int xdropen(XDR *xdrs, const char *filename, const char *type) {
+    static int init_done = 0;
+    enum xdr_op lmode;
+    const char *type1;
+    int xdrid;
+    
+    if (init_done == 0) {
+       for (xdrid = 1; xdrid < MAXID; xdrid++) {
+           xdridptr[xdrid] = NULL;
+       }
+       init_done = 1;
+    }
+    xdrid = 1;
+    while (xdrid < MAXID && xdridptr[xdrid] != NULL) {
+       xdrid++;
+    }
+    if (xdrid == MAXID) {
+       return 0;
+    }
+    if (*type == 'w' || *type == 'W') {
+           type = "w+";
+           type1 = "w+";
+           lmode = XDR_ENCODE;
+    } else if (*type == 'a' || *type == 'A') {
+           type = "w+";
+            type1 = "a+";
+           lmode = XDR_ENCODE;
+    } else {
+           type = "r";
+            type1 = "r";
+           lmode = XDR_DECODE;
+    }
+    xdrfiles[xdrid] = fopen(filename, type1);
+    if (xdrfiles[xdrid] == NULL) {
+       xdrs = NULL;
+       return 0;
+    }
+    xdrmodes[xdrid] = *type;
+    /* next test isn't usefull in the case of C language
+     * but is used for the Fortran interface
+     * (C users are expected to pass the address of an already allocated
+     * XDR staructure)
+     */
+    if (xdrs == NULL) {
+       xdridptr[xdrid] = (XDR *) malloc(sizeof(XDR));
+       xdrstdio_create(xdridptr[xdrid], xdrfiles[xdrid], lmode);
+    } else {
+       xdridptr[xdrid] = xdrs;
+       xdrstdio_create(xdrs, xdrfiles[xdrid], lmode);
+    }
+    return xdrid;
+}
+
+/*_________________________________________________________________________
+ |
+ | xdrclose - close a xdr file
+ |
+ | This will flush the xdr buffers, and destroy the xdr stream.
+ | It also closes the associated file descriptor (this is *not*
+ | done by xdr_destroy).
+ |
+*/
+int xdrclose(XDR *xdrs) {
+    int xdrid;
+    
+    if (xdrs == NULL) {
+       fprintf(stderr, "xdrclose: passed a NULL pointer\n");
+       exit(1);
+    }
+    for (xdrid = 1; xdrid < MAXID; xdrid++) {
+       if (xdridptr[xdrid] == xdrs) {
+           
+           xdr_destroy(xdrs);
+           fclose(xdrfiles[xdrid]);
+           xdridptr[xdrid] = NULL;
+           return 1;
+       }
+    } 
+    fprintf(stderr, "xdrclose: no such open xdr file\n");
+    exit(1);
+    
+}
+
+/*____________________________________________________________________________
+ |
+ | sendbits - encode num into buf using the specified number of bits
+ |
+ | This routines appends the value of num to the bits already present in
+ | the array buf. You need to give it the number of bits to use and you
+ | better make sure that this number of bits is enough to hold the value
+ | Also num must be positive.
+ |
+*/
+
+static void sendbits(int buf[], int num_of_bits, int num) {
+    
+    unsigned int cnt, lastbyte;
+    int lastbits;
+    unsigned char * cbuf;
+    
+    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
+    cnt = (unsigned int) buf[0];
+    lastbits = buf[1];
+    lastbyte =(unsigned int) buf[2];
+    while (num_of_bits >= 8) {
+       lastbyte = (lastbyte << 8) | ((num >> (num_of_bits -8)) /* & 0xff*/);
+       cbuf[cnt++] = lastbyte >> lastbits;
+       num_of_bits -= 8;
+    }
+    if (num_of_bits > 0) {
+       lastbyte = (lastbyte << num_of_bits) | num;
+       lastbits += num_of_bits;
+       if (lastbits >= 8) {
+           lastbits -= 8;
+           cbuf[cnt++] = lastbyte >> lastbits;
+       }
+    }
+    buf[0] = cnt;
+    buf[1] = lastbits;
+    buf[2] = lastbyte;
+    if (lastbits>0) {
+       cbuf[cnt] = lastbyte << (8 - lastbits);
+    }
+}
+
+/*_________________________________________________________________________
+ |
+ | sizeofint - calculate bitsize of an integer
+ |
+ | return the number of bits needed to store an integer with given max size
+ |
+*/
+
+static int sizeofint(const int size) {
+    unsigned int num = 1;
+    int num_of_bits = 0;
+    
+    while (size >= num && num_of_bits < 32) {
+       num_of_bits++;
+       num <<= 1;
+    }
+    return num_of_bits;
+}
+
+/*___________________________________________________________________________
+ |
+ | sizeofints - calculate 'bitsize' of compressed ints
+ |
+ | given the number of small unsigned integers and the maximum value
+ | return the number of bits needed to read or write them with the
+ | routines receiveints and sendints. You need this parameter when
+ | calling these routines. Note that for many calls I can use
+ | the variable 'smallidx' which is exactly the number of bits, and
+ | So I don't need to call 'sizeofints for those calls.
+*/
+
+static int sizeofints( const int num_of_ints, unsigned int sizes[]) {
+    int i, num;
+    unsigned int num_of_bytes, num_of_bits, bytes[32], bytecnt, tmp;
+    num_of_bytes = 1;
+    bytes[0] = 1;
+    num_of_bits = 0;
+    for (i=0; i < num_of_ints; i++) {  
+       tmp = 0;
+       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
+           tmp = bytes[bytecnt] * sizes[i] + tmp;
+           bytes[bytecnt] = tmp & 0xff;
+           tmp >>= 8;
+       }
+       while (tmp != 0) {
+           bytes[bytecnt++] = tmp & 0xff;
+           tmp >>= 8;
+       }
+       num_of_bytes = bytecnt;
+    }
+    num = 1;
+    num_of_bytes--;
+    while (bytes[num_of_bytes] >= num) {
+       num_of_bits++;
+       num *= 2;
+    }
+    return num_of_bits + num_of_bytes * 8;
+
+}
+    
+/*____________________________________________________________________________
+ |
+ | sendints - send a small set of small integers in compressed format
+ |
+ | this routine is used internally by xdr3dfcoord, to send a set of
+ | small integers to the buffer. 
+ | Multiplication with fixed (specified maximum ) sizes is used to get
+ | to one big, multibyte integer. Allthough the routine could be
+ | modified to handle sizes bigger than 16777216, or more than just
+ | a few integers, this is not done, because the gain in compression
+ | isn't worth the effort. Note that overflowing the multiplication
+ | or the byte buffer (32 bytes) is unchecked and causes bad results.
+ |
+ */
+static void sendints(int buf[], const int num_of_ints, const int num_of_bits,
+       unsigned int sizes[], unsigned int nums[]) {
+
+    int i;
+    unsigned int bytes[32], num_of_bytes, bytecnt, tmp;
+
+    tmp = nums[0];
+    num_of_bytes = 0;
+    do {
+       bytes[num_of_bytes++] = tmp & 0xff;
+       tmp >>= 8;
+    } while (tmp != 0);
+
+    for (i = 1; i < num_of_ints; i++) {
+       if (nums[i] >= sizes[i]) {
+           fprintf(stderr,"major breakdown in sendints num %d doesn't "
+                   "match size %d\n", nums[i], sizes[i]);
+           exit(1);
+       }
+       /* use one step multiply */    
+       tmp = nums[i];
+       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
+           tmp = bytes[bytecnt] * sizes[i] + tmp;
+           bytes[bytecnt] = tmp & 0xff;
+           tmp >>= 8;
+       }
+       while (tmp != 0) {
+           bytes[bytecnt++] = tmp & 0xff;
+           tmp >>= 8;
+       }
+       num_of_bytes = bytecnt;
+    }
+    if (num_of_bits >= num_of_bytes * 8) {
+       for (i = 0; i < num_of_bytes; i++) {
+           sendbits(buf, 8, bytes[i]);
+       }
+       sendbits(buf, num_of_bits - num_of_bytes * 8, 0);
+    } else {
+       for (i = 0; i < num_of_bytes-1; i++) {
+           sendbits(buf, 8, bytes[i]);
+       }
+       sendbits(buf, num_of_bits- (num_of_bytes -1) * 8, bytes[i]);
+    }
+}
+
+
+/*___________________________________________________________________________
+ |
+ | receivebits - decode number from buf using specified number of bits
+ | 
+ | extract the number of bits from the array buf and construct an integer
+ | from it. Return that value.
+ |
+*/
+
+static int receivebits(int buf[], int num_of_bits) {
+
+    int cnt, num; 
+    unsigned int lastbits, lastbyte;
+    unsigned char * cbuf;
+    int mask = (1 << num_of_bits) -1;
+
+    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
+    cnt = buf[0];
+    lastbits = (unsigned int) buf[1];
+    lastbyte = (unsigned int) buf[2];
+    
+    num = 0;
+    while (num_of_bits >= 8) {
+       lastbyte = ( lastbyte << 8 ) | cbuf[cnt++];
+       num |=  (lastbyte >> lastbits) << (num_of_bits - 8);
+       num_of_bits -=8;
+    }
+    if (num_of_bits > 0) {
+       if (lastbits < num_of_bits) {
+           lastbits += 8;
+           lastbyte = (lastbyte << 8) | cbuf[cnt++];
+       }
+       lastbits -= num_of_bits;
+       num |= (lastbyte >> lastbits) & ((1 << num_of_bits) -1);
+    }
+    num &= mask;
+    buf[0] = cnt;
+    buf[1] = lastbits;
+    buf[2] = lastbyte;
+    return num; 
+}
+
+/*____________________________________________________________________________
+ |
+ | receiveints - decode 'small' integers from the buf array
+ |
+ | this routine is the inverse from sendints() and decodes the small integers
+ | written to buf by calculating the remainder and doing divisions with
+ | the given sizes[]. You need to specify the total number of bits to be
+ | used from buf in num_of_bits.
+ |
+*/
+
+static void receiveints(int buf[], const int num_of_ints, int num_of_bits,
+       unsigned int sizes[], int nums[]) {
+    int bytes[32];
+    int i, j, num_of_bytes, p, num;
+    
+    bytes[1] = bytes[2] = bytes[3] = 0;
+    num_of_bytes = 0;
+    while (num_of_bits > 8) {
+       bytes[num_of_bytes++] = receivebits(buf, 8);
+       num_of_bits -= 8;
+    }
+    if (num_of_bits > 0) {
+       bytes[num_of_bytes++] = receivebits(buf, num_of_bits);
+    }
+    for (i = num_of_ints-1; i > 0; i--) {
+       num = 0;
+       for (j = num_of_bytes-1; j >=0; j--) {
+           num = (num << 8) | bytes[j];
+           p = num / sizes[i];
+           bytes[j] = p;
+           num = num - p * sizes[i];
+       }
+       nums[i] = num;
+    }
+    nums[0] = bytes[0] | (bytes[1] << 8) | (bytes[2] << 16) | (bytes[3] << 24);
+}
+    
+/*____________________________________________________________________________
+ |
+ | xdr3dfcoord - read or write compressed 3d coordinates to xdr file.
+ |
+ | this routine reads or writes (depending on how you opened the file with
+ | xdropen() ) a large number of 3d coordinates (stored in *fp).
+ | The number of coordinates triplets to write is given by *size. On
+ | read this number may be zero, in which case it reads as many as were written
+ | or it may specify the number if triplets to read (which should match the
+ | number written).
+ | Compression is achieved by first converting all floating numbers to integer
+ | using multiplication by *precision and rounding to the nearest integer.
+ | Then the minimum and maximum value are calculated to determine the range.
+ | The limited range of integers so found, is used to compress the coordinates.
+ | In addition the differences between succesive coordinates is calculated.
+ | If the difference happens to be 'small' then only the difference is saved,
+ | compressing the data even more. The notion of 'small' is changed dynamically
+ | and is enlarged or reduced whenever needed or possible.
+ | Extra compression is achieved in the case of GROMOS and coordinates of
+ | water molecules. GROMOS first writes out the Oxygen position, followed by
+ | the two hydrogens. In order to make the differences smaller (and thereby
+ | compression the data better) the order is changed into first one hydrogen
+ | then the oxygen, followed by the other hydrogen. This is rather special, but
+ | it shouldn't harm in the general case.
+ |
+ */
+int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) {
+    
+
+    static int *ip = NULL;
+    static int oldsize;
+    static int *buf;
+
+    int minint[3], maxint[3], mindiff, *lip, diff;
+    int lint1, lint2, lint3, oldlint1, oldlint2, oldlint3, smallidx;
+    int minidx, maxidx;
+    unsigned sizeint[3], sizesmall[3], bitsizeint[3], size3, *luip;
+    int flag, k;
+    int small, smaller, larger, i, is_small, is_smaller, run, prevrun;
+    float *lfp, lf;
+    int tmp, *thiscoord,  prevcoord[3];
+    unsigned int tmpcoord[30];
+
+    int bufsize, xdrid, lsize;
+    unsigned int bitsize;
+    float inv_precision;
+    int errval = 1;
+
+    /* find out if xdrs is opened for reading or for writing */
+    xdrid = 0;
+    while (xdridptr[xdrid] != xdrs) {
+       xdrid++;
+       if (xdrid >= MAXID) {
+           fprintf(stderr, "xdr error. no open xdr stream\n");
+           exit (1);
+       }
+    }
+    if (xdrmodes[xdrid] == 'w') {
+
+       /* xdrs is open for writing */
+
+       if (xdr_int(xdrs, size) == 0)
+           return 0;
+       size3 = *size * 3;
+       /* when the number of coordinates is small, don't try to compress; just
+        * write them as floats using xdr_vector
+        */
+       if (*size <= 9 ) {
+           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
+               (xdrproc_t)xdr_float));
+       }
+       
+       xdr_float(xdrs, precision);
+       if (ip == NULL) {
+           ip = (int *)malloc(size3 * sizeof(*ip));
+           if (ip == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           bufsize = size3 * 1.2;
+           buf = (int *)malloc(bufsize * sizeof(*buf));
+           if (buf == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           oldsize = *size;
+       } else if (*size > oldsize) {
+           ip = (int *)realloc(ip, size3 * sizeof(*ip));
+           if (ip == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           bufsize = size3 * 1.2;
+           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
+           if (buf == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           oldsize = *size;
+       }
+       /* buf[0-2] are special and do not contain actual data */
+       buf[0] = buf[1] = buf[2] = 0;
+       minint[0] = minint[1] = minint[2] = INT_MAX;
+       maxint[0] = maxint[1] = maxint[2] = INT_MIN;
+       prevrun = -1;
+       lfp = fp;
+       lip = ip;
+       mindiff = INT_MAX;
+       oldlint1 = oldlint2 = oldlint3 = 0;
+       while(lfp < fp + size3 ) {
+           /* find nearest integer */
+           if (*lfp >= 0.0)
+               lf = *lfp * *precision + 0.5;
+           else
+               lf = *lfp * *precision - 0.5;
+           if (fabs(lf) > MAXABS) {
+               /* scaling would cause overflow */
+               errval = 0;
+           }
+           lint1 = lf;
+           if (lint1 < minint[0]) minint[0] = lint1;
+           if (lint1 > maxint[0]) maxint[0] = lint1;
+           *lip++ = lint1;
+           lfp++;
+           if (*lfp >= 0.0)
+               lf = *lfp * *precision + 0.5;
+           else
+               lf = *lfp * *precision - 0.5;
+           if (fabs(lf) > MAXABS) {
+               /* scaling would cause overflow */
+               errval = 0;
+           }
+           lint2 = lf;
+           if (lint2 < minint[1]) minint[1] = lint2;
+           if (lint2 > maxint[1]) maxint[1] = lint2;
+           *lip++ = lint2;
+           lfp++;
+           if (*lfp >= 0.0)
+               lf = *lfp * *precision + 0.5;
+           else
+               lf = *lfp * *precision - 0.5;
+           if (fabs(lf) > MAXABS) {
+               /* scaling would cause overflow */
+               errval = 0;
+           }
+           lint3 = lf;
+           if (lint3 < minint[2]) minint[2] = lint3;
+           if (lint3 > maxint[2]) maxint[2] = lint3;
+           *lip++ = lint3;
+           lfp++;
+           diff = abs(oldlint1-lint1)+abs(oldlint2-lint2)+abs(oldlint3-lint3);
+           if (diff < mindiff && lfp > fp + 3)
+               mindiff = diff;
+           oldlint1 = lint1;
+           oldlint2 = lint2;
+           oldlint3 = lint3;
+       }
+       xdr_int(xdrs, &(minint[0]));
+       xdr_int(xdrs, &(minint[1]));
+       xdr_int(xdrs, &(minint[2]));
+       
+       xdr_int(xdrs, &(maxint[0]));
+       xdr_int(xdrs, &(maxint[1]));
+       xdr_int(xdrs, &(maxint[2]));
+       
+       if ((float)maxint[0] - (float)minint[0] >= MAXABS ||
+               (float)maxint[1] - (float)minint[1] >= MAXABS ||
+               (float)maxint[2] - (float)minint[2] >= MAXABS) {
+           /* turning value in unsigned by subtracting minint
+            * would cause overflow
+            */
+           errval = 0;
+       }
+       sizeint[0] = maxint[0] - minint[0]+1;
+       sizeint[1] = maxint[1] - minint[1]+1;
+       sizeint[2] = maxint[2] - minint[2]+1;
+       
+       /* check if one of the sizes is to big to be multiplied */
+       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
+           bitsizeint[0] = sizeofint(sizeint[0]);
+           bitsizeint[1] = sizeofint(sizeint[1]);
+           bitsizeint[2] = sizeofint(sizeint[2]);
+           bitsize = 0; /* flag the use of large sizes */
+       } else {
+           bitsize = sizeofints(3, sizeint);
+       }
+       lip = ip;
+       luip = (unsigned int *) ip;
+       smallidx = FIRSTIDX;
+       while (smallidx < LASTIDX && magicints[smallidx] < mindiff) {
+           smallidx++;
+       }
+       xdr_int(xdrs, &smallidx);
+       maxidx = MIN(LASTIDX, smallidx + 8) ;
+       minidx = maxidx - 8; /* often this equal smallidx */
+       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
+       small = magicints[smallidx] / 2;
+       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
+       larger = magicints[maxidx] / 2;
+       i = 0;
+       while (i < *size) {
+           is_small = 0;
+           thiscoord = (int *)(luip) + i * 3;
+           if (smallidx < maxidx && i >= 1 &&
+                   abs(thiscoord[0] - prevcoord[0]) < larger &&
+                   abs(thiscoord[1] - prevcoord[1]) < larger &&
+                   abs(thiscoord[2] - prevcoord[2]) < larger) {
+               is_smaller = 1;
+           } else if (smallidx > minidx) {
+               is_smaller = -1;
+           } else {
+               is_smaller = 0;
+           }
+           if (i + 1 < *size) {
+               if (abs(thiscoord[0] - thiscoord[3]) < small &&
+                       abs(thiscoord[1] - thiscoord[4]) < small &&
+                       abs(thiscoord[2] - thiscoord[5]) < small) {
+                   /* interchange first with second atom for better
+                    * compression of water molecules
+                    */
+                   tmp = thiscoord[0]; thiscoord[0] = thiscoord[3];
+                       thiscoord[3] = tmp;
+                   tmp = thiscoord[1]; thiscoord[1] = thiscoord[4];
+                       thiscoord[4] = tmp;
+                   tmp = thiscoord[2]; thiscoord[2] = thiscoord[5];
+                       thiscoord[5] = tmp;
+                   is_small = 1;
+               }
+    
+           }
+           tmpcoord[0] = thiscoord[0] - minint[0];
+           tmpcoord[1] = thiscoord[1] - minint[1];
+           tmpcoord[2] = thiscoord[2] - minint[2];
+           if (bitsize == 0) {
+               sendbits(buf, bitsizeint[0], tmpcoord[0]);
+               sendbits(buf, bitsizeint[1], tmpcoord[1]);
+               sendbits(buf, bitsizeint[2], tmpcoord[2]);
+           } else {
+               sendints(buf, 3, bitsize, sizeint, tmpcoord);
+           }
+           prevcoord[0] = thiscoord[0];
+           prevcoord[1] = thiscoord[1];
+           prevcoord[2] = thiscoord[2];
+           thiscoord = thiscoord + 3;
+           i++;
+           
+           run = 0;
+           if (is_small == 0 && is_smaller == -1)
+               is_smaller = 0;
+           while (is_small && run < 8*3) {
+               if (is_smaller == -1 && (
+                       SQR(thiscoord[0] - prevcoord[0]) +
+                       SQR(thiscoord[1] - prevcoord[1]) +
+                       SQR(thiscoord[2] - prevcoord[2]) >= smaller * smaller)) {
+                   is_smaller = 0;
+               }
+
+               tmpcoord[run++] = thiscoord[0] - prevcoord[0] + small;
+               tmpcoord[run++] = thiscoord[1] - prevcoord[1] + small;
+               tmpcoord[run++] = thiscoord[2] - prevcoord[2] + small;
+               
+               prevcoord[0] = thiscoord[0];
+               prevcoord[1] = thiscoord[1];
+               prevcoord[2] = thiscoord[2];
+
+               i++;
+               thiscoord = thiscoord + 3;
+               is_small = 0;
+               if (i < *size &&
+                       abs(thiscoord[0] - prevcoord[0]) < small &&
+                       abs(thiscoord[1] - prevcoord[1]) < small &&
+                       abs(thiscoord[2] - prevcoord[2]) < small) {
+                   is_small = 1;
+               }
+           }
+           if (run != prevrun || is_smaller != 0) {
+               prevrun = run;
+               sendbits(buf, 1, 1); /* flag the change in run-length */
+               sendbits(buf, 5, run+is_smaller+1);
+           } else {
+               sendbits(buf, 1, 0); /* flag the fact that runlength did not change */
+           }
+           for (k=0; k < run; k+=3) {
+               sendints(buf, 3, smallidx, sizesmall, &tmpcoord[k]);    
+           }
+           if (is_smaller != 0) {
+               smallidx += is_smaller;
+               if (is_smaller < 0) {
+                   small = smaller;
+                   smaller = magicints[smallidx-1] / 2;
+               } else {
+                   smaller = small;
+                   small = magicints[smallidx] / 2;
+               }
+               sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
+           }
+       }
+       if (buf[1] != 0) buf[0]++;;
+       xdr_int(xdrs, &(buf[0])); /* buf[0] holds the length in bytes */
+       return errval * (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]));
+    } else {
+       
+       /* xdrs is open for reading */
+       
+       if (xdr_int(xdrs, &lsize) == 0) 
+           return 0;
+       if (*size != 0 && lsize != *size) {
+           fprintf(stderr, "wrong number of coordinates in xdr3dfcoor; "
+                   "%d arg vs %d in file", *size, lsize);
+       }
+       *size = lsize;
+       size3 = *size * 3;
+       if (*size <= 9) {
+           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
+               (xdrproc_t)xdr_float));
+       }
+       xdr_float(xdrs, precision);
+       if (ip == NULL) {
+           ip = (int *)malloc(size3 * sizeof(*ip));
+           if (ip == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           bufsize = size3 * 1.2;
+           buf = (int *)malloc(bufsize * sizeof(*buf));
+           if (buf == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           oldsize = *size;
+       } else if (*size > oldsize) {
+           ip = (int *)realloc(ip, size3 * sizeof(*ip));
+           if (ip == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           bufsize = size3 * 1.2;
+           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
+           if (buf == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           oldsize = *size;
+       }
+       buf[0] = buf[1] = buf[2] = 0;
+       
+       xdr_int(xdrs, &(minint[0]));
+       xdr_int(xdrs, &(minint[1]));
+       xdr_int(xdrs, &(minint[2]));
+
+       xdr_int(xdrs, &(maxint[0]));
+       xdr_int(xdrs, &(maxint[1]));
+       xdr_int(xdrs, &(maxint[2]));
+               
+       sizeint[0] = maxint[0] - minint[0]+1;
+       sizeint[1] = maxint[1] - minint[1]+1;
+       sizeint[2] = maxint[2] - minint[2]+1;
+       
+       /* check if one of the sizes is to big to be multiplied */
+       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
+           bitsizeint[0] = sizeofint(sizeint[0]);
+           bitsizeint[1] = sizeofint(sizeint[1]);
+           bitsizeint[2] = sizeofint(sizeint[2]);
+           bitsize = 0; /* flag the use of large sizes */
+       } else {
+           bitsize = sizeofints(3, sizeint);
+       }
+       
+       xdr_int(xdrs, &smallidx);
+       maxidx = MIN(LASTIDX, smallidx + 8) ;
+       minidx = maxidx - 8; /* often this equal smallidx */
+       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
+       small = magicints[smallidx] / 2;
+       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
+       larger = magicints[maxidx];
+
+       /* buf[0] holds the length in bytes */
+
+       if (xdr_int(xdrs, &(buf[0])) == 0)
+           return 0;
+       if (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]) == 0)
+           return 0;
+       buf[0] = buf[1] = buf[2] = 0;
+       
+       lfp = fp;
+       inv_precision = 1.0 / * precision;
+       run = 0;
+       i = 0;
+       lip = ip;
+       while ( i < lsize ) {
+           thiscoord = (int *)(lip) + i * 3;
+
+           if (bitsize == 0) {
+               thiscoord[0] = receivebits(buf, bitsizeint[0]);
+               thiscoord[1] = receivebits(buf, bitsizeint[1]);
+               thiscoord[2] = receivebits(buf, bitsizeint[2]);
+           } else {
+               receiveints(buf, 3, bitsize, sizeint, thiscoord);
+           }
+           
+           i++;
+           thiscoord[0] += minint[0];
+           thiscoord[1] += minint[1];
+           thiscoord[2] += minint[2];
+           
+           prevcoord[0] = thiscoord[0];
+           prevcoord[1] = thiscoord[1];
+           prevcoord[2] = thiscoord[2];
+           
+          
+           flag = receivebits(buf, 1);
+           is_smaller = 0;
+           if (flag == 1) {
+               run = receivebits(buf, 5);
+               is_smaller = run % 3;
+               run -= is_smaller;
+               is_smaller--;
+           }
+           if (run > 0) {
+               thiscoord += 3;
+               for (k = 0; k < run; k+=3) {
+                   receiveints(buf, 3, smallidx, sizesmall, thiscoord);
+                   i++;
+                   thiscoord[0] += prevcoord[0] - small;
+                   thiscoord[1] += prevcoord[1] - small;
+                   thiscoord[2] += prevcoord[2] - small;
+                   if (k == 0) {
+                       /* interchange first with second atom for better
+                        * compression of water molecules
+                        */
+                       tmp = thiscoord[0]; thiscoord[0] = prevcoord[0];
+                               prevcoord[0] = tmp;
+                       tmp = thiscoord[1]; thiscoord[1] = prevcoord[1];
+                               prevcoord[1] = tmp;
+                       tmp = thiscoord[2]; thiscoord[2] = prevcoord[2];
+                               prevcoord[2] = tmp;
+                       *lfp++ = prevcoord[0] * inv_precision;
+                       *lfp++ = prevcoord[1] * inv_precision;
+                       *lfp++ = prevcoord[2] * inv_precision;
+                   } else {
+                       prevcoord[0] = thiscoord[0];
+                       prevcoord[1] = thiscoord[1];
+                       prevcoord[2] = thiscoord[2];
+                   }
+                   *lfp++ = thiscoord[0] * inv_precision;
+                   *lfp++ = thiscoord[1] * inv_precision;
+                   *lfp++ = thiscoord[2] * inv_precision;
+               }
+           } else {
+               *lfp++ = thiscoord[0] * inv_precision;
+               *lfp++ = thiscoord[1] * inv_precision;
+               *lfp++ = thiscoord[2] * inv_precision;          
+           }
+           smallidx += is_smaller;
+           if (is_smaller < 0) {
+               small = smaller;
+               if (smallidx > FIRSTIDX) {
+                   smaller = magicints[smallidx - 1] /2;
+               } else {
+                   smaller = 0;
+               }
+           } else if (is_smaller > 0) {
+               smaller = small;
+               small = magicints[smallidx] / 2;
+           }
+           sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
+       }
+    }
+    return 1;
+}
+
+
+   
diff --git a/source/lib/xdrf_em64/libxdrf.m4.org b/source/lib/xdrf_em64/libxdrf.m4.org
new file mode 100644 (file)
index 0000000..b14b374
--- /dev/null
@@ -0,0 +1,1230 @@
+/*____________________________________________________________________________
+ |
+ | libxdrf - portable fortran interface to xdr. some xdr routines
+ |          are C routines for compressed coordinates
+ |
+ | version 1.1
+ |
+ | This collection of routines is intended to write and read
+ | data in a portable way to a file, so data written on one type
+ | of machine can be read back on a different type.
+ |
+ | all fortran routines use an integer 'xdrid', which is an id to the
+ | current xdr file, and is set by xdrfopen.
+ | most routines have in integer 'ret' which is the return value.
+ | The value of 'ret' is zero on failure, and most of the time one
+ | on succes.
+ |
+ | There are three routines useful for C users:
+ |  xdropen(), xdrclose(), xdr3dfcoord().
+ | The first two replace xdrstdio_create and xdr_destroy, and *must* be
+ | used when you plan to use xdr3dfcoord(). (they are also a bit
+ | easier to interface). For writing data other than compressed coordinates 
+ | you should use the standard C xdr routines (see xdr man page)
+ |
+ | xdrfopen(xdrid, filename, mode, ret)
+ |     character *(*) filename
+ |     character *(*) mode
+ |
+ |     this will open the file with the given filename (string)
+ |     and the given mode, it returns an id in xdrid, which is
+ |     to be used in all other calls to xdrf routines.
+ |     mode is 'w' to create, or update an file, for all other
+ |     values of mode the file is opened for reading
+ |
+ |     you need to call xdrfclose to flush the output and close
+ |     the file.
+ |     Note that you should not use xdrstdio_create, which comes with the
+ |     standard xdr library
+ |
+ | xdrfclose(xdrid, ret)
+ |     flush the data to the file, and closes the file;
+ |     You should not use xdr_destroy (which comes standard with
+ |     the xdr libraries.
+ |
+ | xdrfbool(xdrid, bp, ret)
+ |     integer pb
+ |
+ |     This filter produces values of either 1 or 0    
+ |
+ | xdrfchar(xdrid, cp, ret)
+ |     character cp
+ |
+ |     filter that translate between characters and their xdr representation
+ |     Note that the characters in not compressed and occupies 4 bytes.
+ |
+ | xdrfdouble(xdrid, dp, ret)
+ |     double dp
+ |
+ |     read/write a double.
+ |
+ | xdrffloat(xdrid, fp, ret)
+ |     float fp
+ |
+ |     read/write a float.
+ |
+ | xdrfint(xdrid, ip, ret)
+ |     integer ip
+ |
+ |     read/write integer.
+ |
+ | xdrflong(xdrid, lp, ret)
+ |     integer lp
+ |
+ |     this routine has a possible portablility problem due to 64 bits longs.
+ |
+ | xdrfshort(xdrid, sp, ret)
+ |     integer *2 sp
+ |
+ | xdrfstring(xdrid, sp, maxsize, ret)
+ |     character *(*)
+ |     integer maxsize
+ |
+ |     read/write a string, with maximum length given by maxsize
+ |
+ | xdrfwrapstring(xdris, sp, ret)
+ |     character *(*)
+ |
+ |     read/write a string (it is the same as xdrfstring accept that it finds
+ |     the stringlength itself.
+ |
+ | xdrfvector(xdrid, cp, size, xdrfproc, ret)
+ |     character *(*)
+ |     integer size
+ |     external xdrfproc
+ |
+ |     read/write an array pointed to by cp, with number of elements
+ |     defined by 'size'. the routine 'xdrfproc' is the name
+ |     of one of the above routines to read/write data (like xdrfdouble)
+ |     In contrast with the c-version you don't need to specify the
+ |     byte size of an element.
+ |     xdrfstring is not allowed here (it is in the c version)
+ |     
+ | xdrf3dfcoord(xdrid, fp, size, precision, ret)
+ |     real (*) fp
+ |     real precision
+ |     integer size
+ |
+ |     this is *NOT* a standard xdr routine. I named it this way, because
+ |     it invites people to use the other xdr routines.
+ |     It is introduced to store specifically 3d coordinates of molecules
+ |     (as found in molecular dynamics) and it writes it in a compressed way.
+ |     It starts by multiplying all numbers by precision and
+ |     rounding the result to integer. effectively converting
+ |     all floating point numbers to fixed point.
+ |     it uses an algorithm for compression that is optimized for
+ |     molecular data, but could be used for other 3d coordinates
+ |     as well. There is subtantial overhead involved, so call this
+ |     routine only if you have a large number of coordinates to read/write
+ |
+ | ________________________________________________________________________
+ |
+ | Below are the routines to be used by C programmers. Use the 'normal'
+ | xdr routines to write integers, floats, etc (see man xdr)   
+ |
+ | int xdropen(XDR *xdrs, const char *filename, const char *type)
+ |     This will open the file with the given filename and the 
+ |     given mode. You should pass it an allocated XDR struct
+ |     in xdrs, to be used in all other calls to xdr routines.
+ |     Mode is 'w' to create, or update an file, and for all 
+ |     other values of mode the file is opened for reading. 
+ |     You need to call xdrclose to flush the output and close
+ |     the file.
+ |
+ |     Note that you should not use xdrstdio_create, which
+ |     comes with the standard xdr library.
+ |
+ | int xdrclose(XDR *xdrs)
+ |     Flush the data to the file, and close the file;
+ |     You should not use xdr_destroy (which comes standard
+ |     with the xdr libraries).
+ |      
+ | int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision)
+ |     This is \fInot\fR a standard xdr routine. I named it this 
+ |     way, because it invites people to use the other xdr 
+ |     routines.
+ |
+ |     (c) 1995 Frans van Hoesel, hoesel@chem.rug.nl
+*/     
+
+
+#include <limits.h>
+#include <malloc.h>
+#include <math.h>
+#include <rpc/rpc.h>
+#include <rpc/xdr.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include "xdrf.h"
+
+int ftocstr(char *, int, char *, int);
+int ctofstr(char *, int, char *);
+
+#define MAXID 20
+static FILE *xdrfiles[MAXID];
+static XDR *xdridptr[MAXID];
+static char xdrmodes[MAXID];
+static unsigned int cnt;
+
+typedef void (* FUNCTION(xdrfproc)) (int *, void *, int *);
+
+void
+FUNCTION(xdrfbool) ARGS(`xdrid, pb, ret')
+int *xdrid, *ret;
+int *pb;
+{
+       *ret = xdr_bool(xdridptr[*xdrid], (bool_t *) pb);
+       cnt += sizeof(int);
+}
+
+void
+FUNCTION(xdrfchar) ARGS(`xdrid, cp, ret')
+int *xdrid, *ret;
+char *cp;
+{
+       *ret = xdr_char(xdridptr[*xdrid], cp);
+       cnt += sizeof(char);
+}
+
+void
+FUNCTION(xdrfdouble) ARGS(`xdrid, dp, ret')
+int *xdrid, *ret;
+double *dp;
+{
+       *ret = xdr_double(xdridptr[*xdrid], dp);
+       cnt += sizeof(double);
+}
+
+void
+FUNCTION(xdrffloat) ARGS(`xdrid, fp, ret')
+int *xdrid, *ret;
+float *fp;
+{
+       *ret = xdr_float(xdridptr[*xdrid], fp);
+       cnt += sizeof(float);
+}
+
+void
+FUNCTION(xdrfint) ARGS(`xdrid, ip, ret')
+int *xdrid, *ret;
+int *ip;
+{
+       *ret = xdr_int(xdridptr[*xdrid], ip);
+       cnt += sizeof(int);
+}
+
+void
+FUNCTION(xdrflong) ARGS(`xdrid, lp, ret')
+int *xdrid, *ret;
+long *lp;
+{
+       *ret = xdr_long(xdridptr[*xdrid], lp);
+       cnt += sizeof(long);
+}
+
+void
+FUNCTION(xdrfshort) ARGS(`xdrid, sp, ret')
+int *xdrid, *ret;
+short *sp;
+{
+       *ret = xdr_short(xdridptr[*xdrid], sp);
+       cnt += sizeof(sp);
+}
+
+void
+FUNCTION(xdrfuchar) ARGS(`xdrid, ucp, ret')
+int *xdrid, *ret;
+char *ucp;
+{
+       *ret = xdr_u_char(xdridptr[*xdrid], ucp);
+       cnt += sizeof(char);
+}
+
+void
+FUNCTION(xdrfulong) ARGS(`xdrid, ulp, ret')
+int *xdrid, *ret;
+unsigned long *ulp;
+{
+       *ret = xdr_u_long(xdridptr[*xdrid], ulp);
+       cnt += sizeof(unsigned long);
+}
+
+void
+FUNCTION(xdrfushort) ARGS(`xdrid, usp, ret')
+int *xdrid, *ret;
+unsigned short *usp;
+{
+       *ret = xdr_u_short(xdridptr[*xdrid], usp);
+       cnt += sizeof(unsigned short);
+}
+
+void 
+FUNCTION(xdrf3dfcoord) ARGS(`xdrid, fp, size, precision, ret')
+int *xdrid, *ret;
+float *fp;
+int *size;
+float *precision;
+{
+       *ret = xdr3dfcoord(xdridptr[*xdrid], fp, size, precision);
+}
+
+void
+FUNCTION(xdrfstring) ARGS(`xdrid, STRING_ARG(sp), maxsize, ret')
+int *xdrid, *ret;
+STRING_ARG_DECL(sp);
+int *maxsize;
+{
+       char *tsp;
+
+       tsp = (char*) malloc(((STRING_LEN(sp)) + 1) * sizeof(char));
+       if (tsp == NULL) {
+           *ret = -1;
+           return;
+       }
+       if (ftocstr(tsp, *maxsize+1, STRING_PTR(sp), STRING_LEN(sp))) {
+           *ret = -1;
+           free(tsp);
+           return;
+       }
+       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int) *maxsize);
+       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
+       cnt += *maxsize;
+       free(tsp);
+}
+
+void
+FUNCTION(xdrfwrapstring) ARGS(`xdrid,  STRING_ARG(sp), ret')
+int *xdrid, *ret;
+STRING_ARG_DECL(sp);
+{
+       char *tsp;
+       int maxsize;
+       maxsize = (STRING_LEN(sp)) + 1;
+       tsp = (char*) malloc(maxsize * sizeof(char));
+       if (tsp == NULL) {
+           *ret = -1;
+           return;
+       }
+       if (ftocstr(tsp, maxsize, STRING_PTR(sp), STRING_LEN(sp))) {
+           *ret = -1;
+           free(tsp);
+           return;
+       }
+       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int)maxsize);
+       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
+       cnt += maxsize;
+       free(tsp);
+}
+
+void
+FUNCTION(xdrfopaque) ARGS(`xdrid, cp, ccnt, ret')
+int *xdrid, *ret;
+caddr_t *cp;
+int *ccnt;
+{
+       *ret = xdr_opaque(xdridptr[*xdrid], (caddr_t)*cp, (u_int)*ccnt);
+       cnt += *ccnt;
+}
+
+void
+FUNCTION(xdrfsetpos) ARGS(`xdrid, pos, ret')
+int *xdrid, *ret;
+int *pos;
+{
+       *ret = xdr_setpos(xdridptr[*xdrid], (u_int) *pos);
+}
+
+void
+FUNCTION(xdrf) ARGS(`xdrid, pos')
+int *xdrid, *pos;
+{
+       *pos = xdr_getpos(xdridptr[*xdrid]);
+}
+
+void
+FUNCTION(xdrfvector) ARGS(`xdrid, cp, size, elproc, ret')
+int *xdrid, *ret;
+char *cp;
+int *size;
+FUNCTION(xdrfproc) elproc;
+{
+       int lcnt;
+       cnt = 0;
+       for (lcnt = 0; lcnt < *size; lcnt++) {
+               elproc(xdrid, (cp+cnt) , ret);
+       }
+}
+
+
+void
+FUNCTION(xdrfclose) ARGS(`xdrid, ret')
+int *xdrid;
+int *ret;
+{
+       *ret = xdrclose(xdridptr[*xdrid]);
+       cnt = 0;
+}
+
+void
+FUNCTION(xdrfopen) ARGS(`xdrid,  STRING_ARG(fp), STRING_ARG(mode), ret')
+int *xdrid;
+STRING_ARG_DECL(fp);
+STRING_ARG_DECL(mode);
+int *ret;
+{
+       char fname[512];
+       char fmode[3];
+
+       if (ftocstr(fname, sizeof(fname), STRING_PTR(fp), STRING_LEN(fp))) {
+               *ret = 0;
+       }
+       if (ftocstr(fmode, sizeof(fmode), STRING_PTR(mode),
+                       STRING_LEN(mode))) {
+               *ret = 0;
+       }
+
+       *xdrid = xdropen(NULL, fname, fmode);
+       if (*xdrid == 0)
+               *ret = 0;
+       else 
+               *ret = 1;       
+}
+
+/*___________________________________________________________________________
+ |
+ | what follows are the C routines for opening, closing xdr streams
+ | and the routine to read/write compressed coordinates together
+ | with some routines to assist in this task (those are marked
+ | static and cannot be called from user programs)
+*/
+#define MAXABS INT_MAX-2
+
+#ifndef MIN
+#define MIN(x,y) ((x) < (y) ? (x):(y))
+#endif
+#ifndef MAX
+#define MAX(x,y) ((x) > (y) ? (x):(y))
+#endif
+#ifndef SQR
+#define SQR(x) ((x)*(x))
+#endif
+static int magicints[] = {
+    0, 0, 0, 0, 0, 0, 0, 0, 0,
+    8, 10, 12, 16, 20, 25, 32, 40, 50, 64,
+    80, 101, 128, 161, 203, 256, 322, 406, 512, 645,
+    812, 1024, 1290, 1625, 2048, 2580, 3250, 4096, 5060, 6501,
+    8192, 10321, 13003, 16384, 20642, 26007, 32768, 41285, 52015, 65536,
+    82570, 104031, 131072, 165140, 208063, 262144, 330280, 416127, 524287, 660561,
+    832255, 1048576, 1321122, 1664510, 2097152, 2642245, 3329021, 4194304, 5284491, 6658042,
+    8388607, 10568983, 13316085, 16777216 };
+
+#define FIRSTIDX 9
+/* note that magicints[FIRSTIDX-1] == 0 */
+#define LASTIDX (sizeof(magicints) / sizeof(*magicints))
+
+
+/*__________________________________________________________________________
+ |
+ | xdropen - open xdr file
+ |
+ | This versions differs from xdrstdio_create, because I need to know
+ | the state of the file (read or write) so I can use xdr3dfcoord
+ | in eigther read or write mode, and the file descriptor
+ | so I can close the file (something xdr_destroy doesn't do).
+ |
+*/
+
+int xdropen(XDR *xdrs, const char *filename, const char *type) {
+    static int init_done = 0;
+    enum xdr_op lmode;
+    int xdrid;
+    
+    if (init_done == 0) {
+       for (xdrid = 1; xdrid < MAXID; xdrid++) {
+           xdridptr[xdrid] = NULL;
+       }
+       init_done = 1;
+    }
+    xdrid = 1;
+    while (xdrid < MAXID && xdridptr[xdrid] != NULL) {
+       xdrid++;
+    }
+    if (xdrid == MAXID) {
+       return 0;
+    }
+    if (*type == 'w' || *type == 'W') {
+           type = "w+";
+           lmode = XDR_ENCODE;
+    } else {
+           type = "r";
+           lmode = XDR_DECODE;
+    }
+    xdrfiles[xdrid] = fopen(filename, type);
+    if (xdrfiles[xdrid] == NULL) {
+       xdrs = NULL;
+       return 0;
+    }
+    xdrmodes[xdrid] = *type;
+    /* next test isn't usefull in the case of C language
+     * but is used for the Fortran interface
+     * (C users are expected to pass the address of an already allocated
+     * XDR staructure)
+     */
+    if (xdrs == NULL) {
+       xdridptr[xdrid] = (XDR *) malloc(sizeof(XDR));
+       xdrstdio_create(xdridptr[xdrid], xdrfiles[xdrid], lmode);
+    } else {
+       xdridptr[xdrid] = xdrs;
+       xdrstdio_create(xdrs, xdrfiles[xdrid], lmode);
+    }
+    return xdrid;
+}
+
+/*_________________________________________________________________________
+ |
+ | xdrclose - close a xdr file
+ |
+ | This will flush the xdr buffers, and destroy the xdr stream.
+ | It also closes the associated file descriptor (this is *not*
+ | done by xdr_destroy).
+ |
+*/
+int xdrclose(XDR *xdrs) {
+    int xdrid;
+    
+    if (xdrs == NULL) {
+       fprintf(stderr, "xdrclose: passed a NULL pointer\n");
+       exit(1);
+    }
+    for (xdrid = 1; xdrid < MAXID; xdrid++) {
+       if (xdridptr[xdrid] == xdrs) {
+           
+           xdr_destroy(xdrs);
+           fclose(xdrfiles[xdrid]);
+           xdridptr[xdrid] = NULL;
+           return 1;
+       }
+    } 
+    fprintf(stderr, "xdrclose: no such open xdr file\n");
+    exit(1);
+    
+}
+
+/*____________________________________________________________________________
+ |
+ | sendbits - encode num into buf using the specified number of bits
+ |
+ | This routines appends the value of num to the bits already present in
+ | the array buf. You need to give it the number of bits to use and you
+ | better make sure that this number of bits is enough to hold the value
+ | Also num must be positive.
+ |
+*/
+
+static void sendbits(int buf[], int num_of_bits, int num) {
+    
+    unsigned int cnt, lastbyte;
+    int lastbits;
+    unsigned char * cbuf;
+    
+    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
+    cnt = (unsigned int) buf[0];
+    lastbits = buf[1];
+    lastbyte =(unsigned int) buf[2];
+    while (num_of_bits >= 8) {
+       lastbyte = (lastbyte << 8) | ((num >> (num_of_bits -8)) /* & 0xff*/);
+       cbuf[cnt++] = lastbyte >> lastbits;
+       num_of_bits -= 8;
+    }
+    if (num_of_bits > 0) {
+       lastbyte = (lastbyte << num_of_bits) | num;
+       lastbits += num_of_bits;
+       if (lastbits >= 8) {
+           lastbits -= 8;
+           cbuf[cnt++] = lastbyte >> lastbits;
+       }
+    }
+    buf[0] = cnt;
+    buf[1] = lastbits;
+    buf[2] = lastbyte;
+    if (lastbits>0) {
+       cbuf[cnt] = lastbyte << (8 - lastbits);
+    }
+}
+
+/*_________________________________________________________________________
+ |
+ | sizeofint - calculate bitsize of an integer
+ |
+ | return the number of bits needed to store an integer with given max size
+ |
+*/
+
+static int sizeofint(const int size) {
+    unsigned int num = 1;
+    int num_of_bits = 0;
+    
+    while (size >= num && num_of_bits < 32) {
+       num_of_bits++;
+       num <<= 1;
+    }
+    return num_of_bits;
+}
+
+/*___________________________________________________________________________
+ |
+ | sizeofints - calculate 'bitsize' of compressed ints
+ |
+ | given the number of small unsigned integers and the maximum value
+ | return the number of bits needed to read or write them with the
+ | routines receiveints and sendints. You need this parameter when
+ | calling these routines. Note that for many calls I can use
+ | the variable 'smallidx' which is exactly the number of bits, and
+ | So I don't need to call 'sizeofints for those calls.
+*/
+
+static int sizeofints( const int num_of_ints, unsigned int sizes[]) {
+    int i, num;
+    unsigned int num_of_bytes, num_of_bits, bytes[32], bytecnt, tmp;
+    num_of_bytes = 1;
+    bytes[0] = 1;
+    num_of_bits = 0;
+    for (i=0; i < num_of_ints; i++) {  
+       tmp = 0;
+       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
+           tmp = bytes[bytecnt] * sizes[i] + tmp;
+           bytes[bytecnt] = tmp & 0xff;
+           tmp >>= 8;
+       }
+       while (tmp != 0) {
+           bytes[bytecnt++] = tmp & 0xff;
+           tmp >>= 8;
+       }
+       num_of_bytes = bytecnt;
+    }
+    num = 1;
+    num_of_bytes--;
+    while (bytes[num_of_bytes] >= num) {
+       num_of_bits++;
+       num *= 2;
+    }
+    return num_of_bits + num_of_bytes * 8;
+
+}
+    
+/*____________________________________________________________________________
+ |
+ | sendints - send a small set of small integers in compressed format
+ |
+ | this routine is used internally by xdr3dfcoord, to send a set of
+ | small integers to the buffer. 
+ | Multiplication with fixed (specified maximum ) sizes is used to get
+ | to one big, multibyte integer. Allthough the routine could be
+ | modified to handle sizes bigger than 16777216, or more than just
+ | a few integers, this is not done, because the gain in compression
+ | isn't worth the effort. Note that overflowing the multiplication
+ | or the byte buffer (32 bytes) is unchecked and causes bad results.
+ |
+ */
+static void sendints(int buf[], const int num_of_ints, const int num_of_bits,
+       unsigned int sizes[], unsigned int nums[]) {
+
+    int i;
+    unsigned int bytes[32], num_of_bytes, bytecnt, tmp;
+
+    tmp = nums[0];
+    num_of_bytes = 0;
+    do {
+       bytes[num_of_bytes++] = tmp & 0xff;
+       tmp >>= 8;
+    } while (tmp != 0);
+
+    for (i = 1; i < num_of_ints; i++) {
+       if (nums[i] >= sizes[i]) {
+           fprintf(stderr,"major breakdown in sendints num %d doesn't "
+                   "match size %d\n", nums[i], sizes[i]);
+           exit(1);
+       }
+       /* use one step multiply */    
+       tmp = nums[i];
+       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
+           tmp = bytes[bytecnt] * sizes[i] + tmp;
+           bytes[bytecnt] = tmp & 0xff;
+           tmp >>= 8;
+       }
+       while (tmp != 0) {
+           bytes[bytecnt++] = tmp & 0xff;
+           tmp >>= 8;
+       }
+       num_of_bytes = bytecnt;
+    }
+    if (num_of_bits >= num_of_bytes * 8) {
+       for (i = 0; i < num_of_bytes; i++) {
+           sendbits(buf, 8, bytes[i]);
+       }
+       sendbits(buf, num_of_bits - num_of_bytes * 8, 0);
+    } else {
+       for (i = 0; i < num_of_bytes-1; i++) {
+           sendbits(buf, 8, bytes[i]);
+       }
+       sendbits(buf, num_of_bits- (num_of_bytes -1) * 8, bytes[i]);
+    }
+}
+
+
+/*___________________________________________________________________________
+ |
+ | receivebits - decode number from buf using specified number of bits
+ | 
+ | extract the number of bits from the array buf and construct an integer
+ | from it. Return that value.
+ |
+*/
+
+static int receivebits(int buf[], int num_of_bits) {
+
+    int cnt, num; 
+    unsigned int lastbits, lastbyte;
+    unsigned char * cbuf;
+    int mask = (1 << num_of_bits) -1;
+
+    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
+    cnt = buf[0];
+    lastbits = (unsigned int) buf[1];
+    lastbyte = (unsigned int) buf[2];
+    
+    num = 0;
+    while (num_of_bits >= 8) {
+       lastbyte = ( lastbyte << 8 ) | cbuf[cnt++];
+       num |=  (lastbyte >> lastbits) << (num_of_bits - 8);
+       num_of_bits -=8;
+    }
+    if (num_of_bits > 0) {
+       if (lastbits < num_of_bits) {
+           lastbits += 8;
+           lastbyte = (lastbyte << 8) | cbuf[cnt++];
+       }
+       lastbits -= num_of_bits;
+       num |= (lastbyte >> lastbits) & ((1 << num_of_bits) -1);
+    }
+    num &= mask;
+    buf[0] = cnt;
+    buf[1] = lastbits;
+    buf[2] = lastbyte;
+    return num; 
+}
+
+/*____________________________________________________________________________
+ |
+ | receiveints - decode 'small' integers from the buf array
+ |
+ | this routine is the inverse from sendints() and decodes the small integers
+ | written to buf by calculating the remainder and doing divisions with
+ | the given sizes[]. You need to specify the total number of bits to be
+ | used from buf in num_of_bits.
+ |
+*/
+
+static void receiveints(int buf[], const int num_of_ints, int num_of_bits,
+       unsigned int sizes[], int nums[]) {
+    int bytes[32];
+    int i, j, num_of_bytes, p, num;
+    
+    bytes[1] = bytes[2] = bytes[3] = 0;
+    num_of_bytes = 0;
+    while (num_of_bits > 8) {
+       bytes[num_of_bytes++] = receivebits(buf, 8);
+       num_of_bits -= 8;
+    }
+    if (num_of_bits > 0) {
+       bytes[num_of_bytes++] = receivebits(buf, num_of_bits);
+    }
+    for (i = num_of_ints-1; i > 0; i--) {
+       num = 0;
+       for (j = num_of_bytes-1; j >=0; j--) {
+           num = (num << 8) | bytes[j];
+           p = num / sizes[i];
+           bytes[j] = p;
+           num = num - p * sizes[i];
+       }
+       nums[i] = num;
+    }
+    nums[0] = bytes[0] | (bytes[1] << 8) | (bytes[2] << 16) | (bytes[3] << 24);
+}
+    
+/*____________________________________________________________________________
+ |
+ | xdr3dfcoord - read or write compressed 3d coordinates to xdr file.
+ |
+ | this routine reads or writes (depending on how you opened the file with
+ | xdropen() ) a large number of 3d coordinates (stored in *fp).
+ | The number of coordinates triplets to write is given by *size. On
+ | read this number may be zero, in which case it reads as many as were written
+ | or it may specify the number if triplets to read (which should match the
+ | number written).
+ | Compression is achieved by first converting all floating numbers to integer
+ | using multiplication by *precision and rounding to the nearest integer.
+ | Then the minimum and maximum value are calculated to determine the range.
+ | The limited range of integers so found, is used to compress the coordinates.
+ | In addition the differences between succesive coordinates is calculated.
+ | If the difference happens to be 'small' then only the difference is saved,
+ | compressing the data even more. The notion of 'small' is changed dynamically
+ | and is enlarged or reduced whenever needed or possible.
+ | Extra compression is achieved in the case of GROMOS and coordinates of
+ | water molecules. GROMOS first writes out the Oxygen position, followed by
+ | the two hydrogens. In order to make the differences smaller (and thereby
+ | compression the data better) the order is changed into first one hydrogen
+ | then the oxygen, followed by the other hydrogen. This is rather special, but
+ | it shouldn't harm in the general case.
+ |
+ */
+int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) {
+    
+
+    static int *ip = NULL;
+    static int oldsize;
+    static int *buf;
+
+    int minint[3], maxint[3], mindiff, *lip, diff;
+    int lint1, lint2, lint3, oldlint1, oldlint2, oldlint3, smallidx;
+    int minidx, maxidx;
+    unsigned sizeint[3], sizesmall[3], bitsizeint[3], size3, *luip;
+    int flag, k;
+    int small, smaller, larger, i, is_small, is_smaller, run, prevrun;
+    float *lfp, lf;
+    int tmp, *thiscoord,  prevcoord[3];
+    unsigned int tmpcoord[30];
+
+    int bufsize, xdrid, lsize;
+    unsigned int bitsize;
+    float inv_precision;
+    int errval = 1;
+
+    /* find out if xdrs is opened for reading or for writing */
+    xdrid = 0;
+    while (xdridptr[xdrid] != xdrs) {
+       xdrid++;
+       if (xdrid >= MAXID) {
+           fprintf(stderr, "xdr error. no open xdr stream\n");
+           exit (1);
+       }
+    }
+    if (xdrmodes[xdrid] == 'w') {
+
+       /* xdrs is open for writing */
+
+       if (xdr_int(xdrs, size) == 0)
+           return 0;
+       size3 = *size * 3;
+       /* when the number of coordinates is small, don't try to compress; just
+        * write them as floats using xdr_vector
+        */
+       if (*size <= 9 ) {
+           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
+               (xdrproc_t)xdr_float));
+       }
+       
+       xdr_float(xdrs, precision);
+       if (ip == NULL) {
+           ip = (int *)malloc(size3 * sizeof(*ip));
+           if (ip == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           bufsize = size3 * 1.2;
+           buf = (int *)malloc(bufsize * sizeof(*buf));
+           if (buf == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           oldsize = *size;
+       } else if (*size > oldsize) {
+           ip = (int *)realloc(ip, size3 * sizeof(*ip));
+           if (ip == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           bufsize = size3 * 1.2;
+           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
+           if (buf == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           oldsize = *size;
+       }
+       /* buf[0-2] are special and do not contain actual data */
+       buf[0] = buf[1] = buf[2] = 0;
+       minint[0] = minint[1] = minint[2] = INT_MAX;
+       maxint[0] = maxint[1] = maxint[2] = INT_MIN;
+       prevrun = -1;
+       lfp = fp;
+       lip = ip;
+       mindiff = INT_MAX;
+       oldlint1 = oldlint2 = oldlint3 = 0;
+       while(lfp < fp + size3 ) {
+           /* find nearest integer */
+           if (*lfp >= 0.0)
+               lf = *lfp * *precision + 0.5;
+           else
+               lf = *lfp * *precision - 0.5;
+           if (fabs(lf) > MAXABS) {
+               /* scaling would cause overflow */
+               errval = 0;
+           }
+           lint1 = lf;
+           if (lint1 < minint[0]) minint[0] = lint1;
+           if (lint1 > maxint[0]) maxint[0] = lint1;
+           *lip++ = lint1;
+           lfp++;
+           if (*lfp >= 0.0)
+               lf = *lfp * *precision + 0.5;
+           else
+               lf = *lfp * *precision - 0.5;
+           if (fabs(lf) > MAXABS) {
+               /* scaling would cause overflow */
+               errval = 0;
+           }
+           lint2 = lf;
+           if (lint2 < minint[1]) minint[1] = lint2;
+           if (lint2 > maxint[1]) maxint[1] = lint2;
+           *lip++ = lint2;
+           lfp++;
+           if (*lfp >= 0.0)
+               lf = *lfp * *precision + 0.5;
+           else
+               lf = *lfp * *precision - 0.5;
+           if (fabs(lf) > MAXABS) {
+               /* scaling would cause overflow */
+               errval = 0;
+           }
+           lint3 = lf;
+           if (lint3 < minint[2]) minint[2] = lint3;
+           if (lint3 > maxint[2]) maxint[2] = lint3;
+           *lip++ = lint3;
+           lfp++;
+           diff = abs(oldlint1-lint1)+abs(oldlint2-lint2)+abs(oldlint3-lint3);
+           if (diff < mindiff && lfp > fp + 3)
+               mindiff = diff;
+           oldlint1 = lint1;
+           oldlint2 = lint2;
+           oldlint3 = lint3;
+       }
+       xdr_int(xdrs, &(minint[0]));
+       xdr_int(xdrs, &(minint[1]));
+       xdr_int(xdrs, &(minint[2]));
+       
+       xdr_int(xdrs, &(maxint[0]));
+       xdr_int(xdrs, &(maxint[1]));
+       xdr_int(xdrs, &(maxint[2]));
+       
+       if ((float)maxint[0] - (float)minint[0] >= MAXABS ||
+               (float)maxint[1] - (float)minint[1] >= MAXABS ||
+               (float)maxint[2] - (float)minint[2] >= MAXABS) {
+           /* turning value in unsigned by subtracting minint
+            * would cause overflow
+            */
+           errval = 0;
+       }
+       sizeint[0] = maxint[0] - minint[0]+1;
+       sizeint[1] = maxint[1] - minint[1]+1;
+       sizeint[2] = maxint[2] - minint[2]+1;
+       
+       /* check if one of the sizes is to big to be multiplied */
+       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
+           bitsizeint[0] = sizeofint(sizeint[0]);
+           bitsizeint[1] = sizeofint(sizeint[1]);
+           bitsizeint[2] = sizeofint(sizeint[2]);
+           bitsize = 0; /* flag the use of large sizes */
+       } else {
+           bitsize = sizeofints(3, sizeint);
+       }
+       lip = ip;
+       luip = (unsigned int *) ip;
+       smallidx = FIRSTIDX;
+       while (smallidx < LASTIDX && magicints[smallidx] < mindiff) {
+           smallidx++;
+       }
+       xdr_int(xdrs, &smallidx);
+       maxidx = MIN(LASTIDX, smallidx + 8) ;
+       minidx = maxidx - 8; /* often this equal smallidx */
+       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
+       small = magicints[smallidx] / 2;
+       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
+       larger = magicints[maxidx] / 2;
+       i = 0;
+       while (i < *size) {
+           is_small = 0;
+           thiscoord = (int *)(luip) + i * 3;
+           if (smallidx < maxidx && i >= 1 &&
+                   abs(thiscoord[0] - prevcoord[0]) < larger &&
+                   abs(thiscoord[1] - prevcoord[1]) < larger &&
+                   abs(thiscoord[2] - prevcoord[2]) < larger) {
+               is_smaller = 1;
+           } else if (smallidx > minidx) {
+               is_smaller = -1;
+           } else {
+               is_smaller = 0;
+           }
+           if (i + 1 < *size) {
+               if (abs(thiscoord[0] - thiscoord[3]) < small &&
+                       abs(thiscoord[1] - thiscoord[4]) < small &&
+                       abs(thiscoord[2] - thiscoord[5]) < small) {
+                   /* interchange first with second atom for better
+                    * compression of water molecules
+                    */
+                   tmp = thiscoord[0]; thiscoord[0] = thiscoord[3];
+                       thiscoord[3] = tmp;
+                   tmp = thiscoord[1]; thiscoord[1] = thiscoord[4];
+                       thiscoord[4] = tmp;
+                   tmp = thiscoord[2]; thiscoord[2] = thiscoord[5];
+                       thiscoord[5] = tmp;
+                   is_small = 1;
+               }
+    
+           }
+           tmpcoord[0] = thiscoord[0] - minint[0];
+           tmpcoord[1] = thiscoord[1] - minint[1];
+           tmpcoord[2] = thiscoord[2] - minint[2];
+           if (bitsize == 0) {
+               sendbits(buf, bitsizeint[0], tmpcoord[0]);
+               sendbits(buf, bitsizeint[1], tmpcoord[1]);
+               sendbits(buf, bitsizeint[2], tmpcoord[2]);
+           } else {
+               sendints(buf, 3, bitsize, sizeint, tmpcoord);
+           }
+           prevcoord[0] = thiscoord[0];
+           prevcoord[1] = thiscoord[1];
+           prevcoord[2] = thiscoord[2];
+           thiscoord = thiscoord + 3;
+           i++;
+           
+           run = 0;
+           if (is_small == 0 && is_smaller == -1)
+               is_smaller = 0;
+           while (is_small && run < 8*3) {
+               if (is_smaller == -1 && (
+                       SQR(thiscoord[0] - prevcoord[0]) +
+                       SQR(thiscoord[1] - prevcoord[1]) +
+                       SQR(thiscoord[2] - prevcoord[2]) >= smaller * smaller)) {
+                   is_smaller = 0;
+               }
+
+               tmpcoord[run++] = thiscoord[0] - prevcoord[0] + small;
+               tmpcoord[run++] = thiscoord[1] - prevcoord[1] + small;
+               tmpcoord[run++] = thiscoord[2] - prevcoord[2] + small;
+               
+               prevcoord[0] = thiscoord[0];
+               prevcoord[1] = thiscoord[1];
+               prevcoord[2] = thiscoord[2];
+
+               i++;
+               thiscoord = thiscoord + 3;
+               is_small = 0;
+               if (i < *size &&
+                       abs(thiscoord[0] - prevcoord[0]) < small &&
+                       abs(thiscoord[1] - prevcoord[1]) < small &&
+                       abs(thiscoord[2] - prevcoord[2]) < small) {
+                   is_small = 1;
+               }
+           }
+           if (run != prevrun || is_smaller != 0) {
+               prevrun = run;
+               sendbits(buf, 1, 1); /* flag the change in run-length */
+               sendbits(buf, 5, run+is_smaller+1);
+           } else {
+               sendbits(buf, 1, 0); /* flag the fact that runlength did not change */
+           }
+           for (k=0; k < run; k+=3) {
+               sendints(buf, 3, smallidx, sizesmall, &tmpcoord[k]);    
+           }
+           if (is_smaller != 0) {
+               smallidx += is_smaller;
+               if (is_smaller < 0) {
+                   small = smaller;
+                   smaller = magicints[smallidx-1] / 2;
+               } else {
+                   smaller = small;
+                   small = magicints[smallidx] / 2;
+               }
+               sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
+           }
+       }
+       if (buf[1] != 0) buf[0]++;;
+       xdr_int(xdrs, &(buf[0])); /* buf[0] holds the length in bytes */
+       return errval * (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]));
+    } else {
+       
+       /* xdrs is open for reading */
+       
+       if (xdr_int(xdrs, &lsize) == 0) 
+           return 0;
+       if (*size != 0 && lsize != *size) {
+           fprintf(stderr, "wrong number of coordinates in xdr3dfcoor; "
+                   "%d arg vs %d in file", *size, lsize);
+       }
+       *size = lsize;
+       size3 = *size * 3;
+       if (*size <= 9) {
+           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
+               (xdrproc_t)xdr_float));
+       }
+       xdr_float(xdrs, precision);
+       if (ip == NULL) {
+           ip = (int *)malloc(size3 * sizeof(*ip));
+           if (ip == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           bufsize = size3 * 1.2;
+           buf = (int *)malloc(bufsize * sizeof(*buf));
+           if (buf == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           oldsize = *size;
+       } else if (*size > oldsize) {
+           ip = (int *)realloc(ip, size3 * sizeof(*ip));
+           if (ip == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           bufsize = size3 * 1.2;
+           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
+           if (buf == NULL) {
+               fprintf(stderr,"malloc failed\n");
+               exit(1);
+           }
+           oldsize = *size;
+       }
+       buf[0] = buf[1] = buf[2] = 0;
+       
+       xdr_int(xdrs, &(minint[0]));
+       xdr_int(xdrs, &(minint[1]));
+       xdr_int(xdrs, &(minint[2]));
+
+       xdr_int(xdrs, &(maxint[0]));
+       xdr_int(xdrs, &(maxint[1]));
+       xdr_int(xdrs, &(maxint[2]));
+               
+       sizeint[0] = maxint[0] - minint[0]+1;
+       sizeint[1] = maxint[1] - minint[1]+1;
+       sizeint[2] = maxint[2] - minint[2]+1;
+       
+       /* check if one of the sizes is to big to be multiplied */
+       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
+           bitsizeint[0] = sizeofint(sizeint[0]);
+           bitsizeint[1] = sizeofint(sizeint[1]);
+           bitsizeint[2] = sizeofint(sizeint[2]);
+           bitsize = 0; /* flag the use of large sizes */
+       } else {
+           bitsize = sizeofints(3, sizeint);
+       }
+       
+       xdr_int(xdrs, &smallidx);
+       maxidx = MIN(LASTIDX, smallidx + 8) ;
+       minidx = maxidx - 8; /* often this equal smallidx */
+       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
+       small = magicints[smallidx] / 2;
+       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
+       larger = magicints[maxidx];
+
+       /* buf[0] holds the length in bytes */
+
+       if (xdr_int(xdrs, &(buf[0])) == 0)
+           return 0;
+       if (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]) == 0)
+           return 0;
+       buf[0] = buf[1] = buf[2] = 0;
+       
+       lfp = fp;
+       inv_precision = 1.0 / * precision;
+       run = 0;
+       i = 0;
+       lip = ip;
+       while ( i < lsize ) {
+           thiscoord = (int *)(lip) + i * 3;
+
+           if (bitsize == 0) {
+               thiscoord[0] = receivebits(buf, bitsizeint[0]);
+               thiscoord[1] = receivebits(buf, bitsizeint[1]);
+               thiscoord[2] = receivebits(buf, bitsizeint[2]);
+           } else {
+               receiveints(buf, 3, bitsize, sizeint, thiscoord);
+           }
+           
+           i++;
+           thiscoord[0] += minint[0];
+           thiscoord[1] += minint[1];
+           thiscoord[2] += minint[2];
+           
+           prevcoord[0] = thiscoord[0];
+           prevcoord[1] = thiscoord[1];
+           prevcoord[2] = thiscoord[2];
+           
+          
+           flag = receivebits(buf, 1);
+           is_smaller = 0;
+           if (flag == 1) {
+               run = receivebits(buf, 5);
+               is_smaller = run % 3;
+               run -= is_smaller;
+               is_smaller--;
+           }
+           if (run > 0) {
+               thiscoord += 3;
+               for (k = 0; k < run; k+=3) {
+                   receiveints(buf, 3, smallidx, sizesmall, thiscoord);
+                   i++;
+                   thiscoord[0] += prevcoord[0] - small;
+                   thiscoord[1] += prevcoord[1] - small;
+                   thiscoord[2] += prevcoord[2] - small;
+                   if (k == 0) {
+                       /* interchange first with second atom for better
+                        * compression of water molecules
+                        */
+                       tmp = thiscoord[0]; thiscoord[0] = prevcoord[0];
+                               prevcoord[0] = tmp;
+                       tmp = thiscoord[1]; thiscoord[1] = prevcoord[1];
+                               prevcoord[1] = tmp;
+                       tmp = thiscoord[2]; thiscoord[2] = prevcoord[2];
+                               prevcoord[2] = tmp;
+                       *lfp++ = prevcoord[0] * inv_precision;
+                       *lfp++ = prevcoord[1] * inv_precision;
+                       *lfp++ = prevcoord[2] * inv_precision;
+                   } else {
+                       prevcoord[0] = thiscoord[0];
+                       prevcoord[1] = thiscoord[1];
+                       prevcoord[2] = thiscoord[2];
+                   }
+                   *lfp++ = thiscoord[0] * inv_precision;
+                   *lfp++ = thiscoord[1] * inv_precision;
+                   *lfp++ = thiscoord[2] * inv_precision;
+               }
+           } else {
+               *lfp++ = thiscoord[0] * inv_precision;
+               *lfp++ = thiscoord[1] * inv_precision;
+               *lfp++ = thiscoord[2] * inv_precision;          
+           }
+           smallidx += is_smaller;
+           if (is_smaller < 0) {
+               small = smaller;
+               if (smallidx > FIRSTIDX) {
+                   smaller = magicints[smallidx - 1] /2;
+               } else {
+                   smaller = 0;
+               }
+           } else if (is_smaller > 0) {
+               smaller = small;
+               small = magicints[smallidx] / 2;
+           }
+           sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
+       }
+    }
+    return 1;
+}
+
+
+   
diff --git a/source/lib/xdrf_em64/types.h b/source/lib/xdrf_em64/types.h
new file mode 100644 (file)
index 0000000..871f3fd
--- /dev/null
@@ -0,0 +1,99 @@
+/*
+ * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
+ * unrestricted use provided that this legend is included on all tape
+ * media and as a part of the software program in whole or part.  Users
+ * may copy or modify Sun RPC without charge, but are not authorized
+ * to license or distribute it to anyone else except as part of a product or
+ * program developed by the user.
+ *
+ * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
+ * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
+ *
+ * Sun RPC is provided with no support and without any obligation on the
+ * part of Sun Microsystems, Inc. to assist in its use, correction,
+ * modification or enhancement.
+ *
+ * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
+ * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
+ * OR ANY PART THEREOF.
+ *
+ * In no event will Sun Microsystems, Inc. be liable for any lost revenue
+ * or profits or other special, indirect and consequential damages, even if
+ * Sun has been advised of the possibility of such damages.
+ *
+ * Sun Microsystems, Inc.
+ * 2550 Garcia Avenue
+ * Mountain View, California  94043
+ */
+/* fixincludes should not add extern "C" to this file */
+/*
+ * Rpc additions to <sys/types.h>
+ */
+#ifndef _RPC_TYPES_H
+#define _RPC_TYPES_H 1
+
+typedef int bool_t;
+typedef int enum_t;
+/* This needs to be changed to uint32_t in the future */
+typedef unsigned long rpcprog_t;
+typedef unsigned long rpcvers_t;
+typedef unsigned long rpcproc_t;
+typedef unsigned long rpcprot_t;
+typedef unsigned long rpcport_t;
+
+#define        __dontcare__    -1
+
+#ifndef FALSE
+#      define  FALSE   (0)
+#endif
+
+#ifndef TRUE
+#      define  TRUE    (1)
+#endif
+
+#ifndef NULL
+#      define  NULL 0
+#endif
+
+#include <stdlib.h>            /* For malloc decl.  */
+#define mem_alloc(bsize)       malloc(bsize)
+/*
+ * XXX: This must not use the second argument, or code in xdr_array.c needs
+ * to be modified.
+ */
+#define mem_free(ptr, bsize)   free(ptr)
+
+#ifndef makedev /* ie, we haven't already included it */
+#include <sys/types.h>
+#endif
+
+#ifndef __u_char_defined
+typedef __u_char u_char;
+typedef __u_short u_short;
+typedef __u_int u_int;
+typedef __u_long u_long;
+typedef __quad_t quad_t;
+typedef __u_quad_t u_quad_t;
+typedef __fsid_t fsid_t;
+# define __u_char_defined
+#endif
+#ifndef __daddr_t_defined
+typedef __daddr_t daddr_t;
+typedef __caddr_t caddr_t;
+# define __daddr_t_defined
+#endif
+
+#include <sys/time.h>
+#include <sys/param.h>
+
+#include <netinet/in.h>
+
+#ifndef INADDR_LOOPBACK
+#define       INADDR_LOOPBACK         (u_long)0x7F000001
+#endif
+#ifndef MAXHOSTNAMELEN
+#define        MAXHOSTNAMELEN  64
+#endif
+
+#endif /* rpc/types.h */
diff --git a/source/lib/xdrf_em64/underscore.m4 b/source/lib/xdrf_em64/underscore.m4
new file mode 100644 (file)
index 0000000..4d620a0
--- /dev/null
@@ -0,0 +1,19 @@
+divert(-1)
+undefine(`len')
+#
+# append an underscore to FORTRAN function names
+#
+define(`FUNCTION',`$1_')
+#
+# FORTRAN character strings are passed as follows:
+# a pointer to the base of the string is passed in the normal
+# argument list, and the length is passed by value as an extra
+# argument, after all of the other arguments.
+#
+define(`ARGS',`($1`'undivert(1))')
+define(`SAVE',`divert(1)$1`'divert(0)')
+define(`STRING_ARG',`$1_ptr`'SAVE(`, $1_len')')
+define(`STRING_ARG_DECL',`char * $1_ptr; int $1_len')
+define(`STRING_LEN',`$1_len')
+define(`STRING_PTR',`$1_ptr')
+divert(0)
diff --git a/source/lib/xdrf_em64/xdr.c b/source/lib/xdrf_em64/xdr.c
new file mode 100644 (file)
index 0000000..33b8544
--- /dev/null
@@ -0,0 +1,752 @@
+# define INTUSE(name) name
+# define INTDEF(name)
+/* @(#)xdr.c   2.1 88/07/29 4.0 RPCSRC */
+/*
+ * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
+ * unrestricted use provided that this legend is included on all tape
+ * media and as a part of the software program in whole or part.  Users
+ * may copy or modify Sun RPC without charge, but are not authorized
+ * to license or distribute it to anyone else except as part of a product or
+ * program developed by the user.
+ *
+ * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
+ * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
+ *
+ * Sun RPC is provided with no support and without any obligation on the
+ * part of Sun Microsystems, Inc. to assist in its use, correction,
+ * modification or enhancement.
+ *
+ * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
+ * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
+ * OR ANY PART THEREOF.
+ *
+ * In no event will Sun Microsystems, Inc. be liable for any lost revenue
+ * or profits or other special, indirect and consequential damages, even if
+ * Sun has been advised of the possibility of such damages.
+ *
+ * Sun Microsystems, Inc.
+ * 2550 Garcia Avenue
+ * Mountain View, California  94043
+ */
+#if !defined(lint) && defined(SCCSIDS)
+static char sccsid[] = "@(#)xdr.c 1.35 87/08/12";
+#endif
+
+/*
+ * xdr.c, Generic XDR routines implementation.
+ *
+ * Copyright (C) 1986, Sun Microsystems, Inc.
+ *
+ * These are the "generic" xdr routines used to serialize and de-serialize
+ * most common data items.  See xdr.h for more info on the interface to
+ * xdr.
+ */
+
+#include <stdio.h>
+#include <limits.h>
+#include <string.h>
+#include <libintl.h>
+
+#include "types.h"
+#include "xdr.h"
+
+#ifdef USE_IN_LIBIO
+# include <wchar.h>
+#endif
+
+/*
+ * constants specific to the xdr "protocol"
+ */
+#define XDR_FALSE      ((long) 0)
+#define XDR_TRUE       ((long) 1)
+#define LASTUNSIGNED   ((u_int) 0-1)
+
+/*
+ * for unit alignment
+ */
+static const char xdr_zero[BYTES_PER_XDR_UNIT] = {0, 0, 0, 0};
+
+/*
+ * Free a data structure using XDR
+ * Not a filter, but a convenient utility nonetheless
+ */
+void
+xdr_free (xdrproc_t proc, char *objp)
+{
+  XDR x;
+
+  x.x_op = XDR_FREE;
+  (*proc) (&x, objp);
+}
+
+/*
+ * XDR nothing
+ */
+bool_t
+xdr_void (void)
+{
+  return TRUE;
+}
+INTDEF(xdr_void)
+
+/*
+ * XDR integers
+ */
+bool_t
+xdr_int (XDR *xdrs, int *ip)
+{
+
+#if INT_MAX < LONG_MAX
+  long l;
+
+  switch (xdrs->x_op)
+    {
+    case XDR_ENCODE:
+      l = (long) *ip;
+      return XDR_PUTLONG (xdrs, &l);
+
+    case XDR_DECODE:
+      if (!XDR_GETLONG (xdrs, &l))
+       {
+         return FALSE;
+       }
+      *ip = (int) l;
+    case XDR_FREE:
+      return TRUE;
+    }
+  return FALSE;
+#elif INT_MAX == LONG_MAX
+  return INTUSE(xdr_long) (xdrs, (long *) ip);
+#elif INT_MAX == SHRT_MAX
+  return INTUSE(xdr_short) (xdrs, (short *) ip);
+#else
+#error unexpected integer sizes in_xdr_int()
+#endif
+}
+INTDEF(xdr_int)
+
+/*
+ * XDR unsigned integers
+ */
+bool_t
+xdr_u_int (XDR *xdrs, u_int *up)
+{
+#if UINT_MAX < ULONG_MAX
+  long l;
+
+  switch (xdrs->x_op)
+    {
+    case XDR_ENCODE:
+      l = (u_long) * up;
+      return XDR_PUTLONG (xdrs, &l);
+
+    case XDR_DECODE:
+      if (!XDR_GETLONG (xdrs, &l))
+       {
+         return FALSE;
+       }
+      *up = (u_int) (u_long) l;
+    case XDR_FREE:
+      return TRUE;
+    }
+  return FALSE;
+#elif UINT_MAX == ULONG_MAX
+  return INTUSE(xdr_u_long) (xdrs, (u_long *) up);
+#elif UINT_MAX == USHRT_MAX
+  return INTUSE(xdr_short) (xdrs, (short *) up);
+#else
+#error unexpected integer sizes in_xdr_u_int()
+#endif
+}
+INTDEF(xdr_u_int)
+
+/*
+ * XDR long integers
+ * The definition of xdr_long() is kept for backward
+ * compatibility. Instead xdr_int() should be used.
+ */
+bool_t
+xdr_long (XDR *xdrs, long *lp)
+{
+
+  if (xdrs->x_op == XDR_ENCODE
+      && (sizeof (int32_t) == sizeof (long)
+         || (int32_t) *lp == *lp))
+    return XDR_PUTLONG (xdrs, lp);
+
+  if (xdrs->x_op == XDR_DECODE)
+    return XDR_GETLONG (xdrs, lp);
+
+  if (xdrs->x_op == XDR_FREE)
+    return TRUE;
+
+  return FALSE;
+}
+INTDEF(xdr_long)
+
+/*
+ * XDR unsigned long integers
+ * The definition of xdr_u_long() is kept for backward
+ * compatibility. Instead xdr_u_int() should be used.
+ */
+bool_t
+xdr_u_long (XDR *xdrs, u_long *ulp)
+{
+  switch (xdrs->x_op)
+    {
+    case XDR_DECODE:
+      {
+       long int tmp;
+
+       if (XDR_GETLONG (xdrs, &tmp) == FALSE)
+         return FALSE;
+
+       *ulp = (uint32_t) tmp;
+       return TRUE;
+      }
+
+    case XDR_ENCODE:
+      if (sizeof (uint32_t) != sizeof (u_long)
+         && (uint32_t) *ulp != *ulp)
+       return FALSE;
+
+      return XDR_PUTLONG (xdrs, (long *) ulp);
+
+    case XDR_FREE:
+      return TRUE;
+    }
+  return FALSE;
+}
+INTDEF(xdr_u_long)
+
+/*
+ * XDR hyper integers
+ * same as xdr_u_hyper - open coded to save a proc call!
+ */
+bool_t
+xdr_hyper (XDR *xdrs, quad_t *llp)
+{
+  long int t1, t2;
+
+  if (xdrs->x_op == XDR_ENCODE)
+    {
+      t1 = (long) ((*llp) >> 32);
+      t2 = (long) (*llp);
+      return (XDR_PUTLONG(xdrs, &t1) && XDR_PUTLONG(xdrs, &t2));
+    }
+
+  if (xdrs->x_op == XDR_DECODE)
+    {
+      if (!XDR_GETLONG(xdrs, &t1) || !XDR_GETLONG(xdrs, &t2))
+       return FALSE;
+      *llp = ((quad_t) t1) << 32;
+      *llp |= (uint32_t) t2;
+      return TRUE;
+    }
+
+  if (xdrs->x_op == XDR_FREE)
+    return TRUE;
+
+  return FALSE;
+}
+INTDEF(xdr_hyper)
+
+
+/*
+ * XDR hyper integers
+ * same as xdr_hyper - open coded to save a proc call!
+ */
+bool_t
+xdr_u_hyper (XDR *xdrs, u_quad_t *ullp)
+{
+  long int t1, t2;
+
+  if (xdrs->x_op == XDR_ENCODE)
+    {
+      t1 = (unsigned long) ((*ullp) >> 32);
+      t2 = (unsigned long) (*ullp);
+      return (XDR_PUTLONG(xdrs, &t1) && XDR_PUTLONG(xdrs, &t2));
+    }
+
+  if (xdrs->x_op == XDR_DECODE)
+    {
+      if (!XDR_GETLONG(xdrs, &t1) || !XDR_GETLONG(xdrs, &t2))
+       return FALSE;
+      *ullp = ((u_quad_t) t1) << 32;
+      *ullp |= (uint32_t) t2;
+      return TRUE;
+    }
+
+  if (xdrs->x_op == XDR_FREE)
+    return TRUE;
+
+  return FALSE;
+}
+INTDEF(xdr_u_hyper)
+
+bool_t
+xdr_longlong_t (XDR *xdrs, quad_t *llp)
+{
+  return INTUSE(xdr_hyper) (xdrs, llp);
+}
+
+bool_t
+xdr_u_longlong_t (XDR *xdrs, u_quad_t *ullp)
+{
+  return INTUSE(xdr_u_hyper) (xdrs, ullp);
+}
+
+/*
+ * XDR short integers
+ */
+bool_t
+xdr_short (XDR *xdrs, short *sp)
+{
+  long l;
+
+  switch (xdrs->x_op)
+    {
+    case XDR_ENCODE:
+      l = (long) *sp;
+      return XDR_PUTLONG (xdrs, &l);
+
+    case XDR_DECODE:
+      if (!XDR_GETLONG (xdrs, &l))
+       {
+         return FALSE;
+       }
+      *sp = (short) l;
+      return TRUE;
+
+    case XDR_FREE:
+      return TRUE;
+    }
+  return FALSE;
+}
+INTDEF(xdr_short)
+
+/*
+ * XDR unsigned short integers
+ */
+bool_t
+xdr_u_short (XDR *xdrs, u_short *usp)
+{
+  long l;
+
+  switch (xdrs->x_op)
+    {
+    case XDR_ENCODE:
+      l = (u_long) * usp;
+      return XDR_PUTLONG (xdrs, &l);
+
+    case XDR_DECODE:
+      if (!XDR_GETLONG (xdrs, &l))
+       {
+         return FALSE;
+       }
+      *usp = (u_short) (u_long) l;
+      return TRUE;
+
+    case XDR_FREE:
+      return TRUE;
+    }
+  return FALSE;
+}
+INTDEF(xdr_u_short)
+
+
+/*
+ * XDR a char
+ */
+bool_t
+xdr_char (XDR *xdrs, char *cp)
+{
+  int i;
+
+  i = (*cp);
+  if (!INTUSE(xdr_int) (xdrs, &i))
+    {
+      return FALSE;
+    }
+  *cp = i;
+  return TRUE;
+}
+
+/*
+ * XDR an unsigned char
+ */
+bool_t
+xdr_u_char (XDR *xdrs, u_char *cp)
+{
+  u_int u;
+
+  u = (*cp);
+  if (!INTUSE(xdr_u_int) (xdrs, &u))
+    {
+      return FALSE;
+    }
+  *cp = u;
+  return TRUE;
+}
+
+/*
+ * XDR booleans
+ */
+bool_t
+xdr_bool (XDR *xdrs, bool_t *bp)
+{
+  long lb;
+
+  switch (xdrs->x_op)
+    {
+    case XDR_ENCODE:
+      lb = *bp ? XDR_TRUE : XDR_FALSE;
+      return XDR_PUTLONG (xdrs, &lb);
+
+    case XDR_DECODE:
+      if (!XDR_GETLONG (xdrs, &lb))
+       {
+         return FALSE;
+       }
+      *bp = (lb == XDR_FALSE) ? FALSE : TRUE;
+      return TRUE;
+
+    case XDR_FREE:
+      return TRUE;
+    }
+  return FALSE;
+}
+INTDEF(xdr_bool)
+
+/*
+ * XDR enumerations
+ */
+bool_t
+xdr_enum (XDR *xdrs, enum_t *ep)
+{
+  enum sizecheck
+    {
+      SIZEVAL
+    };                         /* used to find the size of an enum */
+
+  /*
+   * enums are treated as ints
+   */
+  if (sizeof (enum sizecheck) == 4)
+    {
+#if INT_MAX < LONG_MAX
+      long l;
+
+      switch (xdrs->x_op)
+       {
+       case XDR_ENCODE:
+         l = *ep;
+         return XDR_PUTLONG (xdrs, &l);
+
+       case XDR_DECODE:
+         if (!XDR_GETLONG (xdrs, &l))
+           {
+             return FALSE;
+           }
+         *ep = l;
+       case XDR_FREE:
+         return TRUE;
+
+       }
+      return FALSE;
+#else
+      return INTUSE(xdr_long) (xdrs, (long *) ep);
+#endif
+    }
+  else if (sizeof (enum sizecheck) == sizeof (short))
+    {
+      return INTUSE(xdr_short) (xdrs, (short *) ep);
+    }
+  else
+    {
+      return FALSE;
+    }
+}
+INTDEF(xdr_enum)
+
+/*
+ * XDR opaque data
+ * Allows the specification of a fixed size sequence of opaque bytes.
+ * cp points to the opaque object and cnt gives the byte length.
+ */
+bool_t
+xdr_opaque (XDR *xdrs, caddr_t cp, u_int cnt)
+{
+  u_int rndup;
+  static char crud[BYTES_PER_XDR_UNIT];
+
+  /*
+   * if no data we are done
+   */
+  if (cnt == 0)
+    return TRUE;
+
+  /*
+   * round byte count to full xdr units
+   */
+  rndup = cnt % BYTES_PER_XDR_UNIT;
+  if (rndup > 0)
+    rndup = BYTES_PER_XDR_UNIT - rndup;
+
+  switch (xdrs->x_op)
+    {
+    case XDR_DECODE:
+      if (!XDR_GETBYTES (xdrs, cp, cnt))
+       {
+         return FALSE;
+       }
+      if (rndup == 0)
+       return TRUE;
+      return XDR_GETBYTES (xdrs, (caddr_t)crud, rndup);
+
+    case XDR_ENCODE:
+      if (!XDR_PUTBYTES (xdrs, cp, cnt))
+       {
+         return FALSE;
+       }
+      if (rndup == 0)
+       return TRUE;
+      return XDR_PUTBYTES (xdrs, xdr_zero, rndup);
+
+    case XDR_FREE:
+      return TRUE;
+    }
+  return FALSE;
+}
+INTDEF(xdr_opaque)
+
+/*
+ * XDR counted bytes
+ * *cpp is a pointer to the bytes, *sizep is the count.
+ * If *cpp is NULL maxsize bytes are allocated
+ */
+bool_t
+xdr_bytes (xdrs, cpp, sizep, maxsize)
+     XDR *xdrs;
+     char **cpp;
+     u_int *sizep;
+     u_int maxsize;
+{
+  char *sp = *cpp;     /* sp is the actual string pointer */
+  u_int nodesize;
+
+  /*
+   * first deal with the length since xdr bytes are counted
+   */
+  if (!INTUSE(xdr_u_int) (xdrs, sizep))
+    {
+      return FALSE;
+    }
+  nodesize = *sizep;
+  if ((nodesize > maxsize) && (xdrs->x_op != XDR_FREE))
+    {
+      return FALSE;
+    }
+
+  /*
+   * now deal with the actual bytes
+   */
+  switch (xdrs->x_op)
+    {
+    case XDR_DECODE:
+      if (nodesize == 0)
+       {
+         return TRUE;
+       }
+      if (sp == NULL)
+       {
+         *cpp = sp = (char *) mem_alloc (nodesize);
+       }
+      if (sp == NULL)
+       {
+         fprintf (NULL, "%s", "xdr_bytes: out of memory\n");
+         return FALSE;
+       }
+      /* fall into ... */
+
+    case XDR_ENCODE:
+      return INTUSE(xdr_opaque) (xdrs, sp, nodesize);
+
+    case XDR_FREE:
+      if (sp != NULL)
+       {
+         mem_free (sp, nodesize);
+         *cpp = NULL;
+       }
+      return TRUE;
+    }
+  return FALSE;
+}
+INTDEF(xdr_bytes)
+
+/*
+ * Implemented here due to commonality of the object.
+ */
+bool_t
+xdr_netobj (xdrs, np)
+     XDR *xdrs;
+     struct netobj *np;
+{
+
+  return INTUSE(xdr_bytes) (xdrs, &np->n_bytes, &np->n_len, MAX_NETOBJ_SZ);
+}
+INTDEF(xdr_netobj)
+
+/*
+ * XDR a discriminated union
+ * Support routine for discriminated unions.
+ * You create an array of xdrdiscrim structures, terminated with
+ * an entry with a null procedure pointer.  The routine gets
+ * the discriminant value and then searches the array of xdrdiscrims
+ * looking for that value.  It calls the procedure given in the xdrdiscrim
+ * to handle the discriminant.  If there is no specific routine a default
+ * routine may be called.
+ * If there is no specific or default routine an error is returned.
+ */
+bool_t
+xdr_union (xdrs, dscmp, unp, choices, dfault)
+     XDR *xdrs;
+     enum_t *dscmp;            /* enum to decide which arm to work on */
+     char *unp;                        /* the union itself */
+     const struct xdr_discrim *choices;        /* [value, xdr proc] for each arm */
+     xdrproc_t dfault;         /* default xdr routine */
+{
+  enum_t dscm;
+
+  /*
+   * we deal with the discriminator;  it's an enum
+   */
+  if (!INTUSE(xdr_enum) (xdrs, dscmp))
+    {
+      return FALSE;
+    }
+  dscm = *dscmp;
+
+  /*
+   * search choices for a value that matches the discriminator.
+   * if we find one, execute the xdr routine for that value.
+   */
+  for (; choices->proc != NULL_xdrproc_t; choices++)
+    {
+      if (choices->value == dscm)
+       return (*(choices->proc)) (xdrs, unp, LASTUNSIGNED);
+    }
+
+  /*
+   * no match - execute the default xdr routine if there is one
+   */
+  return ((dfault == NULL_xdrproc_t) ? FALSE :
+         (*dfault) (xdrs, unp, LASTUNSIGNED));
+}
+INTDEF(xdr_union)
+
+
+/*
+ * Non-portable xdr primitives.
+ * Care should be taken when moving these routines to new architectures.
+ */
+
+
+/*
+ * XDR null terminated ASCII strings
+ * xdr_string deals with "C strings" - arrays of bytes that are
+ * terminated by a NULL character.  The parameter cpp references a
+ * pointer to storage; If the pointer is null, then the necessary
+ * storage is allocated.  The last parameter is the max allowed length
+ * of the string as specified by a protocol.
+ */
+bool_t
+xdr_string (xdrs, cpp, maxsize)
+     XDR *xdrs;
+     char **cpp;
+     u_int maxsize;
+{
+  char *sp = *cpp;     /* sp is the actual string pointer */
+  u_int size;
+  u_int nodesize;
+
+  /*
+   * first deal with the length since xdr strings are counted-strings
+   */
+  switch (xdrs->x_op)
+    {
+    case XDR_FREE:
+      if (sp == NULL)
+       {
+         return TRUE;          /* already free */
+       }
+      /* fall through... */
+    case XDR_ENCODE:
+      if (sp == NULL)
+       return FALSE;
+      size = strlen (sp);
+      break;
+    case XDR_DECODE:
+      break;
+    }
+  if (!INTUSE(xdr_u_int) (xdrs, &size))
+    {
+      return FALSE;
+    }
+  if (size > maxsize)
+    {
+      return FALSE;
+    }
+  nodesize = size + 1;
+  if (nodesize == 0)
+    {
+      /* This means an overflow.  It a bug in the caller which
+        provided a too large maxsize but nevertheless catch it
+        here.  */
+      return FALSE;
+    }
+
+  /*
+   * now deal with the actual bytes
+   */
+  switch (xdrs->x_op)
+    {
+    case XDR_DECODE:
+      if (sp == NULL)
+       *cpp = sp = (char *) mem_alloc (nodesize);
+      if (sp == NULL)
+       {
+         fprintf (NULL, "%s", "xdr_string: out of memory\n");
+         return FALSE;
+       }
+      sp[size] = 0;
+      /* fall into ... */
+
+    case XDR_ENCODE:
+      return INTUSE(xdr_opaque) (xdrs, sp, size);
+
+    case XDR_FREE:
+      mem_free (sp, nodesize);
+      *cpp = NULL;
+      return TRUE;
+    }
+  return FALSE;
+}
+INTDEF(xdr_string)
+
+/*
+ * Wrapper for xdr_string that can be called directly from
+ * routines like clnt_call
+ */
+bool_t
+xdr_wrapstring (xdrs, cpp)
+     XDR *xdrs;
+     char **cpp;
+{
+  if (INTUSE(xdr_string) (xdrs, cpp, LASTUNSIGNED))
+    {
+      return TRUE;
+    }
+  return FALSE;
+}
diff --git a/source/lib/xdrf_em64/xdr.h b/source/lib/xdrf_em64/xdr.h
new file mode 100644 (file)
index 0000000..2602ad9
--- /dev/null
@@ -0,0 +1,379 @@
+/*
+ * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
+ * unrestricted use provided that this legend is included on all tape
+ * media and as a part of the software program in whole or part.  Users
+ * may copy or modify Sun RPC without charge, but are not authorized
+ * to license or distribute it to anyone else except as part of a product or
+ * program developed by the user.
+ *
+ * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
+ * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
+ *
+ * Sun RPC is provided with no support and without any obligation on the
+ * part of Sun Microsystems, Inc. to assist in its use, correction,
+ * modification or enhancement.
+ *
+ * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
+ * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
+ * OR ANY PART THEREOF.
+ *
+ * In no event will Sun Microsystems, Inc. be liable for any lost revenue
+ * or profits or other special, indirect and consequential damages, even if
+ * Sun has been advised of the possibility of such damages.
+ *
+ * Sun Microsystems, Inc.
+ * 2550 Garcia Avenue
+ * Mountain View, California  94043
+ */
+
+/*
+ * xdr.h, External Data Representation Serialization Routines.
+ *
+ * Copyright (C) 1984, Sun Microsystems, Inc.
+ */
+
+#ifndef _RPC_XDR_H
+#define _RPC_XDR_H 1
+
+#include <features.h>
+#include <sys/types.h>
+#include "types.h"
+
+/* We need FILE.  */
+#include <stdio.h>
+
+__BEGIN_DECLS
+
+/*
+ * XDR provides a conventional way for converting between C data
+ * types and an external bit-string representation.  Library supplied
+ * routines provide for the conversion on built-in C data types.  These
+ * routines and utility routines defined here are used to help implement
+ * a type encode/decode routine for each user-defined type.
+ *
+ * Each data type provides a single procedure which takes two arguments:
+ *
+ *      bool_t
+ *      xdrproc(xdrs, argresp)
+ *              XDR *xdrs;
+ *              <type> *argresp;
+ *
+ * xdrs is an instance of a XDR handle, to which or from which the data
+ * type is to be converted.  argresp is a pointer to the structure to be
+ * converted.  The XDR handle contains an operation field which indicates
+ * which of the operations (ENCODE, DECODE * or FREE) is to be performed.
+ *
+ * XDR_DECODE may allocate space if the pointer argresp is null.  This
+ * data can be freed with the XDR_FREE operation.
+ *
+ * We write only one procedure per data type to make it easy
+ * to keep the encode and decode procedures for a data type consistent.
+ * In many cases the same code performs all operations on a user defined type,
+ * because all the hard work is done in the component type routines.
+ * decode as a series of calls on the nested data types.
+ */
+
+/*
+ * Xdr operations.  XDR_ENCODE causes the type to be encoded into the
+ * stream.  XDR_DECODE causes the type to be extracted from the stream.
+ * XDR_FREE can be used to release the space allocated by an XDR_DECODE
+ * request.
+ */
+enum xdr_op {
+  XDR_ENCODE = 0,
+  XDR_DECODE = 1,
+  XDR_FREE = 2
+};
+
+/*
+ * This is the number of bytes per unit of external data.
+ */
+#define BYTES_PER_XDR_UNIT     (4)
+/*
+ * This only works if the above is a power of 2.  But it's defined to be
+ * 4 by the appropriate RFCs.  So it will work.  And it's normally quicker
+ * than the old routine.
+ */
+#if 1
+#define RNDUP(x)  (((x) + BYTES_PER_XDR_UNIT - 1) & ~(BYTES_PER_XDR_UNIT - 1))
+#else /* this is the old routine */
+#define RNDUP(x)  ((((x) + BYTES_PER_XDR_UNIT - 1) / BYTES_PER_XDR_UNIT) \
+                   * BYTES_PER_XDR_UNIT)
+#endif
+
+/*
+ * The XDR handle.
+ * Contains operation which is being applied to the stream,
+ * an operations vector for the particular implementation (e.g. see xdr_mem.c),
+ * and two private fields for the use of the particular implementation.
+ */
+typedef struct XDR XDR;
+struct XDR
+  {
+    enum xdr_op x_op;          /* operation; fast additional param */
+    struct xdr_ops
+      {
+       bool_t (*x_getlong) (XDR *__xdrs, long *__lp);
+       /* get a long from underlying stream */
+       bool_t (*x_putlong) (XDR *__xdrs, __const long *__lp);
+       /* put a long to " */
+       bool_t (*x_getbytes) (XDR *__xdrs, caddr_t __addr, u_int __len);
+       /* get some bytes from " */
+       bool_t (*x_putbytes) (XDR *__xdrs, __const char *__addr, u_int __len);
+       /* put some bytes to " */
+       u_int (*x_getpostn) (__const XDR *__xdrs);
+       /* returns bytes off from beginning */
+       bool_t (*x_setpostn) (XDR *__xdrs, u_int __pos);
+       /* lets you reposition the stream */
+       int32_t *(*x_inline) (XDR *__xdrs, u_int __len);
+       /* buf quick ptr to buffered data */
+       void (*x_destroy) (XDR *__xdrs);
+       /* free privates of this xdr_stream */
+       bool_t (*x_getint32) (XDR *__xdrs, int32_t *__ip);
+       /* get a int from underlying stream */
+       bool_t (*x_putint32) (XDR *__xdrs, __const int32_t *__ip);
+       /* put a int to " */
+      }
+     *x_ops;
+    caddr_t x_public;          /* users' data */
+    caddr_t x_private;         /* pointer to private data */
+    caddr_t x_base;            /* private used for position info */
+    u_int x_handy;             /* extra private word */
+  };
+
+/*
+ * A xdrproc_t exists for each data type which is to be encoded or decoded.
+ *
+ * The second argument to the xdrproc_t is a pointer to an opaque pointer.
+ * The opaque pointer generally points to a structure of the data type
+ * to be decoded.  If this pointer is 0, then the type routines should
+ * allocate dynamic storage of the appropriate size and return it.
+ * bool_t       (*xdrproc_t)(XDR *, caddr_t *);
+ */
+typedef bool_t (*xdrproc_t) (XDR *, void *,...);
+
+
+/*
+ * Operations defined on a XDR handle
+ *
+ * XDR          *xdrs;
+ * int32_t      *int32p;
+ * long         *longp;
+ * caddr_t       addr;
+ * u_int         len;
+ * u_int         pos;
+ */
+#define XDR_GETINT32(xdrs, int32p)                      \
+        (*(xdrs)->x_ops->x_getint32)(xdrs, int32p)
+#define xdr_getint32(xdrs, int32p)                      \
+        (*(xdrs)->x_ops->x_getint32)(xdrs, int32p)
+
+#define XDR_PUTINT32(xdrs, int32p)                      \
+        (*(xdrs)->x_ops->x_putint32)(xdrs, int32p)
+#define xdr_putint32(xdrs, int32p)                      \
+        (*(xdrs)->x_ops->x_putint32)(xdrs, int32p)
+
+#define XDR_GETLONG(xdrs, longp)                       \
+       (*(xdrs)->x_ops->x_getlong)(xdrs, longp)
+#define xdr_getlong(xdrs, longp)                       \
+       (*(xdrs)->x_ops->x_getlong)(xdrs, longp)
+
+#define XDR_PUTLONG(xdrs, longp)                       \
+       (*(xdrs)->x_ops->x_putlong)(xdrs, longp)
+#define xdr_putlong(xdrs, longp)                       \
+       (*(xdrs)->x_ops->x_putlong)(xdrs, longp)
+
+#define XDR_GETBYTES(xdrs, addr, len)                  \
+       (*(xdrs)->x_ops->x_getbytes)(xdrs, addr, len)
+#define xdr_getbytes(xdrs, addr, len)                  \
+       (*(xdrs)->x_ops->x_getbytes)(xdrs, addr, len)
+
+#define XDR_PUTBYTES(xdrs, addr, len)                  \
+       (*(xdrs)->x_ops->x_putbytes)(xdrs, addr, len)
+#define xdr_putbytes(xdrs, addr, len)                  \
+       (*(xdrs)->x_ops->x_putbytes)(xdrs, addr, len)
+
+#define XDR_GETPOS(xdrs)                               \
+       (*(xdrs)->x_ops->x_getpostn)(xdrs)
+#define xdr_getpos(xdrs)                               \
+       (*(xdrs)->x_ops->x_getpostn)(xdrs)
+
+#define XDR_SETPOS(xdrs, pos)                          \
+       (*(xdrs)->x_ops->x_setpostn)(xdrs, pos)
+#define xdr_setpos(xdrs, pos)                          \
+       (*(xdrs)->x_ops->x_setpostn)(xdrs, pos)
+
+#define        XDR_INLINE(xdrs, len)                           \
+       (*(xdrs)->x_ops->x_inline)(xdrs, len)
+#define        xdr_inline(xdrs, len)                           \
+       (*(xdrs)->x_ops->x_inline)(xdrs, len)
+
+#define        XDR_DESTROY(xdrs)                                       \
+       do {                                                    \
+               if ((xdrs)->x_ops->x_destroy)                   \
+                       (*(xdrs)->x_ops->x_destroy)(xdrs);      \
+       } while (0)
+#define        xdr_destroy(xdrs)                                       \
+       do {                                                    \
+               if ((xdrs)->x_ops->x_destroy)                   \
+                       (*(xdrs)->x_ops->x_destroy)(xdrs);      \
+       } while (0)
+
+/*
+ * Support struct for discriminated unions.
+ * You create an array of xdrdiscrim structures, terminated with
+ * a entry with a null procedure pointer.  The xdr_union routine gets
+ * the discriminant value and then searches the array of structures
+ * for a matching value.  If a match is found the associated xdr routine
+ * is called to handle that part of the union.  If there is
+ * no match, then a default routine may be called.
+ * If there is no match and no default routine it is an error.
+ */
+#define NULL_xdrproc_t ((xdrproc_t)0)
+struct xdr_discrim
+{
+  int value;
+  xdrproc_t proc;
+};
+
+/*
+ * Inline routines for fast encode/decode of primitive data types.
+ * Caveat emptor: these use single memory cycles to get the
+ * data from the underlying buffer, and will fail to operate
+ * properly if the data is not aligned.  The standard way to use these
+ * is to say:
+ *      if ((buf = XDR_INLINE(xdrs, count)) == NULL)
+ *              return (FALSE);
+ *      <<< macro calls >>>
+ * where ``count'' is the number of bytes of data occupied
+ * by the primitive data types.
+ *
+ * N.B. and frozen for all time: each data type here uses 4 bytes
+ * of external representation.
+ */
+
+#define IXDR_GET_INT32(buf)           ((int32_t)ntohl((uint32_t)*(buf)++))
+#define IXDR_PUT_INT32(buf, v)        (*(buf)++ = (int32_t)htonl((uint32_t)(v)))
+#define IXDR_GET_U_INT32(buf)         ((uint32_t)IXDR_GET_INT32(buf))
+#define IXDR_PUT_U_INT32(buf, v)      IXDR_PUT_INT32(buf, (int32_t)(v))
+
+/* WARNING: The IXDR_*_LONG defines are removed by Sun for new platforms
+ * and shouldn't be used any longer. Code which use this defines or longs
+ * in the RPC code will not work on 64bit Solaris platforms !
+ */
+#define IXDR_GET_LONG(buf) ((long)IXDR_GET_U_INT32(buf))
+#define IXDR_PUT_LONG(buf, v) ((long)IXDR_PUT_INT32(buf, (long)(v)))
+#define IXDR_GET_U_LONG(buf)         ((u_long)IXDR_GET_LONG(buf))
+#define IXDR_PUT_U_LONG(buf, v)              IXDR_PUT_LONG(buf, (long)(v))
+
+
+#define IXDR_GET_BOOL(buf)            ((bool_t)IXDR_GET_LONG(buf))
+#define IXDR_GET_ENUM(buf, t)         ((t)IXDR_GET_LONG(buf))
+#define IXDR_GET_SHORT(buf)           ((short)IXDR_GET_LONG(buf))
+#define IXDR_GET_U_SHORT(buf)         ((u_short)IXDR_GET_LONG(buf))
+
+#define IXDR_PUT_BOOL(buf, v)         IXDR_PUT_LONG(buf, (long)(v))
+#define IXDR_PUT_ENUM(buf, v)         IXDR_PUT_LONG(buf, (long)(v))
+#define IXDR_PUT_SHORT(buf, v)        IXDR_PUT_LONG(buf, (long)(v))
+#define IXDR_PUT_U_SHORT(buf, v)      IXDR_PUT_LONG(buf, (long)(v))
+
+/*
+ * These are the "generic" xdr routines.
+ * None of these can have const applied because it's not possible to
+ * know whether the call is a read or a write to the passed parameter
+ * also, the XDR structure is always updated by some of these calls.
+ */
+extern bool_t xdr_void (void) __THROW;
+extern bool_t xdr_short (XDR *__xdrs, short *__sp) __THROW;
+extern bool_t xdr_u_short (XDR *__xdrs, u_short *__usp) __THROW;
+extern bool_t xdr_int (XDR *__xdrs, int *__ip) __THROW;
+extern bool_t xdr_u_int (XDR *__xdrs, u_int *__up) __THROW;
+extern bool_t xdr_long (XDR *__xdrs, long *__lp) __THROW;
+extern bool_t xdr_u_long (XDR *__xdrs, u_long *__ulp) __THROW;
+extern bool_t xdr_hyper (XDR *__xdrs, quad_t *__llp) __THROW;
+extern bool_t xdr_u_hyper (XDR *__xdrs, u_quad_t *__ullp) __THROW;
+extern bool_t xdr_longlong_t (XDR *__xdrs, quad_t *__llp) __THROW;
+extern bool_t xdr_u_longlong_t (XDR *__xdrs, u_quad_t *__ullp) __THROW;
+extern bool_t xdr_int8_t (XDR *__xdrs, int8_t *__ip) __THROW;
+extern bool_t xdr_uint8_t (XDR *__xdrs, uint8_t *__up) __THROW;
+extern bool_t xdr_int16_t (XDR *__xdrs, int16_t *__ip) __THROW;
+extern bool_t xdr_uint16_t (XDR *__xdrs, uint16_t *__up) __THROW;
+extern bool_t xdr_int32_t (XDR *__xdrs, int32_t *__ip) __THROW;
+extern bool_t xdr_uint32_t (XDR *__xdrs, uint32_t *__up) __THROW;
+extern bool_t xdr_int64_t (XDR *__xdrs, int64_t *__ip) __THROW;
+extern bool_t xdr_uint64_t (XDR *__xdrs, uint64_t *__up) __THROW;
+extern bool_t xdr_quad_t (XDR *__xdrs, quad_t *__ip) __THROW;
+extern bool_t xdr_u_quad_t (XDR *__xdrs, u_quad_t *__up) __THROW;
+extern bool_t xdr_bool (XDR *__xdrs, bool_t *__bp) __THROW;
+extern bool_t xdr_enum (XDR *__xdrs, enum_t *__ep) __THROW;
+extern bool_t xdr_array (XDR * _xdrs, caddr_t *__addrp, u_int *__sizep,
+                        u_int __maxsize, u_int __elsize, xdrproc_t __elproc)
+     __THROW;
+extern bool_t xdr_bytes (XDR *__xdrs, char **__cpp, u_int *__sizep,
+                        u_int __maxsize) __THROW;
+extern bool_t xdr_opaque (XDR *__xdrs, caddr_t __cp, u_int __cnt) __THROW;
+extern bool_t xdr_string (XDR *__xdrs, char **__cpp, u_int __maxsize) __THROW;
+extern bool_t xdr_union (XDR *__xdrs, enum_t *__dscmp, char *__unp,
+                        __const struct xdr_discrim *__choices,
+                        xdrproc_t dfault) __THROW;
+extern bool_t xdr_char (XDR *__xdrs, char *__cp) __THROW;
+extern bool_t xdr_u_char (XDR *__xdrs, u_char *__cp) __THROW;
+extern bool_t xdr_vector (XDR *__xdrs, char *__basep, u_int __nelem,
+                         u_int __elemsize, xdrproc_t __xdr_elem) __THROW;
+extern bool_t xdr_float (XDR *__xdrs, float *__fp) __THROW;
+extern bool_t xdr_double (XDR *__xdrs, double *__dp) __THROW;
+extern bool_t xdr_reference (XDR *__xdrs, caddr_t *__xpp, u_int __size,
+                            xdrproc_t __proc) __THROW;
+extern bool_t xdr_pointer (XDR *__xdrs, char **__objpp,
+                          u_int __obj_size, xdrproc_t __xdr_obj) __THROW;
+extern bool_t xdr_wrapstring (XDR *__xdrs, char **__cpp) __THROW;
+extern u_long xdr_sizeof (xdrproc_t, void *) __THROW;
+
+/*
+ * Common opaque bytes objects used by many rpc protocols;
+ * declared here due to commonality.
+ */
+#define MAX_NETOBJ_SZ 1024
+struct netobj
+{
+  u_int n_len;
+  char *n_bytes;
+};
+typedef struct netobj netobj;
+extern bool_t xdr_netobj (XDR *__xdrs, struct netobj *__np) __THROW;
+
+/*
+ * These are the public routines for the various implementations of
+ * xdr streams.
+ */
+
+/* XDR using memory buffers */
+extern void xdrmem_create (XDR *__xdrs, __const caddr_t __addr,
+                          u_int __size, enum xdr_op __xop) __THROW;
+
+/* XDR using stdio library */
+extern void xdrstdio_create (XDR *__xdrs, FILE *__file, enum xdr_op __xop)
+     __THROW;
+
+/* XDR pseudo records for tcp */
+extern void xdrrec_create (XDR *__xdrs, u_int __sendsize,
+                          u_int __recvsize, caddr_t __tcp_handle,
+                          int (*__readit) (char *, char *, int),
+                          int (*__writeit) (char *, char *, int)) __THROW;
+
+/* make end of xdr record */
+extern bool_t xdrrec_endofrecord (XDR *__xdrs, bool_t __sendnow) __THROW;
+
+/* move to beginning of next record */
+extern bool_t xdrrec_skiprecord (XDR *__xdrs) __THROW;
+
+/* true if no more input */
+extern bool_t xdrrec_eof (XDR *__xdrs) __THROW;
+
+/* free memory buffers for xdr */
+extern void xdr_free (xdrproc_t __proc, char *__objp) __THROW;
+
+__END_DECLS
+
+#endif /* rpc/xdr.h */
diff --git a/source/lib/xdrf_em64/xdr_array.c b/source/lib/xdrf_em64/xdr_array.c
new file mode 100644 (file)
index 0000000..836405c
--- /dev/null
@@ -0,0 +1,174 @@
+# define INTUSE(name) name
+# define INTDEF(name)
+/* @(#)xdr_array.c     2.1 88/07/29 4.0 RPCSRC */
+/*
+ * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
+ * unrestricted use provided that this legend is included on all tape
+ * media and as a part of the software program in whole or part.  Users
+ * may copy or modify Sun RPC without charge, but are not authorized
+ * to license or distribute it to anyone else except as part of a product or
+ * program developed by the user.
+ *
+ * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
+ * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
+ *
+ * Sun RPC is provided with no support and without any obligation on the
+ * part of Sun Microsystems, Inc. to assist in its use, correction,
+ * modification or enhancement.
+ *
+ * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
+ * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
+ * OR ANY PART THEREOF.
+ *
+ * In no event will Sun Microsystems, Inc. be liable for any lost revenue
+ * or profits or other special, indirect and consequential damages, even if
+ * Sun has been advised of the possibility of such damages.
+ *
+ * Sun Microsystems, Inc.
+ * 2550 Garcia Avenue
+ * Mountain View, California  94043
+ */
+#if !defined(lint) && defined(SCCSIDS)
+static char sccsid[] = "@(#)xdr_array.c 1.10 87/08/11 Copyr 1984 Sun Micro";
+#endif
+
+/*
+ * xdr_array.c, Generic XDR routines implementation.
+ *
+ * Copyright (C) 1984, Sun Microsystems, Inc.
+ *
+ * These are the "non-trivial" xdr primitives used to serialize and de-serialize
+ * arrays.  See xdr.h for more info on the interface to xdr.
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include "types.h"
+#include "xdr.h"
+#include <libintl.h>
+#include <limits.h>
+
+#ifdef USE_IN_LIBIO
+# include <wchar.h>
+#endif
+
+#define LASTUNSIGNED   ((u_int)0-1)
+
+
+/*
+ * XDR an array of arbitrary elements
+ * *addrp is a pointer to the array, *sizep is the number of elements.
+ * If addrp is NULL (*sizep * elsize) bytes are allocated.
+ * elsize is the size (in bytes) of each element, and elproc is the
+ * xdr procedure to call to handle each element of the array.
+ */
+bool_t
+xdr_array (xdrs, addrp, sizep, maxsize, elsize, elproc)
+     XDR *xdrs;
+     caddr_t *addrp;           /* array pointer */
+     u_int *sizep;             /* number of elements */
+     u_int maxsize;            /* max numberof elements */
+     u_int elsize;             /* size in bytes of each element */
+     xdrproc_t elproc;         /* xdr routine to handle each element */
+{
+  u_int i;
+  caddr_t target = *addrp;
+  u_int c;             /* the actual element count */
+  bool_t stat = TRUE;
+  u_int nodesize;
+
+  /* like strings, arrays are really counted arrays */
+  if (!INTUSE(xdr_u_int) (xdrs, sizep))
+    {
+      return FALSE;
+    }
+  c = *sizep;
+  /*
+   * XXX: Let the overflow possibly happen with XDR_FREE because mem_free()
+   * doesn't actually use its second argument anyway.
+   */
+  if ((c > maxsize || c > UINT_MAX / elsize) && (xdrs->x_op != XDR_FREE))
+    {
+      return FALSE;
+    }
+  nodesize = c * elsize;
+
+  /*
+   * if we are deserializing, we may need to allocate an array.
+   * We also save time by checking for a null array if we are freeing.
+   */
+  if (target == NULL)
+    switch (xdrs->x_op)
+      {
+      case XDR_DECODE:
+       if (c == 0)
+         return TRUE;
+       *addrp = target = mem_alloc (nodesize);
+       if (target == NULL)
+         {
+           fprintf (stderr, "%s", "xdr_array: out of memory\n");
+           return FALSE;
+         }
+       __bzero (target, nodesize);
+       break;
+
+      case XDR_FREE:
+       return TRUE;
+      default:
+       break;
+      }
+
+  /*
+   * now we xdr each element of array
+   */
+  for (i = 0; (i < c) && stat; i++)
+    {
+      stat = (*elproc) (xdrs, target, LASTUNSIGNED);
+      target += elsize;
+    }
+
+  /*
+   * the array may need freeing
+   */
+  if (xdrs->x_op == XDR_FREE)
+    {
+      mem_free (*addrp, nodesize);
+      *addrp = NULL;
+    }
+  return stat;
+}
+INTDEF(xdr_array)
+
+/*
+ * xdr_vector():
+ *
+ * XDR a fixed length array. Unlike variable-length arrays,
+ * the storage of fixed length arrays is static and unfreeable.
+ * > basep: base of the array
+ * > size: size of the array
+ * > elemsize: size of each element
+ * > xdr_elem: routine to XDR each element
+ */
+bool_t
+xdr_vector (xdrs, basep, nelem, elemsize, xdr_elem)
+     XDR *xdrs;
+     char *basep;
+     u_int nelem;
+     u_int elemsize;
+     xdrproc_t xdr_elem;
+{
+  u_int i;
+  char *elptr;
+
+  elptr = basep;
+  for (i = 0; i < nelem; i++)
+    {
+      if (!(*xdr_elem) (xdrs, elptr, LASTUNSIGNED))
+       {
+         return FALSE;
+       }
+      elptr += elemsize;
+    }
+  return TRUE;
+}
diff --git a/source/lib/xdrf_em64/xdr_float.c b/source/lib/xdrf_em64/xdr_float.c
new file mode 100644 (file)
index 0000000..15d3c88
--- /dev/null
@@ -0,0 +1,307 @@
+/* @(#)xdr_float.c     2.1 88/07/29 4.0 RPCSRC */
+/*
+ * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
+ * unrestricted use provided that this legend is included on all tape
+ * media and as a part of the software program in whole or part.  Users
+ * may copy or modify Sun RPC without charge, but are not authorized
+ * to license or distribute it to anyone else except as part of a product or
+ * program developed by the user.
+ *
+ * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
+ * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
+ *
+ * Sun RPC is provided with no support and without any obligation on the
+ * part of Sun Microsystems, Inc. to assist in its use, correction,
+ * modification or enhancement.
+ *
+ * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
+ * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
+ * OR ANY PART THEREOF.
+ *
+ * In no event will Sun Microsystems, Inc. be liable for any lost revenue
+ * or profits or other special, indirect and consequential damages, even if
+ * Sun has been advised of the possibility of such damages.
+ *
+ * Sun Microsystems, Inc.
+ * 2550 Garcia Avenue
+ * Mountain View, California  94043
+ */
+#if !defined(lint) && defined(SCCSIDS)
+static char sccsid[] = "@(#)xdr_float.c 1.12 87/08/11 Copyr 1984 Sun Micro";
+#endif
+
+/*
+ * xdr_float.c, Generic XDR routines implementation.
+ *
+ * Copyright (C) 1984, Sun Microsystems, Inc.
+ *
+ * These are the "floating point" xdr routines used to (de)serialize
+ * most common data items.  See xdr.h for more info on the interface to
+ * xdr.
+ */
+
+#include <stdio.h>
+#include <endian.h>
+
+#include "types.h"
+#include "xdr.h"
+
+/*
+ * NB: Not portable.
+ * This routine works on Suns (Sky / 68000's) and Vaxen.
+ */
+
+#define LSW    (__FLOAT_WORD_ORDER == __BIG_ENDIAN)
+
+#ifdef vax
+
+/* What IEEE single precision floating point looks like on a Vax */
+struct ieee_single {
+       unsigned int    mantissa: 23;
+       unsigned int    exp     : 8;
+       unsigned int    sign    : 1;
+};
+
+/* Vax single precision floating point */
+struct vax_single {
+       unsigned int    mantissa1 : 7;
+       unsigned int    exp       : 8;
+       unsigned int    sign      : 1;
+       unsigned int    mantissa2 : 16;
+};
+
+#define VAX_SNG_BIAS   0x81
+#define IEEE_SNG_BIAS  0x7f
+
+static struct sgl_limits {
+       struct vax_single s;
+       struct ieee_single ieee;
+} sgl_limits[2] = {
+       {{ 0x7f, 0xff, 0x0, 0xffff },   /* Max Vax */
+       { 0x0, 0xff, 0x0 }},            /* Max IEEE */
+       {{ 0x0, 0x0, 0x0, 0x0 },        /* Min Vax */
+       { 0x0, 0x0, 0x0 }}              /* Min IEEE */
+};
+#endif /* vax */
+
+bool_t
+xdr_float(xdrs, fp)
+     XDR *xdrs;
+     float *fp;
+{
+#ifdef vax
+       struct ieee_single is;
+       struct vax_single vs, *vsp;
+       struct sgl_limits *lim;
+       int i;
+#endif
+       switch (xdrs->x_op) {
+
+       case XDR_ENCODE:
+#ifdef vax
+               vs = *((struct vax_single *)fp);
+               for (i = 0, lim = sgl_limits;
+                       i < sizeof(sgl_limits)/sizeof(struct sgl_limits);
+                       i++, lim++) {
+                       if ((vs.mantissa2 == lim->s.mantissa2) &&
+                               (vs.exp == lim->s.exp) &&
+                               (vs.mantissa1 == lim->s.mantissa1)) {
+                               is = lim->ieee;
+                               goto shipit;
+                       }
+               }
+               is.exp = vs.exp - VAX_SNG_BIAS + IEEE_SNG_BIAS;
+               is.mantissa = (vs.mantissa1 << 16) | vs.mantissa2;
+       shipit:
+               is.sign = vs.sign;
+               return (XDR_PUTLONG(xdrs, (long *)&is));
+#else
+               if (sizeof(float) == sizeof(long))
+                       return (XDR_PUTLONG(xdrs, (long *)fp));
+               else if (sizeof(float) == sizeof(int)) {
+                       long tmp = *(int *)fp;
+                       return (XDR_PUTLONG(xdrs, &tmp));
+               }
+               break;
+#endif
+
+       case XDR_DECODE:
+#ifdef vax
+               vsp = (struct vax_single *)fp;
+               if (!XDR_GETLONG(xdrs, (long *)&is))
+                       return (FALSE);
+               for (i = 0, lim = sgl_limits;
+                       i < sizeof(sgl_limits)/sizeof(struct sgl_limits);
+                       i++, lim++) {
+                       if ((is.exp == lim->ieee.exp) &&
+                               (is.mantissa == lim->ieee.mantissa)) {
+                               *vsp = lim->s;
+                               goto doneit;
+                       }
+               }
+               vsp->exp = is.exp - IEEE_SNG_BIAS + VAX_SNG_BIAS;
+               vsp->mantissa2 = is.mantissa;
+               vsp->mantissa1 = (is.mantissa >> 16);
+       doneit:
+               vsp->sign = is.sign;
+               return (TRUE);
+#else
+               if (sizeof(float) == sizeof(long))
+                       return (XDR_GETLONG(xdrs, (long *)fp));
+               else if (sizeof(float) == sizeof(int)) {
+                       long tmp;
+                       if (XDR_GETLONG(xdrs, &tmp)) {
+                               *(int *)fp = tmp;
+                               return (TRUE);
+                       }
+               }
+               break;
+#endif
+
+       case XDR_FREE:
+               return (TRUE);
+       }
+       return (FALSE);
+}
+
+/*
+ * This routine works on Suns (Sky / 68000's) and Vaxen.
+ */
+
+#ifdef vax
+/* What IEEE double precision floating point looks like on a Vax */
+struct ieee_double {
+       unsigned int    mantissa1 : 20;
+       unsigned int    exp       : 11;
+       unsigned int    sign      : 1;
+       unsigned int    mantissa2 : 32;
+};
+
+/* Vax double precision floating point */
+struct  vax_double {
+       unsigned int    mantissa1 : 7;
+       unsigned int    exp       : 8;
+       unsigned int    sign      : 1;
+       unsigned int    mantissa2 : 16;
+       unsigned int    mantissa3 : 16;
+       unsigned int    mantissa4 : 16;
+};
+
+#define VAX_DBL_BIAS   0x81
+#define IEEE_DBL_BIAS  0x3ff
+#define MASK(nbits)    ((1 << nbits) - 1)
+
+static struct dbl_limits {
+       struct  vax_double d;
+       struct  ieee_double ieee;
+} dbl_limits[2] = {
+       {{ 0x7f, 0xff, 0x0, 0xffff, 0xffff, 0xffff },   /* Max Vax */
+       { 0x0, 0x7ff, 0x0, 0x0 }},                      /* Max IEEE */
+       {{ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},               /* Min Vax */
+       { 0x0, 0x0, 0x0, 0x0 }}                         /* Min IEEE */
+};
+
+#endif /* vax */
+
+
+bool_t
+xdr_double(xdrs, dp)
+     XDR *xdrs;
+     double *dp;
+{
+#ifdef vax
+       struct  ieee_double id;
+       struct  vax_double vd;
+       register struct dbl_limits *lim;
+       int i;
+#endif
+
+       switch (xdrs->x_op) {
+
+       case XDR_ENCODE:
+#ifdef vax
+               vd = *((struct vax_double *)dp);
+               for (i = 0, lim = dbl_limits;
+                       i < sizeof(dbl_limits)/sizeof(struct dbl_limits);
+                       i++, lim++) {
+                       if ((vd.mantissa4 == lim->d.mantissa4) &&
+                               (vd.mantissa3 == lim->d.mantissa3) &&
+                               (vd.mantissa2 == lim->d.mantissa2) &&
+                               (vd.mantissa1 == lim->d.mantissa1) &&
+                               (vd.exp == lim->d.exp)) {
+                               id = lim->ieee;
+                               goto shipit;
+                       }
+               }
+               id.exp = vd.exp - VAX_DBL_BIAS + IEEE_DBL_BIAS;
+               id.mantissa1 = (vd.mantissa1 << 13) | (vd.mantissa2 >> 3);
+               id.mantissa2 = ((vd.mantissa2 & MASK(3)) << 29) |
+                               (vd.mantissa3 << 13) |
+                               ((vd.mantissa4 >> 3) & MASK(13));
+       shipit:
+               id.sign = vd.sign;
+               dp = (double *)&id;
+#endif
+               if (2*sizeof(long) == sizeof(double)) {
+                       long *lp = (long *)dp;
+                       return (XDR_PUTLONG(xdrs, lp+!LSW) &&
+                               XDR_PUTLONG(xdrs, lp+LSW));
+               } else if (2*sizeof(int) == sizeof(double)) {
+                       int *ip = (int *)dp;
+                       long tmp[2];
+                       tmp[0] = ip[!LSW];
+                       tmp[1] = ip[LSW];
+                       return (XDR_PUTLONG(xdrs, tmp) &&
+                               XDR_PUTLONG(xdrs, tmp+1));
+               }
+               break;
+
+       case XDR_DECODE:
+#ifdef vax
+               lp = (long *)&id;
+               if (!XDR_GETLONG(xdrs, lp++) || !XDR_GETLONG(xdrs, lp))
+                       return (FALSE);
+               for (i = 0, lim = dbl_limits;
+                       i < sizeof(dbl_limits)/sizeof(struct dbl_limits);
+                       i++, lim++) {
+                       if ((id.mantissa2 == lim->ieee.mantissa2) &&
+                               (id.mantissa1 == lim->ieee.mantissa1) &&
+                               (id.exp == lim->ieee.exp)) {
+                               vd = lim->d;
+                               goto doneit;
+                       }
+               }
+               vd.exp = id.exp - IEEE_DBL_BIAS + VAX_DBL_BIAS;
+               vd.mantissa1 = (id.mantissa1 >> 13);
+               vd.mantissa2 = ((id.mantissa1 & MASK(13)) << 3) |
+                               (id.mantissa2 >> 29);
+               vd.mantissa3 = (id.mantissa2 >> 13);
+               vd.mantissa4 = (id.mantissa2 << 3);
+       doneit:
+               vd.sign = id.sign;
+               *dp = *((double *)&vd);
+               return (TRUE);
+#else
+               if (2*sizeof(long) == sizeof(double)) {
+                       long *lp = (long *)dp;
+                       return (XDR_GETLONG(xdrs, lp+!LSW) &&
+                               XDR_GETLONG(xdrs, lp+LSW));
+               } else if (2*sizeof(int) == sizeof(double)) {
+                       int *ip = (int *)dp;
+                       long tmp[2];
+                       if (XDR_GETLONG(xdrs, tmp+!LSW) &&
+                           XDR_GETLONG(xdrs, tmp+LSW)) {
+                               ip[0] = tmp[0];
+                               ip[1] = tmp[1];
+                               return (TRUE);
+                       }
+               }
+               break;
+#endif
+
+       case XDR_FREE:
+               return (TRUE);
+       }
+       return (FALSE);
+}
diff --git a/source/lib/xdrf_em64/xdr_stdio.c b/source/lib/xdrf_em64/xdr_stdio.c
new file mode 100644 (file)
index 0000000..12b1709
--- /dev/null
@@ -0,0 +1,196 @@
+/*
+ * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
+ * unrestricted use provided that this legend is included on all tape
+ * media and as a part of the software program in whole or part.  Users
+ * may copy or modify Sun RPC without charge, but are not authorized
+ * to license or distribute it to anyone else except as part of a product or
+ * program developed by the user.
+ *
+ * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
+ * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
+ *
+ * Sun RPC is provided with no support and without any obligation on the
+ * part of Sun Microsystems, Inc. to assist in its use, correction,
+ * modification or enhancement.
+ *
+ * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
+ * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
+ * OR ANY PART THEREOF.
+ *
+ * In no event will Sun Microsystems, Inc. be liable for any lost revenue
+ * or profits or other special, indirect and consequential damages, even if
+ * Sun has been advised of the possibility of such damages.
+ *
+ * Sun Microsystems, Inc.
+ * 2550 Garcia Avenue
+ * Mountain View, California  94043
+ */
+
+/*
+ * xdr_stdio.c, XDR implementation on standard i/o file.
+ *
+ * Copyright (C) 1984, Sun Microsystems, Inc.
+ *
+ * This set of routines implements a XDR on a stdio stream.
+ * XDR_ENCODE serializes onto the stream, XDR_DECODE de-serializes
+ * from the stream.
+ */
+
+#include "types.h"
+#include <stdio.h>
+#include "xdr.h"
+
+#ifdef USE_IN_LIBIO
+# include <libio/iolibio.h>
+# define fflush(s) INTUSE(_IO_fflush) (s)
+# define fread(p, m, n, s) INTUSE(_IO_fread) (p, m, n, s)
+# define ftell(s) INTUSE(_IO_ftell) (s)
+# define fwrite(p, m, n, s) INTUSE(_IO_fwrite) (p, m, n, s)
+#endif
+
+static bool_t xdrstdio_getlong (XDR *, long *);
+static bool_t xdrstdio_putlong (XDR *, const long *);
+static bool_t xdrstdio_getbytes (XDR *, caddr_t, u_int);
+static bool_t xdrstdio_putbytes (XDR *, const char *, u_int);
+static u_int xdrstdio_getpos (const XDR *);
+static bool_t xdrstdio_setpos (XDR *, u_int);
+static int32_t *xdrstdio_inline (XDR *, u_int);
+static void xdrstdio_destroy (XDR *);
+static bool_t xdrstdio_getint32 (XDR *, int32_t *);
+static bool_t xdrstdio_putint32 (XDR *, const int32_t *);
+
+/*
+ * Ops vector for stdio type XDR
+ */
+static const struct xdr_ops xdrstdio_ops =
+{
+  xdrstdio_getlong,            /* deserialize a long int */
+  xdrstdio_putlong,            /* serialize a long int */
+  xdrstdio_getbytes,           /* deserialize counted bytes */
+  xdrstdio_putbytes,           /* serialize counted bytes */
+  xdrstdio_getpos,             /* get offset in the stream */
+  xdrstdio_setpos,             /* set offset in the stream */
+  xdrstdio_inline,             /* prime stream for inline macros */
+  xdrstdio_destroy,            /* destroy stream */
+  xdrstdio_getint32,           /* deserialize a int */
+  xdrstdio_putint32            /* serialize a int */
+};
+
+/*
+ * Initialize a stdio xdr stream.
+ * Sets the xdr stream handle xdrs for use on the stream file.
+ * Operation flag is set to op.
+ */
+void
+xdrstdio_create (XDR *xdrs, FILE *file, enum xdr_op op)
+{
+  xdrs->x_op = op;
+  /* We have to add the const since the `struct xdr_ops' in `struct XDR'
+     is not `const'.  */
+  xdrs->x_ops = (struct xdr_ops *) &xdrstdio_ops;
+  xdrs->x_private = (caddr_t) file;
+  xdrs->x_handy = 0;
+  xdrs->x_base = 0;
+}
+
+/*
+ * Destroy a stdio xdr stream.
+ * Cleans up the xdr stream handle xdrs previously set up by xdrstdio_create.
+ */
+static void
+xdrstdio_destroy (XDR *xdrs)
+{
+  (void) fflush ((FILE *) xdrs->x_private);
+  /* xx should we close the file ?? */
+};
+
+static bool_t
+xdrstdio_getlong (XDR *xdrs, long *lp)
+{
+  u_int32_t mycopy;
+
+  if (fread ((caddr_t) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1)
+    return FALSE;
+  *lp = (long) ntohl (mycopy);
+  return TRUE;
+}
+
+static bool_t
+xdrstdio_putlong (XDR *xdrs, const long *lp)
+{
+  int32_t mycopy = htonl ((u_int32_t) *lp);
+
+  if (fwrite ((caddr_t) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1)
+    return FALSE;
+  return TRUE;
+}
+
+static bool_t
+xdrstdio_getbytes (XDR *xdrs, const caddr_t addr, u_int len)
+{
+  if ((len != 0) && (fread (addr, (int) len, 1,
+                           (FILE *) xdrs->x_private) != 1))
+    return FALSE;
+  return TRUE;
+}
+
+static bool_t
+xdrstdio_putbytes (XDR *xdrs, const char *addr, u_int len)
+{
+  if ((len != 0) && (fwrite (addr, (int) len, 1,
+                            (FILE *) xdrs->x_private) != 1))
+    return FALSE;
+  return TRUE;
+}
+
+static u_int
+xdrstdio_getpos (const XDR *xdrs)
+{
+  return (u_int) ftell ((FILE *) xdrs->x_private);
+}
+
+static bool_t
+xdrstdio_setpos (XDR *xdrs, u_int pos)
+{
+  return fseek ((FILE *) xdrs->x_private, (long) pos, 0) < 0 ? FALSE : TRUE;
+}
+
+static int32_t *
+xdrstdio_inline (XDR *xdrs, u_int len)
+{
+  /*
+   * Must do some work to implement this: must insure
+   * enough data in the underlying stdio buffer,
+   * that the buffer is aligned so that we can indirect through a
+   * long *, and stuff this pointer in xdrs->x_buf.  Doing
+   * a fread or fwrite to a scratch buffer would defeat
+   * most of the gains to be had here and require storage
+   * management on this buffer, so we don't do this.
+   */
+  return NULL;
+}
+
+static bool_t
+xdrstdio_getint32 (XDR *xdrs, int32_t *ip)
+{
+  int32_t mycopy;
+
+  if (fread ((caddr_t) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1)
+    return FALSE;
+  *ip = ntohl (mycopy);
+  return TRUE;
+}
+
+static bool_t
+xdrstdio_putint32 (XDR *xdrs, const int32_t *ip)
+{
+  int32_t mycopy = htonl (*ip);
+
+  ip = &mycopy;
+  if (fwrite ((caddr_t) ip, 4, 1, (FILE *) xdrs->x_private) != 1)
+    return FALSE;
+  return TRUE;
+}
+
+/* libc_hidden_def (xdrstdio_create) */
diff --git a/source/lib/xdrf_em64/xdrf.h b/source/lib/xdrf_em64/xdrf.h
new file mode 100644 (file)
index 0000000..dedf5a2
--- /dev/null
@@ -0,0 +1,10 @@
+/*_________________________________________________________________
+ |
+ | xdrf.h - include file for C routines that want to use the 
+ |         functions below.
+*/
+
+int xdropen(XDR *xdrs, const char *filename, const char *type);
+int xdrclose(XDR *xdrs) ;
+int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) ;
+
diff --git a/source/unres/CMakeLists.txt b/source/unres/CMakeLists.txt
deleted file mode 100644 (file)
index 41e1c5a..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-#
-# CMake project file for UNRES
-#
-
-add_subdirectory(src_MD) 
diff --git a/source/unres/src_CSA/CMakeLists.txt b/source/unres/src_CSA/CMakeLists.txt
new file mode 100644 (file)
index 0000000..48133b8
--- /dev/null
@@ -0,0 +1,311 @@
+#
+# CMake project file for UNRES CSA version
+# 
+
+enable_language (Fortran)
+
+#================================
+# Set source file lists
+#================================
+set(UNRES_CSA_SRC0 
+       arcos.f
+       banach.f
+       bank.F
+       cartder.F
+       cartprint.f
+       chainbuild.F
+       checkder_p.F
+       cinfo.f
+       contact.f
+       convert.f
+       cored.f
+       csa.f
+       dfa.F
+       diff12.f
+       distfit.f
+       djacob.f
+       econstr_local.F
+       elecont.f
+       energy_p_new_barrier.F
+       fitsq.f
+       gen_rand_conf.F
+       geomout_min.F
+       gradient_p.F
+       indexx.f
+       initialize_p.F
+       intcartderiv.F
+       intcor.f
+       intlocal.f
+       int_to_cart.f
+       local_move.f
+       matmult.f
+       minimize_p.F
+       minim_jlee.F
+       minim_mult.F
+       misc.f
+       MP.F
+       newconf.f
+       parmread.F
+       pinorm.f
+       printmat.f
+       prng_32.F
+       randgens.f
+       ran.f
+       readpdb.F
+       readrtns_csa.F
+       rescode.f
+       rmdd.f
+       rmsd.F
+       sc_move.F
+       shift.F
+       sumsld.f
+       test.F
+       timing.F
+       TMscore_subroutine.f
+       together.F
+       unres_csa.F
+)
+
+set(UNRES_CSA_SRC3 energy_p_new_barrier.F gradient_p.F )
+
+set(UNRES_CSA_PP_SRC
+       bank.F
+       cartder.F
+       chainbuild.F
+       checkder_p.F
+       dfa.F
+       econstr_local.F
+       energy_p_new_barrier.F
+       gen_rand_conf.F
+       geomout_min.F
+       gradient_p.F
+       initialize_p.F
+       intcartderiv.F
+       minimize_p.F
+       minim_jlee.F
+       minim_mult.F
+       MP.F
+       parmread.F
+       prng_32.F
+       readpdb.F
+       readrtns_csa.F
+       rmsd.F
+       sc_move.F
+       shift.F
+       test.F
+       timing.F
+       together.F
+       unres_csa.F
+) 
+
+
+#================================================
+# Set comipiler flags for different sourcefiles  
+#================================================
+if (Fortran_COMPILER_NAME STREQUAL "ifort")
+  set(FFLAGS0 "-c -ip -w" ) 
+  set(FFLAGS1 "-c -w -g -d2 -CA -CB" ) 
+  set(FFLAGS2 "-c -w -g -00 ")
+  #set(FFLAGS3 "-c -w -O3 -ipo -ipo_obj -opt_report" )
+  set(FFLAGS3 "-c -w -ipo " )
+elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
+  set(FFLAGS0 "-c -I. " ) 
+  set(FFLAGS1 "-c -g -I. " ) 
+  set(FFLAGS2 "-c -I. ")
+  #set(FFLAGS3 "-c -w -O3 -ipo -ipo_obj -opt_report" )
+  set(FFLAGS3 "-c -I. " )
+endif (Fortran_COMPILER_NAME STREQUAL "ifort")
+
+
+# Add MPI compiler flags
+if(UNRES_WITH_MPI)
+  set(FFLAGS0 "${FFLAGS0} -I${MPIF_INCLUDE_DIRECTORIES}")
+  set(FFLAGS1 "${FFLAGS1} -I${MPIF_INCLUDE_DIRECTORIES}")
+  set(FFLAGS2 "${FFLAGS2} -I${MPIF_INCLUDE_DIRECTORIES}")
+  set(FFLAGS3 "${FFLAGS3} -I${MPIF_INCLUDE_DIRECTORIES}")
+endif(UNRES_WITH_MPI)
+
+set_property(SOURCE ${UNRES_CSA_SRC0} PROPERTY COMPILE_FLAGS ${FFLAGS0} )
+set_property(SOURCE ${UNRES_CSA_SRC1} PROPERTY COMPILE_FLAGS ${FFLAGS1} )
+set_property(SOURCE ${UNRES_CSA_SRC2} PROPERTY COMPILE_FLAGS ${FFLAGS2} )
+set_property(SOURCE ${UNRES_CSA_SRC3} PROPERTY COMPILE_FLAGS ${FFLAGS3} )
+
+#=========================================
+# Settings for CSA force fields 
+#=========================================
+
+if(UNRES_CSA_FF STREQUAL "CASP3" )
+  set(CPPFLAGS "PROCOR -DUNRES -DISNAN -DSPLITELE -DLANG0 -DCRYST_TOR -DCRYST_BOND -DCRYST_THETA -DCRYST_SC -DMOMENT" )
+elseif(UNRES_CSA_FF STREQUAL "ALPHA")
+  set(CPPFLAGS "PROCOR -DUNRES -DISNAN -DSPLITELE -DLANG0 -DMOMENT -DCRYST_BOND -DCRYST_THETA -DCRYST_SC" )
+elseif(UNRES_CSA_FF STREQUAL "BETA")
+  set(CPPFLAGS "PROCOR -DUNRES -DISNAN -DSPLITELE -DLANG0 -DMOMENT -DCRYST_BOND -DCRYST_THETA -DCRYST_SC" )
+elseif(UNRES_CSA_FF STREQUAL "ALPHABETA")
+  set(CPPFLAGS "PROCOR -DUNRES -DISNAN -DSPLITELE -DLANG0 -DMOMENT -DCRYST_BOND -DCRYST_THETA -DCRYST_SC" )
+elseif(UNRES_CSA_FF STREQUAL "CASP5")
+  set(CPPFLAGS "PROCOR -DUNRES -DISNAN -DSPLITELE -DLANG0 -DCRYST_BOND -DCRYST_THETA -DCRYST_SC" )
+elseif(UNRES_CSA_FF STREQUAL "3P")
+  set(CPPFLAGS "PROCOR -DUNRES -DISNAN -DSPLITELE -DLANG0 -DCRYST_BOND -DCRYST_THETA -DCRYST_SC" )
+elseif(UNRES_CSA_FF STREQUAL "4P")
+  set(CPPFLAGS "PROCOR -DUNRES -DISNAN -DSPLITELE -DLANG0 -DCRYST_BOND -DCRYST_THETA -DCRYST_SC" )
+endif(UNRES_CSA_FF STREQUAL "CASP3")
+
+#=========================================
+# System specific flags
+#=========================================
+if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+  set(CPPFLAGS "${CPPFLAGS} -DLINUX") 
+endif(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+
+#=========================================
+# Compiler specific flags
+#=========================================
+
+if (Fortran_COMPILER_NAME STREQUAL "ifort")
+  # Add ifort preprocessor flags
+  set(CPPFLAGS "${CPPFLAGS} -DPGI") 
+elseif (Fortran_COMPILER_NAME STREQUAL "f95")
+  # Add new gfortran flags
+  set(CPPFLAGS "${CPPFLAGS} -DG77") 
+elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
+  # Add old gfortran flags
+  set(CPPFLAGS "${CPPFLAGS} -DG77") 
+endif (Fortran_COMPILER_NAME STREQUAL "ifort")
+
+#=========================================
+# Add MPI preprocessor flags
+#=========================================
+set(CPPFLAGS "${CPPFLAGS} -DMP -DMPI") 
+
+# Apply preprocesor flags to *.F files
+set_property(SOURCE ${UNRES_CSA_PP_SRC} PROPERTY COMPILE_DEFINITIONS ${CPPFLAGS} )  
+
+
+#========================================
+#  Setting binary name
+#========================================
+set(UNRES_BIN "unresCSA_${Fortran_COMPILER_NAME}_${UNRES_CSA_FF}.exe")
+
+#=========================================
+# cinfo.f stupid workaround for cmake
+#  - shame on me ]:)
+#=========================================
+set_property(SOURCE compinfo.c PROPERTY CMAKE_C_FLAGS "-c" )
+add_executable(compinfo-csa compinfo.c)
+set_target_properties(compinfo-csa PROPERTIES OUTPUT_NAME compinfo)
+
+set(UNRES_CINFO_DIR "${CMAKE_CURRENT_BINARY_DIR}" )
+add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/cinfo.f 
+       COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/cinfo.f ${CMAKE_CURRENT_BINARY_DIR}/cinfo.f
+       COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/COMMON.IOUNITS ${CMAKE_CURRENT_BINARY_DIR}/COMMON.IOUNITS 
+       COMMAND ${CMAKE_CURRENT_BINARY_DIR}/compinfo | true     
+       DEPENDS compinfo-csa )
+set_property(SOURCE ${UNRES_CINFO_DIR}/cinfo.f PROPERTY COMPILE_FLAGS ${FFLAGS0} )
+
+#=========================================
+# Set full unres CSA sources
+#=========================================
+set(UNRES_CSA_SRCS ${UNRES_CSA_SRC0} ${UNRES_CSA_SRC3} ${UNRES_CINFO_DIR}/cinfo.f )
+
+#=========================================
+# Build the binary
+#=========================================
+add_executable(UNRES_BIN-CSA ${UNRES_CSA_SRCS} )
+set_target_properties(UNRES_BIN-CSA PROPERTIES OUTPUT_NAME ${UNRES_BIN})
+
+#set_property(TARGET ${UNRES_BIN} PROPERTY RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/unres/MD )
+#add_dependencies (${UNRES_BIN} ${UNRES_XDRFLIB})
+
+#=========================================
+# Link libraries
+#=========================================
+# link MPI library (libmpich.a)  
+target_link_libraries( UNRES_BIN-CSA ${MPIF_LIBRARIES} )
+# link libxdrf.a 
+#target_link_libraries( ${UNRES_BIN} xdrf )
+
+#=========================================
+# TESTS 
+#=========================================
+
+#-- Copy all the data files from the test directory into the source directory
+#SET(UNRES_TEST_FILES
+#      ala10.inp
+#    )
+
+#FOREACH (UNRES_TEST_FILE ${UNRES_TEST_FILES})
+#      SET (unres_test_dest "${CMAKE_CURRENT_BINARY_DIR}/${UNRES_TEST_FILE}")
+#      MESSAGE (STATUS " Copying ${UNRES_TEST_FILE} from ${CMAKE_SOURCE_DIR}/examples/unres/MD/ff_gab/${UNRES_TEST_FILE} to ${unres_test_dest}")
+#      ADD_CUSTOM_COMMAND (
+#          TARGET     ${UNRES_BIN}
+#          POST_BUILD
+#          COMMAND    ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/examples/unres/MD/ff_gab/${UNRES_TEST_FILE} ${unres_test_dest}
+#      )
+#ENDFOREACH (UNRES_TEST_FILE ${UNRES_TEST_FILES})
+
+#=========================================
+# Generate data test files
+#=========================================
+#  test_single_ala.sh
+#=========================================
+
+#FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh
+#"#!/bin/sh
+#export POT=GB
+#export PREFIX=ala10
+#-----------------------------------------------------------------------------
+#UNRES_BIN=./${UNRES_BIN}
+#-----------------------------------------------------------------------------
+#DD=${CMAKE_SOURCE_DIR}/PARAM
+#export BONDPAR=$DD/bond.parm
+#export THETPAR=$DD/thetaml.5parm
+#export ROTPAR=$DD/scgauss.parm
+#export TORPAR=$DD/torsion_631Gdp.parm
+#export TORDPAR=$DD/torsion_double_631Gdp.parm
+#export ELEPAR=$DD/electr_631Gdp.parm
+#export SIDEPAR=$DD/sc_GB_opt.1gab_3S_qclass5no310-shan2-sc-16-10-8k
+#export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
+#export SCPPAR=$DD/scp.parm
+#export SCCORPAR=$DD/rotcorr_AM1.parm
+#export PATTERN=$DD/patterns.cart
+#-----------------------------------------------------------------------------
+#$UNRES_BIN
+#")
+
+#=========================================
+#  ala10.inp
+#=========================================
+
+#file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/ala10.inp
+#"ala10 unblocked
+#SEED=-1111333 MD ONE_LETTER rescale_mode=2 PDBOUT
+#nstep=15000 ntwe=100 ntwx=1000 dt=0.1 lang=0 tbf t_bath=300 damax=1.0          &
+#reset_moment=1000 reset_vel=1000 MDPDB
+#WLONG=1.35279 WSCP=1.59304 WELEC=0.71534 WBOND=1.00000 WANG=1.13873            &
+#WSCLOC=0.16258 WTOR=1.98599 WTORD=1.57069 WCORRH=0.42887 WCORR5=0.00000        &
+#WCORR6=0.00000 WEL_LOC=0.16036 WTURN3=1.68722 WTURN4=0.66230 WTURN6=0.00000    &
+#WVDWPP=0.11371 WHPB=1.00000                                                    &
+#CUTOFF=7.00000 WCORR4=0.00000
+#12
+#XAAAAAAAAAAX 
+# 0
+# 0
+#   90.0000   90.0000   90.0000  90.000   90.000   90.000   90.000   90.000 
+#   90.0000   90.0000
+#  180.0000  180.0000  180.0000 180.000  180.000  180.000  180.000  180.000
+#  180.0000
+#  110.0000  110.0000  110.0000 100.000  110.000  100.000  110.000  110.000 
+#  110.0000  110.0000
+# -120.0000 -120.0000 -120.000 -120.000 -120.000 -120.000 -120.000 -120.000
+# -120.0000 -120.0000
+#")
+
+
+# Add tests
+
+#if(NOT UNRES_WITH_MPI)
+
+#  add_test(NAME UNRES_MD_Ala10 COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh )
+
+#endif(NOT UNRES_WITH_MPI)
diff --git a/source/unres/src_CSA/cinfo.f.new b/source/unres/src_CSA/cinfo.f.new
deleted file mode 100644 (file)
index e69de29..0000000
index 813cf31..e28f686 100644 (file)
@@ -14,10 +14,10 @@ time_t Tp;
 
 in=fopen("cinfo.f","r");
 out=fopen("cinfo.f.new","w");
-fgets(buf,498,in);
-fprintf(out,"C DO NOT EDIT THIS FILE - IT HAS BEEN GENERATED BY COMPINFO.C\n");
-fgets(buf,498,in);
-sscanf(&buf[1],"%d %d %d",&iv1,&iv2,&iv3);
+if (fgets(buf,498,in) != NULL)
+       fprintf(out,"C DO NOT EDIT THIS FILE - IT HAS BEEN GENERATED BY COMPINFO.C\n");
+if (fgets(buf,498,in) != NULL)
+       sscanf(&buf[1],"%d %d %d",&iv1,&iv2,&iv3);
 iv3++;
 fprintf(out,"C %d %d %d\n",iv1,iv2,iv3);
 fprintf(out,"      subroutine cinfo\n");
@@ -26,18 +26,22 @@ fprintf(out,"      write(iout,*)'++++ Compile info ++++'\n");
 fprintf(out,"      write(iout,*)'Version %d.%-d build %d'\n",iv1,iv2,iv3);
 uname(&Name);
 time(&Tp);
-system("rm tmptmp; whoami > tmptmp");
+system("whoami > tmptmp");
 in1=fopen("tmptmp","r");
-fscanf(in1,"%s",buf1);
-fclose(in1);
+if (fscanf(in1,"%s",buf1) != EOF)
+{
 p1=ctime(&Tp);
 p1[strlen(p1)-1]='\0';
 fprintf(out,"      write(iout,*)'compiled %s'\n",p1);
 fprintf(out,"      write(iout,*)'compiled by %s@%s'\n",buf1,Name.nodename);
 fprintf(out,"      write(iout,*)'OS name:    %s '\n",Name.sysname);
 fprintf(out,"      write(iout,*)'OS release: %s '\n",Name.release);
-fprintf(out,"      write(iout,*)'OS version: %s '\n",Name.version);
+fprintf(out,"      write(iout,*)'OS version:',\n");
+fprintf(out,"     & ' %s '\n",Name.version);
 fprintf(out,"      write(iout,*)'flags:'\n");
+}
+system("rm tmptmp");
+fclose(in1);
 in1=fopen("Makefile","r");
 while(fgets(buf,498,in1) != NULL)
  {
@@ -55,8 +59,8 @@ while(fgets(buf,498,in1) != NULL)
     {
     strcat(buf,"\\");
     fprintf(out,"      write(iout,*)'%s'\n",buf);
-    fgets(buf,498,in1);
-    buf[strlen(buf)-1]='\0';
+    if (fgets(buf,498,in1) != NULL)
+       buf[strlen(buf)-1]='\0';
     if(strlen(buf) > 49)
      {
      buf[47]='\0';
index a46c47d..f0f93ef 100644 (file)
@@ -7966,18 +7966,18 @@ c--------------------------------------------------------------------------
       logical lprn
       common /kutas/ lprn
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-C                                              
-C      Parallel       Antiparallel
-C                                             
-C          o             o         
-C         /l\           /j\       
-C        /   \         /   \      
-C       /| o |         | o |\     
-C     \ j|/k\|  /   \  |/k\|l /   
-C      \ /   \ /     \ /   \ /    
-C       o     o       o     o                
-C       i             i                     
-C
+C                                                                              C
+C      Parallel       Antiparallel                                             C
+C                                                                              C
+C          o             o                                                     C
+C         /l\           /j\                                                    C
+C        /   \         /   \                                                   C
+C       /| o |         | o |\                                                  C
+C     \ j|/k\|  /   \  |/k\|l /                                                C
+C      \ /   \ /     \ /   \ /                                                 C
+C       o     o       o     o                                                  C
+C       i             i                                                        C
+C                                                                              C
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
       itk=itortyp(itype(k))
       s1= scalar2(AEAb1(1,2,imat),CUgb2(1,i))
@@ -8071,18 +8071,18 @@ c----------------------------------------------------------------------------
       logical lprn
       common /kutas/ lprn
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-C                                              
-C      Parallel       Antiparallel
-C                                             
-C          o             o         
-C     \   /l\           /j\   /   
-C      \ /   \         /   \ /    
-C       o| o |         | o |o     
-C     \ j|/k\|      \  |/k\|l     
-C      \ /   \       \ /   \      
-C       o             o                      
-C       i             i                     
-C
+C                                                                              C
+C      Parallel       Antiparallel                                             C
+C                                                                              C 
+C          o             o                                                     C
+C     \   /l\           /j\   /                                                C
+C      \ /   \         /   \ /                                                 C
+C       o| o |         | o |o                                                  C                   
+C     \ j|/k\|      \  |/k\|l                                                  C
+C      \ /   \       \ /   \                                                   C
+C       o             o                                                        C
+C       i             i                                                        C 
+C                                                                              C
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
 cd      write (2,*) 'eello6_graph2: i,',i,' j',j,' k',k,' l',l
 C AL 7/4/01 s1 would occur in the sixth-order moment, 
@@ -8253,18 +8253,18 @@ c----------------------------------------------------------------------------
       double precision vv(2),pizda(2,2),auxmat(2,2),auxvec(2)
       logical swap
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-C                                              
-C      Parallel       Antiparallel
-C                                             
-C          o             o         
-C         /l\   /   \   /j\       
-C        /   \ /     \ /   \      
-C       /| o |o       o| o |\     
-C       j|/k\|  /      |/k\|l /   
-C        /   \ /       /   \ /    
-C       /     o       /     o                
-C       i             i                     
-C
+C                                                                              C
+C      Parallel       Antiparallel                                             C
+C                                                                              C
+C          o             o                                                     C
+C         /l\   /   \   /j\                                                    C
+C        /   \ /     \ /   \                                                   C
+C       /| o |o       o| o |\                                                  C
+C       j|/k\|  /      |/k\|l /                                                C
+C        /   \ /       /   \ /                                                 C
+C       /     o       /     o                                                  C
+C       i             i                                                        C
+C                                                                              C
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
 C
 C 4/7/01 AL Component s1 was removed, because it pertains to the respective 
@@ -8370,18 +8370,18 @@ c----------------------------------------------------------------------------
      & auxvec1(2),auxmat1(2,2)
       logical swap
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-C                                              
-C      Parallel       Antiparallel
-C                                             
-C          o             o         
-C         /l\   /   \   /j\       
-C        /   \ /     \ /   \      
-C       /| o |o       o| o |\     
-C     \ j|/k\|      \  |/k\|l     
-C      \ /   \       \ /   \      
-C       o     \       o     \                
-C       i             i                     
-C
+C                                                                              C
+C      Parallel       Antiparallel                                             C
+C                                                                              C
+C          o             o                                                     C
+C         /l\   /   \   /j\                                                    C
+C        /   \ /     \ /   \                                                   C
+C       /| o |o       o| o |\                                                  C
+C     \ j|/k\|      \  |/k\|l                                                  C
+C      \ /   \       \ /   \                                                   C
+C       o     \       o     \                                                  C
+C       i             i                                                        C
+C                                                                              C
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
 C
 C 4/7/01 AL Component s1 was removed, because it pertains to the respective 
diff --git a/source/unres/src_MD-M/.symbolsizes.txt.swp b/source/unres/src_MD-M/.symbolsizes.txt.swp
deleted file mode 100644 (file)
index 57d99fd..0000000
Binary files a/source/unres/src_MD-M/.symbolsizes.txt.swp and /dev/null differ
diff --git a/source/unres/src_MD-M/CMakeLists.txt b/source/unres/src_MD-M/CMakeLists.txt
new file mode 100644 (file)
index 0000000..8307560
--- /dev/null
@@ -0,0 +1,343 @@
+#
+# CMake project file for UNRES with MD for single chains
+# 
+
+enable_language (Fortran)
+
+#================================
+# build the xdrf library 
+#================================ 
+#add_subdirectory(xdrf)
+
+#================================
+# Set source file lists
+#================================
+set(UNRES_MDM_SRC0 
+       add.f 
+       arcos.f
+       banach.f
+       bank.F 
+       blas.f 
+       bond_move.f 
+       cartder.F 
+       cartprint.f 
+       chainbuild.F 
+       check_bond.f 
+       checkder_p.F 
+       check_sc_distr.f
+       compare_s1.F 
+       contact.f 
+       convert.f 
+       cored.f
+       csa.f 
+       dihed_cons.F
+       diff12.f
+       distfit.f 
+       djacob.f
+       econstr_local.F
+       eigen.f 
+       elecont.f 
+       energy_split-sep.F 
+       entmcm.F
+       fitsq.f 
+       gauss.f 
+       gen_rand_conf.F
+       geomout.F 
+       gnmr1.f
+       indexx.f 
+       initialize_p.F 
+       intcartderiv.F
+       intcor.f 
+       intlocal.f 
+       int_to_cart.f 
+       kinetic_lesyng.f 
+       lagrangian_lesyng.F
+       local_move.f 
+       map.f 
+       matmult.f 
+       mc.F 
+       mcm.F 
+       MD_A-MTS.F 
+       minimize_p.F
+       minim_jlee.F 
+       minim_mcmf.F 
+       misc.f 
+       moments.f
+       MP.F 
+       MREMD.F 
+       muca_md.f 
+       newconf.f
+       parmread.F 
+       permut.F
+       pinorm.f 
+       printmat.f 
+       q_measure.F 
+       ran.f
+       randgens.f 
+       rattle.F 
+       readpdb.F
+       readrtns_CSA.F 
+       refsys.f 
+       regularize.F
+       rescode.f 
+       rmdd.f 
+       rmsd.F 
+       sc_move.F 
+       shift.F
+       sort.f 
+       stochfric.F 
+       sumsld.f 
+       surfatom.f 
+       test.F 
+       thread.F 
+       timing.F
+       together.F
+       unres.F
+)
+
+if (Fortran_COMPILER_NAME STREQUAL "ifort")
+  set(UNRES_MDM_SRC0 ${UNRES_MDM_SRC0} prng.f ) 
+else()
+  set(UNRES_MDM_SRC0 ${UNRES_MDM_SRC0} prng_32.F )
+endif (Fortran_COMPILER_NAME STREQUAL "ifort")
+
+
+set(UNRES_MDM_SRC3 energy_p_new_barrier.F energy_p_new-sep_barrier.F gradient_p.F )
+
+set(UNRES_MDM_PP_SRC
+       bank.F 
+       cartder.F 
+       chainbuild.F 
+       checkder_p.F 
+       compare_s1.F
+       cored.f
+       csa.f 
+       dihed_cons.F
+       diff12.f 
+       econstr_local.F 
+       energy_p_new.F
+       energy_p_new_barrier.F 
+       energy_p_new-sep_barrier.F 
+       energy_split-sep.F 
+       entmcm.F 
+       gen_rand_conf.F
+       geomout.F 
+       gradient_p.F 
+       intcor.f
+       initialize_p.F 
+       intcartderiv.F 
+       lagrangian_lesyng.F 
+       matmult.f
+       mc.F 
+       mcm.F 
+       MD_A-MTS.F
+       minimize_p.F 
+       minim_jlee.F
+       minim_mcmf.F 
+       MP.F 
+       MREMD.F
+       newconf.f 
+       parmread.F 
+       permut.F
+       q_measure1.F 
+       q_measure3.F 
+       q_measure.F
+       ran.f
+       rattle.F 
+       readpdb.F 
+       readrtns_CSA.F 
+       regularize.F
+       rmdd.f 
+       rmsd.F 
+       sc_move.F
+       shift.F 
+       stochfric.F
+       sumsld.f 
+       test.F 
+       thread.F 
+       timing.F
+       together.F
+       unres.F
+       proc_proc.c
+) 
+
+
+if(NOT Fortran_COMPILER_NAME STREQUAL "ifort")
+  set(UNRES_MDM_PP_SRC "${UNRES_MDM_PP_SRC} prng_32.F") 
+endif(NOT Fortran_COMPILER_NAME STREQUAL "ifort")
+
+
+#================================================
+# Set comipiler flags for different sourcefiles  
+#================================================
+if (Fortran_COMPILER_NAME STREQUAL "ifort")
+  set(FFLAGS0 "-ip -w" ) 
+  set(FFLAGS1 "-w -g -d2 -CA -CB" ) 
+  set(FFLAGS2 "-w -g -00 ")
+  #set(FFLAGS3 "-c -w -O3 -ipo -ipo_obj -opt_report" )
+  set(FFLAGS3 "-w -ipo " )
+elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
+  set(FFLAGS0 "-I. " ) 
+  set(FFLAGS1 "-g -I. " ) 
+  set(FFLAGS2 "-I. ")
+  #set(FFLAGS3 "-c -w -O3 -ipo -ipo_obj -opt_report" )
+  set(FFLAGS3 "-I. " )
+endif (Fortran_COMPILER_NAME STREQUAL "ifort")
+
+
+# Add MPI compiler flags
+if(UNRES_WITH_MPI)
+  set(FFLAGS0 "${FFLAGS0} -I${MPIF_INCLUDE_DIRECTORIES}")
+  set(FFLAGS1 "${FFLAGS1} -I${MPIF_INCLUDE_DIRECTORIES}")
+  set(FFLAGS2 "${FFLAGS2} -I${MPIF_INCLUDE_DIRECTORIES}")
+  set(FFLAGS3 "${FFLAGS3} -I${MPIF_INCLUDE_DIRECTORIES}")
+endif(UNRES_WITH_MPI)
+
+set_property(SOURCE ${UNRES_MDM_SRC0} APPEND PROPERTY COMPILE_FLAGS ${FFLAGS0} )
+#set_property(SOURCE ${UNRES_MD_SRC1} PROPERTY COMPILE_FLAGS ${FFLAGS1} )
+#set_property(SOURCE ${UNRES_MD_SRC2} PROPERTY COMPILE_FLAGS ${FFLAGS2} )
+set_property(SOURCE ${UNRES_MDM_SRC3} PROPERTY COMPILE_FLAGS ${FFLAGS3} )
+
+#=========================================
+# Settings for GAB force field 
+#=========================================
+if(UNRES_MD_FF STREQUAL "GAB" )
+  # set preprocesor flags   
+  set(CPPFLAGS "PROCOR -DUNRES -DISNAN -DSPLITELE -DLANG0 -DCRYST_BOND -DCRYST_THETA -DCRYST_SC" )
+
+#=========================================
+#  Settings for E0LL2Y force field
+#=========================================
+elseif(UNRES_MD_FF STREQUAL "E0LL2Y")
+  # set preprocesor flags   
+  set(CPPFLAGS "PROCOR -DUNRES -DISNAN -DSPLITELE -DLANG0" )
+endif(UNRES_MD_FF STREQUAL "GAB")
+
+
+#=========================================
+# System specific flags
+#=========================================
+if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+  set(CPPFLAGS "${CPPFLAGS} -DLINUX") 
+endif(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+
+
+#=========================================
+# Compiler specific flags
+#=========================================
+
+if (Fortran_COMPILER_NAME STREQUAL "ifort")
+  # Add ifort preprocessor flags
+  set(CPPFLAGS "${CPPFLAGS} -DPGI") 
+elseif (Fortran_COMPILER_NAME STREQUAL "f95")
+  # Add new gfortran flags
+  set(CPPFLAGS "${CPPFLAGS} -DG77") 
+elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
+  # Add old gfortran flags
+  set(CPPFLAGS "${CPPFLAGS} -DG77") 
+endif (Fortran_COMPILER_NAME STREQUAL "ifort")
+
+
+#=========================================
+# Add MPI preprocessor flags
+#=========================================
+if (UNRES_WITH_MPI)
+  set(CPPFLAGS "${CPPFLAGS} -DMP -DMPI") 
+endif(UNRES_WITH_MPI)
+
+
+# add 64-bit specific preprocessor flags
+if (architektura STREQUAL "64")
+  set(CPPFLAGS "${CPPFLAGS} -DAMD64")
+endif (architektura STREQUAL "64")
+
+
+
+# Apply preprocesor flags to *.F files
+set_property(SOURCE ${UNRES_MDM_PP_SRC} PROPERTY COMPILE_DEFINITIONS ${CPPFLAGS} )  
+
+# Apply preprocesor flags to proc_proc.c
+set_property(SOURCE proc_proc.c PROPERTY COMPILE_DEFINITIONS "SGI" )  
+
+
+#========================================
+#  Setting binary name
+#========================================
+if(UNRES_WITH_MPI) 
+  # binary with mpi
+  set(UNRES_BIN "unres_${Fortran_COMPILER_NAME}_MPICH_${UNRES_FF}.exe")
+else(UNRES_WITH_MPI)
+  # binary without mpi
+  set(UNRES_BIN "unres_${Fortran_COMPILER_NAME}_single_${UNRES_FF}.exe")
+endif(UNRES_WITH_MPI)  
+
+#=========================================
+# cinfo.f stupid workaround for cmake
+#  - shame on me ]:)
+#=========================================
+set_property(SOURCE compinfo.c PROPERTY CMAKE_C_FLAGS "-c" )
+add_executable(compinfo-mdm compinfo.c)
+set_target_properties(compinfo-mdm PROPERTIES OUTPUT_NAME compinfo)
+
+set(UNRES_CINFO_DIR "${CMAKE_CURRENT_BINARY_DIR}" )
+add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/cinfo.f 
+       COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/cinfo.f ${CMAKE_CURRENT_BINARY_DIR}/cinfo.f
+       COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/COMMON.IOUNITS ${CMAKE_CURRENT_BINARY_DIR}/COMMON.IOUNITS 
+       COMMAND ${CMAKE_CURRENT_BINARY_DIR}/compinfo | true     
+       DEPENDS compinfo-mdm )
+set_property(SOURCE ${UNRES_CINFO_DIR}/cinfo.f PROPERTY COMPILE_FLAGS ${FFLAGS0} )
+
+#=========================================
+# Set full unres MD-M sources
+#=========================================
+set(UNRES_MDM_SRCS ${UNRES_MDM_SRC0} ${UNRES_MDM_SRC3} ${UNRES_CINFO_DIR}/cinfo.f proc_proc.c )
+
+#=========================================
+# Build the binary
+#=========================================
+add_executable(UNRES_BIN-MD-M ${UNRES_MDM_SRCS} )
+set_target_properties(UNRES_BIN-MD-M PROPERTIES OUTPUT_NAME ${UNRES_BIN})
+
+#set_property(TARGET ${UNRES_BIN} PROPERTY RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/unres/MD )
+#add_dependencies (${UNRES_BIN} ${UNRES_XDRFLIB})
+
+#=========================================
+# Link libraries
+#=========================================
+# link MPI library (libmpich.a)  
+if(UNRES_WITH_MPI)
+  target_link_libraries( UNRES_BIN-MD-M ${MPIF_LIBRARIES} )
+endif(UNRES_WITH_MPI)
+# link libxdrf.a 
+#message("UNRES_XDRFLIB=${UNRES_XDRFLIB}")
+target_link_libraries( UNRES_BIN-MD-M xdrf )
+
+#=========================================
+# TESTS 
+#=========================================
+
+#-- Copy all the data files from the test directory into the source directory
+#SET(UNRES_TEST_FILES
+#      ala10.inp
+#    )
+
+#FOREACH (UNRES_TEST_FILE ${UNRES_TEST_FILES})
+#      SET (unres_test_dest "${CMAKE_CURRENT_BINARY_DIR}/${UNRES_TEST_FILE}")
+#      MESSAGE (STATUS " Copying ${UNRES_TEST_FILE} from ${CMAKE_SOURCE_DIR}/examples/unres/MD/ff_gab/${UNRES_TEST_FILE} to ${unres_test_dest}")
+#      ADD_CUSTOM_COMMAND (
+#          TARGET     ${UNRES_BIN}
+#          POST_BUILD
+#          COMMAND    ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/examples/unres/MD/ff_gab/${UNRES_TEST_FILE} ${unres_test_dest}
+#      )
+#ENDFOREACH (UNRES_TEST_FILE ${UNRES_TEST_FILES})
+
+#=========================================
+# Generate data test files
+#=========================================
+
+#if(NOT UNRES_WITH_MPI)
+
+#  add_test(NAME UNRES_MD_Ala10 COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh )
+
+#endif(NOT UNRES_WITH_MPI)
diff --git a/source/unres/src_MD-M/a b/source/unres/src_MD-M/a
deleted file mode 100644 (file)
index a1d1e12..0000000
+++ /dev/null
@@ -1,2361 +0,0 @@
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  unres.F
-** _main   === End of Compilation 1 ===
-** exec_md   === End of Compilation 2 ===
-** exec_mremd   === End of Compilation 3 ===
-** exec_eeval_or_minim   === End of Compilation 4 ===
-** exec_regularize   === End of Compilation 5 ===
-** exec_thread   === End of Compilation 6 ===
-** exec_mc   === End of Compilation 7 ===
-** exec_mult_eeval_or_minim   === End of Compilation 8 ===
-** exec_checkgrad   === End of Compilation 9 ===
-** exec_map   === End of Compilation 10 ===
-** exec_csa   === End of Compilation 11 ===
-** exec_softreg   === End of Compilation 12 ===
-1501-510  Compilation successful for file unres.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -c -o arcos.o arcos.f
-** arcos   === End of Compilation 1 ===
-1501-510  Compilation successful for file arcos.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -c -o cartprint.o cartprint.f
-** cartprint   === End of Compilation 1 ===
-1501-510  Compilation successful for file cartprint.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  chainbuild.F
-** chainbuild   === End of Compilation 1 ===
-** orig_frame   === End of Compilation 2 ===
-** locate_next_res   === End of Compilation 3 ===
-** locate_side_chain   === End of Compilation 4 ===
-1501-510  Compilation successful for file chainbuild.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -c -o convert.o convert.f
-** geom_to_var   === End of Compilation 1 ===
-** var_to_geom   === End of Compilation 2 ===
-** convert_side   === End of Compilation 3 ===
-** reduce   === End of Compilation 4 ===
-** thetnorm   === End of Compilation 5 ===
-** var_to_geom_restr   === End of Compilation 6 ===
-1501-510  Compilation successful for file convert.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  initialize_p.F
-** (block)   === End of Compilation 1 ===
-** initialize   === End of Compilation 2 ===
-** nazwy   === End of Compilation 3 ===
-** init_int_table   === End of Compilation 4 ===
-** int_bounds   === End of Compilation 5 ===
-** int_bounds1   === End of Compilation 6 ===
-** int_partition   === End of Compilation 7 ===
-** hpb_partition   === End of Compilation 8 ===
-1501-510  Compilation successful for file initialize_p.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  matmult.f
-** matmult   === End of Compilation 1 ===
-1501-510  Compilation successful for file matmult.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  readrtns_CSA.F
-** readrtns   === End of Compilation 1 ===
-** read_control   === End of Compilation 2 ===
-** read_remdpar   === End of Compilation 3 ===
-** read_mdpar   === End of Compilation 4 ===
-** molread   === End of Compilation 5 ===
-** seq_comp   === End of Compilation 6 ===
-** read_bridge   === End of Compilation 7 ===
-** read_x   === End of Compilation 8 ===
-** read_threadbase   === End of Compilation 9 ===
-** setup_var   === End of Compilation 10 ===
-** gen_dist_constr   === End of Compilation 11 ===
-** map_read   === End of Compilation 12 ===
-** csaread   === End of Compilation 13 ===
-** mcmread   === End of Compilation 14 ===
-** read_minim   === End of Compilation 15 ===
-** read_angles   === End of Compilation 16 ===
-** reada   === End of Compilation 17 ===
-** readi   === End of Compilation 18 ===
-** multreadi   === End of Compilation 19 ===
-** multreada   === End of Compilation 20 ===
-** openunits   === End of Compilation 21 ===
-** card_concat   === End of Compilation 22 ===
-** readrst   === End of Compilation 23 ===
-** read_fragments   === End of Compilation 24 ===
-** read_dist_constr   === End of Compilation 25 ===
-** flush   === End of Compilation 26 ===
-** copy_to_tmp   === End of Compilation 27 ===
-** move_from_tmp   === End of Compilation 28 ===
-** random_init   === End of Compilation 29 ===
-1501-510  Compilation successful for file readrtns_CSA.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  parmread.F
-** parmread   === End of Compilation 1 ===
-** getenv_loc   === End of Compilation 2 ===
-1501-510  Compilation successful for file parmread.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  gen_rand_conf.F
-** gen_rand_conf   === End of Compilation 1 ===
-** overlap   === End of Compilation 2 ===
-** gen_phi   === End of Compilation 3 ===
-** gen_theta   === End of Compilation 4 ===
-** gen_side   === End of Compilation 5 ===
-** ran_number   === End of Compilation 6 ===
-** iran_num   === End of Compilation 7 ===
-** binorm   === End of Compilation 8 ===
-** anorm_distr   === End of Compilation 9 ===
-** mult_norm   === End of Compilation 10 ===
-** mult_norm1   === End of Compilation 11 ===
-** overlap_sc   === End of Compilation 12 ===
-** overlap_sc_list   === End of Compilation 13 ===
-1501-510  Compilation successful for file gen_rand_conf.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -c -o printmat.o printmat.f
-** printmat   === End of Compilation 1 ===
-1501-510  Compilation successful for file printmat.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -c -o map.o map.f
-** map   === End of Compilation 1 ===
-1501-510  Compilation successful for file map.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -c -o pinorm.o pinorm.f
-** pinorm   === End of Compilation 1 ===
-1501-510  Compilation successful for file pinorm.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -c -o randgens.o randgens.f
-** vrnd   === End of Compilation 1 ===
-** rndv   === End of Compilation 2 ===
-** vrndst   === End of Compilation 3 ===
-** vrndin   === End of Compilation 4 ===
-** vrndou   === End of Compilation 5 ===
-** rnunf   === End of Compilation 6 ===
-1501-510  Compilation successful for file randgens.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -c -o rescode.o rescode.f
-** rescode   === End of Compilation 1 ===
-1501-510  Compilation successful for file rescode.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  intcor.f
-** alpha   === End of Compilation 1 ===
-** beta   === End of Compilation 2 ===
-** dist   === End of Compilation 3 ===
-1501-510  Compilation successful for file intcor.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  timing.F
-** set_timers   === End of Compilation 1 ===
-** stopx   === End of Compilation 2 ===
-** ovrtim   === End of Compilation 3 ===
-** tcpu   === End of Compilation 4 ===
-** dajczas   === End of Compilation 5 ===
-1501-510  Compilation successful for file timing.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -c -o misc.o misc.f
-** find_arg   === End of Compilation 1 ===
-** find_group   === End of Compilation 2 ===
-** iblnk   === End of Compilation 3 ===
-** ilen   === End of Compilation 4 ===
-** in_keywd_set   === End of Compilation 5 ===
-** lcase   === End of Compilation 6 ===
-** lcom   === End of Compilation 7 ===
-** lower_case   === End of Compilation 8 ===
-** mykey   === End of Compilation 9 ===
-** numstr   === End of Compilation 10 ===
-** ucase   === End of Compilation 11 ===
-1501-510  Compilation successful for file misc.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -c -o intlocal.o intlocal.f
-** integral   === End of Compilation 1 ===
-** integral3   === End of Compilation 2 ===
-** integral5   === End of Compilation 3 ===
-** integral_turn6   === End of Compilation 4 ===
-** integral6   === End of Compilation 5 ===
-** integral3a   === End of Compilation 6 ===
-** integral4a   === End of Compilation 7 ===
-** elocal   === End of Compilation 8 ===
-** ele   === End of Compilation 9 ===
-1501-510  Compilation successful for file intlocal.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  cartder.F
-** cartder   === End of Compilation 1 ===
-1501-510  Compilation successful for file cartder.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  checkder_p.F
-** check_cartgrad   === End of Compilation 1 ===
-** check_ecart   === End of Compilation 2 ===
-** check_ecartint   === End of Compilation 3 ===
-** int_from_cart1   === End of Compilation 4 ===
-** check_eint   === End of Compilation 5 ===
-1501-510  Compilation successful for file checkder_p.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  econstr_local.F
-** econstr_back   === End of Compilation 1 ===
-1501-510  Compilation successful for file econstr_local.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  energy_p_new.F
-** etotal   === End of Compilation 1 ===
-** sum_energy   === End of Compilation 2 ===
-** sum_gradient   === End of Compilation 3 ===
-** rescale_weights   === End of Compilation 4 ===
-** enerprint   === End of Compilation 5 ===
-** elj   === End of Compilation 6 ===
-** eljk   === End of Compilation 7 ===
-** ebp   === End of Compilation 8 ===
-** egb   === End of Compilation 9 ===
-** egbv   === End of Compilation 10 ===
-** sc_angular   === End of Compilation 11 ===
-** sc_grad   === End of Compilation 12 ===
-** e_softsphere   === End of Compilation 13 ===
-** eelec_soft_sphere   === End of Compilation 14 ===
-** vec_and_deriv   === End of Compilation 15 ===
-** check_vecgrad   === End of Compilation 16 ===
-** set_matrices   === End of Compilation 17 ===
-** eelec   === End of Compilation 18 ===
-** eelecij   === End of Compilation 19 ===
-** eturn3   === End of Compilation 20 ===
-** eturn4   === End of Compilation 21 ===
-** vecpr   === End of Compilation 22 ===
-** unormderiv   === End of Compilation 23 ===
-** escp_soft_sphere   === End of Compilation 24 ===
-** escp   === End of Compilation 25 ===
-** edis   === End of Compilation 26 ===
-** ssbond_ene   === End of Compilation 27 ===
-** ebond   === End of Compilation 28 ===
-** ebend   === End of Compilation 29 ===
-** esc   === End of Compilation 30 ===
-** enesc   === End of Compilation 31 ===
-** gcont   === End of Compilation 32 ===
-** splinthet   === End of Compilation 33 ===
-** spline1   === End of Compilation 34 ===
-** spline2   === End of Compilation 35 ===
-** etor   === End of Compilation 36 ===
-** etor_d   === End of Compilation 37 ===
-** eback_sc_corr   === End of Compilation 38 ===
-** multibody   === End of Compilation 39 ===
-** esccorr   === End of Compilation 40 ===
-** pack_buffer   === End of Compilation 41 ===
-** unpack_buffer   === End of Compilation 42 ===
-** multibody_hb   === End of Compilation 43 ===
-** multibody_eello   === End of Compilation 44 ===
-** ehbcorr   === End of Compilation 45 ===
-** calc_eello   === End of Compilation 46 ===
-** kernel   === End of Compilation 47 ===
-** eello4   === End of Compilation 48 ===
-** eello5   === End of Compilation 49 ===
-** eello6   === End of Compilation 50 ===
-** eello6_graph1   === End of Compilation 51 ===
-** eello6_graph2   === End of Compilation 52 ===
-** eello6_graph3   === End of Compilation 53 ===
-** eello6_graph4   === End of Compilation 54 ===
-** eello_turn6   === End of Compilation 55 ===
-** scalar   === End of Compilation 56 ===
-** matvec2   === End of Compilation 57 ===
-** matmat2   === End of Compilation 58 ===
-** scalar2   === End of Compilation 59 ===
-** transpose2   === End of Compilation 60 ===
-** transpose   === End of Compilation 61 ===
-** prodmat3   === End of Compilation 62 ===
-1501-510  Compilation successful for file energy_p_new.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  energy_p_new-sep.F
-** sscale   === End of Compilation 1 ===
-** elj_long   === End of Compilation 2 ===
-** elj_short   === End of Compilation 3 ===
-** eljk_long   === End of Compilation 4 ===
-** eljk_short   === End of Compilation 5 ===
-** ebp_long   === End of Compilation 6 ===
-** ebp_short   === End of Compilation 7 ===
-** egb_long   === End of Compilation 8 ===
-** egb_short   === End of Compilation 9 ===
-** egbv_long   === End of Compilation 10 ===
-** egbv_short   === End of Compilation 11 ===
-** sc_grad_scale   === End of Compilation 12 ===
-** eelec_scale   === End of Compilation 13 ===
-** eelecij_scale   === End of Compilation 14 ===
-** evdwpp_long   === End of Compilation 15 ===
-** evdwpp_short   === End of Compilation 16 ===
-** escp_long   === End of Compilation 17 ===
-** escp_short   === End of Compilation 18 ===
-1501-510  Compilation successful for file energy_p_new-sep.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  gradient_p.F
-** gradient   === End of Compilation 1 ===
-** grad_restr   === End of Compilation 2 ===
-** cartgrad   === End of Compilation 3 ===
-** zerograd   === End of Compilation 4 ===
-** fdum   === End of Compilation 5 ===
-1501-510  Compilation successful for file gradient_p.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  minimize_p.F
-** minimize   === End of Compilation 1 ===
-** ergastulum   === End of Compilation 2 ===
-** func   === End of Compilation 3 ===
-** func_restr   === End of Compilation 4 ===
-** x2xx   === End of Compilation 5 ===
-** xx2x   === End of Compilation 6 ===
-** minim_dc   === End of Compilation 7 ===
-** func_dc   === End of Compilation 8 ===
-** grad_dc   === End of Compilation 9 ===
-1501-510  Compilation successful for file minimize_p.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  sumsld.f
-** sumsl   === End of Compilation 1 ===
-** sumit   === End of Compilation 2 ===
-** dbdog   === End of Compilation 3 ===
-** ltvmul   === End of Compilation 4 ===
-** lupdat   === End of Compilation 5 ===
-** lvmul   === End of Compilation 6 ===
-** vvmulp   === End of Compilation 7 ===
-** wzbfgs   === End of Compilation 8 ===
-1501-510  Compilation successful for file sumsld.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  cored.f
-** assst   === End of Compilation 1 ===
-** deflt   === End of Compilation 2 ===
-** dotprd   === End of Compilation 3 ===
-** itsum   === End of Compilation 4 ===
-** litvmu   === End of Compilation 5 ===
-** livmul   === End of Compilation 6 ===
-** parck   === End of Compilation 7 ===
-** reldst   === End of Compilation 8 ===
-** vaxpy   === End of Compilation 9 ===
-** vcopy   === End of Compilation 10 ===
-** vdflt   === End of Compilation 11 ===
-** vscopy   === End of Compilation 12 ===
-** v2norm   === End of Compilation 13 ===
-** humsl   === End of Compilation 14 ===
-** humit   === End of Compilation 15 ===
-** dupdu   === End of Compilation 16 ===
-** gqtst   === End of Compilation 17 ===
-** lsqrt   === End of Compilation 18 ===
-** lsvmin   === End of Compilation 19 ===
-** slvmul   === End of Compilation 20 ===
-1501-510  Compilation successful for file cored.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  rmdd.f
-** imdcon   === End of Compilation 1 ===
-** rmdcon   === End of Compilation 2 ===
-1501-510  Compilation successful for file rmdd.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  geomout.F
-** pdbout   === End of Compilation 1 ===
-** mol2out   === End of Compilation 2 ===
-** intout   === End of Compilation 3 ===
-** briefout   === End of Compilation 4 ===
-** cartoutx   === End of Compilation 5 ===
-** cartout   === End of Compilation 6 ===
-** statout   === End of Compilation 7 ===
-** gyrate   === End of Compilation 8 ===
-1501-510  Compilation successful for file geomout.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  readpdb.f
-** readpdb   === End of Compilation 1 ===
-** int_from_cart   === End of Compilation 2 ===
-** sc_loc_geom   === End of Compilation 3 ===
-** sccenter   === End of Compilation 4 ===
-** bond_regular   === End of Compilation 5 ===
-1501-510  Compilation successful for file readpdb.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  regularize.F
-** regularize   === End of Compilation 1 ===
-1501-510  Compilation successful for file regularize.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  thread.F
-** thread_seq   === End of Compilation 1 ===
-** write_thread_summary   === End of Compilation 2 ===
-** sc_conf   === End of Compilation 3 ===
-** write_stat_thread   === End of Compilation 4 ===
-1501-510  Compilation successful for file thread.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -c -o fitsq.o fitsq.f
-** fitsq   === End of Compilation 1 ===
-** sivade   === End of Compilation 2 ===
-** givns   === End of Compilation 3 ===
-** switch   === End of Compilation 4 ===
-** mvvad   === End of Compilation 5 ===
-** det   === End of Compilation 6 ===
-** mmmul   === End of Compilation 7 ===
-** matvec   === End of Compilation 8 ===
-1501-510  Compilation successful for file fitsq.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  mcm.F
-** mcm_setup   === End of Compilation 1 ===
-** do_mcm   === End of Compilation 2 ===
-** execute_slave   === End of Compilation 3 ===
-** statprint   === End of Compilation 4 ===
-** heat   === End of Compilation 5 ===
-** cool   === End of Compilation 6 ===
-** zapis   === End of Compilation 7 ===
-** perturb   === End of Compilation 8 ===
-** selectmove   === End of Compilation 9 ===
-** gen_psi   === End of Compilation 10 ===
-** metropolis   === End of Compilation 11 ===
-** conf_comp   === End of Compilation 12 ===
-** dif_ang   === End of Compilation 13 ===
-** add2cache   === End of Compilation 14 ===
-** rm_from_cache   === End of Compilation 15 ===
-1501-510  Compilation successful for file mcm.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  mc.F
-** monte_carlo   === End of Compilation 1 ===
-** accept_mc   === End of Compilation 2 ===
-** icialosc   === End of Compilation 3 ===
-** entropia   === End of Compilation 4 ===
-1501-510  Compilation successful for file mc.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -c -o bond_move.o bond_move.f
-** bond_move   === End of Compilation 1 ===
-1501-510  Compilation successful for file bond_move.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -c -o refsys.o refsys.f
-** refsys   === End of Compilation 1 ===
-1501-510  Compilation successful for file refsys.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -c -o check_sc_distr.o check_sc_distr.f
-"check_sc_distr.f", line 30.16: 1513-029 (W) The number of arguments to "gen_side" differs from the number of arguments in a previous reference. You should use the OPTIONAL attribute and an explicit interface to define a procedure with optional arguments.
-** check_sc_distr   === End of Compilation 1 ===
-1501-510  Compilation successful for file check_sc_distr.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -c -o check_bond.o check_bond.f
-** check_bond   === End of Compilation 1 ===
-1501-510  Compilation successful for file check_bond.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -c -o contact.o contact.f
-** contact   === End of Compilation 1 ===
-** contact_fract   === End of Compilation 2 ===
-** contact_fract_nn   === End of Compilation 3 ===
-** hairpin   === End of Compilation 4 ===
-1501-510  Compilation successful for file contact.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -c -o djacob.o djacob.f
-** djacob   === End of Compilation 1 ===
-1501-510  Compilation successful for file djacob.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  eigen.f
-** einvit   === End of Compilation 1 ===
-** elau   === End of Compilation 2 ===
-** epslon   === End of Compilation 3 ===
-** eqlrat   === End of Compilation 4 ===
-** estpi1   === End of Compilation 5 ===
-** etrbk3   === End of Compilation 6 ===
-** etred3   === End of Compilation 7 ===
-** evvrsp   === End of Compilation 8 ===
-** freda   === End of Compilation 9 ===
-** giveis   === End of Compilation 10 ===
-** gldiag   === End of Compilation 11 ===
-** imtqlv   === End of Compilation 12 ===
-** jacdg   === End of Compilation 13 ===
-** jacdia   === End of Compilation 14 ===
-** jacord   === End of Compilation 15 ===
-** tinvtb   === End of Compilation 16 ===
-** tql2   === End of Compilation 17 ===
-** trbk3b   === End of Compilation 18 ===
-** tred3b   === End of Compilation 19 ===
-1501-510  Compilation successful for file eigen.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  blas.f
-** dasum   === End of Compilation 1 ===
-** daxpy   === End of Compilation 2 ===
-** dcopy   === End of Compilation 3 ===
-** ddot   === End of Compilation 4 ===
-** dnrm2   === End of Compilation 5 ===
-** drot   === End of Compilation 6 ===
-** drotg   === End of Compilation 7 ===
-** dscal   === End of Compilation 8 ===
-** dswap   === End of Compilation 9 ===
-** idamax   === End of Compilation 10 ===
-** dgemv   === End of Compilation 11 ===
-1501-510  Compilation successful for file blas.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  add.f
-** abrt   === End of Compilation 1 ===
-** vclr   === End of Compilation 2 ===
-1501-510  Compilation successful for file add.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  entmcm.F
-** entmcm   === End of Compilation 1 ===
-** accepting   === End of Compilation 2 ===
-** read_pool   === End of Compilation 3 ===
-1501-510  Compilation successful for file entmcm.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  minim_mcmf.F
-** minim_mcmf   === End of Compilation 1 ===
-1501-510  Compilation successful for file minim_mcmf.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  together.F
-** together   === End of Compilation 1 ===
-** feedin   === End of Compilation 2 ===
-** getx   === End of Compilation 3 ===
-** putx   === End of Compilation 4 ===
-** putx2   === End of Compilation 5 ===
-** prune_bank   === End of Compilation 6 ===
-** reminimize   === End of Compilation 7 ===
-** send   === End of Compilation 8 ===
-** recv   === End of Compilation 9 ===
-** history_append   === End of Compilation 10 ===
-1501-510  Compilation successful for file together.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  csa.f
-** make_array   === End of Compilation 1 ===
-** make_ranvar   === End of Compilation 2 ===
-** make_ranvar_reg   === End of Compilation 3 ===
-** from_pdb   === End of Compilation 4 ===
-** from_int   === End of Compilation 5 ===
-** dihang_to_c   === End of Compilation 6 ===
-1501-510  Compilation successful for file csa.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  minim_jlee.F
-** minim_jlee   === End of Compilation 1 ===
-** check_var   === End of Compilation 2 ===
-1501-510  Compilation successful for file minim_jlee.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  shift.F
-** csa_read   === End of Compilation 1 ===
-** initial_write   === End of Compilation 2 ===
-** restart_write   === End of Compilation 3 ===
-1501-510  Compilation successful for file shift.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  diff12.f
-** get_diff12   === End of Compilation 1 ===
-1501-510  Compilation successful for file diff12.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  bank.F
-** refresh_bank   === End of Compilation 1 ===
-** replace_bvar   === End of Compilation 2 ===
-** write_rbank   === End of Compilation 3 ===
-** read_rbank   === End of Compilation 4 ===
-** write_bank   === End of Compilation 5 ===
-** write_bank_reminimized   === End of Compilation 6 ===
-** read_bank   === End of Compilation 7 ===
-** write_bank1   === End of Compilation 8 ===
-** save_is   === End of Compilation 9 ===
-** select_is   === End of Compilation 10 ===
-** get_is_ran   === End of Compilation 11 ===
-** get_is   === End of Compilation 12 ===
-** select_iseed_max   === End of Compilation 13 ===
-** select_iseed_min   === End of Compilation 14 ===
-** select_iseed_far   === End of Compilation 15 ===
-** find_min   === End of Compilation 16 ===
-** write_csa_pdb   === End of Compilation 17 ===
-** find_max   === End of Compilation 18 ===
-** get_diff   === End of Compilation 19 ===
-** estimate_cutdif   === End of Compilation 20 ===
-** get_is_max   === End of Compilation 21 ===
-1501-510  Compilation successful for file bank.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  newconf.f
-** make_var   === End of Compilation 1 ===
-** check_old   === End of Compilation 2 ===
-** newconf1rr   === End of Compilation 3 ===
-** newconf1br   === End of Compilation 4 ===
-** newconf1bb   === End of Compilation 5 ===
-** newconf1arr   === End of Compilation 6 ===
-** newconf1abr   === End of Compilation 7 ===
-** newconf1abb   === End of Compilation 8 ===
-** newconf_residue   === End of Compilation 9 ===
-** newconf_copy   === End of Compilation 10 ===
-** newconf_residue_hairpin   === End of Compilation 11 ===
-** gen_hairpin   === End of Compilation 12 ===
-** select_frag   === End of Compilation 13 ===
-1501-510  Compilation successful for file newconf.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  ran.f
-** ran0   === End of Compilation 1 ===
-** ran1   === End of Compilation 2 ===
-** ran2   === End of Compilation 3 ===
-** ran3   === End of Compilation 4 ===
-1501-510  Compilation successful for file ran.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -c -o indexx.o indexx.f
-** indexx   === End of Compilation 1 ===
-1501-510  Compilation successful for file indexx.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  MP.F
-** init_task   === End of Compilation 1 ===
-** finish_task   === End of Compilation 2 ===
-** pattern_receive   === End of Compilation 3 ===
-** pattern_send   === End of Compilation 4 ===
-** send_stop_sig   === End of Compilation 5 ===
-** recv_stop_sig   === End of Compilation 6 ===
-** send_mcm_info   === End of Compilation 7 ===
-** receive_mcm_info   === End of Compilation 8 ===
-** send_thread_results   === End of Compilation 9 ===
-** receive_thread_results   === End of Compilation 10 ===
-1501-510  Compilation successful for file MP.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  compare_s1.F
-** compare_s1   === End of Compilation 1 ===
-1501-510  Compilation successful for file compare_s1.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -c -o prng.o prng.f
-"prng.f", line 54.45: 1513-041 (W) Arguments of the wrong type were specified for the INTRINSIC procedure "ishft".
-** prng_next   === End of Compilation 1 ===
-"prng.f", line 81.44: 1513-041 (W) Arguments of the wrong type were specified for the INTRINSIC procedure "ishft".
-** vprng   === End of Compilation 2 ===
-** prng_chkpnt   === End of Compilation 3 ===
-** prng_restart   === End of Compilation 4 ===
-** prngblk   === End of Compilation 5 ===
-1501-510  Compilation successful for file prng.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  test.F
-** test   === End of Compilation 1 ===
-** test_n16   === End of Compilation 2 ===
-** test_local   === End of Compilation 3 ===
-** test_sc   === End of Compilation 4 ===
-** bgrow   === End of Compilation 5 ===
-** test11   === End of Compilation 6 ===
-** test3   === End of Compilation 7 ===
-** test__   === End of Compilation 8 ===
-** secondary   === End of Compilation 9 ===
-** write_pdb   === End of Compilation 10 ===
-** contact_cp2   === End of Compilation 11 ===
-** contact_cp   === End of Compilation 12 ===
-** contact_cp_min   === End of Compilation 13 ===
-** softreg   === End of Compilation 14 ===
-** beta_slide   === End of Compilation 15 ===
-** beta_zip   === End of Compilation 16 ===
-1501-510  Compilation successful for file test.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -c -o banach.o banach.f
-** banach   === End of Compilation 1 ===
-** banaii   === End of Compilation 2 ===
-** matinvert   === End of Compilation 3 ===
-1501-510  Compilation successful for file banach.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -c -o distfit.o distfit.f
-** distfit   === End of Compilation 1 ===
-** rdif   === End of Compilation 2 ===
-** rderiv   === End of Compilation 3 ===
-** heval   === End of Compilation 4 ===
-** vec   === End of Compilation 5 ===
-** transfer   === End of Compilation 6 ===
-1501-510  Compilation successful for file distfit.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  rmsd.F
-** rms_nac_nnc   === End of Compilation 1 ===
-** rmsd   === End of Compilation 2 ===
-** rmsd_csa   === End of Compilation 3 ===
-1501-510  Compilation successful for file rmsd.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -c -o elecont.o elecont.f
-** elecont   === End of Compilation 1 ===
-** secondary2   === End of Compilation 2 ===
-** freeres   === End of Compilation 3 ===
-1501-510  Compilation successful for file elecont.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  dihed_cons.F
-** secstrp2dihc   === End of Compilation 1 ===
-** read_secstr_pred   === End of Compilation 2 ===
-1501-510  Compilation successful for file dihed_cons.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  sc_move.F
-** sc_move   === End of Compilation 1 ===
-** single_sc_move   === End of Compilation 2 ===
-** sc_minimize   === End of Compilation 3 ===
-** minimize_sc1   === End of Compilation 4 ===
-** func_restr1   === End of Compilation 5 ===
-** grad_restr1   === End of Compilation 6 ===
-** egb1   === End of Compilation 7 ===
-1501-510  Compilation successful for file sc_move.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -c -o local_move.o local_move.f
-** local_move_init   === End of Compilation 1 ===
-** local_move   === End of Compilation 2 ===
-** output_tabs   === End of Compilation 3 ===
-** angles2tab   === End of Compilation 4 ===
-** minmax_angles   === End of Compilation 5 ===
-** construct_tab   === End of Compilation 6 ===
-** construct_ranges   === End of Compilation 7 ===
-** fix_no_moves   === End of Compilation 8 ===
-** move_res   === End of Compilation 9 ===
-** loc_test   === End of Compilation 10 ===
-1501-510  Compilation successful for file local_move.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  intcartderiv.F
-** intcartderiv   === End of Compilation 1 ===
-** checkintcartgrad   === End of Compilation 2 ===
-** chainbuild_cart   === End of Compilation 3 ===
-1501-510  Compilation successful for file intcartderiv.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  lagrangian_lesyng.F
-** lagrangian   === End of Compilation 1 ===
-** setup_md_matrices   === End of Compilation 2 ===
-** eigout   === End of Compilation 3 ===
-** matout   === End of Compilation 4 ===
-** matout1   === End of Compilation 5 ===
-** matout2   === End of Compilation 6 ===
-** ginv_mult   === End of Compilation 7 ===
-** fricmat_mult   === End of Compilation 8 ===
-1501-510  Compilation successful for file lagrangian_lesyng.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  stochfric.F
-** friction_force   === End of Compilation 1 ===
-** stochastic_force   === End of Compilation 2 ===
-** setup_fricmat   === End of Compilation 3 ===
-** sdarea   === End of Compilation 4 ===
-1501-510  Compilation successful for file stochfric.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -c -o kinetic_lesyng.o kinetic_lesyng.f
-** kinetic   === End of Compilation 1 ===
-1501-510  Compilation successful for file kinetic_lesyng.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  MD_A-MTS.F
-** md   === End of Compilation 1 ===
-** velverlet_step   === End of Compilation 2 ===
-** respa_step   === End of Compilation 3 ===
-** respa_vel   === End of Compilation 4 ===
-** verlet1   === End of Compilation 5 ===
-** verlet2   === End of Compilation 6 ===
-** sddir_precalc   === End of Compilation 7 ===
-** sddir_verlet1   === End of Compilation 8 ===
-** sddir_verlet2   === End of Compilation 9 ===
-** max_accel   === End of Compilation 10 ===
-** predict_edrift   === End of Compilation 11 ===
-** verlet_bath   === End of Compilation 12 ===
-** init_md   === End of Compilation 13 ===
-** random_vel   === End of Compilation 14 ===
-1501-510  Compilation successful for file MD_A-MTS.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -c -o moments.o moments.f
-** inertia_tensor   === End of Compilation 1 ===
-** angmom   === End of Compilation 2 ===
-** vcm_vel   === End of Compilation 3 ===
-1501-510  Compilation successful for file moments.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -c -o int_to_cart.o int_to_cart.f
-** int_to_cart   === End of Compilation 1 ===
-1501-510  Compilation successful for file int_to_cart.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -c -o surfatom.o surfatom.f
-** surfatom   === End of Compilation 1 ===
-1501-510  Compilation successful for file surfatom.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -c -o sort.o sort.f
-** sort   === End of Compilation 1 ===
-** sort2   === End of Compilation 2 ===
-** sort3   === End of Compilation 3 ===
-** sort4   === End of Compilation 4 ===
-** sort5   === End of Compilation 5 ===
-** sort6   === End of Compilation 6 ===
-** sort7   === End of Compilation 7 ===
-** sort8   === End of Compilation 8 ===
-** sort9   === End of Compilation 9 ===
-1501-510  Compilation successful for file sort.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -c -o muca_md.o muca_md.f
-** muca_delta   === End of Compilation 1 ===
-** muca_ene   === End of Compilation 2 ===
-** read_muca   === End of Compilation 3 ===
-** print_muca   === End of Compilation 4 ===
-** muca_update   === End of Compilation 5 ===
-** muca_factor   === End of Compilation 6 ===
-** spline   === End of Compilation 7 ===
-** splint   === End of Compilation 8 ===
-1501-510  Compilation successful for file muca_md.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  MREMD.F
-** mremd   === End of Compilation 1 ===
-** write1rst   === End of Compilation 2 ===
-** write1traj   === End of Compilation 3 ===
-** read1restart   === End of Compilation 4 ===
-** read1restart_old   === End of Compilation 5 ===
-1501-510  Compilation successful for file MREMD.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  rattle.F
-** rattle1   === End of Compilation 1 ===
-** rattle2   === End of Compilation 2 ===
-** rattle_brown   === End of Compilation 3 ===
-1501-510  Compilation successful for file rattle.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -c -o gauss.o gauss.f
-** gauss   === End of Compilation 1 ===
-1501-510  Compilation successful for file gauss.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  energy_split-sep.F
-** etotal_long   === End of Compilation 1 ===
-** etotal_short   === End of Compilation 2 ===
-1501-510  Compilation successful for file energy_split-sep.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -WF,-DAIX -WF,-DISNAN -WF,-DUNRES -WF,-DMP -WF,-DMPI -WF,-DPGI -WF,-DSPLITELE -WF,-DPROCOR -WF,-DAMD64 -WF,-DLANG0  q_measure.F
-** qwolynes   === End of Compilation 1 ===
-** qwolynes_prim   === End of Compilation 2 ===
-** qwol_num   === End of Compilation 3 ===
-** econstrq   === End of Compilation 4 ===
-** deconstrq_num   === End of Compilation 5 ===
-1501-510  Compilation successful for file q_measure.F.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include  -c -o gnmr1.o gnmr1.f
-** gnmr1   === End of Compilation 1 ===
-** gnmr1prim   === End of Compilation 2 ===
-** harmonic   === End of Compilation 3 ===
-** harmonicprim   === End of Compilation 4 ===
-1501-510  Compilation successful for file gnmr1.f.
-cc -o compinfo compinfo.c
-./compinfo | true
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -c -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace -I/include cinfo.f
-** cinfo   === End of Compilation 1 ===
-1501-510  Compilation successful for file cinfo.f.
-/bgsys/drivers/ppcfloor/comm/bin/mpixlf77 -O0 -C -g -qarch=450 -qtune=450 -qdebug=function_trace unres.o arcos.o cartprint.o chainbuild.o convert.o initialize_p.o matmult.o readrtns_CSA.o parmread.o gen_rand_conf.o printmat.o map.o pinorm.o randgens.o rescode.o intcor.o timing.o misc.o intlocal.o cartder.o checkder_p.o econstr_local.o energy_p_new.o energy_p_new-sep.o gradient_p.o minimize_p.o sumsld.o cored.o rmdd.o geomout.o readpdb.o regularize.o thread.o fitsq.o mcm.o mc.o bond_move.o refsys.o check_sc_distr.o check_bond.o contact.o djacob.o eigen.o blas.o add.o entmcm.o minim_mcmf.o together.o csa.o minim_jlee.o shift.o diff12.o bank.o newconf.o ran.o indexx.o MP.o compare_s1.o prng.o test.o banach.o distfit.o rmsd.o elecont.o dihed_cons.o sc_move.o local_move.o intcartderiv.o lagrangian_lesyng.o stochfric.o kinetic_lesyng.o MD_A-MTS.o moments.o int_to_cart.o surfatom.o sort.o muca_md.o MREMD.o rattle.o gauss.o energy_split-sep.o q_measure.o gnmr1.o cinfo.o xdrf/libxdrf.a  -o ../bin/unres_MD_Tc_procor-newparm-O4-notau1.exe
-unres.o: In function `_main':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/unres.F:53: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/unres.F:167: undefined reference to `__func_trace_exit'
-unres.o: In function `exec_md':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/unres.F:169: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/unres.F:182: undefined reference to `__func_trace_exit'
-unres.o: In function `exec_mremd':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/unres.F:184: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/unres.F:207: undefined reference to `__func_trace_exit'
-unres.o: In function `exec_eeval_or_minim':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/unres.F:209: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/unres.F:310: undefined reference to `__func_trace_exit'
-unres.o: In function `exec_regularize':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/unres.F:312: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/unres.F:350: undefined reference to `__func_trace_exit'
-unres.o: In function `exec_thread':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/unres.F:352: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/unres.F:360: undefined reference to `__func_trace_exit'
-unres.o: In function `exec_mc':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/unres.F:362: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/unres.F:391: undefined reference to `__func_trace_exit'
-unres.o: In function `exec_mult_eeval_or_minim':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/unres.F:393: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/unres.F:688: undefined reference to `__func_trace_exit'
-unres.o: In function `exec_checkgrad':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/unres.F:690: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/unres.F:754: undefined reference to `__func_trace_exit'
-unres.o: In function `exec_map':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/unres.F:756: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/unres.F:761: undefined reference to `__func_trace_exit'
-unres.o: In function `exec_csa':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/unres.F:763: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/unres.F:777: undefined reference to `__func_trace_exit'
-unres.o: In function `exec_softreg':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/unres.F:779: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/unres.F:804: undefined reference to `__func_trace_exit'
-arcos.o: In function `arcos':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/arcos.f:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/arcos.f:6: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/arcos.f:8: undefined reference to `__func_trace_exit'
-cartprint.o: In function `cartprint':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cartprint.f:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cartprint.f:19: undefined reference to `__func_trace_exit'
-chainbuild.o: In function `chainbuild':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/chainbuild.F:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/chainbuild.F:64: undefined reference to `__func_trace_exit'
-chainbuild.o: In function `orig_frame':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/chainbuild.F:66: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/chainbuild.F:134: undefined reference to `__func_trace_exit'
-chainbuild.o: In function `locate_next_res':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/chainbuild.F:136: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/chainbuild.F:207: undefined reference to `__func_trace_exit'
-chainbuild.o: In function `locate_side_chain':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/chainbuild.F:209: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/chainbuild.F:274: undefined reference to `__func_trace_exit'
-convert.o: In function `geom_to_var':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/convert.f:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/convert.f:37: undefined reference to `__func_trace_exit'
-convert.o: In function `var_to_geom':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/convert.f:39: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/convert.f:69: undefined reference to `__func_trace_exit'
-convert.o: In function `convert_side':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/convert.f:71: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/convert.f:83: undefined reference to `__func_trace_exit'
-convert.o: In function `reduce':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/convert.f:86: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/convert.f:112: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/convert.f:151: undefined reference to `__func_trace_exit'
-convert.o: In function `thetnorm':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/convert.f:154: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/convert.f:163: undefined reference to `__func_trace_exit'
-convert.o: In function `var_to_geom_restr':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/convert.f:166: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/convert.f:195: undefined reference to `__func_trace_exit'
-initialize_p.o: In function `(block data)_(block)':
-(.text+0x2c): undefined reference to `__func_trace_enter'
-initialize_p.o: In function `(block data)_(block)':
-(.text+0x40): undefined reference to `__func_trace_exit'
-initialize_p.o: In function `initialize':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/initialize_p.F:13: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/initialize_p.F:246: undefined reference to `__func_trace_exit'
-initialize_p.o: In function `(block data)_nazwy':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/initialize_p.F:246: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/initialize_p.F:246: undefined reference to `__func_trace_exit'
-initialize_p.o: In function `init_int_table':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/initialize_p.F:274: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/initialize_p.F:818: undefined reference to `__func_trace_exit'
-initialize_p.o: In function `int_bounds':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/initialize_p.F:821: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/initialize_p.F:843: undefined reference to `__func_trace_exit'
-initialize_p.o: In function `int_bounds1':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/initialize_p.F:845: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/initialize_p.F:867: undefined reference to `__func_trace_exit'
-initialize_p.o: In function `int_partition':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/initialize_p.F:869: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/initialize_p.F:900: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/initialize_p.F:906: undefined reference to `__func_trace_exit'
-initialize_p.o: In function `hpb_partition':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/initialize_p.F:910: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/initialize_p.F:930: undefined reference to `__func_trace_exit'
-matmult.o: In function `matmult':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/matmult.f:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/matmult.f:18: undefined reference to `__func_trace_exit'
-readrtns_CSA.o: In function `readrtns':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:54: undefined reference to `__func_trace_exit'
-readrtns_CSA.o: In function `read_control':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:56: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:219: undefined reference to `__func_trace_exit'
-readrtns_CSA.o: In function `read_remdpar':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:221: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:299: undefined reference to `__func_trace_exit'
-readrtns_CSA.o: In function `read_mdpar':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:301: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:501: undefined reference to `__func_trace_exit'
-readrtns_CSA.o: In function `molread':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:503: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:1070: undefined reference to `__func_trace_exit'
-readrtns_CSA.o: In function `seq_comp':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:1072: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:1079: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:1083: undefined reference to `__func_trace_exit'
-readrtns_CSA.o: In function `read_bridge':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:1086: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:1170: undefined reference to `__func_trace_exit'
-readrtns_CSA.o: In function `read_x':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:1172: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:1207: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:1208: undefined reference to `__func_trace_exit'
-readrtns_CSA.o: In function `read_threadbase':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:1211: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:1254: undefined reference to `__func_trace_exit'
-readrtns_CSA.o: In function `setup_var':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:1256: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:1294: undefined reference to `__func_trace_exit'
-readrtns_CSA.o: In function `gen_dist_constr':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:1296: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:1347: undefined reference to `__func_trace_exit'
-readrtns_CSA.o: In function `map_read':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:1349: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:1393: undefined reference to `__func_trace_exit'
-readrtns_CSA.o: In function `csaread':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:1395: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:1456: undefined reference to `__func_trace_exit'
-readrtns_CSA.o: In function `mcmread':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:1558: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:1622: undefined reference to `__func_trace_exit'
-readrtns_CSA.o: In function `read_minim':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:1624: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:1645: undefined reference to `__func_trace_exit'
-readrtns_CSA.o: In function `read_angles':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:1647: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:1671: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:1672: undefined reference to `__func_trace_exit'
-readrtns_CSA.o: In function `reada':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:1675: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:1691: undefined reference to `__func_trace_exit'
-readrtns_CSA.o: In function `readi':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:1693: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:1709: undefined reference to `__func_trace_exit'
-readrtns_CSA.o: In function `multreadi':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:1711: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:1727: undefined reference to `__func_trace_exit'
-readrtns_CSA.o: In function `multreada':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:1729: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:1745: undefined reference to `__func_trace_exit'
-readrtns_CSA.o: In function `openunits':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:1747: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:2074: undefined reference to `__func_trace_exit'
-readrtns_CSA.o: In function `card_concat':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:2076: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:2093: undefined reference to `__func_trace_exit'
-readrtns_CSA.o: In function `readrst':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:2095: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:2114: undefined reference to `__func_trace_exit'
-readrtns_CSA.o: In function `read_fragments':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:2116: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:2157: undefined reference to `__func_trace_exit'
-readrtns_CSA.o: In function `read_dist_constr':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:2159: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:2267: undefined reference to `__func_trace_exit'
-readrtns_CSA.o: In function `flush':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:2275: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:2278: undefined reference to `__func_trace_exit'
-readrtns_CSA.o: In function `copy_to_tmp':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:2281: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:2298: undefined reference to `__func_trace_exit'
-readrtns_CSA.o: In function `move_from_tmp':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:2300: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:2311: undefined reference to `__func_trace_exit'
-readrtns_CSA.o: In function `random_init':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:2313: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readrtns_CSA.F:2397: undefined reference to `__func_trace_exit'
-parmread.o: In function `parmread':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/parmread.F:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/parmread.F:907: undefined reference to `__func_trace_exit'
-parmread.o: In function `getenv_loc':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/parmread.F:910: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/parmread.F:953: undefined reference to `__func_trace_exit'
-gen_rand_conf.o: In function `gen_rand_conf':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gen_rand_conf.F:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gen_rand_conf.F:30: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gen_rand_conf.F:55: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gen_rand_conf.F:74: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gen_rand_conf.F:86: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gen_rand_conf.F:103: undefined reference to `__func_trace_exit'
-gen_rand_conf.o:/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gen_rand_conf.F:118: more undefined references to `__func_trace_exit' follow
-gen_rand_conf.o: In function `overlap':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gen_rand_conf.F:127: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gen_rand_conf.F:136: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gen_rand_conf.F:152: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gen_rand_conf.F:167: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gen_rand_conf.F:180: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gen_rand_conf.F:197: undefined reference to `__func_trace_exit'
-gen_rand_conf.o:/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gen_rand_conf.F:201: more undefined references to `__func_trace_exit' follow
-gen_rand_conf.o: In function `gen_phi':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gen_rand_conf.F:204: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gen_rand_conf.F:212: undefined reference to `__func_trace_exit'
-gen_rand_conf.o: In function `gen_theta':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gen_rand_conf.F:215: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gen_rand_conf.F:257: undefined reference to `__func_trace_exit'
-gen_rand_conf.o: In function `gen_side':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gen_rand_conf.F:260: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gen_rand_conf.F:535: undefined reference to `__func_trace_exit'
-gen_rand_conf.o: In function `ran_number':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gen_rand_conf.F:537: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gen_rand_conf.F:551: undefined reference to `__func_trace_exit'
-gen_rand_conf.o: In function `iran_num':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gen_rand_conf.F:554: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gen_rand_conf.F:573: undefined reference to `__func_trace_exit'
-gen_rand_conf.o: In function `binorm':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gen_rand_conf.F:576: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gen_rand_conf.F:589: undefined reference to `__func_trace_exit'
-gen_rand_conf.o: In function `anorm_distr':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gen_rand_conf.F:592: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gen_rand_conf.F:601: undefined reference to `__func_trace_exit'
-gen_rand_conf.o: In function `mult_norm':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gen_rand_conf.F:604: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gen_rand_conf.F:658: undefined reference to `__func_trace_exit'
-gen_rand_conf.o: In function `mult_norm1':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gen_rand_conf.F:660: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gen_rand_conf.F:724: undefined reference to `__func_trace_exit'
-gen_rand_conf.o: In function `overlap_sc':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gen_rand_conf.F:727: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gen_rand_conf.F:795: undefined reference to `__func_trace_exit'
-gen_rand_conf.o: In function `overlap_sc_list':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gen_rand_conf.F:797: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gen_rand_conf.F:885: undefined reference to `__func_trace_exit'
-printmat.o: In function `printmat':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/printmat.f:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/printmat.f:16: undefined reference to `__func_trace_exit'
-map.o: In function `map':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/map.f:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/map.f:89: undefined reference to `__func_trace_exit'
-pinorm.o: In function `pinorm':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/pinorm.f:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/pinorm.f:16: undefined reference to `__func_trace_exit'
-randgens.o: In function `vrnd':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/randgens.f:9: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/randgens.f:26: undefined reference to `__func_trace_exit'
-randgens.o: In function `rndv':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/randgens.f:29: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/randgens.f:57: undefined reference to `__func_trace_exit'
-randgens.o: In function `vrndst':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/randgens.f:61: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/randgens.f:72: undefined reference to `__func_trace_exit'
-randgens.o: In function `vrndin':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/randgens.f:75: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/randgens.f:80: undefined reference to `__func_trace_exit'
-randgens.o: In function `vrndou':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/randgens.f:83: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/randgens.f:89: undefined reference to `__func_trace_exit'
-randgens.o: In function `rnunf':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/randgens.f:90: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/randgens.f:98: undefined reference to `__func_trace_exit'
-rescode.o: In function `rescode':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/rescode.f:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/rescode.f:13: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/rescode.f:22: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/rescode.f:31: undefined reference to `__func_trace_exit'
-intcor.o: In function `alpha':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/intcor.f:4: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/intcor.f:22: undefined reference to `__func_trace_exit'
-intcor.o: In function `beta':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/intcor.f:27: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/intcor.f:72: undefined reference to `__func_trace_exit'
-intcor.o: In function `dist':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/intcor.f:77: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/intcor.f:89: undefined reference to `__func_trace_exit'
-timing.o: In function `set_timers':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/timing.F:6: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/timing.F:45: undefined reference to `__func_trace_exit'
-timing.o: In function `stopx':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/timing.F:47: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/timing.F:127: undefined reference to `__func_trace_exit'
-timing.o: In function `ovrtim':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/timing.F:130: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/timing.F:152: undefined reference to `__func_trace_exit'
-timing.o: In function `tcpu':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/timing.F:155: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/timing.F:241: undefined reference to `__func_trace_exit'
-timing.o: In function `dajczas':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/timing.F:244: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/timing.F:262: undefined reference to `__func_trace_exit'
-misc.o: In function `find_arg':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/misc.f:6: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/misc.f:29: undefined reference to `__func_trace_exit'
-misc.o: In function `find_group':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/misc.f:31: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/misc.f:45: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/misc.f:47: undefined reference to `__func_trace_exit'
-misc.o: In function `iblnk':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/misc.f:49: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/misc.f:54: undefined reference to `__func_trace_exit'
-misc.o: In function `ilen':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/misc.f:56: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/misc.f:67: undefined reference to `__func_trace_exit'
-misc.o: In function `in_keywd_set':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/misc.f:69: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/misc.f:76: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/misc.f:81: undefined reference to `__func_trace_exit'
-misc.o: In function `lcase':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/misc.f:83: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/misc.f:106: undefined reference to `__func_trace_exit'
-misc.o: In function `lcom':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/misc.f:107: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/misc.f:114: undefined reference to `__func_trace_exit'
-misc.o: In function `lower_case':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/misc.f:116: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/misc.f:119: undefined reference to `__func_trace_exit'
-misc.o: In function `mykey':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/misc.f:121: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/misc.f:161: undefined reference to `__func_trace_exit'
-misc.o: In function `numstr':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/misc.f:162: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/misc.f:179: undefined reference to `__func_trace_exit'
-misc.o: In function `ucase':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/misc.f:180: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/misc.f:203: undefined reference to `__func_trace_exit'
-intlocal.o: In function `integral':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/intlocal.f:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/intlocal.f:59: undefined reference to `__func_trace_exit'
-intlocal.o: In function `integral3':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/intlocal.f:61: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/intlocal.f:149: undefined reference to `__func_trace_exit'
-intlocal.o: In function `integral5':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/intlocal.f:151: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/intlocal.f:226: undefined reference to `__func_trace_exit'
-intlocal.o: In function `integral_turn6':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/intlocal.f:228: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/intlocal.f:281: undefined reference to `__func_trace_exit'
-intlocal.o: In function `integral6':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/intlocal.f:283: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/intlocal.f:374: undefined reference to `__func_trace_exit'
-intlocal.o: In function `integral3a':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/intlocal.f:376: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/intlocal.f:423: undefined reference to `__func_trace_exit'
-intlocal.o: In function `integral4a':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/intlocal.f:425: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/intlocal.f:476: undefined reference to `__func_trace_exit'
-intlocal.o: In function `elocal':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/intlocal.f:478: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/intlocal.f:503: undefined reference to `__func_trace_exit'
-intlocal.o: In function `ele':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/intlocal.f:506: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/intlocal.f:516: undefined reference to `__func_trace_exit'
-cartder.o: In function `cartder':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cartder.F:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cartder.F:313: undefined reference to `__func_trace_exit'
-checkder_p.o: In function `check_cartgrad':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/checkder_p.F:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/checkder_p.F:172: undefined reference to `__func_trace_exit'
-checkder_p.o: In function `check_ecart':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/checkder_p.F:174: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/checkder_p.F:249: undefined reference to `__func_trace_exit'
-checkder_p.o: In function `check_ecartint':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/checkder_p.F:251: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/checkder_p.F:397: undefined reference to `__func_trace_exit'
-checkder_p.o: In function `int_from_cart1':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/checkder_p.F:399: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/checkder_p.F:514: undefined reference to `__func_trace_exit'
-checkder_p.o: In function `check_eint':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/checkder_p.F:516: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/checkder_p.F:599: undefined reference to `__func_trace_exit'
-econstr_local.o: In function `econstr_back':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/econstr_local.F:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/econstr_local.F:91: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `etotal':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:287: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `sum_energy':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:289: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:401: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `sum_gradient':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:403: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:696: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `rescale_weights':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:698: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:752: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `enerprint':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:754: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:856: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `elj':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:858: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:1010: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `eljk':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:1012: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:1092: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `ebp':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:1094: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:1213: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `egb':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:1215: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:1357: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `egbv':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:1359: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:1481: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `sc_angular':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:1483: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:1549: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `sc_grad':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:1551: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:1605: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `e_softsphere':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:1607: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:1680: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `eelec_soft_sphere':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:1682: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:1771: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `vec_and_deriv':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:1773: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:1953: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `check_vecgrad':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:1955: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:2037: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `set_matrices':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:2039: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:2511: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `eelec':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:2513: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:2672: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `eelecij':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:2674: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:3312: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `eturn3':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:3314: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:3412: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `eturn4':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:3414: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:3587: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `vecpr':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:3589: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:3596: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `unormderiv':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:3598: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:3620: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `escp_soft_sphere':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:3622: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:3711: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `escp':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:3713: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:3825: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `edis':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:3827: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:3897: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `ssbond_ene':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:3899: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:3981: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `ebond':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:3983: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:4059: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `ebend':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:4275: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:4460: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `esc':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:4753: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:5070: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `enesc':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:5072: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:5107: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `gcont':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:5111: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:5142: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `splinthet':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:5144: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:5158: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `spline1':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:5160: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:5173: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `spline2':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:5175: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:5187: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `etor':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:5287: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:5378: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `etor_d':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:5380: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:5445: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `eback_sc_corr':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:5448: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:5496: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `multibody':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:5498: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:5554: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `esccorr':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:5556: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:5592: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `pack_buffer':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:5596: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:5621: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `unpack_buffer':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:5623: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:5650: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `multibody_hb':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:5653: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:5845: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `multibody_eello':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:5847: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:6104: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `ehbcorr':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:6106: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:6171: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `calc_eello':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:6237: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:6569: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `kernel':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:6571: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:6615: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `eello4':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:6617: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:6728: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `eello5':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:6731: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:7114: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `eello6':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:7117: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:7248: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `eello6_graph1':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:7251: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:7352: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `eello6_graph2':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:7355: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:7537: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `eello6_graph3':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:7540: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:7651: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `eello6_graph4':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:7654: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:7895: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `eello_turn6':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:7898: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:8216: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `scalar':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:8220: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:8236: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `matvec2':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:8239: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:8259: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `matmat2':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:8261: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:8287: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `scalar2':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:8290: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:8297: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `transpose2':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:8302: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:8314: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `transpose':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:8316: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:8326: undefined reference to `__func_trace_exit'
-energy_p_new.o: In function `prodmat3':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:8328: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new.F:8374: undefined reference to `__func_trace_exit'
-energy_p_new-sep.o: In function `sscale':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new-sep.F:2: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new-sep.F:13: undefined reference to `__func_trace_exit'
-energy_p_new-sep.o: In function `elj_long':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new-sep.F:16: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new-sep.F:100: undefined reference to `__func_trace_exit'
-energy_p_new-sep.o: In function `elj_short':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new-sep.F:102: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new-sep.F:186: undefined reference to `__func_trace_exit'
-energy_p_new-sep.o: In function `eljk_long':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new-sep.F:188: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new-sep.F:274: undefined reference to `__func_trace_exit'
-energy_p_new-sep.o: In function `eljk_short':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new-sep.F:276: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new-sep.F:362: undefined reference to `__func_trace_exit'
-energy_p_new-sep.o: In function `ebp_long':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new-sep.F:364: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new-sep.F:490: undefined reference to `__func_trace_exit'
-energy_p_new-sep.o: In function `ebp_short':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new-sep.F:492: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new-sep.F:618: undefined reference to `__func_trace_exit'
-energy_p_new-sep.o: In function `egb_long':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new-sep.F:620: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new-sep.F:771: undefined reference to `__func_trace_exit'
-energy_p_new-sep.o: In function `egb_short':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new-sep.F:773: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new-sep.F:923: undefined reference to `__func_trace_exit'
-energy_p_new-sep.o: In function `egbv_long':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new-sep.F:925: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new-sep.F:1055: undefined reference to `__func_trace_exit'
-energy_p_new-sep.o: In function `egbv_short':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new-sep.F:1057: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new-sep.F:1187: undefined reference to `__func_trace_exit'
-energy_p_new-sep.o: In function `sc_grad_scale':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new-sep.F:1189: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new-sep.F:1240: undefined reference to `__func_trace_exit'
-energy_p_new-sep.o: In function `eelec_scale':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new-sep.F:1242: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new-sep.F:1392: undefined reference to `__func_trace_exit'
-energy_p_new-sep.o: In function `eelecij_scale':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new-sep.F:1394: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new-sep.F:2075: undefined reference to `__func_trace_exit'
-energy_p_new-sep.o: In function `evdwpp_long':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new-sep.F:2077: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new-sep.F:2174: undefined reference to `__func_trace_exit'
-energy_p_new-sep.o: In function `evdwpp_short':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new-sep.F:2176: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new-sep.F:2273: undefined reference to `__func_trace_exit'
-energy_p_new-sep.o: In function `escp_long':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new-sep.F:2275: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new-sep.F:2389: undefined reference to `__func_trace_exit'
-energy_p_new-sep.o: In function `escp_short':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new-sep.F:2391: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_p_new-sep.F:2505: undefined reference to `__func_trace_exit'
-gradient_p.o: In function `gradient':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gradient_p.F:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gradient_p.F:100: undefined reference to `__func_trace_exit'
-gradient_p.o: In function `grad_restr':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gradient_p.F:102: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gradient_p.F:250: undefined reference to `__func_trace_exit'
-gradient_p.o: In function `cartgrad':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gradient_p.F:252: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gradient_p.F:319: undefined reference to `__func_trace_exit'
-gradient_p.o: In function `zerograd':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gradient_p.F:321: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gradient_p.F:389: undefined reference to `__func_trace_exit'
-gradient_p.o: In function `fdum':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gradient_p.F:391: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gradient_p.F:393: undefined reference to `__func_trace_exit'
-minimize_p.o: In function `minimize':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/minimize_p.F:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/minimize_p.F:117: undefined reference to `__func_trace_exit'
-minimize_p.o: In function `ergastulum':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/minimize_p.F:120: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/minimize_p.F:223: undefined reference to `__func_trace_exit'
-minimize_p.o: In function `func':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/minimize_p.F:226: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/minimize_p.F:259: undefined reference to `__func_trace_exit'
-minimize_p.o: In function `func_restr':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/minimize_p.F:261: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/minimize_p.F:293: undefined reference to `__func_trace_exit'
-minimize_p.o: In function `x2xx':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/minimize_p.F:295: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/minimize_p.F:340: undefined reference to `__func_trace_exit'
-minimize_p.o: In function `xx2x':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/minimize_p.F:342: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/minimize_p.F:385: undefined reference to `__func_trace_exit'
-minimize_p.o: In function `minim_dc':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/minimize_p.F:388: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/minimize_p.F:505: undefined reference to `__func_trace_exit'
-minimize_p.o: In function `func_dc':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/minimize_p.F:507: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/minimize_p.F:553: undefined reference to `__func_trace_exit'
-minimize_p.o: In function `grad_dc':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/minimize_p.F:555: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/minimize_p.F:625: undefined reference to `__func_trace_exit'
-sumsld.o: In function `sumsl':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sumsld.f:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sumsld.f:479: undefined reference to `__func_trace_exit'
-sumsld.o: In function `sumit':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sumsld.f:480: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sumsld.f:927: undefined reference to `__func_trace_exit'
-sumsld.o: In function `dbdog':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sumsld.f:928: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sumsld.f:1136: undefined reference to `__func_trace_exit'
-sumsld.o: In function `ltvmul':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sumsld.f:1137: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sumsld.f:1167: undefined reference to `__func_trace_exit'
-sumsld.o: In function `lupdat':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sumsld.f:1168: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sumsld.f:1310: undefined reference to `__func_trace_exit'
-sumsld.o: In function `lvmul':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sumsld.f:1311: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sumsld.f:1343: undefined reference to `__func_trace_exit'
-sumsld.o: In function `vvmulp':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sumsld.f:1344: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sumsld.f:1361: undefined reference to `__func_trace_exit'
-sumsld.o: In function `wzbfgs':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sumsld.f:1362: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sumsld.f:1446: undefined reference to `__func_trace_exit'
-cored.o: In function `assst':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:514: undefined reference to `__func_trace_exit'
-cored.o: In function `deflt':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:515: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:627: undefined reference to `__func_trace_exit'
-cored.o: In function `dotprd':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:628: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:666: undefined reference to `__func_trace_exit'
-cored.o: In function `itsum':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:669: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:929: undefined reference to `__func_trace_exit'
-cored.o: In function `litvmu':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:930: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:966: undefined reference to `__func_trace_exit'
-cored.o: In function `livmul':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:967: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:1002: undefined reference to `__func_trace_exit'
-cored.o: In function `parck':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:1003: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:1328: undefined reference to `__func_trace_exit'
-cored.o: In function `reldst':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:1329: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:1357: undefined reference to `__func_trace_exit'
-cored.o: In function `vaxpy':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:1383: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:1395: undefined reference to `__func_trace_exit'
-cored.o: In function `vcopy':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:1396: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:1408: undefined reference to `__func_trace_exit'
-cored.o: In function `vdflt':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:1409: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:1514: undefined reference to `__func_trace_exit'
-cored.o: In function `vscopy':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:1515: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:1527: undefined reference to `__func_trace_exit'
-cored.o: In function `v2norm':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:1528: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:1586: undefined reference to `__func_trace_exit'
-cored.o: In function `humsl':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:1589: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:1728: undefined reference to `__func_trace_exit'
-cored.o: In function `humit':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:1729: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:2177: undefined reference to `__func_trace_exit'
-cored.o: In function `dupdu':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:2178: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:2225: undefined reference to `__func_trace_exit'
-cored.o: In function `gqtst':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:2226: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:2852: undefined reference to `__func_trace_exit'
-cored.o: In function `lsqrt':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:2853: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:2922: undefined reference to `__func_trace_exit'
-cored.o: In function `lsvmin':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:2923: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:3102: undefined reference to `__func_trace_exit'
-cored.o: In function `slvmul':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:3105: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cored.f:3151: undefined reference to `__func_trace_exit'
-rmdd.o: In function `imdcon':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/rmdd.f:4: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/rmdd.f:29: undefined reference to `__func_trace_exit'
-rmdd.o: In function `rmdcon':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/rmdd.f:32: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/rmdd.f:157: undefined reference to `__func_trace_exit'
-geomout.o: In function `pdbout':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/geomout.F:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/geomout.F:120: undefined reference to `__func_trace_exit'
-geomout.o: In function `mol2out':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/geomout.F:122: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/geomout.F:177: undefined reference to `__func_trace_exit'
-geomout.o: In function `intout':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/geomout.F:179: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/geomout.F:199: undefined reference to `__func_trace_exit'
-geomout.o: In function `briefout':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/geomout.F:201: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/geomout.F:236: undefined reference to `__func_trace_exit'
-geomout.o: In function `cartoutx':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/geomout.F:248: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/geomout.F:277: undefined reference to `__func_trace_exit'
-geomout.o: In function `cartout':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/geomout.F:280: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/geomout.F:371: undefined reference to `__func_trace_exit'
-geomout.o: In function `statout':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/geomout.F:374: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/geomout.F:443: undefined reference to `__func_trace_exit'
-geomout.o: In function `gyrate':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/geomout.F:445: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/geomout.F:471: undefined reference to `__func_trace_exit'
-readpdb.o: In function `readpdb':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readpdb.f:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readpdb.f:192: undefined reference to `__func_trace_exit'
-readpdb.o: In function `int_from_cart':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readpdb.f:194: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readpdb.f:285: undefined reference to `__func_trace_exit'
-readpdb.o: In function `sc_loc_geom':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readpdb.f:287: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readpdb.f:374: undefined reference to `__func_trace_exit'
-readpdb.o: In function `sccenter':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readpdb.f:376: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readpdb.f:389: undefined reference to `__func_trace_exit'
-readpdb.o: In function `bond_regular':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readpdb.f:391: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/readpdb.f:407: undefined reference to `__func_trace_exit'
-regularize.o: In function `regularize':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/regularize.F:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/regularize.F:76: undefined reference to `__func_trace_exit'
-thread.o: In function `thread_seq':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/thread.F:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/thread.F:355: undefined reference to `__func_trace_exit'
-thread.o: In function `write_thread_summary':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/thread.F:357: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/thread.F:460: undefined reference to `__func_trace_exit'
-thread.o: In function `sc_conf':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/thread.F:462: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/thread.F:517: undefined reference to `__func_trace_exit'
-thread.o: In function `write_stat_thread':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/thread.F:519: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/thread.F:549: undefined reference to `__func_trace_exit'
-fitsq.o: In function `fitsq':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/fitsq.f:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/fitsq.f:87: undefined reference to `__func_trace_exit'
-fitsq.o: In function `sivade':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/fitsq.f:88: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/fitsq.f:270: undefined reference to `__func_trace_exit'
-fitsq.o: In function `givns':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/fitsq.f:271: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/fitsq.f:292: undefined reference to `__func_trace_exit'
-fitsq.o: In function `switch':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/fitsq.f:293: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/fitsq.f:309: undefined reference to `__func_trace_exit'
-fitsq.o: In function `mvvad':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/fitsq.f:310: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/fitsq.f:323: undefined reference to `__func_trace_exit'
-fitsq.o: In function `det':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/fitsq.f:324: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/fitsq.f:329: undefined reference to `__func_trace_exit'
-fitsq.o: In function `mmmul':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/fitsq.f:331: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/fitsq.f:340: undefined reference to `__func_trace_exit'
-fitsq.o: In function `matvec':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/fitsq.f:341: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/fitsq.f:352: undefined reference to `__func_trace_exit'
-mcm.o: In function `mcm_setup':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mcm.F:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mcm.F:87: undefined reference to `__func_trace_exit'
-mcm.o: In function `do_mcm':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mcm.F:412: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mcm.F:777: undefined reference to `__func_trace_exit'
-mcm.o: In function `execute_slave':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mcm.F:779: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mcm.F:872: undefined reference to `__func_trace_exit'
-mcm.o: In function `statprint':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mcm.F:875: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mcm.F:913: undefined reference to `__func_trace_exit'
-mcm.o: In function `heat':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mcm.F:915: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mcm.F:952: undefined reference to `__func_trace_exit'
-mcm.o: In function `cool':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mcm.F:954: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mcm.F:968: undefined reference to `__func_trace_exit'
-mcm.o: In function `zapis':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mcm.F:970: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mcm.F:1003: undefined reference to `__func_trace_exit'
-mcm.o: In function `perturb':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mcm.F:1005: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mcm.F:1216: undefined reference to `__func_trace_exit'
-mcm.o: In function `selectmove':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mcm.F:1218: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mcm.F:1235: undefined reference to `__func_trace_exit'
-mcm.o: In function `gen_psi':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mcm.F:1237: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mcm.F:1248: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mcm.F:1253: undefined reference to `__func_trace_exit'
-mcm.o: In function `metropolis':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mcm.F:1256: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mcm.F:1336: undefined reference to `__func_trace_exit'
-mcm.o: In function `conf_comp':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mcm.F:1338: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mcm.F:1374: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mcm.F:1379: undefined reference to `__func_trace_exit'
-mcm.o: In function `dif_ang':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mcm.F:1382: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mcm.F:1399: undefined reference to `__func_trace_exit'
-mcm.o: In function `add2cache':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mcm.F:1402: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mcm.F:1448: undefined reference to `__func_trace_exit'
-mcm.o: In function `rm_from_cache':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mcm.F:1450: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mcm.F:1480: undefined reference to `__func_trace_exit'
-mc.o: In function `monte_carlo':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mc.F:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mc.F:719: undefined reference to `__func_trace_exit'
-mc.o: In function `accept_mc':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mc.F:721: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mc.F:783: undefined reference to `__func_trace_exit'
-mc.o: In function `icialosc':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mc.F:785: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mc.F:792: undefined reference to `__func_trace_exit'
-mc.o: In function `entropia':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mc.F:795: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/mc.F:819: undefined reference to `__func_trace_exit'
-bond_move.o: In function `bond_move':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bond_move.f:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bond_move.f:125: undefined reference to `__func_trace_exit'
-refsys.o: In function `refsys':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/refsys.f:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/refsys.f:67: undefined reference to `__func_trace_exit'
-check_sc_distr.o: In function `check_sc_distr':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/check_sc_distr.f:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/check_sc_distr.f:43: undefined reference to `__func_trace_exit'
-check_bond.o: In function `check_bond':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/check_bond.f:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/check_bond.f:20: undefined reference to `__func_trace_exit'
-contact.o: In function `contact':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/contact.f:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/contact.f:51: undefined reference to `__func_trace_exit'
-contact.o: In function `contact_fract':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/contact.f:53: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/contact.f:74: undefined reference to `__func_trace_exit'
-contact.o: In function `contact_fract_nn':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/contact.f:77: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/contact.f:98: undefined reference to `__func_trace_exit'
-contact.o: In function `hairpin':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/contact.f:101: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/contact.f:193: undefined reference to `__func_trace_exit'
-djacob.o: In function `djacob':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/djacob.f:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/djacob.f:107: undefined reference to `__func_trace_exit'
-eigen.o: In function `einvit':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:25: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:372: undefined reference to `__func_trace_exit'
-eigen.o: In function `elau':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:374: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:421: undefined reference to `__func_trace_exit'
-eigen.o: In function `epslon':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:423: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:481: undefined reference to `__func_trace_exit'
-eigen.o: In function `eqlrat':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:484: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:653: undefined reference to `__func_trace_exit'
-eigen.o: In function `estpi1':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:655: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:710: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:736: undefined reference to `__func_trace_exit'
-eigen.o: In function `etrbk3':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:739: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:830: undefined reference to `__func_trace_exit'
-eigen.o: In function `etred3':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:832: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:985: undefined reference to `__func_trace_exit'
-eigen.o: In function `evvrsp':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:987: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:1201: undefined reference to `__func_trace_exit'
-eigen.o: In function `freda':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:1203: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:1226: undefined reference to `__func_trace_exit'
-eigen.o: In function `giveis':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:1228: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:1307: undefined reference to `__func_trace_exit'
-eigen.o: In function `gldiag':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:1309: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:1370: undefined reference to `__func_trace_exit'
-eigen.o: In function `imtqlv':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:1372: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:1524: undefined reference to `__func_trace_exit'
-eigen.o: In function `jacdg':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:1526: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:1558: undefined reference to `__func_trace_exit'
-eigen.o: In function `jacdia':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:1560: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:1724: undefined reference to `__func_trace_exit'
-eigen.o: In function `jacord':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:1726: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:1748: undefined reference to `__func_trace_exit'
-eigen.o: In function `tinvtb':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:1750: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:1992: undefined reference to `__func_trace_exit'
-eigen.o: In function `tql2':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:1997: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:2156: undefined reference to `__func_trace_exit'
-eigen.o: In function `trbk3b':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:2161: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:2229: undefined reference to `__func_trace_exit'
-eigen.o: In function `tred3b':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:2234: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/eigen.f:2351: undefined reference to `__func_trace_exit'
-blas.o: In function `dasum':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/blas.f:14: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/blas.f:24: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/blas.f:34: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/blas.f:53: undefined reference to `__func_trace_exit'
-blas.o: In function `daxpy':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/blas.f:56: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/blas.f:102: undefined reference to `__func_trace_exit'
-blas.o: In function `dcopy':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/blas.f:104: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/blas.f:152: undefined reference to `__func_trace_exit'
-blas.o: In function `ddot':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/blas.f:154: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/blas.f:165: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/blas.f:181: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/blas.f:200: undefined reference to `__func_trace_exit'
-blas.o: In function `dnrm2':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/blas.f:203: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/blas.f:324: undefined reference to `__func_trace_exit'
-blas.o: In function `drot':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/blas.f:327: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/blas.f:363: undefined reference to `__func_trace_exit'
-blas.o: In function `drotg':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/blas.f:365: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/blas.f:397: undefined reference to `__func_trace_exit'
-blas.o: In function `dscal':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/blas.f:399: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/blas.f:439: undefined reference to `__func_trace_exit'
-blas.o: In function `dswap':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/blas.f:441: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/blas.f:495: undefined reference to `__func_trace_exit'
-blas.o: In function `idamax':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/blas.f:497: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/blas.f:505: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/blas.f:507: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/blas.f:521: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/blas.f:531: undefined reference to `__func_trace_exit'
-blas.o: In function `dgemv':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/blas.f:534: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/blas.f:575: undefined reference to `__func_trace_exit'
-add.o: In function `abrt':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/add.f:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/add.f:3: undefined reference to `__func_trace_exit'
-add.o: In function `vclr':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/add.f:5: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/add.f:28: undefined reference to `__func_trace_exit'
-entmcm.o: In function `entmcm':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/entmcm.F:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/entmcm.F:571: undefined reference to `__func_trace_exit'
-entmcm.o: In function `accepting':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/entmcm.F:573: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/entmcm.F:654: undefined reference to `__func_trace_exit'
-entmcm.o: In function `read_pool':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/entmcm.F:656: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/entmcm.F:684: undefined reference to `__func_trace_exit'
-minim_mcmf.o: In function `minim_mcmf':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/minim_mcmf.F:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/minim_mcmf.F:119: undefined reference to `__func_trace_exit'
-together.o: In function `together':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/together.F:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/together.F:662: undefined reference to `__func_trace_exit'
-together.o: In function `feedin':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/together.F:664: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/together.F:798: undefined reference to `__func_trace_exit'
-together.o: In function `getx':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/together.F:800: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/together.F:865: undefined reference to `__func_trace_exit'
-together.o: In function `putx':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/together.F:867: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/together.F:898: undefined reference to `__func_trace_exit'
-together.o: In function `putx2':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/together.F:900: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/together.F:927: undefined reference to `__func_trace_exit'
-together.o: In function `prune_bank':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/together.F:930: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/together.F:984: undefined reference to `__func_trace_exit'
-together.o: In function `reminimize':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/together.F:987: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/together.F:1049: undefined reference to `__func_trace_exit'
-together.o: In function `send':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/together.F:1051: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/together.F:1132: undefined reference to `__func_trace_exit'
-together.o: In function `recv':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/together.F:1135: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/together.F:1207: undefined reference to `__func_trace_exit'
-together.o: In function `history_append':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/together.F:1210: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/together.F:1221: undefined reference to `__func_trace_exit'
-csa.o: In function `make_array':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/csa.f:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/csa.f:59: undefined reference to `__func_trace_exit'
-csa.o: In function `make_ranvar':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/csa.f:62: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/csa.f:93: undefined reference to `__func_trace_exit'
-csa.o: In function `make_ranvar_reg':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/csa.f:96: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/csa.f:132: undefined reference to `__func_trace_exit'
-csa.o: In function `from_pdb':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/csa.f:135: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/csa.f:203: undefined reference to `__func_trace_exit'
-csa.o: In function `from_int':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/csa.f:206: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/csa.f:334: undefined reference to `__func_trace_exit'
-csa.o: In function `dihang_to_c':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/csa.f:337: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/csa.f:361: undefined reference to `__func_trace_exit'
-minim_jlee.o: In function `minim_jlee':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/minim_jlee.F:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/minim_jlee.F:371: undefined reference to `__func_trace_exit'
-minim_jlee.o: In function `check_var':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/minim_jlee.F:373: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/minim_jlee.F:406: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/minim_jlee.F:431: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/minim_jlee.F:434: undefined reference to `__func_trace_exit'
-shift.o: In function `csa_read':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/shift.F:2: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/shift.F:28: undefined reference to `__func_trace_exit'
-shift.o: In function `initial_write':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/shift.F:30: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/shift.F:68: undefined reference to `__func_trace_exit'
-shift.o: In function `restart_write':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/shift.F:70: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/shift.F:104: undefined reference to `__func_trace_exit'
-diff12.o: In function `get_diff12':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/diff12.f:2: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/diff12.f:26: undefined reference to `__func_trace_exit'
-bank.o: In function `refresh_bank':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:2: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:185: undefined reference to `__func_trace_exit'
-bank.o: In function `replace_bvar':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:187: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:249: undefined reference to `__func_trace_exit'
-bank.o: In function `write_rbank':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:251: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:279: undefined reference to `__func_trace_exit'
-bank.o: In function `read_rbank':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:281: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:358: undefined reference to `__func_trace_exit'
-bank.o: In function `write_bank':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:360: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:439: undefined reference to `__func_trace_exit'
-bank.o: In function `write_bank_reminimized':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:441: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:488: undefined reference to `__func_trace_exit'
-bank.o: In function `read_bank':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:490: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:604: undefined reference to `__func_trace_exit'
-bank.o: In function `write_bank1':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:606: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:636: undefined reference to `__func_trace_exit'
-bank.o: In function `save_is':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:638: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:666: undefined reference to `__func_trace_exit'
-bank.o: In function `select_is':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:668: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:739: undefined reference to `__func_trace_exit'
-bank.o: In function `get_is_ran':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:741: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:763: undefined reference to `__func_trace_exit'
-bank.o: In function `get_is':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:765: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:801: undefined reference to `__func_trace_exit'
-bank.o: In function `select_iseed_max':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:803: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:848: undefined reference to `__func_trace_exit'
-bank.o: In function `select_iseed_min':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:850: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:899: undefined reference to `__func_trace_exit'
-bank.o: In function `select_iseed_far':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:901: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:926: undefined reference to `__func_trace_exit'
-bank.o: In function `find_min':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:928: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:945: undefined reference to `__func_trace_exit'
-bank.o: In function `write_csa_pdb':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:947: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:994: undefined reference to `__func_trace_exit'
-bank.o: In function `find_max':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:996: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:1013: undefined reference to `__func_trace_exit'
-bank.o: In function `get_diff':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:1015: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:1045: undefined reference to `__func_trace_exit'
-bank.o: In function `estimate_cutdif':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:1047: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:1063: undefined reference to `__func_trace_exit'
-bank.o: In function `get_is_max':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:1065: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/bank.F:1084: undefined reference to `__func_trace_exit'
-newconf.o: In function `make_var':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/newconf.f:3: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/newconf.f:1570: undefined reference to `__func_trace_exit'
-newconf.o: In function `check_old':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/newconf.f:1573: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/newconf.f:1605: undefined reference to `__func_trace_exit'
-newconf.o: In function `newconf1rr':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/newconf.f:1608: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/newconf.f:1666: undefined reference to `__func_trace_exit'
-newconf.o: In function `newconf1br':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/newconf.f:1669: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/newconf.f:1752: undefined reference to `__func_trace_exit'
-newconf.o: In function `newconf1bb':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/newconf.f:1755: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/newconf.f:1813: undefined reference to `__func_trace_exit'
-newconf.o: In function `newconf1arr':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/newconf.f:1816: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/newconf.f:1874: undefined reference to `__func_trace_exit'
-newconf.o: In function `newconf1abr':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/newconf.f:1877: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/newconf.f:1944: undefined reference to `__func_trace_exit'
-newconf.o: In function `newconf1abb':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/newconf.f:1947: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/newconf.f:2014: undefined reference to `__func_trace_exit'
-newconf.o: In function `newconf_residue':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/newconf.f:2017: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/newconf.f:2086: undefined reference to `__func_trace_exit'
-newconf.o: In function `newconf_copy':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/newconf.f:2090: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/newconf.f:2124: undefined reference to `__func_trace_exit'
-newconf.o: In function `newconf_residue_hairpin':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/newconf.f:2127: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/newconf.f:2235: undefined reference to `__func_trace_exit'
-newconf.o: In function `gen_hairpin':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/newconf.f:2238: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/newconf.f:2288: undefined reference to `__func_trace_exit'
-newconf.o: In function `select_frag':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/newconf.f:2292: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/newconf.f:2454: undefined reference to `__func_trace_exit'
-ran.o: In function `ran0':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/ran.f:2: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/ran.f:14: undefined reference to `__func_trace_exit'
-ran.o: In function `ran1':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/ran.f:18: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/ran.f:43: undefined reference to `__func_trace_exit'
-ran.o: In function `ran2':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/ran.f:47: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/ran.f:78: undefined reference to `__func_trace_exit'
-ran.o: In function `ran3':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/ran.f:82: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/ran.f:125: undefined reference to `__func_trace_exit'
-indexx.o: In function `indexx':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/indexx.f:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/indexx.f:80: undefined reference to `__func_trace_exit'
-MP.o: In function `init_task':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MP.F:2: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MP.F:130: undefined reference to `__func_trace_exit'
-MP.o: In function `finish_task':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MP.F:132: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MP.F:199: undefined reference to `__func_trace_exit'
-MP.o: In function `pattern_receive':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MP.F:201: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MP.F:230: undefined reference to `__func_trace_exit'
-MP.o: In function `pattern_send':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MP.F:232: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MP.F:253: undefined reference to `__func_trace_exit'
-MP.o: In function `send_stop_sig':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MP.F:255: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MP.F:287: undefined reference to `__func_trace_exit'
-MP.o: In function `recv_stop_sig':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MP.F:289: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MP.F:315: undefined reference to `__func_trace_exit'
-MP.o: In function `send_mcm_info':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MP.F:317: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MP.F:344: undefined reference to `__func_trace_exit'
-MP.o: In function `receive_mcm_info':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MP.F:346: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MP.F:382: undefined reference to `__func_trace_exit'
-MP.o: In function `send_thread_results':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MP.F:384: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MP.F:427: undefined reference to `__func_trace_exit'
-MP.o: In function `receive_thread_results':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MP.F:429: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MP.F:494: undefined reference to `__func_trace_exit'
-compare_s1.o: In function `compare_s1':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/compare_s1.F:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/compare_s1.F:188: undefined reference to `__func_trace_exit'
-prng.o: In function `prng_next':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/prng.f:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/prng.f:59: undefined reference to `__func_trace_exit'
-prng.o: In function `vprng':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/prng.f:63: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/prng.f:87: undefined reference to `__func_trace_exit'
-prng.o: In function `prng_chkpnt':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/prng.f:99: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/prng.f:115: undefined reference to `__func_trace_exit'
-prng.o: In function `prng_restart':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/prng.f:126: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/prng.f:138: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/prng.f:143: undefined reference to `__func_trace_exit'
-prng.o: In function `(block data)_prngblk':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/prng.f:143: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/prng.f:143: undefined reference to `__func_trace_exit'
-test.o: In function `test':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/test.F:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/test.F:113: undefined reference to `__func_trace_exit'
-test.o: In function `test_n16':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/test.F:116: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/test.F:179: undefined reference to `__func_trace_exit'
-test.o: In function `test_local':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/test.F:182: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/test.F:219: undefined reference to `__func_trace_exit'
-test.o: In function `test_sc':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/test.F:221: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/test.F:252: undefined reference to `__func_trace_exit'
-test.o: In function `bgrow':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/test.F:254: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/test.F:292: undefined reference to `__func_trace_exit'
-test.o: In function `test11':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/test.F:296: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/test.F:991: undefined reference to `__func_trace_exit'
-test.o: In function `test3':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/test.F:994: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/test.F:1172: undefined reference to `__func_trace_exit'
-test.o: In function `test__':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/test.F:1177: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/test.F:1306: undefined reference to `__func_trace_exit'
-test.o: In function `secondary':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/test.F:1311: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/test.F:1632: undefined reference to `__func_trace_exit'
-test.o: In function `write_pdb':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/test.F:1635: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/test.F:1663: undefined reference to `__func_trace_exit'
-test.o: In function `contact_cp2':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/test.F:1666: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/test.F:1811: undefined reference to `__func_trace_exit'
-test.o: In function `contact_cp':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/test.F:1813: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/test.F:1979: undefined reference to `__func_trace_exit'
-test.o: In function `contact_cp_min':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/test.F:1981: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/test.F:2237: undefined reference to `__func_trace_exit'
-test.o: In function `softreg':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/test.F:2239: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/test.F:2474: undefined reference to `__func_trace_exit'
-test.o: In function `beta_slide':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/test.F:2477: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/test.F:2633: undefined reference to `__func_trace_exit'
-test.o: In function `beta_zip':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/test.F:2635: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/test.F:2707: undefined reference to `__func_trace_exit'
-banach.o: In function `banach':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/banach.f:3: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/banach.f:43: undefined reference to `__func_trace_exit'
-banach.o: In function `banaii':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/banach.f:45: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/banach.f:68: undefined reference to `__func_trace_exit'
-banach.o: In function `matinvert':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/banach.f:70: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/banach.f:97: undefined reference to `__func_trace_exit'
-distfit.o: In function `distfit':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/distfit.f:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/distfit.f:82: undefined reference to `__func_trace_exit'
-distfit.o: In function `rdif':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/distfit.f:84: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/distfit.f:108: undefined reference to `__func_trace_exit'
-distfit.o: In function `rderiv':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/distfit.f:111: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/distfit.f:145: undefined reference to `__func_trace_exit'
-distfit.o: In function `heval':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/distfit.f:147: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/distfit.f:174: undefined reference to `__func_trace_exit'
-distfit.o: In function `vec':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/distfit.f:177: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/distfit.f:197: undefined reference to `__func_trace_exit'
-distfit.o: In function `transfer':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/distfit.f:199: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/distfit.f:206: undefined reference to `__func_trace_exit'
-rmsd.o: In function `rms_nac_nnc':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/rmsd.F:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/rmsd.F:23: undefined reference to `__func_trace_exit'
-rmsd.o: In function `rmsd':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/rmsd.F:25: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/rmsd.F:76: undefined reference to `__func_trace_exit'
-rmsd.o: In function `rmsd_csa':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/rmsd.F:79: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/rmsd.F:128: undefined reference to `__func_trace_exit'
-elecont.o: In function `elecont':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/elecont.f:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/elecont.f:199: undefined reference to `__func_trace_exit'
-elecont.o: In function `secondary2':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/elecont.f:201: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/elecont.f:491: undefined reference to `__func_trace_exit'
-elecont.o: In function `freeres':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/elecont.f:493: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/elecont.f:499: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/elecont.f:500: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/elecont.f:503: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/elecont.f:507: undefined reference to `__func_trace_exit'
-dihed_cons.o: In function `secstrp2dihc':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/dihed_cons.F:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/dihed_cons.F:85: undefined reference to `__func_trace_exit'
-dihed_cons.o: In function `read_secstr_pred':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/dihed_cons.F:87: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/dihed_cons.F:185: undefined reference to `__func_trace_exit'
-sc_move.o: In function `sc_move':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sc_move.F:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sc_move.F:157: undefined reference to `__func_trace_exit'
-sc_move.o: In function `single_sc_move':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sc_move.F:161: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sc_move.F:334: undefined reference to `__func_trace_exit'
-sc_move.o: In function `sc_minimize':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sc_move.F:338: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sc_move.F:420: undefined reference to `__func_trace_exit'
-sc_move.o: In function `minimize_sc1':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sc_move.F:423: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sc_move.F:499: undefined reference to `__func_trace_exit'
-sc_move.o: In function `func_restr1':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sc_move.F:501: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sc_move.F:556: undefined reference to `__func_trace_exit'
-sc_move.o: In function `grad_restr1':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sc_move.F:558: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sc_move.F:691: undefined reference to `__func_trace_exit'
-sc_move.o: In function `egb1':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sc_move.F:693: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sc_move.F:820: undefined reference to `__func_trace_exit'
-local_move.o: In function `local_move_init':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/local_move.f:3: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/local_move.f:38: undefined reference to `__func_trace_exit'
-local_move.o: In function `local_move':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/local_move.f:42: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/local_move.f:161: undefined reference to `__func_trace_exit'
-local_move.o: In function `output_tabs':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/local_move.f:165: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/local_move.f:192: undefined reference to `__func_trace_exit'
-local_move.o: In function `angles2tab':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/local_move.f:196: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/local_move.f:270: undefined reference to `__func_trace_exit'
-local_move.o: In function `minmax_angles':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/local_move.f:274: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/local_move.f:342: undefined reference to `__func_trace_exit'
-local_move.o: In function `construct_tab':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/local_move.f:346: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/local_move.f:512: undefined reference to `__func_trace_exit'
-local_move.o: In function `construct_ranges':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/local_move.f:516: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/local_move.f:596: undefined reference to `__func_trace_exit'
-local_move.o: In function `fix_no_moves':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/local_move.f:600: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/local_move.f:685: undefined reference to `__func_trace_exit'
-local_move.o: In function `move_res':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/local_move.f:689: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/local_move.f:801: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/local_move.f:898: undefined reference to `__func_trace_exit'
-local_move.o: In function `loc_test':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/local_move.f:903: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/local_move.f:968: undefined reference to `__func_trace_exit'
-intcartderiv.o: In function `intcartderiv':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/intcartderiv.F:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/intcartderiv.F:248: undefined reference to `__func_trace_exit'
-intcartderiv.o: In function `checkintcartgrad':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/intcartderiv.F:250: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/intcartderiv.F:406: undefined reference to `__func_trace_exit'
-intcartderiv.o: In function `chainbuild_cart':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/intcartderiv.F:408: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/intcartderiv.F:466: undefined reference to `__func_trace_exit'
-lagrangian_lesyng.o: In function `lagrangian':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/lagrangian_lesyng.F:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/lagrangian_lesyng.F:113: undefined reference to `__func_trace_exit'
-lagrangian_lesyng.o: In function `setup_md_matrices':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/lagrangian_lesyng.F:115: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/lagrangian_lesyng.F:334: undefined reference to `__func_trace_exit'
-lagrangian_lesyng.o: In function `eigout':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/lagrangian_lesyng.F:336: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/lagrangian_lesyng.F:364: undefined reference to `__func_trace_exit'
-lagrangian_lesyng.o: In function `matout':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/lagrangian_lesyng.F:366: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/lagrangian_lesyng.F:392: undefined reference to `__func_trace_exit'
-lagrangian_lesyng.o: In function `matout1':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/lagrangian_lesyng.F:394: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/lagrangian_lesyng.F:420: undefined reference to `__func_trace_exit'
-lagrangian_lesyng.o: In function `matout2':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/lagrangian_lesyng.F:422: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/lagrangian_lesyng.F:448: undefined reference to `__func_trace_exit'
-lagrangian_lesyng.o: In function `ginv_mult':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/lagrangian_lesyng.F:450: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/lagrangian_lesyng.F:534: undefined reference to `__func_trace_exit'
-lagrangian_lesyng.o: In function `fricmat_mult':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/lagrangian_lesyng.F:578: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/lagrangian_lesyng.F:598: undefined reference to `__func_trace_exit'
-stochfric.o: In function `friction_force':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/stochfric.F:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/stochfric.F:154: undefined reference to `__func_trace_exit'
-stochfric.o: In function `stochastic_force':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/stochfric.F:156: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/stochfric.F:302: undefined reference to `__func_trace_exit'
-stochfric.o: In function `setup_fricmat':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/stochfric.F:304: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/stochfric.F:461: undefined reference to `__func_trace_exit'
-stochfric.o: In function `sdarea':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/stochfric.F:463: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/stochfric.F:553: undefined reference to `__func_trace_exit'
-kinetic_lesyng.o: In function `kinetic':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/kinetic_lesyng.f:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/kinetic_lesyng.f:100: undefined reference to `__func_trace_exit'
-MD_A-MTS.o: In function `md':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MD_A-MTS.F:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MD_A-MTS.F:263: undefined reference to `__func_trace_exit'
-MD_A-MTS.o: In function `velverlet_step':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MD_A-MTS.F:265: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MD_A-MTS.F:547: undefined reference to `__func_trace_exit'
-MD_A-MTS.o: In function `respa_step':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MD_A-MTS.F:549: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MD_A-MTS.F:875: undefined reference to `__func_trace_exit'
-MD_A-MTS.o: In function `respa_vel':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MD_A-MTS.F:877: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MD_A-MTS.F:909: undefined reference to `__func_trace_exit'
-MD_A-MTS.o: In function `verlet1':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MD_A-MTS.F:911: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MD_A-MTS.F:970: undefined reference to `__func_trace_exit'
-MD_A-MTS.o: In function `verlet2':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MD_A-MTS.F:972: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MD_A-MTS.F:1003: undefined reference to `__func_trace_exit'
-MD_A-MTS.o: In function `sddir_precalc':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MD_A-MTS.F:1005: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MD_A-MTS.F:1038: undefined reference to `__func_trace_exit'
-MD_A-MTS.o: In function `sddir_verlet1':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MD_A-MTS.F:1040: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MD_A-MTS.F:1099: undefined reference to `__func_trace_exit'
-MD_A-MTS.o: In function `sddir_verlet2':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MD_A-MTS.F:1101: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MD_A-MTS.F:1162: undefined reference to `__func_trace_exit'
-MD_A-MTS.o: In function `max_accel':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MD_A-MTS.F:1164: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MD_A-MTS.F:1237: undefined reference to `__func_trace_exit'
-MD_A-MTS.o: In function `predict_edrift':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MD_A-MTS.F:1239: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MD_A-MTS.F:1282: undefined reference to `__func_trace_exit'
-MD_A-MTS.o: In function `verlet_bath':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MD_A-MTS.F:1284: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MD_A-MTS.F:1324: undefined reference to `__func_trace_exit'
-MD_A-MTS.o: In function `init_md':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MD_A-MTS.F:1326: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MD_A-MTS.F:1638: undefined reference to `__func_trace_exit'
-MD_A-MTS.o: In function `random_vel':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MD_A-MTS.F:1640: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MD_A-MTS.F:1724: undefined reference to `__func_trace_exit'
-moments.o: In function `inertia_tensor':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/moments.f:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/moments.f:194: undefined reference to `__func_trace_exit'
-moments.o: In function `angmom':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/moments.f:196: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/moments.f:282: undefined reference to `__func_trace_exit'
-moments.o: In function `vcm_vel':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/moments.f:284: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/moments.f:328: undefined reference to `__func_trace_exit'
-int_to_cart.o: In function `int_to_cart':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/int_to_cart.f:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/int_to_cart.f:117: undefined reference to `__func_trace_exit'
-surfatom.o: In function `surfatom':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/surfatom.f:35: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/surfatom.f:494: undefined reference to `__func_trace_exit'
-sort.o: In function `sort':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sort.f:19: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sort.f:60: undefined reference to `__func_trace_exit'
-sort.o: In function `sort2':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sort.f:75: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sort.f:130: undefined reference to `__func_trace_exit'
-sort.o: In function `sort3':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sort.f:145: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sort.f:201: undefined reference to `__func_trace_exit'
-sort.o: In function `sort4':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sort.f:215: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sort.f:257: undefined reference to `__func_trace_exit'
-sort.o: In function `sort5':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sort.f:271: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sort.f:326: undefined reference to `__func_trace_exit'
-sort.o: In function `sort6':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sort.f:340: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sort.f:382: undefined reference to `__func_trace_exit'
-sort.o: In function `sort7':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sort.f:397: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sort.f:453: undefined reference to `__func_trace_exit'
-sort.o: In function `sort8':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sort.f:468: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sort.f:521: undefined reference to `__func_trace_exit'
-sort.o: In function `sort9':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sort.f:536: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/sort.f:589: undefined reference to `__func_trace_exit'
-muca_md.o: In function `muca_delta':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/muca_md.f:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/muca_md.f:20: undefined reference to `__func_trace_exit'
-muca_md.o: In function `muca_ene':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/muca_md.f:22: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/muca_md.f:41: undefined reference to `__func_trace_exit'
-muca_md.o: In function `read_muca':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/muca_md.f:44: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/muca_md.f:106: undefined reference to `__func_trace_exit'
-muca_md.o: In function `print_muca':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/muca_md.f:109: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/muca_md.f:162: undefined reference to `__func_trace_exit'
-muca_md.o: In function `muca_update':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/muca_md.f:164: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/muca_md.f:248: undefined reference to `__func_trace_exit'
-muca_md.o: In function `muca_factor':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/muca_md.f:250: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/muca_md.f:270: undefined reference to `__func_trace_exit'
-muca_md.o: In function `spline':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/muca_md.f:274: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/muca_md.f:306: undefined reference to `__func_trace_exit'
-muca_md.o: In function `splint':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/muca_md.f:309: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/muca_md.f:334: undefined reference to `__func_trace_exit'
-MREMD.o: In function `mremd':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MREMD.F:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MREMD.F:1215: undefined reference to `__func_trace_exit'
-MREMD.o: In function `write1rst':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MREMD.F:1218: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MREMD.F:1392: undefined reference to `__func_trace_exit'
-MREMD.o: In function `write1traj':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MREMD.F:1395: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MREMD.F:1605: undefined reference to `__func_trace_exit'
-MREMD.o: In function `read1restart':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MREMD.F:1608: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MREMD.F:1791: undefined reference to `__func_trace_exit'
-MREMD.o: In function `read1restart_old':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MREMD.F:1793: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/MREMD.F:1860: undefined reference to `__func_trace_exit'
-rattle.o: In function `rattle1':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/rattle.F:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/rattle.F:267: undefined reference to `__func_trace_exit'
-rattle.o: In function `rattle2':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/rattle.F:269: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/rattle.F:438: undefined reference to `__func_trace_exit'
-rattle.o: In function `rattle_brown':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/rattle.F:440: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/rattle.F:706: undefined reference to `__func_trace_exit'
-gauss.o: In function `gauss':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gauss.f:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gauss.f:14: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gauss.f:18: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gauss.f:40: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gauss.f:55: undefined reference to `__func_trace_exit'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gauss.f:68: undefined reference to `__func_trace_exit'
-energy_split-sep.o: In function `etotal_long':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_split-sep.F:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_split-sep.F:242: undefined reference to `__func_trace_exit'
-energy_split-sep.o: In function `etotal_short':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_split-sep.F:244: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/energy_split-sep.F:459: undefined reference to `__func_trace_exit'
-q_measure.o: In function `qwolynes':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/q_measure.F:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/q_measure.F:70: undefined reference to `__func_trace_exit'
-q_measure.o: In function `qwolynes_prim':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/q_measure.F:73: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/q_measure.F:184: undefined reference to `__func_trace_exit'
-q_measure.o: In function `qwol_num':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/q_measure.F:186: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/q_measure.F:227: undefined reference to `__func_trace_exit'
-q_measure.o: In function `econstrq':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/q_measure.F:229: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/q_measure.F:362: undefined reference to `__func_trace_exit'
-q_measure.o: In function `deconstrq_num':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/q_measure.F:364: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/q_measure.F:486: undefined reference to `__func_trace_exit'
-gnmr1.o: In function `gnmr1':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gnmr1.f:1: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gnmr1.f:12: undefined reference to `__func_trace_exit'
-gnmr1.o: In function `gnmr1prim':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gnmr1.f:15: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gnmr1.f:26: undefined reference to `__func_trace_exit'
-gnmr1.o: In function `harmonic':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gnmr1.f:29: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gnmr1.f:34: undefined reference to `__func_trace_exit'
-gnmr1.o: In function `harmonicprim':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gnmr1.f:37: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/gnmr1.f:41: undefined reference to `__func_trace_exit'
-cinfo.o: In function `cinfo':
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cinfo.f:3: undefined reference to `__func_trace_enter'
-/gpfs/home/liwo/UNRES/src_TC_newmat.tau-timing/cinfo.f:35: undefined reference to `__func_trace_exit'
-make: *** [unres] Error 1
diff --git a/source/unres/src_MD-M/b b/source/unres/src_MD-M/b
deleted file mode 100644 (file)
index b8ffa64..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-add.*
-arcos.*
-banach.*
-bank.*
-blas.*
-bond_move.*
-cartder.*
-cartprint.*
-chainbuild.*
-check_bond.*
-checkder_p.*
-check_sc_distr.*
-cinfo.*
-compare_s1.*
-contact.*
-convert.*
-cored.*
-csa.*
-diff12.*
-dihed_cons.*
-distfit.*
-djacob.*
-econstr_local.*
-eigen.*
-elecont.*
-energy_p_new.*
-energy_p_new-sep.*
-energy_split-sep.*
-entmcm.*
-fitsq.*
-gauss.*
-geomout.*
-gnmr1.*
-gradient_p.*
-indexx.*
-initialize_p.*
-intcartderiv.*
-intcor.*
-intlocal.*
-int_to_cart.*
-kinetic_lesyng.*
-lagrangian_lesyng.*
-local_move.*
-map.*
-matmult.*
-mcm.*
-mc.*
-MD_A-MTS.*
-minimize_p.*
-minim_jlee.*
-minim_mcmf.*
-misc.*
-moments.*
-MP.*
-MREMD.*
-muca_md.*
-newconf.*
-parmread.*
-pinorm.*
-printmat.*
-q_measure.*
-randgens.*
-ran.*
-rattle.*
-readpdb.*
-refsys.*
-regularize.*
-rescode.*
-rmdd.*
-rmsd.*
-sc_move.*
-shift.*
-sort.*
-stochfric.*
-sumsld.*
-surfatom.*
-test.*
-thread.*
-timing.*
-together.*
-unres.*
diff --git a/source/unres/src_MD-M/compinfo b/source/unres/src_MD-M/compinfo
deleted file mode 100755 (executable)
index a9d3c1d..0000000
Binary files a/source/unres/src_MD-M/compinfo and /dev/null differ
index 813cf31..e28f686 100644 (file)
@@ -14,10 +14,10 @@ time_t Tp;
 
 in=fopen("cinfo.f","r");
 out=fopen("cinfo.f.new","w");
-fgets(buf,498,in);
-fprintf(out,"C DO NOT EDIT THIS FILE - IT HAS BEEN GENERATED BY COMPINFO.C\n");
-fgets(buf,498,in);
-sscanf(&buf[1],"%d %d %d",&iv1,&iv2,&iv3);
+if (fgets(buf,498,in) != NULL)
+       fprintf(out,"C DO NOT EDIT THIS FILE - IT HAS BEEN GENERATED BY COMPINFO.C\n");
+if (fgets(buf,498,in) != NULL)
+       sscanf(&buf[1],"%d %d %d",&iv1,&iv2,&iv3);
 iv3++;
 fprintf(out,"C %d %d %d\n",iv1,iv2,iv3);
 fprintf(out,"      subroutine cinfo\n");
@@ -26,18 +26,22 @@ fprintf(out,"      write(iout,*)'++++ Compile info ++++'\n");
 fprintf(out,"      write(iout,*)'Version %d.%-d build %d'\n",iv1,iv2,iv3);
 uname(&Name);
 time(&Tp);
-system("rm tmptmp; whoami > tmptmp");
+system("whoami > tmptmp");
 in1=fopen("tmptmp","r");
-fscanf(in1,"%s",buf1);
-fclose(in1);
+if (fscanf(in1,"%s",buf1) != EOF)
+{
 p1=ctime(&Tp);
 p1[strlen(p1)-1]='\0';
 fprintf(out,"      write(iout,*)'compiled %s'\n",p1);
 fprintf(out,"      write(iout,*)'compiled by %s@%s'\n",buf1,Name.nodename);
 fprintf(out,"      write(iout,*)'OS name:    %s '\n",Name.sysname);
 fprintf(out,"      write(iout,*)'OS release: %s '\n",Name.release);
-fprintf(out,"      write(iout,*)'OS version: %s '\n",Name.version);
+fprintf(out,"      write(iout,*)'OS version:',\n");
+fprintf(out,"     & ' %s '\n",Name.version);
 fprintf(out,"      write(iout,*)'flags:'\n");
+}
+system("rm tmptmp");
+fclose(in1);
 in1=fopen("Makefile","r");
 while(fgets(buf,498,in1) != NULL)
  {
@@ -55,8 +59,8 @@ while(fgets(buf,498,in1) != NULL)
     {
     strcat(buf,"\\");
     fprintf(out,"      write(iout,*)'%s'\n",buf);
-    fgets(buf,498,in1);
-    buf[strlen(buf)-1]='\0';
+    if (fgets(buf,498,in1) != NULL)
+       buf[strlen(buf)-1]='\0';
     if(strlen(buf) > 49)
      {
      buf[47]='\0';
diff --git a/source/unres/src_MD-M/dif b/source/unres/src_MD-M/dif
deleted file mode 100644 (file)
index 6848da7..0000000
+++ /dev/null
@@ -1,8088 +0,0 @@
-1,9c1,149
-< C-----------------------------------------------------------------------
-<       double precision function sscale(r)
-<       double precision r,gamm
-<       include "COMMON.SPLITELE"
-<       if(r.lt.r_cut-rlamb) then
-<         sscale=1.0d0
-<       else if(r.le.r_cut.and.r.ge.r_cut-rlamb) then
-<         gamm=(r-(r_cut-rlamb))/rlamb
-<         sscale=1.0d0+gamm*gamm*(2*gamm-3.0d0)
----
->       subroutine etotal(energia)
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
-> #ifndef ISNAN
->       external proc_proc
-> #ifdef WINPGI
-> cMS$ATTRIBUTES C ::  proc_proc
-> #endif
-> #endif
-> #ifdef MPI
->       include "mpif.h"
->       double precision weights_(n_ene)
-> #endif
->       include 'COMMON.SETUP'
->       include 'COMMON.IOUNITS'
->       double precision energia(0:n_ene)
->       include 'COMMON.LOCAL'
->       include 'COMMON.FFIELD'
->       include 'COMMON.DERIV'
->       include 'COMMON.INTERACT'
->       include 'COMMON.SBRIDGE'
->       include 'COMMON.CHAIN'
->       include 'COMMON.VAR'
->       include 'COMMON.MD'
->       include 'COMMON.CONTROL'
->       include 'COMMON.TIME1'
->       if (modecalc.eq.12.or.modecalc.eq.14) then
-> #ifdef MPI
->         if (fg_rank.eq.0) call int_from_cart1(.false.)
-> #else
->         call int_from_cart1(.false.)
-> #endif
->       endif
-> #ifdef MPI      
-> c      print*,"ETOTAL Processor",fg_rank," absolute rank",myrank,
-> c     & " nfgtasks",nfgtasks
->       if (nfgtasks.gt.1) then
->         time00=MPI_Wtime()
-> C FG slaves call the following matching MPI_Bcast in ERGASTULUM
->         if (fg_rank.eq.0) then
->           call MPI_Bcast(0,1,MPI_INTEGER,king,FG_COMM,IERROR)
-> c          print *,"Processor",myrank," BROADCAST iorder"
-> C FG master sets up the WEIGHTS_ array which will be broadcast to the 
-> C FG slaves as WEIGHTS array.
->           weights_(1)=wsc
->           weights_(2)=wscp
->           weights_(3)=welec
->           weights_(4)=wcorr
->           weights_(5)=wcorr5
->           weights_(6)=wcorr6
->           weights_(7)=wel_loc
->           weights_(8)=wturn3
->           weights_(9)=wturn4
->           weights_(10)=wturn6
->           weights_(11)=wang
->           weights_(12)=wscloc
->           weights_(13)=wtor
->           weights_(14)=wtor_d
->           weights_(15)=wstrain
->           weights_(16)=wvdwpp
->           weights_(17)=wbond
->           weights_(18)=scal14
->           weights_(21)=wsccor
-> C FG Master broadcasts the WEIGHTS_ array
->           call MPI_Bcast(weights_(1),n_ene,
->      &        MPI_DOUBLE_PRECISION,king,FG_COMM,IERROR)
->         else
-> C FG slaves receive the WEIGHTS array
->           call MPI_Bcast(weights(1),n_ene,
->      &        MPI_DOUBLE_PRECISION,king,FG_COMM,IERROR)
->         endif
-> c        print *,"Processor",myrank," BROADCAST weights"
->         call MPI_Bcast(c(1,1),maxres6,MPI_DOUBLE_PRECISION,
->      &    king,FG_COMM,IERR)
-> c        print *,"Processor",myrank," BROADCAST c"
->         call MPI_Bcast(dc(1,1),maxres6,MPI_DOUBLE_PRECISION,
->      &    king,FG_COMM,IERR)
-> c        print *,"Processor",myrank," BROADCAST dc"
->         call MPI_Bcast(dc_norm(1,1),maxres6,MPI_DOUBLE_PRECISION,
->      &    king,FG_COMM,IERR)
-> c        print *,"Processor",myrank," BROADCAST dc_norm"
->         call MPI_Bcast(theta(1),nres,MPI_DOUBLE_PRECISION,
->      &    king,FG_COMM,IERR)
-> c        print *,"Processor",myrank," BROADCAST theta"
->         call MPI_Bcast(phi(1),nres,MPI_DOUBLE_PRECISION,
->      &    king,FG_COMM,IERR)
-> c        print *,"Processor",myrank," BROADCAST phi"
->         call MPI_Bcast(alph(1),nres,MPI_DOUBLE_PRECISION,
->      &    king,FG_COMM,IERR)
-> c        print *,"Processor",myrank," BROADCAST alph"
->         call MPI_Bcast(omeg(1),nres,MPI_DOUBLE_PRECISION,
->      &    king,FG_COMM,IERR)
-> c        print *,"Processor",myrank," BROADCAST omeg"
->         call MPI_Bcast(vbld(1),2*nres,MPI_DOUBLE_PRECISION,
->      &    king,FG_COMM,IERR)
-> c        print *,"Processor",myrank," BROADCAST vbld"
->         call MPI_Bcast(vbld_inv(1),2*nres,MPI_DOUBLE_PRECISION,
->      &    king,FG_COMM,IERR)
->          time_Bcast=time_Bcast+MPI_Wtime()-time00
-> c        print *,"Processor",myrank," BROADCAST vbld_inv"
->       endif
-> c      print *,'Processor',myrank,' calling etotal ipot=',ipot
-> c      print *,'Processor',myrank,' nnt=',nnt,' nct=',nct
-> #endif     
-> C 
-> C Compute the side-chain and electrostatic interaction energy
-> C
->       goto (101,102,103,104,105,106) ipot
-> C Lennard-Jones potential.
->   101 call elj(evdw)
-> cd    print '(a)','Exit ELJ'
->       goto 107
-> C Lennard-Jones-Kihara potential (shifted).
->   102 call eljk(evdw)
->       goto 107
-> C Berne-Pechukas potential (dilated LJ, angular dependence).
->   103 call ebp(evdw)
->       goto 107
-> C Gay-Berne potential (shifted LJ, angular dependence).
->   104 call egb(evdw)
->       goto 107
-> C Gay-Berne-Vorobjev potential (shifted LJ, angular dependence).
->   105 call egbv(evdw)
->       goto 107
-> C Soft-sphere potential
->   106 call e_softsphere(evdw)
-> C
-> C Calculate electrostatic (H-bonding) energy of the main chain.
-> C
->   107 continue
-> c      print *,"Processor",myrank," computed USCSC"
->       call vec_and_deriv
-> c      print *,"Processor",myrank," left VEC_AND_DERIV"
->       if (ipot.lt.6) then
-> #ifdef SPLITELE
->          if (welec.gt.0d0.or.wvdwpp.gt.0d0.or.wel_loc.gt.0d0.or.
->      &       wturn3.gt.0d0.or.wturn4.gt.0d0) then
-> #else
->          if (welec.gt.0d0.or.wel_loc.gt.0d0.or.
->      &       wturn3.gt.0d0.or.wturn4.gt.0d0) then
-> #endif
->             call eelec(ees,evdw1,eel_loc,eello_turn3,eello_turn4)
->          else
->             ees=0
->             evdw1=0
->             eel_loc=0
->             eello_turn3=0
->             eello_turn4=0
->          endif
-11c151,153
-<         sscale=0d0
----
-> c        write (iout,*) "Soft-spheer ELEC potential"
->         call eelec_soft_sphere(ees,evdw1,eel_loc,eello_turn3,
->      &   eello_turn4)
-13,16c155
-<       return
-<       end
-< C-----------------------------------------------------------------------
-<       subroutine elj_long(evdw)
----
-> c      print *,"Processor",myrank," computed UELEC"
-18,19c157,261
-< C This subroutine calculates the interaction energy of nonbonded side chains
-< C assuming the LJ potential of interaction.
----
-> C Calculate excluded-volume interaction energy between peptide groups
-> C and side chains.
-> C
->       if (ipot.lt.6) then
->        if(wscp.gt.0d0) then
->         call escp(evdw2,evdw2_14)
->        else
->         evdw2=0
->         evdw2_14=0
->        endif
->       else
-> c        write (iout,*) "Soft-sphere SCP potential"
->         call escp_soft_sphere(evdw2,evdw2_14)
->       endif
-> c
-> c Calculate the bond-stretching energy
-> c
->       call ebond(estr)
-> C 
-> C Calculate the disulfide-bridge and other energy and the contributions
-> C from other distance constraints.
-> cd    print *,'Calling EHPB'
->       call edis(ehpb)
-> cd    print *,'EHPB exitted succesfully.'
-> C
-> C Calculate the virtual-bond-angle energy.
-> C
->       if (wang.gt.0d0) then
->         call ebend(ebe)
->       else
->         ebe=0
->       endif
-> c      print *,"Processor",myrank," computed UB"
-> C
-> C Calculate the SC local energy.
-> C
->       call esc(escloc)
-> c      print *,"Processor",myrank," computed USC"
-> C
-> C Calculate the virtual-bond torsional energy.
-> C
-> cd    print *,'nterm=',nterm
->       if (wtor.gt.0) then
->        call etor(etors,edihcnstr)
->       else
->        etors=0
->        edihcnstr=0
->       endif
-> c      print *,"Processor",myrank," computed Utor"
-> C
-> C 6/23/01 Calculate double-torsional energy
-> C
->       if (wtor_d.gt.0) then
->        call etor_d(etors_d)
->       else
->        etors_d=0
->       endif
-> c      print *,"Processor",myrank," computed Utord"
-> C
-> C 21/5/07 Calculate local sicdechain correlation energy
-> C
->       if (wsccor.gt.0.0d0) then
->         call eback_sc_corr(esccor)
->       else
->         esccor=0.0d0
->       endif
-> c      print *,"Processor",myrank," computed Usccorr"
-> C 
-> C 12/1/95 Multi-body terms
-> C
->       n_corr=0
->       n_corr1=0
->       if ((wcorr4.gt.0.0d0 .or. wcorr5.gt.0.0d0 .or. wcorr6.gt.0.0d0 
->      &    .or. wturn6.gt.0.0d0) .and. ipot.lt.6) then
->          call multibody_eello(ecorr,ecorr5,ecorr6,eturn6,n_corr,n_corr1)
-> c         write (2,*) 'n_corr=',n_corr,' n_corr1=',n_corr1,
-> c     &" ecorr",ecorr," ecorr5",ecorr5," ecorr6",ecorr6," eturn6",eturn6
->       else
->          ecorr=0
->          ecorr5=0
->          ecorr6=0
->          eturn6=0
->       endif
->       if ((wcorr4.eq.0.0d0 .and. wcorr.gt.0.0d0) .and. ipot.lt.6) then
->          call multibody_hb(ecorr,ecorr5,ecorr6,n_corr,n_corr1)
->       else
->          ecorr=0
->          ecorr5=0
->          ecorr6=0
->          eturn6=0
->       endif
-> c      print *,"Processor",myrank," computed Ucorr"
-> C 
-> C If performing constraint dynamics, call the constraint energy
-> C  after the equilibration time
->       if(usampl.and.totT.gt.eq_time) then
->          call EconstrQ   
->          call Econstr_back
->       else
->          Uconst=0.0d0
->          Uconst_back=0.0d0
->       endif
-> c      print *,"Processor",myrank," computed Uconstr"
-> c
-> C Sum the energies
-20a263,300
->       energia(1)=evdw
-> #ifdef SCP14
->       energia(2)=evdw2-evdw2_14
->       energia(18)=evdw2_14
-> #else
->       energia(2)=evdw2
->       energia(18)=0.0d0
-> #endif
-> #ifdef SPLITELE
->       energia(3)=ees
->       energia(16)=evdw1
-> #else
->       energia(3)=ees+evdw1
->       energia(16)=0.0d0
-> #endif
->       energia(4)=ecorr
->       energia(5)=ecorr5
->       energia(6)=ecorr6
->       energia(7)=eel_loc
->       energia(8)=eello_turn3
->       energia(9)=eello_turn4
->       energia(10)=eturn6
->       energia(11)=ebe
->       energia(12)=escloc
->       energia(13)=etors
->       energia(14)=etors_d
->       energia(15)=ehpb
->       energia(19)=edihcnstr
->       energia(17)=estr
->       energia(20)=Uconst+Uconst_back
->       energia(21)=esccor
-> c      print *," Processor",myrank," calls SUM_ENERGY"
->       call sum_energy(energia,.true.)
-> c      print *," Processor",myrank," left SUM_ENERGY"
->       return
->       end
-> c-------------------------------------------------------------------------------
->       subroutine sum_energy(energia,reduce)
-23,27c303,315
-<       parameter (accur=1.0d-10)
-<       include 'COMMON.GEO'
-<       include 'COMMON.VAR'
-<       include 'COMMON.LOCAL'
-<       include 'COMMON.CHAIN'
----
-> #ifndef ISNAN
->       external proc_proc
-> #ifdef WINPGI
-> cMS$ATTRIBUTES C ::  proc_proc
-> #endif
-> #endif
-> #ifdef MPI
->       include "mpif.h"
-> #endif
->       include 'COMMON.SETUP'
->       include 'COMMON.IOUNITS'
->       double precision energia(0:n_ene),enebuff(0:n_ene+1)
->       include 'COMMON.FFIELD'
-30d317
-<       include 'COMMON.TORSION'
-32c319,428
-<       include 'COMMON.NAMES'
----
->       include 'COMMON.CHAIN'
->       include 'COMMON.VAR'
->       include 'COMMON.CONTROL'
->       include 'COMMON.TIME1'
->       logical reduce
-> #ifdef MPI
->       if (nfgtasks.gt.1 .and. reduce) then
-> #ifdef DEBUG
->         write (iout,*) "energies before REDUCE"
->         call enerprint(energia)
->         call flush(iout)
-> #endif
->         do i=0,n_ene
->           enebuff(i)=energia(i)
->         enddo
->         time00=MPI_Wtime()
->         call MPI_Reduce(enebuff(0),energia(0),n_ene+1,
->      &    MPI_DOUBLE_PRECISION,MPI_SUM,king,FG_COMM,IERR)
-> #ifdef DEBUG
->         write (iout,*) "energies after REDUCE"
->         call enerprint(energia)
->         call flush(iout)
-> #endif
->         time_Reduce=time_Reduce+MPI_Wtime()-time00
->       endif
->       if (fg_rank.eq.0) then
-> #endif
->       evdw=energia(1)
-> #ifdef SCP14
->       evdw2=energia(2)+energia(18)
->       evdw2_14=energia(18)
-> #else
->       evdw2=energia(2)
-> #endif
-> #ifdef SPLITELE
->       ees=energia(3)
->       evdw1=energia(16)
-> #else
->       ees=energia(3)
->       evdw1=0.0d0
-> #endif
->       ecorr=energia(4)
->       ecorr5=energia(5)
->       ecorr6=energia(6)
->       eel_loc=energia(7)
->       eello_turn3=energia(8)
->       eello_turn4=energia(9)
->       eturn6=energia(10)
->       ebe=energia(11)
->       escloc=energia(12)
->       etors=energia(13)
->       etors_d=energia(14)
->       ehpb=energia(15)
->       edihcnstr=energia(19)
->       estr=energia(17)
->       Uconst=energia(20)
->       esccor=energia(21)
-> #ifdef SPLITELE
->       etot=wsc*evdw+wscp*evdw2+welec*ees+wvdwpp*evdw1
->      & +wang*ebe+wtor*etors+wscloc*escloc
->      & +wstrain*ehpb+nss*ebr+wcorr*ecorr+wcorr5*ecorr5
->      & +wcorr6*ecorr6+wturn4*eello_turn4+wturn3*eello_turn3
->      & +wturn6*eturn6+wel_loc*eel_loc+edihcnstr+wtor_d*etors_d
->      & +wbond*estr+Uconst+wsccor*esccor
-> #else
->       etot=wsc*evdw+wscp*evdw2+welec*(ees+evdw1)
->      & +wang*ebe+wtor*etors+wscloc*escloc
->      & +wstrain*ehpb+nss*ebr+wcorr*ecorr+wcorr5*ecorr5
->      & +wcorr6*ecorr6+wturn4*eello_turn4+wturn3*eello_turn3
->      & +wturn6*eturn6+wel_loc*eel_loc+edihcnstr+wtor_d*etors_d
->      & +wbond*estr+Uconst+wsccor*esccor
-> #endif
->       energia(0)=etot
-> c detecting NaNQ
-> #ifdef ISNAN
-> #ifdef AIX
->       if (isnan(etot).ne.0) energia(0)=1.0d+99
-> #else
->       if (isnan(etot)) energia(0)=1.0d+99
-> #endif
-> #else
->       i=0
-> #ifdef WINPGI
->       idumm=proc_proc(etot,i)
-> #else
->       call proc_proc(etot,i)
-> #endif
->       if(i.eq.1)energia(0)=1.0d+99
-> #endif
-> #ifdef MPI
->       endif
-> #endif
->       return
->       end
-> c-------------------------------------------------------------------------------
->       subroutine sum_gradient
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
-> #ifndef ISNAN
->       external proc_proc
-> #ifdef WINPGI
-> cMS$ATTRIBUTES C ::  proc_proc
-> #endif
-> #endif
-> #ifdef MPI
->       include 'mpif.h'
->       double precision gradbufc(3,maxres),gradbufx(3,maxres),
->      &  glocbuf(4*maxres)
-> #endif
->       include 'COMMON.SETUP'
-34,45c430,438
-<       include 'COMMON.CONTACTS'
-<       dimension gg(3)
-< c      write(iout,*)'Entering ELJ nnt=',nnt,' nct=',nct,' expon=',expon
-<       evdw=0.0D0
-<       do i=iatsc_s,iatsc_e
-<         itypi=itype(i)
-<         itypi1=itype(i+1)
-<         xi=c(1,nres+i)
-<         yi=c(2,nres+i)
-<         zi=c(3,nres+i)
-< C
-< C Calculate SC interaction energy.
----
->       include 'COMMON.FFIELD'
->       include 'COMMON.DERIV'
->       include 'COMMON.INTERACT'
->       include 'COMMON.SBRIDGE'
->       include 'COMMON.CHAIN'
->       include 'COMMON.VAR'
->       include 'COMMON.CONTROL'
->       include 'COMMON.TIME1'
->       include 'COMMON.MAXGRAD'
-47,65c440
-<         do iint=1,nint_gr(i)
-< cd        write (iout,*) 'i=',i,' iint=',iint,' istart=',istart(i,iint),
-< cd   &                  'iend=',iend(i,iint)
-<           do j=istart(i,iint),iend(i,iint)
-<             itypj=itype(j)
-<             xj=c(1,nres+j)-xi
-<             yj=c(2,nres+j)-yi
-<             zj=c(3,nres+j)-zi
-<             rij=xj*xj+yj*yj+zj*zj
-<             sss=sscale(dsqrt(rij)/sigma(itypi,itypj))
-<             if (sss.lt.1.0d0) then
-<               rrij=1.0D0/rij
-<               fac=rrij**expon2
-<               e1=fac*fac*aa(itypi,itypj)
-<               e2=fac*bb(itypi,itypj)
-<               evdwij=e1+e2
-<               evdw=evdw+(1.0d0-sss)*evdwij
-< C 
-< C Calculate the components of the gradient in DC and X
----
-> C Sum up the components of the Cartesian gradient.
-67,83c442
-<               fac=-rrij*(e1+evdwij)*(1.0d0-sss)
-<               gg(1)=xj*fac
-<               gg(2)=yj*fac
-<               gg(3)=zj*fac
-<               do k=1,3
-<                 gvdwx(k,i)=gvdwx(k,i)-gg(k)
-<                 gvdwx(k,j)=gvdwx(k,j)+gg(k)
-<               enddo
-<               do k=i,j-1
-<                 do l=1,3
-<                   gvdwc(l,k)=gvdwc(l,k)+gg(l)
-<                 enddo
-<               enddo
-<             endif
-<           enddo      ! j
-<         enddo        ! iint
-<       enddo          ! i
----
-> #ifdef SPLITELE
-86,87c445,484
-<           gvdwc(j,i)=expon*gvdwc(j,i)
-<           gvdwx(j,i)=expon*gvdwx(j,i)
----
->           gradc(j,i,icg)=wsc*gvdwc(j,i)+wscp*gvdwc_scp(j,i)+
->      &                welec*gelc(j,i)+wvdwpp*gvdwpp(j,i)+
->      &                wbond*gradb(j,i)+
->      &                wstrain*ghpbc(j,i)+
->      &                wcorr*gradcorr(j,i)+
->      &                wel_loc*gel_loc(j,i)+
->      &                wturn3*gcorr3_turn(j,i)+
->      &                wturn4*gcorr4_turn(j,i)+
->      &                wcorr5*gradcorr5(j,i)+
->      &                wcorr6*gradcorr6(j,i)+
->      &                wturn6*gcorr6_turn(j,i)+
->      &                wsccor*gsccorc(j,i)
->      &               +wscloc*gscloc(j,i)
->           gradx(j,i,icg)=wsc*gvdwx(j,i)+wscp*gradx_scp(j,i)+
->      &                  wbond*gradbx(j,i)+
->      &                  wstrain*ghpbx(j,i)+wcorr*gradxorr(j,i)+
->      &                  wsccor*gsccorx(j,i)
->      &                 +wscloc*gsclocx(j,i)
->         enddo
->       enddo 
-> #else
->       do i=1,nct
->         do j=1,3
->           gradc(j,i,icg)=wsc*gvdwc(j,i)+wscp*gvdwc_scp(j,i)+
->      &                welec*gelc(j,i)+wstrain*ghpbc(j,i)+
->      &                wbond*gradb(j,i)+
->      &                wcorr*gradcorr(j,i)+
->      &                wel_loc*gel_loc(j,i)+
->      &                wturn3*gcorr3_turn(j,i)+
->      &                wturn4*gcorr4_turn(j,i)+
->      &                wcorr5*gradcorr5(j,i)+
->      &                wcorr6*gradcorr6(j,i)+
->      &                wturn6*gcorr6_turn(j,i)+
->      &                wsccor*gsccorc(j,i)
->      &               +wscloc*gscloc(j,i)
->           gradx(j,i,icg)=wsc*gvdwx(j,i)+wscp*gradx_scp(j,i)+
->      &                  wbond*gradbx(j,i)+
->      &                  wstrain*ghpbx(j,i)+wcorr*gradxorr(j,i)+
->      &                  wsccor*gsccorx(j,i)
->      &                 +wscloc*gsclocx(j,i)
-88a486,496
->       enddo 
-> #endif  
->       do i=1,nres-3
->         gloc(i,icg)=gloc(i,icg)+wcorr*gcorr_loc(i)
->      &   +wcorr5*g_corr5_loc(i)
->      &   +wcorr6*g_corr6_loc(i)
->      &   +wturn4*gel_loc_turn4(i)
->      &   +wturn3*gel_loc_turn3(i)
->      &   +wturn6*gel_loc_turn6(i)
->      &   +wel_loc*gel_loc_loc(i)
->      &   +wsccor*gsccor_loc(i)
-90,98c498,790
-< C******************************************************************************
-< C
-< C                              N O T E !!!
-< C
-< C To save time, the factor of EXPON has been extracted from ALL components
-< C of GVDWC and GRADX. Remember to multiply them by this factor before further 
-< C use!
-< C
-< C******************************************************************************
----
-> #ifdef MPI
->       if (nfgtasks.gt.1) then
->         do j=1,3
->           do i=1,nres
->             gradbufc(j,i)=gradc(j,i,icg)
->             gradbufx(j,i)=gradx(j,i,icg)
->           enddo
->         enddo
->         do i=1,4*nres
->           glocbuf(i)=gloc(i,icg)
->         enddo
-> C FG slaves call the following matching MPI_Bcast in ERGASTULUM
->         if (fg_rank.eq.0) call MPI_Bcast(1,1,MPI_INTEGER,
->      &      king,FG_COMM,IERROR)
->         time00=MPI_Wtime()
->         call MPI_Reduce(gradbufc(1,1),gradc(1,1,icg),3*nres,
->      &    MPI_DOUBLE_PRECISION,MPI_SUM,king,FG_COMM,IERR)
->         call MPI_Reduce(gradbufx(1,1),gradx(1,1,icg),3*nres,
->      &    MPI_DOUBLE_PRECISION,MPI_SUM,king,FG_COMM,IERR)
->         call MPI_Reduce(glocbuf(1),gloc(1,icg),4*nres,
->      &    MPI_DOUBLE_PRECISION,MPI_SUM,king,FG_COMM,IERR)
->         time_reduce=time_reduce+MPI_Wtime()-time00
->       endif
-> #endif
->       if (gnorm_check) then
-> c
-> c Compute the maximum elements of the gradient
-> c
->       gvdwc_max=0.0d0
->       gvdwc_scp_max=0.0d0
->       gelc_max=0.0d0
->       gvdwpp_max=0.0d0
->       gradb_max=0.0d0
->       ghpbc_max=0.0d0
->       gradcorr_max=0.0d0
->       gel_loc_max=0.0d0
->       gcorr3_turn_max=0.0d0
->       gcorr4_turn_max=0.0d0
->       gradcorr5_max=0.0d0
->       gradcorr6_max=0.0d0
->       gcorr6_turn_max=0.0d0
->       gsccorc_max=0.0d0
->       gscloc_max=0.0d0
->       gvdwx_max=0.0d0
->       gradx_scp_max=0.0d0
->       ghpbx_max=0.0d0
->       gradxorr_max=0.0d0
->       gsccorx_max=0.0d0
->       gsclocx_max=0.0d0
->       do i=1,nct
->         gvdwc_norm=dsqrt(scalar(gvdwc(1,i),gvdwc(1,i)))
->         if (gvdwc_norm.gt.gvdwc_max) gvdwc_max=gvdwc_norm
->         gvdwc_scp_norm=dsqrt(scalar(gvdwc_scp(1,i),gvdwc_scp(1,i)))
->         if (gvdwc_scp_norm.gt.gvdwc_scp_max) 
->      &   gvdwc_scp_max=gvdwc_scp_norm
->         gelc_norm=dsqrt(scalar(gelc(1,i),gelc(1,i)))
->         if (gelc_norm.gt.gelc_max) gelc_max=gelc_norm
->         gvdwpp_norm=dsqrt(scalar(gvdwpp(1,i),gvdwpp(1,i)))
->         if (gvdwpp_norm.gt.gvdwpp_max) gvdwpp_max=gvdwpp_norm
->         gradb_norm=dsqrt(scalar(gradb(1,i),gradb(1,i)))
->         if (gradb_norm.gt.gradb_max) gradb_max=gradb_norm
->         ghpbc_norm=dsqrt(scalar(ghpbc(1,i),ghpbc(1,i)))
->         if (ghpbc_norm.gt.ghpbc_max) ghpbc_max=ghpbc_norm
->         gradcorr_norm=dsqrt(scalar(gradcorr(1,i),gradcorr(1,i)))
->         if (gradcorr_norm.gt.gradcorr_max) gradcorr_max=gradcorr_norm
->         gel_loc_norm=dsqrt(scalar(gel_loc(1,i),gel_loc(1,i)))
->         if (gel_loc_norm.gt.gel_loc_max) gel_loc_max=gel_loc_norm
->         gcorr3_turn_norm=dsqrt(scalar(gcorr3_turn(1,i),
->      &    gcorr3_turn(1,i)))
->         if (gcorr3_turn_norm.gt.gcorr3_turn_max) 
->      &    gcorr3_turn_max=gcorr3_turn_norm
->         gcorr4_turn_norm=dsqrt(scalar(gcorr4_turn(1,i),
->      &    gcorr4_turn(1,i)))
->         if (gcorr4_turn_norm.gt.gcorr4_turn_max) 
->      &    gcorr4_turn_max=gcorr4_turn_norm
->         gradcorr5_norm=dsqrt(scalar(gradcorr5(1,i),gradcorr5(1,i)))
->         if (gradcorr5_norm.gt.gradcorr5_max) 
->      &    gradcorr5_max=gradcorr5_norm
->         gradcorr6_norm=dsqrt(scalar(gradcorr6(1,i),gradcorr6(1,i)))
->         if (gradcorr6_norm.gt.gradcorr6_max) gcorr6_max=gradcorr6_norm
->         gcorr6_turn_norm=dsqrt(scalar(gcorr6_turn(1,i),
->      &    gcorr6_turn(1,i)))
->         if (gcorr6_turn_norm.gt.gcorr6_turn_max) 
->      &    gcorr6_turn_max=gcorr6_turn_norm
->         gsccorr_norm=dsqrt(scalar(gsccorc(1,i),gsccorc(1,i)))
->         if (gsccorr_norm.gt.gsccorr_max) gsccorr_max=gsccorr_norm
->         gscloc_norm=dsqrt(scalar(gscloc(1,i),gscloc(1,i)))
->         if (gscloc_norm.gt.gscloc_max) gscloc_max=gscloc_norm
->         gvdwx_norm=dsqrt(scalar(gvdwx(1,i),gvdwx(1,i)))
->         if (gvdwx_norm.gt.gvdwx_max) gvdwx_max=gvdwx_norm
->         gradx_scp_norm=dsqrt(scalar(gradx_scp(1,i),gradx_scp(1,i)))
->         if (gradx_scp_norm.gt.gradx_scp_max) 
->      &    gradx_scp_max=gradx_scp_norm
->         ghpbx_norm=dsqrt(scalar(ghpbx(1,i),ghpbx(1,i)))
->         if (ghpbx_norm.gt.ghpbx_max) ghpbx_max=ghpbx_norm
->         gradxorr_norm=dsqrt(scalar(gradxorr(1,i),gradxorr(1,i)))
->         if (gradxorr_norm.gt.gradxorr_max) gradxorr_max=gradxorr_norm
->         gsccorrx_norm=dsqrt(scalar(gsccorx(1,i),gsccorx(1,i)))
->         if (gsccorrx_norm.gt.gsccorrx_max) gsccorrx_max=gsccorrx_norm
->         gsclocx_norm=dsqrt(scalar(gsclocx(1,i),gsclocx(1,i)))
->         if (gsclocx_norm.gt.gsclocx_max) gsclocx_max=gsclocx_norm
->       enddo 
->       if (gradout) then
-> #ifdef AIX
->         open(istat,file=statname,position="append")
-> #else
->         open(istat,file=statname,access="append")
-> #endif
->         write (istat,'(1h#,21f10.2)') gvdwc_max,gvdwc_scp_max,
->      &     gelc_max,gvdwpp_max,gradb_max,ghpbc_max,
->      &     gradcorr_max,gel_loc_max,gcorr3_turn_max,gcorr4_turn_max,
->      &     gradcorr5_max,gradcorr6_max,gcorr6_turn_max,gsccorc_max,
->      &     gscloc_max,gvdwx_max,gradx_scp_max,ghpbx_max,gradxorr_max,
->      &     gsccorx_max,gsclocx_max
->         close(istat)
->         if (gvdwc_max.gt.1.0d4) then
->           write (iout,*) "gvdwc gvdwx gradb gradbx"
->           do i=nnt,nct
->             write(iout,'(i5,4(3f10.2,5x))') i,(gvdwc(j,i),gvdwx(j,i),
->      &        gradb(j,i),gradbx(j,i),j=1,3)
->           enddo
->           call pdbout(0.0d0,'cipiszcze',iout)
->           call flush(iout)
->         endif
->       endif
->       endif
-> #ifdef DEBUG
->       write (iout,*) "gradc gradx gloc"
->       do i=1,nres
->         write (iout,'(i5,3f10.5,5x,3f10.5,5x,f10.5)') 
->      &   i,(gradc(j,i,icg),j=1,3),(gradx(j,i,icg),j=1,3),gloc(i,icg)
->       enddo 
-> #endif
->       return
->       end
-> c-------------------------------------------------------------------------------
->       subroutine rescale_weights(t_bath)
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.FFIELD'
->       include 'COMMON.SBRIDGE'
->       double precision kfac /2.4d0/
->       double precision x,x2,x3,x4,x5,licznik /1.12692801104297249644/
-> c      facT=temp0/t_bath
-> c      facT=2*temp0/(t_bath+temp0)
->       if (rescale_mode.eq.0) then
->         facT=1.0d0
->         facT2=1.0d0
->         facT3=1.0d0
->         facT4=1.0d0
->         facT5=1.0d0
->       else if (rescale_mode.eq.1) then
->         facT=kfac/(kfac-1.0d0+t_bath/temp0)
->         facT2=kfac**2/(kfac**2-1.0d0+(t_bath/temp0)**2)
->         facT3=kfac**3/(kfac**3-1.0d0+(t_bath/temp0)**3)
->         facT4=kfac**4/(kfac**4-1.0d0+(t_bath/temp0)**4)
->         facT5=kfac**5/(kfac**5-1.0d0+(t_bath/temp0)**5)
->       else if (rescale_mode.eq.2) then
->         x=t_bath/temp0
->         x2=x*x
->         x3=x2*x
->         x4=x3*x
->         x5=x4*x
->         facT=licznik/dlog(dexp(x)+dexp(-x))
->         facT2=licznik/dlog(dexp(x2)+dexp(-x2))
->         facT3=licznik/dlog(dexp(x3)+dexp(-x3))
->         facT4=licznik/dlog(dexp(x4)+dexp(-x4))
->         facT5=licznik/dlog(dexp(x5)+dexp(-x5))
->       else
->         write (iout,*) "Wrong RESCALE_MODE",rescale_mode
->         write (*,*) "Wrong RESCALE_MODE",rescale_mode
-> #ifdef MPI
->        call MPI_Finalize(MPI_COMM_WORLD,IERROR)
-> #endif
->        stop 555
->       endif
->       welec=weights(3)*fact
->       wcorr=weights(4)*fact3
->       wcorr5=weights(5)*fact4
->       wcorr6=weights(6)*fact5
->       wel_loc=weights(7)*fact2
->       wturn3=weights(8)*fact2
->       wturn4=weights(9)*fact3
->       wturn6=weights(10)*fact5
->       wtor=weights(13)*fact
->       wtor_d=weights(14)*fact2
->       wsccor=weights(21)*fact
-> 
->       return
->       end
-> C------------------------------------------------------------------------
->       subroutine enerprint(energia)
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.FFIELD'
->       include 'COMMON.SBRIDGE'
->       include 'COMMON.MD'
->       double precision energia(0:n_ene)
->       etot=energia(0)
->       evdw=energia(1)
->       evdw2=energia(2)
-> #ifdef SCP14
->       evdw2=energia(2)+energia(18)
-> #else
->       evdw2=energia(2)
-> #endif
->       ees=energia(3)
-> #ifdef SPLITELE
->       evdw1=energia(16)
-> #endif
->       ecorr=energia(4)
->       ecorr5=energia(5)
->       ecorr6=energia(6)
->       eel_loc=energia(7)
->       eello_turn3=energia(8)
->       eello_turn4=energia(9)
->       eello_turn6=energia(10)
->       ebe=energia(11)
->       escloc=energia(12)
->       etors=energia(13)
->       etors_d=energia(14)
->       ehpb=energia(15)
->       edihcnstr=energia(19)
->       estr=energia(17)
->       Uconst=energia(20)
->       esccor=energia(21)
-> #ifdef SPLITELE
->       write (iout,10) evdw,wsc,evdw2,wscp,ees,welec,evdw1,wvdwpp,
->      &  estr,wbond,ebe,wang,
->      &  escloc,wscloc,etors,wtor,etors_d,wtor_d,ehpb,wstrain,
->      &  ecorr,wcorr,
->      &  ecorr5,wcorr5,ecorr6,wcorr6,eel_loc,wel_loc,eello_turn3,wturn3,
->      &  eello_turn4,wturn4,eello_turn6,wturn6,esccor,wsccor,
->      &  edihcnstr,ebr*nss,
->      &  Uconst,etot
->    10 format (/'Virtual-chain energies:'//
->      & 'EVDW=  ',1pE16.6,' WEIGHT=',1pD16.6,' (SC-SC)'/
->      & 'EVDW2= ',1pE16.6,' WEIGHT=',1pD16.6,' (SC-p)'/
->      & 'EES=   ',1pE16.6,' WEIGHT=',1pD16.6,' (p-p)'/
->      & 'EVDWPP=',1pE16.6,' WEIGHT=',1pD16.6,' (p-p VDW)'/
->      & 'ESTR=  ',1pE16.6,' WEIGHT=',1pD16.6,' (stretching)'/
->      & 'EBE=   ',1pE16.6,' WEIGHT=',1pD16.6,' (bending)'/
->      & 'ESC=   ',1pE16.6,' WEIGHT=',1pD16.6,' (SC local)'/
->      & 'ETORS= ',1pE16.6,' WEIGHT=',1pD16.6,' (torsional)'/
->      & 'ETORSD=',1pE16.6,' WEIGHT=',1pD16.6,' (double torsional)'/
->      & 'EHBP=  ',1pE16.6,' WEIGHT=',1pD16.6,
->      & ' (SS bridges & dist. cnstr.)'/
->      & 'ECORR4=',1pE16.6,' WEIGHT=',1pD16.6,' (multi-body)'/
->      & 'ECORR5=',1pE16.6,' WEIGHT=',1pD16.6,' (multi-body)'/
->      & 'ECORR6=',1pE16.6,' WEIGHT=',1pD16.6,' (multi-body)'/
->      & 'EELLO= ',1pE16.6,' WEIGHT=',1pD16.6,' (electrostatic-local)'/
->      & 'ETURN3=',1pE16.6,' WEIGHT=',1pD16.6,' (turns, 3rd order)'/
->      & 'ETURN4=',1pE16.6,' WEIGHT=',1pD16.6,' (turns, 4th order)'/
->      & 'ETURN6=',1pE16.6,' WEIGHT=',1pD16.6,' (turns, 6th order)'/
->      & 'ESCCOR=',1pE16.6,' WEIGHT=',1pD16.6,' (backbone-rotamer corr)'/
->      & 'EDIHC= ',1pE16.6,' (dihedral angle constraints)'/
->      & 'ESS=   ',1pE16.6,' (disulfide-bridge intrinsic energy)'/
->      & 'UCONST= ',1pE16.6,' (Constraint energy)'/ 
->      & 'ETOT=  ',1pE16.6,' (total)')
-> #else
->       write (iout,10) evdw,wsc,evdw2,wscp,ees,welec,
->      &  estr,wbond,ebe,wang,
->      &  escloc,wscloc,etors,wtor,etors_d,wtor_d,ehpb,wstrain,
->      &  ecorr,wcorr,
->      &  ecorr5,wcorr5,ecorr6,wcorr6,eel_loc,wel_loc,eello_turn3,wturn3,
->      &  eello_turn4,wturn4,eello_turn6,wturn6,esccor,wsccro,edihcnstr,
->      &  ebr*nss,Uconst,etot
->    10 format (/'Virtual-chain energies:'//
->      & 'EVDW=  ',1pE16.6,' WEIGHT=',1pD16.6,' (SC-SC)'/
->      & 'EVDW2= ',1pE16.6,' WEIGHT=',1pD16.6,' (SC-p)'/
->      & 'EES=   ',1pE16.6,' WEIGHT=',1pD16.6,' (p-p)'/
->      & 'ESTR=  ',1pE16.6,' WEIGHT=',1pD16.6,' (stretching)'/
->      & 'EBE=   ',1pE16.6,' WEIGHT=',1pD16.6,' (bending)'/
->      & 'ESC=   ',1pE16.6,' WEIGHT=',1pD16.6,' (SC local)'/
->      & 'ETORS= ',1pE16.6,' WEIGHT=',1pD16.6,' (torsional)'/
->      & 'ETORSD=',1pE16.6,' WEIGHT=',1pD16.6,' (double torsional)'/
->      & 'EHBP=  ',1pE16.6,' WEIGHT=',1pD16.6,
->      & ' (SS bridges & dist. cnstr.)'/
->      & 'ECORR4=',1pE16.6,' WEIGHT=',1pD16.6,' (multi-body)'/
->      & 'ECORR5=',1pE16.6,' WEIGHT=',1pD16.6,' (multi-body)'/
->      & 'ECORR6=',1pE16.6,' WEIGHT=',1pD16.6,' (multi-body)'/
->      & 'EELLO= ',1pE16.6,' WEIGHT=',1pD16.6,' (electrostatic-local)'/
->      & 'ETURN3=',1pE16.6,' WEIGHT=',1pD16.6,' (turns, 3rd order)'/
->      & 'ETURN4=',1pE16.6,' WEIGHT=',1pD16.6,' (turns, 4th order)'/
->      & 'ETURN6=',1pE16.6,' WEIGHT=',1pD16.6,' (turns, 6th order)'/
->      & 'ESCCOR=',1pE16.6,' WEIGHT=',1pD16.6,' (backbone-rotamer corr)'/
->      & 'EDIHC= ',1pE16.6,' (dihedral angle constraints)'/
->      & 'ESS=   ',1pE16.6,' (disulfide-bridge intrinsic energy)'/
->      & 'UCONST=',1pE16.6,' (Constraint energy)'/ 
->      & 'ETOT=  ',1pE16.6,' (total)')
-> #endif
-102c794
-<       subroutine elj_short(evdw)
----
->       subroutine elj(evdw)
-129a822,823
-> C Change 12/1/95
->         num_conti=0
-140a835
-> C Change 12/1/95 to calculate four-body interactions
-142,149c837,850
-<             sss=sscale(dsqrt(rij)/sigma(itypi,itypj))
-<             if (sss.gt.0.0d0) then
-<               rrij=1.0D0/rij
-<               fac=rrij**expon2
-<               e1=fac*fac*aa(itypi,itypj)
-<               e2=fac*bb(itypi,itypj)
-<               evdwij=e1+e2
-<               evdw=evdw+sss*evdwij
----
->             rrij=1.0D0/rij
-> c           write (iout,*)'i=',i,' j=',j,' itypi=',itypi,' itypj=',itypj
->             eps0ij=eps(itypi,itypj)
->             fac=rrij**expon2
->             e1=fac*fac*aa(itypi,itypj)
->             e2=fac*bb(itypi,itypj)
->             evdwij=e1+e2
-> cd          sigm=dabs(aa(itypi,itypj)/bb(itypi,itypj))**(1.0D0/6.0D0)
-> cd          epsi=bb(itypi,itypj)**2/aa(itypi,itypj)
-> cd          write (iout,'(2(a3,i3,2x),6(1pd12.4)/2(3(1pd12.4),5x)/)')
-> cd   &        restyp(itypi),i,restyp(itypj),j,aa(itypi,itypj),
-> cd   &        bb(itypi,itypj),1.0D0/dsqrt(rrij),evdwij,epsi,sigm,
-> cd   &        (c(k,i),k=1,3),(c(k,j),k=1,3)
->             evdw=evdw+evdwij
-153,164c854,864
-<               fac=-rrij*(e1+evdwij)*sss
-<               gg(1)=xj*fac
-<               gg(2)=yj*fac
-<               gg(3)=zj*fac
-<               do k=1,3
-<                 gvdwx(k,i)=gvdwx(k,i)-gg(k)
-<                 gvdwx(k,j)=gvdwx(k,j)+gg(k)
-<               enddo
-<               do k=i,j-1
-<                 do l=1,3
-<                   gvdwc(l,k)=gvdwc(l,k)+gg(l)
-<                 enddo
----
->             fac=-rrij*(e1+evdwij)
->             gg(1)=xj*fac
->             gg(2)=yj*fac
->             gg(3)=zj*fac
->             do k=1,3
->               gvdwx(k,i)=gvdwx(k,i)-gg(k)
->               gvdwx(k,j)=gvdwx(k,j)+gg(k)
->             enddo
->             do k=i,j-1
->               do l=1,3
->                 gvdwc(l,k)=gvdwc(l,k)+gg(l)
-165a866,921
->             enddo
-> C
-> C 12/1/95, revised on 5/20/97
-> C
-> C Calculate the contact function. The ith column of the array JCONT will 
-> C contain the numbers of atoms that make contacts with the atom I (of numbers
-> C greater than I). The arrays FACONT and GACONT will contain the values of
-> C the contact function and its derivative.
-> C
-> C Uncomment next line, if the correlation interactions include EVDW explicitly.
-> c           if (j.gt.i+1 .and. evdwij.le.0.0D0) then
-> C Uncomment next line, if the correlation interactions are contact function only
->             if (j.gt.i+1.and. eps0ij.gt.0.0D0) then
->               rij=dsqrt(rij)
->               sigij=sigma(itypi,itypj)
->               r0ij=rs0(itypi,itypj)
-> C
-> C Check whether the SC's are not too far to make a contact.
-> C
->               rcut=1.5d0*r0ij
->               call gcont(rij,rcut,1.0d0,0.2d0*rcut,fcont,fprimcont)
-> C Add a new contact, if the SC's are close enough, but not too close (r<sigma).
-> C
->               if (fcont.gt.0.0D0) then
-> C If the SC-SC distance if close to sigma, apply spline.
-> cAdam           call gcont(-rij,-1.03d0*sigij,2.0d0*sigij,1.0d0,
-> cAdam &             fcont1,fprimcont1)
-> cAdam           fcont1=1.0d0-fcont1
-> cAdam           if (fcont1.gt.0.0d0) then
-> cAdam             fprimcont=fprimcont*fcont1+fcont*fprimcont1
-> cAdam             fcont=fcont*fcont1
-> cAdam           endif
-> C Uncomment following 4 lines to have the geometric average of the epsilon0's
-> cga             eps0ij=1.0d0/dsqrt(eps0ij)
-> cga             do k=1,3
-> cga               gg(k)=gg(k)*eps0ij
-> cga             enddo
-> cga             eps0ij=-evdwij*eps0ij
-> C Uncomment for AL's type of SC correlation interactions.
-> cadam           eps0ij=-evdwij
->                 num_conti=num_conti+1
->                 jcont(num_conti,i)=j
->                 facont(num_conti,i)=fcont*eps0ij
->                 fprimcont=eps0ij*fprimcont/rij
->                 fcont=expon*fcont
-> cAdam           gacont(1,num_conti,i)=-fprimcont*xj+fcont*gg(1)
-> cAdam           gacont(2,num_conti,i)=-fprimcont*yj+fcont*gg(2)
-> cAdam           gacont(3,num_conti,i)=-fprimcont*zj+fcont*gg(3)
-> C Uncomment following 3 lines for Skolnick's type of SC correlation.
->                 gacont(1,num_conti,i)=-fprimcont*xj
->                 gacont(2,num_conti,i)=-fprimcont*yj
->                 gacont(3,num_conti,i)=-fprimcont*zj
-> cd              write (iout,'(2i5,2f10.5)') i,j,rij,facont(num_conti,i)
-> cd              write (iout,'(2i3,3f10.5)') 
-> cd   &           i,j,(gacont(kk,num_conti,i),kk=1,3)
->               endif
-168a925,926
-> C Change 12/1/95
->         num_cont(i)=num_conti
-188c946
-<       subroutine eljk_long(evdw)
----
->       subroutine eljk(evdw)
-227,243c985,997
-<             sss=sscale(rij/sigma(itypi,itypj))
-< 
-<             if (sss.lt.1.0d0) then
-< 
-<               r_shift_inv=1.0D0/(rij+r0(itypi,itypj)-sigma(itypi,itypj))
-<               fac=r_shift_inv**expon
-<               e1=fac*fac*aa(itypi,itypj)
-<               e2=fac*bb(itypi,itypj)
-<               evdwij=e_augm+e1+e2
-< cd            sigm=dabs(aa(itypi,itypj)/bb(itypi,itypj))**(1.0D0/6.0D0)
-< cd            epsi=bb(itypi,itypj)**2/aa(itypi,itypj)
-< cd            write (iout,'(2(a3,i3,2x),8(1pd12.4)/2(3(1pd12.4),5x)/)')
-< cd   &          restyp(itypi),i,restyp(itypj),j,aa(itypi,itypj),
-< cd   &          bb(itypi,itypj),augm(itypi,itypj),epsi,sigm,
-< cd   &          sigma(itypi,itypj),1.0D0/dsqrt(rrij),evdwij,
-< cd   &          (c(k,i),k=1,3),(c(k,j),k=1,3)
-<               evdw=evdw+evdwij*(1.0d0-sss)
----
->             r_shift_inv=1.0D0/(rij+r0(itypi,itypj)-sigma(itypi,itypj))
->             fac=r_shift_inv**expon
->             e1=fac*fac*aa(itypi,itypj)
->             e2=fac*bb(itypi,itypj)
->             evdwij=e_augm+e1+e2
-> cd          sigm=dabs(aa(itypi,itypj)/bb(itypi,itypj))**(1.0D0/6.0D0)
-> cd          epsi=bb(itypi,itypj)**2/aa(itypi,itypj)
-> cd          write (iout,'(2(a3,i3,2x),8(1pd12.4)/2(3(1pd12.4),5x)/)')
-> cd   &        restyp(itypi),i,restyp(itypj),j,aa(itypi,itypj),
-> cd   &        bb(itypi,itypj),augm(itypi,itypj),epsi,sigm,
-> cd   &        sigma(itypi,itypj),1.0D0/dsqrt(rrij),evdwij,
-> cd   &        (c(k,i),k=1,3),(c(k,j),k=1,3)
->             evdw=evdw+evdwij
-247,259c1001,1011
-<               fac=-2.0D0*rrij*e_augm-r_inv_ij*r_shift_inv*(e1+e1+e2)
-<               fac=fac*(1.0d0-sss)
-<               gg(1)=xj*fac
-<               gg(2)=yj*fac
-<               gg(3)=zj*fac
-<               do k=1,3
-<                 gvdwx(k,i)=gvdwx(k,i)-gg(k)
-<                 gvdwx(k,j)=gvdwx(k,j)+gg(k)
-<               enddo
-<               do k=i,j-1
-<                 do l=1,3
-<                   gvdwc(l,k)=gvdwc(l,k)+gg(l)
-<                 enddo
----
->             fac=-2.0D0*rrij*e_augm-r_inv_ij*r_shift_inv*(e1+e1+e2)
->             gg(1)=xj*fac
->             gg(2)=yj*fac
->             gg(3)=zj*fac
->             do k=1,3
->               gvdwx(k,i)=gvdwx(k,i)-gg(k)
->               gvdwx(k,j)=gvdwx(k,j)+gg(k)
->             enddo
->             do k=i,j-1
->               do l=1,3
->                 gvdwc(l,k)=gvdwc(l,k)+gg(l)
-261,263c1013
-< 
-<             endif 
-< 
----
->             enddo
-276c1026
-<       subroutine eljk_short(evdw)
----
->       subroutine ebp(evdw)
-279c1029
-< C assuming the LJK potential of interaction.
----
-> C assuming the Berne-Pechukas potential of interaction.
-287a1038
->       include 'COMMON.NAMES'
-290,382c1041,1044
-<       include 'COMMON.NAMES'
-<       dimension gg(3)
-<       logical scheck
-< c     print *,'Entering ELJK nnt=',nnt,' nct=',nct,' expon=',expon
-<       evdw=0.0D0
-<       do i=iatsc_s,iatsc_e
-<         itypi=itype(i)
-<         itypi1=itype(i+1)
-<         xi=c(1,nres+i)
-<         yi=c(2,nres+i)
-<         zi=c(3,nres+i)
-< C
-< C Calculate SC interaction energy.
-< C
-<         do iint=1,nint_gr(i)
-<           do j=istart(i,iint),iend(i,iint)
-<             itypj=itype(j)
-<             xj=c(1,nres+j)-xi
-<             yj=c(2,nres+j)-yi
-<             zj=c(3,nres+j)-zi
-<             rrij=1.0D0/(xj*xj+yj*yj+zj*zj)
-<             fac_augm=rrij**expon
-<             e_augm=augm(itypi,itypj)*fac_augm
-<             r_inv_ij=dsqrt(rrij)
-<             rij=1.0D0/r_inv_ij 
-<             sss=sscale(rij/sigma(itypi,itypj))
-< 
-<             if (sss.gt.0.0d0) then
-< 
-<               r_shift_inv=1.0D0/(rij+r0(itypi,itypj)-sigma(itypi,itypj))
-<               fac=r_shift_inv**expon
-<               e1=fac*fac*aa(itypi,itypj)
-<               e2=fac*bb(itypi,itypj)
-<               evdwij=e_augm+e1+e2
-< cd            sigm=dabs(aa(itypi,itypj)/bb(itypi,itypj))**(1.0D0/6.0D0)
-< cd            epsi=bb(itypi,itypj)**2/aa(itypi,itypj)
-< cd            write (iout,'(2(a3,i3,2x),8(1pd12.4)/2(3(1pd12.4),5x)/)')
-< cd   &          restyp(itypi),i,restyp(itypj),j,aa(itypi,itypj),
-< cd   &          bb(itypi,itypj),augm(itypi,itypj),epsi,sigm,
-< cd   &          sigma(itypi,itypj),1.0D0/dsqrt(rrij),evdwij,
-< cd   &          (c(k,i),k=1,3),(c(k,j),k=1,3)
-<               evdw=evdw+evdwij*sss
-< C 
-< C Calculate the components of the gradient in DC and X
-< C
-<               fac=-2.0D0*rrij*e_augm-r_inv_ij*r_shift_inv*(e1+e1+e2)
-<               fac=fac*sss
-<               gg(1)=xj*fac
-<               gg(2)=yj*fac
-<               gg(3)=zj*fac
-<               do k=1,3
-<                 gvdwx(k,i)=gvdwx(k,i)-gg(k)
-<                 gvdwx(k,j)=gvdwx(k,j)+gg(k)
-<               enddo
-<               do k=i,j-1
-<                 do l=1,3
-<                   gvdwc(l,k)=gvdwc(l,k)+gg(l)
-<                 enddo
-<               enddo
-< 
-<             endif 
-< 
-<           enddo      ! j
-<         enddo        ! iint
-<       enddo          ! i
-<       do i=1,nct
-<         do j=1,3
-<           gvdwc(j,i)=expon*gvdwc(j,i)
-<           gvdwx(j,i)=expon*gvdwx(j,i)
-<         enddo
-<       enddo
-<       return
-<       end
-< C-----------------------------------------------------------------------------
-<       subroutine ebp_long(evdw)
-< C
-< C This subroutine calculates the interaction energy of nonbonded side chains
-< C assuming the Berne-Pechukas potential of interaction.
-< C
-<       implicit real*8 (a-h,o-z)
-<       include 'DIMENSIONS'
-<       include 'COMMON.GEO'
-<       include 'COMMON.VAR'
-<       include 'COMMON.LOCAL'
-<       include 'COMMON.CHAIN'
-<       include 'COMMON.DERIV'
-<       include 'COMMON.NAMES'
-<       include 'COMMON.INTERACT'
-<       include 'COMMON.IOUNITS'
-<       include 'COMMON.CALC'
-<       common /srutu/ icall
-< c     double precision rrsave(maxdim)
-<       logical lprn
----
->       include 'COMMON.CALC'
->       common /srutu/ icall
-> c     double precision rrsave(maxdim)
->       logical lprn
-444,447d1105
-<             sss=sscale(1.0d0/(rij*sigmaii(itypi,itypj)))
-< 
-<             if (sss.lt.1.0d0) then
-< 
-449c1107
-<               call sc_angular
----
->             call sc_angular
-452,462c1110,1120
-<               fac=(rrij*sigsq)**expon2
-<               e1=fac*fac*aa(itypi,itypj)
-<               e2=fac*bb(itypi,itypj)
-<               evdwij=eps1*eps2rt*eps3rt*(e1+e2)
-<               eps2der=evdwij*eps3rt
-<               eps3der=evdwij*eps2rt
-<               evdwij=evdwij*eps2rt*eps3rt
-<               evdw=evdw+evdwij*(1.0d0-sss)
-<               if (lprn) then
-<               sigm=dabs(aa(itypi,itypj)/bb(itypi,itypj))**(1.0D0/6.0D0)
-<               epsi=bb(itypi,itypj)**2/aa(itypi,itypj)
----
->             fac=(rrij*sigsq)**expon2
->             e1=fac*fac*aa(itypi,itypj)
->             e2=fac*bb(itypi,itypj)
->             evdwij=eps1*eps2rt*eps3rt*(e1+e2)
->             eps2der=evdwij*eps3rt
->             eps3der=evdwij*eps2rt
->             evdwij=evdwij*eps2rt*eps3rt
->             evdw=evdw+evdwij
->             if (lprn) then
->             sigm=dabs(aa(itypi,itypj)/bb(itypi,itypj))**(1.0D0/6.0D0)
->             epsi=bb(itypi,itypj)**2/aa(itypi,itypj)
-469,482d1126
-<               endif
-< C Calculate gradient components.
-<               e1=e1*eps1*eps2rt**2*eps3rt**2
-<               fac=-expon*(e1+evdwij)
-<               sigder=fac/sigsq
-<               fac=rrij*fac
-< C Calculate radial part of the gradient
-<               gg(1)=xj*fac
-<               gg(2)=yj*fac
-<               gg(3)=zj*fac
-< C Calculate the angular part of the gradient and sum add the contributions
-< C to the appropriate components of the Cartesian gradient.
-<               call sc_grad_scale(1.0d0-sss)
-< 
-484,597d1127
-< 
-<           enddo      ! j
-<         enddo        ! iint
-<       enddo          ! i
-< c     stop
-<       return
-<       end
-< C-----------------------------------------------------------------------------
-<       subroutine ebp_short(evdw)
-< C
-< C This subroutine calculates the interaction energy of nonbonded side chains
-< C assuming the Berne-Pechukas potential of interaction.
-< C
-<       implicit real*8 (a-h,o-z)
-<       include 'DIMENSIONS'
-<       include 'COMMON.GEO'
-<       include 'COMMON.VAR'
-<       include 'COMMON.LOCAL'
-<       include 'COMMON.CHAIN'
-<       include 'COMMON.DERIV'
-<       include 'COMMON.NAMES'
-<       include 'COMMON.INTERACT'
-<       include 'COMMON.IOUNITS'
-<       include 'COMMON.CALC'
-<       common /srutu/ icall
-< c     double precision rrsave(maxdim)
-<       logical lprn
-<       evdw=0.0D0
-< c     print *,'Entering EBP nnt=',nnt,' nct=',nct,' expon=',expon
-<       evdw=0.0D0
-< c     if (icall.eq.0) then
-< c       lprn=.true.
-< c     else
-<         lprn=.false.
-< c     endif
-<       ind=0
-<       do i=iatsc_s,iatsc_e
-<         itypi=itype(i)
-<         itypi1=itype(i+1)
-<         xi=c(1,nres+i)
-<         yi=c(2,nres+i)
-<         zi=c(3,nres+i)
-<         dxi=dc_norm(1,nres+i)
-<         dyi=dc_norm(2,nres+i)
-<         dzi=dc_norm(3,nres+i)
-< c        dsci_inv=dsc_inv(itypi)
-<         dsci_inv=vbld_inv(i+nres)
-< C
-< C Calculate SC interaction energy.
-< C
-<         do iint=1,nint_gr(i)
-<           do j=istart(i,iint),iend(i,iint)
-<             ind=ind+1
-<             itypj=itype(j)
-< c            dscj_inv=dsc_inv(itypj)
-<             dscj_inv=vbld_inv(j+nres)
-<             chi1=chi(itypi,itypj)
-<             chi2=chi(itypj,itypi)
-<             chi12=chi1*chi2
-<             chip1=chip(itypi)
-<             chip2=chip(itypj)
-<             chip12=chip1*chip2
-<             alf1=alp(itypi)
-<             alf2=alp(itypj)
-<             alf12=0.5D0*(alf1+alf2)
-< C For diagnostics only!!!
-< c           chi1=0.0D0
-< c           chi2=0.0D0
-< c           chi12=0.0D0
-< c           chip1=0.0D0
-< c           chip2=0.0D0
-< c           chip12=0.0D0
-< c           alf1=0.0D0
-< c           alf2=0.0D0
-< c           alf12=0.0D0
-<             xj=c(1,nres+j)-xi
-<             yj=c(2,nres+j)-yi
-<             zj=c(3,nres+j)-zi
-<             dxj=dc_norm(1,nres+j)
-<             dyj=dc_norm(2,nres+j)
-<             dzj=dc_norm(3,nres+j)
-<             rrij=1.0D0/(xj*xj+yj*yj+zj*zj)
-< cd          if (icall.eq.0) then
-< cd            rrsave(ind)=rrij
-< cd          else
-< cd            rrij=rrsave(ind)
-< cd          endif
-<             rij=dsqrt(rrij)
-<             sss=sscale(1.0d0/(rij*sigmaii(itypi,itypj)))
-< 
-<             if (sss.gt.0.0d0) then
-< 
-< C Calculate the angle-dependent terms of energy & contributions to derivatives.
-<               call sc_angular
-< C Calculate whole angle-dependent part of epsilon and contributions
-< C to its derivatives
-<               fac=(rrij*sigsq)**expon2
-<               e1=fac*fac*aa(itypi,itypj)
-<               e2=fac*bb(itypi,itypj)
-<               evdwij=eps1*eps2rt*eps3rt*(e1+e2)
-<               eps2der=evdwij*eps3rt
-<               eps3der=evdwij*eps2rt
-<               evdwij=evdwij*eps2rt*eps3rt
-<               evdw=evdw+evdwij*sss
-<               if (lprn) then
-<               sigm=dabs(aa(itypi,itypj)/bb(itypi,itypj))**(1.0D0/6.0D0)
-<               epsi=bb(itypi,itypj)**2/aa(itypi,itypj)
-< cd            write (iout,'(2(a3,i3,2x),15(0pf7.3))')
-< cd     &        restyp(itypi),i,restyp(itypj),j,
-< cd     &        epsi,sigm,chi1,chi2,chip1,chip2,
-< cd     &        eps1,eps2rt**2,eps3rt**2,1.0D0/dsqrt(sigsq),
-< cd     &        om1,om2,om12,1.0D0/dsqrt(rrij),
-< cd     &        evdwij
-<               endif
-599,602c1129,1132
-<               e1=e1*eps1*eps2rt**2*eps3rt**2
-<               fac=-expon*(e1+evdwij)
-<               sigder=fac/sigsq
-<               fac=rrij*fac
----
->             e1=e1*eps1*eps2rt**2*eps3rt**2
->             fac=-expon*(e1+evdwij)
->             sigder=fac/sigsq
->             fac=rrij*fac
-604,606c1134,1136
-<               gg(1)=xj*fac
-<               gg(2)=yj*fac
-<               gg(3)=zj*fac
----
->             gg(1)=xj*fac
->             gg(2)=yj*fac
->             gg(3)=zj*fac
-609,612c1139
-<               call sc_grad_scale(sss)
-< 
-<             endif
-< 
----
->             call sc_grad
-620c1147
-<       subroutine egb_long(evdw)
----
->       subroutine egb(evdw)
-701,706d1227
-<             sss=sscale(1.0d0/(rij*sigmaii(itypi,itypj)))
-< c            write(iout,*) "long",i,itypi,j,itypj," rij",1.0d0/rij,
-< c     &          " sigmaii",sigmaii(itypi,itypj)," sss",sss
-< 
-<             if (sss.lt.1.0d0) then
-< 
-709,712c1230,1233
-<               call sc_angular
-<               sigsq=1.0D0/sigsq
-<               sig=sig0ij*dsqrt(sigsq)
-<               rij_shift=1.0D0/rij-sig+sig0ij
----
->             call sc_angular
->             sigsq=1.0D0/sigsq
->             sig=sig0ij*dsqrt(sigsq)
->             rij_shift=1.0D0/rij-sig+sig0ij
-714c1235
-< c              rij_shift=1.2*sig0ij
----
-> c            rij_shift=1.2*sig0ij
-716,723c1237,1244
-<               if (rij_shift.le.0.0D0) then
-<                 evdw=1.0D20
-< cd                write (iout,'(2(a3,i3,2x),17(0pf7.3))')
-< cd     &          restyp(itypi),i,restyp(itypj),j,
-< cd     &          rij_shift,1.0D0/rij,sig,sig0ij,sigsq,1-dsqrt(sigsq) 
-<                 return
-<               endif
-<               sigder=-sig*sigsq
----
->             if (rij_shift.le.0.0D0) then
->               evdw=1.0D20
-> cd              write (iout,'(2(a3,i3,2x),17(0pf7.3))')
-> cd     &        restyp(itypi),i,restyp(itypj),j,
-> cd     &        rij_shift,1.0D0/rij,sig,sig0ij,sigsq,1-dsqrt(sigsq) 
->               return
->             endif
->             sigder=-sig*sigsq
-725,732c1246,1253
-<               rij_shift=1.0D0/rij_shift 
-<               fac=rij_shift**expon
-<               e1=fac*fac*aa(itypi,itypj)
-<               e2=fac*bb(itypi,itypj)
-<               evdwij=eps1*eps2rt*eps3rt*(e1+e2)
-<               eps2der=evdwij*eps3rt
-<               eps3der=evdwij*eps2rt
-< c              write (iout,*) "sigsq",sigsq," sig",sig," eps2rt",eps2rt,
----
->             rij_shift=1.0D0/rij_shift 
->             fac=rij_shift**expon
->             e1=fac*fac*aa(itypi,itypj)
->             e2=fac*bb(itypi,itypj)
->             evdwij=eps1*eps2rt*eps3rt*(e1+e2)
->             eps2der=evdwij*eps3rt
->             eps3der=evdwij*eps2rt
-> c            write (iout,*) "sigsq",sigsq," sig",sig," eps2rt",eps2rt,
-734,746c1255,1266
-<               evdwij=evdwij*eps2rt*eps3rt
-<               evdw=evdw+evdwij*(1.0d0-sss)
-< c              write (iout,*) "evdwij",evdwij," evdw",evdw
-<               if (lprn) then
-<               sigm=dabs(aa(itypi,itypj)/bb(itypi,itypj))**(1.0D0/6.0D0)
-<               epsi=bb(itypi,itypj)**2/aa(itypi,itypj)
-<               write (iout,'(2(a3,i3,2x),17(0pf7.3))')
-<      &          restyp(itypi),i,restyp(itypj),j,
-<      &          epsi,sigm,chi1,chi2,chip1,chip2,
-<      &          eps1,eps2rt**2,eps3rt**2,sig,sig0ij,
-<      &          om1,om2,om12,1.0D0/rij,1.0D0/rij_shift,
-<      &          evdwij
-<               endif
----
->             evdwij=evdwij*eps2rt*eps3rt
->             evdw=evdw+evdwij
->             if (lprn) then
->             sigm=dabs(aa(itypi,itypj)/bb(itypi,itypj))**(1.0D0/6.0D0)
->             epsi=bb(itypi,itypj)**2/aa(itypi,itypj)
->             write (iout,'(2(a3,i3,2x),17(0pf7.3))')
->      &        restyp(itypi),i,restyp(itypj),j,
->      &        epsi,sigm,chi1,chi2,chip1,chip2,
->      &        eps1,eps2rt**2,eps3rt**2,sig,sig0ij,
->      &        om1,om2,om12,1.0D0/rij,1.0D0/rij_shift,
->      &        evdwij
->             endif
-748c1268
-<               if (energy_dec) write (iout,'(a6,2i5,0pf7.3)') 
----
->             if (energy_dec) write (iout,'(a6,2i5,0pf7.3)') 
-752,756c1272,1276
-<               e1=e1*eps1*eps2rt**2*eps3rt**2
-<               fac=-expon*(e1+evdwij)*rij_shift
-<               sigder=fac*sigder
-<               fac=rij*fac
-< c              fac=0.0d0
----
->             e1=e1*eps1*eps2rt**2*eps3rt**2
->             fac=-expon*(e1+evdwij)*rij_shift
->             sigder=fac*sigder
->             fac=rij*fac
-> c            fac=0.0d0
-758,760c1278,1280
-<               gg(1)=xj*fac
-<               gg(2)=yj*fac
-<               gg(3)=zj*fac
----
->             gg(1)=xj*fac
->             gg(2)=yj*fac
->             gg(3)=zj*fac
-762,765c1282
-<               call sc_grad_scale(1.0d0-sss)
-< 
-<             endif
-< 
----
->             call sc_grad
-773c1290
-<       subroutine egb_short(evdw)
----
->       subroutine egbv(evdw)
-776c1293
-< C assuming the Gay-Berne potential of interaction.
----
-> C assuming the Gay-Berne-Vorobjev potential of interaction.
-789c1306
-<       include 'COMMON.CONTROL'
----
->       common /srutu/ icall
-792d1308
-< ccccc      energy_dec=.false.
-796c1312
-< c     if (icall.eq.0) lprn=.false.
----
-> c     if (icall.eq.0) lprn=.true.
-809,810d1324
-< c        write (iout,*) "i",i,dsc_inv(itypi),dsci_inv,1.0d0/vbld(i+nres)
-< c        write (iout,*) "dcnori",dxi*dxi+dyi*dyi+dzi*dzi
-820,822d1333
-< c            write (iout,*) "j",j,dsc_inv(itypj),dscj_inv,
-< c     &       1.0d0/vbld(j+nres)
-< c            write (iout,*) "i",i," j", j," itype",itype(i),itype(j)
-823a1335
->             r0ij=r0(itypi,itypj)
-849,851d1360
-< c            write (iout,*) "dcnorj",dxi*dxi+dyi*dyi+dzi*dzi
-< c            write (iout,*) "j",j," dc_norm",
-< c     &       dc_norm(1,nres+j),dc_norm(2,nres+j),dc_norm(3,nres+j)
-854,858d1362
-<             sss=sscale(1.0d0/(rij*sigmaii(itypi,itypj)))
-< c            write(iout,*) "short",i,itypi,j,itypj," rij",1.0d0/rij,
-< c     &          " sigmaii",sigmaii(itypi,itypj)," sss",sss
-<             if (sss.gt.0.0d0) then
-< 
-861,866c1365,1368
-<               call sc_angular
-<               sigsq=1.0D0/sigsq
-<               sig=sig0ij*dsqrt(sigsq)
-<               rij_shift=1.0D0/rij-sig+sig0ij
-< c for diagnostics; uncomment
-< c              rij_shift=1.2*sig0ij
----
->             call sc_angular
->             sigsq=1.0D0/sigsq
->             sig=sig0ij*dsqrt(sigsq)
->             rij_shift=1.0D0/rij-sig+r0ij
-868,875c1370,1374
-<               if (rij_shift.le.0.0D0) then
-<                 evdw=1.0D20
-< cd                write (iout,'(2(a3,i3,2x),17(0pf7.3))')
-< cd     &          restyp(itypi),i,restyp(itypj),j,
-< cd     &          rij_shift,1.0D0/rij,sig,sig0ij,sigsq,1-dsqrt(sigsq) 
-<                 return
-<               endif
-<               sigder=-sig*sigsq
----
->             if (rij_shift.le.0.0D0) then
->               evdw=1.0D20
->               return
->             endif
->             sigder=-sig*sigsq
-877,902c1376,1397
-<               rij_shift=1.0D0/rij_shift 
-<               fac=rij_shift**expon
-<               e1=fac*fac*aa(itypi,itypj)
-<               e2=fac*bb(itypi,itypj)
-<               evdwij=eps1*eps2rt*eps3rt*(e1+e2)
-<               eps2der=evdwij*eps3rt
-<               eps3der=evdwij*eps2rt
-< c              write (iout,*) "sigsq",sigsq," sig",sig," eps2rt",eps2rt,
-< c     &        " eps3rt",eps3rt," eps1",eps1," e1",e1," e2",e2
-<               evdwij=evdwij*eps2rt*eps3rt
-<               evdw=evdw+evdwij*sss
-< c              write (iout,*) "evdwij",evdwij," evdw",evdw
-<               if (lprn) then
-<               sigm=dabs(aa(itypi,itypj)/bb(itypi,itypj))**(1.0D0/6.0D0)
-<               epsi=bb(itypi,itypj)**2/aa(itypi,itypj)
-<               write (iout,'(2(a3,i3,2x),17(0pf7.3))')
-<      &          restyp(itypi),i,restyp(itypj),j,
-<      &          epsi,sigm,chi1,chi2,chip1,chip2,
-<      &          eps1,eps2rt**2,eps3rt**2,sig,sig0ij,
-<      &          om1,om2,om12,1.0D0/rij,1.0D0/rij_shift,
-<      &          evdwij
-<               endif
-< 
-<               if (energy_dec) write (iout,'(a6,2i5,0pf7.3)') 
-<      &                        'evdw',i,j,evdwij
-< 
----
->             rij_shift=1.0D0/rij_shift 
->             fac=rij_shift**expon
->             e1=fac*fac*aa(itypi,itypj)
->             e2=fac*bb(itypi,itypj)
->             evdwij=eps1*eps2rt*eps3rt*(e1+e2)
->             eps2der=evdwij*eps3rt
->             eps3der=evdwij*eps2rt
->             fac_augm=rrij**expon
->             e_augm=augm(itypi,itypj)*fac_augm
->             evdwij=evdwij*eps2rt*eps3rt
->             evdw=evdw+evdwij+e_augm
->             if (lprn) then
->             sigm=dabs(aa(itypi,itypj)/bb(itypi,itypj))**(1.0D0/6.0D0)
->             epsi=bb(itypi,itypj)**2/aa(itypi,itypj)
->             write (iout,'(2(a3,i3,2x),17(0pf7.3))')
->      &        restyp(itypi),i,restyp(itypj),j,
->      &        epsi,sigm,sig,(augm(itypi,itypj)/epsi)**(1.0D0/12.0D0),
->      &        chi1,chi2,chip1,chip2,
->      &        eps1,eps2rt**2,eps3rt**2,
->      &        om1,om2,om12,1.0D0/rij,1.0D0/rij_shift,
->      &        evdwij+e_augm
->             endif
-904,908c1399,1402
-<               e1=e1*eps1*eps2rt**2*eps3rt**2
-<               fac=-expon*(e1+evdwij)*rij_shift
-<               sigder=fac*sigder
-<               fac=rij*fac
-< c              fac=0.0d0
----
->             e1=e1*eps1*eps2rt**2*eps3rt**2
->             fac=-expon*(e1+evdwij)*rij_shift
->             sigder=fac*sigder
->             fac=rij*fac-2*expon*rrij*e_augm
-910,912c1404,1406
-<               gg(1)=xj*fac
-<               gg(2)=yj*fac
-<               gg(3)=zj*fac
----
->             gg(1)=xj*fac
->             gg(2)=yj*fac
->             gg(3)=zj*fac
-914,917c1408
-<               call sc_grad_scale(sss)
-< 
-<             endif
-< 
----
->             call sc_grad
-921,922d1411
-< cccc      energy_dec=.false.
-<       return
-925,1189c1414,1482
-<       subroutine egbv_long(evdw)
-< C
-< C This subroutine calculates the interaction energy of nonbonded side chains
-< C assuming the Gay-Berne-Vorobjev potential of interaction.
-< C
-<       implicit real*8 (a-h,o-z)
-<       include 'DIMENSIONS'
-<       include 'COMMON.GEO'
-<       include 'COMMON.VAR'
-<       include 'COMMON.LOCAL'
-<       include 'COMMON.CHAIN'
-<       include 'COMMON.DERIV'
-<       include 'COMMON.NAMES'
-<       include 'COMMON.INTERACT'
-<       include 'COMMON.IOUNITS'
-<       include 'COMMON.CALC'
-<       common /srutu/ icall
-<       logical lprn
-<       evdw=0.0D0
-< c     print *,'Entering EGB nnt=',nnt,' nct=',nct,' expon=',expon
-<       evdw=0.0D0
-<       lprn=.false.
-< c     if (icall.eq.0) lprn=.true.
-<       ind=0
-<       do i=iatsc_s,iatsc_e
-<         itypi=itype(i)
-<         itypi1=itype(i+1)
-<         xi=c(1,nres+i)
-<         yi=c(2,nres+i)
-<         zi=c(3,nres+i)
-<         dxi=dc_norm(1,nres+i)
-<         dyi=dc_norm(2,nres+i)
-<         dzi=dc_norm(3,nres+i)
-< c        dsci_inv=dsc_inv(itypi)
-<         dsci_inv=vbld_inv(i+nres)
-< C
-< C Calculate SC interaction energy.
-< C
-<         do iint=1,nint_gr(i)
-<           do j=istart(i,iint),iend(i,iint)
-<             ind=ind+1
-<             itypj=itype(j)
-< c            dscj_inv=dsc_inv(itypj)
-<             dscj_inv=vbld_inv(j+nres)
-<             sig0ij=sigma(itypi,itypj)
-<             r0ij=r0(itypi,itypj)
-<             chi1=chi(itypi,itypj)
-<             chi2=chi(itypj,itypi)
-<             chi12=chi1*chi2
-<             chip1=chip(itypi)
-<             chip2=chip(itypj)
-<             chip12=chip1*chip2
-<             alf1=alp(itypi)
-<             alf2=alp(itypj)
-<             alf12=0.5D0*(alf1+alf2)
-< C For diagnostics only!!!
-< c           chi1=0.0D0
-< c           chi2=0.0D0
-< c           chi12=0.0D0
-< c           chip1=0.0D0
-< c           chip2=0.0D0
-< c           chip12=0.0D0
-< c           alf1=0.0D0
-< c           alf2=0.0D0
-< c           alf12=0.0D0
-<             xj=c(1,nres+j)-xi
-<             yj=c(2,nres+j)-yi
-<             zj=c(3,nres+j)-zi
-<             dxj=dc_norm(1,nres+j)
-<             dyj=dc_norm(2,nres+j)
-<             dzj=dc_norm(3,nres+j)
-<             rrij=1.0D0/(xj*xj+yj*yj+zj*zj)
-<             rij=dsqrt(rrij)
-< 
-<             sss=sscale(1.0d0/(rij*sigmaii(itypi,itypj)))
-< 
-<             if (sss.lt.1.0d0) then
-< 
-< C Calculate angle-dependent terms of energy and contributions to their
-< C derivatives.
-<               call sc_angular
-<               sigsq=1.0D0/sigsq
-<               sig=sig0ij*dsqrt(sigsq)
-<               rij_shift=1.0D0/rij-sig+r0ij
-< C I hate to put IF's in the loops, but here don't have another choice!!!!
-<               if (rij_shift.le.0.0D0) then
-<                 evdw=1.0D20
-<                 return
-<               endif
-<               sigder=-sig*sigsq
-< c---------------------------------------------------------------
-<               rij_shift=1.0D0/rij_shift 
-<               fac=rij_shift**expon
-<               e1=fac*fac*aa(itypi,itypj)
-<               e2=fac*bb(itypi,itypj)
-<               evdwij=eps1*eps2rt*eps3rt*(e1+e2)
-<               eps2der=evdwij*eps3rt
-<               eps3der=evdwij*eps2rt
-<               fac_augm=rrij**expon
-<               e_augm=augm(itypi,itypj)*fac_augm
-<               evdwij=evdwij*eps2rt*eps3rt
-<               evdw=evdw+(evdwij+e_augm)*(1.0d0-sss)
-<               if (lprn) then
-<               sigm=dabs(aa(itypi,itypj)/bb(itypi,itypj))**(1.0D0/6.0D0)
-<               epsi=bb(itypi,itypj)**2/aa(itypi,itypj)
-<               write (iout,'(2(a3,i3,2x),17(0pf7.3))')
-<      &          restyp(itypi),i,restyp(itypj),j,
-<      &          epsi,sigm,sig,(augm(itypi,itypj)/epsi)**(1.0D0/12.0D0),
-<      &          chi1,chi2,chip1,chip2,
-<      &          eps1,eps2rt**2,eps3rt**2,
-<      &          om1,om2,om12,1.0D0/rij,1.0D0/rij_shift,
-<      &          evdwij+e_augm
-<               endif
-< C Calculate gradient components.
-<               e1=e1*eps1*eps2rt**2*eps3rt**2
-<               fac=-expon*(e1+evdwij)*rij_shift
-<               sigder=fac*sigder
-<               fac=rij*fac-2*expon*rrij*e_augm
-< C Calculate the radial part of the gradient
-<               gg(1)=xj*fac
-<               gg(2)=yj*fac
-<               gg(3)=zj*fac
-< C Calculate angular part of the gradient.
-<               call sc_grad_scale(1.0d0-sss)
-< 
-<             endif
-< 
-<           enddo      ! j
-<         enddo        ! iint
-<       enddo          ! i
-<       end
-< C-----------------------------------------------------------------------------
-<       subroutine egbv_short(evdw)
-< C
-< C This subroutine calculates the interaction energy of nonbonded side chains
-< C assuming the Gay-Berne-Vorobjev potential of interaction.
-< C
-<       implicit real*8 (a-h,o-z)
-<       include 'DIMENSIONS'
-<       include 'COMMON.GEO'
-<       include 'COMMON.VAR'
-<       include 'COMMON.LOCAL'
-<       include 'COMMON.CHAIN'
-<       include 'COMMON.DERIV'
-<       include 'COMMON.NAMES'
-<       include 'COMMON.INTERACT'
-<       include 'COMMON.IOUNITS'
-<       include 'COMMON.CALC'
-<       common /srutu/ icall
-<       logical lprn
-<       evdw=0.0D0
-< c     print *,'Entering EGB nnt=',nnt,' nct=',nct,' expon=',expon
-<       evdw=0.0D0
-<       lprn=.false.
-< c     if (icall.eq.0) lprn=.true.
-<       ind=0
-<       do i=iatsc_s,iatsc_e
-<         itypi=itype(i)
-<         itypi1=itype(i+1)
-<         xi=c(1,nres+i)
-<         yi=c(2,nres+i)
-<         zi=c(3,nres+i)
-<         dxi=dc_norm(1,nres+i)
-<         dyi=dc_norm(2,nres+i)
-<         dzi=dc_norm(3,nres+i)
-< c        dsci_inv=dsc_inv(itypi)
-<         dsci_inv=vbld_inv(i+nres)
-< C
-< C Calculate SC interaction energy.
-< C
-<         do iint=1,nint_gr(i)
-<           do j=istart(i,iint),iend(i,iint)
-<             ind=ind+1
-<             itypj=itype(j)
-< c            dscj_inv=dsc_inv(itypj)
-<             dscj_inv=vbld_inv(j+nres)
-<             sig0ij=sigma(itypi,itypj)
-<             r0ij=r0(itypi,itypj)
-<             chi1=chi(itypi,itypj)
-<             chi2=chi(itypj,itypi)
-<             chi12=chi1*chi2
-<             chip1=chip(itypi)
-<             chip2=chip(itypj)
-<             chip12=chip1*chip2
-<             alf1=alp(itypi)
-<             alf2=alp(itypj)
-<             alf12=0.5D0*(alf1+alf2)
-< C For diagnostics only!!!
-< c           chi1=0.0D0
-< c           chi2=0.0D0
-< c           chi12=0.0D0
-< c           chip1=0.0D0
-< c           chip2=0.0D0
-< c           chip12=0.0D0
-< c           alf1=0.0D0
-< c           alf2=0.0D0
-< c           alf12=0.0D0
-<             xj=c(1,nres+j)-xi
-<             yj=c(2,nres+j)-yi
-<             zj=c(3,nres+j)-zi
-<             dxj=dc_norm(1,nres+j)
-<             dyj=dc_norm(2,nres+j)
-<             dzj=dc_norm(3,nres+j)
-<             rrij=1.0D0/(xj*xj+yj*yj+zj*zj)
-<             rij=dsqrt(rrij)
-< 
-<             sss=sscale(1.0d0/(rij*sigmaii(itypi,itypj)))
-< 
-<             if (sss.gt.0.0d0) then
-< 
-< C Calculate angle-dependent terms of energy and contributions to their
-< C derivatives.
-<               call sc_angular
-<               sigsq=1.0D0/sigsq
-<               sig=sig0ij*dsqrt(sigsq)
-<               rij_shift=1.0D0/rij-sig+r0ij
-< C I hate to put IF's in the loops, but here don't have another choice!!!!
-<               if (rij_shift.le.0.0D0) then
-<                 evdw=1.0D20
-<                 return
-<               endif
-<               sigder=-sig*sigsq
-< c---------------------------------------------------------------
-<               rij_shift=1.0D0/rij_shift 
-<               fac=rij_shift**expon
-<               e1=fac*fac*aa(itypi,itypj)
-<               e2=fac*bb(itypi,itypj)
-<               evdwij=eps1*eps2rt*eps3rt*(e1+e2)
-<               eps2der=evdwij*eps3rt
-<               eps3der=evdwij*eps2rt
-<               fac_augm=rrij**expon
-<               e_augm=augm(itypi,itypj)*fac_augm
-<               evdwij=evdwij*eps2rt*eps3rt
-<               evdw=evdw+(evdwij+e_augm)*sss
-<               if (lprn) then
-<               sigm=dabs(aa(itypi,itypj)/bb(itypi,itypj))**(1.0D0/6.0D0)
-<               epsi=bb(itypi,itypj)**2/aa(itypi,itypj)
-<               write (iout,'(2(a3,i3,2x),17(0pf7.3))')
-<      &          restyp(itypi),i,restyp(itypj),j,
-<      &          epsi,sigm,sig,(augm(itypi,itypj)/epsi)**(1.0D0/12.0D0),
-<      &          chi1,chi2,chip1,chip2,
-<      &          eps1,eps2rt**2,eps3rt**2,
-<      &          om1,om2,om12,1.0D0/rij,1.0D0/rij_shift,
-<      &          evdwij+e_augm
-<               endif
-< C Calculate gradient components.
-<               e1=e1*eps1*eps2rt**2*eps3rt**2
-<               fac=-expon*(e1+evdwij)*rij_shift
-<               sigder=fac*sigder
-<               fac=rij*fac-2*expon*rrij*e_augm
-< C Calculate the radial part of the gradient
-<               gg(1)=xj*fac
-<               gg(2)=yj*fac
-<               gg(3)=zj*fac
-< C Calculate angular part of the gradient.
-<               call sc_grad_scale(sss)
-< 
-<             endif
-< 
-<           enddo      ! j
-<         enddo        ! iint
-<       enddo          ! i
-<       end
-< C----------------------------------------------------------------------------
-<       subroutine sc_grad_scale(scalfac)
----
->       subroutine sc_angular
-> C Calculate eps1,eps2,eps3,sigma, and parts of their derivatives in om1,om2,
-> C om12. Called by ebp, egb, and egbv.
->       implicit none
->       include 'COMMON.CALC'
->       include 'COMMON.IOUNITS'
->       erij(1)=xj*rij
->       erij(2)=yj*rij
->       erij(3)=zj*rij
->       om1=dxi*erij(1)+dyi*erij(2)+dzi*erij(3)
->       om2=dxj*erij(1)+dyj*erij(2)+dzj*erij(3)
->       om12=dxi*dxj+dyi*dyj+dzi*dzj
->       chiom12=chi12*om12
-> C Calculate eps1(om12) and its derivative in om12
->       faceps1=1.0D0-om12*chiom12
->       faceps1_inv=1.0D0/faceps1
->       eps1=dsqrt(faceps1_inv)
-> C Following variable is eps1*deps1/dom12
->       eps1_om12=faceps1_inv*chiom12
-> c diagnostics only
-> c      faceps1_inv=om12
-> c      eps1=om12
-> c      eps1_om12=1.0d0
-> c      write (iout,*) "om12",om12," eps1",eps1
-> C Calculate sigma(om1,om2,om12) and the derivatives of sigma**2 in om1,om2,
-> C and om12.
->       om1om2=om1*om2
->       chiom1=chi1*om1
->       chiom2=chi2*om2
->       facsig=om1*chiom1+om2*chiom2-2.0D0*om1om2*chiom12
->       sigsq=1.0D0-facsig*faceps1_inv
->       sigsq_om1=(chiom1-chiom12*om2)*faceps1_inv
->       sigsq_om2=(chiom2-chiom12*om1)*faceps1_inv
->       sigsq_om12=-chi12*(om1om2*faceps1-om12*facsig)*faceps1_inv**2
-> c diagnostics only
-> c      sigsq=1.0d0
-> c      sigsq_om1=0.0d0
-> c      sigsq_om2=0.0d0
-> c      sigsq_om12=0.0d0
-> c      write (iout,*) "chiom1",chiom1," chiom2",chiom2," chiom12",chiom12
-> c      write (iout,*) "faceps1",faceps1," faceps1_inv",faceps1_inv,
-> c     &    " eps1",eps1
-> C Calculate eps2 and its derivatives in om1, om2, and om12.
->       chipom1=chip1*om1
->       chipom2=chip2*om2
->       chipom12=chip12*om12
->       facp=1.0D0-om12*chipom12
->       facp_inv=1.0D0/facp
->       facp1=om1*chipom1+om2*chipom2-2.0D0*om1om2*chipom12
-> c      write (iout,*) "chipom1",chipom1," chipom2",chipom2,
-> c     &  " chipom12",chipom12," facp",facp," facp_inv",facp_inv
-> C Following variable is the square root of eps2
->       eps2rt=1.0D0-facp1*facp_inv
-> C Following three variables are the derivatives of the square root of eps
-> C in om1, om2, and om12.
->       eps2rt_om1=-4.0D0*(chipom1-chipom12*om2)*facp_inv
->       eps2rt_om2=-4.0D0*(chipom2-chipom12*om1)*facp_inv
->       eps2rt_om12=4.0D0*chip12*(om1om2*facp-om12*facp1)*facp_inv**2 
-> C Evaluate the "asymmetric" factor in the VDW constant, eps3
->       eps3rt=1.0D0-alf1*om1+alf2*om2-alf12*om12 
-> c      write (iout,*) "eps2rt",eps2rt," eps3rt",eps3rt
-> c      write (iout,*) "eps2rt_om1",eps2rt_om1," eps2rt_om2",eps2rt_om2,
-> c     &  " eps2rt_om12",eps2rt_om12
-> C Calculate whole angle-dependent part of epsilon and contributions
-> C to its derivatives
->       return
->       end
-> C----------------------------------------------------------------------------
->       subroutine sc_grad
-1197d1489
-<       double precision scalfac
-1216c1508
-<         gg(k)=(gg(k)+eom1*dcosom1(k)+eom2*dcosom2(k))*scalfac
----
->         gg(k)=gg(k)+eom1*dcosom1(k)+eom2*dcosom2(k)
-1221,1222c1513,1514
-<      &        +((eom12*(dc_norm(k,nres+j)-om12*dc_norm(k,nres+i))
-<      &        +eom1*(erij(k)-om1*dc_norm(k,nres+i)))*dsci_inv)*scalfac
----
->      &            +(eom12*(dc_norm(k,nres+j)-om12*dc_norm(k,nres+i))
->      &            +eom1*(erij(k)-om1*dc_norm(k,nres+i)))*dsci_inv
-1224,1225c1516,1517
-<      &        +((eom12*(dc_norm(k,nres+i)-om12*dc_norm(k,nres+j))
-<      &        +eom2*(erij(k)-om2*dc_norm(k,nres+j)))*dscj_inv)*scalfac
----
->      &            +(eom12*(dc_norm(k,nres+i)-om12*dc_norm(k,nres+j))
->      &            +eom2*(erij(k)-om2*dc_norm(k,nres+j)))*dscj_inv
-1240a1533,1605
-> C-----------------------------------------------------------------------
->       subroutine e_softsphere(evdw)
-> C
-> C This subroutine calculates the interaction energy of nonbonded side chains
-> C assuming the LJ potential of interaction.
-> C
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       parameter (accur=1.0d-10)
->       include 'COMMON.GEO'
->       include 'COMMON.VAR'
->       include 'COMMON.LOCAL'
->       include 'COMMON.CHAIN'
->       include 'COMMON.DERIV'
->       include 'COMMON.INTERACT'
->       include 'COMMON.TORSION'
->       include 'COMMON.SBRIDGE'
->       include 'COMMON.NAMES'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.CONTACTS'
->       dimension gg(3)
-> cd    print *,'Entering Esoft_sphere nnt=',nnt,' nct=',nct
->       evdw=0.0D0
->       do i=iatsc_s,iatsc_e
->         itypi=itype(i)
->         itypi1=itype(i+1)
->         xi=c(1,nres+i)
->         yi=c(2,nres+i)
->         zi=c(3,nres+i)
-> C
-> C Calculate SC interaction energy.
-> C
->         do iint=1,nint_gr(i)
-> cd        write (iout,*) 'i=',i,' iint=',iint,' istart=',istart(i,iint),
-> cd   &                  'iend=',iend(i,iint)
->           do j=istart(i,iint),iend(i,iint)
->             itypj=itype(j)
->             xj=c(1,nres+j)-xi
->             yj=c(2,nres+j)-yi
->             zj=c(3,nres+j)-zi
->             rij=xj*xj+yj*yj+zj*zj
-> c           write (iout,*)'i=',i,' j=',j,' itypi=',itypi,' itypj=',itypj
->             r0ij=r0(itypi,itypj)
->             r0ijsq=r0ij*r0ij
-> c            print *,i,j,r0ij,dsqrt(rij)
->             if (rij.lt.r0ijsq) then
->               evdwij=0.25d0*(rij-r0ijsq)**2
->               fac=rij-r0ijsq
->             else
->               evdwij=0.0d0
->               fac=0.0d0
->             endif
->             evdw=evdw+evdwij
-> C 
-> C Calculate the components of the gradient in DC and X
-> C
->             gg(1)=xj*fac
->             gg(2)=yj*fac
->             gg(3)=zj*fac
->             do k=1,3
->               gvdwx(k,i)=gvdwx(k,i)-gg(k)
->               gvdwx(k,j)=gvdwx(k,j)+gg(k)
->             enddo
->             do k=i,j-1
->               do l=1,3
->                 gvdwc(l,k)=gvdwc(l,k)+gg(l)
->               enddo
->             enddo
->           enddo ! j
->         enddo ! iint
->       enddo ! i
->       return
->       end
-1242c1607,1608
-<       subroutine eelec_scale(ees,evdw1,eel_loc,eello_turn3,eello_turn4)
----
->       subroutine eelec_soft_sphere(ees,evdw1,eel_loc,eello_turn3,
->      &              eello_turn4)
-1244,1248c1610
-< C This subroutine calculates the average interaction energy and its gradient
-< C in the virtual-bond vectors between non-adjacent peptide groups, based on 
-< C the potential described in Liwo et al., Protein Sci., 1993, 2, 1715. 
-< C The potential depends both on the distance of peptide-group centers and on 
-< C the orientation of the CA-CA virtual bonds.
----
-> C Soft-sphere potential of p-p interaction
-1264,1315c1626,1627
-<       dimension ggg(3),gggp(3),gggm(3),erij(3),dcosb(3),dcosg(3),
-<      &          erder(3,3),uryg(3,3),urzg(3,3),vryg(3,3),vrzg(3,3)
-<       double precision acipa(2,2),agg(3,4),aggi(3,4),aggi1(3,4),
-<      &    aggj(3,4),aggj1(3,4),a_temp(2,2),muij(4)
-<       common /locel/ a_temp,agg,aggi,aggi1,aggj,aggj1,j1,j2
-< c 4/26/02 - AL scaling factor for 1,4 repulsive VDW interactions
-< #ifdef MOMENT
-<       double precision scal_el /1.0d0/
-< #else
-<       double precision scal_el /0.5d0/
-< #endif
-< C 12/13/98 
-< C 13-go grudnia roku pamietnego... 
-<       double precision unmat(3,3) /1.0d0,0.0d0,0.0d0,
-<      &                   0.0d0,1.0d0,0.0d0,
-<      &                   0.0d0,0.0d0,1.0d0/
-< cd      write(iout,*) 'In EELEC'
-< cd      do i=1,nloctyp
-< cd        write(iout,*) 'Type',i
-< cd        write(iout,*) 'B1',B1(:,i)
-< cd        write(iout,*) 'B2',B2(:,i)
-< cd        write(iout,*) 'CC',CC(:,:,i)
-< cd        write(iout,*) 'DD',DD(:,:,i)
-< cd        write(iout,*) 'EE',EE(:,:,i)
-< cd      enddo
-< cd      call check_vecgrad
-< cd      stop
-<       if (icheckgrad.eq.1) then
-<         do i=1,nres-1
-<           fac=1.0d0/dsqrt(scalar(dc(1,i),dc(1,i)))
-<           do k=1,3
-<             dc_norm(k,i)=dc(k,i)*fac
-<           enddo
-< c          write (iout,*) 'i',i,' fac',fac
-<         enddo
-<       endif
-<       if (wel_loc.gt.0.0d0 .or. wcorr4.gt.0.0d0 .or. wcorr5.gt.0.0d0 
-<      &    .or. wcorr6.gt.0.0d0 .or. wturn3.gt.0.0d0 .or. 
-<      &    wturn4.gt.0.0d0 .or. wturn6.gt.0.0d0) then
-< c        call vec_and_deriv
-<         call set_matrices
-<       endif
-< cd      do i=1,nres-1
-< cd        write (iout,*) 'i=',i
-< cd        do k=1,3
-< cd        write (iout,'(i5,2f10.5)') k,uy(k,i),uz(k,i)
-< cd        enddo
-< cd        do k=1,3
-< cd          write (iout,'(f10.5,2x,3f10.5,2x,3f10.5)') 
-< cd     &     uz(k,i),(uzgrad(k,l,1,i),l=1,3),(uzgrad(k,l,2,i),l=1,3)
-< cd        enddo
-< cd      enddo
----
->       dimension ggg(3)
-> cd      write(iout,*) 'In EELEC_soft_sphere'
-1323,1373d1634
-<       do i=1,nres
-<         num_cont_hb(i)=0
-<       enddo
-< cd      print '(a)','Enter EELEC'
-< cd      write (iout,*) 'iatel_s=',iatel_s,' iatel_e=',iatel_e
-<       do i=1,nres
-<         gel_loc_loc(i)=0.0d0
-<         gcorr_loc(i)=0.0d0
-<       enddo
-< cd      do i=1,nres
-< cd        write (iout,'(i3,3f10.5,5x,3f10.5)') 
-< cd     &     i,(gel_loc(k,i),k=1,3),gel_loc_loc(i)
-< cd      enddo
-< c
-< c 9/27/08 AL Split the interaction loop to ensure load balancing of turn terms
-< C
-< C Loop over i,i+2 and i,i+3 pairs of the peptide groups
-< C
-<       do i=iturn3_start,iturn3_end
-<         dxi=dc(1,i)
-<         dyi=dc(2,i)
-<         dzi=dc(3,i)
-<         dx_normi=dc_norm(1,i)
-<         dy_normi=dc_norm(2,i)
-<         dz_normi=dc_norm(3,i)
-<         xmedi=c(1,i)+0.5d0*dxi
-<         ymedi=c(2,i)+0.5d0*dyi
-<         zmedi=c(3,i)+0.5d0*dzi
-<         num_conti=0
-<         call eelecij_scale(i,i+2,ees,evdw1,eel_loc)
-<         if (wturn3.gt.0.0d0) call eturn3(i,eello_turn3)
-<         num_cont_hb(i)=num_conti
-<       enddo
-<       do i=iturn4_start,iturn4_end
-<         dxi=dc(1,i)
-<         dyi=dc(2,i)
-<         dzi=dc(3,i)
-<         dx_normi=dc_norm(1,i)
-<         dy_normi=dc_norm(2,i)
-<         dz_normi=dc_norm(3,i)
-<         xmedi=c(1,i)+0.5d0*dxi
-<         ymedi=c(2,i)+0.5d0*dyi
-<         zmedi=c(3,i)+0.5d0*dzi
-<         num_conti=0
-<         call eelecij_scale(i,i+3,ees,evdw1,eel_loc)
-<         if (wturn4.gt.0.0d0) call eturn4(i,eello_turn4)
-<         num_cont_hb(i)=num_cont_hb(i)+num_conti
-<       enddo   ! i
-< c
-< c Loop over all pairs of interacting peptide groups except i,i+2 and i,i+3
-< c
-1378,1380d1638
-<         dx_normi=dc_norm(1,i)
-<         dy_normi=dc_norm(2,i)
-<         dz_normi=dc_norm(3,i)
-1387c1645,1684
-<           call eelecij_scale(i,j,ees,evdw1,eel_loc)
----
->           ind=ind+1
->           iteli=itel(i)
->           itelj=itel(j)
->           if (j.eq.i+2 .and. itelj.eq.2) iteli=2
->           r0ij=rpp(iteli,itelj)
->           r0ijsq=r0ij*r0ij 
->           dxj=dc(1,j)
->           dyj=dc(2,j)
->           dzj=dc(3,j)
->           xj=c(1,j)+0.5D0*dxj-xmedi
->           yj=c(2,j)+0.5D0*dyj-ymedi
->           zj=c(3,j)+0.5D0*dzj-zmedi
->           rij=xj*xj+yj*yj+zj*zj
->           if (rij.lt.r0ijsq) then
->             evdw1ij=0.25d0*(rij-r0ijsq)**2
->             fac=rij-r0ijsq
->           else
->             evdw1ij=0.0d0
->             fac=0.0d0
->           endif
->           evdw1=evdw1+evdw1ij
-> C
-> C Calculate contributions to the Cartesian gradient.
-> C
->           ggg(1)=fac*xj
->           ggg(2)=fac*yj
->           ggg(3)=fac*zj
->           do k=1,3
->             ghalf=0.5D0*ggg(k)
->             gelc(k,i)=gelc(k,i)+ghalf
->             gelc(k,j)=gelc(k,j)+ghalf
->           enddo
-> *
-> * Loop over residues i+1 thru j-1.
-> *
->           do k=i+1,j-1
->             do l=1,3
->               gelc(l,k)=gelc(l,k)+ggg(l)
->             enddo
->           enddo
-1389d1685
-<         num_cont_hb(i)=num_cont_hb(i)+num_conti
-1393,1394c1689,2133
-< C-------------------------------------------------------------------------------
-<       subroutine eelecij_scale(i,j,ees,evdw1,eel_loc)
----
-> c------------------------------------------------------------------------------
->       subroutine vec_and_deriv
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
-> #ifdef MPI
->       include 'mpif.h'
-> #endif
->       include 'COMMON.IOUNITS'
->       include 'COMMON.GEO'
->       include 'COMMON.VAR'
->       include 'COMMON.LOCAL'
->       include 'COMMON.CHAIN'
->       include 'COMMON.VECTORS'
->       include 'COMMON.SETUP'
->       include 'COMMON.TIME1'
->       dimension uyder(3,3,2),uzder(3,3,2),vbld_inv_temp(2)
-> C Compute the local reference systems. For reference system (i), the
-> C X-axis points from CA(i) to CA(i+1), the Y axis is in the 
-> C CA(i)-CA(i+1)-CA(i+2) plane, and the Z axis is perpendicular to this plane.
-> c      do i=1,nres-1
->       do i=ivec_start,ivec_end
->           if (i.eq.nres-1) then
-> C Case of the last full residue
-> C Compute the Z-axis
->             call vecpr(dc_norm(1,i),dc_norm(1,i-1),uz(1,i))
->             costh=dcos(pi-theta(nres))
->             fac=1.0d0/dsqrt(1.0d0-costh*costh)
->             do k=1,3
->               uz(k,i)=fac*uz(k,i)
->             enddo
-> C Compute the derivatives of uz
->             uzder(1,1,1)= 0.0d0
->             uzder(2,1,1)=-dc_norm(3,i-1)
->             uzder(3,1,1)= dc_norm(2,i-1) 
->             uzder(1,2,1)= dc_norm(3,i-1)
->             uzder(2,2,1)= 0.0d0
->             uzder(3,2,1)=-dc_norm(1,i-1)
->             uzder(1,3,1)=-dc_norm(2,i-1)
->             uzder(2,3,1)= dc_norm(1,i-1)
->             uzder(3,3,1)= 0.0d0
->             uzder(1,1,2)= 0.0d0
->             uzder(2,1,2)= dc_norm(3,i)
->             uzder(3,1,2)=-dc_norm(2,i) 
->             uzder(1,2,2)=-dc_norm(3,i)
->             uzder(2,2,2)= 0.0d0
->             uzder(3,2,2)= dc_norm(1,i)
->             uzder(1,3,2)= dc_norm(2,i)
->             uzder(2,3,2)=-dc_norm(1,i)
->             uzder(3,3,2)= 0.0d0
-> C Compute the Y-axis
->             facy=fac
->             do k=1,3
->               uy(k,i)=fac*(dc_norm(k,i-1)-costh*dc_norm(k,i))
->             enddo
-> C Compute the derivatives of uy
->             do j=1,3
->               do k=1,3
->                 uyder(k,j,1)=2*dc_norm(k,i-1)*dc_norm(j,i)
->      &                        -dc_norm(k,i)*dc_norm(j,i-1)
->                 uyder(k,j,2)=-dc_norm(j,i)*dc_norm(k,i)
->               enddo
->               uyder(j,j,1)=uyder(j,j,1)-costh
->               uyder(j,j,2)=1.0d0+uyder(j,j,2)
->             enddo
->             do j=1,2
->               do k=1,3
->                 do l=1,3
->                   uygrad(l,k,j,i)=uyder(l,k,j)
->                   uzgrad(l,k,j,i)=uzder(l,k,j)
->                 enddo
->               enddo
->             enddo 
->             call unormderiv(uy(1,i),uyder(1,1,1),facy,uygrad(1,1,1,i))
->             call unormderiv(uy(1,i),uyder(1,1,2),facy,uygrad(1,1,2,i))
->             call unormderiv(uz(1,i),uzder(1,1,1),fac,uzgrad(1,1,1,i))
->             call unormderiv(uz(1,i),uzder(1,1,2),fac,uzgrad(1,1,2,i))
->           else
-> C Other residues
-> C Compute the Z-axis
->             call vecpr(dc_norm(1,i),dc_norm(1,i+1),uz(1,i))
->             costh=dcos(pi-theta(i+2))
->             fac=1.0d0/dsqrt(1.0d0-costh*costh)
->             do k=1,3
->               uz(k,i)=fac*uz(k,i)
->             enddo
-> C Compute the derivatives of uz
->             uzder(1,1,1)= 0.0d0
->             uzder(2,1,1)=-dc_norm(3,i+1)
->             uzder(3,1,1)= dc_norm(2,i+1) 
->             uzder(1,2,1)= dc_norm(3,i+1)
->             uzder(2,2,1)= 0.0d0
->             uzder(3,2,1)=-dc_norm(1,i+1)
->             uzder(1,3,1)=-dc_norm(2,i+1)
->             uzder(2,3,1)= dc_norm(1,i+1)
->             uzder(3,3,1)= 0.0d0
->             uzder(1,1,2)= 0.0d0
->             uzder(2,1,2)= dc_norm(3,i)
->             uzder(3,1,2)=-dc_norm(2,i) 
->             uzder(1,2,2)=-dc_norm(3,i)
->             uzder(2,2,2)= 0.0d0
->             uzder(3,2,2)= dc_norm(1,i)
->             uzder(1,3,2)= dc_norm(2,i)
->             uzder(2,3,2)=-dc_norm(1,i)
->             uzder(3,3,2)= 0.0d0
-> C Compute the Y-axis
->             facy=fac
->             do k=1,3
->               uy(k,i)=facy*(dc_norm(k,i+1)-costh*dc_norm(k,i))
->             enddo
-> C Compute the derivatives of uy
->             do j=1,3
->               do k=1,3
->                 uyder(k,j,1)=2*dc_norm(k,i+1)*dc_norm(j,i)
->      &                        -dc_norm(k,i)*dc_norm(j,i+1)
->                 uyder(k,j,2)=-dc_norm(j,i)*dc_norm(k,i)
->               enddo
->               uyder(j,j,1)=uyder(j,j,1)-costh
->               uyder(j,j,2)=1.0d0+uyder(j,j,2)
->             enddo
->             do j=1,2
->               do k=1,3
->                 do l=1,3
->                   uygrad(l,k,j,i)=uyder(l,k,j)
->                   uzgrad(l,k,j,i)=uzder(l,k,j)
->                 enddo
->               enddo
->             enddo 
->             call unormderiv(uy(1,i),uyder(1,1,1),facy,uygrad(1,1,1,i))
->             call unormderiv(uy(1,i),uyder(1,1,2),facy,uygrad(1,1,2,i))
->             call unormderiv(uz(1,i),uzder(1,1,1),fac,uzgrad(1,1,1,i))
->             call unormderiv(uz(1,i),uzder(1,1,2),fac,uzgrad(1,1,2,i))
->           endif
->       enddo
->       do i=1,nres-1
->         vbld_inv_temp(1)=vbld_inv(i+1)
->         if (i.lt.nres-1) then
->           vbld_inv_temp(2)=vbld_inv(i+2)
->           else
->           vbld_inv_temp(2)=vbld_inv(i)
->           endif
->         do j=1,2
->           do k=1,3
->             do l=1,3
->               uygrad(l,k,j,i)=vbld_inv_temp(j)*uygrad(l,k,j,i)
->               uzgrad(l,k,j,i)=vbld_inv_temp(j)*uzgrad(l,k,j,i)
->             enddo
->           enddo
->         enddo
->       enddo
-> #ifdef MPI
->       if (nfgtasks.gt.1) then
->         time00=MPI_Wtime()
-> c        print *,"Processor",fg_rank,kolor," ivec_start",ivec_start,
-> c     &   " ivec_displ",(ivec_displ(i),i=0,nfgtasks-1),
-> c     &   " ivec_count",(ivec_count(i),i=0,nfgtasks-1)
->         call MPI_Allgatherv(uy(1,ivec_start),ivec_count(fg_rank),
->      &   MPI_UYZ,uy(1,1),ivec_count(0),ivec_displ(0),MPI_UYZ,
->      &   FG_COMM,IERR)
->         call MPI_Allgatherv(uz(1,ivec_start),ivec_count(fg_rank),
->      &   MPI_UYZ,uz(1,1),ivec_count(0),ivec_displ(0),MPI_UYZ,
->      &   FG_COMM,IERR)
->         call MPI_Allgatherv(uygrad(1,1,1,ivec_start),
->      &   ivec_count(fg_rank),MPI_UYZGRAD,uygrad(1,1,1,1),ivec_count(0),
->      &   ivec_displ(0),MPI_UYZGRAD,FG_COMM,IERR)
->         call MPI_Allgatherv(uzgrad(1,1,1,ivec_start),
->      &   ivec_count(fg_rank),MPI_UYZGRAD,uzgrad(1,1,1,1),ivec_count(0),
->      &   ivec_displ(0),MPI_UYZGRAD,FG_COMM,IERR)
->       endif
->       time_gather=time_gather+MPI_Wtime()-time00
-> c      if (fg_rank.eq.0) then
-> c        write (iout,*) "Arrays UY and UZ"
-> c        do i=1,nres-1
-> c          write (iout,'(i5,3f10.5,5x,3f10.5)') i,(uy(k,i),k=1,3),
-> c     &     (uz(k,i),k=1,3)
-> c        enddo
-> c      endif
-> #endif
->       return
->       end
-> C-----------------------------------------------------------------------------
->       subroutine check_vecgrad
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.GEO'
->       include 'COMMON.VAR'
->       include 'COMMON.LOCAL'
->       include 'COMMON.CHAIN'
->       include 'COMMON.VECTORS'
->       dimension uygradt(3,3,2,maxres),uzgradt(3,3,2,maxres)
->       dimension uyt(3,maxres),uzt(3,maxres)
->       dimension uygradn(3,3,2),uzgradn(3,3,2),erij(3)
->       double precision delta /1.0d-7/
->       call vec_and_deriv
-> cd      do i=1,nres
-> crc          write(iout,'(2i5,2(3f10.5,5x))') i,1,dc_norm(:,i)
-> crc          write(iout,'(2i5,2(3f10.5,5x))') i,2,uy(:,i)
-> crc          write(iout,'(2i5,2(3f10.5,5x)/)')i,3,uz(:,i)
-> cd          write(iout,'(2i5,2(3f10.5,5x))') i,1,
-> cd     &     (dc_norm(if90,i),if90=1,3)
-> cd          write(iout,'(2i5,2(3f10.5,5x))') i,2,(uy(if90,i),if90=1,3)
-> cd          write(iout,'(2i5,2(3f10.5,5x)/)')i,3,(uz(if90,i),if90=1,3)
-> cd          write(iout,'(a)')
-> cd      enddo
->       do i=1,nres
->         do j=1,2
->           do k=1,3
->             do l=1,3
->               uygradt(l,k,j,i)=uygrad(l,k,j,i)
->               uzgradt(l,k,j,i)=uzgrad(l,k,j,i)
->             enddo
->           enddo
->         enddo
->       enddo
->       call vec_and_deriv
->       do i=1,nres
->         do j=1,3
->           uyt(j,i)=uy(j,i)
->           uzt(j,i)=uz(j,i)
->         enddo
->       enddo
->       do i=1,nres
-> cd        write (iout,*) 'i=',i
->         do k=1,3
->           erij(k)=dc_norm(k,i)
->         enddo
->         do j=1,3
->           do k=1,3
->             dc_norm(k,i)=erij(k)
->           enddo
->           dc_norm(j,i)=dc_norm(j,i)+delta
-> c          fac=dsqrt(scalar(dc_norm(1,i),dc_norm(1,i)))
-> c          do k=1,3
-> c            dc_norm(k,i)=dc_norm(k,i)/fac
-> c          enddo
-> c          write (iout,*) (dc_norm(k,i),k=1,3)
-> c          write (iout,*) (erij(k),k=1,3)
->           call vec_and_deriv
->           do k=1,3
->             uygradn(k,j,1)=(uy(k,i)-uyt(k,i))/delta
->             uygradn(k,j,2)=(uy(k,i-1)-uyt(k,i-1))/delta
->             uzgradn(k,j,1)=(uz(k,i)-uzt(k,i))/delta
->             uzgradn(k,j,2)=(uz(k,i-1)-uzt(k,i-1))/delta
->           enddo 
-> c          write (iout,'(i5,3f8.5,3x,3f8.5,5x,3f8.5,3x,3f8.5)') 
-> c     &      j,(uzgradt(k,j,1,i),k=1,3),(uzgradn(k,j,1),k=1,3),
-> c     &      (uzgradt(k,j,2,i-1),k=1,3),(uzgradn(k,j,2),k=1,3)
->         enddo
->         do k=1,3
->           dc_norm(k,i)=erij(k)
->         enddo
-> cd        do k=1,3
-> cd          write (iout,'(i5,3f8.5,3x,3f8.5,5x,3f8.5,3x,3f8.5)') 
-> cd     &      k,(uygradt(k,l,1,i),l=1,3),(uygradn(k,l,1),l=1,3),
-> cd     &      (uygradt(k,l,2,i-1),l=1,3),(uygradn(k,l,2),l=1,3)
-> cd          write (iout,'(i5,3f8.5,3x,3f8.5,5x,3f8.5,3x,3f8.5)') 
-> cd     &      k,(uzgradt(k,l,1,i),l=1,3),(uzgradn(k,l,1),l=1,3),
-> cd     &      (uzgradt(k,l,2,i-1),l=1,3),(uzgradn(k,l,2),l=1,3)
-> cd          write (iout,'(a)')
-> cd        enddo
->       enddo
->       return
->       end
-> C--------------------------------------------------------------------------
->       subroutine set_matrices
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.GEO'
->       include 'COMMON.VAR'
->       include 'COMMON.LOCAL'
->       include 'COMMON.CHAIN'
->       include 'COMMON.DERIV'
->       include 'COMMON.INTERACT'
->       include 'COMMON.CONTACTS'
->       include 'COMMON.TORSION'
->       include 'COMMON.VECTORS'
->       include 'COMMON.FFIELD'
->       double precision auxvec(2),auxmat(2,2)
-> C
-> C Compute the virtual-bond-torsional-angle dependent quantities needed
-> C to calculate the el-loc multibody terms of various order.
-> C
->       do i=3,nres+1
->         if (i .lt. nres+1) then
->           sin1=dsin(phi(i))
->           cos1=dcos(phi(i))
->           sintab(i-2)=sin1
->           costab(i-2)=cos1
->           obrot(1,i-2)=cos1
->           obrot(2,i-2)=sin1
->           sin2=dsin(2*phi(i))
->           cos2=dcos(2*phi(i))
->           sintab2(i-2)=sin2
->           costab2(i-2)=cos2
->           obrot2(1,i-2)=cos2
->           obrot2(2,i-2)=sin2
->           Ug(1,1,i-2)=-cos1
->           Ug(1,2,i-2)=-sin1
->           Ug(2,1,i-2)=-sin1
->           Ug(2,2,i-2)= cos1
->           Ug2(1,1,i-2)=-cos2
->           Ug2(1,2,i-2)=-sin2
->           Ug2(2,1,i-2)=-sin2
->           Ug2(2,2,i-2)= cos2
->         else
->           costab(i-2)=1.0d0
->           sintab(i-2)=0.0d0
->           obrot(1,i-2)=1.0d0
->           obrot(2,i-2)=0.0d0
->           obrot2(1,i-2)=0.0d0
->           obrot2(2,i-2)=0.0d0
->           Ug(1,1,i-2)=1.0d0
->           Ug(1,2,i-2)=0.0d0
->           Ug(2,1,i-2)=0.0d0
->           Ug(2,2,i-2)=1.0d0
->           Ug2(1,1,i-2)=0.0d0
->           Ug2(1,2,i-2)=0.0d0
->           Ug2(2,1,i-2)=0.0d0
->           Ug2(2,2,i-2)=0.0d0
->         endif
->         if (i .gt. 3 .and. i .lt. nres+1) then
->           obrot_der(1,i-2)=-sin1
->           obrot_der(2,i-2)= cos1
->           Ugder(1,1,i-2)= sin1
->           Ugder(1,2,i-2)=-cos1
->           Ugder(2,1,i-2)=-cos1
->           Ugder(2,2,i-2)=-sin1
->           dwacos2=cos2+cos2
->           dwasin2=sin2+sin2
->           obrot2_der(1,i-2)=-dwasin2
->           obrot2_der(2,i-2)= dwacos2
->           Ug2der(1,1,i-2)= dwasin2
->           Ug2der(1,2,i-2)=-dwacos2
->           Ug2der(2,1,i-2)=-dwacos2
->           Ug2der(2,2,i-2)=-dwasin2
->         else
->           obrot_der(1,i-2)=0.0d0
->           obrot_der(2,i-2)=0.0d0
->           Ugder(1,1,i-2)=0.0d0
->           Ugder(1,2,i-2)=0.0d0
->           Ugder(2,1,i-2)=0.0d0
->           Ugder(2,2,i-2)=0.0d0
->           obrot2_der(1,i-2)=0.0d0
->           obrot2_der(2,i-2)=0.0d0
->           Ug2der(1,1,i-2)=0.0d0
->           Ug2der(1,2,i-2)=0.0d0
->           Ug2der(2,1,i-2)=0.0d0
->           Ug2der(2,2,i-2)=0.0d0
->         endif
-> c        if (i.gt. iatel_s+2 .and. i.lt.iatel_e+5) then
->         if (i.gt. nnt+2 .and. i.lt.nct+2) then
->           iti = itortyp(itype(i-2))
->         else
->           iti=ntortyp+1
->         endif
-> c        if (i.gt. iatel_s+1 .and. i.lt.iatel_e+4) then
->         if (i.gt. nnt+1 .and. i.lt.nct+1) then
->           iti1 = itortyp(itype(i-1))
->         else
->           iti1=ntortyp+1
->         endif
-> cd        write (iout,*) '*******i',i,' iti1',iti
-> cd        write (iout,*) 'b1',b1(:,iti)
-> cd        write (iout,*) 'b2',b2(:,iti)
-> cd        write (iout,*) 'Ug',Ug(:,:,i-2)
-> c        if (i .gt. iatel_s+2) then
->         if (i .gt. nnt+2) then
->           call matvec2(Ug(1,1,i-2),b2(1,iti),Ub2(1,i-2))
->           call matmat2(EE(1,1,iti),Ug(1,1,i-2),EUg(1,1,i-2))
->           call matmat2(CC(1,1,iti),Ug(1,1,i-2),CUg(1,1,i-2))
->           call matmat2(DD(1,1,iti),Ug(1,1,i-2),DUg(1,1,i-2))
->           call matmat2(Dtilde(1,1,iti),Ug2(1,1,i-2),DtUg2(1,1,i-2))
->           call matvec2(Ctilde(1,1,iti1),obrot(1,i-2),Ctobr(1,i-2))
->           call matvec2(Dtilde(1,1,iti),obrot2(1,i-2),Dtobr2(1,i-2))
->         else
->           do k=1,2
->             Ub2(k,i-2)=0.0d0
->             Ctobr(k,i-2)=0.0d0 
->             Dtobr2(k,i-2)=0.0d0
->             do l=1,2
->               EUg(l,k,i-2)=0.0d0
->               CUg(l,k,i-2)=0.0d0
->               DUg(l,k,i-2)=0.0d0
->               DtUg2(l,k,i-2)=0.0d0
->             enddo
->           enddo
->         endif
->         call matvec2(Ugder(1,1,i-2),b2(1,iti),Ub2der(1,i-2))
->         call matmat2(EE(1,1,iti),Ugder(1,1,i-2),EUgder(1,1,i-2))
->         call matmat2(CC(1,1,iti1),Ugder(1,1,i-2),CUgder(1,1,i-2))
->         call matmat2(DD(1,1,iti),Ugder(1,1,i-2),DUgder(1,1,i-2))
->         call matmat2(Dtilde(1,1,iti),Ug2der(1,1,i-2),DtUg2der(1,1,i-2))
->         call matvec2(Ctilde(1,1,iti1),obrot_der(1,i-2),Ctobrder(1,i-2))
->         call matvec2(Dtilde(1,1,iti),obrot2_der(1,i-2),Dtobr2der(1,i-2))
->         do k=1,2
->           muder(k,i-2)=Ub2der(k,i-2)
->         enddo
-> c        if (i.gt. iatel_s+1 .and. i.lt.iatel_e+4) then
->         if (i.gt. nnt+1 .and. i.lt.nct+1) then
->           iti1 = itortyp(itype(i-1))
->         else
->           iti1=ntortyp+1
->         endif
->         do k=1,2
->           mu(k,i-2)=Ub2(k,i-2)+b1(k,iti1)
->         enddo
-> C Vectors and matrices dependent on a single virtual-bond dihedral.
->         call matvec2(DD(1,1,iti),b1tilde(1,iti1),auxvec(1))
->         call matvec2(Ug2(1,1,i-2),auxvec(1),Ug2Db1t(1,i-2)) 
->         call matvec2(Ug2der(1,1,i-2),auxvec(1),Ug2Db1tder(1,i-2)) 
->         call matvec2(CC(1,1,iti1),Ub2(1,i-2),CUgb2(1,i-2))
->         call matvec2(CC(1,1,iti1),Ub2der(1,i-2),CUgb2der(1,i-2))
->         call matmat2(EUg(1,1,i-2),CC(1,1,iti1),EUgC(1,1,i-2))
->         call matmat2(EUgder(1,1,i-2),CC(1,1,iti1),EUgCder(1,1,i-2))
->         call matmat2(EUg(1,1,i-2),DD(1,1,iti1),EUgD(1,1,i-2))
->         call matmat2(EUgder(1,1,i-2),DD(1,1,iti1),EUgDder(1,1,i-2))
-> cd        write (iout,*) 'mu ',mu(:,i-2)
-> cd        write (iout,*) 'mu1',mu1(:,i-2)
-> cd        write (iout,*) 'mu2',mu2(:,i-2)
->       enddo
-> C Matrices dependent on two consecutive virtual-bond dihedrals.
-> C The order of matrices is from left to right.
->       do i=2,nres-1
->         call matmat2(DtUg2(1,1,i-1),EUg(1,1,i),DtUg2EUg(1,1,i))
->         call matmat2(DtUg2der(1,1,i-1),EUg(1,1,i),DtUg2EUgder(1,1,1,i))
->         call matmat2(DtUg2(1,1,i-1),EUgder(1,1,i),DtUg2EUgder(1,1,2,i))
->         call transpose2(DtUg2(1,1,i-1),auxmat(1,1))
->         call matmat2(auxmat(1,1),EUg(1,1,i),Ug2DtEUg(1,1,i))
->         call matmat2(auxmat(1,1),EUgder(1,1,i),Ug2DtEUgder(1,1,2,i))
->         call transpose2(DtUg2der(1,1,i-1),auxmat(1,1))
->         call matmat2(auxmat(1,1),EUg(1,1,i),Ug2DtEUgder(1,1,1,i))
->       enddo
-> cd      do i=1,nres
-> cd        iti = itortyp(itype(i))
-> cd        write (iout,*) i
-> cd        do j=1,2
-> cd        write (iout,'(2f10.5,5x,2f10.5,5x,2f10.5)') 
-> cd     &  (EE(j,k,iti),k=1,2),(Ug(j,k,i),k=1,2),(EUg(j,k,i),k=1,2)
-> cd        enddo
-> cd      enddo
->       return
->       end
-> C--------------------------------------------------------------------------
->       subroutine eelec(ees,evdw1,eel_loc,eello_turn3,eello_turn4)
-1420,1422c2159
-<       common /locel/ a_temp,agg,aggi,aggi1,aggj,aggj1,a22,a23,a32,a33,
-<      &    dxi,dyi,dzi,dx_normi,dy_normi,dz_normi,xmedi,ymedi,zmedi,
-<      &    num_conti,j1,j2
----
->       common /locel/ a_temp,agg,aggi,aggi1,aggj,aggj1,j1,j2
-1434,1485c2171,2284
-<           ind=ind+1
-<           iteli=itel(i)
-<           itelj=itel(j)
-<           if (j.eq.i+2 .and. itelj.eq.2) iteli=2
-<           aaa=app(iteli,itelj)
-<           bbb=bpp(iteli,itelj)
-<           ael6i=ael6(iteli,itelj)
-<           ael3i=ael3(iteli,itelj) 
-< C Diagnostics only!!!
-< c         aaa=0.0D0
-< c         bbb=0.0D0
-< c         ael6i=0.0D0
-< c         ael3i=0.0D0
-< C End diagnostics
-<           dxj=dc(1,j)
-<           dyj=dc(2,j)
-<           dzj=dc(3,j)
-<           dx_normj=dc_norm(1,j)
-<           dy_normj=dc_norm(2,j)
-<           dz_normj=dc_norm(3,j)
-<           xj=c(1,j)+0.5D0*dxj-xmedi
-<           yj=c(2,j)+0.5D0*dyj-ymedi
-<           zj=c(3,j)+0.5D0*dzj-zmedi
-<           rij=xj*xj+yj*yj+zj*zj
-<           rrmij=1.0D0/rij
-<           rij=dsqrt(rij)
-<           rmij=1.0D0/rij
-< c For extracting the short-range part of Evdwpp
-<           sss=sscale(rij/rpp(iteli,itelj))
-< c
-<           r3ij=rrmij*rmij
-<           r6ij=r3ij*r3ij  
-<           cosa=dx_normi*dx_normj+dy_normi*dy_normj+dz_normi*dz_normj
-<           cosb=(xj*dx_normi+yj*dy_normi+zj*dz_normi)*rmij
-<           cosg=(xj*dx_normj+yj*dy_normj+zj*dz_normj)*rmij
-<           fac=cosa-3.0D0*cosb*cosg
-<           ev1=aaa*r6ij*r6ij
-< c 4/26/02 - AL scaling down 1,4 repulsive VDW interactions
-<           if (j.eq.i+2) ev1=scal_el*ev1
-<           ev2=bbb*r6ij
-<           fac3=ael6i*r6ij
-<           fac4=ael3i*r3ij
-<           evdwij=ev1+ev2
-<           el1=fac3*(4.0D0+fac*fac-3.0D0*(cosb*cosb+cosg*cosg))
-<           el2=fac4*fac       
-<           eesij=el1+el2
-< C 12/26/95 - for the evaluation of multi-body H-bonding interactions
-<           ees0ij=4.0D0+fac*fac-3.0D0*(cosb*cosb+cosg*cosg)
-<           ees=ees+eesij
-<           evdw1=evdw1+evdwij*(1.0d0-sss)
-< cd          write(iout,'(2(2i3,2x),7(1pd12.4)/2(3(1pd12.4),5x)/)')
-< cd     &      iteli,i,itelj,j,aaa,bbb,ael6i,ael3i,
----
-> cd      write(iout,*) 'In EELEC'
-> cd      do i=1,nloctyp
-> cd        write(iout,*) 'Type',i
-> cd        write(iout,*) 'B1',B1(:,i)
-> cd        write(iout,*) 'B2',B2(:,i)
-> cd        write(iout,*) 'CC',CC(:,:,i)
-> cd        write(iout,*) 'DD',DD(:,:,i)
-> cd        write(iout,*) 'EE',EE(:,:,i)
-> cd      enddo
-> cd      call check_vecgrad
-> cd      stop
->       if (icheckgrad.eq.1) then
->         do i=1,nres-1
->           fac=1.0d0/dsqrt(scalar(dc(1,i),dc(1,i)))
->           do k=1,3
->             dc_norm(k,i)=dc(k,i)*fac
->           enddo
-> c          write (iout,*) 'i',i,' fac',fac
->         enddo
->       endif
->       if (wel_loc.gt.0.0d0 .or. wcorr4.gt.0.0d0 .or. wcorr5.gt.0.0d0 
->      &    .or. wcorr6.gt.0.0d0 .or. wturn3.gt.0.0d0 .or. 
->      &    wturn4.gt.0.0d0 .or. wturn6.gt.0.0d0) then
-> c        call vec_and_deriv
->         call set_matrices
->       endif
-> cd      do i=1,nres-1
-> cd        write (iout,*) 'i=',i
-> cd        do k=1,3
-> cd        write (iout,'(i5,2f10.5)') k,uy(k,i),uz(k,i)
-> cd        enddo
-> cd        do k=1,3
-> cd          write (iout,'(f10.5,2x,3f10.5,2x,3f10.5)') 
-> cd     &     uz(k,i),(uzgrad(k,l,1,i),l=1,3),(uzgrad(k,l,2,i),l=1,3)
-> cd        enddo
-> cd      enddo
->       num_conti_hb=0
->       ees=0.0D0
->       evdw1=0.0D0
->       eel_loc=0.0d0 
->       eello_turn3=0.0d0
->       eello_turn4=0.0d0
->       ind=0
->       do i=1,nres
->         num_cont_hb(i)=0
->       enddo
-> cd      print '(a)','Enter EELEC'
-> cd      write (iout,*) 'iatel_s=',iatel_s,' iatel_e=',iatel_e
->       do i=1,nres
->         gel_loc_loc(i)=0.0d0
->         gcorr_loc(i)=0.0d0
->       enddo
->       do i=iatel_s,iatel_e
->         dxi=dc(1,i)
->         dyi=dc(2,i)
->         dzi=dc(3,i)
->         dx_normi=dc_norm(1,i)
->         dy_normi=dc_norm(2,i)
->         dz_normi=dc_norm(3,i)
->         xmedi=c(1,i)+0.5d0*dxi
->         ymedi=c(2,i)+0.5d0*dyi
->         zmedi=c(3,i)+0.5d0*dzi
->         num_conti=0
-> c        write (iout,*) 'i',i,' ielstart',ielstart(i),' ielend',ielend(i)
->         do j=ielstart(i),ielend(i)
->           ind=ind+1
->           iteli=itel(i)
->           itelj=itel(j)
->           if (j.eq.i+2 .and. itelj.eq.2) iteli=2
->           aaa=app(iteli,itelj)
->           bbb=bpp(iteli,itelj)
->           ael6i=ael6(iteli,itelj)
->           ael3i=ael3(iteli,itelj) 
-> C Diagnostics only!!!
-> c         aaa=0.0D0
-> c         bbb=0.0D0
-> c         ael6i=0.0D0
-> c         ael3i=0.0D0
-> C End diagnostics
->           dxj=dc(1,j)
->           dyj=dc(2,j)
->           dzj=dc(3,j)
->           dx_normj=dc_norm(1,j)
->           dy_normj=dc_norm(2,j)
->           dz_normj=dc_norm(3,j)
->           xj=c(1,j)+0.5D0*dxj-xmedi
->           yj=c(2,j)+0.5D0*dyj-ymedi
->           zj=c(3,j)+0.5D0*dzj-zmedi
->           rij=xj*xj+yj*yj+zj*zj
->           rrmij=1.0D0/rij
->           rij=dsqrt(rij)
->           rmij=1.0D0/rij
->           r3ij=rrmij*rmij
->           r6ij=r3ij*r3ij  
->           cosa=dx_normi*dx_normj+dy_normi*dy_normj+dz_normi*dz_normj
->           cosb=(xj*dx_normi+yj*dy_normi+zj*dz_normi)*rmij
->           cosg=(xj*dx_normj+yj*dy_normj+zj*dz_normj)*rmij
->           fac=cosa-3.0D0*cosb*cosg
->           ev1=aaa*r6ij*r6ij
-> c 4/26/02 - AL scaling down 1,4 repulsive VDW interactions
->           if (j.eq.i+2) ev1=scal_el*ev1
->           ev2=bbb*r6ij
->           fac3=ael6i*r6ij
->           fac4=ael3i*r3ij
->           evdwij=ev1+ev2
->           el1=fac3*(4.0D0+fac*fac-3.0D0*(cosb*cosb+cosg*cosg))
->           el2=fac4*fac       
->           eesij=el1+el2
-> C 12/26/95 - for the evaluation of multi-body H-bonding interactions
->           ees0ij=4.0D0+fac*fac-3.0D0*(cosb*cosb+cosg*cosg)
->           ees=ees+eesij
->           evdw1=evdw1+evdwij
-> cd          write(iout,'(2(2i3,2x),7(1pd12.4)/2(3(1pd12.4),5x)/)')
-> cd     &      iteli,i,itelj,j,aaa,bbb,ael6i,ael3i,
-1498c2297
-<           facvdw=-6*rrmij*(ev1+evdwij)*(1.0d0-sss)
----
->           facvdw=-6*rrmij*(ev1+evdwij)
-1540c2339
-<           facvdw=(ev1+evdwij)*(1.0d0-sss) 
----
->           facvdw=ev1+evdwij 
-1876a2676,2683
->           if (wturn3.gt.0.0d0 .or. wturn4.gt.0.0d0) then
-> C Contributions from turns
->             a_temp(1,1)=a22
->             a_temp(1,2)=a23
->             a_temp(2,1)=a32
->             a_temp(2,2)=a33
->             call eturn34(i,j,eello_turn3,eello_turn4)
->           endif
-2073a2881,2889
->         enddo ! j
->         num_cont_hb(i)=num_conti
->       enddo   ! i
-> cd      do i=1,nres
-> cd        write (iout,'(i3,3f10.5,5x,3f10.5)') 
-> cd     &     i,(gel_loc(k,i),k=1,3),gel_loc_loc(i)
-> cd      enddo
-> c 12/7/99 Adam eello_turn3 will be considered as a separate energy term
-> ccc      eel_loc=eel_loc+eello_turn3
-2076,2080c2892,2894
-< C-----------------------------------------------------------------------
-<       subroutine evdwpp_long(evdw1)
-< C
-< C Compute Evdwpp
-< C 
----
-> C-----------------------------------------------------------------------------
->       subroutine eturn34(i,j,eello_turn3,eello_turn4)
-> C Third- and fourth-order contributions from turns
-2083d2896
-<       include 'COMMON.CONTROL'
-2094a2908
->       include 'COMMON.CONTROL'
-2096,2148c2910,2917
-< c 4/26/02 - AL scaling factor for 1,4 repulsive VDW interactions
-< #ifdef MOMENT
-<       double precision scal_el /1.0d0/
-< #else
-<       double precision scal_el /0.5d0/
-< #endif
-<       evdw1=0.0D0
-<       do i=iatel_s,iatel_e
-<         dxi=dc(1,i)
-<         dyi=dc(2,i)
-<         dzi=dc(3,i)
-<         dx_normi=dc_norm(1,i)
-<         dy_normi=dc_norm(2,i)
-<         dz_normi=dc_norm(3,i)
-<         xmedi=c(1,i)+0.5d0*dxi
-<         ymedi=c(2,i)+0.5d0*dyi
-<         zmedi=c(3,i)+0.5d0*dzi
-<         num_conti=0
-< c        write (iout,*) 'i',i,' ielstart',ielstart(i),' ielend',ielend(i)
-<         do j=ielstart(i),ielend(i)
-<           ind=ind+1
-<           iteli=itel(i)
-<           itelj=itel(j)
-<           if (j.eq.i+2 .and. itelj.eq.2) iteli=2
-<           aaa=app(iteli,itelj)
-<           bbb=bpp(iteli,itelj)
-<           dxj=dc(1,j)
-<           dyj=dc(2,j)
-<           dzj=dc(3,j)
-<           dx_normj=dc_norm(1,j)
-<           dy_normj=dc_norm(2,j)
-<           dz_normj=dc_norm(3,j)
-<           xj=c(1,j)+0.5D0*dxj-xmedi
-<           yj=c(2,j)+0.5D0*dyj-ymedi
-<           zj=c(3,j)+0.5D0*dzj-zmedi
-<           rij=xj*xj+yj*yj+zj*zj
-<           rrmij=1.0D0/rij
-<           rij=dsqrt(rij)
-<           sss=sscale(rij/rpp(iteli,itelj))
-<           if (sss.lt.1.0d0) then
-<             rmij=1.0D0/rij
-<             r3ij=rrmij*rmij
-<             r6ij=r3ij*r3ij  
-<             ev1=aaa*r6ij*r6ij
-< c 4/26/02 - AL scaling down 1,4 repulsive VDW interactions
-<             if (j.eq.i+2) ev1=scal_el*ev1
-<             ev2=bbb*r6ij
-<             evdwij=ev1+ev2
-<             if (energy_dec) then 
-<               write (iout,'(a6,2i5,0pf7.3)') 'evdw1',i,j,evdwij
-<               write (iout,'(a6,2i5,0pf7.3)') 'ees',i,j,eesij
-<             endif
-<             evdw1=evdw1+evdwij*(1.0d0-sss)
----
->       double precision auxmat(2,2),auxmat1(2,2),auxmat2(2,2),pizda(2,2),
->      &  e1t(2,2),e2t(2,2),e3t(2,2),e1tder(2,2),e2tder(2,2),e3tder(2,2),
->      &  e1a(2,2),ae3(2,2),ae3e2(2,2),auxvec(2),auxvec1(2)
->       double precision agg(3,4),aggi(3,4),aggi1(3,4),
->      &    aggj(3,4),aggj1(3,4),a_temp(2,2),auxmat3(2,2)
->       common /locel/ a_temp,agg,aggi,aggi1,aggj,aggj1,j1,j2
->       if (j.eq.i+2) then
-> CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-2150c2919,2980
-< C Calculate contributions to the Cartesian gradient.
----
-> C               Third-order contributions
-> C        
-> C                 (i+2)o----(i+3)
-> C                      | |
-> C                      | |
-> C                 (i+1)o----i
-> C
-> CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC   
-> cd        call checkint_turn3(i,a_temp,eello_turn3_num)
->         call matmat2(EUg(1,1,i+1),EUg(1,1,i+2),auxmat(1,1))
->         call transpose2(auxmat(1,1),auxmat1(1,1))
->         call matmat2(a_temp(1,1),auxmat1(1,1),pizda(1,1))
->         eello_turn3=eello_turn3+0.5d0*(pizda(1,1)+pizda(2,2))
->         if (energy_dec) write (iout,'(a6,2i5,0pf7.3)')
->      &          'eturn3',i,j,0.5d0*(pizda(1,1)+pizda(2,2))
-> cd        write (2,*) 'i,',i,' j',j,'eello_turn3',
-> cd     &    0.5d0*(pizda(1,1)+pizda(2,2)),
-> cd     &    ' eello_turn3_num',4*eello_turn3_num
-> C Derivatives in gamma(i)
->         call matmat2(EUgder(1,1,i+1),EUg(1,1,i+2),auxmat2(1,1))
->         call transpose2(auxmat2(1,1),auxmat3(1,1))
->         call matmat2(a_temp(1,1),auxmat3(1,1),pizda(1,1))
->         gel_loc_turn3(i)=gel_loc_turn3(i)+0.5d0*(pizda(1,1)+pizda(2,2))
-> C Derivatives in gamma(i+1)
->         call matmat2(EUg(1,1,i+1),EUgder(1,1,i+2),auxmat2(1,1))
->         call transpose2(auxmat2(1,1),auxmat3(1,1))
->         call matmat2(a_temp(1,1),auxmat3(1,1),pizda(1,1))
->         gel_loc_turn3(i+1)=gel_loc_turn3(i+1)
->      &    +0.5d0*(pizda(1,1)+pizda(2,2))
-> C Cartesian derivatives
->         do l=1,3
->           a_temp(1,1)=aggi(l,1)
->           a_temp(1,2)=aggi(l,2)
->           a_temp(2,1)=aggi(l,3)
->           a_temp(2,2)=aggi(l,4)
->           call matmat2(a_temp(1,1),auxmat1(1,1),pizda(1,1))
->           gcorr3_turn(l,i)=gcorr3_turn(l,i)
->      &      +0.5d0*(pizda(1,1)+pizda(2,2))
->           a_temp(1,1)=aggi1(l,1)
->           a_temp(1,2)=aggi1(l,2)
->           a_temp(2,1)=aggi1(l,3)
->           a_temp(2,2)=aggi1(l,4)
->           call matmat2(a_temp(1,1),auxmat1(1,1),pizda(1,1))
->           gcorr3_turn(l,i+1)=gcorr3_turn(l,i+1)
->      &      +0.5d0*(pizda(1,1)+pizda(2,2))
->           a_temp(1,1)=aggj(l,1)
->           a_temp(1,2)=aggj(l,2)
->           a_temp(2,1)=aggj(l,3)
->           a_temp(2,2)=aggj(l,4)
->           call matmat2(a_temp(1,1),auxmat1(1,1),pizda(1,1))
->           gcorr3_turn(l,j)=gcorr3_turn(l,j)
->      &      +0.5d0*(pizda(1,1)+pizda(2,2))
->           a_temp(1,1)=aggj1(l,1)
->           a_temp(1,2)=aggj1(l,2)
->           a_temp(2,1)=aggj1(l,3)
->           a_temp(2,2)=aggj1(l,4)
->           call matmat2(a_temp(1,1),auxmat1(1,1),pizda(1,1))
->           gcorr3_turn(l,j1)=gcorr3_turn(l,j1)
->      &      +0.5d0*(pizda(1,1)+pizda(2,2))
->         enddo
->       else if (j.eq.i+3) then
-> CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-2152,2172c2982,3119
-<             facvdw=-6*rrmij*(ev1+evdwij)*(1.0d0-sss)
-<             ggg(1)=facvdw*xj
-<             ggg(2)=facvdw*yj
-<             ggg(3)=facvdw*zj
-< 
-<             do k=1,3
-<               ghalf=0.5D0*ggg(k)
-<               gvdwpp(k,i)=gvdwpp(k,i)+ghalf
-<               gvdwpp(k,j)=gvdwpp(k,j)+ghalf
-<             enddo
-< *
-< * Loop over residues i+1 thru j-1.
-< *
-<             do k=i+1,j-1
-<               do l=1,3
-<                 gvdwpp(l,k)=gvdwpp(l,k)+ggg(l)
-<               enddo
-<             enddo
-<           endif
-<         enddo ! j
-<       enddo   ! i
----
-> C               Fourth-order contributions
-> C        
-> C                 (i+3)o----(i+4)
-> C                     /  |
-> C               (i+2)o   |
-> C                     \  |
-> C                 (i+1)o----i
-> C
-> CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC   
-> cd        call checkint_turn4(i,a_temp,eello_turn4_num)
->         iti1=itortyp(itype(i+1))
->         iti2=itortyp(itype(i+2))
->         iti3=itortyp(itype(i+3))
->         call transpose2(EUg(1,1,i+1),e1t(1,1))
->         call transpose2(Eug(1,1,i+2),e2t(1,1))
->         call transpose2(Eug(1,1,i+3),e3t(1,1))
->         call matmat2(e1t(1,1),a_temp(1,1),e1a(1,1))
->         call matvec2(e1a(1,1),Ub2(1,i+3),auxvec(1))
->         s1=scalar2(b1(1,iti2),auxvec(1))
->         call matmat2(a_temp(1,1),e3t(1,1),ae3(1,1))
->         call matvec2(ae3(1,1),Ub2(1,i+2),auxvec(1)) 
->         s2=scalar2(b1(1,iti1),auxvec(1))
->         call matmat2(ae3(1,1),e2t(1,1),ae3e2(1,1))
->         call matmat2(ae3e2(1,1),e1t(1,1),pizda(1,1))
->         s3=0.5d0*(pizda(1,1)+pizda(2,2))
->         eello_turn4=eello_turn4-(s1+s2+s3)
->         if (energy_dec) write (iout,'(a6,2i5,0pf7.3)')
->      &      'eturn4',i,j,-(s1+s2+s3)
-> cd        write (2,*) 'i,',i,' j',j,'eello_turn4',-(s1+s2+s3),
-> cd     &    ' eello_turn4_num',8*eello_turn4_num
-> C Derivatives in gamma(i)
->         call transpose2(EUgder(1,1,i+1),e1tder(1,1))
->         call matmat2(e1tder(1,1),a_temp(1,1),auxmat(1,1))
->         call matvec2(auxmat(1,1),Ub2(1,i+3),auxvec(1))
->         s1=scalar2(b1(1,iti2),auxvec(1))
->         call matmat2(ae3e2(1,1),e1tder(1,1),pizda(1,1))
->         s3=0.5d0*(pizda(1,1)+pizda(2,2))
->         gel_loc_turn4(i)=gel_loc_turn4(i)-(s1+s3)
-> C Derivatives in gamma(i+1)
->         call transpose2(EUgder(1,1,i+2),e2tder(1,1))
->         call matvec2(ae3(1,1),Ub2der(1,i+2),auxvec(1)) 
->         s2=scalar2(b1(1,iti1),auxvec(1))
->         call matmat2(ae3(1,1),e2tder(1,1),auxmat(1,1))
->         call matmat2(auxmat(1,1),e1t(1,1),pizda(1,1))
->         s3=0.5d0*(pizda(1,1)+pizda(2,2))
->         gel_loc_turn4(i+1)=gel_loc_turn4(i+1)-(s2+s3)
-> C Derivatives in gamma(i+2)
->         call transpose2(EUgder(1,1,i+3),e3tder(1,1))
->         call matvec2(e1a(1,1),Ub2der(1,i+3),auxvec(1))
->         s1=scalar2(b1(1,iti2),auxvec(1))
->         call matmat2(a_temp(1,1),e3tder(1,1),auxmat(1,1))
->         call matvec2(auxmat(1,1),Ub2(1,i+2),auxvec(1)) 
->         s2=scalar2(b1(1,iti1),auxvec(1))
->         call matmat2(auxmat(1,1),e2t(1,1),auxmat3(1,1))
->         call matmat2(auxmat3(1,1),e1t(1,1),pizda(1,1))
->         s3=0.5d0*(pizda(1,1)+pizda(2,2))
->         gel_loc_turn4(i+2)=gel_loc_turn4(i+2)-(s1+s2+s3)
-> C Cartesian derivatives
-> C Derivatives of this turn contributions in DC(i+2)
->         if (j.lt.nres-1) then
->           do l=1,3
->             a_temp(1,1)=agg(l,1)
->             a_temp(1,2)=agg(l,2)
->             a_temp(2,1)=agg(l,3)
->             a_temp(2,2)=agg(l,4)
->             call matmat2(e1t(1,1),a_temp(1,1),e1a(1,1))
->             call matvec2(e1a(1,1),Ub2(1,i+3),auxvec(1))
->             s1=scalar2(b1(1,iti2),auxvec(1))
->             call matmat2(a_temp(1,1),e3t(1,1),ae3(1,1))
->             call matvec2(ae3(1,1),Ub2(1,i+2),auxvec(1)) 
->             s2=scalar2(b1(1,iti1),auxvec(1))
->             call matmat2(ae3(1,1),e2t(1,1),ae3e2(1,1))
->             call matmat2(ae3e2(1,1),e1t(1,1),pizda(1,1))
->             s3=0.5d0*(pizda(1,1)+pizda(2,2))
->             ggg(l)=-(s1+s2+s3)
->             gcorr4_turn(l,i+2)=gcorr4_turn(l,i+2)-(s1+s2+s3)
->           enddo
->         endif
-> C Remaining derivatives of this turn contribution
->         do l=1,3
->           a_temp(1,1)=aggi(l,1)
->           a_temp(1,2)=aggi(l,2)
->           a_temp(2,1)=aggi(l,3)
->           a_temp(2,2)=aggi(l,4)
->           call matmat2(e1t(1,1),a_temp(1,1),e1a(1,1))
->           call matvec2(e1a(1,1),Ub2(1,i+3),auxvec(1))
->           s1=scalar2(b1(1,iti2),auxvec(1))
->           call matmat2(a_temp(1,1),e3t(1,1),ae3(1,1))
->           call matvec2(ae3(1,1),Ub2(1,i+2),auxvec(1)) 
->           s2=scalar2(b1(1,iti1),auxvec(1))
->           call matmat2(ae3(1,1),e2t(1,1),ae3e2(1,1))
->           call matmat2(ae3e2(1,1),e1t(1,1),pizda(1,1))
->           s3=0.5d0*(pizda(1,1)+pizda(2,2))
->           gcorr4_turn(l,i)=gcorr4_turn(l,i)-(s1+s2+s3)
->           a_temp(1,1)=aggi1(l,1)
->           a_temp(1,2)=aggi1(l,2)
->           a_temp(2,1)=aggi1(l,3)
->           a_temp(2,2)=aggi1(l,4)
->           call matmat2(e1t(1,1),a_temp(1,1),e1a(1,1))
->           call matvec2(e1a(1,1),Ub2(1,i+3),auxvec(1))
->           s1=scalar2(b1(1,iti2),auxvec(1))
->           call matmat2(a_temp(1,1),e3t(1,1),ae3(1,1))
->           call matvec2(ae3(1,1),Ub2(1,i+2),auxvec(1)) 
->           s2=scalar2(b1(1,iti1),auxvec(1))
->           call matmat2(ae3(1,1),e2t(1,1),ae3e2(1,1))
->           call matmat2(ae3e2(1,1),e1t(1,1),pizda(1,1))
->           s3=0.5d0*(pizda(1,1)+pizda(2,2))
->           gcorr4_turn(l,i+1)=gcorr4_turn(l,i+1)-(s1+s2+s3)
->           a_temp(1,1)=aggj(l,1)
->           a_temp(1,2)=aggj(l,2)
->           a_temp(2,1)=aggj(l,3)
->           a_temp(2,2)=aggj(l,4)
->           call matmat2(e1t(1,1),a_temp(1,1),e1a(1,1))
->           call matvec2(e1a(1,1),Ub2(1,i+3),auxvec(1))
->           s1=scalar2(b1(1,iti2),auxvec(1))
->           call matmat2(a_temp(1,1),e3t(1,1),ae3(1,1))
->           call matvec2(ae3(1,1),Ub2(1,i+2),auxvec(1)) 
->           s2=scalar2(b1(1,iti1),auxvec(1))
->           call matmat2(ae3(1,1),e2t(1,1),ae3e2(1,1))
->           call matmat2(ae3e2(1,1),e1t(1,1),pizda(1,1))
->           s3=0.5d0*(pizda(1,1)+pizda(2,2))
->           gcorr4_turn(l,j)=gcorr4_turn(l,j)-(s1+s2+s3)
->           a_temp(1,1)=aggj1(l,1)
->           a_temp(1,2)=aggj1(l,2)
->           a_temp(2,1)=aggj1(l,3)
->           a_temp(2,2)=aggj1(l,4)
->           call matmat2(e1t(1,1),a_temp(1,1),e1a(1,1))
->           call matvec2(e1a(1,1),Ub2(1,i+3),auxvec(1))
->           s1=scalar2(b1(1,iti2),auxvec(1))
->           call matmat2(a_temp(1,1),e3t(1,1),ae3(1,1))
->           call matvec2(ae3(1,1),Ub2(1,i+2),auxvec(1)) 
->           s2=scalar2(b1(1,iti1),auxvec(1))
->           call matmat2(ae3(1,1),e2t(1,1),ae3e2(1,1))
->           call matmat2(ae3e2(1,1),e1t(1,1),pizda(1,1))
->           s3=0.5d0*(pizda(1,1)+pizda(2,2))
->           gcorr4_turn(l,j1)=gcorr4_turn(l,j1)-(s1+s2+s3)
->         enddo
->       endif          
-2175,2176c3122,3160
-< C-----------------------------------------------------------------------
-<       subroutine evdwpp_short(evdw1)
----
-> C-----------------------------------------------------------------------------
->       subroutine vecpr(u,v,w)
->       implicit real*8(a-h,o-z)
->       dimension u(3),v(3),w(3)
->       w(1)=u(2)*v(3)-u(3)*v(2)
->       w(2)=-u(1)*v(3)+u(3)*v(1)
->       w(3)=u(1)*v(2)-u(2)*v(1)
->       return
->       end
-> C-----------------------------------------------------------------------------
->       subroutine unormderiv(u,ugrad,unorm,ungrad)
-> C This subroutine computes the derivatives of a normalized vector u, given
-> C the derivatives computed without normalization conditions, ugrad. Returns
-> C ungrad.
->       implicit none
->       double precision u(3),ugrad(3,3),unorm,ungrad(3,3)
->       double precision vec(3)
->       double precision scalar
->       integer i,j
-> c      write (2,*) 'ugrad',ugrad
-> c      write (2,*) 'u',u
->       do i=1,3
->         vec(i)=scalar(ugrad(1,i),u(1))
->       enddo
-> c      write (2,*) 'vec',vec
->       do i=1,3
->         do j=1,3
->           ungrad(j,i)=(ugrad(j,i)-u(j)*vec(i))*unorm
->         enddo
->       enddo
-> c      write (2,*) 'ungrad',ungrad
->       return
->       end
-> C-----------------------------------------------------------------------------
->       subroutine escp_soft_sphere(evdw2,evdw2_14)
-> C
-> C This subroutine calculates the excluded-volume interaction energy between
-> C peptide-group centers and side chains and its gradient in virtual-bond and
-> C side-chain vectors.
-2178,2179d3161
-< C Compute Evdwpp
-< C 
-2182,2183d3163
-<       include 'COMMON.CONTROL'
-<       include 'COMMON.IOUNITS'
-2190,2192d3169
-<       include 'COMMON.CONTACTS'
-<       include 'COMMON.TORSION'
-<       include 'COMMON.VECTORS'
-2194,2291c3171,3172
-<       dimension ggg(3)
-< c 4/26/02 - AL scaling factor for 1,4 repulsive VDW interactions
-< #ifdef MOMENT
-<       double precision scal_el /1.0d0/
-< #else
-<       double precision scal_el /0.5d0/
-< #endif
-<       evdw1=0.0D0
-<       do i=iatel_s,iatel_e
-<         dxi=dc(1,i)
-<         dyi=dc(2,i)
-<         dzi=dc(3,i)
-<         dx_normi=dc_norm(1,i)
-<         dy_normi=dc_norm(2,i)
-<         dz_normi=dc_norm(3,i)
-<         xmedi=c(1,i)+0.5d0*dxi
-<         ymedi=c(2,i)+0.5d0*dyi
-<         zmedi=c(3,i)+0.5d0*dzi
-<         num_conti=0
-< c        write (iout,*) 'i',i,' ielstart',ielstart(i),' ielend',ielend(i)
-<         do j=ielstart(i),ielend(i)
-<           ind=ind+1
-<           iteli=itel(i)
-<           itelj=itel(j)
-<           if (j.eq.i+2 .and. itelj.eq.2) iteli=2
-<           aaa=app(iteli,itelj)
-<           bbb=bpp(iteli,itelj)
-<           dxj=dc(1,j)
-<           dyj=dc(2,j)
-<           dzj=dc(3,j)
-<           dx_normj=dc_norm(1,j)
-<           dy_normj=dc_norm(2,j)
-<           dz_normj=dc_norm(3,j)
-<           xj=c(1,j)+0.5D0*dxj-xmedi
-<           yj=c(2,j)+0.5D0*dyj-ymedi
-<           zj=c(3,j)+0.5D0*dzj-zmedi
-<           rij=xj*xj+yj*yj+zj*zj
-<           rrmij=1.0D0/rij
-<           rij=dsqrt(rij)
-<           sss=sscale(rij/rpp(iteli,itelj))
-<           if (sss.gt.0.0d0) then
-<             rmij=1.0D0/rij
-<             r3ij=rrmij*rmij
-<             r6ij=r3ij*r3ij  
-<             ev1=aaa*r6ij*r6ij
-< c 4/26/02 - AL scaling down 1,4 repulsive VDW interactions
-<             if (j.eq.i+2) ev1=scal_el*ev1
-<             ev2=bbb*r6ij
-<             evdwij=ev1+ev2
-<             if (energy_dec) then 
-<               write (iout,'(a6,2i5,0pf7.3)') 'evdw1',i,j,evdwij
-<               write (iout,'(a6,2i5,0pf7.3)') 'ees',i,j,eesij
-<             endif
-<             evdw1=evdw1+evdwij*sss
-< C
-< C Calculate contributions to the Cartesian gradient.
-< C
-<             facvdw=-6*rrmij*(ev1+evdwij)*sss
-<             ggg(1)=facvdw*xj
-<             ggg(2)=facvdw*yj
-<             ggg(3)=facvdw*zj
-< 
-<             do k=1,3
-<               ghalf=0.5D0*ggg(k)
-<               gvdwpp(k,i)=gvdwpp(k,i)+ghalf
-<               gvdwpp(k,j)=gvdwpp(k,j)+ghalf
-<             enddo
-< *
-< * Loop over residues i+1 thru j-1.
-< *
-<             do k=i+1,j-1
-<               do l=1,3
-<                 gvdwpp(l,k)=gvdwpp(l,k)+ggg(l)
-<               enddo
-<             enddo
-<           endif
-<         enddo ! j
-<       enddo   ! i
-<       return
-<       end
-< C-----------------------------------------------------------------------------
-<       subroutine escp_long(evdw2,evdw2_14)
-< C
-< C This subroutine calculates the excluded-volume interaction energy between
-< C peptide-group centers and side chains and its gradient in virtual-bond and
-< C side-chain vectors.
-< C
-<       implicit real*8 (a-h,o-z)
-<       include 'DIMENSIONS'
-<       include 'COMMON.GEO'
-<       include 'COMMON.VAR'
-<       include 'COMMON.LOCAL'
-<       include 'COMMON.CHAIN'
-<       include 'COMMON.DERIV'
-<       include 'COMMON.INTERACT'
-<       include 'COMMON.FFIELD'
-<       include 'COMMON.IOUNITS'
-<       include 'COMMON.CONTROL'
----
->       include 'COMMON.IOUNITS'
->       include 'COMMON.CONTROL'
-2294a3176
->       r0_scp=4.5d0
-2315,2332c3197,3207
-<           rrij=1.0D0/(xj*xj+yj*yj+zj*zj)
-< 
-<           sss=sscale(1.0d0/(dsqrt(rrij)*rscp(itypj,iteli)))
-< 
-<           if (sss.lt.1.0d0) then
-< 
-<             fac=rrij**expon2
-<             e1=fac*fac*aad(itypj,iteli)
-<             e2=fac*bad(itypj,iteli)
-<             if (iabs(j-i) .le. 2) then
-<               e1=scal14*e1
-<               e2=scal14*e2
-<               evdw2_14=evdw2_14+(e1+e2)*(1.0d0-sss)
-<             endif
-<             evdwij=e1+e2
-<             evdw2=evdw2+evdwij*(1.0d0-sss)
-<             if (energy_dec) write (iout,'(a6,2i5,0pf7.3)')
-<      &          'evdw2',i,j,evdwij
----
->           rij=xj*xj+yj*yj+zj*zj
->           r0ij=r0_scp
->           r0ijsq=r0ij*r0ij
->           if (rij.lt.r0ijsq) then
->             evdwij=0.25d0*(rij-r0ijsq)**2
->             fac=rij-r0ijsq
->           else
->             evdwij=0.0d0
->             fac=0.0d0
->           endif 
->           evdw2=evdw2+evdwij
-2336,2341c3211,3215
-<             fac=-(evdwij+e1)*rrij*(1.0d0-sss)
-<             ggg(1)=xj*fac
-<             ggg(2)=yj*fac
-<             ggg(3)=zj*fac
-<             if (j.lt.i) then
-< cd            write (iout,*) 'j<i'
----
->           ggg(1)=xj*fac
->           ggg(2)=yj*fac
->           ggg(3)=zj*fac
->           if (j.lt.i) then
-> cd          write (iout,*) 'j<i'
-2343c3217
-< c             do k=1,3
----
-> c           do k=1,3
-2345,2353c3219,3221
-< c             enddo
-<             else
-< cd            write (iout,*) 'j>i'
-<               do k=1,3
-<                 ggg(k)=-ggg(k)
-< C Uncomment following line for SC-p interactions
-< c               gradx_scp(k,j)=gradx_scp(k,j)-ggg(k)
-<               enddo
-<             endif
----
-> c           enddo
->           else
-> cd          write (iout,*) 'j>i'
-2355c3223,3225
-<               gvdwc_scp(k,i)=gvdwc_scp(k,i)-0.5D0*ggg(k)
----
->               ggg(k)=-ggg(k)
-> C Uncomment following line for SC-p interactions
-> c             gradx_scp(k,j)=gradx_scp(k,j)-ggg(k)
-2357,2358c3227,3232
-<             kstart=min0(i+1,j)
-<             kend=max0(i-1,j-1)
----
->           endif
->           do k=1,3
->             gvdwc_scp(k,i)=gvdwc_scp(k,i)-0.5D0*ggg(k)
->           enddo
->           kstart=min0(i+1,j)
->           kend=max0(i-1,j-1)
-2361,2364c3235,3237
-<             do k=kstart,kend
-<               do l=1,3
-<                 gvdwc_scp(l,k)=gvdwc_scp(l,k)-ggg(l)
-<               enddo
----
->           do k=kstart,kend
->             do l=1,3
->               gvdwc_scp(l,k)=gvdwc_scp(l,k)-ggg(l)
-2366,2368c3239
-< 
-<           endif
-< 
----
->           enddo
-2373,2387d3243
-<       do i=1,nct
-<         do j=1,3
-<           gvdwc_scp(j,i)=expon*gvdwc_scp(j,i)
-<           gradx_scp(j,i)=expon*gradx_scp(j,i)
-<         enddo
-<       enddo
-< C******************************************************************************
-< C
-< C                              N O T E !!!
-< C
-< C To save time the factor EXPON has been extracted from ALL components
-< C of GVDWC and GRADX. Remember to multiply them by this factor before further 
-< C use!
-< C
-< C******************************************************************************
-2391c3247
-<       subroutine escp_short(evdw2,evdw2_14)
----
->       subroutine escp(evdw2,evdw2_14)
-2432,2448c3288,3299
-< 
-<           sss=sscale(1.0d0/(dsqrt(rrij)*rscp(itypj,iteli)))
-< 
-<           if (sss.gt.0.0d0) then
-< 
-<             fac=rrij**expon2
-<             e1=fac*fac*aad(itypj,iteli)
-<             e2=fac*bad(itypj,iteli)
-<             if (iabs(j-i) .le. 2) then
-<               e1=scal14*e1
-<               e2=scal14*e2
-<               evdw2_14=evdw2_14+(e1+e2)*sss
-<             endif
-<             evdwij=e1+e2
-<             evdw2=evdw2+evdwij*sss
-<             if (energy_dec) write (iout,'(a6,2i5,0pf7.3)')
-<      &          'evdw2',i,j,evdwij
----
->           fac=rrij**expon2
->           e1=fac*fac*aad(itypj,iteli)
->           e2=fac*bad(itypj,iteli)
->           if (iabs(j-i) .le. 2) then
->             e1=scal14*e1
->             e2=scal14*e2
->             evdw2_14=evdw2_14+e1+e2
->           endif
->           evdwij=e1+e2
->           evdw2=evdw2+evdwij
->           if (energy_dec) write (iout,'(a6,2i5,0pf7.3)')
->      &        'evdw2',i,j,evdwij
-2452,2457c3303,3308
-<             fac=-(evdwij+e1)*rrij*sss
-<             ggg(1)=xj*fac
-<             ggg(2)=yj*fac
-<             ggg(3)=zj*fac
-<             if (j.lt.i) then
-< cd            write (iout,*) 'j<i'
----
->           fac=-(evdwij+e1)*rrij
->           ggg(1)=xj*fac
->           ggg(2)=yj*fac
->           ggg(3)=zj*fac
->           if (j.lt.i) then
-> cd          write (iout,*) 'j<i'
-2459c3310
-< c             do k=1,3
----
-> c           do k=1,3
-2461,2469c3312,3314
-< c             enddo
-<             else
-< cd            write (iout,*) 'j>i'
-<               do k=1,3
-<                 ggg(k)=-ggg(k)
-< C Uncomment following line for SC-p interactions
-< c               gradx_scp(k,j)=gradx_scp(k,j)-ggg(k)
-<               enddo
-<             endif
----
-> c           enddo
->           else
-> cd          write (iout,*) 'j>i'
-2471c3316,3318
-<               gvdwc_scp(k,i)=gvdwc_scp(k,i)-0.5D0*ggg(k)
----
->               ggg(k)=-ggg(k)
-> C Uncomment following line for SC-p interactions
-> c             gradx_scp(k,j)=gradx_scp(k,j)-ggg(k)
-2473,2474c3320,3325
-<             kstart=min0(i+1,j)
-<             kend=max0(i-1,j-1)
----
->           endif
->           do k=1,3
->             gvdwc_scp(k,i)=gvdwc_scp(k,i)-0.5D0*ggg(k)
->           enddo
->           kstart=min0(i+1,j)
->           kend=max0(i-1,j-1)
-2477,2480c3328,3330
-<             do k=kstart,kend
-<               do l=1,3
-<                 gvdwc_scp(l,k)=gvdwc_scp(l,k)-ggg(l)
-<               enddo
----
->           do k=kstart,kend
->             do l=1,3
->               gvdwc_scp(l,k)=gvdwc_scp(l,k)-ggg(l)
-2482,2484c3332
-< 
-<           endif
-< 
----
->           enddo
-2505a3354,7899
-> C--------------------------------------------------------------------------
->       subroutine edis(ehpb)
-> C 
-> C Evaluate bridge-strain energy and its gradient in virtual-bond and SC vectors.
-> C
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.SBRIDGE'
->       include 'COMMON.CHAIN'
->       include 'COMMON.DERIV'
->       include 'COMMON.VAR'
->       include 'COMMON.INTERACT'
->       dimension ggg(3)
->       ehpb=0.0D0
-> cd    print *,'edis: nhpb=',nhpb,' fbr=',fbr
-> cd    print *,'link_start=',link_start,' link_end=',link_end
->       if (link_end.eq.0) return
->       do i=link_start,link_end
-> C If ihpb(i) and jhpb(i) > NRES, this is a SC-SC distance, otherwise a
-> C CA-CA distance used in regularization of structure.
->         ii=ihpb(i)
->         jj=jhpb(i)
-> C iii and jjj point to the residues for which the distance is assigned.
->         if (ii.gt.nres) then
->           iii=ii-nres
->           jjj=jj-nres 
->         else
->           iii=ii
->           jjj=jj
->         endif
-> C 24/11/03 AL: SS bridges handled separately because of introducing a specific
-> C    distance and angle dependent SS bond potential.
->         if (ii.gt.nres .and. itype(iii).eq.1 .and. itype(jjj).eq.1) then
->           call ssbond_ene(iii,jjj,eij)
->           ehpb=ehpb+2*eij
->         else
-> C Calculate the distance between the two points and its difference from the
-> C target distance.
->         dd=dist(ii,jj)
->         rdis=dd-dhpb(i)
-> C Get the force constant corresponding to this distance.
->         waga=forcon(i)
-> C Calculate the contribution to energy.
->         ehpb=ehpb+waga*rdis*rdis
-> C
-> C Evaluate gradient.
-> C
->         fac=waga*rdis/dd
-> cd      print *,'i=',i,' ii=',ii,' jj=',jj,' dhpb=',dhpb(i),' dd=',dd,
-> cd   &   ' waga=',waga,' fac=',fac
->         do j=1,3
->           ggg(j)=fac*(c(j,jj)-c(j,ii))
->         enddo
-> cd      print '(i3,3(1pe14.5))',i,(ggg(j),j=1,3)
-> C If this is a SC-SC distance, we need to calculate the contributions to the
-> C Cartesian gradient in the SC vectors (ghpbx).
->         if (iii.lt.ii) then
->           do j=1,3
->             ghpbx(j,iii)=ghpbx(j,iii)-ggg(j)
->             ghpbx(j,jjj)=ghpbx(j,jjj)+ggg(j)
->           enddo
->         endif
->         do j=iii,jjj-1
->           do k=1,3
->             ghpbc(k,j)=ghpbc(k,j)+ggg(k)
->           enddo
->         enddo
->         endif
->       enddo
->       ehpb=0.5D0*ehpb
->       return
->       end
-> C--------------------------------------------------------------------------
->       subroutine ssbond_ene(i,j,eij)
-> C 
-> C Calculate the distance and angle dependent SS-bond potential energy
-> C using a free-energy function derived based on RHF/6-31G** ab initio
-> C calculations of diethyl disulfide.
-> C
-> C A. Liwo and U. Kozlowska, 11/24/03
-> C
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.SBRIDGE'
->       include 'COMMON.CHAIN'
->       include 'COMMON.DERIV'
->       include 'COMMON.LOCAL'
->       include 'COMMON.INTERACT'
->       include 'COMMON.VAR'
->       include 'COMMON.IOUNITS'
->       double precision erij(3),dcosom1(3),dcosom2(3),gg(3)
->       itypi=itype(i)
->       xi=c(1,nres+i)
->       yi=c(2,nres+i)
->       zi=c(3,nres+i)
->       dxi=dc_norm(1,nres+i)
->       dyi=dc_norm(2,nres+i)
->       dzi=dc_norm(3,nres+i)
->       dsci_inv=dsc_inv(itypi)
->       itypj=itype(j)
->       dscj_inv=dsc_inv(itypj)
->       xj=c(1,nres+j)-xi
->       yj=c(2,nres+j)-yi
->       zj=c(3,nres+j)-zi
->       dxj=dc_norm(1,nres+j)
->       dyj=dc_norm(2,nres+j)
->       dzj=dc_norm(3,nres+j)
->       rrij=1.0D0/(xj*xj+yj*yj+zj*zj)
->       rij=dsqrt(rrij)
->       erij(1)=xj*rij
->       erij(2)=yj*rij
->       erij(3)=zj*rij
->       om1=dxi*erij(1)+dyi*erij(2)+dzi*erij(3)
->       om2=dxj*erij(1)+dyj*erij(2)+dzj*erij(3)
->       om12=dxi*dxj+dyi*dyj+dzi*dzj
->       do k=1,3
->         dcosom1(k)=rij*(dc_norm(k,nres+i)-om1*erij(k))
->         dcosom2(k)=rij*(dc_norm(k,nres+j)-om2*erij(k))
->       enddo
->       rij=1.0d0/rij
->       deltad=rij-d0cm
->       deltat1=1.0d0-om1
->       deltat2=1.0d0+om2
->       deltat12=om2-om1+2.0d0
->       cosphi=om12-om1*om2
->       eij=akcm*deltad*deltad+akth*(deltat1*deltat1+deltat2*deltat2)
->      &  +akct*deltad*deltat12
->      &  +v1ss*cosphi+v2ss*cosphi*cosphi+v3ss*cosphi*cosphi*cosphi
-> c      write(iout,*) i,j,"rij",rij,"d0cm",d0cm," akcm",akcm," akth",akth,
-> c     &  " akct",akct," deltad",deltad," deltat",deltat1,deltat2,
-> c     &  " deltat12",deltat12," eij",eij 
->       ed=2*akcm*deltad+akct*deltat12
->       pom1=akct*deltad
->       pom2=v1ss+2*v2ss*cosphi+3*v3ss*cosphi*cosphi
->       eom1=-2*akth*deltat1-pom1-om2*pom2
->       eom2= 2*akth*deltat2+pom1-om1*pom2
->       eom12=pom2
->       do k=1,3
->         gg(k)=ed*erij(k)+eom1*dcosom1(k)+eom2*dcosom2(k)
->       enddo
->       do k=1,3
->         ghpbx(k,i)=ghpbx(k,i)-gg(k)
->      &            +(eom12*dc_norm(k,nres+j)+eom1*erij(k))*dsci_inv
->         ghpbx(k,j)=ghpbx(k,j)+gg(k)
->      &            +(eom12*dc_norm(k,nres+i)+eom2*erij(k))*dscj_inv
->       enddo
-> C
-> C Calculate the components of the gradient in DC and X
-> C
->       do k=i,j-1
->         do l=1,3
->           ghpbc(l,k)=ghpbc(l,k)+gg(l)
->         enddo
->       enddo
->       return
->       end
-> C--------------------------------------------------------------------------
->       subroutine ebond(estr)
-> c
-> c Evaluate the energy of stretching of the CA-CA and CA-SC virtual bonds
-> c
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.LOCAL'
->       include 'COMMON.GEO'
->       include 'COMMON.INTERACT'
->       include 'COMMON.DERIV'
->       include 'COMMON.VAR'
->       include 'COMMON.CHAIN'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.NAMES'
->       include 'COMMON.FFIELD'
->       include 'COMMON.CONTROL'
->       include 'COMMON.SETUP'
->       double precision u(3),ud(3)
->       estr=0.0d0
->       do i=ibondp_start,ibondp_end
->         diff = vbld(i)-vbldp0
-> c        write (iout,*) i,vbld(i),vbldp0,diff,AKP*diff*diff
->         estr=estr+diff*diff
->         do j=1,3
->           gradb(j,i-1)=AKP*diff*dc(j,i-1)/vbld(i)
->         enddo
-> c        write (iout,'(i5,3f10.5)') i,(gradb(j,i-1),j=1,3)
->       enddo
->       estr=0.5d0*AKP*estr
-> c
-> c 09/18/07 AL: multimodal bond potential based on AM1 CA-SC PMF's included
-> c
->       do i=ibond_start,ibond_end
->         iti=itype(i)
->         if (iti.ne.10) then
->           nbi=nbondterm(iti)
->           if (nbi.eq.1) then
->             diff=vbld(i+nres)-vbldsc0(1,iti)
-> c            write (iout,*) i,iti,vbld(i+nres),vbldsc0(1,iti),diff,
-> c     &      AKSC(1,iti),AKSC(1,iti)*diff*diff
->             estr=estr+0.5d0*AKSC(1,iti)*diff*diff
->             do j=1,3
->               gradbx(j,i)=AKSC(1,iti)*diff*dc(j,i+nres)/vbld(i+nres)
->             enddo
->           else
->             do j=1,nbi
->               diff=vbld(i+nres)-vbldsc0(j,iti) 
->               ud(j)=aksc(j,iti)*diff
->               u(j)=abond0(j,iti)+0.5d0*ud(j)*diff
->             enddo
->             uprod=u(1)
->             do j=2,nbi
->               uprod=uprod*u(j)
->             enddo
->             usum=0.0d0
->             usumsqder=0.0d0
->             do j=1,nbi
->               uprod1=1.0d0
->               uprod2=1.0d0
->               do k=1,nbi
->                 if (k.ne.j) then
->                   uprod1=uprod1*u(k)
->                   uprod2=uprod2*u(k)*u(k)
->                 endif
->               enddo
->               usum=usum+uprod1
->               usumsqder=usumsqder+ud(j)*uprod2   
->             enddo
->             estr=estr+uprod/usum
->             do j=1,3
->              gradbx(j,i)=usumsqder/(usum*usum)*dc(j,i+nres)/vbld(i+nres)
->             enddo
->           endif
->         endif
->       enddo
->       return
->       end 
-> #ifdef CRYST_THETA
-> C--------------------------------------------------------------------------
->       subroutine ebend(etheta)
-> C
-> C Evaluate the virtual-bond-angle energy given the virtual-bond dihedral
-> C angles gamma and its derivatives in consecutive thetas and gammas.
-> C
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.LOCAL'
->       include 'COMMON.GEO'
->       include 'COMMON.INTERACT'
->       include 'COMMON.DERIV'
->       include 'COMMON.VAR'
->       include 'COMMON.CHAIN'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.NAMES'
->       include 'COMMON.FFIELD'
->       include 'COMMON.CONTROL'
->       common /calcthet/ term1,term2,termm,diffak,ratak,
->      & ak,aktc,termpre,termexp,sigc,sig0i,time11,time12,sigcsq,
->      & delthe0,sig0inv,sigtc,sigsqtc,delthec,it
->       double precision y(2),z(2)
->       delta=0.02d0*pi
-> c      time11=dexp(-2*time)
-> c      time12=1.0d0
->       etheta=0.0D0
-> c     write (*,'(a,i2)') 'EBEND ICG=',icg
->       do i=ithet_start,ithet_end
-> C Zero the energy function and its derivative at 0 or pi.
->         call splinthet(theta(i),0.5d0*delta,ss,ssd)
->         it=itype(i-1)
->         if (i.gt.3) then
-> #ifdef OSF
->        phii=phi(i)
->           if (phii.ne.phii) phii=150.0
-> #else
->           phii=phi(i)
-> #endif
->           y(1)=dcos(phii)
->           y(2)=dsin(phii)
->         else 
->           y(1)=0.0D0
->           y(2)=0.0D0
->         endif
->         if (i.lt.nres) then
-> #ifdef OSF
->        phii1=phi(i+1)
->           if (phii1.ne.phii1) phii1=150.0
->           phii1=pinorm(phii1)
->           z(1)=cos(phii1)
-> #else
->           phii1=phi(i+1)
->           z(1)=dcos(phii1)
-> #endif
->           z(2)=dsin(phii1)
->         else
->           z(1)=0.0D0
->           z(2)=0.0D0
->         endif  
-> C Calculate the "mean" value of theta from the part of the distribution
-> C dependent on the adjacent virtual-bond-valence angles (gamma1 & gamma2).
-> C In following comments this theta will be referred to as t_c.
->         thet_pred_mean=0.0d0
->         do k=1,2
->           athetk=athet(k,it)
->           bthetk=bthet(k,it)
->           thet_pred_mean=thet_pred_mean+athetk*y(k)+bthetk*z(k)
->         enddo
->         dthett=thet_pred_mean*ssd
->         thet_pred_mean=thet_pred_mean*ss+a0thet(it)
-> C Derivatives of the "mean" values in gamma1 and gamma2.
->         dthetg1=(-athet(1,it)*y(2)+athet(2,it)*y(1))*ss
->         dthetg2=(-bthet(1,it)*z(2)+bthet(2,it)*z(1))*ss
->         if (theta(i).gt.pi-delta) then
->           call theteng(pi-delta,thet_pred_mean,theta0(it),f0,fprim0,
->      &         E_tc0)
->           call mixder(pi-delta,thet_pred_mean,theta0(it),fprim_tc0)
->           call theteng(pi,thet_pred_mean,theta0(it),f1,fprim1,E_tc1)
->           call spline1(theta(i),pi-delta,delta,f0,f1,fprim0,ethetai,
->      &        E_theta)
->           call spline2(theta(i),pi-delta,delta,E_tc0,E_tc1,fprim_tc0,
->      &        E_tc)
->         else if (theta(i).lt.delta) then
->           call theteng(delta,thet_pred_mean,theta0(it),f0,fprim0,E_tc0)
->           call theteng(0.0d0,thet_pred_mean,theta0(it),f1,fprim1,E_tc1)
->           call spline1(theta(i),delta,-delta,f0,f1,fprim0,ethetai,
->      &        E_theta)
->           call mixder(delta,thet_pred_mean,theta0(it),fprim_tc0)
->           call spline2(theta(i),delta,-delta,E_tc0,E_tc1,fprim_tc0,
->      &        E_tc)
->         else
->           call theteng(theta(i),thet_pred_mean,theta0(it),ethetai,
->      &        E_theta,E_tc)
->         endif
->         etheta=etheta+ethetai
->         if (energy_dec) write (iout,'(a6,i5,0pf7.3)')
->      &      'ebend',i,ethetai
->         if (i.gt.3) gloc(i-3,icg)=gloc(i-3,icg)+wang*E_tc*dthetg1
->         if (i.lt.nres) gloc(i-2,icg)=gloc(i-2,icg)+wang*E_tc*dthetg2
->         gloc(nphi+i-2,icg)=wang*(E_theta+E_tc*dthett)
->       enddo
-> C Ufff.... We've done all this!!! 
->       return
->       end
-> C---------------------------------------------------------------------------
->       subroutine theteng(thetai,thet_pred_mean,theta0i,ethetai,E_theta,
->      &     E_tc)
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.LOCAL'
->       include 'COMMON.IOUNITS'
->       common /calcthet/ term1,term2,termm,diffak,ratak,
->      & ak,aktc,termpre,termexp,sigc,sig0i,time11,time12,sigcsq,
->      & delthe0,sig0inv,sigtc,sigsqtc,delthec,it
-> C Calculate the contributions to both Gaussian lobes.
-> C 6/6/97 - Deform the Gaussians using the factor of 1/(1+time)
-> C The "polynomial part" of the "standard deviation" of this part of 
-> C the distribution.
->         sig=polthet(3,it)
->         do j=2,0,-1
->           sig=sig*thet_pred_mean+polthet(j,it)
->         enddo
-> C Derivative of the "interior part" of the "standard deviation of the" 
-> C gamma-dependent Gaussian lobe in t_c.
->         sigtc=3*polthet(3,it)
->         do j=2,1,-1
->           sigtc=sigtc*thet_pred_mean+j*polthet(j,it)
->         enddo
->         sigtc=sig*sigtc
-> C Set the parameters of both Gaussian lobes of the distribution.
-> C "Standard deviation" of the gamma-dependent Gaussian lobe (sigtc)
->         fac=sig*sig+sigc0(it)
->         sigcsq=fac+fac
->         sigc=1.0D0/sigcsq
-> C Following variable (sigsqtc) is -(1/2)d[sigma(t_c)**(-2))]/dt_c
->         sigsqtc=-4.0D0*sigcsq*sigtc
-> c       print *,i,sig,sigtc,sigsqtc
-> C Following variable (sigtc) is d[sigma(t_c)]/dt_c
->         sigtc=-sigtc/(fac*fac)
-> C Following variable is sigma(t_c)**(-2)
->         sigcsq=sigcsq*sigcsq
->         sig0i=sig0(it)
->         sig0inv=1.0D0/sig0i**2
->         delthec=thetai-thet_pred_mean
->         delthe0=thetai-theta0i
->         term1=-0.5D0*sigcsq*delthec*delthec
->         term2=-0.5D0*sig0inv*delthe0*delthe0
-> C Following fuzzy logic is to avoid underflows in dexp and subsequent INFs and
-> C NaNs in taking the logarithm. We extract the largest exponent which is added
-> C to the energy (this being the log of the distribution) at the end of energy
-> C term evaluation for this virtual-bond angle.
->         if (term1.gt.term2) then
->           termm=term1
->           term2=dexp(term2-termm)
->           term1=1.0d0
->         else
->           termm=term2
->           term1=dexp(term1-termm)
->           term2=1.0d0
->         endif
-> C The ratio between the gamma-independent and gamma-dependent lobes of
-> C the distribution is a Gaussian function of thet_pred_mean too.
->         diffak=gthet(2,it)-thet_pred_mean
->         ratak=diffak/gthet(3,it)**2
->         ak=dexp(gthet(1,it)-0.5D0*diffak*ratak)
-> C Let's differentiate it in thet_pred_mean NOW.
->         aktc=ak*ratak
-> C Now put together the distribution terms to make complete distribution.
->         termexp=term1+ak*term2
->         termpre=sigc+ak*sig0i
-> C Contribution of the bending energy from this theta is just the -log of
-> C the sum of the contributions from the two lobes and the pre-exponential
-> C factor. Simple enough, isn't it?
->         ethetai=(-dlog(termexp)-termm+dlog(termpre))
-> C NOW the derivatives!!!
-> C 6/6/97 Take into account the deformation.
->         E_theta=(delthec*sigcsq*term1
->      &       +ak*delthe0*sig0inv*term2)/termexp
->         E_tc=((sigtc+aktc*sig0i)/termpre
->      &      -((delthec*sigcsq+delthec*delthec*sigsqtc)*term1+
->      &       aktc*term2)/termexp)
->       return
->       end
-> c-----------------------------------------------------------------------------
->       subroutine mixder(thetai,thet_pred_mean,theta0i,E_tc_t)
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.LOCAL'
->       include 'COMMON.IOUNITS'
->       common /calcthet/ term1,term2,termm,diffak,ratak,
->      & ak,aktc,termpre,termexp,sigc,sig0i,time11,time12,sigcsq,
->      & delthe0,sig0inv,sigtc,sigsqtc,delthec,it
->       delthec=thetai-thet_pred_mean
->       delthe0=thetai-theta0i
-> C "Thank you" to MAPLE (probably spared one day of hand-differentiation).
->       t3 = thetai-thet_pred_mean
->       t6 = t3**2
->       t9 = term1
->       t12 = t3*sigcsq
->       t14 = t12+t6*sigsqtc
->       t16 = 1.0d0
->       t21 = thetai-theta0i
->       t23 = t21**2
->       t26 = term2
->       t27 = t21*t26
->       t32 = termexp
->       t40 = t32**2
->       E_tc_t = -((sigcsq+2.D0*t3*sigsqtc)*t9-t14*sigcsq*t3*t16*t9
->      & -aktc*sig0inv*t27)/t32+(t14*t9+aktc*t26)/t40
->      & *(-t12*t9-ak*sig0inv*t27)
->       return
->       end
-> #else
-> C--------------------------------------------------------------------------
->       subroutine ebend(etheta)
-> C
-> C Evaluate the virtual-bond-angle energy given the virtual-bond dihedral
-> C angles gamma and its derivatives in consecutive thetas and gammas.
-> C ab initio-derived potentials from 
-> c Kozlowska et al., J. Phys.: Condens. Matter 19 (2007) 285203
-> C
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.LOCAL'
->       include 'COMMON.GEO'
->       include 'COMMON.INTERACT'
->       include 'COMMON.DERIV'
->       include 'COMMON.VAR'
->       include 'COMMON.CHAIN'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.NAMES'
->       include 'COMMON.FFIELD'
->       include 'COMMON.CONTROL'
->       double precision coskt(mmaxtheterm),sinkt(mmaxtheterm),
->      & cosph1(maxsingle),sinph1(maxsingle),cosph2(maxsingle),
->      & sinph2(maxsingle),cosph1ph2(maxdouble,maxdouble),
->      & sinph1ph2(maxdouble,maxdouble)
->       logical lprn /.false./, lprn1 /.false./
->       etheta=0.0D0
->       do i=ithet_start,ithet_end
->         dethetai=0.0d0
->         dephii=0.0d0
->         dephii1=0.0d0
->         theti2=0.5d0*theta(i)
->         ityp2=ithetyp(itype(i-1))
->         do k=1,nntheterm
->           coskt(k)=dcos(k*theti2)
->           sinkt(k)=dsin(k*theti2)
->         enddo
->         if (i.gt.3) then
-> #ifdef OSF
->           phii=phi(i)
->           if (phii.ne.phii) phii=150.0
-> #else
->           phii=phi(i)
-> #endif
->           ityp1=ithetyp(itype(i-2))
->           do k=1,nsingle
->             cosph1(k)=dcos(k*phii)
->             sinph1(k)=dsin(k*phii)
->           enddo
->         else
->           phii=0.0d0
->           ityp1=nthetyp+1
->           do k=1,nsingle
->             cosph1(k)=0.0d0
->             sinph1(k)=0.0d0
->           enddo 
->         endif
->         if (i.lt.nres) then
-> #ifdef OSF
->           phii1=phi(i+1)
->           if (phii1.ne.phii1) phii1=150.0
->           phii1=pinorm(phii1)
-> #else
->           phii1=phi(i+1)
-> #endif
->           ityp3=ithetyp(itype(i))
->           do k=1,nsingle
->             cosph2(k)=dcos(k*phii1)
->             sinph2(k)=dsin(k*phii1)
->           enddo
->         else
->           phii1=0.0d0
->           ityp3=nthetyp+1
->           do k=1,nsingle
->             cosph2(k)=0.0d0
->             sinph2(k)=0.0d0
->           enddo
->         endif  
->         ethetai=aa0thet(ityp1,ityp2,ityp3)
->         do k=1,ndouble
->           do l=1,k-1
->             ccl=cosph1(l)*cosph2(k-l)
->             ssl=sinph1(l)*sinph2(k-l)
->             scl=sinph1(l)*cosph2(k-l)
->             csl=cosph1(l)*sinph2(k-l)
->             cosph1ph2(l,k)=ccl-ssl
->             cosph1ph2(k,l)=ccl+ssl
->             sinph1ph2(l,k)=scl+csl
->             sinph1ph2(k,l)=scl-csl
->           enddo
->         enddo
->         if (lprn) then
->         write (iout,*) "i",i," ityp1",ityp1," ityp2",ityp2,
->      &    " ityp3",ityp3," theti2",theti2," phii",phii," phii1",phii1
->         write (iout,*) "coskt and sinkt"
->         do k=1,nntheterm
->           write (iout,*) k,coskt(k),sinkt(k)
->         enddo
->         endif
->         do k=1,ntheterm
->           ethetai=ethetai+aathet(k,ityp1,ityp2,ityp3)*sinkt(k)
->           dethetai=dethetai+0.5d0*k*aathet(k,ityp1,ityp2,ityp3)
->      &      *coskt(k)
->           if (lprn)
->      &    write (iout,*) "k",k," aathet",aathet(k,ityp1,ityp2,ityp3),
->      &     " ethetai",ethetai
->         enddo
->         if (lprn) then
->         write (iout,*) "cosph and sinph"
->         do k=1,nsingle
->           write (iout,*) k,cosph1(k),sinph1(k),cosph2(k),sinph2(k)
->         enddo
->         write (iout,*) "cosph1ph2 and sinph2ph2"
->         do k=2,ndouble
->           do l=1,k-1
->             write (iout,*) l,k,cosph1ph2(l,k),cosph1ph2(k,l),
->      &         sinph1ph2(l,k),sinph1ph2(k,l) 
->           enddo
->         enddo
->         write(iout,*) "ethetai",ethetai
->         endif
->         do m=1,ntheterm2
->           do k=1,nsingle
->             aux=bbthet(k,m,ityp1,ityp2,ityp3)*cosph1(k)
->      &         +ccthet(k,m,ityp1,ityp2,ityp3)*sinph1(k)
->      &         +ddthet(k,m,ityp1,ityp2,ityp3)*cosph2(k)
->      &         +eethet(k,m,ityp1,ityp2,ityp3)*sinph2(k)
->             ethetai=ethetai+sinkt(m)*aux
->             dethetai=dethetai+0.5d0*m*aux*coskt(m)
->             dephii=dephii+k*sinkt(m)*(
->      &          ccthet(k,m,ityp1,ityp2,ityp3)*cosph1(k)-
->      &          bbthet(k,m,ityp1,ityp2,ityp3)*sinph1(k))
->             dephii1=dephii1+k*sinkt(m)*(
->      &          eethet(k,m,ityp1,ityp2,ityp3)*cosph2(k)-
->      &          ddthet(k,m,ityp1,ityp2,ityp3)*sinph2(k))
->             if (lprn)
->      &      write (iout,*) "m",m," k",k," bbthet",
->      &         bbthet(k,m,ityp1,ityp2,ityp3)," ccthet",
->      &         ccthet(k,m,ityp1,ityp2,ityp3)," ddthet",
->      &         ddthet(k,m,ityp1,ityp2,ityp3)," eethet",
->      &         eethet(k,m,ityp1,ityp2,ityp3)," ethetai",ethetai
->           enddo
->         enddo
->         if (lprn)
->      &  write(iout,*) "ethetai",ethetai
->         do m=1,ntheterm3
->           do k=2,ndouble
->             do l=1,k-1
->               aux=ffthet(l,k,m,ityp1,ityp2,ityp3)*cosph1ph2(l,k)+
->      &            ffthet(k,l,m,ityp1,ityp2,ityp3)*cosph1ph2(k,l)+
->      &            ggthet(l,k,m,ityp1,ityp2,ityp3)*sinph1ph2(l,k)+
->      &            ggthet(k,l,m,ityp1,ityp2,ityp3)*sinph1ph2(k,l)
->               ethetai=ethetai+sinkt(m)*aux
->               dethetai=dethetai+0.5d0*m*coskt(m)*aux
->               dephii=dephii+l*sinkt(m)*(
->      &           -ffthet(l,k,m,ityp1,ityp2,ityp3)*sinph1ph2(l,k)-
->      &            ffthet(k,l,m,ityp1,ityp2,ityp3)*sinph1ph2(k,l)+
->      &            ggthet(l,k,m,ityp1,ityp2,ityp3)*cosph1ph2(l,k)+
->      &            ggthet(k,l,m,ityp1,ityp2,ityp3)*cosph1ph2(k,l))
->               dephii1=dephii1+(k-l)*sinkt(m)*(
->      &           -ffthet(l,k,m,ityp1,ityp2,ityp3)*sinph1ph2(l,k)+
->      &            ffthet(k,l,m,ityp1,ityp2,ityp3)*sinph1ph2(k,l)+
->      &            ggthet(l,k,m,ityp1,ityp2,ityp3)*cosph1ph2(l,k)-
->      &            ggthet(k,l,m,ityp1,ityp2,ityp3)*cosph1ph2(k,l))
->               if (lprn) then
->               write (iout,*) "m",m," k",k," l",l," ffthet",
->      &            ffthet(l,k,m,ityp1,ityp2,ityp3),
->      &            ffthet(k,l,m,ityp1,ityp2,ityp3)," ggthet",
->      &            ggthet(l,k,m,ityp1,ityp2,ityp3),
->      &            ggthet(k,l,m,ityp1,ityp2,ityp3)," ethetai",ethetai
->               write (iout,*) cosph1ph2(l,k)*sinkt(m),
->      &            cosph1ph2(k,l)*sinkt(m),
->      &            sinph1ph2(l,k)*sinkt(m),sinph1ph2(k,l)*sinkt(m)
->               endif
->             enddo
->           enddo
->         enddo
-> 10      continue
->         if (lprn1) write (iout,'(i2,3f8.1,9h ethetai ,f10.5)') 
->      &   i,theta(i)*rad2deg,phii*rad2deg,
->      &   phii1*rad2deg,ethetai
->         etheta=etheta+ethetai
->         if (i.gt.3) gloc(i-3,icg)=gloc(i-3,icg)+wang*dephii
->         if (i.lt.nres) gloc(i-2,icg)=gloc(i-2,icg)+wang*dephii1
->         gloc(nphi+i-2,icg)=wang*dethetai
->       enddo
->       return
->       end
-> #endif
-> #ifdef CRYST_SC
-> c-----------------------------------------------------------------------------
->       subroutine esc(escloc)
-> C Calculate the local energy of a side chain and its derivatives in the
-> C corresponding virtual-bond valence angles THETA and the spherical angles 
-> C ALPHA and OMEGA.
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.GEO'
->       include 'COMMON.LOCAL'
->       include 'COMMON.VAR'
->       include 'COMMON.INTERACT'
->       include 'COMMON.DERIV'
->       include 'COMMON.CHAIN'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.NAMES'
->       include 'COMMON.FFIELD'
->       include 'COMMON.CONTROL'
->       double precision x(3),dersc(3),xemp(3),dersc0(3),dersc1(3),
->      &     ddersc0(3),ddummy(3),xtemp(3),temp(3)
->       common /sccalc/ time11,time12,time112,theti,it,nlobit
->       delta=0.02d0*pi
->       escloc=0.0D0
-> c     write (iout,'(a)') 'ESC'
->       do i=loc_start,loc_end
->         it=itype(i)
->         if (it.eq.10) goto 1
->         nlobit=nlob(it)
-> c       print *,'i=',i,' it=',it,' nlobit=',nlobit
-> c       write (iout,*) 'i=',i,' ssa=',ssa,' ssad=',ssad
->         theti=theta(i+1)-pipol
->         x(1)=dtan(theti)
->         x(2)=alph(i)
->         x(3)=omeg(i)
-> 
->         if (x(2).gt.pi-delta) then
->           xtemp(1)=x(1)
->           xtemp(2)=pi-delta
->           xtemp(3)=x(3)
->           call enesc(xtemp,escloci0,dersc0,ddersc0,.true.)
->           xtemp(2)=pi
->           call enesc(xtemp,escloci1,dersc1,ddummy,.false.)
->           call spline1(x(2),pi-delta,delta,escloci0,escloci1,dersc0(2),
->      &        escloci,dersc(2))
->           call spline2(x(2),pi-delta,delta,dersc0(1),dersc1(1),
->      &        ddersc0(1),dersc(1))
->           call spline2(x(2),pi-delta,delta,dersc0(3),dersc1(3),
->      &        ddersc0(3),dersc(3))
->           xtemp(2)=pi-delta
->           call enesc_bound(xtemp,esclocbi0,dersc0,dersc12,.true.)
->           xtemp(2)=pi
->           call enesc_bound(xtemp,esclocbi1,dersc1,chuju,.false.)
->           call spline1(x(2),pi-delta,delta,esclocbi0,esclocbi1,
->      &            dersc0(2),esclocbi,dersc02)
->           call spline2(x(2),pi-delta,delta,dersc0(1),dersc1(1),
->      &            dersc12,dersc01)
->           call splinthet(x(2),0.5d0*delta,ss,ssd)
->           dersc0(1)=dersc01
->           dersc0(2)=dersc02
->           dersc0(3)=0.0d0
->           do k=1,3
->             dersc(k)=ss*dersc(k)+(1.0d0-ss)*dersc0(k)
->           enddo
->           dersc(2)=dersc(2)+ssd*(escloci-esclocbi)
-> c         write (iout,*) 'i=',i,x(2)*rad2deg,escloci0,escloci,
-> c    &             esclocbi,ss,ssd
->           escloci=ss*escloci+(1.0d0-ss)*esclocbi
-> c         escloci=esclocbi
-> c         write (iout,*) escloci
->         else if (x(2).lt.delta) then
->           xtemp(1)=x(1)
->           xtemp(2)=delta
->           xtemp(3)=x(3)
->           call enesc(xtemp,escloci0,dersc0,ddersc0,.true.)
->           xtemp(2)=0.0d0
->           call enesc(xtemp,escloci1,dersc1,ddummy,.false.)
->           call spline1(x(2),delta,-delta,escloci0,escloci1,dersc0(2),
->      &        escloci,dersc(2))
->           call spline2(x(2),delta,-delta,dersc0(1),dersc1(1),
->      &        ddersc0(1),dersc(1))
->           call spline2(x(2),delta,-delta,dersc0(3),dersc1(3),
->      &        ddersc0(3),dersc(3))
->           xtemp(2)=delta
->           call enesc_bound(xtemp,esclocbi0,dersc0,dersc12,.true.)
->           xtemp(2)=0.0d0
->           call enesc_bound(xtemp,esclocbi1,dersc1,chuju,.false.)
->           call spline1(x(2),delta,-delta,esclocbi0,esclocbi1,
->      &            dersc0(2),esclocbi,dersc02)
->           call spline2(x(2),delta,-delta,dersc0(1),dersc1(1),
->      &            dersc12,dersc01)
->           dersc0(1)=dersc01
->           dersc0(2)=dersc02
->           dersc0(3)=0.0d0
->           call splinthet(x(2),0.5d0*delta,ss,ssd)
->           do k=1,3
->             dersc(k)=ss*dersc(k)+(1.0d0-ss)*dersc0(k)
->           enddo
->           dersc(2)=dersc(2)+ssd*(escloci-esclocbi)
-> c         write (iout,*) 'i=',i,x(2)*rad2deg,escloci0,escloci,
-> c    &             esclocbi,ss,ssd
->           escloci=ss*escloci+(1.0d0-ss)*esclocbi
-> c         write (iout,*) escloci
->         else
->           call enesc(x,escloci,dersc,ddummy,.false.)
->         endif
-> 
->         escloc=escloc+escloci
->         if (energy_dec) write (iout,'(a6,i5,0pf7.3)')
->      &     'escloc',i,escloci
-> c       write (iout,*) 'i=',i,' escloci=',escloci,' dersc=',dersc
-> 
->         gloc(nphi+i-1,icg)=gloc(nphi+i-1,icg)+
->      &   wscloc*dersc(1)
->         gloc(ialph(i,1),icg)=wscloc*dersc(2)
->         gloc(ialph(i,1)+nside,icg)=wscloc*dersc(3)
->     1   continue
->       enddo
->       return
->       end
-> C---------------------------------------------------------------------------
->       subroutine enesc(x,escloci,dersc,ddersc,mixed)
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.GEO'
->       include 'COMMON.LOCAL'
->       include 'COMMON.IOUNITS'
->       common /sccalc/ time11,time12,time112,theti,it,nlobit
->       double precision x(3),z(3),Ax(3,maxlob,-1:1),dersc(3),ddersc(3)
->       double precision contr(maxlob,-1:1)
->       logical mixed
-> c       write (iout,*) 'it=',it,' nlobit=',nlobit
->         escloc_i=0.0D0
->         do j=1,3
->           dersc(j)=0.0D0
->           if (mixed) ddersc(j)=0.0d0
->         enddo
->         x3=x(3)
-> 
-> C Because of periodicity of the dependence of the SC energy in omega we have
-> C to add up the contributions from x(3)-2*pi, x(3), and x(3+2*pi).
-> C To avoid underflows, first compute & store the exponents.
-> 
->         do iii=-1,1
-> 
->           x(3)=x3+iii*dwapi
->  
->           do j=1,nlobit
->             do k=1,3
->               z(k)=x(k)-censc(k,j,it)
->             enddo
->             do k=1,3
->               Axk=0.0D0
->               do l=1,3
->                 Axk=Axk+gaussc(l,k,j,it)*z(l)
->               enddo
->               Ax(k,j,iii)=Axk
->             enddo 
->             expfac=0.0D0 
->             do k=1,3
->               expfac=expfac+Ax(k,j,iii)*z(k)
->             enddo
->             contr(j,iii)=expfac
->           enddo ! j
-> 
->         enddo ! iii
-> 
->         x(3)=x3
-> C As in the case of ebend, we want to avoid underflows in exponentiation and
-> C subsequent NaNs and INFs in energy calculation.
-> C Find the largest exponent
->         emin=contr(1,-1)
->         do iii=-1,1
->           do j=1,nlobit
->             if (emin.gt.contr(j,iii)) emin=contr(j,iii)
->           enddo 
->         enddo
->         emin=0.5D0*emin
-> cd      print *,'it=',it,' emin=',emin
-> 
-> C Compute the contribution to SC energy and derivatives
->         do iii=-1,1
-> 
->           do j=1,nlobit
-> #ifdef OSF
->             adexp=bsc(j,it)-0.5D0*contr(j,iii)+emin
->             if(adexp.ne.adexp) adexp=1.0
->             expfac=dexp(adexp)
-> #else
->             expfac=dexp(bsc(j,it)-0.5D0*contr(j,iii)+emin)
-> #endif
-> cd          print *,'j=',j,' expfac=',expfac
->             escloc_i=escloc_i+expfac
->             do k=1,3
->               dersc(k)=dersc(k)+Ax(k,j,iii)*expfac
->             enddo
->             if (mixed) then
->               do k=1,3,2
->                 ddersc(k)=ddersc(k)+(-Ax(2,j,iii)*Ax(k,j,iii)
->      &            +gaussc(k,2,j,it))*expfac
->               enddo
->             endif
->           enddo
-> 
->         enddo ! iii
-> 
->         dersc(1)=dersc(1)/cos(theti)**2
->         ddersc(1)=ddersc(1)/cos(theti)**2
->         ddersc(3)=ddersc(3)
-> 
->         escloci=-(dlog(escloc_i)-emin)
->         do j=1,3
->           dersc(j)=dersc(j)/escloc_i
->         enddo
->         if (mixed) then
->           do j=1,3,2
->             ddersc(j)=(ddersc(j)/escloc_i+dersc(2)*dersc(j))
->           enddo
->         endif
->       return
->       end
-> C------------------------------------------------------------------------------
->       subroutine enesc_bound(x,escloci,dersc,dersc12,mixed)
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.GEO'
->       include 'COMMON.LOCAL'
->       include 'COMMON.IOUNITS'
->       common /sccalc/ time11,time12,time112,theti,it,nlobit
->       double precision x(3),z(3),Ax(3,maxlob),dersc(3)
->       double precision contr(maxlob)
->       logical mixed
-> 
->       escloc_i=0.0D0
-> 
->       do j=1,3
->         dersc(j)=0.0D0
->       enddo
-> 
->       do j=1,nlobit
->         do k=1,2
->           z(k)=x(k)-censc(k,j,it)
->         enddo
->         z(3)=dwapi
->         do k=1,3
->           Axk=0.0D0
->           do l=1,3
->             Axk=Axk+gaussc(l,k,j,it)*z(l)
->           enddo
->           Ax(k,j)=Axk
->         enddo 
->         expfac=0.0D0 
->         do k=1,3
->           expfac=expfac+Ax(k,j)*z(k)
->         enddo
->         contr(j)=expfac
->       enddo ! j
-> 
-> C As in the case of ebend, we want to avoid underflows in exponentiation and
-> C subsequent NaNs and INFs in energy calculation.
-> C Find the largest exponent
->       emin=contr(1)
->       do j=1,nlobit
->         if (emin.gt.contr(j)) emin=contr(j)
->       enddo 
->       emin=0.5D0*emin
->  
-> C Compute the contribution to SC energy and derivatives
-> 
->       dersc12=0.0d0
->       do j=1,nlobit
->         expfac=dexp(bsc(j,it)-0.5D0*contr(j)+emin)
->         escloc_i=escloc_i+expfac
->         do k=1,2
->           dersc(k)=dersc(k)+Ax(k,j)*expfac
->         enddo
->         if (mixed) dersc12=dersc12+(-Ax(2,j)*Ax(1,j)
->      &            +gaussc(1,2,j,it))*expfac
->         dersc(3)=0.0d0
->       enddo
-> 
->       dersc(1)=dersc(1)/cos(theti)**2
->       dersc12=dersc12/cos(theti)**2
->       escloci=-(dlog(escloc_i)-emin)
->       do j=1,2
->         dersc(j)=dersc(j)/escloc_i
->       enddo
->       if (mixed) dersc12=(dersc12/escloc_i+dersc(2)*dersc(1))
->       return
->       end
-> #else
-> c----------------------------------------------------------------------------------
->       subroutine esc(escloc)
-> C Calculate the local energy of a side chain and its derivatives in the
-> C corresponding virtual-bond valence angles THETA and the spherical angles 
-> C ALPHA and OMEGA derived from AM1 all-atom calculations.
-> C added by Urszula Kozlowska. 07/11/2007
-> C
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.GEO'
->       include 'COMMON.LOCAL'
->       include 'COMMON.VAR'
->       include 'COMMON.SCROT'
->       include 'COMMON.INTERACT'
->       include 'COMMON.DERIV'
->       include 'COMMON.CHAIN'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.NAMES'
->       include 'COMMON.FFIELD'
->       include 'COMMON.CONTROL'
->       include 'COMMON.VECTORS'
->       double precision x_prime(3),y_prime(3),z_prime(3)
->      &    , sumene,dsc_i,dp2_i,x(65),
->      &     xx,yy,zz,sumene1,sumene2,sumene3,sumene4,s1,s1_6,s2,s2_6,
->      &    de_dxx,de_dyy,de_dzz,de_dt
->       double precision s1_t,s1_6_t,s2_t,s2_6_t
->       double precision 
->      & dXX_Ci1(3),dYY_Ci1(3),dZZ_Ci1(3),dXX_Ci(3),
->      & dYY_Ci(3),dZZ_Ci(3),dXX_XYZ(3),dYY_XYZ(3),dZZ_XYZ(3),
->      & dt_dCi(3),dt_dCi1(3)
->       common /sccalc/ time11,time12,time112,theti,it,nlobit
->       delta=0.02d0*pi
->       escloc=0.0D0
->       do i=loc_start,loc_end
->         costtab(i+1) =dcos(theta(i+1))
->         sinttab(i+1) =dsqrt(1-costtab(i+1)*costtab(i+1))
->         cost2tab(i+1)=dsqrt(0.5d0*(1.0d0+costtab(i+1)))
->         sint2tab(i+1)=dsqrt(0.5d0*(1.0d0-costtab(i+1)))
->         cosfac2=0.5d0/(1.0d0+costtab(i+1))
->         cosfac=dsqrt(cosfac2)
->         sinfac2=0.5d0/(1.0d0-costtab(i+1))
->         sinfac=dsqrt(sinfac2)
->         it=itype(i)
->         if (it.eq.10) goto 1
-> c
-> C  Compute the axes of tghe local cartesian coordinates system; store in
-> c   x_prime, y_prime and z_prime 
-> c
->         do j=1,3
->           x_prime(j) = 0.00
->           y_prime(j) = 0.00
->           z_prime(j) = 0.00
->         enddo
-> C        write(2,*) "dc_norm", dc_norm(1,i+nres),dc_norm(2,i+nres),
-> C     &   dc_norm(3,i+nres)
->         do j = 1,3
->           x_prime(j) = (dc_norm(j,i) - dc_norm(j,i-1))*cosfac
->           y_prime(j) = (dc_norm(j,i) + dc_norm(j,i-1))*sinfac
->         enddo
->         do j = 1,3
->           z_prime(j) = -uz(j,i-1)
->         enddo     
-> c       write (2,*) "i",i
-> c       write (2,*) "x_prime",(x_prime(j),j=1,3)
-> c       write (2,*) "y_prime",(y_prime(j),j=1,3)
-> c       write (2,*) "z_prime",(z_prime(j),j=1,3)
-> c       write (2,*) "xx",scalar(x_prime(1),x_prime(1)),
-> c      & " xy",scalar(x_prime(1),y_prime(1)),
-> c      & " xz",scalar(x_prime(1),z_prime(1)),
-> c      & " yy",scalar(y_prime(1),y_prime(1)),
-> c      & " yz",scalar(y_prime(1),z_prime(1)),
-> c      & " zz",scalar(z_prime(1),z_prime(1))
-> c
-> C Transform the unit vector of the ith side-chain centroid, dC_norm(*,i),
-> C to local coordinate system. Store in xx, yy, zz.
-> c
->         xx=0.0d0
->         yy=0.0d0
->         zz=0.0d0
->         do j = 1,3
->           xx = xx + x_prime(j)*dc_norm(j,i+nres)
->           yy = yy + y_prime(j)*dc_norm(j,i+nres)
->           zz = zz + z_prime(j)*dc_norm(j,i+nres)
->         enddo
-> 
->         xxtab(i)=xx
->         yytab(i)=yy
->         zztab(i)=zz
-> C
-> C Compute the energy of the ith side cbain
-> C
-> c        write (2,*) "xx",xx," yy",yy," zz",zz
->         it=itype(i)
->         do j = 1,65
->           x(j) = sc_parmin(j,it) 
->         enddo
-> #ifdef CHECK_COORD
-> Cc diagnostics - remove later
->         xx1 = dcos(alph(2))
->         yy1 = dsin(alph(2))*dcos(omeg(2))
->         zz1 = -dsin(alph(2))*dsin(omeg(2))
->         write(2,'(3f8.1,3f9.3,1x,3f9.3)') 
->      &    alph(2)*rad2deg,omeg(2)*rad2deg,theta(3)*rad2deg,xx,yy,zz,
->      &    xx1,yy1,zz1
-> C,"  --- ", xx_w,yy_w,zz_w
-> c end diagnostics
-> #endif
->         sumene1= x(1)+  x(2)*xx+  x(3)*yy+  x(4)*zz+  x(5)*xx**2
->      &   + x(6)*yy**2+  x(7)*zz**2+  x(8)*xx*zz+  x(9)*xx*yy
->      &   + x(10)*yy*zz
->         sumene2=  x(11) + x(12)*xx + x(13)*yy + x(14)*zz + x(15)*xx**2
->      & + x(16)*yy**2 + x(17)*zz**2 + x(18)*xx*zz + x(19)*xx*yy
->      & + x(20)*yy*zz
->         sumene3=  x(21) +x(22)*xx +x(23)*yy +x(24)*zz +x(25)*xx**2
->      &  +x(26)*yy**2 +x(27)*zz**2 +x(28)*xx*zz +x(29)*xx*yy
->      &  +x(30)*yy*zz +x(31)*xx**3 +x(32)*yy**3 +x(33)*zz**3
->      &  +x(34)*(xx**2)*yy +x(35)*(xx**2)*zz +x(36)*(yy**2)*xx
->      &  +x(37)*(yy**2)*zz +x(38)*(zz**2)*xx +x(39)*(zz**2)*yy
->      &  +x(40)*xx*yy*zz
->         sumene4= x(41) +x(42)*xx +x(43)*yy +x(44)*zz +x(45)*xx**2
->      &  +x(46)*yy**2 +x(47)*zz**2 +x(48)*xx*zz +x(49)*xx*yy
->      &  +x(50)*yy*zz +x(51)*xx**3 +x(52)*yy**3 +x(53)*zz**3
->      &  +x(54)*(xx**2)*yy +x(55)*(xx**2)*zz +x(56)*(yy**2)*xx
->      &  +x(57)*(yy**2)*zz +x(58)*(zz**2)*xx +x(59)*(zz**2)*yy
->      &  +x(60)*xx*yy*zz
->         dsc_i   = 0.743d0+x(61)
->         dp2_i   = 1.9d0+x(62)
->         dscp1=dsqrt(dsc_i**2+dp2_i**2-2*dsc_i*dp2_i
->      &          *(xx*cost2tab(i+1)+yy*sint2tab(i+1)))
->         dscp2=dsqrt(dsc_i**2+dp2_i**2-2*dsc_i*dp2_i
->      &          *(xx*cost2tab(i+1)-yy*sint2tab(i+1)))
->         s1=(1+x(63))/(0.1d0 + dscp1)
->         s1_6=(1+x(64))/(0.1d0 + dscp1**6)
->         s2=(1+x(65))/(0.1d0 + dscp2)
->         s2_6=(1+x(65))/(0.1d0 + dscp2**6)
->         sumene = ( sumene3*sint2tab(i+1) + sumene1)*(s1+s1_6)
->      & + (sumene4*cost2tab(i+1) +sumene2)*(s2+s2_6)
-> c        write(2,'(i2," sumene",7f9.3)') i,sumene1,sumene2,sumene3,
-> c     &   sumene4,
-> c     &   dscp1,dscp2,sumene
-> c        sumene = enesc(x,xx,yy,zz,cost2tab(i+1),sint2tab(i+1))
->         escloc = escloc + sumene
-> c        write (2,*) "i",i," escloc",sumene,escloc
-> #ifdef DEBUG
-> C
-> C This section to check the numerical derivatives of the energy of ith side
-> C chain in xx, yy, zz, and theta. Use the -DDEBUG compiler option or insert
-> C #define DEBUG in the code to turn it on.
-> C
->         write (2,*) "sumene               =",sumene
->         aincr=1.0d-7
->         xxsave=xx
->         xx=xx+aincr
->         write (2,*) xx,yy,zz
->         sumenep = enesc(x,xx,yy,zz,cost2tab(i+1),sint2tab(i+1))
->         de_dxx_num=(sumenep-sumene)/aincr
->         xx=xxsave
->         write (2,*) "xx+ sumene from enesc=",sumenep
->         yysave=yy
->         yy=yy+aincr
->         write (2,*) xx,yy,zz
->         sumenep = enesc(x,xx,yy,zz,cost2tab(i+1),sint2tab(i+1))
->         de_dyy_num=(sumenep-sumene)/aincr
->         yy=yysave
->         write (2,*) "yy+ sumene from enesc=",sumenep
->         zzsave=zz
->         zz=zz+aincr
->         write (2,*) xx,yy,zz
->         sumenep = enesc(x,xx,yy,zz,cost2tab(i+1),sint2tab(i+1))
->         de_dzz_num=(sumenep-sumene)/aincr
->         zz=zzsave
->         write (2,*) "zz+ sumene from enesc=",sumenep
->         costsave=cost2tab(i+1)
->         sintsave=sint2tab(i+1)
->         cost2tab(i+1)=dcos(0.5d0*(theta(i+1)+aincr))
->         sint2tab(i+1)=dsin(0.5d0*(theta(i+1)+aincr))
->         sumenep = enesc(x,xx,yy,zz,cost2tab(i+1),sint2tab(i+1))
->         de_dt_num=(sumenep-sumene)/aincr
->         write (2,*) " t+ sumene from enesc=",sumenep
->         cost2tab(i+1)=costsave
->         sint2tab(i+1)=sintsave
-> C End of diagnostics section.
-> #endif
-> C        
-> C Compute the gradient of esc
-> C
->         pom_s1=(1.0d0+x(63))/(0.1d0 + dscp1)**2
->         pom_s16=6*(1.0d0+x(64))/(0.1d0 + dscp1**6)**2
->         pom_s2=(1.0d0+x(65))/(0.1d0 + dscp2)**2
->         pom_s26=6*(1.0d0+x(65))/(0.1d0 + dscp2**6)**2
->         pom_dx=dsc_i*dp2_i*cost2tab(i+1)
->         pom_dy=dsc_i*dp2_i*sint2tab(i+1)
->         pom_dt1=-0.5d0*dsc_i*dp2_i*(xx*sint2tab(i+1)-yy*cost2tab(i+1))
->         pom_dt2=-0.5d0*dsc_i*dp2_i*(xx*sint2tab(i+1)+yy*cost2tab(i+1))
->         pom1=(sumene3*sint2tab(i+1)+sumene1)
->      &     *(pom_s1/dscp1+pom_s16*dscp1**4)
->         pom2=(sumene4*cost2tab(i+1)+sumene2)
->      &     *(pom_s2/dscp2+pom_s26*dscp2**4)
->         sumene1x=x(2)+2*x(5)*xx+x(8)*zz+ x(9)*yy
->         sumene3x=x(22)+2*x(25)*xx+x(28)*zz+x(29)*yy+3*x(31)*xx**2
->      &  +2*x(34)*xx*yy +2*x(35)*xx*zz +x(36)*(yy**2) +x(38)*(zz**2)
->      &  +x(40)*yy*zz
->         sumene2x=x(12)+2*x(15)*xx+x(18)*zz+ x(19)*yy
->         sumene4x=x(42)+2*x(45)*xx +x(48)*zz +x(49)*yy +3*x(51)*xx**2
->      &  +2*x(54)*xx*yy+2*x(55)*xx*zz+x(56)*(yy**2)+x(58)*(zz**2)
->      &  +x(60)*yy*zz
->         de_dxx =(sumene1x+sumene3x*sint2tab(i+1))*(s1+s1_6)
->      &        +(sumene2x+sumene4x*cost2tab(i+1))*(s2+s2_6)
->      &        +(pom1+pom2)*pom_dx
-> #ifdef DEBUG
->         write(2,*), "de_dxx = ", de_dxx,de_dxx_num
-> #endif
-> C
->         sumene1y=x(3) + 2*x(6)*yy + x(9)*xx + x(10)*zz
->         sumene3y=x(23) +2*x(26)*yy +x(29)*xx +x(30)*zz +3*x(32)*yy**2
->      &  +x(34)*(xx**2) +2*x(36)*yy*xx +2*x(37)*yy*zz +x(39)*(zz**2)
->      &  +x(40)*xx*zz
->         sumene2y=x(13) + 2*x(16)*yy + x(19)*xx + x(20)*zz
->         sumene4y=x(43)+2*x(46)*yy+x(49)*xx +x(50)*zz
->      &  +3*x(52)*yy**2+x(54)*xx**2+2*x(56)*yy*xx +2*x(57)*yy*zz
->      &  +x(59)*zz**2 +x(60)*xx*zz
->         de_dyy =(sumene1y+sumene3y*sint2tab(i+1))*(s1+s1_6)
->      &        +(sumene2y+sumene4y*cost2tab(i+1))*(s2+s2_6)
->      &        +(pom1-pom2)*pom_dy
-> #ifdef DEBUG
->         write(2,*), "de_dyy = ", de_dyy,de_dyy_num
-> #endif
-> C
->         de_dzz =(x(24) +2*x(27)*zz +x(28)*xx +x(30)*yy
->      &  +3*x(33)*zz**2 +x(35)*xx**2 +x(37)*yy**2 +2*x(38)*zz*xx 
->      &  +2*x(39)*zz*yy +x(40)*xx*yy)*sint2tab(i+1)*(s1+s1_6) 
->      &  +(x(4) + 2*x(7)*zz+  x(8)*xx + x(10)*yy)*(s1+s1_6) 
->      &  +(x(44)+2*x(47)*zz +x(48)*xx   +x(50)*yy  +3*x(53)*zz**2   
->      &  +x(55)*xx**2 +x(57)*(yy**2)+2*x(58)*zz*xx +2*x(59)*zz*yy  
->      &  +x(60)*xx*yy)*cost2tab(i+1)*(s2+s2_6)
->      &  + ( x(14) + 2*x(17)*zz+  x(18)*xx + x(20)*yy)*(s2+s2_6)
-> #ifdef DEBUG
->         write(2,*), "de_dzz = ", de_dzz,de_dzz_num
-> #endif
-> C
->         de_dt =  0.5d0*sumene3*cost2tab(i+1)*(s1+s1_6) 
->      &  -0.5d0*sumene4*sint2tab(i+1)*(s2+s2_6)
->      &  +pom1*pom_dt1+pom2*pom_dt2
-> #ifdef DEBUG
->         write(2,*), "de_dt = ", de_dt,de_dt_num
-> #endif
-> c 
-> C
->        cossc=scalar(dc_norm(1,i),dc_norm(1,i+nres))
->        cossc1=scalar(dc_norm(1,i-1),dc_norm(1,i+nres))
->        cosfac2xx=cosfac2*xx
->        sinfac2yy=sinfac2*yy
->        do k = 1,3
->          dt_dCi(k) = -(dc_norm(k,i-1)+costtab(i+1)*dc_norm(k,i))*
->      &      vbld_inv(i+1)
->          dt_dCi1(k)= -(dc_norm(k,i)+costtab(i+1)*dc_norm(k,i-1))*
->      &      vbld_inv(i)
->          pom=(dC_norm(k,i+nres)-cossc*dC_norm(k,i))*vbld_inv(i+1)
->          pom1=(dC_norm(k,i+nres)-cossc1*dC_norm(k,i-1))*vbld_inv(i)
-> c         write (iout,*) "i",i," k",k," pom",pom," pom1",pom1,
-> c     &    " dt_dCi",dt_dCi(k)," dt_dCi1",dt_dCi1(k)
-> c         write (iout,*) "dC_norm",(dC_norm(j,i),j=1,3),
-> c     &   (dC_norm(j,i-1),j=1,3)," vbld_inv",vbld_inv(i+1),vbld_inv(i)
->          dXX_Ci(k)=pom*cosfac-dt_dCi(k)*cosfac2xx
->          dXX_Ci1(k)=-pom1*cosfac-dt_dCi1(k)*cosfac2xx
->          dYY_Ci(k)=pom*sinfac+dt_dCi(k)*sinfac2yy
->          dYY_Ci1(k)=pom1*sinfac+dt_dCi1(k)*sinfac2yy
->          dZZ_Ci1(k)=0.0d0
->          dZZ_Ci(k)=0.0d0
->          do j=1,3
->            dZZ_Ci(k)=dZZ_Ci(k)-uzgrad(j,k,2,i-1)*dC_norm(j,i+nres)
->            dZZ_Ci1(k)=dZZ_Ci1(k)-uzgrad(j,k,1,i-1)*dC_norm(j,i+nres)
->          enddo
->           
->          dXX_XYZ(k)=vbld_inv(i+nres)*(x_prime(k)-xx*dC_norm(k,i+nres))
->          dYY_XYZ(k)=vbld_inv(i+nres)*(y_prime(k)-yy*dC_norm(k,i+nres))
->          dZZ_XYZ(k)=vbld_inv(i+nres)*(z_prime(k)-zz*dC_norm(k,i+nres))
-> c
->          dt_dCi(k) = -dt_dCi(k)/sinttab(i+1)
->          dt_dCi1(k)= -dt_dCi1(k)/sinttab(i+1)
->        enddo
-> 
->        do k=1,3
->          dXX_Ctab(k,i)=dXX_Ci(k)
->          dXX_C1tab(k,i)=dXX_Ci1(k)
->          dYY_Ctab(k,i)=dYY_Ci(k)
->          dYY_C1tab(k,i)=dYY_Ci1(k)
->          dZZ_Ctab(k,i)=dZZ_Ci(k)
->          dZZ_C1tab(k,i)=dZZ_Ci1(k)
->          dXX_XYZtab(k,i)=dXX_XYZ(k)
->          dYY_XYZtab(k,i)=dYY_XYZ(k)
->          dZZ_XYZtab(k,i)=dZZ_XYZ(k)
->        enddo
-> 
->        do k = 1,3
-> c         write (iout,*) "k",k," dxx_ci1",dxx_ci1(k)," dyy_ci1",
-> c     &    dyy_ci1(k)," dzz_ci1",dzz_ci1(k)
-> c         write (iout,*) "k",k," dxx_ci",dxx_ci(k)," dyy_ci",
-> c     &    dyy_ci(k)," dzz_ci",dzz_ci(k)
-> c         write (iout,*) "k",k," dt_dci",dt_dci(k)," dt_dci",
-> c     &    dt_dci(k)
-> c         write (iout,*) "k",k," dxx_XYZ",dxx_XYZ(k)," dyy_XYZ",
-> c     &    dyy_XYZ(k)," dzz_XYZ",dzz_XYZ(k) 
->          gscloc(k,i-1)=gscloc(k,i-1)+de_dxx*dxx_ci1(k)
->      &    +de_dyy*dyy_ci1(k)+de_dzz*dzz_ci1(k)+de_dt*dt_dCi1(k)
->          gscloc(k,i)=gscloc(k,i)+de_dxx*dxx_Ci(k)
->      &    +de_dyy*dyy_Ci(k)+de_dzz*dzz_Ci(k)+de_dt*dt_dCi(k)
->          gsclocx(k,i)=                 de_dxx*dxx_XYZ(k)
->      &    +de_dyy*dyy_XYZ(k)+de_dzz*dzz_XYZ(k)
->        enddo
-> c       write(iout,*) "ENERGY GRAD = ", (gscloc(k,i-1),k=1,3),
-> c     &  (gscloc(k,i),k=1,3),(gsclocx(k,i),k=1,3)  
-> 
-> C to check gradient call subroutine check_grad
-> 
->     1 continue
->       enddo
->       return
->       end
-> c------------------------------------------------------------------------------
->       double precision function enesc(x,xx,yy,zz,cost2,sint2)
->       implicit none
->       double precision x(65),xx,yy,zz,cost2,sint2,sumene1,sumene2,
->      & sumene3,sumene4,sumene,dsc_i,dp2_i,dscp1,dscp2,s1,s1_6,s2,s2_6
->       sumene1= x(1)+  x(2)*xx+  x(3)*yy+  x(4)*zz+  x(5)*xx**2
->      &   + x(6)*yy**2+  x(7)*zz**2+  x(8)*xx*zz+  x(9)*xx*yy
->      &   + x(10)*yy*zz
->       sumene2=  x(11) + x(12)*xx + x(13)*yy + x(14)*zz + x(15)*xx**2
->      & + x(16)*yy**2 + x(17)*zz**2 + x(18)*xx*zz + x(19)*xx*yy
->      & + x(20)*yy*zz
->       sumene3=  x(21) +x(22)*xx +x(23)*yy +x(24)*zz +x(25)*xx**2
->      &  +x(26)*yy**2 +x(27)*zz**2 +x(28)*xx*zz +x(29)*xx*yy
->      &  +x(30)*yy*zz +x(31)*xx**3 +x(32)*yy**3 +x(33)*zz**3
->      &  +x(34)*(xx**2)*yy +x(35)*(xx**2)*zz +x(36)*(yy**2)*xx
->      &  +x(37)*(yy**2)*zz +x(38)*(zz**2)*xx +x(39)*(zz**2)*yy
->      &  +x(40)*xx*yy*zz
->       sumene4= x(41) +x(42)*xx +x(43)*yy +x(44)*zz +x(45)*xx**2
->      &  +x(46)*yy**2 +x(47)*zz**2 +x(48)*xx*zz +x(49)*xx*yy
->      &  +x(50)*yy*zz +x(51)*xx**3 +x(52)*yy**3 +x(53)*zz**3
->      &  +x(54)*(xx**2)*yy +x(55)*(xx**2)*zz +x(56)*(yy**2)*xx
->      &  +x(57)*(yy**2)*zz +x(58)*(zz**2)*xx +x(59)*(zz**2)*yy
->      &  +x(60)*xx*yy*zz
->       dsc_i   = 0.743d0+x(61)
->       dp2_i   = 1.9d0+x(62)
->       dscp1=dsqrt(dsc_i**2+dp2_i**2-2*dsc_i*dp2_i
->      &          *(xx*cost2+yy*sint2))
->       dscp2=dsqrt(dsc_i**2+dp2_i**2-2*dsc_i*dp2_i
->      &          *(xx*cost2-yy*sint2))
->       s1=(1+x(63))/(0.1d0 + dscp1)
->       s1_6=(1+x(64))/(0.1d0 + dscp1**6)
->       s2=(1+x(65))/(0.1d0 + dscp2)
->       s2_6=(1+x(65))/(0.1d0 + dscp2**6)
->       sumene = ( sumene3*sint2 + sumene1)*(s1+s1_6)
->      & + (sumene4*cost2 +sumene2)*(s2+s2_6)
->       enesc=sumene
->       return
->       end
-> #endif
-> c------------------------------------------------------------------------------
->       subroutine gcont(rij,r0ij,eps0ij,delta,fcont,fprimcont)
-> C
-> C This procedure calculates two-body contact function g(rij) and its derivative:
-> C
-> C           eps0ij                                     !       x < -1
-> C g(rij) =  esp0ij*(-0.9375*x+0.625*x**3-0.1875*x**5)  ! -1 =< x =< 1
-> C            0                                         !       x > 1
-> C
-> C where x=(rij-r0ij)/delta
-> C
-> C rij - interbody distance, r0ij - contact distance, eps0ij - contact energy
-> C
->       implicit none
->       double precision rij,r0ij,eps0ij,fcont,fprimcont
->       double precision x,x2,x4,delta
-> c     delta=0.02D0*r0ij
-> c      delta=0.2D0*r0ij
->       x=(rij-r0ij)/delta
->       if (x.lt.-1.0D0) then
->         fcont=eps0ij
->         fprimcont=0.0D0
->       else if (x.le.1.0D0) then  
->         x2=x*x
->         x4=x2*x2
->         fcont=eps0ij*(x*(-0.9375D0+0.6250D0*x2-0.1875D0*x4)+0.5D0)
->         fprimcont=eps0ij * (-0.9375D0+1.8750D0*x2-0.9375D0*x4)/delta
->       else
->         fcont=0.0D0
->         fprimcont=0.0D0
->       endif
->       return
->       end
-> c------------------------------------------------------------------------------
->       subroutine splinthet(theti,delta,ss,ssder)
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.VAR'
->       include 'COMMON.GEO'
->       thetup=pi-delta
->       thetlow=delta
->       if (theti.gt.pipol) then
->         call gcont(theti,thetup,1.0d0,delta,ss,ssder)
->       else
->         call gcont(-theti,-thetlow,1.0d0,delta,ss,ssder)
->         ssder=-ssder
->       endif
->       return
->       end
-> c------------------------------------------------------------------------------
->       subroutine spline1(x,x0,delta,f0,f1,fprim0,f,fprim)
->       implicit none
->       double precision x,x0,delta,f0,f1,fprim0,f,fprim
->       double precision ksi,ksi2,ksi3,a1,a2,a3
->       a1=fprim0*delta/(f1-f0)
->       a2=3.0d0-2.0d0*a1
->       a3=a1-2.0d0
->       ksi=(x-x0)/delta
->       ksi2=ksi*ksi
->       ksi3=ksi2*ksi  
->       f=f0+(f1-f0)*ksi*(a1+ksi*(a2+a3*ksi))
->       fprim=(f1-f0)/delta*(a1+ksi*(2*a2+3*ksi*a3))
->       return
->       end
-> c------------------------------------------------------------------------------
->       subroutine spline2(x,x0,delta,f0x,f1x,fprim0x,fx)
->       implicit none
->       double precision x,x0,delta,f0x,f1x,fprim0x,fx
->       double precision ksi,ksi2,ksi3,a1,a2,a3
->       ksi=(x-x0)/delta  
->       ksi2=ksi*ksi
->       ksi3=ksi2*ksi
->       a1=fprim0x*delta
->       a2=3*(f1x-f0x)-2*fprim0x*delta
->       a3=fprim0x*delta-2*(f1x-f0x)
->       fx=f0x+a1*ksi+a2*ksi2+a3*ksi3
->       return
->       end
-> C-----------------------------------------------------------------------------
-> #ifdef CRYST_TOR
-> C-----------------------------------------------------------------------------
->       subroutine etor(etors,edihcnstr)
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.VAR'
->       include 'COMMON.GEO'
->       include 'COMMON.LOCAL'
->       include 'COMMON.TORSION'
->       include 'COMMON.INTERACT'
->       include 'COMMON.DERIV'
->       include 'COMMON.CHAIN'
->       include 'COMMON.NAMES'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.FFIELD'
->       include 'COMMON.TORCNSTR'
->       include 'COMMON.CONTROL'
->       logical lprn
-> C Set lprn=.true. for debugging
->       lprn=.false.
-> c      lprn=.true.
->       etors=0.0D0
->       do i=iphi_start,iphi_end
->       etors_ii=0.0D0
->      itori=itortyp(itype(i-2))
->      itori1=itortyp(itype(i-1))
->         phii=phi(i)
->         gloci=0.0D0
-> C Proline-Proline pair is a special case...
->         if (itori.eq.3 .and. itori1.eq.3) then
->           if (phii.gt.-dwapi3) then
->             cosphi=dcos(3*phii)
->             fac=1.0D0/(1.0D0-cosphi)
->             etorsi=v1(1,3,3)*fac
->             etorsi=etorsi+etorsi
->             etors=etors+etorsi-v1(1,3,3)
->             if (energy_dec) etors_ii=etors_ii+etorsi-v1(1,3,3)      
->             gloci=gloci-3*fac*etorsi*dsin(3*phii)
->           endif
->           do j=1,3
->             v1ij=v1(j+1,itori,itori1)
->             v2ij=v2(j+1,itori,itori1)
->             cosphi=dcos(j*phii)
->             sinphi=dsin(j*phii)
->             etors=etors+v1ij*cosphi+v2ij*sinphi+dabs(v1ij)+dabs(v2ij)
->             if (energy_dec) etors_ii=etors_ii+
->      &                              v2ij*sinphi+dabs(v1ij)+dabs(v2ij)
->             gloci=gloci+j*(v2ij*cosphi-v1ij*sinphi)
->           enddo
->         else 
->           do j=1,nterm_old
->             v1ij=v1(j,itori,itori1)
->             v2ij=v2(j,itori,itori1)
->             cosphi=dcos(j*phii)
->             sinphi=dsin(j*phii)
->             etors=etors+v1ij*cosphi+v2ij*sinphi+dabs(v1ij)+dabs(v2ij)
->             if (energy_dec) etors_ii=etors_ii+
->      &                  v1ij*cosphi+v2ij*sinphi+dabs(v1ij)+dabs(v2ij)
->             gloci=gloci+j*(v2ij*cosphi-v1ij*sinphi)
->           enddo
->         endif
->         if (energy_dec) write (iout,'(a6,i5,0pf7.3)')
->              'etor',i,etors_ii
->         if (lprn)
->      &  write (iout,'(2(a3,2x,i3,2x),2i3,6f8.3/26x,6f8.3/)')
->      &  restyp(itype(i-2)),i-2,restyp(itype(i-1)),i-1,itori,itori1,
->      &  (v1(j,itori,itori1),j=1,6),(v2(j,itori,itori1),j=1,6)
->         gloc(i-3,icg)=gloc(i-3,icg)+wtor*gloci
-> c       write (iout,*) 'i=',i,' gloc=',gloc(i-3,icg)
->       enddo
-> ! 6/20/98 - dihedral angle constraints
->       edihcnstr=0.0d0
->       do i=1,ndih_constr
->         itori=idih_constr(i)
->         phii=phi(itori)
->         difi=phii-phi0(i)
->         if (difi.gt.drange(i)) then
->           difi=difi-drange(i)
->           edihcnstr=edihcnstr+0.25d0*ftors*difi**4
->           gloc(itori-3,icg)=gloc(itori-3,icg)+ftors*difi**3
->         else if (difi.lt.-drange(i)) then
->           difi=difi+drange(i)
->           edihcnstr=edihcnstr+0.25d0*ftors*difi**4
->           gloc(itori-3,icg)=gloc(itori-3,icg)+ftors*difi**3
->         endif
-> !        write (iout,'(2i5,2f8.3,2e14.5)') i,itori,rad2deg*phii,
-> !     &    rad2deg*difi,0.25d0*ftors*difi**4,gloc(itori-3,icg)
->       enddo
-> !      write (iout,*) 'edihcnstr',edihcnstr
->       return
->       end
-> c------------------------------------------------------------------------------
->       subroutine etor_d(etors_d)
->       etors_d=0.0d0
->       return
->       end
-> c----------------------------------------------------------------------------
-> #else
->       subroutine etor(etors,edihcnstr)
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.VAR'
->       include 'COMMON.GEO'
->       include 'COMMON.LOCAL'
->       include 'COMMON.TORSION'
->       include 'COMMON.INTERACT'
->       include 'COMMON.DERIV'
->       include 'COMMON.CHAIN'
->       include 'COMMON.NAMES'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.FFIELD'
->       include 'COMMON.TORCNSTR'
->       include 'COMMON.CONTROL'
->       logical lprn
-> C Set lprn=.true. for debugging
->       lprn=.false.
-> c     lprn=.true.
->       etors=0.0D0
->       do i=iphi_start,iphi_end
->       etors_ii=0.0D0
->         itori=itortyp(itype(i-2))
->         itori1=itortyp(itype(i-1))
->         phii=phi(i)
->         gloci=0.0D0
-> C Regular cosine and sine terms
->         do j=1,nterm(itori,itori1)
->           v1ij=v1(j,itori,itori1)
->           v2ij=v2(j,itori,itori1)
->           cosphi=dcos(j*phii)
->           sinphi=dsin(j*phii)
->           etors=etors+v1ij*cosphi+v2ij*sinphi
->           if (energy_dec) etors_ii=etors_ii+
->      &                v1ij*cosphi+v2ij*sinphi
->           gloci=gloci+j*(v2ij*cosphi-v1ij*sinphi)
->         enddo
-> C Lorentz terms
-> C                         v1
-> C  E = SUM ----------------------------------- - v1
-> C          [v2 cos(phi/2)+v3 sin(phi/2)]^2 + 1
-> C
->         cosphi=dcos(0.5d0*phii)
->         sinphi=dsin(0.5d0*phii)
->         do j=1,nlor(itori,itori1)
->           vl1ij=vlor1(j,itori,itori1)
->           vl2ij=vlor2(j,itori,itori1)
->           vl3ij=vlor3(j,itori,itori1)
->           pom=vl2ij*cosphi+vl3ij*sinphi
->           pom1=1.0d0/(pom*pom+1.0d0)
->           etors=etors+vl1ij*pom1
->           if (energy_dec) etors_ii=etors_ii+
->      &                vl1ij*pom1
->           pom=-pom*pom1*pom1
->           gloci=gloci+vl1ij*(vl3ij*cosphi-vl2ij*sinphi)*pom
->         enddo
-> C Subtract the constant term
->         etors=etors-v0(itori,itori1)
->           if (energy_dec) write (iout,'(a6,i5,0pf7.3)')
->      &         'etor',i,etors_ii-v0(itori,itori1)
->         if (lprn)
->      &  write (iout,'(2(a3,2x,i3,2x),2i3,6f8.3/26x,6f8.3/)')
->      &  restyp(itype(i-2)),i-2,restyp(itype(i-1)),i-1,itori,itori1,
->      &  (v1(j,itori,itori1),j=1,6),(v2(j,itori,itori1),j=1,6)
->         gloc(i-3,icg)=gloc(i-3,icg)+wtor*gloci
-> c       write (iout,*) 'i=',i,' gloc=',gloc(i-3,icg)
->       enddo
-> ! 6/20/98 - dihedral angle constraints
->       edihcnstr=0.0d0
-> c      do i=1,ndih_constr
->       do i=idihconstr_start,idihconstr_end
->         itori=idih_constr(i)
->         phii=phi(itori)
->         difi=pinorm(phii-phi0(i))
->         if (difi.gt.drange(i)) then
->           difi=difi-drange(i)
->           edihcnstr=edihcnstr+0.25d0*ftors*difi**4
->           gloc(itori-3,icg)=gloc(itori-3,icg)+ftors*difi**3
->         else if (difi.lt.-drange(i)) then
->           difi=difi+drange(i)
->           edihcnstr=edihcnstr+0.25d0*ftors*difi**4
->           gloc(itori-3,icg)=gloc(itori-3,icg)+ftors*difi**3
->         else
->           difi=0.0
->         endif
-> cd        write (iout,'(2i5,4f8.3,2e14.5)') i,itori,rad2deg*phii,
-> cd     &    rad2deg*phi0(i),  rad2deg*drange(i),
-> cd     &    rad2deg*difi,0.25d0*ftors*difi**4,gloc(itori-3,icg)
->       enddo
-> cd       write (iout,*) 'edihcnstr',edihcnstr
->       return
->       end
-> c----------------------------------------------------------------------------
->       subroutine etor_d(etors_d)
-> C 6/23/01 Compute double torsional energy
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.VAR'
->       include 'COMMON.GEO'
->       include 'COMMON.LOCAL'
->       include 'COMMON.TORSION'
->       include 'COMMON.INTERACT'
->       include 'COMMON.DERIV'
->       include 'COMMON.CHAIN'
->       include 'COMMON.NAMES'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.FFIELD'
->       include 'COMMON.TORCNSTR'
->       logical lprn
-> C Set lprn=.true. for debugging
->       lprn=.false.
-> c     lprn=.true.
->       etors_d=0.0D0
->       do i=iphid_start,iphid_end
->         itori=itortyp(itype(i-2))
->         itori1=itortyp(itype(i-1))
->         itori2=itortyp(itype(i))
->         phii=phi(i)
->         phii1=phi(i+1)
->         gloci1=0.0D0
->         gloci2=0.0D0
-> C Regular cosine and sine terms
->         do j=1,ntermd_1(itori,itori1,itori2)
->           v1cij=v1c(1,j,itori,itori1,itori2)
->           v1sij=v1s(1,j,itori,itori1,itori2)
->           v2cij=v1c(2,j,itori,itori1,itori2)
->           v2sij=v1s(2,j,itori,itori1,itori2)
->           cosphi1=dcos(j*phii)
->           sinphi1=dsin(j*phii)
->           cosphi2=dcos(j*phii1)
->           sinphi2=dsin(j*phii1)
->           etors_d=etors_d+v1cij*cosphi1+v1sij*sinphi1+
->      &     v2cij*cosphi2+v2sij*sinphi2
->           gloci1=gloci1+j*(v1sij*cosphi1-v1cij*sinphi1)
->           gloci2=gloci2+j*(v2sij*cosphi2-v2cij*sinphi2)
->         enddo
->         do k=2,ntermd_2(itori,itori1,itori2)
->           do l=1,k-1
->             v1cdij = v2c(k,l,itori,itori1,itori2)
->             v2cdij = v2c(l,k,itori,itori1,itori2)
->             v1sdij = v2s(k,l,itori,itori1,itori2)
->             v2sdij = v2s(l,k,itori,itori1,itori2)
->             cosphi1p2=dcos(l*phii+(k-l)*phii1)
->             cosphi1m2=dcos(l*phii-(k-l)*phii1)
->             sinphi1p2=dsin(l*phii+(k-l)*phii1)
->             sinphi1m2=dsin(l*phii-(k-l)*phii1)
->             etors_d=etors_d+v1cdij*cosphi1p2+v2cdij*cosphi1m2+
->      &        v1sdij*sinphi1p2+v2sdij*sinphi1m2
->             gloci1=gloci1+l*(v1sdij*cosphi1p2+v2sdij*cosphi1m2
->      &        -v1cdij*sinphi1p2-v2cdij*sinphi1m2)
->             gloci2=gloci2+(k-l)*(v1sdij*cosphi1p2-v2sdij*cosphi1m2
->      &        -v1cdij*sinphi1p2+v2cdij*sinphi1m2) 
->           enddo
->         enddo
->         gloc(i-3,icg)=gloc(i-3,icg)+wtor_d*gloci1
->         gloc(i-2,icg)=gloc(i-2,icg)+wtor_d*gloci2
->       enddo
->       return
->       end
-> #endif
-> c------------------------------------------------------------------------------
->       subroutine eback_sc_corr(esccor)
-> c 7/21/2007 Correlations between the backbone-local and side-chain-local
-> c        conformational states; temporarily implemented as differences
-> c        between UNRES torsional potentials (dependent on three types of
-> c        residues) and the torsional potentials dependent on all 20 types
-> c        of residues computed from AM1  energy surfaces of terminally-blocked
-> c        amino-acid residues.
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.VAR'
->       include 'COMMON.GEO'
->       include 'COMMON.LOCAL'
->       include 'COMMON.TORSION'
->       include 'COMMON.SCCOR'
->       include 'COMMON.INTERACT'
->       include 'COMMON.DERIV'
->       include 'COMMON.CHAIN'
->       include 'COMMON.NAMES'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.FFIELD'
->       include 'COMMON.CONTROL'
->       logical lprn
-> C Set lprn=.true. for debugging
->       lprn=.false.
-> c      lprn=.true.
-> c      write (iout,*) "EBACK_SC_COR",iphi_start,iphi_end,nterm_sccor
->       esccor=0.0D0
->       do i=iphi_start,iphi_end
->         esccor_ii=0.0D0
->         itori=itype(i-2)
->         itori1=itype(i-1)
->         phii=phi(i)
->         gloci=0.0D0
->         do j=1,nterm_sccor
->           v1ij=v1sccor(j,itori,itori1)
->           v2ij=v2sccor(j,itori,itori1)
->           cosphi=dcos(j*phii)
->           sinphi=dsin(j*phii)
->           esccor=esccor+v1ij*cosphi+v2ij*sinphi
->           gloci=gloci+j*(v2ij*cosphi-v1ij*sinphi)
->         enddo
->         if (lprn)
->      &  write (iout,'(2(a3,2x,i3,2x),2i3,6f8.3/26x,6f8.3/)')
->      &  restyp(itype(i-2)),i-2,restyp(itype(i-1)),i-1,itori,itori1,
->      &  (v1sccor(j,itori,itori1),j=1,6),(v2sccor(j,itori,itori1),j=1,6)
->         gsccor_loc(i-3)=gsccor_loc(i-3)+gloci
->       enddo
->       return
->       end
-> c----------------------------------------------------------------------------
->       subroutine multibody(ecorr)
-> C This subroutine calculates multi-body contributions to energy following
-> C the idea of Skolnick et al. If side chains I and J make a contact and
-> C at the same time side chains I+1 and J+1 make a contact, an extra 
-> C contribution equal to sqrt(eps(i,j)*eps(i+1,j+1)) is added.
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.DERIV'
->       include 'COMMON.INTERACT'
->       include 'COMMON.CONTACTS'
->       double precision gx(3),gx1(3)
->       logical lprn
-> 
-> C Set lprn=.true. for debugging
->       lprn=.false.
-> 
->       if (lprn) then
->         write (iout,'(a)') 'Contact function values:'
->         do i=nnt,nct-2
->           write (iout,'(i2,20(1x,i2,f10.5))') 
->      &        i,(jcont(j,i),facont(j,i),j=1,num_cont(i))
->         enddo
->       endif
->       ecorr=0.0D0
->       do i=nnt,nct
->         do j=1,3
->           gradcorr(j,i)=0.0D0
->           gradxorr(j,i)=0.0D0
->         enddo
->       enddo
->       do i=nnt,nct-2
-> 
->         DO ISHIFT = 3,4
-> 
->         i1=i+ishift
->         num_conti=num_cont(i)
->         num_conti1=num_cont(i1)
->         do jj=1,num_conti
->           j=jcont(jj,i)
->           do kk=1,num_conti1
->             j1=jcont(kk,i1)
->             if (j1.eq.j+ishift .or. j1.eq.j-ishift) then
-> cd          write(iout,*)'i=',i,' j=',j,' i1=',i1,' j1=',j1,
-> cd   &                   ' ishift=',ishift
-> C Contacts I--J and I+ISHIFT--J+-ISHIFT1 occur simultaneously. 
-> C The system gains extra energy.
->               ecorr=ecorr+esccorr(i,j,i1,j1,jj,kk)
->             endif   ! j1==j+-ishift
->           enddo     ! kk  
->         enddo       ! jj
-> 
->         ENDDO ! ISHIFT
-> 
->       enddo         ! i
->       return
->       end
-> c------------------------------------------------------------------------------
->       double precision function esccorr(i,j,k,l,jj,kk)
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.DERIV'
->       include 'COMMON.INTERACT'
->       include 'COMMON.CONTACTS'
->       double precision gx(3),gx1(3)
->       logical lprn
->       lprn=.false.
->       eij=facont(jj,i)
->       ekl=facont(kk,k)
-> cd    write (iout,'(4i5,3f10.5)') i,j,k,l,eij,ekl,-eij*ekl
-> C Calculate the multi-body contribution to energy.
-> C Calculate multi-body contributions to the gradient.
-> cd    write (iout,'(2(2i3,3f10.5))')i,j,(gacont(m,jj,i),m=1,3),
-> cd   & k,l,(gacont(m,kk,k),m=1,3)
->       do m=1,3
->         gx(m) =ekl*gacont(m,jj,i)
->         gx1(m)=eij*gacont(m,kk,k)
->         gradxorr(m,i)=gradxorr(m,i)-gx(m)
->         gradxorr(m,j)=gradxorr(m,j)+gx(m)
->         gradxorr(m,k)=gradxorr(m,k)-gx1(m)
->         gradxorr(m,l)=gradxorr(m,l)+gx1(m)
->       enddo
->       do m=i,j-1
->         do ll=1,3
->           gradcorr(ll,m)=gradcorr(ll,m)+gx(ll)
->         enddo
->       enddo
->       do m=k,l-1
->         do ll=1,3
->           gradcorr(ll,m)=gradcorr(ll,m)+gx1(ll)
->         enddo
->       enddo 
->       esccorr=-eij*ekl
->       return
->       end
-> c------------------------------------------------------------------------------
-> #ifdef MPI
->       subroutine pack_buffer(dimen1,dimen2,atom,indx,buffer)
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS' 
->       integer dimen1,dimen2,atom,indx
->       double precision buffer(dimen1,dimen2)
->       double precision zapas 
->       common /contacts_hb/ zapas(3,maxconts,maxres,8),
->      &   facont_hb(maxconts,maxres),ees0p(maxconts,maxres),
->      &         ees0m(maxconts,maxres),d_cont(maxconts,maxres),
->      &         num_cont_hb(maxres),jcont_hb(maxconts,maxres)
->       num_kont=num_cont_hb(atom)
->       do i=1,num_kont
->         do k=1,8
->           do j=1,3
->             buffer(i,indx+(k-1)*3+j)=zapas(j,i,atom,k)
->           enddo ! j
->         enddo ! k
->         buffer(i,indx+25)=facont_hb(i,atom)
->         buffer(i,indx+26)=ees0p(i,atom)
->         buffer(i,indx+27)=ees0m(i,atom)
->         buffer(i,indx+28)=d_cont(i,atom)
->         buffer(i,indx+29)=dfloat(jcont_hb(i,atom))
->       enddo ! i
->       buffer(1,indx+30)=dfloat(num_kont)
->       return
->       end
-> c------------------------------------------------------------------------------
->       subroutine unpack_buffer(dimen1,dimen2,atom,indx,buffer)
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS' 
->       integer dimen1,dimen2,atom,indx
->       double precision buffer(dimen1,dimen2)
->       double precision zapas 
->       common /contacts_hb/ zapas(3,maxconts,maxres,8),
->      &   facont_hb(maxconts,maxres),ees0p(maxconts,maxres),
->      &         ees0m(maxconts,maxres),d_cont(maxconts,maxres),
->      &         num_cont_hb(maxres),jcont_hb(maxconts,maxres)
->       num_kont=buffer(1,indx+30)
->       num_kont_old=num_cont_hb(atom)
->       num_cont_hb(atom)=num_kont+num_kont_old
->       do i=1,num_kont
->         ii=i+num_kont_old
->         do k=1,8    
->           do j=1,3
->             zapas(j,ii,atom,k)=buffer(i,indx+(k-1)*3+j)
->           enddo ! j 
->         enddo ! k 
->         facont_hb(ii,atom)=buffer(i,indx+25)
->         ees0p(ii,atom)=buffer(i,indx+26)
->         ees0m(ii,atom)=buffer(i,indx+27)
->         d_cont(i,atom)=buffer(i,indx+28)
->         jcont_hb(ii,atom)=buffer(i,indx+29)
->       enddo ! i
->       return
->       end
-> c------------------------------------------------------------------------------
-> #endif
->       subroutine multibody_hb(ecorr,ecorr5,ecorr6,n_corr,n_corr1)
-> C This subroutine calculates multi-body contributions to hydrogen-bonding 
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.IOUNITS'
-> #ifdef MPI
->       include "mpif.h"
->       parameter (max_cont=maxconts)
->       parameter (max_dim=2*(8*3+6))
->       parameter (msglen1=max_cont*max_dim)
->       parameter (msglen2=2*msglen1)
->       integer source,CorrelType,CorrelID,Error
->       double precision buffer(max_cont,max_dim)
->       integer status(MPI_STATUS_SIZE)
-> #endif
->       include 'COMMON.SETUP'
->       include 'COMMON.FFIELD'
->       include 'COMMON.DERIV'
->       include 'COMMON.INTERACT'
->       include 'COMMON.CONTACTS'
->       include 'COMMON.CONTROL'
->       double precision gx(3),gx1(3),time00
->       logical lprn,ldone
-> 
-> C Set lprn=.true. for debugging
->       lprn=.false.
-> #ifdef MPI
->       n_corr=0
->       n_corr1=0
->       if (nfgtasks.le.1) goto 30
->       if (lprn) then
->         write (iout,'(a)') 'Contact function values:'
->         do i=nnt,nct-2
->           write (iout,'(2i3,50(1x,i2,f5.2))') 
->      &    i,num_cont_hb(i),(jcont_hb(j,i),facont_hb(j,i),
->      &    j=1,num_cont_hb(i))
->         enddo
->       endif
-> C Caution! Following code assumes that electrostatic interactions concerning
-> C a given atom are split among at most two processors!
->       CorrelType=477
->       CorrelID=fg_rank+1
->       ldone=.false.
->       do i=1,max_cont
->         do j=1,max_dim
->           buffer(i,j)=0.0D0
->         enddo
->       enddo
->       mm=mod(fg_rank,2)
-> c      write (*,*) 'MyRank',MyRank,' mm',mm
->       if (mm) 20,20,10 
->    10 continue
-> c      write (*,*) 'Sending: MyRank',MyRank,' mm',mm,' ldone',ldone
->       if (fg_rank.gt.0) then
-> C Send correlation contributions to the preceding processor
->         msglen=msglen1
->         nn=num_cont_hb(iatel_s)
->         call pack_buffer(max_cont,max_dim,iatel_s,0,buffer)
-> c        write (*,*) 'The BUFFER array:'
-> c        do i=1,nn
-> c          write (*,'(i2,9(3f8.3,2x))') i,(buffer(i,j),j=1,30)
-> c        enddo
->         if (ielstart(iatel_s).gt.iatel_s+ispp) then
->           msglen=msglen2
->           call pack_buffer(max_cont,max_dim,iatel_s+1,30,buffer)
-> C Clear the contacts of the atom passed to the neighboring processor
->         nn=num_cont_hb(iatel_s+1)
-> c        do i=1,nn
-> c          write (*,'(i2,9(3f8.3,2x))') i,(buffer(i,j+30),j=1,30)
-> c        enddo
->             num_cont_hb(iatel_s)=0
->         endif 
-> cd      write (iout,*) 'Processor ',fg_rank,MyRank,
-> cd   & ' is sending correlation contribution to processor',fg_rank-1,
-> cd   & ' msglen=',msglen
-> c        write (*,*) 'Processor ',fg_rank,MyRank,
-> c     & ' is sending correlation contribution to processor',fg_rank-1,
-> c     & ' msglen=',msglen,' CorrelType=',CorrelType
->         time00=MPI_Wtime()
->         call MPI_Send(buffer,msglen,MPI_DOUBLE_PRECISION,fg_rank-1,
->      &    CorrelType,FG_COMM,IERROR)
->         time_sendrecv=time_sendrecv+MPI_Wtime()-time00
-> cd      write (iout,*) 'Processor ',fg_rank,
-> cd   & ' has sent correlation contribution to processor',fg_rank-1,
-> cd   & ' msglen=',msglen,' CorrelID=',CorrelID
-> c        write (*,*) 'Processor ',fg_rank,
-> c     & ' has sent correlation contribution to processor',fg_rank-1,
-> c     & ' msglen=',msglen,' CorrelID=',CorrelID
-> c        msglen=msglen1
->       endif ! (fg_rank.gt.0)
->       if (ldone) goto 30
->       ldone=.true.
->    20 continue
-> c      write (*,*) 'Receiving: MyRank',MyRank,' mm',mm,' ldone',ldone
->       if (fg_rank.lt.nfgtasks-1) then
-> C Receive correlation contributions from the next processor
->         msglen=msglen1
->         if (ielend(iatel_e).lt.nct-1) msglen=msglen2
-> cd      write (iout,*) 'Processor',fg_rank,
-> cd   & ' is receiving correlation contribution from processor',fg_rank+1,
-> cd   & ' msglen=',msglen,' CorrelType=',CorrelType
-> c        write (*,*) 'Processor',fg_rank,
-> c     &' is receiving correlation contribution from processor',fg_rank+1,
-> c     & ' msglen=',msglen,' CorrelType=',CorrelType
->         time00=MPI_Wtime()
->         nbytes=-1
->         do while (nbytes.le.0)
->           call MPI_Probe(fg_rank+1,CorrelType,FG_COMM,status,IERROR)
->           call MPI_Get_count(status,MPI_DOUBLE_PRECISION,nbytes,IERROR)
->         enddo
-> c        print *,'Processor',myrank,' msglen',msglen,' nbytes',nbytes
->         call MPI_Recv(buffer,nbytes,MPI_DOUBLE_PRECISION,
->      &    fg_rank+1,CorrelType,FG_COMM,status,IERROR)
->         time_sendrecv=time_sendrecv+MPI_Wtime()-time00
-> c        write (*,*) 'Processor',fg_rank,
-> c     &' has received correlation contribution from processor',fg_rank+1,
-> c     & ' msglen=',msglen,' nbytes=',nbytes
-> c        write (*,*) 'The received BUFFER array:'
-> c        do i=1,max_cont
-> c          write (*,'(i2,9(3f8.3,2x))') i,(buffer(i,j),j=1,60)
-> c        enddo
->         if (msglen.eq.msglen1) then
->           call unpack_buffer(max_cont,max_dim,iatel_e+1,0,buffer)
->         else if (msglen.eq.msglen2)  then
->           call unpack_buffer(max_cont,max_dim,iatel_e,0,buffer) 
->           call unpack_buffer(max_cont,max_dim,iatel_e+1,30,buffer) 
->         else
->           write (iout,*) 
->      & 'ERROR!!!! message length changed while processing correlations.'
->           write (*,*) 
->      & 'ERROR!!!! message length changed while processing correlations.'
->           call MPI_Abort(MPI_COMM_WORLD,Error,IERROR)
->         endif ! msglen.eq.msglen1
->       endif ! fg_rank.lt.nfgtasks-1
->       if (ldone) goto 30
->       ldone=.true.
->       goto 10
->    30 continue
-> #endif
->       if (lprn) then
->         write (iout,'(a)') 'Contact function values:'
->         do i=nnt,nct-2
->           write (iout,'(2i3,50(1x,i2,f5.2))') 
->      &    i,num_cont_hb(i),(jcont_hb(j,i),facont_hb(j,i),
->      &    j=1,num_cont_hb(i))
->         enddo
->       endif
->       ecorr=0.0D0
-> C Remove the loop below after debugging !!!
->       do i=nnt,nct
->         do j=1,3
->           gradcorr(j,i)=0.0D0
->           gradxorr(j,i)=0.0D0
->         enddo
->       enddo
-> C Calculate the local-electrostatic correlation terms
->       do i=iatel_s,iatel_e+1
->         i1=i+1
->         num_conti=num_cont_hb(i)
->         num_conti1=num_cont_hb(i+1)
->         do jj=1,num_conti
->           j=jcont_hb(jj,i)
->           do kk=1,num_conti1
->             j1=jcont_hb(kk,i1)
-> c            write (iout,*) 'i=',i,' j=',j,' i1=',i1,' j1=',j1,
-> c     &         ' jj=',jj,' kk=',kk
->             if (j1.eq.j+1 .or. j1.eq.j-1) then
-> C Contacts I-J and (I+1)-(J+1) or (I+1)-(J-1) occur simultaneously. 
-> C The system gains extra energy.
->               ecorr=ecorr+ehbcorr(i,j,i+1,j1,jj,kk,0.72D0,0.32D0)
->               if (energy_dec) write (iout,'(a6,2i5,0pf7.3)')
->      &            'ecorrh',i,j,ehbcorr(i,j,i+1,j1,jj,kk,0.72D0,0.32D0)
->               n_corr=n_corr+1
->             else if (j1.eq.j) then
-> C Contacts I-J and I-(J+1) occur simultaneously. 
-> C The system loses extra energy.
-> c             ecorr=ecorr+ehbcorr(i,j,i+1,j,jj,kk,0.60D0,-0.40D0) 
->             endif
->           enddo ! kk
->           do kk=1,num_conti
->             j1=jcont_hb(kk,i)
-> c           write (iout,*) 'i=',i,' j=',j,' i1=',i1,' j1=',j1,
-> c    &         ' jj=',jj,' kk=',kk
->             if (j1.eq.j+1) then
-> C Contacts I-J and (I+1)-J occur simultaneously. 
-> C The system loses extra energy.
-> c             ecorr=ecorr+ehbcorr(i,j,i,j+1,jj,kk,0.60D0,-0.40D0)
->             endif ! j1==j+1
->           enddo ! kk
->         enddo ! jj
->       enddo ! i
->       return
->       end
-> c------------------------------------------------------------------------------
->       subroutine multibody_eello(ecorr,ecorr5,ecorr6,eturn6,n_corr,
->      &  n_corr1)
-> C This subroutine calculates multi-body contributions to hydrogen-bonding 
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.IOUNITS'
-> #ifdef MPI
->       include 'mpif.h'
->       parameter (max_cont=maxconts)
->       parameter (max_dim=2*(8*3+6))
-> c      parameter (msglen1=max_cont*max_dim*4)
->       parameter (msglen1=max_cont*max_dim/2)
->       parameter (msglen2=2*msglen1)
->       integer source,CorrelType,CorrelID,Error
->       double precision buffer(max_cont,max_dim)
->       integer status(MPI_STATUS_SIZE)
-> #endif
->       include 'COMMON.SETUP'
->       include 'COMMON.FFIELD'
->       include 'COMMON.DERIV'
->       include 'COMMON.INTERACT'
->       include 'COMMON.CONTACTS'
->       include 'COMMON.CONTROL'
->       double precision gx(3),gx1(3)
->       logical lprn,ldone
-> C Set lprn=.true. for debugging
->       lprn=.false.
->       eturn6=0.0d0
-> #ifdef MPI
->       n_corr=0
->       n_corr1=0
->       if (fgProcs.le.1) goto 30
->       if (lprn) then
->         write (iout,'(a)') 'Contact function values:'
->         do i=nnt,nct-2
->           write (iout,'(2i3,50(1x,i2,f5.2))') 
->      &    i,num_cont_hb(i),(jcont_hb(j,i),facont_hb(j,i),
->      &    j=1,num_cont_hb(i))
->         enddo
->       endif
-> C Caution! Following code assumes that electrostatic interactions concerning
-> C a given atom are split among at most two processors!
->       CorrelType=477
->       CorrelID=MyID+1
->       ldone=.false.
->       do i=1,max_cont
->         do j=1,max_dim
->           buffer(i,j)=0.0D0
->         enddo
->       enddo
->       mm=mod(MyRank,2)
-> cd    write (iout,*) 'MyRank',MyRank,' mm',mm
->       if (mm) 20,20,10 
->    10 continue
-> cd    write (iout,*) 'Sending: MyRank',MyRank,' mm',mm,' ldone',ldone
->       if (MyRank.gt.0) then
-> C Send correlation contributions to the preceding processor
->         msglen=msglen1
->         nn=num_cont_hb(iatel_s)
->         call pack_buffer(max_cont,max_dim,iatel_s,0,buffer)
-> cd      write (iout,*) 'The BUFFER array:'
-> cd      do i=1,nn
-> cd        write (iout,'(i2,9(3f8.3,2x))') i,(buffer(i,j),j=1,30)
-> cd      enddo
->         if (ielstart(iatel_s).gt.iatel_s+ispp) then
->           msglen=msglen2
->             call pack_buffer(max_cont,max_dim,iatel_s+1,30,buffer)
-> C Clear the contacts of the atom passed to the neighboring processor
->         nn=num_cont_hb(iatel_s+1)
-> cd      do i=1,nn
-> cd        write (iout,'(i2,9(3f8.3,2x))') i,(buffer(i,j+30),j=1,30)
-> cd      enddo
->             num_cont_hb(iatel_s)=0
->         endif 
-> cd      write (*,*) 'Processor ',fg_rank,MyRank,
-> cd   & ' is sending correlation contribution to processor',fg_rank-1,
-> cd   & ' msglen=',msglen
-> cd      write (*,*) 'Processor ',MyID,MyRank,
-> cd   & ' is sending correlation contribution to processor',fg_rank-1,
-> cd   & ' msglen=',msglen,' CorrelType=',CorrelType
->         time00=MPI_Wtime()
->         call MPI_Send(buffer,msglen,MPI_DOUBLE_PRECISION,fg_rank-1,
->      &     CorrelType,FG_COMM,IERROR)
->         time_sendrecv=time_sendrecv+MPI_Wtime()-time00
-> cd      write (*,*) 'Processor ',fg_rank,MyRank,
-> cd   & ' has sent correlation contribution to processor',fg_rank-1,
-> cd   & ' msglen=',msglen,' CorrelID=',CorrelID
-> cd      write (*,*) 'Processor ',fg_rank,
-> cd   & ' has sent correlation contribution to processor',fg_rank-1,
-> cd   & ' msglen=',msglen,' CorrelID=',CorrelID
->         msglen=msglen1
->       endif ! (MyRank.gt.0)
->       if (ldone) goto 30
->       ldone=.true.
->    20 continue
-> cd    write (iout,*) 'Receiving: MyRank',MyRank,' mm',mm,' ldone',ldone
->       if (fg_rank.lt.nfgtasks-1) then
-> C Receive correlation contributions from the next processor
->         msglen=msglen1
->         if (ielend(iatel_e).lt.nct-1) msglen=msglen2
-> cd      write (iout,*) 'Processor',fg_rank,
-> cd   & ' is receiving correlation contribution from processor',fg_rank+1,
-> cd   & ' msglen=',msglen,' CorrelType=',CorrelType
-> cd      write (*,*) 'Processor',fg_rank,
-> cd   & ' is receiving correlation contribution from processor',fg_rank+1,
-> cd   & ' msglen=',msglen,' CorrelType=',CorrelType
->         time00=MPI_Wtime()
->         nbytes=-1
->         do while (nbytes.le.0)
->           call MPI_Probe(fg_rank+1,CorrelType,FG_COMM,status,IERROR)
->           call MPI_Get_count(status,MPI_DOUBLE_PRECISION,nbytes,IERROR)
->         enddo
-> cd      print *,'Processor',MyID,' msglen',msglen,' nbytes',nbytes
->         call MPI_Recv(buffer,nbytes,MPI_DOUBLE_PRECISION,
->      &    fg_rank+1,CorrelType,status,IERROR)
->         time_sendrecv=time_sendrecv+MPI_Wtime()-time00
-> cd      write (iout,*) 'Processor',fg_rank,
-> cd   & ' has received correlation contribution from processor',fg_rank+1,
-> cd   & ' msglen=',msglen,' nbytes=',nbytes
-> cd      write (iout,*) 'The received BUFFER array:'
-> cd      do i=1,max_cont
-> cd        write (iout,'(i2,9(3f8.3,2x))') i,(buffer(i,j),j=1,52)
-> cd      enddo
->         if (msglen.eq.msglen1) then
->           call unpack_buffer(max_cont,max_dim,iatel_e+1,0,buffer)
->         else if (msglen.eq.msglen2)  then
->           call unpack_buffer(max_cont,max_dim,iatel_e,0,buffer) 
->           call unpack_buffer(max_cont,max_dim,iatel_e+1,30,buffer) 
->         else
->           write (iout,*) 
->      & 'ERROR!!!! message length changed while processing correlations.'
->           write (*,*) 
->      & 'ERROR!!!! message length changed while processing correlations.'
->           call MPI_Abort(MPI_COMM_WORLD,Error,IERROR)
->         endif ! msglen.eq.msglen1
->       endif ! fg_rank.lt.nfgtasks-1
->       if (ldone) goto 30
->       ldone=.true.
->       goto 10
->    30 continue
-> #endif
->       if (lprn) then
->         write (iout,'(a)') 'Contact function values:'
->         do i=nnt,nct-2
->           write (iout,'(2i3,50(1x,i2,f5.2))') 
->      &    i,num_cont_hb(i),(jcont_hb(j,i),facont_hb(j,i),
->      &    j=1,num_cont_hb(i))
->         enddo
->       endif
->       ecorr=0.0D0
->       ecorr5=0.0d0
->       ecorr6=0.0d0
-> C Remove the loop below after debugging !!!
->       do i=nnt,nct
->         do j=1,3
->           gradcorr(j,i)=0.0D0
->           gradxorr(j,i)=0.0D0
->         enddo
->       enddo
-> C Calculate the dipole-dipole interaction energies
->       if (wcorr6.gt.0.0d0 .or. wturn6.gt.0.0d0) then
->       do i=iatel_s,iatel_e+1
->         num_conti=num_cont_hb(i)
->         do jj=1,num_conti
->           j=jcont_hb(jj,i)
->           call dipole(i,j,jj)
->         enddo
->       enddo
->       endif
-> C Calculate the local-electrostatic correlation terms
->       do i=iatel_s,iatel_e+1
->         i1=i+1
->         num_conti=num_cont_hb(i)
->         num_conti1=num_cont_hb(i+1)
->         do jj=1,num_conti
->           j=jcont_hb(jj,i)
->           do kk=1,num_conti1
->             j1=jcont_hb(kk,i1)
-> c            write (iout,*) 'i=',i,' j=',j,' i1=',i1,' j1=',j1,
-> c     &         ' jj=',jj,' kk=',kk
->             if (j1.eq.j+1 .or. j1.eq.j-1) then
-> C Contacts I-J and (I+1)-(J+1) or (I+1)-(J-1) occur simultaneously. 
-> C The system gains extra energy.
->               n_corr=n_corr+1
->               sqd1=dsqrt(d_cont(jj,i))
->               sqd2=dsqrt(d_cont(kk,i1))
->               sred_geom = sqd1*sqd2
->               IF (sred_geom.lt.cutoff_corr) THEN
->                 call gcont(sred_geom,r0_corr,1.0D0,delt_corr,
->      &            ekont,fprimcont)
-> cd               write (iout,*) 'i=',i,' j=',j,' i1=',i1,' j1=',j1,
-> cd     &         ' jj=',jj,' kk=',kk
->                 fac_prim1=0.5d0*sqd2/sqd1*fprimcont
->                 fac_prim2=0.5d0*sqd1/sqd2*fprimcont
->                 do l=1,3
->                   g_contij(l,1)=fac_prim1*grij_hb_cont(l,jj,i)
->                   g_contij(l,2)=fac_prim2*grij_hb_cont(l,kk,i1)
->                 enddo
->                 n_corr1=n_corr1+1
-> cd               write (iout,*) 'sred_geom=',sred_geom,
-> cd     &          ' ekont=',ekont,' fprim=',fprimcont
->                 call calc_eello(i,j,i+1,j1,jj,kk)
->                 if (wcorr4.gt.0.0d0) 
->      &            ecorr=ecorr+eello4(i,j,i+1,j1,jj,kk)
->                   if (energy_dec.and.wcorr4.gt.0.0d0) 
->      1                 write (iout,'(a6,2i5,0pf7.3)')
->      2                'ecorr4',i,j,eello4(i,j,i+1,j1,jj,kk)
->                 if (wcorr5.gt.0.0d0)
->      &            ecorr5=ecorr5+eello5(i,j,i+1,j1,jj,kk)
->                   if (energy_dec.and.wcorr5.gt.0.0d0) 
->      1                 write (iout,'(a6,2i5,0pf7.3)')
->      2                'ecorr5',i,j,eello5(i,j,i+1,j1,jj,kk)
-> cd                write(2,*)'wcorr6',wcorr6,' wturn6',wturn6
-> cd                write(2,*)'ijkl',i,j,i+1,j1 
->                 if (wcorr6.gt.0.0d0 .and. (j.ne.i+4 .or. j1.ne.i+3
->      &               .or. wturn6.eq.0.0d0))then
-> cd                  write (iout,*) '******ecorr6: i,j,i+1,j1',i,j,i+1,j1
->                   ecorr6=ecorr6+eello6(i,j,i+1,j1,jj,kk)
->                   if (energy_dec) write (iout,'(a6,2i5,0pf7.3)')
->      1                'ecorr6',i,j,eello6(i,j,i+1,j1,jj,kk)
-> cd                write (iout,*) 'ecorr',ecorr,' ecorr5=',ecorr5,
-> cd     &            'ecorr6=',ecorr6
-> cd                write (iout,'(4e15.5)') sred_geom,
-> cd     &          dabs(eello4(i,j,i+1,j1,jj,kk)),
-> cd     &          dabs(eello5(i,j,i+1,j1,jj,kk)),
-> cd     &          dabs(eello6(i,j,i+1,j1,jj,kk))
->                 else if (wturn6.gt.0.0d0
->      &            .and. (j.eq.i+4 .and. j1.eq.i+3)) then
-> cd                  write (iout,*) '******eturn6: i,j,i+1,j1',i,j,i+1,j1
->                   eturn6=eturn6+eello_turn6(i,jj,kk)
->                   if (energy_dec) write (iout,'(a6,2i5,0pf7.3)')
->      1                 'eturn6',i,j,eello_turn6(i,jj,kk)
-> cd                  write (2,*) 'multibody_eello:eturn6',eturn6
->                 endif
->               ENDIF
-> 1111          continue
->             else if (j1.eq.j) then
-> C Contacts I-J and I-(J+1) occur simultaneously. 
-> C The system loses extra energy.
-> c             ecorr=ecorr+ehbcorr(i,j,i+1,j,jj,kk,0.60D0,-0.40D0) 
->             endif
->           enddo ! kk
->           do kk=1,num_conti
->             j1=jcont_hb(kk,i)
-> c           write (iout,*) 'i=',i,' j=',j,' i1=',i1,' j1=',j1,
-> c    &         ' jj=',jj,' kk=',kk
->             if (j1.eq.j+1) then
-> C Contacts I-J and (I+1)-J occur simultaneously. 
-> C The system loses extra energy.
-> c             ecorr=ecorr+ehbcorr(i,j,i,j+1,jj,kk,0.60D0,-0.40D0)
->             endif ! j1==j+1
->           enddo ! kk
->         enddo ! jj
->       enddo ! i
->       return
->       end
-> c------------------------------------------------------------------------------
->       double precision function ehbcorr(i,j,k,l,jj,kk,coeffp,coeffm)
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.DERIV'
->       include 'COMMON.INTERACT'
->       include 'COMMON.CONTACTS'
->       double precision gx(3),gx1(3)
->       logical lprn
->       lprn=.false.
->       eij=facont_hb(jj,i)
->       ekl=facont_hb(kk,k)
->       ees0pij=ees0p(jj,i)
->       ees0pkl=ees0p(kk,k)
->       ees0mij=ees0m(jj,i)
->       ees0mkl=ees0m(kk,k)
->       ekont=eij*ekl
->       ees=-(coeffp*ees0pij*ees0pkl+coeffm*ees0mij*ees0mkl)
-> cd    ees=-(coeffp*ees0pkl+coeffm*ees0mkl)
-> C Following 4 lines for diagnostics.
-> cd    ees0pkl=0.0D0
-> cd    ees0pij=1.0D0
-> cd    ees0mkl=0.0D0
-> cd    ees0mij=1.0D0
-> c     write (iout,*)'Contacts have occurred for peptide groups',i,j,
-> c    &   ' and',k,l
-> c     write (iout,*)'Contacts have occurred for peptide groups',
-> c    &  i,j,' fcont:',eij,' eij',' eesij',ees0pij,ees0mij,' and ',k,l
-> c    & ,' fcont ',ekl,' eeskl',ees0pkl,ees0mkl,' ees=',ees
-> C Calculate the multi-body contribution to energy.
->       ecorr=ecorr+ekont*ees
-> C Calculate multi-body contributions to the gradient.
->       do ll=1,3
->         ghalf=0.5D0*ees*ekl*gacont_hbr(ll,jj,i)
->         gradcorr(ll,i)=gradcorr(ll,i)+ghalf
->      &  -ekont*(coeffp*ees0pkl*gacontp_hb1(ll,jj,i)+
->      &  coeffm*ees0mkl*gacontm_hb1(ll,jj,i))
->         gradcorr(ll,j)=gradcorr(ll,j)+ghalf
->      &  -ekont*(coeffp*ees0pkl*gacontp_hb2(ll,jj,i)+
->      &  coeffm*ees0mkl*gacontm_hb2(ll,jj,i))
->         ghalf=0.5D0*ees*eij*gacont_hbr(ll,kk,k)
->         gradcorr(ll,k)=gradcorr(ll,k)+ghalf
->      &  -ekont*(coeffp*ees0pij*gacontp_hb1(ll,kk,k)+
->      &  coeffm*ees0mij*gacontm_hb1(ll,kk,k))
->         gradcorr(ll,l)=gradcorr(ll,l)+ghalf
->      &  -ekont*(coeffp*ees0pij*gacontp_hb2(ll,kk,k)+
->      &  coeffm*ees0mij*gacontm_hb2(ll,kk,k))
->       enddo
->       do m=i+1,j-1
->         do ll=1,3
->           gradcorr(ll,m)=gradcorr(ll,m)+
->      &     ees*ekl*gacont_hbr(ll,jj,i)-
->      &     ekont*(coeffp*ees0pkl*gacontp_hb3(ll,jj,i)+
->      &     coeffm*ees0mkl*gacontm_hb3(ll,jj,i))
->         enddo
->       enddo
->       do m=k+1,l-1
->         do ll=1,3
->           gradcorr(ll,m)=gradcorr(ll,m)+
->      &     ees*eij*gacont_hbr(ll,kk,k)-
->      &     ekont*(coeffp*ees0pij*gacontp_hb3(ll,kk,k)+
->      &     coeffm*ees0mij*gacontm_hb3(ll,kk,k))
->         enddo
->       enddo 
->       ehbcorr=ekont*ees
->       return
->       end
-> C---------------------------------------------------------------------------
->       subroutine dipole(i,j,jj)
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.CHAIN'
->       include 'COMMON.FFIELD'
->       include 'COMMON.DERIV'
->       include 'COMMON.INTERACT'
->       include 'COMMON.CONTACTS'
->       include 'COMMON.TORSION'
->       include 'COMMON.VAR'
->       include 'COMMON.GEO'
->       dimension dipi(2,2),dipj(2,2),dipderi(2),dipderj(2),auxvec(2),
->      &  auxmat(2,2)
->       iti1 = itortyp(itype(i+1))
->       if (j.lt.nres-1) then
->         itj1 = itortyp(itype(j+1))
->       else
->         itj1=ntortyp+1
->       endif
->       do iii=1,2
->         dipi(iii,1)=Ub2(iii,i)
->         dipderi(iii)=Ub2der(iii,i)
->         dipi(iii,2)=b1(iii,iti1)
->         dipj(iii,1)=Ub2(iii,j)
->         dipderj(iii)=Ub2der(iii,j)
->         dipj(iii,2)=b1(iii,itj1)
->       enddo
->       kkk=0
->       do iii=1,2
->         call matvec2(a_chuj(1,1,jj,i),dipj(1,iii),auxvec(1)) 
->         do jjj=1,2
->           kkk=kkk+1
->           dip(kkk,jj,i)=scalar2(dipi(1,jjj),auxvec(1))
->         enddo
->       enddo
->       do kkk=1,5
->         do lll=1,3
->           mmm=0
->           do iii=1,2
->             call matvec2(a_chuj_der(1,1,lll,kkk,jj,i),dipj(1,iii),
->      &        auxvec(1))
->             do jjj=1,2
->               mmm=mmm+1
->               dipderx(lll,kkk,mmm,jj,i)=scalar2(dipi(1,jjj),auxvec(1))
->             enddo
->           enddo
->         enddo
->       enddo
->       call transpose2(a_chuj(1,1,jj,i),auxmat(1,1))
->       call matvec2(auxmat(1,1),dipderi(1),auxvec(1))
->       do iii=1,2
->         dipderg(iii,jj,i)=scalar2(auxvec(1),dipj(1,iii))
->       enddo
->       call matvec2(a_chuj(1,1,jj,i),dipderj(1),auxvec(1))
->       do iii=1,2
->         dipderg(iii+2,jj,i)=scalar2(auxvec(1),dipi(1,iii))
->       enddo
->       return
->       end
-> C---------------------------------------------------------------------------
->       subroutine calc_eello(i,j,k,l,jj,kk)
-> C 
-> C This subroutine computes matrices and vectors needed to calculate 
-> C the fourth-, fifth-, and sixth-order local-electrostatic terms.
-> C
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.CHAIN'
->       include 'COMMON.DERIV'
->       include 'COMMON.INTERACT'
->       include 'COMMON.CONTACTS'
->       include 'COMMON.TORSION'
->       include 'COMMON.VAR'
->       include 'COMMON.GEO'
->       include 'COMMON.FFIELD'
->       double precision aa1(2,2),aa2(2,2),aa1t(2,2),aa2t(2,2),
->      &  aa1tder(2,2,3,5),aa2tder(2,2,3,5),auxmat(2,2)
->       logical lprn
->       common /kutas/ lprn
-> cd      write (iout,*) 'calc_eello: i=',i,' j=',j,' k=',k,' l=',l,
-> cd     & ' jj=',jj,' kk=',kk
-> cd      if (i.ne.2 .or. j.ne.4 .or. k.ne.3 .or. l.ne.5) return
->       do iii=1,2
->         do jjj=1,2
->           aa1(iii,jjj)=a_chuj(iii,jjj,jj,i)
->           aa2(iii,jjj)=a_chuj(iii,jjj,kk,k)
->         enddo
->       enddo
->       call transpose2(aa1(1,1),aa1t(1,1))
->       call transpose2(aa2(1,1),aa2t(1,1))
->       do kkk=1,5
->         do lll=1,3
->           call transpose2(a_chuj_der(1,1,lll,kkk,jj,i),
->      &      aa1tder(1,1,lll,kkk))
->           call transpose2(a_chuj_der(1,1,lll,kkk,kk,k),
->      &      aa2tder(1,1,lll,kkk))
->         enddo
->       enddo 
->       if (l.eq.j+1) then
-> C parallel orientation of the two CA-CA-CA frames.
->         if (i.gt.1) then
->           iti=itortyp(itype(i))
->         else
->           iti=ntortyp+1
->         endif
->         itk1=itortyp(itype(k+1))
->         itj=itortyp(itype(j))
->         if (l.lt.nres-1) then
->           itl1=itortyp(itype(l+1))
->         else
->           itl1=ntortyp+1
->         endif
-> C A1 kernel(j+1) A2T
-> cd        do iii=1,2
-> cd          write (iout,'(3f10.5,5x,3f10.5)') 
-> cd     &     (EUg(iii,jjj,k),jjj=1,2),(EUg(iii,jjj,l),jjj=1,2)
-> cd        enddo
->         call kernel(aa1(1,1),aa2t(1,1),a_chuj_der(1,1,1,1,jj,i),
->      &   aa2tder(1,1,1,1),1,.false.,EUg(1,1,l),EUgder(1,1,l),
->      &   AEA(1,1,1),AEAderg(1,1,1),AEAderx(1,1,1,1,1,1))
-> C Following matrices are needed only for 6-th order cumulants
->         IF (wcorr6.gt.0.0d0) THEN
->         call kernel(aa1(1,1),aa2t(1,1),a_chuj_der(1,1,1,1,jj,i),
->      &   aa2tder(1,1,1,1),1,.false.,EUgC(1,1,l),EUgCder(1,1,l),
->      &   AECA(1,1,1),AECAderg(1,1,1),AECAderx(1,1,1,1,1,1))
->         call kernel(aa1(1,1),aa2t(1,1),a_chuj_der(1,1,1,1,jj,i),
->      &   aa2tder(1,1,1,1),2,.false.,Ug2DtEUg(1,1,l),
->      &   Ug2DtEUgder(1,1,1,l),ADtEA(1,1,1),ADtEAderg(1,1,1,1),
->      &   ADtEAderx(1,1,1,1,1,1))
->         lprn=.false.
->         call kernel(aa1(1,1),aa2t(1,1),a_chuj_der(1,1,1,1,jj,i),
->      &   aa2tder(1,1,1,1),2,.false.,DtUg2EUg(1,1,l),
->      &   DtUg2EUgder(1,1,1,l),ADtEA1(1,1,1),ADtEA1derg(1,1,1,1),
->      &   ADtEA1derx(1,1,1,1,1,1))
->         ENDIF
-> C End 6-th order cumulants
-> cd        lprn=.false.
-> cd        if (lprn) then
-> cd        write (2,*) 'In calc_eello6'
-> cd        do iii=1,2
-> cd          write (2,*) 'iii=',iii
-> cd          do kkk=1,5
-> cd            write (2,*) 'kkk=',kkk
-> cd            do jjj=1,2
-> cd              write (2,'(3(2f10.5),5x)') 
-> cd     &        ((ADtEA1derx(jjj,mmm,lll,kkk,iii,1),mmm=1,2),lll=1,3)
-> cd            enddo
-> cd          enddo
-> cd        enddo
-> cd        endif
->         call transpose2(EUgder(1,1,k),auxmat(1,1))
->         call matmat2(auxmat(1,1),AEA(1,1,1),EAEAderg(1,1,1,1))
->         call transpose2(EUg(1,1,k),auxmat(1,1))
->         call matmat2(auxmat(1,1),AEA(1,1,1),EAEA(1,1,1))
->         call matmat2(auxmat(1,1),AEAderg(1,1,1),EAEAderg(1,1,2,1))
->         do iii=1,2
->           do kkk=1,5
->             do lll=1,3
->               call matmat2(auxmat(1,1),AEAderx(1,1,lll,kkk,iii,1),
->      &          EAEAderx(1,1,lll,kkk,iii,1))
->             enddo
->           enddo
->         enddo
-> C A1T kernel(i+1) A2
->         call kernel(aa1t(1,1),aa2(1,1),aa1tder(1,1,1,1),
->      &   a_chuj_der(1,1,1,1,kk,k),1,.false.,EUg(1,1,k),EUgder(1,1,k),
->      &   AEA(1,1,2),AEAderg(1,1,2),AEAderx(1,1,1,1,1,2))
-> C Following matrices are needed only for 6-th order cumulants
->         IF (wcorr6.gt.0.0d0) THEN
->         call kernel(aa1t(1,1),aa2(1,1),aa1tder(1,1,1,1),
->      &   a_chuj_der(1,1,1,1,kk,k),1,.false.,EUgC(1,1,k),EUgCder(1,1,k),
->      &   AECA(1,1,2),AECAderg(1,1,2),AECAderx(1,1,1,1,1,2))
->         call kernel(aa1t(1,1),aa2(1,1),aa1tder(1,1,1,1),
->      &   a_chuj_der(1,1,1,1,kk,k),2,.false.,Ug2DtEUg(1,1,k),
->      &   Ug2DtEUgder(1,1,1,k),ADtEA(1,1,2),ADtEAderg(1,1,1,2),
->      &   ADtEAderx(1,1,1,1,1,2))
->         call kernel(aa1t(1,1),aa2(1,1),aa1tder(1,1,1,1),
->      &   a_chuj_der(1,1,1,1,kk,k),2,.false.,DtUg2EUg(1,1,k),
->      &   DtUg2EUgder(1,1,1,k),ADtEA1(1,1,2),ADtEA1derg(1,1,1,2),
->      &   ADtEA1derx(1,1,1,1,1,2))
->         ENDIF
-> C End 6-th order cumulants
->         call transpose2(EUgder(1,1,l),auxmat(1,1))
->         call matmat2(auxmat(1,1),AEA(1,1,2),EAEAderg(1,1,1,2))
->         call transpose2(EUg(1,1,l),auxmat(1,1))
->         call matmat2(auxmat(1,1),AEA(1,1,2),EAEA(1,1,2))
->         call matmat2(auxmat(1,1),AEAderg(1,1,2),EAEAderg(1,1,2,2))
->         do iii=1,2
->           do kkk=1,5
->             do lll=1,3
->               call matmat2(auxmat(1,1),AEAderx(1,1,lll,kkk,iii,2),
->      &          EAEAderx(1,1,lll,kkk,iii,2))
->             enddo
->           enddo
->         enddo
-> C AEAb1 and AEAb2
-> C Calculate the vectors and their derivatives in virtual-bond dihedral angles.
-> C They are needed only when the fifth- or the sixth-order cumulants are
-> C indluded.
->         IF (wcorr5.gt.0.0d0 .or. wcorr6.gt.0.0d0) THEN
->         call transpose2(AEA(1,1,1),auxmat(1,1))
->         call matvec2(auxmat(1,1),b1(1,iti),AEAb1(1,1,1))
->         call matvec2(auxmat(1,1),Ub2(1,i),AEAb2(1,1,1))
->         call matvec2(auxmat(1,1),Ub2der(1,i),AEAb2derg(1,2,1,1))
->         call transpose2(AEAderg(1,1,1),auxmat(1,1))
->         call matvec2(auxmat(1,1),b1(1,iti),AEAb1derg(1,1,1))
->         call matvec2(auxmat(1,1),Ub2(1,i),AEAb2derg(1,1,1,1))
->         call matvec2(AEA(1,1,1),b1(1,itk1),AEAb1(1,2,1))
->         call matvec2(AEAderg(1,1,1),b1(1,itk1),AEAb1derg(1,2,1))
->         call matvec2(AEA(1,1,1),Ub2(1,k+1),AEAb2(1,2,1))
->         call matvec2(AEAderg(1,1,1),Ub2(1,k+1),AEAb2derg(1,1,2,1))
->         call matvec2(AEA(1,1,1),Ub2der(1,k+1),AEAb2derg(1,2,2,1))
->         call transpose2(AEA(1,1,2),auxmat(1,1))
->         call matvec2(auxmat(1,1),b1(1,itj),AEAb1(1,1,2))
->         call matvec2(auxmat(1,1),Ub2(1,j),AEAb2(1,1,2))
->         call matvec2(auxmat(1,1),Ub2der(1,j),AEAb2derg(1,2,1,2))
->         call transpose2(AEAderg(1,1,2),auxmat(1,1))
->         call matvec2(auxmat(1,1),b1(1,itj),AEAb1derg(1,1,2))
->         call matvec2(auxmat(1,1),Ub2(1,j),AEAb2derg(1,1,1,2))
->         call matvec2(AEA(1,1,2),b1(1,itl1),AEAb1(1,2,2))
->         call matvec2(AEAderg(1,1,2),b1(1,itl1),AEAb1derg(1,2,2))
->         call matvec2(AEA(1,1,2),Ub2(1,l+1),AEAb2(1,2,2))
->         call matvec2(AEAderg(1,1,2),Ub2(1,l+1),AEAb2derg(1,1,2,2))
->         call matvec2(AEA(1,1,2),Ub2der(1,l+1),AEAb2derg(1,2,2,2))
-> C Calculate the Cartesian derivatives of the vectors.
->         do iii=1,2
->           do kkk=1,5
->             do lll=1,3
->               call transpose2(AEAderx(1,1,lll,kkk,iii,1),auxmat(1,1))
->               call matvec2(auxmat(1,1),b1(1,iti),
->      &          AEAb1derx(1,lll,kkk,iii,1,1))
->               call matvec2(auxmat(1,1),Ub2(1,i),
->      &          AEAb2derx(1,lll,kkk,iii,1,1))
->               call matvec2(AEAderx(1,1,lll,kkk,iii,1),b1(1,itk1),
->      &          AEAb1derx(1,lll,kkk,iii,2,1))
->               call matvec2(AEAderx(1,1,lll,kkk,iii,1),Ub2(1,k+1),
->      &          AEAb2derx(1,lll,kkk,iii,2,1))
->               call transpose2(AEAderx(1,1,lll,kkk,iii,2),auxmat(1,1))
->               call matvec2(auxmat(1,1),b1(1,itj),
->      &          AEAb1derx(1,lll,kkk,iii,1,2))
->               call matvec2(auxmat(1,1),Ub2(1,j),
->      &          AEAb2derx(1,lll,kkk,iii,1,2))
->               call matvec2(AEAderx(1,1,lll,kkk,iii,2),b1(1,itl1),
->      &          AEAb1derx(1,lll,kkk,iii,2,2))
->               call matvec2(AEAderx(1,1,lll,kkk,iii,2),Ub2(1,l+1),
->      &          AEAb2derx(1,lll,kkk,iii,2,2))
->             enddo
->           enddo
->         enddo
->         ENDIF
-> C End vectors
->       else
-> C Antiparallel orientation of the two CA-CA-CA frames.
->         if (i.gt.1) then
->           iti=itortyp(itype(i))
->         else
->           iti=ntortyp+1
->         endif
->         itk1=itortyp(itype(k+1))
->         itl=itortyp(itype(l))
->         itj=itortyp(itype(j))
->         if (j.lt.nres-1) then
->           itj1=itortyp(itype(j+1))
->         else 
->           itj1=ntortyp+1
->         endif
-> C A2 kernel(j-1)T A1T
->         call kernel(aa1(1,1),aa2t(1,1),a_chuj_der(1,1,1,1,jj,i),
->      &   aa2tder(1,1,1,1),1,.true.,EUg(1,1,j),EUgder(1,1,j),
->      &   AEA(1,1,1),AEAderg(1,1,1),AEAderx(1,1,1,1,1,1))
-> C Following matrices are needed only for 6-th order cumulants
->         IF (wcorr6.gt.0.0d0 .or. (wturn6.gt.0.0d0 .and.
->      &     j.eq.i+4 .and. l.eq.i+3)) THEN
->         call kernel(aa1(1,1),aa2t(1,1),a_chuj_der(1,1,1,1,jj,i),
->      &   aa2tder(1,1,1,1),1,.true.,EUgC(1,1,j),EUgCder(1,1,j),
->      &   AECA(1,1,1),AECAderg(1,1,1),AECAderx(1,1,1,1,1,1))
->         call kernel(aa2(1,1),aa2t(1,1),a_chuj_der(1,1,1,1,jj,i),
->      &   aa2tder(1,1,1,1),2,.true.,Ug2DtEUg(1,1,j),
->      &   Ug2DtEUgder(1,1,1,j),ADtEA(1,1,1),ADtEAderg(1,1,1,1),
->      &   ADtEAderx(1,1,1,1,1,1))
->         call kernel(aa1(1,1),aa2t(1,1),a_chuj_der(1,1,1,1,jj,i),
->      &   aa2tder(1,1,1,1),2,.true.,DtUg2EUg(1,1,j),
->      &   DtUg2EUgder(1,1,1,j),ADtEA1(1,1,1),ADtEA1derg(1,1,1,1),
->      &   ADtEA1derx(1,1,1,1,1,1))
->         ENDIF
-> C End 6-th order cumulants
->         call transpose2(EUgder(1,1,k),auxmat(1,1))
->         call matmat2(auxmat(1,1),AEA(1,1,1),EAEAderg(1,1,1,1))
->         call transpose2(EUg(1,1,k),auxmat(1,1))
->         call matmat2(auxmat(1,1),AEA(1,1,1),EAEA(1,1,1))
->         call matmat2(auxmat(1,1),AEAderg(1,1,1),EAEAderg(1,1,2,1))
->         do iii=1,2
->           do kkk=1,5
->             do lll=1,3
->               call matmat2(auxmat(1,1),AEAderx(1,1,lll,kkk,iii,1),
->      &          EAEAderx(1,1,lll,kkk,iii,1))
->             enddo
->           enddo
->         enddo
-> C A2T kernel(i+1)T A1
->         call kernel(aa2t(1,1),aa1(1,1),aa2tder(1,1,1,1),
->      &   a_chuj_der(1,1,1,1,jj,i),1,.true.,EUg(1,1,k),EUgder(1,1,k),
->      &   AEA(1,1,2),AEAderg(1,1,2),AEAderx(1,1,1,1,1,2))
-> C Following matrices are needed only for 6-th order cumulants
->         IF (wcorr6.gt.0.0d0 .or. (wturn6.gt.0.0d0 .and.
->      &     j.eq.i+4 .and. l.eq.i+3)) THEN
->         call kernel(aa2t(1,1),aa1(1,1),aa2tder(1,1,1,1),
->      &   a_chuj_der(1,1,1,1,jj,i),1,.true.,EUgC(1,1,k),EUgCder(1,1,k),
->      &   AECA(1,1,2),AECAderg(1,1,2),AECAderx(1,1,1,1,1,2))
->         call kernel(aa2t(1,1),aa1(1,1),aa2tder(1,1,1,1),
->      &   a_chuj_der(1,1,1,1,jj,i),2,.true.,Ug2DtEUg(1,1,k),
->      &   Ug2DtEUgder(1,1,1,k),ADtEA(1,1,2),ADtEAderg(1,1,1,2),
->      &   ADtEAderx(1,1,1,1,1,2))
->         call kernel(aa2t(1,1),aa1(1,1),aa2tder(1,1,1,1),
->      &   a_chuj_der(1,1,1,1,jj,i),2,.true.,DtUg2EUg(1,1,k),
->      &   DtUg2EUgder(1,1,1,k),ADtEA1(1,1,2),ADtEA1derg(1,1,1,2),
->      &   ADtEA1derx(1,1,1,1,1,2))
->         ENDIF
-> C End 6-th order cumulants
->         call transpose2(EUgder(1,1,j),auxmat(1,1))
->         call matmat2(auxmat(1,1),AEA(1,1,1),EAEAderg(1,1,2,2))
->         call transpose2(EUg(1,1,j),auxmat(1,1))
->         call matmat2(auxmat(1,1),AEA(1,1,2),EAEA(1,1,2))
->         call matmat2(auxmat(1,1),AEAderg(1,1,2),EAEAderg(1,1,2,2))
->         do iii=1,2
->           do kkk=1,5
->             do lll=1,3
->               call matmat2(auxmat(1,1),AEAderx(1,1,lll,kkk,iii,2),
->      &          EAEAderx(1,1,lll,kkk,iii,2))
->             enddo
->           enddo
->         enddo
-> C AEAb1 and AEAb2
-> C Calculate the vectors and their derivatives in virtual-bond dihedral angles.
-> C They are needed only when the fifth- or the sixth-order cumulants are
-> C indluded.
->         IF (wcorr5.gt.0.0d0 .or. wcorr6.gt.0.0d0 .or.
->      &    (wturn6.gt.0.0d0 .and. j.eq.i+4 .and. l.eq.i+3)) THEN
->         call transpose2(AEA(1,1,1),auxmat(1,1))
->         call matvec2(auxmat(1,1),b1(1,iti),AEAb1(1,1,1))
->         call matvec2(auxmat(1,1),Ub2(1,i),AEAb2(1,1,1))
->         call matvec2(auxmat(1,1),Ub2der(1,i),AEAb2derg(1,2,1,1))
->         call transpose2(AEAderg(1,1,1),auxmat(1,1))
->         call matvec2(auxmat(1,1),b1(1,iti),AEAb1derg(1,1,1))
->         call matvec2(auxmat(1,1),Ub2(1,i),AEAb2derg(1,1,1,1))
->         call matvec2(AEA(1,1,1),b1(1,itk1),AEAb1(1,2,1))
->         call matvec2(AEAderg(1,1,1),b1(1,itk1),AEAb1derg(1,2,1))
->         call matvec2(AEA(1,1,1),Ub2(1,k+1),AEAb2(1,2,1))
->         call matvec2(AEAderg(1,1,1),Ub2(1,k+1),AEAb2derg(1,1,2,1))
->         call matvec2(AEA(1,1,1),Ub2der(1,k+1),AEAb2derg(1,2,2,1))
->         call transpose2(AEA(1,1,2),auxmat(1,1))
->         call matvec2(auxmat(1,1),b1(1,itj1),AEAb1(1,1,2))
->         call matvec2(auxmat(1,1),Ub2(1,l),AEAb2(1,1,2))
->         call matvec2(auxmat(1,1),Ub2der(1,l),AEAb2derg(1,2,1,2))
->         call transpose2(AEAderg(1,1,2),auxmat(1,1))
->         call matvec2(auxmat(1,1),b1(1,itl),AEAb1(1,1,2))
->         call matvec2(auxmat(1,1),Ub2(1,l),AEAb2derg(1,1,1,2))
->         call matvec2(AEA(1,1,2),b1(1,itj1),AEAb1(1,2,2))
->         call matvec2(AEAderg(1,1,2),b1(1,itj1),AEAb1derg(1,2,2))
->         call matvec2(AEA(1,1,2),Ub2(1,j),AEAb2(1,2,2))
->         call matvec2(AEAderg(1,1,2),Ub2(1,j),AEAb2derg(1,1,2,2))
->         call matvec2(AEA(1,1,2),Ub2der(1,j),AEAb2derg(1,2,2,2))
-> C Calculate the Cartesian derivatives of the vectors.
->         do iii=1,2
->           do kkk=1,5
->             do lll=1,3
->               call transpose2(AEAderx(1,1,lll,kkk,iii,1),auxmat(1,1))
->               call matvec2(auxmat(1,1),b1(1,iti),
->      &          AEAb1derx(1,lll,kkk,iii,1,1))
->               call matvec2(auxmat(1,1),Ub2(1,i),
->      &          AEAb2derx(1,lll,kkk,iii,1,1))
->               call matvec2(AEAderx(1,1,lll,kkk,iii,1),b1(1,itk1),
->      &          AEAb1derx(1,lll,kkk,iii,2,1))
->               call matvec2(AEAderx(1,1,lll,kkk,iii,1),Ub2(1,k+1),
->      &          AEAb2derx(1,lll,kkk,iii,2,1))
->               call transpose2(AEAderx(1,1,lll,kkk,iii,2),auxmat(1,1))
->               call matvec2(auxmat(1,1),b1(1,itl),
->      &          AEAb1derx(1,lll,kkk,iii,1,2))
->               call matvec2(auxmat(1,1),Ub2(1,l),
->      &          AEAb2derx(1,lll,kkk,iii,1,2))
->               call matvec2(AEAderx(1,1,lll,kkk,iii,2),b1(1,itj1),
->      &          AEAb1derx(1,lll,kkk,iii,2,2))
->               call matvec2(AEAderx(1,1,lll,kkk,iii,2),Ub2(1,j),
->      &          AEAb2derx(1,lll,kkk,iii,2,2))
->             enddo
->           enddo
->         enddo
->         ENDIF
-> C End vectors
->       endif
->       return
->       end
-> C---------------------------------------------------------------------------
->       subroutine kernel(aa1,aa2t,aa1derx,aa2tderx,nderg,transp,
->      &  KK,KKderg,AKA,AKAderg,AKAderx)
->       implicit none
->       integer nderg
->       logical transp
->       double precision aa1(2,2),aa2t(2,2),aa1derx(2,2,3,5),
->      &  aa2tderx(2,2,3,5),KK(2,2),KKderg(2,2,nderg),AKA(2,2),
->      &  AKAderg(2,2,nderg),AKAderx(2,2,3,5,2)
->       integer iii,kkk,lll
->       integer jjj,mmm
->       logical lprn
->       common /kutas/ lprn
->       call prodmat3(aa1(1,1),aa2t(1,1),KK(1,1),transp,AKA(1,1))
->       do iii=1,nderg 
->         call prodmat3(aa1(1,1),aa2t(1,1),KKderg(1,1,iii),transp,
->      &    AKAderg(1,1,iii))
->       enddo
-> cd      if (lprn) write (2,*) 'In kernel'
->       do kkk=1,5
-> cd        if (lprn) write (2,*) 'kkk=',kkk
->         do lll=1,3
->           call prodmat3(aa1derx(1,1,lll,kkk),aa2t(1,1),
->      &      KK(1,1),transp,AKAderx(1,1,lll,kkk,1))
-> cd          if (lprn) then
-> cd            write (2,*) 'lll=',lll
-> cd            write (2,*) 'iii=1'
-> cd            do jjj=1,2
-> cd              write (2,'(3(2f10.5),5x)') 
-> cd     &        (AKAderx(jjj,mmm,lll,kkk,1),mmm=1,2)
-> cd            enddo
-> cd          endif
->           call prodmat3(aa1(1,1),aa2tderx(1,1,lll,kkk),
->      &      KK(1,1),transp,AKAderx(1,1,lll,kkk,2))
-> cd          if (lprn) then
-> cd            write (2,*) 'lll=',lll
-> cd            write (2,*) 'iii=2'
-> cd            do jjj=1,2
-> cd              write (2,'(3(2f10.5),5x)') 
-> cd     &        (AKAderx(jjj,mmm,lll,kkk,2),mmm=1,2)
-> cd            enddo
-> cd          endif
->         enddo
->       enddo
->       return
->       end
-> C---------------------------------------------------------------------------
->       double precision function eello4(i,j,k,l,jj,kk)
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.CHAIN'
->       include 'COMMON.DERIV'
->       include 'COMMON.INTERACT'
->       include 'COMMON.CONTACTS'
->       include 'COMMON.TORSION'
->       include 'COMMON.VAR'
->       include 'COMMON.GEO'
->       double precision pizda(2,2),ggg1(3),ggg2(3)
-> cd      if (i.ne.1 .or. j.ne.5 .or. k.ne.2 .or.l.ne.4) then
-> cd        eello4=0.0d0
-> cd        return
-> cd      endif
-> cd      print *,'eello4:',i,j,k,l,jj,kk
-> cd      write (2,*) 'i',i,' j',j,' k',k,' l',l
-> cd      call checkint4(i,j,k,l,jj,kk,eel4_num)
-> cold      eij=facont_hb(jj,i)
-> cold      ekl=facont_hb(kk,k)
-> cold      ekont=eij*ekl
->       eel4=-EAEA(1,1,1)-EAEA(2,2,1)
-> cd      eel41=-EAEA(1,1,2)-EAEA(2,2,2)
->       gcorr_loc(k-1)=gcorr_loc(k-1)
->      &   -ekont*(EAEAderg(1,1,1,1)+EAEAderg(2,2,1,1))
->       if (l.eq.j+1) then
->         gcorr_loc(l-1)=gcorr_loc(l-1)
->      &     -ekont*(EAEAderg(1,1,2,1)+EAEAderg(2,2,2,1))
->       else
->         gcorr_loc(j-1)=gcorr_loc(j-1)
->      &     -ekont*(EAEAderg(1,1,2,1)+EAEAderg(2,2,2,1))
->       endif
->       do iii=1,2
->         do kkk=1,5
->           do lll=1,3
->             derx(lll,kkk,iii)=-EAEAderx(1,1,lll,kkk,iii,1)
->      &                        -EAEAderx(2,2,lll,kkk,iii,1)
-> cd            derx(lll,kkk,iii)=0.0d0
->           enddo
->         enddo
->       enddo
-> cd      gcorr_loc(l-1)=0.0d0
-> cd      gcorr_loc(j-1)=0.0d0
-> cd      gcorr_loc(k-1)=0.0d0
-> cd      eel4=1.0d0
-> cd      write (iout,*)'Contacts have occurred for peptide groups',
-> cd     &  i,j,' fcont:',eij,' eij',' and ',k,l,
-> cd     &  ' fcont ',ekl,' eel4=',eel4,' eel4_num',16*eel4_num
->       if (j.lt.nres-1) then
->         j1=j+1
->         j2=j-1
->       else
->         j1=j-1
->         j2=j-2
->       endif
->       if (l.lt.nres-1) then
->         l1=l+1
->         l2=l-1
->       else
->         l1=l-1
->         l2=l-2
->       endif
->       do ll=1,3
-> cold        ghalf=0.5d0*eel4*ekl*gacont_hbr(ll,jj,i)
->         ggg1(ll)=eel4*g_contij(ll,1)
->         ggg2(ll)=eel4*g_contij(ll,2)
->         ghalf=0.5d0*ggg1(ll)
-> cd        ghalf=0.0d0
->         gradcorr(ll,i)=gradcorr(ll,i)+ghalf+ekont*derx(ll,2,1)
->         gradcorr(ll,i+1)=gradcorr(ll,i+1)+ekont*derx(ll,3,1)
->         gradcorr(ll,j)=gradcorr(ll,j)+ghalf+ekont*derx(ll,4,1)
->         gradcorr(ll,j1)=gradcorr(ll,j1)+ekont*derx(ll,5,1)
-> cold        ghalf=0.5d0*eel4*eij*gacont_hbr(ll,kk,k)
->         ghalf=0.5d0*ggg2(ll)
-> cd        ghalf=0.0d0
->         gradcorr(ll,k)=gradcorr(ll,k)+ghalf+ekont*derx(ll,2,2)
->         gradcorr(ll,k+1)=gradcorr(ll,k+1)+ekont*derx(ll,3,2)
->         gradcorr(ll,l)=gradcorr(ll,l)+ghalf+ekont*derx(ll,4,2)
->         gradcorr(ll,l1)=gradcorr(ll,l1)+ekont*derx(ll,5,2)
->       enddo
-> cd      goto 1112
->       do m=i+1,j-1
->         do ll=1,3
-> cold          gradcorr(ll,m)=gradcorr(ll,m)+eel4*ekl*gacont_hbr(ll,jj,i)
->           gradcorr(ll,m)=gradcorr(ll,m)+ggg1(ll)
->         enddo
->       enddo
->       do m=k+1,l-1
->         do ll=1,3
-> cold          gradcorr(ll,m)=gradcorr(ll,m)+eel4*eij*gacont_hbr(ll,kk,k)
->           gradcorr(ll,m)=gradcorr(ll,m)+ggg2(ll)
->         enddo
->       enddo
-> 1112  continue
->       do m=i+2,j2
->         do ll=1,3
->           gradcorr(ll,m)=gradcorr(ll,m)+ekont*derx(ll,1,1)
->         enddo
->       enddo
->       do m=k+2,l2
->         do ll=1,3
->           gradcorr(ll,m)=gradcorr(ll,m)+ekont*derx(ll,1,2)
->         enddo
->       enddo 
-> cd      do iii=1,nres-3
-> cd        write (2,*) iii,gcorr_loc(iii)
-> cd      enddo
->       eello4=ekont*eel4
-> cd      write (2,*) 'ekont',ekont
-> cd      write (iout,*) 'eello4',ekont*eel4
->       return
->       end
-> C---------------------------------------------------------------------------
->       double precision function eello5(i,j,k,l,jj,kk)
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.CHAIN'
->       include 'COMMON.DERIV'
->       include 'COMMON.INTERACT'
->       include 'COMMON.CONTACTS'
->       include 'COMMON.TORSION'
->       include 'COMMON.VAR'
->       include 'COMMON.GEO'
->       double precision pizda(2,2),auxmat(2,2),auxmat1(2,2),vv(2)
->       double precision ggg1(3),ggg2(3)
-> CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-> C                                                                              C
-> C                            Parallel chains                                   C
-> C                                                                              C
-> C          o             o                   o             o                   C
-> C         /l\           / \             \   / \           / \   /              C
-> C        /   \         /   \             \ /   \         /   \ /               C
-> C       j| o |l1       | o |           o| o |         | o |o                C
-> C     \  |/k\|         |/ \|  /            |/ \|         |/ \|                 C
-> C      \i/   \         /   \ /             /   \         /   \                 C
-> C       o    k1             o                                                  C
-> C         (I)          (II)                (III)          (IV)                 C
-> C                                                                              C
-> C      eello5_1        eello5_2            eello5_3       eello5_4             C
-> C                                                                              C
-> C                            Antiparallel chains                               C
-> C                                                                              C
-> C          o             o                   o             o                   C
-> C         /j\           / \             \   / \           / \   /              C
-> C        /   \         /   \             \ /   \         /   \ /               C
-> C      j1| o |l        | o |           o| o |         | o |o                C
-> C     \  |/k\|         |/ \|  /            |/ \|         |/ \|                 C
-> C      \i/   \         /   \ /             /   \         /   \                 C
-> C       o     k1            o                                                  C
-> C         (I)          (II)                (III)          (IV)                 C
-> C                                                                              C
-> C      eello5_1        eello5_2            eello5_3       eello5_4             C
-> C                                                                              C
-> C o denotes a local interaction, vertical lines an electrostatic interaction.  C
-> C                                                                              C
-> CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-> cd      if (i.ne.2 .or. j.ne.6 .or. k.ne.3 .or. l.ne.5) then
-> cd        eello5=0.0d0
-> cd        return
-> cd      endif
-> cd      write (iout,*)
-> cd     &   'EELLO5: Contacts have occurred for peptide groups',i,j,
-> cd     &   ' and',k,l
->       itk=itortyp(itype(k))
->       itl=itortyp(itype(l))
->       itj=itortyp(itype(j))
->       eello5_1=0.0d0
->       eello5_2=0.0d0
->       eello5_3=0.0d0
->       eello5_4=0.0d0
-> cd      call checkint5(i,j,k,l,jj,kk,eel5_1_num,eel5_2_num,
-> cd     &   eel5_3_num,eel5_4_num)
->       do iii=1,2
->         do kkk=1,5
->           do lll=1,3
->             derx(lll,kkk,iii)=0.0d0
->           enddo
->         enddo
->       enddo
-> cd      eij=facont_hb(jj,i)
-> cd      ekl=facont_hb(kk,k)
-> cd      ekont=eij*ekl
-> cd      write (iout,*)'Contacts have occurred for peptide groups',
-> cd     &  i,j,' fcont:',eij,' eij',' and ',k,l
-> cd      goto 1111
-> C Contribution from the graph I.
-> cd      write (2,*) 'AEA  ',AEA(1,1,1),AEA(2,1,1),AEA(1,2,1),AEA(2,2,1)
-> cd      write (2,*) 'AEAb2',AEAb2(1,1,1),AEAb2(2,1,1)
->       call transpose2(EUg(1,1,k),auxmat(1,1))
->       call matmat2(AEA(1,1,1),auxmat(1,1),pizda(1,1))
->       vv(1)=pizda(1,1)-pizda(2,2)
->       vv(2)=pizda(1,2)+pizda(2,1)
->       eello5_1=scalar2(AEAb2(1,1,1),Ub2(1,k))
->      & +0.5d0*scalar2(vv(1),Dtobr2(1,i))
-> C Explicit gradient in virtual-dihedral angles.
->       if (i.gt.1) g_corr5_loc(i-1)=g_corr5_loc(i-1)
->      & +ekont*(scalar2(AEAb2derg(1,2,1,1),Ub2(1,k))
->      & +0.5d0*scalar2(vv(1),Dtobr2der(1,i)))
->       call transpose2(EUgder(1,1,k),auxmat1(1,1))
->       call matmat2(AEA(1,1,1),auxmat1(1,1),pizda(1,1))
->       vv(1)=pizda(1,1)-pizda(2,2)
->       vv(2)=pizda(1,2)+pizda(2,1)
->       g_corr5_loc(k-1)=g_corr5_loc(k-1)
->      & +ekont*(scalar2(AEAb2(1,1,1),Ub2der(1,k))
->      & +0.5d0*scalar2(vv(1),Dtobr2(1,i)))
->       call matmat2(AEAderg(1,1,1),auxmat(1,1),pizda(1,1))
->       vv(1)=pizda(1,1)-pizda(2,2)
->       vv(2)=pizda(1,2)+pizda(2,1)
->       if (l.eq.j+1) then
->         if (l.lt.nres-1) g_corr5_loc(l-1)=g_corr5_loc(l-1)
->      &   +ekont*(scalar2(AEAb2derg(1,1,1,1),Ub2(1,k))
->      &   +0.5d0*scalar2(vv(1),Dtobr2(1,i)))
->       else
->         if (j.lt.nres-1) g_corr5_loc(j-1)=g_corr5_loc(j-1)
->      &   +ekont*(scalar2(AEAb2derg(1,1,1,1),Ub2(1,k))
->      &   +0.5d0*scalar2(vv(1),Dtobr2(1,i)))
->       endif 
-> C Cartesian gradient
->       do iii=1,2
->         do kkk=1,5
->           do lll=1,3
->             call matmat2(AEAderx(1,1,lll,kkk,iii,1),auxmat(1,1),
->      &        pizda(1,1))
->             vv(1)=pizda(1,1)-pizda(2,2)
->             vv(2)=pizda(1,2)+pizda(2,1)
->             derx(lll,kkk,iii)=derx(lll,kkk,iii)
->      &       +scalar2(AEAb2derx(1,lll,kkk,iii,1,1),Ub2(1,k))
->      &       +0.5d0*scalar2(vv(1),Dtobr2(1,i))
->           enddo
->         enddo
->       enddo
-> c      goto 1112
-> c1111  continue
-> C Contribution from graph II 
->       call transpose2(EE(1,1,itk),auxmat(1,1))
->       call matmat2(auxmat(1,1),AEA(1,1,1),pizda(1,1))
->       vv(1)=pizda(1,1)+pizda(2,2)
->       vv(2)=pizda(2,1)-pizda(1,2)
->       eello5_2=scalar2(AEAb1(1,2,1),b1(1,itk))
->      & -0.5d0*scalar2(vv(1),Ctobr(1,k))
-> C Explicit gradient in virtual-dihedral angles.
->       g_corr5_loc(k-1)=g_corr5_loc(k-1)
->      & -0.5d0*ekont*scalar2(vv(1),Ctobrder(1,k))
->       call matmat2(auxmat(1,1),AEAderg(1,1,1),pizda(1,1))
->       vv(1)=pizda(1,1)+pizda(2,2)
->       vv(2)=pizda(2,1)-pizda(1,2)
->       if (l.eq.j+1) then
->         g_corr5_loc(l-1)=g_corr5_loc(l-1)
->      &   +ekont*(scalar2(AEAb1derg(1,2,1),b1(1,itk))
->      &   -0.5d0*scalar2(vv(1),Ctobr(1,k)))
->       else
->         g_corr5_loc(j-1)=g_corr5_loc(j-1)
->      &   +ekont*(scalar2(AEAb1derg(1,2,1),b1(1,itk))
->      &   -0.5d0*scalar2(vv(1),Ctobr(1,k)))
->       endif
-> C Cartesian gradient
->       do iii=1,2
->         do kkk=1,5
->           do lll=1,3
->             call matmat2(auxmat(1,1),AEAderx(1,1,lll,kkk,iii,1),
->      &        pizda(1,1))
->             vv(1)=pizda(1,1)+pizda(2,2)
->             vv(2)=pizda(2,1)-pizda(1,2)
->             derx(lll,kkk,iii)=derx(lll,kkk,iii)
->      &       +scalar2(AEAb1derx(1,lll,kkk,iii,2,1),b1(1,itk))
->      &       -0.5d0*scalar2(vv(1),Ctobr(1,k))
->           enddo
->         enddo
->       enddo
-> cd      goto 1112
-> cd1111  continue
->       if (l.eq.j+1) then
-> cd        goto 1110
-> C Parallel orientation
-> C Contribution from graph III
->         call transpose2(EUg(1,1,l),auxmat(1,1))
->         call matmat2(AEA(1,1,2),auxmat(1,1),pizda(1,1))
->         vv(1)=pizda(1,1)-pizda(2,2)
->         vv(2)=pizda(1,2)+pizda(2,1)
->         eello5_3=scalar2(AEAb2(1,1,2),Ub2(1,l))
->      &   +0.5d0*scalar2(vv(1),Dtobr2(1,j))
-> C Explicit gradient in virtual-dihedral angles.
->         g_corr5_loc(j-1)=g_corr5_loc(j-1)
->      &   +ekont*(scalar2(AEAb2derg(1,2,1,2),Ub2(1,l))
->      &   +0.5d0*scalar2(vv(1),Dtobr2der(1,j)))
->         call matmat2(AEAderg(1,1,2),auxmat(1,1),pizda(1,1))
->         vv(1)=pizda(1,1)-pizda(2,2)
->         vv(2)=pizda(1,2)+pizda(2,1)
->         g_corr5_loc(k-1)=g_corr5_loc(k-1)
->      &   +ekont*(scalar2(AEAb2derg(1,1,1,2),Ub2(1,l))
->      &   +0.5d0*scalar2(vv(1),Dtobr2(1,j)))
->         call transpose2(EUgder(1,1,l),auxmat1(1,1))
->         call matmat2(AEA(1,1,2),auxmat1(1,1),pizda(1,1))
->         vv(1)=pizda(1,1)-pizda(2,2)
->         vv(2)=pizda(1,2)+pizda(2,1)
->         g_corr5_loc(l-1)=g_corr5_loc(l-1)
->      &   +ekont*(scalar2(AEAb2(1,1,2),Ub2der(1,l))
->      &   +0.5d0*scalar2(vv(1),Dtobr2(1,j)))
-> C Cartesian gradient
->         do iii=1,2
->           do kkk=1,5
->             do lll=1,3
->               call matmat2(AEAderx(1,1,lll,kkk,iii,2),auxmat(1,1),
->      &          pizda(1,1))
->               vv(1)=pizda(1,1)-pizda(2,2)
->               vv(2)=pizda(1,2)+pizda(2,1)
->               derx(lll,kkk,iii)=derx(lll,kkk,iii)
->      &         +scalar2(AEAb2derx(1,lll,kkk,iii,1,2),Ub2(1,l))
->      &         +0.5d0*scalar2(vv(1),Dtobr2(1,j))
->             enddo
->           enddo
->         enddo
-> cd        goto 1112
-> C Contribution from graph IV
-> cd1110    continue
->         call transpose2(EE(1,1,itl),auxmat(1,1))
->         call matmat2(auxmat(1,1),AEA(1,1,2),pizda(1,1))
->         vv(1)=pizda(1,1)+pizda(2,2)
->         vv(2)=pizda(2,1)-pizda(1,2)
->         eello5_4=scalar2(AEAb1(1,2,2),b1(1,itl))
->      &   -0.5d0*scalar2(vv(1),Ctobr(1,l))
-> C Explicit gradient in virtual-dihedral angles.
->         g_corr5_loc(l-1)=g_corr5_loc(l-1)
->      &   -0.5d0*ekont*scalar2(vv(1),Ctobrder(1,l))
->         call matmat2(auxmat(1,1),AEAderg(1,1,2),pizda(1,1))
->         vv(1)=pizda(1,1)+pizda(2,2)
->         vv(2)=pizda(2,1)-pizda(1,2)
->         g_corr5_loc(k-1)=g_corr5_loc(k-1)
->      &   +ekont*(scalar2(AEAb1derg(1,2,2),b1(1,itl))
->      &   -0.5d0*scalar2(vv(1),Ctobr(1,l)))
-> C Cartesian gradient
->         do iii=1,2
->           do kkk=1,5
->             do lll=1,3
->               call matmat2(auxmat(1,1),AEAderx(1,1,lll,kkk,iii,2),
->      &          pizda(1,1))
->               vv(1)=pizda(1,1)+pizda(2,2)
->               vv(2)=pizda(2,1)-pizda(1,2)
->               derx(lll,kkk,iii)=derx(lll,kkk,iii)
->      &         +scalar2(AEAb1derx(1,lll,kkk,iii,2,2),b1(1,itl))
->      &         -0.5d0*scalar2(vv(1),Ctobr(1,l))
->             enddo
->           enddo
->         enddo
->       else
-> C Antiparallel orientation
-> C Contribution from graph III
-> c        goto 1110
->         call transpose2(EUg(1,1,j),auxmat(1,1))
->         call matmat2(AEA(1,1,2),auxmat(1,1),pizda(1,1))
->         vv(1)=pizda(1,1)-pizda(2,2)
->         vv(2)=pizda(1,2)+pizda(2,1)
->         eello5_3=scalar2(AEAb2(1,1,2),Ub2(1,j))
->      &   +0.5d0*scalar2(vv(1),Dtobr2(1,l))
-> C Explicit gradient in virtual-dihedral angles.
->         g_corr5_loc(l-1)=g_corr5_loc(l-1)
->      &   +ekont*(scalar2(AEAb2derg(1,2,1,2),Ub2(1,j))
->      &   +0.5d0*scalar2(vv(1),Dtobr2der(1,l)))
->         call matmat2(AEAderg(1,1,2),auxmat(1,1),pizda(1,1))
->         vv(1)=pizda(1,1)-pizda(2,2)
->         vv(2)=pizda(1,2)+pizda(2,1)
->         g_corr5_loc(k-1)=g_corr5_loc(k-1)
->      &   +ekont*(scalar2(AEAb2derg(1,1,1,2),Ub2(1,j))
->      &   +0.5d0*scalar2(vv(1),Dtobr2(1,l)))
->         call transpose2(EUgder(1,1,j),auxmat1(1,1))
->         call matmat2(AEA(1,1,2),auxmat1(1,1),pizda(1,1))
->         vv(1)=pizda(1,1)-pizda(2,2)
->         vv(2)=pizda(1,2)+pizda(2,1)
->         g_corr5_loc(j-1)=g_corr5_loc(j-1)
->      &   +ekont*(scalar2(AEAb2(1,1,2),Ub2der(1,j))
->      &   +0.5d0*scalar2(vv(1),Dtobr2(1,l)))
-> C Cartesian gradient
->         do iii=1,2
->           do kkk=1,5
->             do lll=1,3
->               call matmat2(AEAderx(1,1,lll,kkk,iii,2),auxmat(1,1),
->      &          pizda(1,1))
->               vv(1)=pizda(1,1)-pizda(2,2)
->               vv(2)=pizda(1,2)+pizda(2,1)
->               derx(lll,kkk,3-iii)=derx(lll,kkk,3-iii)
->      &         +scalar2(AEAb2derx(1,lll,kkk,iii,1,2),Ub2(1,j))
->      &         +0.5d0*scalar2(vv(1),Dtobr2(1,l))
->             enddo
->           enddo
->         enddo
-> cd        goto 1112
-> C Contribution from graph IV
-> 1110    continue
->         call transpose2(EE(1,1,itj),auxmat(1,1))
->         call matmat2(auxmat(1,1),AEA(1,1,2),pizda(1,1))
->         vv(1)=pizda(1,1)+pizda(2,2)
->         vv(2)=pizda(2,1)-pizda(1,2)
->         eello5_4=scalar2(AEAb1(1,2,2),b1(1,itj))
->      &   -0.5d0*scalar2(vv(1),Ctobr(1,j))
-> C Explicit gradient in virtual-dihedral angles.
->         g_corr5_loc(j-1)=g_corr5_loc(j-1)
->      &   -0.5d0*ekont*scalar2(vv(1),Ctobrder(1,j))
->         call matmat2(auxmat(1,1),AEAderg(1,1,2),pizda(1,1))
->         vv(1)=pizda(1,1)+pizda(2,2)
->         vv(2)=pizda(2,1)-pizda(1,2)
->         g_corr5_loc(k-1)=g_corr5_loc(k-1)
->      &   +ekont*(scalar2(AEAb1derg(1,2,2),b1(1,itj))
->      &   -0.5d0*scalar2(vv(1),Ctobr(1,j)))
-> C Cartesian gradient
->         do iii=1,2
->           do kkk=1,5
->             do lll=1,3
->               call matmat2(auxmat(1,1),AEAderx(1,1,lll,kkk,iii,2),
->      &          pizda(1,1))
->               vv(1)=pizda(1,1)+pizda(2,2)
->               vv(2)=pizda(2,1)-pizda(1,2)
->               derx(lll,kkk,3-iii)=derx(lll,kkk,3-iii)
->      &         +scalar2(AEAb1derx(1,lll,kkk,iii,2,2),b1(1,itj))
->      &         -0.5d0*scalar2(vv(1),Ctobr(1,j))
->             enddo
->           enddo
->         enddo
->       endif
-> 1112  continue
->       eel5=eello5_1+eello5_2+eello5_3+eello5_4
-> cd      if (i.eq.2 .and. j.eq.8 .and. k.eq.3 .and. l.eq.7) then
-> cd        write (2,*) 'ijkl',i,j,k,l
-> cd        write (2,*) 'eello5_1',eello5_1,' eello5_2',eello5_2,
-> cd     &     ' eello5_3',eello5_3,' eello5_4',eello5_4
-> cd      endif
-> cd      write(iout,*) 'eello5_1',eello5_1,' eel5_1_num',16*eel5_1_num
-> cd      write(iout,*) 'eello5_2',eello5_2,' eel5_2_num',16*eel5_2_num
-> cd      write(iout,*) 'eello5_3',eello5_3,' eel5_3_num',16*eel5_3_num
-> cd      write(iout,*) 'eello5_4',eello5_4,' eel5_4_num',16*eel5_4_num
->       if (j.lt.nres-1) then
->         j1=j+1
->         j2=j-1
->       else
->         j1=j-1
->         j2=j-2
->       endif
->       if (l.lt.nres-1) then
->         l1=l+1
->         l2=l-1
->       else
->         l1=l-1
->         l2=l-2
->       endif
-> cd      eij=1.0d0
-> cd      ekl=1.0d0
-> cd      ekont=1.0d0
-> cd      write (2,*) 'eij',eij,' ekl',ekl,' ekont',ekont
->       do ll=1,3
->         ggg1(ll)=eel5*g_contij(ll,1)
->         ggg2(ll)=eel5*g_contij(ll,2)
-> cold        ghalf=0.5d0*eel5*ekl*gacont_hbr(ll,jj,i)
->         ghalf=0.5d0*ggg1(ll)
-> cd        ghalf=0.0d0
->         gradcorr5(ll,i)=gradcorr5(ll,i)+ghalf+ekont*derx(ll,2,1)
->         gradcorr5(ll,i+1)=gradcorr5(ll,i+1)+ekont*derx(ll,3,1)
->         gradcorr5(ll,j)=gradcorr5(ll,j)+ghalf+ekont*derx(ll,4,1)
->         gradcorr5(ll,j1)=gradcorr5(ll,j1)+ekont*derx(ll,5,1)
-> cold        ghalf=0.5d0*eel5*eij*gacont_hbr(ll,kk,k)
->         ghalf=0.5d0*ggg2(ll)
-> cd        ghalf=0.0d0
->         gradcorr5(ll,k)=gradcorr5(ll,k)+ghalf+ekont*derx(ll,2,2)
->         gradcorr5(ll,k+1)=gradcorr5(ll,k+1)+ekont*derx(ll,3,2)
->         gradcorr5(ll,l)=gradcorr5(ll,l)+ghalf+ekont*derx(ll,4,2)
->         gradcorr5(ll,l1)=gradcorr5(ll,l1)+ekont*derx(ll,5,2)
->       enddo
-> cd      goto 1112
->       do m=i+1,j-1
->         do ll=1,3
-> cold          gradcorr5(ll,m)=gradcorr5(ll,m)+eel5*ekl*gacont_hbr(ll,jj,i)
->           gradcorr5(ll,m)=gradcorr5(ll,m)+ggg1(ll)
->         enddo
->       enddo
->       do m=k+1,l-1
->         do ll=1,3
-> cold          gradcorr5(ll,m)=gradcorr5(ll,m)+eel5*eij*gacont_hbr(ll,kk,k)
->           gradcorr5(ll,m)=gradcorr5(ll,m)+ggg2(ll)
->         enddo
->       enddo
-> c1112  continue
->       do m=i+2,j2
->         do ll=1,3
->           gradcorr5(ll,m)=gradcorr5(ll,m)+ekont*derx(ll,1,1)
->         enddo
->       enddo
->       do m=k+2,l2
->         do ll=1,3
->           gradcorr5(ll,m)=gradcorr5(ll,m)+ekont*derx(ll,1,2)
->         enddo
->       enddo 
-> cd      do iii=1,nres-3
-> cd        write (2,*) iii,g_corr5_loc(iii)
-> cd      enddo
->       eello5=ekont*eel5
-> cd      write (2,*) 'ekont',ekont
-> cd      write (iout,*) 'eello5',ekont*eel5
->       return
->       end
-> c--------------------------------------------------------------------------
->       double precision function eello6(i,j,k,l,jj,kk)
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.CHAIN'
->       include 'COMMON.DERIV'
->       include 'COMMON.INTERACT'
->       include 'COMMON.CONTACTS'
->       include 'COMMON.TORSION'
->       include 'COMMON.VAR'
->       include 'COMMON.GEO'
->       include 'COMMON.FFIELD'
->       double precision ggg1(3),ggg2(3)
-> cd      if (i.ne.1 .or. j.ne.3 .or. k.ne.2 .or. l.ne.4) then
-> cd        eello6=0.0d0
-> cd        return
-> cd      endif
-> cd      write (iout,*)
-> cd     &   'EELLO6: Contacts have occurred for peptide groups',i,j,
-> cd     &   ' and',k,l
->       eello6_1=0.0d0
->       eello6_2=0.0d0
->       eello6_3=0.0d0
->       eello6_4=0.0d0
->       eello6_5=0.0d0
->       eello6_6=0.0d0
-> cd      call checkint6(i,j,k,l,jj,kk,eel6_1_num,eel6_2_num,
-> cd     &   eel6_3_num,eel6_4_num,eel6_5_num,eel6_6_num)
->       do iii=1,2
->         do kkk=1,5
->           do lll=1,3
->             derx(lll,kkk,iii)=0.0d0
->           enddo
->         enddo
->       enddo
-> cd      eij=facont_hb(jj,i)
-> cd      ekl=facont_hb(kk,k)
-> cd      ekont=eij*ekl
-> cd      eij=1.0d0
-> cd      ekl=1.0d0
-> cd      ekont=1.0d0
->       if (l.eq.j+1) then
->         eello6_1=eello6_graph1(i,j,k,l,1,.false.)
->         eello6_2=eello6_graph1(j,i,l,k,2,.false.)
->         eello6_3=eello6_graph2(i,j,k,l,jj,kk,.false.)
->         eello6_4=eello6_graph4(i,j,k,l,jj,kk,1,.false.)
->         eello6_5=eello6_graph4(j,i,l,k,jj,kk,2,.false.)
->         eello6_6=eello6_graph3(i,j,k,l,jj,kk,.false.)
->       else
->         eello6_1=eello6_graph1(i,j,k,l,1,.false.)
->         eello6_2=eello6_graph1(l,k,j,i,2,.true.)
->         eello6_3=eello6_graph2(i,l,k,j,jj,kk,.true.)
->         eello6_4=eello6_graph4(i,j,k,l,jj,kk,1,.false.)
->         if (wturn6.eq.0.0d0 .or. j.ne.i+4) then
->           eello6_5=eello6_graph4(l,k,j,i,kk,jj,2,.true.)
->         else
->           eello6_5=0.0d0
->         endif
->         eello6_6=eello6_graph3(i,l,k,j,jj,kk,.true.)
->       endif
-> C If turn contributions are considered, they will be handled separately.
->       eel6=eello6_1+eello6_2+eello6_3+eello6_4+eello6_5+eello6_6
-> cd      write(iout,*) 'eello6_1',eello6_1,' eel6_1_num',16*eel6_1_num
-> cd      write(iout,*) 'eello6_2',eello6_2,' eel6_2_num',16*eel6_2_num
-> cd      write(iout,*) 'eello6_3',eello6_3,' eel6_3_num',16*eel6_3_num
-> cd      write(iout,*) 'eello6_4',eello6_4,' eel6_4_num',16*eel6_4_num
-> cd      write(iout,*) 'eello6_5',eello6_5,' eel6_5_num',16*eel6_5_num
-> cd      write(iout,*) 'eello6_6',eello6_6,' eel6_6_num',16*eel6_6_num
-> cd      goto 1112
->       if (j.lt.nres-1) then
->         j1=j+1
->         j2=j-1
->       else
->         j1=j-1
->         j2=j-2
->       endif
->       if (l.lt.nres-1) then
->         l1=l+1
->         l2=l-1
->       else
->         l1=l-1
->         l2=l-2
->       endif
->       do ll=1,3
->         ggg1(ll)=eel6*g_contij(ll,1)
->         ggg2(ll)=eel6*g_contij(ll,2)
-> cold        ghalf=0.5d0*eel6*ekl*gacont_hbr(ll,jj,i)
->         ghalf=0.5d0*ggg1(ll)
-> cd        ghalf=0.0d0
->         gradcorr6(ll,i)=gradcorr6(ll,i)+ghalf+ekont*derx(ll,2,1)
->         gradcorr6(ll,i+1)=gradcorr6(ll,i+1)+ekont*derx(ll,3,1)
->         gradcorr6(ll,j)=gradcorr6(ll,j)+ghalf+ekont*derx(ll,4,1)
->         gradcorr6(ll,j1)=gradcorr6(ll,j1)+ekont*derx(ll,5,1)
->         ghalf=0.5d0*ggg2(ll)
-> cold        ghalf=0.5d0*eel6*eij*gacont_hbr(ll,kk,k)
-> cd        ghalf=0.0d0
->         gradcorr6(ll,k)=gradcorr6(ll,k)+ghalf+ekont*derx(ll,2,2)
->         gradcorr6(ll,k+1)=gradcorr6(ll,k+1)+ekont*derx(ll,3,2)
->         gradcorr6(ll,l)=gradcorr6(ll,l)+ghalf+ekont*derx(ll,4,2)
->         gradcorr6(ll,l1)=gradcorr6(ll,l1)+ekont*derx(ll,5,2)
->       enddo
-> cd      goto 1112
->       do m=i+1,j-1
->         do ll=1,3
-> cold          gradcorr6(ll,m)=gradcorr6(ll,m)+eel6*ekl*gacont_hbr(ll,jj,i)
->           gradcorr6(ll,m)=gradcorr6(ll,m)+ggg1(ll)
->         enddo
->       enddo
->       do m=k+1,l-1
->         do ll=1,3
-> cold          gradcorr6(ll,m)=gradcorr6(ll,m)+eel6*eij*gacont_hbr(ll,kk,k)
->           gradcorr6(ll,m)=gradcorr6(ll,m)+ggg2(ll)
->         enddo
->       enddo
-> 1112  continue
->       do m=i+2,j2
->         do ll=1,3
->           gradcorr6(ll,m)=gradcorr6(ll,m)+ekont*derx(ll,1,1)
->         enddo
->       enddo
->       do m=k+2,l2
->         do ll=1,3
->           gradcorr6(ll,m)=gradcorr6(ll,m)+ekont*derx(ll,1,2)
->         enddo
->       enddo 
-> cd      do iii=1,nres-3
-> cd        write (2,*) iii,g_corr6_loc(iii)
-> cd      enddo
->       eello6=ekont*eel6
-> cd      write (2,*) 'ekont',ekont
-> cd      write (iout,*) 'eello6',ekont*eel6
->       return
->       end
-> c--------------------------------------------------------------------------
->       double precision function eello6_graph1(i,j,k,l,imat,swap)
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.CHAIN'
->       include 'COMMON.DERIV'
->       include 'COMMON.INTERACT'
->       include 'COMMON.CONTACTS'
->       include 'COMMON.TORSION'
->       include 'COMMON.VAR'
->       include 'COMMON.GEO'
->       double precision vv(2),vv1(2),pizda(2,2),auxmat(2,2),pizda1(2,2)
->       logical swap
->       logical lprn
->       common /kutas/ lprn
-> CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-> C                                              
-> C      Parallel       Antiparallel
-> C                                             
-> C          o             o         
-> C         /l\           /j\       
-> C        /   \         /   \      
-> C       /| o |         | o |\     
-> C     \ j|/k\|  /   \  |/k\|l /   
-> C      \ /   \ /     \ /   \ /    
-> C       o     o       o     o                
-> C       i             i                     
-> C
-> CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
->       itk=itortyp(itype(k))
->       s1= scalar2(AEAb1(1,2,imat),CUgb2(1,i))
->       s2=-scalar2(AEAb2(1,1,imat),Ug2Db1t(1,k))
->       s3= scalar2(AEAb2(1,1,imat),CUgb2(1,k))
->       call transpose2(EUgC(1,1,k),auxmat(1,1))
->       call matmat2(AEA(1,1,imat),auxmat(1,1),pizda1(1,1))
->       vv1(1)=pizda1(1,1)-pizda1(2,2)
->       vv1(2)=pizda1(1,2)+pizda1(2,1)
->       s4=0.5d0*scalar2(vv1(1),Dtobr2(1,i))
->       vv(1)=AEAb1(1,2,imat)*b1(1,itk)-AEAb1(2,2,imat)*b1(2,itk)
->       vv(2)=AEAb1(1,2,imat)*b1(2,itk)+AEAb1(2,2,imat)*b1(1,itk)
->       s5=scalar2(vv(1),Dtobr2(1,i))
-> cd      write (2,*) 's1',s1,' s2',s2,' s3',s3,' s4', s4,' s5',s5
->       eello6_graph1=-0.5d0*(s1+s2+s3+s4+s5)
->       if (i.gt.1) g_corr6_loc(i-1)=g_corr6_loc(i-1)
->      & -0.5d0*ekont*(scalar2(AEAb1(1,2,imat),CUgb2der(1,i))
->      & -scalar2(AEAb2derg(1,2,1,imat),Ug2Db1t(1,k))
->      & +scalar2(AEAb2derg(1,2,1,imat),CUgb2(1,k))
->      & +0.5d0*scalar2(vv1(1),Dtobr2der(1,i))
->      & +scalar2(vv(1),Dtobr2der(1,i)))
->       call matmat2(AEAderg(1,1,imat),auxmat(1,1),pizda1(1,1))
->       vv1(1)=pizda1(1,1)-pizda1(2,2)
->       vv1(2)=pizda1(1,2)+pizda1(2,1)
->       vv(1)=AEAb1derg(1,2,imat)*b1(1,itk)-AEAb1derg(2,2,imat)*b1(2,itk)
->       vv(2)=AEAb1derg(1,2,imat)*b1(2,itk)+AEAb1derg(2,2,imat)*b1(1,itk)
->       if (l.eq.j+1) then
->         g_corr6_loc(l-1)=g_corr6_loc(l-1)
->      & +ekont*(-0.5d0*(scalar2(AEAb1derg(1,2,imat),CUgb2(1,i))
->      & -scalar2(AEAb2derg(1,1,1,imat),Ug2Db1t(1,k))
->      & +scalar2(AEAb2derg(1,1,1,imat),CUgb2(1,k))
->      & +0.5d0*scalar2(vv1(1),Dtobr2(1,i))+scalar2(vv(1),Dtobr2(1,i))))
->       else
->         g_corr6_loc(j-1)=g_corr6_loc(j-1)
->      & +ekont*(-0.5d0*(scalar2(AEAb1derg(1,2,imat),CUgb2(1,i))
->      & -scalar2(AEAb2derg(1,1,1,imat),Ug2Db1t(1,k))
->      & +scalar2(AEAb2derg(1,1,1,imat),CUgb2(1,k))
->      & +0.5d0*scalar2(vv1(1),Dtobr2(1,i))+scalar2(vv(1),Dtobr2(1,i))))
->       endif
->       call transpose2(EUgCder(1,1,k),auxmat(1,1))
->       call matmat2(AEA(1,1,imat),auxmat(1,1),pizda1(1,1))
->       vv1(1)=pizda1(1,1)-pizda1(2,2)
->       vv1(2)=pizda1(1,2)+pizda1(2,1)
->       if (k.gt.1) g_corr6_loc(k-1)=g_corr6_loc(k-1)
->      & +ekont*(-0.5d0*(-scalar2(AEAb2(1,1,imat),Ug2Db1tder(1,k))
->      & +scalar2(AEAb2(1,1,imat),CUgb2der(1,k))
->      & +0.5d0*scalar2(vv1(1),Dtobr2(1,i))))
->       do iii=1,2
->         if (swap) then
->           ind=3-iii
->         else
->           ind=iii
->         endif
->         do kkk=1,5
->           do lll=1,3
->             s1= scalar2(AEAb1derx(1,lll,kkk,iii,2,imat),CUgb2(1,i))
->             s2=-scalar2(AEAb2derx(1,lll,kkk,iii,1,imat),Ug2Db1t(1,k))
->             s3= scalar2(AEAb2derx(1,lll,kkk,iii,1,imat),CUgb2(1,k))
->             call transpose2(EUgC(1,1,k),auxmat(1,1))
->             call matmat2(AEAderx(1,1,lll,kkk,iii,imat),auxmat(1,1),
->      &        pizda1(1,1))
->             vv1(1)=pizda1(1,1)-pizda1(2,2)
->             vv1(2)=pizda1(1,2)+pizda1(2,1)
->             s4=0.5d0*scalar2(vv1(1),Dtobr2(1,i))
->             vv(1)=AEAb1derx(1,lll,kkk,iii,2,imat)*b1(1,itk)
->      &       -AEAb1derx(2,lll,kkk,iii,2,imat)*b1(2,itk)
->             vv(2)=AEAb1derx(1,lll,kkk,iii,2,imat)*b1(2,itk)
->      &       +AEAb1derx(2,lll,kkk,iii,2,imat)*b1(1,itk)
->             s5=scalar2(vv(1),Dtobr2(1,i))
->             derx(lll,kkk,ind)=derx(lll,kkk,ind)-0.5d0*(s1+s2+s3+s4+s5)
->           enddo
->         enddo
->       enddo
->       return
->       end
-> c----------------------------------------------------------------------------
->       double precision function eello6_graph2(i,j,k,l,jj,kk,swap)
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.CHAIN'
->       include 'COMMON.DERIV'
->       include 'COMMON.INTERACT'
->       include 'COMMON.CONTACTS'
->       include 'COMMON.TORSION'
->       include 'COMMON.VAR'
->       include 'COMMON.GEO'
->       logical swap
->       double precision vv(2),pizda(2,2),auxmat(2,2),auxvec(2),
->      & auxvec1(2),auxvec2(1),auxmat1(2,2)
->       logical lprn
->       common /kutas/ lprn
-> CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-> C                                              
-> C      Parallel       Antiparallel
-> C                                             
-> C          o             o         
-> C     \   /l\           /j\   /   
-> C      \ /   \         /   \ /    
-> C       o| o |         | o |o     
-> C     \ j|/k\|      \  |/k\|l     
-> C      \ /   \       \ /   \      
-> C       o             o                      
-> C       i             i                     
-> C
-> CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-> cd      write (2,*) 'eello6_graph2: i,',i,' j',j,' k',k,' l',l
-> C AL 7/4/01 s1 would occur in the sixth-order moment, 
-> C           but not in a cluster cumulant
-> #ifdef MOMENT
->       s1=dip(1,jj,i)*dip(1,kk,k)
-> #endif
->       call matvec2(ADtEA1(1,1,1),Ub2(1,k),auxvec(1))
->       s2=-0.5d0*scalar2(Ub2(1,i),auxvec(1))
->       call matvec2(ADtEA(1,1,2),Ub2(1,l),auxvec1(1))
->       s3=-0.5d0*scalar2(Ub2(1,j),auxvec1(1))
->       call transpose2(EUg(1,1,k),auxmat(1,1))
->       call matmat2(ADtEA1(1,1,1),auxmat(1,1),pizda(1,1))
->       vv(1)=pizda(1,1)-pizda(2,2)
->       vv(2)=pizda(1,2)+pizda(2,1)
->       s4=-0.25d0*scalar2(vv(1),Dtobr2(1,i))
-> cd      write (2,*) 'eello6_graph2:','s1',s1,' s2',s2,' s3',s3,' s4',s4
-> #ifdef MOMENT
->       eello6_graph2=-(s1+s2+s3+s4)
-> #else
->       eello6_graph2=-(s2+s3+s4)
-> #endif
-> c      eello6_graph2=-s3
-> C Derivatives in gamma(i-1)
->       if (i.gt.1) then
-> #ifdef MOMENT
->         s1=dipderg(1,jj,i)*dip(1,kk,k)
-> #endif
->         s2=-0.5d0*scalar2(Ub2der(1,i),auxvec(1))
->         call matvec2(ADtEAderg(1,1,1,2),Ub2(1,l),auxvec2(1))
->         s3=-0.5d0*scalar2(Ub2(1,j),auxvec2(1))
->         s4=-0.25d0*scalar2(vv(1),Dtobr2der(1,i))
-> #ifdef MOMENT
->         g_corr6_loc(i-1)=g_corr6_loc(i-1)-ekont*(s1+s2+s3+s4)
-> #else
->         g_corr6_loc(i-1)=g_corr6_loc(i-1)-ekont*(s2+s3+s4)
-> #endif
-> c        g_corr6_loc(i-1)=g_corr6_loc(i-1)-s3
->       endif
-> C Derivatives in gamma(k-1)
-> #ifdef MOMENT
->       s1=dip(1,jj,i)*dipderg(1,kk,k)
-> #endif
->       call matvec2(ADtEA1(1,1,1),Ub2der(1,k),auxvec2(1))
->       s2=-0.5d0*scalar2(Ub2(1,i),auxvec2(1))
->       call matvec2(ADtEAderg(1,1,2,2),Ub2(1,l),auxvec2(1))
->       s3=-0.5d0*scalar2(Ub2(1,j),auxvec2(1))
->       call transpose2(EUgder(1,1,k),auxmat1(1,1))
->       call matmat2(ADtEA1(1,1,1),auxmat1(1,1),pizda(1,1))
->       vv(1)=pizda(1,1)-pizda(2,2)
->       vv(2)=pizda(1,2)+pizda(2,1)
->       s4=-0.25d0*scalar2(vv(1),Dtobr2(1,i))
-> #ifdef MOMENT
->       g_corr6_loc(k-1)=g_corr6_loc(k-1)-ekont*(s1+s2+s3+s4)
-> #else
->       g_corr6_loc(k-1)=g_corr6_loc(k-1)-ekont*(s2+s3+s4)
-> #endif
-> c      g_corr6_loc(k-1)=g_corr6_loc(k-1)-s3
-> C Derivatives in gamma(j-1) or gamma(l-1)
->       if (j.gt.1) then
-> #ifdef MOMENT
->         s1=dipderg(3,jj,i)*dip(1,kk,k) 
-> #endif
->         call matvec2(ADtEA1derg(1,1,1,1),Ub2(1,k),auxvec2(1))
->         s2=-0.5d0*scalar2(Ub2(1,i),auxvec2(1))
->         s3=-0.5d0*scalar2(Ub2der(1,j),auxvec1(1))
->         call matmat2(ADtEA1derg(1,1,1,1),auxmat(1,1),pizda(1,1))
->         vv(1)=pizda(1,1)-pizda(2,2)
->         vv(2)=pizda(1,2)+pizda(2,1)
->         s4=-0.25d0*scalar2(vv(1),Dtobr2(1,i))
-> #ifdef MOMENT
->         if (swap) then
->           g_corr6_loc(l-1)=g_corr6_loc(l-1)-ekont*s1
->         else
->           g_corr6_loc(j-1)=g_corr6_loc(j-1)-ekont*s1
->         endif
-> #endif
->         g_corr6_loc(j-1)=g_corr6_loc(j-1)-ekont*(s2+s3+s4)
-> c        g_corr6_loc(j-1)=g_corr6_loc(j-1)-s3
->       endif
-> C Derivatives in gamma(l-1) or gamma(j-1)
->       if (l.gt.1) then 
-> #ifdef MOMENT
->         s1=dip(1,jj,i)*dipderg(3,kk,k)
-> #endif
->         call matvec2(ADtEA1derg(1,1,2,1),Ub2(1,k),auxvec2(1))
->         s2=-0.5d0*scalar2(Ub2(1,i),auxvec2(1))
->         call matvec2(ADtEA(1,1,2),Ub2der(1,l),auxvec2(1))
->         s3=-0.5d0*scalar2(Ub2(1,j),auxvec2(1))
->         call matmat2(ADtEA1derg(1,1,2,1),auxmat(1,1),pizda(1,1))
->         vv(1)=pizda(1,1)-pizda(2,2)
->         vv(2)=pizda(1,2)+pizda(2,1)
->         s4=-0.25d0*scalar2(vv(1),Dtobr2(1,i))
-> #ifdef MOMENT
->         if (swap) then
->           g_corr6_loc(j-1)=g_corr6_loc(j-1)-ekont*s1
->         else
->           g_corr6_loc(l-1)=g_corr6_loc(l-1)-ekont*s1
->         endif
-> #endif
->         g_corr6_loc(l-1)=g_corr6_loc(l-1)-ekont*(s2+s3+s4)
-> c        g_corr6_loc(l-1)=g_corr6_loc(l-1)-s3
->       endif
-> C Cartesian derivatives.
->       if (lprn) then
->         write (2,*) 'In eello6_graph2'
->         do iii=1,2
->           write (2,*) 'iii=',iii
->           do kkk=1,5
->             write (2,*) 'kkk=',kkk
->             do jjj=1,2
->               write (2,'(3(2f10.5),5x)') 
->      &        ((ADtEA1derx(jjj,mmm,lll,kkk,iii,1),mmm=1,2),lll=1,3)
->             enddo
->           enddo
->         enddo
->       endif
->       do iii=1,2
->         do kkk=1,5
->           do lll=1,3
-> #ifdef MOMENT
->             if (iii.eq.1) then
->               s1=dipderx(lll,kkk,1,jj,i)*dip(1,kk,k)
->             else
->               s1=dip(1,jj,i)*dipderx(lll,kkk,1,kk,k)
->             endif
-> #endif
->             call matvec2(ADtEA1derx(1,1,lll,kkk,iii,1),Ub2(1,k),
->      &        auxvec(1))
->             s2=-0.5d0*scalar2(Ub2(1,i),auxvec(1))
->             call matvec2(ADtEAderx(1,1,lll,kkk,iii,2),Ub2(1,l),
->      &        auxvec(1))
->             s3=-0.5d0*scalar2(Ub2(1,j),auxvec(1))
->             call transpose2(EUg(1,1,k),auxmat(1,1))
->             call matmat2(ADtEA1derx(1,1,lll,kkk,iii,1),auxmat(1,1),
->      &        pizda(1,1))
->             vv(1)=pizda(1,1)-pizda(2,2)
->             vv(2)=pizda(1,2)+pizda(2,1)
->             s4=-0.25d0*scalar2(vv(1),Dtobr2(1,i))
-> cd            write (2,*) 's1',s1,' s2',s2,' s3',s3,' s4',s4
-> #ifdef MOMENT
->             derx(lll,kkk,iii)=derx(lll,kkk,iii)-(s1+s2+s4)
-> #else
->             derx(lll,kkk,iii)=derx(lll,kkk,iii)-(s2+s4)
-> #endif
->             if (swap) then
->               derx(lll,kkk,3-iii)=derx(lll,kkk,3-iii)-s3
->             else
->               derx(lll,kkk,iii)=derx(lll,kkk,iii)-s3
->             endif
->           enddo
->         enddo
->       enddo
->       return
->       end
-> c----------------------------------------------------------------------------
->       double precision function eello6_graph3(i,j,k,l,jj,kk,swap)
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.CHAIN'
->       include 'COMMON.DERIV'
->       include 'COMMON.INTERACT'
->       include 'COMMON.CONTACTS'
->       include 'COMMON.TORSION'
->       include 'COMMON.VAR'
->       include 'COMMON.GEO'
->       double precision vv(2),pizda(2,2),auxmat(2,2),auxvec(2)
->       logical swap
-> CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-> C                                              
-> C      Parallel       Antiparallel
-> C                                             
-> C          o             o         
-> C         /l\   /   \   /j\       
-> C        /   \ /     \ /   \      
-> C       /| o |o       o| o |\     
-> C       j|/k\|  /      |/k\|l /   
-> C        /   \ /       /   \ /    
-> C       /     o       /     o                
-> C       i             i                     
-> C
-> CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-> C
-> C 4/7/01 AL Component s1 was removed, because it pertains to the respective 
-> C           energy moment and not to the cluster cumulant.
->       iti=itortyp(itype(i))
->       if (j.lt.nres-1) then
->         itj1=itortyp(itype(j+1))
->       else
->         itj1=ntortyp+1
->       endif
->       itk=itortyp(itype(k))
->       itk1=itortyp(itype(k+1))
->       if (l.lt.nres-1) then
->         itl1=itortyp(itype(l+1))
->       else
->         itl1=ntortyp+1
->       endif
-> #ifdef MOMENT
->       s1=dip(4,jj,i)*dip(4,kk,k)
-> #endif
->       call matvec2(AECA(1,1,1),b1(1,itk1),auxvec(1))
->       s2=0.5d0*scalar2(b1(1,itk),auxvec(1))
->       call matvec2(AECA(1,1,2),b1(1,itl1),auxvec(1))
->       s3=0.5d0*scalar2(b1(1,itj1),auxvec(1))
->       call transpose2(EE(1,1,itk),auxmat(1,1))
->       call matmat2(auxmat(1,1),AECA(1,1,1),pizda(1,1))
->       vv(1)=pizda(1,1)+pizda(2,2)
->       vv(2)=pizda(2,1)-pizda(1,2)
->       s4=-0.25d0*scalar2(vv(1),Ctobr(1,k))
-> cd      write (2,*) 'eello6_graph3:','s1',s1,' s2',s2,' s3',s3,' s4',s4
-> #ifdef MOMENT
->       eello6_graph3=-(s1+s2+s3+s4)
-> #else
->       eello6_graph3=-(s2+s3+s4)
-> #endif
-> c      eello6_graph3=-s4
-> C Derivatives in gamma(k-1)
->       call matvec2(AECAderg(1,1,2),b1(1,itl1),auxvec(1))
->       s3=0.5d0*scalar2(b1(1,itj1),auxvec(1))
->       s4=-0.25d0*scalar2(vv(1),Ctobrder(1,k))
->       g_corr6_loc(k-1)=g_corr6_loc(k-1)-ekont*(s3+s4)
-> C Derivatives in gamma(l-1)
->       call matvec2(AECAderg(1,1,1),b1(1,itk1),auxvec(1))
->       s2=0.5d0*scalar2(b1(1,itk),auxvec(1))
->       call matmat2(auxmat(1,1),AECAderg(1,1,1),pizda(1,1))
->       vv(1)=pizda(1,1)+pizda(2,2)
->       vv(2)=pizda(2,1)-pizda(1,2)
->       s4=-0.25d0*scalar2(vv(1),Ctobr(1,k))
->       g_corr6_loc(l-1)=g_corr6_loc(l-1)-ekont*(s2+s4) 
-> C Cartesian derivatives.
->       do iii=1,2
->         do kkk=1,5
->           do lll=1,3
-> #ifdef MOMENT
->             if (iii.eq.1) then
->               s1=dipderx(lll,kkk,4,jj,i)*dip(4,kk,k)
->             else
->               s1=dip(4,jj,i)*dipderx(lll,kkk,4,kk,k)
->             endif
-> #endif
->             call matvec2(AECAderx(1,1,lll,kkk,iii,1),b1(1,itk1),
->      &        auxvec(1))
->             s2=0.5d0*scalar2(b1(1,itk),auxvec(1))
->             call matvec2(AECAderx(1,1,lll,kkk,iii,2),b1(1,itl1),
->      &        auxvec(1))
->             s3=0.5d0*scalar2(b1(1,itj1),auxvec(1))
->             call matmat2(auxmat(1,1),AECAderx(1,1,lll,kkk,iii,1),
->      &        pizda(1,1))
->             vv(1)=pizda(1,1)+pizda(2,2)
->             vv(2)=pizda(2,1)-pizda(1,2)
->             s4=-0.25d0*scalar2(vv(1),Ctobr(1,k))
-> #ifdef MOMENT
->             derx(lll,kkk,iii)=derx(lll,kkk,iii)-(s1+s2+s4)
-> #else
->             derx(lll,kkk,iii)=derx(lll,kkk,iii)-(s2+s4)
-> #endif
->             if (swap) then
->               derx(lll,kkk,3-iii)=derx(lll,kkk,3-iii)-s3
->             else
->               derx(lll,kkk,iii)=derx(lll,kkk,iii)-s3
->             endif
-> c            derx(lll,kkk,iii)=derx(lll,kkk,iii)-s4
->           enddo
->         enddo
->       enddo
->       return
->       end
-> c----------------------------------------------------------------------------
->       double precision function eello6_graph4(i,j,k,l,jj,kk,imat,swap)
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.CHAIN'
->       include 'COMMON.DERIV'
->       include 'COMMON.INTERACT'
->       include 'COMMON.CONTACTS'
->       include 'COMMON.TORSION'
->       include 'COMMON.VAR'
->       include 'COMMON.GEO'
->       include 'COMMON.FFIELD'
->       double precision vv(2),pizda(2,2),auxmat(2,2),auxvec(2),
->      & auxvec1(2),auxmat1(2,2)
->       logical swap
-> CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-> C                                              
-> C      Parallel       Antiparallel
-> C                                             
-> C          o             o         
-> C         /l\   /   \   /j\       
-> C        /   \ /     \ /   \      
-> C       /| o |o       o| o |\     
-> C     \ j|/k\|      \  |/k\|l     
-> C      \ /   \       \ /   \      
-> C       o     \       o     \                
-> C       i             i                     
-> C
-> CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-> C
-> C 4/7/01 AL Component s1 was removed, because it pertains to the respective 
-> C           energy moment and not to the cluster cumulant.
-> cd      write (2,*) 'eello_graph4: wturn6',wturn6
->       iti=itortyp(itype(i))
->       itj=itortyp(itype(j))
->       if (j.lt.nres-1) then
->         itj1=itortyp(itype(j+1))
->       else
->         itj1=ntortyp+1
->       endif
->       itk=itortyp(itype(k))
->       if (k.lt.nres-1) then
->         itk1=itortyp(itype(k+1))
->       else
->         itk1=ntortyp+1
->       endif
->       itl=itortyp(itype(l))
->       if (l.lt.nres-1) then
->         itl1=itortyp(itype(l+1))
->       else
->         itl1=ntortyp+1
->       endif
-> cd      write (2,*) 'eello6_graph4:','i',i,' j',j,' k',k,' l',l
-> cd      write (2,*) 'iti',iti,' itj',itj,' itj1',itj1,' itk',itk,
-> cd     & ' itl',itl,' itl1',itl1
-> #ifdef MOMENT
->       if (imat.eq.1) then
->         s1=dip(3,jj,i)*dip(3,kk,k)
->       else
->         s1=dip(2,jj,j)*dip(2,kk,l)
->       endif
-> #endif
->       call matvec2(AECA(1,1,imat),Ub2(1,k),auxvec(1))
->       s2=0.5d0*scalar2(Ub2(1,i),auxvec(1))
->       if (j.eq.l+1) then
->         call matvec2(ADtEA1(1,1,3-imat),b1(1,itj1),auxvec1(1))
->         s3=-0.5d0*scalar2(b1(1,itj),auxvec1(1))
->       else
->         call matvec2(ADtEA1(1,1,3-imat),b1(1,itl1),auxvec1(1))
->         s3=-0.5d0*scalar2(b1(1,itl),auxvec1(1))
->       endif
->       call transpose2(EUg(1,1,k),auxmat(1,1))
->       call matmat2(AECA(1,1,imat),auxmat(1,1),pizda(1,1))
->       vv(1)=pizda(1,1)-pizda(2,2)
->       vv(2)=pizda(2,1)+pizda(1,2)
->       s4=0.25d0*scalar2(vv(1),Dtobr2(1,i))
-> cd      write (2,*) 'eello6_graph4:','s1',s1,' s2',s2,' s3',s3,' s4',s4
-> #ifdef MOMENT
->       eello6_graph4=-(s1+s2+s3+s4)
-> #else
->       eello6_graph4=-(s2+s3+s4)
-> #endif
-> C Derivatives in gamma(i-1)
->       if (i.gt.1) then
-> #ifdef MOMENT
->         if (imat.eq.1) then
->           s1=dipderg(2,jj,i)*dip(3,kk,k)
->         else
->           s1=dipderg(4,jj,j)*dip(2,kk,l)
->         endif
-> #endif
->         s2=0.5d0*scalar2(Ub2der(1,i),auxvec(1))
->         if (j.eq.l+1) then
->           call matvec2(ADtEA1derg(1,1,1,3-imat),b1(1,itj1),auxvec1(1))
->           s3=-0.5d0*scalar2(b1(1,itj),auxvec1(1))
->         else
->           call matvec2(ADtEA1derg(1,1,1,3-imat),b1(1,itl1),auxvec1(1))
->           s3=-0.5d0*scalar2(b1(1,itl),auxvec1(1))
->         endif
->         s4=0.25d0*scalar2(vv(1),Dtobr2der(1,i))
->         if (wturn6.gt.0.0d0 .and. k.eq.l+4 .and. i.eq.j+2) then
-> cd          write (2,*) 'turn6 derivatives'
-> #ifdef MOMENT
->           gel_loc_turn6(i-1)=gel_loc_turn6(i-1)-ekont*(s1+s2+s3+s4)
-> #else
->           gel_loc_turn6(i-1)=gel_loc_turn6(i-1)-ekont*(s2+s3+s4)
-> #endif
->         else
-> #ifdef MOMENT
->           g_corr6_loc(i-1)=g_corr6_loc(i-1)-ekont*(s1+s2+s3+s4)
-> #else
->           g_corr6_loc(i-1)=g_corr6_loc(i-1)-ekont*(s2+s3+s4)
-> #endif
->         endif
->       endif
-> C Derivatives in gamma(k-1)
-> #ifdef MOMENT
->       if (imat.eq.1) then
->         s1=dip(3,jj,i)*dipderg(2,kk,k)
->       else
->         s1=dip(2,jj,j)*dipderg(4,kk,l)
->       endif
-> #endif
->       call matvec2(AECA(1,1,imat),Ub2der(1,k),auxvec1(1))
->       s2=0.5d0*scalar2(Ub2(1,i),auxvec1(1))
->       if (j.eq.l+1) then
->         call matvec2(ADtEA1derg(1,1,2,3-imat),b1(1,itj1),auxvec1(1))
->         s3=-0.5d0*scalar2(b1(1,itj),auxvec1(1))
->       else
->         call matvec2(ADtEA1derg(1,1,2,3-imat),b1(1,itl1),auxvec1(1))
->         s3=-0.5d0*scalar2(b1(1,itl),auxvec1(1))
->       endif
->       call transpose2(EUgder(1,1,k),auxmat1(1,1))
->       call matmat2(AECA(1,1,imat),auxmat1(1,1),pizda(1,1))
->       vv(1)=pizda(1,1)-pizda(2,2)
->       vv(2)=pizda(2,1)+pizda(1,2)
->       s4=0.25d0*scalar2(vv(1),Dtobr2(1,i))
->       if (wturn6.gt.0.0d0 .and. k.eq.l+4 .and. i.eq.j+2) then
-> #ifdef MOMENT
->         gel_loc_turn6(k-1)=gel_loc_turn6(k-1)-ekont*(s1+s2+s3+s4)
-> #else
->         gel_loc_turn6(k-1)=gel_loc_turn6(k-1)-ekont*(s2+s3+s4)
-> #endif
->       else
-> #ifdef MOMENT
->         g_corr6_loc(k-1)=g_corr6_loc(k-1)-ekont*(s1+s2+s3+s4)
-> #else
->         g_corr6_loc(k-1)=g_corr6_loc(k-1)-ekont*(s2+s3+s4)
-> #endif
->       endif
-> C Derivatives in gamma(j-1) or gamma(l-1)
->       if (l.eq.j+1 .and. l.gt.1) then
->         call matvec2(AECAderg(1,1,imat),Ub2(1,k),auxvec(1))
->         s2=0.5d0*scalar2(Ub2(1,i),auxvec(1))
->         call matmat2(AECAderg(1,1,imat),auxmat(1,1),pizda(1,1))
->         vv(1)=pizda(1,1)-pizda(2,2)
->         vv(2)=pizda(2,1)+pizda(1,2)
->         s4=0.25d0*scalar2(vv(1),Dtobr2(1,i))
->         g_corr6_loc(l-1)=g_corr6_loc(l-1)-ekont*(s2+s4)
->       else if (j.gt.1) then
->         call matvec2(AECAderg(1,1,imat),Ub2(1,k),auxvec(1))
->         s2=0.5d0*scalar2(Ub2(1,i),auxvec(1))
->         call matmat2(AECAderg(1,1,imat),auxmat(1,1),pizda(1,1))
->         vv(1)=pizda(1,1)-pizda(2,2)
->         vv(2)=pizda(2,1)+pizda(1,2)
->         s4=0.25d0*scalar2(vv(1),Dtobr2(1,i))
->         if (wturn6.gt.0.0d0 .and. k.eq.l+4 .and. i.eq.j+2) then
->           gel_loc_turn6(j-1)=gel_loc_turn6(j-1)-ekont*(s2+s4)
->         else
->           g_corr6_loc(j-1)=g_corr6_loc(j-1)-ekont*(s2+s4)
->         endif
->       endif
-> C Cartesian derivatives.
->       do iii=1,2
->         do kkk=1,5
->           do lll=1,3
-> #ifdef MOMENT
->             if (iii.eq.1) then
->               if (imat.eq.1) then
->                 s1=dipderx(lll,kkk,3,jj,i)*dip(3,kk,k)
->               else
->                 s1=dipderx(lll,kkk,2,jj,j)*dip(2,kk,l)
->               endif
->             else
->               if (imat.eq.1) then
->                 s1=dip(3,jj,i)*dipderx(lll,kkk,3,kk,k)
->               else
->                 s1=dip(2,jj,j)*dipderx(lll,kkk,2,kk,l)
->               endif
->             endif
-> #endif
->             call matvec2(AECAderx(1,1,lll,kkk,iii,imat),Ub2(1,k),
->      &        auxvec(1))
->             s2=0.5d0*scalar2(Ub2(1,i),auxvec(1))
->             if (j.eq.l+1) then
->               call matvec2(ADtEA1derx(1,1,lll,kkk,iii,3-imat),
->      &          b1(1,itj1),auxvec(1))
->               s3=-0.5d0*scalar2(b1(1,itj),auxvec(1))
->             else
->               call matvec2(ADtEA1derx(1,1,lll,kkk,iii,3-imat),
->      &          b1(1,itl1),auxvec(1))
->               s3=-0.5d0*scalar2(b1(1,itl),auxvec(1))
->             endif
->             call matmat2(AECAderx(1,1,lll,kkk,iii,imat),auxmat(1,1),
->      &        pizda(1,1))
->             vv(1)=pizda(1,1)-pizda(2,2)
->             vv(2)=pizda(2,1)+pizda(1,2)
->             s4=0.25d0*scalar2(vv(1),Dtobr2(1,i))
->             if (swap) then
->               if (wturn6.gt.0.0d0 .and. k.eq.l+4 .and. i.eq.j+2) then
-> #ifdef MOMENT
->                 derx_turn(lll,kkk,3-iii)=derx_turn(lll,kkk,3-iii)
->      &             -(s1+s2+s4)
-> #else
->                 derx_turn(lll,kkk,3-iii)=derx_turn(lll,kkk,3-iii)
->      &             -(s2+s4)
-> #endif
->                 derx_turn(lll,kkk,iii)=derx_turn(lll,kkk,iii)-s3
->               else
-> #ifdef MOMENT
->                 derx(lll,kkk,3-iii)=derx(lll,kkk,3-iii)-(s1+s2+s4)
-> #else
->                 derx(lll,kkk,3-iii)=derx(lll,kkk,3-iii)-(s2+s4)
-> #endif
->                 derx(lll,kkk,iii)=derx(lll,kkk,iii)-s3
->               endif
->             else
-> #ifdef MOMENT
->               derx(lll,kkk,iii)=derx(lll,kkk,iii)-(s1+s2+s4)
-> #else
->               derx(lll,kkk,iii)=derx(lll,kkk,iii)-(s2+s4)
-> #endif
->               if (l.eq.j+1) then
->                 derx(lll,kkk,iii)=derx(lll,kkk,iii)-s3
->               else 
->                 derx(lll,kkk,3-iii)=derx(lll,kkk,3-iii)-s3
->               endif
->             endif 
->           enddo
->         enddo
->       enddo
->       return
->       end
-> c----------------------------------------------------------------------------
->       double precision function eello_turn6(i,jj,kk)
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.CHAIN'
->       include 'COMMON.DERIV'
->       include 'COMMON.INTERACT'
->       include 'COMMON.CONTACTS'
->       include 'COMMON.TORSION'
->       include 'COMMON.VAR'
->       include 'COMMON.GEO'
->       double precision vtemp1(2),vtemp2(2),vtemp3(2),vtemp4(2),
->      &  atemp(2,2),auxmat(2,2),achuj_temp(2,2),gtemp(2,2),gvec(2),
->      &  ggg1(3),ggg2(3)
->       double precision vtemp1d(2),vtemp2d(2),vtemp3d(2),vtemp4d(2),
->      &  atempd(2,2),auxmatd(2,2),achuj_tempd(2,2),gtempd(2,2),gvecd(2)
-> C 4/7/01 AL Components s1, s8, and s13 were removed, because they pertain to
-> C           the respective energy moment and not to the cluster cumulant.
->       s1=0.0d0
->       s8=0.0d0
->       s13=0.0d0
-> c
->       eello_turn6=0.0d0
->       j=i+4
->       k=i+1
->       l=i+3
->       iti=itortyp(itype(i))
->       itk=itortyp(itype(k))
->       itk1=itortyp(itype(k+1))
->       itl=itortyp(itype(l))
->       itj=itortyp(itype(j))
-> cd      write (2,*) 'itk',itk,' itk1',itk1,' itl',itl,' itj',itj
-> cd      write (2,*) 'i',i,' k',k,' j',j,' l',l
-> cd      if (i.ne.1 .or. j.ne.3 .or. k.ne.2 .or. l.ne.4) then
-> cd        eello6=0.0d0
-> cd        return
-> cd      endif
-> cd      write (iout,*)
-> cd     &   'EELLO6: Contacts have occurred for peptide groups',i,j,
-> cd     &   ' and',k,l
-> cd      call checkint_turn6(i,jj,kk,eel_turn6_num)
->       do iii=1,2
->         do kkk=1,5
->           do lll=1,3
->             derx_turn(lll,kkk,iii)=0.0d0
->           enddo
->         enddo
->       enddo
-> cd      eij=1.0d0
-> cd      ekl=1.0d0
-> cd      ekont=1.0d0
->       eello6_5=eello6_graph4(l,k,j,i,kk,jj,2,.true.)
-> cd      eello6_5=0.0d0
-> cd      write (2,*) 'eello6_5',eello6_5
-> #ifdef MOMENT
->       call transpose2(AEA(1,1,1),auxmat(1,1))
->       call matmat2(EUg(1,1,i+1),auxmat(1,1),auxmat(1,1))
->       ss1=scalar2(Ub2(1,i+2),b1(1,itl))
->       s1 = (auxmat(1,1)+auxmat(2,2))*ss1
-> #endif
->       call matvec2(EUg(1,1,i+2),b1(1,itl),vtemp1(1))
->       call matvec2(AEA(1,1,1),vtemp1(1),vtemp1(1))
->       s2 = scalar2(b1(1,itk),vtemp1(1))
-> #ifdef MOMENT
->       call transpose2(AEA(1,1,2),atemp(1,1))
->       call matmat2(atemp(1,1),EUg(1,1,i+4),atemp(1,1))
->       call matvec2(Ug2(1,1,i+2),dd(1,1,itk1),vtemp2(1))
->       s8 = -(atemp(1,1)+atemp(2,2))*scalar2(cc(1,1,itl),vtemp2(1))
-> #endif
->       call matmat2(EUg(1,1,i+3),AEA(1,1,2),auxmat(1,1))
->       call matvec2(auxmat(1,1),Ub2(1,i+4),vtemp3(1))
->       s12 = scalar2(Ub2(1,i+2),vtemp3(1))
-> #ifdef MOMENT
->       call transpose2(a_chuj(1,1,kk,i+1),achuj_temp(1,1))
->       call matmat2(achuj_temp(1,1),EUg(1,1,i+2),gtemp(1,1))
->       call matmat2(gtemp(1,1),EUg(1,1,i+3),gtemp(1,1)) 
->       call matvec2(a_chuj(1,1,jj,i),Ub2(1,i+4),vtemp4(1)) 
->       ss13 = scalar2(b1(1,itk),vtemp4(1))
->       s13 = (gtemp(1,1)+gtemp(2,2))*ss13
-> #endif
-> c      write (2,*) 's1,s2,s8,s12,s13',s1,s2,s8,s12,s13
-> c      s1=0.0d0
-> c      s2=0.0d0
-> c      s8=0.0d0
-> c      s12=0.0d0
-> c      s13=0.0d0
->       eel_turn6 = eello6_5 - 0.5d0*(s1+s2+s12+s8+s13)
-> C Derivatives in gamma(i+2)
->       s1d =0.0d0
->       s8d =0.0d0
-> #ifdef MOMENT
->       call transpose2(AEA(1,1,1),auxmatd(1,1))
->       call matmat2(EUgder(1,1,i+1),auxmatd(1,1),auxmatd(1,1))
->       s1d = (auxmatd(1,1)+auxmatd(2,2))*ss1
->       call transpose2(AEAderg(1,1,2),atempd(1,1))
->       call matmat2(atempd(1,1),EUg(1,1,i+4),atempd(1,1))
->       s8d = -(atempd(1,1)+atempd(2,2))*scalar2(cc(1,1,itl),vtemp2(1))
-> #endif
->       call matmat2(EUg(1,1,i+3),AEAderg(1,1,2),auxmatd(1,1))
->       call matvec2(auxmatd(1,1),Ub2(1,i+4),vtemp3d(1))
->       s12d = scalar2(Ub2(1,i+2),vtemp3d(1))
-> c      s1d=0.0d0
-> c      s2d=0.0d0
-> c      s8d=0.0d0
-> c      s12d=0.0d0
-> c      s13d=0.0d0
->       gel_loc_turn6(i)=gel_loc_turn6(i)-0.5d0*ekont*(s1d+s8d+s12d)
-> C Derivatives in gamma(i+3)
-> #ifdef MOMENT
->       call transpose2(AEA(1,1,1),auxmatd(1,1))
->       call matmat2(EUg(1,1,i+1),auxmatd(1,1),auxmatd(1,1))
->       ss1d=scalar2(Ub2der(1,i+2),b1(1,itl))
->       s1d = (auxmatd(1,1)+auxmatd(2,2))*ss1d
-> #endif
->       call matvec2(EUgder(1,1,i+2),b1(1,itl),vtemp1d(1))
->       call matvec2(AEA(1,1,1),vtemp1d(1),vtemp1d(1))
->       s2d = scalar2(b1(1,itk),vtemp1d(1))
-> #ifdef MOMENT
->       call matvec2(Ug2der(1,1,i+2),dd(1,1,itk1),vtemp2d(1))
->       s8d = -(atemp(1,1)+atemp(2,2))*scalar2(cc(1,1,itl),vtemp2d(1))
-> #endif
->       s12d = scalar2(Ub2der(1,i+2),vtemp3(1))
-> #ifdef MOMENT
->       call matmat2(achuj_temp(1,1),EUgder(1,1,i+2),gtempd(1,1))
->       call matmat2(gtempd(1,1),EUg(1,1,i+3),gtempd(1,1)) 
->       s13d = (gtempd(1,1)+gtempd(2,2))*ss13
-> #endif
-> c      s1d=0.0d0
-> c      s2d=0.0d0
-> c      s8d=0.0d0
-> c      s12d=0.0d0
-> c      s13d=0.0d0
-> #ifdef MOMENT
->       gel_loc_turn6(i+1)=gel_loc_turn6(i+1)
->      &               -0.5d0*ekont*(s1d+s2d+s8d+s12d+s13d)
-> #else
->       gel_loc_turn6(i+1)=gel_loc_turn6(i+1)
->      &               -0.5d0*ekont*(s2d+s12d)
-> #endif
-> C Derivatives in gamma(i+4)
->       call matmat2(EUgder(1,1,i+3),AEA(1,1,2),auxmatd(1,1))
->       call matvec2(auxmatd(1,1),Ub2(1,i+4),vtemp3d(1))
->       s12d = scalar2(Ub2(1,i+2),vtemp3d(1))
-> #ifdef MOMENT
->       call matmat2(achuj_temp(1,1),EUg(1,1,i+2),gtempd(1,1))
->       call matmat2(gtempd(1,1),EUgder(1,1,i+3),gtempd(1,1)) 
->       s13d = (gtempd(1,1)+gtempd(2,2))*ss13
-> #endif
-> c      s1d=0.0d0
-> c      s2d=0.0d0
-> c      s8d=0.0d0
-> C      s12d=0.0d0
-> c      s13d=0.0d0
-> #ifdef MOMENT
->       gel_loc_turn6(i+2)=gel_loc_turn6(i+2)-0.5d0*ekont*(s12d+s13d)
-> #else
->       gel_loc_turn6(i+2)=gel_loc_turn6(i+2)-0.5d0*ekont*(s12d)
-> #endif
-> C Derivatives in gamma(i+5)
-> #ifdef MOMENT
->       call transpose2(AEAderg(1,1,1),auxmatd(1,1))
->       call matmat2(EUg(1,1,i+1),auxmatd(1,1),auxmatd(1,1))
->       s1d = (auxmatd(1,1)+auxmatd(2,2))*ss1
-> #endif
->       call matvec2(EUg(1,1,i+2),b1(1,itl),vtemp1d(1))
->       call matvec2(AEAderg(1,1,1),vtemp1d(1),vtemp1d(1))
->       s2d = scalar2(b1(1,itk),vtemp1d(1))
-> #ifdef MOMENT
->       call transpose2(AEA(1,1,2),atempd(1,1))
->       call matmat2(atempd(1,1),EUgder(1,1,i+4),atempd(1,1))
->       s8d = -(atempd(1,1)+atempd(2,2))*scalar2(cc(1,1,itl),vtemp2(1))
-> #endif
->       call matvec2(auxmat(1,1),Ub2der(1,i+4),vtemp3d(1))
->       s12d = scalar2(Ub2(1,i+2),vtemp3d(1))
-> #ifdef MOMENT
->       call matvec2(a_chuj(1,1,jj,i),Ub2der(1,i+4),vtemp4d(1)) 
->       ss13d = scalar2(b1(1,itk),vtemp4d(1))
->       s13d = (gtemp(1,1)+gtemp(2,2))*ss13d
-> #endif
-> c      s1d=0.0d0
-> c      s2d=0.0d0
-> c      s8d=0.0d0
-> c      s12d=0.0d0
-> c      s13d=0.0d0
-> #ifdef MOMENT
->       gel_loc_turn6(i+3)=gel_loc_turn6(i+3)
->      &               -0.5d0*ekont*(s1d+s2d+s8d+s12d+s13d)
-> #else
->       gel_loc_turn6(i+3)=gel_loc_turn6(i+3)
->      &               -0.5d0*ekont*(s2d+s12d)
-> #endif
-> C Cartesian derivatives
->       do iii=1,2
->         do kkk=1,5
->           do lll=1,3
-> #ifdef MOMENT
->             call transpose2(AEAderx(1,1,lll,kkk,iii,1),auxmatd(1,1))
->             call matmat2(EUg(1,1,i+1),auxmatd(1,1),auxmatd(1,1))
->             s1d = (auxmatd(1,1)+auxmatd(2,2))*ss1
-> #endif
->             call matvec2(EUg(1,1,i+2),b1(1,itl),vtemp1(1))
->             call matvec2(AEAderx(1,1,lll,kkk,iii,1),vtemp1(1),
->      &          vtemp1d(1))
->             s2d = scalar2(b1(1,itk),vtemp1d(1))
-> #ifdef MOMENT
->             call transpose2(AEAderx(1,1,lll,kkk,iii,2),atempd(1,1))
->             call matmat2(atempd(1,1),EUg(1,1,i+4),atempd(1,1))
->             s8d = -(atempd(1,1)+atempd(2,2))*
->      &           scalar2(cc(1,1,itl),vtemp2(1))
-> #endif
->             call matmat2(EUg(1,1,i+3),AEAderx(1,1,lll,kkk,iii,2),
->      &           auxmatd(1,1))
->             call matvec2(auxmatd(1,1),Ub2(1,i+4),vtemp3d(1))
->             s12d = scalar2(Ub2(1,i+2),vtemp3d(1))
-> c      s1d=0.0d0
-> c      s2d=0.0d0
-> c      s8d=0.0d0
-> c      s12d=0.0d0
-> c      s13d=0.0d0
-> #ifdef MOMENT
->             derx_turn(lll,kkk,iii) = derx_turn(lll,kkk,iii) 
->      &        - 0.5d0*(s1d+s2d)
-> #else
->             derx_turn(lll,kkk,iii) = derx_turn(lll,kkk,iii) 
->      &        - 0.5d0*s2d
-> #endif
-> #ifdef MOMENT
->             derx_turn(lll,kkk,3-iii) = derx_turn(lll,kkk,3-iii) 
->      &        - 0.5d0*(s8d+s12d)
-> #else
->             derx_turn(lll,kkk,3-iii) = derx_turn(lll,kkk,3-iii) 
->      &        - 0.5d0*s12d
-> #endif
->           enddo
->         enddo
->       enddo
-> #ifdef MOMENT
->       do kkk=1,5
->         do lll=1,3
->           call transpose2(a_chuj_der(1,1,lll,kkk,kk,i+1),
->      &      achuj_tempd(1,1))
->           call matmat2(achuj_tempd(1,1),EUg(1,1,i+2),gtempd(1,1))
->           call matmat2(gtempd(1,1),EUg(1,1,i+3),gtempd(1,1)) 
->           s13d=(gtempd(1,1)+gtempd(2,2))*ss13
->           derx_turn(lll,kkk,2) = derx_turn(lll,kkk,2)-0.5d0*s13d
->           call matvec2(a_chuj_der(1,1,lll,kkk,jj,i),Ub2(1,i+4),
->      &      vtemp4d(1)) 
->           ss13d = scalar2(b1(1,itk),vtemp4d(1))
->           s13d = (gtemp(1,1)+gtemp(2,2))*ss13d
->           derx_turn(lll,kkk,1) = derx_turn(lll,kkk,1)-0.5d0*s13d
->         enddo
->       enddo
-> #endif
-> cd      write(iout,*) 'eel6_turn6',eel_turn6,' eel_turn6_num',
-> cd     &  16*eel_turn6_num
-> cd      goto 1112
->       if (j.lt.nres-1) then
->         j1=j+1
->         j2=j-1
->       else
->         j1=j-1
->         j2=j-2
->       endif
->       if (l.lt.nres-1) then
->         l1=l+1
->         l2=l-1
->       else
->         l1=l-1
->         l2=l-2
->       endif
->       do ll=1,3
->         ggg1(ll)=eel_turn6*g_contij(ll,1)
->         ggg2(ll)=eel_turn6*g_contij(ll,2)
->         ghalf=0.5d0*ggg1(ll)
-> cd        ghalf=0.0d0
->         gcorr6_turn(ll,i)=gcorr6_turn(ll,i)+ghalf
->      &    +ekont*derx_turn(ll,2,1)
->         gcorr6_turn(ll,i+1)=gcorr6_turn(ll,i+1)+ekont*derx_turn(ll,3,1)
->         gcorr6_turn(ll,j)=gcorr6_turn(ll,j)+ghalf
->      &    +ekont*derx_turn(ll,4,1)
->         gcorr6_turn(ll,j1)=gcorr6_turn(ll,j1)+ekont*derx_turn(ll,5,1)
->         ghalf=0.5d0*ggg2(ll)
-> cd        ghalf=0.0d0
->         gcorr6_turn(ll,k)=gcorr6_turn(ll,k)+ghalf
->      &    +ekont*derx_turn(ll,2,2)
->         gcorr6_turn(ll,k+1)=gcorr6_turn(ll,k+1)+ekont*derx_turn(ll,3,2)
->         gcorr6_turn(ll,l)=gcorr6_turn(ll,l)+ghalf
->      &    +ekont*derx_turn(ll,4,2)
->         gcorr6_turn(ll,l1)=gcorr6_turn(ll,l1)+ekont*derx_turn(ll,5,2)
->       enddo
-> cd      goto 1112
->       do m=i+1,j-1
->         do ll=1,3
->           gcorr6_turn(ll,m)=gcorr6_turn(ll,m)+ggg1(ll)
->         enddo
->       enddo
->       do m=k+1,l-1
->         do ll=1,3
->           gcorr6_turn(ll,m)=gcorr6_turn(ll,m)+ggg2(ll)
->         enddo
->       enddo
-> 1112  continue
->       do m=i+2,j2
->         do ll=1,3
->           gcorr6_turn(ll,m)=gcorr6_turn(ll,m)+ekont*derx_turn(ll,1,1)
->         enddo
->       enddo
->       do m=k+2,l2
->         do ll=1,3
->           gcorr6_turn(ll,m)=gcorr6_turn(ll,m)+ekont*derx_turn(ll,1,2)
->         enddo
->       enddo 
-> cd      do iii=1,nres-3
-> cd        write (2,*) iii,g_corr6_loc(iii)
-> cd      enddo
->       eello_turn6=ekont*eel_turn6
-> cd      write (2,*) 'ekont',ekont
-> cd      write (2,*) 'eel_turn6',ekont*eel_turn6
->       return
->       end
-> 
-> C-----------------------------------------------------------------------------
->       double precision function scalar(u,v)
-> !DIR$ INLINEALWAYS scalar
-> #ifndef OSF
-> cDEC$ ATTRIBUTES FORCEINLINE::scalar
-> #endif
->       implicit none
->       double precision u(3),v(3)
-> cd      double precision sc
-> cd      integer i
-> cd      sc=0.0d0
-> cd      do i=1,3
-> cd        sc=sc+u(i)*v(i)
-> cd      enddo
-> cd      scalar=sc
-> 
->       scalar=u(1)*v(1)+u(2)*v(2)+u(3)*v(3)
->       return
->       end
-> crc-------------------------------------------------
->       SUBROUTINE MATVEC2(A1,V1,V2)
-> !DIR$ INLINEALWAYS MATVEC2
-> #ifndef OSF
-> cDEC$ ATTRIBUTES FORCEINLINE::MATVEC2
-> #endif
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       DIMENSION A1(2,2),V1(2),V2(2)
-> c      DO 1 I=1,2
-> c        VI=0.0
-> c        DO 3 K=1,2
-> c    3     VI=VI+A1(I,K)*V1(K)
-> c        Vaux(I)=VI
-> c    1 CONTINUE
-> 
->       vaux1=a1(1,1)*v1(1)+a1(1,2)*v1(2)
->       vaux2=a1(2,1)*v1(1)+a1(2,2)*v1(2)
-> 
->       v2(1)=vaux1
->       v2(2)=vaux2
->       END
-> C---------------------------------------
->       SUBROUTINE MATMAT2(A1,A2,A3)
-> #ifndef OSF
-> cDEC$ ATTRIBUTES FORCEINLINE::MATMAT2  
-> #endif
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       DIMENSION A1(2,2),A2(2,2),A3(2,2)
-> c      DIMENSION AI3(2,2)
-> c        DO  J=1,2
-> c          A3IJ=0.0
-> c          DO K=1,2
-> c           A3IJ=A3IJ+A1(I,K)*A2(K,J)
-> c          enddo
-> c          A3(I,J)=A3IJ
-> c       enddo
-> c      enddo
-> 
->       ai3_11=a1(1,1)*a2(1,1)+a1(1,2)*a2(2,1)
->       ai3_12=a1(1,1)*a2(1,2)+a1(1,2)*a2(2,2)
->       ai3_21=a1(2,1)*a2(1,1)+a1(2,2)*a2(2,1)
->       ai3_22=a1(2,1)*a2(1,2)+a1(2,2)*a2(2,2)
-> 
->       A3(1,1)=AI3_11
->       A3(2,1)=AI3_21
->       A3(1,2)=AI3_12
->       A3(2,2)=AI3_22
->       END
-> 
-> c-------------------------------------------------------------------------
->       double precision function scalar2(u,v)
-> !DIR$ INLINEALWAYS scalar2
->       implicit none
->       double precision u(2),v(2)
->       double precision sc
->       integer i
->       scalar2=u(1)*v(1)+u(2)*v(2)
->       return
->       end
-> 
-> C-----------------------------------------------------------------------------
-> 
->       subroutine transpose2(a,at)
-> !DIR$ INLINEALWAYS transpose2
-> #ifndef OSF
-> cDEC$ ATTRIBUTES FORCEINLINE::transpose2
-> #endif
->       implicit none
->       double precision a(2,2),at(2,2)
->       at(1,1)=a(1,1)
->       at(1,2)=a(2,1)
->       at(2,1)=a(1,2)
->       at(2,2)=a(2,2)
->       return
->       end
-> c--------------------------------------------------------------------------
->       subroutine transpose(n,a,at)
->       implicit none
->       integer n,i,j
->       double precision a(n,n),at(n,n)
->       do i=1,n
->         do j=1,n
->           at(j,i)=a(i,j)
->         enddo
->       enddo
->       return
->       end
-> C---------------------------------------------------------------------------
->       subroutine prodmat3(a1,a2,kk,transp,prod)
-> !DIR$ INLINEALWAYS prodmat3
-> #ifndef OSF
-> cDEC$ ATTRIBUTES FORCEINLINE::prodmat3
-> #endif
->       implicit none
->       integer i,j
->       double precision a1(2,2),a2(2,2),a2t(2,2),kk(2,2),prod(2,2)
->       logical transp
-> crc      double precision auxmat(2,2),prod_(2,2)
-> 
->       if (transp) then
-> crc        call transpose2(kk(1,1),auxmat(1,1))
-> crc        call matmat2(a1(1,1),auxmat(1,1),auxmat(1,1))
-> crc        call matmat2(auxmat(1,1),a2(1,1),prod_(1,1)) 
->         
->            prod(1,1)=(a1(1,1)*kk(1,1)+a1(1,2)*kk(1,2))*a2(1,1)
->      & +(a1(1,1)*kk(2,1)+a1(1,2)*kk(2,2))*a2(2,1)
->            prod(1,2)=(a1(1,1)*kk(1,1)+a1(1,2)*kk(1,2))*a2(1,2)
->      & +(a1(1,1)*kk(2,1)+a1(1,2)*kk(2,2))*a2(2,2)
->            prod(2,1)=(a1(2,1)*kk(1,1)+a1(2,2)*kk(1,2))*a2(1,1)
->      & +(a1(2,1)*kk(2,1)+a1(2,2)*kk(2,2))*a2(2,1)
->            prod(2,2)=(a1(2,1)*kk(1,1)+a1(2,2)*kk(1,2))*a2(1,2)
->      & +(a1(2,1)*kk(2,1)+a1(2,2)*kk(2,2))*a2(2,2)
-> 
->       else
-> crc        call matmat2(a1(1,1),kk(1,1),auxmat(1,1))
-> crc        call matmat2(auxmat(1,1),a2(1,1),prod_(1,1))
-> 
->            prod(1,1)=(a1(1,1)*kk(1,1)+a1(1,2)*kk(2,1))*a2(1,1)
->      &  +(a1(1,1)*kk(1,2)+a1(1,2)*kk(2,2))*a2(2,1)
->            prod(1,2)=(a1(1,1)*kk(1,1)+a1(1,2)*kk(2,1))*a2(1,2)
->      &  +(a1(1,1)*kk(1,2)+a1(1,2)*kk(2,2))*a2(2,2)
->            prod(2,1)=(a1(2,1)*kk(1,1)+a1(2,2)*kk(2,1))*a2(1,1)
->      &  +(a1(2,1)*kk(1,2)+a1(2,2)*kk(2,2))*a2(2,1)
->            prod(2,2)=(a1(2,1)*kk(1,1)+a1(2,2)*kk(2,1))*a2(1,2)
->      &  +(a1(2,1)*kk(1,2)+a1(2,2)*kk(2,2))*a2(2,2)
-> 
->       endif
-> c      call transpose2(a2(1,1),a2t(1,1))
-> 
-> crc      print *,transp
-> crc      print *,((prod_(i,j),i=1,2),j=1,2)
-> crc      print *,((prod(i,j),i=1,2),j=1,2)
-> 
->       return
->       end
-> 
index 2dacce9..379fef0 100644 (file)
@@ -7796,18 +7796,18 @@ c--------------------------------------------------------------------------
       logical lprn
       common /kutas/ lprn
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-C                                              
-C      Parallel       Antiparallel
-C                                             
-C          o             o         
-C         /l\           /j\       
-C        /   \         /   \      
-C       /| o |         | o |\     
-C     \ j|/k\|  /   \  |/k\|l /   
-C      \ /   \ /     \ /   \ /    
-C       o     o       o     o                
-C       i             i                     
-C
+C                                                                              C
+C      Parallel       Antiparallel                                             C
+C                                                                              C
+C          o             o                                                     C
+C         /l\           /j\                                                    C
+C        /   \         /   \                                                   C
+C       /| o |         | o |\                                                  C
+C     \ j|/k\|  /   \  |/k\|l /                                                C
+C      \ /   \ /     \ /   \ /                                                 C
+C       o     o       o     o                                                  C
+C       i             i                                                        C
+C                                                                              C
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
       itk=itortyp(itype(k))
       s1= scalar2(AEAb1(1,2,imat),CUgb2(1,i))
@@ -7901,18 +7901,18 @@ c----------------------------------------------------------------------------
       logical lprn
       common /kutas/ lprn
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-C                                              
-C      Parallel       Antiparallel
-C                                             
-C          o             o         
-C     \   /l\           /j\   /   
-C      \ /   \         /   \ /    
-C       o| o |         | o |o     
-C     \ j|/k\|      \  |/k\|l     
-C      \ /   \       \ /   \      
-C       o             o                      
-C       i             i                     
-C
+C                                                                              C
+C      Parallel       Antiparallel                                             C
+C                                                                              C
+C          o             o                                                     C
+C     \   /l\           /j\   /                                                C
+C      \ /   \         /   \ /                                                 C
+C       o| o |         | o |o                                                  C
+C     \ j|/k\|      \  |/k\|l                                                  C
+C      \ /   \       \ /   \                                                   C
+C       o             o                                                        C
+C       i             i                                                        C
+C                                                                              C
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
 cd      write (2,*) 'eello6_graph2: i,',i,' j',j,' k',k,' l',l
 C AL 7/4/01 s1 would occur in the sixth-order moment, 
@@ -8083,18 +8083,18 @@ c----------------------------------------------------------------------------
       double precision vv(2),pizda(2,2),auxmat(2,2),auxvec(2)
       logical swap
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-C                                              
-C      Parallel       Antiparallel
-C                                             
-C          o             o         
-C         /l\   /   \   /j\       
-C        /   \ /     \ /   \      
-C       /| o |o       o| o |\     
-C       j|/k\|  /      |/k\|l /   
-C        /   \ /       /   \ /    
-C       /     o       /     o                
-C       i             i                     
-C
+C                                                                              C
+C      Parallel       Antiparallel                                             C
+C                                                                              C
+C          o             o                                                     C
+C         /l\   /   \   /j\                                                    C 
+C        /   \ /     \ /   \                                                   C
+C       /| o |o       o| o |\                                                  C
+C       j|/k\|  /      |/k\|l /                                                C
+C        /   \ /       /   \ /                                                 C
+C       /     o       /     o                                                  C
+C       i             i                                                        C
+C                                                                              C
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
 C
 C 4/7/01 AL Component s1 was removed, because it pertains to the respective 
@@ -8200,18 +8200,18 @@ c----------------------------------------------------------------------------
      & auxvec1(2),auxmat1(2,2)
       logical swap
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-C                                              
-C      Parallel       Antiparallel
-C                                             
-C          o             o         
-C         /l\   /   \   /j\       
-C        /   \ /     \ /   \      
-C       /| o |o       o| o |\     
-C     \ j|/k\|      \  |/k\|l     
-C      \ /   \       \ /   \      
-C       o     \       o     \                
-C       i             i                     
-C
+C                                                                              C
+C      Parallel       Antiparallel                                             C
+C                                                                              C
+C          o             o                                                     C
+C         /l\   /   \   /j\                                                    C
+C        /   \ /     \ /   \                                                   C
+C       /| o |o       o| o |\                                                  C
+C     \ j|/k\|      \  |/k\|l                                                  C
+C      \ /   \       \ /   \                                                   C
+C       o     \       o     \                                                  C
+C       i             i                                                        C
+C                                                                              C
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
 C
 C 4/7/01 AL Component s1 was removed, because it pertains to the respective 
diff --git a/source/unres/src_MD-M/log b/source/unres/src_MD-M/log
deleted file mode 100644 (file)
index f597549..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-cc -o compinfo compinfo.c
-./compinfo
-ifort -c -O3 -ip -w  -I/opt/mpi/mvapich/include  cinfo.f
-/opt/mpi/mvapich/bin/mpif77 -static-libcxa -O3 -ip -w  unres.o arcos.o cartprint.o chainbuild.o convert.o initialize_p.o matmult.o readrtns_CSA.o parmread.o gen_rand_conf.o printmat.o map.o pinorm.o randgens.o rescode.o intcor.o timing.o misc.o intlocal.o cartder.o checkder_p.o energy_p_new.o gradient_p.o minimize_p.o sumsld.o cored.o rmdd.o geomout.o readpdb.o regularize.o thread.o fitsq.o mcm.o mc.o bond_move.o refsys.o check_sc_distr.o contact.o djacob.o eigen.o blas.o add.o entmcm.o minim_mcmf.o together.o csa.o minim_jlee.o shift.o diff12.o bank.o newconf.o ran.o indexx.o MP.o compare_s1.o prng_32.o test.o banach.o distfit.o rmsd.o elecont.o dihed_cons.o sc_move.o local_move.o intcartderiv.o lagrangian_lesyng.o stochfric.o kinetic_lesyng.o MD.o moments.o int_to_cart.o surfatom.o sort.o muca_md.o MREMD.o rattle.o gauss.o energy_split.o q_measure3.o econstr_local.o gnmr1.o check_sc_map.o check_bond.o cinfo.o -L/opt/mpi/mvapich/lib -lmpich -lpthread xdrf_em64/libxdrf.a -g -d2 -CA -CB  -o unres_Tc_procor_new_em64-350-fg.exe
-ipo: remark #11000: performing multi-file optimizations
-ipo: remark #11005: generating object file /tmp/ipo_ifort9ElZJ5.o
-energy_p_new.F(2967): (col. 13) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(1286): (col. 7) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(1290): (col. 7) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(1294): (col. 7) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(344): (col. 9) remark: PARTIAL LOOP WAS VECTORIZED.
-energy_p_new.F(344): (col. 9) remark: PARTIAL LOOP WAS VECTORIZED.
-energy_p_new.F(388): (col. 7) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(287): (col. 9) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(91): (col. 14) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(139): (col. 14) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(213): (col. 12) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(1191): (col. 18) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(1191): (col. 18) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(1191): (col. 18) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(1065): (col. 18) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(1065): (col. 18) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(1065): (col. 18) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(922): (col. 18) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(922): (col. 18) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(922): (col. 18) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(800): (col. 7) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(711): (col. 7) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(1530): (col. 13) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(1538): (col. 18) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(1539): (col. 18) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(1540): (col. 18) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(1541): (col. 18) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(1585): (col. 13) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(1593): (col. 18) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(1594): (col. 18) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(1595): (col. 18) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(1596): (col. 18) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(1607): (col. 11) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(1959): (col. 7) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(1964): (col. 7) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(2119): (col. 11) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(2125): (col. 11) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(2128): (col. 11) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(2203): (col. 16) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(2209): (col. 11) remark: PARTIAL LOOP WAS VECTORIZED.
-energy_p_new.F(2209): (col. 11) remark: PARTIAL LOOP WAS VECTORIZED.
-energy_p_new.F(2255): (col. 11) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(2336): (col. 11) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(2349): (col. 15) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(2362): (col. 13) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(2400): (col. 11) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(2410): (col. 11) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(2577): (col. 17) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(2581): (col. 17) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(2595): (col. 17) remark: PARTIAL LOOP WAS VECTORIZED.
-energy_p_new.F(1815): (col. 13) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(1830): (col. 9) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(1838): (col. 9) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(3060): (col. 13) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(3082): (col. 7) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(3278): (col. 9) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(3295): (col. 13) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(3323): (col. 13) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(3132): (col. 16) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(3132): (col. 16) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(3132): (col. 16) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(3149): (col. 9) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(3577): (col. 9) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(3589): (col. 11) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(3596): (col. 11) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(3610): (col. 11) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(3617): (col. 11) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(3624): (col. 11) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(3643): (col. 9) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(3666): (col. 11) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(3691): (col. 13) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(4071): (col. 9) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(4078): (col. 9) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(4082): (col. 9) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(4116): (col. 9) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(4275): (col. 8) remark: PARTIAL LOOP WAS VECTORIZED.
-energy_p_new.F(4275): (col. 8) remark: PARTIAL LOOP WAS VECTORIZED.
-energy_p_new.F(4292): (col. 10) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(4275): (col. 8) remark: PARTIAL LOOP WAS VECTORIZED.
-energy_p_new.F(4275): (col. 8) remark: PARTIAL LOOP WAS VECTORIZED.
-energy_p_new.F(4275): (col. 8) remark: PARTIAL LOOP WAS VECTORIZED.
-energy_p_new.F(4275): (col. 8) remark: PARTIAL LOOP WAS VECTORIZED.
-energy_p_new.F(4275): (col. 8) remark: PARTIAL LOOP WAS VECTORIZED.
-energy_p_new.F(4275): (col. 8) remark: PARTIAL LOOP WAS VECTORIZED.
-energy_p_new.F(4275): (col. 8) remark: PARTIAL LOOP WAS VECTORIZED.
-energy_p_new.F(4317): (col. 8) remark: PARTIAL LOOP WAS VECTORIZED.
-energy_p_new.F(4317): (col. 8) remark: PARTIAL LOOP WAS VECTORIZED.
-energy_p_new.F(5292): (col. 17) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(6392): (col. 7) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(7186): (col. 7) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(6038): (col. 7) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(5897): (col. 7) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(5443): (col. 7) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(5465): (col. 13) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(5474): (col. 7) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(5478): (col. 7) remark: LOOP WAS VECTORIZED.
-energy_p_new.F(5508): (col. 9) remark: PERMUTED LOOP WAS VECTORIZED.
-energy_p_new.F(5061): (col. 7) remark: LOOP WAS VECTORIZED.
-lagrangian_lesyng.F(522): (col. 9) remark: LOOP WAS VECTORIZED.
-lagrangian_lesyng.F(464): (col. 9) remark: LOOP WAS VECTORIZED.
-lagrangian_lesyng.F(158): (col. 7) remark: PERMUTED LOOP WAS VECTORIZED.
-lagrangian_lesyng.F(166): (col. 7) remark: LOOP WAS VECTORIZED.
-lagrangian_lesyng.F(243): (col. 10) remark: LOOP WAS VECTORIZED.
-lagrangian_lesyng.F(254): (col. 7) remark: PARTIAL LOOP WAS VECTORIZED.
-lagrangian_lesyng.F(303): (col. 9) remark: LOOP WAS VECTORIZED.
-lagrangian_lesyng.F(318): (col. 7) remark: PARTIAL LOOP WAS VECTORIZED.
-lagrangian_lesyng.F(318): (col. 7) remark: PERMUTED LOOP WAS VECTORIZED.
-lagrangian_lesyng.F(318): (col. 7) remark: PERMUTED LOOP WAS VECTORIZED.
-lagrangian_lesyng.F(318): (col. 7) remark: PERMUTED LOOP WAS VECTORIZED.
-lagrangian_lesyng.F(24): (col. 8) remark: LOOP WAS VECTORIZED.
-lagrangian_lesyng.F(67): (col. 12) remark: LOOP WAS VECTORIZED.
-lagrangian_lesyng.F(70): (col. 7) remark: LOOP WAS VECTORIZED.
-lagrangian_lesyng.F(95): (col. 8) remark: LOOP WAS VECTORIZED.
-mv unres_Tc_procor_new_em64-350-fg.exe ../bin
index d77c5a4..f023520 100644 (file)
@@ -1,5 +1,6 @@
 #include <stdlib.h>
 #include <math.h>
+#include <stdio.h>
 
 #ifdef CRAY
 void PROC_PROC(long int *f, int *i)
index 2117e93..d94d221 100644 (file)
@@ -80,7 +80,8 @@ c ntrial : number of trial conformations per seed.
 c ntry : total number of trial conformations including seed conformations.
 
        idum2=-123
-       imax=2**31-1
+c       imax=2**31-1
+       imax=huge(0)
        ENDIF
 
        call mpi_bcast(jend,1,mpi_integer,0,CG_COMM,ierr)
index 127056b..0039fcc 100644 (file)
@@ -600,11 +600,11 @@ c Broadcast the order to compute internal coordinates to the slaves.
       write (istat,'(a5,20a12)')"#    ",
      &   (wname(print_order(i)),i=1,nprint_ene)
       write (istat,'("#    ",20(1pe12.4))')
-         (weights(print_order(i)),i=1,nprint_ene)
+     &   (weights(print_order(i)),i=1,nprint_ene)
       if (refstr) then
         write (istat,'(a5,20a12)')"#    ",
      &   (ename(print_order(i)),i=1,nprint_ene),
-     &   ,"ETOT total","RMSD","nat.contact","nnt.contact"
+     &   "ETOT total","RMSD","nat.contact","nnt.contact"
       else
         write (istat,'(a5,14a12)')"#    ",
      &   (ename(print_order(i)),i=1,nprint_ene),"ETOT total"
diff --git a/source/unres/src_MD-M/xdrf-Argonne/Makefile b/source/unres/src_MD-M/xdrf-Argonne/Makefile
deleted file mode 100644 (file)
index f03276e..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-# This make file is part of the xdrf package.
-#
-# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-#
-# 2006 modified by Cezary Czaplewski
-
-# Set C compiler and flags for ARCH
-CC      = cc
-CFLAGS         = -O 
-
-M4     = m4
-M4FILE = underscore.m4
-
-libxdrf.a:  libxdrf.o ftocstr.o
-       ar cr libxdrf.a $?
-
-clean:
-       rm -f libxdrf.o ftocstr.o libxdrf.a 
-
-ftocstr.o: ftocstr.c
-       $(CC) $(CFLAGS) -c ftocstr.c
-
-libxdrf.o:     libxdrf.m4 $(M4FILE)
-       $(M4) $(M4FILE) libxdrf.m4 > libxdrf.c
-       $(CC) $(CFLAGS) -c libxdrf.c
-       rm -f libxdrf.c
-
diff --git a/source/unres/src_MD-M/xdrf-Argonne/Makefile_jubl b/source/unres/src_MD-M/xdrf-Argonne/Makefile_jubl
deleted file mode 100644 (file)
index 8dc35cf..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-# This make file is part of the xdrf package.
-#
-# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-#
-# 2006 modified by Cezary Czaplewski
-
-# Set C compiler and flags for ARCH
-BGLSYS = /bgl/BlueLight/ppcfloor/bglsys
-
-CC = /usr/bin/blrts_xlc
-CPPC = /usr/bin/blrts_xlc
-
-CFLAGS= -O2 -I$(BGLSYS)/include -L$(BGLSYS)/lib -qarch=440d -qtune=440
-
-M4     = m4
-M4FILE = RS6K.m4
-
-libxdrf.a:  libxdrf.o ftocstr.o xdr_array.o  xdr.o  xdr_float.o  xdr_stdio.o
-       ar cr libxdrf.a $?
-
-clean:
-       rm -f *.o libxdrf.a 
-
-ftocstr.o: ftocstr.c
-       $(CC) $(CFLAGS) -c ftocstr.c
-
-libxdrf.o:     libxdrf.m4 $(M4FILE)
-       $(M4) $(M4FILE) libxdrf.m4 > libxdrf.c
-       $(CC) $(CFLAGS) -c libxdrf.c
-#      rm -f libxdrf.c
-
diff --git a/source/unres/src_MD-M/xdrf-Argonne/Makefile_linux b/source/unres/src_MD-M/xdrf-Argonne/Makefile_linux
deleted file mode 100644 (file)
index f03276e..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-# This make file is part of the xdrf package.
-#
-# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-#
-# 2006 modified by Cezary Czaplewski
-
-# Set C compiler and flags for ARCH
-CC      = cc
-CFLAGS         = -O 
-
-M4     = m4
-M4FILE = underscore.m4
-
-libxdrf.a:  libxdrf.o ftocstr.o
-       ar cr libxdrf.a $?
-
-clean:
-       rm -f libxdrf.o ftocstr.o libxdrf.a 
-
-ftocstr.o: ftocstr.c
-       $(CC) $(CFLAGS) -c ftocstr.c
-
-libxdrf.o:     libxdrf.m4 $(M4FILE)
-       $(M4) $(M4FILE) libxdrf.m4 > libxdrf.c
-       $(CC) $(CFLAGS) -c libxdrf.c
-       rm -f libxdrf.c
-
diff --git a/source/unres/src_MD-M/xdrf-Argonne/Makefile~ b/source/unres/src_MD-M/xdrf-Argonne/Makefile~
deleted file mode 100644 (file)
index f0f81e5..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-# This make file is part of the xdrf package.
-#
-# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-#
-# 2006 modified by Cezary Czaplewski
-
-# Set C compiler and flags for ARCH
-BGLSYS = /bgl/BlueLight/ppcfloor/bglsys
-
-CC = /usr/bin/blrts_xlc
-CPPC = /usr/bin/blrts_xlc
-
-CFLAGS= -O2 -I$(BGLSYS)/include -L$(BGLSYS)/lib -qarch=440d -qtune=440
-
-M4     = m4
-M4FILE = RS6K.m4
-
-libxdrf.a:  libxdrf.o ftocstr.o xdr_array.o  xdr.o  xdr_float.o  xdr_stdio.o
-       ar cr libxdrf.a $?
-
-clean:
-       rm -f libxdrf.o ftocstr.o libxdrf.a 
-
-ftocstr.o: ftocstr.c
-       $(CC) $(CFLAGS) -c ftocstr.c
-
-libxdrf.o:     libxdrf.m4 $(M4FILE)
-       $(M4) $(M4FILE) libxdrf.m4 > libxdrf.c
-       $(CC) $(CFLAGS) -c libxdrf.c
-#      rm -f libxdrf.c
-
diff --git a/source/unres/src_MD-M/xdrf-Argonne/RS6K.m4 b/source/unres/src_MD-M/xdrf-Argonne/RS6K.m4
deleted file mode 100644 (file)
index 0331d97..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-divert(-1)
-undefine(`len')
-#
-# do nothing special to FORTRAN function names
-#
-define(`FUNCTION',`$1')
-#
-# FORTRAN character strings are passed as follows:
-# a pointer to the base of the string is passed in the normal
-# argument list, and the length is passed by value as an extra
-# argument, after all of the other arguments.
-#
-define(`ARGS',`($1`'undivert(1))')
-define(`SAVE',`divert(1)$1`'divert(0)')
-define(`STRING_ARG',`$1_ptr`'SAVE(`, $1_len')')
-define(`STRING_ARG_DECL',`char * $1_ptr; int $1_len')
-define(`STRING_LEN',`$1_len')
-define(`STRING_PTR',`$1_ptr')
-divert(0)
-
diff --git a/source/unres/src_MD-M/xdrf-Argonne/ftocstr.c b/source/unres/src_MD-M/xdrf-Argonne/ftocstr.c
deleted file mode 100644 (file)
index ed2113f..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-int ftocstr(ds, dl, ss, sl)
-    char *ds, *ss;      /* dst, src ptrs */
-    int dl;             /* dst max len */
-    int sl;             /* src len */
-{
-    char *p;
-
-    for (p = ss + sl; --p >= ss && *p == ' '; ) ;
-    sl = p - ss + 1;
-    dl--;
-    ds[0] = 0;
-    if (sl > dl)
-        return 1;
-    while (sl--)
-       (*ds++ = *ss++);
-    *ds = '\0';
-    return 0;
-}
-
-
-int ctofstr(ds, dl, ss)
-       char *ds;               /* dest space */
-       int dl;                 /* max dest length */
-       char *ss;               /* src string (0-term) */
-{
-    while (dl && *ss) {
-       *ds++ = *ss++;
-       dl--;
-    }
-    while (dl--)
-       *ds++ = ' ';
-    return 0;
-}
diff --git a/source/unres/src_MD-M/xdrf-Argonne/ftocstr.o b/source/unres/src_MD-M/xdrf-Argonne/ftocstr.o
deleted file mode 100644 (file)
index 5c772f5..0000000
Binary files a/source/unres/src_MD-M/xdrf-Argonne/ftocstr.o and /dev/null differ
diff --git a/source/unres/src_MD-M/xdrf-Argonne/libxdrf.a b/source/unres/src_MD-M/xdrf-Argonne/libxdrf.a
deleted file mode 100644 (file)
index a55cff1..0000000
Binary files a/source/unres/src_MD-M/xdrf-Argonne/libxdrf.a and /dev/null differ
diff --git a/source/unres/src_MD-M/xdrf-Argonne/libxdrf.m4 b/source/unres/src_MD-M/xdrf-Argonne/libxdrf.m4
deleted file mode 100644 (file)
index a6da458..0000000
+++ /dev/null
@@ -1,1238 +0,0 @@
-/*____________________________________________________________________________
- |
- | libxdrf - portable fortran interface to xdr. some xdr routines
- |          are C routines for compressed coordinates
- |
- | version 1.1
- |
- | This collection of routines is intended to write and read
- | data in a portable way to a file, so data written on one type
- | of machine can be read back on a different type.
- |
- | all fortran routines use an integer 'xdrid', which is an id to the
- | current xdr file, and is set by xdrfopen.
- | most routines have in integer 'ret' which is the return value.
- | The value of 'ret' is zero on failure, and most of the time one
- | on succes.
- |
- | There are three routines useful for C users:
- |  xdropen(), xdrclose(), xdr3dfcoord().
- | The first two replace xdrstdio_create and xdr_destroy, and *must* be
- | used when you plan to use xdr3dfcoord(). (they are also a bit
- | easier to interface). For writing data other than compressed coordinates 
- | you should use the standard C xdr routines (see xdr man page)
- |
- | xdrfopen(xdrid, filename, mode, ret)
- |     character *(*) filename
- |     character *(*) mode
- |
- |     this will open the file with the given filename (string)
- |     and the given mode, it returns an id in xdrid, which is
- |     to be used in all other calls to xdrf routines.
- |     mode is 'w' to create, or update an file, for all other
- |     values of mode the file is opened for reading
- |
- |     you need to call xdrfclose to flush the output and close
- |     the file.
- |     Note that you should not use xdrstdio_create, which comes with the
- |     standard xdr library
- |
- | xdrfclose(xdrid, ret)
- |     flush the data to the file, and closes the file;
- |     You should not use xdr_destroy (which comes standard with
- |     the xdr libraries.
- |
- | xdrfbool(xdrid, bp, ret)
- |     integer pb
- |
- |     This filter produces values of either 1 or 0    
- |
- | xdrfchar(xdrid, cp, ret)
- |     character cp
- |
- |     filter that translate between characters and their xdr representation
- |     Note that the characters in not compressed and occupies 4 bytes.
- |
- | xdrfdouble(xdrid, dp, ret)
- |     double dp
- |
- |     read/write a double.
- |
- | xdrffloat(xdrid, fp, ret)
- |     float fp
- |
- |     read/write a float.
- |
- | xdrfint(xdrid, ip, ret)
- |     integer ip
- |
- |     read/write integer.
- |
- | xdrflong(xdrid, lp, ret)
- |     integer lp
- |
- |     this routine has a possible portablility problem due to 64 bits longs.
- |
- | xdrfshort(xdrid, sp, ret)
- |     integer *2 sp
- |
- | xdrfstring(xdrid, sp, maxsize, ret)
- |     character *(*)
- |     integer maxsize
- |
- |     read/write a string, with maximum length given by maxsize
- |
- | xdrfwrapstring(xdris, sp, ret)
- |     character *(*)
- |
- |     read/write a string (it is the same as xdrfstring accept that it finds
- |     the stringlength itself.
- |
- | xdrfvector(xdrid, cp, size, xdrfproc, ret)
- |     character *(*)
- |     integer size
- |     external xdrfproc
- |
- |     read/write an array pointed to by cp, with number of elements
- |     defined by 'size'. the routine 'xdrfproc' is the name
- |     of one of the above routines to read/write data (like xdrfdouble)
- |     In contrast with the c-version you don't need to specify the
- |     byte size of an element.
- |     xdrfstring is not allowed here (it is in the c version)
- |     
- | xdrf3dfcoord(xdrid, fp, size, precision, ret)
- |     real (*) fp
- |     real precision
- |     integer size
- |
- |     this is *NOT* a standard xdr routine. I named it this way, because
- |     it invites people to use the other xdr routines.
- |     It is introduced to store specifically 3d coordinates of molecules
- |     (as found in molecular dynamics) and it writes it in a compressed way.
- |     It starts by multiplying all numbers by precision and
- |     rounding the result to integer. effectively converting
- |     all floating point numbers to fixed point.
- |     it uses an algorithm for compression that is optimized for
- |     molecular data, but could be used for other 3d coordinates
- |     as well. There is subtantial overhead involved, so call this
- |     routine only if you have a large number of coordinates to read/write
- |
- | ________________________________________________________________________
- |
- | Below are the routines to be used by C programmers. Use the 'normal'
- | xdr routines to write integers, floats, etc (see man xdr)   
- |
- | int xdropen(XDR *xdrs, const char *filename, const char *type)
- |     This will open the file with the given filename and the 
- |     given mode. You should pass it an allocated XDR struct
- |     in xdrs, to be used in all other calls to xdr routines.
- |     Mode is 'w' to create, or update an file, and for all 
- |     other values of mode the file is opened for reading. 
- |     You need to call xdrclose to flush the output and close
- |     the file.
- |
- |     Note that you should not use xdrstdio_create, which
- |     comes with the standard xdr library.
- |
- | int xdrclose(XDR *xdrs)
- |     Flush the data to the file, and close the file;
- |     You should not use xdr_destroy (which comes standard
- |     with the xdr libraries).
- |      
- | int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision)
- |     This is \fInot\fR a standard xdr routine. I named it this 
- |     way, because it invites people to use the other xdr 
- |     routines.
- |
- |     (c) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-*/     
-
-
-#include <limits.h>
-#include <malloc.h>
-#include <math.h>
-/* #include <rpc/rpc.h>
-#include <rpc/xdr.h> */
-#include "xdr.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include "xdrf.h"
-
-int ftocstr(char *, int, char *, int);
-int ctofstr(char *, int, char *);
-
-#define MAXID 20
-static FILE *xdrfiles[MAXID];
-static XDR *xdridptr[MAXID];
-static char xdrmodes[MAXID];
-static unsigned int cnt;
-
-typedef void (* FUNCTION(xdrfproc)) (int *, void *, int *);
-
-void
-FUNCTION(xdrfbool) ARGS(`xdrid, pb, ret')
-int *xdrid, *ret;
-int *pb;
-{
-       *ret = xdr_bool(xdridptr[*xdrid], (bool_t *) pb);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrfchar) ARGS(`xdrid, cp, ret')
-int *xdrid, *ret;
-char *cp;
-{
-       *ret = xdr_char(xdridptr[*xdrid], cp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfdouble) ARGS(`xdrid, dp, ret')
-int *xdrid, *ret;
-double *dp;
-{
-       *ret = xdr_double(xdridptr[*xdrid], dp);
-       cnt += sizeof(double);
-}
-
-void
-FUNCTION(xdrffloat) ARGS(`xdrid, fp, ret')
-int *xdrid, *ret;
-float *fp;
-{
-       *ret = xdr_float(xdridptr[*xdrid], fp);
-       cnt += sizeof(float);
-}
-
-void
-FUNCTION(xdrfint) ARGS(`xdrid, ip, ret')
-int *xdrid, *ret;
-int *ip;
-{
-       *ret = xdr_int(xdridptr[*xdrid], ip);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrflong) ARGS(`xdrid, lp, ret')
-int *xdrid, *ret;
-long *lp;
-{
-       *ret = xdr_long(xdridptr[*xdrid], lp);
-       cnt += sizeof(long);
-}
-
-void
-FUNCTION(xdrfshort) ARGS(`xdrid, sp, ret')
-int *xdrid, *ret;
-short *sp;
-{
-       *ret = xdr_short(xdridptr[*xdrid], sp);
-       cnt += sizeof(sp);
-}
-
-void
-FUNCTION(xdrfuchar) ARGS(`xdrid, ucp, ret')
-int *xdrid, *ret;
-char *ucp;
-{
-       *ret = xdr_u_char(xdridptr[*xdrid], ucp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfulong) ARGS(`xdrid, ulp, ret')
-int *xdrid, *ret;
-unsigned long *ulp;
-{
-       *ret = xdr_u_long(xdridptr[*xdrid], ulp);
-       cnt += sizeof(unsigned long);
-}
-
-void
-FUNCTION(xdrfushort) ARGS(`xdrid, usp, ret')
-int *xdrid, *ret;
-unsigned short *usp;
-{
-       *ret = xdr_u_short(xdridptr[*xdrid], usp);
-       cnt += sizeof(unsigned short);
-}
-
-void 
-FUNCTION(xdrf3dfcoord) ARGS(`xdrid, fp, size, precision, ret')
-int *xdrid, *ret;
-float *fp;
-int *size;
-float *precision;
-{
-       *ret = xdr3dfcoord(xdridptr[*xdrid], fp, size, precision);
-}
-
-void
-FUNCTION(xdrfstring) ARGS(`xdrid, STRING_ARG(sp), maxsize, ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-int *maxsize;
-{
-       char *tsp;
-
-       tsp = (char*) malloc(((STRING_LEN(sp)) + 1) * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, *maxsize+1, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int) *maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += *maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfwrapstring) ARGS(`xdrid,  STRING_ARG(sp), ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-{
-       char *tsp;
-       int maxsize;
-       maxsize = (STRING_LEN(sp)) + 1;
-       tsp = (char*) malloc(maxsize * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, maxsize, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int)maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfopaque) ARGS(`xdrid, cp, ccnt, ret')
-int *xdrid, *ret;
-caddr_t *cp;
-int *ccnt;
-{
-       *ret = xdr_opaque(xdridptr[*xdrid], (caddr_t)*cp, (u_int)*ccnt);
-       cnt += *ccnt;
-}
-
-void
-FUNCTION(xdrfsetpos) ARGS(`xdrid, pos, ret')
-int *xdrid, *ret;
-int *pos;
-{
-       *ret = xdr_setpos(xdridptr[*xdrid], (u_int) *pos);
-}
-
-void
-FUNCTION(xdrf) ARGS(`xdrid, pos')
-int *xdrid, *pos;
-{
-       *pos = xdr_getpos(xdridptr[*xdrid]);
-}
-
-void
-FUNCTION(xdrfvector) ARGS(`xdrid, cp, size, elproc, ret')
-int *xdrid, *ret;
-char *cp;
-int *size;
-FUNCTION(xdrfproc) elproc;
-{
-       int lcnt;
-       cnt = 0;
-       for (lcnt = 0; lcnt < *size; lcnt++) {
-               elproc(xdrid, (cp+cnt) , ret);
-       }
-}
-
-
-void
-FUNCTION(xdrfclose) ARGS(`xdrid, ret')
-int *xdrid;
-int *ret;
-{
-       *ret = xdrclose(xdridptr[*xdrid]);
-       cnt = 0;
-}
-
-void
-FUNCTION(xdrfopen) ARGS(`xdrid,  STRING_ARG(fp), STRING_ARG(mode), ret')
-int *xdrid;
-STRING_ARG_DECL(fp);
-STRING_ARG_DECL(mode);
-int *ret;
-{
-       char fname[512];
-       char fmode[3];
-
-       if (ftocstr(fname, sizeof(fname), STRING_PTR(fp), STRING_LEN(fp))) {
-               *ret = 0;
-       }
-       if (ftocstr(fmode, sizeof(fmode), STRING_PTR(mode),
-                       STRING_LEN(mode))) {
-               *ret = 0;
-       }
-
-       *xdrid = xdropen(NULL, fname, fmode);
-       if (*xdrid == 0)
-               *ret = 0;
-       else 
-               *ret = 1;       
-}
-
-/*___________________________________________________________________________
- |
- | what follows are the C routines for opening, closing xdr streams
- | and the routine to read/write compressed coordinates together
- | with some routines to assist in this task (those are marked
- | static and cannot be called from user programs)
-*/
-#define MAXABS INT_MAX-2
-
-#ifndef MIN
-#define MIN(x,y) ((x) < (y) ? (x):(y))
-#endif
-#ifndef MAX
-#define MAX(x,y) ((x) > (y) ? (x):(y))
-#endif
-#ifndef SQR
-#define SQR(x) ((x)*(x))
-#endif
-static int magicints[] = {
-    0, 0, 0, 0, 0, 0, 0, 0, 0,
-    8, 10, 12, 16, 20, 25, 32, 40, 50, 64,
-    80, 101, 128, 161, 203, 256, 322, 406, 512, 645,
-    812, 1024, 1290, 1625, 2048, 2580, 3250, 4096, 5060, 6501,
-    8192, 10321, 13003, 16384, 20642, 26007, 32768, 41285, 52015, 65536,
-    82570, 104031, 131072, 165140, 208063, 262144, 330280, 416127, 524287, 660561,
-    832255, 1048576, 1321122, 1664510, 2097152, 2642245, 3329021, 4194304, 5284491, 6658042,
-    8388607, 10568983, 13316085, 16777216 };
-
-#define FIRSTIDX 9
-/* note that magicints[FIRSTIDX-1] == 0 */
-#define LASTIDX (sizeof(magicints) / sizeof(*magicints))
-
-
-/*__________________________________________________________________________
- |
- | xdropen - open xdr file
- |
- | This versions differs from xdrstdio_create, because I need to know
- | the state of the file (read or write) so I can use xdr3dfcoord
- | in eigther read or write mode, and the file descriptor
- | so I can close the file (something xdr_destroy doesn't do).
- |
-*/
-
-int xdropen(XDR *xdrs, const char *filename, const char *type) {
-    static int init_done = 0;
-    enum xdr_op lmode;
-    const char *type1;
-    int xdrid;
-    
-    if (init_done == 0) {
-       for (xdrid = 1; xdrid < MAXID; xdrid++) {
-           xdridptr[xdrid] = NULL;
-       }
-       init_done = 1;
-    }
-    xdrid = 1;
-    while (xdrid < MAXID && xdridptr[xdrid] != NULL) {
-       xdrid++;
-    }
-    if (xdrid == MAXID) {
-       return 0;
-    }
-    if (*type == 'w' || *type == 'W') {
-           type = "w+";
-           type1 = "w+";
-           lmode = XDR_ENCODE;
-    } else if (*type == 'a' || *type == 'A') {
-           type = "w+";
-            type1 = "a+";
-           lmode = XDR_ENCODE;
-    } else {
-           type = "r";
-            type1 = "r";
-           lmode = XDR_DECODE;
-    }
-    xdrfiles[xdrid] = fopen(filename, type1);
-    if (xdrfiles[xdrid] == NULL) {
-       xdrs = NULL;
-       return 0;
-    }
-    xdrmodes[xdrid] = *type;
-    /* next test isn't usefull in the case of C language
-     * but is used for the Fortran interface
-     * (C users are expected to pass the address of an already allocated
-     * XDR staructure)
-     */
-    if (xdrs == NULL) {
-       xdridptr[xdrid] = (XDR *) malloc(sizeof(XDR));
-       xdrstdio_create(xdridptr[xdrid], xdrfiles[xdrid], lmode);
-    } else {
-       xdridptr[xdrid] = xdrs;
-       xdrstdio_create(xdrs, xdrfiles[xdrid], lmode);
-    }
-    return xdrid;
-}
-
-/*_________________________________________________________________________
- |
- | xdrclose - close a xdr file
- |
- | This will flush the xdr buffers, and destroy the xdr stream.
- | It also closes the associated file descriptor (this is *not*
- | done by xdr_destroy).
- |
-*/
-int xdrclose(XDR *xdrs) {
-    int xdrid;
-    
-    if (xdrs == NULL) {
-       fprintf(stderr, "xdrclose: passed a NULL pointer\n");
-       exit(1);
-    }
-    for (xdrid = 1; xdrid < MAXID; xdrid++) {
-       if (xdridptr[xdrid] == xdrs) {
-           
-           xdr_destroy(xdrs);
-           fclose(xdrfiles[xdrid]);
-           xdridptr[xdrid] = NULL;
-           return 1;
-       }
-    } 
-    fprintf(stderr, "xdrclose: no such open xdr file\n");
-    exit(1);
-    
-}
-
-/*____________________________________________________________________________
- |
- | sendbits - encode num into buf using the specified number of bits
- |
- | This routines appends the value of num to the bits already present in
- | the array buf. You need to give it the number of bits to use and you
- | better make sure that this number of bits is enough to hold the value
- | Also num must be positive.
- |
-*/
-
-static void sendbits(int buf[], int num_of_bits, int num) {
-    
-    unsigned int cnt, lastbyte;
-    int lastbits;
-    unsigned char * cbuf;
-    
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = (unsigned int) buf[0];
-    lastbits = buf[1];
-    lastbyte =(unsigned int) buf[2];
-    while (num_of_bits >= 8) {
-       lastbyte = (lastbyte << 8) | ((num >> (num_of_bits -8)) /* & 0xff*/);
-       cbuf[cnt++] = lastbyte >> lastbits;
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       lastbyte = (lastbyte << num_of_bits) | num;
-       lastbits += num_of_bits;
-       if (lastbits >= 8) {
-           lastbits -= 8;
-           cbuf[cnt++] = lastbyte >> lastbits;
-       }
-    }
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    if (lastbits>0) {
-       cbuf[cnt] = lastbyte << (8 - lastbits);
-    }
-}
-
-/*_________________________________________________________________________
- |
- | sizeofint - calculate bitsize of an integer
- |
- | return the number of bits needed to store an integer with given max size
- |
-*/
-
-static int sizeofint(const int size) {
-    unsigned int num = 1;
-    int num_of_bits = 0;
-    
-    while (size >= num && num_of_bits < 32) {
-       num_of_bits++;
-       num <<= 1;
-    }
-    return num_of_bits;
-}
-
-/*___________________________________________________________________________
- |
- | sizeofints - calculate 'bitsize' of compressed ints
- |
- | given the number of small unsigned integers and the maximum value
- | return the number of bits needed to read or write them with the
- | routines receiveints and sendints. You need this parameter when
- | calling these routines. Note that for many calls I can use
- | the variable 'smallidx' which is exactly the number of bits, and
- | So I don't need to call 'sizeofints for those calls.
-*/
-
-static int sizeofints( const int num_of_ints, unsigned int sizes[]) {
-    int i, num;
-    unsigned int num_of_bytes, num_of_bits, bytes[32], bytecnt, tmp;
-    num_of_bytes = 1;
-    bytes[0] = 1;
-    num_of_bits = 0;
-    for (i=0; i < num_of_ints; i++) {  
-       tmp = 0;
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    num = 1;
-    num_of_bytes--;
-    while (bytes[num_of_bytes] >= num) {
-       num_of_bits++;
-       num *= 2;
-    }
-    return num_of_bits + num_of_bytes * 8;
-
-}
-    
-/*____________________________________________________________________________
- |
- | sendints - send a small set of small integers in compressed format
- |
- | this routine is used internally by xdr3dfcoord, to send a set of
- | small integers to the buffer. 
- | Multiplication with fixed (specified maximum ) sizes is used to get
- | to one big, multibyte integer. Allthough the routine could be
- | modified to handle sizes bigger than 16777216, or more than just
- | a few integers, this is not done, because the gain in compression
- | isn't worth the effort. Note that overflowing the multiplication
- | or the byte buffer (32 bytes) is unchecked and causes bad results.
- |
- */
-static void sendints(int buf[], const int num_of_ints, const int num_of_bits,
-       unsigned int sizes[], unsigned int nums[]) {
-
-    int i;
-    unsigned int bytes[32], num_of_bytes, bytecnt, tmp;
-
-    tmp = nums[0];
-    num_of_bytes = 0;
-    do {
-       bytes[num_of_bytes++] = tmp & 0xff;
-       tmp >>= 8;
-    } while (tmp != 0);
-
-    for (i = 1; i < num_of_ints; i++) {
-       if (nums[i] >= sizes[i]) {
-           fprintf(stderr,"major breakdown in sendints num %d doesn't "
-                   "match size %d\n", nums[i], sizes[i]);
-           exit(1);
-       }
-       /* use one step multiply */    
-       tmp = nums[i];
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    if (num_of_bits >= num_of_bytes * 8) {
-       for (i = 0; i < num_of_bytes; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits - num_of_bytes * 8, 0);
-    } else {
-       for (i = 0; i < num_of_bytes-1; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits- (num_of_bytes -1) * 8, bytes[i]);
-    }
-}
-
-
-/*___________________________________________________________________________
- |
- | receivebits - decode number from buf using specified number of bits
- | 
- | extract the number of bits from the array buf and construct an integer
- | from it. Return that value.
- |
-*/
-
-static int receivebits(int buf[], int num_of_bits) {
-
-    int cnt, num; 
-    unsigned int lastbits, lastbyte;
-    unsigned char * cbuf;
-    int mask = (1 << num_of_bits) -1;
-
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = buf[0];
-    lastbits = (unsigned int) buf[1];
-    lastbyte = (unsigned int) buf[2];
-    
-    num = 0;
-    while (num_of_bits >= 8) {
-       lastbyte = ( lastbyte << 8 ) | cbuf[cnt++];
-       num |=  (lastbyte >> lastbits) << (num_of_bits - 8);
-       num_of_bits -=8;
-    }
-    if (num_of_bits > 0) {
-       if (lastbits < num_of_bits) {
-           lastbits += 8;
-           lastbyte = (lastbyte << 8) | cbuf[cnt++];
-       }
-       lastbits -= num_of_bits;
-       num |= (lastbyte >> lastbits) & ((1 << num_of_bits) -1);
-    }
-    num &= mask;
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    return num; 
-}
-
-/*____________________________________________________________________________
- |
- | receiveints - decode 'small' integers from the buf array
- |
- | this routine is the inverse from sendints() and decodes the small integers
- | written to buf by calculating the remainder and doing divisions with
- | the given sizes[]. You need to specify the total number of bits to be
- | used from buf in num_of_bits.
- |
-*/
-
-static void receiveints(int buf[], const int num_of_ints, int num_of_bits,
-       unsigned int sizes[], int nums[]) {
-    int bytes[32];
-    int i, j, num_of_bytes, p, num;
-    
-    bytes[1] = bytes[2] = bytes[3] = 0;
-    num_of_bytes = 0;
-    while (num_of_bits > 8) {
-       bytes[num_of_bytes++] = receivebits(buf, 8);
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       bytes[num_of_bytes++] = receivebits(buf, num_of_bits);
-    }
-    for (i = num_of_ints-1; i > 0; i--) {
-       num = 0;
-       for (j = num_of_bytes-1; j >=0; j--) {
-           num = (num << 8) | bytes[j];
-           p = num / sizes[i];
-           bytes[j] = p;
-           num = num - p * sizes[i];
-       }
-       nums[i] = num;
-    }
-    nums[0] = bytes[0] | (bytes[1] << 8) | (bytes[2] << 16) | (bytes[3] << 24);
-}
-    
-/*____________________________________________________________________________
- |
- | xdr3dfcoord - read or write compressed 3d coordinates to xdr file.
- |
- | this routine reads or writes (depending on how you opened the file with
- | xdropen() ) a large number of 3d coordinates (stored in *fp).
- | The number of coordinates triplets to write is given by *size. On
- | read this number may be zero, in which case it reads as many as were written
- | or it may specify the number if triplets to read (which should match the
- | number written).
- | Compression is achieved by first converting all floating numbers to integer
- | using multiplication by *precision and rounding to the nearest integer.
- | Then the minimum and maximum value are calculated to determine the range.
- | The limited range of integers so found, is used to compress the coordinates.
- | In addition the differences between succesive coordinates is calculated.
- | If the difference happens to be 'small' then only the difference is saved,
- | compressing the data even more. The notion of 'small' is changed dynamically
- | and is enlarged or reduced whenever needed or possible.
- | Extra compression is achieved in the case of GROMOS and coordinates of
- | water molecules. GROMOS first writes out the Oxygen position, followed by
- | the two hydrogens. In order to make the differences smaller (and thereby
- | compression the data better) the order is changed into first one hydrogen
- | then the oxygen, followed by the other hydrogen. This is rather special, but
- | it shouldn't harm in the general case.
- |
- */
-int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) {
-    
-
-    static int *ip = NULL;
-    static int oldsize;
-    static int *buf;
-
-    int minint[3], maxint[3], mindiff, *lip, diff;
-    int lint1, lint2, lint3, oldlint1, oldlint2, oldlint3, smallidx;
-    int minidx, maxidx;
-    unsigned sizeint[3], sizesmall[3], bitsizeint[3], size3, *luip;
-    int flag, k;
-    int small, smaller, larger, i, is_small, is_smaller, run, prevrun;
-    float *lfp, lf;
-    int tmp, *thiscoord,  prevcoord[3];
-    unsigned int tmpcoord[30];
-
-    int bufsize, xdrid, lsize;
-    unsigned int bitsize;
-    float inv_precision;
-    int errval = 1;
-
-    /* find out if xdrs is opened for reading or for writing */
-    xdrid = 0;
-    while (xdridptr[xdrid] != xdrs) {
-       xdrid++;
-       if (xdrid >= MAXID) {
-           fprintf(stderr, "xdr error. no open xdr stream\n");
-           exit (1);
-       }
-    }
-    if (xdrmodes[xdrid] == 'w') {
-
-       /* xdrs is open for writing */
-
-       if (xdr_int(xdrs, size) == 0)
-           return 0;
-       size3 = *size * 3;
-       /* when the number of coordinates is small, don't try to compress; just
-        * write them as floats using xdr_vector
-        */
-       if (*size <= 9 ) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       /* buf[0-2] are special and do not contain actual data */
-       buf[0] = buf[1] = buf[2] = 0;
-       minint[0] = minint[1] = minint[2] = INT_MAX;
-       maxint[0] = maxint[1] = maxint[2] = INT_MIN;
-       prevrun = -1;
-       lfp = fp;
-       lip = ip;
-       mindiff = INT_MAX;
-       oldlint1 = oldlint2 = oldlint3 = 0;
-       while(lfp < fp + size3 ) {
-           /* find nearest integer */
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint1 = lf;
-           if (lint1 < minint[0]) minint[0] = lint1;
-           if (lint1 > maxint[0]) maxint[0] = lint1;
-           *lip++ = lint1;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint2 = lf;
-           if (lint2 < minint[1]) minint[1] = lint2;
-           if (lint2 > maxint[1]) maxint[1] = lint2;
-           *lip++ = lint2;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint3 = lf;
-           if (lint3 < minint[2]) minint[2] = lint3;
-           if (lint3 > maxint[2]) maxint[2] = lint3;
-           *lip++ = lint3;
-           lfp++;
-           diff = abs(oldlint1-lint1)+abs(oldlint2-lint2)+abs(oldlint3-lint3);
-           if (diff < mindiff && lfp > fp + 3)
-               mindiff = diff;
-           oldlint1 = lint1;
-           oldlint2 = lint2;
-           oldlint3 = lint3;
-       }
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-       
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-       
-       if ((float)maxint[0] - (float)minint[0] >= MAXABS ||
-               (float)maxint[1] - (float)minint[1] >= MAXABS ||
-               (float)maxint[2] - (float)minint[2] >= MAXABS) {
-           /* turning value in unsigned by subtracting minint
-            * would cause overflow
-            */
-           errval = 0;
-       }
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       lip = ip;
-       luip = (unsigned int *) ip;
-       smallidx = FIRSTIDX;
-       while (smallidx < LASTIDX && magicints[smallidx] < mindiff) {
-           smallidx++;
-       }
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-       larger = magicints[maxidx] / 2;
-       i = 0;
-       while (i < *size) {
-           is_small = 0;
-           thiscoord = (int *)(luip) + i * 3;
-           if (smallidx < maxidx && i >= 1 &&
-                   abs(thiscoord[0] - prevcoord[0]) < larger &&
-                   abs(thiscoord[1] - prevcoord[1]) < larger &&
-                   abs(thiscoord[2] - prevcoord[2]) < larger) {
-               is_smaller = 1;
-           } else if (smallidx > minidx) {
-               is_smaller = -1;
-           } else {
-               is_smaller = 0;
-           }
-           if (i + 1 < *size) {
-               if (abs(thiscoord[0] - thiscoord[3]) < small &&
-                       abs(thiscoord[1] - thiscoord[4]) < small &&
-                       abs(thiscoord[2] - thiscoord[5]) < small) {
-                   /* interchange first with second atom for better
-                    * compression of water molecules
-                    */
-                   tmp = thiscoord[0]; thiscoord[0] = thiscoord[3];
-                       thiscoord[3] = tmp;
-                   tmp = thiscoord[1]; thiscoord[1] = thiscoord[4];
-                       thiscoord[4] = tmp;
-                   tmp = thiscoord[2]; thiscoord[2] = thiscoord[5];
-                       thiscoord[5] = tmp;
-                   is_small = 1;
-               }
-    
-           }
-           tmpcoord[0] = thiscoord[0] - minint[0];
-           tmpcoord[1] = thiscoord[1] - minint[1];
-           tmpcoord[2] = thiscoord[2] - minint[2];
-           if (bitsize == 0) {
-               sendbits(buf, bitsizeint[0], tmpcoord[0]);
-               sendbits(buf, bitsizeint[1], tmpcoord[1]);
-               sendbits(buf, bitsizeint[2], tmpcoord[2]);
-           } else {
-               sendints(buf, 3, bitsize, sizeint, tmpcoord);
-           }
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           thiscoord = thiscoord + 3;
-           i++;
-           
-           run = 0;
-           if (is_small == 0 && is_smaller == -1)
-               is_smaller = 0;
-           while (is_small && run < 8*3) {
-               if (is_smaller == -1 && (
-                       SQR(thiscoord[0] - prevcoord[0]) +
-                       SQR(thiscoord[1] - prevcoord[1]) +
-                       SQR(thiscoord[2] - prevcoord[2]) >= smaller * smaller)) {
-                   is_smaller = 0;
-               }
-
-               tmpcoord[run++] = thiscoord[0] - prevcoord[0] + small;
-               tmpcoord[run++] = thiscoord[1] - prevcoord[1] + small;
-               tmpcoord[run++] = thiscoord[2] - prevcoord[2] + small;
-               
-               prevcoord[0] = thiscoord[0];
-               prevcoord[1] = thiscoord[1];
-               prevcoord[2] = thiscoord[2];
-
-               i++;
-               thiscoord = thiscoord + 3;
-               is_small = 0;
-               if (i < *size &&
-                       abs(thiscoord[0] - prevcoord[0]) < small &&
-                       abs(thiscoord[1] - prevcoord[1]) < small &&
-                       abs(thiscoord[2] - prevcoord[2]) < small) {
-                   is_small = 1;
-               }
-           }
-           if (run != prevrun || is_smaller != 0) {
-               prevrun = run;
-               sendbits(buf, 1, 1); /* flag the change in run-length */
-               sendbits(buf, 5, run+is_smaller+1);
-           } else {
-               sendbits(buf, 1, 0); /* flag the fact that runlength did not change */
-           }
-           for (k=0; k < run; k+=3) {
-               sendints(buf, 3, smallidx, sizesmall, &tmpcoord[k]);    
-           }
-           if (is_smaller != 0) {
-               smallidx += is_smaller;
-               if (is_smaller < 0) {
-                   small = smaller;
-                   smaller = magicints[smallidx-1] / 2;
-               } else {
-                   smaller = small;
-                   small = magicints[smallidx] / 2;
-               }
-               sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-           }
-       }
-       if (buf[1] != 0) buf[0]++;;
-       xdr_int(xdrs, &(buf[0])); /* buf[0] holds the length in bytes */
-       return errval * (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]));
-    } else {
-       
-       /* xdrs is open for reading */
-       
-       if (xdr_int(xdrs, &lsize) == 0) 
-           return 0;
-       if (*size != 0 && lsize != *size) {
-           fprintf(stderr, "wrong number of coordinates in xdr3dfcoor; "
-                   "%d arg vs %d in file", *size, lsize);
-       }
-       *size = lsize;
-       size3 = *size * 3;
-       if (*size <= 9) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-               
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       larger = magicints[maxidx];
-
-       /* buf[0] holds the length in bytes */
-
-       if (xdr_int(xdrs, &(buf[0])) == 0)
-           return 0;
-       if (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]) == 0)
-           return 0;
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       lfp = fp;
-       inv_precision = 1.0 / * precision;
-       run = 0;
-       i = 0;
-       lip = ip;
-       while ( i < lsize ) {
-           thiscoord = (int *)(lip) + i * 3;
-
-           if (bitsize == 0) {
-               thiscoord[0] = receivebits(buf, bitsizeint[0]);
-               thiscoord[1] = receivebits(buf, bitsizeint[1]);
-               thiscoord[2] = receivebits(buf, bitsizeint[2]);
-           } else {
-               receiveints(buf, 3, bitsize, sizeint, thiscoord);
-           }
-           
-           i++;
-           thiscoord[0] += minint[0];
-           thiscoord[1] += minint[1];
-           thiscoord[2] += minint[2];
-           
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           
-          
-           flag = receivebits(buf, 1);
-           is_smaller = 0;
-           if (flag == 1) {
-               run = receivebits(buf, 5);
-               is_smaller = run % 3;
-               run -= is_smaller;
-               is_smaller--;
-           }
-           if (run > 0) {
-               thiscoord += 3;
-               for (k = 0; k < run; k+=3) {
-                   receiveints(buf, 3, smallidx, sizesmall, thiscoord);
-                   i++;
-                   thiscoord[0] += prevcoord[0] - small;
-                   thiscoord[1] += prevcoord[1] - small;
-                   thiscoord[2] += prevcoord[2] - small;
-                   if (k == 0) {
-                       /* interchange first with second atom for better
-                        * compression of water molecules
-                        */
-                       tmp = thiscoord[0]; thiscoord[0] = prevcoord[0];
-                               prevcoord[0] = tmp;
-                       tmp = thiscoord[1]; thiscoord[1] = prevcoord[1];
-                               prevcoord[1] = tmp;
-                       tmp = thiscoord[2]; thiscoord[2] = prevcoord[2];
-                               prevcoord[2] = tmp;
-                       *lfp++ = prevcoord[0] * inv_precision;
-                       *lfp++ = prevcoord[1] * inv_precision;
-                       *lfp++ = prevcoord[2] * inv_precision;
-                   } else {
-                       prevcoord[0] = thiscoord[0];
-                       prevcoord[1] = thiscoord[1];
-                       prevcoord[2] = thiscoord[2];
-                   }
-                   *lfp++ = thiscoord[0] * inv_precision;
-                   *lfp++ = thiscoord[1] * inv_precision;
-                   *lfp++ = thiscoord[2] * inv_precision;
-               }
-           } else {
-               *lfp++ = thiscoord[0] * inv_precision;
-               *lfp++ = thiscoord[1] * inv_precision;
-               *lfp++ = thiscoord[2] * inv_precision;          
-           }
-           smallidx += is_smaller;
-           if (is_smaller < 0) {
-               small = smaller;
-               if (smallidx > FIRSTIDX) {
-                   smaller = magicints[smallidx - 1] /2;
-               } else {
-                   smaller = 0;
-               }
-           } else if (is_smaller > 0) {
-               smaller = small;
-               small = magicints[smallidx] / 2;
-           }
-           sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       }
-    }
-    return 1;
-}
-
-
-   
diff --git a/source/unres/src_MD-M/xdrf-Argonne/libxdrf.m4.org b/source/unres/src_MD-M/xdrf-Argonne/libxdrf.m4.org
deleted file mode 100644 (file)
index b14b374..0000000
+++ /dev/null
@@ -1,1230 +0,0 @@
-/*____________________________________________________________________________
- |
- | libxdrf - portable fortran interface to xdr. some xdr routines
- |          are C routines for compressed coordinates
- |
- | version 1.1
- |
- | This collection of routines is intended to write and read
- | data in a portable way to a file, so data written on one type
- | of machine can be read back on a different type.
- |
- | all fortran routines use an integer 'xdrid', which is an id to the
- | current xdr file, and is set by xdrfopen.
- | most routines have in integer 'ret' which is the return value.
- | The value of 'ret' is zero on failure, and most of the time one
- | on succes.
- |
- | There are three routines useful for C users:
- |  xdropen(), xdrclose(), xdr3dfcoord().
- | The first two replace xdrstdio_create and xdr_destroy, and *must* be
- | used when you plan to use xdr3dfcoord(). (they are also a bit
- | easier to interface). For writing data other than compressed coordinates 
- | you should use the standard C xdr routines (see xdr man page)
- |
- | xdrfopen(xdrid, filename, mode, ret)
- |     character *(*) filename
- |     character *(*) mode
- |
- |     this will open the file with the given filename (string)
- |     and the given mode, it returns an id in xdrid, which is
- |     to be used in all other calls to xdrf routines.
- |     mode is 'w' to create, or update an file, for all other
- |     values of mode the file is opened for reading
- |
- |     you need to call xdrfclose to flush the output and close
- |     the file.
- |     Note that you should not use xdrstdio_create, which comes with the
- |     standard xdr library
- |
- | xdrfclose(xdrid, ret)
- |     flush the data to the file, and closes the file;
- |     You should not use xdr_destroy (which comes standard with
- |     the xdr libraries.
- |
- | xdrfbool(xdrid, bp, ret)
- |     integer pb
- |
- |     This filter produces values of either 1 or 0    
- |
- | xdrfchar(xdrid, cp, ret)
- |     character cp
- |
- |     filter that translate between characters and their xdr representation
- |     Note that the characters in not compressed and occupies 4 bytes.
- |
- | xdrfdouble(xdrid, dp, ret)
- |     double dp
- |
- |     read/write a double.
- |
- | xdrffloat(xdrid, fp, ret)
- |     float fp
- |
- |     read/write a float.
- |
- | xdrfint(xdrid, ip, ret)
- |     integer ip
- |
- |     read/write integer.
- |
- | xdrflong(xdrid, lp, ret)
- |     integer lp
- |
- |     this routine has a possible portablility problem due to 64 bits longs.
- |
- | xdrfshort(xdrid, sp, ret)
- |     integer *2 sp
- |
- | xdrfstring(xdrid, sp, maxsize, ret)
- |     character *(*)
- |     integer maxsize
- |
- |     read/write a string, with maximum length given by maxsize
- |
- | xdrfwrapstring(xdris, sp, ret)
- |     character *(*)
- |
- |     read/write a string (it is the same as xdrfstring accept that it finds
- |     the stringlength itself.
- |
- | xdrfvector(xdrid, cp, size, xdrfproc, ret)
- |     character *(*)
- |     integer size
- |     external xdrfproc
- |
- |     read/write an array pointed to by cp, with number of elements
- |     defined by 'size'. the routine 'xdrfproc' is the name
- |     of one of the above routines to read/write data (like xdrfdouble)
- |     In contrast with the c-version you don't need to specify the
- |     byte size of an element.
- |     xdrfstring is not allowed here (it is in the c version)
- |     
- | xdrf3dfcoord(xdrid, fp, size, precision, ret)
- |     real (*) fp
- |     real precision
- |     integer size
- |
- |     this is *NOT* a standard xdr routine. I named it this way, because
- |     it invites people to use the other xdr routines.
- |     It is introduced to store specifically 3d coordinates of molecules
- |     (as found in molecular dynamics) and it writes it in a compressed way.
- |     It starts by multiplying all numbers by precision and
- |     rounding the result to integer. effectively converting
- |     all floating point numbers to fixed point.
- |     it uses an algorithm for compression that is optimized for
- |     molecular data, but could be used for other 3d coordinates
- |     as well. There is subtantial overhead involved, so call this
- |     routine only if you have a large number of coordinates to read/write
- |
- | ________________________________________________________________________
- |
- | Below are the routines to be used by C programmers. Use the 'normal'
- | xdr routines to write integers, floats, etc (see man xdr)   
- |
- | int xdropen(XDR *xdrs, const char *filename, const char *type)
- |     This will open the file with the given filename and the 
- |     given mode. You should pass it an allocated XDR struct
- |     in xdrs, to be used in all other calls to xdr routines.
- |     Mode is 'w' to create, or update an file, and for all 
- |     other values of mode the file is opened for reading. 
- |     You need to call xdrclose to flush the output and close
- |     the file.
- |
- |     Note that you should not use xdrstdio_create, which
- |     comes with the standard xdr library.
- |
- | int xdrclose(XDR *xdrs)
- |     Flush the data to the file, and close the file;
- |     You should not use xdr_destroy (which comes standard
- |     with the xdr libraries).
- |      
- | int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision)
- |     This is \fInot\fR a standard xdr routine. I named it this 
- |     way, because it invites people to use the other xdr 
- |     routines.
- |
- |     (c) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-*/     
-
-
-#include <limits.h>
-#include <malloc.h>
-#include <math.h>
-#include <rpc/rpc.h>
-#include <rpc/xdr.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include "xdrf.h"
-
-int ftocstr(char *, int, char *, int);
-int ctofstr(char *, int, char *);
-
-#define MAXID 20
-static FILE *xdrfiles[MAXID];
-static XDR *xdridptr[MAXID];
-static char xdrmodes[MAXID];
-static unsigned int cnt;
-
-typedef void (* FUNCTION(xdrfproc)) (int *, void *, int *);
-
-void
-FUNCTION(xdrfbool) ARGS(`xdrid, pb, ret')
-int *xdrid, *ret;
-int *pb;
-{
-       *ret = xdr_bool(xdridptr[*xdrid], (bool_t *) pb);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrfchar) ARGS(`xdrid, cp, ret')
-int *xdrid, *ret;
-char *cp;
-{
-       *ret = xdr_char(xdridptr[*xdrid], cp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfdouble) ARGS(`xdrid, dp, ret')
-int *xdrid, *ret;
-double *dp;
-{
-       *ret = xdr_double(xdridptr[*xdrid], dp);
-       cnt += sizeof(double);
-}
-
-void
-FUNCTION(xdrffloat) ARGS(`xdrid, fp, ret')
-int *xdrid, *ret;
-float *fp;
-{
-       *ret = xdr_float(xdridptr[*xdrid], fp);
-       cnt += sizeof(float);
-}
-
-void
-FUNCTION(xdrfint) ARGS(`xdrid, ip, ret')
-int *xdrid, *ret;
-int *ip;
-{
-       *ret = xdr_int(xdridptr[*xdrid], ip);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrflong) ARGS(`xdrid, lp, ret')
-int *xdrid, *ret;
-long *lp;
-{
-       *ret = xdr_long(xdridptr[*xdrid], lp);
-       cnt += sizeof(long);
-}
-
-void
-FUNCTION(xdrfshort) ARGS(`xdrid, sp, ret')
-int *xdrid, *ret;
-short *sp;
-{
-       *ret = xdr_short(xdridptr[*xdrid], sp);
-       cnt += sizeof(sp);
-}
-
-void
-FUNCTION(xdrfuchar) ARGS(`xdrid, ucp, ret')
-int *xdrid, *ret;
-char *ucp;
-{
-       *ret = xdr_u_char(xdridptr[*xdrid], ucp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfulong) ARGS(`xdrid, ulp, ret')
-int *xdrid, *ret;
-unsigned long *ulp;
-{
-       *ret = xdr_u_long(xdridptr[*xdrid], ulp);
-       cnt += sizeof(unsigned long);
-}
-
-void
-FUNCTION(xdrfushort) ARGS(`xdrid, usp, ret')
-int *xdrid, *ret;
-unsigned short *usp;
-{
-       *ret = xdr_u_short(xdridptr[*xdrid], usp);
-       cnt += sizeof(unsigned short);
-}
-
-void 
-FUNCTION(xdrf3dfcoord) ARGS(`xdrid, fp, size, precision, ret')
-int *xdrid, *ret;
-float *fp;
-int *size;
-float *precision;
-{
-       *ret = xdr3dfcoord(xdridptr[*xdrid], fp, size, precision);
-}
-
-void
-FUNCTION(xdrfstring) ARGS(`xdrid, STRING_ARG(sp), maxsize, ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-int *maxsize;
-{
-       char *tsp;
-
-       tsp = (char*) malloc(((STRING_LEN(sp)) + 1) * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, *maxsize+1, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int) *maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += *maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfwrapstring) ARGS(`xdrid,  STRING_ARG(sp), ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-{
-       char *tsp;
-       int maxsize;
-       maxsize = (STRING_LEN(sp)) + 1;
-       tsp = (char*) malloc(maxsize * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, maxsize, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int)maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfopaque) ARGS(`xdrid, cp, ccnt, ret')
-int *xdrid, *ret;
-caddr_t *cp;
-int *ccnt;
-{
-       *ret = xdr_opaque(xdridptr[*xdrid], (caddr_t)*cp, (u_int)*ccnt);
-       cnt += *ccnt;
-}
-
-void
-FUNCTION(xdrfsetpos) ARGS(`xdrid, pos, ret')
-int *xdrid, *ret;
-int *pos;
-{
-       *ret = xdr_setpos(xdridptr[*xdrid], (u_int) *pos);
-}
-
-void
-FUNCTION(xdrf) ARGS(`xdrid, pos')
-int *xdrid, *pos;
-{
-       *pos = xdr_getpos(xdridptr[*xdrid]);
-}
-
-void
-FUNCTION(xdrfvector) ARGS(`xdrid, cp, size, elproc, ret')
-int *xdrid, *ret;
-char *cp;
-int *size;
-FUNCTION(xdrfproc) elproc;
-{
-       int lcnt;
-       cnt = 0;
-       for (lcnt = 0; lcnt < *size; lcnt++) {
-               elproc(xdrid, (cp+cnt) , ret);
-       }
-}
-
-
-void
-FUNCTION(xdrfclose) ARGS(`xdrid, ret')
-int *xdrid;
-int *ret;
-{
-       *ret = xdrclose(xdridptr[*xdrid]);
-       cnt = 0;
-}
-
-void
-FUNCTION(xdrfopen) ARGS(`xdrid,  STRING_ARG(fp), STRING_ARG(mode), ret')
-int *xdrid;
-STRING_ARG_DECL(fp);
-STRING_ARG_DECL(mode);
-int *ret;
-{
-       char fname[512];
-       char fmode[3];
-
-       if (ftocstr(fname, sizeof(fname), STRING_PTR(fp), STRING_LEN(fp))) {
-               *ret = 0;
-       }
-       if (ftocstr(fmode, sizeof(fmode), STRING_PTR(mode),
-                       STRING_LEN(mode))) {
-               *ret = 0;
-       }
-
-       *xdrid = xdropen(NULL, fname, fmode);
-       if (*xdrid == 0)
-               *ret = 0;
-       else 
-               *ret = 1;       
-}
-
-/*___________________________________________________________________________
- |
- | what follows are the C routines for opening, closing xdr streams
- | and the routine to read/write compressed coordinates together
- | with some routines to assist in this task (those are marked
- | static and cannot be called from user programs)
-*/
-#define MAXABS INT_MAX-2
-
-#ifndef MIN
-#define MIN(x,y) ((x) < (y) ? (x):(y))
-#endif
-#ifndef MAX
-#define MAX(x,y) ((x) > (y) ? (x):(y))
-#endif
-#ifndef SQR
-#define SQR(x) ((x)*(x))
-#endif
-static int magicints[] = {
-    0, 0, 0, 0, 0, 0, 0, 0, 0,
-    8, 10, 12, 16, 20, 25, 32, 40, 50, 64,
-    80, 101, 128, 161, 203, 256, 322, 406, 512, 645,
-    812, 1024, 1290, 1625, 2048, 2580, 3250, 4096, 5060, 6501,
-    8192, 10321, 13003, 16384, 20642, 26007, 32768, 41285, 52015, 65536,
-    82570, 104031, 131072, 165140, 208063, 262144, 330280, 416127, 524287, 660561,
-    832255, 1048576, 1321122, 1664510, 2097152, 2642245, 3329021, 4194304, 5284491, 6658042,
-    8388607, 10568983, 13316085, 16777216 };
-
-#define FIRSTIDX 9
-/* note that magicints[FIRSTIDX-1] == 0 */
-#define LASTIDX (sizeof(magicints) / sizeof(*magicints))
-
-
-/*__________________________________________________________________________
- |
- | xdropen - open xdr file
- |
- | This versions differs from xdrstdio_create, because I need to know
- | the state of the file (read or write) so I can use xdr3dfcoord
- | in eigther read or write mode, and the file descriptor
- | so I can close the file (something xdr_destroy doesn't do).
- |
-*/
-
-int xdropen(XDR *xdrs, const char *filename, const char *type) {
-    static int init_done = 0;
-    enum xdr_op lmode;
-    int xdrid;
-    
-    if (init_done == 0) {
-       for (xdrid = 1; xdrid < MAXID; xdrid++) {
-           xdridptr[xdrid] = NULL;
-       }
-       init_done = 1;
-    }
-    xdrid = 1;
-    while (xdrid < MAXID && xdridptr[xdrid] != NULL) {
-       xdrid++;
-    }
-    if (xdrid == MAXID) {
-       return 0;
-    }
-    if (*type == 'w' || *type == 'W') {
-           type = "w+";
-           lmode = XDR_ENCODE;
-    } else {
-           type = "r";
-           lmode = XDR_DECODE;
-    }
-    xdrfiles[xdrid] = fopen(filename, type);
-    if (xdrfiles[xdrid] == NULL) {
-       xdrs = NULL;
-       return 0;
-    }
-    xdrmodes[xdrid] = *type;
-    /* next test isn't usefull in the case of C language
-     * but is used for the Fortran interface
-     * (C users are expected to pass the address of an already allocated
-     * XDR staructure)
-     */
-    if (xdrs == NULL) {
-       xdridptr[xdrid] = (XDR *) malloc(sizeof(XDR));
-       xdrstdio_create(xdridptr[xdrid], xdrfiles[xdrid], lmode);
-    } else {
-       xdridptr[xdrid] = xdrs;
-       xdrstdio_create(xdrs, xdrfiles[xdrid], lmode);
-    }
-    return xdrid;
-}
-
-/*_________________________________________________________________________
- |
- | xdrclose - close a xdr file
- |
- | This will flush the xdr buffers, and destroy the xdr stream.
- | It also closes the associated file descriptor (this is *not*
- | done by xdr_destroy).
- |
-*/
-int xdrclose(XDR *xdrs) {
-    int xdrid;
-    
-    if (xdrs == NULL) {
-       fprintf(stderr, "xdrclose: passed a NULL pointer\n");
-       exit(1);
-    }
-    for (xdrid = 1; xdrid < MAXID; xdrid++) {
-       if (xdridptr[xdrid] == xdrs) {
-           
-           xdr_destroy(xdrs);
-           fclose(xdrfiles[xdrid]);
-           xdridptr[xdrid] = NULL;
-           return 1;
-       }
-    } 
-    fprintf(stderr, "xdrclose: no such open xdr file\n");
-    exit(1);
-    
-}
-
-/*____________________________________________________________________________
- |
- | sendbits - encode num into buf using the specified number of bits
- |
- | This routines appends the value of num to the bits already present in
- | the array buf. You need to give it the number of bits to use and you
- | better make sure that this number of bits is enough to hold the value
- | Also num must be positive.
- |
-*/
-
-static void sendbits(int buf[], int num_of_bits, int num) {
-    
-    unsigned int cnt, lastbyte;
-    int lastbits;
-    unsigned char * cbuf;
-    
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = (unsigned int) buf[0];
-    lastbits = buf[1];
-    lastbyte =(unsigned int) buf[2];
-    while (num_of_bits >= 8) {
-       lastbyte = (lastbyte << 8) | ((num >> (num_of_bits -8)) /* & 0xff*/);
-       cbuf[cnt++] = lastbyte >> lastbits;
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       lastbyte = (lastbyte << num_of_bits) | num;
-       lastbits += num_of_bits;
-       if (lastbits >= 8) {
-           lastbits -= 8;
-           cbuf[cnt++] = lastbyte >> lastbits;
-       }
-    }
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    if (lastbits>0) {
-       cbuf[cnt] = lastbyte << (8 - lastbits);
-    }
-}
-
-/*_________________________________________________________________________
- |
- | sizeofint - calculate bitsize of an integer
- |
- | return the number of bits needed to store an integer with given max size
- |
-*/
-
-static int sizeofint(const int size) {
-    unsigned int num = 1;
-    int num_of_bits = 0;
-    
-    while (size >= num && num_of_bits < 32) {
-       num_of_bits++;
-       num <<= 1;
-    }
-    return num_of_bits;
-}
-
-/*___________________________________________________________________________
- |
- | sizeofints - calculate 'bitsize' of compressed ints
- |
- | given the number of small unsigned integers and the maximum value
- | return the number of bits needed to read or write them with the
- | routines receiveints and sendints. You need this parameter when
- | calling these routines. Note that for many calls I can use
- | the variable 'smallidx' which is exactly the number of bits, and
- | So I don't need to call 'sizeofints for those calls.
-*/
-
-static int sizeofints( const int num_of_ints, unsigned int sizes[]) {
-    int i, num;
-    unsigned int num_of_bytes, num_of_bits, bytes[32], bytecnt, tmp;
-    num_of_bytes = 1;
-    bytes[0] = 1;
-    num_of_bits = 0;
-    for (i=0; i < num_of_ints; i++) {  
-       tmp = 0;
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    num = 1;
-    num_of_bytes--;
-    while (bytes[num_of_bytes] >= num) {
-       num_of_bits++;
-       num *= 2;
-    }
-    return num_of_bits + num_of_bytes * 8;
-
-}
-    
-/*____________________________________________________________________________
- |
- | sendints - send a small set of small integers in compressed format
- |
- | this routine is used internally by xdr3dfcoord, to send a set of
- | small integers to the buffer. 
- | Multiplication with fixed (specified maximum ) sizes is used to get
- | to one big, multibyte integer. Allthough the routine could be
- | modified to handle sizes bigger than 16777216, or more than just
- | a few integers, this is not done, because the gain in compression
- | isn't worth the effort. Note that overflowing the multiplication
- | or the byte buffer (32 bytes) is unchecked and causes bad results.
- |
- */
-static void sendints(int buf[], const int num_of_ints, const int num_of_bits,
-       unsigned int sizes[], unsigned int nums[]) {
-
-    int i;
-    unsigned int bytes[32], num_of_bytes, bytecnt, tmp;
-
-    tmp = nums[0];
-    num_of_bytes = 0;
-    do {
-       bytes[num_of_bytes++] = tmp & 0xff;
-       tmp >>= 8;
-    } while (tmp != 0);
-
-    for (i = 1; i < num_of_ints; i++) {
-       if (nums[i] >= sizes[i]) {
-           fprintf(stderr,"major breakdown in sendints num %d doesn't "
-                   "match size %d\n", nums[i], sizes[i]);
-           exit(1);
-       }
-       /* use one step multiply */    
-       tmp = nums[i];
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    if (num_of_bits >= num_of_bytes * 8) {
-       for (i = 0; i < num_of_bytes; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits - num_of_bytes * 8, 0);
-    } else {
-       for (i = 0; i < num_of_bytes-1; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits- (num_of_bytes -1) * 8, bytes[i]);
-    }
-}
-
-
-/*___________________________________________________________________________
- |
- | receivebits - decode number from buf using specified number of bits
- | 
- | extract the number of bits from the array buf and construct an integer
- | from it. Return that value.
- |
-*/
-
-static int receivebits(int buf[], int num_of_bits) {
-
-    int cnt, num; 
-    unsigned int lastbits, lastbyte;
-    unsigned char * cbuf;
-    int mask = (1 << num_of_bits) -1;
-
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = buf[0];
-    lastbits = (unsigned int) buf[1];
-    lastbyte = (unsigned int) buf[2];
-    
-    num = 0;
-    while (num_of_bits >= 8) {
-       lastbyte = ( lastbyte << 8 ) | cbuf[cnt++];
-       num |=  (lastbyte >> lastbits) << (num_of_bits - 8);
-       num_of_bits -=8;
-    }
-    if (num_of_bits > 0) {
-       if (lastbits < num_of_bits) {
-           lastbits += 8;
-           lastbyte = (lastbyte << 8) | cbuf[cnt++];
-       }
-       lastbits -= num_of_bits;
-       num |= (lastbyte >> lastbits) & ((1 << num_of_bits) -1);
-    }
-    num &= mask;
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    return num; 
-}
-
-/*____________________________________________________________________________
- |
- | receiveints - decode 'small' integers from the buf array
- |
- | this routine is the inverse from sendints() and decodes the small integers
- | written to buf by calculating the remainder and doing divisions with
- | the given sizes[]. You need to specify the total number of bits to be
- | used from buf in num_of_bits.
- |
-*/
-
-static void receiveints(int buf[], const int num_of_ints, int num_of_bits,
-       unsigned int sizes[], int nums[]) {
-    int bytes[32];
-    int i, j, num_of_bytes, p, num;
-    
-    bytes[1] = bytes[2] = bytes[3] = 0;
-    num_of_bytes = 0;
-    while (num_of_bits > 8) {
-       bytes[num_of_bytes++] = receivebits(buf, 8);
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       bytes[num_of_bytes++] = receivebits(buf, num_of_bits);
-    }
-    for (i = num_of_ints-1; i > 0; i--) {
-       num = 0;
-       for (j = num_of_bytes-1; j >=0; j--) {
-           num = (num << 8) | bytes[j];
-           p = num / sizes[i];
-           bytes[j] = p;
-           num = num - p * sizes[i];
-       }
-       nums[i] = num;
-    }
-    nums[0] = bytes[0] | (bytes[1] << 8) | (bytes[2] << 16) | (bytes[3] << 24);
-}
-    
-/*____________________________________________________________________________
- |
- | xdr3dfcoord - read or write compressed 3d coordinates to xdr file.
- |
- | this routine reads or writes (depending on how you opened the file with
- | xdropen() ) a large number of 3d coordinates (stored in *fp).
- | The number of coordinates triplets to write is given by *size. On
- | read this number may be zero, in which case it reads as many as were written
- | or it may specify the number if triplets to read (which should match the
- | number written).
- | Compression is achieved by first converting all floating numbers to integer
- | using multiplication by *precision and rounding to the nearest integer.
- | Then the minimum and maximum value are calculated to determine the range.
- | The limited range of integers so found, is used to compress the coordinates.
- | In addition the differences between succesive coordinates is calculated.
- | If the difference happens to be 'small' then only the difference is saved,
- | compressing the data even more. The notion of 'small' is changed dynamically
- | and is enlarged or reduced whenever needed or possible.
- | Extra compression is achieved in the case of GROMOS and coordinates of
- | water molecules. GROMOS first writes out the Oxygen position, followed by
- | the two hydrogens. In order to make the differences smaller (and thereby
- | compression the data better) the order is changed into first one hydrogen
- | then the oxygen, followed by the other hydrogen. This is rather special, but
- | it shouldn't harm in the general case.
- |
- */
-int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) {
-    
-
-    static int *ip = NULL;
-    static int oldsize;
-    static int *buf;
-
-    int minint[3], maxint[3], mindiff, *lip, diff;
-    int lint1, lint2, lint3, oldlint1, oldlint2, oldlint3, smallidx;
-    int minidx, maxidx;
-    unsigned sizeint[3], sizesmall[3], bitsizeint[3], size3, *luip;
-    int flag, k;
-    int small, smaller, larger, i, is_small, is_smaller, run, prevrun;
-    float *lfp, lf;
-    int tmp, *thiscoord,  prevcoord[3];
-    unsigned int tmpcoord[30];
-
-    int bufsize, xdrid, lsize;
-    unsigned int bitsize;
-    float inv_precision;
-    int errval = 1;
-
-    /* find out if xdrs is opened for reading or for writing */
-    xdrid = 0;
-    while (xdridptr[xdrid] != xdrs) {
-       xdrid++;
-       if (xdrid >= MAXID) {
-           fprintf(stderr, "xdr error. no open xdr stream\n");
-           exit (1);
-       }
-    }
-    if (xdrmodes[xdrid] == 'w') {
-
-       /* xdrs is open for writing */
-
-       if (xdr_int(xdrs, size) == 0)
-           return 0;
-       size3 = *size * 3;
-       /* when the number of coordinates is small, don't try to compress; just
-        * write them as floats using xdr_vector
-        */
-       if (*size <= 9 ) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       /* buf[0-2] are special and do not contain actual data */
-       buf[0] = buf[1] = buf[2] = 0;
-       minint[0] = minint[1] = minint[2] = INT_MAX;
-       maxint[0] = maxint[1] = maxint[2] = INT_MIN;
-       prevrun = -1;
-       lfp = fp;
-       lip = ip;
-       mindiff = INT_MAX;
-       oldlint1 = oldlint2 = oldlint3 = 0;
-       while(lfp < fp + size3 ) {
-           /* find nearest integer */
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint1 = lf;
-           if (lint1 < minint[0]) minint[0] = lint1;
-           if (lint1 > maxint[0]) maxint[0] = lint1;
-           *lip++ = lint1;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint2 = lf;
-           if (lint2 < minint[1]) minint[1] = lint2;
-           if (lint2 > maxint[1]) maxint[1] = lint2;
-           *lip++ = lint2;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint3 = lf;
-           if (lint3 < minint[2]) minint[2] = lint3;
-           if (lint3 > maxint[2]) maxint[2] = lint3;
-           *lip++ = lint3;
-           lfp++;
-           diff = abs(oldlint1-lint1)+abs(oldlint2-lint2)+abs(oldlint3-lint3);
-           if (diff < mindiff && lfp > fp + 3)
-               mindiff = diff;
-           oldlint1 = lint1;
-           oldlint2 = lint2;
-           oldlint3 = lint3;
-       }
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-       
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-       
-       if ((float)maxint[0] - (float)minint[0] >= MAXABS ||
-               (float)maxint[1] - (float)minint[1] >= MAXABS ||
-               (float)maxint[2] - (float)minint[2] >= MAXABS) {
-           /* turning value in unsigned by subtracting minint
-            * would cause overflow
-            */
-           errval = 0;
-       }
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       lip = ip;
-       luip = (unsigned int *) ip;
-       smallidx = FIRSTIDX;
-       while (smallidx < LASTIDX && magicints[smallidx] < mindiff) {
-           smallidx++;
-       }
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-       larger = magicints[maxidx] / 2;
-       i = 0;
-       while (i < *size) {
-           is_small = 0;
-           thiscoord = (int *)(luip) + i * 3;
-           if (smallidx < maxidx && i >= 1 &&
-                   abs(thiscoord[0] - prevcoord[0]) < larger &&
-                   abs(thiscoord[1] - prevcoord[1]) < larger &&
-                   abs(thiscoord[2] - prevcoord[2]) < larger) {
-               is_smaller = 1;
-           } else if (smallidx > minidx) {
-               is_smaller = -1;
-           } else {
-               is_smaller = 0;
-           }
-           if (i + 1 < *size) {
-               if (abs(thiscoord[0] - thiscoord[3]) < small &&
-                       abs(thiscoord[1] - thiscoord[4]) < small &&
-                       abs(thiscoord[2] - thiscoord[5]) < small) {
-                   /* interchange first with second atom for better
-                    * compression of water molecules
-                    */
-                   tmp = thiscoord[0]; thiscoord[0] = thiscoord[3];
-                       thiscoord[3] = tmp;
-                   tmp = thiscoord[1]; thiscoord[1] = thiscoord[4];
-                       thiscoord[4] = tmp;
-                   tmp = thiscoord[2]; thiscoord[2] = thiscoord[5];
-                       thiscoord[5] = tmp;
-                   is_small = 1;
-               }
-    
-           }
-           tmpcoord[0] = thiscoord[0] - minint[0];
-           tmpcoord[1] = thiscoord[1] - minint[1];
-           tmpcoord[2] = thiscoord[2] - minint[2];
-           if (bitsize == 0) {
-               sendbits(buf, bitsizeint[0], tmpcoord[0]);
-               sendbits(buf, bitsizeint[1], tmpcoord[1]);
-               sendbits(buf, bitsizeint[2], tmpcoord[2]);
-           } else {
-               sendints(buf, 3, bitsize, sizeint, tmpcoord);
-           }
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           thiscoord = thiscoord + 3;
-           i++;
-           
-           run = 0;
-           if (is_small == 0 && is_smaller == -1)
-               is_smaller = 0;
-           while (is_small && run < 8*3) {
-               if (is_smaller == -1 && (
-                       SQR(thiscoord[0] - prevcoord[0]) +
-                       SQR(thiscoord[1] - prevcoord[1]) +
-                       SQR(thiscoord[2] - prevcoord[2]) >= smaller * smaller)) {
-                   is_smaller = 0;
-               }
-
-               tmpcoord[run++] = thiscoord[0] - prevcoord[0] + small;
-               tmpcoord[run++] = thiscoord[1] - prevcoord[1] + small;
-               tmpcoord[run++] = thiscoord[2] - prevcoord[2] + small;
-               
-               prevcoord[0] = thiscoord[0];
-               prevcoord[1] = thiscoord[1];
-               prevcoord[2] = thiscoord[2];
-
-               i++;
-               thiscoord = thiscoord + 3;
-               is_small = 0;
-               if (i < *size &&
-                       abs(thiscoord[0] - prevcoord[0]) < small &&
-                       abs(thiscoord[1] - prevcoord[1]) < small &&
-                       abs(thiscoord[2] - prevcoord[2]) < small) {
-                   is_small = 1;
-               }
-           }
-           if (run != prevrun || is_smaller != 0) {
-               prevrun = run;
-               sendbits(buf, 1, 1); /* flag the change in run-length */
-               sendbits(buf, 5, run+is_smaller+1);
-           } else {
-               sendbits(buf, 1, 0); /* flag the fact that runlength did not change */
-           }
-           for (k=0; k < run; k+=3) {
-               sendints(buf, 3, smallidx, sizesmall, &tmpcoord[k]);    
-           }
-           if (is_smaller != 0) {
-               smallidx += is_smaller;
-               if (is_smaller < 0) {
-                   small = smaller;
-                   smaller = magicints[smallidx-1] / 2;
-               } else {
-                   smaller = small;
-                   small = magicints[smallidx] / 2;
-               }
-               sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-           }
-       }
-       if (buf[1] != 0) buf[0]++;;
-       xdr_int(xdrs, &(buf[0])); /* buf[0] holds the length in bytes */
-       return errval * (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]));
-    } else {
-       
-       /* xdrs is open for reading */
-       
-       if (xdr_int(xdrs, &lsize) == 0) 
-           return 0;
-       if (*size != 0 && lsize != *size) {
-           fprintf(stderr, "wrong number of coordinates in xdr3dfcoor; "
-                   "%d arg vs %d in file", *size, lsize);
-       }
-       *size = lsize;
-       size3 = *size * 3;
-       if (*size <= 9) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-               
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       larger = magicints[maxidx];
-
-       /* buf[0] holds the length in bytes */
-
-       if (xdr_int(xdrs, &(buf[0])) == 0)
-           return 0;
-       if (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]) == 0)
-           return 0;
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       lfp = fp;
-       inv_precision = 1.0 / * precision;
-       run = 0;
-       i = 0;
-       lip = ip;
-       while ( i < lsize ) {
-           thiscoord = (int *)(lip) + i * 3;
-
-           if (bitsize == 0) {
-               thiscoord[0] = receivebits(buf, bitsizeint[0]);
-               thiscoord[1] = receivebits(buf, bitsizeint[1]);
-               thiscoord[2] = receivebits(buf, bitsizeint[2]);
-           } else {
-               receiveints(buf, 3, bitsize, sizeint, thiscoord);
-           }
-           
-           i++;
-           thiscoord[0] += minint[0];
-           thiscoord[1] += minint[1];
-           thiscoord[2] += minint[2];
-           
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           
-          
-           flag = receivebits(buf, 1);
-           is_smaller = 0;
-           if (flag == 1) {
-               run = receivebits(buf, 5);
-               is_smaller = run % 3;
-               run -= is_smaller;
-               is_smaller--;
-           }
-           if (run > 0) {
-               thiscoord += 3;
-               for (k = 0; k < run; k+=3) {
-                   receiveints(buf, 3, smallidx, sizesmall, thiscoord);
-                   i++;
-                   thiscoord[0] += prevcoord[0] - small;
-                   thiscoord[1] += prevcoord[1] - small;
-                   thiscoord[2] += prevcoord[2] - small;
-                   if (k == 0) {
-                       /* interchange first with second atom for better
-                        * compression of water molecules
-                        */
-                       tmp = thiscoord[0]; thiscoord[0] = prevcoord[0];
-                               prevcoord[0] = tmp;
-                       tmp = thiscoord[1]; thiscoord[1] = prevcoord[1];
-                               prevcoord[1] = tmp;
-                       tmp = thiscoord[2]; thiscoord[2] = prevcoord[2];
-                               prevcoord[2] = tmp;
-                       *lfp++ = prevcoord[0] * inv_precision;
-                       *lfp++ = prevcoord[1] * inv_precision;
-                       *lfp++ = prevcoord[2] * inv_precision;
-                   } else {
-                       prevcoord[0] = thiscoord[0];
-                       prevcoord[1] = thiscoord[1];
-                       prevcoord[2] = thiscoord[2];
-                   }
-                   *lfp++ = thiscoord[0] * inv_precision;
-                   *lfp++ = thiscoord[1] * inv_precision;
-                   *lfp++ = thiscoord[2] * inv_precision;
-               }
-           } else {
-               *lfp++ = thiscoord[0] * inv_precision;
-               *lfp++ = thiscoord[1] * inv_precision;
-               *lfp++ = thiscoord[2] * inv_precision;          
-           }
-           smallidx += is_smaller;
-           if (is_smaller < 0) {
-               small = smaller;
-               if (smallidx > FIRSTIDX) {
-                   smaller = magicints[smallidx - 1] /2;
-               } else {
-                   smaller = 0;
-               }
-           } else if (is_smaller > 0) {
-               smaller = small;
-               small = magicints[smallidx] / 2;
-           }
-           sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       }
-    }
-    return 1;
-}
-
-
-   
diff --git a/source/unres/src_MD-M/xdrf-Argonne/libxdrf.m4~ b/source/unres/src_MD-M/xdrf-Argonne/libxdrf.m4~
deleted file mode 100644 (file)
index 8704af2..0000000
+++ /dev/null
@@ -1,1234 +0,0 @@
-/*____________________________________________________________________________
- |
- | libxdrf - portable fortran interface to xdr. some xdr routines
- |          are C routines for compressed coordinates
- |
- | version 1.1
- |
- | This collection of routines is intended to write and read
- | data in a portable way to a file, so data written on one type
- | of machine can be read back on a different type.
- |
- | all fortran routines use an integer 'xdrid', which is an id to the
- | current xdr file, and is set by xdrfopen.
- | most routines have in integer 'ret' which is the return value.
- | The value of 'ret' is zero on failure, and most of the time one
- | on succes.
- |
- | There are three routines useful for C users:
- |  xdropen(), xdrclose(), xdr3dfcoord().
- | The first two replace xdrstdio_create and xdr_destroy, and *must* be
- | used when you plan to use xdr3dfcoord(). (they are also a bit
- | easier to interface). For writing data other than compressed coordinates 
- | you should use the standard C xdr routines (see xdr man page)
- |
- | xdrfopen(xdrid, filename, mode, ret)
- |     character *(*) filename
- |     character *(*) mode
- |
- |     this will open the file with the given filename (string)
- |     and the given mode, it returns an id in xdrid, which is
- |     to be used in all other calls to xdrf routines.
- |     mode is 'w' to create, or update an file, for all other
- |     values of mode the file is opened for reading
- |
- |     you need to call xdrfclose to flush the output and close
- |     the file.
- |     Note that you should not use xdrstdio_create, which comes with the
- |     standard xdr library
- |
- | xdrfclose(xdrid, ret)
- |     flush the data to the file, and closes the file;
- |     You should not use xdr_destroy (which comes standard with
- |     the xdr libraries.
- |
- | xdrfbool(xdrid, bp, ret)
- |     integer pb
- |
- |     This filter produces values of either 1 or 0    
- |
- | xdrfchar(xdrid, cp, ret)
- |     character cp
- |
- |     filter that translate between characters and their xdr representation
- |     Note that the characters in not compressed and occupies 4 bytes.
- |
- | xdrfdouble(xdrid, dp, ret)
- |     double dp
- |
- |     read/write a double.
- |
- | xdrffloat(xdrid, fp, ret)
- |     float fp
- |
- |     read/write a float.
- |
- | xdrfint(xdrid, ip, ret)
- |     integer ip
- |
- |     read/write integer.
- |
- | xdrflong(xdrid, lp, ret)
- |     integer lp
- |
- |     this routine has a possible portablility problem due to 64 bits longs.
- |
- | xdrfshort(xdrid, sp, ret)
- |     integer *2 sp
- |
- | xdrfstring(xdrid, sp, maxsize, ret)
- |     character *(*)
- |     integer maxsize
- |
- |     read/write a string, with maximum length given by maxsize
- |
- | xdrfwrapstring(xdris, sp, ret)
- |     character *(*)
- |
- |     read/write a string (it is the same as xdrfstring accept that it finds
- |     the stringlength itself.
- |
- | xdrfvector(xdrid, cp, size, xdrfproc, ret)
- |     character *(*)
- |     integer size
- |     external xdrfproc
- |
- |     read/write an array pointed to by cp, with number of elements
- |     defined by 'size'. the routine 'xdrfproc' is the name
- |     of one of the above routines to read/write data (like xdrfdouble)
- |     In contrast with the c-version you don't need to specify the
- |     byte size of an element.
- |     xdrfstring is not allowed here (it is in the c version)
- |     
- | xdrf3dfcoord(xdrid, fp, size, precision, ret)
- |     real (*) fp
- |     real precision
- |     integer size
- |
- |     this is *NOT* a standard xdr routine. I named it this way, because
- |     it invites people to use the other xdr routines.
- |     It is introduced to store specifically 3d coordinates of molecules
- |     (as found in molecular dynamics) and it writes it in a compressed way.
- |     It starts by multiplying all numbers by precision and
- |     rounding the result to integer. effectively converting
- |     all floating point numbers to fixed point.
- |     it uses an algorithm for compression that is optimized for
- |     molecular data, but could be used for other 3d coordinates
- |     as well. There is subtantial overhead involved, so call this
- |     routine only if you have a large number of coordinates to read/write
- |
- | ________________________________________________________________________
- |
- | Below are the routines to be used by C programmers. Use the 'normal'
- | xdr routines to write integers, floats, etc (see man xdr)   
- |
- | int xdropen(XDR *xdrs, const char *filename, const char *type)
- |     This will open the file with the given filename and the 
- |     given mode. You should pass it an allocated XDR struct
- |     in xdrs, to be used in all other calls to xdr routines.
- |     Mode is 'w' to create, or update an file, and for all 
- |     other values of mode the file is opened for reading. 
- |     You need to call xdrclose to flush the output and close
- |     the file.
- |
- |     Note that you should not use xdrstdio_create, which
- |     comes with the standard xdr library.
- |
- | int xdrclose(XDR *xdrs)
- |     Flush the data to the file, and close the file;
- |     You should not use xdr_destroy (which comes standard
- |     with the xdr libraries).
- |      
- | int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision)
- |     This is \fInot\fR a standard xdr routine. I named it this 
- |     way, because it invites people to use the other xdr 
- |     routines.
- |
- |     (c) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-*/     
-
-
-#include <limits.h>
-#include <malloc.h>
-#include <math.h>
-/* #include <rpc/rpc.h>
-#include <rpc/xdr.h> */
-#include "xdr.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include "xdrf.h"
-
-int ftocstr(char *, int, char *, int);
-int ctofstr(char *, int, char *);
-
-#define MAXID 20
-static FILE *xdrfiles[MAXID];
-static XDR *xdridptr[MAXID];
-static char xdrmodes[MAXID];
-static unsigned int cnt;
-
-typedef void (* FUNCTION(xdrfproc)) (int *, void *, int *);
-
-void
-FUNCTION(xdrfbool) ARGS(`xdrid, pb, ret')
-int *xdrid, *ret;
-int *pb;
-{
-       *ret = xdr_bool(xdridptr[*xdrid], (bool_t *) pb);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrfchar) ARGS(`xdrid, cp, ret')
-int *xdrid, *ret;
-char *cp;
-{
-       *ret = xdr_char(xdridptr[*xdrid], cp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfdouble) ARGS(`xdrid, dp, ret')
-int *xdrid, *ret;
-double *dp;
-{
-       *ret = xdr_double(xdridptr[*xdrid], dp);
-       cnt += sizeof(double);
-}
-
-void
-FUNCTION(xdrffloat) ARGS(`xdrid, fp, ret')
-int *xdrid, *ret;
-float *fp;
-{
-       *ret = xdr_float(xdridptr[*xdrid], fp);
-       cnt += sizeof(float);
-}
-
-void
-FUNCTION(xdrfint) ARGS(`xdrid, ip, ret')
-int *xdrid, *ret;
-int *ip;
-{
-       *ret = xdr_int(xdridptr[*xdrid], ip);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrflong) ARGS(`xdrid, lp, ret')
-int *xdrid, *ret;
-long *lp;
-{
-       *ret = xdr_long(xdridptr[*xdrid], lp);
-       cnt += sizeof(long);
-}
-
-void
-FUNCTION(xdrfshort) ARGS(`xdrid, sp, ret')
-int *xdrid, *ret;
-short *sp;
-{
-       *ret = xdr_short(xdridptr[*xdrid], sp);
-       cnt += sizeof(sp);
-}
-
-void
-FUNCTION(xdrfuchar) ARGS(`xdrid, ucp, ret')
-int *xdrid, *ret;
-char *ucp;
-{
-       *ret = xdr_u_char(xdridptr[*xdrid], ucp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfulong) ARGS(`xdrid, ulp, ret')
-int *xdrid, *ret;
-unsigned long *ulp;
-{
-       *ret = xdr_u_long(xdridptr[*xdrid], ulp);
-       cnt += sizeof(unsigned long);
-}
-
-void
-FUNCTION(xdrfushort) ARGS(`xdrid, usp, ret')
-int *xdrid, *ret;
-unsigned short *usp;
-{
-       *ret = xdr_u_short(xdridptr[*xdrid], usp);
-       cnt += sizeof(unsigned short);
-}
-
-void 
-FUNCTION(xdrf3dfcoord) ARGS(`xdrid, fp, size, precision, ret')
-int *xdrid, *ret;
-float *fp;
-int *size;
-float *precision;
-{
-       *ret = xdr3dfcoord(xdridptr[*xdrid], fp, size, precision);
-}
-
-void
-FUNCTION(xdrfstring) ARGS(`xdrid, STRING_ARG(sp), maxsize, ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-int *maxsize;
-{
-       char *tsp;
-
-       tsp = (char*) malloc(((STRING_LEN(sp)) + 1) * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, *maxsize+1, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int) *maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += *maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfwrapstring) ARGS(`xdrid,  STRING_ARG(sp), ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-{
-       char *tsp;
-       int maxsize;
-       maxsize = (STRING_LEN(sp)) + 1;
-       tsp = (char*) malloc(maxsize * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, maxsize, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int)maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfopaque) ARGS(`xdrid, cp, ccnt, ret')
-int *xdrid, *ret;
-caddr_t *cp;
-int *ccnt;
-{
-       *ret = xdr_opaque(xdridptr[*xdrid], (caddr_t)*cp, (u_int)*ccnt);
-       cnt += *ccnt;
-}
-
-void
-FUNCTION(xdrfsetpos) ARGS(`xdrid, pos, ret')
-int *xdrid, *ret;
-int *pos;
-{
-       *ret = xdr_setpos(xdridptr[*xdrid], (u_int) *pos);
-}
-
-void
-FUNCTION(xdrf) ARGS(`xdrid, pos')
-int *xdrid, *pos;
-{
-       *pos = xdr_getpos(xdridptr[*xdrid]);
-}
-
-void
-FUNCTION(xdrfvector) ARGS(`xdrid, cp, size, elproc, ret')
-int *xdrid, *ret;
-char *cp;
-int *size;
-FUNCTION(xdrfproc) elproc;
-{
-       int lcnt;
-       cnt = 0;
-       for (lcnt = 0; lcnt < *size; lcnt++) {
-               elproc(xdrid, (cp+cnt) , ret);
-       }
-}
-
-
-void
-FUNCTION(xdrfclose) ARGS(`xdrid, ret')
-int *xdrid;
-int *ret;
-{
-       *ret = xdrclose(xdridptr[*xdrid]);
-       cnt = 0;
-}
-
-void
-FUNCTION(xdrfopen) ARGS(`xdrid,  STRING_ARG(fp), STRING_ARG(mode), ret')
-int *xdrid;
-STRING_ARG_DECL(fp);
-STRING_ARG_DECL(mode);
-int *ret;
-{
-       char fname[512];
-       char fmode[3];
-
-       if (ftocstr(fname, sizeof(fname), STRING_PTR(fp), STRING_LEN(fp))) {
-               *ret = 0;
-       }
-       if (ftocstr(fmode, sizeof(fmode), STRING_PTR(mode),
-                       STRING_LEN(mode))) {
-               *ret = 0;
-       }
-
-       *xdrid = xdropen(NULL, fname, fmode);
-       if (*xdrid == 0)
-               *ret = 0;
-       else 
-               *ret = 1;       
-}
-
-/*___________________________________________________________________________
- |
- | what follows are the C routines for opening, closing xdr streams
- | and the routine to read/write compressed coordinates together
- | with some routines to assist in this task (those are marked
- | static and cannot be called from user programs)
-*/
-#define MAXABS INT_MAX-2
-
-#ifndef MIN
-#define MIN(x,y) ((x) < (y) ? (x):(y))
-#endif
-#ifndef MAX
-#define MAX(x,y) ((x) > (y) ? (x):(y))
-#endif
-#ifndef SQR
-#define SQR(x) ((x)*(x))
-#endif
-static int magicints[] = {
-    0, 0, 0, 0, 0, 0, 0, 0, 0,
-    8, 10, 12, 16, 20, 25, 32, 40, 50, 64,
-    80, 101, 128, 161, 203, 256, 322, 406, 512, 645,
-    812, 1024, 1290, 1625, 2048, 2580, 3250, 4096, 5060, 6501,
-    8192, 10321, 13003, 16384, 20642, 26007, 32768, 41285, 52015, 65536,
-    82570, 104031, 131072, 165140, 208063, 262144, 330280, 416127, 524287, 660561,
-    832255, 1048576, 1321122, 1664510, 2097152, 2642245, 3329021, 4194304, 5284491, 6658042,
-    8388607, 10568983, 13316085, 16777216 };
-
-#define FIRSTIDX 9
-/* note that magicints[FIRSTIDX-1] == 0 */
-#define LASTIDX (sizeof(magicints) / sizeof(*magicints))
-
-
-/*__________________________________________________________________________
- |
- | xdropen - open xdr file
- |
- | This versions differs from xdrstdio_create, because I need to know
- | the state of the file (read or write) so I can use xdr3dfcoord
- | in eigther read or write mode, and the file descriptor
- | so I can close the file (something xdr_destroy doesn't do).
- |
-*/
-
-int xdropen(XDR *xdrs, const char *filename, const char *type) {
-    static int init_done = 0;
-    enum xdr_op lmode;
-    const char *type1;
-    int xdrid;
-    
-    if (init_done == 0) {
-       for (xdrid = 1; xdrid < MAXID; xdrid++) {
-           xdridptr[xdrid] = NULL;
-       }
-       init_done = 1;
-    }
-    xdrid = 1;
-    while (xdrid < MAXID && xdridptr[xdrid] != NULL) {
-       xdrid++;
-    }
-    if (xdrid == MAXID) {
-       return 0;
-    }
-    if (*type == 'w' || *type == 'W') {
-           type = "w+";
-           type1 = "a+";
-           lmode = XDR_ENCODE;
-    } else {
-           type = "r";
-            type1 = "r";
-           lmode = XDR_DECODE;
-    }
-    xdrfiles[xdrid] = fopen(filename, type1);
-    if (xdrfiles[xdrid] == NULL) {
-       xdrs = NULL;
-       return 0;
-    }
-    xdrmodes[xdrid] = *type;
-    /* next test isn't usefull in the case of C language
-     * but is used for the Fortran interface
-     * (C users are expected to pass the address of an already allocated
-     * XDR staructure)
-     */
-    if (xdrs == NULL) {
-       xdridptr[xdrid] = (XDR *) malloc(sizeof(XDR));
-       xdrstdio_create(xdridptr[xdrid], xdrfiles[xdrid], lmode);
-    } else {
-       xdridptr[xdrid] = xdrs;
-       xdrstdio_create(xdrs, xdrfiles[xdrid], lmode);
-    }
-    return xdrid;
-}
-
-/*_________________________________________________________________________
- |
- | xdrclose - close a xdr file
- |
- | This will flush the xdr buffers, and destroy the xdr stream.
- | It also closes the associated file descriptor (this is *not*
- | done by xdr_destroy).
- |
-*/
-int xdrclose(XDR *xdrs) {
-    int xdrid;
-    
-    if (xdrs == NULL) {
-       fprintf(stderr, "xdrclose: passed a NULL pointer\n");
-       exit(1);
-    }
-    for (xdrid = 1; xdrid < MAXID; xdrid++) {
-       if (xdridptr[xdrid] == xdrs) {
-           
-           xdr_destroy(xdrs);
-           fclose(xdrfiles[xdrid]);
-           xdridptr[xdrid] = NULL;
-           return 1;
-       }
-    } 
-    fprintf(stderr, "xdrclose: no such open xdr file\n");
-    exit(1);
-    
-}
-
-/*____________________________________________________________________________
- |
- | sendbits - encode num into buf using the specified number of bits
- |
- | This routines appends the value of num to the bits already present in
- | the array buf. You need to give it the number of bits to use and you
- | better make sure that this number of bits is enough to hold the value
- | Also num must be positive.
- |
-*/
-
-static void sendbits(int buf[], int num_of_bits, int num) {
-    
-    unsigned int cnt, lastbyte;
-    int lastbits;
-    unsigned char * cbuf;
-    
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = (unsigned int) buf[0];
-    lastbits = buf[1];
-    lastbyte =(unsigned int) buf[2];
-    while (num_of_bits >= 8) {
-       lastbyte = (lastbyte << 8) | ((num >> (num_of_bits -8)) /* & 0xff*/);
-       cbuf[cnt++] = lastbyte >> lastbits;
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       lastbyte = (lastbyte << num_of_bits) | num;
-       lastbits += num_of_bits;
-       if (lastbits >= 8) {
-           lastbits -= 8;
-           cbuf[cnt++] = lastbyte >> lastbits;
-       }
-    }
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    if (lastbits>0) {
-       cbuf[cnt] = lastbyte << (8 - lastbits);
-    }
-}
-
-/*_________________________________________________________________________
- |
- | sizeofint - calculate bitsize of an integer
- |
- | return the number of bits needed to store an integer with given max size
- |
-*/
-
-static int sizeofint(const int size) {
-    unsigned int num = 1;
-    int num_of_bits = 0;
-    
-    while (size >= num && num_of_bits < 32) {
-       num_of_bits++;
-       num <<= 1;
-    }
-    return num_of_bits;
-}
-
-/*___________________________________________________________________________
- |
- | sizeofints - calculate 'bitsize' of compressed ints
- |
- | given the number of small unsigned integers and the maximum value
- | return the number of bits needed to read or write them with the
- | routines receiveints and sendints. You need this parameter when
- | calling these routines. Note that for many calls I can use
- | the variable 'smallidx' which is exactly the number of bits, and
- | So I don't need to call 'sizeofints for those calls.
-*/
-
-static int sizeofints( const int num_of_ints, unsigned int sizes[]) {
-    int i, num;
-    unsigned int num_of_bytes, num_of_bits, bytes[32], bytecnt, tmp;
-    num_of_bytes = 1;
-    bytes[0] = 1;
-    num_of_bits = 0;
-    for (i=0; i < num_of_ints; i++) {  
-       tmp = 0;
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    num = 1;
-    num_of_bytes--;
-    while (bytes[num_of_bytes] >= num) {
-       num_of_bits++;
-       num *= 2;
-    }
-    return num_of_bits + num_of_bytes * 8;
-
-}
-    
-/*____________________________________________________________________________
- |
- | sendints - send a small set of small integers in compressed format
- |
- | this routine is used internally by xdr3dfcoord, to send a set of
- | small integers to the buffer. 
- | Multiplication with fixed (specified maximum ) sizes is used to get
- | to one big, multibyte integer. Allthough the routine could be
- | modified to handle sizes bigger than 16777216, or more than just
- | a few integers, this is not done, because the gain in compression
- | isn't worth the effort. Note that overflowing the multiplication
- | or the byte buffer (32 bytes) is unchecked and causes bad results.
- |
- */
-static void sendints(int buf[], const int num_of_ints, const int num_of_bits,
-       unsigned int sizes[], unsigned int nums[]) {
-
-    int i;
-    unsigned int bytes[32], num_of_bytes, bytecnt, tmp;
-
-    tmp = nums[0];
-    num_of_bytes = 0;
-    do {
-       bytes[num_of_bytes++] = tmp & 0xff;
-       tmp >>= 8;
-    } while (tmp != 0);
-
-    for (i = 1; i < num_of_ints; i++) {
-       if (nums[i] >= sizes[i]) {
-           fprintf(stderr,"major breakdown in sendints num %d doesn't "
-                   "match size %d\n", nums[i], sizes[i]);
-           exit(1);
-       }
-       /* use one step multiply */    
-       tmp = nums[i];
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    if (num_of_bits >= num_of_bytes * 8) {
-       for (i = 0; i < num_of_bytes; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits - num_of_bytes * 8, 0);
-    } else {
-       for (i = 0; i < num_of_bytes-1; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits- (num_of_bytes -1) * 8, bytes[i]);
-    }
-}
-
-
-/*___________________________________________________________________________
- |
- | receivebits - decode number from buf using specified number of bits
- | 
- | extract the number of bits from the array buf and construct an integer
- | from it. Return that value.
- |
-*/
-
-static int receivebits(int buf[], int num_of_bits) {
-
-    int cnt, num; 
-    unsigned int lastbits, lastbyte;
-    unsigned char * cbuf;
-    int mask = (1 << num_of_bits) -1;
-
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = buf[0];
-    lastbits = (unsigned int) buf[1];
-    lastbyte = (unsigned int) buf[2];
-    
-    num = 0;
-    while (num_of_bits >= 8) {
-       lastbyte = ( lastbyte << 8 ) | cbuf[cnt++];
-       num |=  (lastbyte >> lastbits) << (num_of_bits - 8);
-       num_of_bits -=8;
-    }
-    if (num_of_bits > 0) {
-       if (lastbits < num_of_bits) {
-           lastbits += 8;
-           lastbyte = (lastbyte << 8) | cbuf[cnt++];
-       }
-       lastbits -= num_of_bits;
-       num |= (lastbyte >> lastbits) & ((1 << num_of_bits) -1);
-    }
-    num &= mask;
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    return num; 
-}
-
-/*____________________________________________________________________________
- |
- | receiveints - decode 'small' integers from the buf array
- |
- | this routine is the inverse from sendints() and decodes the small integers
- | written to buf by calculating the remainder and doing divisions with
- | the given sizes[]. You need to specify the total number of bits to be
- | used from buf in num_of_bits.
- |
-*/
-
-static void receiveints(int buf[], const int num_of_ints, int num_of_bits,
-       unsigned int sizes[], int nums[]) {
-    int bytes[32];
-    int i, j, num_of_bytes, p, num;
-    
-    bytes[1] = bytes[2] = bytes[3] = 0;
-    num_of_bytes = 0;
-    while (num_of_bits > 8) {
-       bytes[num_of_bytes++] = receivebits(buf, 8);
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       bytes[num_of_bytes++] = receivebits(buf, num_of_bits);
-    }
-    for (i = num_of_ints-1; i > 0; i--) {
-       num = 0;
-       for (j = num_of_bytes-1; j >=0; j--) {
-           num = (num << 8) | bytes[j];
-           p = num / sizes[i];
-           bytes[j] = p;
-           num = num - p * sizes[i];
-       }
-       nums[i] = num;
-    }
-    nums[0] = bytes[0] | (bytes[1] << 8) | (bytes[2] << 16) | (bytes[3] << 24);
-}
-    
-/*____________________________________________________________________________
- |
- | xdr3dfcoord - read or write compressed 3d coordinates to xdr file.
- |
- | this routine reads or writes (depending on how you opened the file with
- | xdropen() ) a large number of 3d coordinates (stored in *fp).
- | The number of coordinates triplets to write is given by *size. On
- | read this number may be zero, in which case it reads as many as were written
- | or it may specify the number if triplets to read (which should match the
- | number written).
- | Compression is achieved by first converting all floating numbers to integer
- | using multiplication by *precision and rounding to the nearest integer.
- | Then the minimum and maximum value are calculated to determine the range.
- | The limited range of integers so found, is used to compress the coordinates.
- | In addition the differences between succesive coordinates is calculated.
- | If the difference happens to be 'small' then only the difference is saved,
- | compressing the data even more. The notion of 'small' is changed dynamically
- | and is enlarged or reduced whenever needed or possible.
- | Extra compression is achieved in the case of GROMOS and coordinates of
- | water molecules. GROMOS first writes out the Oxygen position, followed by
- | the two hydrogens. In order to make the differences smaller (and thereby
- | compression the data better) the order is changed into first one hydrogen
- | then the oxygen, followed by the other hydrogen. This is rather special, but
- | it shouldn't harm in the general case.
- |
- */
-int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) {
-    
-
-    static int *ip = NULL;
-    static int oldsize;
-    static int *buf;
-
-    int minint[3], maxint[3], mindiff, *lip, diff;
-    int lint1, lint2, lint3, oldlint1, oldlint2, oldlint3, smallidx;
-    int minidx, maxidx;
-    unsigned sizeint[3], sizesmall[3], bitsizeint[3], size3, *luip;
-    int flag, k;
-    int small, smaller, larger, i, is_small, is_smaller, run, prevrun;
-    float *lfp, lf;
-    int tmp, *thiscoord,  prevcoord[3];
-    unsigned int tmpcoord[30];
-
-    int bufsize, xdrid, lsize;
-    unsigned int bitsize;
-    float inv_precision;
-    int errval = 1;
-
-    /* find out if xdrs is opened for reading or for writing */
-    xdrid = 0;
-    while (xdridptr[xdrid] != xdrs) {
-       xdrid++;
-       if (xdrid >= MAXID) {
-           fprintf(stderr, "xdr error. no open xdr stream\n");
-           exit (1);
-       }
-    }
-    if (xdrmodes[xdrid] == 'w') {
-
-       /* xdrs is open for writing */
-
-       if (xdr_int(xdrs, size) == 0)
-           return 0;
-       size3 = *size * 3;
-       /* when the number of coordinates is small, don't try to compress; just
-        * write them as floats using xdr_vector
-        */
-       if (*size <= 9 ) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       /* buf[0-2] are special and do not contain actual data */
-       buf[0] = buf[1] = buf[2] = 0;
-       minint[0] = minint[1] = minint[2] = INT_MAX;
-       maxint[0] = maxint[1] = maxint[2] = INT_MIN;
-       prevrun = -1;
-       lfp = fp;
-       lip = ip;
-       mindiff = INT_MAX;
-       oldlint1 = oldlint2 = oldlint3 = 0;
-       while(lfp < fp + size3 ) {
-           /* find nearest integer */
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint1 = lf;
-           if (lint1 < minint[0]) minint[0] = lint1;
-           if (lint1 > maxint[0]) maxint[0] = lint1;
-           *lip++ = lint1;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint2 = lf;
-           if (lint2 < minint[1]) minint[1] = lint2;
-           if (lint2 > maxint[1]) maxint[1] = lint2;
-           *lip++ = lint2;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint3 = lf;
-           if (lint3 < minint[2]) minint[2] = lint3;
-           if (lint3 > maxint[2]) maxint[2] = lint3;
-           *lip++ = lint3;
-           lfp++;
-           diff = abs(oldlint1-lint1)+abs(oldlint2-lint2)+abs(oldlint3-lint3);
-           if (diff < mindiff && lfp > fp + 3)
-               mindiff = diff;
-           oldlint1 = lint1;
-           oldlint2 = lint2;
-           oldlint3 = lint3;
-       }
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-       
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-       
-       if ((float)maxint[0] - (float)minint[0] >= MAXABS ||
-               (float)maxint[1] - (float)minint[1] >= MAXABS ||
-               (float)maxint[2] - (float)minint[2] >= MAXABS) {
-           /* turning value in unsigned by subtracting minint
-            * would cause overflow
-            */
-           errval = 0;
-       }
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       lip = ip;
-       luip = (unsigned int *) ip;
-       smallidx = FIRSTIDX;
-       while (smallidx < LASTIDX && magicints[smallidx] < mindiff) {
-           smallidx++;
-       }
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-       larger = magicints[maxidx] / 2;
-       i = 0;
-       while (i < *size) {
-           is_small = 0;
-           thiscoord = (int *)(luip) + i * 3;
-           if (smallidx < maxidx && i >= 1 &&
-                   abs(thiscoord[0] - prevcoord[0]) < larger &&
-                   abs(thiscoord[1] - prevcoord[1]) < larger &&
-                   abs(thiscoord[2] - prevcoord[2]) < larger) {
-               is_smaller = 1;
-           } else if (smallidx > minidx) {
-               is_smaller = -1;
-           } else {
-               is_smaller = 0;
-           }
-           if (i + 1 < *size) {
-               if (abs(thiscoord[0] - thiscoord[3]) < small &&
-                       abs(thiscoord[1] - thiscoord[4]) < small &&
-                       abs(thiscoord[2] - thiscoord[5]) < small) {
-                   /* interchange first with second atom for better
-                    * compression of water molecules
-                    */
-                   tmp = thiscoord[0]; thiscoord[0] = thiscoord[3];
-                       thiscoord[3] = tmp;
-                   tmp = thiscoord[1]; thiscoord[1] = thiscoord[4];
-                       thiscoord[4] = tmp;
-                   tmp = thiscoord[2]; thiscoord[2] = thiscoord[5];
-                       thiscoord[5] = tmp;
-                   is_small = 1;
-               }
-    
-           }
-           tmpcoord[0] = thiscoord[0] - minint[0];
-           tmpcoord[1] = thiscoord[1] - minint[1];
-           tmpcoord[2] = thiscoord[2] - minint[2];
-           if (bitsize == 0) {
-               sendbits(buf, bitsizeint[0], tmpcoord[0]);
-               sendbits(buf, bitsizeint[1], tmpcoord[1]);
-               sendbits(buf, bitsizeint[2], tmpcoord[2]);
-           } else {
-               sendints(buf, 3, bitsize, sizeint, tmpcoord);
-           }
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           thiscoord = thiscoord + 3;
-           i++;
-           
-           run = 0;
-           if (is_small == 0 && is_smaller == -1)
-               is_smaller = 0;
-           while (is_small && run < 8*3) {
-               if (is_smaller == -1 && (
-                       SQR(thiscoord[0] - prevcoord[0]) +
-                       SQR(thiscoord[1] - prevcoord[1]) +
-                       SQR(thiscoord[2] - prevcoord[2]) >= smaller * smaller)) {
-                   is_smaller = 0;
-               }
-
-               tmpcoord[run++] = thiscoord[0] - prevcoord[0] + small;
-               tmpcoord[run++] = thiscoord[1] - prevcoord[1] + small;
-               tmpcoord[run++] = thiscoord[2] - prevcoord[2] + small;
-               
-               prevcoord[0] = thiscoord[0];
-               prevcoord[1] = thiscoord[1];
-               prevcoord[2] = thiscoord[2];
-
-               i++;
-               thiscoord = thiscoord + 3;
-               is_small = 0;
-               if (i < *size &&
-                       abs(thiscoord[0] - prevcoord[0]) < small &&
-                       abs(thiscoord[1] - prevcoord[1]) < small &&
-                       abs(thiscoord[2] - prevcoord[2]) < small) {
-                   is_small = 1;
-               }
-           }
-           if (run != prevrun || is_smaller != 0) {
-               prevrun = run;
-               sendbits(buf, 1, 1); /* flag the change in run-length */
-               sendbits(buf, 5, run+is_smaller+1);
-           } else {
-               sendbits(buf, 1, 0); /* flag the fact that runlength did not change */
-           }
-           for (k=0; k < run; k+=3) {
-               sendints(buf, 3, smallidx, sizesmall, &tmpcoord[k]);    
-           }
-           if (is_smaller != 0) {
-               smallidx += is_smaller;
-               if (is_smaller < 0) {
-                   small = smaller;
-                   smaller = magicints[smallidx-1] / 2;
-               } else {
-                   smaller = small;
-                   small = magicints[smallidx] / 2;
-               }
-               sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-           }
-       }
-       if (buf[1] != 0) buf[0]++;;
-       xdr_int(xdrs, &(buf[0])); /* buf[0] holds the length in bytes */
-       return errval * (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]));
-    } else {
-       
-       /* xdrs is open for reading */
-       
-       if (xdr_int(xdrs, &lsize) == 0) 
-           return 0;
-       if (*size != 0 && lsize != *size) {
-           fprintf(stderr, "wrong number of coordinates in xdr3dfcoor; "
-                   "%d arg vs %d in file", *size, lsize);
-       }
-       *size = lsize;
-       size3 = *size * 3;
-       if (*size <= 9) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-               
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       larger = magicints[maxidx];
-
-       /* buf[0] holds the length in bytes */
-
-       if (xdr_int(xdrs, &(buf[0])) == 0)
-           return 0;
-       if (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]) == 0)
-           return 0;
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       lfp = fp;
-       inv_precision = 1.0 / * precision;
-       run = 0;
-       i = 0;
-       lip = ip;
-       while ( i < lsize ) {
-           thiscoord = (int *)(lip) + i * 3;
-
-           if (bitsize == 0) {
-               thiscoord[0] = receivebits(buf, bitsizeint[0]);
-               thiscoord[1] = receivebits(buf, bitsizeint[1]);
-               thiscoord[2] = receivebits(buf, bitsizeint[2]);
-           } else {
-               receiveints(buf, 3, bitsize, sizeint, thiscoord);
-           }
-           
-           i++;
-           thiscoord[0] += minint[0];
-           thiscoord[1] += minint[1];
-           thiscoord[2] += minint[2];
-           
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           
-          
-           flag = receivebits(buf, 1);
-           is_smaller = 0;
-           if (flag == 1) {
-               run = receivebits(buf, 5);
-               is_smaller = run % 3;
-               run -= is_smaller;
-               is_smaller--;
-           }
-           if (run > 0) {
-               thiscoord += 3;
-               for (k = 0; k < run; k+=3) {
-                   receiveints(buf, 3, smallidx, sizesmall, thiscoord);
-                   i++;
-                   thiscoord[0] += prevcoord[0] - small;
-                   thiscoord[1] += prevcoord[1] - small;
-                   thiscoord[2] += prevcoord[2] - small;
-                   if (k == 0) {
-                       /* interchange first with second atom for better
-                        * compression of water molecules
-                        */
-                       tmp = thiscoord[0]; thiscoord[0] = prevcoord[0];
-                               prevcoord[0] = tmp;
-                       tmp = thiscoord[1]; thiscoord[1] = prevcoord[1];
-                               prevcoord[1] = tmp;
-                       tmp = thiscoord[2]; thiscoord[2] = prevcoord[2];
-                               prevcoord[2] = tmp;
-                       *lfp++ = prevcoord[0] * inv_precision;
-                       *lfp++ = prevcoord[1] * inv_precision;
-                       *lfp++ = prevcoord[2] * inv_precision;
-                   } else {
-                       prevcoord[0] = thiscoord[0];
-                       prevcoord[1] = thiscoord[1];
-                       prevcoord[2] = thiscoord[2];
-                   }
-                   *lfp++ = thiscoord[0] * inv_precision;
-                   *lfp++ = thiscoord[1] * inv_precision;
-                   *lfp++ = thiscoord[2] * inv_precision;
-               }
-           } else {
-               *lfp++ = thiscoord[0] * inv_precision;
-               *lfp++ = thiscoord[1] * inv_precision;
-               *lfp++ = thiscoord[2] * inv_precision;          
-           }
-           smallidx += is_smaller;
-           if (is_smaller < 0) {
-               small = smaller;
-               if (smallidx > FIRSTIDX) {
-                   smaller = magicints[smallidx - 1] /2;
-               } else {
-                   smaller = 0;
-               }
-           } else if (is_smaller > 0) {
-               smaller = small;
-               small = magicints[smallidx] / 2;
-           }
-           sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       }
-    }
-    return 1;
-}
-
-
-   
diff --git a/source/unres/src_MD-M/xdrf-Argonne/libxdrf.o b/source/unres/src_MD-M/xdrf-Argonne/libxdrf.o
deleted file mode 100644 (file)
index 7ec06da..0000000
Binary files a/source/unres/src_MD-M/xdrf-Argonne/libxdrf.o and /dev/null differ
diff --git a/source/unres/src_MD-M/xdrf-Argonne/types.h b/source/unres/src_MD-M/xdrf-Argonne/types.h
deleted file mode 100644 (file)
index 871f3fd..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-/* fixincludes should not add extern "C" to this file */
-/*
- * Rpc additions to <sys/types.h>
- */
-#ifndef _RPC_TYPES_H
-#define _RPC_TYPES_H 1
-
-typedef int bool_t;
-typedef int enum_t;
-/* This needs to be changed to uint32_t in the future */
-typedef unsigned long rpcprog_t;
-typedef unsigned long rpcvers_t;
-typedef unsigned long rpcproc_t;
-typedef unsigned long rpcprot_t;
-typedef unsigned long rpcport_t;
-
-#define        __dontcare__    -1
-
-#ifndef FALSE
-#      define  FALSE   (0)
-#endif
-
-#ifndef TRUE
-#      define  TRUE    (1)
-#endif
-
-#ifndef NULL
-#      define  NULL 0
-#endif
-
-#include <stdlib.h>            /* For malloc decl.  */
-#define mem_alloc(bsize)       malloc(bsize)
-/*
- * XXX: This must not use the second argument, or code in xdr_array.c needs
- * to be modified.
- */
-#define mem_free(ptr, bsize)   free(ptr)
-
-#ifndef makedev /* ie, we haven't already included it */
-#include <sys/types.h>
-#endif
-
-#ifndef __u_char_defined
-typedef __u_char u_char;
-typedef __u_short u_short;
-typedef __u_int u_int;
-typedef __u_long u_long;
-typedef __quad_t quad_t;
-typedef __u_quad_t u_quad_t;
-typedef __fsid_t fsid_t;
-# define __u_char_defined
-#endif
-#ifndef __daddr_t_defined
-typedef __daddr_t daddr_t;
-typedef __caddr_t caddr_t;
-# define __daddr_t_defined
-#endif
-
-#include <sys/time.h>
-#include <sys/param.h>
-
-#include <netinet/in.h>
-
-#ifndef INADDR_LOOPBACK
-#define       INADDR_LOOPBACK         (u_long)0x7F000001
-#endif
-#ifndef MAXHOSTNAMELEN
-#define        MAXHOSTNAMELEN  64
-#endif
-
-#endif /* rpc/types.h */
diff --git a/source/unres/src_MD-M/xdrf-Argonne/underscore.m4 b/source/unres/src_MD-M/xdrf-Argonne/underscore.m4
deleted file mode 100644 (file)
index 4d620a0..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-divert(-1)
-undefine(`len')
-#
-# append an underscore to FORTRAN function names
-#
-define(`FUNCTION',`$1_')
-#
-# FORTRAN character strings are passed as follows:
-# a pointer to the base of the string is passed in the normal
-# argument list, and the length is passed by value as an extra
-# argument, after all of the other arguments.
-#
-define(`ARGS',`($1`'undivert(1))')
-define(`SAVE',`divert(1)$1`'divert(0)')
-define(`STRING_ARG',`$1_ptr`'SAVE(`, $1_len')')
-define(`STRING_ARG_DECL',`char * $1_ptr; int $1_len')
-define(`STRING_LEN',`$1_len')
-define(`STRING_PTR',`$1_ptr')
-divert(0)
diff --git a/source/unres/src_MD-M/xdrf-Argonne/xdr.c b/source/unres/src_MD-M/xdrf-Argonne/xdr.c
deleted file mode 100644 (file)
index 33b8544..0000000
+++ /dev/null
@@ -1,752 +0,0 @@
-# define INTUSE(name) name
-# define INTDEF(name)
-/* @(#)xdr.c   2.1 88/07/29 4.0 RPCSRC */
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)xdr.c 1.35 87/08/12";
-#endif
-
-/*
- * xdr.c, Generic XDR routines implementation.
- *
- * Copyright (C) 1986, Sun Microsystems, Inc.
- *
- * These are the "generic" xdr routines used to serialize and de-serialize
- * most common data items.  See xdr.h for more info on the interface to
- * xdr.
- */
-
-#include <stdio.h>
-#include <limits.h>
-#include <string.h>
-#include <libintl.h>
-
-#include "types.h"
-#include "xdr.h"
-
-#ifdef USE_IN_LIBIO
-# include <wchar.h>
-#endif
-
-/*
- * constants specific to the xdr "protocol"
- */
-#define XDR_FALSE      ((long) 0)
-#define XDR_TRUE       ((long) 1)
-#define LASTUNSIGNED   ((u_int) 0-1)
-
-/*
- * for unit alignment
- */
-static const char xdr_zero[BYTES_PER_XDR_UNIT] = {0, 0, 0, 0};
-
-/*
- * Free a data structure using XDR
- * Not a filter, but a convenient utility nonetheless
- */
-void
-xdr_free (xdrproc_t proc, char *objp)
-{
-  XDR x;
-
-  x.x_op = XDR_FREE;
-  (*proc) (&x, objp);
-}
-
-/*
- * XDR nothing
- */
-bool_t
-xdr_void (void)
-{
-  return TRUE;
-}
-INTDEF(xdr_void)
-
-/*
- * XDR integers
- */
-bool_t
-xdr_int (XDR *xdrs, int *ip)
-{
-
-#if INT_MAX < LONG_MAX
-  long l;
-
-  switch (xdrs->x_op)
-    {
-    case XDR_ENCODE:
-      l = (long) *ip;
-      return XDR_PUTLONG (xdrs, &l);
-
-    case XDR_DECODE:
-      if (!XDR_GETLONG (xdrs, &l))
-       {
-         return FALSE;
-       }
-      *ip = (int) l;
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-#elif INT_MAX == LONG_MAX
-  return INTUSE(xdr_long) (xdrs, (long *) ip);
-#elif INT_MAX == SHRT_MAX
-  return INTUSE(xdr_short) (xdrs, (short *) ip);
-#else
-#error unexpected integer sizes in_xdr_int()
-#endif
-}
-INTDEF(xdr_int)
-
-/*
- * XDR unsigned integers
- */
-bool_t
-xdr_u_int (XDR *xdrs, u_int *up)
-{
-#if UINT_MAX < ULONG_MAX
-  long l;
-
-  switch (xdrs->x_op)
-    {
-    case XDR_ENCODE:
-      l = (u_long) * up;
-      return XDR_PUTLONG (xdrs, &l);
-
-    case XDR_DECODE:
-      if (!XDR_GETLONG (xdrs, &l))
-       {
-         return FALSE;
-       }
-      *up = (u_int) (u_long) l;
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-#elif UINT_MAX == ULONG_MAX
-  return INTUSE(xdr_u_long) (xdrs, (u_long *) up);
-#elif UINT_MAX == USHRT_MAX
-  return INTUSE(xdr_short) (xdrs, (short *) up);
-#else
-#error unexpected integer sizes in_xdr_u_int()
-#endif
-}
-INTDEF(xdr_u_int)
-
-/*
- * XDR long integers
- * The definition of xdr_long() is kept for backward
- * compatibility. Instead xdr_int() should be used.
- */
-bool_t
-xdr_long (XDR *xdrs, long *lp)
-{
-
-  if (xdrs->x_op == XDR_ENCODE
-      && (sizeof (int32_t) == sizeof (long)
-         || (int32_t) *lp == *lp))
-    return XDR_PUTLONG (xdrs, lp);
-
-  if (xdrs->x_op == XDR_DECODE)
-    return XDR_GETLONG (xdrs, lp);
-
-  if (xdrs->x_op == XDR_FREE)
-    return TRUE;
-
-  return FALSE;
-}
-INTDEF(xdr_long)
-
-/*
- * XDR unsigned long integers
- * The definition of xdr_u_long() is kept for backward
- * compatibility. Instead xdr_u_int() should be used.
- */
-bool_t
-xdr_u_long (XDR *xdrs, u_long *ulp)
-{
-  switch (xdrs->x_op)
-    {
-    case XDR_DECODE:
-      {
-       long int tmp;
-
-       if (XDR_GETLONG (xdrs, &tmp) == FALSE)
-         return FALSE;
-
-       *ulp = (uint32_t) tmp;
-       return TRUE;
-      }
-
-    case XDR_ENCODE:
-      if (sizeof (uint32_t) != sizeof (u_long)
-         && (uint32_t) *ulp != *ulp)
-       return FALSE;
-
-      return XDR_PUTLONG (xdrs, (long *) ulp);
-
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_u_long)
-
-/*
- * XDR hyper integers
- * same as xdr_u_hyper - open coded to save a proc call!
- */
-bool_t
-xdr_hyper (XDR *xdrs, quad_t *llp)
-{
-  long int t1, t2;
-
-  if (xdrs->x_op == XDR_ENCODE)
-    {
-      t1 = (long) ((*llp) >> 32);
-      t2 = (long) (*llp);
-      return (XDR_PUTLONG(xdrs, &t1) && XDR_PUTLONG(xdrs, &t2));
-    }
-
-  if (xdrs->x_op == XDR_DECODE)
-    {
-      if (!XDR_GETLONG(xdrs, &t1) || !XDR_GETLONG(xdrs, &t2))
-       return FALSE;
-      *llp = ((quad_t) t1) << 32;
-      *llp |= (uint32_t) t2;
-      return TRUE;
-    }
-
-  if (xdrs->x_op == XDR_FREE)
-    return TRUE;
-
-  return FALSE;
-}
-INTDEF(xdr_hyper)
-
-
-/*
- * XDR hyper integers
- * same as xdr_hyper - open coded to save a proc call!
- */
-bool_t
-xdr_u_hyper (XDR *xdrs, u_quad_t *ullp)
-{
-  long int t1, t2;
-
-  if (xdrs->x_op == XDR_ENCODE)
-    {
-      t1 = (unsigned long) ((*ullp) >> 32);
-      t2 = (unsigned long) (*ullp);
-      return (XDR_PUTLONG(xdrs, &t1) && XDR_PUTLONG(xdrs, &t2));
-    }
-
-  if (xdrs->x_op == XDR_DECODE)
-    {
-      if (!XDR_GETLONG(xdrs, &t1) || !XDR_GETLONG(xdrs, &t2))
-       return FALSE;
-      *ullp = ((u_quad_t) t1) << 32;
-      *ullp |= (uint32_t) t2;
-      return TRUE;
-    }
-
-  if (xdrs->x_op == XDR_FREE)
-    return TRUE;
-
-  return FALSE;
-}
-INTDEF(xdr_u_hyper)
-
-bool_t
-xdr_longlong_t (XDR *xdrs, quad_t *llp)
-{
-  return INTUSE(xdr_hyper) (xdrs, llp);
-}
-
-bool_t
-xdr_u_longlong_t (XDR *xdrs, u_quad_t *ullp)
-{
-  return INTUSE(xdr_u_hyper) (xdrs, ullp);
-}
-
-/*
- * XDR short integers
- */
-bool_t
-xdr_short (XDR *xdrs, short *sp)
-{
-  long l;
-
-  switch (xdrs->x_op)
-    {
-    case XDR_ENCODE:
-      l = (long) *sp;
-      return XDR_PUTLONG (xdrs, &l);
-
-    case XDR_DECODE:
-      if (!XDR_GETLONG (xdrs, &l))
-       {
-         return FALSE;
-       }
-      *sp = (short) l;
-      return TRUE;
-
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_short)
-
-/*
- * XDR unsigned short integers
- */
-bool_t
-xdr_u_short (XDR *xdrs, u_short *usp)
-{
-  long l;
-
-  switch (xdrs->x_op)
-    {
-    case XDR_ENCODE:
-      l = (u_long) * usp;
-      return XDR_PUTLONG (xdrs, &l);
-
-    case XDR_DECODE:
-      if (!XDR_GETLONG (xdrs, &l))
-       {
-         return FALSE;
-       }
-      *usp = (u_short) (u_long) l;
-      return TRUE;
-
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_u_short)
-
-
-/*
- * XDR a char
- */
-bool_t
-xdr_char (XDR *xdrs, char *cp)
-{
-  int i;
-
-  i = (*cp);
-  if (!INTUSE(xdr_int) (xdrs, &i))
-    {
-      return FALSE;
-    }
-  *cp = i;
-  return TRUE;
-}
-
-/*
- * XDR an unsigned char
- */
-bool_t
-xdr_u_char (XDR *xdrs, u_char *cp)
-{
-  u_int u;
-
-  u = (*cp);
-  if (!INTUSE(xdr_u_int) (xdrs, &u))
-    {
-      return FALSE;
-    }
-  *cp = u;
-  return TRUE;
-}
-
-/*
- * XDR booleans
- */
-bool_t
-xdr_bool (XDR *xdrs, bool_t *bp)
-{
-  long lb;
-
-  switch (xdrs->x_op)
-    {
-    case XDR_ENCODE:
-      lb = *bp ? XDR_TRUE : XDR_FALSE;
-      return XDR_PUTLONG (xdrs, &lb);
-
-    case XDR_DECODE:
-      if (!XDR_GETLONG (xdrs, &lb))
-       {
-         return FALSE;
-       }
-      *bp = (lb == XDR_FALSE) ? FALSE : TRUE;
-      return TRUE;
-
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_bool)
-
-/*
- * XDR enumerations
- */
-bool_t
-xdr_enum (XDR *xdrs, enum_t *ep)
-{
-  enum sizecheck
-    {
-      SIZEVAL
-    };                         /* used to find the size of an enum */
-
-  /*
-   * enums are treated as ints
-   */
-  if (sizeof (enum sizecheck) == 4)
-    {
-#if INT_MAX < LONG_MAX
-      long l;
-
-      switch (xdrs->x_op)
-       {
-       case XDR_ENCODE:
-         l = *ep;
-         return XDR_PUTLONG (xdrs, &l);
-
-       case XDR_DECODE:
-         if (!XDR_GETLONG (xdrs, &l))
-           {
-             return FALSE;
-           }
-         *ep = l;
-       case XDR_FREE:
-         return TRUE;
-
-       }
-      return FALSE;
-#else
-      return INTUSE(xdr_long) (xdrs, (long *) ep);
-#endif
-    }
-  else if (sizeof (enum sizecheck) == sizeof (short))
-    {
-      return INTUSE(xdr_short) (xdrs, (short *) ep);
-    }
-  else
-    {
-      return FALSE;
-    }
-}
-INTDEF(xdr_enum)
-
-/*
- * XDR opaque data
- * Allows the specification of a fixed size sequence of opaque bytes.
- * cp points to the opaque object and cnt gives the byte length.
- */
-bool_t
-xdr_opaque (XDR *xdrs, caddr_t cp, u_int cnt)
-{
-  u_int rndup;
-  static char crud[BYTES_PER_XDR_UNIT];
-
-  /*
-   * if no data we are done
-   */
-  if (cnt == 0)
-    return TRUE;
-
-  /*
-   * round byte count to full xdr units
-   */
-  rndup = cnt % BYTES_PER_XDR_UNIT;
-  if (rndup > 0)
-    rndup = BYTES_PER_XDR_UNIT - rndup;
-
-  switch (xdrs->x_op)
-    {
-    case XDR_DECODE:
-      if (!XDR_GETBYTES (xdrs, cp, cnt))
-       {
-         return FALSE;
-       }
-      if (rndup == 0)
-       return TRUE;
-      return XDR_GETBYTES (xdrs, (caddr_t)crud, rndup);
-
-    case XDR_ENCODE:
-      if (!XDR_PUTBYTES (xdrs, cp, cnt))
-       {
-         return FALSE;
-       }
-      if (rndup == 0)
-       return TRUE;
-      return XDR_PUTBYTES (xdrs, xdr_zero, rndup);
-
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_opaque)
-
-/*
- * XDR counted bytes
- * *cpp is a pointer to the bytes, *sizep is the count.
- * If *cpp is NULL maxsize bytes are allocated
- */
-bool_t
-xdr_bytes (xdrs, cpp, sizep, maxsize)
-     XDR *xdrs;
-     char **cpp;
-     u_int *sizep;
-     u_int maxsize;
-{
-  char *sp = *cpp;     /* sp is the actual string pointer */
-  u_int nodesize;
-
-  /*
-   * first deal with the length since xdr bytes are counted
-   */
-  if (!INTUSE(xdr_u_int) (xdrs, sizep))
-    {
-      return FALSE;
-    }
-  nodesize = *sizep;
-  if ((nodesize > maxsize) && (xdrs->x_op != XDR_FREE))
-    {
-      return FALSE;
-    }
-
-  /*
-   * now deal with the actual bytes
-   */
-  switch (xdrs->x_op)
-    {
-    case XDR_DECODE:
-      if (nodesize == 0)
-       {
-         return TRUE;
-       }
-      if (sp == NULL)
-       {
-         *cpp = sp = (char *) mem_alloc (nodesize);
-       }
-      if (sp == NULL)
-       {
-         fprintf (NULL, "%s", "xdr_bytes: out of memory\n");
-         return FALSE;
-       }
-      /* fall into ... */
-
-    case XDR_ENCODE:
-      return INTUSE(xdr_opaque) (xdrs, sp, nodesize);
-
-    case XDR_FREE:
-      if (sp != NULL)
-       {
-         mem_free (sp, nodesize);
-         *cpp = NULL;
-       }
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_bytes)
-
-/*
- * Implemented here due to commonality of the object.
- */
-bool_t
-xdr_netobj (xdrs, np)
-     XDR *xdrs;
-     struct netobj *np;
-{
-
-  return INTUSE(xdr_bytes) (xdrs, &np->n_bytes, &np->n_len, MAX_NETOBJ_SZ);
-}
-INTDEF(xdr_netobj)
-
-/*
- * XDR a discriminated union
- * Support routine for discriminated unions.
- * You create an array of xdrdiscrim structures, terminated with
- * an entry with a null procedure pointer.  The routine gets
- * the discriminant value and then searches the array of xdrdiscrims
- * looking for that value.  It calls the procedure given in the xdrdiscrim
- * to handle the discriminant.  If there is no specific routine a default
- * routine may be called.
- * If there is no specific or default routine an error is returned.
- */
-bool_t
-xdr_union (xdrs, dscmp, unp, choices, dfault)
-     XDR *xdrs;
-     enum_t *dscmp;            /* enum to decide which arm to work on */
-     char *unp;                        /* the union itself */
-     const struct xdr_discrim *choices;        /* [value, xdr proc] for each arm */
-     xdrproc_t dfault;         /* default xdr routine */
-{
-  enum_t dscm;
-
-  /*
-   * we deal with the discriminator;  it's an enum
-   */
-  if (!INTUSE(xdr_enum) (xdrs, dscmp))
-    {
-      return FALSE;
-    }
-  dscm = *dscmp;
-
-  /*
-   * search choices for a value that matches the discriminator.
-   * if we find one, execute the xdr routine for that value.
-   */
-  for (; choices->proc != NULL_xdrproc_t; choices++)
-    {
-      if (choices->value == dscm)
-       return (*(choices->proc)) (xdrs, unp, LASTUNSIGNED);
-    }
-
-  /*
-   * no match - execute the default xdr routine if there is one
-   */
-  return ((dfault == NULL_xdrproc_t) ? FALSE :
-         (*dfault) (xdrs, unp, LASTUNSIGNED));
-}
-INTDEF(xdr_union)
-
-
-/*
- * Non-portable xdr primitives.
- * Care should be taken when moving these routines to new architectures.
- */
-
-
-/*
- * XDR null terminated ASCII strings
- * xdr_string deals with "C strings" - arrays of bytes that are
- * terminated by a NULL character.  The parameter cpp references a
- * pointer to storage; If the pointer is null, then the necessary
- * storage is allocated.  The last parameter is the max allowed length
- * of the string as specified by a protocol.
- */
-bool_t
-xdr_string (xdrs, cpp, maxsize)
-     XDR *xdrs;
-     char **cpp;
-     u_int maxsize;
-{
-  char *sp = *cpp;     /* sp is the actual string pointer */
-  u_int size;
-  u_int nodesize;
-
-  /*
-   * first deal with the length since xdr strings are counted-strings
-   */
-  switch (xdrs->x_op)
-    {
-    case XDR_FREE:
-      if (sp == NULL)
-       {
-         return TRUE;          /* already free */
-       }
-      /* fall through... */
-    case XDR_ENCODE:
-      if (sp == NULL)
-       return FALSE;
-      size = strlen (sp);
-      break;
-    case XDR_DECODE:
-      break;
-    }
-  if (!INTUSE(xdr_u_int) (xdrs, &size))
-    {
-      return FALSE;
-    }
-  if (size > maxsize)
-    {
-      return FALSE;
-    }
-  nodesize = size + 1;
-  if (nodesize == 0)
-    {
-      /* This means an overflow.  It a bug in the caller which
-        provided a too large maxsize but nevertheless catch it
-        here.  */
-      return FALSE;
-    }
-
-  /*
-   * now deal with the actual bytes
-   */
-  switch (xdrs->x_op)
-    {
-    case XDR_DECODE:
-      if (sp == NULL)
-       *cpp = sp = (char *) mem_alloc (nodesize);
-      if (sp == NULL)
-       {
-         fprintf (NULL, "%s", "xdr_string: out of memory\n");
-         return FALSE;
-       }
-      sp[size] = 0;
-      /* fall into ... */
-
-    case XDR_ENCODE:
-      return INTUSE(xdr_opaque) (xdrs, sp, size);
-
-    case XDR_FREE:
-      mem_free (sp, nodesize);
-      *cpp = NULL;
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_string)
-
-/*
- * Wrapper for xdr_string that can be called directly from
- * routines like clnt_call
- */
-bool_t
-xdr_wrapstring (xdrs, cpp)
-     XDR *xdrs;
-     char **cpp;
-{
-  if (INTUSE(xdr_string) (xdrs, cpp, LASTUNSIGNED))
-    {
-      return TRUE;
-    }
-  return FALSE;
-}
diff --git a/source/unres/src_MD-M/xdrf-Argonne/xdr.h b/source/unres/src_MD-M/xdrf-Argonne/xdr.h
deleted file mode 100644 (file)
index 2602ad9..0000000
+++ /dev/null
@@ -1,379 +0,0 @@
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-
-/*
- * xdr.h, External Data Representation Serialization Routines.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-#ifndef _RPC_XDR_H
-#define _RPC_XDR_H 1
-
-#include <features.h>
-#include <sys/types.h>
-#include "types.h"
-
-/* We need FILE.  */
-#include <stdio.h>
-
-__BEGIN_DECLS
-
-/*
- * XDR provides a conventional way for converting between C data
- * types and an external bit-string representation.  Library supplied
- * routines provide for the conversion on built-in C data types.  These
- * routines and utility routines defined here are used to help implement
- * a type encode/decode routine for each user-defined type.
- *
- * Each data type provides a single procedure which takes two arguments:
- *
- *      bool_t
- *      xdrproc(xdrs, argresp)
- *              XDR *xdrs;
- *              <type> *argresp;
- *
- * xdrs is an instance of a XDR handle, to which or from which the data
- * type is to be converted.  argresp is a pointer to the structure to be
- * converted.  The XDR handle contains an operation field which indicates
- * which of the operations (ENCODE, DECODE * or FREE) is to be performed.
- *
- * XDR_DECODE may allocate space if the pointer argresp is null.  This
- * data can be freed with the XDR_FREE operation.
- *
- * We write only one procedure per data type to make it easy
- * to keep the encode and decode procedures for a data type consistent.
- * In many cases the same code performs all operations on a user defined type,
- * because all the hard work is done in the component type routines.
- * decode as a series of calls on the nested data types.
- */
-
-/*
- * Xdr operations.  XDR_ENCODE causes the type to be encoded into the
- * stream.  XDR_DECODE causes the type to be extracted from the stream.
- * XDR_FREE can be used to release the space allocated by an XDR_DECODE
- * request.
- */
-enum xdr_op {
-  XDR_ENCODE = 0,
-  XDR_DECODE = 1,
-  XDR_FREE = 2
-};
-
-/*
- * This is the number of bytes per unit of external data.
- */
-#define BYTES_PER_XDR_UNIT     (4)
-/*
- * This only works if the above is a power of 2.  But it's defined to be
- * 4 by the appropriate RFCs.  So it will work.  And it's normally quicker
- * than the old routine.
- */
-#if 1
-#define RNDUP(x)  (((x) + BYTES_PER_XDR_UNIT - 1) & ~(BYTES_PER_XDR_UNIT - 1))
-#else /* this is the old routine */
-#define RNDUP(x)  ((((x) + BYTES_PER_XDR_UNIT - 1) / BYTES_PER_XDR_UNIT) \
-                   * BYTES_PER_XDR_UNIT)
-#endif
-
-/*
- * The XDR handle.
- * Contains operation which is being applied to the stream,
- * an operations vector for the particular implementation (e.g. see xdr_mem.c),
- * and two private fields for the use of the particular implementation.
- */
-typedef struct XDR XDR;
-struct XDR
-  {
-    enum xdr_op x_op;          /* operation; fast additional param */
-    struct xdr_ops
-      {
-       bool_t (*x_getlong) (XDR *__xdrs, long *__lp);
-       /* get a long from underlying stream */
-       bool_t (*x_putlong) (XDR *__xdrs, __const long *__lp);
-       /* put a long to " */
-       bool_t (*x_getbytes) (XDR *__xdrs, caddr_t __addr, u_int __len);
-       /* get some bytes from " */
-       bool_t (*x_putbytes) (XDR *__xdrs, __const char *__addr, u_int __len);
-       /* put some bytes to " */
-       u_int (*x_getpostn) (__const XDR *__xdrs);
-       /* returns bytes off from beginning */
-       bool_t (*x_setpostn) (XDR *__xdrs, u_int __pos);
-       /* lets you reposition the stream */
-       int32_t *(*x_inline) (XDR *__xdrs, u_int __len);
-       /* buf quick ptr to buffered data */
-       void (*x_destroy) (XDR *__xdrs);
-       /* free privates of this xdr_stream */
-       bool_t (*x_getint32) (XDR *__xdrs, int32_t *__ip);
-       /* get a int from underlying stream */
-       bool_t (*x_putint32) (XDR *__xdrs, __const int32_t *__ip);
-       /* put a int to " */
-      }
-     *x_ops;
-    caddr_t x_public;          /* users' data */
-    caddr_t x_private;         /* pointer to private data */
-    caddr_t x_base;            /* private used for position info */
-    u_int x_handy;             /* extra private word */
-  };
-
-/*
- * A xdrproc_t exists for each data type which is to be encoded or decoded.
- *
- * The second argument to the xdrproc_t is a pointer to an opaque pointer.
- * The opaque pointer generally points to a structure of the data type
- * to be decoded.  If this pointer is 0, then the type routines should
- * allocate dynamic storage of the appropriate size and return it.
- * bool_t       (*xdrproc_t)(XDR *, caddr_t *);
- */
-typedef bool_t (*xdrproc_t) (XDR *, void *,...);
-
-
-/*
- * Operations defined on a XDR handle
- *
- * XDR          *xdrs;
- * int32_t      *int32p;
- * long         *longp;
- * caddr_t       addr;
- * u_int         len;
- * u_int         pos;
- */
-#define XDR_GETINT32(xdrs, int32p)                      \
-        (*(xdrs)->x_ops->x_getint32)(xdrs, int32p)
-#define xdr_getint32(xdrs, int32p)                      \
-        (*(xdrs)->x_ops->x_getint32)(xdrs, int32p)
-
-#define XDR_PUTINT32(xdrs, int32p)                      \
-        (*(xdrs)->x_ops->x_putint32)(xdrs, int32p)
-#define xdr_putint32(xdrs, int32p)                      \
-        (*(xdrs)->x_ops->x_putint32)(xdrs, int32p)
-
-#define XDR_GETLONG(xdrs, longp)                       \
-       (*(xdrs)->x_ops->x_getlong)(xdrs, longp)
-#define xdr_getlong(xdrs, longp)                       \
-       (*(xdrs)->x_ops->x_getlong)(xdrs, longp)
-
-#define XDR_PUTLONG(xdrs, longp)                       \
-       (*(xdrs)->x_ops->x_putlong)(xdrs, longp)
-#define xdr_putlong(xdrs, longp)                       \
-       (*(xdrs)->x_ops->x_putlong)(xdrs, longp)
-
-#define XDR_GETBYTES(xdrs, addr, len)                  \
-       (*(xdrs)->x_ops->x_getbytes)(xdrs, addr, len)
-#define xdr_getbytes(xdrs, addr, len)                  \
-       (*(xdrs)->x_ops->x_getbytes)(xdrs, addr, len)
-
-#define XDR_PUTBYTES(xdrs, addr, len)                  \
-       (*(xdrs)->x_ops->x_putbytes)(xdrs, addr, len)
-#define xdr_putbytes(xdrs, addr, len)                  \
-       (*(xdrs)->x_ops->x_putbytes)(xdrs, addr, len)
-
-#define XDR_GETPOS(xdrs)                               \
-       (*(xdrs)->x_ops->x_getpostn)(xdrs)
-#define xdr_getpos(xdrs)                               \
-       (*(xdrs)->x_ops->x_getpostn)(xdrs)
-
-#define XDR_SETPOS(xdrs, pos)                          \
-       (*(xdrs)->x_ops->x_setpostn)(xdrs, pos)
-#define xdr_setpos(xdrs, pos)                          \
-       (*(xdrs)->x_ops->x_setpostn)(xdrs, pos)
-
-#define        XDR_INLINE(xdrs, len)                           \
-       (*(xdrs)->x_ops->x_inline)(xdrs, len)
-#define        xdr_inline(xdrs, len)                           \
-       (*(xdrs)->x_ops->x_inline)(xdrs, len)
-
-#define        XDR_DESTROY(xdrs)                                       \
-       do {                                                    \
-               if ((xdrs)->x_ops->x_destroy)                   \
-                       (*(xdrs)->x_ops->x_destroy)(xdrs);      \
-       } while (0)
-#define        xdr_destroy(xdrs)                                       \
-       do {                                                    \
-               if ((xdrs)->x_ops->x_destroy)                   \
-                       (*(xdrs)->x_ops->x_destroy)(xdrs);      \
-       } while (0)
-
-/*
- * Support struct for discriminated unions.
- * You create an array of xdrdiscrim structures, terminated with
- * a entry with a null procedure pointer.  The xdr_union routine gets
- * the discriminant value and then searches the array of structures
- * for a matching value.  If a match is found the associated xdr routine
- * is called to handle that part of the union.  If there is
- * no match, then a default routine may be called.
- * If there is no match and no default routine it is an error.
- */
-#define NULL_xdrproc_t ((xdrproc_t)0)
-struct xdr_discrim
-{
-  int value;
-  xdrproc_t proc;
-};
-
-/*
- * Inline routines for fast encode/decode of primitive data types.
- * Caveat emptor: these use single memory cycles to get the
- * data from the underlying buffer, and will fail to operate
- * properly if the data is not aligned.  The standard way to use these
- * is to say:
- *      if ((buf = XDR_INLINE(xdrs, count)) == NULL)
- *              return (FALSE);
- *      <<< macro calls >>>
- * where ``count'' is the number of bytes of data occupied
- * by the primitive data types.
- *
- * N.B. and frozen for all time: each data type here uses 4 bytes
- * of external representation.
- */
-
-#define IXDR_GET_INT32(buf)           ((int32_t)ntohl((uint32_t)*(buf)++))
-#define IXDR_PUT_INT32(buf, v)        (*(buf)++ = (int32_t)htonl((uint32_t)(v)))
-#define IXDR_GET_U_INT32(buf)         ((uint32_t)IXDR_GET_INT32(buf))
-#define IXDR_PUT_U_INT32(buf, v)      IXDR_PUT_INT32(buf, (int32_t)(v))
-
-/* WARNING: The IXDR_*_LONG defines are removed by Sun for new platforms
- * and shouldn't be used any longer. Code which use this defines or longs
- * in the RPC code will not work on 64bit Solaris platforms !
- */
-#define IXDR_GET_LONG(buf) ((long)IXDR_GET_U_INT32(buf))
-#define IXDR_PUT_LONG(buf, v) ((long)IXDR_PUT_INT32(buf, (long)(v)))
-#define IXDR_GET_U_LONG(buf)         ((u_long)IXDR_GET_LONG(buf))
-#define IXDR_PUT_U_LONG(buf, v)              IXDR_PUT_LONG(buf, (long)(v))
-
-
-#define IXDR_GET_BOOL(buf)            ((bool_t)IXDR_GET_LONG(buf))
-#define IXDR_GET_ENUM(buf, t)         ((t)IXDR_GET_LONG(buf))
-#define IXDR_GET_SHORT(buf)           ((short)IXDR_GET_LONG(buf))
-#define IXDR_GET_U_SHORT(buf)         ((u_short)IXDR_GET_LONG(buf))
-
-#define IXDR_PUT_BOOL(buf, v)         IXDR_PUT_LONG(buf, (long)(v))
-#define IXDR_PUT_ENUM(buf, v)         IXDR_PUT_LONG(buf, (long)(v))
-#define IXDR_PUT_SHORT(buf, v)        IXDR_PUT_LONG(buf, (long)(v))
-#define IXDR_PUT_U_SHORT(buf, v)      IXDR_PUT_LONG(buf, (long)(v))
-
-/*
- * These are the "generic" xdr routines.
- * None of these can have const applied because it's not possible to
- * know whether the call is a read or a write to the passed parameter
- * also, the XDR structure is always updated by some of these calls.
- */
-extern bool_t xdr_void (void) __THROW;
-extern bool_t xdr_short (XDR *__xdrs, short *__sp) __THROW;
-extern bool_t xdr_u_short (XDR *__xdrs, u_short *__usp) __THROW;
-extern bool_t xdr_int (XDR *__xdrs, int *__ip) __THROW;
-extern bool_t xdr_u_int (XDR *__xdrs, u_int *__up) __THROW;
-extern bool_t xdr_long (XDR *__xdrs, long *__lp) __THROW;
-extern bool_t xdr_u_long (XDR *__xdrs, u_long *__ulp) __THROW;
-extern bool_t xdr_hyper (XDR *__xdrs, quad_t *__llp) __THROW;
-extern bool_t xdr_u_hyper (XDR *__xdrs, u_quad_t *__ullp) __THROW;
-extern bool_t xdr_longlong_t (XDR *__xdrs, quad_t *__llp) __THROW;
-extern bool_t xdr_u_longlong_t (XDR *__xdrs, u_quad_t *__ullp) __THROW;
-extern bool_t xdr_int8_t (XDR *__xdrs, int8_t *__ip) __THROW;
-extern bool_t xdr_uint8_t (XDR *__xdrs, uint8_t *__up) __THROW;
-extern bool_t xdr_int16_t (XDR *__xdrs, int16_t *__ip) __THROW;
-extern bool_t xdr_uint16_t (XDR *__xdrs, uint16_t *__up) __THROW;
-extern bool_t xdr_int32_t (XDR *__xdrs, int32_t *__ip) __THROW;
-extern bool_t xdr_uint32_t (XDR *__xdrs, uint32_t *__up) __THROW;
-extern bool_t xdr_int64_t (XDR *__xdrs, int64_t *__ip) __THROW;
-extern bool_t xdr_uint64_t (XDR *__xdrs, uint64_t *__up) __THROW;
-extern bool_t xdr_quad_t (XDR *__xdrs, quad_t *__ip) __THROW;
-extern bool_t xdr_u_quad_t (XDR *__xdrs, u_quad_t *__up) __THROW;
-extern bool_t xdr_bool (XDR *__xdrs, bool_t *__bp) __THROW;
-extern bool_t xdr_enum (XDR *__xdrs, enum_t *__ep) __THROW;
-extern bool_t xdr_array (XDR * _xdrs, caddr_t *__addrp, u_int *__sizep,
-                        u_int __maxsize, u_int __elsize, xdrproc_t __elproc)
-     __THROW;
-extern bool_t xdr_bytes (XDR *__xdrs, char **__cpp, u_int *__sizep,
-                        u_int __maxsize) __THROW;
-extern bool_t xdr_opaque (XDR *__xdrs, caddr_t __cp, u_int __cnt) __THROW;
-extern bool_t xdr_string (XDR *__xdrs, char **__cpp, u_int __maxsize) __THROW;
-extern bool_t xdr_union (XDR *__xdrs, enum_t *__dscmp, char *__unp,
-                        __const struct xdr_discrim *__choices,
-                        xdrproc_t dfault) __THROW;
-extern bool_t xdr_char (XDR *__xdrs, char *__cp) __THROW;
-extern bool_t xdr_u_char (XDR *__xdrs, u_char *__cp) __THROW;
-extern bool_t xdr_vector (XDR *__xdrs, char *__basep, u_int __nelem,
-                         u_int __elemsize, xdrproc_t __xdr_elem) __THROW;
-extern bool_t xdr_float (XDR *__xdrs, float *__fp) __THROW;
-extern bool_t xdr_double (XDR *__xdrs, double *__dp) __THROW;
-extern bool_t xdr_reference (XDR *__xdrs, caddr_t *__xpp, u_int __size,
-                            xdrproc_t __proc) __THROW;
-extern bool_t xdr_pointer (XDR *__xdrs, char **__objpp,
-                          u_int __obj_size, xdrproc_t __xdr_obj) __THROW;
-extern bool_t xdr_wrapstring (XDR *__xdrs, char **__cpp) __THROW;
-extern u_long xdr_sizeof (xdrproc_t, void *) __THROW;
-
-/*
- * Common opaque bytes objects used by many rpc protocols;
- * declared here due to commonality.
- */
-#define MAX_NETOBJ_SZ 1024
-struct netobj
-{
-  u_int n_len;
-  char *n_bytes;
-};
-typedef struct netobj netobj;
-extern bool_t xdr_netobj (XDR *__xdrs, struct netobj *__np) __THROW;
-
-/*
- * These are the public routines for the various implementations of
- * xdr streams.
- */
-
-/* XDR using memory buffers */
-extern void xdrmem_create (XDR *__xdrs, __const caddr_t __addr,
-                          u_int __size, enum xdr_op __xop) __THROW;
-
-/* XDR using stdio library */
-extern void xdrstdio_create (XDR *__xdrs, FILE *__file, enum xdr_op __xop)
-     __THROW;
-
-/* XDR pseudo records for tcp */
-extern void xdrrec_create (XDR *__xdrs, u_int __sendsize,
-                          u_int __recvsize, caddr_t __tcp_handle,
-                          int (*__readit) (char *, char *, int),
-                          int (*__writeit) (char *, char *, int)) __THROW;
-
-/* make end of xdr record */
-extern bool_t xdrrec_endofrecord (XDR *__xdrs, bool_t __sendnow) __THROW;
-
-/* move to beginning of next record */
-extern bool_t xdrrec_skiprecord (XDR *__xdrs) __THROW;
-
-/* true if no more input */
-extern bool_t xdrrec_eof (XDR *__xdrs) __THROW;
-
-/* free memory buffers for xdr */
-extern void xdr_free (xdrproc_t __proc, char *__objp) __THROW;
-
-__END_DECLS
-
-#endif /* rpc/xdr.h */
diff --git a/source/unres/src_MD-M/xdrf-Argonne/xdr.o b/source/unres/src_MD-M/xdrf-Argonne/xdr.o
deleted file mode 100644 (file)
index 72fd1fe..0000000
Binary files a/source/unres/src_MD-M/xdrf-Argonne/xdr.o and /dev/null differ
diff --git a/source/unres/src_MD-M/xdrf-Argonne/xdr_array.c b/source/unres/src_MD-M/xdrf-Argonne/xdr_array.c
deleted file mode 100644 (file)
index 836405c..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-# define INTUSE(name) name
-# define INTDEF(name)
-/* @(#)xdr_array.c     2.1 88/07/29 4.0 RPCSRC */
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)xdr_array.c 1.10 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * xdr_array.c, Generic XDR routines implementation.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- * These are the "non-trivial" xdr primitives used to serialize and de-serialize
- * arrays.  See xdr.h for more info on the interface to xdr.
- */
-
-#include <stdio.h>
-#include <string.h>
-#include "types.h"
-#include "xdr.h"
-#include <libintl.h>
-#include <limits.h>
-
-#ifdef USE_IN_LIBIO
-# include <wchar.h>
-#endif
-
-#define LASTUNSIGNED   ((u_int)0-1)
-
-
-/*
- * XDR an array of arbitrary elements
- * *addrp is a pointer to the array, *sizep is the number of elements.
- * If addrp is NULL (*sizep * elsize) bytes are allocated.
- * elsize is the size (in bytes) of each element, and elproc is the
- * xdr procedure to call to handle each element of the array.
- */
-bool_t
-xdr_array (xdrs, addrp, sizep, maxsize, elsize, elproc)
-     XDR *xdrs;
-     caddr_t *addrp;           /* array pointer */
-     u_int *sizep;             /* number of elements */
-     u_int maxsize;            /* max numberof elements */
-     u_int elsize;             /* size in bytes of each element */
-     xdrproc_t elproc;         /* xdr routine to handle each element */
-{
-  u_int i;
-  caddr_t target = *addrp;
-  u_int c;             /* the actual element count */
-  bool_t stat = TRUE;
-  u_int nodesize;
-
-  /* like strings, arrays are really counted arrays */
-  if (!INTUSE(xdr_u_int) (xdrs, sizep))
-    {
-      return FALSE;
-    }
-  c = *sizep;
-  /*
-   * XXX: Let the overflow possibly happen with XDR_FREE because mem_free()
-   * doesn't actually use its second argument anyway.
-   */
-  if ((c > maxsize || c > UINT_MAX / elsize) && (xdrs->x_op != XDR_FREE))
-    {
-      return FALSE;
-    }
-  nodesize = c * elsize;
-
-  /*
-   * if we are deserializing, we may need to allocate an array.
-   * We also save time by checking for a null array if we are freeing.
-   */
-  if (target == NULL)
-    switch (xdrs->x_op)
-      {
-      case XDR_DECODE:
-       if (c == 0)
-         return TRUE;
-       *addrp = target = mem_alloc (nodesize);
-       if (target == NULL)
-         {
-           fprintf (stderr, "%s", "xdr_array: out of memory\n");
-           return FALSE;
-         }
-       __bzero (target, nodesize);
-       break;
-
-      case XDR_FREE:
-       return TRUE;
-      default:
-       break;
-      }
-
-  /*
-   * now we xdr each element of array
-   */
-  for (i = 0; (i < c) && stat; i++)
-    {
-      stat = (*elproc) (xdrs, target, LASTUNSIGNED);
-      target += elsize;
-    }
-
-  /*
-   * the array may need freeing
-   */
-  if (xdrs->x_op == XDR_FREE)
-    {
-      mem_free (*addrp, nodesize);
-      *addrp = NULL;
-    }
-  return stat;
-}
-INTDEF(xdr_array)
-
-/*
- * xdr_vector():
- *
- * XDR a fixed length array. Unlike variable-length arrays,
- * the storage of fixed length arrays is static and unfreeable.
- * > basep: base of the array
- * > size: size of the array
- * > elemsize: size of each element
- * > xdr_elem: routine to XDR each element
- */
-bool_t
-xdr_vector (xdrs, basep, nelem, elemsize, xdr_elem)
-     XDR *xdrs;
-     char *basep;
-     u_int nelem;
-     u_int elemsize;
-     xdrproc_t xdr_elem;
-{
-  u_int i;
-  char *elptr;
-
-  elptr = basep;
-  for (i = 0; i < nelem; i++)
-    {
-      if (!(*xdr_elem) (xdrs, elptr, LASTUNSIGNED))
-       {
-         return FALSE;
-       }
-      elptr += elemsize;
-    }
-  return TRUE;
-}
diff --git a/source/unres/src_MD-M/xdrf-Argonne/xdr_array.o b/source/unres/src_MD-M/xdrf-Argonne/xdr_array.o
deleted file mode 100644 (file)
index 97caed2..0000000
Binary files a/source/unres/src_MD-M/xdrf-Argonne/xdr_array.o and /dev/null differ
diff --git a/source/unres/src_MD-M/xdrf-Argonne/xdr_float.c b/source/unres/src_MD-M/xdrf-Argonne/xdr_float.c
deleted file mode 100644 (file)
index 15d3c88..0000000
+++ /dev/null
@@ -1,307 +0,0 @@
-/* @(#)xdr_float.c     2.1 88/07/29 4.0 RPCSRC */
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)xdr_float.c 1.12 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * xdr_float.c, Generic XDR routines implementation.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- * These are the "floating point" xdr routines used to (de)serialize
- * most common data items.  See xdr.h for more info on the interface to
- * xdr.
- */
-
-#include <stdio.h>
-#include <endian.h>
-
-#include "types.h"
-#include "xdr.h"
-
-/*
- * NB: Not portable.
- * This routine works on Suns (Sky / 68000's) and Vaxen.
- */
-
-#define LSW    (__FLOAT_WORD_ORDER == __BIG_ENDIAN)
-
-#ifdef vax
-
-/* What IEEE single precision floating point looks like on a Vax */
-struct ieee_single {
-       unsigned int    mantissa: 23;
-       unsigned int    exp     : 8;
-       unsigned int    sign    : 1;
-};
-
-/* Vax single precision floating point */
-struct vax_single {
-       unsigned int    mantissa1 : 7;
-       unsigned int    exp       : 8;
-       unsigned int    sign      : 1;
-       unsigned int    mantissa2 : 16;
-};
-
-#define VAX_SNG_BIAS   0x81
-#define IEEE_SNG_BIAS  0x7f
-
-static struct sgl_limits {
-       struct vax_single s;
-       struct ieee_single ieee;
-} sgl_limits[2] = {
-       {{ 0x7f, 0xff, 0x0, 0xffff },   /* Max Vax */
-       { 0x0, 0xff, 0x0 }},            /* Max IEEE */
-       {{ 0x0, 0x0, 0x0, 0x0 },        /* Min Vax */
-       { 0x0, 0x0, 0x0 }}              /* Min IEEE */
-};
-#endif /* vax */
-
-bool_t
-xdr_float(xdrs, fp)
-     XDR *xdrs;
-     float *fp;
-{
-#ifdef vax
-       struct ieee_single is;
-       struct vax_single vs, *vsp;
-       struct sgl_limits *lim;
-       int i;
-#endif
-       switch (xdrs->x_op) {
-
-       case XDR_ENCODE:
-#ifdef vax
-               vs = *((struct vax_single *)fp);
-               for (i = 0, lim = sgl_limits;
-                       i < sizeof(sgl_limits)/sizeof(struct sgl_limits);
-                       i++, lim++) {
-                       if ((vs.mantissa2 == lim->s.mantissa2) &&
-                               (vs.exp == lim->s.exp) &&
-                               (vs.mantissa1 == lim->s.mantissa1)) {
-                               is = lim->ieee;
-                               goto shipit;
-                       }
-               }
-               is.exp = vs.exp - VAX_SNG_BIAS + IEEE_SNG_BIAS;
-               is.mantissa = (vs.mantissa1 << 16) | vs.mantissa2;
-       shipit:
-               is.sign = vs.sign;
-               return (XDR_PUTLONG(xdrs, (long *)&is));
-#else
-               if (sizeof(float) == sizeof(long))
-                       return (XDR_PUTLONG(xdrs, (long *)fp));
-               else if (sizeof(float) == sizeof(int)) {
-                       long tmp = *(int *)fp;
-                       return (XDR_PUTLONG(xdrs, &tmp));
-               }
-               break;
-#endif
-
-       case XDR_DECODE:
-#ifdef vax
-               vsp = (struct vax_single *)fp;
-               if (!XDR_GETLONG(xdrs, (long *)&is))
-                       return (FALSE);
-               for (i = 0, lim = sgl_limits;
-                       i < sizeof(sgl_limits)/sizeof(struct sgl_limits);
-                       i++, lim++) {
-                       if ((is.exp == lim->ieee.exp) &&
-                               (is.mantissa == lim->ieee.mantissa)) {
-                               *vsp = lim->s;
-                               goto doneit;
-                       }
-               }
-               vsp->exp = is.exp - IEEE_SNG_BIAS + VAX_SNG_BIAS;
-               vsp->mantissa2 = is.mantissa;
-               vsp->mantissa1 = (is.mantissa >> 16);
-       doneit:
-               vsp->sign = is.sign;
-               return (TRUE);
-#else
-               if (sizeof(float) == sizeof(long))
-                       return (XDR_GETLONG(xdrs, (long *)fp));
-               else if (sizeof(float) == sizeof(int)) {
-                       long tmp;
-                       if (XDR_GETLONG(xdrs, &tmp)) {
-                               *(int *)fp = tmp;
-                               return (TRUE);
-                       }
-               }
-               break;
-#endif
-
-       case XDR_FREE:
-               return (TRUE);
-       }
-       return (FALSE);
-}
-
-/*
- * This routine works on Suns (Sky / 68000's) and Vaxen.
- */
-
-#ifdef vax
-/* What IEEE double precision floating point looks like on a Vax */
-struct ieee_double {
-       unsigned int    mantissa1 : 20;
-       unsigned int    exp       : 11;
-       unsigned int    sign      : 1;
-       unsigned int    mantissa2 : 32;
-};
-
-/* Vax double precision floating point */
-struct  vax_double {
-       unsigned int    mantissa1 : 7;
-       unsigned int    exp       : 8;
-       unsigned int    sign      : 1;
-       unsigned int    mantissa2 : 16;
-       unsigned int    mantissa3 : 16;
-       unsigned int    mantissa4 : 16;
-};
-
-#define VAX_DBL_BIAS   0x81
-#define IEEE_DBL_BIAS  0x3ff
-#define MASK(nbits)    ((1 << nbits) - 1)
-
-static struct dbl_limits {
-       struct  vax_double d;
-       struct  ieee_double ieee;
-} dbl_limits[2] = {
-       {{ 0x7f, 0xff, 0x0, 0xffff, 0xffff, 0xffff },   /* Max Vax */
-       { 0x0, 0x7ff, 0x0, 0x0 }},                      /* Max IEEE */
-       {{ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},               /* Min Vax */
-       { 0x0, 0x0, 0x0, 0x0 }}                         /* Min IEEE */
-};
-
-#endif /* vax */
-
-
-bool_t
-xdr_double(xdrs, dp)
-     XDR *xdrs;
-     double *dp;
-{
-#ifdef vax
-       struct  ieee_double id;
-       struct  vax_double vd;
-       register struct dbl_limits *lim;
-       int i;
-#endif
-
-       switch (xdrs->x_op) {
-
-       case XDR_ENCODE:
-#ifdef vax
-               vd = *((struct vax_double *)dp);
-               for (i = 0, lim = dbl_limits;
-                       i < sizeof(dbl_limits)/sizeof(struct dbl_limits);
-                       i++, lim++) {
-                       if ((vd.mantissa4 == lim->d.mantissa4) &&
-                               (vd.mantissa3 == lim->d.mantissa3) &&
-                               (vd.mantissa2 == lim->d.mantissa2) &&
-                               (vd.mantissa1 == lim->d.mantissa1) &&
-                               (vd.exp == lim->d.exp)) {
-                               id = lim->ieee;
-                               goto shipit;
-                       }
-               }
-               id.exp = vd.exp - VAX_DBL_BIAS + IEEE_DBL_BIAS;
-               id.mantissa1 = (vd.mantissa1 << 13) | (vd.mantissa2 >> 3);
-               id.mantissa2 = ((vd.mantissa2 & MASK(3)) << 29) |
-                               (vd.mantissa3 << 13) |
-                               ((vd.mantissa4 >> 3) & MASK(13));
-       shipit:
-               id.sign = vd.sign;
-               dp = (double *)&id;
-#endif
-               if (2*sizeof(long) == sizeof(double)) {
-                       long *lp = (long *)dp;
-                       return (XDR_PUTLONG(xdrs, lp+!LSW) &&
-                               XDR_PUTLONG(xdrs, lp+LSW));
-               } else if (2*sizeof(int) == sizeof(double)) {
-                       int *ip = (int *)dp;
-                       long tmp[2];
-                       tmp[0] = ip[!LSW];
-                       tmp[1] = ip[LSW];
-                       return (XDR_PUTLONG(xdrs, tmp) &&
-                               XDR_PUTLONG(xdrs, tmp+1));
-               }
-               break;
-
-       case XDR_DECODE:
-#ifdef vax
-               lp = (long *)&id;
-               if (!XDR_GETLONG(xdrs, lp++) || !XDR_GETLONG(xdrs, lp))
-                       return (FALSE);
-               for (i = 0, lim = dbl_limits;
-                       i < sizeof(dbl_limits)/sizeof(struct dbl_limits);
-                       i++, lim++) {
-                       if ((id.mantissa2 == lim->ieee.mantissa2) &&
-                               (id.mantissa1 == lim->ieee.mantissa1) &&
-                               (id.exp == lim->ieee.exp)) {
-                               vd = lim->d;
-                               goto doneit;
-                       }
-               }
-               vd.exp = id.exp - IEEE_DBL_BIAS + VAX_DBL_BIAS;
-               vd.mantissa1 = (id.mantissa1 >> 13);
-               vd.mantissa2 = ((id.mantissa1 & MASK(13)) << 3) |
-                               (id.mantissa2 >> 29);
-               vd.mantissa3 = (id.mantissa2 >> 13);
-               vd.mantissa4 = (id.mantissa2 << 3);
-       doneit:
-               vd.sign = id.sign;
-               *dp = *((double *)&vd);
-               return (TRUE);
-#else
-               if (2*sizeof(long) == sizeof(double)) {
-                       long *lp = (long *)dp;
-                       return (XDR_GETLONG(xdrs, lp+!LSW) &&
-                               XDR_GETLONG(xdrs, lp+LSW));
-               } else if (2*sizeof(int) == sizeof(double)) {
-                       int *ip = (int *)dp;
-                       long tmp[2];
-                       if (XDR_GETLONG(xdrs, tmp+!LSW) &&
-                           XDR_GETLONG(xdrs, tmp+LSW)) {
-                               ip[0] = tmp[0];
-                               ip[1] = tmp[1];
-                               return (TRUE);
-                       }
-               }
-               break;
-#endif
-
-       case XDR_FREE:
-               return (TRUE);
-       }
-       return (FALSE);
-}
diff --git a/source/unres/src_MD-M/xdrf-Argonne/xdr_float.o b/source/unres/src_MD-M/xdrf-Argonne/xdr_float.o
deleted file mode 100644 (file)
index 00d3c7a..0000000
Binary files a/source/unres/src_MD-M/xdrf-Argonne/xdr_float.o and /dev/null differ
diff --git a/source/unres/src_MD-M/xdrf-Argonne/xdr_stdio.c b/source/unres/src_MD-M/xdrf-Argonne/xdr_stdio.c
deleted file mode 100644 (file)
index 12b1709..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-
-/*
- * xdr_stdio.c, XDR implementation on standard i/o file.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- * This set of routines implements a XDR on a stdio stream.
- * XDR_ENCODE serializes onto the stream, XDR_DECODE de-serializes
- * from the stream.
- */
-
-#include "types.h"
-#include <stdio.h>
-#include "xdr.h"
-
-#ifdef USE_IN_LIBIO
-# include <libio/iolibio.h>
-# define fflush(s) INTUSE(_IO_fflush) (s)
-# define fread(p, m, n, s) INTUSE(_IO_fread) (p, m, n, s)
-# define ftell(s) INTUSE(_IO_ftell) (s)
-# define fwrite(p, m, n, s) INTUSE(_IO_fwrite) (p, m, n, s)
-#endif
-
-static bool_t xdrstdio_getlong (XDR *, long *);
-static bool_t xdrstdio_putlong (XDR *, const long *);
-static bool_t xdrstdio_getbytes (XDR *, caddr_t, u_int);
-static bool_t xdrstdio_putbytes (XDR *, const char *, u_int);
-static u_int xdrstdio_getpos (const XDR *);
-static bool_t xdrstdio_setpos (XDR *, u_int);
-static int32_t *xdrstdio_inline (XDR *, u_int);
-static void xdrstdio_destroy (XDR *);
-static bool_t xdrstdio_getint32 (XDR *, int32_t *);
-static bool_t xdrstdio_putint32 (XDR *, const int32_t *);
-
-/*
- * Ops vector for stdio type XDR
- */
-static const struct xdr_ops xdrstdio_ops =
-{
-  xdrstdio_getlong,            /* deserialize a long int */
-  xdrstdio_putlong,            /* serialize a long int */
-  xdrstdio_getbytes,           /* deserialize counted bytes */
-  xdrstdio_putbytes,           /* serialize counted bytes */
-  xdrstdio_getpos,             /* get offset in the stream */
-  xdrstdio_setpos,             /* set offset in the stream */
-  xdrstdio_inline,             /* prime stream for inline macros */
-  xdrstdio_destroy,            /* destroy stream */
-  xdrstdio_getint32,           /* deserialize a int */
-  xdrstdio_putint32            /* serialize a int */
-};
-
-/*
- * Initialize a stdio xdr stream.
- * Sets the xdr stream handle xdrs for use on the stream file.
- * Operation flag is set to op.
- */
-void
-xdrstdio_create (XDR *xdrs, FILE *file, enum xdr_op op)
-{
-  xdrs->x_op = op;
-  /* We have to add the const since the `struct xdr_ops' in `struct XDR'
-     is not `const'.  */
-  xdrs->x_ops = (struct xdr_ops *) &xdrstdio_ops;
-  xdrs->x_private = (caddr_t) file;
-  xdrs->x_handy = 0;
-  xdrs->x_base = 0;
-}
-
-/*
- * Destroy a stdio xdr stream.
- * Cleans up the xdr stream handle xdrs previously set up by xdrstdio_create.
- */
-static void
-xdrstdio_destroy (XDR *xdrs)
-{
-  (void) fflush ((FILE *) xdrs->x_private);
-  /* xx should we close the file ?? */
-};
-
-static bool_t
-xdrstdio_getlong (XDR *xdrs, long *lp)
-{
-  u_int32_t mycopy;
-
-  if (fread ((caddr_t) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1)
-    return FALSE;
-  *lp = (long) ntohl (mycopy);
-  return TRUE;
-}
-
-static bool_t
-xdrstdio_putlong (XDR *xdrs, const long *lp)
-{
-  int32_t mycopy = htonl ((u_int32_t) *lp);
-
-  if (fwrite ((caddr_t) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1)
-    return FALSE;
-  return TRUE;
-}
-
-static bool_t
-xdrstdio_getbytes (XDR *xdrs, const caddr_t addr, u_int len)
-{
-  if ((len != 0) && (fread (addr, (int) len, 1,
-                           (FILE *) xdrs->x_private) != 1))
-    return FALSE;
-  return TRUE;
-}
-
-static bool_t
-xdrstdio_putbytes (XDR *xdrs, const char *addr, u_int len)
-{
-  if ((len != 0) && (fwrite (addr, (int) len, 1,
-                            (FILE *) xdrs->x_private) != 1))
-    return FALSE;
-  return TRUE;
-}
-
-static u_int
-xdrstdio_getpos (const XDR *xdrs)
-{
-  return (u_int) ftell ((FILE *) xdrs->x_private);
-}
-
-static bool_t
-xdrstdio_setpos (XDR *xdrs, u_int pos)
-{
-  return fseek ((FILE *) xdrs->x_private, (long) pos, 0) < 0 ? FALSE : TRUE;
-}
-
-static int32_t *
-xdrstdio_inline (XDR *xdrs, u_int len)
-{
-  /*
-   * Must do some work to implement this: must insure
-   * enough data in the underlying stdio buffer,
-   * that the buffer is aligned so that we can indirect through a
-   * long *, and stuff this pointer in xdrs->x_buf.  Doing
-   * a fread or fwrite to a scratch buffer would defeat
-   * most of the gains to be had here and require storage
-   * management on this buffer, so we don't do this.
-   */
-  return NULL;
-}
-
-static bool_t
-xdrstdio_getint32 (XDR *xdrs, int32_t *ip)
-{
-  int32_t mycopy;
-
-  if (fread ((caddr_t) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1)
-    return FALSE;
-  *ip = ntohl (mycopy);
-  return TRUE;
-}
-
-static bool_t
-xdrstdio_putint32 (XDR *xdrs, const int32_t *ip)
-{
-  int32_t mycopy = htonl (*ip);
-
-  ip = &mycopy;
-  if (fwrite ((caddr_t) ip, 4, 1, (FILE *) xdrs->x_private) != 1)
-    return FALSE;
-  return TRUE;
-}
-
-/* libc_hidden_def (xdrstdio_create) */
diff --git a/source/unres/src_MD-M/xdrf-Argonne/xdr_stdio.o b/source/unres/src_MD-M/xdrf-Argonne/xdr_stdio.o
deleted file mode 100644 (file)
index 00b079d..0000000
Binary files a/source/unres/src_MD-M/xdrf-Argonne/xdr_stdio.o and /dev/null differ
diff --git a/source/unres/src_MD-M/xdrf-Argonne/xdrf.h b/source/unres/src_MD-M/xdrf-Argonne/xdrf.h
deleted file mode 100644 (file)
index dedf5a2..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-/*_________________________________________________________________
- |
- | xdrf.h - include file for C routines that want to use the 
- |         functions below.
-*/
-
-int xdropen(XDR *xdrs, const char *filename, const char *type);
-int xdrclose(XDR *xdrs) ;
-int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) ;
-
diff --git a/source/unres/src_MD-M/xdrf/Makefile b/source/unres/src_MD-M/xdrf/Makefile
deleted file mode 100644 (file)
index 02c29f6..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-# This make file is part of the xdrf package.
-#
-# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-#
-# 2006 modified by Cezary Czaplewski
-
-# Set C compiler and flags for ARCH
-CC      = gcc
-CFLAGS         = -O 
-
-M4     = m4
-M4FILE = underscore.m4
-
-libxdrf.a:  libxdrf.o ftocstr.o
-       ar cr libxdrf.a $?
-
-clean:
-       rm -f libxdrf.o ftocstr.o libxdrf.a 
-
-ftocstr.o: ftocstr.c
-       $(CC) $(CFLAGS) -c ftocstr.c
-
-libxdrf.o:     libxdrf.m4 $(M4FILE)
-       $(M4) $(M4FILE) libxdrf.m4 > libxdrf.c
-       $(CC) $(CFLAGS) -c libxdrf.c
-       rm -f libxdrf.c
-
diff --git a/source/unres/src_MD-M/xdrf/Makefile_jubl b/source/unres/src_MD-M/xdrf/Makefile_jubl
deleted file mode 100644 (file)
index 8dc35cf..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-# This make file is part of the xdrf package.
-#
-# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-#
-# 2006 modified by Cezary Czaplewski
-
-# Set C compiler and flags for ARCH
-BGLSYS = /bgl/BlueLight/ppcfloor/bglsys
-
-CC = /usr/bin/blrts_xlc
-CPPC = /usr/bin/blrts_xlc
-
-CFLAGS= -O2 -I$(BGLSYS)/include -L$(BGLSYS)/lib -qarch=440d -qtune=440
-
-M4     = m4
-M4FILE = RS6K.m4
-
-libxdrf.a:  libxdrf.o ftocstr.o xdr_array.o  xdr.o  xdr_float.o  xdr_stdio.o
-       ar cr libxdrf.a $?
-
-clean:
-       rm -f *.o libxdrf.a 
-
-ftocstr.o: ftocstr.c
-       $(CC) $(CFLAGS) -c ftocstr.c
-
-libxdrf.o:     libxdrf.m4 $(M4FILE)
-       $(M4) $(M4FILE) libxdrf.m4 > libxdrf.c
-       $(CC) $(CFLAGS) -c libxdrf.c
-#      rm -f libxdrf.c
-
diff --git a/source/unres/src_MD-M/xdrf/Makefile_linux b/source/unres/src_MD-M/xdrf/Makefile_linux
deleted file mode 100644 (file)
index f03276e..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-# This make file is part of the xdrf package.
-#
-# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-#
-# 2006 modified by Cezary Czaplewski
-
-# Set C compiler and flags for ARCH
-CC      = cc
-CFLAGS         = -O 
-
-M4     = m4
-M4FILE = underscore.m4
-
-libxdrf.a:  libxdrf.o ftocstr.o
-       ar cr libxdrf.a $?
-
-clean:
-       rm -f libxdrf.o ftocstr.o libxdrf.a 
-
-ftocstr.o: ftocstr.c
-       $(CC) $(CFLAGS) -c ftocstr.c
-
-libxdrf.o:     libxdrf.m4 $(M4FILE)
-       $(M4) $(M4FILE) libxdrf.m4 > libxdrf.c
-       $(CC) $(CFLAGS) -c libxdrf.c
-       rm -f libxdrf.c
-
diff --git a/source/unres/src_MD-M/xdrf/Makefile~ b/source/unres/src_MD-M/xdrf/Makefile~
deleted file mode 100644 (file)
index f0f81e5..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-# This make file is part of the xdrf package.
-#
-# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-#
-# 2006 modified by Cezary Czaplewski
-
-# Set C compiler and flags for ARCH
-BGLSYS = /bgl/BlueLight/ppcfloor/bglsys
-
-CC = /usr/bin/blrts_xlc
-CPPC = /usr/bin/blrts_xlc
-
-CFLAGS= -O2 -I$(BGLSYS)/include -L$(BGLSYS)/lib -qarch=440d -qtune=440
-
-M4     = m4
-M4FILE = RS6K.m4
-
-libxdrf.a:  libxdrf.o ftocstr.o xdr_array.o  xdr.o  xdr_float.o  xdr_stdio.o
-       ar cr libxdrf.a $?
-
-clean:
-       rm -f libxdrf.o ftocstr.o libxdrf.a 
-
-ftocstr.o: ftocstr.c
-       $(CC) $(CFLAGS) -c ftocstr.c
-
-libxdrf.o:     libxdrf.m4 $(M4FILE)
-       $(M4) $(M4FILE) libxdrf.m4 > libxdrf.c
-       $(CC) $(CFLAGS) -c libxdrf.c
-#      rm -f libxdrf.c
-
diff --git a/source/unres/src_MD-M/xdrf/RS6K.m4 b/source/unres/src_MD-M/xdrf/RS6K.m4
deleted file mode 100644 (file)
index 0331d97..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-divert(-1)
-undefine(`len')
-#
-# do nothing special to FORTRAN function names
-#
-define(`FUNCTION',`$1')
-#
-# FORTRAN character strings are passed as follows:
-# a pointer to the base of the string is passed in the normal
-# argument list, and the length is passed by value as an extra
-# argument, after all of the other arguments.
-#
-define(`ARGS',`($1`'undivert(1))')
-define(`SAVE',`divert(1)$1`'divert(0)')
-define(`STRING_ARG',`$1_ptr`'SAVE(`, $1_len')')
-define(`STRING_ARG_DECL',`char * $1_ptr; int $1_len')
-define(`STRING_LEN',`$1_len')
-define(`STRING_PTR',`$1_ptr')
-divert(0)
-
diff --git a/source/unres/src_MD-M/xdrf/ftocstr.c b/source/unres/src_MD-M/xdrf/ftocstr.c
deleted file mode 100644 (file)
index ed2113f..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-int ftocstr(ds, dl, ss, sl)
-    char *ds, *ss;      /* dst, src ptrs */
-    int dl;             /* dst max len */
-    int sl;             /* src len */
-{
-    char *p;
-
-    for (p = ss + sl; --p >= ss && *p == ' '; ) ;
-    sl = p - ss + 1;
-    dl--;
-    ds[0] = 0;
-    if (sl > dl)
-        return 1;
-    while (sl--)
-       (*ds++ = *ss++);
-    *ds = '\0';
-    return 0;
-}
-
-
-int ctofstr(ds, dl, ss)
-       char *ds;               /* dest space */
-       int dl;                 /* max dest length */
-       char *ss;               /* src string (0-term) */
-{
-    while (dl && *ss) {
-       *ds++ = *ss++;
-       dl--;
-    }
-    while (dl--)
-       *ds++ = ' ';
-    return 0;
-}
diff --git a/source/unres/src_MD-M/xdrf/ftocstr.o b/source/unres/src_MD-M/xdrf/ftocstr.o
deleted file mode 100644 (file)
index f0102ea..0000000
Binary files a/source/unres/src_MD-M/xdrf/ftocstr.o and /dev/null differ
diff --git a/source/unres/src_MD-M/xdrf/libxdrf.a b/source/unres/src_MD-M/xdrf/libxdrf.a
deleted file mode 100644 (file)
index 98bd9c6..0000000
Binary files a/source/unres/src_MD-M/xdrf/libxdrf.a and /dev/null differ
diff --git a/source/unres/src_MD-M/xdrf/libxdrf.m4 b/source/unres/src_MD-M/xdrf/libxdrf.m4
deleted file mode 100644 (file)
index a6da458..0000000
+++ /dev/null
@@ -1,1238 +0,0 @@
-/*____________________________________________________________________________
- |
- | libxdrf - portable fortran interface to xdr. some xdr routines
- |          are C routines for compressed coordinates
- |
- | version 1.1
- |
- | This collection of routines is intended to write and read
- | data in a portable way to a file, so data written on one type
- | of machine can be read back on a different type.
- |
- | all fortran routines use an integer 'xdrid', which is an id to the
- | current xdr file, and is set by xdrfopen.
- | most routines have in integer 'ret' which is the return value.
- | The value of 'ret' is zero on failure, and most of the time one
- | on succes.
- |
- | There are three routines useful for C users:
- |  xdropen(), xdrclose(), xdr3dfcoord().
- | The first two replace xdrstdio_create and xdr_destroy, and *must* be
- | used when you plan to use xdr3dfcoord(). (they are also a bit
- | easier to interface). For writing data other than compressed coordinates 
- | you should use the standard C xdr routines (see xdr man page)
- |
- | xdrfopen(xdrid, filename, mode, ret)
- |     character *(*) filename
- |     character *(*) mode
- |
- |     this will open the file with the given filename (string)
- |     and the given mode, it returns an id in xdrid, which is
- |     to be used in all other calls to xdrf routines.
- |     mode is 'w' to create, or update an file, for all other
- |     values of mode the file is opened for reading
- |
- |     you need to call xdrfclose to flush the output and close
- |     the file.
- |     Note that you should not use xdrstdio_create, which comes with the
- |     standard xdr library
- |
- | xdrfclose(xdrid, ret)
- |     flush the data to the file, and closes the file;
- |     You should not use xdr_destroy (which comes standard with
- |     the xdr libraries.
- |
- | xdrfbool(xdrid, bp, ret)
- |     integer pb
- |
- |     This filter produces values of either 1 or 0    
- |
- | xdrfchar(xdrid, cp, ret)
- |     character cp
- |
- |     filter that translate between characters and their xdr representation
- |     Note that the characters in not compressed and occupies 4 bytes.
- |
- | xdrfdouble(xdrid, dp, ret)
- |     double dp
- |
- |     read/write a double.
- |
- | xdrffloat(xdrid, fp, ret)
- |     float fp
- |
- |     read/write a float.
- |
- | xdrfint(xdrid, ip, ret)
- |     integer ip
- |
- |     read/write integer.
- |
- | xdrflong(xdrid, lp, ret)
- |     integer lp
- |
- |     this routine has a possible portablility problem due to 64 bits longs.
- |
- | xdrfshort(xdrid, sp, ret)
- |     integer *2 sp
- |
- | xdrfstring(xdrid, sp, maxsize, ret)
- |     character *(*)
- |     integer maxsize
- |
- |     read/write a string, with maximum length given by maxsize
- |
- | xdrfwrapstring(xdris, sp, ret)
- |     character *(*)
- |
- |     read/write a string (it is the same as xdrfstring accept that it finds
- |     the stringlength itself.
- |
- | xdrfvector(xdrid, cp, size, xdrfproc, ret)
- |     character *(*)
- |     integer size
- |     external xdrfproc
- |
- |     read/write an array pointed to by cp, with number of elements
- |     defined by 'size'. the routine 'xdrfproc' is the name
- |     of one of the above routines to read/write data (like xdrfdouble)
- |     In contrast with the c-version you don't need to specify the
- |     byte size of an element.
- |     xdrfstring is not allowed here (it is in the c version)
- |     
- | xdrf3dfcoord(xdrid, fp, size, precision, ret)
- |     real (*) fp
- |     real precision
- |     integer size
- |
- |     this is *NOT* a standard xdr routine. I named it this way, because
- |     it invites people to use the other xdr routines.
- |     It is introduced to store specifically 3d coordinates of molecules
- |     (as found in molecular dynamics) and it writes it in a compressed way.
- |     It starts by multiplying all numbers by precision and
- |     rounding the result to integer. effectively converting
- |     all floating point numbers to fixed point.
- |     it uses an algorithm for compression that is optimized for
- |     molecular data, but could be used for other 3d coordinates
- |     as well. There is subtantial overhead involved, so call this
- |     routine only if you have a large number of coordinates to read/write
- |
- | ________________________________________________________________________
- |
- | Below are the routines to be used by C programmers. Use the 'normal'
- | xdr routines to write integers, floats, etc (see man xdr)   
- |
- | int xdropen(XDR *xdrs, const char *filename, const char *type)
- |     This will open the file with the given filename and the 
- |     given mode. You should pass it an allocated XDR struct
- |     in xdrs, to be used in all other calls to xdr routines.
- |     Mode is 'w' to create, or update an file, and for all 
- |     other values of mode the file is opened for reading. 
- |     You need to call xdrclose to flush the output and close
- |     the file.
- |
- |     Note that you should not use xdrstdio_create, which
- |     comes with the standard xdr library.
- |
- | int xdrclose(XDR *xdrs)
- |     Flush the data to the file, and close the file;
- |     You should not use xdr_destroy (which comes standard
- |     with the xdr libraries).
- |      
- | int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision)
- |     This is \fInot\fR a standard xdr routine. I named it this 
- |     way, because it invites people to use the other xdr 
- |     routines.
- |
- |     (c) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-*/     
-
-
-#include <limits.h>
-#include <malloc.h>
-#include <math.h>
-/* #include <rpc/rpc.h>
-#include <rpc/xdr.h> */
-#include "xdr.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include "xdrf.h"
-
-int ftocstr(char *, int, char *, int);
-int ctofstr(char *, int, char *);
-
-#define MAXID 20
-static FILE *xdrfiles[MAXID];
-static XDR *xdridptr[MAXID];
-static char xdrmodes[MAXID];
-static unsigned int cnt;
-
-typedef void (* FUNCTION(xdrfproc)) (int *, void *, int *);
-
-void
-FUNCTION(xdrfbool) ARGS(`xdrid, pb, ret')
-int *xdrid, *ret;
-int *pb;
-{
-       *ret = xdr_bool(xdridptr[*xdrid], (bool_t *) pb);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrfchar) ARGS(`xdrid, cp, ret')
-int *xdrid, *ret;
-char *cp;
-{
-       *ret = xdr_char(xdridptr[*xdrid], cp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfdouble) ARGS(`xdrid, dp, ret')
-int *xdrid, *ret;
-double *dp;
-{
-       *ret = xdr_double(xdridptr[*xdrid], dp);
-       cnt += sizeof(double);
-}
-
-void
-FUNCTION(xdrffloat) ARGS(`xdrid, fp, ret')
-int *xdrid, *ret;
-float *fp;
-{
-       *ret = xdr_float(xdridptr[*xdrid], fp);
-       cnt += sizeof(float);
-}
-
-void
-FUNCTION(xdrfint) ARGS(`xdrid, ip, ret')
-int *xdrid, *ret;
-int *ip;
-{
-       *ret = xdr_int(xdridptr[*xdrid], ip);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrflong) ARGS(`xdrid, lp, ret')
-int *xdrid, *ret;
-long *lp;
-{
-       *ret = xdr_long(xdridptr[*xdrid], lp);
-       cnt += sizeof(long);
-}
-
-void
-FUNCTION(xdrfshort) ARGS(`xdrid, sp, ret')
-int *xdrid, *ret;
-short *sp;
-{
-       *ret = xdr_short(xdridptr[*xdrid], sp);
-       cnt += sizeof(sp);
-}
-
-void
-FUNCTION(xdrfuchar) ARGS(`xdrid, ucp, ret')
-int *xdrid, *ret;
-char *ucp;
-{
-       *ret = xdr_u_char(xdridptr[*xdrid], ucp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfulong) ARGS(`xdrid, ulp, ret')
-int *xdrid, *ret;
-unsigned long *ulp;
-{
-       *ret = xdr_u_long(xdridptr[*xdrid], ulp);
-       cnt += sizeof(unsigned long);
-}
-
-void
-FUNCTION(xdrfushort) ARGS(`xdrid, usp, ret')
-int *xdrid, *ret;
-unsigned short *usp;
-{
-       *ret = xdr_u_short(xdridptr[*xdrid], usp);
-       cnt += sizeof(unsigned short);
-}
-
-void 
-FUNCTION(xdrf3dfcoord) ARGS(`xdrid, fp, size, precision, ret')
-int *xdrid, *ret;
-float *fp;
-int *size;
-float *precision;
-{
-       *ret = xdr3dfcoord(xdridptr[*xdrid], fp, size, precision);
-}
-
-void
-FUNCTION(xdrfstring) ARGS(`xdrid, STRING_ARG(sp), maxsize, ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-int *maxsize;
-{
-       char *tsp;
-
-       tsp = (char*) malloc(((STRING_LEN(sp)) + 1) * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, *maxsize+1, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int) *maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += *maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfwrapstring) ARGS(`xdrid,  STRING_ARG(sp), ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-{
-       char *tsp;
-       int maxsize;
-       maxsize = (STRING_LEN(sp)) + 1;
-       tsp = (char*) malloc(maxsize * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, maxsize, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int)maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfopaque) ARGS(`xdrid, cp, ccnt, ret')
-int *xdrid, *ret;
-caddr_t *cp;
-int *ccnt;
-{
-       *ret = xdr_opaque(xdridptr[*xdrid], (caddr_t)*cp, (u_int)*ccnt);
-       cnt += *ccnt;
-}
-
-void
-FUNCTION(xdrfsetpos) ARGS(`xdrid, pos, ret')
-int *xdrid, *ret;
-int *pos;
-{
-       *ret = xdr_setpos(xdridptr[*xdrid], (u_int) *pos);
-}
-
-void
-FUNCTION(xdrf) ARGS(`xdrid, pos')
-int *xdrid, *pos;
-{
-       *pos = xdr_getpos(xdridptr[*xdrid]);
-}
-
-void
-FUNCTION(xdrfvector) ARGS(`xdrid, cp, size, elproc, ret')
-int *xdrid, *ret;
-char *cp;
-int *size;
-FUNCTION(xdrfproc) elproc;
-{
-       int lcnt;
-       cnt = 0;
-       for (lcnt = 0; lcnt < *size; lcnt++) {
-               elproc(xdrid, (cp+cnt) , ret);
-       }
-}
-
-
-void
-FUNCTION(xdrfclose) ARGS(`xdrid, ret')
-int *xdrid;
-int *ret;
-{
-       *ret = xdrclose(xdridptr[*xdrid]);
-       cnt = 0;
-}
-
-void
-FUNCTION(xdrfopen) ARGS(`xdrid,  STRING_ARG(fp), STRING_ARG(mode), ret')
-int *xdrid;
-STRING_ARG_DECL(fp);
-STRING_ARG_DECL(mode);
-int *ret;
-{
-       char fname[512];
-       char fmode[3];
-
-       if (ftocstr(fname, sizeof(fname), STRING_PTR(fp), STRING_LEN(fp))) {
-               *ret = 0;
-       }
-       if (ftocstr(fmode, sizeof(fmode), STRING_PTR(mode),
-                       STRING_LEN(mode))) {
-               *ret = 0;
-       }
-
-       *xdrid = xdropen(NULL, fname, fmode);
-       if (*xdrid == 0)
-               *ret = 0;
-       else 
-               *ret = 1;       
-}
-
-/*___________________________________________________________________________
- |
- | what follows are the C routines for opening, closing xdr streams
- | and the routine to read/write compressed coordinates together
- | with some routines to assist in this task (those are marked
- | static and cannot be called from user programs)
-*/
-#define MAXABS INT_MAX-2
-
-#ifndef MIN
-#define MIN(x,y) ((x) < (y) ? (x):(y))
-#endif
-#ifndef MAX
-#define MAX(x,y) ((x) > (y) ? (x):(y))
-#endif
-#ifndef SQR
-#define SQR(x) ((x)*(x))
-#endif
-static int magicints[] = {
-    0, 0, 0, 0, 0, 0, 0, 0, 0,
-    8, 10, 12, 16, 20, 25, 32, 40, 50, 64,
-    80, 101, 128, 161, 203, 256, 322, 406, 512, 645,
-    812, 1024, 1290, 1625, 2048, 2580, 3250, 4096, 5060, 6501,
-    8192, 10321, 13003, 16384, 20642, 26007, 32768, 41285, 52015, 65536,
-    82570, 104031, 131072, 165140, 208063, 262144, 330280, 416127, 524287, 660561,
-    832255, 1048576, 1321122, 1664510, 2097152, 2642245, 3329021, 4194304, 5284491, 6658042,
-    8388607, 10568983, 13316085, 16777216 };
-
-#define FIRSTIDX 9
-/* note that magicints[FIRSTIDX-1] == 0 */
-#define LASTIDX (sizeof(magicints) / sizeof(*magicints))
-
-
-/*__________________________________________________________________________
- |
- | xdropen - open xdr file
- |
- | This versions differs from xdrstdio_create, because I need to know
- | the state of the file (read or write) so I can use xdr3dfcoord
- | in eigther read or write mode, and the file descriptor
- | so I can close the file (something xdr_destroy doesn't do).
- |
-*/
-
-int xdropen(XDR *xdrs, const char *filename, const char *type) {
-    static int init_done = 0;
-    enum xdr_op lmode;
-    const char *type1;
-    int xdrid;
-    
-    if (init_done == 0) {
-       for (xdrid = 1; xdrid < MAXID; xdrid++) {
-           xdridptr[xdrid] = NULL;
-       }
-       init_done = 1;
-    }
-    xdrid = 1;
-    while (xdrid < MAXID && xdridptr[xdrid] != NULL) {
-       xdrid++;
-    }
-    if (xdrid == MAXID) {
-       return 0;
-    }
-    if (*type == 'w' || *type == 'W') {
-           type = "w+";
-           type1 = "w+";
-           lmode = XDR_ENCODE;
-    } else if (*type == 'a' || *type == 'A') {
-           type = "w+";
-            type1 = "a+";
-           lmode = XDR_ENCODE;
-    } else {
-           type = "r";
-            type1 = "r";
-           lmode = XDR_DECODE;
-    }
-    xdrfiles[xdrid] = fopen(filename, type1);
-    if (xdrfiles[xdrid] == NULL) {
-       xdrs = NULL;
-       return 0;
-    }
-    xdrmodes[xdrid] = *type;
-    /* next test isn't usefull in the case of C language
-     * but is used for the Fortran interface
-     * (C users are expected to pass the address of an already allocated
-     * XDR staructure)
-     */
-    if (xdrs == NULL) {
-       xdridptr[xdrid] = (XDR *) malloc(sizeof(XDR));
-       xdrstdio_create(xdridptr[xdrid], xdrfiles[xdrid], lmode);
-    } else {
-       xdridptr[xdrid] = xdrs;
-       xdrstdio_create(xdrs, xdrfiles[xdrid], lmode);
-    }
-    return xdrid;
-}
-
-/*_________________________________________________________________________
- |
- | xdrclose - close a xdr file
- |
- | This will flush the xdr buffers, and destroy the xdr stream.
- | It also closes the associated file descriptor (this is *not*
- | done by xdr_destroy).
- |
-*/
-int xdrclose(XDR *xdrs) {
-    int xdrid;
-    
-    if (xdrs == NULL) {
-       fprintf(stderr, "xdrclose: passed a NULL pointer\n");
-       exit(1);
-    }
-    for (xdrid = 1; xdrid < MAXID; xdrid++) {
-       if (xdridptr[xdrid] == xdrs) {
-           
-           xdr_destroy(xdrs);
-           fclose(xdrfiles[xdrid]);
-           xdridptr[xdrid] = NULL;
-           return 1;
-       }
-    } 
-    fprintf(stderr, "xdrclose: no such open xdr file\n");
-    exit(1);
-    
-}
-
-/*____________________________________________________________________________
- |
- | sendbits - encode num into buf using the specified number of bits
- |
- | This routines appends the value of num to the bits already present in
- | the array buf. You need to give it the number of bits to use and you
- | better make sure that this number of bits is enough to hold the value
- | Also num must be positive.
- |
-*/
-
-static void sendbits(int buf[], int num_of_bits, int num) {
-    
-    unsigned int cnt, lastbyte;
-    int lastbits;
-    unsigned char * cbuf;
-    
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = (unsigned int) buf[0];
-    lastbits = buf[1];
-    lastbyte =(unsigned int) buf[2];
-    while (num_of_bits >= 8) {
-       lastbyte = (lastbyte << 8) | ((num >> (num_of_bits -8)) /* & 0xff*/);
-       cbuf[cnt++] = lastbyte >> lastbits;
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       lastbyte = (lastbyte << num_of_bits) | num;
-       lastbits += num_of_bits;
-       if (lastbits >= 8) {
-           lastbits -= 8;
-           cbuf[cnt++] = lastbyte >> lastbits;
-       }
-    }
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    if (lastbits>0) {
-       cbuf[cnt] = lastbyte << (8 - lastbits);
-    }
-}
-
-/*_________________________________________________________________________
- |
- | sizeofint - calculate bitsize of an integer
- |
- | return the number of bits needed to store an integer with given max size
- |
-*/
-
-static int sizeofint(const int size) {
-    unsigned int num = 1;
-    int num_of_bits = 0;
-    
-    while (size >= num && num_of_bits < 32) {
-       num_of_bits++;
-       num <<= 1;
-    }
-    return num_of_bits;
-}
-
-/*___________________________________________________________________________
- |
- | sizeofints - calculate 'bitsize' of compressed ints
- |
- | given the number of small unsigned integers and the maximum value
- | return the number of bits needed to read or write them with the
- | routines receiveints and sendints. You need this parameter when
- | calling these routines. Note that for many calls I can use
- | the variable 'smallidx' which is exactly the number of bits, and
- | So I don't need to call 'sizeofints for those calls.
-*/
-
-static int sizeofints( const int num_of_ints, unsigned int sizes[]) {
-    int i, num;
-    unsigned int num_of_bytes, num_of_bits, bytes[32], bytecnt, tmp;
-    num_of_bytes = 1;
-    bytes[0] = 1;
-    num_of_bits = 0;
-    for (i=0; i < num_of_ints; i++) {  
-       tmp = 0;
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    num = 1;
-    num_of_bytes--;
-    while (bytes[num_of_bytes] >= num) {
-       num_of_bits++;
-       num *= 2;
-    }
-    return num_of_bits + num_of_bytes * 8;
-
-}
-    
-/*____________________________________________________________________________
- |
- | sendints - send a small set of small integers in compressed format
- |
- | this routine is used internally by xdr3dfcoord, to send a set of
- | small integers to the buffer. 
- | Multiplication with fixed (specified maximum ) sizes is used to get
- | to one big, multibyte integer. Allthough the routine could be
- | modified to handle sizes bigger than 16777216, or more than just
- | a few integers, this is not done, because the gain in compression
- | isn't worth the effort. Note that overflowing the multiplication
- | or the byte buffer (32 bytes) is unchecked and causes bad results.
- |
- */
-static void sendints(int buf[], const int num_of_ints, const int num_of_bits,
-       unsigned int sizes[], unsigned int nums[]) {
-
-    int i;
-    unsigned int bytes[32], num_of_bytes, bytecnt, tmp;
-
-    tmp = nums[0];
-    num_of_bytes = 0;
-    do {
-       bytes[num_of_bytes++] = tmp & 0xff;
-       tmp >>= 8;
-    } while (tmp != 0);
-
-    for (i = 1; i < num_of_ints; i++) {
-       if (nums[i] >= sizes[i]) {
-           fprintf(stderr,"major breakdown in sendints num %d doesn't "
-                   "match size %d\n", nums[i], sizes[i]);
-           exit(1);
-       }
-       /* use one step multiply */    
-       tmp = nums[i];
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    if (num_of_bits >= num_of_bytes * 8) {
-       for (i = 0; i < num_of_bytes; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits - num_of_bytes * 8, 0);
-    } else {
-       for (i = 0; i < num_of_bytes-1; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits- (num_of_bytes -1) * 8, bytes[i]);
-    }
-}
-
-
-/*___________________________________________________________________________
- |
- | receivebits - decode number from buf using specified number of bits
- | 
- | extract the number of bits from the array buf and construct an integer
- | from it. Return that value.
- |
-*/
-
-static int receivebits(int buf[], int num_of_bits) {
-
-    int cnt, num; 
-    unsigned int lastbits, lastbyte;
-    unsigned char * cbuf;
-    int mask = (1 << num_of_bits) -1;
-
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = buf[0];
-    lastbits = (unsigned int) buf[1];
-    lastbyte = (unsigned int) buf[2];
-    
-    num = 0;
-    while (num_of_bits >= 8) {
-       lastbyte = ( lastbyte << 8 ) | cbuf[cnt++];
-       num |=  (lastbyte >> lastbits) << (num_of_bits - 8);
-       num_of_bits -=8;
-    }
-    if (num_of_bits > 0) {
-       if (lastbits < num_of_bits) {
-           lastbits += 8;
-           lastbyte = (lastbyte << 8) | cbuf[cnt++];
-       }
-       lastbits -= num_of_bits;
-       num |= (lastbyte >> lastbits) & ((1 << num_of_bits) -1);
-    }
-    num &= mask;
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    return num; 
-}
-
-/*____________________________________________________________________________
- |
- | receiveints - decode 'small' integers from the buf array
- |
- | this routine is the inverse from sendints() and decodes the small integers
- | written to buf by calculating the remainder and doing divisions with
- | the given sizes[]. You need to specify the total number of bits to be
- | used from buf in num_of_bits.
- |
-*/
-
-static void receiveints(int buf[], const int num_of_ints, int num_of_bits,
-       unsigned int sizes[], int nums[]) {
-    int bytes[32];
-    int i, j, num_of_bytes, p, num;
-    
-    bytes[1] = bytes[2] = bytes[3] = 0;
-    num_of_bytes = 0;
-    while (num_of_bits > 8) {
-       bytes[num_of_bytes++] = receivebits(buf, 8);
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       bytes[num_of_bytes++] = receivebits(buf, num_of_bits);
-    }
-    for (i = num_of_ints-1; i > 0; i--) {
-       num = 0;
-       for (j = num_of_bytes-1; j >=0; j--) {
-           num = (num << 8) | bytes[j];
-           p = num / sizes[i];
-           bytes[j] = p;
-           num = num - p * sizes[i];
-       }
-       nums[i] = num;
-    }
-    nums[0] = bytes[0] | (bytes[1] << 8) | (bytes[2] << 16) | (bytes[3] << 24);
-}
-    
-/*____________________________________________________________________________
- |
- | xdr3dfcoord - read or write compressed 3d coordinates to xdr file.
- |
- | this routine reads or writes (depending on how you opened the file with
- | xdropen() ) a large number of 3d coordinates (stored in *fp).
- | The number of coordinates triplets to write is given by *size. On
- | read this number may be zero, in which case it reads as many as were written
- | or it may specify the number if triplets to read (which should match the
- | number written).
- | Compression is achieved by first converting all floating numbers to integer
- | using multiplication by *precision and rounding to the nearest integer.
- | Then the minimum and maximum value are calculated to determine the range.
- | The limited range of integers so found, is used to compress the coordinates.
- | In addition the differences between succesive coordinates is calculated.
- | If the difference happens to be 'small' then only the difference is saved,
- | compressing the data even more. The notion of 'small' is changed dynamically
- | and is enlarged or reduced whenever needed or possible.
- | Extra compression is achieved in the case of GROMOS and coordinates of
- | water molecules. GROMOS first writes out the Oxygen position, followed by
- | the two hydrogens. In order to make the differences smaller (and thereby
- | compression the data better) the order is changed into first one hydrogen
- | then the oxygen, followed by the other hydrogen. This is rather special, but
- | it shouldn't harm in the general case.
- |
- */
-int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) {
-    
-
-    static int *ip = NULL;
-    static int oldsize;
-    static int *buf;
-
-    int minint[3], maxint[3], mindiff, *lip, diff;
-    int lint1, lint2, lint3, oldlint1, oldlint2, oldlint3, smallidx;
-    int minidx, maxidx;
-    unsigned sizeint[3], sizesmall[3], bitsizeint[3], size3, *luip;
-    int flag, k;
-    int small, smaller, larger, i, is_small, is_smaller, run, prevrun;
-    float *lfp, lf;
-    int tmp, *thiscoord,  prevcoord[3];
-    unsigned int tmpcoord[30];
-
-    int bufsize, xdrid, lsize;
-    unsigned int bitsize;
-    float inv_precision;
-    int errval = 1;
-
-    /* find out if xdrs is opened for reading or for writing */
-    xdrid = 0;
-    while (xdridptr[xdrid] != xdrs) {
-       xdrid++;
-       if (xdrid >= MAXID) {
-           fprintf(stderr, "xdr error. no open xdr stream\n");
-           exit (1);
-       }
-    }
-    if (xdrmodes[xdrid] == 'w') {
-
-       /* xdrs is open for writing */
-
-       if (xdr_int(xdrs, size) == 0)
-           return 0;
-       size3 = *size * 3;
-       /* when the number of coordinates is small, don't try to compress; just
-        * write them as floats using xdr_vector
-        */
-       if (*size <= 9 ) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       /* buf[0-2] are special and do not contain actual data */
-       buf[0] = buf[1] = buf[2] = 0;
-       minint[0] = minint[1] = minint[2] = INT_MAX;
-       maxint[0] = maxint[1] = maxint[2] = INT_MIN;
-       prevrun = -1;
-       lfp = fp;
-       lip = ip;
-       mindiff = INT_MAX;
-       oldlint1 = oldlint2 = oldlint3 = 0;
-       while(lfp < fp + size3 ) {
-           /* find nearest integer */
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint1 = lf;
-           if (lint1 < minint[0]) minint[0] = lint1;
-           if (lint1 > maxint[0]) maxint[0] = lint1;
-           *lip++ = lint1;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint2 = lf;
-           if (lint2 < minint[1]) minint[1] = lint2;
-           if (lint2 > maxint[1]) maxint[1] = lint2;
-           *lip++ = lint2;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint3 = lf;
-           if (lint3 < minint[2]) minint[2] = lint3;
-           if (lint3 > maxint[2]) maxint[2] = lint3;
-           *lip++ = lint3;
-           lfp++;
-           diff = abs(oldlint1-lint1)+abs(oldlint2-lint2)+abs(oldlint3-lint3);
-           if (diff < mindiff && lfp > fp + 3)
-               mindiff = diff;
-           oldlint1 = lint1;
-           oldlint2 = lint2;
-           oldlint3 = lint3;
-       }
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-       
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-       
-       if ((float)maxint[0] - (float)minint[0] >= MAXABS ||
-               (float)maxint[1] - (float)minint[1] >= MAXABS ||
-               (float)maxint[2] - (float)minint[2] >= MAXABS) {
-           /* turning value in unsigned by subtracting minint
-            * would cause overflow
-            */
-           errval = 0;
-       }
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       lip = ip;
-       luip = (unsigned int *) ip;
-       smallidx = FIRSTIDX;
-       while (smallidx < LASTIDX && magicints[smallidx] < mindiff) {
-           smallidx++;
-       }
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-       larger = magicints[maxidx] / 2;
-       i = 0;
-       while (i < *size) {
-           is_small = 0;
-           thiscoord = (int *)(luip) + i * 3;
-           if (smallidx < maxidx && i >= 1 &&
-                   abs(thiscoord[0] - prevcoord[0]) < larger &&
-                   abs(thiscoord[1] - prevcoord[1]) < larger &&
-                   abs(thiscoord[2] - prevcoord[2]) < larger) {
-               is_smaller = 1;
-           } else if (smallidx > minidx) {
-               is_smaller = -1;
-           } else {
-               is_smaller = 0;
-           }
-           if (i + 1 < *size) {
-               if (abs(thiscoord[0] - thiscoord[3]) < small &&
-                       abs(thiscoord[1] - thiscoord[4]) < small &&
-                       abs(thiscoord[2] - thiscoord[5]) < small) {
-                   /* interchange first with second atom for better
-                    * compression of water molecules
-                    */
-                   tmp = thiscoord[0]; thiscoord[0] = thiscoord[3];
-                       thiscoord[3] = tmp;
-                   tmp = thiscoord[1]; thiscoord[1] = thiscoord[4];
-                       thiscoord[4] = tmp;
-                   tmp = thiscoord[2]; thiscoord[2] = thiscoord[5];
-                       thiscoord[5] = tmp;
-                   is_small = 1;
-               }
-    
-           }
-           tmpcoord[0] = thiscoord[0] - minint[0];
-           tmpcoord[1] = thiscoord[1] - minint[1];
-           tmpcoord[2] = thiscoord[2] - minint[2];
-           if (bitsize == 0) {
-               sendbits(buf, bitsizeint[0], tmpcoord[0]);
-               sendbits(buf, bitsizeint[1], tmpcoord[1]);
-               sendbits(buf, bitsizeint[2], tmpcoord[2]);
-           } else {
-               sendints(buf, 3, bitsize, sizeint, tmpcoord);
-           }
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           thiscoord = thiscoord + 3;
-           i++;
-           
-           run = 0;
-           if (is_small == 0 && is_smaller == -1)
-               is_smaller = 0;
-           while (is_small && run < 8*3) {
-               if (is_smaller == -1 && (
-                       SQR(thiscoord[0] - prevcoord[0]) +
-                       SQR(thiscoord[1] - prevcoord[1]) +
-                       SQR(thiscoord[2] - prevcoord[2]) >= smaller * smaller)) {
-                   is_smaller = 0;
-               }
-
-               tmpcoord[run++] = thiscoord[0] - prevcoord[0] + small;
-               tmpcoord[run++] = thiscoord[1] - prevcoord[1] + small;
-               tmpcoord[run++] = thiscoord[2] - prevcoord[2] + small;
-               
-               prevcoord[0] = thiscoord[0];
-               prevcoord[1] = thiscoord[1];
-               prevcoord[2] = thiscoord[2];
-
-               i++;
-               thiscoord = thiscoord + 3;
-               is_small = 0;
-               if (i < *size &&
-                       abs(thiscoord[0] - prevcoord[0]) < small &&
-                       abs(thiscoord[1] - prevcoord[1]) < small &&
-                       abs(thiscoord[2] - prevcoord[2]) < small) {
-                   is_small = 1;
-               }
-           }
-           if (run != prevrun || is_smaller != 0) {
-               prevrun = run;
-               sendbits(buf, 1, 1); /* flag the change in run-length */
-               sendbits(buf, 5, run+is_smaller+1);
-           } else {
-               sendbits(buf, 1, 0); /* flag the fact that runlength did not change */
-           }
-           for (k=0; k < run; k+=3) {
-               sendints(buf, 3, smallidx, sizesmall, &tmpcoord[k]);    
-           }
-           if (is_smaller != 0) {
-               smallidx += is_smaller;
-               if (is_smaller < 0) {
-                   small = smaller;
-                   smaller = magicints[smallidx-1] / 2;
-               } else {
-                   smaller = small;
-                   small = magicints[smallidx] / 2;
-               }
-               sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-           }
-       }
-       if (buf[1] != 0) buf[0]++;;
-       xdr_int(xdrs, &(buf[0])); /* buf[0] holds the length in bytes */
-       return errval * (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]));
-    } else {
-       
-       /* xdrs is open for reading */
-       
-       if (xdr_int(xdrs, &lsize) == 0) 
-           return 0;
-       if (*size != 0 && lsize != *size) {
-           fprintf(stderr, "wrong number of coordinates in xdr3dfcoor; "
-                   "%d arg vs %d in file", *size, lsize);
-       }
-       *size = lsize;
-       size3 = *size * 3;
-       if (*size <= 9) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-               
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       larger = magicints[maxidx];
-
-       /* buf[0] holds the length in bytes */
-
-       if (xdr_int(xdrs, &(buf[0])) == 0)
-           return 0;
-       if (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]) == 0)
-           return 0;
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       lfp = fp;
-       inv_precision = 1.0 / * precision;
-       run = 0;
-       i = 0;
-       lip = ip;
-       while ( i < lsize ) {
-           thiscoord = (int *)(lip) + i * 3;
-
-           if (bitsize == 0) {
-               thiscoord[0] = receivebits(buf, bitsizeint[0]);
-               thiscoord[1] = receivebits(buf, bitsizeint[1]);
-               thiscoord[2] = receivebits(buf, bitsizeint[2]);
-           } else {
-               receiveints(buf, 3, bitsize, sizeint, thiscoord);
-           }
-           
-           i++;
-           thiscoord[0] += minint[0];
-           thiscoord[1] += minint[1];
-           thiscoord[2] += minint[2];
-           
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           
-          
-           flag = receivebits(buf, 1);
-           is_smaller = 0;
-           if (flag == 1) {
-               run = receivebits(buf, 5);
-               is_smaller = run % 3;
-               run -= is_smaller;
-               is_smaller--;
-           }
-           if (run > 0) {
-               thiscoord += 3;
-               for (k = 0; k < run; k+=3) {
-                   receiveints(buf, 3, smallidx, sizesmall, thiscoord);
-                   i++;
-                   thiscoord[0] += prevcoord[0] - small;
-                   thiscoord[1] += prevcoord[1] - small;
-                   thiscoord[2] += prevcoord[2] - small;
-                   if (k == 0) {
-                       /* interchange first with second atom for better
-                        * compression of water molecules
-                        */
-                       tmp = thiscoord[0]; thiscoord[0] = prevcoord[0];
-                               prevcoord[0] = tmp;
-                       tmp = thiscoord[1]; thiscoord[1] = prevcoord[1];
-                               prevcoord[1] = tmp;
-                       tmp = thiscoord[2]; thiscoord[2] = prevcoord[2];
-                               prevcoord[2] = tmp;
-                       *lfp++ = prevcoord[0] * inv_precision;
-                       *lfp++ = prevcoord[1] * inv_precision;
-                       *lfp++ = prevcoord[2] * inv_precision;
-                   } else {
-                       prevcoord[0] = thiscoord[0];
-                       prevcoord[1] = thiscoord[1];
-                       prevcoord[2] = thiscoord[2];
-                   }
-                   *lfp++ = thiscoord[0] * inv_precision;
-                   *lfp++ = thiscoord[1] * inv_precision;
-                   *lfp++ = thiscoord[2] * inv_precision;
-               }
-           } else {
-               *lfp++ = thiscoord[0] * inv_precision;
-               *lfp++ = thiscoord[1] * inv_precision;
-               *lfp++ = thiscoord[2] * inv_precision;          
-           }
-           smallidx += is_smaller;
-           if (is_smaller < 0) {
-               small = smaller;
-               if (smallidx > FIRSTIDX) {
-                   smaller = magicints[smallidx - 1] /2;
-               } else {
-                   smaller = 0;
-               }
-           } else if (is_smaller > 0) {
-               smaller = small;
-               small = magicints[smallidx] / 2;
-           }
-           sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       }
-    }
-    return 1;
-}
-
-
-   
diff --git a/source/unres/src_MD-M/xdrf/libxdrf.m4.org b/source/unres/src_MD-M/xdrf/libxdrf.m4.org
deleted file mode 100644 (file)
index b14b374..0000000
+++ /dev/null
@@ -1,1230 +0,0 @@
-/*____________________________________________________________________________
- |
- | libxdrf - portable fortran interface to xdr. some xdr routines
- |          are C routines for compressed coordinates
- |
- | version 1.1
- |
- | This collection of routines is intended to write and read
- | data in a portable way to a file, so data written on one type
- | of machine can be read back on a different type.
- |
- | all fortran routines use an integer 'xdrid', which is an id to the
- | current xdr file, and is set by xdrfopen.
- | most routines have in integer 'ret' which is the return value.
- | The value of 'ret' is zero on failure, and most of the time one
- | on succes.
- |
- | There are three routines useful for C users:
- |  xdropen(), xdrclose(), xdr3dfcoord().
- | The first two replace xdrstdio_create and xdr_destroy, and *must* be
- | used when you plan to use xdr3dfcoord(). (they are also a bit
- | easier to interface). For writing data other than compressed coordinates 
- | you should use the standard C xdr routines (see xdr man page)
- |
- | xdrfopen(xdrid, filename, mode, ret)
- |     character *(*) filename
- |     character *(*) mode
- |
- |     this will open the file with the given filename (string)
- |     and the given mode, it returns an id in xdrid, which is
- |     to be used in all other calls to xdrf routines.
- |     mode is 'w' to create, or update an file, for all other
- |     values of mode the file is opened for reading
- |
- |     you need to call xdrfclose to flush the output and close
- |     the file.
- |     Note that you should not use xdrstdio_create, which comes with the
- |     standard xdr library
- |
- | xdrfclose(xdrid, ret)
- |     flush the data to the file, and closes the file;
- |     You should not use xdr_destroy (which comes standard with
- |     the xdr libraries.
- |
- | xdrfbool(xdrid, bp, ret)
- |     integer pb
- |
- |     This filter produces values of either 1 or 0    
- |
- | xdrfchar(xdrid, cp, ret)
- |     character cp
- |
- |     filter that translate between characters and their xdr representation
- |     Note that the characters in not compressed and occupies 4 bytes.
- |
- | xdrfdouble(xdrid, dp, ret)
- |     double dp
- |
- |     read/write a double.
- |
- | xdrffloat(xdrid, fp, ret)
- |     float fp
- |
- |     read/write a float.
- |
- | xdrfint(xdrid, ip, ret)
- |     integer ip
- |
- |     read/write integer.
- |
- | xdrflong(xdrid, lp, ret)
- |     integer lp
- |
- |     this routine has a possible portablility problem due to 64 bits longs.
- |
- | xdrfshort(xdrid, sp, ret)
- |     integer *2 sp
- |
- | xdrfstring(xdrid, sp, maxsize, ret)
- |     character *(*)
- |     integer maxsize
- |
- |     read/write a string, with maximum length given by maxsize
- |
- | xdrfwrapstring(xdris, sp, ret)
- |     character *(*)
- |
- |     read/write a string (it is the same as xdrfstring accept that it finds
- |     the stringlength itself.
- |
- | xdrfvector(xdrid, cp, size, xdrfproc, ret)
- |     character *(*)
- |     integer size
- |     external xdrfproc
- |
- |     read/write an array pointed to by cp, with number of elements
- |     defined by 'size'. the routine 'xdrfproc' is the name
- |     of one of the above routines to read/write data (like xdrfdouble)
- |     In contrast with the c-version you don't need to specify the
- |     byte size of an element.
- |     xdrfstring is not allowed here (it is in the c version)
- |     
- | xdrf3dfcoord(xdrid, fp, size, precision, ret)
- |     real (*) fp
- |     real precision
- |     integer size
- |
- |     this is *NOT* a standard xdr routine. I named it this way, because
- |     it invites people to use the other xdr routines.
- |     It is introduced to store specifically 3d coordinates of molecules
- |     (as found in molecular dynamics) and it writes it in a compressed way.
- |     It starts by multiplying all numbers by precision and
- |     rounding the result to integer. effectively converting
- |     all floating point numbers to fixed point.
- |     it uses an algorithm for compression that is optimized for
- |     molecular data, but could be used for other 3d coordinates
- |     as well. There is subtantial overhead involved, so call this
- |     routine only if you have a large number of coordinates to read/write
- |
- | ________________________________________________________________________
- |
- | Below are the routines to be used by C programmers. Use the 'normal'
- | xdr routines to write integers, floats, etc (see man xdr)   
- |
- | int xdropen(XDR *xdrs, const char *filename, const char *type)
- |     This will open the file with the given filename and the 
- |     given mode. You should pass it an allocated XDR struct
- |     in xdrs, to be used in all other calls to xdr routines.
- |     Mode is 'w' to create, or update an file, and for all 
- |     other values of mode the file is opened for reading. 
- |     You need to call xdrclose to flush the output and close
- |     the file.
- |
- |     Note that you should not use xdrstdio_create, which
- |     comes with the standard xdr library.
- |
- | int xdrclose(XDR *xdrs)
- |     Flush the data to the file, and close the file;
- |     You should not use xdr_destroy (which comes standard
- |     with the xdr libraries).
- |      
- | int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision)
- |     This is \fInot\fR a standard xdr routine. I named it this 
- |     way, because it invites people to use the other xdr 
- |     routines.
- |
- |     (c) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-*/     
-
-
-#include <limits.h>
-#include <malloc.h>
-#include <math.h>
-#include <rpc/rpc.h>
-#include <rpc/xdr.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include "xdrf.h"
-
-int ftocstr(char *, int, char *, int);
-int ctofstr(char *, int, char *);
-
-#define MAXID 20
-static FILE *xdrfiles[MAXID];
-static XDR *xdridptr[MAXID];
-static char xdrmodes[MAXID];
-static unsigned int cnt;
-
-typedef void (* FUNCTION(xdrfproc)) (int *, void *, int *);
-
-void
-FUNCTION(xdrfbool) ARGS(`xdrid, pb, ret')
-int *xdrid, *ret;
-int *pb;
-{
-       *ret = xdr_bool(xdridptr[*xdrid], (bool_t *) pb);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrfchar) ARGS(`xdrid, cp, ret')
-int *xdrid, *ret;
-char *cp;
-{
-       *ret = xdr_char(xdridptr[*xdrid], cp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfdouble) ARGS(`xdrid, dp, ret')
-int *xdrid, *ret;
-double *dp;
-{
-       *ret = xdr_double(xdridptr[*xdrid], dp);
-       cnt += sizeof(double);
-}
-
-void
-FUNCTION(xdrffloat) ARGS(`xdrid, fp, ret')
-int *xdrid, *ret;
-float *fp;
-{
-       *ret = xdr_float(xdridptr[*xdrid], fp);
-       cnt += sizeof(float);
-}
-
-void
-FUNCTION(xdrfint) ARGS(`xdrid, ip, ret')
-int *xdrid, *ret;
-int *ip;
-{
-       *ret = xdr_int(xdridptr[*xdrid], ip);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrflong) ARGS(`xdrid, lp, ret')
-int *xdrid, *ret;
-long *lp;
-{
-       *ret = xdr_long(xdridptr[*xdrid], lp);
-       cnt += sizeof(long);
-}
-
-void
-FUNCTION(xdrfshort) ARGS(`xdrid, sp, ret')
-int *xdrid, *ret;
-short *sp;
-{
-       *ret = xdr_short(xdridptr[*xdrid], sp);
-       cnt += sizeof(sp);
-}
-
-void
-FUNCTION(xdrfuchar) ARGS(`xdrid, ucp, ret')
-int *xdrid, *ret;
-char *ucp;
-{
-       *ret = xdr_u_char(xdridptr[*xdrid], ucp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfulong) ARGS(`xdrid, ulp, ret')
-int *xdrid, *ret;
-unsigned long *ulp;
-{
-       *ret = xdr_u_long(xdridptr[*xdrid], ulp);
-       cnt += sizeof(unsigned long);
-}
-
-void
-FUNCTION(xdrfushort) ARGS(`xdrid, usp, ret')
-int *xdrid, *ret;
-unsigned short *usp;
-{
-       *ret = xdr_u_short(xdridptr[*xdrid], usp);
-       cnt += sizeof(unsigned short);
-}
-
-void 
-FUNCTION(xdrf3dfcoord) ARGS(`xdrid, fp, size, precision, ret')
-int *xdrid, *ret;
-float *fp;
-int *size;
-float *precision;
-{
-       *ret = xdr3dfcoord(xdridptr[*xdrid], fp, size, precision);
-}
-
-void
-FUNCTION(xdrfstring) ARGS(`xdrid, STRING_ARG(sp), maxsize, ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-int *maxsize;
-{
-       char *tsp;
-
-       tsp = (char*) malloc(((STRING_LEN(sp)) + 1) * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, *maxsize+1, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int) *maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += *maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfwrapstring) ARGS(`xdrid,  STRING_ARG(sp), ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-{
-       char *tsp;
-       int maxsize;
-       maxsize = (STRING_LEN(sp)) + 1;
-       tsp = (char*) malloc(maxsize * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, maxsize, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int)maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfopaque) ARGS(`xdrid, cp, ccnt, ret')
-int *xdrid, *ret;
-caddr_t *cp;
-int *ccnt;
-{
-       *ret = xdr_opaque(xdridptr[*xdrid], (caddr_t)*cp, (u_int)*ccnt);
-       cnt += *ccnt;
-}
-
-void
-FUNCTION(xdrfsetpos) ARGS(`xdrid, pos, ret')
-int *xdrid, *ret;
-int *pos;
-{
-       *ret = xdr_setpos(xdridptr[*xdrid], (u_int) *pos);
-}
-
-void
-FUNCTION(xdrf) ARGS(`xdrid, pos')
-int *xdrid, *pos;
-{
-       *pos = xdr_getpos(xdridptr[*xdrid]);
-}
-
-void
-FUNCTION(xdrfvector) ARGS(`xdrid, cp, size, elproc, ret')
-int *xdrid, *ret;
-char *cp;
-int *size;
-FUNCTION(xdrfproc) elproc;
-{
-       int lcnt;
-       cnt = 0;
-       for (lcnt = 0; lcnt < *size; lcnt++) {
-               elproc(xdrid, (cp+cnt) , ret);
-       }
-}
-
-
-void
-FUNCTION(xdrfclose) ARGS(`xdrid, ret')
-int *xdrid;
-int *ret;
-{
-       *ret = xdrclose(xdridptr[*xdrid]);
-       cnt = 0;
-}
-
-void
-FUNCTION(xdrfopen) ARGS(`xdrid,  STRING_ARG(fp), STRING_ARG(mode), ret')
-int *xdrid;
-STRING_ARG_DECL(fp);
-STRING_ARG_DECL(mode);
-int *ret;
-{
-       char fname[512];
-       char fmode[3];
-
-       if (ftocstr(fname, sizeof(fname), STRING_PTR(fp), STRING_LEN(fp))) {
-               *ret = 0;
-       }
-       if (ftocstr(fmode, sizeof(fmode), STRING_PTR(mode),
-                       STRING_LEN(mode))) {
-               *ret = 0;
-       }
-
-       *xdrid = xdropen(NULL, fname, fmode);
-       if (*xdrid == 0)
-               *ret = 0;
-       else 
-               *ret = 1;       
-}
-
-/*___________________________________________________________________________
- |
- | what follows are the C routines for opening, closing xdr streams
- | and the routine to read/write compressed coordinates together
- | with some routines to assist in this task (those are marked
- | static and cannot be called from user programs)
-*/
-#define MAXABS INT_MAX-2
-
-#ifndef MIN
-#define MIN(x,y) ((x) < (y) ? (x):(y))
-#endif
-#ifndef MAX
-#define MAX(x,y) ((x) > (y) ? (x):(y))
-#endif
-#ifndef SQR
-#define SQR(x) ((x)*(x))
-#endif
-static int magicints[] = {
-    0, 0, 0, 0, 0, 0, 0, 0, 0,
-    8, 10, 12, 16, 20, 25, 32, 40, 50, 64,
-    80, 101, 128, 161, 203, 256, 322, 406, 512, 645,
-    812, 1024, 1290, 1625, 2048, 2580, 3250, 4096, 5060, 6501,
-    8192, 10321, 13003, 16384, 20642, 26007, 32768, 41285, 52015, 65536,
-    82570, 104031, 131072, 165140, 208063, 262144, 330280, 416127, 524287, 660561,
-    832255, 1048576, 1321122, 1664510, 2097152, 2642245, 3329021, 4194304, 5284491, 6658042,
-    8388607, 10568983, 13316085, 16777216 };
-
-#define FIRSTIDX 9
-/* note that magicints[FIRSTIDX-1] == 0 */
-#define LASTIDX (sizeof(magicints) / sizeof(*magicints))
-
-
-/*__________________________________________________________________________
- |
- | xdropen - open xdr file
- |
- | This versions differs from xdrstdio_create, because I need to know
- | the state of the file (read or write) so I can use xdr3dfcoord
- | in eigther read or write mode, and the file descriptor
- | so I can close the file (something xdr_destroy doesn't do).
- |
-*/
-
-int xdropen(XDR *xdrs, const char *filename, const char *type) {
-    static int init_done = 0;
-    enum xdr_op lmode;
-    int xdrid;
-    
-    if (init_done == 0) {
-       for (xdrid = 1; xdrid < MAXID; xdrid++) {
-           xdridptr[xdrid] = NULL;
-       }
-       init_done = 1;
-    }
-    xdrid = 1;
-    while (xdrid < MAXID && xdridptr[xdrid] != NULL) {
-       xdrid++;
-    }
-    if (xdrid == MAXID) {
-       return 0;
-    }
-    if (*type == 'w' || *type == 'W') {
-           type = "w+";
-           lmode = XDR_ENCODE;
-    } else {
-           type = "r";
-           lmode = XDR_DECODE;
-    }
-    xdrfiles[xdrid] = fopen(filename, type);
-    if (xdrfiles[xdrid] == NULL) {
-       xdrs = NULL;
-       return 0;
-    }
-    xdrmodes[xdrid] = *type;
-    /* next test isn't usefull in the case of C language
-     * but is used for the Fortran interface
-     * (C users are expected to pass the address of an already allocated
-     * XDR staructure)
-     */
-    if (xdrs == NULL) {
-       xdridptr[xdrid] = (XDR *) malloc(sizeof(XDR));
-       xdrstdio_create(xdridptr[xdrid], xdrfiles[xdrid], lmode);
-    } else {
-       xdridptr[xdrid] = xdrs;
-       xdrstdio_create(xdrs, xdrfiles[xdrid], lmode);
-    }
-    return xdrid;
-}
-
-/*_________________________________________________________________________
- |
- | xdrclose - close a xdr file
- |
- | This will flush the xdr buffers, and destroy the xdr stream.
- | It also closes the associated file descriptor (this is *not*
- | done by xdr_destroy).
- |
-*/
-int xdrclose(XDR *xdrs) {
-    int xdrid;
-    
-    if (xdrs == NULL) {
-       fprintf(stderr, "xdrclose: passed a NULL pointer\n");
-       exit(1);
-    }
-    for (xdrid = 1; xdrid < MAXID; xdrid++) {
-       if (xdridptr[xdrid] == xdrs) {
-           
-           xdr_destroy(xdrs);
-           fclose(xdrfiles[xdrid]);
-           xdridptr[xdrid] = NULL;
-           return 1;
-       }
-    } 
-    fprintf(stderr, "xdrclose: no such open xdr file\n");
-    exit(1);
-    
-}
-
-/*____________________________________________________________________________
- |
- | sendbits - encode num into buf using the specified number of bits
- |
- | This routines appends the value of num to the bits already present in
- | the array buf. You need to give it the number of bits to use and you
- | better make sure that this number of bits is enough to hold the value
- | Also num must be positive.
- |
-*/
-
-static void sendbits(int buf[], int num_of_bits, int num) {
-    
-    unsigned int cnt, lastbyte;
-    int lastbits;
-    unsigned char * cbuf;
-    
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = (unsigned int) buf[0];
-    lastbits = buf[1];
-    lastbyte =(unsigned int) buf[2];
-    while (num_of_bits >= 8) {
-       lastbyte = (lastbyte << 8) | ((num >> (num_of_bits -8)) /* & 0xff*/);
-       cbuf[cnt++] = lastbyte >> lastbits;
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       lastbyte = (lastbyte << num_of_bits) | num;
-       lastbits += num_of_bits;
-       if (lastbits >= 8) {
-           lastbits -= 8;
-           cbuf[cnt++] = lastbyte >> lastbits;
-       }
-    }
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    if (lastbits>0) {
-       cbuf[cnt] = lastbyte << (8 - lastbits);
-    }
-}
-
-/*_________________________________________________________________________
- |
- | sizeofint - calculate bitsize of an integer
- |
- | return the number of bits needed to store an integer with given max size
- |
-*/
-
-static int sizeofint(const int size) {
-    unsigned int num = 1;
-    int num_of_bits = 0;
-    
-    while (size >= num && num_of_bits < 32) {
-       num_of_bits++;
-       num <<= 1;
-    }
-    return num_of_bits;
-}
-
-/*___________________________________________________________________________
- |
- | sizeofints - calculate 'bitsize' of compressed ints
- |
- | given the number of small unsigned integers and the maximum value
- | return the number of bits needed to read or write them with the
- | routines receiveints and sendints. You need this parameter when
- | calling these routines. Note that for many calls I can use
- | the variable 'smallidx' which is exactly the number of bits, and
- | So I don't need to call 'sizeofints for those calls.
-*/
-
-static int sizeofints( const int num_of_ints, unsigned int sizes[]) {
-    int i, num;
-    unsigned int num_of_bytes, num_of_bits, bytes[32], bytecnt, tmp;
-    num_of_bytes = 1;
-    bytes[0] = 1;
-    num_of_bits = 0;
-    for (i=0; i < num_of_ints; i++) {  
-       tmp = 0;
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    num = 1;
-    num_of_bytes--;
-    while (bytes[num_of_bytes] >= num) {
-       num_of_bits++;
-       num *= 2;
-    }
-    return num_of_bits + num_of_bytes * 8;
-
-}
-    
-/*____________________________________________________________________________
- |
- | sendints - send a small set of small integers in compressed format
- |
- | this routine is used internally by xdr3dfcoord, to send a set of
- | small integers to the buffer. 
- | Multiplication with fixed (specified maximum ) sizes is used to get
- | to one big, multibyte integer. Allthough the routine could be
- | modified to handle sizes bigger than 16777216, or more than just
- | a few integers, this is not done, because the gain in compression
- | isn't worth the effort. Note that overflowing the multiplication
- | or the byte buffer (32 bytes) is unchecked and causes bad results.
- |
- */
-static void sendints(int buf[], const int num_of_ints, const int num_of_bits,
-       unsigned int sizes[], unsigned int nums[]) {
-
-    int i;
-    unsigned int bytes[32], num_of_bytes, bytecnt, tmp;
-
-    tmp = nums[0];
-    num_of_bytes = 0;
-    do {
-       bytes[num_of_bytes++] = tmp & 0xff;
-       tmp >>= 8;
-    } while (tmp != 0);
-
-    for (i = 1; i < num_of_ints; i++) {
-       if (nums[i] >= sizes[i]) {
-           fprintf(stderr,"major breakdown in sendints num %d doesn't "
-                   "match size %d\n", nums[i], sizes[i]);
-           exit(1);
-       }
-       /* use one step multiply */    
-       tmp = nums[i];
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    if (num_of_bits >= num_of_bytes * 8) {
-       for (i = 0; i < num_of_bytes; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits - num_of_bytes * 8, 0);
-    } else {
-       for (i = 0; i < num_of_bytes-1; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits- (num_of_bytes -1) * 8, bytes[i]);
-    }
-}
-
-
-/*___________________________________________________________________________
- |
- | receivebits - decode number from buf using specified number of bits
- | 
- | extract the number of bits from the array buf and construct an integer
- | from it. Return that value.
- |
-*/
-
-static int receivebits(int buf[], int num_of_bits) {
-
-    int cnt, num; 
-    unsigned int lastbits, lastbyte;
-    unsigned char * cbuf;
-    int mask = (1 << num_of_bits) -1;
-
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = buf[0];
-    lastbits = (unsigned int) buf[1];
-    lastbyte = (unsigned int) buf[2];
-    
-    num = 0;
-    while (num_of_bits >= 8) {
-       lastbyte = ( lastbyte << 8 ) | cbuf[cnt++];
-       num |=  (lastbyte >> lastbits) << (num_of_bits - 8);
-       num_of_bits -=8;
-    }
-    if (num_of_bits > 0) {
-       if (lastbits < num_of_bits) {
-           lastbits += 8;
-           lastbyte = (lastbyte << 8) | cbuf[cnt++];
-       }
-       lastbits -= num_of_bits;
-       num |= (lastbyte >> lastbits) & ((1 << num_of_bits) -1);
-    }
-    num &= mask;
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    return num; 
-}
-
-/*____________________________________________________________________________
- |
- | receiveints - decode 'small' integers from the buf array
- |
- | this routine is the inverse from sendints() and decodes the small integers
- | written to buf by calculating the remainder and doing divisions with
- | the given sizes[]. You need to specify the total number of bits to be
- | used from buf in num_of_bits.
- |
-*/
-
-static void receiveints(int buf[], const int num_of_ints, int num_of_bits,
-       unsigned int sizes[], int nums[]) {
-    int bytes[32];
-    int i, j, num_of_bytes, p, num;
-    
-    bytes[1] = bytes[2] = bytes[3] = 0;
-    num_of_bytes = 0;
-    while (num_of_bits > 8) {
-       bytes[num_of_bytes++] = receivebits(buf, 8);
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       bytes[num_of_bytes++] = receivebits(buf, num_of_bits);
-    }
-    for (i = num_of_ints-1; i > 0; i--) {
-       num = 0;
-       for (j = num_of_bytes-1; j >=0; j--) {
-           num = (num << 8) | bytes[j];
-           p = num / sizes[i];
-           bytes[j] = p;
-           num = num - p * sizes[i];
-       }
-       nums[i] = num;
-    }
-    nums[0] = bytes[0] | (bytes[1] << 8) | (bytes[2] << 16) | (bytes[3] << 24);
-}
-    
-/*____________________________________________________________________________
- |
- | xdr3dfcoord - read or write compressed 3d coordinates to xdr file.
- |
- | this routine reads or writes (depending on how you opened the file with
- | xdropen() ) a large number of 3d coordinates (stored in *fp).
- | The number of coordinates triplets to write is given by *size. On
- | read this number may be zero, in which case it reads as many as were written
- | or it may specify the number if triplets to read (which should match the
- | number written).
- | Compression is achieved by first converting all floating numbers to integer
- | using multiplication by *precision and rounding to the nearest integer.
- | Then the minimum and maximum value are calculated to determine the range.
- | The limited range of integers so found, is used to compress the coordinates.
- | In addition the differences between succesive coordinates is calculated.
- | If the difference happens to be 'small' then only the difference is saved,
- | compressing the data even more. The notion of 'small' is changed dynamically
- | and is enlarged or reduced whenever needed or possible.
- | Extra compression is achieved in the case of GROMOS and coordinates of
- | water molecules. GROMOS first writes out the Oxygen position, followed by
- | the two hydrogens. In order to make the differences smaller (and thereby
- | compression the data better) the order is changed into first one hydrogen
- | then the oxygen, followed by the other hydrogen. This is rather special, but
- | it shouldn't harm in the general case.
- |
- */
-int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) {
-    
-
-    static int *ip = NULL;
-    static int oldsize;
-    static int *buf;
-
-    int minint[3], maxint[3], mindiff, *lip, diff;
-    int lint1, lint2, lint3, oldlint1, oldlint2, oldlint3, smallidx;
-    int minidx, maxidx;
-    unsigned sizeint[3], sizesmall[3], bitsizeint[3], size3, *luip;
-    int flag, k;
-    int small, smaller, larger, i, is_small, is_smaller, run, prevrun;
-    float *lfp, lf;
-    int tmp, *thiscoord,  prevcoord[3];
-    unsigned int tmpcoord[30];
-
-    int bufsize, xdrid, lsize;
-    unsigned int bitsize;
-    float inv_precision;
-    int errval = 1;
-
-    /* find out if xdrs is opened for reading or for writing */
-    xdrid = 0;
-    while (xdridptr[xdrid] != xdrs) {
-       xdrid++;
-       if (xdrid >= MAXID) {
-           fprintf(stderr, "xdr error. no open xdr stream\n");
-           exit (1);
-       }
-    }
-    if (xdrmodes[xdrid] == 'w') {
-
-       /* xdrs is open for writing */
-
-       if (xdr_int(xdrs, size) == 0)
-           return 0;
-       size3 = *size * 3;
-       /* when the number of coordinates is small, don't try to compress; just
-        * write them as floats using xdr_vector
-        */
-       if (*size <= 9 ) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       /* buf[0-2] are special and do not contain actual data */
-       buf[0] = buf[1] = buf[2] = 0;
-       minint[0] = minint[1] = minint[2] = INT_MAX;
-       maxint[0] = maxint[1] = maxint[2] = INT_MIN;
-       prevrun = -1;
-       lfp = fp;
-       lip = ip;
-       mindiff = INT_MAX;
-       oldlint1 = oldlint2 = oldlint3 = 0;
-       while(lfp < fp + size3 ) {
-           /* find nearest integer */
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint1 = lf;
-           if (lint1 < minint[0]) minint[0] = lint1;
-           if (lint1 > maxint[0]) maxint[0] = lint1;
-           *lip++ = lint1;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint2 = lf;
-           if (lint2 < minint[1]) minint[1] = lint2;
-           if (lint2 > maxint[1]) maxint[1] = lint2;
-           *lip++ = lint2;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint3 = lf;
-           if (lint3 < minint[2]) minint[2] = lint3;
-           if (lint3 > maxint[2]) maxint[2] = lint3;
-           *lip++ = lint3;
-           lfp++;
-           diff = abs(oldlint1-lint1)+abs(oldlint2-lint2)+abs(oldlint3-lint3);
-           if (diff < mindiff && lfp > fp + 3)
-               mindiff = diff;
-           oldlint1 = lint1;
-           oldlint2 = lint2;
-           oldlint3 = lint3;
-       }
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-       
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-       
-       if ((float)maxint[0] - (float)minint[0] >= MAXABS ||
-               (float)maxint[1] - (float)minint[1] >= MAXABS ||
-               (float)maxint[2] - (float)minint[2] >= MAXABS) {
-           /* turning value in unsigned by subtracting minint
-            * would cause overflow
-            */
-           errval = 0;
-       }
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       lip = ip;
-       luip = (unsigned int *) ip;
-       smallidx = FIRSTIDX;
-       while (smallidx < LASTIDX && magicints[smallidx] < mindiff) {
-           smallidx++;
-       }
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-       larger = magicints[maxidx] / 2;
-       i = 0;
-       while (i < *size) {
-           is_small = 0;
-           thiscoord = (int *)(luip) + i * 3;
-           if (smallidx < maxidx && i >= 1 &&
-                   abs(thiscoord[0] - prevcoord[0]) < larger &&
-                   abs(thiscoord[1] - prevcoord[1]) < larger &&
-                   abs(thiscoord[2] - prevcoord[2]) < larger) {
-               is_smaller = 1;
-           } else if (smallidx > minidx) {
-               is_smaller = -1;
-           } else {
-               is_smaller = 0;
-           }
-           if (i + 1 < *size) {
-               if (abs(thiscoord[0] - thiscoord[3]) < small &&
-                       abs(thiscoord[1] - thiscoord[4]) < small &&
-                       abs(thiscoord[2] - thiscoord[5]) < small) {
-                   /* interchange first with second atom for better
-                    * compression of water molecules
-                    */
-                   tmp = thiscoord[0]; thiscoord[0] = thiscoord[3];
-                       thiscoord[3] = tmp;
-                   tmp = thiscoord[1]; thiscoord[1] = thiscoord[4];
-                       thiscoord[4] = tmp;
-                   tmp = thiscoord[2]; thiscoord[2] = thiscoord[5];
-                       thiscoord[5] = tmp;
-                   is_small = 1;
-               }
-    
-           }
-           tmpcoord[0] = thiscoord[0] - minint[0];
-           tmpcoord[1] = thiscoord[1] - minint[1];
-           tmpcoord[2] = thiscoord[2] - minint[2];
-           if (bitsize == 0) {
-               sendbits(buf, bitsizeint[0], tmpcoord[0]);
-               sendbits(buf, bitsizeint[1], tmpcoord[1]);
-               sendbits(buf, bitsizeint[2], tmpcoord[2]);
-           } else {
-               sendints(buf, 3, bitsize, sizeint, tmpcoord);
-           }
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           thiscoord = thiscoord + 3;
-           i++;
-           
-           run = 0;
-           if (is_small == 0 && is_smaller == -1)
-               is_smaller = 0;
-           while (is_small && run < 8*3) {
-               if (is_smaller == -1 && (
-                       SQR(thiscoord[0] - prevcoord[0]) +
-                       SQR(thiscoord[1] - prevcoord[1]) +
-                       SQR(thiscoord[2] - prevcoord[2]) >= smaller * smaller)) {
-                   is_smaller = 0;
-               }
-
-               tmpcoord[run++] = thiscoord[0] - prevcoord[0] + small;
-               tmpcoord[run++] = thiscoord[1] - prevcoord[1] + small;
-               tmpcoord[run++] = thiscoord[2] - prevcoord[2] + small;
-               
-               prevcoord[0] = thiscoord[0];
-               prevcoord[1] = thiscoord[1];
-               prevcoord[2] = thiscoord[2];
-
-               i++;
-               thiscoord = thiscoord + 3;
-               is_small = 0;
-               if (i < *size &&
-                       abs(thiscoord[0] - prevcoord[0]) < small &&
-                       abs(thiscoord[1] - prevcoord[1]) < small &&
-                       abs(thiscoord[2] - prevcoord[2]) < small) {
-                   is_small = 1;
-               }
-           }
-           if (run != prevrun || is_smaller != 0) {
-               prevrun = run;
-               sendbits(buf, 1, 1); /* flag the change in run-length */
-               sendbits(buf, 5, run+is_smaller+1);
-           } else {
-               sendbits(buf, 1, 0); /* flag the fact that runlength did not change */
-           }
-           for (k=0; k < run; k+=3) {
-               sendints(buf, 3, smallidx, sizesmall, &tmpcoord[k]);    
-           }
-           if (is_smaller != 0) {
-               smallidx += is_smaller;
-               if (is_smaller < 0) {
-                   small = smaller;
-                   smaller = magicints[smallidx-1] / 2;
-               } else {
-                   smaller = small;
-                   small = magicints[smallidx] / 2;
-               }
-               sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-           }
-       }
-       if (buf[1] != 0) buf[0]++;;
-       xdr_int(xdrs, &(buf[0])); /* buf[0] holds the length in bytes */
-       return errval * (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]));
-    } else {
-       
-       /* xdrs is open for reading */
-       
-       if (xdr_int(xdrs, &lsize) == 0) 
-           return 0;
-       if (*size != 0 && lsize != *size) {
-           fprintf(stderr, "wrong number of coordinates in xdr3dfcoor; "
-                   "%d arg vs %d in file", *size, lsize);
-       }
-       *size = lsize;
-       size3 = *size * 3;
-       if (*size <= 9) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-               
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       larger = magicints[maxidx];
-
-       /* buf[0] holds the length in bytes */
-
-       if (xdr_int(xdrs, &(buf[0])) == 0)
-           return 0;
-       if (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]) == 0)
-           return 0;
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       lfp = fp;
-       inv_precision = 1.0 / * precision;
-       run = 0;
-       i = 0;
-       lip = ip;
-       while ( i < lsize ) {
-           thiscoord = (int *)(lip) + i * 3;
-
-           if (bitsize == 0) {
-               thiscoord[0] = receivebits(buf, bitsizeint[0]);
-               thiscoord[1] = receivebits(buf, bitsizeint[1]);
-               thiscoord[2] = receivebits(buf, bitsizeint[2]);
-           } else {
-               receiveints(buf, 3, bitsize, sizeint, thiscoord);
-           }
-           
-           i++;
-           thiscoord[0] += minint[0];
-           thiscoord[1] += minint[1];
-           thiscoord[2] += minint[2];
-           
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           
-          
-           flag = receivebits(buf, 1);
-           is_smaller = 0;
-           if (flag == 1) {
-               run = receivebits(buf, 5);
-               is_smaller = run % 3;
-               run -= is_smaller;
-               is_smaller--;
-           }
-           if (run > 0) {
-               thiscoord += 3;
-               for (k = 0; k < run; k+=3) {
-                   receiveints(buf, 3, smallidx, sizesmall, thiscoord);
-                   i++;
-                   thiscoord[0] += prevcoord[0] - small;
-                   thiscoord[1] += prevcoord[1] - small;
-                   thiscoord[2] += prevcoord[2] - small;
-                   if (k == 0) {
-                       /* interchange first with second atom for better
-                        * compression of water molecules
-                        */
-                       tmp = thiscoord[0]; thiscoord[0] = prevcoord[0];
-                               prevcoord[0] = tmp;
-                       tmp = thiscoord[1]; thiscoord[1] = prevcoord[1];
-                               prevcoord[1] = tmp;
-                       tmp = thiscoord[2]; thiscoord[2] = prevcoord[2];
-                               prevcoord[2] = tmp;
-                       *lfp++ = prevcoord[0] * inv_precision;
-                       *lfp++ = prevcoord[1] * inv_precision;
-                       *lfp++ = prevcoord[2] * inv_precision;
-                   } else {
-                       prevcoord[0] = thiscoord[0];
-                       prevcoord[1] = thiscoord[1];
-                       prevcoord[2] = thiscoord[2];
-                   }
-                   *lfp++ = thiscoord[0] * inv_precision;
-                   *lfp++ = thiscoord[1] * inv_precision;
-                   *lfp++ = thiscoord[2] * inv_precision;
-               }
-           } else {
-               *lfp++ = thiscoord[0] * inv_precision;
-               *lfp++ = thiscoord[1] * inv_precision;
-               *lfp++ = thiscoord[2] * inv_precision;          
-           }
-           smallidx += is_smaller;
-           if (is_smaller < 0) {
-               small = smaller;
-               if (smallidx > FIRSTIDX) {
-                   smaller = magicints[smallidx - 1] /2;
-               } else {
-                   smaller = 0;
-               }
-           } else if (is_smaller > 0) {
-               smaller = small;
-               small = magicints[smallidx] / 2;
-           }
-           sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       }
-    }
-    return 1;
-}
-
-
-   
diff --git a/source/unres/src_MD-M/xdrf/libxdrf.m4~ b/source/unres/src_MD-M/xdrf/libxdrf.m4~
deleted file mode 100644 (file)
index 8704af2..0000000
+++ /dev/null
@@ -1,1234 +0,0 @@
-/*____________________________________________________________________________
- |
- | libxdrf - portable fortran interface to xdr. some xdr routines
- |          are C routines for compressed coordinates
- |
- | version 1.1
- |
- | This collection of routines is intended to write and read
- | data in a portable way to a file, so data written on one type
- | of machine can be read back on a different type.
- |
- | all fortran routines use an integer 'xdrid', which is an id to the
- | current xdr file, and is set by xdrfopen.
- | most routines have in integer 'ret' which is the return value.
- | The value of 'ret' is zero on failure, and most of the time one
- | on succes.
- |
- | There are three routines useful for C users:
- |  xdropen(), xdrclose(), xdr3dfcoord().
- | The first two replace xdrstdio_create and xdr_destroy, and *must* be
- | used when you plan to use xdr3dfcoord(). (they are also a bit
- | easier to interface). For writing data other than compressed coordinates 
- | you should use the standard C xdr routines (see xdr man page)
- |
- | xdrfopen(xdrid, filename, mode, ret)
- |     character *(*) filename
- |     character *(*) mode
- |
- |     this will open the file with the given filename (string)
- |     and the given mode, it returns an id in xdrid, which is
- |     to be used in all other calls to xdrf routines.
- |     mode is 'w' to create, or update an file, for all other
- |     values of mode the file is opened for reading
- |
- |     you need to call xdrfclose to flush the output and close
- |     the file.
- |     Note that you should not use xdrstdio_create, which comes with the
- |     standard xdr library
- |
- | xdrfclose(xdrid, ret)
- |     flush the data to the file, and closes the file;
- |     You should not use xdr_destroy (which comes standard with
- |     the xdr libraries.
- |
- | xdrfbool(xdrid, bp, ret)
- |     integer pb
- |
- |     This filter produces values of either 1 or 0    
- |
- | xdrfchar(xdrid, cp, ret)
- |     character cp
- |
- |     filter that translate between characters and their xdr representation
- |     Note that the characters in not compressed and occupies 4 bytes.
- |
- | xdrfdouble(xdrid, dp, ret)
- |     double dp
- |
- |     read/write a double.
- |
- | xdrffloat(xdrid, fp, ret)
- |     float fp
- |
- |     read/write a float.
- |
- | xdrfint(xdrid, ip, ret)
- |     integer ip
- |
- |     read/write integer.
- |
- | xdrflong(xdrid, lp, ret)
- |     integer lp
- |
- |     this routine has a possible portablility problem due to 64 bits longs.
- |
- | xdrfshort(xdrid, sp, ret)
- |     integer *2 sp
- |
- | xdrfstring(xdrid, sp, maxsize, ret)
- |     character *(*)
- |     integer maxsize
- |
- |     read/write a string, with maximum length given by maxsize
- |
- | xdrfwrapstring(xdris, sp, ret)
- |     character *(*)
- |
- |     read/write a string (it is the same as xdrfstring accept that it finds
- |     the stringlength itself.
- |
- | xdrfvector(xdrid, cp, size, xdrfproc, ret)
- |     character *(*)
- |     integer size
- |     external xdrfproc
- |
- |     read/write an array pointed to by cp, with number of elements
- |     defined by 'size'. the routine 'xdrfproc' is the name
- |     of one of the above routines to read/write data (like xdrfdouble)
- |     In contrast with the c-version you don't need to specify the
- |     byte size of an element.
- |     xdrfstring is not allowed here (it is in the c version)
- |     
- | xdrf3dfcoord(xdrid, fp, size, precision, ret)
- |     real (*) fp
- |     real precision
- |     integer size
- |
- |     this is *NOT* a standard xdr routine. I named it this way, because
- |     it invites people to use the other xdr routines.
- |     It is introduced to store specifically 3d coordinates of molecules
- |     (as found in molecular dynamics) and it writes it in a compressed way.
- |     It starts by multiplying all numbers by precision and
- |     rounding the result to integer. effectively converting
- |     all floating point numbers to fixed point.
- |     it uses an algorithm for compression that is optimized for
- |     molecular data, but could be used for other 3d coordinates
- |     as well. There is subtantial overhead involved, so call this
- |     routine only if you have a large number of coordinates to read/write
- |
- | ________________________________________________________________________
- |
- | Below are the routines to be used by C programmers. Use the 'normal'
- | xdr routines to write integers, floats, etc (see man xdr)   
- |
- | int xdropen(XDR *xdrs, const char *filename, const char *type)
- |     This will open the file with the given filename and the 
- |     given mode. You should pass it an allocated XDR struct
- |     in xdrs, to be used in all other calls to xdr routines.
- |     Mode is 'w' to create, or update an file, and for all 
- |     other values of mode the file is opened for reading. 
- |     You need to call xdrclose to flush the output and close
- |     the file.
- |
- |     Note that you should not use xdrstdio_create, which
- |     comes with the standard xdr library.
- |
- | int xdrclose(XDR *xdrs)
- |     Flush the data to the file, and close the file;
- |     You should not use xdr_destroy (which comes standard
- |     with the xdr libraries).
- |      
- | int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision)
- |     This is \fInot\fR a standard xdr routine. I named it this 
- |     way, because it invites people to use the other xdr 
- |     routines.
- |
- |     (c) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-*/     
-
-
-#include <limits.h>
-#include <malloc.h>
-#include <math.h>
-/* #include <rpc/rpc.h>
-#include <rpc/xdr.h> */
-#include "xdr.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include "xdrf.h"
-
-int ftocstr(char *, int, char *, int);
-int ctofstr(char *, int, char *);
-
-#define MAXID 20
-static FILE *xdrfiles[MAXID];
-static XDR *xdridptr[MAXID];
-static char xdrmodes[MAXID];
-static unsigned int cnt;
-
-typedef void (* FUNCTION(xdrfproc)) (int *, void *, int *);
-
-void
-FUNCTION(xdrfbool) ARGS(`xdrid, pb, ret')
-int *xdrid, *ret;
-int *pb;
-{
-       *ret = xdr_bool(xdridptr[*xdrid], (bool_t *) pb);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrfchar) ARGS(`xdrid, cp, ret')
-int *xdrid, *ret;
-char *cp;
-{
-       *ret = xdr_char(xdridptr[*xdrid], cp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfdouble) ARGS(`xdrid, dp, ret')
-int *xdrid, *ret;
-double *dp;
-{
-       *ret = xdr_double(xdridptr[*xdrid], dp);
-       cnt += sizeof(double);
-}
-
-void
-FUNCTION(xdrffloat) ARGS(`xdrid, fp, ret')
-int *xdrid, *ret;
-float *fp;
-{
-       *ret = xdr_float(xdridptr[*xdrid], fp);
-       cnt += sizeof(float);
-}
-
-void
-FUNCTION(xdrfint) ARGS(`xdrid, ip, ret')
-int *xdrid, *ret;
-int *ip;
-{
-       *ret = xdr_int(xdridptr[*xdrid], ip);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrflong) ARGS(`xdrid, lp, ret')
-int *xdrid, *ret;
-long *lp;
-{
-       *ret = xdr_long(xdridptr[*xdrid], lp);
-       cnt += sizeof(long);
-}
-
-void
-FUNCTION(xdrfshort) ARGS(`xdrid, sp, ret')
-int *xdrid, *ret;
-short *sp;
-{
-       *ret = xdr_short(xdridptr[*xdrid], sp);
-       cnt += sizeof(sp);
-}
-
-void
-FUNCTION(xdrfuchar) ARGS(`xdrid, ucp, ret')
-int *xdrid, *ret;
-char *ucp;
-{
-       *ret = xdr_u_char(xdridptr[*xdrid], ucp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfulong) ARGS(`xdrid, ulp, ret')
-int *xdrid, *ret;
-unsigned long *ulp;
-{
-       *ret = xdr_u_long(xdridptr[*xdrid], ulp);
-       cnt += sizeof(unsigned long);
-}
-
-void
-FUNCTION(xdrfushort) ARGS(`xdrid, usp, ret')
-int *xdrid, *ret;
-unsigned short *usp;
-{
-       *ret = xdr_u_short(xdridptr[*xdrid], usp);
-       cnt += sizeof(unsigned short);
-}
-
-void 
-FUNCTION(xdrf3dfcoord) ARGS(`xdrid, fp, size, precision, ret')
-int *xdrid, *ret;
-float *fp;
-int *size;
-float *precision;
-{
-       *ret = xdr3dfcoord(xdridptr[*xdrid], fp, size, precision);
-}
-
-void
-FUNCTION(xdrfstring) ARGS(`xdrid, STRING_ARG(sp), maxsize, ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-int *maxsize;
-{
-       char *tsp;
-
-       tsp = (char*) malloc(((STRING_LEN(sp)) + 1) * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, *maxsize+1, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int) *maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += *maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfwrapstring) ARGS(`xdrid,  STRING_ARG(sp), ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-{
-       char *tsp;
-       int maxsize;
-       maxsize = (STRING_LEN(sp)) + 1;
-       tsp = (char*) malloc(maxsize * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, maxsize, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int)maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfopaque) ARGS(`xdrid, cp, ccnt, ret')
-int *xdrid, *ret;
-caddr_t *cp;
-int *ccnt;
-{
-       *ret = xdr_opaque(xdridptr[*xdrid], (caddr_t)*cp, (u_int)*ccnt);
-       cnt += *ccnt;
-}
-
-void
-FUNCTION(xdrfsetpos) ARGS(`xdrid, pos, ret')
-int *xdrid, *ret;
-int *pos;
-{
-       *ret = xdr_setpos(xdridptr[*xdrid], (u_int) *pos);
-}
-
-void
-FUNCTION(xdrf) ARGS(`xdrid, pos')
-int *xdrid, *pos;
-{
-       *pos = xdr_getpos(xdridptr[*xdrid]);
-}
-
-void
-FUNCTION(xdrfvector) ARGS(`xdrid, cp, size, elproc, ret')
-int *xdrid, *ret;
-char *cp;
-int *size;
-FUNCTION(xdrfproc) elproc;
-{
-       int lcnt;
-       cnt = 0;
-       for (lcnt = 0; lcnt < *size; lcnt++) {
-               elproc(xdrid, (cp+cnt) , ret);
-       }
-}
-
-
-void
-FUNCTION(xdrfclose) ARGS(`xdrid, ret')
-int *xdrid;
-int *ret;
-{
-       *ret = xdrclose(xdridptr[*xdrid]);
-       cnt = 0;
-}
-
-void
-FUNCTION(xdrfopen) ARGS(`xdrid,  STRING_ARG(fp), STRING_ARG(mode), ret')
-int *xdrid;
-STRING_ARG_DECL(fp);
-STRING_ARG_DECL(mode);
-int *ret;
-{
-       char fname[512];
-       char fmode[3];
-
-       if (ftocstr(fname, sizeof(fname), STRING_PTR(fp), STRING_LEN(fp))) {
-               *ret = 0;
-       }
-       if (ftocstr(fmode, sizeof(fmode), STRING_PTR(mode),
-                       STRING_LEN(mode))) {
-               *ret = 0;
-       }
-
-       *xdrid = xdropen(NULL, fname, fmode);
-       if (*xdrid == 0)
-               *ret = 0;
-       else 
-               *ret = 1;       
-}
-
-/*___________________________________________________________________________
- |
- | what follows are the C routines for opening, closing xdr streams
- | and the routine to read/write compressed coordinates together
- | with some routines to assist in this task (those are marked
- | static and cannot be called from user programs)
-*/
-#define MAXABS INT_MAX-2
-
-#ifndef MIN
-#define MIN(x,y) ((x) < (y) ? (x):(y))
-#endif
-#ifndef MAX
-#define MAX(x,y) ((x) > (y) ? (x):(y))
-#endif
-#ifndef SQR
-#define SQR(x) ((x)*(x))
-#endif
-static int magicints[] = {
-    0, 0, 0, 0, 0, 0, 0, 0, 0,
-    8, 10, 12, 16, 20, 25, 32, 40, 50, 64,
-    80, 101, 128, 161, 203, 256, 322, 406, 512, 645,
-    812, 1024, 1290, 1625, 2048, 2580, 3250, 4096, 5060, 6501,
-    8192, 10321, 13003, 16384, 20642, 26007, 32768, 41285, 52015, 65536,
-    82570, 104031, 131072, 165140, 208063, 262144, 330280, 416127, 524287, 660561,
-    832255, 1048576, 1321122, 1664510, 2097152, 2642245, 3329021, 4194304, 5284491, 6658042,
-    8388607, 10568983, 13316085, 16777216 };
-
-#define FIRSTIDX 9
-/* note that magicints[FIRSTIDX-1] == 0 */
-#define LASTIDX (sizeof(magicints) / sizeof(*magicints))
-
-
-/*__________________________________________________________________________
- |
- | xdropen - open xdr file
- |
- | This versions differs from xdrstdio_create, because I need to know
- | the state of the file (read or write) so I can use xdr3dfcoord
- | in eigther read or write mode, and the file descriptor
- | so I can close the file (something xdr_destroy doesn't do).
- |
-*/
-
-int xdropen(XDR *xdrs, const char *filename, const char *type) {
-    static int init_done = 0;
-    enum xdr_op lmode;
-    const char *type1;
-    int xdrid;
-    
-    if (init_done == 0) {
-       for (xdrid = 1; xdrid < MAXID; xdrid++) {
-           xdridptr[xdrid] = NULL;
-       }
-       init_done = 1;
-    }
-    xdrid = 1;
-    while (xdrid < MAXID && xdridptr[xdrid] != NULL) {
-       xdrid++;
-    }
-    if (xdrid == MAXID) {
-       return 0;
-    }
-    if (*type == 'w' || *type == 'W') {
-           type = "w+";
-           type1 = "a+";
-           lmode = XDR_ENCODE;
-    } else {
-           type = "r";
-            type1 = "r";
-           lmode = XDR_DECODE;
-    }
-    xdrfiles[xdrid] = fopen(filename, type1);
-    if (xdrfiles[xdrid] == NULL) {
-       xdrs = NULL;
-       return 0;
-    }
-    xdrmodes[xdrid] = *type;
-    /* next test isn't usefull in the case of C language
-     * but is used for the Fortran interface
-     * (C users are expected to pass the address of an already allocated
-     * XDR staructure)
-     */
-    if (xdrs == NULL) {
-       xdridptr[xdrid] = (XDR *) malloc(sizeof(XDR));
-       xdrstdio_create(xdridptr[xdrid], xdrfiles[xdrid], lmode);
-    } else {
-       xdridptr[xdrid] = xdrs;
-       xdrstdio_create(xdrs, xdrfiles[xdrid], lmode);
-    }
-    return xdrid;
-}
-
-/*_________________________________________________________________________
- |
- | xdrclose - close a xdr file
- |
- | This will flush the xdr buffers, and destroy the xdr stream.
- | It also closes the associated file descriptor (this is *not*
- | done by xdr_destroy).
- |
-*/
-int xdrclose(XDR *xdrs) {
-    int xdrid;
-    
-    if (xdrs == NULL) {
-       fprintf(stderr, "xdrclose: passed a NULL pointer\n");
-       exit(1);
-    }
-    for (xdrid = 1; xdrid < MAXID; xdrid++) {
-       if (xdridptr[xdrid] == xdrs) {
-           
-           xdr_destroy(xdrs);
-           fclose(xdrfiles[xdrid]);
-           xdridptr[xdrid] = NULL;
-           return 1;
-       }
-    } 
-    fprintf(stderr, "xdrclose: no such open xdr file\n");
-    exit(1);
-    
-}
-
-/*____________________________________________________________________________
- |
- | sendbits - encode num into buf using the specified number of bits
- |
- | This routines appends the value of num to the bits already present in
- | the array buf. You need to give it the number of bits to use and you
- | better make sure that this number of bits is enough to hold the value
- | Also num must be positive.
- |
-*/
-
-static void sendbits(int buf[], int num_of_bits, int num) {
-    
-    unsigned int cnt, lastbyte;
-    int lastbits;
-    unsigned char * cbuf;
-    
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = (unsigned int) buf[0];
-    lastbits = buf[1];
-    lastbyte =(unsigned int) buf[2];
-    while (num_of_bits >= 8) {
-       lastbyte = (lastbyte << 8) | ((num >> (num_of_bits -8)) /* & 0xff*/);
-       cbuf[cnt++] = lastbyte >> lastbits;
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       lastbyte = (lastbyte << num_of_bits) | num;
-       lastbits += num_of_bits;
-       if (lastbits >= 8) {
-           lastbits -= 8;
-           cbuf[cnt++] = lastbyte >> lastbits;
-       }
-    }
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    if (lastbits>0) {
-       cbuf[cnt] = lastbyte << (8 - lastbits);
-    }
-}
-
-/*_________________________________________________________________________
- |
- | sizeofint - calculate bitsize of an integer
- |
- | return the number of bits needed to store an integer with given max size
- |
-*/
-
-static int sizeofint(const int size) {
-    unsigned int num = 1;
-    int num_of_bits = 0;
-    
-    while (size >= num && num_of_bits < 32) {
-       num_of_bits++;
-       num <<= 1;
-    }
-    return num_of_bits;
-}
-
-/*___________________________________________________________________________
- |
- | sizeofints - calculate 'bitsize' of compressed ints
- |
- | given the number of small unsigned integers and the maximum value
- | return the number of bits needed to read or write them with the
- | routines receiveints and sendints. You need this parameter when
- | calling these routines. Note that for many calls I can use
- | the variable 'smallidx' which is exactly the number of bits, and
- | So I don't need to call 'sizeofints for those calls.
-*/
-
-static int sizeofints( const int num_of_ints, unsigned int sizes[]) {
-    int i, num;
-    unsigned int num_of_bytes, num_of_bits, bytes[32], bytecnt, tmp;
-    num_of_bytes = 1;
-    bytes[0] = 1;
-    num_of_bits = 0;
-    for (i=0; i < num_of_ints; i++) {  
-       tmp = 0;
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    num = 1;
-    num_of_bytes--;
-    while (bytes[num_of_bytes] >= num) {
-       num_of_bits++;
-       num *= 2;
-    }
-    return num_of_bits + num_of_bytes * 8;
-
-}
-    
-/*____________________________________________________________________________
- |
- | sendints - send a small set of small integers in compressed format
- |
- | this routine is used internally by xdr3dfcoord, to send a set of
- | small integers to the buffer. 
- | Multiplication with fixed (specified maximum ) sizes is used to get
- | to one big, multibyte integer. Allthough the routine could be
- | modified to handle sizes bigger than 16777216, or more than just
- | a few integers, this is not done, because the gain in compression
- | isn't worth the effort. Note that overflowing the multiplication
- | or the byte buffer (32 bytes) is unchecked and causes bad results.
- |
- */
-static void sendints(int buf[], const int num_of_ints, const int num_of_bits,
-       unsigned int sizes[], unsigned int nums[]) {
-
-    int i;
-    unsigned int bytes[32], num_of_bytes, bytecnt, tmp;
-
-    tmp = nums[0];
-    num_of_bytes = 0;
-    do {
-       bytes[num_of_bytes++] = tmp & 0xff;
-       tmp >>= 8;
-    } while (tmp != 0);
-
-    for (i = 1; i < num_of_ints; i++) {
-       if (nums[i] >= sizes[i]) {
-           fprintf(stderr,"major breakdown in sendints num %d doesn't "
-                   "match size %d\n", nums[i], sizes[i]);
-           exit(1);
-       }
-       /* use one step multiply */    
-       tmp = nums[i];
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    if (num_of_bits >= num_of_bytes * 8) {
-       for (i = 0; i < num_of_bytes; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits - num_of_bytes * 8, 0);
-    } else {
-       for (i = 0; i < num_of_bytes-1; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits- (num_of_bytes -1) * 8, bytes[i]);
-    }
-}
-
-
-/*___________________________________________________________________________
- |
- | receivebits - decode number from buf using specified number of bits
- | 
- | extract the number of bits from the array buf and construct an integer
- | from it. Return that value.
- |
-*/
-
-static int receivebits(int buf[], int num_of_bits) {
-
-    int cnt, num; 
-    unsigned int lastbits, lastbyte;
-    unsigned char * cbuf;
-    int mask = (1 << num_of_bits) -1;
-
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = buf[0];
-    lastbits = (unsigned int) buf[1];
-    lastbyte = (unsigned int) buf[2];
-    
-    num = 0;
-    while (num_of_bits >= 8) {
-       lastbyte = ( lastbyte << 8 ) | cbuf[cnt++];
-       num |=  (lastbyte >> lastbits) << (num_of_bits - 8);
-       num_of_bits -=8;
-    }
-    if (num_of_bits > 0) {
-       if (lastbits < num_of_bits) {
-           lastbits += 8;
-           lastbyte = (lastbyte << 8) | cbuf[cnt++];
-       }
-       lastbits -= num_of_bits;
-       num |= (lastbyte >> lastbits) & ((1 << num_of_bits) -1);
-    }
-    num &= mask;
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    return num; 
-}
-
-/*____________________________________________________________________________
- |
- | receiveints - decode 'small' integers from the buf array
- |
- | this routine is the inverse from sendints() and decodes the small integers
- | written to buf by calculating the remainder and doing divisions with
- | the given sizes[]. You need to specify the total number of bits to be
- | used from buf in num_of_bits.
- |
-*/
-
-static void receiveints(int buf[], const int num_of_ints, int num_of_bits,
-       unsigned int sizes[], int nums[]) {
-    int bytes[32];
-    int i, j, num_of_bytes, p, num;
-    
-    bytes[1] = bytes[2] = bytes[3] = 0;
-    num_of_bytes = 0;
-    while (num_of_bits > 8) {
-       bytes[num_of_bytes++] = receivebits(buf, 8);
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       bytes[num_of_bytes++] = receivebits(buf, num_of_bits);
-    }
-    for (i = num_of_ints-1; i > 0; i--) {
-       num = 0;
-       for (j = num_of_bytes-1; j >=0; j--) {
-           num = (num << 8) | bytes[j];
-           p = num / sizes[i];
-           bytes[j] = p;
-           num = num - p * sizes[i];
-       }
-       nums[i] = num;
-    }
-    nums[0] = bytes[0] | (bytes[1] << 8) | (bytes[2] << 16) | (bytes[3] << 24);
-}
-    
-/*____________________________________________________________________________
- |
- | xdr3dfcoord - read or write compressed 3d coordinates to xdr file.
- |
- | this routine reads or writes (depending on how you opened the file with
- | xdropen() ) a large number of 3d coordinates (stored in *fp).
- | The number of coordinates triplets to write is given by *size. On
- | read this number may be zero, in which case it reads as many as were written
- | or it may specify the number if triplets to read (which should match the
- | number written).
- | Compression is achieved by first converting all floating numbers to integer
- | using multiplication by *precision and rounding to the nearest integer.
- | Then the minimum and maximum value are calculated to determine the range.
- | The limited range of integers so found, is used to compress the coordinates.
- | In addition the differences between succesive coordinates is calculated.
- | If the difference happens to be 'small' then only the difference is saved,
- | compressing the data even more. The notion of 'small' is changed dynamically
- | and is enlarged or reduced whenever needed or possible.
- | Extra compression is achieved in the case of GROMOS and coordinates of
- | water molecules. GROMOS first writes out the Oxygen position, followed by
- | the two hydrogens. In order to make the differences smaller (and thereby
- | compression the data better) the order is changed into first one hydrogen
- | then the oxygen, followed by the other hydrogen. This is rather special, but
- | it shouldn't harm in the general case.
- |
- */
-int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) {
-    
-
-    static int *ip = NULL;
-    static int oldsize;
-    static int *buf;
-
-    int minint[3], maxint[3], mindiff, *lip, diff;
-    int lint1, lint2, lint3, oldlint1, oldlint2, oldlint3, smallidx;
-    int minidx, maxidx;
-    unsigned sizeint[3], sizesmall[3], bitsizeint[3], size3, *luip;
-    int flag, k;
-    int small, smaller, larger, i, is_small, is_smaller, run, prevrun;
-    float *lfp, lf;
-    int tmp, *thiscoord,  prevcoord[3];
-    unsigned int tmpcoord[30];
-
-    int bufsize, xdrid, lsize;
-    unsigned int bitsize;
-    float inv_precision;
-    int errval = 1;
-
-    /* find out if xdrs is opened for reading or for writing */
-    xdrid = 0;
-    while (xdridptr[xdrid] != xdrs) {
-       xdrid++;
-       if (xdrid >= MAXID) {
-           fprintf(stderr, "xdr error. no open xdr stream\n");
-           exit (1);
-       }
-    }
-    if (xdrmodes[xdrid] == 'w') {
-
-       /* xdrs is open for writing */
-
-       if (xdr_int(xdrs, size) == 0)
-           return 0;
-       size3 = *size * 3;
-       /* when the number of coordinates is small, don't try to compress; just
-        * write them as floats using xdr_vector
-        */
-       if (*size <= 9 ) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       /* buf[0-2] are special and do not contain actual data */
-       buf[0] = buf[1] = buf[2] = 0;
-       minint[0] = minint[1] = minint[2] = INT_MAX;
-       maxint[0] = maxint[1] = maxint[2] = INT_MIN;
-       prevrun = -1;
-       lfp = fp;
-       lip = ip;
-       mindiff = INT_MAX;
-       oldlint1 = oldlint2 = oldlint3 = 0;
-       while(lfp < fp + size3 ) {
-           /* find nearest integer */
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint1 = lf;
-           if (lint1 < minint[0]) minint[0] = lint1;
-           if (lint1 > maxint[0]) maxint[0] = lint1;
-           *lip++ = lint1;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint2 = lf;
-           if (lint2 < minint[1]) minint[1] = lint2;
-           if (lint2 > maxint[1]) maxint[1] = lint2;
-           *lip++ = lint2;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint3 = lf;
-           if (lint3 < minint[2]) minint[2] = lint3;
-           if (lint3 > maxint[2]) maxint[2] = lint3;
-           *lip++ = lint3;
-           lfp++;
-           diff = abs(oldlint1-lint1)+abs(oldlint2-lint2)+abs(oldlint3-lint3);
-           if (diff < mindiff && lfp > fp + 3)
-               mindiff = diff;
-           oldlint1 = lint1;
-           oldlint2 = lint2;
-           oldlint3 = lint3;
-       }
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-       
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-       
-       if ((float)maxint[0] - (float)minint[0] >= MAXABS ||
-               (float)maxint[1] - (float)minint[1] >= MAXABS ||
-               (float)maxint[2] - (float)minint[2] >= MAXABS) {
-           /* turning value in unsigned by subtracting minint
-            * would cause overflow
-            */
-           errval = 0;
-       }
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       lip = ip;
-       luip = (unsigned int *) ip;
-       smallidx = FIRSTIDX;
-       while (smallidx < LASTIDX && magicints[smallidx] < mindiff) {
-           smallidx++;
-       }
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-       larger = magicints[maxidx] / 2;
-       i = 0;
-       while (i < *size) {
-           is_small = 0;
-           thiscoord = (int *)(luip) + i * 3;
-           if (smallidx < maxidx && i >= 1 &&
-                   abs(thiscoord[0] - prevcoord[0]) < larger &&
-                   abs(thiscoord[1] - prevcoord[1]) < larger &&
-                   abs(thiscoord[2] - prevcoord[2]) < larger) {
-               is_smaller = 1;
-           } else if (smallidx > minidx) {
-               is_smaller = -1;
-           } else {
-               is_smaller = 0;
-           }
-           if (i + 1 < *size) {
-               if (abs(thiscoord[0] - thiscoord[3]) < small &&
-                       abs(thiscoord[1] - thiscoord[4]) < small &&
-                       abs(thiscoord[2] - thiscoord[5]) < small) {
-                   /* interchange first with second atom for better
-                    * compression of water molecules
-                    */
-                   tmp = thiscoord[0]; thiscoord[0] = thiscoord[3];
-                       thiscoord[3] = tmp;
-                   tmp = thiscoord[1]; thiscoord[1] = thiscoord[4];
-                       thiscoord[4] = tmp;
-                   tmp = thiscoord[2]; thiscoord[2] = thiscoord[5];
-                       thiscoord[5] = tmp;
-                   is_small = 1;
-               }
-    
-           }
-           tmpcoord[0] = thiscoord[0] - minint[0];
-           tmpcoord[1] = thiscoord[1] - minint[1];
-           tmpcoord[2] = thiscoord[2] - minint[2];
-           if (bitsize == 0) {
-               sendbits(buf, bitsizeint[0], tmpcoord[0]);
-               sendbits(buf, bitsizeint[1], tmpcoord[1]);
-               sendbits(buf, bitsizeint[2], tmpcoord[2]);
-           } else {
-               sendints(buf, 3, bitsize, sizeint, tmpcoord);
-           }
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           thiscoord = thiscoord + 3;
-           i++;
-           
-           run = 0;
-           if (is_small == 0 && is_smaller == -1)
-               is_smaller = 0;
-           while (is_small && run < 8*3) {
-               if (is_smaller == -1 && (
-                       SQR(thiscoord[0] - prevcoord[0]) +
-                       SQR(thiscoord[1] - prevcoord[1]) +
-                       SQR(thiscoord[2] - prevcoord[2]) >= smaller * smaller)) {
-                   is_smaller = 0;
-               }
-
-               tmpcoord[run++] = thiscoord[0] - prevcoord[0] + small;
-               tmpcoord[run++] = thiscoord[1] - prevcoord[1] + small;
-               tmpcoord[run++] = thiscoord[2] - prevcoord[2] + small;
-               
-               prevcoord[0] = thiscoord[0];
-               prevcoord[1] = thiscoord[1];
-               prevcoord[2] = thiscoord[2];
-
-               i++;
-               thiscoord = thiscoord + 3;
-               is_small = 0;
-               if (i < *size &&
-                       abs(thiscoord[0] - prevcoord[0]) < small &&
-                       abs(thiscoord[1] - prevcoord[1]) < small &&
-                       abs(thiscoord[2] - prevcoord[2]) < small) {
-                   is_small = 1;
-               }
-           }
-           if (run != prevrun || is_smaller != 0) {
-               prevrun = run;
-               sendbits(buf, 1, 1); /* flag the change in run-length */
-               sendbits(buf, 5, run+is_smaller+1);
-           } else {
-               sendbits(buf, 1, 0); /* flag the fact that runlength did not change */
-           }
-           for (k=0; k < run; k+=3) {
-               sendints(buf, 3, smallidx, sizesmall, &tmpcoord[k]);    
-           }
-           if (is_smaller != 0) {
-               smallidx += is_smaller;
-               if (is_smaller < 0) {
-                   small = smaller;
-                   smaller = magicints[smallidx-1] / 2;
-               } else {
-                   smaller = small;
-                   small = magicints[smallidx] / 2;
-               }
-               sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-           }
-       }
-       if (buf[1] != 0) buf[0]++;;
-       xdr_int(xdrs, &(buf[0])); /* buf[0] holds the length in bytes */
-       return errval * (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]));
-    } else {
-       
-       /* xdrs is open for reading */
-       
-       if (xdr_int(xdrs, &lsize) == 0) 
-           return 0;
-       if (*size != 0 && lsize != *size) {
-           fprintf(stderr, "wrong number of coordinates in xdr3dfcoor; "
-                   "%d arg vs %d in file", *size, lsize);
-       }
-       *size = lsize;
-       size3 = *size * 3;
-       if (*size <= 9) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-               
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       larger = magicints[maxidx];
-
-       /* buf[0] holds the length in bytes */
-
-       if (xdr_int(xdrs, &(buf[0])) == 0)
-           return 0;
-       if (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]) == 0)
-           return 0;
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       lfp = fp;
-       inv_precision = 1.0 / * precision;
-       run = 0;
-       i = 0;
-       lip = ip;
-       while ( i < lsize ) {
-           thiscoord = (int *)(lip) + i * 3;
-
-           if (bitsize == 0) {
-               thiscoord[0] = receivebits(buf, bitsizeint[0]);
-               thiscoord[1] = receivebits(buf, bitsizeint[1]);
-               thiscoord[2] = receivebits(buf, bitsizeint[2]);
-           } else {
-               receiveints(buf, 3, bitsize, sizeint, thiscoord);
-           }
-           
-           i++;
-           thiscoord[0] += minint[0];
-           thiscoord[1] += minint[1];
-           thiscoord[2] += minint[2];
-           
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           
-          
-           flag = receivebits(buf, 1);
-           is_smaller = 0;
-           if (flag == 1) {
-               run = receivebits(buf, 5);
-               is_smaller = run % 3;
-               run -= is_smaller;
-               is_smaller--;
-           }
-           if (run > 0) {
-               thiscoord += 3;
-               for (k = 0; k < run; k+=3) {
-                   receiveints(buf, 3, smallidx, sizesmall, thiscoord);
-                   i++;
-                   thiscoord[0] += prevcoord[0] - small;
-                   thiscoord[1] += prevcoord[1] - small;
-                   thiscoord[2] += prevcoord[2] - small;
-                   if (k == 0) {
-                       /* interchange first with second atom for better
-                        * compression of water molecules
-                        */
-                       tmp = thiscoord[0]; thiscoord[0] = prevcoord[0];
-                               prevcoord[0] = tmp;
-                       tmp = thiscoord[1]; thiscoord[1] = prevcoord[1];
-                               prevcoord[1] = tmp;
-                       tmp = thiscoord[2]; thiscoord[2] = prevcoord[2];
-                               prevcoord[2] = tmp;
-                       *lfp++ = prevcoord[0] * inv_precision;
-                       *lfp++ = prevcoord[1] * inv_precision;
-                       *lfp++ = prevcoord[2] * inv_precision;
-                   } else {
-                       prevcoord[0] = thiscoord[0];
-                       prevcoord[1] = thiscoord[1];
-                       prevcoord[2] = thiscoord[2];
-                   }
-                   *lfp++ = thiscoord[0] * inv_precision;
-                   *lfp++ = thiscoord[1] * inv_precision;
-                   *lfp++ = thiscoord[2] * inv_precision;
-               }
-           } else {
-               *lfp++ = thiscoord[0] * inv_precision;
-               *lfp++ = thiscoord[1] * inv_precision;
-               *lfp++ = thiscoord[2] * inv_precision;          
-           }
-           smallidx += is_smaller;
-           if (is_smaller < 0) {
-               small = smaller;
-               if (smallidx > FIRSTIDX) {
-                   smaller = magicints[smallidx - 1] /2;
-               } else {
-                   smaller = 0;
-               }
-           } else if (is_smaller > 0) {
-               smaller = small;
-               small = magicints[smallidx] / 2;
-           }
-           sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       }
-    }
-    return 1;
-}
-
-
-   
diff --git a/source/unres/src_MD-M/xdrf/libxdrf.o b/source/unres/src_MD-M/xdrf/libxdrf.o
deleted file mode 100644 (file)
index 1f81ca3..0000000
Binary files a/source/unres/src_MD-M/xdrf/libxdrf.o and /dev/null differ
diff --git a/source/unres/src_MD-M/xdrf/types.h b/source/unres/src_MD-M/xdrf/types.h
deleted file mode 100644 (file)
index 871f3fd..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-/* fixincludes should not add extern "C" to this file */
-/*
- * Rpc additions to <sys/types.h>
- */
-#ifndef _RPC_TYPES_H
-#define _RPC_TYPES_H 1
-
-typedef int bool_t;
-typedef int enum_t;
-/* This needs to be changed to uint32_t in the future */
-typedef unsigned long rpcprog_t;
-typedef unsigned long rpcvers_t;
-typedef unsigned long rpcproc_t;
-typedef unsigned long rpcprot_t;
-typedef unsigned long rpcport_t;
-
-#define        __dontcare__    -1
-
-#ifndef FALSE
-#      define  FALSE   (0)
-#endif
-
-#ifndef TRUE
-#      define  TRUE    (1)
-#endif
-
-#ifndef NULL
-#      define  NULL 0
-#endif
-
-#include <stdlib.h>            /* For malloc decl.  */
-#define mem_alloc(bsize)       malloc(bsize)
-/*
- * XXX: This must not use the second argument, or code in xdr_array.c needs
- * to be modified.
- */
-#define mem_free(ptr, bsize)   free(ptr)
-
-#ifndef makedev /* ie, we haven't already included it */
-#include <sys/types.h>
-#endif
-
-#ifndef __u_char_defined
-typedef __u_char u_char;
-typedef __u_short u_short;
-typedef __u_int u_int;
-typedef __u_long u_long;
-typedef __quad_t quad_t;
-typedef __u_quad_t u_quad_t;
-typedef __fsid_t fsid_t;
-# define __u_char_defined
-#endif
-#ifndef __daddr_t_defined
-typedef __daddr_t daddr_t;
-typedef __caddr_t caddr_t;
-# define __daddr_t_defined
-#endif
-
-#include <sys/time.h>
-#include <sys/param.h>
-
-#include <netinet/in.h>
-
-#ifndef INADDR_LOOPBACK
-#define       INADDR_LOOPBACK         (u_long)0x7F000001
-#endif
-#ifndef MAXHOSTNAMELEN
-#define        MAXHOSTNAMELEN  64
-#endif
-
-#endif /* rpc/types.h */
diff --git a/source/unres/src_MD-M/xdrf/underscore.m4 b/source/unres/src_MD-M/xdrf/underscore.m4
deleted file mode 100644 (file)
index 4d620a0..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-divert(-1)
-undefine(`len')
-#
-# append an underscore to FORTRAN function names
-#
-define(`FUNCTION',`$1_')
-#
-# FORTRAN character strings are passed as follows:
-# a pointer to the base of the string is passed in the normal
-# argument list, and the length is passed by value as an extra
-# argument, after all of the other arguments.
-#
-define(`ARGS',`($1`'undivert(1))')
-define(`SAVE',`divert(1)$1`'divert(0)')
-define(`STRING_ARG',`$1_ptr`'SAVE(`, $1_len')')
-define(`STRING_ARG_DECL',`char * $1_ptr; int $1_len')
-define(`STRING_LEN',`$1_len')
-define(`STRING_PTR',`$1_ptr')
-divert(0)
diff --git a/source/unres/src_MD-M/xdrf/xdr.c b/source/unres/src_MD-M/xdrf/xdr.c
deleted file mode 100644 (file)
index 33b8544..0000000
+++ /dev/null
@@ -1,752 +0,0 @@
-# define INTUSE(name) name
-# define INTDEF(name)
-/* @(#)xdr.c   2.1 88/07/29 4.0 RPCSRC */
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)xdr.c 1.35 87/08/12";
-#endif
-
-/*
- * xdr.c, Generic XDR routines implementation.
- *
- * Copyright (C) 1986, Sun Microsystems, Inc.
- *
- * These are the "generic" xdr routines used to serialize and de-serialize
- * most common data items.  See xdr.h for more info on the interface to
- * xdr.
- */
-
-#include <stdio.h>
-#include <limits.h>
-#include <string.h>
-#include <libintl.h>
-
-#include "types.h"
-#include "xdr.h"
-
-#ifdef USE_IN_LIBIO
-# include <wchar.h>
-#endif
-
-/*
- * constants specific to the xdr "protocol"
- */
-#define XDR_FALSE      ((long) 0)
-#define XDR_TRUE       ((long) 1)
-#define LASTUNSIGNED   ((u_int) 0-1)
-
-/*
- * for unit alignment
- */
-static const char xdr_zero[BYTES_PER_XDR_UNIT] = {0, 0, 0, 0};
-
-/*
- * Free a data structure using XDR
- * Not a filter, but a convenient utility nonetheless
- */
-void
-xdr_free (xdrproc_t proc, char *objp)
-{
-  XDR x;
-
-  x.x_op = XDR_FREE;
-  (*proc) (&x, objp);
-}
-
-/*
- * XDR nothing
- */
-bool_t
-xdr_void (void)
-{
-  return TRUE;
-}
-INTDEF(xdr_void)
-
-/*
- * XDR integers
- */
-bool_t
-xdr_int (XDR *xdrs, int *ip)
-{
-
-#if INT_MAX < LONG_MAX
-  long l;
-
-  switch (xdrs->x_op)
-    {
-    case XDR_ENCODE:
-      l = (long) *ip;
-      return XDR_PUTLONG (xdrs, &l);
-
-    case XDR_DECODE:
-      if (!XDR_GETLONG (xdrs, &l))
-       {
-         return FALSE;
-       }
-      *ip = (int) l;
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-#elif INT_MAX == LONG_MAX
-  return INTUSE(xdr_long) (xdrs, (long *) ip);
-#elif INT_MAX == SHRT_MAX
-  return INTUSE(xdr_short) (xdrs, (short *) ip);
-#else
-#error unexpected integer sizes in_xdr_int()
-#endif
-}
-INTDEF(xdr_int)
-
-/*
- * XDR unsigned integers
- */
-bool_t
-xdr_u_int (XDR *xdrs, u_int *up)
-{
-#if UINT_MAX < ULONG_MAX
-  long l;
-
-  switch (xdrs->x_op)
-    {
-    case XDR_ENCODE:
-      l = (u_long) * up;
-      return XDR_PUTLONG (xdrs, &l);
-
-    case XDR_DECODE:
-      if (!XDR_GETLONG (xdrs, &l))
-       {
-         return FALSE;
-       }
-      *up = (u_int) (u_long) l;
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-#elif UINT_MAX == ULONG_MAX
-  return INTUSE(xdr_u_long) (xdrs, (u_long *) up);
-#elif UINT_MAX == USHRT_MAX
-  return INTUSE(xdr_short) (xdrs, (short *) up);
-#else
-#error unexpected integer sizes in_xdr_u_int()
-#endif
-}
-INTDEF(xdr_u_int)
-
-/*
- * XDR long integers
- * The definition of xdr_long() is kept for backward
- * compatibility. Instead xdr_int() should be used.
- */
-bool_t
-xdr_long (XDR *xdrs, long *lp)
-{
-
-  if (xdrs->x_op == XDR_ENCODE
-      && (sizeof (int32_t) == sizeof (long)
-         || (int32_t) *lp == *lp))
-    return XDR_PUTLONG (xdrs, lp);
-
-  if (xdrs->x_op == XDR_DECODE)
-    return XDR_GETLONG (xdrs, lp);
-
-  if (xdrs->x_op == XDR_FREE)
-    return TRUE;
-
-  return FALSE;
-}
-INTDEF(xdr_long)
-
-/*
- * XDR unsigned long integers
- * The definition of xdr_u_long() is kept for backward
- * compatibility. Instead xdr_u_int() should be used.
- */
-bool_t
-xdr_u_long (XDR *xdrs, u_long *ulp)
-{
-  switch (xdrs->x_op)
-    {
-    case XDR_DECODE:
-      {
-       long int tmp;
-
-       if (XDR_GETLONG (xdrs, &tmp) == FALSE)
-         return FALSE;
-
-       *ulp = (uint32_t) tmp;
-       return TRUE;
-      }
-
-    case XDR_ENCODE:
-      if (sizeof (uint32_t) != sizeof (u_long)
-         && (uint32_t) *ulp != *ulp)
-       return FALSE;
-
-      return XDR_PUTLONG (xdrs, (long *) ulp);
-
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_u_long)
-
-/*
- * XDR hyper integers
- * same as xdr_u_hyper - open coded to save a proc call!
- */
-bool_t
-xdr_hyper (XDR *xdrs, quad_t *llp)
-{
-  long int t1, t2;
-
-  if (xdrs->x_op == XDR_ENCODE)
-    {
-      t1 = (long) ((*llp) >> 32);
-      t2 = (long) (*llp);
-      return (XDR_PUTLONG(xdrs, &t1) && XDR_PUTLONG(xdrs, &t2));
-    }
-
-  if (xdrs->x_op == XDR_DECODE)
-    {
-      if (!XDR_GETLONG(xdrs, &t1) || !XDR_GETLONG(xdrs, &t2))
-       return FALSE;
-      *llp = ((quad_t) t1) << 32;
-      *llp |= (uint32_t) t2;
-      return TRUE;
-    }
-
-  if (xdrs->x_op == XDR_FREE)
-    return TRUE;
-
-  return FALSE;
-}
-INTDEF(xdr_hyper)
-
-
-/*
- * XDR hyper integers
- * same as xdr_hyper - open coded to save a proc call!
- */
-bool_t
-xdr_u_hyper (XDR *xdrs, u_quad_t *ullp)
-{
-  long int t1, t2;
-
-  if (xdrs->x_op == XDR_ENCODE)
-    {
-      t1 = (unsigned long) ((*ullp) >> 32);
-      t2 = (unsigned long) (*ullp);
-      return (XDR_PUTLONG(xdrs, &t1) && XDR_PUTLONG(xdrs, &t2));
-    }
-
-  if (xdrs->x_op == XDR_DECODE)
-    {
-      if (!XDR_GETLONG(xdrs, &t1) || !XDR_GETLONG(xdrs, &t2))
-       return FALSE;
-      *ullp = ((u_quad_t) t1) << 32;
-      *ullp |= (uint32_t) t2;
-      return TRUE;
-    }
-
-  if (xdrs->x_op == XDR_FREE)
-    return TRUE;
-
-  return FALSE;
-}
-INTDEF(xdr_u_hyper)
-
-bool_t
-xdr_longlong_t (XDR *xdrs, quad_t *llp)
-{
-  return INTUSE(xdr_hyper) (xdrs, llp);
-}
-
-bool_t
-xdr_u_longlong_t (XDR *xdrs, u_quad_t *ullp)
-{
-  return INTUSE(xdr_u_hyper) (xdrs, ullp);
-}
-
-/*
- * XDR short integers
- */
-bool_t
-xdr_short (XDR *xdrs, short *sp)
-{
-  long l;
-
-  switch (xdrs->x_op)
-    {
-    case XDR_ENCODE:
-      l = (long) *sp;
-      return XDR_PUTLONG (xdrs, &l);
-
-    case XDR_DECODE:
-      if (!XDR_GETLONG (xdrs, &l))
-       {
-         return FALSE;
-       }
-      *sp = (short) l;
-      return TRUE;
-
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_short)
-
-/*
- * XDR unsigned short integers
- */
-bool_t
-xdr_u_short (XDR *xdrs, u_short *usp)
-{
-  long l;
-
-  switch (xdrs->x_op)
-    {
-    case XDR_ENCODE:
-      l = (u_long) * usp;
-      return XDR_PUTLONG (xdrs, &l);
-
-    case XDR_DECODE:
-      if (!XDR_GETLONG (xdrs, &l))
-       {
-         return FALSE;
-       }
-      *usp = (u_short) (u_long) l;
-      return TRUE;
-
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_u_short)
-
-
-/*
- * XDR a char
- */
-bool_t
-xdr_char (XDR *xdrs, char *cp)
-{
-  int i;
-
-  i = (*cp);
-  if (!INTUSE(xdr_int) (xdrs, &i))
-    {
-      return FALSE;
-    }
-  *cp = i;
-  return TRUE;
-}
-
-/*
- * XDR an unsigned char
- */
-bool_t
-xdr_u_char (XDR *xdrs, u_char *cp)
-{
-  u_int u;
-
-  u = (*cp);
-  if (!INTUSE(xdr_u_int) (xdrs, &u))
-    {
-      return FALSE;
-    }
-  *cp = u;
-  return TRUE;
-}
-
-/*
- * XDR booleans
- */
-bool_t
-xdr_bool (XDR *xdrs, bool_t *bp)
-{
-  long lb;
-
-  switch (xdrs->x_op)
-    {
-    case XDR_ENCODE:
-      lb = *bp ? XDR_TRUE : XDR_FALSE;
-      return XDR_PUTLONG (xdrs, &lb);
-
-    case XDR_DECODE:
-      if (!XDR_GETLONG (xdrs, &lb))
-       {
-         return FALSE;
-       }
-      *bp = (lb == XDR_FALSE) ? FALSE : TRUE;
-      return TRUE;
-
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_bool)
-
-/*
- * XDR enumerations
- */
-bool_t
-xdr_enum (XDR *xdrs, enum_t *ep)
-{
-  enum sizecheck
-    {
-      SIZEVAL
-    };                         /* used to find the size of an enum */
-
-  /*
-   * enums are treated as ints
-   */
-  if (sizeof (enum sizecheck) == 4)
-    {
-#if INT_MAX < LONG_MAX
-      long l;
-
-      switch (xdrs->x_op)
-       {
-       case XDR_ENCODE:
-         l = *ep;
-         return XDR_PUTLONG (xdrs, &l);
-
-       case XDR_DECODE:
-         if (!XDR_GETLONG (xdrs, &l))
-           {
-             return FALSE;
-           }
-         *ep = l;
-       case XDR_FREE:
-         return TRUE;
-
-       }
-      return FALSE;
-#else
-      return INTUSE(xdr_long) (xdrs, (long *) ep);
-#endif
-    }
-  else if (sizeof (enum sizecheck) == sizeof (short))
-    {
-      return INTUSE(xdr_short) (xdrs, (short *) ep);
-    }
-  else
-    {
-      return FALSE;
-    }
-}
-INTDEF(xdr_enum)
-
-/*
- * XDR opaque data
- * Allows the specification of a fixed size sequence of opaque bytes.
- * cp points to the opaque object and cnt gives the byte length.
- */
-bool_t
-xdr_opaque (XDR *xdrs, caddr_t cp, u_int cnt)
-{
-  u_int rndup;
-  static char crud[BYTES_PER_XDR_UNIT];
-
-  /*
-   * if no data we are done
-   */
-  if (cnt == 0)
-    return TRUE;
-
-  /*
-   * round byte count to full xdr units
-   */
-  rndup = cnt % BYTES_PER_XDR_UNIT;
-  if (rndup > 0)
-    rndup = BYTES_PER_XDR_UNIT - rndup;
-
-  switch (xdrs->x_op)
-    {
-    case XDR_DECODE:
-      if (!XDR_GETBYTES (xdrs, cp, cnt))
-       {
-         return FALSE;
-       }
-      if (rndup == 0)
-       return TRUE;
-      return XDR_GETBYTES (xdrs, (caddr_t)crud, rndup);
-
-    case XDR_ENCODE:
-      if (!XDR_PUTBYTES (xdrs, cp, cnt))
-       {
-         return FALSE;
-       }
-      if (rndup == 0)
-       return TRUE;
-      return XDR_PUTBYTES (xdrs, xdr_zero, rndup);
-
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_opaque)
-
-/*
- * XDR counted bytes
- * *cpp is a pointer to the bytes, *sizep is the count.
- * If *cpp is NULL maxsize bytes are allocated
- */
-bool_t
-xdr_bytes (xdrs, cpp, sizep, maxsize)
-     XDR *xdrs;
-     char **cpp;
-     u_int *sizep;
-     u_int maxsize;
-{
-  char *sp = *cpp;     /* sp is the actual string pointer */
-  u_int nodesize;
-
-  /*
-   * first deal with the length since xdr bytes are counted
-   */
-  if (!INTUSE(xdr_u_int) (xdrs, sizep))
-    {
-      return FALSE;
-    }
-  nodesize = *sizep;
-  if ((nodesize > maxsize) && (xdrs->x_op != XDR_FREE))
-    {
-      return FALSE;
-    }
-
-  /*
-   * now deal with the actual bytes
-   */
-  switch (xdrs->x_op)
-    {
-    case XDR_DECODE:
-      if (nodesize == 0)
-       {
-         return TRUE;
-       }
-      if (sp == NULL)
-       {
-         *cpp = sp = (char *) mem_alloc (nodesize);
-       }
-      if (sp == NULL)
-       {
-         fprintf (NULL, "%s", "xdr_bytes: out of memory\n");
-         return FALSE;
-       }
-      /* fall into ... */
-
-    case XDR_ENCODE:
-      return INTUSE(xdr_opaque) (xdrs, sp, nodesize);
-
-    case XDR_FREE:
-      if (sp != NULL)
-       {
-         mem_free (sp, nodesize);
-         *cpp = NULL;
-       }
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_bytes)
-
-/*
- * Implemented here due to commonality of the object.
- */
-bool_t
-xdr_netobj (xdrs, np)
-     XDR *xdrs;
-     struct netobj *np;
-{
-
-  return INTUSE(xdr_bytes) (xdrs, &np->n_bytes, &np->n_len, MAX_NETOBJ_SZ);
-}
-INTDEF(xdr_netobj)
-
-/*
- * XDR a discriminated union
- * Support routine for discriminated unions.
- * You create an array of xdrdiscrim structures, terminated with
- * an entry with a null procedure pointer.  The routine gets
- * the discriminant value and then searches the array of xdrdiscrims
- * looking for that value.  It calls the procedure given in the xdrdiscrim
- * to handle the discriminant.  If there is no specific routine a default
- * routine may be called.
- * If there is no specific or default routine an error is returned.
- */
-bool_t
-xdr_union (xdrs, dscmp, unp, choices, dfault)
-     XDR *xdrs;
-     enum_t *dscmp;            /* enum to decide which arm to work on */
-     char *unp;                        /* the union itself */
-     const struct xdr_discrim *choices;        /* [value, xdr proc] for each arm */
-     xdrproc_t dfault;         /* default xdr routine */
-{
-  enum_t dscm;
-
-  /*
-   * we deal with the discriminator;  it's an enum
-   */
-  if (!INTUSE(xdr_enum) (xdrs, dscmp))
-    {
-      return FALSE;
-    }
-  dscm = *dscmp;
-
-  /*
-   * search choices for a value that matches the discriminator.
-   * if we find one, execute the xdr routine for that value.
-   */
-  for (; choices->proc != NULL_xdrproc_t; choices++)
-    {
-      if (choices->value == dscm)
-       return (*(choices->proc)) (xdrs, unp, LASTUNSIGNED);
-    }
-
-  /*
-   * no match - execute the default xdr routine if there is one
-   */
-  return ((dfault == NULL_xdrproc_t) ? FALSE :
-         (*dfault) (xdrs, unp, LASTUNSIGNED));
-}
-INTDEF(xdr_union)
-
-
-/*
- * Non-portable xdr primitives.
- * Care should be taken when moving these routines to new architectures.
- */
-
-
-/*
- * XDR null terminated ASCII strings
- * xdr_string deals with "C strings" - arrays of bytes that are
- * terminated by a NULL character.  The parameter cpp references a
- * pointer to storage; If the pointer is null, then the necessary
- * storage is allocated.  The last parameter is the max allowed length
- * of the string as specified by a protocol.
- */
-bool_t
-xdr_string (xdrs, cpp, maxsize)
-     XDR *xdrs;
-     char **cpp;
-     u_int maxsize;
-{
-  char *sp = *cpp;     /* sp is the actual string pointer */
-  u_int size;
-  u_int nodesize;
-
-  /*
-   * first deal with the length since xdr strings are counted-strings
-   */
-  switch (xdrs->x_op)
-    {
-    case XDR_FREE:
-      if (sp == NULL)
-       {
-         return TRUE;          /* already free */
-       }
-      /* fall through... */
-    case XDR_ENCODE:
-      if (sp == NULL)
-       return FALSE;
-      size = strlen (sp);
-      break;
-    case XDR_DECODE:
-      break;
-    }
-  if (!INTUSE(xdr_u_int) (xdrs, &size))
-    {
-      return FALSE;
-    }
-  if (size > maxsize)
-    {
-      return FALSE;
-    }
-  nodesize = size + 1;
-  if (nodesize == 0)
-    {
-      /* This means an overflow.  It a bug in the caller which
-        provided a too large maxsize but nevertheless catch it
-        here.  */
-      return FALSE;
-    }
-
-  /*
-   * now deal with the actual bytes
-   */
-  switch (xdrs->x_op)
-    {
-    case XDR_DECODE:
-      if (sp == NULL)
-       *cpp = sp = (char *) mem_alloc (nodesize);
-      if (sp == NULL)
-       {
-         fprintf (NULL, "%s", "xdr_string: out of memory\n");
-         return FALSE;
-       }
-      sp[size] = 0;
-      /* fall into ... */
-
-    case XDR_ENCODE:
-      return INTUSE(xdr_opaque) (xdrs, sp, size);
-
-    case XDR_FREE:
-      mem_free (sp, nodesize);
-      *cpp = NULL;
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_string)
-
-/*
- * Wrapper for xdr_string that can be called directly from
- * routines like clnt_call
- */
-bool_t
-xdr_wrapstring (xdrs, cpp)
-     XDR *xdrs;
-     char **cpp;
-{
-  if (INTUSE(xdr_string) (xdrs, cpp, LASTUNSIGNED))
-    {
-      return TRUE;
-    }
-  return FALSE;
-}
diff --git a/source/unres/src_MD-M/xdrf/xdr.h b/source/unres/src_MD-M/xdrf/xdr.h
deleted file mode 100644 (file)
index 2602ad9..0000000
+++ /dev/null
@@ -1,379 +0,0 @@
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-
-/*
- * xdr.h, External Data Representation Serialization Routines.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-#ifndef _RPC_XDR_H
-#define _RPC_XDR_H 1
-
-#include <features.h>
-#include <sys/types.h>
-#include "types.h"
-
-/* We need FILE.  */
-#include <stdio.h>
-
-__BEGIN_DECLS
-
-/*
- * XDR provides a conventional way for converting between C data
- * types and an external bit-string representation.  Library supplied
- * routines provide for the conversion on built-in C data types.  These
- * routines and utility routines defined here are used to help implement
- * a type encode/decode routine for each user-defined type.
- *
- * Each data type provides a single procedure which takes two arguments:
- *
- *      bool_t
- *      xdrproc(xdrs, argresp)
- *              XDR *xdrs;
- *              <type> *argresp;
- *
- * xdrs is an instance of a XDR handle, to which or from which the data
- * type is to be converted.  argresp is a pointer to the structure to be
- * converted.  The XDR handle contains an operation field which indicates
- * which of the operations (ENCODE, DECODE * or FREE) is to be performed.
- *
- * XDR_DECODE may allocate space if the pointer argresp is null.  This
- * data can be freed with the XDR_FREE operation.
- *
- * We write only one procedure per data type to make it easy
- * to keep the encode and decode procedures for a data type consistent.
- * In many cases the same code performs all operations on a user defined type,
- * because all the hard work is done in the component type routines.
- * decode as a series of calls on the nested data types.
- */
-
-/*
- * Xdr operations.  XDR_ENCODE causes the type to be encoded into the
- * stream.  XDR_DECODE causes the type to be extracted from the stream.
- * XDR_FREE can be used to release the space allocated by an XDR_DECODE
- * request.
- */
-enum xdr_op {
-  XDR_ENCODE = 0,
-  XDR_DECODE = 1,
-  XDR_FREE = 2
-};
-
-/*
- * This is the number of bytes per unit of external data.
- */
-#define BYTES_PER_XDR_UNIT     (4)
-/*
- * This only works if the above is a power of 2.  But it's defined to be
- * 4 by the appropriate RFCs.  So it will work.  And it's normally quicker
- * than the old routine.
- */
-#if 1
-#define RNDUP(x)  (((x) + BYTES_PER_XDR_UNIT - 1) & ~(BYTES_PER_XDR_UNIT - 1))
-#else /* this is the old routine */
-#define RNDUP(x)  ((((x) + BYTES_PER_XDR_UNIT - 1) / BYTES_PER_XDR_UNIT) \
-                   * BYTES_PER_XDR_UNIT)
-#endif
-
-/*
- * The XDR handle.
- * Contains operation which is being applied to the stream,
- * an operations vector for the particular implementation (e.g. see xdr_mem.c),
- * and two private fields for the use of the particular implementation.
- */
-typedef struct XDR XDR;
-struct XDR
-  {
-    enum xdr_op x_op;          /* operation; fast additional param */
-    struct xdr_ops
-      {
-       bool_t (*x_getlong) (XDR *__xdrs, long *__lp);
-       /* get a long from underlying stream */
-       bool_t (*x_putlong) (XDR *__xdrs, __const long *__lp);
-       /* put a long to " */
-       bool_t (*x_getbytes) (XDR *__xdrs, caddr_t __addr, u_int __len);
-       /* get some bytes from " */
-       bool_t (*x_putbytes) (XDR *__xdrs, __const char *__addr, u_int __len);
-       /* put some bytes to " */
-       u_int (*x_getpostn) (__const XDR *__xdrs);
-       /* returns bytes off from beginning */
-       bool_t (*x_setpostn) (XDR *__xdrs, u_int __pos);
-       /* lets you reposition the stream */
-       int32_t *(*x_inline) (XDR *__xdrs, u_int __len);
-       /* buf quick ptr to buffered data */
-       void (*x_destroy) (XDR *__xdrs);
-       /* free privates of this xdr_stream */
-       bool_t (*x_getint32) (XDR *__xdrs, int32_t *__ip);
-       /* get a int from underlying stream */
-       bool_t (*x_putint32) (XDR *__xdrs, __const int32_t *__ip);
-       /* put a int to " */
-      }
-     *x_ops;
-    caddr_t x_public;          /* users' data */
-    caddr_t x_private;         /* pointer to private data */
-    caddr_t x_base;            /* private used for position info */
-    u_int x_handy;             /* extra private word */
-  };
-
-/*
- * A xdrproc_t exists for each data type which is to be encoded or decoded.
- *
- * The second argument to the xdrproc_t is a pointer to an opaque pointer.
- * The opaque pointer generally points to a structure of the data type
- * to be decoded.  If this pointer is 0, then the type routines should
- * allocate dynamic storage of the appropriate size and return it.
- * bool_t       (*xdrproc_t)(XDR *, caddr_t *);
- */
-typedef bool_t (*xdrproc_t) (XDR *, void *,...);
-
-
-/*
- * Operations defined on a XDR handle
- *
- * XDR          *xdrs;
- * int32_t      *int32p;
- * long         *longp;
- * caddr_t       addr;
- * u_int         len;
- * u_int         pos;
- */
-#define XDR_GETINT32(xdrs, int32p)                      \
-        (*(xdrs)->x_ops->x_getint32)(xdrs, int32p)
-#define xdr_getint32(xdrs, int32p)                      \
-        (*(xdrs)->x_ops->x_getint32)(xdrs, int32p)
-
-#define XDR_PUTINT32(xdrs, int32p)                      \
-        (*(xdrs)->x_ops->x_putint32)(xdrs, int32p)
-#define xdr_putint32(xdrs, int32p)                      \
-        (*(xdrs)->x_ops->x_putint32)(xdrs, int32p)
-
-#define XDR_GETLONG(xdrs, longp)                       \
-       (*(xdrs)->x_ops->x_getlong)(xdrs, longp)
-#define xdr_getlong(xdrs, longp)                       \
-       (*(xdrs)->x_ops->x_getlong)(xdrs, longp)
-
-#define XDR_PUTLONG(xdrs, longp)                       \
-       (*(xdrs)->x_ops->x_putlong)(xdrs, longp)
-#define xdr_putlong(xdrs, longp)                       \
-       (*(xdrs)->x_ops->x_putlong)(xdrs, longp)
-
-#define XDR_GETBYTES(xdrs, addr, len)                  \
-       (*(xdrs)->x_ops->x_getbytes)(xdrs, addr, len)
-#define xdr_getbytes(xdrs, addr, len)                  \
-       (*(xdrs)->x_ops->x_getbytes)(xdrs, addr, len)
-
-#define XDR_PUTBYTES(xdrs, addr, len)                  \
-       (*(xdrs)->x_ops->x_putbytes)(xdrs, addr, len)
-#define xdr_putbytes(xdrs, addr, len)                  \
-       (*(xdrs)->x_ops->x_putbytes)(xdrs, addr, len)
-
-#define XDR_GETPOS(xdrs)                               \
-       (*(xdrs)->x_ops->x_getpostn)(xdrs)
-#define xdr_getpos(xdrs)                               \
-       (*(xdrs)->x_ops->x_getpostn)(xdrs)
-
-#define XDR_SETPOS(xdrs, pos)                          \
-       (*(xdrs)->x_ops->x_setpostn)(xdrs, pos)
-#define xdr_setpos(xdrs, pos)                          \
-       (*(xdrs)->x_ops->x_setpostn)(xdrs, pos)
-
-#define        XDR_INLINE(xdrs, len)                           \
-       (*(xdrs)->x_ops->x_inline)(xdrs, len)
-#define        xdr_inline(xdrs, len)                           \
-       (*(xdrs)->x_ops->x_inline)(xdrs, len)
-
-#define        XDR_DESTROY(xdrs)                                       \
-       do {                                                    \
-               if ((xdrs)->x_ops->x_destroy)                   \
-                       (*(xdrs)->x_ops->x_destroy)(xdrs);      \
-       } while (0)
-#define        xdr_destroy(xdrs)                                       \
-       do {                                                    \
-               if ((xdrs)->x_ops->x_destroy)                   \
-                       (*(xdrs)->x_ops->x_destroy)(xdrs);      \
-       } while (0)
-
-/*
- * Support struct for discriminated unions.
- * You create an array of xdrdiscrim structures, terminated with
- * a entry with a null procedure pointer.  The xdr_union routine gets
- * the discriminant value and then searches the array of structures
- * for a matching value.  If a match is found the associated xdr routine
- * is called to handle that part of the union.  If there is
- * no match, then a default routine may be called.
- * If there is no match and no default routine it is an error.
- */
-#define NULL_xdrproc_t ((xdrproc_t)0)
-struct xdr_discrim
-{
-  int value;
-  xdrproc_t proc;
-};
-
-/*
- * Inline routines for fast encode/decode of primitive data types.
- * Caveat emptor: these use single memory cycles to get the
- * data from the underlying buffer, and will fail to operate
- * properly if the data is not aligned.  The standard way to use these
- * is to say:
- *      if ((buf = XDR_INLINE(xdrs, count)) == NULL)
- *              return (FALSE);
- *      <<< macro calls >>>
- * where ``count'' is the number of bytes of data occupied
- * by the primitive data types.
- *
- * N.B. and frozen for all time: each data type here uses 4 bytes
- * of external representation.
- */
-
-#define IXDR_GET_INT32(buf)           ((int32_t)ntohl((uint32_t)*(buf)++))
-#define IXDR_PUT_INT32(buf, v)        (*(buf)++ = (int32_t)htonl((uint32_t)(v)))
-#define IXDR_GET_U_INT32(buf)         ((uint32_t)IXDR_GET_INT32(buf))
-#define IXDR_PUT_U_INT32(buf, v)      IXDR_PUT_INT32(buf, (int32_t)(v))
-
-/* WARNING: The IXDR_*_LONG defines are removed by Sun for new platforms
- * and shouldn't be used any longer. Code which use this defines or longs
- * in the RPC code will not work on 64bit Solaris platforms !
- */
-#define IXDR_GET_LONG(buf) ((long)IXDR_GET_U_INT32(buf))
-#define IXDR_PUT_LONG(buf, v) ((long)IXDR_PUT_INT32(buf, (long)(v)))
-#define IXDR_GET_U_LONG(buf)         ((u_long)IXDR_GET_LONG(buf))
-#define IXDR_PUT_U_LONG(buf, v)              IXDR_PUT_LONG(buf, (long)(v))
-
-
-#define IXDR_GET_BOOL(buf)            ((bool_t)IXDR_GET_LONG(buf))
-#define IXDR_GET_ENUM(buf, t)         ((t)IXDR_GET_LONG(buf))
-#define IXDR_GET_SHORT(buf)           ((short)IXDR_GET_LONG(buf))
-#define IXDR_GET_U_SHORT(buf)         ((u_short)IXDR_GET_LONG(buf))
-
-#define IXDR_PUT_BOOL(buf, v)         IXDR_PUT_LONG(buf, (long)(v))
-#define IXDR_PUT_ENUM(buf, v)         IXDR_PUT_LONG(buf, (long)(v))
-#define IXDR_PUT_SHORT(buf, v)        IXDR_PUT_LONG(buf, (long)(v))
-#define IXDR_PUT_U_SHORT(buf, v)      IXDR_PUT_LONG(buf, (long)(v))
-
-/*
- * These are the "generic" xdr routines.
- * None of these can have const applied because it's not possible to
- * know whether the call is a read or a write to the passed parameter
- * also, the XDR structure is always updated by some of these calls.
- */
-extern bool_t xdr_void (void) __THROW;
-extern bool_t xdr_short (XDR *__xdrs, short *__sp) __THROW;
-extern bool_t xdr_u_short (XDR *__xdrs, u_short *__usp) __THROW;
-extern bool_t xdr_int (XDR *__xdrs, int *__ip) __THROW;
-extern bool_t xdr_u_int (XDR *__xdrs, u_int *__up) __THROW;
-extern bool_t xdr_long (XDR *__xdrs, long *__lp) __THROW;
-extern bool_t xdr_u_long (XDR *__xdrs, u_long *__ulp) __THROW;
-extern bool_t xdr_hyper (XDR *__xdrs, quad_t *__llp) __THROW;
-extern bool_t xdr_u_hyper (XDR *__xdrs, u_quad_t *__ullp) __THROW;
-extern bool_t xdr_longlong_t (XDR *__xdrs, quad_t *__llp) __THROW;
-extern bool_t xdr_u_longlong_t (XDR *__xdrs, u_quad_t *__ullp) __THROW;
-extern bool_t xdr_int8_t (XDR *__xdrs, int8_t *__ip) __THROW;
-extern bool_t xdr_uint8_t (XDR *__xdrs, uint8_t *__up) __THROW;
-extern bool_t xdr_int16_t (XDR *__xdrs, int16_t *__ip) __THROW;
-extern bool_t xdr_uint16_t (XDR *__xdrs, uint16_t *__up) __THROW;
-extern bool_t xdr_int32_t (XDR *__xdrs, int32_t *__ip) __THROW;
-extern bool_t xdr_uint32_t (XDR *__xdrs, uint32_t *__up) __THROW;
-extern bool_t xdr_int64_t (XDR *__xdrs, int64_t *__ip) __THROW;
-extern bool_t xdr_uint64_t (XDR *__xdrs, uint64_t *__up) __THROW;
-extern bool_t xdr_quad_t (XDR *__xdrs, quad_t *__ip) __THROW;
-extern bool_t xdr_u_quad_t (XDR *__xdrs, u_quad_t *__up) __THROW;
-extern bool_t xdr_bool (XDR *__xdrs, bool_t *__bp) __THROW;
-extern bool_t xdr_enum (XDR *__xdrs, enum_t *__ep) __THROW;
-extern bool_t xdr_array (XDR * _xdrs, caddr_t *__addrp, u_int *__sizep,
-                        u_int __maxsize, u_int __elsize, xdrproc_t __elproc)
-     __THROW;
-extern bool_t xdr_bytes (XDR *__xdrs, char **__cpp, u_int *__sizep,
-                        u_int __maxsize) __THROW;
-extern bool_t xdr_opaque (XDR *__xdrs, caddr_t __cp, u_int __cnt) __THROW;
-extern bool_t xdr_string (XDR *__xdrs, char **__cpp, u_int __maxsize) __THROW;
-extern bool_t xdr_union (XDR *__xdrs, enum_t *__dscmp, char *__unp,
-                        __const struct xdr_discrim *__choices,
-                        xdrproc_t dfault) __THROW;
-extern bool_t xdr_char (XDR *__xdrs, char *__cp) __THROW;
-extern bool_t xdr_u_char (XDR *__xdrs, u_char *__cp) __THROW;
-extern bool_t xdr_vector (XDR *__xdrs, char *__basep, u_int __nelem,
-                         u_int __elemsize, xdrproc_t __xdr_elem) __THROW;
-extern bool_t xdr_float (XDR *__xdrs, float *__fp) __THROW;
-extern bool_t xdr_double (XDR *__xdrs, double *__dp) __THROW;
-extern bool_t xdr_reference (XDR *__xdrs, caddr_t *__xpp, u_int __size,
-                            xdrproc_t __proc) __THROW;
-extern bool_t xdr_pointer (XDR *__xdrs, char **__objpp,
-                          u_int __obj_size, xdrproc_t __xdr_obj) __THROW;
-extern bool_t xdr_wrapstring (XDR *__xdrs, char **__cpp) __THROW;
-extern u_long xdr_sizeof (xdrproc_t, void *) __THROW;
-
-/*
- * Common opaque bytes objects used by many rpc protocols;
- * declared here due to commonality.
- */
-#define MAX_NETOBJ_SZ 1024
-struct netobj
-{
-  u_int n_len;
-  char *n_bytes;
-};
-typedef struct netobj netobj;
-extern bool_t xdr_netobj (XDR *__xdrs, struct netobj *__np) __THROW;
-
-/*
- * These are the public routines for the various implementations of
- * xdr streams.
- */
-
-/* XDR using memory buffers */
-extern void xdrmem_create (XDR *__xdrs, __const caddr_t __addr,
-                          u_int __size, enum xdr_op __xop) __THROW;
-
-/* XDR using stdio library */
-extern void xdrstdio_create (XDR *__xdrs, FILE *__file, enum xdr_op __xop)
-     __THROW;
-
-/* XDR pseudo records for tcp */
-extern void xdrrec_create (XDR *__xdrs, u_int __sendsize,
-                          u_int __recvsize, caddr_t __tcp_handle,
-                          int (*__readit) (char *, char *, int),
-                          int (*__writeit) (char *, char *, int)) __THROW;
-
-/* make end of xdr record */
-extern bool_t xdrrec_endofrecord (XDR *__xdrs, bool_t __sendnow) __THROW;
-
-/* move to beginning of next record */
-extern bool_t xdrrec_skiprecord (XDR *__xdrs) __THROW;
-
-/* true if no more input */
-extern bool_t xdrrec_eof (XDR *__xdrs) __THROW;
-
-/* free memory buffers for xdr */
-extern void xdr_free (xdrproc_t __proc, char *__objp) __THROW;
-
-__END_DECLS
-
-#endif /* rpc/xdr.h */
diff --git a/source/unres/src_MD-M/xdrf/xdr_array.c b/source/unres/src_MD-M/xdrf/xdr_array.c
deleted file mode 100644 (file)
index 836405c..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-# define INTUSE(name) name
-# define INTDEF(name)
-/* @(#)xdr_array.c     2.1 88/07/29 4.0 RPCSRC */
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)xdr_array.c 1.10 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * xdr_array.c, Generic XDR routines implementation.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- * These are the "non-trivial" xdr primitives used to serialize and de-serialize
- * arrays.  See xdr.h for more info on the interface to xdr.
- */
-
-#include <stdio.h>
-#include <string.h>
-#include "types.h"
-#include "xdr.h"
-#include <libintl.h>
-#include <limits.h>
-
-#ifdef USE_IN_LIBIO
-# include <wchar.h>
-#endif
-
-#define LASTUNSIGNED   ((u_int)0-1)
-
-
-/*
- * XDR an array of arbitrary elements
- * *addrp is a pointer to the array, *sizep is the number of elements.
- * If addrp is NULL (*sizep * elsize) bytes are allocated.
- * elsize is the size (in bytes) of each element, and elproc is the
- * xdr procedure to call to handle each element of the array.
- */
-bool_t
-xdr_array (xdrs, addrp, sizep, maxsize, elsize, elproc)
-     XDR *xdrs;
-     caddr_t *addrp;           /* array pointer */
-     u_int *sizep;             /* number of elements */
-     u_int maxsize;            /* max numberof elements */
-     u_int elsize;             /* size in bytes of each element */
-     xdrproc_t elproc;         /* xdr routine to handle each element */
-{
-  u_int i;
-  caddr_t target = *addrp;
-  u_int c;             /* the actual element count */
-  bool_t stat = TRUE;
-  u_int nodesize;
-
-  /* like strings, arrays are really counted arrays */
-  if (!INTUSE(xdr_u_int) (xdrs, sizep))
-    {
-      return FALSE;
-    }
-  c = *sizep;
-  /*
-   * XXX: Let the overflow possibly happen with XDR_FREE because mem_free()
-   * doesn't actually use its second argument anyway.
-   */
-  if ((c > maxsize || c > UINT_MAX / elsize) && (xdrs->x_op != XDR_FREE))
-    {
-      return FALSE;
-    }
-  nodesize = c * elsize;
-
-  /*
-   * if we are deserializing, we may need to allocate an array.
-   * We also save time by checking for a null array if we are freeing.
-   */
-  if (target == NULL)
-    switch (xdrs->x_op)
-      {
-      case XDR_DECODE:
-       if (c == 0)
-         return TRUE;
-       *addrp = target = mem_alloc (nodesize);
-       if (target == NULL)
-         {
-           fprintf (stderr, "%s", "xdr_array: out of memory\n");
-           return FALSE;
-         }
-       __bzero (target, nodesize);
-       break;
-
-      case XDR_FREE:
-       return TRUE;
-      default:
-       break;
-      }
-
-  /*
-   * now we xdr each element of array
-   */
-  for (i = 0; (i < c) && stat; i++)
-    {
-      stat = (*elproc) (xdrs, target, LASTUNSIGNED);
-      target += elsize;
-    }
-
-  /*
-   * the array may need freeing
-   */
-  if (xdrs->x_op == XDR_FREE)
-    {
-      mem_free (*addrp, nodesize);
-      *addrp = NULL;
-    }
-  return stat;
-}
-INTDEF(xdr_array)
-
-/*
- * xdr_vector():
- *
- * XDR a fixed length array. Unlike variable-length arrays,
- * the storage of fixed length arrays is static and unfreeable.
- * > basep: base of the array
- * > size: size of the array
- * > elemsize: size of each element
- * > xdr_elem: routine to XDR each element
- */
-bool_t
-xdr_vector (xdrs, basep, nelem, elemsize, xdr_elem)
-     XDR *xdrs;
-     char *basep;
-     u_int nelem;
-     u_int elemsize;
-     xdrproc_t xdr_elem;
-{
-  u_int i;
-  char *elptr;
-
-  elptr = basep;
-  for (i = 0; i < nelem; i++)
-    {
-      if (!(*xdr_elem) (xdrs, elptr, LASTUNSIGNED))
-       {
-         return FALSE;
-       }
-      elptr += elemsize;
-    }
-  return TRUE;
-}
diff --git a/source/unres/src_MD-M/xdrf/xdr_float.c b/source/unres/src_MD-M/xdrf/xdr_float.c
deleted file mode 100644 (file)
index 15d3c88..0000000
+++ /dev/null
@@ -1,307 +0,0 @@
-/* @(#)xdr_float.c     2.1 88/07/29 4.0 RPCSRC */
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)xdr_float.c 1.12 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * xdr_float.c, Generic XDR routines implementation.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- * These are the "floating point" xdr routines used to (de)serialize
- * most common data items.  See xdr.h for more info on the interface to
- * xdr.
- */
-
-#include <stdio.h>
-#include <endian.h>
-
-#include "types.h"
-#include "xdr.h"
-
-/*
- * NB: Not portable.
- * This routine works on Suns (Sky / 68000's) and Vaxen.
- */
-
-#define LSW    (__FLOAT_WORD_ORDER == __BIG_ENDIAN)
-
-#ifdef vax
-
-/* What IEEE single precision floating point looks like on a Vax */
-struct ieee_single {
-       unsigned int    mantissa: 23;
-       unsigned int    exp     : 8;
-       unsigned int    sign    : 1;
-};
-
-/* Vax single precision floating point */
-struct vax_single {
-       unsigned int    mantissa1 : 7;
-       unsigned int    exp       : 8;
-       unsigned int    sign      : 1;
-       unsigned int    mantissa2 : 16;
-};
-
-#define VAX_SNG_BIAS   0x81
-#define IEEE_SNG_BIAS  0x7f
-
-static struct sgl_limits {
-       struct vax_single s;
-       struct ieee_single ieee;
-} sgl_limits[2] = {
-       {{ 0x7f, 0xff, 0x0, 0xffff },   /* Max Vax */
-       { 0x0, 0xff, 0x0 }},            /* Max IEEE */
-       {{ 0x0, 0x0, 0x0, 0x0 },        /* Min Vax */
-       { 0x0, 0x0, 0x0 }}              /* Min IEEE */
-};
-#endif /* vax */
-
-bool_t
-xdr_float(xdrs, fp)
-     XDR *xdrs;
-     float *fp;
-{
-#ifdef vax
-       struct ieee_single is;
-       struct vax_single vs, *vsp;
-       struct sgl_limits *lim;
-       int i;
-#endif
-       switch (xdrs->x_op) {
-
-       case XDR_ENCODE:
-#ifdef vax
-               vs = *((struct vax_single *)fp);
-               for (i = 0, lim = sgl_limits;
-                       i < sizeof(sgl_limits)/sizeof(struct sgl_limits);
-                       i++, lim++) {
-                       if ((vs.mantissa2 == lim->s.mantissa2) &&
-                               (vs.exp == lim->s.exp) &&
-                               (vs.mantissa1 == lim->s.mantissa1)) {
-                               is = lim->ieee;
-                               goto shipit;
-                       }
-               }
-               is.exp = vs.exp - VAX_SNG_BIAS + IEEE_SNG_BIAS;
-               is.mantissa = (vs.mantissa1 << 16) | vs.mantissa2;
-       shipit:
-               is.sign = vs.sign;
-               return (XDR_PUTLONG(xdrs, (long *)&is));
-#else
-               if (sizeof(float) == sizeof(long))
-                       return (XDR_PUTLONG(xdrs, (long *)fp));
-               else if (sizeof(float) == sizeof(int)) {
-                       long tmp = *(int *)fp;
-                       return (XDR_PUTLONG(xdrs, &tmp));
-               }
-               break;
-#endif
-
-       case XDR_DECODE:
-#ifdef vax
-               vsp = (struct vax_single *)fp;
-               if (!XDR_GETLONG(xdrs, (long *)&is))
-                       return (FALSE);
-               for (i = 0, lim = sgl_limits;
-                       i < sizeof(sgl_limits)/sizeof(struct sgl_limits);
-                       i++, lim++) {
-                       if ((is.exp == lim->ieee.exp) &&
-                               (is.mantissa == lim->ieee.mantissa)) {
-                               *vsp = lim->s;
-                               goto doneit;
-                       }
-               }
-               vsp->exp = is.exp - IEEE_SNG_BIAS + VAX_SNG_BIAS;
-               vsp->mantissa2 = is.mantissa;
-               vsp->mantissa1 = (is.mantissa >> 16);
-       doneit:
-               vsp->sign = is.sign;
-               return (TRUE);
-#else
-               if (sizeof(float) == sizeof(long))
-                       return (XDR_GETLONG(xdrs, (long *)fp));
-               else if (sizeof(float) == sizeof(int)) {
-                       long tmp;
-                       if (XDR_GETLONG(xdrs, &tmp)) {
-                               *(int *)fp = tmp;
-                               return (TRUE);
-                       }
-               }
-               break;
-#endif
-
-       case XDR_FREE:
-               return (TRUE);
-       }
-       return (FALSE);
-}
-
-/*
- * This routine works on Suns (Sky / 68000's) and Vaxen.
- */
-
-#ifdef vax
-/* What IEEE double precision floating point looks like on a Vax */
-struct ieee_double {
-       unsigned int    mantissa1 : 20;
-       unsigned int    exp       : 11;
-       unsigned int    sign      : 1;
-       unsigned int    mantissa2 : 32;
-};
-
-/* Vax double precision floating point */
-struct  vax_double {
-       unsigned int    mantissa1 : 7;
-       unsigned int    exp       : 8;
-       unsigned int    sign      : 1;
-       unsigned int    mantissa2 : 16;
-       unsigned int    mantissa3 : 16;
-       unsigned int    mantissa4 : 16;
-};
-
-#define VAX_DBL_BIAS   0x81
-#define IEEE_DBL_BIAS  0x3ff
-#define MASK(nbits)    ((1 << nbits) - 1)
-
-static struct dbl_limits {
-       struct  vax_double d;
-       struct  ieee_double ieee;
-} dbl_limits[2] = {
-       {{ 0x7f, 0xff, 0x0, 0xffff, 0xffff, 0xffff },   /* Max Vax */
-       { 0x0, 0x7ff, 0x0, 0x0 }},                      /* Max IEEE */
-       {{ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},               /* Min Vax */
-       { 0x0, 0x0, 0x0, 0x0 }}                         /* Min IEEE */
-};
-
-#endif /* vax */
-
-
-bool_t
-xdr_double(xdrs, dp)
-     XDR *xdrs;
-     double *dp;
-{
-#ifdef vax
-       struct  ieee_double id;
-       struct  vax_double vd;
-       register struct dbl_limits *lim;
-       int i;
-#endif
-
-       switch (xdrs->x_op) {
-
-       case XDR_ENCODE:
-#ifdef vax
-               vd = *((struct vax_double *)dp);
-               for (i = 0, lim = dbl_limits;
-                       i < sizeof(dbl_limits)/sizeof(struct dbl_limits);
-                       i++, lim++) {
-                       if ((vd.mantissa4 == lim->d.mantissa4) &&
-                               (vd.mantissa3 == lim->d.mantissa3) &&
-                               (vd.mantissa2 == lim->d.mantissa2) &&
-                               (vd.mantissa1 == lim->d.mantissa1) &&
-                               (vd.exp == lim->d.exp)) {
-                               id = lim->ieee;
-                               goto shipit;
-                       }
-               }
-               id.exp = vd.exp - VAX_DBL_BIAS + IEEE_DBL_BIAS;
-               id.mantissa1 = (vd.mantissa1 << 13) | (vd.mantissa2 >> 3);
-               id.mantissa2 = ((vd.mantissa2 & MASK(3)) << 29) |
-                               (vd.mantissa3 << 13) |
-                               ((vd.mantissa4 >> 3) & MASK(13));
-       shipit:
-               id.sign = vd.sign;
-               dp = (double *)&id;
-#endif
-               if (2*sizeof(long) == sizeof(double)) {
-                       long *lp = (long *)dp;
-                       return (XDR_PUTLONG(xdrs, lp+!LSW) &&
-                               XDR_PUTLONG(xdrs, lp+LSW));
-               } else if (2*sizeof(int) == sizeof(double)) {
-                       int *ip = (int *)dp;
-                       long tmp[2];
-                       tmp[0] = ip[!LSW];
-                       tmp[1] = ip[LSW];
-                       return (XDR_PUTLONG(xdrs, tmp) &&
-                               XDR_PUTLONG(xdrs, tmp+1));
-               }
-               break;
-
-       case XDR_DECODE:
-#ifdef vax
-               lp = (long *)&id;
-               if (!XDR_GETLONG(xdrs, lp++) || !XDR_GETLONG(xdrs, lp))
-                       return (FALSE);
-               for (i = 0, lim = dbl_limits;
-                       i < sizeof(dbl_limits)/sizeof(struct dbl_limits);
-                       i++, lim++) {
-                       if ((id.mantissa2 == lim->ieee.mantissa2) &&
-                               (id.mantissa1 == lim->ieee.mantissa1) &&
-                               (id.exp == lim->ieee.exp)) {
-                               vd = lim->d;
-                               goto doneit;
-                       }
-               }
-               vd.exp = id.exp - IEEE_DBL_BIAS + VAX_DBL_BIAS;
-               vd.mantissa1 = (id.mantissa1 >> 13);
-               vd.mantissa2 = ((id.mantissa1 & MASK(13)) << 3) |
-                               (id.mantissa2 >> 29);
-               vd.mantissa3 = (id.mantissa2 >> 13);
-               vd.mantissa4 = (id.mantissa2 << 3);
-       doneit:
-               vd.sign = id.sign;
-               *dp = *((double *)&vd);
-               return (TRUE);
-#else
-               if (2*sizeof(long) == sizeof(double)) {
-                       long *lp = (long *)dp;
-                       return (XDR_GETLONG(xdrs, lp+!LSW) &&
-                               XDR_GETLONG(xdrs, lp+LSW));
-               } else if (2*sizeof(int) == sizeof(double)) {
-                       int *ip = (int *)dp;
-                       long tmp[2];
-                       if (XDR_GETLONG(xdrs, tmp+!LSW) &&
-                           XDR_GETLONG(xdrs, tmp+LSW)) {
-                               ip[0] = tmp[0];
-                               ip[1] = tmp[1];
-                               return (TRUE);
-                       }
-               }
-               break;
-#endif
-
-       case XDR_FREE:
-               return (TRUE);
-       }
-       return (FALSE);
-}
diff --git a/source/unres/src_MD-M/xdrf/xdr_stdio.c b/source/unres/src_MD-M/xdrf/xdr_stdio.c
deleted file mode 100644 (file)
index 12b1709..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-
-/*
- * xdr_stdio.c, XDR implementation on standard i/o file.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- * This set of routines implements a XDR on a stdio stream.
- * XDR_ENCODE serializes onto the stream, XDR_DECODE de-serializes
- * from the stream.
- */
-
-#include "types.h"
-#include <stdio.h>
-#include "xdr.h"
-
-#ifdef USE_IN_LIBIO
-# include <libio/iolibio.h>
-# define fflush(s) INTUSE(_IO_fflush) (s)
-# define fread(p, m, n, s) INTUSE(_IO_fread) (p, m, n, s)
-# define ftell(s) INTUSE(_IO_ftell) (s)
-# define fwrite(p, m, n, s) INTUSE(_IO_fwrite) (p, m, n, s)
-#endif
-
-static bool_t xdrstdio_getlong (XDR *, long *);
-static bool_t xdrstdio_putlong (XDR *, const long *);
-static bool_t xdrstdio_getbytes (XDR *, caddr_t, u_int);
-static bool_t xdrstdio_putbytes (XDR *, const char *, u_int);
-static u_int xdrstdio_getpos (const XDR *);
-static bool_t xdrstdio_setpos (XDR *, u_int);
-static int32_t *xdrstdio_inline (XDR *, u_int);
-static void xdrstdio_destroy (XDR *);
-static bool_t xdrstdio_getint32 (XDR *, int32_t *);
-static bool_t xdrstdio_putint32 (XDR *, const int32_t *);
-
-/*
- * Ops vector for stdio type XDR
- */
-static const struct xdr_ops xdrstdio_ops =
-{
-  xdrstdio_getlong,            /* deserialize a long int */
-  xdrstdio_putlong,            /* serialize a long int */
-  xdrstdio_getbytes,           /* deserialize counted bytes */
-  xdrstdio_putbytes,           /* serialize counted bytes */
-  xdrstdio_getpos,             /* get offset in the stream */
-  xdrstdio_setpos,             /* set offset in the stream */
-  xdrstdio_inline,             /* prime stream for inline macros */
-  xdrstdio_destroy,            /* destroy stream */
-  xdrstdio_getint32,           /* deserialize a int */
-  xdrstdio_putint32            /* serialize a int */
-};
-
-/*
- * Initialize a stdio xdr stream.
- * Sets the xdr stream handle xdrs for use on the stream file.
- * Operation flag is set to op.
- */
-void
-xdrstdio_create (XDR *xdrs, FILE *file, enum xdr_op op)
-{
-  xdrs->x_op = op;
-  /* We have to add the const since the `struct xdr_ops' in `struct XDR'
-     is not `const'.  */
-  xdrs->x_ops = (struct xdr_ops *) &xdrstdio_ops;
-  xdrs->x_private = (caddr_t) file;
-  xdrs->x_handy = 0;
-  xdrs->x_base = 0;
-}
-
-/*
- * Destroy a stdio xdr stream.
- * Cleans up the xdr stream handle xdrs previously set up by xdrstdio_create.
- */
-static void
-xdrstdio_destroy (XDR *xdrs)
-{
-  (void) fflush ((FILE *) xdrs->x_private);
-  /* xx should we close the file ?? */
-};
-
-static bool_t
-xdrstdio_getlong (XDR *xdrs, long *lp)
-{
-  u_int32_t mycopy;
-
-  if (fread ((caddr_t) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1)
-    return FALSE;
-  *lp = (long) ntohl (mycopy);
-  return TRUE;
-}
-
-static bool_t
-xdrstdio_putlong (XDR *xdrs, const long *lp)
-{
-  int32_t mycopy = htonl ((u_int32_t) *lp);
-
-  if (fwrite ((caddr_t) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1)
-    return FALSE;
-  return TRUE;
-}
-
-static bool_t
-xdrstdio_getbytes (XDR *xdrs, const caddr_t addr, u_int len)
-{
-  if ((len != 0) && (fread (addr, (int) len, 1,
-                           (FILE *) xdrs->x_private) != 1))
-    return FALSE;
-  return TRUE;
-}
-
-static bool_t
-xdrstdio_putbytes (XDR *xdrs, const char *addr, u_int len)
-{
-  if ((len != 0) && (fwrite (addr, (int) len, 1,
-                            (FILE *) xdrs->x_private) != 1))
-    return FALSE;
-  return TRUE;
-}
-
-static u_int
-xdrstdio_getpos (const XDR *xdrs)
-{
-  return (u_int) ftell ((FILE *) xdrs->x_private);
-}
-
-static bool_t
-xdrstdio_setpos (XDR *xdrs, u_int pos)
-{
-  return fseek ((FILE *) xdrs->x_private, (long) pos, 0) < 0 ? FALSE : TRUE;
-}
-
-static int32_t *
-xdrstdio_inline (XDR *xdrs, u_int len)
-{
-  /*
-   * Must do some work to implement this: must insure
-   * enough data in the underlying stdio buffer,
-   * that the buffer is aligned so that we can indirect through a
-   * long *, and stuff this pointer in xdrs->x_buf.  Doing
-   * a fread or fwrite to a scratch buffer would defeat
-   * most of the gains to be had here and require storage
-   * management on this buffer, so we don't do this.
-   */
-  return NULL;
-}
-
-static bool_t
-xdrstdio_getint32 (XDR *xdrs, int32_t *ip)
-{
-  int32_t mycopy;
-
-  if (fread ((caddr_t) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1)
-    return FALSE;
-  *ip = ntohl (mycopy);
-  return TRUE;
-}
-
-static bool_t
-xdrstdio_putint32 (XDR *xdrs, const int32_t *ip)
-{
-  int32_t mycopy = htonl (*ip);
-
-  ip = &mycopy;
-  if (fwrite ((caddr_t) ip, 4, 1, (FILE *) xdrs->x_private) != 1)
-    return FALSE;
-  return TRUE;
-}
-
-/* libc_hidden_def (xdrstdio_create) */
diff --git a/source/unres/src_MD-M/xdrf/xdrf.h b/source/unres/src_MD-M/xdrf/xdrf.h
deleted file mode 100644 (file)
index dedf5a2..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-/*_________________________________________________________________
- |
- | xdrf.h - include file for C routines that want to use the 
- |         functions below.
-*/
-
-int xdropen(XDR *xdrs, const char *filename, const char *type);
-int xdrclose(XDR *xdrs) ;
-int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) ;
-
diff --git a/source/unres/src_MD-M/xdrf2pdb/Makefile b/source/unres/src_MD-M/xdrf2pdb/Makefile
deleted file mode 100644 (file)
index bc2f976..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-# This make file is part of the xdrf package.
-#
-# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-#
-# 2006 modified by Cezary Czaplewski
-
-# Set C compiler and flags for ARCH
-BINDIR=../../bin
-
-CC      = cc
-CFLAGS         = -O 
-
-#FC=ifort
-FC=f77
-#OPT =  -O3 -ip -w -pc64 -tpp6
-OPT= -O3 -w
-FFLAGS = -c ${OPT} -I../ 
-
-#LIBS = -static-libcxa ../xdrf/libxdrf.a
-LIBS =  ../xdrf/libxdrf.a
-
-CPPFLAGS = -DLINUX -DUNRES -DMP -DMPI -DSPLITELE -DPROCOR 
-
-.SUFFIXES: .F
-.F.o:
-       ${FC} ${FFLAGS} ${CPPFLAGS} $*.F
-
-all:xdrf2pdb xdrf2x
-
-xdrf2pdb: xdrf2pdb.o geomout.o misc.o rescode.o nazwy.o 
-       ${FC} -o ${BINDIR}/xdrf2pdb xdrf2pdb.o geomout.o rescode.o misc.o nazwy.o ${LIBS}
-
-xdrf2x: xdrf2x.o 
-       ${FC} -o ${BINDIR}/xdrf2x xdrf2x.o ${LIBS}
-
-clean:
-       rm -f *.o
-
diff --git a/source/unres/src_MD-M/xdrf2pdb/Makefile_intrepid b/source/unres/src_MD-M/xdrf2pdb/Makefile_intrepid
deleted file mode 100644 (file)
index 9092007..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-# This make file is part of the xdrf package.
-#
-# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-#
-# 2006 modified by Cezary Czaplewski
-
-# Set C compiler and flags for ARCH
-BINDIR=../../bin
-
-CC      = cc
-CFLAGS         = -O 
-
-FC=ifort
-#FC=f77
-OPT =  -O3 -ip -w -pc64 -tpp6
-#OPT= -O3 -w
-FFLAGS = -c ${OPT} -I../ 
-
-LIBS = -static-libcxa ../xdrf/libxdrf.a
-#LIBS =  xdrf_local/libxdrf.a
-
-CPPFLAGS = -DLINUX -DUNRES -DMP -DMPI -DSPLITELE -DPROCOR 
-
-.SUFFIXES: .F
-.F.o:
-       ${FC} ${FFLAGS} ${CPPFLAGS} $*.F
-
-all:xdrf2pdb xdrf2x
-
-xdrf2pdb: xdrf2pdb.o geomout.o misc.o rescode.o nazwy.o 
-       ${FC} -o ${BINDIR}/xdrf2pdb xdrf2pdb.o geomout.o rescode.o misc.o nazwy.o ${LIBS}
-
-xdrf2x: xdrf2x.o 
-       ${FC} -o ${BINDIR}/xdrf2x xdrf2x.o ${LIBS}
-
-clean:
-       rm -f *.o
-
diff --git a/source/unres/src_MD-M/xdrf2pdb/Makefile_jump b/source/unres/src_MD-M/xdrf2pdb/Makefile_jump
deleted file mode 100644 (file)
index 3133622..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-# This make file is part of the xdrf package.
-#
-# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-#
-# 2006 modified by Cezary Czaplewski
-
-# Set C compiler and flags for ARCH
-BINDIR=../../bin
-
-CC      = cc
-CFLAGS         = -O 
-
-#FC=ifort
-FC=f77
-#OPT =  -O3 -ip -w -pc64 -tpp6
-OPT= -O3 -w
-FFLAGS = -c ${OPT} -I../ 
-
-#LIBS = -static-libcxa ../xdrf/libxdrf.a
-LIBS =  xdrf_local/libxdrf.a
-
-CPPFLAGS = -DLINUX -DUNRES -DMP -DMPI -DSPLITELE -DPROCOR 
-
-.SUFFIXES: .F
-.F.o:
-       ${FC} ${FFLAGS} ${CPPFLAGS} $*.F
-
-all:xdrf2pdb xdrf2x
-
-xdrf2pdb: xdrf2pdb.o geomout.o misc.o rescode.o nazwy.o 
-       ${FC} -o ${BINDIR}/xdrf2pdb xdrf2pdb.o geomout.o rescode.o misc.o nazwy.o ${LIBS}
-
-xdrf2x: xdrf2x.o 
-       ${FC} -o ${BINDIR}/xdrf2x xdrf2x.o ${LIBS}
-
-clean:
-       rm -f *.o
-
diff --git a/source/unres/src_MD-M/xdrf2pdb/Makefile_linux b/source/unres/src_MD-M/xdrf2pdb/Makefile_linux
deleted file mode 100644 (file)
index bc2f976..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-# This make file is part of the xdrf package.
-#
-# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-#
-# 2006 modified by Cezary Czaplewski
-
-# Set C compiler and flags for ARCH
-BINDIR=../../bin
-
-CC      = cc
-CFLAGS         = -O 
-
-#FC=ifort
-FC=f77
-#OPT =  -O3 -ip -w -pc64 -tpp6
-OPT= -O3 -w
-FFLAGS = -c ${OPT} -I../ 
-
-#LIBS = -static-libcxa ../xdrf/libxdrf.a
-LIBS =  ../xdrf/libxdrf.a
-
-CPPFLAGS = -DLINUX -DUNRES -DMP -DMPI -DSPLITELE -DPROCOR 
-
-.SUFFIXES: .F
-.F.o:
-       ${FC} ${FFLAGS} ${CPPFLAGS} $*.F
-
-all:xdrf2pdb xdrf2x
-
-xdrf2pdb: xdrf2pdb.o geomout.o misc.o rescode.o nazwy.o 
-       ${FC} -o ${BINDIR}/xdrf2pdb xdrf2pdb.o geomout.o rescode.o misc.o nazwy.o ${LIBS}
-
-xdrf2x: xdrf2x.o 
-       ${FC} -o ${BINDIR}/xdrf2x xdrf2x.o ${LIBS}
-
-clean:
-       rm -f *.o
-
diff --git a/source/unres/src_MD-M/xdrf2pdb/Makefile_linux~ b/source/unres/src_MD-M/xdrf2pdb/Makefile_linux~
deleted file mode 100644 (file)
index 3133622..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-# This make file is part of the xdrf package.
-#
-# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-#
-# 2006 modified by Cezary Czaplewski
-
-# Set C compiler and flags for ARCH
-BINDIR=../../bin
-
-CC      = cc
-CFLAGS         = -O 
-
-#FC=ifort
-FC=f77
-#OPT =  -O3 -ip -w -pc64 -tpp6
-OPT= -O3 -w
-FFLAGS = -c ${OPT} -I../ 
-
-#LIBS = -static-libcxa ../xdrf/libxdrf.a
-LIBS =  xdrf_local/libxdrf.a
-
-CPPFLAGS = -DLINUX -DUNRES -DMP -DMPI -DSPLITELE -DPROCOR 
-
-.SUFFIXES: .F
-.F.o:
-       ${FC} ${FFLAGS} ${CPPFLAGS} $*.F
-
-all:xdrf2pdb xdrf2x
-
-xdrf2pdb: xdrf2pdb.o geomout.o misc.o rescode.o nazwy.o 
-       ${FC} -o ${BINDIR}/xdrf2pdb xdrf2pdb.o geomout.o rescode.o misc.o nazwy.o ${LIBS}
-
-xdrf2x: xdrf2x.o 
-       ${FC} -o ${BINDIR}/xdrf2x xdrf2x.o ${LIBS}
-
-clean:
-       rm -f *.o
-
diff --git a/source/unres/src_MD-M/xdrf2pdb/geomout.F b/source/unres/src_MD-M/xdrf2pdb/geomout.F
deleted file mode 100644 (file)
index 3f7d394..0000000
+++ /dev/null
@@ -1,322 +0,0 @@
-      subroutine pdbout(etot,tytul,iunit)
-      implicit real*8 (a-h,o-z)
-      include 'DIMENSIONS'
-      include 'COMMON.CHAIN'
-      include 'COMMON.INTERACT'
-      include 'COMMON.NAMES'
-      include 'COMMON.IOUNITS'
-      include 'COMMON.HEADER'
-      include 'COMMON.SBRIDGE'
-      include 'COMMON.DISTFIT'
-      include 'COMMON.MD'
-      character*50 tytul
-      dimension ica(maxres)
-      write (iunit,'(3a,1pe15.5)') 'REMARK ',tytul,' ENERGY ',etot
-cmodel      write (iunit,'(a5,i6)') 'MODEL',1
-      if (nhfrag.gt.0) then
-       do j=1,nhfrag
-        iti=itype(hfrag(1,j))
-        itj=itype(hfrag(2,j))
-        if (j.lt.10) then
-           write (iunit,'(a5,i5,1x,a1,i1,2x,a3,i7,2x,a3,i7,i3,t76,i5)') 
-     &           'HELIX',j,'H',j,
-     &           restyp(iti),hfrag(1,j)-1,
-     &           restyp(itj),hfrag(2,j)-1,1,hfrag(2,j)-hfrag(1,j)
-        else
-             write (iunit,'(a5,i5,1x,a1,i2,1x,a3,i7,2x,a3,i7,i3)') 
-     &           'HELIX',j,'H',j,
-     &           restyp(iti),hfrag(1,j)-1,
-     &           restyp(itj),hfrag(2,j)-1,1,hfrag(2,j)-hfrag(1,j)
-        endif
-       enddo
-      endif
-
-      if (nbfrag.gt.0) then
-
-       do j=1,nbfrag
-
-        iti=itype(bfrag(1,j))
-        itj=itype(bfrag(2,j)-1)
-
-        write (iunit,'(a5,i5,1x,a1,i1,i3,1x,a3,i6,2x,a3,i6,i3)') 
-     &           'SHEET',1,'B',j,2,
-     &           restyp(iti),bfrag(1,j)-1,
-     &           restyp(itj),bfrag(2,j)-2,0
-
-        if (bfrag(3,j).gt.bfrag(4,j)) then
-
-         itk=itype(bfrag(3,j))
-         itl=itype(bfrag(4,j)+1)
-
-         write (iunit,'(a5,i5,1x,a1,i1,i3,1x,a3,i6,2x,a3,i6,i3,
-     &              2x,a1,2x,a3,i6,3x,a1,2x,a3,i6)') 
-     &           'SHEET',2,'B',j,2,
-     &           restyp(itl),bfrag(4,j),
-     &           restyp(itk),bfrag(3,j)-1,-1,
-     &           "N",restyp(itk),bfrag(3,j)-1,
-     &           "O",restyp(iti),bfrag(1,j)-1
-
-        else
-
-         itk=itype(bfrag(3,j))
-         itl=itype(bfrag(4,j)-1)
-
-
-        write (iunit,'(a5,i5,1x,a1,i1,i3,1x,a3,i6,2x,a3,i6,i3,
-     &              2x,a1,2x,a3,i6,3x,a1,2x,a3,i6)') 
-     &           'SHEET',2,'B',j,2,
-     &           restyp(itk),bfrag(3,j)-1,
-     &           restyp(itl),bfrag(4,j)-2,1,
-     &           "N",restyp(itk),bfrag(3,j)-1,
-     &           "O",restyp(iti),bfrag(1,j)-1
-
-
-
-        endif
-         
-       enddo
-      endif 
-
-      if (nss.gt.0) then
-        do i=1,nss
-          write(iunit,'(a6,i4,1x,a3,i7,4x,a3,i7)') 
-     &         'SSBOND',i,'CYS',ihpb(i)-1-nres,
-     &                    'CYS',jhpb(i)-1-nres
-        enddo
-      endif
-      
-      iatom=0
-      do i=nnt,nct
-        ires=i-nnt+1
-        iatom=iatom+1
-        ica(i)=iatom
-        iti=itype(i)
-        write (iunit,10) iatom,restyp(iti),ires,(c(j,i),j=1,3),vtot(i)
-        if (iti.ne.10) then
-          iatom=iatom+1
-          write (iunit,20) iatom,restyp(iti),ires,(c(j,nres+i),j=1,3),
-     &      vtot(i+nres)
-        endif
-      enddo
-      write (iunit,'(a)') 'TER'
-      do i=nnt,nct-1
-        if (itype(i).eq.10) then
-          write (iunit,30) ica(i),ica(i+1)
-        else
-          write (iunit,30) ica(i),ica(i+1),ica(i)+1
-        endif
-      enddo
-      if (itype(nct).ne.10) then
-        write (iunit,30) ica(nct),ica(nct)+1
-      endif
-      do i=1,nss
-        write (iunit,30) ica(ihpb(i)-nres)+1,ica(jhpb(i)-nres)+1
-      enddo
-      write (iunit,'(a6)') 'ENDMDL'     
-  10  FORMAT ('ATOM',I7,'  CA  ',A3,I6,4X,3F8.3,f15.3)
-  20  FORMAT ('ATOM',I7,'  CB  ',A3,I6,4X,3F8.3,f15.3)
-  30  FORMAT ('CONECT',8I5)
-      return
-      end
-c------------------------------------------------------------------------------
-      subroutine MOL2out(etot,tytul)
-C Prints the Cartesian coordinates of the alpha-carbons in the Tripos mol2 
-C format.
-      implicit real*8 (a-h,o-z)
-      include 'DIMENSIONS'
-      include 'COMMON.CHAIN'
-      include 'COMMON.INTERACT'
-      include 'COMMON.NAMES'
-      include 'COMMON.IOUNITS'
-      include 'COMMON.HEADER'
-      include 'COMMON.SBRIDGE'
-      character*32 tytul,fd
-      character*3 liczba
-      character*6 res_num,pom,ucase
-#ifdef AIX
-      call fdate_(fd)
-#elif (defined CRAY)
-      call date(fd)
-#else
-      call fdate(fd)
-#endif
-      write (imol2,'(a)') '#'
-      write (imol2,'(a)') 
-     & '#         Creating user name:           unres'
-      write (imol2,'(2a)') '#         Creation time:                ',
-     & fd
-      write (imol2,'(/a)') '\@<TRIPOS>MOLECULE'
-      write (imol2,'(a)') tytul
-      write (imol2,'(5i5)') nct-nnt+1,nct-nnt+nss+1,nct-nnt+nss+1,0,0
-      write (imol2,'(a)') 'SMALL'
-      write (imol2,'(a)') 'USER_CHARGES'
-      write (imol2,'(a)') '\@<TRIPOS>ATOM' 
-      do i=nnt,nct
-        write (liczba,'(i3)') i
-        pom=ucase(restyp(itype(i)))
-        res_num = pom(:3)//liczba(2:)
-        write (imol2,10) i,(c(j,i),j=1,3),i,res_num,0.0
-      enddo
-      write (imol2,'(a)') '\@<TRIPOS>BOND'
-      do i=nnt,nct-1
-        write (imol2,'(i5,2i6,i2)') i-nnt+1,i-nnt+1,i-nnt+2,1
-      enddo
-      do i=1,nss
-        write (imol2,'(i5,2i6,i2)') nct-nnt+i,ihpb(i),jhpb(i),1
-      enddo
-      write (imol2,'(a)') '\@<TRIPOS>SUBSTRUCTURE'
-      do i=nnt,nct
-        write (liczba,'(i3)') i
-        pom = ucase(restyp(itype(i)))
-        res_num = pom(:3)//liczba(2:)
-        write (imol2,30) i-nnt+1,res_num,i-nnt+1,0
-      enddo
-  10  FORMAT (I7,' CA      ',3F10.4,' C.3',I8,1X,A,F11.4,' ****')
-  30  FORMAT (I7,1x,A,I14,' RESIDUE',I13,' ****  ****')
-      return
-      end
-c------------------------------------------------------------------------
-      subroutine intout
-      implicit real*8 (a-h,o-z)
-      include 'DIMENSIONS'
-      include 'COMMON.IOUNITS'
-      include 'COMMON.CHAIN'
-      include 'COMMON.VAR'
-      include 'COMMON.LOCAL'
-      include 'COMMON.INTERACT'
-      include 'COMMON.NAMES'
-      include 'COMMON.GEO'
-      write (iout,'(/a)') 'Geometry of the virtual chain.'
-      write (iout,'(7a)') '  Res  ','         d','     Theta',
-     & '       Phi','       Dsc','     Alpha','      Omega'
-      do i=1,nres
-       iti=itype(i)
-        write (iout,'(a3,i4,6f10.3)') restyp(iti),i,vbld(i),
-     &     rad2deg*theta(i),rad2deg*phi(i),vbld(nres+i),rad2deg*alph(i),
-     &     rad2deg*omeg(i)
-      enddo
-      return
-      end
-c---------------------------------------------------------------------------
-      subroutine briefout(it,ener)
-      implicit real*8 (a-h,o-z)
-      include 'DIMENSIONS'
-      include 'COMMON.IOUNITS'
-      include 'COMMON.CHAIN'
-      include 'COMMON.VAR'
-      include 'COMMON.LOCAL'
-      include 'COMMON.INTERACT'
-      include 'COMMON.NAMES'
-      include 'COMMON.GEO'
-      include 'COMMON.SBRIDGE'
-c     print '(a,i5)',intname,igeom
-#if defined(AIX) || defined(PGI)
-      open (igeom,file=intname,position='append')
-#else
-      open (igeom,file=intname,access='append')
-#endif
-      IF (NSS.LE.9) THEN
-        WRITE (igeom,180) IT,ENER,NSS,(IHPB(I),JHPB(I),I=1,NSS)
-      ELSE
-        WRITE (igeom,180) IT,ENER,NSS,(IHPB(I),JHPB(I),I=1,9)
-        WRITE (igeom,190) (IHPB(I),JHPB(I),I=10,NSS)
-      ENDIF
-c     IF (nvar.gt.nphi) WRITE (igeom,200) (RAD2DEG*THETA(I),I=3,NRES)
-      WRITE (igeom,200) (RAD2DEG*THETA(I),I=3,NRES)
-      WRITE (igeom,200) (RAD2DEG*PHI(I),I=4,NRES)
-c     if (nvar.gt.nphi+ntheta) then
-        write (igeom,200) (rad2deg*alph(i),i=2,nres-1)
-        write (igeom,200) (rad2deg*omeg(i),i=2,nres-1)
-c     endif
-      close(igeom)
-  180 format (I5,F12.3,I2,9(1X,2I3))
-  190 format (3X,11(1X,2I3))
-  200 format (8F10.4)
-      return
-      end
-#ifdef WINIFL
-      subroutine fdate(fd)
-      character*32 fd
-      write(fd,'(32x)')
-      return
-      end
-#endif
-c----------------------------------------------------------------
-      subroutine cartoutx(time)
-      implicit real*8 (a-h,o-z)
-      include 'DIMENSIONS'
-      include 'COMMON.CHAIN'
-      include 'COMMON.INTERACT'
-      include 'COMMON.NAMES'
-      include 'COMMON.IOUNITS'
-      include 'COMMON.HEADER'
-      include 'COMMON.SBRIDGE'
-      include 'COMMON.DISTFIT'
-      include 'COMMON.MD'
-      double precision time
-#if defined(AIX) || defined(PGI)
-      open(icart,file=cartname,position="append")
-#else
-      open(icart,file=cartname,access="append")
-#endif
-      write (icart,'(e15.8,2e15.5,f12.5,$)') time,potE,uconst,t_bath
-      write (icart,'(i4,$)')
-     &   nss,(ihpb(j),jhpb(j),j=1,nss)
-       write (icart,'(i4,20f7.4)') nfrag+npair,
-     & (qfrag(i),i=1,nfrag),(qpair(i),i=1,npair)
-      write (icart,'(8f10.5)')
-     & ((c(k,j),k=1,3),j=1,nres),
-     & ((c(k,j+nres),k=1,3),j=nnt,nct)
-      close(icart)
-      return
-      end
-c-----------------------------------------------------------------
-      subroutine cartout(time)
-      implicit real*8 (a-h,o-z)
-      include 'DIMENSIONS'
-      include 'COMMON.CHAIN'
-      include 'COMMON.INTERACT'
-      include 'COMMON.NAMES'
-      include 'COMMON.IOUNITS'
-      include 'COMMON.HEADER'
-      include 'COMMON.SBRIDGE'
-      include 'COMMON.DISTFIT'
-      include 'COMMON.MD'
-      double precision time
-      integer iret,itmp
-      real xcoord(3,maxres2+2),prec
-
-      call xdrfopen_(ixdrf,cartname, "w", iret)
-      call xdrffloat_(ixdrf, real(time), iret)
-      call xdrffloat_(ixdrf, real(potE), iret)
-      call xdrffloat_(ixdrf, real(uconst), iret)
-      call xdrffloat_(ixdrf, real(t_bath), iret)
-      call xdrfint_(ixdrf, nss, iret) 
-      do j=1,nss
-        call xdrfint_(ixdrf, ihpb(j), iret)
-        call xdrfint_(ixdrf, jhpb(j), iret)
-      enddo
-      call xdrfint_(ixdrf, nfrag+npair, iret)
-      do i=1,nfrag
-        call xdrffloat_(ixdrf, real(qfrag(i)), iret)
-      enddo
-      do i=1,npair
-        call xdrffloat_(ixdrf, real(qpair(i)), iret)
-      enddo
-      prec=10000.0
-      do i=1,nres
-       do j=1,3
-        xcoord(j,i)=c(j,i)
-       enddo
-      enddo
-      do i=nnt,nct
-       do j=1,3
-        xcoord(j,nres+i-nnt+1)=c(j,i+nres)
-       enddo
-      enddo
-
-      itmp=nres+nct-nnt+1
-      call xdrf3dfcoord_(ixdrf, xcoord, itmp, prec, iret)
-      call xdrfclose_(ixdrf, iret)
-      return
-      end
diff --git a/source/unres/src_MD-M/xdrf2pdb/geomout.o b/source/unres/src_MD-M/xdrf2pdb/geomout.o
deleted file mode 100644 (file)
index 36265ed..0000000
Binary files a/source/unres/src_MD-M/xdrf2pdb/geomout.o and /dev/null differ
diff --git a/source/unres/src_MD-M/xdrf2pdb/misc.f b/source/unres/src_MD-M/xdrf2pdb/misc.f
deleted file mode 100644 (file)
index e189839..0000000
+++ /dev/null
@@ -1,203 +0,0 @@
-C $Date: 1994/10/12 17:24:21 $
-C $Revision: 2.5 $
-C
-C
-C
-      logical function find_arg(ipos,line,errflag)
-      parameter (maxlen=80)
-      character*80 line
-      character*1 empty /' '/,equal /'='/
-      logical errflag
-* This function returns .TRUE., if an argument follows keyword keywd; if so
-* IPOS will point to the first non-blank character of the argument. Returns
-* .FALSE., if no argument follows the keyword; in this case IPOS points
-* to the first non-blank character of the next keyword.
-      do while (line(ipos:ipos) .eq. empty .and. ipos.le.maxlen)
-        ipos=ipos+1
-      enddo 
-      errflag=.false.
-      if (line(ipos:ipos).eq.equal) then
-         find_arg=.true.
-         ipos=ipos+1
-         do while (line(ipos:ipos) .eq. empty .and. ipos.le.maxlen)
-           ipos=ipos+1
-         enddo
-         if (ipos.gt.maxlen) errflag=.true.
-      else
-         find_arg=.false.
-      endif
-      return
-      end
-      logical function find_group(iunit,jout,key1)
-      character*(*) key1
-      character*80 karta,ucase
-      integer ilen
-      external ilen
-      logical lcom
-      rewind (iunit)
-      karta=' '
-      ll=ilen(key1)
-      do while (index(ucase(karta),key1(1:ll)).eq.0.or.lcom(1,karta)) 
-        read (iunit,'(a)',end=10) karta
-      enddo
-      write (jout,'(2a)') '> ',karta(1:78)
-      find_group=.true.
-      return
-   10 find_group=.false.
-      return
-      end
-      logical function iblnk(charc)
-      character*1 charc
-      integer n
-      n = ichar(charc)
-      iblnk = (n.eq.9) .or. (n.eq.10) .or. (charc.eq. ' ')
-      return
-      end
-      integer function ilen(string)
-      character*(*) string
-      logical iblnk
-      ilen = len(string)
-1     if ( ilen .gt. 0 ) then
-         if ( iblnk( string(ilen:ilen) ) ) then
-            ilen = ilen - 1
-            goto 1
-         endif
-      endif
-      return
-      end
-      integer function in_keywd_set(nkey,ikey,narg,keywd,keywdset)
-      character*16 keywd,keywdset(1:nkey,0:nkey)
-      character*16 ucase
-      do i=1,narg
-        if (ucase(keywd).eq.keywdset(i,ikey)) then
-* Match found
-          in_keywd_set=i
-          return
-        endif
-      enddo
-* No match to the allowed set of keywords if this point is reached. 
-      in_keywd_set=0
-      return
-      end
-      character*(*) function lcase(string)
-      integer i, k, idiff
-      character*(*) string
-      character*1 c
-      character*40 chtmp
-c
-      i = len(lcase)
-      k = len(string)
-      if (i .lt. k) then
-         k = i
-         if (string(k+1:) .ne. ' ') then
-            chtmp = string
-         endif
-      endif
-      idiff = ichar('a') - ichar('A')
-      lcase = string
-      do 99 i = 1, k
-         c = string(i:i)
-         if (lge(c,'A') .and. lle(c,'Z')) then
-            lcase(i:i) = char(ichar(c) + idiff)
-         endif
-   99 continue
-      return
-      end
-      logical function lcom(ipos,karta)
-      character*80 karta
-      character koment(2) /'!','#'/
-      lcom=.false.
-      do i=1,2
-        if (karta(ipos:ipos).eq.koment(i)) lcom=.true.
-      enddo 
-      return
-      end
-      logical function lower_case(ch)
-      character*(*) ch
-      lower_case=(ch.ge.'a' .and. ch.le.'z')
-      return
-      end
-      subroutine mykey(line,keywd,ipos,blankline,errflag) 
-* This subroutine seeks a non-empty substring keywd in the string LINE.
-* The substring begins with the first character different from blank and
-* "=" encountered right to the pointer IPOS (inclusively) and terminates
-* at the character left to the first blank or "=". When the subroutine is 
-* exited, the pointer IPOS is moved to the position of the terminator in LINE. 
-* The logical variable BLANKLINE is set at .TRUE., if LINE(IPOS:) contains
-* only separators or the maximum length of the data line (80) has been reached.
-* The logical variable ERRFLAG is set at .TRUE. if the string 
-* consists only from a "=".
-      parameter (maxlen=80)
-      character*1 empty /' '/,equal /'='/,comma /','/
-      character*(*) keywd
-      character*80 line
-      logical blankline,errflag,lcom
-      errflag=.false.
-      do while (line(ipos:ipos).eq.empty .and. (ipos.le.maxlen))
-        ipos=ipos+1
-      enddo
-      if (ipos.gt.maxlen .or. lcom(ipos,line) ) then
-* At this point the rest of the input line turned out to contain only blanks
-* or to be commented out.
-        blankline=.true.
-        return
-      endif
-      blankline=.false.
-      istart=ipos
-* Checks whether the current char is a separator.
-      do while (line(ipos:ipos).ne.empty .and. line(ipos:ipos).ne.equal
-     & .and. line(ipos:ipos).ne.comma .and. ipos.le.maxlen) 
-        ipos=ipos+1
-      enddo
-      iend=ipos-1 
-* Error flag set to .true., if the length of the keyword was found less than 1.
-      if (iend.lt.istart) then
-        errflag=.true.
-        return
-      endif
-      keywd=line(istart:iend)
-      return
-      end      
-      subroutine numstr(inum,numm)
-      character*10 huj /'0123456789'/
-      character*(*) numm
-      inumm=inum
-      inum1=inumm/10
-      inum2=inumm-10*inum1
-      inumm=inum1
-      numm(3:3)=huj(inum2+1:inum2+1)
-      inum1=inumm/10
-      inum2=inumm-10*inum1
-      inumm=inum1
-      numm(2:2)=huj(inum2+1:inum2+1)
-      inum1=inumm/10
-      inum2=inumm-10*inum1 
-      inumm=inum1
-      numm(1:1)=huj(inum2+1:inum2+1)
-      return
-      end       
-      character*(*) function ucase(string)
-      integer i, k, idiff
-      character*(*) string
-      character*1 c
-      character*40 chtmp
-c
-      i = len(ucase)
-      k = len(string)
-      if (i .lt. k) then
-         k = i
-         if (string(k+1:) .ne. ' ') then
-            chtmp = string
-         endif
-      endif
-      idiff = ichar('a') - ichar('A')
-      ucase = string
-      do 99 i = 1, k
-         c = string(i:i)
-         if (lge(c,'a') .and. lle(c,'z')) then
-            ucase(i:i) = char(ichar(c) - idiff)
-         endif
-   99 continue
-      return
-      end
diff --git a/source/unres/src_MD-M/xdrf2pdb/misc.o b/source/unres/src_MD-M/xdrf2pdb/misc.o
deleted file mode 100644 (file)
index 1e346c0..0000000
Binary files a/source/unres/src_MD-M/xdrf2pdb/misc.o and /dev/null differ
diff --git a/source/unres/src_MD-M/xdrf2pdb/nazwy.f b/source/unres/src_MD-M/xdrf2pdb/nazwy.f
deleted file mode 100644 (file)
index f21bb96..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-      block data nazwy
-      implicit real*8 (a-h,o-z)
-      include 'DIMENSIONS'
-      include 'COMMON.NAMES'
-      include 'COMMON.FFIELD'
-      data restyp /
-     &'CYS','MET','PHE','ILE','LEU','VAL','TRP','TYR','ALA','GLY','THR',
-     &'SER','GLN','ASN','GLU','ASP','HIS','ARG','LYS','PRO','D'/
-      data onelet /
-     &'C','M','F','I','L','V','W','Y','A','G','T',
-     &'S','Q','N','E','D','H','R','K','P','X'/
-      data potname /'LJ','LJK','BP','GB','GBV'/
-      data ename /
-     &   "EVDW SC-SC","EVDW2 SC-p","EES p-p","ECORR4 ","ECORR5 ",
-     &   "ECORR6 ","EELLO ","ETURN3 ","ETURN4 ","ETURN6 ",
-     &   "EBE bend","ESC SCloc","ETORS ","ETORSD ","EHPB ","EVDWPP ",
-     &   "ESTR ","EVDW2_14 ","UCONST ", 2*""/
-      data wname /
-     &   "WSC","WSCP","WELEC","WCORR","WCORR5","WCORR6","WEL_LOC",
-     &   "WTURN3","WTURN4","WTURN6","WANG","WSCLOC","WTOR","WTORD",
-     &   "WSTRAIN","WVDWPP","WBOND","SCAL14",2*""/
-      data nprint_ene /20/
-      data print_order/1,2,3,11,12,13,14,4,5,6,7,8,9,10,18,15,17,16,20,
-     & 2*0/
-      end 
-
diff --git a/source/unres/src_MD-M/xdrf2pdb/nazwy.o b/source/unres/src_MD-M/xdrf2pdb/nazwy.o
deleted file mode 100644 (file)
index 2715e0b..0000000
Binary files a/source/unres/src_MD-M/xdrf2pdb/nazwy.o and /dev/null differ
diff --git a/source/unres/src_MD-M/xdrf2pdb/rescode.f b/source/unres/src_MD-M/xdrf2pdb/rescode.f
deleted file mode 100644 (file)
index 1fff9ec..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-      integer function rescode(iseq,nam,ione)
-      implicit real*8 (a-h,o-z)
-      include 'DIMENSIONS'
-      include 'COMMON.NAMES'
-      include 'COMMON.IOUNITS'
-      character*3 nam,ucase
-
-      if (ione.eq.0) then
-
-      do i=1,ntyp1
-        if (ucase(nam).eq.restyp(i)) then
-          rescode=i
-          return
-        endif
-      enddo
-      else
-
-      do i=1,ntyp1
-        if (nam(1:1).eq.onelet(i)) then
-          rescode=i
-          return  
-        endif  
-      enddo
-
-      endif
-
-      write (iout,10) iseq,nam
-      stop
-   10 format ('**** Error - residue',i4,' has an unresolved name ',a3)
-      end
-
diff --git a/source/unres/src_MD-M/xdrf2pdb/rescode.o b/source/unres/src_MD-M/xdrf2pdb/rescode.o
deleted file mode 100644 (file)
index 3bcfdc4..0000000
Binary files a/source/unres/src_MD-M/xdrf2pdb/rescode.o and /dev/null differ
diff --git a/source/unres/src_MD-M/xdrf2pdb/xdrf2pdb.f b/source/unres/src_MD-M/xdrf2pdb/xdrf2pdb.f
deleted file mode 100644 (file)
index 01d1fd7..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-      implicit real*8 (a-h,o-z)
-      include 'DIMENSIONS'
-      include 'COMMON.CHAIN'
-      include 'COMMON.INTERACT'
-      include 'COMMON.SBRIDGE'
-      real*4 coord(3,1000)
-      real*4 prec,time,potE,uconst,t_bath,qfrag(100)
-      real*8 etot
-      character*80 arg,seqfile,pdbfile
-      character*3 sequenc(maxres)
-      character*50 tytul
-      character*8 onethree,cfreq
-      character*8 ucase
-      external ucase
-      logical oneletter,iblnk
-      integer rescode
-      external rescode
-      
-      do i=1,maxres
-       sequenc(i)=''
-      enddo
-
-      ifreq=1
-      if (iargc().lt.3) then
-        print '(a)',
-     &    "Usage: xdrf2pdb one/three seqfile cxfile [freq] [pdbfile]"
-        stop
-      endif
-      call getarg(1,onethree)
-      onethree = ucase(onethree)
-      if (onethree.eq.'ONE') then
-        oneletter = .true.
-      else if (onethree.eq.'THREE') then
-        oneletter = .false.
-      else
-        print *,"ONE or THREE must be specified"
-      endif
-      call getarg(2,seqfile)
-      open (1,file=seqfile,status='old')
-      if (oneletter) then
-        read(1,'(80a1)',end=10,err=10) (sequenc(i)(1:1),i=1,maxres)
-   10   continue
-        nres=i
-        i=0
-        do while (.not.iblnk(sequenc(i+1)(1:1)))
-          i=i+1
-        enddo 
-        nres=i
-        do i=1,nres
-          itype(i)=rescode(i,sequenc(i),1)
-        enddo
-      else
-        read(1,'(20(a3,1x))',end=11,err=11) (sequenc(i),i=1,maxres)
-   11   continue
-        nres=i
-        i=0
-        do while (.not.iblnk(sequenc(i+1)(1:1)))
-          print *,sequenc(i+1)
-          i=i+1
-        enddo 
-        nres=i
-        do i=1,nres
-          itype(i)=rescode(i,sequenc(i),0)
-        enddo
-      endif
-      call getarg(3,arg)
-      iext = index(arg,'.cx') - 1
-      if (iext.lt.0) then
-        print *,"Error - not a cx file"
-        stop
-      endif
-      if (iargc().gt.3) then
-        call getarg(4,cfreq)
-        read (cfreq,*) ifreq
-      endif
-      if (iargc().gt.4) then
-        call getarg(5,pdbfile)
-      else
-        pdbfile=arg(:iext)//'.pdb'
-      endif
-      open(9,file=pdbfile)
-      nnt = 1
-      if (itype(1).eq.21) nnt = 2
-      nct=nres
-      if (itype(nres).eq.21) nct = nres-1
-
-      call xdrfopen_(ixdrf,arg, "r", iret)
-       
-      kk = 0
-      do while(.true.) 
-       call xdrffloat_(ixdrf, time, iret)
-       if(iret.eq.0) exit
-       kk = kk + 1
-       call xdrffloat_(ixdrf, potE, iret)
-       call xdrffloat_(ixdrf, uconst, iret)
-       call xdrffloat_(ixdrf, t_bath, iret)
-       call xdrfint_(ixdrf, nss, iret) 
-       do j=1,nss
-        call xdrfint_(ixdrf, ihpb(j), iret)
-        call xdrfint_(ixdrf, jhpb(j), iret)
-       enddo
-       call xdrfint_(ixdrf, nfrag, iret)
-       do i=1,nfrag
-        call xdrffloat_(ixdrf, qfrag(i), iret)
-       enddo
-       prec=10000.0
-
-       isize=0
-       call xdrf3dfcoord_(ixdrf, coord, isize, prec, iret)
-
-
-c       write (*,'(e15.8,2e15.5,f12.5,$)') time,potE,uconst,t_bath
-c       write (*,'(i4,$)') nss,(ihpb(j),jhpb(j),j=1,nss)
-c       write (*,'(i4,20f7.4)') nfrag,(qfrag(i),i=1,nfrag)
-c       write (*,'(8f10.5)') ((coord(k,j),k=1,3),j=1,isize)
-       if (mod(kk,ifreq).eq.0) then
-         if (isize .ne. nres + nct - nnt + 1) then
-           print *,"Error: inconsistent sizes",isize,nres+nct-nnt+1
-         endif
-         do i=1,nres
-           do j=1,3
-             c(j,i)=coord(j,i)
-           enddo
-         enddo
-         ii = 0
-         do i=nnt,nct
-           ii = ii + 1 
-           do j=1,3
-             c(j,i+nres)=coord(j,ii+nres)
-           enddo
-         enddo
-         etot=potE
-         write (tytul,'(a,i6)') "Structure",kk
-         call pdbout(etot,tytul,9)
-       endif
-      enddo
-     
-      end
diff --git a/source/unres/src_MD-M/xdrf2pdb/xdrf2pdb.o b/source/unres/src_MD-M/xdrf2pdb/xdrf2pdb.o
deleted file mode 100644 (file)
index 0b0f7f1..0000000
Binary files a/source/unres/src_MD-M/xdrf2pdb/xdrf2pdb.o and /dev/null differ
diff --git a/source/unres/src_MD-M/xdrf2pdb/xdrf2x.F b/source/unres/src_MD-M/xdrf2pdb/xdrf2x.F
deleted file mode 100644 (file)
index 660d4c8..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-      real coord(3,1000)
-      real prec,time,potE,uconst,t_bath,qfrag(100)
-      integer ihpb(100),jhpb(100),iset
-      character*80 arg
-      
-      print *,"start"
-      call getarg(1,arg)
-
-      print *,arg
-#ifdef BLUEGENE
-      call xdrfopen_(ixdrf,arg, "r", iret)
-       
-      do while(.true.) 
-       call xdrffloat_(ixdrf, time, iret)
-       if(iret.eq.0) goto 10
-       call xdrffloat_(ixdrf, potE, iret)
-       call xdrffloat_(ixdrf, uconst, iret)
-       call xdrffloat_(ixdrf, t_bath, iret)
-       call xdrfint_(ixdrf, nss, iret) 
-       do j=1,nss
-        call xdrfint_(ixdrf, ihpb(j), iret)
-        call xdrfint_(ixdrf, jhpb(j), iret)
-       enddo
-       call xdrfint_(ixdrf, nfrag, iret)
-       call xdrfint_(ixdrf, iset, iret)
-       do i=1,nfrag
-        call xdrffloat_(ixdrf, qfrag(i), iret)
-       enddo
-       prec=10000.0
-
-       isize=0
-       call xdrf3dfcoord_(ixdrf, coord, isize, prec, iret)
-#else
-      call xdrfopen(ixdrf,arg, "r", iret)
-       
-      do while(.true.) 
-       call xdrffloat(ixdrf, time, iret)
-       if(iret.eq.0) goto 10
-       call xdrffloat(ixdrf, potE, iret)
-       call xdrffloat(ixdrf, uconst, iret)
-       call xdrffloat(ixdrf, t_bath, iret)
-       call xdrfint(ixdrf, nss, iret) 
-       do j=1,nss
-        call xdrfint(ixdrf, ihpb(j), iret)
-        call xdrfint(ixdrf, jhpb(j), iret)
-       enddo
-       call xdrfint(ixdrf, nfrag, iret)
-       call xdrfint(ixdrf, iset, iret)
-       do i=1,nfrag
-        call xdrffloat(ixdrf, qfrag(i), iret)
-       enddo
-       prec=10000.0
-
-       isize=0
-       call xdrf3dfcoord(ixdrf, coord, isize, prec, iret)
-#endif
-
-       write (*,'(e15.8,2e15.5,f12.5,$)') time,potE,uconst,t_bath
-       write (*,'(i4,$)') nss,(ihpb(j),jhpb(j),j=1,nss)
-       write (*,'(i4)') iset
-       write (*,'(i4,20f7.4)') nfrag,(qfrag(i),i=1,nfrag)
-       write (*,'(8f10.5)') ((coord(k,j),k=1,3),j=1,isize)
-      enddo
-  10  continue
-      end
diff --git a/source/unres/src_MD-M/xdrf2pdb/xdrf2x.o b/source/unres/src_MD-M/xdrf2pdb/xdrf2x.o
deleted file mode 100644 (file)
index 20db32f..0000000
Binary files a/source/unres/src_MD-M/xdrf2pdb/xdrf2x.o and /dev/null differ
diff --git a/source/unres/src_MD-M/xdrf2pdb/xdrf_local/Makefile b/source/unres/src_MD-M/xdrf2pdb/xdrf_local/Makefile
deleted file mode 100644 (file)
index f03276e..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-# This make file is part of the xdrf package.
-#
-# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-#
-# 2006 modified by Cezary Czaplewski
-
-# Set C compiler and flags for ARCH
-CC      = cc
-CFLAGS         = -O 
-
-M4     = m4
-M4FILE = underscore.m4
-
-libxdrf.a:  libxdrf.o ftocstr.o
-       ar cr libxdrf.a $?
-
-clean:
-       rm -f libxdrf.o ftocstr.o libxdrf.a 
-
-ftocstr.o: ftocstr.c
-       $(CC) $(CFLAGS) -c ftocstr.c
-
-libxdrf.o:     libxdrf.m4 $(M4FILE)
-       $(M4) $(M4FILE) libxdrf.m4 > libxdrf.c
-       $(CC) $(CFLAGS) -c libxdrf.c
-       rm -f libxdrf.c
-
diff --git a/source/unres/src_MD-M/xdrf2pdb/xdrf_local/ftocstr.c b/source/unres/src_MD-M/xdrf2pdb/xdrf_local/ftocstr.c
deleted file mode 100644 (file)
index ed2113f..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-int ftocstr(ds, dl, ss, sl)
-    char *ds, *ss;      /* dst, src ptrs */
-    int dl;             /* dst max len */
-    int sl;             /* src len */
-{
-    char *p;
-
-    for (p = ss + sl; --p >= ss && *p == ' '; ) ;
-    sl = p - ss + 1;
-    dl--;
-    ds[0] = 0;
-    if (sl > dl)
-        return 1;
-    while (sl--)
-       (*ds++ = *ss++);
-    *ds = '\0';
-    return 0;
-}
-
-
-int ctofstr(ds, dl, ss)
-       char *ds;               /* dest space */
-       int dl;                 /* max dest length */
-       char *ss;               /* src string (0-term) */
-{
-    while (dl && *ss) {
-       *ds++ = *ss++;
-       dl--;
-    }
-    while (dl--)
-       *ds++ = ' ';
-    return 0;
-}
diff --git a/source/unres/src_MD-M/xdrf2pdb/xdrf_local/libxdrf.m4 b/source/unres/src_MD-M/xdrf2pdb/xdrf_local/libxdrf.m4
deleted file mode 100644 (file)
index aecb5b5..0000000
+++ /dev/null
@@ -1,1233 +0,0 @@
-/*____________________________________________________________________________
- |
- | libxdrf - portable fortran interface to xdr. some xdr routines
- |          are C routines for compressed coordinates
- |
- | version 1.1
- |
- | This collection of routines is intended to write and read
- | data in a portable way to a file, so data written on one type
- | of machine can be read back on a different type.
- |
- | all fortran routines use an integer 'xdrid', which is an id to the
- | current xdr file, and is set by xdrfopen.
- | most routines have in integer 'ret' which is the return value.
- | The value of 'ret' is zero on failure, and most of the time one
- | on succes.
- |
- | There are three routines useful for C users:
- |  xdropen(), xdrclose(), xdr3dfcoord().
- | The first two replace xdrstdio_create and xdr_destroy, and *must* be
- | used when you plan to use xdr3dfcoord(). (they are also a bit
- | easier to interface). For writing data other than compressed coordinates 
- | you should use the standard C xdr routines (see xdr man page)
- |
- | xdrfopen(xdrid, filename, mode, ret)
- |     character *(*) filename
- |     character *(*) mode
- |
- |     this will open the file with the given filename (string)
- |     and the given mode, it returns an id in xdrid, which is
- |     to be used in all other calls to xdrf routines.
- |     mode is 'w' to create, or update an file, for all other
- |     values of mode the file is opened for reading
- |
- |     you need to call xdrfclose to flush the output and close
- |     the file.
- |     Note that you should not use xdrstdio_create, which comes with the
- |     standard xdr library
- |
- | xdrfclose(xdrid, ret)
- |     flush the data to the file, and closes the file;
- |     You should not use xdr_destroy (which comes standard with
- |     the xdr libraries.
- |
- | xdrfbool(xdrid, bp, ret)
- |     integer pb
- |
- |     This filter produces values of either 1 or 0    
- |
- | xdrfchar(xdrid, cp, ret)
- |     character cp
- |
- |     filter that translate between characters and their xdr representation
- |     Note that the characters in not compressed and occupies 4 bytes.
- |
- | xdrfdouble(xdrid, dp, ret)
- |     double dp
- |
- |     read/write a double.
- |
- | xdrffloat(xdrid, fp, ret)
- |     float fp
- |
- |     read/write a float.
- |
- | xdrfint(xdrid, ip, ret)
- |     integer ip
- |
- |     read/write integer.
- |
- | xdrflong(xdrid, lp, ret)
- |     integer lp
- |
- |     this routine has a possible portablility problem due to 64 bits longs.
- |
- | xdrfshort(xdrid, sp, ret)
- |     integer *2 sp
- |
- | xdrfstring(xdrid, sp, maxsize, ret)
- |     character *(*)
- |     integer maxsize
- |
- |     read/write a string, with maximum length given by maxsize
- |
- | xdrfwrapstring(xdris, sp, ret)
- |     character *(*)
- |
- |     read/write a string (it is the same as xdrfstring accept that it finds
- |     the stringlength itself.
- |
- | xdrfvector(xdrid, cp, size, xdrfproc, ret)
- |     character *(*)
- |     integer size
- |     external xdrfproc
- |
- |     read/write an array pointed to by cp, with number of elements
- |     defined by 'size'. the routine 'xdrfproc' is the name
- |     of one of the above routines to read/write data (like xdrfdouble)
- |     In contrast with the c-version you don't need to specify the
- |     byte size of an element.
- |     xdrfstring is not allowed here (it is in the c version)
- |     
- | xdrf3dfcoord(xdrid, fp, size, precision, ret)
- |     real (*) fp
- |     real precision
- |     integer size
- |
- |     this is *NOT* a standard xdr routine. I named it this way, because
- |     it invites people to use the other xdr routines.
- |     It is introduced to store specifically 3d coordinates of molecules
- |     (as found in molecular dynamics) and it writes it in a compressed way.
- |     It starts by multiplying all numbers by precision and
- |     rounding the result to integer. effectively converting
- |     all floating point numbers to fixed point.
- |     it uses an algorithm for compression that is optimized for
- |     molecular data, but could be used for other 3d coordinates
- |     as well. There is subtantial overhead involved, so call this
- |     routine only if you have a large number of coordinates to read/write
- |
- | ________________________________________________________________________
- |
- | Below are the routines to be used by C programmers. Use the 'normal'
- | xdr routines to write integers, floats, etc (see man xdr)   
- |
- | int xdropen(XDR *xdrs, const char *filename, const char *type)
- |     This will open the file with the given filename and the 
- |     given mode. You should pass it an allocated XDR struct
- |     in xdrs, to be used in all other calls to xdr routines.
- |     Mode is 'w' to create, or update an file, and for all 
- |     other values of mode the file is opened for reading. 
- |     You need to call xdrclose to flush the output and close
- |     the file.
- |
- |     Note that you should not use xdrstdio_create, which
- |     comes with the standard xdr library.
- |
- | int xdrclose(XDR *xdrs)
- |     Flush the data to the file, and close the file;
- |     You should not use xdr_destroy (which comes standard
- |     with the xdr libraries).
- |      
- | int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision)
- |     This is \fInot\fR a standard xdr routine. I named it this 
- |     way, because it invites people to use the other xdr 
- |     routines.
- |
- |     (c) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-*/     
-
-
-#include <limits.h>
-#include <malloc.h>
-#include <math.h>
-#include <rpc/rpc.h>
-#include <rpc/xdr.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include "xdrf.h"
-
-int ftocstr(char *, int, char *, int);
-int ctofstr(char *, int, char *);
-
-#define MAXID 20
-static FILE *xdrfiles[MAXID];
-static XDR *xdridptr[MAXID];
-static char xdrmodes[MAXID];
-static unsigned int cnt;
-
-typedef void (* FUNCTION(xdrfproc)) (int *, void *, int *);
-
-void
-FUNCTION(xdrfbool) ARGS(`xdrid, pb, ret')
-int *xdrid, *ret;
-int *pb;
-{
-       *ret = xdr_bool(xdridptr[*xdrid], (bool_t *) pb);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrfchar) ARGS(`xdrid, cp, ret')
-int *xdrid, *ret;
-char *cp;
-{
-       *ret = xdr_char(xdridptr[*xdrid], cp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfdouble) ARGS(`xdrid, dp, ret')
-int *xdrid, *ret;
-double *dp;
-{
-       *ret = xdr_double(xdridptr[*xdrid], dp);
-       cnt += sizeof(double);
-}
-
-void
-FUNCTION(xdrffloat) ARGS(`xdrid, fp, ret')
-int *xdrid, *ret;
-float *fp;
-{
-       *ret = xdr_float(xdridptr[*xdrid], fp);
-       cnt += sizeof(float);
-}
-
-void
-FUNCTION(xdrfint) ARGS(`xdrid, ip, ret')
-int *xdrid, *ret;
-int *ip;
-{
-       *ret = xdr_int(xdridptr[*xdrid], ip);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrflong) ARGS(`xdrid, lp, ret')
-int *xdrid, *ret;
-long *lp;
-{
-       *ret = xdr_long(xdridptr[*xdrid], lp);
-       cnt += sizeof(long);
-}
-
-void
-FUNCTION(xdrfshort) ARGS(`xdrid, sp, ret')
-int *xdrid, *ret;
-short *sp;
-{
-       *ret = xdr_short(xdridptr[*xdrid], sp);
-       cnt += sizeof(sp);
-}
-
-void
-FUNCTION(xdrfuchar) ARGS(`xdrid, ucp, ret')
-int *xdrid, *ret;
-char *ucp;
-{
-       *ret = xdr_u_char(xdridptr[*xdrid], ucp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfulong) ARGS(`xdrid, ulp, ret')
-int *xdrid, *ret;
-unsigned long *ulp;
-{
-       *ret = xdr_u_long(xdridptr[*xdrid], ulp);
-       cnt += sizeof(unsigned long);
-}
-
-void
-FUNCTION(xdrfushort) ARGS(`xdrid, usp, ret')
-int *xdrid, *ret;
-unsigned short *usp;
-{
-       *ret = xdr_u_short(xdridptr[*xdrid], usp);
-       cnt += sizeof(unsigned short);
-}
-
-void 
-FUNCTION(xdrf3dfcoord) ARGS(`xdrid, fp, size, precision, ret')
-int *xdrid, *ret;
-float *fp;
-int *size;
-float *precision;
-{
-       *ret = xdr3dfcoord(xdridptr[*xdrid], fp, size, precision);
-}
-
-void
-FUNCTION(xdrfstring) ARGS(`xdrid, STRING_ARG(sp), maxsize, ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-int *maxsize;
-{
-       char *tsp;
-
-       tsp = (char*) malloc(((STRING_LEN(sp)) + 1) * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, *maxsize+1, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int) *maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += *maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfwrapstring) ARGS(`xdrid,  STRING_ARG(sp), ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-{
-       char *tsp;
-       int maxsize;
-       maxsize = (STRING_LEN(sp)) + 1;
-       tsp = (char*) malloc(maxsize * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, maxsize, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int)maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfopaque) ARGS(`xdrid, cp, ccnt, ret')
-int *xdrid, *ret;
-caddr_t *cp;
-int *ccnt;
-{
-       *ret = xdr_opaque(xdridptr[*xdrid], (caddr_t)*cp, (u_int)*ccnt);
-       cnt += *ccnt;
-}
-
-void
-FUNCTION(xdrfsetpos) ARGS(`xdrid, pos, ret')
-int *xdrid, *ret;
-int *pos;
-{
-       *ret = xdr_setpos(xdridptr[*xdrid], (u_int) *pos);
-}
-
-void
-FUNCTION(xdrf) ARGS(`xdrid, pos')
-int *xdrid, *pos;
-{
-       *pos = xdr_getpos(xdridptr[*xdrid]);
-}
-
-void
-FUNCTION(xdrfvector) ARGS(`xdrid, cp, size, elproc, ret')
-int *xdrid, *ret;
-char *cp;
-int *size;
-FUNCTION(xdrfproc) elproc;
-{
-       int lcnt;
-       cnt = 0;
-       for (lcnt = 0; lcnt < *size; lcnt++) {
-               elproc(xdrid, (cp+cnt) , ret);
-       }
-}
-
-
-void
-FUNCTION(xdrfclose) ARGS(`xdrid, ret')
-int *xdrid;
-int *ret;
-{
-       *ret = xdrclose(xdridptr[*xdrid]);
-       cnt = 0;
-}
-
-void
-FUNCTION(xdrfopen) ARGS(`xdrid,  STRING_ARG(fp), STRING_ARG(mode), ret')
-int *xdrid;
-STRING_ARG_DECL(fp);
-STRING_ARG_DECL(mode);
-int *ret;
-{
-       char fname[512];
-       char fmode[3];
-
-       if (ftocstr(fname, sizeof(fname), STRING_PTR(fp), STRING_LEN(fp))) {
-               *ret = 0;
-       }
-       if (ftocstr(fmode, sizeof(fmode), STRING_PTR(mode),
-                       STRING_LEN(mode))) {
-               *ret = 0;
-       }
-
-       *xdrid = xdropen(NULL, fname, fmode);
-       if (*xdrid == 0)
-               *ret = 0;
-       else 
-               *ret = 1;       
-}
-
-/*___________________________________________________________________________
- |
- | what follows are the C routines for opening, closing xdr streams
- | and the routine to read/write compressed coordinates together
- | with some routines to assist in this task (those are marked
- | static and cannot be called from user programs)
-*/
-#define MAXABS INT_MAX-2
-
-#ifndef MIN
-#define MIN(x,y) ((x) < (y) ? (x):(y))
-#endif
-#ifndef MAX
-#define MAX(x,y) ((x) > (y) ? (x):(y))
-#endif
-#ifndef SQR
-#define SQR(x) ((x)*(x))
-#endif
-static int magicints[] = {
-    0, 0, 0, 0, 0, 0, 0, 0, 0,
-    8, 10, 12, 16, 20, 25, 32, 40, 50, 64,
-    80, 101, 128, 161, 203, 256, 322, 406, 512, 645,
-    812, 1024, 1290, 1625, 2048, 2580, 3250, 4096, 5060, 6501,
-    8192, 10321, 13003, 16384, 20642, 26007, 32768, 41285, 52015, 65536,
-    82570, 104031, 131072, 165140, 208063, 262144, 330280, 416127, 524287, 660561,
-    832255, 1048576, 1321122, 1664510, 2097152, 2642245, 3329021, 4194304, 5284491, 6658042,
-    8388607, 10568983, 13316085, 16777216 };
-
-#define FIRSTIDX 9
-/* note that magicints[FIRSTIDX-1] == 0 */
-#define LASTIDX (sizeof(magicints) / sizeof(*magicints))
-
-
-/*__________________________________________________________________________
- |
- | xdropen - open xdr file
- |
- | This versions differs from xdrstdio_create, because I need to know
- | the state of the file (read or write) so I can use xdr3dfcoord
- | in eigther read or write mode, and the file descriptor
- | so I can close the file (something xdr_destroy doesn't do).
- |
-*/
-
-int xdropen(XDR *xdrs, const char *filename, const char *type) {
-    static int init_done = 0;
-    enum xdr_op lmode;
-    const char *type1;
-    int xdrid;
-    
-    if (init_done == 0) {
-       for (xdrid = 1; xdrid < MAXID; xdrid++) {
-           xdridptr[xdrid] = NULL;
-       }
-       init_done = 1;
-    }
-    xdrid = 1;
-    while (xdrid < MAXID && xdridptr[xdrid] != NULL) {
-       xdrid++;
-    }
-    if (xdrid == MAXID) {
-       return 0;
-    }
-    if (*type == 'w' || *type == 'W') {
-           type = "w+";
-           type1 = "a+";
-           lmode = XDR_ENCODE;
-    } else {
-           type = "r";
-            type1 = "r";
-           lmode = XDR_DECODE;
-    }
-    xdrfiles[xdrid] = fopen(filename, type1);
-    if (xdrfiles[xdrid] == NULL) {
-       xdrs = NULL;
-       return 0;
-    }
-    xdrmodes[xdrid] = *type;
-    /* next test isn't usefull in the case of C language
-     * but is used for the Fortran interface
-     * (C users are expected to pass the address of an already allocated
-     * XDR staructure)
-     */
-    if (xdrs == NULL) {
-       xdridptr[xdrid] = (XDR *) malloc(sizeof(XDR));
-       xdrstdio_create(xdridptr[xdrid], xdrfiles[xdrid], lmode);
-    } else {
-       xdridptr[xdrid] = xdrs;
-       xdrstdio_create(xdrs, xdrfiles[xdrid], lmode);
-    }
-    return xdrid;
-}
-
-/*_________________________________________________________________________
- |
- | xdrclose - close a xdr file
- |
- | This will flush the xdr buffers, and destroy the xdr stream.
- | It also closes the associated file descriptor (this is *not*
- | done by xdr_destroy).
- |
-*/
-int xdrclose(XDR *xdrs) {
-    int xdrid;
-    
-    if (xdrs == NULL) {
-       fprintf(stderr, "xdrclose: passed a NULL pointer\n");
-       exit(1);
-    }
-    for (xdrid = 1; xdrid < MAXID; xdrid++) {
-       if (xdridptr[xdrid] == xdrs) {
-           
-           xdr_destroy(xdrs);
-           fclose(xdrfiles[xdrid]);
-           xdridptr[xdrid] = NULL;
-           return 1;
-       }
-    } 
-    fprintf(stderr, "xdrclose: no such open xdr file\n");
-    exit(1);
-    
-}
-
-/*____________________________________________________________________________
- |
- | sendbits - encode num into buf using the specified number of bits
- |
- | This routines appends the value of num to the bits already present in
- | the array buf. You need to give it the number of bits to use and you
- | better make sure that this number of bits is enough to hold the value
- | Also num must be positive.
- |
-*/
-
-static void sendbits(int buf[], int num_of_bits, int num) {
-    
-    unsigned int cnt, lastbyte;
-    int lastbits;
-    unsigned char * cbuf;
-    
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = (unsigned int) buf[0];
-    lastbits = buf[1];
-    lastbyte =(unsigned int) buf[2];
-    while (num_of_bits >= 8) {
-       lastbyte = (lastbyte << 8) | ((num >> (num_of_bits -8)) /* & 0xff*/);
-       cbuf[cnt++] = lastbyte >> lastbits;
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       lastbyte = (lastbyte << num_of_bits) | num;
-       lastbits += num_of_bits;
-       if (lastbits >= 8) {
-           lastbits -= 8;
-           cbuf[cnt++] = lastbyte >> lastbits;
-       }
-    }
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    if (lastbits>0) {
-       cbuf[cnt] = lastbyte << (8 - lastbits);
-    }
-}
-
-/*_________________________________________________________________________
- |
- | sizeofint - calculate bitsize of an integer
- |
- | return the number of bits needed to store an integer with given max size
- |
-*/
-
-static int sizeofint(const int size) {
-    unsigned int num = 1;
-    int num_of_bits = 0;
-    
-    while (size >= num && num_of_bits < 32) {
-       num_of_bits++;
-       num <<= 1;
-    }
-    return num_of_bits;
-}
-
-/*___________________________________________________________________________
- |
- | sizeofints - calculate 'bitsize' of compressed ints
- |
- | given the number of small unsigned integers and the maximum value
- | return the number of bits needed to read or write them with the
- | routines receiveints and sendints. You need this parameter when
- | calling these routines. Note that for many calls I can use
- | the variable 'smallidx' which is exactly the number of bits, and
- | So I don't need to call 'sizeofints for those calls.
-*/
-
-static int sizeofints( const int num_of_ints, unsigned int sizes[]) {
-    int i, num;
-    unsigned int num_of_bytes, num_of_bits, bytes[32], bytecnt, tmp;
-    num_of_bytes = 1;
-    bytes[0] = 1;
-    num_of_bits = 0;
-    for (i=0; i < num_of_ints; i++) {  
-       tmp = 0;
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    num = 1;
-    num_of_bytes--;
-    while (bytes[num_of_bytes] >= num) {
-       num_of_bits++;
-       num *= 2;
-    }
-    return num_of_bits + num_of_bytes * 8;
-
-}
-    
-/*____________________________________________________________________________
- |
- | sendints - send a small set of small integers in compressed format
- |
- | this routine is used internally by xdr3dfcoord, to send a set of
- | small integers to the buffer. 
- | Multiplication with fixed (specified maximum ) sizes is used to get
- | to one big, multibyte integer. Allthough the routine could be
- | modified to handle sizes bigger than 16777216, or more than just
- | a few integers, this is not done, because the gain in compression
- | isn't worth the effort. Note that overflowing the multiplication
- | or the byte buffer (32 bytes) is unchecked and causes bad results.
- |
- */
-static void sendints(int buf[], const int num_of_ints, const int num_of_bits,
-       unsigned int sizes[], unsigned int nums[]) {
-
-    int i;
-    unsigned int bytes[32], num_of_bytes, bytecnt, tmp;
-
-    tmp = nums[0];
-    num_of_bytes = 0;
-    do {
-       bytes[num_of_bytes++] = tmp & 0xff;
-       tmp >>= 8;
-    } while (tmp != 0);
-
-    for (i = 1; i < num_of_ints; i++) {
-       if (nums[i] >= sizes[i]) {
-           fprintf(stderr,"major breakdown in sendints num %d doesn't "
-                   "match size %d\n", nums[i], sizes[i]);
-           exit(1);
-       }
-       /* use one step multiply */    
-       tmp = nums[i];
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    if (num_of_bits >= num_of_bytes * 8) {
-       for (i = 0; i < num_of_bytes; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits - num_of_bytes * 8, 0);
-    } else {
-       for (i = 0; i < num_of_bytes-1; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits- (num_of_bytes -1) * 8, bytes[i]);
-    }
-}
-
-
-/*___________________________________________________________________________
- |
- | receivebits - decode number from buf using specified number of bits
- | 
- | extract the number of bits from the array buf and construct an integer
- | from it. Return that value.
- |
-*/
-
-static int receivebits(int buf[], int num_of_bits) {
-
-    int cnt, num; 
-    unsigned int lastbits, lastbyte;
-    unsigned char * cbuf;
-    int mask = (1 << num_of_bits) -1;
-
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = buf[0];
-    lastbits = (unsigned int) buf[1];
-    lastbyte = (unsigned int) buf[2];
-    
-    num = 0;
-    while (num_of_bits >= 8) {
-       lastbyte = ( lastbyte << 8 ) | cbuf[cnt++];
-       num |=  (lastbyte >> lastbits) << (num_of_bits - 8);
-       num_of_bits -=8;
-    }
-    if (num_of_bits > 0) {
-       if (lastbits < num_of_bits) {
-           lastbits += 8;
-           lastbyte = (lastbyte << 8) | cbuf[cnt++];
-       }
-       lastbits -= num_of_bits;
-       num |= (lastbyte >> lastbits) & ((1 << num_of_bits) -1);
-    }
-    num &= mask;
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    return num; 
-}
-
-/*____________________________________________________________________________
- |
- | receiveints - decode 'small' integers from the buf array
- |
- | this routine is the inverse from sendints() and decodes the small integers
- | written to buf by calculating the remainder and doing divisions with
- | the given sizes[]. You need to specify the total number of bits to be
- | used from buf in num_of_bits.
- |
-*/
-
-static void receiveints(int buf[], const int num_of_ints, int num_of_bits,
-       unsigned int sizes[], int nums[]) {
-    int bytes[32];
-    int i, j, num_of_bytes, p, num;
-    
-    bytes[1] = bytes[2] = bytes[3] = 0;
-    num_of_bytes = 0;
-    while (num_of_bits > 8) {
-       bytes[num_of_bytes++] = receivebits(buf, 8);
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       bytes[num_of_bytes++] = receivebits(buf, num_of_bits);
-    }
-    for (i = num_of_ints-1; i > 0; i--) {
-       num = 0;
-       for (j = num_of_bytes-1; j >=0; j--) {
-           num = (num << 8) | bytes[j];
-           p = num / sizes[i];
-           bytes[j] = p;
-           num = num - p * sizes[i];
-       }
-       nums[i] = num;
-    }
-    nums[0] = bytes[0] | (bytes[1] << 8) | (bytes[2] << 16) | (bytes[3] << 24);
-}
-    
-/*____________________________________________________________________________
- |
- | xdr3dfcoord - read or write compressed 3d coordinates to xdr file.
- |
- | this routine reads or writes (depending on how you opened the file with
- | xdropen() ) a large number of 3d coordinates (stored in *fp).
- | The number of coordinates triplets to write is given by *size. On
- | read this number may be zero, in which case it reads as many as were written
- | or it may specify the number if triplets to read (which should match the
- | number written).
- | Compression is achieved by first converting all floating numbers to integer
- | using multiplication by *precision and rounding to the nearest integer.
- | Then the minimum and maximum value are calculated to determine the range.
- | The limited range of integers so found, is used to compress the coordinates.
- | In addition the differences between succesive coordinates is calculated.
- | If the difference happens to be 'small' then only the difference is saved,
- | compressing the data even more. The notion of 'small' is changed dynamically
- | and is enlarged or reduced whenever needed or possible.
- | Extra compression is achieved in the case of GROMOS and coordinates of
- | water molecules. GROMOS first writes out the Oxygen position, followed by
- | the two hydrogens. In order to make the differences smaller (and thereby
- | compression the data better) the order is changed into first one hydrogen
- | then the oxygen, followed by the other hydrogen. This is rather special, but
- | it shouldn't harm in the general case.
- |
- */
-int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) {
-    
-
-    static int *ip = NULL;
-    static int oldsize;
-    static int *buf;
-
-    int minint[3], maxint[3], mindiff, *lip, diff;
-    int lint1, lint2, lint3, oldlint1, oldlint2, oldlint3, smallidx;
-    int minidx, maxidx;
-    unsigned sizeint[3], sizesmall[3], bitsizeint[3], size3, *luip;
-    int flag, k;
-    int small, smaller, larger, i, is_small, is_smaller, run, prevrun;
-    float *lfp, lf;
-    int tmp, *thiscoord,  prevcoord[3];
-    unsigned int tmpcoord[30];
-
-    int bufsize, xdrid, lsize;
-    unsigned int bitsize;
-    float inv_precision;
-    int errval = 1;
-
-    /* find out if xdrs is opened for reading or for writing */
-    xdrid = 0;
-    while (xdridptr[xdrid] != xdrs) {
-       xdrid++;
-       if (xdrid >= MAXID) {
-           fprintf(stderr, "xdr error. no open xdr stream\n");
-           exit (1);
-       }
-    }
-    if (xdrmodes[xdrid] == 'w') {
-
-       /* xdrs is open for writing */
-
-       if (xdr_int(xdrs, size) == 0)
-           return 0;
-       size3 = *size * 3;
-       /* when the number of coordinates is small, don't try to compress; just
-        * write them as floats using xdr_vector
-        */
-       if (*size <= 9 ) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       /* buf[0-2] are special and do not contain actual data */
-       buf[0] = buf[1] = buf[2] = 0;
-       minint[0] = minint[1] = minint[2] = INT_MAX;
-       maxint[0] = maxint[1] = maxint[2] = INT_MIN;
-       prevrun = -1;
-       lfp = fp;
-       lip = ip;
-       mindiff = INT_MAX;
-       oldlint1 = oldlint2 = oldlint3 = 0;
-       while(lfp < fp + size3 ) {
-           /* find nearest integer */
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint1 = lf;
-           if (lint1 < minint[0]) minint[0] = lint1;
-           if (lint1 > maxint[0]) maxint[0] = lint1;
-           *lip++ = lint1;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint2 = lf;
-           if (lint2 < minint[1]) minint[1] = lint2;
-           if (lint2 > maxint[1]) maxint[1] = lint2;
-           *lip++ = lint2;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint3 = lf;
-           if (lint3 < minint[2]) minint[2] = lint3;
-           if (lint3 > maxint[2]) maxint[2] = lint3;
-           *lip++ = lint3;
-           lfp++;
-           diff = abs(oldlint1-lint1)+abs(oldlint2-lint2)+abs(oldlint3-lint3);
-           if (diff < mindiff && lfp > fp + 3)
-               mindiff = diff;
-           oldlint1 = lint1;
-           oldlint2 = lint2;
-           oldlint3 = lint3;
-       }
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-       
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-       
-       if ((float)maxint[0] - (float)minint[0] >= MAXABS ||
-               (float)maxint[1] - (float)minint[1] >= MAXABS ||
-               (float)maxint[2] - (float)minint[2] >= MAXABS) {
-           /* turning value in unsigned by subtracting minint
-            * would cause overflow
-            */
-           errval = 0;
-       }
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       lip = ip;
-       luip = (unsigned int *) ip;
-       smallidx = FIRSTIDX;
-       while (smallidx < LASTIDX && magicints[smallidx] < mindiff) {
-           smallidx++;
-       }
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-       larger = magicints[maxidx] / 2;
-       i = 0;
-       while (i < *size) {
-           is_small = 0;
-           thiscoord = (int *)(luip) + i * 3;
-           if (smallidx < maxidx && i >= 1 &&
-                   abs(thiscoord[0] - prevcoord[0]) < larger &&
-                   abs(thiscoord[1] - prevcoord[1]) < larger &&
-                   abs(thiscoord[2] - prevcoord[2]) < larger) {
-               is_smaller = 1;
-           } else if (smallidx > minidx) {
-               is_smaller = -1;
-           } else {
-               is_smaller = 0;
-           }
-           if (i + 1 < *size) {
-               if (abs(thiscoord[0] - thiscoord[3]) < small &&
-                       abs(thiscoord[1] - thiscoord[4]) < small &&
-                       abs(thiscoord[2] - thiscoord[5]) < small) {
-                   /* interchange first with second atom for better
-                    * compression of water molecules
-                    */
-                   tmp = thiscoord[0]; thiscoord[0] = thiscoord[3];
-                       thiscoord[3] = tmp;
-                   tmp = thiscoord[1]; thiscoord[1] = thiscoord[4];
-                       thiscoord[4] = tmp;
-                   tmp = thiscoord[2]; thiscoord[2] = thiscoord[5];
-                       thiscoord[5] = tmp;
-                   is_small = 1;
-               }
-    
-           }
-           tmpcoord[0] = thiscoord[0] - minint[0];
-           tmpcoord[1] = thiscoord[1] - minint[1];
-           tmpcoord[2] = thiscoord[2] - minint[2];
-           if (bitsize == 0) {
-               sendbits(buf, bitsizeint[0], tmpcoord[0]);
-               sendbits(buf, bitsizeint[1], tmpcoord[1]);
-               sendbits(buf, bitsizeint[2], tmpcoord[2]);
-           } else {
-               sendints(buf, 3, bitsize, sizeint, tmpcoord);
-           }
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           thiscoord = thiscoord + 3;
-           i++;
-           
-           run = 0;
-           if (is_small == 0 && is_smaller == -1)
-               is_smaller = 0;
-           while (is_small && run < 8*3) {
-               if (is_smaller == -1 && (
-                       SQR(thiscoord[0] - prevcoord[0]) +
-                       SQR(thiscoord[1] - prevcoord[1]) +
-                       SQR(thiscoord[2] - prevcoord[2]) >= smaller * smaller)) {
-                   is_smaller = 0;
-               }
-
-               tmpcoord[run++] = thiscoord[0] - prevcoord[0] + small;
-               tmpcoord[run++] = thiscoord[1] - prevcoord[1] + small;
-               tmpcoord[run++] = thiscoord[2] - prevcoord[2] + small;
-               
-               prevcoord[0] = thiscoord[0];
-               prevcoord[1] = thiscoord[1];
-               prevcoord[2] = thiscoord[2];
-
-               i++;
-               thiscoord = thiscoord + 3;
-               is_small = 0;
-               if (i < *size &&
-                       abs(thiscoord[0] - prevcoord[0]) < small &&
-                       abs(thiscoord[1] - prevcoord[1]) < small &&
-                       abs(thiscoord[2] - prevcoord[2]) < small) {
-                   is_small = 1;
-               }
-           }
-           if (run != prevrun || is_smaller != 0) {
-               prevrun = run;
-               sendbits(buf, 1, 1); /* flag the change in run-length */
-               sendbits(buf, 5, run+is_smaller+1);
-           } else {
-               sendbits(buf, 1, 0); /* flag the fact that runlength did not change */
-           }
-           for (k=0; k < run; k+=3) {
-               sendints(buf, 3, smallidx, sizesmall, &tmpcoord[k]);    
-           }
-           if (is_smaller != 0) {
-               smallidx += is_smaller;
-               if (is_smaller < 0) {
-                   small = smaller;
-                   smaller = magicints[smallidx-1] / 2;
-               } else {
-                   smaller = small;
-                   small = magicints[smallidx] / 2;
-               }
-               sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-           }
-       }
-       if (buf[1] != 0) buf[0]++;;
-       xdr_int(xdrs, &(buf[0])); /* buf[0] holds the length in bytes */
-       return errval * (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]));
-    } else {
-       
-       /* xdrs is open for reading */
-       
-       if (xdr_int(xdrs, &lsize) == 0) 
-           return 0;
-       if (*size != 0 && lsize != *size) {
-           fprintf(stderr, "wrong number of coordinates in xdr3dfcoor; "
-                   "%d arg vs %d in file", *size, lsize);
-       }
-       *size = lsize;
-       size3 = *size * 3;
-       if (*size <= 9) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-               
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       larger = magicints[maxidx];
-
-       /* buf[0] holds the length in bytes */
-
-       if (xdr_int(xdrs, &(buf[0])) == 0)
-           return 0;
-       if (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]) == 0)
-           return 0;
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       lfp = fp;
-       inv_precision = 1.0 / * precision;
-       run = 0;
-       i = 0;
-       lip = ip;
-       while ( i < lsize ) {
-           thiscoord = (int *)(lip) + i * 3;
-
-           if (bitsize == 0) {
-               thiscoord[0] = receivebits(buf, bitsizeint[0]);
-               thiscoord[1] = receivebits(buf, bitsizeint[1]);
-               thiscoord[2] = receivebits(buf, bitsizeint[2]);
-           } else {
-               receiveints(buf, 3, bitsize, sizeint, thiscoord);
-           }
-           
-           i++;
-           thiscoord[0] += minint[0];
-           thiscoord[1] += minint[1];
-           thiscoord[2] += minint[2];
-           
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           
-          
-           flag = receivebits(buf, 1);
-           is_smaller = 0;
-           if (flag == 1) {
-               run = receivebits(buf, 5);
-               is_smaller = run % 3;
-               run -= is_smaller;
-               is_smaller--;
-           }
-           if (run > 0) {
-               thiscoord += 3;
-               for (k = 0; k < run; k+=3) {
-                   receiveints(buf, 3, smallidx, sizesmall, thiscoord);
-                   i++;
-                   thiscoord[0] += prevcoord[0] - small;
-                   thiscoord[1] += prevcoord[1] - small;
-                   thiscoord[2] += prevcoord[2] - small;
-                   if (k == 0) {
-                       /* interchange first with second atom for better
-                        * compression of water molecules
-                        */
-                       tmp = thiscoord[0]; thiscoord[0] = prevcoord[0];
-                               prevcoord[0] = tmp;
-                       tmp = thiscoord[1]; thiscoord[1] = prevcoord[1];
-                               prevcoord[1] = tmp;
-                       tmp = thiscoord[2]; thiscoord[2] = prevcoord[2];
-                               prevcoord[2] = tmp;
-                       *lfp++ = prevcoord[0] * inv_precision;
-                       *lfp++ = prevcoord[1] * inv_precision;
-                       *lfp++ = prevcoord[2] * inv_precision;
-                   } else {
-                       prevcoord[0] = thiscoord[0];
-                       prevcoord[1] = thiscoord[1];
-                       prevcoord[2] = thiscoord[2];
-                   }
-                   *lfp++ = thiscoord[0] * inv_precision;
-                   *lfp++ = thiscoord[1] * inv_precision;
-                   *lfp++ = thiscoord[2] * inv_precision;
-               }
-           } else {
-               *lfp++ = thiscoord[0] * inv_precision;
-               *lfp++ = thiscoord[1] * inv_precision;
-               *lfp++ = thiscoord[2] * inv_precision;          
-           }
-           smallidx += is_smaller;
-           if (is_smaller < 0) {
-               small = smaller;
-               if (smallidx > FIRSTIDX) {
-                   smaller = magicints[smallidx - 1] /2;
-               } else {
-                   smaller = 0;
-               }
-           } else if (is_smaller > 0) {
-               smaller = small;
-               small = magicints[smallidx] / 2;
-           }
-           sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       }
-    }
-    return 1;
-}
-
-
-   
diff --git a/source/unres/src_MD-M/xdrf2pdb/xdrf_local/libxdrf.m4.org b/source/unres/src_MD-M/xdrf2pdb/xdrf_local/libxdrf.m4.org
deleted file mode 100644 (file)
index b14b374..0000000
+++ /dev/null
@@ -1,1230 +0,0 @@
-/*____________________________________________________________________________
- |
- | libxdrf - portable fortran interface to xdr. some xdr routines
- |          are C routines for compressed coordinates
- |
- | version 1.1
- |
- | This collection of routines is intended to write and read
- | data in a portable way to a file, so data written on one type
- | of machine can be read back on a different type.
- |
- | all fortran routines use an integer 'xdrid', which is an id to the
- | current xdr file, and is set by xdrfopen.
- | most routines have in integer 'ret' which is the return value.
- | The value of 'ret' is zero on failure, and most of the time one
- | on succes.
- |
- | There are three routines useful for C users:
- |  xdropen(), xdrclose(), xdr3dfcoord().
- | The first two replace xdrstdio_create and xdr_destroy, and *must* be
- | used when you plan to use xdr3dfcoord(). (they are also a bit
- | easier to interface). For writing data other than compressed coordinates 
- | you should use the standard C xdr routines (see xdr man page)
- |
- | xdrfopen(xdrid, filename, mode, ret)
- |     character *(*) filename
- |     character *(*) mode
- |
- |     this will open the file with the given filename (string)
- |     and the given mode, it returns an id in xdrid, which is
- |     to be used in all other calls to xdrf routines.
- |     mode is 'w' to create, or update an file, for all other
- |     values of mode the file is opened for reading
- |
- |     you need to call xdrfclose to flush the output and close
- |     the file.
- |     Note that you should not use xdrstdio_create, which comes with the
- |     standard xdr library
- |
- | xdrfclose(xdrid, ret)
- |     flush the data to the file, and closes the file;
- |     You should not use xdr_destroy (which comes standard with
- |     the xdr libraries.
- |
- | xdrfbool(xdrid, bp, ret)
- |     integer pb
- |
- |     This filter produces values of either 1 or 0    
- |
- | xdrfchar(xdrid, cp, ret)
- |     character cp
- |
- |     filter that translate between characters and their xdr representation
- |     Note that the characters in not compressed and occupies 4 bytes.
- |
- | xdrfdouble(xdrid, dp, ret)
- |     double dp
- |
- |     read/write a double.
- |
- | xdrffloat(xdrid, fp, ret)
- |     float fp
- |
- |     read/write a float.
- |
- | xdrfint(xdrid, ip, ret)
- |     integer ip
- |
- |     read/write integer.
- |
- | xdrflong(xdrid, lp, ret)
- |     integer lp
- |
- |     this routine has a possible portablility problem due to 64 bits longs.
- |
- | xdrfshort(xdrid, sp, ret)
- |     integer *2 sp
- |
- | xdrfstring(xdrid, sp, maxsize, ret)
- |     character *(*)
- |     integer maxsize
- |
- |     read/write a string, with maximum length given by maxsize
- |
- | xdrfwrapstring(xdris, sp, ret)
- |     character *(*)
- |
- |     read/write a string (it is the same as xdrfstring accept that it finds
- |     the stringlength itself.
- |
- | xdrfvector(xdrid, cp, size, xdrfproc, ret)
- |     character *(*)
- |     integer size
- |     external xdrfproc
- |
- |     read/write an array pointed to by cp, with number of elements
- |     defined by 'size'. the routine 'xdrfproc' is the name
- |     of one of the above routines to read/write data (like xdrfdouble)
- |     In contrast with the c-version you don't need to specify the
- |     byte size of an element.
- |     xdrfstring is not allowed here (it is in the c version)
- |     
- | xdrf3dfcoord(xdrid, fp, size, precision, ret)
- |     real (*) fp
- |     real precision
- |     integer size
- |
- |     this is *NOT* a standard xdr routine. I named it this way, because
- |     it invites people to use the other xdr routines.
- |     It is introduced to store specifically 3d coordinates of molecules
- |     (as found in molecular dynamics) and it writes it in a compressed way.
- |     It starts by multiplying all numbers by precision and
- |     rounding the result to integer. effectively converting
- |     all floating point numbers to fixed point.
- |     it uses an algorithm for compression that is optimized for
- |     molecular data, but could be used for other 3d coordinates
- |     as well. There is subtantial overhead involved, so call this
- |     routine only if you have a large number of coordinates to read/write
- |
- | ________________________________________________________________________
- |
- | Below are the routines to be used by C programmers. Use the 'normal'
- | xdr routines to write integers, floats, etc (see man xdr)   
- |
- | int xdropen(XDR *xdrs, const char *filename, const char *type)
- |     This will open the file with the given filename and the 
- |     given mode. You should pass it an allocated XDR struct
- |     in xdrs, to be used in all other calls to xdr routines.
- |     Mode is 'w' to create, or update an file, and for all 
- |     other values of mode the file is opened for reading. 
- |     You need to call xdrclose to flush the output and close
- |     the file.
- |
- |     Note that you should not use xdrstdio_create, which
- |     comes with the standard xdr library.
- |
- | int xdrclose(XDR *xdrs)
- |     Flush the data to the file, and close the file;
- |     You should not use xdr_destroy (which comes standard
- |     with the xdr libraries).
- |      
- | int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision)
- |     This is \fInot\fR a standard xdr routine. I named it this 
- |     way, because it invites people to use the other xdr 
- |     routines.
- |
- |     (c) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-*/     
-
-
-#include <limits.h>
-#include <malloc.h>
-#include <math.h>
-#include <rpc/rpc.h>
-#include <rpc/xdr.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include "xdrf.h"
-
-int ftocstr(char *, int, char *, int);
-int ctofstr(char *, int, char *);
-
-#define MAXID 20
-static FILE *xdrfiles[MAXID];
-static XDR *xdridptr[MAXID];
-static char xdrmodes[MAXID];
-static unsigned int cnt;
-
-typedef void (* FUNCTION(xdrfproc)) (int *, void *, int *);
-
-void
-FUNCTION(xdrfbool) ARGS(`xdrid, pb, ret')
-int *xdrid, *ret;
-int *pb;
-{
-       *ret = xdr_bool(xdridptr[*xdrid], (bool_t *) pb);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrfchar) ARGS(`xdrid, cp, ret')
-int *xdrid, *ret;
-char *cp;
-{
-       *ret = xdr_char(xdridptr[*xdrid], cp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfdouble) ARGS(`xdrid, dp, ret')
-int *xdrid, *ret;
-double *dp;
-{
-       *ret = xdr_double(xdridptr[*xdrid], dp);
-       cnt += sizeof(double);
-}
-
-void
-FUNCTION(xdrffloat) ARGS(`xdrid, fp, ret')
-int *xdrid, *ret;
-float *fp;
-{
-       *ret = xdr_float(xdridptr[*xdrid], fp);
-       cnt += sizeof(float);
-}
-
-void
-FUNCTION(xdrfint) ARGS(`xdrid, ip, ret')
-int *xdrid, *ret;
-int *ip;
-{
-       *ret = xdr_int(xdridptr[*xdrid], ip);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrflong) ARGS(`xdrid, lp, ret')
-int *xdrid, *ret;
-long *lp;
-{
-       *ret = xdr_long(xdridptr[*xdrid], lp);
-       cnt += sizeof(long);
-}
-
-void
-FUNCTION(xdrfshort) ARGS(`xdrid, sp, ret')
-int *xdrid, *ret;
-short *sp;
-{
-       *ret = xdr_short(xdridptr[*xdrid], sp);
-       cnt += sizeof(sp);
-}
-
-void
-FUNCTION(xdrfuchar) ARGS(`xdrid, ucp, ret')
-int *xdrid, *ret;
-char *ucp;
-{
-       *ret = xdr_u_char(xdridptr[*xdrid], ucp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfulong) ARGS(`xdrid, ulp, ret')
-int *xdrid, *ret;
-unsigned long *ulp;
-{
-       *ret = xdr_u_long(xdridptr[*xdrid], ulp);
-       cnt += sizeof(unsigned long);
-}
-
-void
-FUNCTION(xdrfushort) ARGS(`xdrid, usp, ret')
-int *xdrid, *ret;
-unsigned short *usp;
-{
-       *ret = xdr_u_short(xdridptr[*xdrid], usp);
-       cnt += sizeof(unsigned short);
-}
-
-void 
-FUNCTION(xdrf3dfcoord) ARGS(`xdrid, fp, size, precision, ret')
-int *xdrid, *ret;
-float *fp;
-int *size;
-float *precision;
-{
-       *ret = xdr3dfcoord(xdridptr[*xdrid], fp, size, precision);
-}
-
-void
-FUNCTION(xdrfstring) ARGS(`xdrid, STRING_ARG(sp), maxsize, ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-int *maxsize;
-{
-       char *tsp;
-
-       tsp = (char*) malloc(((STRING_LEN(sp)) + 1) * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, *maxsize+1, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int) *maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += *maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfwrapstring) ARGS(`xdrid,  STRING_ARG(sp), ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-{
-       char *tsp;
-       int maxsize;
-       maxsize = (STRING_LEN(sp)) + 1;
-       tsp = (char*) malloc(maxsize * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, maxsize, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int)maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfopaque) ARGS(`xdrid, cp, ccnt, ret')
-int *xdrid, *ret;
-caddr_t *cp;
-int *ccnt;
-{
-       *ret = xdr_opaque(xdridptr[*xdrid], (caddr_t)*cp, (u_int)*ccnt);
-       cnt += *ccnt;
-}
-
-void
-FUNCTION(xdrfsetpos) ARGS(`xdrid, pos, ret')
-int *xdrid, *ret;
-int *pos;
-{
-       *ret = xdr_setpos(xdridptr[*xdrid], (u_int) *pos);
-}
-
-void
-FUNCTION(xdrf) ARGS(`xdrid, pos')
-int *xdrid, *pos;
-{
-       *pos = xdr_getpos(xdridptr[*xdrid]);
-}
-
-void
-FUNCTION(xdrfvector) ARGS(`xdrid, cp, size, elproc, ret')
-int *xdrid, *ret;
-char *cp;
-int *size;
-FUNCTION(xdrfproc) elproc;
-{
-       int lcnt;
-       cnt = 0;
-       for (lcnt = 0; lcnt < *size; lcnt++) {
-               elproc(xdrid, (cp+cnt) , ret);
-       }
-}
-
-
-void
-FUNCTION(xdrfclose) ARGS(`xdrid, ret')
-int *xdrid;
-int *ret;
-{
-       *ret = xdrclose(xdridptr[*xdrid]);
-       cnt = 0;
-}
-
-void
-FUNCTION(xdrfopen) ARGS(`xdrid,  STRING_ARG(fp), STRING_ARG(mode), ret')
-int *xdrid;
-STRING_ARG_DECL(fp);
-STRING_ARG_DECL(mode);
-int *ret;
-{
-       char fname[512];
-       char fmode[3];
-
-       if (ftocstr(fname, sizeof(fname), STRING_PTR(fp), STRING_LEN(fp))) {
-               *ret = 0;
-       }
-       if (ftocstr(fmode, sizeof(fmode), STRING_PTR(mode),
-                       STRING_LEN(mode))) {
-               *ret = 0;
-       }
-
-       *xdrid = xdropen(NULL, fname, fmode);
-       if (*xdrid == 0)
-               *ret = 0;
-       else 
-               *ret = 1;       
-}
-
-/*___________________________________________________________________________
- |
- | what follows are the C routines for opening, closing xdr streams
- | and the routine to read/write compressed coordinates together
- | with some routines to assist in this task (those are marked
- | static and cannot be called from user programs)
-*/
-#define MAXABS INT_MAX-2
-
-#ifndef MIN
-#define MIN(x,y) ((x) < (y) ? (x):(y))
-#endif
-#ifndef MAX
-#define MAX(x,y) ((x) > (y) ? (x):(y))
-#endif
-#ifndef SQR
-#define SQR(x) ((x)*(x))
-#endif
-static int magicints[] = {
-    0, 0, 0, 0, 0, 0, 0, 0, 0,
-    8, 10, 12, 16, 20, 25, 32, 40, 50, 64,
-    80, 101, 128, 161, 203, 256, 322, 406, 512, 645,
-    812, 1024, 1290, 1625, 2048, 2580, 3250, 4096, 5060, 6501,
-    8192, 10321, 13003, 16384, 20642, 26007, 32768, 41285, 52015, 65536,
-    82570, 104031, 131072, 165140, 208063, 262144, 330280, 416127, 524287, 660561,
-    832255, 1048576, 1321122, 1664510, 2097152, 2642245, 3329021, 4194304, 5284491, 6658042,
-    8388607, 10568983, 13316085, 16777216 };
-
-#define FIRSTIDX 9
-/* note that magicints[FIRSTIDX-1] == 0 */
-#define LASTIDX (sizeof(magicints) / sizeof(*magicints))
-
-
-/*__________________________________________________________________________
- |
- | xdropen - open xdr file
- |
- | This versions differs from xdrstdio_create, because I need to know
- | the state of the file (read or write) so I can use xdr3dfcoord
- | in eigther read or write mode, and the file descriptor
- | so I can close the file (something xdr_destroy doesn't do).
- |
-*/
-
-int xdropen(XDR *xdrs, const char *filename, const char *type) {
-    static int init_done = 0;
-    enum xdr_op lmode;
-    int xdrid;
-    
-    if (init_done == 0) {
-       for (xdrid = 1; xdrid < MAXID; xdrid++) {
-           xdridptr[xdrid] = NULL;
-       }
-       init_done = 1;
-    }
-    xdrid = 1;
-    while (xdrid < MAXID && xdridptr[xdrid] != NULL) {
-       xdrid++;
-    }
-    if (xdrid == MAXID) {
-       return 0;
-    }
-    if (*type == 'w' || *type == 'W') {
-           type = "w+";
-           lmode = XDR_ENCODE;
-    } else {
-           type = "r";
-           lmode = XDR_DECODE;
-    }
-    xdrfiles[xdrid] = fopen(filename, type);
-    if (xdrfiles[xdrid] == NULL) {
-       xdrs = NULL;
-       return 0;
-    }
-    xdrmodes[xdrid] = *type;
-    /* next test isn't usefull in the case of C language
-     * but is used for the Fortran interface
-     * (C users are expected to pass the address of an already allocated
-     * XDR staructure)
-     */
-    if (xdrs == NULL) {
-       xdridptr[xdrid] = (XDR *) malloc(sizeof(XDR));
-       xdrstdio_create(xdridptr[xdrid], xdrfiles[xdrid], lmode);
-    } else {
-       xdridptr[xdrid] = xdrs;
-       xdrstdio_create(xdrs, xdrfiles[xdrid], lmode);
-    }
-    return xdrid;
-}
-
-/*_________________________________________________________________________
- |
- | xdrclose - close a xdr file
- |
- | This will flush the xdr buffers, and destroy the xdr stream.
- | It also closes the associated file descriptor (this is *not*
- | done by xdr_destroy).
- |
-*/
-int xdrclose(XDR *xdrs) {
-    int xdrid;
-    
-    if (xdrs == NULL) {
-       fprintf(stderr, "xdrclose: passed a NULL pointer\n");
-       exit(1);
-    }
-    for (xdrid = 1; xdrid < MAXID; xdrid++) {
-       if (xdridptr[xdrid] == xdrs) {
-           
-           xdr_destroy(xdrs);
-           fclose(xdrfiles[xdrid]);
-           xdridptr[xdrid] = NULL;
-           return 1;
-       }
-    } 
-    fprintf(stderr, "xdrclose: no such open xdr file\n");
-    exit(1);
-    
-}
-
-/*____________________________________________________________________________
- |
- | sendbits - encode num into buf using the specified number of bits
- |
- | This routines appends the value of num to the bits already present in
- | the array buf. You need to give it the number of bits to use and you
- | better make sure that this number of bits is enough to hold the value
- | Also num must be positive.
- |
-*/
-
-static void sendbits(int buf[], int num_of_bits, int num) {
-    
-    unsigned int cnt, lastbyte;
-    int lastbits;
-    unsigned char * cbuf;
-    
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = (unsigned int) buf[0];
-    lastbits = buf[1];
-    lastbyte =(unsigned int) buf[2];
-    while (num_of_bits >= 8) {
-       lastbyte = (lastbyte << 8) | ((num >> (num_of_bits -8)) /* & 0xff*/);
-       cbuf[cnt++] = lastbyte >> lastbits;
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       lastbyte = (lastbyte << num_of_bits) | num;
-       lastbits += num_of_bits;
-       if (lastbits >= 8) {
-           lastbits -= 8;
-           cbuf[cnt++] = lastbyte >> lastbits;
-       }
-    }
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    if (lastbits>0) {
-       cbuf[cnt] = lastbyte << (8 - lastbits);
-    }
-}
-
-/*_________________________________________________________________________
- |
- | sizeofint - calculate bitsize of an integer
- |
- | return the number of bits needed to store an integer with given max size
- |
-*/
-
-static int sizeofint(const int size) {
-    unsigned int num = 1;
-    int num_of_bits = 0;
-    
-    while (size >= num && num_of_bits < 32) {
-       num_of_bits++;
-       num <<= 1;
-    }
-    return num_of_bits;
-}
-
-/*___________________________________________________________________________
- |
- | sizeofints - calculate 'bitsize' of compressed ints
- |
- | given the number of small unsigned integers and the maximum value
- | return the number of bits needed to read or write them with the
- | routines receiveints and sendints. You need this parameter when
- | calling these routines. Note that for many calls I can use
- | the variable 'smallidx' which is exactly the number of bits, and
- | So I don't need to call 'sizeofints for those calls.
-*/
-
-static int sizeofints( const int num_of_ints, unsigned int sizes[]) {
-    int i, num;
-    unsigned int num_of_bytes, num_of_bits, bytes[32], bytecnt, tmp;
-    num_of_bytes = 1;
-    bytes[0] = 1;
-    num_of_bits = 0;
-    for (i=0; i < num_of_ints; i++) {  
-       tmp = 0;
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    num = 1;
-    num_of_bytes--;
-    while (bytes[num_of_bytes] >= num) {
-       num_of_bits++;
-       num *= 2;
-    }
-    return num_of_bits + num_of_bytes * 8;
-
-}
-    
-/*____________________________________________________________________________
- |
- | sendints - send a small set of small integers in compressed format
- |
- | this routine is used internally by xdr3dfcoord, to send a set of
- | small integers to the buffer. 
- | Multiplication with fixed (specified maximum ) sizes is used to get
- | to one big, multibyte integer. Allthough the routine could be
- | modified to handle sizes bigger than 16777216, or more than just
- | a few integers, this is not done, because the gain in compression
- | isn't worth the effort. Note that overflowing the multiplication
- | or the byte buffer (32 bytes) is unchecked and causes bad results.
- |
- */
-static void sendints(int buf[], const int num_of_ints, const int num_of_bits,
-       unsigned int sizes[], unsigned int nums[]) {
-
-    int i;
-    unsigned int bytes[32], num_of_bytes, bytecnt, tmp;
-
-    tmp = nums[0];
-    num_of_bytes = 0;
-    do {
-       bytes[num_of_bytes++] = tmp & 0xff;
-       tmp >>= 8;
-    } while (tmp != 0);
-
-    for (i = 1; i < num_of_ints; i++) {
-       if (nums[i] >= sizes[i]) {
-           fprintf(stderr,"major breakdown in sendints num %d doesn't "
-                   "match size %d\n", nums[i], sizes[i]);
-           exit(1);
-       }
-       /* use one step multiply */    
-       tmp = nums[i];
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    if (num_of_bits >= num_of_bytes * 8) {
-       for (i = 0; i < num_of_bytes; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits - num_of_bytes * 8, 0);
-    } else {
-       for (i = 0; i < num_of_bytes-1; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits- (num_of_bytes -1) * 8, bytes[i]);
-    }
-}
-
-
-/*___________________________________________________________________________
- |
- | receivebits - decode number from buf using specified number of bits
- | 
- | extract the number of bits from the array buf and construct an integer
- | from it. Return that value.
- |
-*/
-
-static int receivebits(int buf[], int num_of_bits) {
-
-    int cnt, num; 
-    unsigned int lastbits, lastbyte;
-    unsigned char * cbuf;
-    int mask = (1 << num_of_bits) -1;
-
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = buf[0];
-    lastbits = (unsigned int) buf[1];
-    lastbyte = (unsigned int) buf[2];
-    
-    num = 0;
-    while (num_of_bits >= 8) {
-       lastbyte = ( lastbyte << 8 ) | cbuf[cnt++];
-       num |=  (lastbyte >> lastbits) << (num_of_bits - 8);
-       num_of_bits -=8;
-    }
-    if (num_of_bits > 0) {
-       if (lastbits < num_of_bits) {
-           lastbits += 8;
-           lastbyte = (lastbyte << 8) | cbuf[cnt++];
-       }
-       lastbits -= num_of_bits;
-       num |= (lastbyte >> lastbits) & ((1 << num_of_bits) -1);
-    }
-    num &= mask;
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    return num; 
-}
-
-/*____________________________________________________________________________
- |
- | receiveints - decode 'small' integers from the buf array
- |
- | this routine is the inverse from sendints() and decodes the small integers
- | written to buf by calculating the remainder and doing divisions with
- | the given sizes[]. You need to specify the total number of bits to be
- | used from buf in num_of_bits.
- |
-*/
-
-static void receiveints(int buf[], const int num_of_ints, int num_of_bits,
-       unsigned int sizes[], int nums[]) {
-    int bytes[32];
-    int i, j, num_of_bytes, p, num;
-    
-    bytes[1] = bytes[2] = bytes[3] = 0;
-    num_of_bytes = 0;
-    while (num_of_bits > 8) {
-       bytes[num_of_bytes++] = receivebits(buf, 8);
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       bytes[num_of_bytes++] = receivebits(buf, num_of_bits);
-    }
-    for (i = num_of_ints-1; i > 0; i--) {
-       num = 0;
-       for (j = num_of_bytes-1; j >=0; j--) {
-           num = (num << 8) | bytes[j];
-           p = num / sizes[i];
-           bytes[j] = p;
-           num = num - p * sizes[i];
-       }
-       nums[i] = num;
-    }
-    nums[0] = bytes[0] | (bytes[1] << 8) | (bytes[2] << 16) | (bytes[3] << 24);
-}
-    
-/*____________________________________________________________________________
- |
- | xdr3dfcoord - read or write compressed 3d coordinates to xdr file.
- |
- | this routine reads or writes (depending on how you opened the file with
- | xdropen() ) a large number of 3d coordinates (stored in *fp).
- | The number of coordinates triplets to write is given by *size. On
- | read this number may be zero, in which case it reads as many as were written
- | or it may specify the number if triplets to read (which should match the
- | number written).
- | Compression is achieved by first converting all floating numbers to integer
- | using multiplication by *precision and rounding to the nearest integer.
- | Then the minimum and maximum value are calculated to determine the range.
- | The limited range of integers so found, is used to compress the coordinates.
- | In addition the differences between succesive coordinates is calculated.
- | If the difference happens to be 'small' then only the difference is saved,
- | compressing the data even more. The notion of 'small' is changed dynamically
- | and is enlarged or reduced whenever needed or possible.
- | Extra compression is achieved in the case of GROMOS and coordinates of
- | water molecules. GROMOS first writes out the Oxygen position, followed by
- | the two hydrogens. In order to make the differences smaller (and thereby
- | compression the data better) the order is changed into first one hydrogen
- | then the oxygen, followed by the other hydrogen. This is rather special, but
- | it shouldn't harm in the general case.
- |
- */
-int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) {
-    
-
-    static int *ip = NULL;
-    static int oldsize;
-    static int *buf;
-
-    int minint[3], maxint[3], mindiff, *lip, diff;
-    int lint1, lint2, lint3, oldlint1, oldlint2, oldlint3, smallidx;
-    int minidx, maxidx;
-    unsigned sizeint[3], sizesmall[3], bitsizeint[3], size3, *luip;
-    int flag, k;
-    int small, smaller, larger, i, is_small, is_smaller, run, prevrun;
-    float *lfp, lf;
-    int tmp, *thiscoord,  prevcoord[3];
-    unsigned int tmpcoord[30];
-
-    int bufsize, xdrid, lsize;
-    unsigned int bitsize;
-    float inv_precision;
-    int errval = 1;
-
-    /* find out if xdrs is opened for reading or for writing */
-    xdrid = 0;
-    while (xdridptr[xdrid] != xdrs) {
-       xdrid++;
-       if (xdrid >= MAXID) {
-           fprintf(stderr, "xdr error. no open xdr stream\n");
-           exit (1);
-       }
-    }
-    if (xdrmodes[xdrid] == 'w') {
-
-       /* xdrs is open for writing */
-
-       if (xdr_int(xdrs, size) == 0)
-           return 0;
-       size3 = *size * 3;
-       /* when the number of coordinates is small, don't try to compress; just
-        * write them as floats using xdr_vector
-        */
-       if (*size <= 9 ) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       /* buf[0-2] are special and do not contain actual data */
-       buf[0] = buf[1] = buf[2] = 0;
-       minint[0] = minint[1] = minint[2] = INT_MAX;
-       maxint[0] = maxint[1] = maxint[2] = INT_MIN;
-       prevrun = -1;
-       lfp = fp;
-       lip = ip;
-       mindiff = INT_MAX;
-       oldlint1 = oldlint2 = oldlint3 = 0;
-       while(lfp < fp + size3 ) {
-           /* find nearest integer */
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint1 = lf;
-           if (lint1 < minint[0]) minint[0] = lint1;
-           if (lint1 > maxint[0]) maxint[0] = lint1;
-           *lip++ = lint1;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint2 = lf;
-           if (lint2 < minint[1]) minint[1] = lint2;
-           if (lint2 > maxint[1]) maxint[1] = lint2;
-           *lip++ = lint2;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint3 = lf;
-           if (lint3 < minint[2]) minint[2] = lint3;
-           if (lint3 > maxint[2]) maxint[2] = lint3;
-           *lip++ = lint3;
-           lfp++;
-           diff = abs(oldlint1-lint1)+abs(oldlint2-lint2)+abs(oldlint3-lint3);
-           if (diff < mindiff && lfp > fp + 3)
-               mindiff = diff;
-           oldlint1 = lint1;
-           oldlint2 = lint2;
-           oldlint3 = lint3;
-       }
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-       
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-       
-       if ((float)maxint[0] - (float)minint[0] >= MAXABS ||
-               (float)maxint[1] - (float)minint[1] >= MAXABS ||
-               (float)maxint[2] - (float)minint[2] >= MAXABS) {
-           /* turning value in unsigned by subtracting minint
-            * would cause overflow
-            */
-           errval = 0;
-       }
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       lip = ip;
-       luip = (unsigned int *) ip;
-       smallidx = FIRSTIDX;
-       while (smallidx < LASTIDX && magicints[smallidx] < mindiff) {
-           smallidx++;
-       }
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-       larger = magicints[maxidx] / 2;
-       i = 0;
-       while (i < *size) {
-           is_small = 0;
-           thiscoord = (int *)(luip) + i * 3;
-           if (smallidx < maxidx && i >= 1 &&
-                   abs(thiscoord[0] - prevcoord[0]) < larger &&
-                   abs(thiscoord[1] - prevcoord[1]) < larger &&
-                   abs(thiscoord[2] - prevcoord[2]) < larger) {
-               is_smaller = 1;
-           } else if (smallidx > minidx) {
-               is_smaller = -1;
-           } else {
-               is_smaller = 0;
-           }
-           if (i + 1 < *size) {
-               if (abs(thiscoord[0] - thiscoord[3]) < small &&
-                       abs(thiscoord[1] - thiscoord[4]) < small &&
-                       abs(thiscoord[2] - thiscoord[5]) < small) {
-                   /* interchange first with second atom for better
-                    * compression of water molecules
-                    */
-                   tmp = thiscoord[0]; thiscoord[0] = thiscoord[3];
-                       thiscoord[3] = tmp;
-                   tmp = thiscoord[1]; thiscoord[1] = thiscoord[4];
-                       thiscoord[4] = tmp;
-                   tmp = thiscoord[2]; thiscoord[2] = thiscoord[5];
-                       thiscoord[5] = tmp;
-                   is_small = 1;
-               }
-    
-           }
-           tmpcoord[0] = thiscoord[0] - minint[0];
-           tmpcoord[1] = thiscoord[1] - minint[1];
-           tmpcoord[2] = thiscoord[2] - minint[2];
-           if (bitsize == 0) {
-               sendbits(buf, bitsizeint[0], tmpcoord[0]);
-               sendbits(buf, bitsizeint[1], tmpcoord[1]);
-               sendbits(buf, bitsizeint[2], tmpcoord[2]);
-           } else {
-               sendints(buf, 3, bitsize, sizeint, tmpcoord);
-           }
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           thiscoord = thiscoord + 3;
-           i++;
-           
-           run = 0;
-           if (is_small == 0 && is_smaller == -1)
-               is_smaller = 0;
-           while (is_small && run < 8*3) {
-               if (is_smaller == -1 && (
-                       SQR(thiscoord[0] - prevcoord[0]) +
-                       SQR(thiscoord[1] - prevcoord[1]) +
-                       SQR(thiscoord[2] - prevcoord[2]) >= smaller * smaller)) {
-                   is_smaller = 0;
-               }
-
-               tmpcoord[run++] = thiscoord[0] - prevcoord[0] + small;
-               tmpcoord[run++] = thiscoord[1] - prevcoord[1] + small;
-               tmpcoord[run++] = thiscoord[2] - prevcoord[2] + small;
-               
-               prevcoord[0] = thiscoord[0];
-               prevcoord[1] = thiscoord[1];
-               prevcoord[2] = thiscoord[2];
-
-               i++;
-               thiscoord = thiscoord + 3;
-               is_small = 0;
-               if (i < *size &&
-                       abs(thiscoord[0] - prevcoord[0]) < small &&
-                       abs(thiscoord[1] - prevcoord[1]) < small &&
-                       abs(thiscoord[2] - prevcoord[2]) < small) {
-                   is_small = 1;
-               }
-           }
-           if (run != prevrun || is_smaller != 0) {
-               prevrun = run;
-               sendbits(buf, 1, 1); /* flag the change in run-length */
-               sendbits(buf, 5, run+is_smaller+1);
-           } else {
-               sendbits(buf, 1, 0); /* flag the fact that runlength did not change */
-           }
-           for (k=0; k < run; k+=3) {
-               sendints(buf, 3, smallidx, sizesmall, &tmpcoord[k]);    
-           }
-           if (is_smaller != 0) {
-               smallidx += is_smaller;
-               if (is_smaller < 0) {
-                   small = smaller;
-                   smaller = magicints[smallidx-1] / 2;
-               } else {
-                   smaller = small;
-                   small = magicints[smallidx] / 2;
-               }
-               sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-           }
-       }
-       if (buf[1] != 0) buf[0]++;;
-       xdr_int(xdrs, &(buf[0])); /* buf[0] holds the length in bytes */
-       return errval * (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]));
-    } else {
-       
-       /* xdrs is open for reading */
-       
-       if (xdr_int(xdrs, &lsize) == 0) 
-           return 0;
-       if (*size != 0 && lsize != *size) {
-           fprintf(stderr, "wrong number of coordinates in xdr3dfcoor; "
-                   "%d arg vs %d in file", *size, lsize);
-       }
-       *size = lsize;
-       size3 = *size * 3;
-       if (*size <= 9) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-               
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       larger = magicints[maxidx];
-
-       /* buf[0] holds the length in bytes */
-
-       if (xdr_int(xdrs, &(buf[0])) == 0)
-           return 0;
-       if (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]) == 0)
-           return 0;
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       lfp = fp;
-       inv_precision = 1.0 / * precision;
-       run = 0;
-       i = 0;
-       lip = ip;
-       while ( i < lsize ) {
-           thiscoord = (int *)(lip) + i * 3;
-
-           if (bitsize == 0) {
-               thiscoord[0] = receivebits(buf, bitsizeint[0]);
-               thiscoord[1] = receivebits(buf, bitsizeint[1]);
-               thiscoord[2] = receivebits(buf, bitsizeint[2]);
-           } else {
-               receiveints(buf, 3, bitsize, sizeint, thiscoord);
-           }
-           
-           i++;
-           thiscoord[0] += minint[0];
-           thiscoord[1] += minint[1];
-           thiscoord[2] += minint[2];
-           
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           
-          
-           flag = receivebits(buf, 1);
-           is_smaller = 0;
-           if (flag == 1) {
-               run = receivebits(buf, 5);
-               is_smaller = run % 3;
-               run -= is_smaller;
-               is_smaller--;
-           }
-           if (run > 0) {
-               thiscoord += 3;
-               for (k = 0; k < run; k+=3) {
-                   receiveints(buf, 3, smallidx, sizesmall, thiscoord);
-                   i++;
-                   thiscoord[0] += prevcoord[0] - small;
-                   thiscoord[1] += prevcoord[1] - small;
-                   thiscoord[2] += prevcoord[2] - small;
-                   if (k == 0) {
-                       /* interchange first with second atom for better
-                        * compression of water molecules
-                        */
-                       tmp = thiscoord[0]; thiscoord[0] = prevcoord[0];
-                               prevcoord[0] = tmp;
-                       tmp = thiscoord[1]; thiscoord[1] = prevcoord[1];
-                               prevcoord[1] = tmp;
-                       tmp = thiscoord[2]; thiscoord[2] = prevcoord[2];
-                               prevcoord[2] = tmp;
-                       *lfp++ = prevcoord[0] * inv_precision;
-                       *lfp++ = prevcoord[1] * inv_precision;
-                       *lfp++ = prevcoord[2] * inv_precision;
-                   } else {
-                       prevcoord[0] = thiscoord[0];
-                       prevcoord[1] = thiscoord[1];
-                       prevcoord[2] = thiscoord[2];
-                   }
-                   *lfp++ = thiscoord[0] * inv_precision;
-                   *lfp++ = thiscoord[1] * inv_precision;
-                   *lfp++ = thiscoord[2] * inv_precision;
-               }
-           } else {
-               *lfp++ = thiscoord[0] * inv_precision;
-               *lfp++ = thiscoord[1] * inv_precision;
-               *lfp++ = thiscoord[2] * inv_precision;          
-           }
-           smallidx += is_smaller;
-           if (is_smaller < 0) {
-               small = smaller;
-               if (smallidx > FIRSTIDX) {
-                   smaller = magicints[smallidx - 1] /2;
-               } else {
-                   smaller = 0;
-               }
-           } else if (is_smaller > 0) {
-               smaller = small;
-               small = magicints[smallidx] / 2;
-           }
-           sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       }
-    }
-    return 1;
-}
-
-
-   
diff --git a/source/unres/src_MD-M/xdrf2pdb/xdrf_local/underscore.m4 b/source/unres/src_MD-M/xdrf2pdb/xdrf_local/underscore.m4
deleted file mode 100644 (file)
index 4d620a0..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-divert(-1)
-undefine(`len')
-#
-# append an underscore to FORTRAN function names
-#
-define(`FUNCTION',`$1_')
-#
-# FORTRAN character strings are passed as follows:
-# a pointer to the base of the string is passed in the normal
-# argument list, and the length is passed by value as an extra
-# argument, after all of the other arguments.
-#
-define(`ARGS',`($1`'undivert(1))')
-define(`SAVE',`divert(1)$1`'divert(0)')
-define(`STRING_ARG',`$1_ptr`'SAVE(`, $1_len')')
-define(`STRING_ARG_DECL',`char * $1_ptr; int $1_len')
-define(`STRING_LEN',`$1_len')
-define(`STRING_PTR',`$1_ptr')
-divert(0)
diff --git a/source/unres/src_MD-M/xdrf2pdb/xdrf_local/xdrf.h b/source/unres/src_MD-M/xdrf2pdb/xdrf_local/xdrf.h
deleted file mode 100644 (file)
index dedf5a2..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-/*_________________________________________________________________
- |
- | xdrf.h - include file for C routines that want to use the 
- |         functions below.
-*/
-
-int xdropen(XDR *xdrs, const char *filename, const char *type);
-int xdrclose(XDR *xdrs) ;
-int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) ;
-
diff --git a/source/unres/src_MD-M/xdrf_em64/Makefile b/source/unres/src_MD-M/xdrf_em64/Makefile
deleted file mode 100644 (file)
index f03276e..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-# This make file is part of the xdrf package.
-#
-# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-#
-# 2006 modified by Cezary Czaplewski
-
-# Set C compiler and flags for ARCH
-CC      = cc
-CFLAGS         = -O 
-
-M4     = m4
-M4FILE = underscore.m4
-
-libxdrf.a:  libxdrf.o ftocstr.o
-       ar cr libxdrf.a $?
-
-clean:
-       rm -f libxdrf.o ftocstr.o libxdrf.a 
-
-ftocstr.o: ftocstr.c
-       $(CC) $(CFLAGS) -c ftocstr.c
-
-libxdrf.o:     libxdrf.m4 $(M4FILE)
-       $(M4) $(M4FILE) libxdrf.m4 > libxdrf.c
-       $(CC) $(CFLAGS) -c libxdrf.c
-       rm -f libxdrf.c
-
diff --git a/source/unres/src_MD-M/xdrf_em64/Makefile_jubl b/source/unres/src_MD-M/xdrf_em64/Makefile_jubl
deleted file mode 100644 (file)
index 8dc35cf..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-# This make file is part of the xdrf package.
-#
-# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-#
-# 2006 modified by Cezary Czaplewski
-
-# Set C compiler and flags for ARCH
-BGLSYS = /bgl/BlueLight/ppcfloor/bglsys
-
-CC = /usr/bin/blrts_xlc
-CPPC = /usr/bin/blrts_xlc
-
-CFLAGS= -O2 -I$(BGLSYS)/include -L$(BGLSYS)/lib -qarch=440d -qtune=440
-
-M4     = m4
-M4FILE = RS6K.m4
-
-libxdrf.a:  libxdrf.o ftocstr.o xdr_array.o  xdr.o  xdr_float.o  xdr_stdio.o
-       ar cr libxdrf.a $?
-
-clean:
-       rm -f *.o libxdrf.a 
-
-ftocstr.o: ftocstr.c
-       $(CC) $(CFLAGS) -c ftocstr.c
-
-libxdrf.o:     libxdrf.m4 $(M4FILE)
-       $(M4) $(M4FILE) libxdrf.m4 > libxdrf.c
-       $(CC) $(CFLAGS) -c libxdrf.c
-#      rm -f libxdrf.c
-
diff --git a/source/unres/src_MD-M/xdrf_em64/Makefile_linux b/source/unres/src_MD-M/xdrf_em64/Makefile_linux
deleted file mode 100644 (file)
index f03276e..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-# This make file is part of the xdrf package.
-#
-# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-#
-# 2006 modified by Cezary Czaplewski
-
-# Set C compiler and flags for ARCH
-CC      = cc
-CFLAGS         = -O 
-
-M4     = m4
-M4FILE = underscore.m4
-
-libxdrf.a:  libxdrf.o ftocstr.o
-       ar cr libxdrf.a $?
-
-clean:
-       rm -f libxdrf.o ftocstr.o libxdrf.a 
-
-ftocstr.o: ftocstr.c
-       $(CC) $(CFLAGS) -c ftocstr.c
-
-libxdrf.o:     libxdrf.m4 $(M4FILE)
-       $(M4) $(M4FILE) libxdrf.m4 > libxdrf.c
-       $(CC) $(CFLAGS) -c libxdrf.c
-       rm -f libxdrf.c
-
diff --git a/source/unres/src_MD-M/xdrf_em64/Makefile~ b/source/unres/src_MD-M/xdrf_em64/Makefile~
deleted file mode 100644 (file)
index f0f81e5..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-# This make file is part of the xdrf package.
-#
-# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-#
-# 2006 modified by Cezary Czaplewski
-
-# Set C compiler and flags for ARCH
-BGLSYS = /bgl/BlueLight/ppcfloor/bglsys
-
-CC = /usr/bin/blrts_xlc
-CPPC = /usr/bin/blrts_xlc
-
-CFLAGS= -O2 -I$(BGLSYS)/include -L$(BGLSYS)/lib -qarch=440d -qtune=440
-
-M4     = m4
-M4FILE = RS6K.m4
-
-libxdrf.a:  libxdrf.o ftocstr.o xdr_array.o  xdr.o  xdr_float.o  xdr_stdio.o
-       ar cr libxdrf.a $?
-
-clean:
-       rm -f libxdrf.o ftocstr.o libxdrf.a 
-
-ftocstr.o: ftocstr.c
-       $(CC) $(CFLAGS) -c ftocstr.c
-
-libxdrf.o:     libxdrf.m4 $(M4FILE)
-       $(M4) $(M4FILE) libxdrf.m4 > libxdrf.c
-       $(CC) $(CFLAGS) -c libxdrf.c
-#      rm -f libxdrf.c
-
diff --git a/source/unres/src_MD-M/xdrf_em64/RS6K.m4 b/source/unres/src_MD-M/xdrf_em64/RS6K.m4
deleted file mode 100644 (file)
index 0331d97..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-divert(-1)
-undefine(`len')
-#
-# do nothing special to FORTRAN function names
-#
-define(`FUNCTION',`$1')
-#
-# FORTRAN character strings are passed as follows:
-# a pointer to the base of the string is passed in the normal
-# argument list, and the length is passed by value as an extra
-# argument, after all of the other arguments.
-#
-define(`ARGS',`($1`'undivert(1))')
-define(`SAVE',`divert(1)$1`'divert(0)')
-define(`STRING_ARG',`$1_ptr`'SAVE(`, $1_len')')
-define(`STRING_ARG_DECL',`char * $1_ptr; int $1_len')
-define(`STRING_LEN',`$1_len')
-define(`STRING_PTR',`$1_ptr')
-divert(0)
-
diff --git a/source/unres/src_MD-M/xdrf_em64/ftocstr.c b/source/unres/src_MD-M/xdrf_em64/ftocstr.c
deleted file mode 100644 (file)
index ed2113f..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-int ftocstr(ds, dl, ss, sl)
-    char *ds, *ss;      /* dst, src ptrs */
-    int dl;             /* dst max len */
-    int sl;             /* src len */
-{
-    char *p;
-
-    for (p = ss + sl; --p >= ss && *p == ' '; ) ;
-    sl = p - ss + 1;
-    dl--;
-    ds[0] = 0;
-    if (sl > dl)
-        return 1;
-    while (sl--)
-       (*ds++ = *ss++);
-    *ds = '\0';
-    return 0;
-}
-
-
-int ctofstr(ds, dl, ss)
-       char *ds;               /* dest space */
-       int dl;                 /* max dest length */
-       char *ss;               /* src string (0-term) */
-{
-    while (dl && *ss) {
-       *ds++ = *ss++;
-       dl--;
-    }
-    while (dl--)
-       *ds++ = ' ';
-    return 0;
-}
diff --git a/source/unres/src_MD-M/xdrf_em64/ftocstr.o b/source/unres/src_MD-M/xdrf_em64/ftocstr.o
deleted file mode 100644 (file)
index 09aeb9c..0000000
Binary files a/source/unres/src_MD-M/xdrf_em64/ftocstr.o and /dev/null differ
diff --git a/source/unres/src_MD-M/xdrf_em64/libxdrf.a b/source/unres/src_MD-M/xdrf_em64/libxdrf.a
deleted file mode 100644 (file)
index 582ad55..0000000
Binary files a/source/unres/src_MD-M/xdrf_em64/libxdrf.a and /dev/null differ
diff --git a/source/unres/src_MD-M/xdrf_em64/libxdrf.m4 b/source/unres/src_MD-M/xdrf_em64/libxdrf.m4
deleted file mode 100644 (file)
index a6da458..0000000
+++ /dev/null
@@ -1,1238 +0,0 @@
-/*____________________________________________________________________________
- |
- | libxdrf - portable fortran interface to xdr. some xdr routines
- |          are C routines for compressed coordinates
- |
- | version 1.1
- |
- | This collection of routines is intended to write and read
- | data in a portable way to a file, so data written on one type
- | of machine can be read back on a different type.
- |
- | all fortran routines use an integer 'xdrid', which is an id to the
- | current xdr file, and is set by xdrfopen.
- | most routines have in integer 'ret' which is the return value.
- | The value of 'ret' is zero on failure, and most of the time one
- | on succes.
- |
- | There are three routines useful for C users:
- |  xdropen(), xdrclose(), xdr3dfcoord().
- | The first two replace xdrstdio_create and xdr_destroy, and *must* be
- | used when you plan to use xdr3dfcoord(). (they are also a bit
- | easier to interface). For writing data other than compressed coordinates 
- | you should use the standard C xdr routines (see xdr man page)
- |
- | xdrfopen(xdrid, filename, mode, ret)
- |     character *(*) filename
- |     character *(*) mode
- |
- |     this will open the file with the given filename (string)
- |     and the given mode, it returns an id in xdrid, which is
- |     to be used in all other calls to xdrf routines.
- |     mode is 'w' to create, or update an file, for all other
- |     values of mode the file is opened for reading
- |
- |     you need to call xdrfclose to flush the output and close
- |     the file.
- |     Note that you should not use xdrstdio_create, which comes with the
- |     standard xdr library
- |
- | xdrfclose(xdrid, ret)
- |     flush the data to the file, and closes the file;
- |     You should not use xdr_destroy (which comes standard with
- |     the xdr libraries.
- |
- | xdrfbool(xdrid, bp, ret)
- |     integer pb
- |
- |     This filter produces values of either 1 or 0    
- |
- | xdrfchar(xdrid, cp, ret)
- |     character cp
- |
- |     filter that translate between characters and their xdr representation
- |     Note that the characters in not compressed and occupies 4 bytes.
- |
- | xdrfdouble(xdrid, dp, ret)
- |     double dp
- |
- |     read/write a double.
- |
- | xdrffloat(xdrid, fp, ret)
- |     float fp
- |
- |     read/write a float.
- |
- | xdrfint(xdrid, ip, ret)
- |     integer ip
- |
- |     read/write integer.
- |
- | xdrflong(xdrid, lp, ret)
- |     integer lp
- |
- |     this routine has a possible portablility problem due to 64 bits longs.
- |
- | xdrfshort(xdrid, sp, ret)
- |     integer *2 sp
- |
- | xdrfstring(xdrid, sp, maxsize, ret)
- |     character *(*)
- |     integer maxsize
- |
- |     read/write a string, with maximum length given by maxsize
- |
- | xdrfwrapstring(xdris, sp, ret)
- |     character *(*)
- |
- |     read/write a string (it is the same as xdrfstring accept that it finds
- |     the stringlength itself.
- |
- | xdrfvector(xdrid, cp, size, xdrfproc, ret)
- |     character *(*)
- |     integer size
- |     external xdrfproc
- |
- |     read/write an array pointed to by cp, with number of elements
- |     defined by 'size'. the routine 'xdrfproc' is the name
- |     of one of the above routines to read/write data (like xdrfdouble)
- |     In contrast with the c-version you don't need to specify the
- |     byte size of an element.
- |     xdrfstring is not allowed here (it is in the c version)
- |     
- | xdrf3dfcoord(xdrid, fp, size, precision, ret)
- |     real (*) fp
- |     real precision
- |     integer size
- |
- |     this is *NOT* a standard xdr routine. I named it this way, because
- |     it invites people to use the other xdr routines.
- |     It is introduced to store specifically 3d coordinates of molecules
- |     (as found in molecular dynamics) and it writes it in a compressed way.
- |     It starts by multiplying all numbers by precision and
- |     rounding the result to integer. effectively converting
- |     all floating point numbers to fixed point.
- |     it uses an algorithm for compression that is optimized for
- |     molecular data, but could be used for other 3d coordinates
- |     as well. There is subtantial overhead involved, so call this
- |     routine only if you have a large number of coordinates to read/write
- |
- | ________________________________________________________________________
- |
- | Below are the routines to be used by C programmers. Use the 'normal'
- | xdr routines to write integers, floats, etc (see man xdr)   
- |
- | int xdropen(XDR *xdrs, const char *filename, const char *type)
- |     This will open the file with the given filename and the 
- |     given mode. You should pass it an allocated XDR struct
- |     in xdrs, to be used in all other calls to xdr routines.
- |     Mode is 'w' to create, or update an file, and for all 
- |     other values of mode the file is opened for reading. 
- |     You need to call xdrclose to flush the output and close
- |     the file.
- |
- |     Note that you should not use xdrstdio_create, which
- |     comes with the standard xdr library.
- |
- | int xdrclose(XDR *xdrs)
- |     Flush the data to the file, and close the file;
- |     You should not use xdr_destroy (which comes standard
- |     with the xdr libraries).
- |      
- | int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision)
- |     This is \fInot\fR a standard xdr routine. I named it this 
- |     way, because it invites people to use the other xdr 
- |     routines.
- |
- |     (c) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-*/     
-
-
-#include <limits.h>
-#include <malloc.h>
-#include <math.h>
-/* #include <rpc/rpc.h>
-#include <rpc/xdr.h> */
-#include "xdr.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include "xdrf.h"
-
-int ftocstr(char *, int, char *, int);
-int ctofstr(char *, int, char *);
-
-#define MAXID 20
-static FILE *xdrfiles[MAXID];
-static XDR *xdridptr[MAXID];
-static char xdrmodes[MAXID];
-static unsigned int cnt;
-
-typedef void (* FUNCTION(xdrfproc)) (int *, void *, int *);
-
-void
-FUNCTION(xdrfbool) ARGS(`xdrid, pb, ret')
-int *xdrid, *ret;
-int *pb;
-{
-       *ret = xdr_bool(xdridptr[*xdrid], (bool_t *) pb);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrfchar) ARGS(`xdrid, cp, ret')
-int *xdrid, *ret;
-char *cp;
-{
-       *ret = xdr_char(xdridptr[*xdrid], cp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfdouble) ARGS(`xdrid, dp, ret')
-int *xdrid, *ret;
-double *dp;
-{
-       *ret = xdr_double(xdridptr[*xdrid], dp);
-       cnt += sizeof(double);
-}
-
-void
-FUNCTION(xdrffloat) ARGS(`xdrid, fp, ret')
-int *xdrid, *ret;
-float *fp;
-{
-       *ret = xdr_float(xdridptr[*xdrid], fp);
-       cnt += sizeof(float);
-}
-
-void
-FUNCTION(xdrfint) ARGS(`xdrid, ip, ret')
-int *xdrid, *ret;
-int *ip;
-{
-       *ret = xdr_int(xdridptr[*xdrid], ip);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrflong) ARGS(`xdrid, lp, ret')
-int *xdrid, *ret;
-long *lp;
-{
-       *ret = xdr_long(xdridptr[*xdrid], lp);
-       cnt += sizeof(long);
-}
-
-void
-FUNCTION(xdrfshort) ARGS(`xdrid, sp, ret')
-int *xdrid, *ret;
-short *sp;
-{
-       *ret = xdr_short(xdridptr[*xdrid], sp);
-       cnt += sizeof(sp);
-}
-
-void
-FUNCTION(xdrfuchar) ARGS(`xdrid, ucp, ret')
-int *xdrid, *ret;
-char *ucp;
-{
-       *ret = xdr_u_char(xdridptr[*xdrid], ucp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfulong) ARGS(`xdrid, ulp, ret')
-int *xdrid, *ret;
-unsigned long *ulp;
-{
-       *ret = xdr_u_long(xdridptr[*xdrid], ulp);
-       cnt += sizeof(unsigned long);
-}
-
-void
-FUNCTION(xdrfushort) ARGS(`xdrid, usp, ret')
-int *xdrid, *ret;
-unsigned short *usp;
-{
-       *ret = xdr_u_short(xdridptr[*xdrid], usp);
-       cnt += sizeof(unsigned short);
-}
-
-void 
-FUNCTION(xdrf3dfcoord) ARGS(`xdrid, fp, size, precision, ret')
-int *xdrid, *ret;
-float *fp;
-int *size;
-float *precision;
-{
-       *ret = xdr3dfcoord(xdridptr[*xdrid], fp, size, precision);
-}
-
-void
-FUNCTION(xdrfstring) ARGS(`xdrid, STRING_ARG(sp), maxsize, ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-int *maxsize;
-{
-       char *tsp;
-
-       tsp = (char*) malloc(((STRING_LEN(sp)) + 1) * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, *maxsize+1, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int) *maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += *maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfwrapstring) ARGS(`xdrid,  STRING_ARG(sp), ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-{
-       char *tsp;
-       int maxsize;
-       maxsize = (STRING_LEN(sp)) + 1;
-       tsp = (char*) malloc(maxsize * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, maxsize, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int)maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfopaque) ARGS(`xdrid, cp, ccnt, ret')
-int *xdrid, *ret;
-caddr_t *cp;
-int *ccnt;
-{
-       *ret = xdr_opaque(xdridptr[*xdrid], (caddr_t)*cp, (u_int)*ccnt);
-       cnt += *ccnt;
-}
-
-void
-FUNCTION(xdrfsetpos) ARGS(`xdrid, pos, ret')
-int *xdrid, *ret;
-int *pos;
-{
-       *ret = xdr_setpos(xdridptr[*xdrid], (u_int) *pos);
-}
-
-void
-FUNCTION(xdrf) ARGS(`xdrid, pos')
-int *xdrid, *pos;
-{
-       *pos = xdr_getpos(xdridptr[*xdrid]);
-}
-
-void
-FUNCTION(xdrfvector) ARGS(`xdrid, cp, size, elproc, ret')
-int *xdrid, *ret;
-char *cp;
-int *size;
-FUNCTION(xdrfproc) elproc;
-{
-       int lcnt;
-       cnt = 0;
-       for (lcnt = 0; lcnt < *size; lcnt++) {
-               elproc(xdrid, (cp+cnt) , ret);
-       }
-}
-
-
-void
-FUNCTION(xdrfclose) ARGS(`xdrid, ret')
-int *xdrid;
-int *ret;
-{
-       *ret = xdrclose(xdridptr[*xdrid]);
-       cnt = 0;
-}
-
-void
-FUNCTION(xdrfopen) ARGS(`xdrid,  STRING_ARG(fp), STRING_ARG(mode), ret')
-int *xdrid;
-STRING_ARG_DECL(fp);
-STRING_ARG_DECL(mode);
-int *ret;
-{
-       char fname[512];
-       char fmode[3];
-
-       if (ftocstr(fname, sizeof(fname), STRING_PTR(fp), STRING_LEN(fp))) {
-               *ret = 0;
-       }
-       if (ftocstr(fmode, sizeof(fmode), STRING_PTR(mode),
-                       STRING_LEN(mode))) {
-               *ret = 0;
-       }
-
-       *xdrid = xdropen(NULL, fname, fmode);
-       if (*xdrid == 0)
-               *ret = 0;
-       else 
-               *ret = 1;       
-}
-
-/*___________________________________________________________________________
- |
- | what follows are the C routines for opening, closing xdr streams
- | and the routine to read/write compressed coordinates together
- | with some routines to assist in this task (those are marked
- | static and cannot be called from user programs)
-*/
-#define MAXABS INT_MAX-2
-
-#ifndef MIN
-#define MIN(x,y) ((x) < (y) ? (x):(y))
-#endif
-#ifndef MAX
-#define MAX(x,y) ((x) > (y) ? (x):(y))
-#endif
-#ifndef SQR
-#define SQR(x) ((x)*(x))
-#endif
-static int magicints[] = {
-    0, 0, 0, 0, 0, 0, 0, 0, 0,
-    8, 10, 12, 16, 20, 25, 32, 40, 50, 64,
-    80, 101, 128, 161, 203, 256, 322, 406, 512, 645,
-    812, 1024, 1290, 1625, 2048, 2580, 3250, 4096, 5060, 6501,
-    8192, 10321, 13003, 16384, 20642, 26007, 32768, 41285, 52015, 65536,
-    82570, 104031, 131072, 165140, 208063, 262144, 330280, 416127, 524287, 660561,
-    832255, 1048576, 1321122, 1664510, 2097152, 2642245, 3329021, 4194304, 5284491, 6658042,
-    8388607, 10568983, 13316085, 16777216 };
-
-#define FIRSTIDX 9
-/* note that magicints[FIRSTIDX-1] == 0 */
-#define LASTIDX (sizeof(magicints) / sizeof(*magicints))
-
-
-/*__________________________________________________________________________
- |
- | xdropen - open xdr file
- |
- | This versions differs from xdrstdio_create, because I need to know
- | the state of the file (read or write) so I can use xdr3dfcoord
- | in eigther read or write mode, and the file descriptor
- | so I can close the file (something xdr_destroy doesn't do).
- |
-*/
-
-int xdropen(XDR *xdrs, const char *filename, const char *type) {
-    static int init_done = 0;
-    enum xdr_op lmode;
-    const char *type1;
-    int xdrid;
-    
-    if (init_done == 0) {
-       for (xdrid = 1; xdrid < MAXID; xdrid++) {
-           xdridptr[xdrid] = NULL;
-       }
-       init_done = 1;
-    }
-    xdrid = 1;
-    while (xdrid < MAXID && xdridptr[xdrid] != NULL) {
-       xdrid++;
-    }
-    if (xdrid == MAXID) {
-       return 0;
-    }
-    if (*type == 'w' || *type == 'W') {
-           type = "w+";
-           type1 = "w+";
-           lmode = XDR_ENCODE;
-    } else if (*type == 'a' || *type == 'A') {
-           type = "w+";
-            type1 = "a+";
-           lmode = XDR_ENCODE;
-    } else {
-           type = "r";
-            type1 = "r";
-           lmode = XDR_DECODE;
-    }
-    xdrfiles[xdrid] = fopen(filename, type1);
-    if (xdrfiles[xdrid] == NULL) {
-       xdrs = NULL;
-       return 0;
-    }
-    xdrmodes[xdrid] = *type;
-    /* next test isn't usefull in the case of C language
-     * but is used for the Fortran interface
-     * (C users are expected to pass the address of an already allocated
-     * XDR staructure)
-     */
-    if (xdrs == NULL) {
-       xdridptr[xdrid] = (XDR *) malloc(sizeof(XDR));
-       xdrstdio_create(xdridptr[xdrid], xdrfiles[xdrid], lmode);
-    } else {
-       xdridptr[xdrid] = xdrs;
-       xdrstdio_create(xdrs, xdrfiles[xdrid], lmode);
-    }
-    return xdrid;
-}
-
-/*_________________________________________________________________________
- |
- | xdrclose - close a xdr file
- |
- | This will flush the xdr buffers, and destroy the xdr stream.
- | It also closes the associated file descriptor (this is *not*
- | done by xdr_destroy).
- |
-*/
-int xdrclose(XDR *xdrs) {
-    int xdrid;
-    
-    if (xdrs == NULL) {
-       fprintf(stderr, "xdrclose: passed a NULL pointer\n");
-       exit(1);
-    }
-    for (xdrid = 1; xdrid < MAXID; xdrid++) {
-       if (xdridptr[xdrid] == xdrs) {
-           
-           xdr_destroy(xdrs);
-           fclose(xdrfiles[xdrid]);
-           xdridptr[xdrid] = NULL;
-           return 1;
-       }
-    } 
-    fprintf(stderr, "xdrclose: no such open xdr file\n");
-    exit(1);
-    
-}
-
-/*____________________________________________________________________________
- |
- | sendbits - encode num into buf using the specified number of bits
- |
- | This routines appends the value of num to the bits already present in
- | the array buf. You need to give it the number of bits to use and you
- | better make sure that this number of bits is enough to hold the value
- | Also num must be positive.
- |
-*/
-
-static void sendbits(int buf[], int num_of_bits, int num) {
-    
-    unsigned int cnt, lastbyte;
-    int lastbits;
-    unsigned char * cbuf;
-    
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = (unsigned int) buf[0];
-    lastbits = buf[1];
-    lastbyte =(unsigned int) buf[2];
-    while (num_of_bits >= 8) {
-       lastbyte = (lastbyte << 8) | ((num >> (num_of_bits -8)) /* & 0xff*/);
-       cbuf[cnt++] = lastbyte >> lastbits;
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       lastbyte = (lastbyte << num_of_bits) | num;
-       lastbits += num_of_bits;
-       if (lastbits >= 8) {
-           lastbits -= 8;
-           cbuf[cnt++] = lastbyte >> lastbits;
-       }
-    }
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    if (lastbits>0) {
-       cbuf[cnt] = lastbyte << (8 - lastbits);
-    }
-}
-
-/*_________________________________________________________________________
- |
- | sizeofint - calculate bitsize of an integer
- |
- | return the number of bits needed to store an integer with given max size
- |
-*/
-
-static int sizeofint(const int size) {
-    unsigned int num = 1;
-    int num_of_bits = 0;
-    
-    while (size >= num && num_of_bits < 32) {
-       num_of_bits++;
-       num <<= 1;
-    }
-    return num_of_bits;
-}
-
-/*___________________________________________________________________________
- |
- | sizeofints - calculate 'bitsize' of compressed ints
- |
- | given the number of small unsigned integers and the maximum value
- | return the number of bits needed to read or write them with the
- | routines receiveints and sendints. You need this parameter when
- | calling these routines. Note that for many calls I can use
- | the variable 'smallidx' which is exactly the number of bits, and
- | So I don't need to call 'sizeofints for those calls.
-*/
-
-static int sizeofints( const int num_of_ints, unsigned int sizes[]) {
-    int i, num;
-    unsigned int num_of_bytes, num_of_bits, bytes[32], bytecnt, tmp;
-    num_of_bytes = 1;
-    bytes[0] = 1;
-    num_of_bits = 0;
-    for (i=0; i < num_of_ints; i++) {  
-       tmp = 0;
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    num = 1;
-    num_of_bytes--;
-    while (bytes[num_of_bytes] >= num) {
-       num_of_bits++;
-       num *= 2;
-    }
-    return num_of_bits + num_of_bytes * 8;
-
-}
-    
-/*____________________________________________________________________________
- |
- | sendints - send a small set of small integers in compressed format
- |
- | this routine is used internally by xdr3dfcoord, to send a set of
- | small integers to the buffer. 
- | Multiplication with fixed (specified maximum ) sizes is used to get
- | to one big, multibyte integer. Allthough the routine could be
- | modified to handle sizes bigger than 16777216, or more than just
- | a few integers, this is not done, because the gain in compression
- | isn't worth the effort. Note that overflowing the multiplication
- | or the byte buffer (32 bytes) is unchecked and causes bad results.
- |
- */
-static void sendints(int buf[], const int num_of_ints, const int num_of_bits,
-       unsigned int sizes[], unsigned int nums[]) {
-
-    int i;
-    unsigned int bytes[32], num_of_bytes, bytecnt, tmp;
-
-    tmp = nums[0];
-    num_of_bytes = 0;
-    do {
-       bytes[num_of_bytes++] = tmp & 0xff;
-       tmp >>= 8;
-    } while (tmp != 0);
-
-    for (i = 1; i < num_of_ints; i++) {
-       if (nums[i] >= sizes[i]) {
-           fprintf(stderr,"major breakdown in sendints num %d doesn't "
-                   "match size %d\n", nums[i], sizes[i]);
-           exit(1);
-       }
-       /* use one step multiply */    
-       tmp = nums[i];
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    if (num_of_bits >= num_of_bytes * 8) {
-       for (i = 0; i < num_of_bytes; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits - num_of_bytes * 8, 0);
-    } else {
-       for (i = 0; i < num_of_bytes-1; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits- (num_of_bytes -1) * 8, bytes[i]);
-    }
-}
-
-
-/*___________________________________________________________________________
- |
- | receivebits - decode number from buf using specified number of bits
- | 
- | extract the number of bits from the array buf and construct an integer
- | from it. Return that value.
- |
-*/
-
-static int receivebits(int buf[], int num_of_bits) {
-
-    int cnt, num; 
-    unsigned int lastbits, lastbyte;
-    unsigned char * cbuf;
-    int mask = (1 << num_of_bits) -1;
-
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = buf[0];
-    lastbits = (unsigned int) buf[1];
-    lastbyte = (unsigned int) buf[2];
-    
-    num = 0;
-    while (num_of_bits >= 8) {
-       lastbyte = ( lastbyte << 8 ) | cbuf[cnt++];
-       num |=  (lastbyte >> lastbits) << (num_of_bits - 8);
-       num_of_bits -=8;
-    }
-    if (num_of_bits > 0) {
-       if (lastbits < num_of_bits) {
-           lastbits += 8;
-           lastbyte = (lastbyte << 8) | cbuf[cnt++];
-       }
-       lastbits -= num_of_bits;
-       num |= (lastbyte >> lastbits) & ((1 << num_of_bits) -1);
-    }
-    num &= mask;
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    return num; 
-}
-
-/*____________________________________________________________________________
- |
- | receiveints - decode 'small' integers from the buf array
- |
- | this routine is the inverse from sendints() and decodes the small integers
- | written to buf by calculating the remainder and doing divisions with
- | the given sizes[]. You need to specify the total number of bits to be
- | used from buf in num_of_bits.
- |
-*/
-
-static void receiveints(int buf[], const int num_of_ints, int num_of_bits,
-       unsigned int sizes[], int nums[]) {
-    int bytes[32];
-    int i, j, num_of_bytes, p, num;
-    
-    bytes[1] = bytes[2] = bytes[3] = 0;
-    num_of_bytes = 0;
-    while (num_of_bits > 8) {
-       bytes[num_of_bytes++] = receivebits(buf, 8);
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       bytes[num_of_bytes++] = receivebits(buf, num_of_bits);
-    }
-    for (i = num_of_ints-1; i > 0; i--) {
-       num = 0;
-       for (j = num_of_bytes-1; j >=0; j--) {
-           num = (num << 8) | bytes[j];
-           p = num / sizes[i];
-           bytes[j] = p;
-           num = num - p * sizes[i];
-       }
-       nums[i] = num;
-    }
-    nums[0] = bytes[0] | (bytes[1] << 8) | (bytes[2] << 16) | (bytes[3] << 24);
-}
-    
-/*____________________________________________________________________________
- |
- | xdr3dfcoord - read or write compressed 3d coordinates to xdr file.
- |
- | this routine reads or writes (depending on how you opened the file with
- | xdropen() ) a large number of 3d coordinates (stored in *fp).
- | The number of coordinates triplets to write is given by *size. On
- | read this number may be zero, in which case it reads as many as were written
- | or it may specify the number if triplets to read (which should match the
- | number written).
- | Compression is achieved by first converting all floating numbers to integer
- | using multiplication by *precision and rounding to the nearest integer.
- | Then the minimum and maximum value are calculated to determine the range.
- | The limited range of integers so found, is used to compress the coordinates.
- | In addition the differences between succesive coordinates is calculated.
- | If the difference happens to be 'small' then only the difference is saved,
- | compressing the data even more. The notion of 'small' is changed dynamically
- | and is enlarged or reduced whenever needed or possible.
- | Extra compression is achieved in the case of GROMOS and coordinates of
- | water molecules. GROMOS first writes out the Oxygen position, followed by
- | the two hydrogens. In order to make the differences smaller (and thereby
- | compression the data better) the order is changed into first one hydrogen
- | then the oxygen, followed by the other hydrogen. This is rather special, but
- | it shouldn't harm in the general case.
- |
- */
-int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) {
-    
-
-    static int *ip = NULL;
-    static int oldsize;
-    static int *buf;
-
-    int minint[3], maxint[3], mindiff, *lip, diff;
-    int lint1, lint2, lint3, oldlint1, oldlint2, oldlint3, smallidx;
-    int minidx, maxidx;
-    unsigned sizeint[3], sizesmall[3], bitsizeint[3], size3, *luip;
-    int flag, k;
-    int small, smaller, larger, i, is_small, is_smaller, run, prevrun;
-    float *lfp, lf;
-    int tmp, *thiscoord,  prevcoord[3];
-    unsigned int tmpcoord[30];
-
-    int bufsize, xdrid, lsize;
-    unsigned int bitsize;
-    float inv_precision;
-    int errval = 1;
-
-    /* find out if xdrs is opened for reading or for writing */
-    xdrid = 0;
-    while (xdridptr[xdrid] != xdrs) {
-       xdrid++;
-       if (xdrid >= MAXID) {
-           fprintf(stderr, "xdr error. no open xdr stream\n");
-           exit (1);
-       }
-    }
-    if (xdrmodes[xdrid] == 'w') {
-
-       /* xdrs is open for writing */
-
-       if (xdr_int(xdrs, size) == 0)
-           return 0;
-       size3 = *size * 3;
-       /* when the number of coordinates is small, don't try to compress; just
-        * write them as floats using xdr_vector
-        */
-       if (*size <= 9 ) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       /* buf[0-2] are special and do not contain actual data */
-       buf[0] = buf[1] = buf[2] = 0;
-       minint[0] = minint[1] = minint[2] = INT_MAX;
-       maxint[0] = maxint[1] = maxint[2] = INT_MIN;
-       prevrun = -1;
-       lfp = fp;
-       lip = ip;
-       mindiff = INT_MAX;
-       oldlint1 = oldlint2 = oldlint3 = 0;
-       while(lfp < fp + size3 ) {
-           /* find nearest integer */
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint1 = lf;
-           if (lint1 < minint[0]) minint[0] = lint1;
-           if (lint1 > maxint[0]) maxint[0] = lint1;
-           *lip++ = lint1;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint2 = lf;
-           if (lint2 < minint[1]) minint[1] = lint2;
-           if (lint2 > maxint[1]) maxint[1] = lint2;
-           *lip++ = lint2;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint3 = lf;
-           if (lint3 < minint[2]) minint[2] = lint3;
-           if (lint3 > maxint[2]) maxint[2] = lint3;
-           *lip++ = lint3;
-           lfp++;
-           diff = abs(oldlint1-lint1)+abs(oldlint2-lint2)+abs(oldlint3-lint3);
-           if (diff < mindiff && lfp > fp + 3)
-               mindiff = diff;
-           oldlint1 = lint1;
-           oldlint2 = lint2;
-           oldlint3 = lint3;
-       }
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-       
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-       
-       if ((float)maxint[0] - (float)minint[0] >= MAXABS ||
-               (float)maxint[1] - (float)minint[1] >= MAXABS ||
-               (float)maxint[2] - (float)minint[2] >= MAXABS) {
-           /* turning value in unsigned by subtracting minint
-            * would cause overflow
-            */
-           errval = 0;
-       }
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       lip = ip;
-       luip = (unsigned int *) ip;
-       smallidx = FIRSTIDX;
-       while (smallidx < LASTIDX && magicints[smallidx] < mindiff) {
-           smallidx++;
-       }
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-       larger = magicints[maxidx] / 2;
-       i = 0;
-       while (i < *size) {
-           is_small = 0;
-           thiscoord = (int *)(luip) + i * 3;
-           if (smallidx < maxidx && i >= 1 &&
-                   abs(thiscoord[0] - prevcoord[0]) < larger &&
-                   abs(thiscoord[1] - prevcoord[1]) < larger &&
-                   abs(thiscoord[2] - prevcoord[2]) < larger) {
-               is_smaller = 1;
-           } else if (smallidx > minidx) {
-               is_smaller = -1;
-           } else {
-               is_smaller = 0;
-           }
-           if (i + 1 < *size) {
-               if (abs(thiscoord[0] - thiscoord[3]) < small &&
-                       abs(thiscoord[1] - thiscoord[4]) < small &&
-                       abs(thiscoord[2] - thiscoord[5]) < small) {
-                   /* interchange first with second atom for better
-                    * compression of water molecules
-                    */
-                   tmp = thiscoord[0]; thiscoord[0] = thiscoord[3];
-                       thiscoord[3] = tmp;
-                   tmp = thiscoord[1]; thiscoord[1] = thiscoord[4];
-                       thiscoord[4] = tmp;
-                   tmp = thiscoord[2]; thiscoord[2] = thiscoord[5];
-                       thiscoord[5] = tmp;
-                   is_small = 1;
-               }
-    
-           }
-           tmpcoord[0] = thiscoord[0] - minint[0];
-           tmpcoord[1] = thiscoord[1] - minint[1];
-           tmpcoord[2] = thiscoord[2] - minint[2];
-           if (bitsize == 0) {
-               sendbits(buf, bitsizeint[0], tmpcoord[0]);
-               sendbits(buf, bitsizeint[1], tmpcoord[1]);
-               sendbits(buf, bitsizeint[2], tmpcoord[2]);
-           } else {
-               sendints(buf, 3, bitsize, sizeint, tmpcoord);
-           }
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           thiscoord = thiscoord + 3;
-           i++;
-           
-           run = 0;
-           if (is_small == 0 && is_smaller == -1)
-               is_smaller = 0;
-           while (is_small && run < 8*3) {
-               if (is_smaller == -1 && (
-                       SQR(thiscoord[0] - prevcoord[0]) +
-                       SQR(thiscoord[1] - prevcoord[1]) +
-                       SQR(thiscoord[2] - prevcoord[2]) >= smaller * smaller)) {
-                   is_smaller = 0;
-               }
-
-               tmpcoord[run++] = thiscoord[0] - prevcoord[0] + small;
-               tmpcoord[run++] = thiscoord[1] - prevcoord[1] + small;
-               tmpcoord[run++] = thiscoord[2] - prevcoord[2] + small;
-               
-               prevcoord[0] = thiscoord[0];
-               prevcoord[1] = thiscoord[1];
-               prevcoord[2] = thiscoord[2];
-
-               i++;
-               thiscoord = thiscoord + 3;
-               is_small = 0;
-               if (i < *size &&
-                       abs(thiscoord[0] - prevcoord[0]) < small &&
-                       abs(thiscoord[1] - prevcoord[1]) < small &&
-                       abs(thiscoord[2] - prevcoord[2]) < small) {
-                   is_small = 1;
-               }
-           }
-           if (run != prevrun || is_smaller != 0) {
-               prevrun = run;
-               sendbits(buf, 1, 1); /* flag the change in run-length */
-               sendbits(buf, 5, run+is_smaller+1);
-           } else {
-               sendbits(buf, 1, 0); /* flag the fact that runlength did not change */
-           }
-           for (k=0; k < run; k+=3) {
-               sendints(buf, 3, smallidx, sizesmall, &tmpcoord[k]);    
-           }
-           if (is_smaller != 0) {
-               smallidx += is_smaller;
-               if (is_smaller < 0) {
-                   small = smaller;
-                   smaller = magicints[smallidx-1] / 2;
-               } else {
-                   smaller = small;
-                   small = magicints[smallidx] / 2;
-               }
-               sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-           }
-       }
-       if (buf[1] != 0) buf[0]++;;
-       xdr_int(xdrs, &(buf[0])); /* buf[0] holds the length in bytes */
-       return errval * (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]));
-    } else {
-       
-       /* xdrs is open for reading */
-       
-       if (xdr_int(xdrs, &lsize) == 0) 
-           return 0;
-       if (*size != 0 && lsize != *size) {
-           fprintf(stderr, "wrong number of coordinates in xdr3dfcoor; "
-                   "%d arg vs %d in file", *size, lsize);
-       }
-       *size = lsize;
-       size3 = *size * 3;
-       if (*size <= 9) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-               
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       larger = magicints[maxidx];
-
-       /* buf[0] holds the length in bytes */
-
-       if (xdr_int(xdrs, &(buf[0])) == 0)
-           return 0;
-       if (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]) == 0)
-           return 0;
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       lfp = fp;
-       inv_precision = 1.0 / * precision;
-       run = 0;
-       i = 0;
-       lip = ip;
-       while ( i < lsize ) {
-           thiscoord = (int *)(lip) + i * 3;
-
-           if (bitsize == 0) {
-               thiscoord[0] = receivebits(buf, bitsizeint[0]);
-               thiscoord[1] = receivebits(buf, bitsizeint[1]);
-               thiscoord[2] = receivebits(buf, bitsizeint[2]);
-           } else {
-               receiveints(buf, 3, bitsize, sizeint, thiscoord);
-           }
-           
-           i++;
-           thiscoord[0] += minint[0];
-           thiscoord[1] += minint[1];
-           thiscoord[2] += minint[2];
-           
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           
-          
-           flag = receivebits(buf, 1);
-           is_smaller = 0;
-           if (flag == 1) {
-               run = receivebits(buf, 5);
-               is_smaller = run % 3;
-               run -= is_smaller;
-               is_smaller--;
-           }
-           if (run > 0) {
-               thiscoord += 3;
-               for (k = 0; k < run; k+=3) {
-                   receiveints(buf, 3, smallidx, sizesmall, thiscoord);
-                   i++;
-                   thiscoord[0] += prevcoord[0] - small;
-                   thiscoord[1] += prevcoord[1] - small;
-                   thiscoord[2] += prevcoord[2] - small;
-                   if (k == 0) {
-                       /* interchange first with second atom for better
-                        * compression of water molecules
-                        */
-                       tmp = thiscoord[0]; thiscoord[0] = prevcoord[0];
-                               prevcoord[0] = tmp;
-                       tmp = thiscoord[1]; thiscoord[1] = prevcoord[1];
-                               prevcoord[1] = tmp;
-                       tmp = thiscoord[2]; thiscoord[2] = prevcoord[2];
-                               prevcoord[2] = tmp;
-                       *lfp++ = prevcoord[0] * inv_precision;
-                       *lfp++ = prevcoord[1] * inv_precision;
-                       *lfp++ = prevcoord[2] * inv_precision;
-                   } else {
-                       prevcoord[0] = thiscoord[0];
-                       prevcoord[1] = thiscoord[1];
-                       prevcoord[2] = thiscoord[2];
-                   }
-                   *lfp++ = thiscoord[0] * inv_precision;
-                   *lfp++ = thiscoord[1] * inv_precision;
-                   *lfp++ = thiscoord[2] * inv_precision;
-               }
-           } else {
-               *lfp++ = thiscoord[0] * inv_precision;
-               *lfp++ = thiscoord[1] * inv_precision;
-               *lfp++ = thiscoord[2] * inv_precision;          
-           }
-           smallidx += is_smaller;
-           if (is_smaller < 0) {
-               small = smaller;
-               if (smallidx > FIRSTIDX) {
-                   smaller = magicints[smallidx - 1] /2;
-               } else {
-                   smaller = 0;
-               }
-           } else if (is_smaller > 0) {
-               smaller = small;
-               small = magicints[smallidx] / 2;
-           }
-           sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       }
-    }
-    return 1;
-}
-
-
-   
diff --git a/source/unres/src_MD-M/xdrf_em64/libxdrf.m4.org b/source/unres/src_MD-M/xdrf_em64/libxdrf.m4.org
deleted file mode 100644 (file)
index b14b374..0000000
+++ /dev/null
@@ -1,1230 +0,0 @@
-/*____________________________________________________________________________
- |
- | libxdrf - portable fortran interface to xdr. some xdr routines
- |          are C routines for compressed coordinates
- |
- | version 1.1
- |
- | This collection of routines is intended to write and read
- | data in a portable way to a file, so data written on one type
- | of machine can be read back on a different type.
- |
- | all fortran routines use an integer 'xdrid', which is an id to the
- | current xdr file, and is set by xdrfopen.
- | most routines have in integer 'ret' which is the return value.
- | The value of 'ret' is zero on failure, and most of the time one
- | on succes.
- |
- | There are three routines useful for C users:
- |  xdropen(), xdrclose(), xdr3dfcoord().
- | The first two replace xdrstdio_create and xdr_destroy, and *must* be
- | used when you plan to use xdr3dfcoord(). (they are also a bit
- | easier to interface). For writing data other than compressed coordinates 
- | you should use the standard C xdr routines (see xdr man page)
- |
- | xdrfopen(xdrid, filename, mode, ret)
- |     character *(*) filename
- |     character *(*) mode
- |
- |     this will open the file with the given filename (string)
- |     and the given mode, it returns an id in xdrid, which is
- |     to be used in all other calls to xdrf routines.
- |     mode is 'w' to create, or update an file, for all other
- |     values of mode the file is opened for reading
- |
- |     you need to call xdrfclose to flush the output and close
- |     the file.
- |     Note that you should not use xdrstdio_create, which comes with the
- |     standard xdr library
- |
- | xdrfclose(xdrid, ret)
- |     flush the data to the file, and closes the file;
- |     You should not use xdr_destroy (which comes standard with
- |     the xdr libraries.
- |
- | xdrfbool(xdrid, bp, ret)
- |     integer pb
- |
- |     This filter produces values of either 1 or 0    
- |
- | xdrfchar(xdrid, cp, ret)
- |     character cp
- |
- |     filter that translate between characters and their xdr representation
- |     Note that the characters in not compressed and occupies 4 bytes.
- |
- | xdrfdouble(xdrid, dp, ret)
- |     double dp
- |
- |     read/write a double.
- |
- | xdrffloat(xdrid, fp, ret)
- |     float fp
- |
- |     read/write a float.
- |
- | xdrfint(xdrid, ip, ret)
- |     integer ip
- |
- |     read/write integer.
- |
- | xdrflong(xdrid, lp, ret)
- |     integer lp
- |
- |     this routine has a possible portablility problem due to 64 bits longs.
- |
- | xdrfshort(xdrid, sp, ret)
- |     integer *2 sp
- |
- | xdrfstring(xdrid, sp, maxsize, ret)
- |     character *(*)
- |     integer maxsize
- |
- |     read/write a string, with maximum length given by maxsize
- |
- | xdrfwrapstring(xdris, sp, ret)
- |     character *(*)
- |
- |     read/write a string (it is the same as xdrfstring accept that it finds
- |     the stringlength itself.
- |
- | xdrfvector(xdrid, cp, size, xdrfproc, ret)
- |     character *(*)
- |     integer size
- |     external xdrfproc
- |
- |     read/write an array pointed to by cp, with number of elements
- |     defined by 'size'. the routine 'xdrfproc' is the name
- |     of one of the above routines to read/write data (like xdrfdouble)
- |     In contrast with the c-version you don't need to specify the
- |     byte size of an element.
- |     xdrfstring is not allowed here (it is in the c version)
- |     
- | xdrf3dfcoord(xdrid, fp, size, precision, ret)
- |     real (*) fp
- |     real precision
- |     integer size
- |
- |     this is *NOT* a standard xdr routine. I named it this way, because
- |     it invites people to use the other xdr routines.
- |     It is introduced to store specifically 3d coordinates of molecules
- |     (as found in molecular dynamics) and it writes it in a compressed way.
- |     It starts by multiplying all numbers by precision and
- |     rounding the result to integer. effectively converting
- |     all floating point numbers to fixed point.
- |     it uses an algorithm for compression that is optimized for
- |     molecular data, but could be used for other 3d coordinates
- |     as well. There is subtantial overhead involved, so call this
- |     routine only if you have a large number of coordinates to read/write
- |
- | ________________________________________________________________________
- |
- | Below are the routines to be used by C programmers. Use the 'normal'
- | xdr routines to write integers, floats, etc (see man xdr)   
- |
- | int xdropen(XDR *xdrs, const char *filename, const char *type)
- |     This will open the file with the given filename and the 
- |     given mode. You should pass it an allocated XDR struct
- |     in xdrs, to be used in all other calls to xdr routines.
- |     Mode is 'w' to create, or update an file, and for all 
- |     other values of mode the file is opened for reading. 
- |     You need to call xdrclose to flush the output and close
- |     the file.
- |
- |     Note that you should not use xdrstdio_create, which
- |     comes with the standard xdr library.
- |
- | int xdrclose(XDR *xdrs)
- |     Flush the data to the file, and close the file;
- |     You should not use xdr_destroy (which comes standard
- |     with the xdr libraries).
- |      
- | int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision)
- |     This is \fInot\fR a standard xdr routine. I named it this 
- |     way, because it invites people to use the other xdr 
- |     routines.
- |
- |     (c) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-*/     
-
-
-#include <limits.h>
-#include <malloc.h>
-#include <math.h>
-#include <rpc/rpc.h>
-#include <rpc/xdr.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include "xdrf.h"
-
-int ftocstr(char *, int, char *, int);
-int ctofstr(char *, int, char *);
-
-#define MAXID 20
-static FILE *xdrfiles[MAXID];
-static XDR *xdridptr[MAXID];
-static char xdrmodes[MAXID];
-static unsigned int cnt;
-
-typedef void (* FUNCTION(xdrfproc)) (int *, void *, int *);
-
-void
-FUNCTION(xdrfbool) ARGS(`xdrid, pb, ret')
-int *xdrid, *ret;
-int *pb;
-{
-       *ret = xdr_bool(xdridptr[*xdrid], (bool_t *) pb);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrfchar) ARGS(`xdrid, cp, ret')
-int *xdrid, *ret;
-char *cp;
-{
-       *ret = xdr_char(xdridptr[*xdrid], cp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfdouble) ARGS(`xdrid, dp, ret')
-int *xdrid, *ret;
-double *dp;
-{
-       *ret = xdr_double(xdridptr[*xdrid], dp);
-       cnt += sizeof(double);
-}
-
-void
-FUNCTION(xdrffloat) ARGS(`xdrid, fp, ret')
-int *xdrid, *ret;
-float *fp;
-{
-       *ret = xdr_float(xdridptr[*xdrid], fp);
-       cnt += sizeof(float);
-}
-
-void
-FUNCTION(xdrfint) ARGS(`xdrid, ip, ret')
-int *xdrid, *ret;
-int *ip;
-{
-       *ret = xdr_int(xdridptr[*xdrid], ip);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrflong) ARGS(`xdrid, lp, ret')
-int *xdrid, *ret;
-long *lp;
-{
-       *ret = xdr_long(xdridptr[*xdrid], lp);
-       cnt += sizeof(long);
-}
-
-void
-FUNCTION(xdrfshort) ARGS(`xdrid, sp, ret')
-int *xdrid, *ret;
-short *sp;
-{
-       *ret = xdr_short(xdridptr[*xdrid], sp);
-       cnt += sizeof(sp);
-}
-
-void
-FUNCTION(xdrfuchar) ARGS(`xdrid, ucp, ret')
-int *xdrid, *ret;
-char *ucp;
-{
-       *ret = xdr_u_char(xdridptr[*xdrid], ucp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfulong) ARGS(`xdrid, ulp, ret')
-int *xdrid, *ret;
-unsigned long *ulp;
-{
-       *ret = xdr_u_long(xdridptr[*xdrid], ulp);
-       cnt += sizeof(unsigned long);
-}
-
-void
-FUNCTION(xdrfushort) ARGS(`xdrid, usp, ret')
-int *xdrid, *ret;
-unsigned short *usp;
-{
-       *ret = xdr_u_short(xdridptr[*xdrid], usp);
-       cnt += sizeof(unsigned short);
-}
-
-void 
-FUNCTION(xdrf3dfcoord) ARGS(`xdrid, fp, size, precision, ret')
-int *xdrid, *ret;
-float *fp;
-int *size;
-float *precision;
-{
-       *ret = xdr3dfcoord(xdridptr[*xdrid], fp, size, precision);
-}
-
-void
-FUNCTION(xdrfstring) ARGS(`xdrid, STRING_ARG(sp), maxsize, ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-int *maxsize;
-{
-       char *tsp;
-
-       tsp = (char*) malloc(((STRING_LEN(sp)) + 1) * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, *maxsize+1, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int) *maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += *maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfwrapstring) ARGS(`xdrid,  STRING_ARG(sp), ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-{
-       char *tsp;
-       int maxsize;
-       maxsize = (STRING_LEN(sp)) + 1;
-       tsp = (char*) malloc(maxsize * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, maxsize, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int)maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfopaque) ARGS(`xdrid, cp, ccnt, ret')
-int *xdrid, *ret;
-caddr_t *cp;
-int *ccnt;
-{
-       *ret = xdr_opaque(xdridptr[*xdrid], (caddr_t)*cp, (u_int)*ccnt);
-       cnt += *ccnt;
-}
-
-void
-FUNCTION(xdrfsetpos) ARGS(`xdrid, pos, ret')
-int *xdrid, *ret;
-int *pos;
-{
-       *ret = xdr_setpos(xdridptr[*xdrid], (u_int) *pos);
-}
-
-void
-FUNCTION(xdrf) ARGS(`xdrid, pos')
-int *xdrid, *pos;
-{
-       *pos = xdr_getpos(xdridptr[*xdrid]);
-}
-
-void
-FUNCTION(xdrfvector) ARGS(`xdrid, cp, size, elproc, ret')
-int *xdrid, *ret;
-char *cp;
-int *size;
-FUNCTION(xdrfproc) elproc;
-{
-       int lcnt;
-       cnt = 0;
-       for (lcnt = 0; lcnt < *size; lcnt++) {
-               elproc(xdrid, (cp+cnt) , ret);
-       }
-}
-
-
-void
-FUNCTION(xdrfclose) ARGS(`xdrid, ret')
-int *xdrid;
-int *ret;
-{
-       *ret = xdrclose(xdridptr[*xdrid]);
-       cnt = 0;
-}
-
-void
-FUNCTION(xdrfopen) ARGS(`xdrid,  STRING_ARG(fp), STRING_ARG(mode), ret')
-int *xdrid;
-STRING_ARG_DECL(fp);
-STRING_ARG_DECL(mode);
-int *ret;
-{
-       char fname[512];
-       char fmode[3];
-
-       if (ftocstr(fname, sizeof(fname), STRING_PTR(fp), STRING_LEN(fp))) {
-               *ret = 0;
-       }
-       if (ftocstr(fmode, sizeof(fmode), STRING_PTR(mode),
-                       STRING_LEN(mode))) {
-               *ret = 0;
-       }
-
-       *xdrid = xdropen(NULL, fname, fmode);
-       if (*xdrid == 0)
-               *ret = 0;
-       else 
-               *ret = 1;       
-}
-
-/*___________________________________________________________________________
- |
- | what follows are the C routines for opening, closing xdr streams
- | and the routine to read/write compressed coordinates together
- | with some routines to assist in this task (those are marked
- | static and cannot be called from user programs)
-*/
-#define MAXABS INT_MAX-2
-
-#ifndef MIN
-#define MIN(x,y) ((x) < (y) ? (x):(y))
-#endif
-#ifndef MAX
-#define MAX(x,y) ((x) > (y) ? (x):(y))
-#endif
-#ifndef SQR
-#define SQR(x) ((x)*(x))
-#endif
-static int magicints[] = {
-    0, 0, 0, 0, 0, 0, 0, 0, 0,
-    8, 10, 12, 16, 20, 25, 32, 40, 50, 64,
-    80, 101, 128, 161, 203, 256, 322, 406, 512, 645,
-    812, 1024, 1290, 1625, 2048, 2580, 3250, 4096, 5060, 6501,
-    8192, 10321, 13003, 16384, 20642, 26007, 32768, 41285, 52015, 65536,
-    82570, 104031, 131072, 165140, 208063, 262144, 330280, 416127, 524287, 660561,
-    832255, 1048576, 1321122, 1664510, 2097152, 2642245, 3329021, 4194304, 5284491, 6658042,
-    8388607, 10568983, 13316085, 16777216 };
-
-#define FIRSTIDX 9
-/* note that magicints[FIRSTIDX-1] == 0 */
-#define LASTIDX (sizeof(magicints) / sizeof(*magicints))
-
-
-/*__________________________________________________________________________
- |
- | xdropen - open xdr file
- |
- | This versions differs from xdrstdio_create, because I need to know
- | the state of the file (read or write) so I can use xdr3dfcoord
- | in eigther read or write mode, and the file descriptor
- | so I can close the file (something xdr_destroy doesn't do).
- |
-*/
-
-int xdropen(XDR *xdrs, const char *filename, const char *type) {
-    static int init_done = 0;
-    enum xdr_op lmode;
-    int xdrid;
-    
-    if (init_done == 0) {
-       for (xdrid = 1; xdrid < MAXID; xdrid++) {
-           xdridptr[xdrid] = NULL;
-       }
-       init_done = 1;
-    }
-    xdrid = 1;
-    while (xdrid < MAXID && xdridptr[xdrid] != NULL) {
-       xdrid++;
-    }
-    if (xdrid == MAXID) {
-       return 0;
-    }
-    if (*type == 'w' || *type == 'W') {
-           type = "w+";
-           lmode = XDR_ENCODE;
-    } else {
-           type = "r";
-           lmode = XDR_DECODE;
-    }
-    xdrfiles[xdrid] = fopen(filename, type);
-    if (xdrfiles[xdrid] == NULL) {
-       xdrs = NULL;
-       return 0;
-    }
-    xdrmodes[xdrid] = *type;
-    /* next test isn't usefull in the case of C language
-     * but is used for the Fortran interface
-     * (C users are expected to pass the address of an already allocated
-     * XDR staructure)
-     */
-    if (xdrs == NULL) {
-       xdridptr[xdrid] = (XDR *) malloc(sizeof(XDR));
-       xdrstdio_create(xdridptr[xdrid], xdrfiles[xdrid], lmode);
-    } else {
-       xdridptr[xdrid] = xdrs;
-       xdrstdio_create(xdrs, xdrfiles[xdrid], lmode);
-    }
-    return xdrid;
-}
-
-/*_________________________________________________________________________
- |
- | xdrclose - close a xdr file
- |
- | This will flush the xdr buffers, and destroy the xdr stream.
- | It also closes the associated file descriptor (this is *not*
- | done by xdr_destroy).
- |
-*/
-int xdrclose(XDR *xdrs) {
-    int xdrid;
-    
-    if (xdrs == NULL) {
-       fprintf(stderr, "xdrclose: passed a NULL pointer\n");
-       exit(1);
-    }
-    for (xdrid = 1; xdrid < MAXID; xdrid++) {
-       if (xdridptr[xdrid] == xdrs) {
-           
-           xdr_destroy(xdrs);
-           fclose(xdrfiles[xdrid]);
-           xdridptr[xdrid] = NULL;
-           return 1;
-       }
-    } 
-    fprintf(stderr, "xdrclose: no such open xdr file\n");
-    exit(1);
-    
-}
-
-/*____________________________________________________________________________
- |
- | sendbits - encode num into buf using the specified number of bits
- |
- | This routines appends the value of num to the bits already present in
- | the array buf. You need to give it the number of bits to use and you
- | better make sure that this number of bits is enough to hold the value
- | Also num must be positive.
- |
-*/
-
-static void sendbits(int buf[], int num_of_bits, int num) {
-    
-    unsigned int cnt, lastbyte;
-    int lastbits;
-    unsigned char * cbuf;
-    
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = (unsigned int) buf[0];
-    lastbits = buf[1];
-    lastbyte =(unsigned int) buf[2];
-    while (num_of_bits >= 8) {
-       lastbyte = (lastbyte << 8) | ((num >> (num_of_bits -8)) /* & 0xff*/);
-       cbuf[cnt++] = lastbyte >> lastbits;
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       lastbyte = (lastbyte << num_of_bits) | num;
-       lastbits += num_of_bits;
-       if (lastbits >= 8) {
-           lastbits -= 8;
-           cbuf[cnt++] = lastbyte >> lastbits;
-       }
-    }
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    if (lastbits>0) {
-       cbuf[cnt] = lastbyte << (8 - lastbits);
-    }
-}
-
-/*_________________________________________________________________________
- |
- | sizeofint - calculate bitsize of an integer
- |
- | return the number of bits needed to store an integer with given max size
- |
-*/
-
-static int sizeofint(const int size) {
-    unsigned int num = 1;
-    int num_of_bits = 0;
-    
-    while (size >= num && num_of_bits < 32) {
-       num_of_bits++;
-       num <<= 1;
-    }
-    return num_of_bits;
-}
-
-/*___________________________________________________________________________
- |
- | sizeofints - calculate 'bitsize' of compressed ints
- |
- | given the number of small unsigned integers and the maximum value
- | return the number of bits needed to read or write them with the
- | routines receiveints and sendints. You need this parameter when
- | calling these routines. Note that for many calls I can use
- | the variable 'smallidx' which is exactly the number of bits, and
- | So I don't need to call 'sizeofints for those calls.
-*/
-
-static int sizeofints( const int num_of_ints, unsigned int sizes[]) {
-    int i, num;
-    unsigned int num_of_bytes, num_of_bits, bytes[32], bytecnt, tmp;
-    num_of_bytes = 1;
-    bytes[0] = 1;
-    num_of_bits = 0;
-    for (i=0; i < num_of_ints; i++) {  
-       tmp = 0;
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    num = 1;
-    num_of_bytes--;
-    while (bytes[num_of_bytes] >= num) {
-       num_of_bits++;
-       num *= 2;
-    }
-    return num_of_bits + num_of_bytes * 8;
-
-}
-    
-/*____________________________________________________________________________
- |
- | sendints - send a small set of small integers in compressed format
- |
- | this routine is used internally by xdr3dfcoord, to send a set of
- | small integers to the buffer. 
- | Multiplication with fixed (specified maximum ) sizes is used to get
- | to one big, multibyte integer. Allthough the routine could be
- | modified to handle sizes bigger than 16777216, or more than just
- | a few integers, this is not done, because the gain in compression
- | isn't worth the effort. Note that overflowing the multiplication
- | or the byte buffer (32 bytes) is unchecked and causes bad results.
- |
- */
-static void sendints(int buf[], const int num_of_ints, const int num_of_bits,
-       unsigned int sizes[], unsigned int nums[]) {
-
-    int i;
-    unsigned int bytes[32], num_of_bytes, bytecnt, tmp;
-
-    tmp = nums[0];
-    num_of_bytes = 0;
-    do {
-       bytes[num_of_bytes++] = tmp & 0xff;
-       tmp >>= 8;
-    } while (tmp != 0);
-
-    for (i = 1; i < num_of_ints; i++) {
-       if (nums[i] >= sizes[i]) {
-           fprintf(stderr,"major breakdown in sendints num %d doesn't "
-                   "match size %d\n", nums[i], sizes[i]);
-           exit(1);
-       }
-       /* use one step multiply */    
-       tmp = nums[i];
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    if (num_of_bits >= num_of_bytes * 8) {
-       for (i = 0; i < num_of_bytes; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits - num_of_bytes * 8, 0);
-    } else {
-       for (i = 0; i < num_of_bytes-1; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits- (num_of_bytes -1) * 8, bytes[i]);
-    }
-}
-
-
-/*___________________________________________________________________________
- |
- | receivebits - decode number from buf using specified number of bits
- | 
- | extract the number of bits from the array buf and construct an integer
- | from it. Return that value.
- |
-*/
-
-static int receivebits(int buf[], int num_of_bits) {
-
-    int cnt, num; 
-    unsigned int lastbits, lastbyte;
-    unsigned char * cbuf;
-    int mask = (1 << num_of_bits) -1;
-
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = buf[0];
-    lastbits = (unsigned int) buf[1];
-    lastbyte = (unsigned int) buf[2];
-    
-    num = 0;
-    while (num_of_bits >= 8) {
-       lastbyte = ( lastbyte << 8 ) | cbuf[cnt++];
-       num |=  (lastbyte >> lastbits) << (num_of_bits - 8);
-       num_of_bits -=8;
-    }
-    if (num_of_bits > 0) {
-       if (lastbits < num_of_bits) {
-           lastbits += 8;
-           lastbyte = (lastbyte << 8) | cbuf[cnt++];
-       }
-       lastbits -= num_of_bits;
-       num |= (lastbyte >> lastbits) & ((1 << num_of_bits) -1);
-    }
-    num &= mask;
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    return num; 
-}
-
-/*____________________________________________________________________________
- |
- | receiveints - decode 'small' integers from the buf array
- |
- | this routine is the inverse from sendints() and decodes the small integers
- | written to buf by calculating the remainder and doing divisions with
- | the given sizes[]. You need to specify the total number of bits to be
- | used from buf in num_of_bits.
- |
-*/
-
-static void receiveints(int buf[], const int num_of_ints, int num_of_bits,
-       unsigned int sizes[], int nums[]) {
-    int bytes[32];
-    int i, j, num_of_bytes, p, num;
-    
-    bytes[1] = bytes[2] = bytes[3] = 0;
-    num_of_bytes = 0;
-    while (num_of_bits > 8) {
-       bytes[num_of_bytes++] = receivebits(buf, 8);
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       bytes[num_of_bytes++] = receivebits(buf, num_of_bits);
-    }
-    for (i = num_of_ints-1; i > 0; i--) {
-       num = 0;
-       for (j = num_of_bytes-1; j >=0; j--) {
-           num = (num << 8) | bytes[j];
-           p = num / sizes[i];
-           bytes[j] = p;
-           num = num - p * sizes[i];
-       }
-       nums[i] = num;
-    }
-    nums[0] = bytes[0] | (bytes[1] << 8) | (bytes[2] << 16) | (bytes[3] << 24);
-}
-    
-/*____________________________________________________________________________
- |
- | xdr3dfcoord - read or write compressed 3d coordinates to xdr file.
- |
- | this routine reads or writes (depending on how you opened the file with
- | xdropen() ) a large number of 3d coordinates (stored in *fp).
- | The number of coordinates triplets to write is given by *size. On
- | read this number may be zero, in which case it reads as many as were written
- | or it may specify the number if triplets to read (which should match the
- | number written).
- | Compression is achieved by first converting all floating numbers to integer
- | using multiplication by *precision and rounding to the nearest integer.
- | Then the minimum and maximum value are calculated to determine the range.
- | The limited range of integers so found, is used to compress the coordinates.
- | In addition the differences between succesive coordinates is calculated.
- | If the difference happens to be 'small' then only the difference is saved,
- | compressing the data even more. The notion of 'small' is changed dynamically
- | and is enlarged or reduced whenever needed or possible.
- | Extra compression is achieved in the case of GROMOS and coordinates of
- | water molecules. GROMOS first writes out the Oxygen position, followed by
- | the two hydrogens. In order to make the differences smaller (and thereby
- | compression the data better) the order is changed into first one hydrogen
- | then the oxygen, followed by the other hydrogen. This is rather special, but
- | it shouldn't harm in the general case.
- |
- */
-int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) {
-    
-
-    static int *ip = NULL;
-    static int oldsize;
-    static int *buf;
-
-    int minint[3], maxint[3], mindiff, *lip, diff;
-    int lint1, lint2, lint3, oldlint1, oldlint2, oldlint3, smallidx;
-    int minidx, maxidx;
-    unsigned sizeint[3], sizesmall[3], bitsizeint[3], size3, *luip;
-    int flag, k;
-    int small, smaller, larger, i, is_small, is_smaller, run, prevrun;
-    float *lfp, lf;
-    int tmp, *thiscoord,  prevcoord[3];
-    unsigned int tmpcoord[30];
-
-    int bufsize, xdrid, lsize;
-    unsigned int bitsize;
-    float inv_precision;
-    int errval = 1;
-
-    /* find out if xdrs is opened for reading or for writing */
-    xdrid = 0;
-    while (xdridptr[xdrid] != xdrs) {
-       xdrid++;
-       if (xdrid >= MAXID) {
-           fprintf(stderr, "xdr error. no open xdr stream\n");
-           exit (1);
-       }
-    }
-    if (xdrmodes[xdrid] == 'w') {
-
-       /* xdrs is open for writing */
-
-       if (xdr_int(xdrs, size) == 0)
-           return 0;
-       size3 = *size * 3;
-       /* when the number of coordinates is small, don't try to compress; just
-        * write them as floats using xdr_vector
-        */
-       if (*size <= 9 ) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       /* buf[0-2] are special and do not contain actual data */
-       buf[0] = buf[1] = buf[2] = 0;
-       minint[0] = minint[1] = minint[2] = INT_MAX;
-       maxint[0] = maxint[1] = maxint[2] = INT_MIN;
-       prevrun = -1;
-       lfp = fp;
-       lip = ip;
-       mindiff = INT_MAX;
-       oldlint1 = oldlint2 = oldlint3 = 0;
-       while(lfp < fp + size3 ) {
-           /* find nearest integer */
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint1 = lf;
-           if (lint1 < minint[0]) minint[0] = lint1;
-           if (lint1 > maxint[0]) maxint[0] = lint1;
-           *lip++ = lint1;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint2 = lf;
-           if (lint2 < minint[1]) minint[1] = lint2;
-           if (lint2 > maxint[1]) maxint[1] = lint2;
-           *lip++ = lint2;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint3 = lf;
-           if (lint3 < minint[2]) minint[2] = lint3;
-           if (lint3 > maxint[2]) maxint[2] = lint3;
-           *lip++ = lint3;
-           lfp++;
-           diff = abs(oldlint1-lint1)+abs(oldlint2-lint2)+abs(oldlint3-lint3);
-           if (diff < mindiff && lfp > fp + 3)
-               mindiff = diff;
-           oldlint1 = lint1;
-           oldlint2 = lint2;
-           oldlint3 = lint3;
-       }
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-       
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-       
-       if ((float)maxint[0] - (float)minint[0] >= MAXABS ||
-               (float)maxint[1] - (float)minint[1] >= MAXABS ||
-               (float)maxint[2] - (float)minint[2] >= MAXABS) {
-           /* turning value in unsigned by subtracting minint
-            * would cause overflow
-            */
-           errval = 0;
-       }
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       lip = ip;
-       luip = (unsigned int *) ip;
-       smallidx = FIRSTIDX;
-       while (smallidx < LASTIDX && magicints[smallidx] < mindiff) {
-           smallidx++;
-       }
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-       larger = magicints[maxidx] / 2;
-       i = 0;
-       while (i < *size) {
-           is_small = 0;
-           thiscoord = (int *)(luip) + i * 3;
-           if (smallidx < maxidx && i >= 1 &&
-                   abs(thiscoord[0] - prevcoord[0]) < larger &&
-                   abs(thiscoord[1] - prevcoord[1]) < larger &&
-                   abs(thiscoord[2] - prevcoord[2]) < larger) {
-               is_smaller = 1;
-           } else if (smallidx > minidx) {
-               is_smaller = -1;
-           } else {
-               is_smaller = 0;
-           }
-           if (i + 1 < *size) {
-               if (abs(thiscoord[0] - thiscoord[3]) < small &&
-                       abs(thiscoord[1] - thiscoord[4]) < small &&
-                       abs(thiscoord[2] - thiscoord[5]) < small) {
-                   /* interchange first with second atom for better
-                    * compression of water molecules
-                    */
-                   tmp = thiscoord[0]; thiscoord[0] = thiscoord[3];
-                       thiscoord[3] = tmp;
-                   tmp = thiscoord[1]; thiscoord[1] = thiscoord[4];
-                       thiscoord[4] = tmp;
-                   tmp = thiscoord[2]; thiscoord[2] = thiscoord[5];
-                       thiscoord[5] = tmp;
-                   is_small = 1;
-               }
-    
-           }
-           tmpcoord[0] = thiscoord[0] - minint[0];
-           tmpcoord[1] = thiscoord[1] - minint[1];
-           tmpcoord[2] = thiscoord[2] - minint[2];
-           if (bitsize == 0) {
-               sendbits(buf, bitsizeint[0], tmpcoord[0]);
-               sendbits(buf, bitsizeint[1], tmpcoord[1]);
-               sendbits(buf, bitsizeint[2], tmpcoord[2]);
-           } else {
-               sendints(buf, 3, bitsize, sizeint, tmpcoord);
-           }
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           thiscoord = thiscoord + 3;
-           i++;
-           
-           run = 0;
-           if (is_small == 0 && is_smaller == -1)
-               is_smaller = 0;
-           while (is_small && run < 8*3) {
-               if (is_smaller == -1 && (
-                       SQR(thiscoord[0] - prevcoord[0]) +
-                       SQR(thiscoord[1] - prevcoord[1]) +
-                       SQR(thiscoord[2] - prevcoord[2]) >= smaller * smaller)) {
-                   is_smaller = 0;
-               }
-
-               tmpcoord[run++] = thiscoord[0] - prevcoord[0] + small;
-               tmpcoord[run++] = thiscoord[1] - prevcoord[1] + small;
-               tmpcoord[run++] = thiscoord[2] - prevcoord[2] + small;
-               
-               prevcoord[0] = thiscoord[0];
-               prevcoord[1] = thiscoord[1];
-               prevcoord[2] = thiscoord[2];
-
-               i++;
-               thiscoord = thiscoord + 3;
-               is_small = 0;
-               if (i < *size &&
-                       abs(thiscoord[0] - prevcoord[0]) < small &&
-                       abs(thiscoord[1] - prevcoord[1]) < small &&
-                       abs(thiscoord[2] - prevcoord[2]) < small) {
-                   is_small = 1;
-               }
-           }
-           if (run != prevrun || is_smaller != 0) {
-               prevrun = run;
-               sendbits(buf, 1, 1); /* flag the change in run-length */
-               sendbits(buf, 5, run+is_smaller+1);
-           } else {
-               sendbits(buf, 1, 0); /* flag the fact that runlength did not change */
-           }
-           for (k=0; k < run; k+=3) {
-               sendints(buf, 3, smallidx, sizesmall, &tmpcoord[k]);    
-           }
-           if (is_smaller != 0) {
-               smallidx += is_smaller;
-               if (is_smaller < 0) {
-                   small = smaller;
-                   smaller = magicints[smallidx-1] / 2;
-               } else {
-                   smaller = small;
-                   small = magicints[smallidx] / 2;
-               }
-               sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-           }
-       }
-       if (buf[1] != 0) buf[0]++;;
-       xdr_int(xdrs, &(buf[0])); /* buf[0] holds the length in bytes */
-       return errval * (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]));
-    } else {
-       
-       /* xdrs is open for reading */
-       
-       if (xdr_int(xdrs, &lsize) == 0) 
-           return 0;
-       if (*size != 0 && lsize != *size) {
-           fprintf(stderr, "wrong number of coordinates in xdr3dfcoor; "
-                   "%d arg vs %d in file", *size, lsize);
-       }
-       *size = lsize;
-       size3 = *size * 3;
-       if (*size <= 9) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-               
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       larger = magicints[maxidx];
-
-       /* buf[0] holds the length in bytes */
-
-       if (xdr_int(xdrs, &(buf[0])) == 0)
-           return 0;
-       if (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]) == 0)
-           return 0;
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       lfp = fp;
-       inv_precision = 1.0 / * precision;
-       run = 0;
-       i = 0;
-       lip = ip;
-       while ( i < lsize ) {
-           thiscoord = (int *)(lip) + i * 3;
-
-           if (bitsize == 0) {
-               thiscoord[0] = receivebits(buf, bitsizeint[0]);
-               thiscoord[1] = receivebits(buf, bitsizeint[1]);
-               thiscoord[2] = receivebits(buf, bitsizeint[2]);
-           } else {
-               receiveints(buf, 3, bitsize, sizeint, thiscoord);
-           }
-           
-           i++;
-           thiscoord[0] += minint[0];
-           thiscoord[1] += minint[1];
-           thiscoord[2] += minint[2];
-           
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           
-          
-           flag = receivebits(buf, 1);
-           is_smaller = 0;
-           if (flag == 1) {
-               run = receivebits(buf, 5);
-               is_smaller = run % 3;
-               run -= is_smaller;
-               is_smaller--;
-           }
-           if (run > 0) {
-               thiscoord += 3;
-               for (k = 0; k < run; k+=3) {
-                   receiveints(buf, 3, smallidx, sizesmall, thiscoord);
-                   i++;
-                   thiscoord[0] += prevcoord[0] - small;
-                   thiscoord[1] += prevcoord[1] - small;
-                   thiscoord[2] += prevcoord[2] - small;
-                   if (k == 0) {
-                       /* interchange first with second atom for better
-                        * compression of water molecules
-                        */
-                       tmp = thiscoord[0]; thiscoord[0] = prevcoord[0];
-                               prevcoord[0] = tmp;
-                       tmp = thiscoord[1]; thiscoord[1] = prevcoord[1];
-                               prevcoord[1] = tmp;
-                       tmp = thiscoord[2]; thiscoord[2] = prevcoord[2];
-                               prevcoord[2] = tmp;
-                       *lfp++ = prevcoord[0] * inv_precision;
-                       *lfp++ = prevcoord[1] * inv_precision;
-                       *lfp++ = prevcoord[2] * inv_precision;
-                   } else {
-                       prevcoord[0] = thiscoord[0];
-                       prevcoord[1] = thiscoord[1];
-                       prevcoord[2] = thiscoord[2];
-                   }
-                   *lfp++ = thiscoord[0] * inv_precision;
-                   *lfp++ = thiscoord[1] * inv_precision;
-                   *lfp++ = thiscoord[2] * inv_precision;
-               }
-           } else {
-               *lfp++ = thiscoord[0] * inv_precision;
-               *lfp++ = thiscoord[1] * inv_precision;
-               *lfp++ = thiscoord[2] * inv_precision;          
-           }
-           smallidx += is_smaller;
-           if (is_smaller < 0) {
-               small = smaller;
-               if (smallidx > FIRSTIDX) {
-                   smaller = magicints[smallidx - 1] /2;
-               } else {
-                   smaller = 0;
-               }
-           } else if (is_smaller > 0) {
-               smaller = small;
-               small = magicints[smallidx] / 2;
-           }
-           sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       }
-    }
-    return 1;
-}
-
-
-   
diff --git a/source/unres/src_MD-M/xdrf_em64/libxdrf.m4~ b/source/unres/src_MD-M/xdrf_em64/libxdrf.m4~
deleted file mode 100644 (file)
index 8704af2..0000000
+++ /dev/null
@@ -1,1234 +0,0 @@
-/*____________________________________________________________________________
- |
- | libxdrf - portable fortran interface to xdr. some xdr routines
- |          are C routines for compressed coordinates
- |
- | version 1.1
- |
- | This collection of routines is intended to write and read
- | data in a portable way to a file, so data written on one type
- | of machine can be read back on a different type.
- |
- | all fortran routines use an integer 'xdrid', which is an id to the
- | current xdr file, and is set by xdrfopen.
- | most routines have in integer 'ret' which is the return value.
- | The value of 'ret' is zero on failure, and most of the time one
- | on succes.
- |
- | There are three routines useful for C users:
- |  xdropen(), xdrclose(), xdr3dfcoord().
- | The first two replace xdrstdio_create and xdr_destroy, and *must* be
- | used when you plan to use xdr3dfcoord(). (they are also a bit
- | easier to interface). For writing data other than compressed coordinates 
- | you should use the standard C xdr routines (see xdr man page)
- |
- | xdrfopen(xdrid, filename, mode, ret)
- |     character *(*) filename
- |     character *(*) mode
- |
- |     this will open the file with the given filename (string)
- |     and the given mode, it returns an id in xdrid, which is
- |     to be used in all other calls to xdrf routines.
- |     mode is 'w' to create, or update an file, for all other
- |     values of mode the file is opened for reading
- |
- |     you need to call xdrfclose to flush the output and close
- |     the file.
- |     Note that you should not use xdrstdio_create, which comes with the
- |     standard xdr library
- |
- | xdrfclose(xdrid, ret)
- |     flush the data to the file, and closes the file;
- |     You should not use xdr_destroy (which comes standard with
- |     the xdr libraries.
- |
- | xdrfbool(xdrid, bp, ret)
- |     integer pb
- |
- |     This filter produces values of either 1 or 0    
- |
- | xdrfchar(xdrid, cp, ret)
- |     character cp
- |
- |     filter that translate between characters and their xdr representation
- |     Note that the characters in not compressed and occupies 4 bytes.
- |
- | xdrfdouble(xdrid, dp, ret)
- |     double dp
- |
- |     read/write a double.
- |
- | xdrffloat(xdrid, fp, ret)
- |     float fp
- |
- |     read/write a float.
- |
- | xdrfint(xdrid, ip, ret)
- |     integer ip
- |
- |     read/write integer.
- |
- | xdrflong(xdrid, lp, ret)
- |     integer lp
- |
- |     this routine has a possible portablility problem due to 64 bits longs.
- |
- | xdrfshort(xdrid, sp, ret)
- |     integer *2 sp
- |
- | xdrfstring(xdrid, sp, maxsize, ret)
- |     character *(*)
- |     integer maxsize
- |
- |     read/write a string, with maximum length given by maxsize
- |
- | xdrfwrapstring(xdris, sp, ret)
- |     character *(*)
- |
- |     read/write a string (it is the same as xdrfstring accept that it finds
- |     the stringlength itself.
- |
- | xdrfvector(xdrid, cp, size, xdrfproc, ret)
- |     character *(*)
- |     integer size
- |     external xdrfproc
- |
- |     read/write an array pointed to by cp, with number of elements
- |     defined by 'size'. the routine 'xdrfproc' is the name
- |     of one of the above routines to read/write data (like xdrfdouble)
- |     In contrast with the c-version you don't need to specify the
- |     byte size of an element.
- |     xdrfstring is not allowed here (it is in the c version)
- |     
- | xdrf3dfcoord(xdrid, fp, size, precision, ret)
- |     real (*) fp
- |     real precision
- |     integer size
- |
- |     this is *NOT* a standard xdr routine. I named it this way, because
- |     it invites people to use the other xdr routines.
- |     It is introduced to store specifically 3d coordinates of molecules
- |     (as found in molecular dynamics) and it writes it in a compressed way.
- |     It starts by multiplying all numbers by precision and
- |     rounding the result to integer. effectively converting
- |     all floating point numbers to fixed point.
- |     it uses an algorithm for compression that is optimized for
- |     molecular data, but could be used for other 3d coordinates
- |     as well. There is subtantial overhead involved, so call this
- |     routine only if you have a large number of coordinates to read/write
- |
- | ________________________________________________________________________
- |
- | Below are the routines to be used by C programmers. Use the 'normal'
- | xdr routines to write integers, floats, etc (see man xdr)   
- |
- | int xdropen(XDR *xdrs, const char *filename, const char *type)
- |     This will open the file with the given filename and the 
- |     given mode. You should pass it an allocated XDR struct
- |     in xdrs, to be used in all other calls to xdr routines.
- |     Mode is 'w' to create, or update an file, and for all 
- |     other values of mode the file is opened for reading. 
- |     You need to call xdrclose to flush the output and close
- |     the file.
- |
- |     Note that you should not use xdrstdio_create, which
- |     comes with the standard xdr library.
- |
- | int xdrclose(XDR *xdrs)
- |     Flush the data to the file, and close the file;
- |     You should not use xdr_destroy (which comes standard
- |     with the xdr libraries).
- |      
- | int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision)
- |     This is \fInot\fR a standard xdr routine. I named it this 
- |     way, because it invites people to use the other xdr 
- |     routines.
- |
- |     (c) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-*/     
-
-
-#include <limits.h>
-#include <malloc.h>
-#include <math.h>
-/* #include <rpc/rpc.h>
-#include <rpc/xdr.h> */
-#include "xdr.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include "xdrf.h"
-
-int ftocstr(char *, int, char *, int);
-int ctofstr(char *, int, char *);
-
-#define MAXID 20
-static FILE *xdrfiles[MAXID];
-static XDR *xdridptr[MAXID];
-static char xdrmodes[MAXID];
-static unsigned int cnt;
-
-typedef void (* FUNCTION(xdrfproc)) (int *, void *, int *);
-
-void
-FUNCTION(xdrfbool) ARGS(`xdrid, pb, ret')
-int *xdrid, *ret;
-int *pb;
-{
-       *ret = xdr_bool(xdridptr[*xdrid], (bool_t *) pb);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrfchar) ARGS(`xdrid, cp, ret')
-int *xdrid, *ret;
-char *cp;
-{
-       *ret = xdr_char(xdridptr[*xdrid], cp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfdouble) ARGS(`xdrid, dp, ret')
-int *xdrid, *ret;
-double *dp;
-{
-       *ret = xdr_double(xdridptr[*xdrid], dp);
-       cnt += sizeof(double);
-}
-
-void
-FUNCTION(xdrffloat) ARGS(`xdrid, fp, ret')
-int *xdrid, *ret;
-float *fp;
-{
-       *ret = xdr_float(xdridptr[*xdrid], fp);
-       cnt += sizeof(float);
-}
-
-void
-FUNCTION(xdrfint) ARGS(`xdrid, ip, ret')
-int *xdrid, *ret;
-int *ip;
-{
-       *ret = xdr_int(xdridptr[*xdrid], ip);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrflong) ARGS(`xdrid, lp, ret')
-int *xdrid, *ret;
-long *lp;
-{
-       *ret = xdr_long(xdridptr[*xdrid], lp);
-       cnt += sizeof(long);
-}
-
-void
-FUNCTION(xdrfshort) ARGS(`xdrid, sp, ret')
-int *xdrid, *ret;
-short *sp;
-{
-       *ret = xdr_short(xdridptr[*xdrid], sp);
-       cnt += sizeof(sp);
-}
-
-void
-FUNCTION(xdrfuchar) ARGS(`xdrid, ucp, ret')
-int *xdrid, *ret;
-char *ucp;
-{
-       *ret = xdr_u_char(xdridptr[*xdrid], ucp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfulong) ARGS(`xdrid, ulp, ret')
-int *xdrid, *ret;
-unsigned long *ulp;
-{
-       *ret = xdr_u_long(xdridptr[*xdrid], ulp);
-       cnt += sizeof(unsigned long);
-}
-
-void
-FUNCTION(xdrfushort) ARGS(`xdrid, usp, ret')
-int *xdrid, *ret;
-unsigned short *usp;
-{
-       *ret = xdr_u_short(xdridptr[*xdrid], usp);
-       cnt += sizeof(unsigned short);
-}
-
-void 
-FUNCTION(xdrf3dfcoord) ARGS(`xdrid, fp, size, precision, ret')
-int *xdrid, *ret;
-float *fp;
-int *size;
-float *precision;
-{
-       *ret = xdr3dfcoord(xdridptr[*xdrid], fp, size, precision);
-}
-
-void
-FUNCTION(xdrfstring) ARGS(`xdrid, STRING_ARG(sp), maxsize, ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-int *maxsize;
-{
-       char *tsp;
-
-       tsp = (char*) malloc(((STRING_LEN(sp)) + 1) * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, *maxsize+1, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int) *maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += *maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfwrapstring) ARGS(`xdrid,  STRING_ARG(sp), ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-{
-       char *tsp;
-       int maxsize;
-       maxsize = (STRING_LEN(sp)) + 1;
-       tsp = (char*) malloc(maxsize * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, maxsize, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int)maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfopaque) ARGS(`xdrid, cp, ccnt, ret')
-int *xdrid, *ret;
-caddr_t *cp;
-int *ccnt;
-{
-       *ret = xdr_opaque(xdridptr[*xdrid], (caddr_t)*cp, (u_int)*ccnt);
-       cnt += *ccnt;
-}
-
-void
-FUNCTION(xdrfsetpos) ARGS(`xdrid, pos, ret')
-int *xdrid, *ret;
-int *pos;
-{
-       *ret = xdr_setpos(xdridptr[*xdrid], (u_int) *pos);
-}
-
-void
-FUNCTION(xdrf) ARGS(`xdrid, pos')
-int *xdrid, *pos;
-{
-       *pos = xdr_getpos(xdridptr[*xdrid]);
-}
-
-void
-FUNCTION(xdrfvector) ARGS(`xdrid, cp, size, elproc, ret')
-int *xdrid, *ret;
-char *cp;
-int *size;
-FUNCTION(xdrfproc) elproc;
-{
-       int lcnt;
-       cnt = 0;
-       for (lcnt = 0; lcnt < *size; lcnt++) {
-               elproc(xdrid, (cp+cnt) , ret);
-       }
-}
-
-
-void
-FUNCTION(xdrfclose) ARGS(`xdrid, ret')
-int *xdrid;
-int *ret;
-{
-       *ret = xdrclose(xdridptr[*xdrid]);
-       cnt = 0;
-}
-
-void
-FUNCTION(xdrfopen) ARGS(`xdrid,  STRING_ARG(fp), STRING_ARG(mode), ret')
-int *xdrid;
-STRING_ARG_DECL(fp);
-STRING_ARG_DECL(mode);
-int *ret;
-{
-       char fname[512];
-       char fmode[3];
-
-       if (ftocstr(fname, sizeof(fname), STRING_PTR(fp), STRING_LEN(fp))) {
-               *ret = 0;
-       }
-       if (ftocstr(fmode, sizeof(fmode), STRING_PTR(mode),
-                       STRING_LEN(mode))) {
-               *ret = 0;
-       }
-
-       *xdrid = xdropen(NULL, fname, fmode);
-       if (*xdrid == 0)
-               *ret = 0;
-       else 
-               *ret = 1;       
-}
-
-/*___________________________________________________________________________
- |
- | what follows are the C routines for opening, closing xdr streams
- | and the routine to read/write compressed coordinates together
- | with some routines to assist in this task (those are marked
- | static and cannot be called from user programs)
-*/
-#define MAXABS INT_MAX-2
-
-#ifndef MIN
-#define MIN(x,y) ((x) < (y) ? (x):(y))
-#endif
-#ifndef MAX
-#define MAX(x,y) ((x) > (y) ? (x):(y))
-#endif
-#ifndef SQR
-#define SQR(x) ((x)*(x))
-#endif
-static int magicints[] = {
-    0, 0, 0, 0, 0, 0, 0, 0, 0,
-    8, 10, 12, 16, 20, 25, 32, 40, 50, 64,
-    80, 101, 128, 161, 203, 256, 322, 406, 512, 645,
-    812, 1024, 1290, 1625, 2048, 2580, 3250, 4096, 5060, 6501,
-    8192, 10321, 13003, 16384, 20642, 26007, 32768, 41285, 52015, 65536,
-    82570, 104031, 131072, 165140, 208063, 262144, 330280, 416127, 524287, 660561,
-    832255, 1048576, 1321122, 1664510, 2097152, 2642245, 3329021, 4194304, 5284491, 6658042,
-    8388607, 10568983, 13316085, 16777216 };
-
-#define FIRSTIDX 9
-/* note that magicints[FIRSTIDX-1] == 0 */
-#define LASTIDX (sizeof(magicints) / sizeof(*magicints))
-
-
-/*__________________________________________________________________________
- |
- | xdropen - open xdr file
- |
- | This versions differs from xdrstdio_create, because I need to know
- | the state of the file (read or write) so I can use xdr3dfcoord
- | in eigther read or write mode, and the file descriptor
- | so I can close the file (something xdr_destroy doesn't do).
- |
-*/
-
-int xdropen(XDR *xdrs, const char *filename, const char *type) {
-    static int init_done = 0;
-    enum xdr_op lmode;
-    const char *type1;
-    int xdrid;
-    
-    if (init_done == 0) {
-       for (xdrid = 1; xdrid < MAXID; xdrid++) {
-           xdridptr[xdrid] = NULL;
-       }
-       init_done = 1;
-    }
-    xdrid = 1;
-    while (xdrid < MAXID && xdridptr[xdrid] != NULL) {
-       xdrid++;
-    }
-    if (xdrid == MAXID) {
-       return 0;
-    }
-    if (*type == 'w' || *type == 'W') {
-           type = "w+";
-           type1 = "a+";
-           lmode = XDR_ENCODE;
-    } else {
-           type = "r";
-            type1 = "r";
-           lmode = XDR_DECODE;
-    }
-    xdrfiles[xdrid] = fopen(filename, type1);
-    if (xdrfiles[xdrid] == NULL) {
-       xdrs = NULL;
-       return 0;
-    }
-    xdrmodes[xdrid] = *type;
-    /* next test isn't usefull in the case of C language
-     * but is used for the Fortran interface
-     * (C users are expected to pass the address of an already allocated
-     * XDR staructure)
-     */
-    if (xdrs == NULL) {
-       xdridptr[xdrid] = (XDR *) malloc(sizeof(XDR));
-       xdrstdio_create(xdridptr[xdrid], xdrfiles[xdrid], lmode);
-    } else {
-       xdridptr[xdrid] = xdrs;
-       xdrstdio_create(xdrs, xdrfiles[xdrid], lmode);
-    }
-    return xdrid;
-}
-
-/*_________________________________________________________________________
- |
- | xdrclose - close a xdr file
- |
- | This will flush the xdr buffers, and destroy the xdr stream.
- | It also closes the associated file descriptor (this is *not*
- | done by xdr_destroy).
- |
-*/
-int xdrclose(XDR *xdrs) {
-    int xdrid;
-    
-    if (xdrs == NULL) {
-       fprintf(stderr, "xdrclose: passed a NULL pointer\n");
-       exit(1);
-    }
-    for (xdrid = 1; xdrid < MAXID; xdrid++) {
-       if (xdridptr[xdrid] == xdrs) {
-           
-           xdr_destroy(xdrs);
-           fclose(xdrfiles[xdrid]);
-           xdridptr[xdrid] = NULL;
-           return 1;
-       }
-    } 
-    fprintf(stderr, "xdrclose: no such open xdr file\n");
-    exit(1);
-    
-}
-
-/*____________________________________________________________________________
- |
- | sendbits - encode num into buf using the specified number of bits
- |
- | This routines appends the value of num to the bits already present in
- | the array buf. You need to give it the number of bits to use and you
- | better make sure that this number of bits is enough to hold the value
- | Also num must be positive.
- |
-*/
-
-static void sendbits(int buf[], int num_of_bits, int num) {
-    
-    unsigned int cnt, lastbyte;
-    int lastbits;
-    unsigned char * cbuf;
-    
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = (unsigned int) buf[0];
-    lastbits = buf[1];
-    lastbyte =(unsigned int) buf[2];
-    while (num_of_bits >= 8) {
-       lastbyte = (lastbyte << 8) | ((num >> (num_of_bits -8)) /* & 0xff*/);
-       cbuf[cnt++] = lastbyte >> lastbits;
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       lastbyte = (lastbyte << num_of_bits) | num;
-       lastbits += num_of_bits;
-       if (lastbits >= 8) {
-           lastbits -= 8;
-           cbuf[cnt++] = lastbyte >> lastbits;
-       }
-    }
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    if (lastbits>0) {
-       cbuf[cnt] = lastbyte << (8 - lastbits);
-    }
-}
-
-/*_________________________________________________________________________
- |
- | sizeofint - calculate bitsize of an integer
- |
- | return the number of bits needed to store an integer with given max size
- |
-*/
-
-static int sizeofint(const int size) {
-    unsigned int num = 1;
-    int num_of_bits = 0;
-    
-    while (size >= num && num_of_bits < 32) {
-       num_of_bits++;
-       num <<= 1;
-    }
-    return num_of_bits;
-}
-
-/*___________________________________________________________________________
- |
- | sizeofints - calculate 'bitsize' of compressed ints
- |
- | given the number of small unsigned integers and the maximum value
- | return the number of bits needed to read or write them with the
- | routines receiveints and sendints. You need this parameter when
- | calling these routines. Note that for many calls I can use
- | the variable 'smallidx' which is exactly the number of bits, and
- | So I don't need to call 'sizeofints for those calls.
-*/
-
-static int sizeofints( const int num_of_ints, unsigned int sizes[]) {
-    int i, num;
-    unsigned int num_of_bytes, num_of_bits, bytes[32], bytecnt, tmp;
-    num_of_bytes = 1;
-    bytes[0] = 1;
-    num_of_bits = 0;
-    for (i=0; i < num_of_ints; i++) {  
-       tmp = 0;
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    num = 1;
-    num_of_bytes--;
-    while (bytes[num_of_bytes] >= num) {
-       num_of_bits++;
-       num *= 2;
-    }
-    return num_of_bits + num_of_bytes * 8;
-
-}
-    
-/*____________________________________________________________________________
- |
- | sendints - send a small set of small integers in compressed format
- |
- | this routine is used internally by xdr3dfcoord, to send a set of
- | small integers to the buffer. 
- | Multiplication with fixed (specified maximum ) sizes is used to get
- | to one big, multibyte integer. Allthough the routine could be
- | modified to handle sizes bigger than 16777216, or more than just
- | a few integers, this is not done, because the gain in compression
- | isn't worth the effort. Note that overflowing the multiplication
- | or the byte buffer (32 bytes) is unchecked and causes bad results.
- |
- */
-static void sendints(int buf[], const int num_of_ints, const int num_of_bits,
-       unsigned int sizes[], unsigned int nums[]) {
-
-    int i;
-    unsigned int bytes[32], num_of_bytes, bytecnt, tmp;
-
-    tmp = nums[0];
-    num_of_bytes = 0;
-    do {
-       bytes[num_of_bytes++] = tmp & 0xff;
-       tmp >>= 8;
-    } while (tmp != 0);
-
-    for (i = 1; i < num_of_ints; i++) {
-       if (nums[i] >= sizes[i]) {
-           fprintf(stderr,"major breakdown in sendints num %d doesn't "
-                   "match size %d\n", nums[i], sizes[i]);
-           exit(1);
-       }
-       /* use one step multiply */    
-       tmp = nums[i];
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    if (num_of_bits >= num_of_bytes * 8) {
-       for (i = 0; i < num_of_bytes; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits - num_of_bytes * 8, 0);
-    } else {
-       for (i = 0; i < num_of_bytes-1; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits- (num_of_bytes -1) * 8, bytes[i]);
-    }
-}
-
-
-/*___________________________________________________________________________
- |
- | receivebits - decode number from buf using specified number of bits
- | 
- | extract the number of bits from the array buf and construct an integer
- | from it. Return that value.
- |
-*/
-
-static int receivebits(int buf[], int num_of_bits) {
-
-    int cnt, num; 
-    unsigned int lastbits, lastbyte;
-    unsigned char * cbuf;
-    int mask = (1 << num_of_bits) -1;
-
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = buf[0];
-    lastbits = (unsigned int) buf[1];
-    lastbyte = (unsigned int) buf[2];
-    
-    num = 0;
-    while (num_of_bits >= 8) {
-       lastbyte = ( lastbyte << 8 ) | cbuf[cnt++];
-       num |=  (lastbyte >> lastbits) << (num_of_bits - 8);
-       num_of_bits -=8;
-    }
-    if (num_of_bits > 0) {
-       if (lastbits < num_of_bits) {
-           lastbits += 8;
-           lastbyte = (lastbyte << 8) | cbuf[cnt++];
-       }
-       lastbits -= num_of_bits;
-       num |= (lastbyte >> lastbits) & ((1 << num_of_bits) -1);
-    }
-    num &= mask;
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    return num; 
-}
-
-/*____________________________________________________________________________
- |
- | receiveints - decode 'small' integers from the buf array
- |
- | this routine is the inverse from sendints() and decodes the small integers
- | written to buf by calculating the remainder and doing divisions with
- | the given sizes[]. You need to specify the total number of bits to be
- | used from buf in num_of_bits.
- |
-*/
-
-static void receiveints(int buf[], const int num_of_ints, int num_of_bits,
-       unsigned int sizes[], int nums[]) {
-    int bytes[32];
-    int i, j, num_of_bytes, p, num;
-    
-    bytes[1] = bytes[2] = bytes[3] = 0;
-    num_of_bytes = 0;
-    while (num_of_bits > 8) {
-       bytes[num_of_bytes++] = receivebits(buf, 8);
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       bytes[num_of_bytes++] = receivebits(buf, num_of_bits);
-    }
-    for (i = num_of_ints-1; i > 0; i--) {
-       num = 0;
-       for (j = num_of_bytes-1; j >=0; j--) {
-           num = (num << 8) | bytes[j];
-           p = num / sizes[i];
-           bytes[j] = p;
-           num = num - p * sizes[i];
-       }
-       nums[i] = num;
-    }
-    nums[0] = bytes[0] | (bytes[1] << 8) | (bytes[2] << 16) | (bytes[3] << 24);
-}
-    
-/*____________________________________________________________________________
- |
- | xdr3dfcoord - read or write compressed 3d coordinates to xdr file.
- |
- | this routine reads or writes (depending on how you opened the file with
- | xdropen() ) a large number of 3d coordinates (stored in *fp).
- | The number of coordinates triplets to write is given by *size. On
- | read this number may be zero, in which case it reads as many as were written
- | or it may specify the number if triplets to read (which should match the
- | number written).
- | Compression is achieved by first converting all floating numbers to integer
- | using multiplication by *precision and rounding to the nearest integer.
- | Then the minimum and maximum value are calculated to determine the range.
- | The limited range of integers so found, is used to compress the coordinates.
- | In addition the differences between succesive coordinates is calculated.
- | If the difference happens to be 'small' then only the difference is saved,
- | compressing the data even more. The notion of 'small' is changed dynamically
- | and is enlarged or reduced whenever needed or possible.
- | Extra compression is achieved in the case of GROMOS and coordinates of
- | water molecules. GROMOS first writes out the Oxygen position, followed by
- | the two hydrogens. In order to make the differences smaller (and thereby
- | compression the data better) the order is changed into first one hydrogen
- | then the oxygen, followed by the other hydrogen. This is rather special, but
- | it shouldn't harm in the general case.
- |
- */
-int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) {
-    
-
-    static int *ip = NULL;
-    static int oldsize;
-    static int *buf;
-
-    int minint[3], maxint[3], mindiff, *lip, diff;
-    int lint1, lint2, lint3, oldlint1, oldlint2, oldlint3, smallidx;
-    int minidx, maxidx;
-    unsigned sizeint[3], sizesmall[3], bitsizeint[3], size3, *luip;
-    int flag, k;
-    int small, smaller, larger, i, is_small, is_smaller, run, prevrun;
-    float *lfp, lf;
-    int tmp, *thiscoord,  prevcoord[3];
-    unsigned int tmpcoord[30];
-
-    int bufsize, xdrid, lsize;
-    unsigned int bitsize;
-    float inv_precision;
-    int errval = 1;
-
-    /* find out if xdrs is opened for reading or for writing */
-    xdrid = 0;
-    while (xdridptr[xdrid] != xdrs) {
-       xdrid++;
-       if (xdrid >= MAXID) {
-           fprintf(stderr, "xdr error. no open xdr stream\n");
-           exit (1);
-       }
-    }
-    if (xdrmodes[xdrid] == 'w') {
-
-       /* xdrs is open for writing */
-
-       if (xdr_int(xdrs, size) == 0)
-           return 0;
-       size3 = *size * 3;
-       /* when the number of coordinates is small, don't try to compress; just
-        * write them as floats using xdr_vector
-        */
-       if (*size <= 9 ) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       /* buf[0-2] are special and do not contain actual data */
-       buf[0] = buf[1] = buf[2] = 0;
-       minint[0] = minint[1] = minint[2] = INT_MAX;
-       maxint[0] = maxint[1] = maxint[2] = INT_MIN;
-       prevrun = -1;
-       lfp = fp;
-       lip = ip;
-       mindiff = INT_MAX;
-       oldlint1 = oldlint2 = oldlint3 = 0;
-       while(lfp < fp + size3 ) {
-           /* find nearest integer */
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint1 = lf;
-           if (lint1 < minint[0]) minint[0] = lint1;
-           if (lint1 > maxint[0]) maxint[0] = lint1;
-           *lip++ = lint1;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint2 = lf;
-           if (lint2 < minint[1]) minint[1] = lint2;
-           if (lint2 > maxint[1]) maxint[1] = lint2;
-           *lip++ = lint2;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint3 = lf;
-           if (lint3 < minint[2]) minint[2] = lint3;
-           if (lint3 > maxint[2]) maxint[2] = lint3;
-           *lip++ = lint3;
-           lfp++;
-           diff = abs(oldlint1-lint1)+abs(oldlint2-lint2)+abs(oldlint3-lint3);
-           if (diff < mindiff && lfp > fp + 3)
-               mindiff = diff;
-           oldlint1 = lint1;
-           oldlint2 = lint2;
-           oldlint3 = lint3;
-       }
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-       
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-       
-       if ((float)maxint[0] - (float)minint[0] >= MAXABS ||
-               (float)maxint[1] - (float)minint[1] >= MAXABS ||
-               (float)maxint[2] - (float)minint[2] >= MAXABS) {
-           /* turning value in unsigned by subtracting minint
-            * would cause overflow
-            */
-           errval = 0;
-       }
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       lip = ip;
-       luip = (unsigned int *) ip;
-       smallidx = FIRSTIDX;
-       while (smallidx < LASTIDX && magicints[smallidx] < mindiff) {
-           smallidx++;
-       }
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-       larger = magicints[maxidx] / 2;
-       i = 0;
-       while (i < *size) {
-           is_small = 0;
-           thiscoord = (int *)(luip) + i * 3;
-           if (smallidx < maxidx && i >= 1 &&
-                   abs(thiscoord[0] - prevcoord[0]) < larger &&
-                   abs(thiscoord[1] - prevcoord[1]) < larger &&
-                   abs(thiscoord[2] - prevcoord[2]) < larger) {
-               is_smaller = 1;
-           } else if (smallidx > minidx) {
-               is_smaller = -1;
-           } else {
-               is_smaller = 0;
-           }
-           if (i + 1 < *size) {
-               if (abs(thiscoord[0] - thiscoord[3]) < small &&
-                       abs(thiscoord[1] - thiscoord[4]) < small &&
-                       abs(thiscoord[2] - thiscoord[5]) < small) {
-                   /* interchange first with second atom for better
-                    * compression of water molecules
-                    */
-                   tmp = thiscoord[0]; thiscoord[0] = thiscoord[3];
-                       thiscoord[3] = tmp;
-                   tmp = thiscoord[1]; thiscoord[1] = thiscoord[4];
-                       thiscoord[4] = tmp;
-                   tmp = thiscoord[2]; thiscoord[2] = thiscoord[5];
-                       thiscoord[5] = tmp;
-                   is_small = 1;
-               }
-    
-           }
-           tmpcoord[0] = thiscoord[0] - minint[0];
-           tmpcoord[1] = thiscoord[1] - minint[1];
-           tmpcoord[2] = thiscoord[2] - minint[2];
-           if (bitsize == 0) {
-               sendbits(buf, bitsizeint[0], tmpcoord[0]);
-               sendbits(buf, bitsizeint[1], tmpcoord[1]);
-               sendbits(buf, bitsizeint[2], tmpcoord[2]);
-           } else {
-               sendints(buf, 3, bitsize, sizeint, tmpcoord);
-           }
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           thiscoord = thiscoord + 3;
-           i++;
-           
-           run = 0;
-           if (is_small == 0 && is_smaller == -1)
-               is_smaller = 0;
-           while (is_small && run < 8*3) {
-               if (is_smaller == -1 && (
-                       SQR(thiscoord[0] - prevcoord[0]) +
-                       SQR(thiscoord[1] - prevcoord[1]) +
-                       SQR(thiscoord[2] - prevcoord[2]) >= smaller * smaller)) {
-                   is_smaller = 0;
-               }
-
-               tmpcoord[run++] = thiscoord[0] - prevcoord[0] + small;
-               tmpcoord[run++] = thiscoord[1] - prevcoord[1] + small;
-               tmpcoord[run++] = thiscoord[2] - prevcoord[2] + small;
-               
-               prevcoord[0] = thiscoord[0];
-               prevcoord[1] = thiscoord[1];
-               prevcoord[2] = thiscoord[2];
-
-               i++;
-               thiscoord = thiscoord + 3;
-               is_small = 0;
-               if (i < *size &&
-                       abs(thiscoord[0] - prevcoord[0]) < small &&
-                       abs(thiscoord[1] - prevcoord[1]) < small &&
-                       abs(thiscoord[2] - prevcoord[2]) < small) {
-                   is_small = 1;
-               }
-           }
-           if (run != prevrun || is_smaller != 0) {
-               prevrun = run;
-               sendbits(buf, 1, 1); /* flag the change in run-length */
-               sendbits(buf, 5, run+is_smaller+1);
-           } else {
-               sendbits(buf, 1, 0); /* flag the fact that runlength did not change */
-           }
-           for (k=0; k < run; k+=3) {
-               sendints(buf, 3, smallidx, sizesmall, &tmpcoord[k]);    
-           }
-           if (is_smaller != 0) {
-               smallidx += is_smaller;
-               if (is_smaller < 0) {
-                   small = smaller;
-                   smaller = magicints[smallidx-1] / 2;
-               } else {
-                   smaller = small;
-                   small = magicints[smallidx] / 2;
-               }
-               sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-           }
-       }
-       if (buf[1] != 0) buf[0]++;;
-       xdr_int(xdrs, &(buf[0])); /* buf[0] holds the length in bytes */
-       return errval * (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]));
-    } else {
-       
-       /* xdrs is open for reading */
-       
-       if (xdr_int(xdrs, &lsize) == 0) 
-           return 0;
-       if (*size != 0 && lsize != *size) {
-           fprintf(stderr, "wrong number of coordinates in xdr3dfcoor; "
-                   "%d arg vs %d in file", *size, lsize);
-       }
-       *size = lsize;
-       size3 = *size * 3;
-       if (*size <= 9) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-               
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       larger = magicints[maxidx];
-
-       /* buf[0] holds the length in bytes */
-
-       if (xdr_int(xdrs, &(buf[0])) == 0)
-           return 0;
-       if (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]) == 0)
-           return 0;
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       lfp = fp;
-       inv_precision = 1.0 / * precision;
-       run = 0;
-       i = 0;
-       lip = ip;
-       while ( i < lsize ) {
-           thiscoord = (int *)(lip) + i * 3;
-
-           if (bitsize == 0) {
-               thiscoord[0] = receivebits(buf, bitsizeint[0]);
-               thiscoord[1] = receivebits(buf, bitsizeint[1]);
-               thiscoord[2] = receivebits(buf, bitsizeint[2]);
-           } else {
-               receiveints(buf, 3, bitsize, sizeint, thiscoord);
-           }
-           
-           i++;
-           thiscoord[0] += minint[0];
-           thiscoord[1] += minint[1];
-           thiscoord[2] += minint[2];
-           
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           
-          
-           flag = receivebits(buf, 1);
-           is_smaller = 0;
-           if (flag == 1) {
-               run = receivebits(buf, 5);
-               is_smaller = run % 3;
-               run -= is_smaller;
-               is_smaller--;
-           }
-           if (run > 0) {
-               thiscoord += 3;
-               for (k = 0; k < run; k+=3) {
-                   receiveints(buf, 3, smallidx, sizesmall, thiscoord);
-                   i++;
-                   thiscoord[0] += prevcoord[0] - small;
-                   thiscoord[1] += prevcoord[1] - small;
-                   thiscoord[2] += prevcoord[2] - small;
-                   if (k == 0) {
-                       /* interchange first with second atom for better
-                        * compression of water molecules
-                        */
-                       tmp = thiscoord[0]; thiscoord[0] = prevcoord[0];
-                               prevcoord[0] = tmp;
-                       tmp = thiscoord[1]; thiscoord[1] = prevcoord[1];
-                               prevcoord[1] = tmp;
-                       tmp = thiscoord[2]; thiscoord[2] = prevcoord[2];
-                               prevcoord[2] = tmp;
-                       *lfp++ = prevcoord[0] * inv_precision;
-                       *lfp++ = prevcoord[1] * inv_precision;
-                       *lfp++ = prevcoord[2] * inv_precision;
-                   } else {
-                       prevcoord[0] = thiscoord[0];
-                       prevcoord[1] = thiscoord[1];
-                       prevcoord[2] = thiscoord[2];
-                   }
-                   *lfp++ = thiscoord[0] * inv_precision;
-                   *lfp++ = thiscoord[1] * inv_precision;
-                   *lfp++ = thiscoord[2] * inv_precision;
-               }
-           } else {
-               *lfp++ = thiscoord[0] * inv_precision;
-               *lfp++ = thiscoord[1] * inv_precision;
-               *lfp++ = thiscoord[2] * inv_precision;          
-           }
-           smallidx += is_smaller;
-           if (is_smaller < 0) {
-               small = smaller;
-               if (smallidx > FIRSTIDX) {
-                   smaller = magicints[smallidx - 1] /2;
-               } else {
-                   smaller = 0;
-               }
-           } else if (is_smaller > 0) {
-               smaller = small;
-               small = magicints[smallidx] / 2;
-           }
-           sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       }
-    }
-    return 1;
-}
-
-
-   
diff --git a/source/unres/src_MD-M/xdrf_em64/libxdrf.o b/source/unres/src_MD-M/xdrf_em64/libxdrf.o
deleted file mode 100644 (file)
index 22907c4..0000000
Binary files a/source/unres/src_MD-M/xdrf_em64/libxdrf.o and /dev/null differ
diff --git a/source/unres/src_MD-M/xdrf_em64/types.h b/source/unres/src_MD-M/xdrf_em64/types.h
deleted file mode 100644 (file)
index 871f3fd..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-/* fixincludes should not add extern "C" to this file */
-/*
- * Rpc additions to <sys/types.h>
- */
-#ifndef _RPC_TYPES_H
-#define _RPC_TYPES_H 1
-
-typedef int bool_t;
-typedef int enum_t;
-/* This needs to be changed to uint32_t in the future */
-typedef unsigned long rpcprog_t;
-typedef unsigned long rpcvers_t;
-typedef unsigned long rpcproc_t;
-typedef unsigned long rpcprot_t;
-typedef unsigned long rpcport_t;
-
-#define        __dontcare__    -1
-
-#ifndef FALSE
-#      define  FALSE   (0)
-#endif
-
-#ifndef TRUE
-#      define  TRUE    (1)
-#endif
-
-#ifndef NULL
-#      define  NULL 0
-#endif
-
-#include <stdlib.h>            /* For malloc decl.  */
-#define mem_alloc(bsize)       malloc(bsize)
-/*
- * XXX: This must not use the second argument, or code in xdr_array.c needs
- * to be modified.
- */
-#define mem_free(ptr, bsize)   free(ptr)
-
-#ifndef makedev /* ie, we haven't already included it */
-#include <sys/types.h>
-#endif
-
-#ifndef __u_char_defined
-typedef __u_char u_char;
-typedef __u_short u_short;
-typedef __u_int u_int;
-typedef __u_long u_long;
-typedef __quad_t quad_t;
-typedef __u_quad_t u_quad_t;
-typedef __fsid_t fsid_t;
-# define __u_char_defined
-#endif
-#ifndef __daddr_t_defined
-typedef __daddr_t daddr_t;
-typedef __caddr_t caddr_t;
-# define __daddr_t_defined
-#endif
-
-#include <sys/time.h>
-#include <sys/param.h>
-
-#include <netinet/in.h>
-
-#ifndef INADDR_LOOPBACK
-#define       INADDR_LOOPBACK         (u_long)0x7F000001
-#endif
-#ifndef MAXHOSTNAMELEN
-#define        MAXHOSTNAMELEN  64
-#endif
-
-#endif /* rpc/types.h */
diff --git a/source/unres/src_MD-M/xdrf_em64/underscore.m4 b/source/unres/src_MD-M/xdrf_em64/underscore.m4
deleted file mode 100644 (file)
index 4d620a0..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-divert(-1)
-undefine(`len')
-#
-# append an underscore to FORTRAN function names
-#
-define(`FUNCTION',`$1_')
-#
-# FORTRAN character strings are passed as follows:
-# a pointer to the base of the string is passed in the normal
-# argument list, and the length is passed by value as an extra
-# argument, after all of the other arguments.
-#
-define(`ARGS',`($1`'undivert(1))')
-define(`SAVE',`divert(1)$1`'divert(0)')
-define(`STRING_ARG',`$1_ptr`'SAVE(`, $1_len')')
-define(`STRING_ARG_DECL',`char * $1_ptr; int $1_len')
-define(`STRING_LEN',`$1_len')
-define(`STRING_PTR',`$1_ptr')
-divert(0)
diff --git a/source/unres/src_MD-M/xdrf_em64/xdr.c b/source/unres/src_MD-M/xdrf_em64/xdr.c
deleted file mode 100644 (file)
index 33b8544..0000000
+++ /dev/null
@@ -1,752 +0,0 @@
-# define INTUSE(name) name
-# define INTDEF(name)
-/* @(#)xdr.c   2.1 88/07/29 4.0 RPCSRC */
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)xdr.c 1.35 87/08/12";
-#endif
-
-/*
- * xdr.c, Generic XDR routines implementation.
- *
- * Copyright (C) 1986, Sun Microsystems, Inc.
- *
- * These are the "generic" xdr routines used to serialize and de-serialize
- * most common data items.  See xdr.h for more info on the interface to
- * xdr.
- */
-
-#include <stdio.h>
-#include <limits.h>
-#include <string.h>
-#include <libintl.h>
-
-#include "types.h"
-#include "xdr.h"
-
-#ifdef USE_IN_LIBIO
-# include <wchar.h>
-#endif
-
-/*
- * constants specific to the xdr "protocol"
- */
-#define XDR_FALSE      ((long) 0)
-#define XDR_TRUE       ((long) 1)
-#define LASTUNSIGNED   ((u_int) 0-1)
-
-/*
- * for unit alignment
- */
-static const char xdr_zero[BYTES_PER_XDR_UNIT] = {0, 0, 0, 0};
-
-/*
- * Free a data structure using XDR
- * Not a filter, but a convenient utility nonetheless
- */
-void
-xdr_free (xdrproc_t proc, char *objp)
-{
-  XDR x;
-
-  x.x_op = XDR_FREE;
-  (*proc) (&x, objp);
-}
-
-/*
- * XDR nothing
- */
-bool_t
-xdr_void (void)
-{
-  return TRUE;
-}
-INTDEF(xdr_void)
-
-/*
- * XDR integers
- */
-bool_t
-xdr_int (XDR *xdrs, int *ip)
-{
-
-#if INT_MAX < LONG_MAX
-  long l;
-
-  switch (xdrs->x_op)
-    {
-    case XDR_ENCODE:
-      l = (long) *ip;
-      return XDR_PUTLONG (xdrs, &l);
-
-    case XDR_DECODE:
-      if (!XDR_GETLONG (xdrs, &l))
-       {
-         return FALSE;
-       }
-      *ip = (int) l;
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-#elif INT_MAX == LONG_MAX
-  return INTUSE(xdr_long) (xdrs, (long *) ip);
-#elif INT_MAX == SHRT_MAX
-  return INTUSE(xdr_short) (xdrs, (short *) ip);
-#else
-#error unexpected integer sizes in_xdr_int()
-#endif
-}
-INTDEF(xdr_int)
-
-/*
- * XDR unsigned integers
- */
-bool_t
-xdr_u_int (XDR *xdrs, u_int *up)
-{
-#if UINT_MAX < ULONG_MAX
-  long l;
-
-  switch (xdrs->x_op)
-    {
-    case XDR_ENCODE:
-      l = (u_long) * up;
-      return XDR_PUTLONG (xdrs, &l);
-
-    case XDR_DECODE:
-      if (!XDR_GETLONG (xdrs, &l))
-       {
-         return FALSE;
-       }
-      *up = (u_int) (u_long) l;
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-#elif UINT_MAX == ULONG_MAX
-  return INTUSE(xdr_u_long) (xdrs, (u_long *) up);
-#elif UINT_MAX == USHRT_MAX
-  return INTUSE(xdr_short) (xdrs, (short *) up);
-#else
-#error unexpected integer sizes in_xdr_u_int()
-#endif
-}
-INTDEF(xdr_u_int)
-
-/*
- * XDR long integers
- * The definition of xdr_long() is kept for backward
- * compatibility. Instead xdr_int() should be used.
- */
-bool_t
-xdr_long (XDR *xdrs, long *lp)
-{
-
-  if (xdrs->x_op == XDR_ENCODE
-      && (sizeof (int32_t) == sizeof (long)
-         || (int32_t) *lp == *lp))
-    return XDR_PUTLONG (xdrs, lp);
-
-  if (xdrs->x_op == XDR_DECODE)
-    return XDR_GETLONG (xdrs, lp);
-
-  if (xdrs->x_op == XDR_FREE)
-    return TRUE;
-
-  return FALSE;
-}
-INTDEF(xdr_long)
-
-/*
- * XDR unsigned long integers
- * The definition of xdr_u_long() is kept for backward
- * compatibility. Instead xdr_u_int() should be used.
- */
-bool_t
-xdr_u_long (XDR *xdrs, u_long *ulp)
-{
-  switch (xdrs->x_op)
-    {
-    case XDR_DECODE:
-      {
-       long int tmp;
-
-       if (XDR_GETLONG (xdrs, &tmp) == FALSE)
-         return FALSE;
-
-       *ulp = (uint32_t) tmp;
-       return TRUE;
-      }
-
-    case XDR_ENCODE:
-      if (sizeof (uint32_t) != sizeof (u_long)
-         && (uint32_t) *ulp != *ulp)
-       return FALSE;
-
-      return XDR_PUTLONG (xdrs, (long *) ulp);
-
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_u_long)
-
-/*
- * XDR hyper integers
- * same as xdr_u_hyper - open coded to save a proc call!
- */
-bool_t
-xdr_hyper (XDR *xdrs, quad_t *llp)
-{
-  long int t1, t2;
-
-  if (xdrs->x_op == XDR_ENCODE)
-    {
-      t1 = (long) ((*llp) >> 32);
-      t2 = (long) (*llp);
-      return (XDR_PUTLONG(xdrs, &t1) && XDR_PUTLONG(xdrs, &t2));
-    }
-
-  if (xdrs->x_op == XDR_DECODE)
-    {
-      if (!XDR_GETLONG(xdrs, &t1) || !XDR_GETLONG(xdrs, &t2))
-       return FALSE;
-      *llp = ((quad_t) t1) << 32;
-      *llp |= (uint32_t) t2;
-      return TRUE;
-    }
-
-  if (xdrs->x_op == XDR_FREE)
-    return TRUE;
-
-  return FALSE;
-}
-INTDEF(xdr_hyper)
-
-
-/*
- * XDR hyper integers
- * same as xdr_hyper - open coded to save a proc call!
- */
-bool_t
-xdr_u_hyper (XDR *xdrs, u_quad_t *ullp)
-{
-  long int t1, t2;
-
-  if (xdrs->x_op == XDR_ENCODE)
-    {
-      t1 = (unsigned long) ((*ullp) >> 32);
-      t2 = (unsigned long) (*ullp);
-      return (XDR_PUTLONG(xdrs, &t1) && XDR_PUTLONG(xdrs, &t2));
-    }
-
-  if (xdrs->x_op == XDR_DECODE)
-    {
-      if (!XDR_GETLONG(xdrs, &t1) || !XDR_GETLONG(xdrs, &t2))
-       return FALSE;
-      *ullp = ((u_quad_t) t1) << 32;
-      *ullp |= (uint32_t) t2;
-      return TRUE;
-    }
-
-  if (xdrs->x_op == XDR_FREE)
-    return TRUE;
-
-  return FALSE;
-}
-INTDEF(xdr_u_hyper)
-
-bool_t
-xdr_longlong_t (XDR *xdrs, quad_t *llp)
-{
-  return INTUSE(xdr_hyper) (xdrs, llp);
-}
-
-bool_t
-xdr_u_longlong_t (XDR *xdrs, u_quad_t *ullp)
-{
-  return INTUSE(xdr_u_hyper) (xdrs, ullp);
-}
-
-/*
- * XDR short integers
- */
-bool_t
-xdr_short (XDR *xdrs, short *sp)
-{
-  long l;
-
-  switch (xdrs->x_op)
-    {
-    case XDR_ENCODE:
-      l = (long) *sp;
-      return XDR_PUTLONG (xdrs, &l);
-
-    case XDR_DECODE:
-      if (!XDR_GETLONG (xdrs, &l))
-       {
-         return FALSE;
-       }
-      *sp = (short) l;
-      return TRUE;
-
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_short)
-
-/*
- * XDR unsigned short integers
- */
-bool_t
-xdr_u_short (XDR *xdrs, u_short *usp)
-{
-  long l;
-
-  switch (xdrs->x_op)
-    {
-    case XDR_ENCODE:
-      l = (u_long) * usp;
-      return XDR_PUTLONG (xdrs, &l);
-
-    case XDR_DECODE:
-      if (!XDR_GETLONG (xdrs, &l))
-       {
-         return FALSE;
-       }
-      *usp = (u_short) (u_long) l;
-      return TRUE;
-
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_u_short)
-
-
-/*
- * XDR a char
- */
-bool_t
-xdr_char (XDR *xdrs, char *cp)
-{
-  int i;
-
-  i = (*cp);
-  if (!INTUSE(xdr_int) (xdrs, &i))
-    {
-      return FALSE;
-    }
-  *cp = i;
-  return TRUE;
-}
-
-/*
- * XDR an unsigned char
- */
-bool_t
-xdr_u_char (XDR *xdrs, u_char *cp)
-{
-  u_int u;
-
-  u = (*cp);
-  if (!INTUSE(xdr_u_int) (xdrs, &u))
-    {
-      return FALSE;
-    }
-  *cp = u;
-  return TRUE;
-}
-
-/*
- * XDR booleans
- */
-bool_t
-xdr_bool (XDR *xdrs, bool_t *bp)
-{
-  long lb;
-
-  switch (xdrs->x_op)
-    {
-    case XDR_ENCODE:
-      lb = *bp ? XDR_TRUE : XDR_FALSE;
-      return XDR_PUTLONG (xdrs, &lb);
-
-    case XDR_DECODE:
-      if (!XDR_GETLONG (xdrs, &lb))
-       {
-         return FALSE;
-       }
-      *bp = (lb == XDR_FALSE) ? FALSE : TRUE;
-      return TRUE;
-
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_bool)
-
-/*
- * XDR enumerations
- */
-bool_t
-xdr_enum (XDR *xdrs, enum_t *ep)
-{
-  enum sizecheck
-    {
-      SIZEVAL
-    };                         /* used to find the size of an enum */
-
-  /*
-   * enums are treated as ints
-   */
-  if (sizeof (enum sizecheck) == 4)
-    {
-#if INT_MAX < LONG_MAX
-      long l;
-
-      switch (xdrs->x_op)
-       {
-       case XDR_ENCODE:
-         l = *ep;
-         return XDR_PUTLONG (xdrs, &l);
-
-       case XDR_DECODE:
-         if (!XDR_GETLONG (xdrs, &l))
-           {
-             return FALSE;
-           }
-         *ep = l;
-       case XDR_FREE:
-         return TRUE;
-
-       }
-      return FALSE;
-#else
-      return INTUSE(xdr_long) (xdrs, (long *) ep);
-#endif
-    }
-  else if (sizeof (enum sizecheck) == sizeof (short))
-    {
-      return INTUSE(xdr_short) (xdrs, (short *) ep);
-    }
-  else
-    {
-      return FALSE;
-    }
-}
-INTDEF(xdr_enum)
-
-/*
- * XDR opaque data
- * Allows the specification of a fixed size sequence of opaque bytes.
- * cp points to the opaque object and cnt gives the byte length.
- */
-bool_t
-xdr_opaque (XDR *xdrs, caddr_t cp, u_int cnt)
-{
-  u_int rndup;
-  static char crud[BYTES_PER_XDR_UNIT];
-
-  /*
-   * if no data we are done
-   */
-  if (cnt == 0)
-    return TRUE;
-
-  /*
-   * round byte count to full xdr units
-   */
-  rndup = cnt % BYTES_PER_XDR_UNIT;
-  if (rndup > 0)
-    rndup = BYTES_PER_XDR_UNIT - rndup;
-
-  switch (xdrs->x_op)
-    {
-    case XDR_DECODE:
-      if (!XDR_GETBYTES (xdrs, cp, cnt))
-       {
-         return FALSE;
-       }
-      if (rndup == 0)
-       return TRUE;
-      return XDR_GETBYTES (xdrs, (caddr_t)crud, rndup);
-
-    case XDR_ENCODE:
-      if (!XDR_PUTBYTES (xdrs, cp, cnt))
-       {
-         return FALSE;
-       }
-      if (rndup == 0)
-       return TRUE;
-      return XDR_PUTBYTES (xdrs, xdr_zero, rndup);
-
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_opaque)
-
-/*
- * XDR counted bytes
- * *cpp is a pointer to the bytes, *sizep is the count.
- * If *cpp is NULL maxsize bytes are allocated
- */
-bool_t
-xdr_bytes (xdrs, cpp, sizep, maxsize)
-     XDR *xdrs;
-     char **cpp;
-     u_int *sizep;
-     u_int maxsize;
-{
-  char *sp = *cpp;     /* sp is the actual string pointer */
-  u_int nodesize;
-
-  /*
-   * first deal with the length since xdr bytes are counted
-   */
-  if (!INTUSE(xdr_u_int) (xdrs, sizep))
-    {
-      return FALSE;
-    }
-  nodesize = *sizep;
-  if ((nodesize > maxsize) && (xdrs->x_op != XDR_FREE))
-    {
-      return FALSE;
-    }
-
-  /*
-   * now deal with the actual bytes
-   */
-  switch (xdrs->x_op)
-    {
-    case XDR_DECODE:
-      if (nodesize == 0)
-       {
-         return TRUE;
-       }
-      if (sp == NULL)
-       {
-         *cpp = sp = (char *) mem_alloc (nodesize);
-       }
-      if (sp == NULL)
-       {
-         fprintf (NULL, "%s", "xdr_bytes: out of memory\n");
-         return FALSE;
-       }
-      /* fall into ... */
-
-    case XDR_ENCODE:
-      return INTUSE(xdr_opaque) (xdrs, sp, nodesize);
-
-    case XDR_FREE:
-      if (sp != NULL)
-       {
-         mem_free (sp, nodesize);
-         *cpp = NULL;
-       }
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_bytes)
-
-/*
- * Implemented here due to commonality of the object.
- */
-bool_t
-xdr_netobj (xdrs, np)
-     XDR *xdrs;
-     struct netobj *np;
-{
-
-  return INTUSE(xdr_bytes) (xdrs, &np->n_bytes, &np->n_len, MAX_NETOBJ_SZ);
-}
-INTDEF(xdr_netobj)
-
-/*
- * XDR a discriminated union
- * Support routine for discriminated unions.
- * You create an array of xdrdiscrim structures, terminated with
- * an entry with a null procedure pointer.  The routine gets
- * the discriminant value and then searches the array of xdrdiscrims
- * looking for that value.  It calls the procedure given in the xdrdiscrim
- * to handle the discriminant.  If there is no specific routine a default
- * routine may be called.
- * If there is no specific or default routine an error is returned.
- */
-bool_t
-xdr_union (xdrs, dscmp, unp, choices, dfault)
-     XDR *xdrs;
-     enum_t *dscmp;            /* enum to decide which arm to work on */
-     char *unp;                        /* the union itself */
-     const struct xdr_discrim *choices;        /* [value, xdr proc] for each arm */
-     xdrproc_t dfault;         /* default xdr routine */
-{
-  enum_t dscm;
-
-  /*
-   * we deal with the discriminator;  it's an enum
-   */
-  if (!INTUSE(xdr_enum) (xdrs, dscmp))
-    {
-      return FALSE;
-    }
-  dscm = *dscmp;
-
-  /*
-   * search choices for a value that matches the discriminator.
-   * if we find one, execute the xdr routine for that value.
-   */
-  for (; choices->proc != NULL_xdrproc_t; choices++)
-    {
-      if (choices->value == dscm)
-       return (*(choices->proc)) (xdrs, unp, LASTUNSIGNED);
-    }
-
-  /*
-   * no match - execute the default xdr routine if there is one
-   */
-  return ((dfault == NULL_xdrproc_t) ? FALSE :
-         (*dfault) (xdrs, unp, LASTUNSIGNED));
-}
-INTDEF(xdr_union)
-
-
-/*
- * Non-portable xdr primitives.
- * Care should be taken when moving these routines to new architectures.
- */
-
-
-/*
- * XDR null terminated ASCII strings
- * xdr_string deals with "C strings" - arrays of bytes that are
- * terminated by a NULL character.  The parameter cpp references a
- * pointer to storage; If the pointer is null, then the necessary
- * storage is allocated.  The last parameter is the max allowed length
- * of the string as specified by a protocol.
- */
-bool_t
-xdr_string (xdrs, cpp, maxsize)
-     XDR *xdrs;
-     char **cpp;
-     u_int maxsize;
-{
-  char *sp = *cpp;     /* sp is the actual string pointer */
-  u_int size;
-  u_int nodesize;
-
-  /*
-   * first deal with the length since xdr strings are counted-strings
-   */
-  switch (xdrs->x_op)
-    {
-    case XDR_FREE:
-      if (sp == NULL)
-       {
-         return TRUE;          /* already free */
-       }
-      /* fall through... */
-    case XDR_ENCODE:
-      if (sp == NULL)
-       return FALSE;
-      size = strlen (sp);
-      break;
-    case XDR_DECODE:
-      break;
-    }
-  if (!INTUSE(xdr_u_int) (xdrs, &size))
-    {
-      return FALSE;
-    }
-  if (size > maxsize)
-    {
-      return FALSE;
-    }
-  nodesize = size + 1;
-  if (nodesize == 0)
-    {
-      /* This means an overflow.  It a bug in the caller which
-        provided a too large maxsize but nevertheless catch it
-        here.  */
-      return FALSE;
-    }
-
-  /*
-   * now deal with the actual bytes
-   */
-  switch (xdrs->x_op)
-    {
-    case XDR_DECODE:
-      if (sp == NULL)
-       *cpp = sp = (char *) mem_alloc (nodesize);
-      if (sp == NULL)
-       {
-         fprintf (NULL, "%s", "xdr_string: out of memory\n");
-         return FALSE;
-       }
-      sp[size] = 0;
-      /* fall into ... */
-
-    case XDR_ENCODE:
-      return INTUSE(xdr_opaque) (xdrs, sp, size);
-
-    case XDR_FREE:
-      mem_free (sp, nodesize);
-      *cpp = NULL;
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_string)
-
-/*
- * Wrapper for xdr_string that can be called directly from
- * routines like clnt_call
- */
-bool_t
-xdr_wrapstring (xdrs, cpp)
-     XDR *xdrs;
-     char **cpp;
-{
-  if (INTUSE(xdr_string) (xdrs, cpp, LASTUNSIGNED))
-    {
-      return TRUE;
-    }
-  return FALSE;
-}
diff --git a/source/unres/src_MD-M/xdrf_em64/xdr.h b/source/unres/src_MD-M/xdrf_em64/xdr.h
deleted file mode 100644 (file)
index 2602ad9..0000000
+++ /dev/null
@@ -1,379 +0,0 @@
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-
-/*
- * xdr.h, External Data Representation Serialization Routines.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-#ifndef _RPC_XDR_H
-#define _RPC_XDR_H 1
-
-#include <features.h>
-#include <sys/types.h>
-#include "types.h"
-
-/* We need FILE.  */
-#include <stdio.h>
-
-__BEGIN_DECLS
-
-/*
- * XDR provides a conventional way for converting between C data
- * types and an external bit-string representation.  Library supplied
- * routines provide for the conversion on built-in C data types.  These
- * routines and utility routines defined here are used to help implement
- * a type encode/decode routine for each user-defined type.
- *
- * Each data type provides a single procedure which takes two arguments:
- *
- *      bool_t
- *      xdrproc(xdrs, argresp)
- *              XDR *xdrs;
- *              <type> *argresp;
- *
- * xdrs is an instance of a XDR handle, to which or from which the data
- * type is to be converted.  argresp is a pointer to the structure to be
- * converted.  The XDR handle contains an operation field which indicates
- * which of the operations (ENCODE, DECODE * or FREE) is to be performed.
- *
- * XDR_DECODE may allocate space if the pointer argresp is null.  This
- * data can be freed with the XDR_FREE operation.
- *
- * We write only one procedure per data type to make it easy
- * to keep the encode and decode procedures for a data type consistent.
- * In many cases the same code performs all operations on a user defined type,
- * because all the hard work is done in the component type routines.
- * decode as a series of calls on the nested data types.
- */
-
-/*
- * Xdr operations.  XDR_ENCODE causes the type to be encoded into the
- * stream.  XDR_DECODE causes the type to be extracted from the stream.
- * XDR_FREE can be used to release the space allocated by an XDR_DECODE
- * request.
- */
-enum xdr_op {
-  XDR_ENCODE = 0,
-  XDR_DECODE = 1,
-  XDR_FREE = 2
-};
-
-/*
- * This is the number of bytes per unit of external data.
- */
-#define BYTES_PER_XDR_UNIT     (4)
-/*
- * This only works if the above is a power of 2.  But it's defined to be
- * 4 by the appropriate RFCs.  So it will work.  And it's normally quicker
- * than the old routine.
- */
-#if 1
-#define RNDUP(x)  (((x) + BYTES_PER_XDR_UNIT - 1) & ~(BYTES_PER_XDR_UNIT - 1))
-#else /* this is the old routine */
-#define RNDUP(x)  ((((x) + BYTES_PER_XDR_UNIT - 1) / BYTES_PER_XDR_UNIT) \
-                   * BYTES_PER_XDR_UNIT)
-#endif
-
-/*
- * The XDR handle.
- * Contains operation which is being applied to the stream,
- * an operations vector for the particular implementation (e.g. see xdr_mem.c),
- * and two private fields for the use of the particular implementation.
- */
-typedef struct XDR XDR;
-struct XDR
-  {
-    enum xdr_op x_op;          /* operation; fast additional param */
-    struct xdr_ops
-      {
-       bool_t (*x_getlong) (XDR *__xdrs, long *__lp);
-       /* get a long from underlying stream */
-       bool_t (*x_putlong) (XDR *__xdrs, __const long *__lp);
-       /* put a long to " */
-       bool_t (*x_getbytes) (XDR *__xdrs, caddr_t __addr, u_int __len);
-       /* get some bytes from " */
-       bool_t (*x_putbytes) (XDR *__xdrs, __const char *__addr, u_int __len);
-       /* put some bytes to " */
-       u_int (*x_getpostn) (__const XDR *__xdrs);
-       /* returns bytes off from beginning */
-       bool_t (*x_setpostn) (XDR *__xdrs, u_int __pos);
-       /* lets you reposition the stream */
-       int32_t *(*x_inline) (XDR *__xdrs, u_int __len);
-       /* buf quick ptr to buffered data */
-       void (*x_destroy) (XDR *__xdrs);
-       /* free privates of this xdr_stream */
-       bool_t (*x_getint32) (XDR *__xdrs, int32_t *__ip);
-       /* get a int from underlying stream */
-       bool_t (*x_putint32) (XDR *__xdrs, __const int32_t *__ip);
-       /* put a int to " */
-      }
-     *x_ops;
-    caddr_t x_public;          /* users' data */
-    caddr_t x_private;         /* pointer to private data */
-    caddr_t x_base;            /* private used for position info */
-    u_int x_handy;             /* extra private word */
-  };
-
-/*
- * A xdrproc_t exists for each data type which is to be encoded or decoded.
- *
- * The second argument to the xdrproc_t is a pointer to an opaque pointer.
- * The opaque pointer generally points to a structure of the data type
- * to be decoded.  If this pointer is 0, then the type routines should
- * allocate dynamic storage of the appropriate size and return it.
- * bool_t       (*xdrproc_t)(XDR *, caddr_t *);
- */
-typedef bool_t (*xdrproc_t) (XDR *, void *,...);
-
-
-/*
- * Operations defined on a XDR handle
- *
- * XDR          *xdrs;
- * int32_t      *int32p;
- * long         *longp;
- * caddr_t       addr;
- * u_int         len;
- * u_int         pos;
- */
-#define XDR_GETINT32(xdrs, int32p)                      \
-        (*(xdrs)->x_ops->x_getint32)(xdrs, int32p)
-#define xdr_getint32(xdrs, int32p)                      \
-        (*(xdrs)->x_ops->x_getint32)(xdrs, int32p)
-
-#define XDR_PUTINT32(xdrs, int32p)                      \
-        (*(xdrs)->x_ops->x_putint32)(xdrs, int32p)
-#define xdr_putint32(xdrs, int32p)                      \
-        (*(xdrs)->x_ops->x_putint32)(xdrs, int32p)
-
-#define XDR_GETLONG(xdrs, longp)                       \
-       (*(xdrs)->x_ops->x_getlong)(xdrs, longp)
-#define xdr_getlong(xdrs, longp)                       \
-       (*(xdrs)->x_ops->x_getlong)(xdrs, longp)
-
-#define XDR_PUTLONG(xdrs, longp)                       \
-       (*(xdrs)->x_ops->x_putlong)(xdrs, longp)
-#define xdr_putlong(xdrs, longp)                       \
-       (*(xdrs)->x_ops->x_putlong)(xdrs, longp)
-
-#define XDR_GETBYTES(xdrs, addr, len)                  \
-       (*(xdrs)->x_ops->x_getbytes)(xdrs, addr, len)
-#define xdr_getbytes(xdrs, addr, len)                  \
-       (*(xdrs)->x_ops->x_getbytes)(xdrs, addr, len)
-
-#define XDR_PUTBYTES(xdrs, addr, len)                  \
-       (*(xdrs)->x_ops->x_putbytes)(xdrs, addr, len)
-#define xdr_putbytes(xdrs, addr, len)                  \
-       (*(xdrs)->x_ops->x_putbytes)(xdrs, addr, len)
-
-#define XDR_GETPOS(xdrs)                               \
-       (*(xdrs)->x_ops->x_getpostn)(xdrs)
-#define xdr_getpos(xdrs)                               \
-       (*(xdrs)->x_ops->x_getpostn)(xdrs)
-
-#define XDR_SETPOS(xdrs, pos)                          \
-       (*(xdrs)->x_ops->x_setpostn)(xdrs, pos)
-#define xdr_setpos(xdrs, pos)                          \
-       (*(xdrs)->x_ops->x_setpostn)(xdrs, pos)
-
-#define        XDR_INLINE(xdrs, len)                           \
-       (*(xdrs)->x_ops->x_inline)(xdrs, len)
-#define        xdr_inline(xdrs, len)                           \
-       (*(xdrs)->x_ops->x_inline)(xdrs, len)
-
-#define        XDR_DESTROY(xdrs)                                       \
-       do {                                                    \
-               if ((xdrs)->x_ops->x_destroy)                   \
-                       (*(xdrs)->x_ops->x_destroy)(xdrs);      \
-       } while (0)
-#define        xdr_destroy(xdrs)                                       \
-       do {                                                    \
-               if ((xdrs)->x_ops->x_destroy)                   \
-                       (*(xdrs)->x_ops->x_destroy)(xdrs);      \
-       } while (0)
-
-/*
- * Support struct for discriminated unions.
- * You create an array of xdrdiscrim structures, terminated with
- * a entry with a null procedure pointer.  The xdr_union routine gets
- * the discriminant value and then searches the array of structures
- * for a matching value.  If a match is found the associated xdr routine
- * is called to handle that part of the union.  If there is
- * no match, then a default routine may be called.
- * If there is no match and no default routine it is an error.
- */
-#define NULL_xdrproc_t ((xdrproc_t)0)
-struct xdr_discrim
-{
-  int value;
-  xdrproc_t proc;
-};
-
-/*
- * Inline routines for fast encode/decode of primitive data types.
- * Caveat emptor: these use single memory cycles to get the
- * data from the underlying buffer, and will fail to operate
- * properly if the data is not aligned.  The standard way to use these
- * is to say:
- *      if ((buf = XDR_INLINE(xdrs, count)) == NULL)
- *              return (FALSE);
- *      <<< macro calls >>>
- * where ``count'' is the number of bytes of data occupied
- * by the primitive data types.
- *
- * N.B. and frozen for all time: each data type here uses 4 bytes
- * of external representation.
- */
-
-#define IXDR_GET_INT32(buf)           ((int32_t)ntohl((uint32_t)*(buf)++))
-#define IXDR_PUT_INT32(buf, v)        (*(buf)++ = (int32_t)htonl((uint32_t)(v)))
-#define IXDR_GET_U_INT32(buf)         ((uint32_t)IXDR_GET_INT32(buf))
-#define IXDR_PUT_U_INT32(buf, v)      IXDR_PUT_INT32(buf, (int32_t)(v))
-
-/* WARNING: The IXDR_*_LONG defines are removed by Sun for new platforms
- * and shouldn't be used any longer. Code which use this defines or longs
- * in the RPC code will not work on 64bit Solaris platforms !
- */
-#define IXDR_GET_LONG(buf) ((long)IXDR_GET_U_INT32(buf))
-#define IXDR_PUT_LONG(buf, v) ((long)IXDR_PUT_INT32(buf, (long)(v)))
-#define IXDR_GET_U_LONG(buf)         ((u_long)IXDR_GET_LONG(buf))
-#define IXDR_PUT_U_LONG(buf, v)              IXDR_PUT_LONG(buf, (long)(v))
-
-
-#define IXDR_GET_BOOL(buf)            ((bool_t)IXDR_GET_LONG(buf))
-#define IXDR_GET_ENUM(buf, t)         ((t)IXDR_GET_LONG(buf))
-#define IXDR_GET_SHORT(buf)           ((short)IXDR_GET_LONG(buf))
-#define IXDR_GET_U_SHORT(buf)         ((u_short)IXDR_GET_LONG(buf))
-
-#define IXDR_PUT_BOOL(buf, v)         IXDR_PUT_LONG(buf, (long)(v))
-#define IXDR_PUT_ENUM(buf, v)         IXDR_PUT_LONG(buf, (long)(v))
-#define IXDR_PUT_SHORT(buf, v)        IXDR_PUT_LONG(buf, (long)(v))
-#define IXDR_PUT_U_SHORT(buf, v)      IXDR_PUT_LONG(buf, (long)(v))
-
-/*
- * These are the "generic" xdr routines.
- * None of these can have const applied because it's not possible to
- * know whether the call is a read or a write to the passed parameter
- * also, the XDR structure is always updated by some of these calls.
- */
-extern bool_t xdr_void (void) __THROW;
-extern bool_t xdr_short (XDR *__xdrs, short *__sp) __THROW;
-extern bool_t xdr_u_short (XDR *__xdrs, u_short *__usp) __THROW;
-extern bool_t xdr_int (XDR *__xdrs, int *__ip) __THROW;
-extern bool_t xdr_u_int (XDR *__xdrs, u_int *__up) __THROW;
-extern bool_t xdr_long (XDR *__xdrs, long *__lp) __THROW;
-extern bool_t xdr_u_long (XDR *__xdrs, u_long *__ulp) __THROW;
-extern bool_t xdr_hyper (XDR *__xdrs, quad_t *__llp) __THROW;
-extern bool_t xdr_u_hyper (XDR *__xdrs, u_quad_t *__ullp) __THROW;
-extern bool_t xdr_longlong_t (XDR *__xdrs, quad_t *__llp) __THROW;
-extern bool_t xdr_u_longlong_t (XDR *__xdrs, u_quad_t *__ullp) __THROW;
-extern bool_t xdr_int8_t (XDR *__xdrs, int8_t *__ip) __THROW;
-extern bool_t xdr_uint8_t (XDR *__xdrs, uint8_t *__up) __THROW;
-extern bool_t xdr_int16_t (XDR *__xdrs, int16_t *__ip) __THROW;
-extern bool_t xdr_uint16_t (XDR *__xdrs, uint16_t *__up) __THROW;
-extern bool_t xdr_int32_t (XDR *__xdrs, int32_t *__ip) __THROW;
-extern bool_t xdr_uint32_t (XDR *__xdrs, uint32_t *__up) __THROW;
-extern bool_t xdr_int64_t (XDR *__xdrs, int64_t *__ip) __THROW;
-extern bool_t xdr_uint64_t (XDR *__xdrs, uint64_t *__up) __THROW;
-extern bool_t xdr_quad_t (XDR *__xdrs, quad_t *__ip) __THROW;
-extern bool_t xdr_u_quad_t (XDR *__xdrs, u_quad_t *__up) __THROW;
-extern bool_t xdr_bool (XDR *__xdrs, bool_t *__bp) __THROW;
-extern bool_t xdr_enum (XDR *__xdrs, enum_t *__ep) __THROW;
-extern bool_t xdr_array (XDR * _xdrs, caddr_t *__addrp, u_int *__sizep,
-                        u_int __maxsize, u_int __elsize, xdrproc_t __elproc)
-     __THROW;
-extern bool_t xdr_bytes (XDR *__xdrs, char **__cpp, u_int *__sizep,
-                        u_int __maxsize) __THROW;
-extern bool_t xdr_opaque (XDR *__xdrs, caddr_t __cp, u_int __cnt) __THROW;
-extern bool_t xdr_string (XDR *__xdrs, char **__cpp, u_int __maxsize) __THROW;
-extern bool_t xdr_union (XDR *__xdrs, enum_t *__dscmp, char *__unp,
-                        __const struct xdr_discrim *__choices,
-                        xdrproc_t dfault) __THROW;
-extern bool_t xdr_char (XDR *__xdrs, char *__cp) __THROW;
-extern bool_t xdr_u_char (XDR *__xdrs, u_char *__cp) __THROW;
-extern bool_t xdr_vector (XDR *__xdrs, char *__basep, u_int __nelem,
-                         u_int __elemsize, xdrproc_t __xdr_elem) __THROW;
-extern bool_t xdr_float (XDR *__xdrs, float *__fp) __THROW;
-extern bool_t xdr_double (XDR *__xdrs, double *__dp) __THROW;
-extern bool_t xdr_reference (XDR *__xdrs, caddr_t *__xpp, u_int __size,
-                            xdrproc_t __proc) __THROW;
-extern bool_t xdr_pointer (XDR *__xdrs, char **__objpp,
-                          u_int __obj_size, xdrproc_t __xdr_obj) __THROW;
-extern bool_t xdr_wrapstring (XDR *__xdrs, char **__cpp) __THROW;
-extern u_long xdr_sizeof (xdrproc_t, void *) __THROW;
-
-/*
- * Common opaque bytes objects used by many rpc protocols;
- * declared here due to commonality.
- */
-#define MAX_NETOBJ_SZ 1024
-struct netobj
-{
-  u_int n_len;
-  char *n_bytes;
-};
-typedef struct netobj netobj;
-extern bool_t xdr_netobj (XDR *__xdrs, struct netobj *__np) __THROW;
-
-/*
- * These are the public routines for the various implementations of
- * xdr streams.
- */
-
-/* XDR using memory buffers */
-extern void xdrmem_create (XDR *__xdrs, __const caddr_t __addr,
-                          u_int __size, enum xdr_op __xop) __THROW;
-
-/* XDR using stdio library */
-extern void xdrstdio_create (XDR *__xdrs, FILE *__file, enum xdr_op __xop)
-     __THROW;
-
-/* XDR pseudo records for tcp */
-extern void xdrrec_create (XDR *__xdrs, u_int __sendsize,
-                          u_int __recvsize, caddr_t __tcp_handle,
-                          int (*__readit) (char *, char *, int),
-                          int (*__writeit) (char *, char *, int)) __THROW;
-
-/* make end of xdr record */
-extern bool_t xdrrec_endofrecord (XDR *__xdrs, bool_t __sendnow) __THROW;
-
-/* move to beginning of next record */
-extern bool_t xdrrec_skiprecord (XDR *__xdrs) __THROW;
-
-/* true if no more input */
-extern bool_t xdrrec_eof (XDR *__xdrs) __THROW;
-
-/* free memory buffers for xdr */
-extern void xdr_free (xdrproc_t __proc, char *__objp) __THROW;
-
-__END_DECLS
-
-#endif /* rpc/xdr.h */
diff --git a/source/unres/src_MD-M/xdrf_em64/xdr_array.c b/source/unres/src_MD-M/xdrf_em64/xdr_array.c
deleted file mode 100644 (file)
index 836405c..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-# define INTUSE(name) name
-# define INTDEF(name)
-/* @(#)xdr_array.c     2.1 88/07/29 4.0 RPCSRC */
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)xdr_array.c 1.10 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * xdr_array.c, Generic XDR routines implementation.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- * These are the "non-trivial" xdr primitives used to serialize and de-serialize
- * arrays.  See xdr.h for more info on the interface to xdr.
- */
-
-#include <stdio.h>
-#include <string.h>
-#include "types.h"
-#include "xdr.h"
-#include <libintl.h>
-#include <limits.h>
-
-#ifdef USE_IN_LIBIO
-# include <wchar.h>
-#endif
-
-#define LASTUNSIGNED   ((u_int)0-1)
-
-
-/*
- * XDR an array of arbitrary elements
- * *addrp is a pointer to the array, *sizep is the number of elements.
- * If addrp is NULL (*sizep * elsize) bytes are allocated.
- * elsize is the size (in bytes) of each element, and elproc is the
- * xdr procedure to call to handle each element of the array.
- */
-bool_t
-xdr_array (xdrs, addrp, sizep, maxsize, elsize, elproc)
-     XDR *xdrs;
-     caddr_t *addrp;           /* array pointer */
-     u_int *sizep;             /* number of elements */
-     u_int maxsize;            /* max numberof elements */
-     u_int elsize;             /* size in bytes of each element */
-     xdrproc_t elproc;         /* xdr routine to handle each element */
-{
-  u_int i;
-  caddr_t target = *addrp;
-  u_int c;             /* the actual element count */
-  bool_t stat = TRUE;
-  u_int nodesize;
-
-  /* like strings, arrays are really counted arrays */
-  if (!INTUSE(xdr_u_int) (xdrs, sizep))
-    {
-      return FALSE;
-    }
-  c = *sizep;
-  /*
-   * XXX: Let the overflow possibly happen with XDR_FREE because mem_free()
-   * doesn't actually use its second argument anyway.
-   */
-  if ((c > maxsize || c > UINT_MAX / elsize) && (xdrs->x_op != XDR_FREE))
-    {
-      return FALSE;
-    }
-  nodesize = c * elsize;
-
-  /*
-   * if we are deserializing, we may need to allocate an array.
-   * We also save time by checking for a null array if we are freeing.
-   */
-  if (target == NULL)
-    switch (xdrs->x_op)
-      {
-      case XDR_DECODE:
-       if (c == 0)
-         return TRUE;
-       *addrp = target = mem_alloc (nodesize);
-       if (target == NULL)
-         {
-           fprintf (stderr, "%s", "xdr_array: out of memory\n");
-           return FALSE;
-         }
-       __bzero (target, nodesize);
-       break;
-
-      case XDR_FREE:
-       return TRUE;
-      default:
-       break;
-      }
-
-  /*
-   * now we xdr each element of array
-   */
-  for (i = 0; (i < c) && stat; i++)
-    {
-      stat = (*elproc) (xdrs, target, LASTUNSIGNED);
-      target += elsize;
-    }
-
-  /*
-   * the array may need freeing
-   */
-  if (xdrs->x_op == XDR_FREE)
-    {
-      mem_free (*addrp, nodesize);
-      *addrp = NULL;
-    }
-  return stat;
-}
-INTDEF(xdr_array)
-
-/*
- * xdr_vector():
- *
- * XDR a fixed length array. Unlike variable-length arrays,
- * the storage of fixed length arrays is static and unfreeable.
- * > basep: base of the array
- * > size: size of the array
- * > elemsize: size of each element
- * > xdr_elem: routine to XDR each element
- */
-bool_t
-xdr_vector (xdrs, basep, nelem, elemsize, xdr_elem)
-     XDR *xdrs;
-     char *basep;
-     u_int nelem;
-     u_int elemsize;
-     xdrproc_t xdr_elem;
-{
-  u_int i;
-  char *elptr;
-
-  elptr = basep;
-  for (i = 0; i < nelem; i++)
-    {
-      if (!(*xdr_elem) (xdrs, elptr, LASTUNSIGNED))
-       {
-         return FALSE;
-       }
-      elptr += elemsize;
-    }
-  return TRUE;
-}
diff --git a/source/unres/src_MD-M/xdrf_em64/xdr_float.c b/source/unres/src_MD-M/xdrf_em64/xdr_float.c
deleted file mode 100644 (file)
index 15d3c88..0000000
+++ /dev/null
@@ -1,307 +0,0 @@
-/* @(#)xdr_float.c     2.1 88/07/29 4.0 RPCSRC */
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)xdr_float.c 1.12 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * xdr_float.c, Generic XDR routines implementation.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- * These are the "floating point" xdr routines used to (de)serialize
- * most common data items.  See xdr.h for more info on the interface to
- * xdr.
- */
-
-#include <stdio.h>
-#include <endian.h>
-
-#include "types.h"
-#include "xdr.h"
-
-/*
- * NB: Not portable.
- * This routine works on Suns (Sky / 68000's) and Vaxen.
- */
-
-#define LSW    (__FLOAT_WORD_ORDER == __BIG_ENDIAN)
-
-#ifdef vax
-
-/* What IEEE single precision floating point looks like on a Vax */
-struct ieee_single {
-       unsigned int    mantissa: 23;
-       unsigned int    exp     : 8;
-       unsigned int    sign    : 1;
-};
-
-/* Vax single precision floating point */
-struct vax_single {
-       unsigned int    mantissa1 : 7;
-       unsigned int    exp       : 8;
-       unsigned int    sign      : 1;
-       unsigned int    mantissa2 : 16;
-};
-
-#define VAX_SNG_BIAS   0x81
-#define IEEE_SNG_BIAS  0x7f
-
-static struct sgl_limits {
-       struct vax_single s;
-       struct ieee_single ieee;
-} sgl_limits[2] = {
-       {{ 0x7f, 0xff, 0x0, 0xffff },   /* Max Vax */
-       { 0x0, 0xff, 0x0 }},            /* Max IEEE */
-       {{ 0x0, 0x0, 0x0, 0x0 },        /* Min Vax */
-       { 0x0, 0x0, 0x0 }}              /* Min IEEE */
-};
-#endif /* vax */
-
-bool_t
-xdr_float(xdrs, fp)
-     XDR *xdrs;
-     float *fp;
-{
-#ifdef vax
-       struct ieee_single is;
-       struct vax_single vs, *vsp;
-       struct sgl_limits *lim;
-       int i;
-#endif
-       switch (xdrs->x_op) {
-
-       case XDR_ENCODE:
-#ifdef vax
-               vs = *((struct vax_single *)fp);
-               for (i = 0, lim = sgl_limits;
-                       i < sizeof(sgl_limits)/sizeof(struct sgl_limits);
-                       i++, lim++) {
-                       if ((vs.mantissa2 == lim->s.mantissa2) &&
-                               (vs.exp == lim->s.exp) &&
-                               (vs.mantissa1 == lim->s.mantissa1)) {
-                               is = lim->ieee;
-                               goto shipit;
-                       }
-               }
-               is.exp = vs.exp - VAX_SNG_BIAS + IEEE_SNG_BIAS;
-               is.mantissa = (vs.mantissa1 << 16) | vs.mantissa2;
-       shipit:
-               is.sign = vs.sign;
-               return (XDR_PUTLONG(xdrs, (long *)&is));
-#else
-               if (sizeof(float) == sizeof(long))
-                       return (XDR_PUTLONG(xdrs, (long *)fp));
-               else if (sizeof(float) == sizeof(int)) {
-                       long tmp = *(int *)fp;
-                       return (XDR_PUTLONG(xdrs, &tmp));
-               }
-               break;
-#endif
-
-       case XDR_DECODE:
-#ifdef vax
-               vsp = (struct vax_single *)fp;
-               if (!XDR_GETLONG(xdrs, (long *)&is))
-                       return (FALSE);
-               for (i = 0, lim = sgl_limits;
-                       i < sizeof(sgl_limits)/sizeof(struct sgl_limits);
-                       i++, lim++) {
-                       if ((is.exp == lim->ieee.exp) &&
-                               (is.mantissa == lim->ieee.mantissa)) {
-                               *vsp = lim->s;
-                               goto doneit;
-                       }
-               }
-               vsp->exp = is.exp - IEEE_SNG_BIAS + VAX_SNG_BIAS;
-               vsp->mantissa2 = is.mantissa;
-               vsp->mantissa1 = (is.mantissa >> 16);
-       doneit:
-               vsp->sign = is.sign;
-               return (TRUE);
-#else
-               if (sizeof(float) == sizeof(long))
-                       return (XDR_GETLONG(xdrs, (long *)fp));
-               else if (sizeof(float) == sizeof(int)) {
-                       long tmp;
-                       if (XDR_GETLONG(xdrs, &tmp)) {
-                               *(int *)fp = tmp;
-                               return (TRUE);
-                       }
-               }
-               break;
-#endif
-
-       case XDR_FREE:
-               return (TRUE);
-       }
-       return (FALSE);
-}
-
-/*
- * This routine works on Suns (Sky / 68000's) and Vaxen.
- */
-
-#ifdef vax
-/* What IEEE double precision floating point looks like on a Vax */
-struct ieee_double {
-       unsigned int    mantissa1 : 20;
-       unsigned int    exp       : 11;
-       unsigned int    sign      : 1;
-       unsigned int    mantissa2 : 32;
-};
-
-/* Vax double precision floating point */
-struct  vax_double {
-       unsigned int    mantissa1 : 7;
-       unsigned int    exp       : 8;
-       unsigned int    sign      : 1;
-       unsigned int    mantissa2 : 16;
-       unsigned int    mantissa3 : 16;
-       unsigned int    mantissa4 : 16;
-};
-
-#define VAX_DBL_BIAS   0x81
-#define IEEE_DBL_BIAS  0x3ff
-#define MASK(nbits)    ((1 << nbits) - 1)
-
-static struct dbl_limits {
-       struct  vax_double d;
-       struct  ieee_double ieee;
-} dbl_limits[2] = {
-       {{ 0x7f, 0xff, 0x0, 0xffff, 0xffff, 0xffff },   /* Max Vax */
-       { 0x0, 0x7ff, 0x0, 0x0 }},                      /* Max IEEE */
-       {{ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},               /* Min Vax */
-       { 0x0, 0x0, 0x0, 0x0 }}                         /* Min IEEE */
-};
-
-#endif /* vax */
-
-
-bool_t
-xdr_double(xdrs, dp)
-     XDR *xdrs;
-     double *dp;
-{
-#ifdef vax
-       struct  ieee_double id;
-       struct  vax_double vd;
-       register struct dbl_limits *lim;
-       int i;
-#endif
-
-       switch (xdrs->x_op) {
-
-       case XDR_ENCODE:
-#ifdef vax
-               vd = *((struct vax_double *)dp);
-               for (i = 0, lim = dbl_limits;
-                       i < sizeof(dbl_limits)/sizeof(struct dbl_limits);
-                       i++, lim++) {
-                       if ((vd.mantissa4 == lim->d.mantissa4) &&
-                               (vd.mantissa3 == lim->d.mantissa3) &&
-                               (vd.mantissa2 == lim->d.mantissa2) &&
-                               (vd.mantissa1 == lim->d.mantissa1) &&
-                               (vd.exp == lim->d.exp)) {
-                               id = lim->ieee;
-                               goto shipit;
-                       }
-               }
-               id.exp = vd.exp - VAX_DBL_BIAS + IEEE_DBL_BIAS;
-               id.mantissa1 = (vd.mantissa1 << 13) | (vd.mantissa2 >> 3);
-               id.mantissa2 = ((vd.mantissa2 & MASK(3)) << 29) |
-                               (vd.mantissa3 << 13) |
-                               ((vd.mantissa4 >> 3) & MASK(13));
-       shipit:
-               id.sign = vd.sign;
-               dp = (double *)&id;
-#endif
-               if (2*sizeof(long) == sizeof(double)) {
-                       long *lp = (long *)dp;
-                       return (XDR_PUTLONG(xdrs, lp+!LSW) &&
-                               XDR_PUTLONG(xdrs, lp+LSW));
-               } else if (2*sizeof(int) == sizeof(double)) {
-                       int *ip = (int *)dp;
-                       long tmp[2];
-                       tmp[0] = ip[!LSW];
-                       tmp[1] = ip[LSW];
-                       return (XDR_PUTLONG(xdrs, tmp) &&
-                               XDR_PUTLONG(xdrs, tmp+1));
-               }
-               break;
-
-       case XDR_DECODE:
-#ifdef vax
-               lp = (long *)&id;
-               if (!XDR_GETLONG(xdrs, lp++) || !XDR_GETLONG(xdrs, lp))
-                       return (FALSE);
-               for (i = 0, lim = dbl_limits;
-                       i < sizeof(dbl_limits)/sizeof(struct dbl_limits);
-                       i++, lim++) {
-                       if ((id.mantissa2 == lim->ieee.mantissa2) &&
-                               (id.mantissa1 == lim->ieee.mantissa1) &&
-                               (id.exp == lim->ieee.exp)) {
-                               vd = lim->d;
-                               goto doneit;
-                       }
-               }
-               vd.exp = id.exp - IEEE_DBL_BIAS + VAX_DBL_BIAS;
-               vd.mantissa1 = (id.mantissa1 >> 13);
-               vd.mantissa2 = ((id.mantissa1 & MASK(13)) << 3) |
-                               (id.mantissa2 >> 29);
-               vd.mantissa3 = (id.mantissa2 >> 13);
-               vd.mantissa4 = (id.mantissa2 << 3);
-       doneit:
-               vd.sign = id.sign;
-               *dp = *((double *)&vd);
-               return (TRUE);
-#else
-               if (2*sizeof(long) == sizeof(double)) {
-                       long *lp = (long *)dp;
-                       return (XDR_GETLONG(xdrs, lp+!LSW) &&
-                               XDR_GETLONG(xdrs, lp+LSW));
-               } else if (2*sizeof(int) == sizeof(double)) {
-                       int *ip = (int *)dp;
-                       long tmp[2];
-                       if (XDR_GETLONG(xdrs, tmp+!LSW) &&
-                           XDR_GETLONG(xdrs, tmp+LSW)) {
-                               ip[0] = tmp[0];
-                               ip[1] = tmp[1];
-                               return (TRUE);
-                       }
-               }
-               break;
-#endif
-
-       case XDR_FREE:
-               return (TRUE);
-       }
-       return (FALSE);
-}
diff --git a/source/unres/src_MD-M/xdrf_em64/xdr_stdio.c b/source/unres/src_MD-M/xdrf_em64/xdr_stdio.c
deleted file mode 100644 (file)
index 12b1709..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-
-/*
- * xdr_stdio.c, XDR implementation on standard i/o file.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- * This set of routines implements a XDR on a stdio stream.
- * XDR_ENCODE serializes onto the stream, XDR_DECODE de-serializes
- * from the stream.
- */
-
-#include "types.h"
-#include <stdio.h>
-#include "xdr.h"
-
-#ifdef USE_IN_LIBIO
-# include <libio/iolibio.h>
-# define fflush(s) INTUSE(_IO_fflush) (s)
-# define fread(p, m, n, s) INTUSE(_IO_fread) (p, m, n, s)
-# define ftell(s) INTUSE(_IO_ftell) (s)
-# define fwrite(p, m, n, s) INTUSE(_IO_fwrite) (p, m, n, s)
-#endif
-
-static bool_t xdrstdio_getlong (XDR *, long *);
-static bool_t xdrstdio_putlong (XDR *, const long *);
-static bool_t xdrstdio_getbytes (XDR *, caddr_t, u_int);
-static bool_t xdrstdio_putbytes (XDR *, const char *, u_int);
-static u_int xdrstdio_getpos (const XDR *);
-static bool_t xdrstdio_setpos (XDR *, u_int);
-static int32_t *xdrstdio_inline (XDR *, u_int);
-static void xdrstdio_destroy (XDR *);
-static bool_t xdrstdio_getint32 (XDR *, int32_t *);
-static bool_t xdrstdio_putint32 (XDR *, const int32_t *);
-
-/*
- * Ops vector for stdio type XDR
- */
-static const struct xdr_ops xdrstdio_ops =
-{
-  xdrstdio_getlong,            /* deserialize a long int */
-  xdrstdio_putlong,            /* serialize a long int */
-  xdrstdio_getbytes,           /* deserialize counted bytes */
-  xdrstdio_putbytes,           /* serialize counted bytes */
-  xdrstdio_getpos,             /* get offset in the stream */
-  xdrstdio_setpos,             /* set offset in the stream */
-  xdrstdio_inline,             /* prime stream for inline macros */
-  xdrstdio_destroy,            /* destroy stream */
-  xdrstdio_getint32,           /* deserialize a int */
-  xdrstdio_putint32            /* serialize a int */
-};
-
-/*
- * Initialize a stdio xdr stream.
- * Sets the xdr stream handle xdrs for use on the stream file.
- * Operation flag is set to op.
- */
-void
-xdrstdio_create (XDR *xdrs, FILE *file, enum xdr_op op)
-{
-  xdrs->x_op = op;
-  /* We have to add the const since the `struct xdr_ops' in `struct XDR'
-     is not `const'.  */
-  xdrs->x_ops = (struct xdr_ops *) &xdrstdio_ops;
-  xdrs->x_private = (caddr_t) file;
-  xdrs->x_handy = 0;
-  xdrs->x_base = 0;
-}
-
-/*
- * Destroy a stdio xdr stream.
- * Cleans up the xdr stream handle xdrs previously set up by xdrstdio_create.
- */
-static void
-xdrstdio_destroy (XDR *xdrs)
-{
-  (void) fflush ((FILE *) xdrs->x_private);
-  /* xx should we close the file ?? */
-};
-
-static bool_t
-xdrstdio_getlong (XDR *xdrs, long *lp)
-{
-  u_int32_t mycopy;
-
-  if (fread ((caddr_t) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1)
-    return FALSE;
-  *lp = (long) ntohl (mycopy);
-  return TRUE;
-}
-
-static bool_t
-xdrstdio_putlong (XDR *xdrs, const long *lp)
-{
-  int32_t mycopy = htonl ((u_int32_t) *lp);
-
-  if (fwrite ((caddr_t) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1)
-    return FALSE;
-  return TRUE;
-}
-
-static bool_t
-xdrstdio_getbytes (XDR *xdrs, const caddr_t addr, u_int len)
-{
-  if ((len != 0) && (fread (addr, (int) len, 1,
-                           (FILE *) xdrs->x_private) != 1))
-    return FALSE;
-  return TRUE;
-}
-
-static bool_t
-xdrstdio_putbytes (XDR *xdrs, const char *addr, u_int len)
-{
-  if ((len != 0) && (fwrite (addr, (int) len, 1,
-                            (FILE *) xdrs->x_private) != 1))
-    return FALSE;
-  return TRUE;
-}
-
-static u_int
-xdrstdio_getpos (const XDR *xdrs)
-{
-  return (u_int) ftell ((FILE *) xdrs->x_private);
-}
-
-static bool_t
-xdrstdio_setpos (XDR *xdrs, u_int pos)
-{
-  return fseek ((FILE *) xdrs->x_private, (long) pos, 0) < 0 ? FALSE : TRUE;
-}
-
-static int32_t *
-xdrstdio_inline (XDR *xdrs, u_int len)
-{
-  /*
-   * Must do some work to implement this: must insure
-   * enough data in the underlying stdio buffer,
-   * that the buffer is aligned so that we can indirect through a
-   * long *, and stuff this pointer in xdrs->x_buf.  Doing
-   * a fread or fwrite to a scratch buffer would defeat
-   * most of the gains to be had here and require storage
-   * management on this buffer, so we don't do this.
-   */
-  return NULL;
-}
-
-static bool_t
-xdrstdio_getint32 (XDR *xdrs, int32_t *ip)
-{
-  int32_t mycopy;
-
-  if (fread ((caddr_t) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1)
-    return FALSE;
-  *ip = ntohl (mycopy);
-  return TRUE;
-}
-
-static bool_t
-xdrstdio_putint32 (XDR *xdrs, const int32_t *ip)
-{
-  int32_t mycopy = htonl (*ip);
-
-  ip = &mycopy;
-  if (fwrite ((caddr_t) ip, 4, 1, (FILE *) xdrs->x_private) != 1)
-    return FALSE;
-  return TRUE;
-}
-
-/* libc_hidden_def (xdrstdio_create) */
diff --git a/source/unres/src_MD-M/xdrf_em64/xdrf.h b/source/unres/src_MD-M/xdrf_em64/xdrf.h
deleted file mode 100644 (file)
index dedf5a2..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-/*_________________________________________________________________
- |
- | xdrf.h - include file for C routines that want to use the 
- |         functions below.
-*/
-
-int xdropen(XDR *xdrs, const char *filename, const char *type);
-int xdrclose(XDR *xdrs) ;
-int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) ;
-
index 147ca4c..38add7b 100644 (file)
 #
-# CMake project file for UNRES
-#
+# CMake project file for UNRES with MD for single chains
+# 
 
 enable_language (Fortran)
 
-# Set sources
-set(UNRES_MD_SRC0 unres.F arcos.f cartprint.f chainbuild.F convert.f 
-       initialize_p.F matmult.f readrtns.F parmread.F gen_rand_conf.F
-       printmat.f map.f pinorm.f randgens.f rescode.f intcor.f timing.F
-       misc.f intlocal.f cartder.F checkder_p.F econstr_local.F
-       minimize_p.F sumsld.f cored.f rmdd.f geomout.F readpdb.F regularize.F
-       thread.F fitsq.f mcm.F mc.F bond_move.f refsys.f check_sc_distr.f
-       check_bond.f contact.f djacob.f eigen.f blas.f add.f entmcm.F
-       minim_mcmf.F MP.F compare_s1.F prng_32.F banach.f rmsd.F elecont.f dihed_cons.F sc_move.F 
-       local_move.f intcartderiv.F lagrangian_lesyng.F stochfric.F kinetic_lesyng.f MD_A-MTS.F moments.f
-       int_to_cart.f surfatom.f sort.f muca_md.f MREMD.F rattle.F gauss.f energy_split-sep.F 
-       q_measure.F gnmr1.f test.F )
 
+#================================
+# Set source file lists
+#================================
+set(UNRES_MD_SRC0 
+       add.f 
+       arcos.f
+       banach.f 
+       blas.f 
+       bond_move.f 
+       cartder.F 
+       cartprint.f 
+       check_sc_distr.f
+       check_bond.f 
+       chainbuild.F 
+       checkder_p.F 
+       compare_s1.F 
+       contact.f 
+       convert.f 
+       cored.f 
+       dihed_cons.F 
+       djacob.f 
+       econstr_local.F
+       eigen.f 
+       elecont.f 
+       energy_split-sep.F 
+       entmcm.F
+       fitsq.f 
+       gauss.f 
+       gen_rand_conf.F
+       geomout.F 
+       gnmr1.f 
+       intcartderiv.F 
+       initialize_p.F 
+       int_to_cart.f 
+       intcor.f 
+       intlocal.f 
+       kinetic_lesyng.f 
+       lagrangian_lesyng.F 
+       local_move.f 
+       map.f 
+       matmult.f 
+       mc.F 
+       mcm.F 
+       MD_A-MTS.F 
+       minimize_p.F 
+       minim_mcmf.F 
+       misc.f 
+       moments.f
+       MP.F 
+       MREMD.F 
+       muca_md.f 
+       parmread.F 
+       pinorm.f 
+       printmat.f 
+       q_measure.F 
+       randgens.f 
+       rattle.F 
+       readpdb.F 
+       readrtns.F 
+       refsys.f 
+       regularize.F
+       rescode.f 
+       rmdd.f 
+       rmsd.F 
+       sc_move.F 
+       sort.f 
+       stochfric.F 
+       sumsld.f 
+       surfatom.f 
+       test.F
+       timing.F
+       thread.F 
+       unres.F
+)
+
+if(Fortran_COMPILER_NAME STREQUAL "ifort")
+  set(UNRES_MD_SRC0 ${UNRES_MD_SRC0} prng.f ) 
+else()
+  set(UNRES_MD_SRC0 ${UNRES_MD_SRC0} prng_32.F )
+endif (Fortran_COMPILER_NAME STREQUAL "ifort")
+
+
+set(UNRES_MD_SRC3 
+       energy_p_new_barrier.F 
+       energy_p_new-sep_barrier.F 
+       gradient_p.F )
+
+set(UNRES_MD_PP_SRC
+       cartder.F
+       chainbuild.F 
+       checkder_p.F 
+       compare_s1.F 
+       dihed_cons.F 
+       econstr_local.F 
+       energy_p_new_barrier.F 
+       energy_p_new-sep_barrier.F 
+       energy_split-sep.F 
+       entmcm.F 
+       gen_rand_conf.F
+       geomout.F 
+       gradient_p.F 
+       initialize_p.F 
+       intcartderiv.F 
+       lagrangian_lesyng.F 
+       mc.F 
+       mcm.F 
+       MD_A-MTS.F
+       minimize_p.F 
+       minim_mcmf.F 
+       MP.F 
+       MREMD.F 
+       parmread.F 
+       q_measure1.F 
+       q_measure3.F 
+       q_measure.F
+       rattle.F 
+       readpdb.F 
+       readrtns.F 
+       regularize.F 
+       rmsd.F 
+       sc_move.F 
+       stochfric.F 
+       test.F 
+       thread.F 
+       timing.F
+       unres.F 
+       proc_proc.c 
+) 
+
+
+if(NOT Fortran_COMPILER_NAME STREQUAL "ifort")
+  set(UNRES_MD_PP_SRC ${UNRES_MD_PP_SRC} prng_32.F) 
+endif(NOT Fortran_COMPILER_NAME STREQUAL "ifort")
+
+#================================================
+# Set comipiler flags for different sourcefiles  
+#================================================
+if (Fortran_COMPILER_NAME STREQUAL "ifort")
+  set(FFLAGS0 "-ip -w" ) 
+  set(FFLAGS1 "-w -g -d2 -CA -CB" ) 
+  set(FFLAGS2 "-w -g -00 ")
+  #set(FFLAGS3 "-c -w -O3 -ipo -ipo_obj -opt_report" )
+  set(FFLAGS3 "-w -ipo " )
+elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
+  set(FFLAGS0 "-I. " ) 
+  set(FFLAGS1 "-g -I. " ) 
+  set(FFLAGS2 "-I. ")
+  #set(FFLAGS3 "-c -w -O3 -ipo -ipo_obj -opt_report" )
+  set(FFLAGS3 "-I. " )
+endif (Fortran_COMPILER_NAME STREQUAL "ifort")
+
+
+# Add MPI compiler flags
+if(UNRES_WITH_MPI)
+  set(FFLAGS0 "${FFLAGS0} -I${MPIF_INCLUDE_DIRECTORIES}")
+  set(FFLAGS1 "${FFLAGS1} -I${MPIF_INCLUDE_DIRECTORIES}")
+  set(FFLAGS2 "${FFLAGS2} -I${MPIF_INCLUDE_DIRECTORIES}")
+  set(FFLAGS3 "${FFLAGS3} -I${MPIF_INCLUDE_DIRECTORIES}")
+endif(UNRES_WITH_MPI)
+
+set_property(SOURCE ${UNRES_MD_SRC0} APPEND PROPERTY COMPILE_FLAGS ${FFLAGS0} )
+#set_property(SOURCE ${UNRES_MD_SRC1} PROPERTY COMPILE_FLAGS ${FFLAGS1} )
+#set_property(SOURCE ${UNRES_MD_SRC2} PROPERTY COMPILE_FLAGS ${FFLAGS2} )
+set_property(SOURCE ${UNRES_MD_SRC3} PROPERTY COMPILE_FLAGS ${FFLAGS3} )
+
+#=========================================
+# Settings for GAB force field 
+#=========================================
+if(UNRES_MD_FF STREQUAL "GAB" )
+  # set preprocesor flags   
+  set(CPPFLAGS "PROCOR -DUNRES -DISNAN -DSPLITELE -DLANG0 -DCRYST_BOND -DCRYST_THETA -DCRYST_SC" )
+
+#=========================================
+#  Settings for E0LL2Y force field
+#=========================================
+elseif(UNRES_MD_FF STREQUAL "E0LL2Y")
+  # set preprocesor flags   
+  set(CPPFLAGS "PROCOR -DUNRES -DISNAN -DSPLITELE -DLANG0" )
+endif(UNRES_MD_FF STREQUAL "GAB")
+
+#=========================================
+# System specific flags
+#=========================================
+if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+  set(CPPFLAGS "${CPPFLAGS} -DLINUX") 
+endif(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+
+#=========================================
+# Compiler specific flags
+#=========================================
+
+if (Fortran_COMPILER_NAME STREQUAL "ifort")
+  # Add ifort preprocessor flags
+  set(CPPFLAGS "${CPPFLAGS} -DPGI") 
+elseif (Fortran_COMPILER_NAME STREQUAL "f95")
+  # Add new gfortran flags
+  set(CPPFLAGS "${CPPFLAGS} -DG77") 
+elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
+  # Add old gfortran flags
+  set(CPPFLAGS "${CPPFLAGS} -DG77") 
+endif (Fortran_COMPILER_NAME STREQUAL "ifort")
+
+#=========================================
+# Add MPI preprocessor flags
+#=========================================
+if (UNRES_WITH_MPI)
+  set(CPPFLAGS "${CPPFLAGS} -DMP -DMPI") 
+endif(UNRES_WITH_MPI)
 
-set(UNRES_MD_SRC3 energy_p_new_barrier.F energy_p_new-sep_barrier.F gradient_p.F )
+#=========================================
+# Apply preprocesor flags to *.F files
+#=========================================
+set_property(SOURCE ${UNRES_MD_PP_SRC} PROPERTY COMPILE_DEFINITIONS ${CPPFLAGS} )  
+
+
+#========================================
+#  Setting binary name
+#========================================
+if(UNRES_WITH_MPI) 
+  # binary with mpi
+  set(UNRES_BIN "unres_${Fortran_COMPILER_NAME}_MPICH_${UNRES_MD_FF}.exe")
+else(UNRES_WITH_MPI)
+  # binary without mpi
+  set(UNRES_BIN "unres_${Fortran_COMPILER_NAME}_single_${UNRES_MD_FF}.exe")
+endif(UNRES_WITH_MPI)  
+
+#=========================================
+# cinfo.f stupid workaround for cmake
+#  - shame on me ]:)
+#=========================================
+set_property(SOURCE compinfo.c PROPERTY CMAKE_C_FLAGS "-c" )
+add_executable(compinfo-md compinfo.c)
+set_target_properties(compinfo-md PROPERTIES OUTPUT_NAME compinfo)
+
+set(UNRES_CINFO_DIR "${CMAKE_CURRENT_BINARY_DIR}" )
+add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/cinfo.f 
+       COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/cinfo.f ${CMAKE_CURRENT_BINARY_DIR}/cinfo.f
+       COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/COMMON.IOUNITS ${CMAKE_CURRENT_BINARY_DIR}/COMMON.IOUNITS 
+       COMMAND ${CMAKE_CURRENT_BINARY_DIR}/compinfo | true     
+       DEPENDS compinfo-md )
+set_property(SOURCE ${UNRES_CINFO_DIR}/cinfo.f PROPERTY COMPILE_FLAGS ${FFLAGS0} )
+
+#=========================================
+# Set full unres MD sources
+#=========================================
+set(UNRES_MD_SRCS ${UNRES_MD_SRC0} ${UNRES_MD_SRC3} ${UNRES_CINFO_DIR}/cinfo.f )
+
+
+#=========================================
+# Build the binary
+#=========================================
+add_executable(UNRES_BIN-MD ${UNRES_MD_SRCS} )
+set_target_properties(UNRES_BIN-MD PROPERTIES OUTPUT_NAME ${UNRES_BIN})
+#set_property(TARGET ${UNRES_BIN} PROPERTY RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/unres/MD )
+#add_dependencies (${UNRES_BIN} ${UNRES_XDRFLIB})
+
+
+#=========================================
+# Link libraries
+#=========================================
+# link MPI library (libmpich.a)  
+if(UNRES_WITH_MPI)
+  target_link_libraries( UNRES_BIN-MD ${MPIF_LIBRARIES} )
+endif(UNRES_WITH_MPI)
+# link libxdrf.a 
+#message("UNRES_XDRFLIB=${UNRES_XDRFLIB}")
+target_link_libraries( UNRES_BIN-MD xdrf )
+
+#=========================================
+# TESTS 
+#=========================================
+
+#-- Copy all the data files from the test directory into the source directory
+#SET(UNRES_TEST_FILES
+#      ala10.inp
+#    )
+
+#FOREACH (UNRES_TEST_FILE ${UNRES_TEST_FILES})
+#      SET (unres_test_dest "${CMAKE_CURRENT_BINARY_DIR}/${UNRES_TEST_FILE}")
+#      MESSAGE (STATUS " Copying ${UNRES_TEST_FILE} from ${CMAKE_SOURCE_DIR}/examples/unres/MD/ff_gab/${UNRES_TEST_FILE} to ${unres_test_dest}")
+#      ADD_CUSTOM_COMMAND (
+#          TARGET     ${UNRES_BIN}
+#          POST_BUILD
+#          COMMAND    ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/examples/unres/MD/ff_gab/${UNRES_TEST_FILE} ${unres_test_dest}
+#      )
+#ENDFOREACH (UNRES_TEST_FILE ${UNRES_TEST_FILES})
+
+#=========================================
+# Generate data test files
+#=========================================
+#  test_single_ala.sh
+#=========================================
+
+FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_single_ala.sh
+"#!/bin/sh
+export POT=GB
+export PREFIX=ala10
+#-----------------------------------------------------------------------------
+UNRES_BIN=./${UNRES_BIN}
+#-----------------------------------------------------------------------------
+DD=${CMAKE_SOURCE_DIR}/PARAM
+export BONDPAR=$DD/bond.parm
+export THETPAR=$DD/thetaml.5parm
+export ROTPAR=$DD/scgauss.parm
+export TORPAR=$DD/torsion_631Gdp.parm
+export TORDPAR=$DD/torsion_double_631Gdp.parm
+export ELEPAR=$DD/electr_631Gdp.parm
+export SIDEPAR=$DD/sc_GB_opt.1gab_3S_qclass5no310-shan2-sc-16-10-8k
+export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
+export SCPPAR=$DD/scp.parm
+export SCCORPAR=$DD/rotcorr_AM1.parm
+export PATTERN=$DD/patterns.cart
+#-----------------------------------------------------------------------------
+$UNRES_BIN
+")
+
+#
+# File permissions workaround
+#
+FILE(  COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_single_ala.sh 
+       DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
+       FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+)
 
 
-# Set compiler flags for different sourcefiles
-set(FFLAGS0 -c -O3 -ip -w ) 
-set(FFLAGS1 -c -w -g -d2 -CA -CB ) 
-set(FFLAGS2 -c -w -g -00 )
-set(FFLAGS3 -c -w -O3 -ipo -ipo_obj -opt_report )
 
-set_property(SOURCE ${UNRES_MD_SRC0} PROPERTY CMAKE_Fortran_FLAGS ${FFLAGS0} )
-set_property(SOURCE ${UNRES_MD_SRC1} PROPERTY COMPILE_FLAGS ${FFLAGS1} )
-set_property(SOURCE ${UNRES_MD_SRC2} PROPERTY COMPILE_FLAGS ${FFLAGS2} )
-set_property(SOURCE ${UNRES_MD_SRC3} PROPERTY CMAKE_Fortran_FLAGS ${FFLAGS3} )
+#=========================================
+#  ala10.inp
+#=========================================
 
-# Compile code
+file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/ala10.inp
+"ala10 unblocked
+SEED=-1111333 MD ONE_LETTER rescale_mode=2 
+nstep=15000 ntwe=100 ntwx=1000 dt=0.1 lang=0 tbf t_bath=300 damax=1.0          &
+reset_moment=1000 reset_vel=1000
+WLONG=1.35279 WSCP=1.59304 WELEC=0.71534 WBOND=1.00000 WANG=1.13873            &
+WSCLOC=0.16258 WTOR=1.98599 WTORD=1.57069 WCORRH=0.42887 WCORR5=0.00000        &
+WCORR6=0.00000 WEL_LOC=0.16036 WTURN3=1.68722 WTURN4=0.66230 WTURN6=0.00000    &
+WVDWPP=0.11371 WHPB=1.00000                                                    &
+CUTOFF=7.00000 WCORR4=0.00000
+12
+XAAAAAAAAAAX 
+ 0
+ 0
+   90.0000   90.0000   90.0000  90.000   90.000   90.000   90.000   90.000 
+   90.0000   90.0000
+  180.0000  180.0000  180.0000 180.000  180.000  180.000  180.000  180.000
+  180.0000
+  110.0000  110.0000  110.0000 100.000  110.000  100.000  110.000  110.000 
+  110.0000  110.0000
+ -120.0000 -120.0000 -120.000 -120.000 -120.000 -120.000 -120.000 -120.000
+ -120.0000 -120.0000
+")
 
-if(UNRES_FF STREQUAL "GAB")
 
-  set(CPPFLAGS -DPROCOR -DLINUX -DPGI -DUNRES -DISNAN -DMP -DMPI -DSPLITELE -DLANGO -DCRYST_BOND
-   -DCRYST_THETA -DCRYST_SC )
+# Add tests
 
-else(UNRES_FF strequal "E0LL2Y")
+if(NOT UNRES_WITH_MPI)
+                  
+  add_test(NAME UNRES_MD_Ala10 COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh )
 
-  set(CPPFLAGS -DPROCOR -DLINUX -DPGI -DUNRES -DISNAN -DMP -DMPI -DSPLITELE -DLANG0 )
+else(NOT UNRES_WITH_MPI)
 
-endif()
 
+  add_test(NAME UNRES_MD_MPI_Ala10 COMMAND mpirun -np 1 ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh )
 
-add_executable(unres ${UNRES_MD_SRC0} ${UNRES_MD_SRC3} ) 
+endif(NOT UNRES_WITH_MPI)
index f7a8a1d..6e19f8d 100644 (file)
@@ -1,9 +1,10 @@
       integer nres,nsup,nstart_sup,nz_start,nz_end,iz_sc,
      &  nres0,nstart_seq
       double precision c,dc,dc_old,d_c_work,xloc,xrot,dc_norm,t,r,
-     & prod,rt,dc_work,cref,crefjlee
+     & prod,rt,dc_work,cref,crefjlee,dc_norm2
       common /chain/ c(3,maxres2+2),dc(3,0:maxres2),dc_old(3,0:maxres2),
      & xloc(3,maxres),xrot(3,maxres),dc_norm(3,0:maxres2),
+     & dc_norm2(3,0:maxres2),
      & dc_work(MAXRES6),nres,nres0
       common /rotmat/ t(3,3,maxres),r(3,3,maxres),prod(3,3,maxres),
      &                rt(3,3,maxres) 
index 837a7a3..a3f68dc 100644 (file)
@@ -29,7 +29,8 @@ C Parameters of ab initio-derived potential of virtual-bond-angle bending
 C Virtual-bond lenghts
       double precision vbl,vblinv,vblinv2,vbl_cis,vbl0,vbld_inv
       integer loc_start,loc_end,ithet_start,ithet_end,iphi_start,
-     & iphi_end,iphid_start,iphid_end,ibond_start,ibond_end,
+     & iphi_end,iphid_start,iphid_end,itau_start,itau_end,ibond_start,
+     & ibond_end,
      & ibondp_start,ibondp_end,ivec_start,ivec_end,iset_start,iset_end,
      & iturn3_start,iturn3_end,iturn4_start,iturn4_end,iint_start,
      & iint_end,iphi1_start,iphi1_end,
@@ -42,7 +43,8 @@ C Virtual-bond lenghts
      & iint_count(0:max_fg_procs-1),iint_displ(0:max_fg_procs-1)
       common /peptbond/ vbl,vblinv,vblinv2,vbl_cis,vbl0
       common /indices/ loc_start,loc_end,ithet_start,ithet_end,
-     & iphi_start,iphi_end,iphid_start,iphid_end,ibond_start,ibond_end,
+     & iphi_start,iphi_end,iphid_start,iphid_end,itau_start,itau_end,
+     & ibond_start,ibond_end,
      & ibondp_start,ibondp_end,ivec_start,ivec_end,iset_start,iset_end,
      & iturn3_start,iturn3_end,iturn4_start,iturn4_end,iint_start,
      & iint_end,iphi1_start,iphi1_end,iint_count,iint_displ,ivec_displ,
index 5217de7..ca6210f 100644 (file)
@@ -1,6 +1,16 @@
-C Parameters of the SCCOR term
-      double precision v1sccor,v2sccor
-      integer nterm_sccor
-      common/torsion/v1sccor(maxterm_sccor,20,20),
-     &    v2sccor(maxterm_sccor,20,20),
-     &    nterm_sccor
+cc Parameters of the SCCOR term
+      double precision v1sccor,v2sccor,vlor1sccor,
+     &                 vlor2sccor,vlor3sccor,gloc_sc,
+     &                 dcostau,dsintau,dtauangle,dcosomicron,
+     &                 domicron
+      integer nterm_sccor,isccortyp,nsccortyp,nlor_sccor
+      common/sccor/v1sccor(maxterm_sccor,3,20,20),
+     &    v2sccor(maxterm_sccor,3,20,20),
+     &    v0sccor(maxterm_sccor,20),
+     &    nterm_sccor(ntyp,ntyp),isccortyp(ntyp),nsccortyp,
+     &    nlor_sccor(ntyp,ntyp),vlor1sccor(maxterm_sccor,20,20),
+     &    vlor2sccor(maxterm_sccor,20,20),
+     &    vlor3sccor(maxterm_sccor,20,20),gloc_sc(3,0:maxres2,10),
+     &    dcostau(3,3,3,maxres2),dsintau(3,3,3,maxres2),
+     &    dtauangle(3,3,3,maxres2),dcosomicron(3,3,3,maxres2),
+     &    domicron(3,3,3,maxres2)
index 71158b8..d560c87 100644 (file)
@@ -5,6 +5,7 @@ C Store the geometric variables in the following COMMON block.
      &          thetaref,phiref,costtab,sinttab,cost2tab,sint2tab,
      &          xxtab,yytab,zztab,xxref,yyref,zzref
       common /var/ theta(maxres),phi(maxres),alph(maxres),omeg(maxres),
+     &          omicron(2,maxres),tauangle(3,maxres),
      &          vbld(2*maxres),thetaref(maxres),phiref(maxres),
      &          costtab(maxres), sinttab(maxres), cost2tab(maxres),
      &          sint2tab(maxres),xxtab(maxres),yytab(maxres),
index 224dade..5151ff7 100644 (file)
@@ -54,7 +54,7 @@ C virtual-bond angle bending potentials
      & mmaxtheterm=maxtheterm)
 c Max number of torsional terms in SCCOR
       integer maxterm_sccor
-      parameter (maxterm_sccor=3)
+      parameter (maxterm_sccor=6)
 C Max. number of lobes in SC distribution
       integer maxlob
       parameter (maxlob=4)
index 89d0b76..ec1bcf3 100644 (file)
@@ -3,7 +3,7 @@ INSTALL_DIR = /users/software/mpich-1.2.7p1_intel-10.1_em64_ssh
 
 FC= ifort
 
-OPT =  -O3 -ip -w 
+OPT =  -g -ip -w -CB 
 
 FFLAGS = -c ${OPT} -I$(INSTALL_DIR)/include 
 FFLAGS1 = -c -w -g -d2 -CA -CB -I$(INSTALL_DIR)/include 
index 26854e6..4d0379e 100644 (file)
@@ -8,6 +8,7 @@ C Check the gradient of Cartesian coordinates in internal coordinates.
       include 'COMMON.GEO'
       include 'COMMON.LOCAL'
       include 'COMMON.DERIV'
+      include 'COMMON.SCCOR'
       dimension temp(6,maxres),xx(3),gg(3)
       indmat(i,j)=((2*(nres-2)-i)*(i-1))/2+j-1
 *
@@ -180,6 +181,7 @@ C Check the gradient of the energy in Cartesian coordinates.
       include 'COMMON.IOUNITS'
       include 'COMMON.VAR'
       include 'COMMON.CONTACTS'
+      include 'COMMON.SCCOR'
       common /srutu/ icall
       dimension ggg(6),cc(3),xx(3),ddc(3),ddx(3),x(maxvar),g(maxvar)
       dimension grad_s(6,maxres)
@@ -261,6 +263,7 @@ C Check the gradient of the energy in Cartesian coordinates.
       include 'COMMON.MD'
       include 'COMMON.LOCAL'
       include 'COMMON.SPLITELE'
+      include 'COMMON.SCCOR'
       common /srutu/ icall
       dimension ggg(6),ggg1(6),cc(3),xx(3),ddc(3),ddx(3),x(maxvar),
      &  g(maxvar)
@@ -288,10 +291,16 @@ c      call checkintcartgrad
       call geom_to_var(nvar,x)
       if (.not.split_ene) then
         call etotal(energia(0))
+c        do i=1,nres
+c        write (iout,*) "atu?", gloc_sc(1,i,icg),gloc(i,icg)
+c        enddo
         etot=energia(0)
         call enerprint(energia(0))
         call flush(iout)
         write (iout,*) "enter cartgrad"
+c        do i=1,nres
+c        write (iout,*) gloc_sc(1,i,icg)
+c        enddo 
         call flush(iout)
         call cartgrad
         write (iout,*) "exit cartgrad"
@@ -338,6 +347,9 @@ c      call checkintcartgrad
         call zerograd
         call etotal_short(energia(0))
         call enerprint(energia(0))
+c        do i=1,nres
+c        write (iout,*) gloc_sc(1,i,icg)
+c        enddo 
         call flush(iout)
         write (iout,*) "enter cartgrad"
         call flush(iout)
@@ -502,7 +514,7 @@ c-------------------------------------------------------------------------
       time01=MPI_Wtime()
 #endif
 #if defined(PARINT) && defined(MPI)
-      do i=iint_start,iint_end
+      do i=iint_start,iint_end+1
 #else
       do i=2,nres
 #endif
@@ -513,7 +525,20 @@ c-------------------------------------------------------------------------
      &     +(c(j,i+1)-c(j,i))/dnorm2)
         enddo
         be=0.0D0
-        if (i.gt.2) phi(i+1)=beta(i-2,i-1,i,i+1)
+        if (i.gt.2) then
+        if (i.le.nres) phi(i+1)=beta(i-2,i-1,i,i+1)
+        if ((itype(i).ne.10).and.(itype(i-1).ne.10)) then
+         tauangle(3,i+1)=beta(i+nres-1,i-1,i,i+nres)
+        endif
+        if (itype(i-1).ne.10) then
+         tauangle(1,i+1)=beta(i-1+nres,i-1,i,i+1)
+         omicron(1,i)=alpha(i-2,i-1,i-1+nres)
+         omicron(2,i)=alpha(i-1+nres,i-1,i)
+        endif
+        if (itype(i).ne.10) then
+         tauangle(2,i+1)=beta(i-2,i-1,i,i+nres)
+        endif
+        endif
         omeg(i)=beta(nres+i,i,maxres2,i+1)
         alph(i)=alpha(nres+i,i,maxres2)
         theta(i+1)=alpha(i-1,i,i+1)
@@ -526,6 +551,7 @@ c-------------------------------------------------------------------------
           vbld_inv(nres+i)=0.0d0
         endif
       enddo   
+
 #if defined(PARINT) && defined(MPI)
        if (nfgtasks1.gt.1) then
 cd       write(iout,*) "iint_start",iint_start," iint_count",
index 3438039..b54ec8c 100644 (file)
@@ -1,4 +1,5 @@
 C DO NOT EDIT THIS FILE - IT HAS BEEN GENERATED BY COMPINFO.C
+<<<<<<< HEAD
 C 2 5 66
       subroutine cinfo
       include 'COMMON.IOUNITS'
@@ -6,13 +7,29 @@ C 2 5 66
       write(iout,*)'Version 2.5 build 66'
       write(iout,*)'compiled Thu Jun 14 06:40:11 2012'
       write(iout,*)'compiled by adam@matrix.chem.cornell.edu'
+=======
+C 2 5 295
+      subroutine cinfo
+      include 'COMMON.IOUNITS'
+      write(iout,*)'++++ Compile info ++++'
+      write(iout,*)'Version 2.5 build 295'
+      write(iout,*)'compiled Mon Jun 18 05:08:20 2012'
+      write(iout,*)'compiled by aks255@matrix.chem.cornell.edu'
+>>>>>>> aebadf9023e437f497f92dfcf2303c16f60917c1
       write(iout,*)'OS name:    Linux '
       write(iout,*)'OS release: 2.6.34.9-69.fc13.x86_64 '
       write(iout,*)'OS version:',
      & ' #1 SMP Tue May 3 09:23:03 UTC 2011 '
       write(iout,*)'flags:'
+<<<<<<< HEAD
       write(iout,*)'FC = ifort'
       write(iout,*)'FFLAGS = -c ${OPT} -I$(INSTALL_DIR)/include'
+=======
+      write(iout,*)'INSTALL_DIR = /users/software/mpich-1.2.7p1_int...'
+      write(iout,*)'FC= ifort'
+      write(iout,*)'OPT =  -g -ip -w -CB '
+      write(iout,*)'FFLAGS = -c ${OPT} -I$(INSTALL_DIR)/include '
+>>>>>>> aebadf9023e437f497f92dfcf2303c16f60917c1
       write(iout,*)'FFLAGS1 = -c -w -g -d2 -CA -CB -I$(INSTALL_DIR)...'
       write(iout,*)'FFLAGS2 = -c -w -g -O0 -I$(INSTALL_DIR)/include'
       write(iout,*)'FFLAGSE = -c -w -O3 -ipo -ipo_obj  -opt_report ...'
index 7e2b9cf..e28f686 100644 (file)
@@ -14,10 +14,10 @@ time_t Tp;
 
 in=fopen("cinfo.f","r");
 out=fopen("cinfo.f.new","w");
-fgets(buf,498,in);
-fprintf(out,"C DO NOT EDIT THIS FILE - IT HAS BEEN GENERATED BY COMPINFO.C\n");
-fgets(buf,498,in);
-sscanf(&buf[1],"%d %d %d",&iv1,&iv2,&iv3);
+if (fgets(buf,498,in) != NULL)
+       fprintf(out,"C DO NOT EDIT THIS FILE - IT HAS BEEN GENERATED BY COMPINFO.C\n");
+if (fgets(buf,498,in) != NULL)
+       sscanf(&buf[1],"%d %d %d",&iv1,&iv2,&iv3);
 iv3++;
 fprintf(out,"C %d %d %d\n",iv1,iv2,iv3);
 fprintf(out,"      subroutine cinfo\n");
@@ -26,10 +26,10 @@ fprintf(out,"      write(iout,*)'++++ Compile info ++++'\n");
 fprintf(out,"      write(iout,*)'Version %d.%-d build %d'\n",iv1,iv2,iv3);
 uname(&Name);
 time(&Tp);
-system("rm tmptmp; whoami > tmptmp");
+system("whoami > tmptmp");
 in1=fopen("tmptmp","r");
-fscanf(in1,"%s",buf1);
-fclose(in1);
+if (fscanf(in1,"%s",buf1) != EOF)
+{
 p1=ctime(&Tp);
 p1[strlen(p1)-1]='\0';
 fprintf(out,"      write(iout,*)'compiled %s'\n",p1);
@@ -39,6 +39,9 @@ fprintf(out,"      write(iout,*)'OS release: %s '\n",Name.release);
 fprintf(out,"      write(iout,*)'OS version:',\n");
 fprintf(out,"     & ' %s '\n",Name.version);
 fprintf(out,"      write(iout,*)'flags:'\n");
+}
+system("rm tmptmp");
+fclose(in1);
 in1=fopen("Makefile","r");
 while(fgets(buf,498,in1) != NULL)
  {
@@ -56,8 +59,8 @@ while(fgets(buf,498,in1) != NULL)
     {
     strcat(buf,"\\");
     fprintf(out,"      write(iout,*)'%s'\n",buf);
-    fgets(buf,498,in1);
-    buf[strlen(buf)-1]='\0';
+    if (fgets(buf,498,in1) != NULL)
+       buf[strlen(buf)-1]='\0';
     if(strlen(buf) > 49)
      {
      buf[47]='\0';
index 1fb6c53..e45405f 100644 (file)
@@ -23,7 +23,7 @@ cdr      call getenv_loc('SECPREDFIL',secpred)
 #elif (defined G77)
       open(isecpred,file=secpred,status='old')
 #else
-      open(isecpred,file=secpred,status='old',readonly)
+      open(isecpred,file=secpred,status='old',action='read')
 #endif
 C read secondary structure prediction from JPRED here!
 !      read(isecpred,'(A80)',err=100,end=100) line
index 3feefaa..9edadf8 100644 (file)
@@ -471,7 +471,7 @@ cMS$ATTRIBUTES C ::  proc_proc
       include 'mpif.h'
 #endif
       double precision gradbufc(3,maxres),gradbufx(3,maxres),
-     &  glocbuf(4*maxres),gradbufc_sum(3,maxres)
+     &  glocbuf(4*maxres),gradbufc_sum(3,maxres),gloc_scbuf(3,maxres)
       include 'COMMON.SETUP'
       include 'COMMON.IOUNITS'
       include 'COMMON.FFIELD'
@@ -483,6 +483,7 @@ cMS$ATTRIBUTES C ::  proc_proc
       include 'COMMON.CONTROL'
       include 'COMMON.TIME1'
       include 'COMMON.MAXGRAD'
+      include 'COMMON.SCCOR'
 #ifdef TIMING
 #ifdef MPI
       time01=MPI_Wtime()
@@ -755,7 +756,6 @@ c      enddo
      &   +wturn3*gel_loc_turn3(i)
      &   +wturn6*gel_loc_turn6(i)
      &   +wel_loc*gel_loc_loc(i)
-     &   +wsccor*gsccor_loc(i)
       enddo
 #ifdef DEBUG
       write (iout,*) "gloc after adding corr"
@@ -774,6 +774,21 @@ c      enddo
         do i=1,4*nres
           glocbuf(i)=gloc(i,icg)
         enddo
+#define DEBUG
+#ifdef DEBUG
+      write (iout,*) "gloc_sc before reduce"
+      do i=1,nres
+       do j=1,3
+        write (iout,*) i,j,gloc_sc(j,i,icg)
+       enddo
+      enddo
+#endif
+#undef DEBUG
+        do i=1,nres
+         do j=1,3
+          gloc_scbuf(j,i)=gloc_sc(j,i,icg)
+         enddo
+        enddo
         time00=MPI_Wtime()
         call MPI_Barrier(FG_COMM,IERR)
         time_barrier_g=time_barrier_g+MPI_Wtime()-time00
@@ -784,7 +799,19 @@ c      enddo
      &    MPI_DOUBLE_PRECISION,MPI_SUM,king,FG_COMM,IERR)
         call MPI_Reduce(glocbuf(1),gloc(1,icg),4*nres,
      &    MPI_DOUBLE_PRECISION,MPI_SUM,king,FG_COMM,IERR)
+        call MPI_Reduce(gloc_scbuf(1,1),gloc_sc(1,1,icg),3*nres,
+     &    MPI_DOUBLE_PRECISION,MPI_SUM,king,FG_COMM,IERR)
         time_reduce=time_reduce+MPI_Wtime()-time00
+#define DEBUG
+#ifdef DEBUG
+      write (iout,*) "gloc_sc after reduce"
+      do i=1,nres
+       do j=1,3
+        write (iout,*) i,j,gloc_sc(j,i,icg)
+       enddo
+      enddo
+#endif
+#undef DEBUG
 #ifdef DEBUG
       write (iout,*) "gloc after reduce"
       do i=1,4*nres
@@ -5691,7 +5718,7 @@ C Proline-Proline pair is a special case...
      &  restyp(itype(i-2)),i-2,restyp(itype(i-1)),i-1,itori,itori1,
      &  (v1(j,itori,itori1),j=1,6),(v2(j,itori,itori1),j=1,6)
         gloc(i-3,icg)=gloc(i-3,icg)+wtor*gloci
-c       write (iout,*) 'i=',i,' gloc=',gloc(i-3,icg)
+        write (iout,*) 'i=',i,' gloc=',gloc(i-3,icg)
       enddo
 ! 6/20/98 - dihedral angle constraints
       edihcnstr=0.0d0
@@ -5806,6 +5833,7 @@ c      do i=1,ndih_constr
         else
           difi=0.0
         endif
+c        write (iout,*) "gloci", gloc(i-3,icg)
 cd        write (iout,'(2i5,4f8.3,2e14.5)') i,itori,rad2deg*phii,
 cd     &    rad2deg*phi0(i),  rad2deg*drange(i),
 cd     &    rad2deg*difi,0.25d0*ftors*difi**4,gloc(itori-3,icg)
@@ -5842,7 +5870,6 @@ c     lprn=.true.
         phii1=phi(i+1)
         gloci1=0.0D0
         gloci2=0.0D0
-C Regular cosine and sine terms
         do j=1,ntermd_1(itori,itori1,itori2)
           v1cij=v1c(1,j,itori,itori1,itori2)
           v1sij=v1s(1,j,itori,itori1,itori2)
@@ -5877,6 +5904,7 @@ C Regular cosine and sine terms
         enddo
         gloc(i-3,icg)=gloc(i-3,icg)+wtor_d*gloci1
         gloc(i-2,icg)=gloc(i-2,icg)+wtor_d*gloci2
+c        write (iout,*) "gloci", gloc(i-3,icg)
       enddo
       return
       end
@@ -5909,26 +5937,57 @@ C Set lprn=.true. for debugging
 c      lprn=.true.
 c      write (iout,*) "EBACK_SC_COR",iphi_start,iphi_end,nterm_sccor
       esccor=0.0D0
-      do i=iphi_start,iphi_end
+      do i=itau_start,itau_end
         esccor_ii=0.0D0
-        itori=itype(i-2)
-        itori1=itype(i-1)
+        isccori=isccortyp(itype(i-2))
+        isccori1=isccortyp(itype(i-1))
         phii=phi(i)
+cccc  Added 9 May 2012
+cc Tauangle is torsional engle depending on the value of first digit 
+c(see comment below)
+cc Omicron is flat angle depending on the value of first digit 
+c(see comment below)
+
+        
+        do intertyp=1,3 !intertyp
+cc Added 09 May 2012 (Adasko)
+cc  Intertyp means interaction type of backbone mainchain correlation: 
+c   1 = SC...Ca...Ca...Ca
+c   2 = Ca...Ca...Ca...SC
+c   3 = SC...Ca...Ca...SCi
         gloci=0.0D0
-        do j=1,nterm_sccor
-          v1ij=v1sccor(j,itori,itori1)
-          v2ij=v2sccor(j,itori,itori1)
-          cosphi=dcos(j*phii)
-          sinphi=dsin(j*phii)
+        if (((intertyp.eq.3).and.((itype(i-2).eq.10).or.
+     &      (itype(i-1).eq.10).or.(itype(i-2).eq.21).or.
+     &      (itype(i-1).eq.21)))
+     &    .or. ((intertyp.eq.1).and.((itype(i-2).eq.10)
+     &     .or.(itype(i-2).eq.21)))
+     &    .or.((intertyp.eq.2).and.((itype(i-1).eq.10).or.
+     &      (itype(i-1).eq.21)))) cycle  
+        if ((intertyp.eq.2).and.(i.eq.4).and.(itype(1).eq.21)) cycle
+        if ((intertyp.eq.1).and.(i.eq.nres).and.(itype(nres).eq.21))
+     & cycle
+        do j=1,nterm_sccor(isccori,isccori1)
+          v1ij=v1sccor(j,intertyp,isccori,isccori1)
+          v2ij=v2sccor(j,intertyp,isccori,isccori1)
+          cosphi=dcos(j*tauangle(intertyp,i))
+          sinphi=dsin(j*tauangle(intertyp,i))
           esccor=esccor+v1ij*cosphi+v2ij*sinphi
           gloci=gloci+j*(v2ij*cosphi-v1ij*sinphi)
         enddo
+        gloc_sc(intertyp,i-3,icg)=gloc_sc(intertyp,i-3,icg)+wsccor*gloci
+c        write (iout,*) "WTF",intertyp,i,itype(i),v1ij*cosphi+v2ij*sinphi
+c     &gloc_sc(intertyp,i-3,icg)
         if (lprn)
      &  write (iout,'(2(a3,2x,i3,2x),2i3,6f8.3/26x,6f8.3/)')
      &  restyp(itype(i-2)),i-2,restyp(itype(i-1)),i-1,itori,itori1,
-     &  (v1sccor(j,itori,itori1),j=1,6),(v2sccor(j,itori,itori1),j=1,6)
+     &  (v1sccor(j,intertyp,itori,itori1),j=1,6)
+     & ,(v2sccor(j,intertyp,itori,itori1),j=1,6)
         gsccor_loc(i-3)=gsccor_loc(i-3)+gloci
+       enddo !intertyp
       enddo
+c        do i=1,nres
+c        write (iout,*) "W@T@F",  gloc_sc(1,i,icg),gloc(i,icg)
+c        enddo
       return
       end
 c----------------------------------------------------------------------------
@@ -8035,9 +8094,9 @@ C
 C      Parallel       Antiparallel
 C                                             
 C          o             o         
-C         /l\           /j\       
-C        /   \         /   \      
-C       /| o |         | o |\     
+C         /l\           /j\
+C        /   \         /   \
+C       /| o |         | o |\
 C     \ j|/k\|  /   \  |/k\|l /   
 C      \ /   \ /     \ /   \ /    
 C       o     o       o     o                
@@ -8136,18 +8195,18 @@ c----------------------------------------------------------------------------
       logical lprn
       common /kutas/ lprn
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-C                                              
-C      Parallel       Antiparallel
-C                                             
-C          o             o         
-C     \   /l\           /j\   /   
-C      \ /   \         /   \ /    
-C       o| o |         | o |o     
-C     \ j|/k\|      \  |/k\|l     
-C      \ /   \       \ /   \      
-C       o             o                      
-C       i             i                     
-C
+C                                                                              C
+C      Parallel       Antiparallel                                             C
+C                                                                              C
+C          o             o                                                     C
+C     \   /l\           /j\   /                                                C
+C      \ /   \         /   \ /                                                 C
+C       o| o |         | o |o                                                  C                
+C     \ j|/k\|      \  |/k\|l                                                  C
+C      \ /   \       \ /   \                                                   C
+C       o             o                                                        C
+C       i             i                                                        C 
+C                                                                              C           
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
 cd      write (2,*) 'eello6_graph2: i,',i,' j',j,' k',k,' l',l
 C AL 7/4/01 s1 would occur in the sixth-order moment, 
@@ -8318,18 +8377,18 @@ c----------------------------------------------------------------------------
       double precision vv(2),pizda(2,2),auxmat(2,2),auxvec(2)
       logical swap
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-C                                              
-C      Parallel       Antiparallel
-C                                             
-C          o             o         
-C         /l\   /   \   /j\       
-C        /   \ /     \ /   \      
-C       /| o |o       o| o |\     
-C       j|/k\|  /      |/k\|l /   
-C        /   \ /       /   \ /    
-C       /     o       /     o                
-C       i             i                     
-C
+C                                                                              C 
+C      Parallel       Antiparallel                                             C
+C                                                                              C
+C          o             o                                                     C 
+C         /l\   /   \   /j\                                                    C 
+C        /   \ /     \ /   \                                                   C
+C       /| o |o       o| o |\                                                  C
+C       j|/k\|  /      |/k\|l /                                                C
+C        /   \ /       /   \ /                                                 C
+C       /     o       /     o                                                  C
+C       i             i                                                        C
+C                                                                              C
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
 C
 C 4/7/01 AL Component s1 was removed, because it pertains to the respective 
@@ -8435,18 +8494,18 @@ c----------------------------------------------------------------------------
      & auxvec1(2),auxmat1(2,2)
       logical swap
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-C                                              
-C      Parallel       Antiparallel
-C                                             
-C          o             o         
-C         /l\   /   \   /j\       
-C        /   \ /     \ /   \      
-C       /| o |o       o| o |\     
-C     \ j|/k\|      \  |/k\|l     
-C      \ /   \       \ /   \      
-C       o     \       o     \                
-C       i             i                     
-C
+C                                                                              C                       
+C      Parallel       Antiparallel                                             C
+C                                                                              C
+C          o             o                                                     C
+C         /l\   /   \   /j\                                                    C
+C        /   \ /     \ /   \                                                   C
+C       /| o |o       o| o |\                                                  C
+C     \ j|/k\|      \  |/k\|l                                                  C
+C      \ /   \       \ /   \                                                   C 
+C       o     \       o     \                                                  C
+C       i             i                                                        C
+C                                                                              C 
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
 C
 C 4/7/01 AL Component s1 was removed, because it pertains to the respective 
index 375fcf4..7fec1e8 100644 (file)
@@ -8,6 +8,7 @@
       include 'COMMON.FFIELD'
       include 'COMMON.MD'
       include 'COMMON.IOUNITS'
+      include 'COMMON.SCCOR'
       external ufparm
       integer uiparm(1)
       double precision urparm(1)
@@ -263,10 +264,15 @@ C-------------------------------------------------------------------------
       include 'COMMON.MD'
       include 'COMMON.IOUNITS'
       include 'COMMON.TIME1'
+      include 'COMMON.SCCOR'
 c
 c This subrouting calculates total Cartesian coordinate gradient. 
 c The subroutine chainbuild_cart and energy MUST be called beforehand.
 c
+c        do i=1,nres
+c        write (iout,*) "przed sum_grad", gloc_sc(1,i,icg),gloc(i,icg)
+c        enddo
+
 #ifdef TIMING
       time00=MPI_Wtime()
 #endif
@@ -274,6 +280,9 @@ c
       call sum_gradient
 #ifdef TIMING
 #endif
+c        do i=1,nres
+c        write (iout,*) "checkgrad", gloc_sc(1,i,icg),gloc(i,icg)
+c        enddo     
 cd      write (iout,*) "After sum_gradient"
 cd      do i=1,nres-1
 cd        write (iout,*) i," gradc  ",(gradc(j,i,icg),j=1,3)
@@ -337,6 +346,7 @@ C-------------------------------------------------------------------------
       include 'COMMON.CHAIN'
       include 'COMMON.VAR'
       include 'COMMON.MD'
+      include 'COMMON.SCCOR'
 C
 C Initialize Cartesian-coordinate gradient
 C
@@ -374,6 +384,9 @@ C
           gradx(j,i,icg)=0.0d0
           gscloc(j,i)=0.0d0
           gsclocx(j,i)=0.0d0
+          do intertyp=1,3
+           gloc_sc(intertyp,i,icg)=0.0d0
+          enddo
         enddo
       enddo
 C
index 75c98de..7db117d 100644 (file)
@@ -564,6 +564,9 @@ C Partition local interactions
       iphi_end=iturn3_end+2
       iturn3_start=iturn3_start-1
       iturn3_end=iturn3_end-1
+      call int_bounds(nres-3,itau_start,itau_end) 
+      itau_start=itau_start+3
+      itau_end=itau_end+3
       call int_bounds(nres-3,iphi1_start,iphi1_end)
       iphi1_start=iphi1_start+3
       iphi1_end=iphi1_end+3
@@ -1090,6 +1093,8 @@ c        write (iout,*) "MPI_ROTAT2",MPI_ROTAT2
       idihconstr_end=ndih_constr
       iphid_start=iphi_start
       iphid_end=iphi_end-1
+      itau_start=4
+      itau_end=nres
       ibond_start=2
       ibond_end=nres-1
       ibondp_start=nnt+1
index 0528af7..73e8384 100644 (file)
@@ -13,9 +13,15 @@ c-------------------------------------------------------------
       include 'COMMON.INTERACT'
       include 'COMMON.MD'
       include 'COMMON.IOUNITS'
-      
+      include 'COMMON.SCCOR' 
 c   calculating dE/ddc1      
-       if (nres.lt.3) return
+       if (nres.lt.3) goto 18
+c       do i=1,nres
+c c       do intertyp=1,3
+c          write (iout,*) "przed tosyjnymi",i,intertyp,gcart(intertyp,i)
+c     &,gloc_sc(1,i,icg),gloc(i,icg)
+c          enddo
+c       enddo
        do j=1,3
          gcart(j,1)=gcart(j,1)+gloc(1,icg)*dphi(j,1,4)
      &     +gloc(nres-2,icg)*dtheta(j,1,3)      
@@ -113,6 +119,159 @@ c   The side-chain vector derivatives
             enddo
          endif     
        enddo                                                                                                                                                   
+c----------------------------------------------------------------------
+C INTERTYP=1 SC...Ca...Ca...Ca
+C INTERTYP=2 Ca...Ca...Ca...SC
+C INTERTYP=3 SC...Ca...Ca...SC
+c   calculating dE/ddc1      
+  18   continue
+c       do i=1,nres
+c       gloc(i,icg)=0.0D0
+c          write (iout,*) "poczotkoawy",i,gloc_sc(1,i,icg)
+c       enddo
+       if (nres.lt.2) return
+       if ((nres.lt.3).and.(itype(1).eq.10)) return
+       if ((itype(1).ne.10).and.(itype(1).ne.21)) then
+        do j=1,3
+cc Derviative was calculated for oposite vector of side chain therefore
+c there is "-" sign before gloc_sc
+         gxcart(j,1)=gxcart(j,1)-gloc_sc(1,0,icg)*
+     &     dtauangle(j,1,1,3)
+         gcart(j,1)=gcart(j,1)+gloc_sc(1,0,icg)*
+     &     dtauangle(j,1,2,3)
+          if ((itype(2).ne.10).and.(itype(2).ne.21)) then
+         gxcart(j,1)= gxcart(j,1)
+     &               -gloc_sc(3,0,icg)*dtauangle(j,3,1,3)
+         gcart(j,1)=gcart(j,1)+gloc_sc(3,0,icg)*
+     &       dtauangle(j,3,2,3)
+          endif
+       enddo
+       endif
+         if ((nres.ge.3).and.(itype(3).ne.10).and.(itype(3).ne.21))
+     & then
+         do j=1,3
+         gcart(j,1)=gcart(j,1)+gloc_sc(2,1,icg)*dtauangle(j,2,1,4)
+         enddo
+         endif
+c   As potetnial DO NOT depend on omicron anlge their derivative is
+c   ommited 
+c     &     +gloc_sc(intertyp,nres-2,icg)*dtheta(j,1,3)         
+     
+c     Calculating the remainder of dE/ddc2
+       do j=1,3
+         if((itype(2).ne.10).and.(itype(2).ne.21)) then
+           if (itype(1).ne.10) gxcart(j,2)=gxcart(j,2)+
+     &                         gloc_sc(3,0,icg)*dtauangle(j,3,3,3)
+        if ((itype(3).ne.10).and.(nres.ge.3).and.(itype(3).ne.21)) then
+           gxcart(j,2)=gxcart(j,2)-gloc_sc(3,1,icg)*dtauangle(j,3,1,4)
+cc                  the   - above is due to different vector direction
+           gcart(j,2)=gcart(j,2)+gloc_sc(3,1,icg)*dtauangle(j,3,2,4)
+          endif
+          if (nres.gt.3) then
+           gxcart(j,2)=gxcart(j,2)-gloc_sc(1,1,icg)*dtauangle(j,1,1,4)
+cc                  the   - above is due to different vector direction
+           gcart(j,2)=gcart(j,2)+gloc_sc(1,1,icg)*dtauangle(j,1,2,4)
+c          write(iout,*) gloc_sc(1,1,icg),dtauangle(j,1,2,4),"gcart"
+c           write(iout,*) gloc_sc(1,1,icg),dtauangle(j,1,1,4),"gx"
+          endif
+         endif
+         if ((itype(1).ne.10).and.(itype(1).ne.21)) then
+          gcart(j,2)=gcart(j,2)+gloc_sc(1,0,icg)*dtauangle(j,1,3,3)
+c           write(iout,*)  gloc_sc(1,0,icg),dtauangle(j,1,3,3)
+         endif
+         if ((itype(3).ne.10).and.(nres.ge.3)) then
+          gcart(j,2)=gcart(j,2)+gloc_sc(2,1,icg)*dtauangle(j,2,2,4)
+c           write(iout,*) gloc_sc(2,1,icg),dtauangle(j,2,2,4)
+         endif
+         if ((itype(4).ne.10).and.(nres.ge.4)) then
+          gcart(j,2)=gcart(j,2)+gloc_sc(2,2,icg)*dtauangle(j,2,1,5)
+c           write(iout,*) gloc_sc(2,2,icg),dtauangle(j,2,1,5)
+         endif
+
+c      write(iout,*) gcart(j,2),itype(2),itype(1),itype(3), "gcart2"
+       enddo
+c    If there are more than five residues
+      if(nres.ge.5) then                          
+        do i=3,nres-2
+         do j=1,3
+c          write(iout,*) "before", gcart(j,i)
+          if (itype(i).ne.10) then
+          gxcart(j,i)=gxcart(j,i)+gloc_sc(2,i-2,icg)
+     &    *dtauangle(j,2,3,i+1)
+     &    -gloc_sc(1,i-1,icg)*dtauangle(j,1,1,i+2)
+          gcart(j,i)=gcart(j,i)+gloc_sc(1,i-1,icg)
+     &    *dtauangle(j,1,2,i+2)
+c                   write(iout,*) "new",j,i,
+c     &  gcart(j,i),gloc_sc(1,i-1,icg),dtauangle(j,1,2,i+2)
+
+          if (itype(i-1).ne.10) then
+           gxcart(j,i)=gxcart(j,i)+gloc_sc(3,i-2,icg)
+     &*dtauangle(j,3,3,i+1)
+          endif
+          if (itype(i+1).ne.10) then
+           gxcart(j,i)=gxcart(j,i)-gloc_sc(3,i-1,icg)
+     &*dtauangle(j,3,1,i+2)
+           gcart(j,i)=gcart(j,i)+gloc_sc(3,i-1,icg)
+     &*dtauangle(j,3,2,i+2)
+          endif
+          endif
+          if (itype(i-1).ne.10) then
+           gcart(j,i)=gcart(j,i)+gloc_sc(1,i-2,icg)*
+     &     dtauangle(j,1,3,i+1)
+          endif
+          if (itype(i+1).ne.10) then
+           gcart(j,i)=gcart(j,i)+gloc_sc(2,i-1,icg)*
+     &     dtauangle(j,2,2,i+2)
+c          write(iout,*) "numer",i,gloc_sc(2,i-1,icg),
+c     &    dtauangle(j,2,2,i+2)
+          endif
+          if (itype(i+2).ne.10) then
+           gcart(j,i)=gcart(j,i)+gloc_sc(2,i,icg)*
+     &     dtauangle(j,2,1,i+3)
+          endif
+         enddo
+        enddo
+      endif    
+c  Setting dE/ddnres-1       
+      if(nres.ge.4) then
+         do j=1,3
+         if ((itype(nres-1).ne.10).and.(itype(nres-1).ne.21)) then
+         gxcart(j,nres-1)=gxcart(j,nres-1)+gloc_sc(2,nres-3,icg)
+     &    *dtauangle(j,2,3,nres)
+c          write (iout,*) "gxcart(nres-1)", gloc_sc(2,nres-3,icg),
+c     &     dtauangle(j,2,3,nres), gxcart(j,nres-1)
+         if (itype(nres-2).ne.10) then
+        gxcart(j,nres-1)=gxcart(j,nres-1)+gloc_sc(3,nres-3,icg)
+     &    *dtauangle(j,3,3,nres)
+          endif
+         if ((itype(nres).ne.10).and.(itype(nres).ne.21)) then
+        gxcart(j,nres-1)=gxcart(j,nres-1)-gloc_sc(3,nres-2,icg)
+     &    *dtauangle(j,3,1,nres+1)
+        gcart(j,nres-1)=gcart(j,nres-1)+gloc_sc(3,nres-2,icg)
+     &    *dtauangle(j,3,2,nres+1)
+          endif
+         endif
+         if ((itype(nres-2).ne.10).and.(itype(nres-2).ne.21)) then
+            gcart(j,nres-1)=gcart(j,nres-1)+gloc_sc(1,nres-3,icg)*
+     &   dtauangle(j,1,3,nres)
+         endif
+          if ((itype(nres).ne.10).and.(itype(nres).ne.21)) then
+            gcart(j,nres-1)=gcart(j,nres-1)+gloc_sc(2,nres-2,icg)*
+     &     dtauangle(j,2,2,nres+1)
+c           write (iout,*) "gcart(nres-1)", gloc_sc(2,nres-2,icg),
+c     &     dtauangle(j,2,2,nres+1), itype(nres-1),itype(nres)
+           endif
+         enddo
+      endif 
+c  Settind dE/ddnres       
+       if ((nres.ge.3).and.(itype(nres).ne.10))then
+       do j=1,3
+        gxcart(j,nres)=gxcart(j,nres)+gloc_sc(3,nres-2,icg)
+     & *dtauangle(j,3,3,nres+1)+gloc_sc(2,nres-2,icg)
+     & *dtauangle(j,2,3,nres+1)
+        enddo
+       endif
+c   The side-chain vector derivatives
       return
       end      
        
index 5fea875..c220540 100644 (file)
@@ -12,6 +12,7 @@
       include 'COMMON.DERIV'
       include 'COMMON.IOUNITS'
       include 'COMMON.LOCAL'
+      include 'COMMON.SCCOR'
       double precision dcostheta(3,2,maxres),
      & dcosphi(3,3,maxres),dsinphi(3,3,maxres),
      & dcosalpha(3,3,maxres),dcosomega(3,3,maxres),
@@ -44,6 +45,44 @@ c We need dtheta(:,:,i-1) to compute dphi(:,:,i)
           dtheta(j,2,i)=-1/sint*dcostheta(j,2,i)     
         enddo
       enddo
+
+#if defined(MPI) && defined(PARINTDER)
+c We need dtheta(:,:,i-1) to compute dphi(:,:,i)
+      do i=max0(ithet_start-1,3),ithet_end
+#else
+      do i=3,nres
+#endif
+      if ((itype(i-1).ne.10).and.(itype(i-1).ne.21)) then
+        cost1=dcos(omicron(1,i))
+       sint1=sqrt(1-cost1*cost1)
+        cost2=dcos(omicron(2,i))
+        sint2=sqrt(1-cost2*cost2)
+        do j=1,3
+CC Calculate derivative over first omicron (Cai-2,Cai-1,SCi-1) 
+          dcosomicron(j,1,1,i)=-(dc_norm(j,i-1+nres)+
+     &    cost1*dc_norm(j,i-2))/
+     &   vbld(i-1)
+          domicron(j,1,1,i)=-1/sint1*dcosomicron(j,1,1,i)     
+          dcosomicron(j,1,2,i)=-(dc_norm(j,i-2)
+     &    +cost1*(dc_norm(j,i-1+nres)))/
+     &   vbld(i-1+nres)
+          domicron(j,1,2,i)=-1/sint1*dcosomicron(j,1,2,i)  
+CC Calculate derivative over second omicron Sci-1,Cai-1 Cai
+CC Looks messy but better than if in loop
+          dcosomicron(j,2,1,i)=-(-dc_norm(j,i-1+nres)
+     &    +cost2*dc_norm(j,i-1))/
+     &    vbld(i)
+          domicron(j,2,1,i)=-1/sint2*dcosomicron(j,2,1,i)
+          dcosomicron(j,2,2,i)=-(dc_norm(j,i-1)
+     &     +cost2*(-dc_norm(j,i-1+nres)))/
+     &    vbld(i-1+nres)
+c          write(iout,*) "vbld", i,itype(i),vbld(i-1+nres)
+          domicron(j,2,2,i)=-1/sint2*dcosomicron(j,2,2,i)   
+        enddo
+       endif
+      enddo
+
+
       
 c Derivatives of phi:
 c If phi is 0 or 180 degrees, then the formulas 
@@ -109,6 +148,226 @@ c   Obtaining the gamma derivatives from cosine derivative
          enddo
         endif                                                                                           
       enddo
+
+Calculate derivative of Tauangle
+#ifdef PARINTDER
+      do i=itau_start,itau_end
+#else
+      do i=3,nres
+#endif
+       if ((itype(i-2).eq.21).or.(itype(i-2).eq.10)) cycle
+cc dtauangle(j,intertyp,dervityp,residue number)
+cc INTERTYP=1 SC...Ca...Ca..Ca
+c the conventional case
+        sint=dsin(theta(i))
+        sint1=dsin(omicron(2,i-1))
+        sing=dsin(tauangle(1,i))
+        cost=dcos(theta(i))
+        cost1=dcos(omicron(2,i-1))
+        cosg=dcos(tauangle(1,i))
+        do j=1,3
+        dc_norm2(j,i-2+nres)=-dc_norm(j,i-2+nres)
+cc       write(iout,*) dc_norm2(j,i-2+nres),"dcnorm"
+        enddo
+        scalp=scalar(dc_norm2(1,i-2+nres),dc_norm(1,i-1))
+        fac0=1.0d0/(sint1*sint)
+        fac1=cost*fac0
+        fac2=cost1*fac0
+        fac3=cosg*cost1/(sint1*sint1)
+        fac4=cosg*cost/(sint*sint)
+cc         write(iout,*) "faki",fac0,fac1,fac2,fac3,fac4
+c    Obtaining the gamma derivatives from sine derivative                                
+       if (tauangle(1,i).gt.-pi4.and.tauangle(1,i).le.pi4.or.
+     &     tauangle(1,i).gt.pi34.and.tauangle(1,i).le.pi.or.
+     &     tauangle(1,i).gt.-pi.and.tauangle(1,i).le.-pi34) then
+         call vecpr(dc_norm(1,i-1),dc_norm(1,i-2),vp1)
+         call vecpr(dc_norm2(1,i-2+nres),dc_norm(1,i-1),vp2)
+         call vecpr(dc_norm2(1,i-2+nres),dc_norm(1,i-2),vp3)
+        do j=1,3
+            ctgt=cost/sint
+            ctgt1=cost1/sint1
+            cosg_inv=1.0d0/cosg
+            dsintau(j,1,1,i)=-sing*ctgt1*domicron(j,2,2,i-1)
+     &-(fac0*vp1(j)+sing*(dc_norm2(j,i-2+nres)))
+     & *vbld_inv(i-2+nres)
+            dtauangle(j,1,1,i)=cosg_inv*dsintau(j,1,1,i)
+            dsintau(j,1,2,i)=
+     &        -sing*(ctgt1*domicron(j,2,1,i-1)+ctgt*dtheta(j,1,i))
+     &        -(fac0*vp2(j)+sing*dc_norm(j,i-2))*vbld_inv(i-1)
+c            write(iout,*) "dsintau", dsintau(j,1,2,i)
+            dtauangle(j,1,2,i)=cosg_inv*dsintau(j,1,2,i)
+c Bug fixed 3/24/05 (AL)
+            dsintau(j,1,3,i)=-sing*ctgt*dtheta(j,2,i)
+     &        +(fac0*vp3(j)-sing*dc_norm(j,i-1))*vbld_inv(i)
+c     &        +(fac0*vp3(j)-sing*dc_norm(j,i-1))*vbld_inv(i-1)
+            dtauangle(j,1,3,i)=cosg_inv*dsintau(j,1,3,i)
+         enddo                                          
+c   Obtaining the gamma derivatives from cosine derivative
+        else
+           do j=1,3
+           dcostau(j,1,1,i)=fac1*dcosomicron(j,2,2,i-1)+fac3*
+     &     dcosomicron(j,2,2,i-1)-fac0*(dc_norm(j,i-1)-scalp*
+     &     (dc_norm2(j,i-2+nres)))/vbld(i-2+nres)
+           dtauangle(j,1,1,i)=-1/sing*dcostau(j,1,1,i)
+           dcostau(j,1,2,i)=fac1*dcosomicron(j,2,1,i-1)+fac2*
+     &     dcostheta(j,1,i)+fac3*dcosomicron(j,2,1,i-1)+fac4*
+     &     dcostheta(j,1,i)
+           dtauangle(j,1,2,i)=-1/sing*dcostau(j,1,2,i)
+           dcostau(j,1,3,i)=fac2*dcostheta(j,2,i)+fac4*
+     &     dcostheta(j,2,i)-fac0*(-dc_norm(j,i-2+nres)-scalp*
+     &     dc_norm(j,i-1))/vbld(i)
+           dtauangle(j,1,3,i)=-1/sing*dcostau(j,1,3,i)
+c         write (iout,*) "else",i
+         enddo
+        endif
+c        do k=1,3                 
+c        write(iout,*) "tu",i,k,(dtauangle(j,1,k,i),j=1,3)        
+c        enddo                
+      enddo
+CC Second case Ca...Ca...Ca...SC
+#ifdef PARINTDER
+      do i=itau_start,itau_end
+#else
+      do i=4,nres
+#endif
+       if ((itype(i-1).eq.21).or.(itype(i-1).eq.10)) cycle
+c the conventional case
+        sint=dsin(omicron(1,i))
+        sint1=dsin(theta(i-1))
+        sing=dsin(tauangle(2,i))
+        cost=dcos(omicron(1,i))
+        cost1=dcos(theta(i-1))
+        cosg=dcos(tauangle(2,i))
+c        do j=1,3
+c        dc_norm2(j,i-1+nres)=-dc_norm(j,i-1+nres)
+c        enddo
+        scalp=scalar(dc_norm(1,i-3),dc_norm(1,i-1+nres))
+        fac0=1.0d0/(sint1*sint)
+        fac1=cost*fac0
+        fac2=cost1*fac0
+        fac3=cosg*cost1/(sint1*sint1)
+        fac4=cosg*cost/(sint*sint)
+c    Obtaining the gamma derivatives from sine derivative                                
+       if (tauangle(2,i).gt.-pi4.and.tauangle(2,i).le.pi4.or.
+     &     tauangle(2,i).gt.pi34.and.tauangle(2,i).le.pi.or.
+     &     tauangle(2,i).gt.-pi.and.tauangle(2,i).le.-pi34) then
+         call vecpr(dc_norm2(1,i-1+nres),dc_norm(1,i-2),vp1)
+         call vecpr(dc_norm(1,i-3),dc_norm(1,i-1+nres),vp2)
+         call vecpr(dc_norm(1,i-3),dc_norm(1,i-2),vp3)
+        do j=1,3
+            ctgt=cost/sint
+            ctgt1=cost1/sint1
+            cosg_inv=1.0d0/cosg
+            dsintau(j,2,1,i)=-sing*ctgt1*dtheta(j,1,i-1)
+     &        +(fac0*vp1(j)-sing*dc_norm(j,i-3))*vbld_inv(i-2)
+c       write(iout,*) i,j,dsintau(j,2,1,i),sing*ctgt1*dtheta(j,1,i-1),
+c     &fac0*vp1(j),sing*dc_norm(j,i-3),vbld_inv(i-2),"dsintau(2,1)"
+            dtauangle(j,2,1,i)=cosg_inv*dsintau(j,2,1,i)
+            dsintau(j,2,2,i)=
+     &        -sing*(ctgt1*dtheta(j,2,i-1)+ctgt*domicron(j,1,1,i))
+     &        -(fac0*vp2(j)+sing*dc_norm(j,i-2))*vbld_inv(i-1)
+c            write(iout,*) "sprawdzenie",i,j,sing*ctgt1*dtheta(j,2,i-1),
+c     & sing*ctgt*domicron(j,1,2,i),
+c     & (fac0*vp2(j)+sing*dc_norm(j,i-2))*vbld_inv(i-1)
+            dtauangle(j,2,2,i)=cosg_inv*dsintau(j,2,2,i)
+c Bug fixed 3/24/05 (AL)
+            dsintau(j,2,3,i)=-sing*ctgt*domicron(j,1,2,i)
+     &       +(fac0*vp3(j)-sing*dc_norm(j,i-1+nres))*vbld_inv(i-1+nres)
+c     &        +(fac0*vp3(j)-sing*dc_norm(j,i-1))*vbld_inv(i-1)
+            dtauangle(j,2,3,i)=cosg_inv*dsintau(j,2,3,i)
+         enddo                                          
+c   Obtaining the gamma derivatives from cosine derivative
+        else
+           do j=1,3
+           dcostau(j,2,1,i)=fac1*dcostheta(j,1,i-1)+fac3*
+     &     dcostheta(j,1,i-1)-fac0*(dc_norm(j,i-1+nres)-scalp*
+     &     dc_norm(j,i-3))/vbld(i-2)
+           dtauangle(j,2,1,i)=-1/sing*dcostau(j,2,1,i)
+           dcostau(j,2,2,i)=fac1*dcostheta(j,2,i-1)+fac2*
+     &     dcosomicron(j,1,1,i)+fac3*dcostheta(j,2,i-1)+fac4*
+     &     dcosomicron(j,1,1,i)
+           dtauangle(j,2,2,i)=-1/sing*dcostau(j,2,2,i)
+           dcostau(j,2,3,i)=fac2*dcosomicron(j,1,2,i)+fac4*
+     &     dcosomicron(j,1,2,i)-fac0*(dc_norm(j,i-3)-scalp*
+     &     dc_norm(j,i-1+nres))/vbld(i-1+nres)
+           dtauangle(j,2,3,i)=-1/sing*dcostau(j,2,3,i)
+c        write(iout,*) i,j,"else", dtauangle(j,2,3,i) 
+         enddo
+        endif                                                                                            
+      enddo
+
+
+CCC third case SC...Ca...Ca...SC
+#ifdef PARINTDER
+
+      do i=itau_start,itau_end
+#else
+      do i=3,nres
+#endif
+c the conventional case
+      if ((itype(i-1).eq.21).or.(itype(i-1).eq.10).or.
+     &(itype(i-2).eq.21).or.(itype(i-2).eq.10)) cycle
+        sint=dsin(omicron(1,i))
+        sint1=dsin(omicron(2,i-1))
+        sing=dsin(tauangle(3,i))
+        cost=dcos(omicron(1,i))
+        cost1=dcos(omicron(2,i-1))
+        cosg=dcos(tauangle(3,i))
+        do j=1,3
+        dc_norm2(j,i-2+nres)=-dc_norm(j,i-2+nres)
+c        dc_norm2(j,i-1+nres)=-dc_norm(j,i-1+nres)
+        enddo
+        scalp=scalar(dc_norm2(1,i-2+nres),dc_norm(1,i-1+nres))
+        fac0=1.0d0/(sint1*sint)
+        fac1=cost*fac0
+        fac2=cost1*fac0
+        fac3=cosg*cost1/(sint1*sint1)
+        fac4=cosg*cost/(sint*sint)
+c    Obtaining the gamma derivatives from sine derivative                                
+       if (tauangle(3,i).gt.-pi4.and.tauangle(3,i).le.pi4.or.
+     &     tauangle(3,i).gt.pi34.and.tauangle(3,i).le.pi.or.
+     &     tauangle(3,i).gt.-pi.and.tauangle(3,i).le.-pi34) then
+         call vecpr(dc_norm(1,i-1+nres),dc_norm(1,i-2),vp1)
+         call vecpr(dc_norm2(1,i-2+nres),dc_norm(1,i-1+nres),vp2)
+         call vecpr(dc_norm2(1,i-2+nres),dc_norm(1,i-2),vp3)
+        do j=1,3
+            ctgt=cost/sint
+            ctgt1=cost1/sint1
+            cosg_inv=1.0d0/cosg
+            dsintau(j,3,1,i)=-sing*ctgt1*domicron(j,2,2,i-1)
+     &        -(fac0*vp1(j)-sing*dc_norm(j,i-2+nres))
+     &        *vbld_inv(i-2+nres)
+            dtauangle(j,3,1,i)=cosg_inv*dsintau(j,3,1,i)
+            dsintau(j,3,2,i)=
+     &        -sing*(ctgt1*domicron(j,2,1,i-1)+ctgt*domicron(j,1,1,i))
+     &        -(fac0*vp2(j)+sing*dc_norm(j,i-2))*vbld_inv(i-1)
+            dtauangle(j,3,2,i)=cosg_inv*dsintau(j,3,2,i)
+c Bug fixed 3/24/05 (AL)
+            dsintau(j,3,3,i)=-sing*ctgt*domicron(j,1,2,i)
+     &        +(fac0*vp3(j)-sing*dc_norm(j,i-1+nres))
+     &        *vbld_inv(i-1+nres)
+c     &        +(fac0*vp3(j)-sing*dc_norm(j,i-1))*vbld_inv(i-1)
+            dtauangle(j,3,3,i)=cosg_inv*dsintau(j,3,3,i)
+         enddo                                          
+c   Obtaining the gamma derivatives from cosine derivative
+        else
+           do j=1,3
+           dcostau(j,3,1,i)=fac1*dcosomicron(j,2,2,i-1)+fac3*
+     &     dcosomicron(j,2,2,i-1)-fac0*(dc_norm(j,i-1+nres)-scalp*
+     &     dc_norm2(j,i-2+nres))/vbld(i-2+nres)
+           dtauangle(j,3,1,i)=-1/sing*dcostau(j,3,1,i)
+           dcostau(j,3,2,i)=fac1*dcosomicron(j,2,1,i-1)+fac2*
+     &     dcosomicron(j,1,1,i)+fac3*dcosomicron(j,2,1,i-1)+fac4*
+     &     dcosomicron(j,1,1,i)
+           dtauangle(j,3,2,i)=-1/sing*dcostau(j,3,2,i)
+           dcostau(j,3,3,i)=fac2*dcosomicron(j,1,2,i)+fac4*
+     &     dcosomicron(j,1,2,i)-fac0*(dc_norm2(j,i-2+nres)-scalp*
+     &     dc_norm(j,i-1+nres))/vbld(i-1+nres)
+           dtauangle(j,3,3,i)=-1/sing*dcostau(j,3,3,i)
+c          write(iout,*) "else",i 
+         enddo
+        endif                                                                                            
+      enddo
 #ifdef CRYST_SC
 c   Derivatives of side-chain angles alpha and omega
 #if defined(MPI) && defined(PARINTDER)
@@ -199,12 +458,12 @@ c   obtaining the derivatives of omega from cosines
 #if defined(MPI) && defined(PARINTDER)
       if (nfgtasks.gt.1) then
 #ifdef DEBUG
-cd      write (iout,*) "Gather dtheta"
+       write (iout,*) "Gather dtheta"
 cd      call flush(iout)
-      write (iout,*) "dtheta before gather"
-      do i=1,nres
-        write (iout,'(i3,3(3f8.5,3x))') i,((dtheta(j,k,i),k=1,3),j=1,2)
-      enddo
+c      write (iout,*) "dtheta before gather"
+c      do i=1,nres
+c        write (iout,'(i3,3(3f8.5,3x))') i,((dtheta(j,k,i),k=1,3),j=1,2)
+c      enddo
 #endif
       call MPI_Gatherv(dtheta(1,1,ithet_start),ithet_count(fg_rank),
      &  MPI_THET,dtheta(1,1,1),ithet_count(0),ithet_displ(0),MPI_THET,
index 6ea2632..9dbe64e 100644 (file)
@@ -56,6 +56,7 @@ Cd      write (iout,*) i,iii,(nn(j),j=1,nmap)
           enddo ! k
         enddo ! j
         call chainbuild
+        call int_from_cart1(.false.)
         if (minim) then 
          call geom_to_var(nvar,x)
          call minimize(etot,x,iretcode,nfun)
index be5f8b8..4729ca5 100644 (file)
@@ -553,33 +553,59 @@ C
       enddo
       endif
 #endif
+C Read of Side-chain backbone correlation parameters
+C Modified 11 May 2012 by Adasko
+CCC
 C
-C 5/21/07 (AL) Read coefficients of the backbone-local sidechain-local
-C         correlation energies.
-C
-      read (isccor,*,end=119,err=119) nterm_sccor
-      do i=1,20
-       do j=1,20
-          read (isccor,'(a)')
-         do k=1,nterm_sccor
-           read (isccor,*,end=119,err=119) kk,v1sccor(k,i,j),
-     &        v2sccor(k,i,j) 
+      read (isccor,*,end=113,err=113) nsccortyp
+      read (isccor,*,end=113,err=113) (isccortyp(i),i=1,ntyp)
+c      write (iout,*) 'ntortyp',ntortyp
+      maxinter=3
+cc maxinter is maximum interaction sites
+      do l=1,maxinter    
+      do i=1,nsccortyp
+       do j=1,nsccortyp
+         read (isccor,*,end=113,err=113) nterm_sccor(i,j),nlor_sccor(i,j)
+          v0ijsccor=0.0d0
+          si=-1.0d0
+  
+         do k=1,nterm_sccor(i,j)
+           read (isccor,*,end=113,err=113) kk,v1sccor(k,l,i,j)
+     &    ,v2sccor(k,l,i,j) 
+            v0ijsccor=v0ijsccor+si*v1sccor(k,l,i,j)
+            si=-si
+          enddo
+         do k=1,nlor_sccor(i,j)
+            read (isccor,*,end=113,err=113) kk,vlor1sccor(k,i,j),
+     &        vlor2sccor(k,i,j),vlor3sccor(k,i,j) 
+            v0ijsccor=v0ijsccor+vlor1sccor(k,i,j)/
+     &(1+vlor3sccor(k,i,j)**2)
           enddo
+          v0sccor(i,j)=v0ijsccor
         enddo
       enddo
+      enddo
       close (isccor)
+      
       if (lprint) then
-       write (iout,'(/a/)') 'Torsional constants of SCCORR:'
-       do i=1,20
-         do j=1,20
+       write (iout,'(/a/)') 'Torsional constants:'
+       do i=1,nsccortyp
+         do j=1,nsccortyp
             write (iout,*) 'ityp',i,' jtyp',j
-            do k=1,nterm_sccor
-             write (iout,'(2(1pe15.5))') v1sccor(k,i,j),v2sccor(k,i,j)
+            write (iout,*) 'Fourier constants'
+            do k=1,nterm_sccor(i,j)
+      write (iout,'(2(1pe15.5))') v1sccor(k,l,i,j),v2sccor(k,l,i,j)
+            enddo
+            write (iout,*) 'Lorenz constants'
+            do k=1,nlor_sccor(i,j)
+             write (iout,'(3(1pe15.5))') 
+     &         vlor1sccor(k,i,j),vlor2sccor(k,i,j),vlor3sccor(k,i,j)
             enddo
           enddo
         enddo
       endif
 C
+C
 C 9/18/99 (AL) Read coefficients of the Fourier expansion of the local
 C         interaction energy of the Gly, Ala, and Pro prototypes.
 C
index 34b73d9..47850c2 100644 (file)
@@ -2086,38 +2086,38 @@ C Get parameter filenames and open the parameter files.
       open (isidep,file=sidename,status='old')
 #else
       open(1,file=pref_orig(:ilen(pref_orig))//'.inp',status='old',
-     &  readonly)
+     &action='read')
        open (9,file=prefix(:ilen(prefix))//'.intin',status='unknown')
 C      open (18,file=prefix(:ilen(prefix))//'.entin',status='unknown')
 C Get parameter filenames and open the parameter files.
       call getenv_loc('BONDPAR',bondname)
-      open (ibond,file=bondname,status='old',readonly)
+      open (ibond,file=bondname,status='old',action='read')
       call getenv_loc('THETPAR',thetname)
-      open (ithep,file=thetname,status='old',readonly)
+      open (ithep,file=thetname,status='old',action='read')
 #ifndef CRYST_THETA
       call getenv_loc('THETPARPDB',thetname_pdb)
       print *,"thetname_pdb ",thetname_pdb
-      open (ithep_pdb,file=thetname_pdb,status='old',readonly)
+      open (ithep_pdb,file=thetname_pdb,status='old',action='read')
       print *,ithep_pdb," opened"
 #endif
       call getenv_loc('ROTPAR',rotname)
-      open (irotam,file=rotname,status='old',readonly)
+      open (irotam,file=rotname,status='old',action='read')
 #ifndef CRYST_SC
       call getenv_loc('ROTPARPDB',rotname_pdb)
-      open (irotam_pdb,file=rotname_pdb,status='old',readonly)
+      open (irotam_pdb,file=rotname_pdb,status='old',action='read')
 #endif
       call getenv_loc('TORPAR',torname)
-      open (itorp,file=torname,status='old',readonly)
+      open (itorp,file=torname,status='old',action='read')
       call getenv_loc('TORDPAR',tordname)
-      open (itordp,file=tordname,status='old',readonly)
+      open (itordp,file=tordname,status='old',action='read')
       call getenv_loc('SCCORPAR',sccorname)
-      open (isccor,file=sccorname,status='old',readonly)
+      open (isccor,file=sccorname,status='old',action='read')
       call getenv_loc('FOURIER',fouriername)
-      open (ifourier,file=fouriername,status='old',readonly)
+      open (ifourier,file=fouriername,status='old',action='read')
       call getenv_loc('ELEPAR',elename)
-      open (ielep,file=elename,status='old',readonly)
+      open (ielep,file=elename,status='old',action='read')
       call getenv_loc('SIDEPAR',sidename)
-      open (isidep,file=sidename,status='old',readonly)
+      open (isidep,file=sidename,status='old',action='read')
 #endif
 #ifndef OLDSCP
 C
@@ -2132,7 +2132,7 @@ C
 #elif (defined G77)
       open (iscpp,file=scpname,status='old')
 #else
-      open (iscpp,file=scpname,status='old',readonly)
+      open (iscpp,file=scpname,status='old',action='read')
 #endif
 #endif
       call getenv_loc('PATTERN',patname)
@@ -2143,7 +2143,7 @@ C
 #elif (defined G77)
       open (icbase,file=patname,status='old')
 #else
-      open (icbase,file=patname,status='old',readonly)
+      open (icbase,file=patname,status='old',action='read')
 #endif
 #ifdef MPI
 C Open output file only for CG processes
@@ -2198,6 +2198,7 @@ c      print *,"Processor",myrank," fg_rank",fg_rank
 #if defined(AIX) || defined(PGI)
       if (me.eq.king .or. .not. out1file) 
      &   open(iout,file=outname,status='unknown')
+c#define DEBUG
 #ifdef DEBUG
       if (fg_rank.gt.0) then
         write (liczba,'(i3.3)') myrank/nfgtasks
@@ -2206,6 +2207,7 @@ c      print *,"Processor",myrank," fg_rank",fg_rank
      &   status='unknown')
       endif
 #endif
+c#undef DEBUG
       if(me.eq.king) then
        open(igeom,file=intname,status='unknown',position='append')
        open(ipdb,file=pdbname,status='unknown')
@@ -2217,14 +2219,17 @@ c1out       open(iout,file=outname,status='unknown')
 #else
       if (me.eq.king .or. .not.out1file)
      &    open(iout,file=outname,status='unknown')
+c#define DEBUG
 #ifdef DEBUG
       if (fg_rank.gt.0) then
+        print "Processor",fg_rank," opening output file"
         write (liczba,'(i3.3)') myrank/nfgtasks
         write (ll,'(bz,i3.3)') fg_rank
         open(iout,file="debug"//liczba(:ilen(liczba))//"."//ll,
      &   status='unknown')
       endif
 #endif
+c#undef DEBUG
       if(me.eq.king) then
        open(igeom,file=intname,status='unknown',access='append')
        open(ipdb,file=pdbname,status='unknown')
diff --git a/source/unres/src_MD/xdrf/Makefile b/source/unres/src_MD/xdrf/Makefile
deleted file mode 100644 (file)
index 02c29f6..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-# This make file is part of the xdrf package.
-#
-# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-#
-# 2006 modified by Cezary Czaplewski
-
-# Set C compiler and flags for ARCH
-CC      = gcc
-CFLAGS         = -O 
-
-M4     = m4
-M4FILE = underscore.m4
-
-libxdrf.a:  libxdrf.o ftocstr.o
-       ar cr libxdrf.a $?
-
-clean:
-       rm -f libxdrf.o ftocstr.o libxdrf.a 
-
-ftocstr.o: ftocstr.c
-       $(CC) $(CFLAGS) -c ftocstr.c
-
-libxdrf.o:     libxdrf.m4 $(M4FILE)
-       $(M4) $(M4FILE) libxdrf.m4 > libxdrf.c
-       $(CC) $(CFLAGS) -c libxdrf.c
-       rm -f libxdrf.c
-
diff --git a/source/unres/src_MD/xdrf/Makefile_jubl b/source/unres/src_MD/xdrf/Makefile_jubl
deleted file mode 100644 (file)
index 8dc35cf..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-# This make file is part of the xdrf package.
-#
-# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-#
-# 2006 modified by Cezary Czaplewski
-
-# Set C compiler and flags for ARCH
-BGLSYS = /bgl/BlueLight/ppcfloor/bglsys
-
-CC = /usr/bin/blrts_xlc
-CPPC = /usr/bin/blrts_xlc
-
-CFLAGS= -O2 -I$(BGLSYS)/include -L$(BGLSYS)/lib -qarch=440d -qtune=440
-
-M4     = m4
-M4FILE = RS6K.m4
-
-libxdrf.a:  libxdrf.o ftocstr.o xdr_array.o  xdr.o  xdr_float.o  xdr_stdio.o
-       ar cr libxdrf.a $?
-
-clean:
-       rm -f *.o libxdrf.a 
-
-ftocstr.o: ftocstr.c
-       $(CC) $(CFLAGS) -c ftocstr.c
-
-libxdrf.o:     libxdrf.m4 $(M4FILE)
-       $(M4) $(M4FILE) libxdrf.m4 > libxdrf.c
-       $(CC) $(CFLAGS) -c libxdrf.c
-#      rm -f libxdrf.c
-
diff --git a/source/unres/src_MD/xdrf/Makefile_linux b/source/unres/src_MD/xdrf/Makefile_linux
deleted file mode 100644 (file)
index f03276e..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-# This make file is part of the xdrf package.
-#
-# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-#
-# 2006 modified by Cezary Czaplewski
-
-# Set C compiler and flags for ARCH
-CC      = cc
-CFLAGS         = -O 
-
-M4     = m4
-M4FILE = underscore.m4
-
-libxdrf.a:  libxdrf.o ftocstr.o
-       ar cr libxdrf.a $?
-
-clean:
-       rm -f libxdrf.o ftocstr.o libxdrf.a 
-
-ftocstr.o: ftocstr.c
-       $(CC) $(CFLAGS) -c ftocstr.c
-
-libxdrf.o:     libxdrf.m4 $(M4FILE)
-       $(M4) $(M4FILE) libxdrf.m4 > libxdrf.c
-       $(CC) $(CFLAGS) -c libxdrf.c
-       rm -f libxdrf.c
-
diff --git a/source/unres/src_MD/xdrf/RS6K.m4 b/source/unres/src_MD/xdrf/RS6K.m4
deleted file mode 100644 (file)
index 0331d97..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-divert(-1)
-undefine(`len')
-#
-# do nothing special to FORTRAN function names
-#
-define(`FUNCTION',`$1')
-#
-# FORTRAN character strings are passed as follows:
-# a pointer to the base of the string is passed in the normal
-# argument list, and the length is passed by value as an extra
-# argument, after all of the other arguments.
-#
-define(`ARGS',`($1`'undivert(1))')
-define(`SAVE',`divert(1)$1`'divert(0)')
-define(`STRING_ARG',`$1_ptr`'SAVE(`, $1_len')')
-define(`STRING_ARG_DECL',`char * $1_ptr; int $1_len')
-define(`STRING_LEN',`$1_len')
-define(`STRING_PTR',`$1_ptr')
-divert(0)
-
diff --git a/source/unres/src_MD/xdrf/ftocstr.c b/source/unres/src_MD/xdrf/ftocstr.c
deleted file mode 100644 (file)
index ed2113f..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-int ftocstr(ds, dl, ss, sl)
-    char *ds, *ss;      /* dst, src ptrs */
-    int dl;             /* dst max len */
-    int sl;             /* src len */
-{
-    char *p;
-
-    for (p = ss + sl; --p >= ss && *p == ' '; ) ;
-    sl = p - ss + 1;
-    dl--;
-    ds[0] = 0;
-    if (sl > dl)
-        return 1;
-    while (sl--)
-       (*ds++ = *ss++);
-    *ds = '\0';
-    return 0;
-}
-
-
-int ctofstr(ds, dl, ss)
-       char *ds;               /* dest space */
-       int dl;                 /* max dest length */
-       char *ss;               /* src string (0-term) */
-{
-    while (dl && *ss) {
-       *ds++ = *ss++;
-       dl--;
-    }
-    while (dl--)
-       *ds++ = ' ';
-    return 0;
-}
diff --git a/source/unres/src_MD/xdrf/libxdrf.m4 b/source/unres/src_MD/xdrf/libxdrf.m4
deleted file mode 100644 (file)
index a6da458..0000000
+++ /dev/null
@@ -1,1238 +0,0 @@
-/*____________________________________________________________________________
- |
- | libxdrf - portable fortran interface to xdr. some xdr routines
- |          are C routines for compressed coordinates
- |
- | version 1.1
- |
- | This collection of routines is intended to write and read
- | data in a portable way to a file, so data written on one type
- | of machine can be read back on a different type.
- |
- | all fortran routines use an integer 'xdrid', which is an id to the
- | current xdr file, and is set by xdrfopen.
- | most routines have in integer 'ret' which is the return value.
- | The value of 'ret' is zero on failure, and most of the time one
- | on succes.
- |
- | There are three routines useful for C users:
- |  xdropen(), xdrclose(), xdr3dfcoord().
- | The first two replace xdrstdio_create and xdr_destroy, and *must* be
- | used when you plan to use xdr3dfcoord(). (they are also a bit
- | easier to interface). For writing data other than compressed coordinates 
- | you should use the standard C xdr routines (see xdr man page)
- |
- | xdrfopen(xdrid, filename, mode, ret)
- |     character *(*) filename
- |     character *(*) mode
- |
- |     this will open the file with the given filename (string)
- |     and the given mode, it returns an id in xdrid, which is
- |     to be used in all other calls to xdrf routines.
- |     mode is 'w' to create, or update an file, for all other
- |     values of mode the file is opened for reading
- |
- |     you need to call xdrfclose to flush the output and close
- |     the file.
- |     Note that you should not use xdrstdio_create, which comes with the
- |     standard xdr library
- |
- | xdrfclose(xdrid, ret)
- |     flush the data to the file, and closes the file;
- |     You should not use xdr_destroy (which comes standard with
- |     the xdr libraries.
- |
- | xdrfbool(xdrid, bp, ret)
- |     integer pb
- |
- |     This filter produces values of either 1 or 0    
- |
- | xdrfchar(xdrid, cp, ret)
- |     character cp
- |
- |     filter that translate between characters and their xdr representation
- |     Note that the characters in not compressed and occupies 4 bytes.
- |
- | xdrfdouble(xdrid, dp, ret)
- |     double dp
- |
- |     read/write a double.
- |
- | xdrffloat(xdrid, fp, ret)
- |     float fp
- |
- |     read/write a float.
- |
- | xdrfint(xdrid, ip, ret)
- |     integer ip
- |
- |     read/write integer.
- |
- | xdrflong(xdrid, lp, ret)
- |     integer lp
- |
- |     this routine has a possible portablility problem due to 64 bits longs.
- |
- | xdrfshort(xdrid, sp, ret)
- |     integer *2 sp
- |
- | xdrfstring(xdrid, sp, maxsize, ret)
- |     character *(*)
- |     integer maxsize
- |
- |     read/write a string, with maximum length given by maxsize
- |
- | xdrfwrapstring(xdris, sp, ret)
- |     character *(*)
- |
- |     read/write a string (it is the same as xdrfstring accept that it finds
- |     the stringlength itself.
- |
- | xdrfvector(xdrid, cp, size, xdrfproc, ret)
- |     character *(*)
- |     integer size
- |     external xdrfproc
- |
- |     read/write an array pointed to by cp, with number of elements
- |     defined by 'size'. the routine 'xdrfproc' is the name
- |     of one of the above routines to read/write data (like xdrfdouble)
- |     In contrast with the c-version you don't need to specify the
- |     byte size of an element.
- |     xdrfstring is not allowed here (it is in the c version)
- |     
- | xdrf3dfcoord(xdrid, fp, size, precision, ret)
- |     real (*) fp
- |     real precision
- |     integer size
- |
- |     this is *NOT* a standard xdr routine. I named it this way, because
- |     it invites people to use the other xdr routines.
- |     It is introduced to store specifically 3d coordinates of molecules
- |     (as found in molecular dynamics) and it writes it in a compressed way.
- |     It starts by multiplying all numbers by precision and
- |     rounding the result to integer. effectively converting
- |     all floating point numbers to fixed point.
- |     it uses an algorithm for compression that is optimized for
- |     molecular data, but could be used for other 3d coordinates
- |     as well. There is subtantial overhead involved, so call this
- |     routine only if you have a large number of coordinates to read/write
- |
- | ________________________________________________________________________
- |
- | Below are the routines to be used by C programmers. Use the 'normal'
- | xdr routines to write integers, floats, etc (see man xdr)   
- |
- | int xdropen(XDR *xdrs, const char *filename, const char *type)
- |     This will open the file with the given filename and the 
- |     given mode. You should pass it an allocated XDR struct
- |     in xdrs, to be used in all other calls to xdr routines.
- |     Mode is 'w' to create, or update an file, and for all 
- |     other values of mode the file is opened for reading. 
- |     You need to call xdrclose to flush the output and close
- |     the file.
- |
- |     Note that you should not use xdrstdio_create, which
- |     comes with the standard xdr library.
- |
- | int xdrclose(XDR *xdrs)
- |     Flush the data to the file, and close the file;
- |     You should not use xdr_destroy (which comes standard
- |     with the xdr libraries).
- |      
- | int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision)
- |     This is \fInot\fR a standard xdr routine. I named it this 
- |     way, because it invites people to use the other xdr 
- |     routines.
- |
- |     (c) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-*/     
-
-
-#include <limits.h>
-#include <malloc.h>
-#include <math.h>
-/* #include <rpc/rpc.h>
-#include <rpc/xdr.h> */
-#include "xdr.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include "xdrf.h"
-
-int ftocstr(char *, int, char *, int);
-int ctofstr(char *, int, char *);
-
-#define MAXID 20
-static FILE *xdrfiles[MAXID];
-static XDR *xdridptr[MAXID];
-static char xdrmodes[MAXID];
-static unsigned int cnt;
-
-typedef void (* FUNCTION(xdrfproc)) (int *, void *, int *);
-
-void
-FUNCTION(xdrfbool) ARGS(`xdrid, pb, ret')
-int *xdrid, *ret;
-int *pb;
-{
-       *ret = xdr_bool(xdridptr[*xdrid], (bool_t *) pb);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrfchar) ARGS(`xdrid, cp, ret')
-int *xdrid, *ret;
-char *cp;
-{
-       *ret = xdr_char(xdridptr[*xdrid], cp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfdouble) ARGS(`xdrid, dp, ret')
-int *xdrid, *ret;
-double *dp;
-{
-       *ret = xdr_double(xdridptr[*xdrid], dp);
-       cnt += sizeof(double);
-}
-
-void
-FUNCTION(xdrffloat) ARGS(`xdrid, fp, ret')
-int *xdrid, *ret;
-float *fp;
-{
-       *ret = xdr_float(xdridptr[*xdrid], fp);
-       cnt += sizeof(float);
-}
-
-void
-FUNCTION(xdrfint) ARGS(`xdrid, ip, ret')
-int *xdrid, *ret;
-int *ip;
-{
-       *ret = xdr_int(xdridptr[*xdrid], ip);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrflong) ARGS(`xdrid, lp, ret')
-int *xdrid, *ret;
-long *lp;
-{
-       *ret = xdr_long(xdridptr[*xdrid], lp);
-       cnt += sizeof(long);
-}
-
-void
-FUNCTION(xdrfshort) ARGS(`xdrid, sp, ret')
-int *xdrid, *ret;
-short *sp;
-{
-       *ret = xdr_short(xdridptr[*xdrid], sp);
-       cnt += sizeof(sp);
-}
-
-void
-FUNCTION(xdrfuchar) ARGS(`xdrid, ucp, ret')
-int *xdrid, *ret;
-char *ucp;
-{
-       *ret = xdr_u_char(xdridptr[*xdrid], ucp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfulong) ARGS(`xdrid, ulp, ret')
-int *xdrid, *ret;
-unsigned long *ulp;
-{
-       *ret = xdr_u_long(xdridptr[*xdrid], ulp);
-       cnt += sizeof(unsigned long);
-}
-
-void
-FUNCTION(xdrfushort) ARGS(`xdrid, usp, ret')
-int *xdrid, *ret;
-unsigned short *usp;
-{
-       *ret = xdr_u_short(xdridptr[*xdrid], usp);
-       cnt += sizeof(unsigned short);
-}
-
-void 
-FUNCTION(xdrf3dfcoord) ARGS(`xdrid, fp, size, precision, ret')
-int *xdrid, *ret;
-float *fp;
-int *size;
-float *precision;
-{
-       *ret = xdr3dfcoord(xdridptr[*xdrid], fp, size, precision);
-}
-
-void
-FUNCTION(xdrfstring) ARGS(`xdrid, STRING_ARG(sp), maxsize, ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-int *maxsize;
-{
-       char *tsp;
-
-       tsp = (char*) malloc(((STRING_LEN(sp)) + 1) * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, *maxsize+1, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int) *maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += *maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfwrapstring) ARGS(`xdrid,  STRING_ARG(sp), ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-{
-       char *tsp;
-       int maxsize;
-       maxsize = (STRING_LEN(sp)) + 1;
-       tsp = (char*) malloc(maxsize * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, maxsize, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int)maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfopaque) ARGS(`xdrid, cp, ccnt, ret')
-int *xdrid, *ret;
-caddr_t *cp;
-int *ccnt;
-{
-       *ret = xdr_opaque(xdridptr[*xdrid], (caddr_t)*cp, (u_int)*ccnt);
-       cnt += *ccnt;
-}
-
-void
-FUNCTION(xdrfsetpos) ARGS(`xdrid, pos, ret')
-int *xdrid, *ret;
-int *pos;
-{
-       *ret = xdr_setpos(xdridptr[*xdrid], (u_int) *pos);
-}
-
-void
-FUNCTION(xdrf) ARGS(`xdrid, pos')
-int *xdrid, *pos;
-{
-       *pos = xdr_getpos(xdridptr[*xdrid]);
-}
-
-void
-FUNCTION(xdrfvector) ARGS(`xdrid, cp, size, elproc, ret')
-int *xdrid, *ret;
-char *cp;
-int *size;
-FUNCTION(xdrfproc) elproc;
-{
-       int lcnt;
-       cnt = 0;
-       for (lcnt = 0; lcnt < *size; lcnt++) {
-               elproc(xdrid, (cp+cnt) , ret);
-       }
-}
-
-
-void
-FUNCTION(xdrfclose) ARGS(`xdrid, ret')
-int *xdrid;
-int *ret;
-{
-       *ret = xdrclose(xdridptr[*xdrid]);
-       cnt = 0;
-}
-
-void
-FUNCTION(xdrfopen) ARGS(`xdrid,  STRING_ARG(fp), STRING_ARG(mode), ret')
-int *xdrid;
-STRING_ARG_DECL(fp);
-STRING_ARG_DECL(mode);
-int *ret;
-{
-       char fname[512];
-       char fmode[3];
-
-       if (ftocstr(fname, sizeof(fname), STRING_PTR(fp), STRING_LEN(fp))) {
-               *ret = 0;
-       }
-       if (ftocstr(fmode, sizeof(fmode), STRING_PTR(mode),
-                       STRING_LEN(mode))) {
-               *ret = 0;
-       }
-
-       *xdrid = xdropen(NULL, fname, fmode);
-       if (*xdrid == 0)
-               *ret = 0;
-       else 
-               *ret = 1;       
-}
-
-/*___________________________________________________________________________
- |
- | what follows are the C routines for opening, closing xdr streams
- | and the routine to read/write compressed coordinates together
- | with some routines to assist in this task (those are marked
- | static and cannot be called from user programs)
-*/
-#define MAXABS INT_MAX-2
-
-#ifndef MIN
-#define MIN(x,y) ((x) < (y) ? (x):(y))
-#endif
-#ifndef MAX
-#define MAX(x,y) ((x) > (y) ? (x):(y))
-#endif
-#ifndef SQR
-#define SQR(x) ((x)*(x))
-#endif
-static int magicints[] = {
-    0, 0, 0, 0, 0, 0, 0, 0, 0,
-    8, 10, 12, 16, 20, 25, 32, 40, 50, 64,
-    80, 101, 128, 161, 203, 256, 322, 406, 512, 645,
-    812, 1024, 1290, 1625, 2048, 2580, 3250, 4096, 5060, 6501,
-    8192, 10321, 13003, 16384, 20642, 26007, 32768, 41285, 52015, 65536,
-    82570, 104031, 131072, 165140, 208063, 262144, 330280, 416127, 524287, 660561,
-    832255, 1048576, 1321122, 1664510, 2097152, 2642245, 3329021, 4194304, 5284491, 6658042,
-    8388607, 10568983, 13316085, 16777216 };
-
-#define FIRSTIDX 9
-/* note that magicints[FIRSTIDX-1] == 0 */
-#define LASTIDX (sizeof(magicints) / sizeof(*magicints))
-
-
-/*__________________________________________________________________________
- |
- | xdropen - open xdr file
- |
- | This versions differs from xdrstdio_create, because I need to know
- | the state of the file (read or write) so I can use xdr3dfcoord
- | in eigther read or write mode, and the file descriptor
- | so I can close the file (something xdr_destroy doesn't do).
- |
-*/
-
-int xdropen(XDR *xdrs, const char *filename, const char *type) {
-    static int init_done = 0;
-    enum xdr_op lmode;
-    const char *type1;
-    int xdrid;
-    
-    if (init_done == 0) {
-       for (xdrid = 1; xdrid < MAXID; xdrid++) {
-           xdridptr[xdrid] = NULL;
-       }
-       init_done = 1;
-    }
-    xdrid = 1;
-    while (xdrid < MAXID && xdridptr[xdrid] != NULL) {
-       xdrid++;
-    }
-    if (xdrid == MAXID) {
-       return 0;
-    }
-    if (*type == 'w' || *type == 'W') {
-           type = "w+";
-           type1 = "w+";
-           lmode = XDR_ENCODE;
-    } else if (*type == 'a' || *type == 'A') {
-           type = "w+";
-            type1 = "a+";
-           lmode = XDR_ENCODE;
-    } else {
-           type = "r";
-            type1 = "r";
-           lmode = XDR_DECODE;
-    }
-    xdrfiles[xdrid] = fopen(filename, type1);
-    if (xdrfiles[xdrid] == NULL) {
-       xdrs = NULL;
-       return 0;
-    }
-    xdrmodes[xdrid] = *type;
-    /* next test isn't usefull in the case of C language
-     * but is used for the Fortran interface
-     * (C users are expected to pass the address of an already allocated
-     * XDR staructure)
-     */
-    if (xdrs == NULL) {
-       xdridptr[xdrid] = (XDR *) malloc(sizeof(XDR));
-       xdrstdio_create(xdridptr[xdrid], xdrfiles[xdrid], lmode);
-    } else {
-       xdridptr[xdrid] = xdrs;
-       xdrstdio_create(xdrs, xdrfiles[xdrid], lmode);
-    }
-    return xdrid;
-}
-
-/*_________________________________________________________________________
- |
- | xdrclose - close a xdr file
- |
- | This will flush the xdr buffers, and destroy the xdr stream.
- | It also closes the associated file descriptor (this is *not*
- | done by xdr_destroy).
- |
-*/
-int xdrclose(XDR *xdrs) {
-    int xdrid;
-    
-    if (xdrs == NULL) {
-       fprintf(stderr, "xdrclose: passed a NULL pointer\n");
-       exit(1);
-    }
-    for (xdrid = 1; xdrid < MAXID; xdrid++) {
-       if (xdridptr[xdrid] == xdrs) {
-           
-           xdr_destroy(xdrs);
-           fclose(xdrfiles[xdrid]);
-           xdridptr[xdrid] = NULL;
-           return 1;
-       }
-    } 
-    fprintf(stderr, "xdrclose: no such open xdr file\n");
-    exit(1);
-    
-}
-
-/*____________________________________________________________________________
- |
- | sendbits - encode num into buf using the specified number of bits
- |
- | This routines appends the value of num to the bits already present in
- | the array buf. You need to give it the number of bits to use and you
- | better make sure that this number of bits is enough to hold the value
- | Also num must be positive.
- |
-*/
-
-static void sendbits(int buf[], int num_of_bits, int num) {
-    
-    unsigned int cnt, lastbyte;
-    int lastbits;
-    unsigned char * cbuf;
-    
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = (unsigned int) buf[0];
-    lastbits = buf[1];
-    lastbyte =(unsigned int) buf[2];
-    while (num_of_bits >= 8) {
-       lastbyte = (lastbyte << 8) | ((num >> (num_of_bits -8)) /* & 0xff*/);
-       cbuf[cnt++] = lastbyte >> lastbits;
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       lastbyte = (lastbyte << num_of_bits) | num;
-       lastbits += num_of_bits;
-       if (lastbits >= 8) {
-           lastbits -= 8;
-           cbuf[cnt++] = lastbyte >> lastbits;
-       }
-    }
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    if (lastbits>0) {
-       cbuf[cnt] = lastbyte << (8 - lastbits);
-    }
-}
-
-/*_________________________________________________________________________
- |
- | sizeofint - calculate bitsize of an integer
- |
- | return the number of bits needed to store an integer with given max size
- |
-*/
-
-static int sizeofint(const int size) {
-    unsigned int num = 1;
-    int num_of_bits = 0;
-    
-    while (size >= num && num_of_bits < 32) {
-       num_of_bits++;
-       num <<= 1;
-    }
-    return num_of_bits;
-}
-
-/*___________________________________________________________________________
- |
- | sizeofints - calculate 'bitsize' of compressed ints
- |
- | given the number of small unsigned integers and the maximum value
- | return the number of bits needed to read or write them with the
- | routines receiveints and sendints. You need this parameter when
- | calling these routines. Note that for many calls I can use
- | the variable 'smallidx' which is exactly the number of bits, and
- | So I don't need to call 'sizeofints for those calls.
-*/
-
-static int sizeofints( const int num_of_ints, unsigned int sizes[]) {
-    int i, num;
-    unsigned int num_of_bytes, num_of_bits, bytes[32], bytecnt, tmp;
-    num_of_bytes = 1;
-    bytes[0] = 1;
-    num_of_bits = 0;
-    for (i=0; i < num_of_ints; i++) {  
-       tmp = 0;
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    num = 1;
-    num_of_bytes--;
-    while (bytes[num_of_bytes] >= num) {
-       num_of_bits++;
-       num *= 2;
-    }
-    return num_of_bits + num_of_bytes * 8;
-
-}
-    
-/*____________________________________________________________________________
- |
- | sendints - send a small set of small integers in compressed format
- |
- | this routine is used internally by xdr3dfcoord, to send a set of
- | small integers to the buffer. 
- | Multiplication with fixed (specified maximum ) sizes is used to get
- | to one big, multibyte integer. Allthough the routine could be
- | modified to handle sizes bigger than 16777216, or more than just
- | a few integers, this is not done, because the gain in compression
- | isn't worth the effort. Note that overflowing the multiplication
- | or the byte buffer (32 bytes) is unchecked and causes bad results.
- |
- */
-static void sendints(int buf[], const int num_of_ints, const int num_of_bits,
-       unsigned int sizes[], unsigned int nums[]) {
-
-    int i;
-    unsigned int bytes[32], num_of_bytes, bytecnt, tmp;
-
-    tmp = nums[0];
-    num_of_bytes = 0;
-    do {
-       bytes[num_of_bytes++] = tmp & 0xff;
-       tmp >>= 8;
-    } while (tmp != 0);
-
-    for (i = 1; i < num_of_ints; i++) {
-       if (nums[i] >= sizes[i]) {
-           fprintf(stderr,"major breakdown in sendints num %d doesn't "
-                   "match size %d\n", nums[i], sizes[i]);
-           exit(1);
-       }
-       /* use one step multiply */    
-       tmp = nums[i];
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    if (num_of_bits >= num_of_bytes * 8) {
-       for (i = 0; i < num_of_bytes; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits - num_of_bytes * 8, 0);
-    } else {
-       for (i = 0; i < num_of_bytes-1; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits- (num_of_bytes -1) * 8, bytes[i]);
-    }
-}
-
-
-/*___________________________________________________________________________
- |
- | receivebits - decode number from buf using specified number of bits
- | 
- | extract the number of bits from the array buf and construct an integer
- | from it. Return that value.
- |
-*/
-
-static int receivebits(int buf[], int num_of_bits) {
-
-    int cnt, num; 
-    unsigned int lastbits, lastbyte;
-    unsigned char * cbuf;
-    int mask = (1 << num_of_bits) -1;
-
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = buf[0];
-    lastbits = (unsigned int) buf[1];
-    lastbyte = (unsigned int) buf[2];
-    
-    num = 0;
-    while (num_of_bits >= 8) {
-       lastbyte = ( lastbyte << 8 ) | cbuf[cnt++];
-       num |=  (lastbyte >> lastbits) << (num_of_bits - 8);
-       num_of_bits -=8;
-    }
-    if (num_of_bits > 0) {
-       if (lastbits < num_of_bits) {
-           lastbits += 8;
-           lastbyte = (lastbyte << 8) | cbuf[cnt++];
-       }
-       lastbits -= num_of_bits;
-       num |= (lastbyte >> lastbits) & ((1 << num_of_bits) -1);
-    }
-    num &= mask;
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    return num; 
-}
-
-/*____________________________________________________________________________
- |
- | receiveints - decode 'small' integers from the buf array
- |
- | this routine is the inverse from sendints() and decodes the small integers
- | written to buf by calculating the remainder and doing divisions with
- | the given sizes[]. You need to specify the total number of bits to be
- | used from buf in num_of_bits.
- |
-*/
-
-static void receiveints(int buf[], const int num_of_ints, int num_of_bits,
-       unsigned int sizes[], int nums[]) {
-    int bytes[32];
-    int i, j, num_of_bytes, p, num;
-    
-    bytes[1] = bytes[2] = bytes[3] = 0;
-    num_of_bytes = 0;
-    while (num_of_bits > 8) {
-       bytes[num_of_bytes++] = receivebits(buf, 8);
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       bytes[num_of_bytes++] = receivebits(buf, num_of_bits);
-    }
-    for (i = num_of_ints-1; i > 0; i--) {
-       num = 0;
-       for (j = num_of_bytes-1; j >=0; j--) {
-           num = (num << 8) | bytes[j];
-           p = num / sizes[i];
-           bytes[j] = p;
-           num = num - p * sizes[i];
-       }
-       nums[i] = num;
-    }
-    nums[0] = bytes[0] | (bytes[1] << 8) | (bytes[2] << 16) | (bytes[3] << 24);
-}
-    
-/*____________________________________________________________________________
- |
- | xdr3dfcoord - read or write compressed 3d coordinates to xdr file.
- |
- | this routine reads or writes (depending on how you opened the file with
- | xdropen() ) a large number of 3d coordinates (stored in *fp).
- | The number of coordinates triplets to write is given by *size. On
- | read this number may be zero, in which case it reads as many as were written
- | or it may specify the number if triplets to read (which should match the
- | number written).
- | Compression is achieved by first converting all floating numbers to integer
- | using multiplication by *precision and rounding to the nearest integer.
- | Then the minimum and maximum value are calculated to determine the range.
- | The limited range of integers so found, is used to compress the coordinates.
- | In addition the differences between succesive coordinates is calculated.
- | If the difference happens to be 'small' then only the difference is saved,
- | compressing the data even more. The notion of 'small' is changed dynamically
- | and is enlarged or reduced whenever needed or possible.
- | Extra compression is achieved in the case of GROMOS and coordinates of
- | water molecules. GROMOS first writes out the Oxygen position, followed by
- | the two hydrogens. In order to make the differences smaller (and thereby
- | compression the data better) the order is changed into first one hydrogen
- | then the oxygen, followed by the other hydrogen. This is rather special, but
- | it shouldn't harm in the general case.
- |
- */
-int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) {
-    
-
-    static int *ip = NULL;
-    static int oldsize;
-    static int *buf;
-
-    int minint[3], maxint[3], mindiff, *lip, diff;
-    int lint1, lint2, lint3, oldlint1, oldlint2, oldlint3, smallidx;
-    int minidx, maxidx;
-    unsigned sizeint[3], sizesmall[3], bitsizeint[3], size3, *luip;
-    int flag, k;
-    int small, smaller, larger, i, is_small, is_smaller, run, prevrun;
-    float *lfp, lf;
-    int tmp, *thiscoord,  prevcoord[3];
-    unsigned int tmpcoord[30];
-
-    int bufsize, xdrid, lsize;
-    unsigned int bitsize;
-    float inv_precision;
-    int errval = 1;
-
-    /* find out if xdrs is opened for reading or for writing */
-    xdrid = 0;
-    while (xdridptr[xdrid] != xdrs) {
-       xdrid++;
-       if (xdrid >= MAXID) {
-           fprintf(stderr, "xdr error. no open xdr stream\n");
-           exit (1);
-       }
-    }
-    if (xdrmodes[xdrid] == 'w') {
-
-       /* xdrs is open for writing */
-
-       if (xdr_int(xdrs, size) == 0)
-           return 0;
-       size3 = *size * 3;
-       /* when the number of coordinates is small, don't try to compress; just
-        * write them as floats using xdr_vector
-        */
-       if (*size <= 9 ) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       /* buf[0-2] are special and do not contain actual data */
-       buf[0] = buf[1] = buf[2] = 0;
-       minint[0] = minint[1] = minint[2] = INT_MAX;
-       maxint[0] = maxint[1] = maxint[2] = INT_MIN;
-       prevrun = -1;
-       lfp = fp;
-       lip = ip;
-       mindiff = INT_MAX;
-       oldlint1 = oldlint2 = oldlint3 = 0;
-       while(lfp < fp + size3 ) {
-           /* find nearest integer */
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint1 = lf;
-           if (lint1 < minint[0]) minint[0] = lint1;
-           if (lint1 > maxint[0]) maxint[0] = lint1;
-           *lip++ = lint1;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint2 = lf;
-           if (lint2 < minint[1]) minint[1] = lint2;
-           if (lint2 > maxint[1]) maxint[1] = lint2;
-           *lip++ = lint2;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint3 = lf;
-           if (lint3 < minint[2]) minint[2] = lint3;
-           if (lint3 > maxint[2]) maxint[2] = lint3;
-           *lip++ = lint3;
-           lfp++;
-           diff = abs(oldlint1-lint1)+abs(oldlint2-lint2)+abs(oldlint3-lint3);
-           if (diff < mindiff && lfp > fp + 3)
-               mindiff = diff;
-           oldlint1 = lint1;
-           oldlint2 = lint2;
-           oldlint3 = lint3;
-       }
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-       
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-       
-       if ((float)maxint[0] - (float)minint[0] >= MAXABS ||
-               (float)maxint[1] - (float)minint[1] >= MAXABS ||
-               (float)maxint[2] - (float)minint[2] >= MAXABS) {
-           /* turning value in unsigned by subtracting minint
-            * would cause overflow
-            */
-           errval = 0;
-       }
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       lip = ip;
-       luip = (unsigned int *) ip;
-       smallidx = FIRSTIDX;
-       while (smallidx < LASTIDX && magicints[smallidx] < mindiff) {
-           smallidx++;
-       }
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-       larger = magicints[maxidx] / 2;
-       i = 0;
-       while (i < *size) {
-           is_small = 0;
-           thiscoord = (int *)(luip) + i * 3;
-           if (smallidx < maxidx && i >= 1 &&
-                   abs(thiscoord[0] - prevcoord[0]) < larger &&
-                   abs(thiscoord[1] - prevcoord[1]) < larger &&
-                   abs(thiscoord[2] - prevcoord[2]) < larger) {
-               is_smaller = 1;
-           } else if (smallidx > minidx) {
-               is_smaller = -1;
-           } else {
-               is_smaller = 0;
-           }
-           if (i + 1 < *size) {
-               if (abs(thiscoord[0] - thiscoord[3]) < small &&
-                       abs(thiscoord[1] - thiscoord[4]) < small &&
-                       abs(thiscoord[2] - thiscoord[5]) < small) {
-                   /* interchange first with second atom for better
-                    * compression of water molecules
-                    */
-                   tmp = thiscoord[0]; thiscoord[0] = thiscoord[3];
-                       thiscoord[3] = tmp;
-                   tmp = thiscoord[1]; thiscoord[1] = thiscoord[4];
-                       thiscoord[4] = tmp;
-                   tmp = thiscoord[2]; thiscoord[2] = thiscoord[5];
-                       thiscoord[5] = tmp;
-                   is_small = 1;
-               }
-    
-           }
-           tmpcoord[0] = thiscoord[0] - minint[0];
-           tmpcoord[1] = thiscoord[1] - minint[1];
-           tmpcoord[2] = thiscoord[2] - minint[2];
-           if (bitsize == 0) {
-               sendbits(buf, bitsizeint[0], tmpcoord[0]);
-               sendbits(buf, bitsizeint[1], tmpcoord[1]);
-               sendbits(buf, bitsizeint[2], tmpcoord[2]);
-           } else {
-               sendints(buf, 3, bitsize, sizeint, tmpcoord);
-           }
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           thiscoord = thiscoord + 3;
-           i++;
-           
-           run = 0;
-           if (is_small == 0 && is_smaller == -1)
-               is_smaller = 0;
-           while (is_small && run < 8*3) {
-               if (is_smaller == -1 && (
-                       SQR(thiscoord[0] - prevcoord[0]) +
-                       SQR(thiscoord[1] - prevcoord[1]) +
-                       SQR(thiscoord[2] - prevcoord[2]) >= smaller * smaller)) {
-                   is_smaller = 0;
-               }
-
-               tmpcoord[run++] = thiscoord[0] - prevcoord[0] + small;
-               tmpcoord[run++] = thiscoord[1] - prevcoord[1] + small;
-               tmpcoord[run++] = thiscoord[2] - prevcoord[2] + small;
-               
-               prevcoord[0] = thiscoord[0];
-               prevcoord[1] = thiscoord[1];
-               prevcoord[2] = thiscoord[2];
-
-               i++;
-               thiscoord = thiscoord + 3;
-               is_small = 0;
-               if (i < *size &&
-                       abs(thiscoord[0] - prevcoord[0]) < small &&
-                       abs(thiscoord[1] - prevcoord[1]) < small &&
-                       abs(thiscoord[2] - prevcoord[2]) < small) {
-                   is_small = 1;
-               }
-           }
-           if (run != prevrun || is_smaller != 0) {
-               prevrun = run;
-               sendbits(buf, 1, 1); /* flag the change in run-length */
-               sendbits(buf, 5, run+is_smaller+1);
-           } else {
-               sendbits(buf, 1, 0); /* flag the fact that runlength did not change */
-           }
-           for (k=0; k < run; k+=3) {
-               sendints(buf, 3, smallidx, sizesmall, &tmpcoord[k]);    
-           }
-           if (is_smaller != 0) {
-               smallidx += is_smaller;
-               if (is_smaller < 0) {
-                   small = smaller;
-                   smaller = magicints[smallidx-1] / 2;
-               } else {
-                   smaller = small;
-                   small = magicints[smallidx] / 2;
-               }
-               sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-           }
-       }
-       if (buf[1] != 0) buf[0]++;;
-       xdr_int(xdrs, &(buf[0])); /* buf[0] holds the length in bytes */
-       return errval * (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]));
-    } else {
-       
-       /* xdrs is open for reading */
-       
-       if (xdr_int(xdrs, &lsize) == 0) 
-           return 0;
-       if (*size != 0 && lsize != *size) {
-           fprintf(stderr, "wrong number of coordinates in xdr3dfcoor; "
-                   "%d arg vs %d in file", *size, lsize);
-       }
-       *size = lsize;
-       size3 = *size * 3;
-       if (*size <= 9) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-               
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       larger = magicints[maxidx];
-
-       /* buf[0] holds the length in bytes */
-
-       if (xdr_int(xdrs, &(buf[0])) == 0)
-           return 0;
-       if (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]) == 0)
-           return 0;
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       lfp = fp;
-       inv_precision = 1.0 / * precision;
-       run = 0;
-       i = 0;
-       lip = ip;
-       while ( i < lsize ) {
-           thiscoord = (int *)(lip) + i * 3;
-
-           if (bitsize == 0) {
-               thiscoord[0] = receivebits(buf, bitsizeint[0]);
-               thiscoord[1] = receivebits(buf, bitsizeint[1]);
-               thiscoord[2] = receivebits(buf, bitsizeint[2]);
-           } else {
-               receiveints(buf, 3, bitsize, sizeint, thiscoord);
-           }
-           
-           i++;
-           thiscoord[0] += minint[0];
-           thiscoord[1] += minint[1];
-           thiscoord[2] += minint[2];
-           
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           
-          
-           flag = receivebits(buf, 1);
-           is_smaller = 0;
-           if (flag == 1) {
-               run = receivebits(buf, 5);
-               is_smaller = run % 3;
-               run -= is_smaller;
-               is_smaller--;
-           }
-           if (run > 0) {
-               thiscoord += 3;
-               for (k = 0; k < run; k+=3) {
-                   receiveints(buf, 3, smallidx, sizesmall, thiscoord);
-                   i++;
-                   thiscoord[0] += prevcoord[0] - small;
-                   thiscoord[1] += prevcoord[1] - small;
-                   thiscoord[2] += prevcoord[2] - small;
-                   if (k == 0) {
-                       /* interchange first with second atom for better
-                        * compression of water molecules
-                        */
-                       tmp = thiscoord[0]; thiscoord[0] = prevcoord[0];
-                               prevcoord[0] = tmp;
-                       tmp = thiscoord[1]; thiscoord[1] = prevcoord[1];
-                               prevcoord[1] = tmp;
-                       tmp = thiscoord[2]; thiscoord[2] = prevcoord[2];
-                               prevcoord[2] = tmp;
-                       *lfp++ = prevcoord[0] * inv_precision;
-                       *lfp++ = prevcoord[1] * inv_precision;
-                       *lfp++ = prevcoord[2] * inv_precision;
-                   } else {
-                       prevcoord[0] = thiscoord[0];
-                       prevcoord[1] = thiscoord[1];
-                       prevcoord[2] = thiscoord[2];
-                   }
-                   *lfp++ = thiscoord[0] * inv_precision;
-                   *lfp++ = thiscoord[1] * inv_precision;
-                   *lfp++ = thiscoord[2] * inv_precision;
-               }
-           } else {
-               *lfp++ = thiscoord[0] * inv_precision;
-               *lfp++ = thiscoord[1] * inv_precision;
-               *lfp++ = thiscoord[2] * inv_precision;          
-           }
-           smallidx += is_smaller;
-           if (is_smaller < 0) {
-               small = smaller;
-               if (smallidx > FIRSTIDX) {
-                   smaller = magicints[smallidx - 1] /2;
-               } else {
-                   smaller = 0;
-               }
-           } else if (is_smaller > 0) {
-               smaller = small;
-               small = magicints[smallidx] / 2;
-           }
-           sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       }
-    }
-    return 1;
-}
-
-
-   
diff --git a/source/unres/src_MD/xdrf/types.h b/source/unres/src_MD/xdrf/types.h
deleted file mode 100644 (file)
index 871f3fd..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-/* fixincludes should not add extern "C" to this file */
-/*
- * Rpc additions to <sys/types.h>
- */
-#ifndef _RPC_TYPES_H
-#define _RPC_TYPES_H 1
-
-typedef int bool_t;
-typedef int enum_t;
-/* This needs to be changed to uint32_t in the future */
-typedef unsigned long rpcprog_t;
-typedef unsigned long rpcvers_t;
-typedef unsigned long rpcproc_t;
-typedef unsigned long rpcprot_t;
-typedef unsigned long rpcport_t;
-
-#define        __dontcare__    -1
-
-#ifndef FALSE
-#      define  FALSE   (0)
-#endif
-
-#ifndef TRUE
-#      define  TRUE    (1)
-#endif
-
-#ifndef NULL
-#      define  NULL 0
-#endif
-
-#include <stdlib.h>            /* For malloc decl.  */
-#define mem_alloc(bsize)       malloc(bsize)
-/*
- * XXX: This must not use the second argument, or code in xdr_array.c needs
- * to be modified.
- */
-#define mem_free(ptr, bsize)   free(ptr)
-
-#ifndef makedev /* ie, we haven't already included it */
-#include <sys/types.h>
-#endif
-
-#ifndef __u_char_defined
-typedef __u_char u_char;
-typedef __u_short u_short;
-typedef __u_int u_int;
-typedef __u_long u_long;
-typedef __quad_t quad_t;
-typedef __u_quad_t u_quad_t;
-typedef __fsid_t fsid_t;
-# define __u_char_defined
-#endif
-#ifndef __daddr_t_defined
-typedef __daddr_t daddr_t;
-typedef __caddr_t caddr_t;
-# define __daddr_t_defined
-#endif
-
-#include <sys/time.h>
-#include <sys/param.h>
-
-#include <netinet/in.h>
-
-#ifndef INADDR_LOOPBACK
-#define       INADDR_LOOPBACK         (u_long)0x7F000001
-#endif
-#ifndef MAXHOSTNAMELEN
-#define        MAXHOSTNAMELEN  64
-#endif
-
-#endif /* rpc/types.h */
diff --git a/source/unres/src_MD/xdrf/underscore.m4 b/source/unres/src_MD/xdrf/underscore.m4
deleted file mode 100644 (file)
index 4d620a0..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-divert(-1)
-undefine(`len')
-#
-# append an underscore to FORTRAN function names
-#
-define(`FUNCTION',`$1_')
-#
-# FORTRAN character strings are passed as follows:
-# a pointer to the base of the string is passed in the normal
-# argument list, and the length is passed by value as an extra
-# argument, after all of the other arguments.
-#
-define(`ARGS',`($1`'undivert(1))')
-define(`SAVE',`divert(1)$1`'divert(0)')
-define(`STRING_ARG',`$1_ptr`'SAVE(`, $1_len')')
-define(`STRING_ARG_DECL',`char * $1_ptr; int $1_len')
-define(`STRING_LEN',`$1_len')
-define(`STRING_PTR',`$1_ptr')
-divert(0)
diff --git a/source/unres/src_MD/xdrf/xdr.c b/source/unres/src_MD/xdrf/xdr.c
deleted file mode 100644 (file)
index 33b8544..0000000
+++ /dev/null
@@ -1,752 +0,0 @@
-# define INTUSE(name) name
-# define INTDEF(name)
-/* @(#)xdr.c   2.1 88/07/29 4.0 RPCSRC */
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)xdr.c 1.35 87/08/12";
-#endif
-
-/*
- * xdr.c, Generic XDR routines implementation.
- *
- * Copyright (C) 1986, Sun Microsystems, Inc.
- *
- * These are the "generic" xdr routines used to serialize and de-serialize
- * most common data items.  See xdr.h for more info on the interface to
- * xdr.
- */
-
-#include <stdio.h>
-#include <limits.h>
-#include <string.h>
-#include <libintl.h>
-
-#include "types.h"
-#include "xdr.h"
-
-#ifdef USE_IN_LIBIO
-# include <wchar.h>
-#endif
-
-/*
- * constants specific to the xdr "protocol"
- */
-#define XDR_FALSE      ((long) 0)
-#define XDR_TRUE       ((long) 1)
-#define LASTUNSIGNED   ((u_int) 0-1)
-
-/*
- * for unit alignment
- */
-static const char xdr_zero[BYTES_PER_XDR_UNIT] = {0, 0, 0, 0};
-
-/*
- * Free a data structure using XDR
- * Not a filter, but a convenient utility nonetheless
- */
-void
-xdr_free (xdrproc_t proc, char *objp)
-{
-  XDR x;
-
-  x.x_op = XDR_FREE;
-  (*proc) (&x, objp);
-}
-
-/*
- * XDR nothing
- */
-bool_t
-xdr_void (void)
-{
-  return TRUE;
-}
-INTDEF(xdr_void)
-
-/*
- * XDR integers
- */
-bool_t
-xdr_int (XDR *xdrs, int *ip)
-{
-
-#if INT_MAX < LONG_MAX
-  long l;
-
-  switch (xdrs->x_op)
-    {
-    case XDR_ENCODE:
-      l = (long) *ip;
-      return XDR_PUTLONG (xdrs, &l);
-
-    case XDR_DECODE:
-      if (!XDR_GETLONG (xdrs, &l))
-       {
-         return FALSE;
-       }
-      *ip = (int) l;
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-#elif INT_MAX == LONG_MAX
-  return INTUSE(xdr_long) (xdrs, (long *) ip);
-#elif INT_MAX == SHRT_MAX
-  return INTUSE(xdr_short) (xdrs, (short *) ip);
-#else
-#error unexpected integer sizes in_xdr_int()
-#endif
-}
-INTDEF(xdr_int)
-
-/*
- * XDR unsigned integers
- */
-bool_t
-xdr_u_int (XDR *xdrs, u_int *up)
-{
-#if UINT_MAX < ULONG_MAX
-  long l;
-
-  switch (xdrs->x_op)
-    {
-    case XDR_ENCODE:
-      l = (u_long) * up;
-      return XDR_PUTLONG (xdrs, &l);
-
-    case XDR_DECODE:
-      if (!XDR_GETLONG (xdrs, &l))
-       {
-         return FALSE;
-       }
-      *up = (u_int) (u_long) l;
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-#elif UINT_MAX == ULONG_MAX
-  return INTUSE(xdr_u_long) (xdrs, (u_long *) up);
-#elif UINT_MAX == USHRT_MAX
-  return INTUSE(xdr_short) (xdrs, (short *) up);
-#else
-#error unexpected integer sizes in_xdr_u_int()
-#endif
-}
-INTDEF(xdr_u_int)
-
-/*
- * XDR long integers
- * The definition of xdr_long() is kept for backward
- * compatibility. Instead xdr_int() should be used.
- */
-bool_t
-xdr_long (XDR *xdrs, long *lp)
-{
-
-  if (xdrs->x_op == XDR_ENCODE
-      && (sizeof (int32_t) == sizeof (long)
-         || (int32_t) *lp == *lp))
-    return XDR_PUTLONG (xdrs, lp);
-
-  if (xdrs->x_op == XDR_DECODE)
-    return XDR_GETLONG (xdrs, lp);
-
-  if (xdrs->x_op == XDR_FREE)
-    return TRUE;
-
-  return FALSE;
-}
-INTDEF(xdr_long)
-
-/*
- * XDR unsigned long integers
- * The definition of xdr_u_long() is kept for backward
- * compatibility. Instead xdr_u_int() should be used.
- */
-bool_t
-xdr_u_long (XDR *xdrs, u_long *ulp)
-{
-  switch (xdrs->x_op)
-    {
-    case XDR_DECODE:
-      {
-       long int tmp;
-
-       if (XDR_GETLONG (xdrs, &tmp) == FALSE)
-         return FALSE;
-
-       *ulp = (uint32_t) tmp;
-       return TRUE;
-      }
-
-    case XDR_ENCODE:
-      if (sizeof (uint32_t) != sizeof (u_long)
-         && (uint32_t) *ulp != *ulp)
-       return FALSE;
-
-      return XDR_PUTLONG (xdrs, (long *) ulp);
-
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_u_long)
-
-/*
- * XDR hyper integers
- * same as xdr_u_hyper - open coded to save a proc call!
- */
-bool_t
-xdr_hyper (XDR *xdrs, quad_t *llp)
-{
-  long int t1, t2;
-
-  if (xdrs->x_op == XDR_ENCODE)
-    {
-      t1 = (long) ((*llp) >> 32);
-      t2 = (long) (*llp);
-      return (XDR_PUTLONG(xdrs, &t1) && XDR_PUTLONG(xdrs, &t2));
-    }
-
-  if (xdrs->x_op == XDR_DECODE)
-    {
-      if (!XDR_GETLONG(xdrs, &t1) || !XDR_GETLONG(xdrs, &t2))
-       return FALSE;
-      *llp = ((quad_t) t1) << 32;
-      *llp |= (uint32_t) t2;
-      return TRUE;
-    }
-
-  if (xdrs->x_op == XDR_FREE)
-    return TRUE;
-
-  return FALSE;
-}
-INTDEF(xdr_hyper)
-
-
-/*
- * XDR hyper integers
- * same as xdr_hyper - open coded to save a proc call!
- */
-bool_t
-xdr_u_hyper (XDR *xdrs, u_quad_t *ullp)
-{
-  long int t1, t2;
-
-  if (xdrs->x_op == XDR_ENCODE)
-    {
-      t1 = (unsigned long) ((*ullp) >> 32);
-      t2 = (unsigned long) (*ullp);
-      return (XDR_PUTLONG(xdrs, &t1) && XDR_PUTLONG(xdrs, &t2));
-    }
-
-  if (xdrs->x_op == XDR_DECODE)
-    {
-      if (!XDR_GETLONG(xdrs, &t1) || !XDR_GETLONG(xdrs, &t2))
-       return FALSE;
-      *ullp = ((u_quad_t) t1) << 32;
-      *ullp |= (uint32_t) t2;
-      return TRUE;
-    }
-
-  if (xdrs->x_op == XDR_FREE)
-    return TRUE;
-
-  return FALSE;
-}
-INTDEF(xdr_u_hyper)
-
-bool_t
-xdr_longlong_t (XDR *xdrs, quad_t *llp)
-{
-  return INTUSE(xdr_hyper) (xdrs, llp);
-}
-
-bool_t
-xdr_u_longlong_t (XDR *xdrs, u_quad_t *ullp)
-{
-  return INTUSE(xdr_u_hyper) (xdrs, ullp);
-}
-
-/*
- * XDR short integers
- */
-bool_t
-xdr_short (XDR *xdrs, short *sp)
-{
-  long l;
-
-  switch (xdrs->x_op)
-    {
-    case XDR_ENCODE:
-      l = (long) *sp;
-      return XDR_PUTLONG (xdrs, &l);
-
-    case XDR_DECODE:
-      if (!XDR_GETLONG (xdrs, &l))
-       {
-         return FALSE;
-       }
-      *sp = (short) l;
-      return TRUE;
-
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_short)
-
-/*
- * XDR unsigned short integers
- */
-bool_t
-xdr_u_short (XDR *xdrs, u_short *usp)
-{
-  long l;
-
-  switch (xdrs->x_op)
-    {
-    case XDR_ENCODE:
-      l = (u_long) * usp;
-      return XDR_PUTLONG (xdrs, &l);
-
-    case XDR_DECODE:
-      if (!XDR_GETLONG (xdrs, &l))
-       {
-         return FALSE;
-       }
-      *usp = (u_short) (u_long) l;
-      return TRUE;
-
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_u_short)
-
-
-/*
- * XDR a char
- */
-bool_t
-xdr_char (XDR *xdrs, char *cp)
-{
-  int i;
-
-  i = (*cp);
-  if (!INTUSE(xdr_int) (xdrs, &i))
-    {
-      return FALSE;
-    }
-  *cp = i;
-  return TRUE;
-}
-
-/*
- * XDR an unsigned char
- */
-bool_t
-xdr_u_char (XDR *xdrs, u_char *cp)
-{
-  u_int u;
-
-  u = (*cp);
-  if (!INTUSE(xdr_u_int) (xdrs, &u))
-    {
-      return FALSE;
-    }
-  *cp = u;
-  return TRUE;
-}
-
-/*
- * XDR booleans
- */
-bool_t
-xdr_bool (XDR *xdrs, bool_t *bp)
-{
-  long lb;
-
-  switch (xdrs->x_op)
-    {
-    case XDR_ENCODE:
-      lb = *bp ? XDR_TRUE : XDR_FALSE;
-      return XDR_PUTLONG (xdrs, &lb);
-
-    case XDR_DECODE:
-      if (!XDR_GETLONG (xdrs, &lb))
-       {
-         return FALSE;
-       }
-      *bp = (lb == XDR_FALSE) ? FALSE : TRUE;
-      return TRUE;
-
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_bool)
-
-/*
- * XDR enumerations
- */
-bool_t
-xdr_enum (XDR *xdrs, enum_t *ep)
-{
-  enum sizecheck
-    {
-      SIZEVAL
-    };                         /* used to find the size of an enum */
-
-  /*
-   * enums are treated as ints
-   */
-  if (sizeof (enum sizecheck) == 4)
-    {
-#if INT_MAX < LONG_MAX
-      long l;
-
-      switch (xdrs->x_op)
-       {
-       case XDR_ENCODE:
-         l = *ep;
-         return XDR_PUTLONG (xdrs, &l);
-
-       case XDR_DECODE:
-         if (!XDR_GETLONG (xdrs, &l))
-           {
-             return FALSE;
-           }
-         *ep = l;
-       case XDR_FREE:
-         return TRUE;
-
-       }
-      return FALSE;
-#else
-      return INTUSE(xdr_long) (xdrs, (long *) ep);
-#endif
-    }
-  else if (sizeof (enum sizecheck) == sizeof (short))
-    {
-      return INTUSE(xdr_short) (xdrs, (short *) ep);
-    }
-  else
-    {
-      return FALSE;
-    }
-}
-INTDEF(xdr_enum)
-
-/*
- * XDR opaque data
- * Allows the specification of a fixed size sequence of opaque bytes.
- * cp points to the opaque object and cnt gives the byte length.
- */
-bool_t
-xdr_opaque (XDR *xdrs, caddr_t cp, u_int cnt)
-{
-  u_int rndup;
-  static char crud[BYTES_PER_XDR_UNIT];
-
-  /*
-   * if no data we are done
-   */
-  if (cnt == 0)
-    return TRUE;
-
-  /*
-   * round byte count to full xdr units
-   */
-  rndup = cnt % BYTES_PER_XDR_UNIT;
-  if (rndup > 0)
-    rndup = BYTES_PER_XDR_UNIT - rndup;
-
-  switch (xdrs->x_op)
-    {
-    case XDR_DECODE:
-      if (!XDR_GETBYTES (xdrs, cp, cnt))
-       {
-         return FALSE;
-       }
-      if (rndup == 0)
-       return TRUE;
-      return XDR_GETBYTES (xdrs, (caddr_t)crud, rndup);
-
-    case XDR_ENCODE:
-      if (!XDR_PUTBYTES (xdrs, cp, cnt))
-       {
-         return FALSE;
-       }
-      if (rndup == 0)
-       return TRUE;
-      return XDR_PUTBYTES (xdrs, xdr_zero, rndup);
-
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_opaque)
-
-/*
- * XDR counted bytes
- * *cpp is a pointer to the bytes, *sizep is the count.
- * If *cpp is NULL maxsize bytes are allocated
- */
-bool_t
-xdr_bytes (xdrs, cpp, sizep, maxsize)
-     XDR *xdrs;
-     char **cpp;
-     u_int *sizep;
-     u_int maxsize;
-{
-  char *sp = *cpp;     /* sp is the actual string pointer */
-  u_int nodesize;
-
-  /*
-   * first deal with the length since xdr bytes are counted
-   */
-  if (!INTUSE(xdr_u_int) (xdrs, sizep))
-    {
-      return FALSE;
-    }
-  nodesize = *sizep;
-  if ((nodesize > maxsize) && (xdrs->x_op != XDR_FREE))
-    {
-      return FALSE;
-    }
-
-  /*
-   * now deal with the actual bytes
-   */
-  switch (xdrs->x_op)
-    {
-    case XDR_DECODE:
-      if (nodesize == 0)
-       {
-         return TRUE;
-       }
-      if (sp == NULL)
-       {
-         *cpp = sp = (char *) mem_alloc (nodesize);
-       }
-      if (sp == NULL)
-       {
-         fprintf (NULL, "%s", "xdr_bytes: out of memory\n");
-         return FALSE;
-       }
-      /* fall into ... */
-
-    case XDR_ENCODE:
-      return INTUSE(xdr_opaque) (xdrs, sp, nodesize);
-
-    case XDR_FREE:
-      if (sp != NULL)
-       {
-         mem_free (sp, nodesize);
-         *cpp = NULL;
-       }
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_bytes)
-
-/*
- * Implemented here due to commonality of the object.
- */
-bool_t
-xdr_netobj (xdrs, np)
-     XDR *xdrs;
-     struct netobj *np;
-{
-
-  return INTUSE(xdr_bytes) (xdrs, &np->n_bytes, &np->n_len, MAX_NETOBJ_SZ);
-}
-INTDEF(xdr_netobj)
-
-/*
- * XDR a discriminated union
- * Support routine for discriminated unions.
- * You create an array of xdrdiscrim structures, terminated with
- * an entry with a null procedure pointer.  The routine gets
- * the discriminant value and then searches the array of xdrdiscrims
- * looking for that value.  It calls the procedure given in the xdrdiscrim
- * to handle the discriminant.  If there is no specific routine a default
- * routine may be called.
- * If there is no specific or default routine an error is returned.
- */
-bool_t
-xdr_union (xdrs, dscmp, unp, choices, dfault)
-     XDR *xdrs;
-     enum_t *dscmp;            /* enum to decide which arm to work on */
-     char *unp;                        /* the union itself */
-     const struct xdr_discrim *choices;        /* [value, xdr proc] for each arm */
-     xdrproc_t dfault;         /* default xdr routine */
-{
-  enum_t dscm;
-
-  /*
-   * we deal with the discriminator;  it's an enum
-   */
-  if (!INTUSE(xdr_enum) (xdrs, dscmp))
-    {
-      return FALSE;
-    }
-  dscm = *dscmp;
-
-  /*
-   * search choices for a value that matches the discriminator.
-   * if we find one, execute the xdr routine for that value.
-   */
-  for (; choices->proc != NULL_xdrproc_t; choices++)
-    {
-      if (choices->value == dscm)
-       return (*(choices->proc)) (xdrs, unp, LASTUNSIGNED);
-    }
-
-  /*
-   * no match - execute the default xdr routine if there is one
-   */
-  return ((dfault == NULL_xdrproc_t) ? FALSE :
-         (*dfault) (xdrs, unp, LASTUNSIGNED));
-}
-INTDEF(xdr_union)
-
-
-/*
- * Non-portable xdr primitives.
- * Care should be taken when moving these routines to new architectures.
- */
-
-
-/*
- * XDR null terminated ASCII strings
- * xdr_string deals with "C strings" - arrays of bytes that are
- * terminated by a NULL character.  The parameter cpp references a
- * pointer to storage; If the pointer is null, then the necessary
- * storage is allocated.  The last parameter is the max allowed length
- * of the string as specified by a protocol.
- */
-bool_t
-xdr_string (xdrs, cpp, maxsize)
-     XDR *xdrs;
-     char **cpp;
-     u_int maxsize;
-{
-  char *sp = *cpp;     /* sp is the actual string pointer */
-  u_int size;
-  u_int nodesize;
-
-  /*
-   * first deal with the length since xdr strings are counted-strings
-   */
-  switch (xdrs->x_op)
-    {
-    case XDR_FREE:
-      if (sp == NULL)
-       {
-         return TRUE;          /* already free */
-       }
-      /* fall through... */
-    case XDR_ENCODE:
-      if (sp == NULL)
-       return FALSE;
-      size = strlen (sp);
-      break;
-    case XDR_DECODE:
-      break;
-    }
-  if (!INTUSE(xdr_u_int) (xdrs, &size))
-    {
-      return FALSE;
-    }
-  if (size > maxsize)
-    {
-      return FALSE;
-    }
-  nodesize = size + 1;
-  if (nodesize == 0)
-    {
-      /* This means an overflow.  It a bug in the caller which
-        provided a too large maxsize but nevertheless catch it
-        here.  */
-      return FALSE;
-    }
-
-  /*
-   * now deal with the actual bytes
-   */
-  switch (xdrs->x_op)
-    {
-    case XDR_DECODE:
-      if (sp == NULL)
-       *cpp = sp = (char *) mem_alloc (nodesize);
-      if (sp == NULL)
-       {
-         fprintf (NULL, "%s", "xdr_string: out of memory\n");
-         return FALSE;
-       }
-      sp[size] = 0;
-      /* fall into ... */
-
-    case XDR_ENCODE:
-      return INTUSE(xdr_opaque) (xdrs, sp, size);
-
-    case XDR_FREE:
-      mem_free (sp, nodesize);
-      *cpp = NULL;
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_string)
-
-/*
- * Wrapper for xdr_string that can be called directly from
- * routines like clnt_call
- */
-bool_t
-xdr_wrapstring (xdrs, cpp)
-     XDR *xdrs;
-     char **cpp;
-{
-  if (INTUSE(xdr_string) (xdrs, cpp, LASTUNSIGNED))
-    {
-      return TRUE;
-    }
-  return FALSE;
-}
diff --git a/source/unres/src_MD/xdrf/xdr.h b/source/unres/src_MD/xdrf/xdr.h
deleted file mode 100644 (file)
index 2602ad9..0000000
+++ /dev/null
@@ -1,379 +0,0 @@
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-
-/*
- * xdr.h, External Data Representation Serialization Routines.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-#ifndef _RPC_XDR_H
-#define _RPC_XDR_H 1
-
-#include <features.h>
-#include <sys/types.h>
-#include "types.h"
-
-/* We need FILE.  */
-#include <stdio.h>
-
-__BEGIN_DECLS
-
-/*
- * XDR provides a conventional way for converting between C data
- * types and an external bit-string representation.  Library supplied
- * routines provide for the conversion on built-in C data types.  These
- * routines and utility routines defined here are used to help implement
- * a type encode/decode routine for each user-defined type.
- *
- * Each data type provides a single procedure which takes two arguments:
- *
- *      bool_t
- *      xdrproc(xdrs, argresp)
- *              XDR *xdrs;
- *              <type> *argresp;
- *
- * xdrs is an instance of a XDR handle, to which or from which the data
- * type is to be converted.  argresp is a pointer to the structure to be
- * converted.  The XDR handle contains an operation field which indicates
- * which of the operations (ENCODE, DECODE * or FREE) is to be performed.
- *
- * XDR_DECODE may allocate space if the pointer argresp is null.  This
- * data can be freed with the XDR_FREE operation.
- *
- * We write only one procedure per data type to make it easy
- * to keep the encode and decode procedures for a data type consistent.
- * In many cases the same code performs all operations on a user defined type,
- * because all the hard work is done in the component type routines.
- * decode as a series of calls on the nested data types.
- */
-
-/*
- * Xdr operations.  XDR_ENCODE causes the type to be encoded into the
- * stream.  XDR_DECODE causes the type to be extracted from the stream.
- * XDR_FREE can be used to release the space allocated by an XDR_DECODE
- * request.
- */
-enum xdr_op {
-  XDR_ENCODE = 0,
-  XDR_DECODE = 1,
-  XDR_FREE = 2
-};
-
-/*
- * This is the number of bytes per unit of external data.
- */
-#define BYTES_PER_XDR_UNIT     (4)
-/*
- * This only works if the above is a power of 2.  But it's defined to be
- * 4 by the appropriate RFCs.  So it will work.  And it's normally quicker
- * than the old routine.
- */
-#if 1
-#define RNDUP(x)  (((x) + BYTES_PER_XDR_UNIT - 1) & ~(BYTES_PER_XDR_UNIT - 1))
-#else /* this is the old routine */
-#define RNDUP(x)  ((((x) + BYTES_PER_XDR_UNIT - 1) / BYTES_PER_XDR_UNIT) \
-                   * BYTES_PER_XDR_UNIT)
-#endif
-
-/*
- * The XDR handle.
- * Contains operation which is being applied to the stream,
- * an operations vector for the particular implementation (e.g. see xdr_mem.c),
- * and two private fields for the use of the particular implementation.
- */
-typedef struct XDR XDR;
-struct XDR
-  {
-    enum xdr_op x_op;          /* operation; fast additional param */
-    struct xdr_ops
-      {
-       bool_t (*x_getlong) (XDR *__xdrs, long *__lp);
-       /* get a long from underlying stream */
-       bool_t (*x_putlong) (XDR *__xdrs, __const long *__lp);
-       /* put a long to " */
-       bool_t (*x_getbytes) (XDR *__xdrs, caddr_t __addr, u_int __len);
-       /* get some bytes from " */
-       bool_t (*x_putbytes) (XDR *__xdrs, __const char *__addr, u_int __len);
-       /* put some bytes to " */
-       u_int (*x_getpostn) (__const XDR *__xdrs);
-       /* returns bytes off from beginning */
-       bool_t (*x_setpostn) (XDR *__xdrs, u_int __pos);
-       /* lets you reposition the stream */
-       int32_t *(*x_inline) (XDR *__xdrs, u_int __len);
-       /* buf quick ptr to buffered data */
-       void (*x_destroy) (XDR *__xdrs);
-       /* free privates of this xdr_stream */
-       bool_t (*x_getint32) (XDR *__xdrs, int32_t *__ip);
-       /* get a int from underlying stream */
-       bool_t (*x_putint32) (XDR *__xdrs, __const int32_t *__ip);
-       /* put a int to " */
-      }
-     *x_ops;
-    caddr_t x_public;          /* users' data */
-    caddr_t x_private;         /* pointer to private data */
-    caddr_t x_base;            /* private used for position info */
-    u_int x_handy;             /* extra private word */
-  };
-
-/*
- * A xdrproc_t exists for each data type which is to be encoded or decoded.
- *
- * The second argument to the xdrproc_t is a pointer to an opaque pointer.
- * The opaque pointer generally points to a structure of the data type
- * to be decoded.  If this pointer is 0, then the type routines should
- * allocate dynamic storage of the appropriate size and return it.
- * bool_t       (*xdrproc_t)(XDR *, caddr_t *);
- */
-typedef bool_t (*xdrproc_t) (XDR *, void *,...);
-
-
-/*
- * Operations defined on a XDR handle
- *
- * XDR          *xdrs;
- * int32_t      *int32p;
- * long         *longp;
- * caddr_t       addr;
- * u_int         len;
- * u_int         pos;
- */
-#define XDR_GETINT32(xdrs, int32p)                      \
-        (*(xdrs)->x_ops->x_getint32)(xdrs, int32p)
-#define xdr_getint32(xdrs, int32p)                      \
-        (*(xdrs)->x_ops->x_getint32)(xdrs, int32p)
-
-#define XDR_PUTINT32(xdrs, int32p)                      \
-        (*(xdrs)->x_ops->x_putint32)(xdrs, int32p)
-#define xdr_putint32(xdrs, int32p)                      \
-        (*(xdrs)->x_ops->x_putint32)(xdrs, int32p)
-
-#define XDR_GETLONG(xdrs, longp)                       \
-       (*(xdrs)->x_ops->x_getlong)(xdrs, longp)
-#define xdr_getlong(xdrs, longp)                       \
-       (*(xdrs)->x_ops->x_getlong)(xdrs, longp)
-
-#define XDR_PUTLONG(xdrs, longp)                       \
-       (*(xdrs)->x_ops->x_putlong)(xdrs, longp)
-#define xdr_putlong(xdrs, longp)                       \
-       (*(xdrs)->x_ops->x_putlong)(xdrs, longp)
-
-#define XDR_GETBYTES(xdrs, addr, len)                  \
-       (*(xdrs)->x_ops->x_getbytes)(xdrs, addr, len)
-#define xdr_getbytes(xdrs, addr, len)                  \
-       (*(xdrs)->x_ops->x_getbytes)(xdrs, addr, len)
-
-#define XDR_PUTBYTES(xdrs, addr, len)                  \
-       (*(xdrs)->x_ops->x_putbytes)(xdrs, addr, len)
-#define xdr_putbytes(xdrs, addr, len)                  \
-       (*(xdrs)->x_ops->x_putbytes)(xdrs, addr, len)
-
-#define XDR_GETPOS(xdrs)                               \
-       (*(xdrs)->x_ops->x_getpostn)(xdrs)
-#define xdr_getpos(xdrs)                               \
-       (*(xdrs)->x_ops->x_getpostn)(xdrs)
-
-#define XDR_SETPOS(xdrs, pos)                          \
-       (*(xdrs)->x_ops->x_setpostn)(xdrs, pos)
-#define xdr_setpos(xdrs, pos)                          \
-       (*(xdrs)->x_ops->x_setpostn)(xdrs, pos)
-
-#define        XDR_INLINE(xdrs, len)                           \
-       (*(xdrs)->x_ops->x_inline)(xdrs, len)
-#define        xdr_inline(xdrs, len)                           \
-       (*(xdrs)->x_ops->x_inline)(xdrs, len)
-
-#define        XDR_DESTROY(xdrs)                                       \
-       do {                                                    \
-               if ((xdrs)->x_ops->x_destroy)                   \
-                       (*(xdrs)->x_ops->x_destroy)(xdrs);      \
-       } while (0)
-#define        xdr_destroy(xdrs)                                       \
-       do {                                                    \
-               if ((xdrs)->x_ops->x_destroy)                   \
-                       (*(xdrs)->x_ops->x_destroy)(xdrs);      \
-       } while (0)
-
-/*
- * Support struct for discriminated unions.
- * You create an array of xdrdiscrim structures, terminated with
- * a entry with a null procedure pointer.  The xdr_union routine gets
- * the discriminant value and then searches the array of structures
- * for a matching value.  If a match is found the associated xdr routine
- * is called to handle that part of the union.  If there is
- * no match, then a default routine may be called.
- * If there is no match and no default routine it is an error.
- */
-#define NULL_xdrproc_t ((xdrproc_t)0)
-struct xdr_discrim
-{
-  int value;
-  xdrproc_t proc;
-};
-
-/*
- * Inline routines for fast encode/decode of primitive data types.
- * Caveat emptor: these use single memory cycles to get the
- * data from the underlying buffer, and will fail to operate
- * properly if the data is not aligned.  The standard way to use these
- * is to say:
- *      if ((buf = XDR_INLINE(xdrs, count)) == NULL)
- *              return (FALSE);
- *      <<< macro calls >>>
- * where ``count'' is the number of bytes of data occupied
- * by the primitive data types.
- *
- * N.B. and frozen for all time: each data type here uses 4 bytes
- * of external representation.
- */
-
-#define IXDR_GET_INT32(buf)           ((int32_t)ntohl((uint32_t)*(buf)++))
-#define IXDR_PUT_INT32(buf, v)        (*(buf)++ = (int32_t)htonl((uint32_t)(v)))
-#define IXDR_GET_U_INT32(buf)         ((uint32_t)IXDR_GET_INT32(buf))
-#define IXDR_PUT_U_INT32(buf, v)      IXDR_PUT_INT32(buf, (int32_t)(v))
-
-/* WARNING: The IXDR_*_LONG defines are removed by Sun for new platforms
- * and shouldn't be used any longer. Code which use this defines or longs
- * in the RPC code will not work on 64bit Solaris platforms !
- */
-#define IXDR_GET_LONG(buf) ((long)IXDR_GET_U_INT32(buf))
-#define IXDR_PUT_LONG(buf, v) ((long)IXDR_PUT_INT32(buf, (long)(v)))
-#define IXDR_GET_U_LONG(buf)         ((u_long)IXDR_GET_LONG(buf))
-#define IXDR_PUT_U_LONG(buf, v)              IXDR_PUT_LONG(buf, (long)(v))
-
-
-#define IXDR_GET_BOOL(buf)            ((bool_t)IXDR_GET_LONG(buf))
-#define IXDR_GET_ENUM(buf, t)         ((t)IXDR_GET_LONG(buf))
-#define IXDR_GET_SHORT(buf)           ((short)IXDR_GET_LONG(buf))
-#define IXDR_GET_U_SHORT(buf)         ((u_short)IXDR_GET_LONG(buf))
-
-#define IXDR_PUT_BOOL(buf, v)         IXDR_PUT_LONG(buf, (long)(v))
-#define IXDR_PUT_ENUM(buf, v)         IXDR_PUT_LONG(buf, (long)(v))
-#define IXDR_PUT_SHORT(buf, v)        IXDR_PUT_LONG(buf, (long)(v))
-#define IXDR_PUT_U_SHORT(buf, v)      IXDR_PUT_LONG(buf, (long)(v))
-
-/*
- * These are the "generic" xdr routines.
- * None of these can have const applied because it's not possible to
- * know whether the call is a read or a write to the passed parameter
- * also, the XDR structure is always updated by some of these calls.
- */
-extern bool_t xdr_void (void) __THROW;
-extern bool_t xdr_short (XDR *__xdrs, short *__sp) __THROW;
-extern bool_t xdr_u_short (XDR *__xdrs, u_short *__usp) __THROW;
-extern bool_t xdr_int (XDR *__xdrs, int *__ip) __THROW;
-extern bool_t xdr_u_int (XDR *__xdrs, u_int *__up) __THROW;
-extern bool_t xdr_long (XDR *__xdrs, long *__lp) __THROW;
-extern bool_t xdr_u_long (XDR *__xdrs, u_long *__ulp) __THROW;
-extern bool_t xdr_hyper (XDR *__xdrs, quad_t *__llp) __THROW;
-extern bool_t xdr_u_hyper (XDR *__xdrs, u_quad_t *__ullp) __THROW;
-extern bool_t xdr_longlong_t (XDR *__xdrs, quad_t *__llp) __THROW;
-extern bool_t xdr_u_longlong_t (XDR *__xdrs, u_quad_t *__ullp) __THROW;
-extern bool_t xdr_int8_t (XDR *__xdrs, int8_t *__ip) __THROW;
-extern bool_t xdr_uint8_t (XDR *__xdrs, uint8_t *__up) __THROW;
-extern bool_t xdr_int16_t (XDR *__xdrs, int16_t *__ip) __THROW;
-extern bool_t xdr_uint16_t (XDR *__xdrs, uint16_t *__up) __THROW;
-extern bool_t xdr_int32_t (XDR *__xdrs, int32_t *__ip) __THROW;
-extern bool_t xdr_uint32_t (XDR *__xdrs, uint32_t *__up) __THROW;
-extern bool_t xdr_int64_t (XDR *__xdrs, int64_t *__ip) __THROW;
-extern bool_t xdr_uint64_t (XDR *__xdrs, uint64_t *__up) __THROW;
-extern bool_t xdr_quad_t (XDR *__xdrs, quad_t *__ip) __THROW;
-extern bool_t xdr_u_quad_t (XDR *__xdrs, u_quad_t *__up) __THROW;
-extern bool_t xdr_bool (XDR *__xdrs, bool_t *__bp) __THROW;
-extern bool_t xdr_enum (XDR *__xdrs, enum_t *__ep) __THROW;
-extern bool_t xdr_array (XDR * _xdrs, caddr_t *__addrp, u_int *__sizep,
-                        u_int __maxsize, u_int __elsize, xdrproc_t __elproc)
-     __THROW;
-extern bool_t xdr_bytes (XDR *__xdrs, char **__cpp, u_int *__sizep,
-                        u_int __maxsize) __THROW;
-extern bool_t xdr_opaque (XDR *__xdrs, caddr_t __cp, u_int __cnt) __THROW;
-extern bool_t xdr_string (XDR *__xdrs, char **__cpp, u_int __maxsize) __THROW;
-extern bool_t xdr_union (XDR *__xdrs, enum_t *__dscmp, char *__unp,
-                        __const struct xdr_discrim *__choices,
-                        xdrproc_t dfault) __THROW;
-extern bool_t xdr_char (XDR *__xdrs, char *__cp) __THROW;
-extern bool_t xdr_u_char (XDR *__xdrs, u_char *__cp) __THROW;
-extern bool_t xdr_vector (XDR *__xdrs, char *__basep, u_int __nelem,
-                         u_int __elemsize, xdrproc_t __xdr_elem) __THROW;
-extern bool_t xdr_float (XDR *__xdrs, float *__fp) __THROW;
-extern bool_t xdr_double (XDR *__xdrs, double *__dp) __THROW;
-extern bool_t xdr_reference (XDR *__xdrs, caddr_t *__xpp, u_int __size,
-                            xdrproc_t __proc) __THROW;
-extern bool_t xdr_pointer (XDR *__xdrs, char **__objpp,
-                          u_int __obj_size, xdrproc_t __xdr_obj) __THROW;
-extern bool_t xdr_wrapstring (XDR *__xdrs, char **__cpp) __THROW;
-extern u_long xdr_sizeof (xdrproc_t, void *) __THROW;
-
-/*
- * Common opaque bytes objects used by many rpc protocols;
- * declared here due to commonality.
- */
-#define MAX_NETOBJ_SZ 1024
-struct netobj
-{
-  u_int n_len;
-  char *n_bytes;
-};
-typedef struct netobj netobj;
-extern bool_t xdr_netobj (XDR *__xdrs, struct netobj *__np) __THROW;
-
-/*
- * These are the public routines for the various implementations of
- * xdr streams.
- */
-
-/* XDR using memory buffers */
-extern void xdrmem_create (XDR *__xdrs, __const caddr_t __addr,
-                          u_int __size, enum xdr_op __xop) __THROW;
-
-/* XDR using stdio library */
-extern void xdrstdio_create (XDR *__xdrs, FILE *__file, enum xdr_op __xop)
-     __THROW;
-
-/* XDR pseudo records for tcp */
-extern void xdrrec_create (XDR *__xdrs, u_int __sendsize,
-                          u_int __recvsize, caddr_t __tcp_handle,
-                          int (*__readit) (char *, char *, int),
-                          int (*__writeit) (char *, char *, int)) __THROW;
-
-/* make end of xdr record */
-extern bool_t xdrrec_endofrecord (XDR *__xdrs, bool_t __sendnow) __THROW;
-
-/* move to beginning of next record */
-extern bool_t xdrrec_skiprecord (XDR *__xdrs) __THROW;
-
-/* true if no more input */
-extern bool_t xdrrec_eof (XDR *__xdrs) __THROW;
-
-/* free memory buffers for xdr */
-extern void xdr_free (xdrproc_t __proc, char *__objp) __THROW;
-
-__END_DECLS
-
-#endif /* rpc/xdr.h */
diff --git a/source/unres/src_MD/xdrf/xdr_array.c b/source/unres/src_MD/xdrf/xdr_array.c
deleted file mode 100644 (file)
index 836405c..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-# define INTUSE(name) name
-# define INTDEF(name)
-/* @(#)xdr_array.c     2.1 88/07/29 4.0 RPCSRC */
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)xdr_array.c 1.10 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * xdr_array.c, Generic XDR routines implementation.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- * These are the "non-trivial" xdr primitives used to serialize and de-serialize
- * arrays.  See xdr.h for more info on the interface to xdr.
- */
-
-#include <stdio.h>
-#include <string.h>
-#include "types.h"
-#include "xdr.h"
-#include <libintl.h>
-#include <limits.h>
-
-#ifdef USE_IN_LIBIO
-# include <wchar.h>
-#endif
-
-#define LASTUNSIGNED   ((u_int)0-1)
-
-
-/*
- * XDR an array of arbitrary elements
- * *addrp is a pointer to the array, *sizep is the number of elements.
- * If addrp is NULL (*sizep * elsize) bytes are allocated.
- * elsize is the size (in bytes) of each element, and elproc is the
- * xdr procedure to call to handle each element of the array.
- */
-bool_t
-xdr_array (xdrs, addrp, sizep, maxsize, elsize, elproc)
-     XDR *xdrs;
-     caddr_t *addrp;           /* array pointer */
-     u_int *sizep;             /* number of elements */
-     u_int maxsize;            /* max numberof elements */
-     u_int elsize;             /* size in bytes of each element */
-     xdrproc_t elproc;         /* xdr routine to handle each element */
-{
-  u_int i;
-  caddr_t target = *addrp;
-  u_int c;             /* the actual element count */
-  bool_t stat = TRUE;
-  u_int nodesize;
-
-  /* like strings, arrays are really counted arrays */
-  if (!INTUSE(xdr_u_int) (xdrs, sizep))
-    {
-      return FALSE;
-    }
-  c = *sizep;
-  /*
-   * XXX: Let the overflow possibly happen with XDR_FREE because mem_free()
-   * doesn't actually use its second argument anyway.
-   */
-  if ((c > maxsize || c > UINT_MAX / elsize) && (xdrs->x_op != XDR_FREE))
-    {
-      return FALSE;
-    }
-  nodesize = c * elsize;
-
-  /*
-   * if we are deserializing, we may need to allocate an array.
-   * We also save time by checking for a null array if we are freeing.
-   */
-  if (target == NULL)
-    switch (xdrs->x_op)
-      {
-      case XDR_DECODE:
-       if (c == 0)
-         return TRUE;
-       *addrp = target = mem_alloc (nodesize);
-       if (target == NULL)
-         {
-           fprintf (stderr, "%s", "xdr_array: out of memory\n");
-           return FALSE;
-         }
-       __bzero (target, nodesize);
-       break;
-
-      case XDR_FREE:
-       return TRUE;
-      default:
-       break;
-      }
-
-  /*
-   * now we xdr each element of array
-   */
-  for (i = 0; (i < c) && stat; i++)
-    {
-      stat = (*elproc) (xdrs, target, LASTUNSIGNED);
-      target += elsize;
-    }
-
-  /*
-   * the array may need freeing
-   */
-  if (xdrs->x_op == XDR_FREE)
-    {
-      mem_free (*addrp, nodesize);
-      *addrp = NULL;
-    }
-  return stat;
-}
-INTDEF(xdr_array)
-
-/*
- * xdr_vector():
- *
- * XDR a fixed length array. Unlike variable-length arrays,
- * the storage of fixed length arrays is static and unfreeable.
- * > basep: base of the array
- * > size: size of the array
- * > elemsize: size of each element
- * > xdr_elem: routine to XDR each element
- */
-bool_t
-xdr_vector (xdrs, basep, nelem, elemsize, xdr_elem)
-     XDR *xdrs;
-     char *basep;
-     u_int nelem;
-     u_int elemsize;
-     xdrproc_t xdr_elem;
-{
-  u_int i;
-  char *elptr;
-
-  elptr = basep;
-  for (i = 0; i < nelem; i++)
-    {
-      if (!(*xdr_elem) (xdrs, elptr, LASTUNSIGNED))
-       {
-         return FALSE;
-       }
-      elptr += elemsize;
-    }
-  return TRUE;
-}
diff --git a/source/unres/src_MD/xdrf/xdr_float.c b/source/unres/src_MD/xdrf/xdr_float.c
deleted file mode 100644 (file)
index 15d3c88..0000000
+++ /dev/null
@@ -1,307 +0,0 @@
-/* @(#)xdr_float.c     2.1 88/07/29 4.0 RPCSRC */
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)xdr_float.c 1.12 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * xdr_float.c, Generic XDR routines implementation.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- * These are the "floating point" xdr routines used to (de)serialize
- * most common data items.  See xdr.h for more info on the interface to
- * xdr.
- */
-
-#include <stdio.h>
-#include <endian.h>
-
-#include "types.h"
-#include "xdr.h"
-
-/*
- * NB: Not portable.
- * This routine works on Suns (Sky / 68000's) and Vaxen.
- */
-
-#define LSW    (__FLOAT_WORD_ORDER == __BIG_ENDIAN)
-
-#ifdef vax
-
-/* What IEEE single precision floating point looks like on a Vax */
-struct ieee_single {
-       unsigned int    mantissa: 23;
-       unsigned int    exp     : 8;
-       unsigned int    sign    : 1;
-};
-
-/* Vax single precision floating point */
-struct vax_single {
-       unsigned int    mantissa1 : 7;
-       unsigned int    exp       : 8;
-       unsigned int    sign      : 1;
-       unsigned int    mantissa2 : 16;
-};
-
-#define VAX_SNG_BIAS   0x81
-#define IEEE_SNG_BIAS  0x7f
-
-static struct sgl_limits {
-       struct vax_single s;
-       struct ieee_single ieee;
-} sgl_limits[2] = {
-       {{ 0x7f, 0xff, 0x0, 0xffff },   /* Max Vax */
-       { 0x0, 0xff, 0x0 }},            /* Max IEEE */
-       {{ 0x0, 0x0, 0x0, 0x0 },        /* Min Vax */
-       { 0x0, 0x0, 0x0 }}              /* Min IEEE */
-};
-#endif /* vax */
-
-bool_t
-xdr_float(xdrs, fp)
-     XDR *xdrs;
-     float *fp;
-{
-#ifdef vax
-       struct ieee_single is;
-       struct vax_single vs, *vsp;
-       struct sgl_limits *lim;
-       int i;
-#endif
-       switch (xdrs->x_op) {
-
-       case XDR_ENCODE:
-#ifdef vax
-               vs = *((struct vax_single *)fp);
-               for (i = 0, lim = sgl_limits;
-                       i < sizeof(sgl_limits)/sizeof(struct sgl_limits);
-                       i++, lim++) {
-                       if ((vs.mantissa2 == lim->s.mantissa2) &&
-                               (vs.exp == lim->s.exp) &&
-                               (vs.mantissa1 == lim->s.mantissa1)) {
-                               is = lim->ieee;
-                               goto shipit;
-                       }
-               }
-               is.exp = vs.exp - VAX_SNG_BIAS + IEEE_SNG_BIAS;
-               is.mantissa = (vs.mantissa1 << 16) | vs.mantissa2;
-       shipit:
-               is.sign = vs.sign;
-               return (XDR_PUTLONG(xdrs, (long *)&is));
-#else
-               if (sizeof(float) == sizeof(long))
-                       return (XDR_PUTLONG(xdrs, (long *)fp));
-               else if (sizeof(float) == sizeof(int)) {
-                       long tmp = *(int *)fp;
-                       return (XDR_PUTLONG(xdrs, &tmp));
-               }
-               break;
-#endif
-
-       case XDR_DECODE:
-#ifdef vax
-               vsp = (struct vax_single *)fp;
-               if (!XDR_GETLONG(xdrs, (long *)&is))
-                       return (FALSE);
-               for (i = 0, lim = sgl_limits;
-                       i < sizeof(sgl_limits)/sizeof(struct sgl_limits);
-                       i++, lim++) {
-                       if ((is.exp == lim->ieee.exp) &&
-                               (is.mantissa == lim->ieee.mantissa)) {
-                               *vsp = lim->s;
-                               goto doneit;
-                       }
-               }
-               vsp->exp = is.exp - IEEE_SNG_BIAS + VAX_SNG_BIAS;
-               vsp->mantissa2 = is.mantissa;
-               vsp->mantissa1 = (is.mantissa >> 16);
-       doneit:
-               vsp->sign = is.sign;
-               return (TRUE);
-#else
-               if (sizeof(float) == sizeof(long))
-                       return (XDR_GETLONG(xdrs, (long *)fp));
-               else if (sizeof(float) == sizeof(int)) {
-                       long tmp;
-                       if (XDR_GETLONG(xdrs, &tmp)) {
-                               *(int *)fp = tmp;
-                               return (TRUE);
-                       }
-               }
-               break;
-#endif
-
-       case XDR_FREE:
-               return (TRUE);
-       }
-       return (FALSE);
-}
-
-/*
- * This routine works on Suns (Sky / 68000's) and Vaxen.
- */
-
-#ifdef vax
-/* What IEEE double precision floating point looks like on a Vax */
-struct ieee_double {
-       unsigned int    mantissa1 : 20;
-       unsigned int    exp       : 11;
-       unsigned int    sign      : 1;
-       unsigned int    mantissa2 : 32;
-};
-
-/* Vax double precision floating point */
-struct  vax_double {
-       unsigned int    mantissa1 : 7;
-       unsigned int    exp       : 8;
-       unsigned int    sign      : 1;
-       unsigned int    mantissa2 : 16;
-       unsigned int    mantissa3 : 16;
-       unsigned int    mantissa4 : 16;
-};
-
-#define VAX_DBL_BIAS   0x81
-#define IEEE_DBL_BIAS  0x3ff
-#define MASK(nbits)    ((1 << nbits) - 1)
-
-static struct dbl_limits {
-       struct  vax_double d;
-       struct  ieee_double ieee;
-} dbl_limits[2] = {
-       {{ 0x7f, 0xff, 0x0, 0xffff, 0xffff, 0xffff },   /* Max Vax */
-       { 0x0, 0x7ff, 0x0, 0x0 }},                      /* Max IEEE */
-       {{ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},               /* Min Vax */
-       { 0x0, 0x0, 0x0, 0x0 }}                         /* Min IEEE */
-};
-
-#endif /* vax */
-
-
-bool_t
-xdr_double(xdrs, dp)
-     XDR *xdrs;
-     double *dp;
-{
-#ifdef vax
-       struct  ieee_double id;
-       struct  vax_double vd;
-       register struct dbl_limits *lim;
-       int i;
-#endif
-
-       switch (xdrs->x_op) {
-
-       case XDR_ENCODE:
-#ifdef vax
-               vd = *((struct vax_double *)dp);
-               for (i = 0, lim = dbl_limits;
-                       i < sizeof(dbl_limits)/sizeof(struct dbl_limits);
-                       i++, lim++) {
-                       if ((vd.mantissa4 == lim->d.mantissa4) &&
-                               (vd.mantissa3 == lim->d.mantissa3) &&
-                               (vd.mantissa2 == lim->d.mantissa2) &&
-                               (vd.mantissa1 == lim->d.mantissa1) &&
-                               (vd.exp == lim->d.exp)) {
-                               id = lim->ieee;
-                               goto shipit;
-                       }
-               }
-               id.exp = vd.exp - VAX_DBL_BIAS + IEEE_DBL_BIAS;
-               id.mantissa1 = (vd.mantissa1 << 13) | (vd.mantissa2 >> 3);
-               id.mantissa2 = ((vd.mantissa2 & MASK(3)) << 29) |
-                               (vd.mantissa3 << 13) |
-                               ((vd.mantissa4 >> 3) & MASK(13));
-       shipit:
-               id.sign = vd.sign;
-               dp = (double *)&id;
-#endif
-               if (2*sizeof(long) == sizeof(double)) {
-                       long *lp = (long *)dp;
-                       return (XDR_PUTLONG(xdrs, lp+!LSW) &&
-                               XDR_PUTLONG(xdrs, lp+LSW));
-               } else if (2*sizeof(int) == sizeof(double)) {
-                       int *ip = (int *)dp;
-                       long tmp[2];
-                       tmp[0] = ip[!LSW];
-                       tmp[1] = ip[LSW];
-                       return (XDR_PUTLONG(xdrs, tmp) &&
-                               XDR_PUTLONG(xdrs, tmp+1));
-               }
-               break;
-
-       case XDR_DECODE:
-#ifdef vax
-               lp = (long *)&id;
-               if (!XDR_GETLONG(xdrs, lp++) || !XDR_GETLONG(xdrs, lp))
-                       return (FALSE);
-               for (i = 0, lim = dbl_limits;
-                       i < sizeof(dbl_limits)/sizeof(struct dbl_limits);
-                       i++, lim++) {
-                       if ((id.mantissa2 == lim->ieee.mantissa2) &&
-                               (id.mantissa1 == lim->ieee.mantissa1) &&
-                               (id.exp == lim->ieee.exp)) {
-                               vd = lim->d;
-                               goto doneit;
-                       }
-               }
-               vd.exp = id.exp - IEEE_DBL_BIAS + VAX_DBL_BIAS;
-               vd.mantissa1 = (id.mantissa1 >> 13);
-               vd.mantissa2 = ((id.mantissa1 & MASK(13)) << 3) |
-                               (id.mantissa2 >> 29);
-               vd.mantissa3 = (id.mantissa2 >> 13);
-               vd.mantissa4 = (id.mantissa2 << 3);
-       doneit:
-               vd.sign = id.sign;
-               *dp = *((double *)&vd);
-               return (TRUE);
-#else
-               if (2*sizeof(long) == sizeof(double)) {
-                       long *lp = (long *)dp;
-                       return (XDR_GETLONG(xdrs, lp+!LSW) &&
-                               XDR_GETLONG(xdrs, lp+LSW));
-               } else if (2*sizeof(int) == sizeof(double)) {
-                       int *ip = (int *)dp;
-                       long tmp[2];
-                       if (XDR_GETLONG(xdrs, tmp+!LSW) &&
-                           XDR_GETLONG(xdrs, tmp+LSW)) {
-                               ip[0] = tmp[0];
-                               ip[1] = tmp[1];
-                               return (TRUE);
-                       }
-               }
-               break;
-#endif
-
-       case XDR_FREE:
-               return (TRUE);
-       }
-       return (FALSE);
-}
diff --git a/source/unres/src_MD/xdrf/xdr_stdio.c b/source/unres/src_MD/xdrf/xdr_stdio.c
deleted file mode 100644 (file)
index 12b1709..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-
-/*
- * xdr_stdio.c, XDR implementation on standard i/o file.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- * This set of routines implements a XDR on a stdio stream.
- * XDR_ENCODE serializes onto the stream, XDR_DECODE de-serializes
- * from the stream.
- */
-
-#include "types.h"
-#include <stdio.h>
-#include "xdr.h"
-
-#ifdef USE_IN_LIBIO
-# include <libio/iolibio.h>
-# define fflush(s) INTUSE(_IO_fflush) (s)
-# define fread(p, m, n, s) INTUSE(_IO_fread) (p, m, n, s)
-# define ftell(s) INTUSE(_IO_ftell) (s)
-# define fwrite(p, m, n, s) INTUSE(_IO_fwrite) (p, m, n, s)
-#endif
-
-static bool_t xdrstdio_getlong (XDR *, long *);
-static bool_t xdrstdio_putlong (XDR *, const long *);
-static bool_t xdrstdio_getbytes (XDR *, caddr_t, u_int);
-static bool_t xdrstdio_putbytes (XDR *, const char *, u_int);
-static u_int xdrstdio_getpos (const XDR *);
-static bool_t xdrstdio_setpos (XDR *, u_int);
-static int32_t *xdrstdio_inline (XDR *, u_int);
-static void xdrstdio_destroy (XDR *);
-static bool_t xdrstdio_getint32 (XDR *, int32_t *);
-static bool_t xdrstdio_putint32 (XDR *, const int32_t *);
-
-/*
- * Ops vector for stdio type XDR
- */
-static const struct xdr_ops xdrstdio_ops =
-{
-  xdrstdio_getlong,            /* deserialize a long int */
-  xdrstdio_putlong,            /* serialize a long int */
-  xdrstdio_getbytes,           /* deserialize counted bytes */
-  xdrstdio_putbytes,           /* serialize counted bytes */
-  xdrstdio_getpos,             /* get offset in the stream */
-  xdrstdio_setpos,             /* set offset in the stream */
-  xdrstdio_inline,             /* prime stream for inline macros */
-  xdrstdio_destroy,            /* destroy stream */
-  xdrstdio_getint32,           /* deserialize a int */
-  xdrstdio_putint32            /* serialize a int */
-};
-
-/*
- * Initialize a stdio xdr stream.
- * Sets the xdr stream handle xdrs for use on the stream file.
- * Operation flag is set to op.
- */
-void
-xdrstdio_create (XDR *xdrs, FILE *file, enum xdr_op op)
-{
-  xdrs->x_op = op;
-  /* We have to add the const since the `struct xdr_ops' in `struct XDR'
-     is not `const'.  */
-  xdrs->x_ops = (struct xdr_ops *) &xdrstdio_ops;
-  xdrs->x_private = (caddr_t) file;
-  xdrs->x_handy = 0;
-  xdrs->x_base = 0;
-}
-
-/*
- * Destroy a stdio xdr stream.
- * Cleans up the xdr stream handle xdrs previously set up by xdrstdio_create.
- */
-static void
-xdrstdio_destroy (XDR *xdrs)
-{
-  (void) fflush ((FILE *) xdrs->x_private);
-  /* xx should we close the file ?? */
-};
-
-static bool_t
-xdrstdio_getlong (XDR *xdrs, long *lp)
-{
-  u_int32_t mycopy;
-
-  if (fread ((caddr_t) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1)
-    return FALSE;
-  *lp = (long) ntohl (mycopy);
-  return TRUE;
-}
-
-static bool_t
-xdrstdio_putlong (XDR *xdrs, const long *lp)
-{
-  int32_t mycopy = htonl ((u_int32_t) *lp);
-
-  if (fwrite ((caddr_t) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1)
-    return FALSE;
-  return TRUE;
-}
-
-static bool_t
-xdrstdio_getbytes (XDR *xdrs, const caddr_t addr, u_int len)
-{
-  if ((len != 0) && (fread (addr, (int) len, 1,
-                           (FILE *) xdrs->x_private) != 1))
-    return FALSE;
-  return TRUE;
-}
-
-static bool_t
-xdrstdio_putbytes (XDR *xdrs, const char *addr, u_int len)
-{
-  if ((len != 0) && (fwrite (addr, (int) len, 1,
-                            (FILE *) xdrs->x_private) != 1))
-    return FALSE;
-  return TRUE;
-}
-
-static u_int
-xdrstdio_getpos (const XDR *xdrs)
-{
-  return (u_int) ftell ((FILE *) xdrs->x_private);
-}
-
-static bool_t
-xdrstdio_setpos (XDR *xdrs, u_int pos)
-{
-  return fseek ((FILE *) xdrs->x_private, (long) pos, 0) < 0 ? FALSE : TRUE;
-}
-
-static int32_t *
-xdrstdio_inline (XDR *xdrs, u_int len)
-{
-  /*
-   * Must do some work to implement this: must insure
-   * enough data in the underlying stdio buffer,
-   * that the buffer is aligned so that we can indirect through a
-   * long *, and stuff this pointer in xdrs->x_buf.  Doing
-   * a fread or fwrite to a scratch buffer would defeat
-   * most of the gains to be had here and require storage
-   * management on this buffer, so we don't do this.
-   */
-  return NULL;
-}
-
-static bool_t
-xdrstdio_getint32 (XDR *xdrs, int32_t *ip)
-{
-  int32_t mycopy;
-
-  if (fread ((caddr_t) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1)
-    return FALSE;
-  *ip = ntohl (mycopy);
-  return TRUE;
-}
-
-static bool_t
-xdrstdio_putint32 (XDR *xdrs, const int32_t *ip)
-{
-  int32_t mycopy = htonl (*ip);
-
-  ip = &mycopy;
-  if (fwrite ((caddr_t) ip, 4, 1, (FILE *) xdrs->x_private) != 1)
-    return FALSE;
-  return TRUE;
-}
-
-/* libc_hidden_def (xdrstdio_create) */
diff --git a/source/unres/src_MD/xdrf/xdrf.h b/source/unres/src_MD/xdrf/xdrf.h
deleted file mode 100644 (file)
index dedf5a2..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-/*_________________________________________________________________
- |
- | xdrf.h - include file for C routines that want to use the 
- |         functions below.
-*/
-
-int xdropen(XDR *xdrs, const char *filename, const char *type);
-int xdrclose(XDR *xdrs) ;
-int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) ;
-
diff --git a/source/unres/src_MIN/CMakeLists.txt b/source/unres/src_MIN/CMakeLists.txt
new file mode 100644 (file)
index 0000000..c57587a
--- /dev/null
@@ -0,0 +1,210 @@
+#
+# CMake project file for UNRES with Minimazation 
+# 
+
+enable_language (Fortran)
+
+#================================
+# Set source file lists
+#================================
+set(UNRES_MIN_SRC0 
+       arcos.f
+       cartder.F 
+       cartprint.f 
+       chainbuild.F 
+       checkder_p.F 
+       convert.f 
+       econstr_local.F
+       geomout_min.F
+       initialize_p.F 
+       intcartderiv.F
+       intcor.f 
+       intlocal.f 
+       int_to_cart.f 
+       matmult.f 
+       minimize_p.F
+       misc.f 
+       MP.F 
+       parmread.F 
+       pinorm.f 
+       printmat.f 
+       randgens.f 
+       readrtns_min.F
+       rescode.f 
+       rmdd.f 
+       sumsld.f 
+       timing.F
+       unres_min.F
+
+)
+
+set(UNRES_MIN_SRC1 
+       cored.f
+)
+
+set(UNRES_MIN_SRC2 
+       readpdb.F
+)
+
+set(UNRES_MIN_SRC3 
+       energy_p_new_barrier.F
+       gradient_p.F
+)
+
+set(UNRES_MIN_PP_SRC
+       bank.F 
+       cartder.F 
+       chainbuild.F 
+       checkder_p.F 
+       compare_s1.F
+       cored.f
+       csa.f 
+       dihed_cons.F
+       diff12.f 
+       econstr_local.F
+       energy_p_new.F
+       energy_p_new_barrier.F 
+       energy_split-sep.F 
+       entmcm.F 
+       gen_rand_conf.F
+       geomout.F 
+       gradient_p.F 
+       intcor.f
+       initialize_p.F 
+       intcartderiv.F 
+       lagrangian_lesyng.F 
+       matmult.f
+       mc.F 
+       mcm.F 
+       MD_A-MTS.F
+       minimize_p.F 
+       minim_jlee.F
+       minim_mcmf.F 
+       MP.F 
+       MREMD.F
+       newconf.f 
+       parmread.F 
+       permut.F
+       prng_32.F 
+       q_measure1.F 
+       q_measure3.F 
+       q_measure.F
+       ran.f
+       rattle.F 
+       readpdb.F 
+       readrtns_min.F
+       regularize.F
+       rmdd.f 
+       rmsd.F 
+       sc_move.F
+       shift.F 
+       stochfric.F
+       sumsld.f 
+       test.F 
+       thread.F 
+       timing.F
+       together.F
+       unres.F 
+) 
+
+
+#================================================
+# Set comipiler flags for different sourcefiles  
+#================================================
+if (Fortran_COMPILER_NAME STREQUAL "ifort")
+  find_package (Threads)
+  set(FFLAGS0 "-g -ip -w" ) 
+  set(FFLAGS1 "-w -g -d2 -CA -CB" ) 
+  set(FFLAGS2 "-w -g -00 ")
+  set(FFLAGS3 "-g -w -ipo " )
+elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
+  set(FFLAGS0 "-O" ) 
+  set(FFLAGS1 "-g -C" ) 
+  set(FFLAGS2 "-g -O0 ")
+  set(FFLAGS3 "-O3" )
+endif (Fortran_COMPILER_NAME STREQUAL "ifort")
+
+
+set_property(SOURCE ${UNRES_MIN_SRC0} PROPERTY COMPILE_FLAGS ${FFLAGS0} )
+set_property(SOURCE ${UNRES_MIN_SRC1} PROPERTY COMPILE_FLAGS ${FFLAGS1} )
+set_property(SOURCE ${UNRES_MIN_SRC2} PROPERTY COMPILE_FLAGS ${FFLAGS2} )
+set_property(SOURCE ${UNRES_MIM_SRC3} PROPERTY COMPILE_FLAGS ${FFLAGS3} )
+
+# set preprocesor flags   
+set(CPPFLAGS "PROCOR -DLINUX -DISNAN -DSPLITELE -DLANG0" )
+
+if (Fortran_COMPILER_NAME STREQUAL "ifort")
+  # Add ifort preprocessor flags
+  set(CPPFLAGS "${CPPFLAGS} -DPGI") 
+elseif (Fortran_COMPILER_NAME STREQUAL "f95")
+  # Add gfortran flags
+  set(CPPFLAGS "${CPPFLAGS} -DG77") 
+elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
+  # Add gfortran flags
+  set(CPPFLAGS "${CPPFLAGS} -DG77") 
+endif (Fortran_COMPILER_NAME STREQUAL "ifort")
+
+
+# add 64-bit specific preprocessor flags
+if (architektura STREQUAL "64")
+  set(CPPFLAGS "${CPPFLAGS} -DAMD64")
+endif (architektura STREQUAL "64")
+
+# Apply preprocesor flags to *.F files
+set_property(SOURCE ${UNRES_MIN_PP_SRC} PROPERTY COMPILE_DEFINITIONS ${CPPFLAGS} )  
+
+
+
+#========================================
+#  Setting binary name
+#========================================
+set(UNRES_BIN "unres_min_${Fortran_COMPILER_NAME}.exe")
+
+#set(UNRES_CINFO_DIR "${CMAKE_CURRENT_BINARY_DIR}" )
+
+#=========================================
+# Set full unres MIN sources
+#=========================================
+set(UNRES_MIN_SRCS ${UNRES_MIN_SRC0} ${UNRES_MIN_SRC1} ${UNRES_MIN_SRC2} ${UNRES_MIN_SRC3} cinfo.f )
+
+#=========================================
+# Build the binary
+#=========================================
+add_executable(UNRES_BIN-MIN ${UNRES_MIN_SRCS} )
+set_target_properties(UNRES_BIN-MIN PROPERTIES OUTPUT_NAME ${UNRES_BIN})
+
+if (Fortran_COMPILER_NAME STREQUAL "ifort")
+  target_link_libraries (UNRES_BIN-MIN ${CMAKE_THREAD_LIBS_INIT})
+endif (Fortran_COMPILER_NAME STREQUAL "ifort")
+
+#set_property(TARGET ${UNRES_BIN} PROPERTY RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/unres/MD )
+
+#=========================================
+# TESTS 
+#=========================================
+
+#-- Copy all the data files from the test directory into the source directory
+#SET(UNRES_TEST_FILES
+#      ala10.inp
+#    )
+
+#FOREACH (UNRES_TEST_FILE ${UNRES_TEST_FILES})
+#      SET (unres_test_dest "${CMAKE_CURRENT_BINARY_DIR}/${UNRES_TEST_FILE}")
+#      MESSAGE (STATUS " Copying ${UNRES_TEST_FILE} from ${CMAKE_SOURCE_DIR}/examples/unres/MD/ff_gab/${UNRES_TEST_FILE} to ${unres_test_dest}")
+#      ADD_CUSTOM_COMMAND (
+#          TARGET     ${UNRES_BIN}
+#          POST_BUILD
+#          COMMAND    ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/examples/unres/MD/ff_gab/${UNRES_TEST_FILE} ${unres_test_dest}
+#      )
+#ENDFOREACH (UNRES_TEST_FILE ${UNRES_TEST_FILES})
+
+#=========================================
+# Generate data test files
+#=========================================
+
+#if(NOT UNRES_WITH_MPI)
+
+#  add_test(NAME UNRES_MD_Ala10 COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh )
+
+#endif(NOT UNRES_WITH_MPI)
index 9401083..0c85368 100644 (file)
@@ -20,7 +20,7 @@ FFLAGS2 = -c -g -O0
 FFLAGSE = -c -O3 
 
 
-BIN = ../bin/unres_min_gfortran.exe
+BIN = ../../../bin/unres/MIN/unres_min_gfortran.exe
 LIBS = 
 #LIBS =  -lpthread 
 
diff --git a/source/unres/src_MIN/cinfo.f.new b/source/unres/src_MIN/cinfo.f.new
deleted file mode 100644 (file)
index e69de29..0000000
index cd99bdb..3fcf739 100644 (file)
@@ -629,7 +629,7 @@ c      enddo
           gradc(j,i,icg)=gradbufc(j,i)+welec*gelc(j,i)+
      &                wel_loc*gel_loc(j,i)+
      &                0.5d0*(wscp*gvdwc_scpp(j,i)+
-     &                welec*gelc_long(j,i)
+     &                welec*gelc_long(j,i)+
      &                wel_loc*gel_loc_long(j,i)+
      &                wcorr*gcorr_long(j,i)+
      &                wcorr5*gradcorr5_long(j,i)+
@@ -7906,18 +7906,18 @@ c--------------------------------------------------------------------------
       logical lprn
       common /kutas/ lprn
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-C                                              
-C      Parallel       Antiparallel
-C                                             
-C          o             o         
-C         /l\           /j\       
-C        /   \         /   \      
-C       /| o |         | o |\     
-C     \ j|/k\|  /   \  |/k\|l /   
-C      \ /   \ /     \ /   \ /    
-C       o     o       o     o                
-C       i             i                     
-C
+C                                                                              C
+C      Parallel       Antiparallel                                             C
+C                                                                              C
+C          o             o                                                     C
+C         /l\           /j\                                                    C
+C        /   \         /   \                                                   C
+C       /| o |         | o |\                                                  C
+C     \ j|/k\|  /   \  |/k\|l /                                                C
+C      \ /   \ /     \ /   \ /                                                 C
+C       o     o       o     o                                                  C
+C       i             i                                                        C
+C                                                                              C
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
       itk=itortyp(itype(k))
       s1= scalar2(AEAb1(1,2,imat),CUgb2(1,i))
@@ -8011,18 +8011,18 @@ c----------------------------------------------------------------------------
       logical lprn
       common /kutas/ lprn
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-C                                              
-C      Parallel       Antiparallel
-C                                             
-C          o             o         
-C     \   /l\           /j\   /   
-C      \ /   \         /   \ /    
-C       o| o |         | o |o     
-C     \ j|/k\|      \  |/k\|l     
-C      \ /   \       \ /   \      
-C       o             o                      
-C       i             i                     
-C
+C                                                                              C
+C      Parallel       Antiparallel                                             C
+C                                                                              C
+C          o             o                                                     C
+C     \   /l\           /j\   /                                                C
+C      \ /   \         /   \ /                                                 C
+C       o| o |         | o |o                                                  C
+C     \ j|/k\|      \  |/k\|l                                                  C
+C      \ /   \       \ /   \                                                   C
+C       o             o                                                        C
+C       i             i                                                        C
+C                                                                              C
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
 cd      write (2,*) 'eello6_graph2: i,',i,' j',j,' k',k,' l',l
 C AL 7/4/01 s1 would occur in the sixth-order moment, 
@@ -8193,18 +8193,18 @@ c----------------------------------------------------------------------------
       double precision vv(2),pizda(2,2),auxmat(2,2),auxvec(2)
       logical swap
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-C                                              
-C      Parallel       Antiparallel
-C                                             
-C          o             o         
-C         /l\   /   \   /j\       
-C        /   \ /     \ /   \      
-C       /| o |o       o| o |\     
-C       j|/k\|  /      |/k\|l /   
-C        /   \ /       /   \ /    
-C       /     o       /     o                
-C       i             i                     
-C
+C                                                                              C
+C      Parallel       Antiparallel                                             C
+C                                                                              C
+C          o             o                                                     C 
+C         /l\   /   \   /j\                                                    C
+C        /   \ /     \ /   \                                                   C
+C       /| o |o       o| o |\                                                  C
+C       j|/k\|  /      |/k\|l /                                                C
+C        /   \ /       /   \ /                                                 C
+C       /     o       /     o                                                  C
+C       i             i                                                        C
+C                                                                              C
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
 C
 C 4/7/01 AL Component s1 was removed, because it pertains to the respective 
@@ -8310,18 +8310,18 @@ c----------------------------------------------------------------------------
      & auxvec1(2),auxmat1(2,2)
       logical swap
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-C                                              
-C      Parallel       Antiparallel
-C                                             
-C          o             o         
-C         /l\   /   \   /j\       
-C        /   \ /     \ /   \      
-C       /| o |o       o| o |\     
-C     \ j|/k\|      \  |/k\|l     
-C      \ /   \       \ /   \      
-C       o     \       o     \                
-C       i             i                     
-C
+C                                                                              C
+C      Parallel       Antiparallel                                             C
+C                                                                              C
+C          o             o                                                     C 
+C         /l\   /   \   /j\                                                    C
+C        /   \ /     \ /   \                                                   C
+C       /| o |o       o| o |\                                                  C 
+C     \ j|/k\|      \  |/k\|l                                                  C
+C      \ /   \       \ /   \                                                   C
+C       o     \       o     \                                                  C
+C       i             i                                                        C
+C                                                                              C
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
 C
 C 4/7/01 AL Component s1 was removed, because it pertains to the respective 
diff --git a/source/wham/src-M/CMakeLists.txt b/source/wham/src-M/CMakeLists.txt
new file mode 100644 (file)
index 0000000..184194c
--- /dev/null
@@ -0,0 +1,286 @@
+#
+# CMake project file for WHAM multichain version 
+# 
+
+enable_language (Fortran)
+
+#================================
+# Set source file lists
+#================================
+set(UNRES_WHAM_M_SRC0 
+       wham_multparm.F
+       bxread.F
+       xread.F
+       cxread.F
+       enecalc1.F 
+       energy_p_new.F
+       initialize_p.F
+       molread_zs.F
+       openunits.F
+       readrtns.F
+       arcos.f
+       cartder.f
+       cartprint.f
+       chainbuild.F
+       geomout.F
+       gnmr1.f
+       icant.f
+       intcor.f
+       int_from_cart.f
+       make_ensemble1.F
+       matmult.f
+       misc.f
+       mygetenv.F
+       parmread.F
+       permut.F        
+       pinorm.f
+       printmat.f
+       rescode.f
+       setup_var.f
+       slices.F
+       store_parm.F
+       timing.F
+       wham_calc1.F
+        readrtns_compar.F
+       read_dist_constr.F
+       readpdb.f
+       fitsq.f 
+       contact.f
+       elecont.f
+       contfunc.f
+       cont_frag.f
+       conf_compar.F
+       match_contact.f
+       angnorm.f
+       odlodc.f
+       promienie.f
+       qwolynes.f
+       read_ref_str.F
+       rmscalc.f
+       secondary.f
+       proc_cont.f
+       define_pairs.f
+       mysort.f
+)
+
+set(UNRES_WHAM_M_PP_SRC
+       bxread.F
+       chainbuild.F
+       conf_compar.F
+       cxread.F
+       enecalc1.F
+       energy_p_new.F
+       geomout.F
+       initialize_p.F
+       make_ensemble1.F
+       molread_zs.F
+       mygetenv.F
+       openunits.F
+       parmread.F
+       permut.F        
+       read_ref_str.F
+       read_dist_constr.F
+       readrtns_compar.F
+       readrtns.F
+       slices.F
+       store_parm.F
+       timing.F
+       wham_calc1.F
+       wham_multparm.F
+       xread.F
+       proc_proc.c
+) 
+
+
+#================================================
+# Set comipiler flags for different sourcefiles  
+#================================================
+if (Fortran_COMPILER_NAME STREQUAL "ifort")
+  set(FFLAGS0 "-g -CB -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres -I${MPIF_INCLUDE_DIRECTORIES}" ) 
+elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
+  set(FFLAGS0 "-g -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres -I${MPIF_INCLUDE_DIRECTORIES}" ) 
+endif (Fortran_COMPILER_NAME STREQUAL "ifort")
+
+
+#=========================================
+# Add MPI compiler flags
+#=========================================
+if(UNRES_WITH_MPI)
+  set(FFLAGS0 "${FFLAGS0} -I${MPIF_INCLUDE_DIRECTORIES}")
+endif(UNRES_WITH_MPI)
+
+set_property(SOURCE ${UNRES_WHAM_M_SRC0} PROPERTY COMPILE_FLAGS ${FFLAGS0} )
+
+#=========================================
+# WHAM preprocesor flags
+#=========================================
+
+set(CPPFLAGS "PROCOR -DUNRES -DISNAN -DSPLITELE -DCRYST_BOND -DCRYST_THETA -DCRYST_SC" )
+
+#=========================================
+# System specific flags
+#=========================================
+if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+  set(CPPFLAGS "${CPPFLAGS} -DLINUX") 
+endif(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+
+#=========================================
+# Compiler specific flags
+#=========================================
+
+if (Fortran_COMPILER_NAME STREQUAL "ifort")
+  # Add ifort preprocessor flags
+  set(CPPFLAGS "${CPPFLAGS} -DPGI") 
+elseif (Fortran_COMPILER_NAME STREQUAL "f95")
+  # Add new gfortran flags
+  set(CPPFLAGS "${CPPFLAGS} -DG77") 
+elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
+  # Add old gfortran flags
+  set(CPPFLAGS "${CPPFLAGS} -DG77") 
+endif (Fortran_COMPILER_NAME STREQUAL "ifort")
+
+#=========================================
+# Add MPI preprocessor flags
+#=========================================
+set(CPPFLAGS "${CPPFLAGS} -DMPI") 
+
+#=========================================
+# Add 64-bit specific preprocessor flags
+#=========================================
+if (architektura STREQUAL "64")
+  set(CPPFLAGS "${CPPFLAGS} -DAMD64")
+endif (architektura STREQUAL "64")
+
+#=========================================
+# Apply preprocesor flags to *.F files
+#=========================================
+set_property(SOURCE ${UNRES_WHAM_M_PP_SRC} PROPERTY COMPILE_DEFINITIONS ${CPPFLAGS} )  
+
+
+#========================================
+#  Setting binary name
+#========================================
+set(UNRES_WHAM_M_BIN "wham_${Fortran_COMPILER_NAME}.exe")
+
+#=========================================
+# cinfo.f stupid workaround for cmake
+#  - shame on me ]:)
+#=========================================
+set_property(SOURCE compinfo.c PROPERTY CMAKE_C_FLAGS "-c" )
+add_executable(compinfo-wham-m compinfo.c)
+set_target_properties(compinfo-wham-m PROPERTIES OUTPUT_NAME compinfo)
+
+set(UNRES_CINFO_DIR "${CMAKE_CURRENT_BINARY_DIR}" )
+add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/cinfo.f 
+       COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/cinfo.f ${CMAKE_CURRENT_BINARY_DIR}/cinfo.f
+       COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/COMMON.IOUNITS ${CMAKE_CURRENT_BINARY_DIR}/COMMON.IOUNITS 
+       COMMAND ${CMAKE_CURRENT_BINARY_DIR}/compinfo | true     
+       DEPENDS compinfo-wham-m )
+set_property(SOURCE ${UNRES_CINFO_DIR}/cinfo.f PROPERTY COMPILE_FLAGS ${FFLAGS0} )
+
+#=========================================
+# Set full unres CSA sources
+#=========================================
+set(UNRES_WHAM_M_SRCS ${UNRES_WHAM_M_SRC0} ${UNRES_CINFO_DIR}/cinfo.f proc_proc.c)
+
+#=========================================
+# Build the binary
+#=========================================
+add_executable(UNRES_WHAM_M_BIN ${UNRES_WHAM_M_SRCS} )
+set_target_properties(UNRES_WHAM_M_BIN PROPERTIES OUTPUT_NAME ${UNRES_WHAM_M_BIN})
+
+#set_property(TARGET ${UNRES_BIN} PROPERTY RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/unres/MD )
+#add_dependencies (${UNRES_BIN} ${UNRES_XDRFLIB})
+
+#=========================================
+# Link libraries
+#=========================================
+# link MPI library (libmpich.a)  
+target_link_libraries( UNRES_WHAM_M_BIN ${MPIF_LIBRARIES} )
+# link libxdrf.a 
+target_link_libraries( UNRES_WHAM_M_BIN xdrf )
+
+#=========================================
+# TESTS 
+#=========================================
+
+#-- Copy all the data files from the test directory into the source directory
+#SET(UNRES_TEST_FILES
+#      ala10.inp
+#    )
+
+#FOREACH (UNRES_TEST_FILE ${UNRES_TEST_FILES})
+#      SET (unres_test_dest "${CMAKE_CURRENT_BINARY_DIR}/${UNRES_TEST_FILE}")
+#      MESSAGE (STATUS " Copying ${UNRES_TEST_FILE} from ${CMAKE_SOURCE_DIR}/examples/unres/MD/ff_gab/${UNRES_TEST_FILE} to ${unres_test_dest}")
+#      ADD_CUSTOM_COMMAND (
+#          TARGET     ${UNRES_BIN}
+#          POST_BUILD
+#          COMMAND    ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/examples/unres/MD/ff_gab/${UNRES_TEST_FILE} ${unres_test_dest}
+#      )
+#ENDFOREACH (UNRES_TEST_FILE ${UNRES_TEST_FILES})
+
+#=========================================
+# Generate data test files
+#=========================================
+#  test_single_ala.sh
+#=========================================
+
+#FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh
+#"#!/bin/sh
+#export POT=GB
+#export PREFIX=ala10
+#-----------------------------------------------------------------------------
+#UNRES_BIN=./${UNRES_BIN}
+#-----------------------------------------------------------------------------
+#DD=${CMAKE_SOURCE_DIR}/PARAM
+#export BONDPAR=$DD/bond.parm
+#export THETPAR=$DD/thetaml.5parm
+#export ROTPAR=$DD/scgauss.parm
+#export TORPAR=$DD/torsion_631Gdp.parm
+#export TORDPAR=$DD/torsion_double_631Gdp.parm
+#export ELEPAR=$DD/electr_631Gdp.parm
+#export SIDEPAR=$DD/sc_GB_opt.1gab_3S_qclass5no310-shan2-sc-16-10-8k
+#export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
+#export SCPPAR=$DD/scp.parm
+#export SCCORPAR=$DD/rotcorr_AM1.parm
+#export PATTERN=$DD/patterns.cart
+#-----------------------------------------------------------------------------
+#$UNRES_BIN
+#")
+
+#=========================================
+#  ala10.inp
+#=========================================
+
+#file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/ala10.inp
+#"ala10 unblocked
+#SEED=-1111333 MD ONE_LETTER rescale_mode=2 PDBOUT
+#nstep=15000 ntwe=100 ntwx=1000 dt=0.1 lang=0 tbf t_bath=300 damax=1.0          &
+#reset_moment=1000 reset_vel=1000 MDPDB
+#WLONG=1.35279 WSCP=1.59304 WELEC=0.71534 WBOND=1.00000 WANG=1.13873            &
+#WSCLOC=0.16258 WTOR=1.98599 WTORD=1.57069 WCORRH=0.42887 WCORR5=0.00000        &
+#WCORR6=0.00000 WEL_LOC=0.16036 WTURN3=1.68722 WTURN4=0.66230 WTURN6=0.00000    &
+#WVDWPP=0.11371 WHPB=1.00000                                                    &
+#CUTOFF=7.00000 WCORR4=0.00000
+#12
+#XAAAAAAAAAAX 
+# 0
+# 0
+#   90.0000   90.0000   90.0000  90.000   90.000   90.000   90.000   90.000 
+#   90.0000   90.0000
+#  180.0000  180.0000  180.0000 180.000  180.000  180.000  180.000  180.000
+#  180.0000
+#  110.0000  110.0000  110.0000 100.000  110.000  100.000  110.000  110.000 
+#  110.0000  110.0000
+# -120.0000 -120.0000 -120.000 -120.000 -120.000 -120.000 -120.000 -120.000
+# -120.0000 -120.0000
+#")
+
+
+# Add tests
+
+#if(NOT UNRES_WITH_MPI)
+
+#  add_test(NAME UNRES_MD_Ala10 COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh )
+
+#endif(NOT UNRES_WITH_MPI)
diff --git a/source/wham/src-M/compinfo b/source/wham/src-M/compinfo
deleted file mode 100755 (executable)
index a9d3c1d..0000000
Binary files a/source/wham/src-M/compinfo and /dev/null differ
index 813cf31..e28f686 100644 (file)
@@ -14,10 +14,10 @@ time_t Tp;
 
 in=fopen("cinfo.f","r");
 out=fopen("cinfo.f.new","w");
-fgets(buf,498,in);
-fprintf(out,"C DO NOT EDIT THIS FILE - IT HAS BEEN GENERATED BY COMPINFO.C\n");
-fgets(buf,498,in);
-sscanf(&buf[1],"%d %d %d",&iv1,&iv2,&iv3);
+if (fgets(buf,498,in) != NULL)
+       fprintf(out,"C DO NOT EDIT THIS FILE - IT HAS BEEN GENERATED BY COMPINFO.C\n");
+if (fgets(buf,498,in) != NULL)
+       sscanf(&buf[1],"%d %d %d",&iv1,&iv2,&iv3);
 iv3++;
 fprintf(out,"C %d %d %d\n",iv1,iv2,iv3);
 fprintf(out,"      subroutine cinfo\n");
@@ -26,18 +26,22 @@ fprintf(out,"      write(iout,*)'++++ Compile info ++++'\n");
 fprintf(out,"      write(iout,*)'Version %d.%-d build %d'\n",iv1,iv2,iv3);
 uname(&Name);
 time(&Tp);
-system("rm tmptmp; whoami > tmptmp");
+system("whoami > tmptmp");
 in1=fopen("tmptmp","r");
-fscanf(in1,"%s",buf1);
-fclose(in1);
+if (fscanf(in1,"%s",buf1) != EOF)
+{
 p1=ctime(&Tp);
 p1[strlen(p1)-1]='\0';
 fprintf(out,"      write(iout,*)'compiled %s'\n",p1);
 fprintf(out,"      write(iout,*)'compiled by %s@%s'\n",buf1,Name.nodename);
 fprintf(out,"      write(iout,*)'OS name:    %s '\n",Name.sysname);
 fprintf(out,"      write(iout,*)'OS release: %s '\n",Name.release);
-fprintf(out,"      write(iout,*)'OS version: %s '\n",Name.version);
+fprintf(out,"      write(iout,*)'OS version:',\n");
+fprintf(out,"     & ' %s '\n",Name.version);
 fprintf(out,"      write(iout,*)'flags:'\n");
+}
+system("rm tmptmp");
+fclose(in1);
 in1=fopen("Makefile","r");
 while(fgets(buf,498,in1) != NULL)
  {
@@ -55,8 +59,8 @@ while(fgets(buf,498,in1) != NULL)
     {
     strcat(buf,"\\");
     fprintf(out,"      write(iout,*)'%s'\n",buf);
-    fgets(buf,498,in1);
-    buf[strlen(buf)-1]='\0';
+    if (fgets(buf,498,in1) != NULL)
+       buf[strlen(buf)-1]='\0';
     if(strlen(buf) > 49)
      {
      buf[47]='\0';
diff --git a/source/wham/src-M/differ b/source/wham/src-M/differ
deleted file mode 100644 (file)
index 48384a1..0000000
+++ /dev/null
@@ -1,5173 +0,0 @@
-1c1
-<       subroutine etotal(energia,fact)
----
->       subroutine etotal(energia)
-4,5d3
-<       include 'DIMENSIONS.ZSCOPT'
-< 
-8d5
-< #endif
-12,18d8
-< 
-<       include 'COMMON.IOUNITS'
-<       double precision energia(0:max_ene),energia1(0:max_ene+1)
-< #ifdef MPL
-<       include 'COMMON.INFO'
-<       external d_vadd
-<       integer ready
-19a10,17
-> #ifdef MPI
->       include "mpif.h"
->       double precision weights_(n_ene)
-> #endif
->       include 'COMMON.SETUP'
->       include 'COMMON.IOUNITS'
->       double precision energia(0:n_ene)
->       include 'COMMON.LOCAL'
-25,28c23,98
-<       double precision fact(6)
-< cd      write(iout, '(a,i2)')'Calling etotal ipot=',ipot
-< cd    print *,'nnt=',nnt,' nct=',nct
-< C
----
->       include 'COMMON.VAR'
->       include 'COMMON.MD'
->       include 'COMMON.CONTROL'
->       include 'COMMON.TIME1'
-> #ifdef MPI      
-> c      print*,"ETOTAL Processor",fg_rank," absolute rank",myrank,
-> c     & " nfgtasks",nfgtasks
->       if (nfgtasks.gt.1) then
->         time00=MPI_Wtime()
-> C FG slaves call the following matching MPI_Bcast in ERGASTULUM
->         if (fg_rank.eq.0) then
->           call MPI_Bcast(0,1,MPI_INTEGER,king,FG_COMM,IERROR)
-> c          print *,"Processor",myrank," BROADCAST iorder"
-> C FG master sets up the WEIGHTS_ array which will be broadcast to the 
-> C FG slaves as WEIGHTS array.
->           weights_(1)=wsc
->           weights_(2)=wscp
->           weights_(3)=welec
->           weights_(4)=wcorr
->           weights_(5)=wcorr5
->           weights_(6)=wcorr6
->           weights_(7)=wel_loc
->           weights_(8)=wturn3
->           weights_(9)=wturn4
->           weights_(10)=wturn6
->           weights_(11)=wang
->           weights_(12)=wscloc
->           weights_(13)=wtor
->           weights_(14)=wtor_d
->           weights_(15)=wstrain
->           weights_(16)=wvdwpp
->           weights_(17)=wbond
->           weights_(18)=scal14
->           weights_(21)=wsccor
-> C FG Master broadcasts the WEIGHTS_ array
->           call MPI_Bcast(weights_(1),n_ene,
->      &        MPI_DOUBLE_PRECISION,king,FG_COMM,IERROR)
->         else
-> C FG slaves receive the WEIGHTS array
->           call MPI_Bcast(weights(1),n_ene,
->      &        MPI_DOUBLE_PRECISION,king,FG_COMM,IERROR)
->           wsc=weights(1)
->           wscp=weights(2)
->           welec=weights(3)
->           wcorr=weights(4)
->           wcorr5=weights(5)
->           wcorr6=weights(6)
->           wel_loc=weights(7)
->           wturn3=weights(8)
->           wturn4=weights(9)
->           wturn6=weights(10)
->           wang=weights(11)
->           wscloc=weights(12)
->           wtor=weights(13)
->           wtor_d=weights(14)
->           wstrain=weights(15)
->           wvdwpp=weights(16)
->           wbond=weights(17)
->           scal14=weights(18)
->           wsccor=weights(21)
->         endif
->         time_Bcast=time_Bcast+MPI_Wtime()-time00
->         time_Bcastw=time_Bcastw+MPI_Wtime()-time00
-> c        call chainbuild_cart
->       endif
-> c      print *,'Processor',myrank,' calling etotal ipot=',ipot
-> c      print *,'Processor',myrank,' nnt=',nnt,' nct=',nct
-> #else
-> c      if (modecalc.eq.12.or.modecalc.eq.14) then
-> c        call int_from_cart1(.false.)
-> c      endif
-> #endif     
-> #ifdef TIMING
->       time00=MPI_Wtime()
-> #endif
-> C 
-31c101
-<       goto (101,102,103,104,105) ipot
----
->       goto (101,102,103,104,105,106) ipot
-33c103
-<   101 call elj(evdw,evdw_t)
----
->   101 call elj(evdw)
-35c105
-<       goto 106
----
->       goto 107
-37,38c107,108
-<   102 call eljk(evdw,evdw_t)
-<       goto 106
----
->   102 call eljk(evdw)
->       goto 107
-40,41c110,111
-<   103 call ebp(evdw,evdw_t)
-<       goto 106
----
->   103 call ebp(evdw)
->       goto 107
-43,44c113,114
-<   104 call egb(evdw,evdw_t)
-<       goto 106
----
->   104 call egb(evdw)
->       goto 107
-46c116,119
-<   105 call egbv(evdw,evdw_t)
----
->   105 call egbv(evdw)
->       goto 107
-> C Soft-sphere potential
->   106 call e_softsphere(evdw)
-50c123,158
-<   106 call eelec(ees,evdw1,eel_loc,eello_turn3,eello_turn4)
----
->   107 continue
-> c      print *,"Processor",myrank," computed USCSC"
-> #ifdef TIMING
->       time01=MPI_Wtime() 
-> #endif
->       call vec_and_deriv
-> #ifdef TIMING
->       time_vec=time_vec+MPI_Wtime()-time01
-> #endif
-> c      print *,"Processor",myrank," left VEC_AND_DERIV"
->       if (ipot.lt.6) then
-> #ifdef SPLITELE
->          if (welec.gt.0d0.or.wvdwpp.gt.0d0.or.wel_loc.gt.0d0.or.
->      &       wturn3.gt.0d0.or.wturn4.gt.0d0 .or. wcorr.gt.0.0d0
->      &       .or. wcorr4.gt.0.0d0 .or. wcorr5.gt.0.d0
->      &       .or. wcorr6.gt.0.0d0 .or. wturn6.gt.0.0d0 ) then
-> #else
->          if (welec.gt.0d0.or.wel_loc.gt.0d0.or.
->      &       wturn3.gt.0d0.or.wturn4.gt.0d0 .or. wcorr.gt.0.0d0
->      &       .or. wcorr4.gt.0.0d0 .or. wcorr5.gt.0.d0 
->      &       .or. wcorr6.gt.0.0d0 .or. wturn6.gt.0.0d0 ) then
-> #endif
->             call eelec(ees,evdw1,eel_loc,eello_turn3,eello_turn4)
->          else
->             ees=0.0d0
->             evdw1=0.0d0
->             eel_loc=0.0d0
->             eello_turn3=0.0d0
->             eello_turn4=0.0d0
->          endif
->       else
-> c        write (iout,*) "Soft-spheer ELEC potential"
->         call eelec_soft_sphere(ees,evdw1,eel_loc,eello_turn3,
->      &   eello_turn4)
->       endif
-> c      print *,"Processor",myrank," computed UELEC"
-55c163,173
-<       call escp(evdw2,evdw2_14)
----
->       if (ipot.lt.6) then
->        if(wscp.gt.0d0) then
->         call escp(evdw2,evdw2_14)
->        else
->         evdw2=0
->         evdw2_14=0
->        endif
->       else
-> c        write (iout,*) "Soft-sphere SCP potential"
->         call escp_soft_sphere(evdw2,evdw2_14)
->       endif
-60d177
-< c      write (iout,*) "estr",estr
-70,71c187,192
-<       call ebend(ebe)
-< cd    print *,'Bend energy finished.'
----
->       if (wang.gt.0d0) then
->         call ebend(ebe)
->       else
->         ebe=0
->       endif
-> c      print *,"Processor",myrank," computed UB"
-76c197
-< cd    print *,'SCLOC energy finished.'
----
-> c      print *,"Processor",myrank," computed USC"
-81c202,208
-<       call etor(etors,edihcnstr,fact(1))
----
->       if (wtor.gt.0) then
->        call etor(etors,edihcnstr)
->       else
->        etors=0
->        edihcnstr=0
->       endif
-> c      print *,"Processor",myrank," computed Utor"
-85c212,217
-<       call etor_d(etors_d,fact(2))
----
->       if (wtor_d.gt.0) then
->        call etor_d(etors_d)
->       else
->        etors_d=0
->       endif
-> c      print *,"Processor",myrank," computed Utord"
-89c221,226
-<       call eback_sc_corr(esccor)
----
->       if (wsccor.gt.0.0d0) then
->         call eback_sc_corr(esccor)
->       else
->         esccor=0.0d0
->       endif
-> c      print *,"Processor",myrank," computed Usccorr"
-95,97c232,233
-<       if (wcorr4.gt.0.0d0 .or. wcorr5.gt.0.0d0 .or. wcorr6.gt.0.0d0 
-<      &    .or. wturn6.gt.0.0d0) then
-< c         print *,"calling multibody_eello"
----
->       if ((wcorr4.gt.0.0d0 .or. wcorr5.gt.0.0d0 .or. wcorr6.gt.0.0d0 
->      &    .or. wturn6.gt.0.0d0) .and. ipot.lt.6) then
-99,100c235,241
-< c         write (*,*) 'n_corr=',n_corr,' n_corr1=',n_corr1
-< c         print *,ecorr,ecorr5,ecorr6,eturn6
----
-> cd         write(2,*)'multibody_eello n_corr=',n_corr,' n_corr1=',n_corr1,
-> cd     &" ecorr",ecorr," ecorr5",ecorr5," ecorr6",ecorr6," eturn6",eturn6
->       else
->          ecorr=0.0d0
->          ecorr5=0.0d0
->          ecorr6=0.0d0
->          eturn6=0.0d0
-102c243
-<       if (wcorr4.eq.0.0d0 .and. wcorr.gt.0.0d0) then
----
->       if ((wcorr4.eq.0.0d0 .and. wcorr.gt.0.0d0) .and. ipot.lt.6) then
-103a245
-> cd         write (iout,*) "multibody_hb ecorr",ecorr
-105,123c247,259
-< c      write (iout,*) "ft(6)",fact(6)," evdw",evdw," evdw_t",evdw_t
-< #ifdef SPLITELE
-<       etot=wsc*(evdw+fact(6)*evdw_t)+wscp*evdw2+welec*fact(1)*ees
-<      & +wvdwpp*evdw1
-<      & +wang*ebe+wtor*fact(1)*etors+wscloc*escloc
-<      & +wstrain*ehpb+nss*ebr+wcorr*fact(3)*ecorr+wcorr5*fact(4)*ecorr5
-<      & +wcorr6*fact(5)*ecorr6+wturn4*fact(3)*eello_turn4
-<      & +wturn3*fact(2)*eello_turn3+wturn6*fact(5)*eturn6
-<      & +wel_loc*fact(2)*eel_loc+edihcnstr+wtor_d*fact(2)*etors_d
-<      & +wbond*estr+wsccor*fact(1)*esccor
-< #else
-<       etot=wsc*(evdw+fact(6)*evdw_t)+wscp*evdw2
-<      & +welec*fact(1)*(ees+evdw1)
-<      & +wang*ebe+wtor*fact(1)*etors+wscloc*escloc
-<      & +wstrain*ehpb+nss*ebr+wcorr*fact(3)*ecorr+wcorr5*fact(4)*ecorr5
-<      & +wcorr6*fact(5)*ecorr6+wturn4*fact(3)*eello_turn4
-<      & +wturn3*fact(2)*eello_turn3+wturn6*fact(5)*eturn6
-<      & +wel_loc*fact(2)*eel_loc+edihcnstr+wtor_d*fact(2)*etors_d
-<      & +wbond*estr+wsccor*fact(1)*esccor
----
-> c      print *,"Processor",myrank," computed Ucorr"
-> C 
-> C If performing constraint dynamics, call the constraint energy
-> C  after the equilibration time
->       if(usampl.and.totT.gt.eq_time) then
->          call EconstrQ   
->          call Econstr_back
->       else
->          Uconst=0.0d0
->          Uconst_back=0.0d0
->       endif
-> #ifdef TIMING
->       time_enecalc=time_enecalc+MPI_Wtime()-time00
-125c261,267
-<       energia(0)=etot
----
-> c      print *,"Processor",myrank," computed Uconstr"
-> #ifdef TIMING
->       time00=MPI_Wtime()
-> #endif
-> c
-> C Sum the energies
-> C
-129c271
-<       energia(17)=evdw2_14
----
->       energia(18)=evdw2_14
-132c274
-<       energia(17)=0.0d0
----
->       energia(18)=0.0d0
-153,156c295,402
-<       energia(18)=estr
-<       energia(19)=esccor
-<       energia(20)=edihcnstr
-<       energia(21)=evdw_t
----
->       energia(19)=edihcnstr
->       energia(17)=estr
->       energia(20)=Uconst+Uconst_back
->       energia(21)=esccor
-> c      print *," Processor",myrank," calls SUM_ENERGY"
->       call sum_energy(energia,.true.)
-> c      print *," Processor",myrank," left SUM_ENERGY"
-> #ifdef TIMING
->       time_sumene=time_sumene+MPI_Wtime()-time00
-> #endif
->       return
->       end
-> c-------------------------------------------------------------------------------
->       subroutine sum_energy(energia,reduce)
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
-> #ifndef ISNAN
->       external proc_proc
-> #ifdef WINPGI
-> cMS$ATTRIBUTES C ::  proc_proc
-> #endif
-> #endif
-> #ifdef MPI
->       include "mpif.h"
-> #endif
->       include 'COMMON.SETUP'
->       include 'COMMON.IOUNITS'
->       double precision energia(0:n_ene),enebuff(0:n_ene+1)
->       include 'COMMON.FFIELD'
->       include 'COMMON.DERIV'
->       include 'COMMON.INTERACT'
->       include 'COMMON.SBRIDGE'
->       include 'COMMON.CHAIN'
->       include 'COMMON.VAR'
->       include 'COMMON.CONTROL'
->       include 'COMMON.TIME1'
->       logical reduce
-> #ifdef MPI
->       if (nfgtasks.gt.1 .and. reduce) then
-> #ifdef DEBUG
->         write (iout,*) "energies before REDUCE"
->         call enerprint(energia)
->         call flush(iout)
-> #endif
->         do i=0,n_ene
->           enebuff(i)=energia(i)
->         enddo
->         time00=MPI_Wtime()
->         call MPI_Barrier(FG_COMM,IERR)
->         time_barrier_e=time_barrier_e+MPI_Wtime()-time00
->         time00=MPI_Wtime()
->         call MPI_Reduce(enebuff(0),energia(0),n_ene+1,
->      &    MPI_DOUBLE_PRECISION,MPI_SUM,king,FG_COMM,IERR)
-> #ifdef DEBUG
->         write (iout,*) "energies after REDUCE"
->         call enerprint(energia)
->         call flush(iout)
-> #endif
->         time_Reduce=time_Reduce+MPI_Wtime()-time00
->       endif
->       if (fg_rank.eq.0) then
-> #endif
->       evdw=energia(1)
-> #ifdef SCP14
->       evdw2=energia(2)+energia(18)
->       evdw2_14=energia(18)
-> #else
->       evdw2=energia(2)
-> #endif
-> #ifdef SPLITELE
->       ees=energia(3)
->       evdw1=energia(16)
-> #else
->       ees=energia(3)
->       evdw1=0.0d0
-> #endif
->       ecorr=energia(4)
->       ecorr5=energia(5)
->       ecorr6=energia(6)
->       eel_loc=energia(7)
->       eello_turn3=energia(8)
->       eello_turn4=energia(9)
->       eturn6=energia(10)
->       ebe=energia(11)
->       escloc=energia(12)
->       etors=energia(13)
->       etors_d=energia(14)
->       ehpb=energia(15)
->       edihcnstr=energia(19)
->       estr=energia(17)
->       Uconst=energia(20)
->       esccor=energia(21)
-> #ifdef SPLITELE
->       etot=wsc*evdw+wscp*evdw2+welec*ees+wvdwpp*evdw1
->      & +wang*ebe+wtor*etors+wscloc*escloc
->      & +wstrain*ehpb+nss*ebr+wcorr*ecorr+wcorr5*ecorr5
->      & +wcorr6*ecorr6+wturn4*eello_turn4+wturn3*eello_turn3
->      & +wturn6*eturn6+wel_loc*eel_loc+edihcnstr+wtor_d*etors_d
->      & +wbond*estr+Uconst+wsccor*esccor
-> #else
->       etot=wsc*evdw+wscp*evdw2+welec*(ees+evdw1)
->      & +wang*ebe+wtor*etors+wscloc*escloc
->      & +wstrain*ehpb+nss*ebr+wcorr*ecorr+wcorr5*ecorr5
->      & +wcorr6*ecorr6+wturn4*eello_turn4+wturn3*eello_turn3
->      & +wturn6*eturn6+wel_loc*eel_loc+edihcnstr+wtor_d*etors_d
->      & +wbond*estr+Uconst+wsccor*esccor
-> #endif
->       energia(0)=etot
-173,174c419,464
-< #ifdef MPL
-< c     endif
----
-> #ifdef MPI
->       endif
-> #endif
->       return
->       end
-> c-------------------------------------------------------------------------------
->       subroutine sum_gradient
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
-> #ifndef ISNAN
->       external proc_proc
-> #ifdef WINPGI
-> cMS$ATTRIBUTES C ::  proc_proc
-> #endif
-> #endif
-> #ifdef MPI
->       include 'mpif.h'
->       double precision gradbufc(3,maxres),gradbufx(3,maxres),
->      &  glocbuf(4*maxres),gradbufc_sum(3,maxres)
-> #endif
->       include 'COMMON.SETUP'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.FFIELD'
->       include 'COMMON.DERIV'
->       include 'COMMON.INTERACT'
->       include 'COMMON.SBRIDGE'
->       include 'COMMON.CHAIN'
->       include 'COMMON.VAR'
->       include 'COMMON.CONTROL'
->       include 'COMMON.TIME1'
->       include 'COMMON.MAXGRAD'
-> #ifdef TIMING
->       time01=MPI_Wtime()
-> #endif
-> #ifdef DEBUG
->       write (iout,*) "sum_gradient gvdwc, gvdwx"
->       do i=1,nres
->         write (iout,'(i3,3f10.5,5x,3f10.5,5x,f10.5)') 
->      &   i,(gvdwx(j,i),j=1,3),(gvdwc(j,i),j=1,3)
->       enddo
->       call flush(iout)
-> #endif
-> #ifdef MPI
-> C FG slaves call the following matching MPI_Bcast in ERGASTULUM
->         if (nfgtasks.gt.1 .and. fg_rank.eq.0) 
->      &    call MPI_Bcast(1,1,MPI_INTEGER,king,FG_COMM,IERROR)
-176d465
-<       if (calc_grad) then
-178c467,468
-< C Sum up the components of the Cartesian gradient.
----
-> C 9/29/08 AL Transform parts of gradients in site coordinates to the gradient
-> C            in virtual-bond-vector coordinates
-179a470,488
-> #ifdef DEBUG
-> c      write (iout,*) "gel_loc gel_loc_long and gel_loc_loc"
-> c      do i=1,nres-1
-> c        write (iout,'(i5,3f10.5,2x,3f10.5,2x,f10.5)') 
-> c     &   i,(gel_loc(j,i),j=1,3),(gel_loc_long(j,i),j=1,3),gel_loc_loc(i)
-> c      enddo
-> c      write (iout,*) "gel_loc_tur3 gel_loc_turn4"
-> c      do i=1,nres-1
-> c        write (iout,'(i5,3f10.5,2x,f10.5)') 
-> c     &  i,(gcorr4_turn(j,i),j=1,3),gel_loc_turn4(i)
-> c      enddo
->       write (iout,*) "gradcorr5 gradcorr5_long gradcorr5_loc"
->       do i=1,nres
->         write (iout,'(i3,3f10.5,5x,3f10.5,5x,f10.5)') 
->      &   i,(gradcorr5(j,i),j=1,3),(gradcorr5_long(j,i),j=1,3),
->      &   g_corr5_loc(i)
->       enddo
->       call flush(iout)
-> #endif
-183,198c492,500
-<           gradc(j,i,icg)=wsc*gvdwc(j,i)+wscp*gvdwc_scp(j,i)+
-<      &                welec*fact(1)*gelc(j,i)+wvdwpp*gvdwpp(j,i)+
-<      &                wbond*gradb(j,i)+
-<      &                wstrain*ghpbc(j,i)+
-<      &                wcorr*fact(3)*gradcorr(j,i)+
-<      &                wel_loc*fact(2)*gel_loc(j,i)+
-<      &                wturn3*fact(2)*gcorr3_turn(j,i)+
-<      &                wturn4*fact(3)*gcorr4_turn(j,i)+
-<      &                wcorr5*fact(4)*gradcorr5(j,i)+
-<      &                wcorr6*fact(5)*gradcorr6(j,i)+
-<      &                wturn6*fact(5)*gcorr6_turn(j,i)+
-<      &                wsccor*fact(2)*gsccorc(j,i)
-<           gradx(j,i,icg)=wsc*gvdwx(j,i)+wscp*gradx_scp(j,i)+
-<      &                  wbond*gradbx(j,i)+
-<      &                  wstrain*ghpbx(j,i)+wcorr*gradxorr(j,i)+
-<      &                  wsccor*fact(2)*gsccorx(j,i)
----
->           gradbufc(j,i)=wsc*gvdwc(j,i)+
->      &                wscp*(gvdwc_scp(j,i)+gvdwc_scpp(j,i))+
->      &                welec*gelc_long(j,i)+wvdwpp*gvdwpp(j,i)+
->      &                wel_loc*gel_loc_long(j,i)+
->      &                wcorr*gradcorr_long(j,i)+
->      &                wcorr5*gradcorr5_long(j,i)+
->      &                wcorr6*gradcorr6_long(j,i)+
->      &                wturn6*gcorr6_turn_long(j,i)+
->      &                wstrain*ghpbc(j,i)
-199a502
->       enddo 
-203,204c506,508
-<           gradc(j,i,icg)=wsc*gvdwc(j,i)+wscp*gvdwc_scp(j,i)+
-<      &                welec*fact(1)*gelc(j,i)+wstrain*ghpbc(j,i)+
----
->           gradbufc(j,i)=wsc*gvdwc(j,i)+
->      &                wscp*(gvdwc_scp(j,i)+gvdwc_scpp(j,i))+
->      &                welec*gelc_long(j,i)+
-206,213c510,670
-<      &                wcorr*fact(3)*gradcorr(j,i)+
-<      &                wel_loc*fact(2)*gel_loc(j,i)+
-<      &                wturn3*fact(2)*gcorr3_turn(j,i)+
-<      &                wturn4*fact(3)*gcorr4_turn(j,i)+
-<      &                wcorr5*fact(4)*gradcorr5(j,i)+
-<      &                wcorr6*fact(5)*gradcorr6(j,i)+
-<      &                wturn6*fact(5)*gcorr6_turn(j,i)+
-<      &                wsccor*fact(2)*gsccorc(j,i)
----
->      &                wel_loc*gel_loc_long(j,i)+
->      &                wcorr*gradcorr_long(j,i)+
->      &                wcorr5*gradcorr5_long(j,i)+
->      &                wcorr6*gradcorr6_long(j,i)+
->      &                wturn6*gcorr6_turn_long(j,i)+
->      &                wstrain*ghpbc(j,i)
->         enddo
->       enddo 
-> #endif
-> #ifdef MPI
->       if (nfgtasks.gt.1) then
->       time00=MPI_Wtime()
-> #ifdef DEBUG
->       write (iout,*) "gradbufc before allreduce"
->       do i=1,nres
->         write (iout,'(i3,3f10.5)') i,(gradbufc(j,i),j=1,3)
->       enddo
->       call flush(iout)
-> #endif
->       do i=1,nres
->         do j=1,3
->           gradbufc_sum(j,i)=gradbufc(j,i)
->         enddo
->       enddo
-> c      call MPI_AllReduce(gradbufc(1,1),gradbufc_sum(1,1),3*nres,
-> c     &    MPI_DOUBLE_PRECISION,MPI_SUM,FG_COMM,IERR)
-> c      time_reduce=time_reduce+MPI_Wtime()-time00
-> #ifdef DEBUG
-> c      write (iout,*) "gradbufc_sum after allreduce"
-> c      do i=1,nres
-> c        write (iout,'(i3,3f10.5)') i,(gradbufc_sum(j,i),j=1,3)
-> c      enddo
-> c      call flush(iout)
-> #endif
-> #ifdef TIMING
-> c      time_allreduce=time_allreduce+MPI_Wtime()-time00
-> #endif
->       do i=nnt,nres
->         do k=1,3
->           gradbufc(k,i)=0.0d0
->         enddo
->       enddo
-> #ifdef DEBUG
->       write (iout,*) "igrad_start",igrad_start," igrad_end",igrad_end
->       write (iout,*) (i," jgrad_start",jgrad_start(i),
->      &                  " jgrad_end  ",jgrad_end(i),
->      &                  i=igrad_start,igrad_end)
-> #endif
-> c
-> c Obsolete and inefficient code; we can make the effort O(n) and, therefore,
-> c do not parallelize this part.
-> c
-> c      do i=igrad_start,igrad_end
-> c        do j=jgrad_start(i),jgrad_end(i)
-> c          do k=1,3
-> c            gradbufc(k,i)=gradbufc(k,i)+gradbufc_sum(k,j)
-> c          enddo
-> c        enddo
-> c      enddo
->       do j=1,3
->         gradbufc(j,nres-1)=gradbufc_sum(j,nres)
->       enddo
->       do i=nres-2,nnt,-1
->         do j=1,3
->           gradbufc(j,i)=gradbufc(j,i+1)+gradbufc_sum(j,i+1)
->         enddo
->       enddo
-> #ifdef DEBUG
->       write (iout,*) "gradbufc after summing"
->       do i=1,nres
->         write (iout,'(i3,3f10.5)') i,(gradbufc(j,i),j=1,3)
->       enddo
->       call flush(iout)
-> #endif
->       else
-> #endif
-> #ifdef DEBUG
->       write (iout,*) "gradbufc"
->       do i=1,nres
->         write (iout,'(i3,3f10.5)') i,(gradbufc(j,i),j=1,3)
->       enddo
->       call flush(iout)
-> #endif
->       do i=1,nres
->         do j=1,3
->           gradbufc_sum(j,i)=gradbufc(j,i)
->           gradbufc(j,i)=0.0d0
->         enddo
->       enddo
->       do j=1,3
->         gradbufc(j,nres-1)=gradbufc_sum(j,nres)
->       enddo
->       do i=nres-2,nnt,-1
->         do j=1,3
->           gradbufc(j,i)=gradbufc(j,i+1)+gradbufc_sum(j,i+1)
->         enddo
->       enddo
-> c      do i=nnt,nres-1
-> c        do k=1,3
-> c          gradbufc(k,i)=0.0d0
-> c        enddo
-> c        do j=i+1,nres
-> c          do k=1,3
-> c            gradbufc(k,i)=gradbufc(k,i)+gradbufc(k,j)
-> c          enddo
-> c        enddo
-> c      enddo
-> #ifdef DEBUG
->       write (iout,*) "gradbufc after summing"
->       do i=1,nres
->         write (iout,'(i3,3f10.5)') i,(gradbufc(j,i),j=1,3)
->       enddo
->       call flush(iout)
-> #endif
-> #ifdef MPI
->       endif
-> #endif
->       do k=1,3
->         gradbufc(k,nres)=0.0d0
->       enddo
->       do i=1,nct
->         do j=1,3
-> #ifdef SPLITELE
->           gradc(j,i,icg)=gradbufc(j,i)+welec*gelc(j,i)+
->      &                wel_loc*gel_loc(j,i)+
->      &                0.5d0*(wscp*gvdwc_scpp(j,i)+
->      &                welec*gelc_long(j,i)+wvdwpp*gvdwpp(j,i)+
->      &                wel_loc*gel_loc_long(j,i)+
->      &                wcorr*gradcorr_long(j,i)+
->      &                wcorr5*gradcorr5_long(j,i)+
->      &                wcorr6*gradcorr6_long(j,i)+
->      &                wturn6*gcorr6_turn_long(j,i))+
->      &                wbond*gradb(j,i)+
->      &                wcorr*gradcorr(j,i)+
->      &                wturn3*gcorr3_turn(j,i)+
->      &                wturn4*gcorr4_turn(j,i)+
->      &                wcorr5*gradcorr5(j,i)+
->      &                wcorr6*gradcorr6(j,i)+
->      &                wturn6*gcorr6_turn(j,i)+
->      &                wsccor*gsccorc(j,i)
->      &               +wscloc*gscloc(j,i)
-> #else
->           gradc(j,i,icg)=gradbufc(j,i)+welec*gelc(j,i)+
->      &                wel_loc*gel_loc(j,i)+
->      &                0.5d0*(wscp*gvdwc_scpp(j,i)+
->      &                welec*gelc_long(j,i)
->      &                wel_loc*gel_loc_long(j,i)+
->      &                wcorr*gcorr_long(j,i)+
->      &                wcorr5*gradcorr5_long(j,i)+
->      &                wcorr6*gradcorr6_long(j,i)+
->      &                wturn6*gcorr6_turn_long(j,i))+
->      &                wbond*gradb(j,i)+
->      &                wcorr*gradcorr(j,i)+
->      &                wturn3*gcorr3_turn(j,i)+
->      &                wturn4*gcorr4_turn(j,i)+
->      &                wcorr5*gradcorr5(j,i)+
->      &                wcorr6*gradcorr6(j,i)+
->      &                wturn6*gcorr6_turn(j,i)+
->      &                wsccor*gsccorc(j,i)
->      &               +wscloc*gscloc(j,i)
-> #endif
-217c674,675
-<      &                  wsccor*fact(1)*gsccorx(j,i)
----
->      &                  wsccor*gsccorx(j,i)
->      &                 +wscloc*gsclocx(j,i)
-219c677,681
-< #endif
----
->       enddo 
-> #ifdef DEBUG
->       write (iout,*) "gloc before adding corr"
->       do i=1,4*nres
->         write (iout,*) i,gloc(i,icg)
-221,222c683
-< 
-< 
----
-> #endif
-224,231c685,697
-<         gloc(i,icg)=gloc(i,icg)+wcorr*fact(3)*gcorr_loc(i)
-<      &   +wcorr5*fact(4)*g_corr5_loc(i)
-<      &   +wcorr6*fact(5)*g_corr6_loc(i)
-<      &   +wturn4*fact(3)*gel_loc_turn4(i)
-<      &   +wturn3*fact(2)*gel_loc_turn3(i)
-<      &   +wturn6*fact(5)*gel_loc_turn6(i)
-<      &   +wel_loc*fact(2)*gel_loc_loc(i)
-<      &   +wsccor*fact(1)*gsccor_loc(i)
----
->         gloc(i,icg)=gloc(i,icg)+wcorr*gcorr_loc(i)
->      &   +wcorr5*g_corr5_loc(i)
->      &   +wcorr6*g_corr6_loc(i)
->      &   +wturn4*gel_loc_turn4(i)
->      &   +wturn3*gel_loc_turn3(i)
->      &   +wturn6*gel_loc_turn6(i)
->      &   +wel_loc*gel_loc_loc(i)
->      &   +wsccor*gsccor_loc(i)
->       enddo
-> #ifdef DEBUG
->       write (iout,*) "gloc after adding corr"
->       do i=1,4*nres
->         write (iout,*) i,gloc(i,icg)
-232a699,727
-> #endif
-> #ifdef MPI
->       if (nfgtasks.gt.1) then
->         do j=1,3
->           do i=1,nres
->             gradbufc(j,i)=gradc(j,i,icg)
->             gradbufx(j,i)=gradx(j,i,icg)
->           enddo
->         enddo
->         do i=1,4*nres
->           glocbuf(i)=gloc(i,icg)
->         enddo
->         time00=MPI_Wtime()
->         call MPI_Barrier(FG_COMM,IERR)
->         time_barrier_g=time_barrier_g+MPI_Wtime()-time00
->         time00=MPI_Wtime()
->         call MPI_Reduce(gradbufc(1,1),gradc(1,1,icg),3*nres,
->      &    MPI_DOUBLE_PRECISION,MPI_SUM,king,FG_COMM,IERR)
->         call MPI_Reduce(gradbufx(1,1),gradx(1,1,icg),3*nres,
->      &    MPI_DOUBLE_PRECISION,MPI_SUM,king,FG_COMM,IERR)
->         call MPI_Reduce(glocbuf(1),gloc(1,icg),4*nres,
->      &    MPI_DOUBLE_PRECISION,MPI_SUM,king,FG_COMM,IERR)
->         time_reduce=time_reduce+MPI_Wtime()-time00
-> #ifdef DEBUG
->       write (iout,*) "gloc after reduce"
->       do i=1,4*nres
->         write (iout,*) i,gloc(i,icg)
->       enddo
-> #endif
-233a729,897
-> #endif
->       if (gnorm_check) then
-> c
-> c Compute the maximum elements of the gradient
-> c
->       gvdwc_max=0.0d0
->       gvdwc_scp_max=0.0d0
->       gelc_max=0.0d0
->       gvdwpp_max=0.0d0
->       gradb_max=0.0d0
->       ghpbc_max=0.0d0
->       gradcorr_max=0.0d0
->       gel_loc_max=0.0d0
->       gcorr3_turn_max=0.0d0
->       gcorr4_turn_max=0.0d0
->       gradcorr5_max=0.0d0
->       gradcorr6_max=0.0d0
->       gcorr6_turn_max=0.0d0
->       gsccorc_max=0.0d0
->       gscloc_max=0.0d0
->       gvdwx_max=0.0d0
->       gradx_scp_max=0.0d0
->       ghpbx_max=0.0d0
->       gradxorr_max=0.0d0
->       gsccorx_max=0.0d0
->       gsclocx_max=0.0d0
->       do i=1,nct
->         gvdwc_norm=dsqrt(scalar(gvdwc(1,i),gvdwc(1,i)))
->         if (gvdwc_norm.gt.gvdwc_max) gvdwc_max=gvdwc_norm
->         gvdwc_scp_norm=dsqrt(scalar(gvdwc_scp(1,i),gvdwc_scp(1,i)))
->         if (gvdwc_scp_norm.gt.gvdwc_scp_max) 
->      &   gvdwc_scp_max=gvdwc_scp_norm
->         gelc_norm=dsqrt(scalar(gelc(1,i),gelc(1,i)))
->         if (gelc_norm.gt.gelc_max) gelc_max=gelc_norm
->         gvdwpp_norm=dsqrt(scalar(gvdwpp(1,i),gvdwpp(1,i)))
->         if (gvdwpp_norm.gt.gvdwpp_max) gvdwpp_max=gvdwpp_norm
->         gradb_norm=dsqrt(scalar(gradb(1,i),gradb(1,i)))
->         if (gradb_norm.gt.gradb_max) gradb_max=gradb_norm
->         ghpbc_norm=dsqrt(scalar(ghpbc(1,i),ghpbc(1,i)))
->         if (ghpbc_norm.gt.ghpbc_max) ghpbc_max=ghpbc_norm
->         gradcorr_norm=dsqrt(scalar(gradcorr(1,i),gradcorr(1,i)))
->         if (gradcorr_norm.gt.gradcorr_max) gradcorr_max=gradcorr_norm
->         gel_loc_norm=dsqrt(scalar(gel_loc(1,i),gel_loc(1,i)))
->         if (gel_loc_norm.gt.gel_loc_max) gel_loc_max=gel_loc_norm
->         gcorr3_turn_norm=dsqrt(scalar(gcorr3_turn(1,i),
->      &    gcorr3_turn(1,i)))
->         if (gcorr3_turn_norm.gt.gcorr3_turn_max) 
->      &    gcorr3_turn_max=gcorr3_turn_norm
->         gcorr4_turn_norm=dsqrt(scalar(gcorr4_turn(1,i),
->      &    gcorr4_turn(1,i)))
->         if (gcorr4_turn_norm.gt.gcorr4_turn_max) 
->      &    gcorr4_turn_max=gcorr4_turn_norm
->         gradcorr5_norm=dsqrt(scalar(gradcorr5(1,i),gradcorr5(1,i)))
->         if (gradcorr5_norm.gt.gradcorr5_max) 
->      &    gradcorr5_max=gradcorr5_norm
->         gradcorr6_norm=dsqrt(scalar(gradcorr6(1,i),gradcorr6(1,i)))
->         if (gradcorr6_norm.gt.gradcorr6_max) gcorr6_max=gradcorr6_norm
->         gcorr6_turn_norm=dsqrt(scalar(gcorr6_turn(1,i),
->      &    gcorr6_turn(1,i)))
->         if (gcorr6_turn_norm.gt.gcorr6_turn_max) 
->      &    gcorr6_turn_max=gcorr6_turn_norm
->         gsccorr_norm=dsqrt(scalar(gsccorc(1,i),gsccorc(1,i)))
->         if (gsccorr_norm.gt.gsccorr_max) gsccorr_max=gsccorr_norm
->         gscloc_norm=dsqrt(scalar(gscloc(1,i),gscloc(1,i)))
->         if (gscloc_norm.gt.gscloc_max) gscloc_max=gscloc_norm
->         gvdwx_norm=dsqrt(scalar(gvdwx(1,i),gvdwx(1,i)))
->         if (gvdwx_norm.gt.gvdwx_max) gvdwx_max=gvdwx_norm
->         gradx_scp_norm=dsqrt(scalar(gradx_scp(1,i),gradx_scp(1,i)))
->         if (gradx_scp_norm.gt.gradx_scp_max) 
->      &    gradx_scp_max=gradx_scp_norm
->         ghpbx_norm=dsqrt(scalar(ghpbx(1,i),ghpbx(1,i)))
->         if (ghpbx_norm.gt.ghpbx_max) ghpbx_max=ghpbx_norm
->         gradxorr_norm=dsqrt(scalar(gradxorr(1,i),gradxorr(1,i)))
->         if (gradxorr_norm.gt.gradxorr_max) gradxorr_max=gradxorr_norm
->         gsccorrx_norm=dsqrt(scalar(gsccorx(1,i),gsccorx(1,i)))
->         if (gsccorrx_norm.gt.gsccorrx_max) gsccorrx_max=gsccorrx_norm
->         gsclocx_norm=dsqrt(scalar(gsclocx(1,i),gsclocx(1,i)))
->         if (gsclocx_norm.gt.gsclocx_max) gsclocx_max=gsclocx_norm
->       enddo 
->       if (gradout) then
-> #ifdef AIX
->         open(istat,file=statname,position="append")
-> #else
->         open(istat,file=statname,access="append")
-> #endif
->         write (istat,'(1h#,21f10.2)') gvdwc_max,gvdwc_scp_max,
->      &     gelc_max,gvdwpp_max,gradb_max,ghpbc_max,
->      &     gradcorr_max,gel_loc_max,gcorr3_turn_max,gcorr4_turn_max,
->      &     gradcorr5_max,gradcorr6_max,gcorr6_turn_max,gsccorc_max,
->      &     gscloc_max,gvdwx_max,gradx_scp_max,ghpbx_max,gradxorr_max,
->      &     gsccorx_max,gsclocx_max
->         close(istat)
->         if (gvdwc_max.gt.1.0d4) then
->           write (iout,*) "gvdwc gvdwx gradb gradbx"
->           do i=nnt,nct
->             write(iout,'(i5,4(3f10.2,5x))') i,(gvdwc(j,i),gvdwx(j,i),
->      &        gradb(j,i),gradbx(j,i),j=1,3)
->           enddo
->           call pdbout(0.0d0,'cipiszcze',iout)
->           call flush(iout)
->         endif
->       endif
->       endif
-> #ifdef DEBUG
->       write (iout,*) "gradc gradx gloc"
->       do i=1,nres
->         write (iout,'(i5,3f10.5,5x,3f10.5,5x,f10.5)') 
->      &   i,(gradc(j,i,icg),j=1,3),(gradx(j,i,icg),j=1,3),gloc(i,icg)
->       enddo 
-> #endif
-> #ifdef TIMING
->       time_sumgradient=time_sumgradient+MPI_Wtime()-time01
-> #endif
->       return
->       end
-> c-------------------------------------------------------------------------------
->       subroutine rescale_weights(t_bath)
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.FFIELD'
->       include 'COMMON.SBRIDGE'
->       double precision kfac /2.4d0/
->       double precision x,x2,x3,x4,x5,licznik /1.12692801104297249644/
-> c      facT=temp0/t_bath
-> c      facT=2*temp0/(t_bath+temp0)
->       if (rescale_mode.eq.0) then
->         facT=1.0d0
->         facT2=1.0d0
->         facT3=1.0d0
->         facT4=1.0d0
->         facT5=1.0d0
->       else if (rescale_mode.eq.1) then
->         facT=kfac/(kfac-1.0d0+t_bath/temp0)
->         facT2=kfac**2/(kfac**2-1.0d0+(t_bath/temp0)**2)
->         facT3=kfac**3/(kfac**3-1.0d0+(t_bath/temp0)**3)
->         facT4=kfac**4/(kfac**4-1.0d0+(t_bath/temp0)**4)
->         facT5=kfac**5/(kfac**5-1.0d0+(t_bath/temp0)**5)
->       else if (rescale_mode.eq.2) then
->         x=t_bath/temp0
->         x2=x*x
->         x3=x2*x
->         x4=x3*x
->         x5=x4*x
->         facT=licznik/dlog(dexp(x)+dexp(-x))
->         facT2=licznik/dlog(dexp(x2)+dexp(-x2))
->         facT3=licznik/dlog(dexp(x3)+dexp(-x3))
->         facT4=licznik/dlog(dexp(x4)+dexp(-x4))
->         facT5=licznik/dlog(dexp(x5)+dexp(-x5))
->       else
->         write (iout,*) "Wrong RESCALE_MODE",rescale_mode
->         write (*,*) "Wrong RESCALE_MODE",rescale_mode
-> #ifdef MPI
->        call MPI_Finalize(MPI_COMM_WORLD,IERROR)
-> #endif
->        stop 555
->       endif
->       welec=weights(3)*fact
->       wcorr=weights(4)*fact3
->       wcorr5=weights(5)*fact4
->       wcorr6=weights(6)*fact5
->       wel_loc=weights(7)*fact2
->       wturn3=weights(8)*fact2
->       wturn4=weights(9)*fact3
->       wturn6=weights(10)*fact5
->       wtor=weights(13)*fact
->       wtor_d=weights(14)*fact2
->       wsccor=weights(21)*fact
-> 
-237c901
-<       subroutine enerprint(energia,fact)
----
->       subroutine enerprint(energia)
-240d903
-<       include 'DIMENSIONS.ZSCOPT'
-244c907,908
-<       double precision energia(0:max_ene),fact(6)
----
->       include 'COMMON.MD'
->       double precision energia(0:n_ene)
-246c910,911
-<       evdw=energia(1)+fact(6)*energia(21)
----
->       evdw=energia(1)
->       evdw2=energia(2)
-248c913
-<       evdw2=energia(2)+energia(17)
----
->       evdw2=energia(2)+energia(18)
-268,270c933,936
-<       esccor=energia(19)
-<       edihcnstr=energia(20)
-<       estr=energia(18)
----
->       edihcnstr=energia(19)
->       estr=energia(17)
->       Uconst=energia(20)
->       esccor=energia(21)
-272,279c938,945
-<       write (iout,10) evdw,wsc,evdw2,wscp,ees,welec*fact(1),evdw1,
-<      &  wvdwpp,
-<      &  estr,wbond,ebe,wang,escloc,wscloc,etors,wtor*fact(1),
-<      &  etors_d,wtor_d*fact(2),ehpb,wstrain,
-<      &  ecorr,wcorr*fact(3),ecorr5,wcorr5*fact(4),ecorr6,wcorr6*fact(5),
-<      &  eel_loc,wel_loc*fact(2),eello_turn3,wturn3*fact(2),
-<      &  eello_turn4,wturn4*fact(3),eello_turn6,wturn6*fact(5),
-<      &  esccor,wsccor*fact(1),edihcnstr,ebr*nss,etot
----
->       write (iout,10) evdw,wsc,evdw2,wscp,ees,welec,evdw1,wvdwpp,
->      &  estr,wbond,ebe,wang,
->      &  escloc,wscloc,etors,wtor,etors_d,wtor_d,ehpb,wstrain,
->      &  ecorr,wcorr,
->      &  ecorr5,wcorr5,ecorr6,wcorr6,eel_loc,wel_loc,eello_turn3,wturn3,
->      &  eello_turn4,wturn4,eello_turn6,wturn6,esccor,wsccor,
->      &  edihcnstr,ebr*nss,
->      &  Uconst,etot
-283c949
-<      & 'EES=   ',1pE16.6,' WEIGHT=',1pD16.6,' (p-p elec)'/
----
->      & 'EES=   ',1pE16.6,' WEIGHT=',1pD16.6,' (p-p)'/
-301c967,968
-<      & 'ESS=   ',1pE16.6,' (disulfide-bridge intrinsic energy)'/ 
----
->      & 'ESS=   ',1pE16.6,' (disulfide-bridge intrinsic energy)'/
->      & 'UCONST= ',1pE16.6,' (Constraint energy)'/ 
-304,310c971,977
-<       write (iout,10) evdw,wsc,evdw2,wscp,ees,welec*fact(1),estr,wbond,
-<      &  ebe,wang,escloc,wscloc,etors,wtor*fact(1),etors_d,wtor_d*fact2,
-<      &  ehpb,wstrain,ecorr,wcorr*fact(3),ecorr5,wcorr5*fact(4),
-<      &  ecorr6,wcorr6*fact(5),eel_loc,wel_loc*fact(2),
-<      &  eello_turn3,wturn3*fact(2),eello_turn4,wturn4*fact(3),
-<      &  eello_turn6,wturn6*fact(5),esccor*fact(1),wsccor,
-<      &  edihcnstr,ebr*nss,etot
----
->       write (iout,10) evdw,wsc,evdw2,wscp,ees,welec,
->      &  estr,wbond,ebe,wang,
->      &  escloc,wscloc,etors,wtor,etors_d,wtor_d,ehpb,wstrain,
->      &  ecorr,wcorr,
->      &  ecorr5,wcorr5,ecorr6,wcorr6,eel_loc,wel_loc,eello_turn3,wturn3,
->      &  eello_turn4,wturn4,eello_turn6,wturn6,esccor,wsccro,edihcnstr,
->      &  ebr*nss,Uconst,etot
-331c998,999
-<      & 'ESS=   ',1pE16.6,' (disulfide-bridge intrinsic energy)'/ 
----
->      & 'ESS=   ',1pE16.6,' (disulfide-bridge intrinsic energy)'/
->      & 'UCONST=',1pE16.6,' (Constraint energy)'/ 
-337c1005
-<       subroutine elj(evdw,evdw_t)
----
->       subroutine elj(evdw)
-344,345d1011
-<       include 'DIMENSIONS.ZSCOPT'
-<       include "DIMENSIONS.COMPAR"
-354d1019
-<       include 'COMMON.ENEPS'
-360,367c1025
-<       integer icant
-<       external icant
-< cd    print *,'Entering ELJ nnt=',nnt,' nct=',nct,' expon=',expon
-<       do i=1,210
-<         do j=1,2
-<           eneps_temp(j,i)=0.0d0
-<         enddo
-<       enddo
----
-> c      write(iout,*)'Entering ELJ nnt=',nnt,' nct=',nct,' expon=',expon
-369d1026
-<       evdw_t=0.0d0
-400,402d1056
-<             ij=icant(itypi,itypj)
-<             eneps_temp(1,ij)=eneps_temp(1,ij)+e1/dabs(eps0ij)
-<             eneps_temp(2,ij)=eneps_temp(2,ij)+e2/eps0ij
-409,414c1063
-<             if (bb(itypi,itypj).gt.0.0d0) then
-<               evdw=evdw+evdwij
-<             else
-<               evdw_t=evdw_t+evdwij
-<             endif
-<             if (calc_grad) then
----
->             evdw=evdw+evdwij
-424a1074,1075
->               gvdwc(k,i)=gvdwc(k,i)-gg(k)
->               gvdwc(k,j)=gvdwc(k,j)+gg(k)
-426,431c1077,1081
-<             do k=i,j-1
-<               do l=1,3
-<                 gvdwc(l,k)=gvdwc(l,k)+gg(l)
-<               enddo
-<             enddo
-<             endif
----
-> cgrad            do k=i,j-1
-> cgrad              do l=1,3
-> cgrad                gvdwc(l,k)=gvdwc(l,k)+gg(l)
-> cgrad              enddo
-> cgrad            enddo
-493d1142
-<       if (calc_grad) then
-500d1148
-<       endif
-513c1161
-<       subroutine eljk(evdw,evdw_t)
----
->       subroutine eljk(evdw)
-520,521d1167
-<       include 'DIMENSIONS.ZSCOPT'
-<       include "DIMENSIONS.COMPAR"
-528d1173
-<       include 'COMMON.ENEPS'
-533,534d1177
-<       integer icant
-<       external icant
-536,540d1178
-<       do i=1,210
-<         do j=1,2
-<           eneps_temp(j,i)=0.0d0
-<         enddo
-<       enddo
-542d1179
-<       evdw_t=0.0d0
-570,573d1206
-<             ij=icant(itypi,itypj)
-<             eneps_temp(1,ij)=eneps_temp(1,ij)+(e1+a_augm)
-<      &        /dabs(eps(itypi,itypj))
-<             eneps_temp(2,ij)=eneps_temp(2,ij)+e2/eps(itypi,itypj)
-581,586c1214
-<             if (bb(itypi,itypj).gt.0.0d0) then
-<               evdw=evdw+evdwij
-<             else 
-<               evdw_t=evdw_t+evdwij
-<             endif
-<             if (calc_grad) then
----
->             evdw=evdw+evdwij
-596a1225,1226
->               gvdwc(k,i)=gvdwc(k,i)-gg(k)
->               gvdwc(k,j)=gvdwc(k,j)+gg(k)
-598,603c1228,1232
-<             do k=i,j-1
-<               do l=1,3
-<                 gvdwc(l,k)=gvdwc(l,k)+gg(l)
-<               enddo
-<             enddo
-<             endif
----
-> cgrad            do k=i,j-1
-> cgrad              do l=1,3
-> cgrad                gvdwc(l,k)=gvdwc(l,k)+gg(l)
-> cgrad              enddo
-> cgrad            enddo
-607d1235
-<       if (calc_grad) then
-614d1241
-<       endif
-618c1245
-<       subroutine ebp(evdw,evdw_t)
----
->       subroutine ebp(evdw)
-625,626d1251
-<       include 'DIMENSIONS.ZSCOPT'
-<       include "DIMENSIONS.COMPAR"
-634d1258
-<       include 'COMMON.ENEPS'
-640,646d1263
-<       integer icant
-<       external icant
-<       do i=1,210
-<         do j=1,2
-<           eneps_temp(j,i)=0.0d0
-<         enddo
-<       enddo
-648d1264
-<       evdw_t=0.0d0
-649a1266
->       evdw=0.0D0
-665a1283
-> c        dsci_inv=dsc_inv(itypi)
-674a1293
-> c            dscj_inv=dsc_inv(itypj)
-719,729c1338
-<             ij=icant(itypi,itypj)
-<             aux=eps1*eps2rt**2*eps3rt**2
-<             eneps_temp(1,ij)=eneps_temp(1,ij)+e1*aux
-<      &        /dabs(eps(itypi,itypj))
-<             eneps_temp(2,ij)=eneps_temp(2,ij)+e2*aux/eps(itypi,itypj)
-<             if (bb(itypi,itypj).gt.0.0d0) then
-<               evdw=evdw+evdwij
-<             else
-<               evdw_t=evdw_t+evdwij
-<             endif
-<             if (calc_grad) then
----
->             evdw=evdw+evdwij
-752d1360
-<             endif
-760c1368
-<       subroutine egb(evdw,evdw_t)
----
->       subroutine egb(evdw)
-767,768d1374
-<       include 'DIMENSIONS.ZSCOPT'
-<       include "DIMENSIONS.COMPAR"
-776d1381
-<       include 'COMMON.ENEPS'
-778a1384
->       include 'COMMON.CONTROL'
-780,787c1386,1387
-<       common /srutu/icall
-<       integer icant
-<       external icant
-<       do i=1,210
-<         do j=1,2
-<           eneps_temp(j,i)=0.0d0
-<         enddo
-<       enddo
----
->       evdw=0.0D0
-> ccccc      energy_dec=.false.
-790d1389
-<       evdw_t=0.0d0
-792c1391
-< c      if (icall.gt.0) lprn=.true.
----
-> c     if (icall.eq.0) lprn=.false.
-803a1403
-> c        dsci_inv=dsc_inv(itypi)
-804a1405,1406
-> c        write (iout,*) "i",i,dsc_inv(itypi),dsci_inv,1.0d0/vbld(i+nres)
-> c        write (iout,*) "dcnori",dxi*dxi+dyi*dyi+dzi*dzi
-812a1415
-> c            dscj_inv=dsc_inv(itypj)
-813a1417,1419
-> c            write (iout,*) "j",j,dsc_inv(itypj),dscj_inv,
-> c     &       1.0d0/vbld(j+nres)
-> c            write (iout,*) "i",i," j", j," itype",itype(i),itype(j)
-840c1446,1448
-< c            write (iout,*) i,j,xj,yj,zj
----
-> c            write (iout,*) "dcnorj",dxi*dxi+dyi*dyi+dzi*dzi
-> c            write (iout,*) "j",j," dc_norm",
-> c     &       dc_norm(1,nres+j),dc_norm(2,nres+j),dc_norm(3,nres+j)
-848a1457,1458
-> c for diagnostics; uncomment
-> c            rij_shift=1.2*sig0ij
-851a1462,1464
-> cd              write (iout,'(2(a3,i3,2x),17(0pf7.3))')
-> cd     &        restyp(itypi),i,restyp(itypj),j,
-> cd     &        rij_shift,1.0D0/rij,sig,sig0ij,sigsq,1-dsqrt(sigsq) 
-862a1476,1477
-> c            write (iout,*) "sigsq",sigsq," sig",sig," eps2rt",eps2rt,
-> c     &        " eps3rt",eps3rt," eps1",eps1," e1",e1," e2",e2
-864,876c1479
-<             if (bb(itypi,itypj).gt.0) then
-<               evdw=evdw+evdwij
-<             else
-<               evdw_t=evdw_t+evdwij
-<             endif
-<             ij=icant(itypi,itypj)
-<             aux=eps1*eps2rt**2*eps3rt**2
-<             eneps_temp(1,ij)=eneps_temp(1,ij)+aux*e1
-<      &        /dabs(eps(itypi,itypj))
-<             eneps_temp(2,ij)=eneps_temp(2,ij)+aux*e2/eps(itypi,itypj)
-< c            write (iout,*) "i",i," j",j," itypi",itypi," itypj",itypj,
-< c     &         " ij",ij," eneps",aux*e1/dabs(eps(itypi,itypj)),
-< c     &         aux*e2/eps(itypi,itypj)
----
->             evdw=evdw+evdwij
-887c1490,1493
-<             if (calc_grad) then
----
-> 
->             if (energy_dec) write (iout,'(a6,2i5,0pf7.3)') 
->      &                        'evdw',i,j,evdwij
-> 
-892a1499
-> c            fac=0.0d0
-899d1505
-<             endif
-902a1509,1510
-> c      write (iout,*) "Number of loop steps in EGB:",ind
-> cccc      energy_dec=.false.
-906c1514
-<       subroutine egbv(evdw,evdw_t)
----
->       subroutine egbv(evdw)
-913,914d1520
-<       include 'DIMENSIONS.ZSCOPT'
-<       include "DIMENSIONS.COMPAR"
-922d1527
-<       include 'COMMON.ENEPS'
-927,933d1531
-<       integer icant
-<       external icant
-<       do i=1,210
-<         do j=1,2
-<           eneps_temp(j,i)=0.0d0
-<         enddo
-<       enddo
-935d1532
-<       evdw_t=0.0d0
-939c1536
-< c      if (icall.gt.0) lprn=.true.
----
-> c     if (icall.eq.0) lprn=.true.
-950a1548
-> c        dsci_inv=dsc_inv(itypi)
-959a1558
-> c            dscj_inv=dsc_inv(itypj)
-1013,1016c1612,1622
-<             if (bb(itypi,itypj).gt.0.0d0) then
-<               evdw=evdw+evdwij+e_augm
-<             else
-<               evdw_t=evdw_t+evdwij+e_augm
----
->             evdw=evdw+evdwij+e_augm
->             if (lprn) then
->             sigm=dabs(aa(itypi,itypj)/bb(itypi,itypj))**(1.0D0/6.0D0)
->             epsi=bb(itypi,itypj)**2/aa(itypi,itypj)
->             write (iout,'(2(a3,i3,2x),17(0pf7.3))')
->      &        restyp(itypi),i,restyp(itypj),j,
->      &        epsi,sigm,sig,(augm(itypi,itypj)/epsi)**(1.0D0/12.0D0),
->      &        chi1,chi2,chip1,chip2,
->      &        eps1,eps2rt**2,eps3rt**2,
->      &        om1,om2,om12,1.0D0/rij,1.0D0/rij_shift,
->      &        evdwij+e_augm
-1018,1036d1623
-<             ij=icant(itypi,itypj)
-<             aux=eps1*eps2rt**2*eps3rt**2
-<             eneps_temp(1,ij)=eneps_temp(1,ij)+aux*(e1+e_augm)
-<      &        /dabs(eps(itypi,itypj))
-<             eneps_temp(2,ij)=eneps_temp(2,ij)+aux*e2/eps(itypi,itypj)
-< c            eneps_temp(ij)=eneps_temp(ij)
-< c     &         +(evdwij+e_augm)/eps(itypi,itypj)
-< c            if (lprn) then
-< c            sigm=dabs(aa(itypi,itypj)/bb(itypi,itypj))**(1.0D0/6.0D0)
-< c            epsi=bb(itypi,itypj)**2/aa(itypi,itypj)
-< c            write (iout,'(2(a3,i3,2x),17(0pf7.3))')
-< c     &        restyp(itypi),i,restyp(itypj),j,
-< c     &        epsi,sigm,sig,(augm(itypi,itypj)/epsi)**(1.0D0/12.0D0),
-< c     &        chi1,chi2,chip1,chip2,
-< c     &        eps1,eps2rt**2,eps3rt**2,
-< c     &        om1,om2,om12,1.0D0/rij,1.0D0/rij_shift,
-< c     &        evdwij+e_augm
-< c            endif
-<             if (calc_grad) then
-1048d1634
-<             endif
-1052d1637
-<       return
-1059a1645
->       include 'COMMON.IOUNITS'
-1072a1659,1663
-> c diagnostics only
-> c      faceps1_inv=om12
-> c      eps1=om12
-> c      eps1_om12=1.0d0
-> c      write (iout,*) "om12",om12," eps1",eps1
-1082a1674,1681
-> c diagnostics only
-> c      sigsq=1.0d0
-> c      sigsq_om1=0.0d0
-> c      sigsq_om2=0.0d0
-> c      sigsq_om12=0.0d0
-> c      write (iout,*) "chiom1",chiom1," chiom2",chiom2," chiom12",chiom12
-> c      write (iout,*) "faceps1",faceps1," faceps1_inv",faceps1_inv,
-> c     &    " eps1",eps1
-1089a1689,1690
-> c      write (iout,*) "chipom1",chipom1," chipom2",chipom2,
-> c     &  " chipom12",chipom12," facp",facp," facp_inv",facp_inv
-1098a1700,1702
-> c      write (iout,*) "eps2rt",eps2rt," eps3rt",eps3rt
-> c      write (iout,*) "eps2rt_om1",eps2rt_om1," eps2rt_om2",eps2rt_om2,
-> c     &  " eps2rt_om12",eps2rt_om12
-1107d1710
-<       include 'DIMENSIONS.ZSCOPT'
-1110a1714
->       include 'COMMON.IOUNITS'
-1115a1720,1728
-> c diagnostics only
-> c      eom1=0.0d0
-> c      eom2=0.0d0
-> c      eom12=evdwij*eps1_om12
-> c end diagnostics
-> c      write (iout,*) "eps2der",eps2der," eps3der",eps3der,
-> c     &  " sigder",sigder
-> c      write (iout,*) "eps1_om12",eps1_om12," eps2rt_om12",eps2rt_om12
-> c      write (iout,*) "eom1",eom1," eom2",eom2," eom12",eom12
-1122a1736
-> c      write (iout,*) "gg",(gg(k),k=1,3)
-1129a1744,1747
-> c        write (iout,*)(eom12*(dc_norm(k,nres+j)-om12*dc_norm(k,nres+i))
-> c     &            +eom1*(erij(k)-om1*dc_norm(k,nres+i)))*dsci_inv
-> c        write (iout,*)(eom12*(dc_norm(k,nres+i)-om12*dc_norm(k,nres+j))
-> c     &            +eom2*(erij(k)-om2*dc_norm(k,nres+j)))*dscj_inv
-1134,1137c1752,1759
-<       do k=i,j-1
-<         do l=1,3
-<           gvdwc(l,k)=gvdwc(l,k)+gg(l)
-<         enddo
----
-> cgrad      do k=i,j-1
-> cgrad        do l=1,3
-> cgrad          gvdwc(l,k)=gvdwc(l,k)+gg(l)
-> cgrad        enddo
-> cgrad      enddo
->       do l=1,3
->         gvdwc(l,i)=gvdwc(l,i)-gg(l)
->         gvdwc(l,j)=gvdwc(l,j)+gg(l)
-1141,1142c1763,1768
-< c------------------------------------------------------------------------------
-<       subroutine vec_and_deriv
----
-> C-----------------------------------------------------------------------
->       subroutine e_softsphere(evdw)
-> C
-> C This subroutine calculates the interaction energy of nonbonded side chains
-> C assuming the LJ potential of interaction.
-> C
-1145,1146c1771
-<       include 'DIMENSIONS.ZSCOPT'
-<       include 'COMMON.IOUNITS'
----
->       parameter (accur=1.0d-10)
-1151d1775
-<       include 'COMMON.VECTORS'
-1154,1247c1778,1815
-<       dimension uyder(3,3,2),uzder(3,3,2),vbld_inv_temp(2)
-< C Compute the local reference systems. For reference system (i), the
-< C X-axis points from CA(i) to CA(i+1), the Y axis is in the 
-< C CA(i)-CA(i+1)-CA(i+2) plane, and the Z axis is perpendicular to this plane.
-<       do i=1,nres-1
-< c          if (i.eq.nres-1 .or. itel(i+1).eq.0) then
-<           if (i.eq.nres-1) then
-< C Case of the last full residue
-< C Compute the Z-axis
-<             call vecpr(dc_norm(1,i),dc_norm(1,i-1),uz(1,i))
-<             costh=dcos(pi-theta(nres))
-<             fac=1.0d0/dsqrt(1.0d0-costh*costh)
-<             do k=1,3
-<               uz(k,i)=fac*uz(k,i)
-<             enddo
-<             if (calc_grad) then
-< C Compute the derivatives of uz
-<             uzder(1,1,1)= 0.0d0
-<             uzder(2,1,1)=-dc_norm(3,i-1)
-<             uzder(3,1,1)= dc_norm(2,i-1) 
-<             uzder(1,2,1)= dc_norm(3,i-1)
-<             uzder(2,2,1)= 0.0d0
-<             uzder(3,2,1)=-dc_norm(1,i-1)
-<             uzder(1,3,1)=-dc_norm(2,i-1)
-<             uzder(2,3,1)= dc_norm(1,i-1)
-<             uzder(3,3,1)= 0.0d0
-<             uzder(1,1,2)= 0.0d0
-<             uzder(2,1,2)= dc_norm(3,i)
-<             uzder(3,1,2)=-dc_norm(2,i) 
-<             uzder(1,2,2)=-dc_norm(3,i)
-<             uzder(2,2,2)= 0.0d0
-<             uzder(3,2,2)= dc_norm(1,i)
-<             uzder(1,3,2)= dc_norm(2,i)
-<             uzder(2,3,2)=-dc_norm(1,i)
-<             uzder(3,3,2)= 0.0d0
-<             endif
-< C Compute the Y-axis
-<             facy=fac
-<             do k=1,3
-<               uy(k,i)=fac*(dc_norm(k,i-1)-costh*dc_norm(k,i))
-<             enddo
-<             if (calc_grad) then
-< C Compute the derivatives of uy
-<             do j=1,3
-<               do k=1,3
-<                 uyder(k,j,1)=2*dc_norm(k,i-1)*dc_norm(j,i)
-<      &                        -dc_norm(k,i)*dc_norm(j,i-1)
-<                 uyder(k,j,2)=-dc_norm(j,i)*dc_norm(k,i)
-<               enddo
-<               uyder(j,j,1)=uyder(j,j,1)-costh
-<               uyder(j,j,2)=1.0d0+uyder(j,j,2)
-<             enddo
-<             do j=1,2
-<               do k=1,3
-<                 do l=1,3
-<                   uygrad(l,k,j,i)=uyder(l,k,j)
-<                   uzgrad(l,k,j,i)=uzder(l,k,j)
-<                 enddo
-<               enddo
-<             enddo 
-<             call unormderiv(uy(1,i),uyder(1,1,1),facy,uygrad(1,1,1,i))
-<             call unormderiv(uy(1,i),uyder(1,1,2),facy,uygrad(1,1,2,i))
-<             call unormderiv(uz(1,i),uzder(1,1,1),fac,uzgrad(1,1,1,i))
-<             call unormderiv(uz(1,i),uzder(1,1,2),fac,uzgrad(1,1,2,i))
-<             endif
-<           else
-< C Other residues
-< C Compute the Z-axis
-<             call vecpr(dc_norm(1,i),dc_norm(1,i+1),uz(1,i))
-<             costh=dcos(pi-theta(i+2))
-<             fac=1.0d0/dsqrt(1.0d0-costh*costh)
-<             do k=1,3
-<               uz(k,i)=fac*uz(k,i)
-<             enddo
-<             if (calc_grad) then
-< C Compute the derivatives of uz
-<             uzder(1,1,1)= 0.0d0
-<             uzder(2,1,1)=-dc_norm(3,i+1)
-<             uzder(3,1,1)= dc_norm(2,i+1) 
-<             uzder(1,2,1)= dc_norm(3,i+1)
-<             uzder(2,2,1)= 0.0d0
-<             uzder(3,2,1)=-dc_norm(1,i+1)
-<             uzder(1,3,1)=-dc_norm(2,i+1)
-<             uzder(2,3,1)= dc_norm(1,i+1)
-<             uzder(3,3,1)= 0.0d0
-<             uzder(1,1,2)= 0.0d0
-<             uzder(2,1,2)= dc_norm(3,i)
-<             uzder(3,1,2)=-dc_norm(2,i) 
-<             uzder(1,2,2)=-dc_norm(3,i)
-<             uzder(2,2,2)= 0.0d0
-<             uzder(3,2,2)= dc_norm(1,i)
-<             uzder(1,3,2)= dc_norm(2,i)
-<             uzder(2,3,2)=-dc_norm(1,i)
-<             uzder(3,3,2)= 0.0d0
----
->       include 'COMMON.TORSION'
->       include 'COMMON.SBRIDGE'
->       include 'COMMON.NAMES'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.CONTACTS'
->       dimension gg(3)
-> cd    print *,'Entering Esoft_sphere nnt=',nnt,' nct=',nct
->       evdw=0.0D0
->       do i=iatsc_s,iatsc_e
->         itypi=itype(i)
->         if (itypi.eq.21) cycle
->         itypi1=itype(i+1)
->         xi=c(1,nres+i)
->         yi=c(2,nres+i)
->         zi=c(3,nres+i)
-> C
-> C Calculate SC interaction energy.
-> C
->         do iint=1,nint_gr(i)
-> cd        write (iout,*) 'i=',i,' iint=',iint,' istart=',istart(i,iint),
-> cd   &                  'iend=',iend(i,iint)
->           do j=istart(i,iint),iend(i,iint)
->             itypj=itype(j)
->             if (itypj.eq.21) cycle
->             xj=c(1,nres+j)-xi
->             yj=c(2,nres+j)-yi
->             zj=c(3,nres+j)-zi
->             rij=xj*xj+yj*yj+zj*zj
-> c           write (iout,*)'i=',i,' j=',j,' itypi=',itypi,' itypj=',itypj
->             r0ij=r0(itypi,itypj)
->             r0ijsq=r0ij*r0ij
-> c            print *,i,j,r0ij,dsqrt(rij)
->             if (rij.lt.r0ijsq) then
->               evdwij=0.25d0*(rij-r0ijsq)**2
->               fac=rij-r0ijsq
->             else
->               evdwij=0.0d0
->               fac=0.0d0
-1249,1250c1817,1823
-< C Compute the Y-axis
-<             facy=fac
----
->             evdw=evdw+evdwij
-> C 
-> C Calculate the components of the gradient in DC and X
-> C
->             gg(1)=xj*fac
->             gg(2)=yj*fac
->             gg(3)=zj*fac
-1252,1263c1825,1828
-<               uy(k,i)=facy*(dc_norm(k,i+1)-costh*dc_norm(k,i))
-<             enddo
-<             if (calc_grad) then
-< C Compute the derivatives of uy
-<             do j=1,3
-<               do k=1,3
-<                 uyder(k,j,1)=2*dc_norm(k,i+1)*dc_norm(j,i)
-<      &                        -dc_norm(k,i)*dc_norm(j,i+1)
-<                 uyder(k,j,2)=-dc_norm(j,i)*dc_norm(k,i)
-<               enddo
-<               uyder(j,j,1)=uyder(j,j,1)-costh
-<               uyder(j,j,2)=1.0d0+uyder(j,j,2)
----
->               gvdwx(k,i)=gvdwx(k,i)-gg(k)
->               gvdwx(k,j)=gvdwx(k,j)+gg(k)
->               gvdwc(k,i)=gvdwc(k,i)-gg(k)
->               gvdwc(k,j)=gvdwc(k,j)+gg(k)
-1265,1277c1830,1898
-<             do j=1,2
-<               do k=1,3
-<                 do l=1,3
-<                   uygrad(l,k,j,i)=uyder(l,k,j)
-<                   uzgrad(l,k,j,i)=uzder(l,k,j)
-<                 enddo
-<               enddo
-<             enddo 
-<             call unormderiv(uy(1,i),uyder(1,1,1),facy,uygrad(1,1,1,i))
-<             call unormderiv(uy(1,i),uyder(1,1,2),facy,uygrad(1,1,2,i))
-<             call unormderiv(uz(1,i),uzder(1,1,1),fac,uzgrad(1,1,1,i))
-<             call unormderiv(uz(1,i),uzder(1,1,2),fac,uzgrad(1,1,2,i))
-<           endif
----
-> cgrad            do k=i,j-1
-> cgrad              do l=1,3
-> cgrad                gvdwc(l,k)=gvdwc(l,k)+gg(l)
-> cgrad              enddo
-> cgrad            enddo
->           enddo ! j
->         enddo ! iint
->       enddo ! i
->       return
->       end
-> C--------------------------------------------------------------------------
->       subroutine eelec_soft_sphere(ees,evdw1,eel_loc,eello_turn3,
->      &              eello_turn4)
-> C
-> C Soft-sphere potential of p-p interaction
-> C 
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.CONTROL'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.GEO'
->       include 'COMMON.VAR'
->       include 'COMMON.LOCAL'
->       include 'COMMON.CHAIN'
->       include 'COMMON.DERIV'
->       include 'COMMON.INTERACT'
->       include 'COMMON.CONTACTS'
->       include 'COMMON.TORSION'
->       include 'COMMON.VECTORS'
->       include 'COMMON.FFIELD'
->       dimension ggg(3)
-> cd      write(iout,*) 'In EELEC_soft_sphere'
->       ees=0.0D0
->       evdw1=0.0D0
->       eel_loc=0.0d0 
->       eello_turn3=0.0d0
->       eello_turn4=0.0d0
->       ind=0
->       do i=iatel_s,iatel_e
->         if (itype(i).eq.21 .or. itype(i+1).eq.21) cycle
->         dxi=dc(1,i)
->         dyi=dc(2,i)
->         dzi=dc(3,i)
->         xmedi=c(1,i)+0.5d0*dxi
->         ymedi=c(2,i)+0.5d0*dyi
->         zmedi=c(3,i)+0.5d0*dzi
->         num_conti=0
-> c        write (iout,*) 'i',i,' ielstart',ielstart(i),' ielend',ielend(i)
->         do j=ielstart(i),ielend(i)
->           if (itype(j).eq.21 .or. itype(j+1).eq.21) cycle
->           ind=ind+1
->           iteli=itel(i)
->           itelj=itel(j)
->           if (j.eq.i+2 .and. itelj.eq.2) iteli=2
->           r0ij=rpp(iteli,itelj)
->           r0ijsq=r0ij*r0ij 
->           dxj=dc(1,j)
->           dyj=dc(2,j)
->           dzj=dc(3,j)
->           xj=c(1,j)+0.5D0*dxj-xmedi
->           yj=c(2,j)+0.5D0*dyj-ymedi
->           zj=c(3,j)+0.5D0*dzj-zmedi
->           rij=xj*xj+yj*yj+zj*zj
->           if (rij.lt.r0ijsq) then
->             evdw1ij=0.25d0*(rij-r0ijsq)**2
->             fac=rij-r0ijsq
->           else
->             evdw1ij=0.0d0
->             fac=0.0d0
-1279,1288c1900,1906
-<       enddo
-<       if (calc_grad) then
-<       do i=1,nres-1
-<         vbld_inv_temp(1)=vbld_inv(i+1)
-<         if (i.lt.nres-1) then
-<           vbld_inv_temp(2)=vbld_inv(i+2)
-<         else
-<           vbld_inv_temp(2)=vbld_inv(i)
-<         endif
-<         do j=1,2
----
->           evdw1=evdw1+evdw1ij
-> C
-> C Calculate contributions to the Cartesian gradient.
-> C
->           ggg(1)=fac*xj
->           ggg(2)=fac*yj
->           ggg(3)=fac*zj
-1290,1293c1908,1909
-<             do l=1,3
-<               uygrad(l,k,j,i)=vbld_inv_temp(j)*uygrad(l,k,j,i)
-<               uzgrad(l,k,j,i)=vbld_inv_temp(j)*uzgrad(l,k,j,i)
-<             enddo
----
->             gvdwpp(k,i)=gvdwpp(k,i)-ggg(k)
->             gvdwpp(k,j)=gvdwpp(k,j)+ggg(k)
-1295,1297c1911,1930
-<         enddo
-<       enddo
-<       endif
----
-> *
-> * Loop over residues i+1 thru j-1.
-> *
-> cgrad          do k=i+1,j-1
-> cgrad            do l=1,3
-> cgrad              gelc(l,k)=gelc(l,k)+ggg(l)
-> cgrad            enddo
-> cgrad          enddo
->         enddo ! j
->       enddo   ! i
-> cgrad      do i=nnt,nct-1
-> cgrad        do k=1,3
-> cgrad          gelc(k,i)=gelc(k,i)+0.5d0*gelc(k,i)
-> cgrad        enddo
-> cgrad        do j=i+1,nct-1
-> cgrad          do k=1,3
-> cgrad            gelc(k,i)=gelc(k,i)+gelc(k,j)
-> cgrad          enddo
-> cgrad        enddo
-> cgrad      enddo
-1300,1301c1933,1934
-< C-----------------------------------------------------------------------------
-<       subroutine vec_and_deriv_test
----
-> c------------------------------------------------------------------------------
->       subroutine vec_and_deriv
-1304c1937,1939
-<       include 'DIMENSIONS.ZSCOPT'
----
-> #ifdef MPI
->       include 'mpif.h'
-> #endif
-1311c1946,1948
-<       dimension uyder(3,3,2),uzder(3,3,2)
----
->       include 'COMMON.SETUP'
->       include 'COMMON.TIME1'
->       dimension uyder(3,3,2),uzder(3,3,2),vbld_inv_temp(2)
-1314a1952,1954
-> #ifdef PARVEC
->       do i=ivec_start,ivec_end
-> #else
-1315a1956
-> #endif
-1322,1324d1962
-< c            write (iout,*) 'fac',fac,
-< c     &        1.0d0/dsqrt(scalar(uz(1,i),uz(1,i)))
-<             fac=1.0d0/dsqrt(scalar(uz(1,i),uz(1,i)))
-1348,1350d1985
-<             do k=1,3
-<               uy(k,i)=fac*(dc_norm(k,i-1)-costh*dc_norm(k,i))
-<             enddo
-1352,1365d1986
-<             facy=1.0d0/dsqrt(scalar(dc_norm(1,i),dc_norm(1,i))*
-<      &       (scalar(dc_norm(1,i-1),dc_norm(1,i-1))**2-
-<      &        scalar(dc_norm(1,i),dc_norm(1,i-1))**2))
-<             do k=1,3
-< c              uy(k,i)=facy*(dc_norm(k,i+1)-costh*dc_norm(k,i))
-<               uy(k,i)=
-< c     &        facy*(
-<      &        dc_norm(k,i-1)*scalar(dc_norm(1,i),dc_norm(1,i))
-<      &        -scalar(dc_norm(1,i),dc_norm(1,i-1))*dc_norm(k,i)
-< c     &        )
-<             enddo
-< c            write (iout,*) 'facy',facy,
-< c     &       1.0d0/dsqrt(scalar(uy(1,i),uy(1,i)))
-<             facy=1.0d0/dsqrt(scalar(uy(1,i),uy(1,i)))
-1367c1988
-<               uy(k,i)=facy*uy(k,i)
----
->               uy(k,i)=fac*(dc_norm(k,i-1)-costh*dc_norm(k,i))
-1376,1381c1997,1998
-< c              uyder(j,j,1)=uyder(j,j,1)-costh
-< c              uyder(j,j,2)=1.0d0+uyder(j,j,2)
-<               uyder(j,j,1)=uyder(j,j,1)
-<      &          -scalar(dc_norm(1,i),dc_norm(1,i-1))
-<               uyder(j,j,2)=scalar(dc_norm(1,i),dc_norm(1,i))
-<      &          +uyder(j,j,2)
----
->               uyder(j,j,1)=uyder(j,j,1)-costh
->               uyder(j,j,2)=1.0d0+uyder(j,j,2)
-1401d2017
-<             fac=1.0d0/dsqrt(scalar(uz(1,i),uz(1,i)))
-1426,1439d2041
-<             facy=1.0d0/dsqrt(scalar(dc_norm(1,i),dc_norm(1,i))*
-<      &       (scalar(dc_norm(1,i+1),dc_norm(1,i+1))**2-
-<      &        scalar(dc_norm(1,i),dc_norm(1,i+1))**2))
-<             do k=1,3
-< c              uy(k,i)=facy*(dc_norm(k,i+1)-costh*dc_norm(k,i))
-<               uy(k,i)=
-< c     &        facy*(
-<      &        dc_norm(k,i+1)*scalar(dc_norm(1,i),dc_norm(1,i))
-<      &        -scalar(dc_norm(1,i),dc_norm(1,i+1))*dc_norm(k,i)
-< c     &        )
-<             enddo
-< c            write (iout,*) 'facy',facy,
-< c     &       1.0d0/dsqrt(scalar(uy(1,i),uy(1,i)))
-<             facy=1.0d0/dsqrt(scalar(uy(1,i),uy(1,i)))
-1441c2043
-<               uy(k,i)=facy*uy(k,i)
----
->               uy(k,i)=facy*(dc_norm(k,i+1)-costh*dc_norm(k,i))
-1450,1455c2052,2053
-< c              uyder(j,j,1)=uyder(j,j,1)-costh
-< c              uyder(j,j,2)=1.0d0+uyder(j,j,2)
-<               uyder(j,j,1)=uyder(j,j,1)
-<      &          -scalar(dc_norm(1,i),dc_norm(1,i+1))
-<               uyder(j,j,2)=scalar(dc_norm(1,i),dc_norm(1,i))
-<      &          +uyder(j,j,2)
----
->               uyder(j,j,1)=uyder(j,j,1)-costh
->               uyder(j,j,2)=1.0d0+uyder(j,j,2)
-1471a2070,2075
->         vbld_inv_temp(1)=vbld_inv(i+1)
->         if (i.lt.nres-1) then
->           vbld_inv_temp(2)=vbld_inv(i+2)
->           else
->           vbld_inv_temp(2)=vbld_inv(i)
->           endif
-1475,1476c2079,2080
-<               uygrad(l,k,j,i)=vblinv*uygrad(l,k,j,i)
-<               uzgrad(l,k,j,i)=vblinv*uzgrad(l,k,j,i)
----
->               uygrad(l,k,j,i)=vbld_inv_temp(j)*uygrad(l,k,j,i)
->               uzgrad(l,k,j,i)=vbld_inv_temp(j)*uzgrad(l,k,j,i)
-1480a2085,2112
-> #if defined(PARVEC) && defined(MPI)
->       if (nfgtasks1.gt.1) then
->         time00=MPI_Wtime()
-> c        print *,"Processor",fg_rank1,kolor1," ivec_start",ivec_start,
-> c     &   " ivec_displ",(ivec_displ(i),i=0,nfgtasks1-1),
-> c     &   " ivec_count",(ivec_count(i),i=0,nfgtasks1-1)
->         call MPI_Allgatherv(uy(1,ivec_start),ivec_count(fg_rank1),
->      &   MPI_UYZ,uy(1,1),ivec_count(0),ivec_displ(0),MPI_UYZ,
->      &   FG_COMM1,IERR)
->         call MPI_Allgatherv(uz(1,ivec_start),ivec_count(fg_rank1),
->      &   MPI_UYZ,uz(1,1),ivec_count(0),ivec_displ(0),MPI_UYZ,
->      &   FG_COMM1,IERR)
->         call MPI_Allgatherv(uygrad(1,1,1,ivec_start),
->      &   ivec_count(fg_rank1),MPI_UYZGRAD,uygrad(1,1,1,1),ivec_count(0),
->      &   ivec_displ(0),MPI_UYZGRAD,FG_COMM1,IERR)
->         call MPI_Allgatherv(uzgrad(1,1,1,ivec_start),
->      &   ivec_count(fg_rank1),MPI_UYZGRAD,uzgrad(1,1,1,1),ivec_count(0),
->      &   ivec_displ(0),MPI_UYZGRAD,FG_COMM1,IERR)
->         time_gather=time_gather+MPI_Wtime()-time00
->       endif
-> c      if (fg_rank.eq.0) then
-> c        write (iout,*) "Arrays UY and UZ"
-> c        do i=1,nres-1
-> c          write (iout,'(i5,3f10.5,5x,3f10.5)') i,(uy(k,i),k=1,3),
-> c     &     (uz(k,i),k=1,3)
-> c        enddo
-> c      endif
-> #endif
-1487d2118
-<       include 'DIMENSIONS.ZSCOPT'
-1572c2203,2208
-<       include 'DIMENSIONS.ZSCOPT'
----
-> #ifdef MPI
->       include "mpif.h"
->       include "COMMON.SETUP"
->       integer IERR
->       integer status(MPI_STATUS_SIZE)
-> #endif
-1588a2225,2227
-> #ifdef PARMAT
->       do i=ivec_start+2,ivec_end+2
-> #else
-1589a2229
-> #endif
-1655a2296
-> c        if (i.gt. iatel_s+2 .and. i.lt.iatel_e+5) then
-1657,1661c2298
-<           if (itype(i-2).le.ntyp) then
-<             iti = itortyp(itype(i-2))
-<           else 
-<             iti=ntortyp+1
-<           endif
----
->           iti = itortyp(itype(i-2))
-1664a2302
-> c        if (i.gt. iatel_s+1 .and. i.lt.iatel_e+4) then
-1666,1670c2304
-<           if (itype(i-1).le.ntyp) then
-<             iti1 = itortyp(itype(i-1))
-<           else
-<             iti1=ntortyp+1
-<           endif
----
->           iti1 = itortyp(itype(i-1))
-1678,1679c2312,2313
-< c        print *,"itilde1 i iti iti1",i,iti,iti1
-<         if (i .gt. iatel_s+2) then
----
-> c        if (i .gt. iatel_s+2) then
->         if (i .gt. nnt+2) then
-1681a2316,2317
->           if (wcorr4.gt.0.0d0 .or. wcorr5.gt.0.0d0 .or. wcorr6.gt.0.0d0) 
->      &    then
-1686a2323
->           endif
-1700d2336
-< c        print *,"itilde2 i iti iti1",i,iti,iti1
-1703,1708d2338
-<         call matmat2(CC(1,1,iti1),Ugder(1,1,i-2),CUgder(1,1,i-2))
-<         call matmat2(DD(1,1,iti),Ugder(1,1,i-2),DUgder(1,1,i-2))
-<         call matmat2(Dtilde(1,1,iti),Ug2der(1,1,i-2),DtUg2der(1,1,i-2))
-<         call matvec2(Ctilde(1,1,iti1),obrot_der(1,i-2),Ctobrder(1,i-2))
-<         call matvec2(Dtilde(1,1,iti),obrot2_der(1,i-2),Dtobr2der(1,i-2))
-< c        print *,"itilde3 i iti iti1",i,iti,iti1
-1711a2342
-> c        if (i.gt. iatel_s+1 .and. i.lt.iatel_e+4) then
-1713,1717c2344
-<           if (itype(i-1).le.ntyp) then
-<             iti1 = itortyp(itype(i-1))
-<           else
-<             iti1=ntortyp+1
-<           endif
----
->           iti1 = itortyp(itype(i-1))
-1723a2351,2360
-> cd        write (iout,*) 'mu ',mu(:,i-2)
-> cd        write (iout,*) 'mu1',mu1(:,i-2)
-> cd        write (iout,*) 'mu2',mu2(:,i-2)
->         if (wcorr4.gt.0.0d0 .or. wcorr5.gt.0.0d0 .or.wcorr6.gt.0.0d0)
->      &  then  
->         call matmat2(CC(1,1,iti1),Ugder(1,1,i-2),CUgder(1,1,i-2))
->         call matmat2(DD(1,1,iti),Ugder(1,1,i-2),DUgder(1,1,i-2))
->         call matmat2(Dtilde(1,1,iti),Ug2der(1,1,i-2),DtUg2der(1,1,i-2))
->         call matvec2(Ctilde(1,1,iti1),obrot_der(1,i-2),Ctobrder(1,i-2))
->         call matvec2(Dtilde(1,1,iti),obrot2_der(1,i-2),Dtobr2der(1,i-2))
-1734,1735c2371
-< cd        write (iout,*) 'i',i,' mu ',(mu(k,i-2),k=1,2),
-< cd     &  ' mu1',(b1(k,i-2),k=1,2),' mu2',(Ub2(k,i-2),k=1,2)
----
->         endif
-1738a2375,2377
->       if (wcorr4.gt.0.0d0 .or. wcorr5.gt.0.0d0 .or.wcorr6.gt.0.0d0)
->      &then
-> c      do i=max0(ivec_start,2),ivec_end
-1748a2388,2636
->       endif
-> #if defined(MPI) && defined(PARMAT)
-> #ifdef DEBUG
-> c      if (fg_rank.eq.0) then
->         write (iout,*) "Arrays UG and UGDER before GATHER"
->         do i=1,nres-1
->           write (iout,'(i5,4f10.5,5x,4f10.5)') i,
->      &     ((ug(l,k,i),l=1,2),k=1,2),
->      &     ((ugder(l,k,i),l=1,2),k=1,2)
->         enddo
->         write (iout,*) "Arrays UG2 and UG2DER"
->         do i=1,nres-1
->           write (iout,'(i5,4f10.5,5x,4f10.5)') i,
->      &     ((ug2(l,k,i),l=1,2),k=1,2),
->      &     ((ug2der(l,k,i),l=1,2),k=1,2)
->         enddo
->         write (iout,*) "Arrays OBROT OBROT2 OBROTDER and OBROT2DER"
->         do i=1,nres-1
->           write (iout,'(i5,4f10.5,5x,4f10.5)') i,
->      &     (obrot(k,i),k=1,2),(obrot2(k,i),k=1,2),
->      &     (obrot_der(k,i),k=1,2),(obrot2_der(k,i),k=1,2)
->         enddo
->         write (iout,*) "Arrays COSTAB SINTAB COSTAB2 and SINTAB2"
->         do i=1,nres-1
->           write (iout,'(i5,4f10.5,5x,4f10.5)') i,
->      &     costab(i),sintab(i),costab2(i),sintab2(i)
->         enddo
->         write (iout,*) "Array MUDER"
->         do i=1,nres-1
->           write (iout,'(i5,2f10.5)') i,muder(1,i),muder(2,i)
->         enddo
-> c      endif
-> #endif
->       if (nfgtasks.gt.1) then
->         time00=MPI_Wtime()
-> c        write(iout,*)"Processor",fg_rank,kolor," ivec_start",ivec_start,
-> c     &   " ivec_displ",(ivec_displ(i),i=0,nfgtasks-1),
-> c     &   " ivec_count",(ivec_count(i),i=0,nfgtasks-1)
-> #ifdef MATGATHER
->         call MPI_Allgatherv(Ub2(1,ivec_start),ivec_count(fg_rank1),
->      &   MPI_MU,Ub2(1,1),ivec_count(0),ivec_displ(0),MPI_MU,
->      &   FG_COMM1,IERR)
->         call MPI_Allgatherv(Ub2der(1,ivec_start),ivec_count(fg_rank1),
->      &   MPI_MU,Ub2der(1,1),ivec_count(0),ivec_displ(0),MPI_MU,
->      &   FG_COMM1,IERR)
->         call MPI_Allgatherv(mu(1,ivec_start),ivec_count(fg_rank1),
->      &   MPI_MU,mu(1,1),ivec_count(0),ivec_displ(0),MPI_MU,
->      &   FG_COMM1,IERR)
->         call MPI_Allgatherv(muder(1,ivec_start),ivec_count(fg_rank1),
->      &   MPI_MU,muder(1,1),ivec_count(0),ivec_displ(0),MPI_MU,
->      &   FG_COMM1,IERR)
->         call MPI_Allgatherv(Eug(1,1,ivec_start),ivec_count(fg_rank1),
->      &   MPI_MAT1,Eug(1,1,1),ivec_count(0),ivec_displ(0),MPI_MAT1,
->      &   FG_COMM1,IERR)
->         call MPI_Allgatherv(Eugder(1,1,ivec_start),ivec_count(fg_rank1),
->      &   MPI_MAT1,Eugder(1,1,1),ivec_count(0),ivec_displ(0),MPI_MAT1,
->      &   FG_COMM1,IERR)
->         call MPI_Allgatherv(costab(ivec_start),ivec_count(fg_rank1),
->      &   MPI_DOUBLE_PRECISION,costab(1),ivec_count(0),ivec_displ(0),
->      &   MPI_DOUBLE_PRECISION,FG_COMM1,IERR)
->         call MPI_Allgatherv(sintab(ivec_start),ivec_count(fg_rank1),
->      &   MPI_DOUBLE_PRECISION,sintab(1),ivec_count(0),ivec_displ(0),
->      &   MPI_DOUBLE_PRECISION,FG_COMM1,IERR)
->         call MPI_Allgatherv(costab2(ivec_start),ivec_count(fg_rank1),
->      &   MPI_DOUBLE_PRECISION,costab2(1),ivec_count(0),ivec_displ(0),
->      &   MPI_DOUBLE_PRECISION,FG_COMM1,IERR)
->         call MPI_Allgatherv(sintab2(ivec_start),ivec_count(fg_rank1),
->      &   MPI_DOUBLE_PRECISION,sintab2(1),ivec_count(0),ivec_displ(0),
->      &   MPI_DOUBLE_PRECISION,FG_COMM1,IERR)
->         if (wcorr4.gt.0.0d0 .or. wcorr5.gt.0.0d0 .or. wcorr6.gt.0.0d0)
->      &  then
->         call MPI_Allgatherv(Ctobr(1,ivec_start),ivec_count(fg_rank1),
->      &   MPI_MU,Ctobr(1,1),ivec_count(0),ivec_displ(0),MPI_MU,
->      &   FG_COMM1,IERR)
->         call MPI_Allgatherv(Ctobrder(1,ivec_start),ivec_count(fg_rank1),
->      &   MPI_MU,Ctobrder(1,1),ivec_count(0),ivec_displ(0),MPI_MU,
->      &   FG_COMM1,IERR)
->         call MPI_Allgatherv(Dtobr2(1,ivec_start),ivec_count(fg_rank1),
->      &   MPI_MU,Dtobr2(1,1),ivec_count(0),ivec_displ(0),MPI_MU,
->      &   FG_COMM1,IERR)
->        call MPI_Allgatherv(Dtobr2der(1,ivec_start),ivec_count(fg_rank1),
->      &   MPI_MU,Dtobr2der(1,1),ivec_count(0),ivec_displ(0),MPI_MU,
->      &   FG_COMM1,IERR)
->         call MPI_Allgatherv(Ug2Db1t(1,ivec_start),ivec_count(fg_rank1),
->      &   MPI_MU,Ug2Db1t(1,1),ivec_count(0),ivec_displ(0),MPI_MU,
->      &   FG_COMM1,IERR)
->         call MPI_Allgatherv(Ug2Db1tder(1,ivec_start),
->      &   ivec_count(fg_rank1),
->      &   MPI_MU,Ug2Db1tder(1,1),ivec_count(0),ivec_displ(0),MPI_MU,
->      &   FG_COMM1,IERR)
->         call MPI_Allgatherv(CUgb2(1,ivec_start),ivec_count(fg_rank1),
->      &   MPI_MU,CUgb2(1,1),ivec_count(0),ivec_displ(0),MPI_MU,
->      &   FG_COMM1,IERR)
->         call MPI_Allgatherv(CUgb2der(1,ivec_start),ivec_count(fg_rank1),
->      &   MPI_MU,CUgb2der(1,1),ivec_count(0),ivec_displ(0),MPI_MU,
->      &   FG_COMM1,IERR)
->         call MPI_Allgatherv(Cug(1,1,ivec_start),ivec_count(fg_rank1),
->      &   MPI_MAT1,Cug(1,1,1),ivec_count(0),ivec_displ(0),MPI_MAT1,
->      &   FG_COMM1,IERR)
->         call MPI_Allgatherv(Cugder(1,1,ivec_start),ivec_count(fg_rank1),
->      &   MPI_MAT1,Cugder(1,1,1),ivec_count(0),ivec_displ(0),MPI_MAT1,
->      &   FG_COMM1,IERR)
->         call MPI_Allgatherv(Dug(1,1,ivec_start),ivec_count(fg_rank1),
->      &   MPI_MAT1,Dug(1,1,1),ivec_count(0),ivec_displ(0),MPI_MAT1,
->      &   FG_COMM1,IERR)
->         call MPI_Allgatherv(Dugder(1,1,ivec_start),ivec_count(fg_rank1),
->      &   MPI_MAT1,Dugder(1,1,1),ivec_count(0),ivec_displ(0),MPI_MAT1,
->      &   FG_COMM1,IERR)
->         call MPI_Allgatherv(Dtug2(1,1,ivec_start),ivec_count(fg_rank1),
->      &   MPI_MAT1,Dtug2(1,1,1),ivec_count(0),ivec_displ(0),MPI_MAT1,
->      &   FG_COMM1,IERR)
->         call MPI_Allgatherv(Dtug2der(1,1,ivec_start),
->      &   ivec_count(fg_rank1),
->      &   MPI_MAT1,Dtug2der(1,1,1),ivec_count(0),ivec_displ(0),MPI_MAT1,
->      &   FG_COMM1,IERR)
->         call MPI_Allgatherv(EugC(1,1,ivec_start),ivec_count(fg_rank1),
->      &   MPI_MAT1,EugC(1,1,1),ivec_count(0),ivec_displ(0),MPI_MAT1,
->      &   FG_COMM1,IERR)
->        call MPI_Allgatherv(EugCder(1,1,ivec_start),ivec_count(fg_rank1),
->      &   MPI_MAT1,EugCder(1,1,1),ivec_count(0),ivec_displ(0),MPI_MAT1,
->      &   FG_COMM1,IERR)
->         call MPI_Allgatherv(EugD(1,1,ivec_start),ivec_count(fg_rank1),
->      &   MPI_MAT1,EugD(1,1,1),ivec_count(0),ivec_displ(0),MPI_MAT1,
->      &   FG_COMM1,IERR)
->        call MPI_Allgatherv(EugDder(1,1,ivec_start),ivec_count(fg_rank1),
->      &   MPI_MAT1,EugDder(1,1,1),ivec_count(0),ivec_displ(0),MPI_MAT1,
->      &   FG_COMM1,IERR)
->         call MPI_Allgatherv(DtUg2EUg(1,1,ivec_start),
->      &   ivec_count(fg_rank1),
->      &   MPI_MAT1,DtUg2EUg(1,1,1),ivec_count(0),ivec_displ(0),MPI_MAT1,
->      &   FG_COMM1,IERR)
->         call MPI_Allgatherv(Ug2DtEUg(1,1,ivec_start),
->      &   ivec_count(fg_rank1),
->      &   MPI_MAT1,Ug2DtEUg(1,1,1),ivec_count(0),ivec_displ(0),MPI_MAT1,
->      &   FG_COMM1,IERR)
->         call MPI_Allgatherv(DtUg2EUgder(1,1,1,ivec_start),
->      &   ivec_count(fg_rank1),
->      &   MPI_MAT2,DtUg2EUgder(1,1,1,1),ivec_count(0),ivec_displ(0),
->      &   MPI_MAT2,FG_COMM1,IERR)
->         call MPI_Allgatherv(Ug2DtEUgder(1,1,1,ivec_start),
->      &   ivec_count(fg_rank1),
->      &   MPI_MAT2,Ug2DtEUgder(1,1,1,1),ivec_count(0),ivec_displ(0),
->      &   MPI_MAT2,FG_COMM1,IERR)
->         endif
-> #else
-> c Passes matrix info through the ring
->       isend=fg_rank1
->       irecv=fg_rank1-1
->       if (irecv.lt.0) irecv=nfgtasks1-1 
->       iprev=irecv
->       inext=fg_rank1+1
->       if (inext.ge.nfgtasks1) inext=0
->       do i=1,nfgtasks1-1
-> c        write (iout,*) "isend",isend," irecv",irecv
-> c        call flush(iout)
->         lensend=lentyp(isend)
->         lenrecv=lentyp(irecv)
-> c        write (iout,*) "lensend",lensend," lenrecv",lenrecv
-> c        call MPI_SENDRECV(ug(1,1,ivec_displ(isend)+1),1,
-> c     &   MPI_ROTAT1(lensend),inext,2200+isend,
-> c     &   ug(1,1,ivec_displ(irecv)+1),1,MPI_ROTAT1(lenrecv),
-> c     &   iprev,2200+irecv,FG_COMM,status,IERR)
-> c        write (iout,*) "Gather ROTAT1"
-> c        call flush(iout)
-> c        call MPI_SENDRECV(obrot(1,ivec_displ(isend)+1),1,
-> c     &   MPI_ROTAT2(lensend),inext,3300+isend,
-> c     &   obrot(1,ivec_displ(irecv)+1),1,MPI_ROTAT2(lenrecv),
-> c     &   iprev,3300+irecv,FG_COMM,status,IERR)
-> c        write (iout,*) "Gather ROTAT2"
-> c        call flush(iout)
->         call MPI_SENDRECV(costab(ivec_displ(isend)+1),1,
->      &   MPI_ROTAT_OLD(lensend),inext,4400+isend,
->      &   costab(ivec_displ(irecv)+1),1,MPI_ROTAT_OLD(lenrecv),
->      &   iprev,4400+irecv,FG_COMM,status,IERR)
-> c        write (iout,*) "Gather ROTAT_OLD"
-> c        call flush(iout)
->         call MPI_SENDRECV(mu(1,ivec_displ(isend)+1),1,
->      &   MPI_PRECOMP11(lensend),inext,5500+isend,
->      &   mu(1,ivec_displ(irecv)+1),1,MPI_PRECOMP11(lenrecv),
->      &   iprev,5500+irecv,FG_COMM,status,IERR)
-> c        write (iout,*) "Gather PRECOMP11"
-> c        call flush(iout)
->         call MPI_SENDRECV(Eug(1,1,ivec_displ(isend)+1),1,
->      &   MPI_PRECOMP12(lensend),inext,6600+isend,
->      &   Eug(1,1,ivec_displ(irecv)+1),1,MPI_PRECOMP12(lenrecv),
->      &   iprev,6600+irecv,FG_COMM,status,IERR)
-> c        write (iout,*) "Gather PRECOMP12"
-> c        call flush(iout)
->         if (wcorr4.gt.0.0d0 .or. wcorr5.gt.0.0d0 .or. wcorr6.gt.0.0d0) 
->      &  then
->         call MPI_SENDRECV(ug2db1t(1,ivec_displ(isend)+1),1,
->      &   MPI_ROTAT2(lensend),inext,7700+isend,
->      &   ug2db1t(1,ivec_displ(irecv)+1),1,MPI_ROTAT2(lenrecv),
->      &   iprev,7700+irecv,FG_COMM,status,IERR)
-> c        write (iout,*) "Gather PRECOMP21"
-> c        call flush(iout)
->         call MPI_SENDRECV(EUgC(1,1,ivec_displ(isend)+1),1,
->      &   MPI_PRECOMP22(lensend),inext,8800+isend,
->      &   EUgC(1,1,ivec_displ(irecv)+1),1,MPI_PRECOMP22(lenrecv),
->      &   iprev,8800+irecv,FG_COMM,status,IERR)
-> c        write (iout,*) "Gather PRECOMP22"
-> c        call flush(iout)
->         call MPI_SENDRECV(Ug2DtEUgder(1,1,1,ivec_displ(isend)+1),1,
->      &   MPI_PRECOMP23(lensend),inext,9900+isend,
->      &   Ug2DtEUgder(1,1,1,ivec_displ(irecv)+1),1,
->      &   MPI_PRECOMP23(lenrecv),
->      &   iprev,9900+irecv,FG_COMM,status,IERR)
-> c        write (iout,*) "Gather PRECOMP23"
-> c        call flush(iout)
->         endif
->         isend=irecv
->         irecv=irecv-1
->         if (irecv.lt.0) irecv=nfgtasks1-1
->       enddo
-> #endif
->         time_gather=time_gather+MPI_Wtime()-time00
->       endif
-> #ifdef DEBUG
-> c      if (fg_rank.eq.0) then
->         write (iout,*) "Arrays UG and UGDER"
->         do i=1,nres-1
->           write (iout,'(i5,4f10.5,5x,4f10.5)') i,
->      &     ((ug(l,k,i),l=1,2),k=1,2),
->      &     ((ugder(l,k,i),l=1,2),k=1,2)
->         enddo
->         write (iout,*) "Arrays UG2 and UG2DER"
->         do i=1,nres-1
->           write (iout,'(i5,4f10.5,5x,4f10.5)') i,
->      &     ((ug2(l,k,i),l=1,2),k=1,2),
->      &     ((ug2der(l,k,i),l=1,2),k=1,2)
->         enddo
->         write (iout,*) "Arrays OBROT OBROT2 OBROTDER and OBROT2DER"
->         do i=1,nres-1
->           write (iout,'(i5,4f10.5,5x,4f10.5)') i,
->      &     (obrot(k,i),k=1,2),(obrot2(k,i),k=1,2),
->      &     (obrot_der(k,i),k=1,2),(obrot2_der(k,i),k=1,2)
->         enddo
->         write (iout,*) "Arrays COSTAB SINTAB COSTAB2 and SINTAB2"
->         do i=1,nres-1
->           write (iout,'(i5,4f10.5,5x,4f10.5)') i,
->      &     costab(i),sintab(i),costab2(i),sintab2(i)
->         enddo
->         write (iout,*) "Array MUDER"
->         do i=1,nres-1
->           write (iout,'(i5,2f10.5)') i,muder(1,i),muder(2,i)
->         enddo
-> c      endif
-> #endif
-> #endif
-1768a2657,2659
-> #ifdef MPI
->       include 'mpif.h'
-> #endif
-1770d2660
-<       include 'DIMENSIONS.ZSCOPT'
-1771a2662
->       include 'COMMON.SETUP'
-1782a2674
->       include 'COMMON.TIME1'
-1787c2679,2681
-<       common /locel/ a_temp,agg,aggi,aggi1,aggj,aggj1,j1
----
->       common /locel/ a_temp,agg,aggi,aggi1,aggj,aggj1,a22,a23,a32,a33,
->      &    dxi,dyi,dzi,dx_normi,dy_normi,dz_normi,xmedi,ymedi,zmedi,
->      &    num_conti,j1,j2
-1788a2683,2685
-> #ifdef MOMENT
->       double precision scal_el /1.0d0/
-> #else
-1789a2687
-> #endif
-1818,1823c2716,2719
-< cd      if (wel_loc.gt.0.0d0) then
-<         if (icheckgrad.eq.1) then
-<         call vec_and_deriv_test
-<         else
-<         call vec_and_deriv
-<         endif
----
-> c        call vec_and_deriv
-> #ifdef TIMING
->         time01=MPI_Wtime()
-> #endif
-1824a2721,2723
-> #ifdef TIMING
->         time_mat=time_mat+MPI_Wtime()-time01
-> #endif
-1829c2728
-< cd          write (iout,'(i5,2f10.5)') k,uy(k,i),uz(k,i)
----
-> cd        write (iout,'(i5,2f10.5)') k,uy(k,i),uz(k,i)
-1836c2735
-<       num_conti_hb=0
----
->       t_eelecij=0.0d0
-1851a2751,2795
-> c
-> c
-> c 9/27/08 AL Split the interaction loop to ensure load balancing of turn terms
-> C
-> C Loop over i,i+2 and i,i+3 pairs of the peptide groups
-> C
->       do i=iturn3_start,iturn3_end
->         if (itype(i).eq.21 .or. itype(i+1).eq.21 
->      &  .or. itype(i+2).eq.21 .or. itype(i+3).eq.21) cycle
->         dxi=dc(1,i)
->         dyi=dc(2,i)
->         dzi=dc(3,i)
->         dx_normi=dc_norm(1,i)
->         dy_normi=dc_norm(2,i)
->         dz_normi=dc_norm(3,i)
->         xmedi=c(1,i)+0.5d0*dxi
->         ymedi=c(2,i)+0.5d0*dyi
->         zmedi=c(3,i)+0.5d0*dzi
->         num_conti=0
->         call eelecij(i,i+2,ees,evdw1,eel_loc)
->         if (wturn3.gt.0.0d0) call eturn3(i,eello_turn3)
->         num_cont_hb(i)=num_conti
->       enddo
->       do i=iturn4_start,iturn4_end
->         if (itype(i).eq.21 .or. itype(i+1).eq.21
->      &    .or. itype(i+3).eq.21
->      &    .or. itype(i+4).eq.21) cycle
->         dxi=dc(1,i)
->         dyi=dc(2,i)
->         dzi=dc(3,i)
->         dx_normi=dc_norm(1,i)
->         dy_normi=dc_norm(2,i)
->         dz_normi=dc_norm(3,i)
->         xmedi=c(1,i)+0.5d0*dxi
->         ymedi=c(2,i)+0.5d0*dyi
->         zmedi=c(3,i)+0.5d0*dzi
->         num_conti=num_cont_hb(i)
->         call eelecij(i,i+3,ees,evdw1,eel_loc)
->         if (wturn4.gt.0.0d0 .and. itype(i+2).ne.21) 
->      &   call eturn4(i,eello_turn4)
->         num_cont_hb(i)=num_conti
->       enddo   ! i
-> c
-> c Loop over all pairs of interacting peptide groups except i,i+2 and i,i+3
-> c
-1854d2797
-<         if (itel(i).eq.0) goto 1215
-1864d2806
-<         num_conti=0
-1865a2808
->         num_conti=num_cont_hb(i)
-1866a2810
-> c          write (iout,*) i,j,itype(i),itype(j)
-1868,1869c2812,2866
-<           if (itel(j).eq.0) goto 1216
-<           ind=ind+1
----
->           call eelecij(i,j,ees,evdw1,eel_loc)
->         enddo ! j
->         num_cont_hb(i)=num_conti
->       enddo   ! i
-> c      write (iout,*) "Number of loop steps in EELEC:",ind
-> cd      do i=1,nres
-> cd        write (iout,'(i3,3f10.5,5x,3f10.5)') 
-> cd     &     i,(gel_loc(k,i),k=1,3),gel_loc_loc(i)
-> cd      enddo
-> c 12/7/99 Adam eello_turn3 will be considered as a separate energy term
-> ccc      eel_loc=eel_loc+eello_turn3
-> cd      print *,"Processor",fg_rank," t_eelecij",t_eelecij
->       return
->       end
-> C-------------------------------------------------------------------------------
->       subroutine eelecij(i,j,ees,evdw1,eel_loc)
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
-> #ifdef MPI
->       include "mpif.h"
-> #endif
->       include 'COMMON.CONTROL'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.GEO'
->       include 'COMMON.VAR'
->       include 'COMMON.LOCAL'
->       include 'COMMON.CHAIN'
->       include 'COMMON.DERIV'
->       include 'COMMON.INTERACT'
->       include 'COMMON.CONTACTS'
->       include 'COMMON.TORSION'
->       include 'COMMON.VECTORS'
->       include 'COMMON.FFIELD'
->       include 'COMMON.TIME1'
->       dimension ggg(3),gggp(3),gggm(3),erij(3),dcosb(3),dcosg(3),
->      &          erder(3,3),uryg(3,3),urzg(3,3),vryg(3,3),vrzg(3,3)
->       double precision acipa(2,2),agg(3,4),aggi(3,4),aggi1(3,4),
->      &    aggj(3,4),aggj1(3,4),a_temp(2,2),muij(4)
->       common /locel/ a_temp,agg,aggi,aggi1,aggj,aggj1,a22,a23,a32,a33,
->      &    dxi,dyi,dzi,dx_normi,dy_normi,dz_normi,xmedi,ymedi,zmedi,
->      &    num_conti,j1,j2
-> c 4/26/02 - AL scaling factor for 1,4 repulsive VDW interactions
-> #ifdef MOMENT
->       double precision scal_el /1.0d0/
-> #else
->       double precision scal_el /0.5d0/
-> #endif
-> C 12/13/98 
-> C 13-go grudnia roku pamietnego... 
->       double precision unmat(3,3) /1.0d0,0.0d0,0.0d0,
->      &                   0.0d0,1.0d0,0.0d0,
->      &                   0.0d0,0.0d0,1.0d0/
-> c          time00=MPI_Wtime()
-> cd      write (iout,*) "eelecij",i,j
-> c          ind=ind+1
-1875,1880d2871
-< C Diagnostics only!!!
-< c         aaa=0.0D0
-< c         bbb=0.0D0
-< c         ael6i=0.0D0
-< c         ael3i=0.0D0
-< C End diagnostics
-1912d2902
-< c          write (iout,*) "i",i,iteli," j",j,itelj," eesij",eesij
-1920a2911,2916
-> 
->           if (energy_dec) then 
->               write (iout,'(a6,2i5,0pf7.3)') 'evdw1',i,j,evdwij
->               write (iout,'(a6,2i5,0pf7.3)') 'ees',i,j,eesij
->           endif
-> 
-1925c2921
-<           facvdw=-6*rrmij*(ev1+evdwij) 
----
->           facvdw=-6*rrmij*(ev1+evdwij)
-1931d2926
-<           if (calc_grad) then
-1934c2929
-< * 
----
-> *
-1937a2933,2938
-> c          do k=1,3
-> c            ghalf=0.5D0*ggg(k)
-> c            gelc(k,i)=gelc(k,i)+ghalf
-> c            gelc(k,j)=gelc(k,j)+ghalf
-> c          enddo
-> c 9/28/08 AL Gradient compotents will be summed only at the end
-1939,1941c2940,2941
-<             ghalf=0.5D0*ggg(k)
-<             gelc(k,i)=gelc(k,i)+ghalf
-<             gelc(k,j)=gelc(k,j)+ghalf
----
->             gelc_long(k,j)=gelc_long(k,j)+ggg(k)
->             gelc_long(k,i)=gelc_long(k,i)-ggg(k)
-1946,1950c2946,2950
-<           do k=i+1,j-1
-<             do l=1,3
-<               gelc(l,k)=gelc(l,k)+ggg(l)
-<             enddo
-<           enddo
----
-> cgrad          do k=i+1,j-1
-> cgrad            do l=1,3
-> cgrad              gelc(l,k)=gelc(l,k)+ggg(l)
-> cgrad            enddo
-> cgrad          enddo
-1953a2954,2959
-> c          do k=1,3
-> c            ghalf=0.5D0*ggg(k)
-> c            gvdwpp(k,i)=gvdwpp(k,i)+ghalf
-> c            gvdwpp(k,j)=gvdwpp(k,j)+ghalf
-> c          enddo
-> c 9/28/08 AL Gradient compotents will be summed only at the end
-1955,1957c2961,2962
-<             ghalf=0.5D0*ggg(k)
-<             gvdwpp(k,i)=gvdwpp(k,i)+ghalf
-<             gvdwpp(k,j)=gvdwpp(k,j)+ghalf
----
->             gvdwpp(k,j)=gvdwpp(k,j)+ggg(k)
->             gvdwpp(k,i)=gvdwpp(k,i)-ggg(k)
-1962,1966c2967,2971
-<           do k=i+1,j-1
-<             do l=1,3
-<               gvdwpp(l,k)=gvdwpp(l,k)+ggg(l)
-<             enddo
-<           enddo
----
-> cgrad          do k=i+1,j-1
-> cgrad            do l=1,3
-> cgrad              gvdwpp(l,k)=gvdwpp(l,k)+ggg(l)
-> cgrad            enddo
-> cgrad          enddo
-1975d2979
-<           if (calc_grad) then
-1981a2986,2991
-> c          do k=1,3
-> c            ghalf=0.5D0*ggg(k)
-> c            gelc(k,i)=gelc(k,i)+ghalf
-> c            gelc(k,j)=gelc(k,j)+ghalf
-> c          enddo
-> c 9/28/08 AL Gradient compotents will be summed only at the end
-1983,1985c2993,2994
-<             ghalf=0.5D0*ggg(k)
-<             gelc(k,i)=gelc(k,i)+ghalf
-<             gelc(k,j)=gelc(k,j)+ghalf
----
->             gelc_long(k,j)=gelc(k,j)+ggg(k)
->             gelc_long(k,i)=gelc(k,i)-ggg(k)
-1990,1993c2999,3010
-<           do k=i+1,j-1
-<             do l=1,3
-<               gelc(l,k)=gelc(l,k)+ggg(l)
-<             enddo
----
-> cgrad          do k=i+1,j-1
-> cgrad            do l=1,3
-> cgrad              gelc(l,k)=gelc(l,k)+ggg(l)
-> cgrad            enddo
-> cgrad          enddo
-> c 9/28/08 AL Gradient compotents will be summed only at the end
->           ggg(1)=facvdw*xj
->           ggg(2)=facvdw*yj
->           ggg(3)=facvdw*zj
->           do k=1,3
->             gvdwpp(k,j)=gvdwpp(k,j)+ggg(k)
->             gvdwpp(k,i)=gvdwpp(k,i)-ggg(k)
-2012a3030,3043
-> c          do k=1,3
-> c            ghalf=0.5D0*ggg(k)
-> c            gelc(k,i)=gelc(k,i)+ghalf
-> c     &               +(ecosa*(dc_norm(k,j)-cosa*dc_norm(k,i))
-> c     &               + ecosb*(erij(k)-cosb*dc_norm(k,i)))*vbld_inv(i+1)
-> c            gelc(k,j)=gelc(k,j)+ghalf
-> c     &               +(ecosa*(dc_norm(k,i)-cosa*dc_norm(k,j))
-> c     &               + ecosg*(erij(k)-cosg*dc_norm(k,j)))*vbld_inv(j+1)
-> c          enddo
-> cgrad          do k=i+1,j-1
-> cgrad            do l=1,3
-> cgrad              gelc(l,k)=gelc(l,k)+ggg(l)
-> cgrad            enddo
-> cgrad          enddo
-2014,2015c3045
-<             ghalf=0.5D0*ggg(k)
-<             gelc(k,i)=gelc(k,i)+ghalf
----
->             gelc(k,i)=gelc(k,i)
-2018c3048
-<             gelc(k,j)=gelc(k,j)+ghalf
----
->             gelc(k,j)=gelc(k,j)
-2020a3051,3052
->             gelc_long(k,j)=gelc_long(k,j)+ggg(k)
->             gelc_long(k,i)=gelc_long(k,i)-ggg(k)
-2022,2028d3053
-<           do k=i+1,j-1
-<             do l=1,3
-<               gelc(l,k)=gelc(l,k)+ggg(l)
-<             enddo
-<           enddo
-<           endif
-< 
-2064,2068d3088
-< C For diagnostics only
-< cd          a22=1.0d0
-< cd          a23=1.0d0
-< cd          a32=1.0d0
-< cd          a33=1.0d0
-2070,2072d3089
-< cd          write (2,*) 'fac=',fac
-< C For diagnostics only
-< cd          fac=1.0d0
-2080,2081c3097,3098
-< cd          write (iout,'(2(3f10.5,5x)/2(3f10.5,5x))') (uy(k,i),k=1,3),
-< cd     &      (uz(k,i),k=1,3),(uy(k,j),k=1,3),(uz(k,j),k=1,3)
----
-> cd          write (iout,'(2(3f10.5,5x)/2(3f10.5,5x))') uy(:,i),uz(:,i),
-> cd     &      uy(:,j),uz(:,j)
-2086c3103
-< cd           write (iout,'(2i3,9f10.5/)') i,j,
----
-> cd           write (iout,'(9f10.5/)') 
-2088d3104
-<           if (calc_grad) then
-2090,2095c3106
-<           call unormderiv(erij(1),unmat(1,1),rmij,erder(1,1))
-< cd          do k=1,3
-< cd            do l=1,3
-< cd              erder(k,l)=0.0d0
-< cd            enddo
-< cd          enddo
----
->           call unormderiv(erij(1),unmat(1,1),rmij,erder(1,1))
-2110,2117d3120
-< cd          do k=1,3
-< cd            do l=1,3
-< cd              uryg(k,l)=0.0d0
-< cd              urzg(k,l)=0.0d0
-< cd              vryg(k,l)=0.0d0
-< cd              vrzg(k,l)=0.0d0
-< cd            enddo
-< cd          enddo
-2124,2127d3126
-< cd          a22der=0.0d0
-< cd          a23der=0.0d0
-< cd          a32der=0.0d0
-< cd          a33der=0.0d0
-2150,2153c3149,3152
-<             ghalf1=0.5d0*agg(k,1)
-<             ghalf2=0.5d0*agg(k,2)
-<             ghalf3=0.5d0*agg(k,3)
-<             ghalf4=0.5d0*agg(k,4)
----
-> cgrad            ghalf1=0.5d0*agg(k,1)
-> cgrad            ghalf2=0.5d0*agg(k,2)
-> cgrad            ghalf3=0.5d0*agg(k,3)
-> cgrad            ghalf4=0.5d0*agg(k,4)
-2155c3154
-<      &      -3.0d0*uryg(k,2)*vry)+ghalf1
----
->      &      -3.0d0*uryg(k,2)*vry)!+ghalf1
-2157c3156
-<      &      -3.0d0*uryg(k,2)*vrz)+ghalf2
----
->      &      -3.0d0*uryg(k,2)*vrz)!+ghalf2
-2159c3158
-<      &      -3.0d0*urzg(k,2)*vry)+ghalf3
----
->      &      -3.0d0*urzg(k,2)*vry)!+ghalf3
-2161c3160
-<      &      -3.0d0*urzg(k,2)*vrz)+ghalf4
----
->      &      -3.0d0*urzg(k,2)*vrz)!+ghalf4
-2164c3163
-<      &      -3.0d0*uryg(k,3)*vry)+agg(k,1)
----
->      &      -3.0d0*uryg(k,3)*vry)!+agg(k,1)
-2166c3165
-<      &      -3.0d0*uryg(k,3)*vrz)+agg(k,2)
----
->      &      -3.0d0*uryg(k,3)*vrz)!+agg(k,2)
-2168c3167
-<      &      -3.0d0*urzg(k,3)*vry)+agg(k,3)
----
->      &      -3.0d0*urzg(k,3)*vry)!+agg(k,3)
-2170c3169
-<      &      -3.0d0*urzg(k,3)*vrz)+agg(k,4)
----
->      &      -3.0d0*urzg(k,3)*vrz)!+agg(k,4)
-2173c3172
-<      &      -3.0d0*vryg(k,2)*ury)+ghalf1
----
->      &      -3.0d0*vryg(k,2)*ury)!+ghalf1
-2175c3174
-<      &      -3.0d0*vrzg(k,2)*ury)+ghalf2
----
->      &      -3.0d0*vrzg(k,2)*ury)!+ghalf2
-2177c3176
-<      &      -3.0d0*vryg(k,2)*urz)+ghalf3
----
->      &      -3.0d0*vryg(k,2)*urz)!+ghalf3
-2179c3178
-<      &      -3.0d0*vrzg(k,2)*urz)+ghalf4
----
->      &      -3.0d0*vrzg(k,2)*urz)!+ghalf4
-2189,2213c3188,3192
-< cd            aggi(k,1)=ghalf1
-< cd            aggi(k,2)=ghalf2
-< cd            aggi(k,3)=ghalf3
-< cd            aggi(k,4)=ghalf4
-< C Derivatives in DC(i+1)
-< cd            aggi1(k,1)=agg(k,1)
-< cd            aggi1(k,2)=agg(k,2)
-< cd            aggi1(k,3)=agg(k,3)
-< cd            aggi1(k,4)=agg(k,4)
-< C Derivatives in DC(j)
-< cd            aggj(k,1)=ghalf1
-< cd            aggj(k,2)=ghalf2
-< cd            aggj(k,3)=ghalf3
-< cd            aggj(k,4)=ghalf4
-< C Derivatives in DC(j+1)
-< cd            aggj1(k,1)=0.0d0
-< cd            aggj1(k,2)=0.0d0
-< cd            aggj1(k,3)=0.0d0
-< cd            aggj1(k,4)=0.0d0
-<             if (j.eq.nres-1 .and. i.lt.j-2) then
-<               do l=1,4
-<                 aggj1(k,l)=aggj1(k,l)+agg(k,l)
-< cd                aggj1(k,l)=agg(k,l)
-<               enddo
-<             endif
----
-> cgrad            if (j.eq.nres-1 .and. i.lt.j-2) then
-> cgrad              do l=1,4
-> cgrad                aggj1(k,l)=aggj1(k,l)+agg(k,l)
-> cgrad              enddo
-> cgrad            endif
-2215,2217d3193
-<           endif
-< c          goto 11111
-< C Check the loc-el terms by numerical integration
-2261d3236
-< 11111     continue
-2267c3242,3245
-< cd          write (iout,*) a22,muij(1),a23,muij(2),a32,muij(3)
----
-> 
->           if (energy_dec) write (iout,'(a6,2i5,0pf7.3)')
->      &            'eelloc',i,j,eel_loc_ij
-> 
-2270d3247
-<           if (calc_grad) then
-2278,2284d3254
-< cd          call checkint3(i,j,mu1,mu2,a22,a23,a32,a33,acipa,eel_loc_ij)
-< cd          write(iout,*) 'agg  ',agg
-< cd          write(iout,*) 'aggi ',aggi
-< cd          write(iout,*) 'aggi1',aggi1
-< cd          write(iout,*) 'aggj ',aggj
-< cd          write(iout,*) 'aggj1',aggj1
-< 
-2289,2294c3259,3269
-<           enddo
-<           do k=i+2,j2
-<             do l=1,3
-<               gel_loc(l,k)=gel_loc(l,k)+ggg(l)
-<             enddo
-<           enddo
----
->             gel_loc_long(l,j)=gel_loc_long(l,j)+ggg(l)
->             gel_loc_long(l,i)=gel_loc_long(l,i)-ggg(l)
-> cgrad            ghalf=0.5d0*ggg(l)
-> cgrad            gel_loc(l,i)=gel_loc(l,i)+ghalf
-> cgrad            gel_loc(l,j)=gel_loc(l,j)+ghalf
->           enddo
-> cgrad          do k=i+1,j2
-> cgrad            do l=1,3
-> cgrad              gel_loc(l,k)=gel_loc(l,k)+ggg(l)
-> cgrad            enddo
-> cgrad          enddo
-2306d3280
-<           endif
-2308,2315d3281
-<           if (wturn3.gt.0.0d0 .or. wturn4.gt.0.0d0) then
-< C Contributions from turns
-<             a_temp(1,1)=a22
-<             a_temp(1,2)=a23
-<             a_temp(2,1)=a32
-<             a_temp(2,2)=a33
-<             call eturn34(i,j,eello_turn3,eello_turn4)
-<           endif
-2317c3283,3286
-<           if (j.gt.i+1 .and. num_conti.le.maxconts) then
----
-> c          if (j.gt.i+1 .and. num_conti.le.maxconts) then
->           if (wcorr+wcorr4+wcorr5+wcorr6.gt.0.0d0
->      &       .and. num_conti.le.maxconts) then
-> c            write (iout,*) i,j," entered corr"
-2334a3304,3305
-> cd                write (iout,*) "i",i," j",j," num_conti",num_conti,
-> cd     &           " jcont_hb",jcont_hb(num_conti,i)
-2350,2382d3320
-< c             if (i.eq.1) then
-< c                a_chuj(1,1,num_conti,i)=-0.61d0
-< c                a_chuj(1,2,num_conti,i)= 0.4d0
-< c                a_chuj(2,1,num_conti,i)= 0.65d0
-< c                a_chuj(2,2,num_conti,i)= 0.50d0
-< c             else if (i.eq.2) then
-< c                a_chuj(1,1,num_conti,i)= 0.0d0
-< c                a_chuj(1,2,num_conti,i)= 0.0d0
-< c                a_chuj(2,1,num_conti,i)= 0.0d0
-< c                a_chuj(2,2,num_conti,i)= 0.0d0
-< c             endif
-< C     --- and its gradients
-< cd                write (iout,*) 'i',i,' j',j
-< cd                do kkk=1,3
-< cd                write (iout,*) 'iii 1 kkk',kkk
-< cd                write (iout,*) agg(kkk,:)
-< cd                enddo
-< cd                do kkk=1,3
-< cd                write (iout,*) 'iii 2 kkk',kkk
-< cd                write (iout,*) aggi(kkk,:)
-< cd                enddo
-< cd                do kkk=1,3
-< cd                write (iout,*) 'iii 3 kkk',kkk
-< cd                write (iout,*) aggi1(kkk,:)
-< cd                enddo
-< cd                do kkk=1,3
-< cd                write (iout,*) 'iii 4 kkk',kkk
-< cd                write (iout,*) aggj(kkk,:)
-< cd                enddo
-< cd                do kkk=1,3
-< cd                write (iout,*) 'iii 5 kkk',kkk
-< cd                write (iout,*) aggj1(kkk,:)
-< cd                enddo
-2393,2395d3330
-< c                      do mm=1,5
-< c                      a_chuj_der(k,l,m,mm,num_conti,i)=0.0d0
-< c                      enddo
-2408,2409c3343,3356
-<                 ees0pij=dsqrt(4.0D0+cosa4+wij*wij-3.0D0*cosbg1*cosbg1)
-<                 ees0mij=dsqrt(4.0D0-cosa4+wij*wij-3.0D0*cosbg2*cosbg2)
----
-> c                 ees0pij=dsqrt(4.0D0+cosa4+wij*wij-3.0D0*cosbg1*cosbg1)
->                 ees0tmp=4.0D0+cosa4+wij*wij-3.0D0*cosbg1*cosbg1
->                 if (ees0tmp.gt.0) then
->                   ees0pij=dsqrt(ees0tmp)
->                 else
->                   ees0pij=0
->                 endif
-> c                ees0mij=dsqrt(4.0D0-cosa4+wij*wij-3.0D0*cosbg2*cosbg2)
->                 ees0tmp=4.0D0-cosa4+wij*wij-3.0D0*cosbg2*cosbg2
->                 if (ees0tmp.gt.0) then
->                   ees0mij=dsqrt(ees0tmp)
->                 else
->                   ees0mij=0
->                 endif
-2418,2421c3365,3366
-< c                write (iout,*) 'i=',i,' j=',j,' rij=',rij,' r0ij=',r0ij,
-< c     & ' ees0ij=',ees0p(num_conti,i),ees0m(num_conti,i),' fcont=',fcont
-<                 facont_hb(num_conti,i)=fcont
-<                 if (calc_grad) then
----
-> c               write (iout,*) 'i=',i,' j=',j,' rij=',rij,' r0ij=',r0ij,
-> c    & ' ees0ij=',ees0p(num_conti,i),ees0m(num_conti,i),' fcont=',fcont
-2448a3394
->                 facont_hb(num_conti,i)=fcont
-2472,2474c3418,3424
-<                   ghalfp=0.5D0*gggp(k)
-<                   ghalfm=0.5D0*gggm(k)
-<                   gacontp_hb1(k,num_conti,i)=ghalfp
----
-> c
-> c 10/24/08 cgrad and ! comments indicate the parts of the code removed 
-> c          following the change of gradient-summation algorithm.
-> c
-> cgrad                  ghalfp=0.5D0*gggp(k)
-> cgrad                  ghalfm=0.5D0*gggm(k)
->                   gacontp_hb1(k,num_conti,i)=!ghalfp
-2477c3427
-<                   gacontp_hb2(k,num_conti,i)=ghalfp
----
->                   gacontp_hb2(k,num_conti,i)=!ghalfp
-2481c3431
-<                   gacontm_hb1(k,num_conti,i)=ghalfm
----
->                   gacontm_hb1(k,num_conti,i)=!ghalfm
-2484c3434
-<                   gacontm_hb2(k,num_conti,i)=ghalfm
----
->                   gacontm_hb2(k,num_conti,i)=!ghalfm
-2489d3438
-<                 endif
-2503,2513c3452,3469
-<  1216     continue
-<         enddo ! j
-<         num_cont_hb(i)=num_conti
-<  1215   continue
-<       enddo   ! i
-< cd      do i=1,nres
-< cd        write (iout,'(i3,3f10.5,5x,3f10.5)') 
-< cd     &     i,(gel_loc(k,i),k=1,3),gel_loc_loc(i)
-< cd      enddo
-< c 12/7/99 Adam eello_turn3 will be considered as a separate energy term
-< ccc      eel_loc=eel_loc+eello_turn3
----
->           if (wturn3.gt.0.0d0 .or. wturn4.gt.0.0d0) then
->             do k=1,4
->               do l=1,3
->                 ghalf=0.5d0*agg(l,k)
->                 aggi(l,k)=aggi(l,k)+ghalf
->                 aggi1(l,k)=aggi1(l,k)+agg(l,k)
->                 aggj(l,k)=aggj(l,k)+ghalf
->               enddo
->             enddo
->             if (j.eq.nres-1 .and. i.lt.j-2) then
->               do k=1,4
->                 do l=1,3
->                   aggj1(l,k)=aggj1(l,k)+agg(l,k)
->                 enddo
->               enddo
->             endif
->           endif
-> c          t_eelecij=t_eelecij+MPI_Wtime()-time00
-2517c3473
-<       subroutine eturn34(i,j,eello_turn3,eello_turn4)
----
->       subroutine eturn3(i,eello_turn3)
-2521d3476
-<       include 'DIMENSIONS.ZSCOPT'
-2532a3488
->       include 'COMMON.CONTROL'
-2538,2540c3494,3503
-<      &    aggj(3,4),aggj1(3,4),a_temp(2,2)
-<       common /locel/ a_temp,agg,aggi,aggi1,aggj,aggj1,j1,j2
-<       if (j.eq.i+2) then
----
->      &    aggj(3,4),aggj1(3,4),a_temp(2,2),auxmat3(2,2)
->       common /locel/ a_temp,agg,aggi,aggi1,aggj,aggj1,a22,a23,a32,a33,
->      &    dxi,dyi,dzi,dx_normi,dy_normi,dz_normi,xmedi,ymedi,zmedi,
->      &    num_conti,j1,j2
->       j=i+2
-> c      write (iout,*) "eturn3",i,j,j1,j2
->       a_temp(1,1)=a22
->       a_temp(1,2)=a23
->       a_temp(2,1)=a32
->       a_temp(2,2)=a33
-2555a3519,3520
->         if (energy_dec) write (iout,'(a6,2i5,0pf7.3)')
->      &          'eturn3',i,j,0.5d0*(pizda(1,1)+pizda(2,2))
-2559d3523
-<         if (calc_grad) then
-2562,2563c3526,3527
-<         call transpose2(auxmat2(1,1),pizda(1,1))
-<         call matmat2(a_temp(1,1),pizda(1,1),pizda(1,1))
----
->         call transpose2(auxmat2(1,1),auxmat3(1,1))
->         call matmat2(a_temp(1,1),auxmat3(1,1),pizda(1,1))
-2567,2568c3531,3532
-<         call transpose2(auxmat2(1,1),pizda(1,1))
-<         call matmat2(a_temp(1,1),pizda(1,1),pizda(1,1))
----
->         call transpose2(auxmat2(1,1),auxmat3(1,1))
->         call matmat2(a_temp(1,1),auxmat3(1,1),pizda(1,1))
-2573,2576c3537,3544
-<           a_temp(1,1)=aggi(l,1)
-<           a_temp(1,2)=aggi(l,2)
-<           a_temp(2,1)=aggi(l,3)
-<           a_temp(2,2)=aggi(l,4)
----
-> c            ghalf1=0.5d0*agg(l,1)
-> c            ghalf2=0.5d0*agg(l,2)
-> c            ghalf3=0.5d0*agg(l,3)
-> c            ghalf4=0.5d0*agg(l,4)
->           a_temp(1,1)=aggi(l,1)!+ghalf1
->           a_temp(1,2)=aggi(l,2)!+ghalf2
->           a_temp(2,1)=aggi(l,3)!+ghalf3
->           a_temp(2,2)=aggi(l,4)!+ghalf4
-2580,2583c3548,3551
-<           a_temp(1,1)=aggi1(l,1)
-<           a_temp(1,2)=aggi1(l,2)
-<           a_temp(2,1)=aggi1(l,3)
-<           a_temp(2,2)=aggi1(l,4)
----
->           a_temp(1,1)=aggi1(l,1)!+agg(l,1)
->           a_temp(1,2)=aggi1(l,2)!+agg(l,2)
->           a_temp(2,1)=aggi1(l,3)!+agg(l,3)
->           a_temp(2,2)=aggi1(l,4)!+agg(l,4)
-2587,2590c3555,3558
-<           a_temp(1,1)=aggj(l,1)
-<           a_temp(1,2)=aggj(l,2)
-<           a_temp(2,1)=aggj(l,3)
-<           a_temp(2,2)=aggj(l,4)
----
->           a_temp(1,1)=aggj(l,1)!+ghalf1
->           a_temp(1,2)=aggj(l,2)!+ghalf2
->           a_temp(2,1)=aggj(l,3)!+ghalf3
->           a_temp(2,2)=aggj(l,4)!+ghalf4
-2602,2603c3570,3598
-<         endif
-<       else if (j.eq.i+3 .and. itype(i+2).ne.21) then
----
->       return
->       end
-> C-------------------------------------------------------------------------------
->       subroutine eturn4(i,eello_turn4)
-> C Third- and fourth-order contributions from turns
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.GEO'
->       include 'COMMON.VAR'
->       include 'COMMON.LOCAL'
->       include 'COMMON.CHAIN'
->       include 'COMMON.DERIV'
->       include 'COMMON.INTERACT'
->       include 'COMMON.CONTACTS'
->       include 'COMMON.TORSION'
->       include 'COMMON.VECTORS'
->       include 'COMMON.FFIELD'
->       include 'COMMON.CONTROL'
->       dimension ggg(3)
->       double precision auxmat(2,2),auxmat1(2,2),auxmat2(2,2),pizda(2,2),
->      &  e1t(2,2),e2t(2,2),e3t(2,2),e1tder(2,2),e2tder(2,2),e3tder(2,2),
->      &  e1a(2,2),ae3(2,2),ae3e2(2,2),auxvec(2),auxvec1(2)
->       double precision agg(3,4),aggi(3,4),aggi1(3,4),
->      &    aggj(3,4),aggj1(3,4),a_temp(2,2),auxmat3(2,2)
->       common /locel/ a_temp,agg,aggi,aggi1,aggj,aggj1,a22,a23,a32,a33,
->      &    dxi,dyi,dzi,dx_normi,dy_normi,dz_normi,xmedi,ymedi,zmedi,
->      &    num_conti,j1,j2
->       j=i+3
-2615a3611,3615
-> c        write (iout,*) "eturn4 i",i," j",j," j1",j1," j2",j2
->         a_temp(1,1)=a22
->         a_temp(1,2)=a23
->         a_temp(2,1)=a32
->         a_temp(2,2)=a33
-2618a3619
-> c        write(iout,*) "iti1",iti1," iti2",iti2," iti3",iti3
-2631a3633,3634
->         if (energy_dec) write (iout,'(a6,2i5,0pf7.3)')
->      &      'eturn4',i,j,-(s1+s2+s3)
-2635d3637
-<         if (calc_grad) then
-2658,2659c3660,3661
-<         call matmat2(auxmat(1,1),e2t(1,1),auxmat(1,1))
-<         call matmat2(auxmat(1,1),e1t(1,1),pizda(1,1))
----
->         call matmat2(auxmat(1,1),e2t(1,1),auxmat3(1,1))
->         call matmat2(auxmat3(1,1),e1t(1,1),pizda(1,1))
-2739a3742
-> c          write (iout,*) "s1",s1," s2",s2," s3",s3," s1+s2+s3",s1+s2+s3
-2742,2743d3744
-<         endif
-<       endif          
-2779a3781,3877
->       subroutine escp_soft_sphere(evdw2,evdw2_14)
-> C
-> C This subroutine calculates the excluded-volume interaction energy between
-> C peptide-group centers and side chains and its gradient in virtual-bond and
-> C side-chain vectors.
-> C
->       implicit real*8 (a-h,o-z)
->       include 'DIMENSIONS'
->       include 'COMMON.GEO'
->       include 'COMMON.VAR'
->       include 'COMMON.LOCAL'
->       include 'COMMON.CHAIN'
->       include 'COMMON.DERIV'
->       include 'COMMON.INTERACT'
->       include 'COMMON.FFIELD'
->       include 'COMMON.IOUNITS'
->       include 'COMMON.CONTROL'
->       dimension ggg(3)
->       evdw2=0.0D0
->       evdw2_14=0.0d0
->       r0_scp=4.5d0
-> cd    print '(a)','Enter ESCP'
-> cd    write (iout,*) 'iatscp_s=',iatscp_s,' iatscp_e=',iatscp_e
->       do i=iatscp_s,iatscp_e
->         if (itype(i).eq.21 .or. itype(i+1).eq.21) cycle
->         iteli=itel(i)
->         xi=0.5D0*(c(1,i)+c(1,i+1))
->         yi=0.5D0*(c(2,i)+c(2,i+1))
->         zi=0.5D0*(c(3,i)+c(3,i+1))
-> 
->         do iint=1,nscp_gr(i)
-> 
->         do j=iscpstart(i,iint),iscpend(i,iint)
->           if (itype(j).eq.21) cycle
->           itypj=itype(j)
-> C Uncomment following three lines for SC-p interactions
-> c         xj=c(1,nres+j)-xi
-> c         yj=c(2,nres+j)-yi
-> c         zj=c(3,nres+j)-zi
-> C Uncomment following three lines for Ca-p interactions
->           xj=c(1,j)-xi
->           yj=c(2,j)-yi
->           zj=c(3,j)-zi
->           rij=xj*xj+yj*yj+zj*zj
->           r0ij=r0_scp
->           r0ijsq=r0ij*r0ij
->           if (rij.lt.r0ijsq) then
->             evdwij=0.25d0*(rij-r0ijsq)**2
->             fac=rij-r0ijsq
->           else
->             evdwij=0.0d0
->             fac=0.0d0
->           endif 
->           evdw2=evdw2+evdwij
-> C
-> C Calculate contributions to the gradient in the virtual-bond and SC vectors.
-> C
->           ggg(1)=xj*fac
->           ggg(2)=yj*fac
->           ggg(3)=zj*fac
-> cgrad          if (j.lt.i) then
-> cd          write (iout,*) 'j<i'
-> C Uncomment following three lines for SC-p interactions
-> c           do k=1,3
-> c             gradx_scp(k,j)=gradx_scp(k,j)+ggg(k)
-> c           enddo
-> cgrad          else
-> cd          write (iout,*) 'j>i'
-> cgrad            do k=1,3
-> cgrad              ggg(k)=-ggg(k)
-> C Uncomment following line for SC-p interactions
-> c             gradx_scp(k,j)=gradx_scp(k,j)-ggg(k)
-> cgrad            enddo
-> cgrad          endif
-> cgrad          do k=1,3
-> cgrad            gvdwc_scp(k,i)=gvdwc_scp(k,i)-0.5D0*ggg(k)
-> cgrad          enddo
-> cgrad          kstart=min0(i+1,j)
-> cgrad          kend=max0(i-1,j-1)
-> cd        write (iout,*) 'i=',i,' j=',j,' kstart=',kstart,' kend=',kend
-> cd        write (iout,*) ggg(1),ggg(2),ggg(3)
-> cgrad          do k=kstart,kend
-> cgrad            do l=1,3
-> cgrad              gvdwc_scp(l,k)=gvdwc_scp(l,k)-ggg(l)
-> cgrad            enddo
-> cgrad          enddo
->           do k=1,3
->             gvdwc_scpp(k,i)=gvdwc_scpp(k,i)-ggg(k)
->             gvdwc_scp(k,j)=gvdwc_scp(k,j)+ggg(k)
->           enddo
->         enddo
-> 
->         enddo ! iint
->       enddo ! i
->       return
->       end
-> C-----------------------------------------------------------------------------
-2788d3885
-<       include 'DIMENSIONS.ZSCOPT'
-2796a3894
->       include 'COMMON.CONTROL'
-2801,2802c3899
-< c      write (iout,*) 'iatscp_s=',iatscp_s,' iatscp_e=',iatscp_e,
-< c     &  ' scal14',scal14
----
-> cd    write (iout,*) 'iatscp_s=',iatscp_s,' iatscp_e=',iatscp_e
-2806,2808d3902
-< c        write (iout,*) "i",i," iteli",iteli," nscp_gr",nscp_gr(i),
-< c     &   " iscp",(iscpstart(i,j),iscpend(i,j),j=1,nscp_gr(i))
-<         if (iteli.eq.0) goto 1225
-2836d3929
-< c          write (iout,*) i,j,evdwij
-2838c3931,3932
-<           if (calc_grad) then
----
->           if (energy_dec) write (iout,'(a6,2i5,0pf7.3)')
->      &        'evdw2',i,j,evdwij
-2846c3940
-<           if (j.lt.i) then
----
-> cgrad          if (j.lt.i) then
-2852c3946
-<           else
----
-> cgrad          else
-2854,2855c3948,3949
-<             do k=1,3
-<               ggg(k)=-ggg(k)
----
-> cgrad            do k=1,3
-> cgrad              ggg(k)=-ggg(k)
-2857,2864c3951,3959
-< c             gradx_scp(k,j)=gradx_scp(k,j)-ggg(k)
-<             enddo
-<           endif
-<           do k=1,3
-<             gvdwc_scp(k,i)=gvdwc_scp(k,i)-0.5D0*ggg(k)
-<           enddo
-<           kstart=min0(i+1,j)
-<           kend=max0(i-1,j-1)
----
-> ccgrad             gradx_scp(k,j)=gradx_scp(k,j)-ggg(k)
-> c             gradx_scp(k,j)=gradx_scp(k,j)+ggg(k)
-> cgrad            enddo
-> cgrad          endif
-> cgrad          do k=1,3
-> cgrad            gvdwc_scp(k,i)=gvdwc_scp(k,i)-0.5D0*ggg(k)
-> cgrad          enddo
-> cgrad          kstart=min0(i+1,j)
-> cgrad          kend=max0(i-1,j-1)
-2867,2870c3962,3969
-<           do k=kstart,kend
-<             do l=1,3
-<               gvdwc_scp(l,k)=gvdwc_scp(l,k)-ggg(l)
-<             enddo
----
-> cgrad          do k=kstart,kend
-> cgrad            do l=1,3
-> cgrad              gvdwc_scp(l,k)=gvdwc_scp(l,k)-ggg(l)
-> cgrad            enddo
-> cgrad          enddo
->           do k=1,3
->             gvdwc_scpp(k,i)=gvdwc_scpp(k,i)-ggg(k)
->             gvdwc_scp(k,j)=gvdwc_scp(k,j)+ggg(k)
-2872d3970
-<           endif
-2873a3972
-> 
-2875d3973
-<  1225   continue
-2879a3978
->           gvdwc_scpp(j,i)=expon*gvdwc_scpp(j,i)
-2901d3999
-<       include 'DIMENSIONS.ZSCOPT'
-2906a4005
->       include 'COMMON.IOUNITS'
-2909,2910c4008,4009
-< cd    print *,'edis: nhpb=',nhpb,' fbr=',fbr
-< cd    print *,'link_start=',link_start,' link_end=',link_end
----
-> cd      write(iout,*)'edis: nhpb=',nhpb,' fbr=',fbr
-> cd      write(iout,*)'link_start=',link_start,' link_end=',link_end
-2924a4024
-> cd        write (iout,*) "i",i," ii",ii," iii",iii," jj",jj," jjj",jjj
-2929a4030
-> cd          write (iout,*) "eij",eij
-2957,2960c4058,4065
-<         do j=iii,jjj-1
-<           do k=1,3
-<             ghpbc(k,j)=ghpbc(k,j)+ggg(k)
-<           enddo
----
-> cgrad        do j=iii,jjj-1
-> cgrad          do k=1,3
-> cgrad            ghpbc(k,j)=ghpbc(k,j)+ggg(k)
-> cgrad          enddo
-> cgrad        enddo
->         do k=1,3
->           ghpbc(k,jjj)=ghpbc(k,jjj)+ggg(k)
->           ghpbc(k,iii)=ghpbc(k,iii)-ggg(k)
-2978d4082
-<       include 'DIMENSIONS.ZSCOPT'
-2994c4098,4099
-<       dsci_inv=dsc_inv(itypi)
----
-> c      dsci_inv=dsc_inv(itypi)
->       dsci_inv=vbld_inv(nres+i)
-2996c4101,4102
-<       dscj_inv=dsc_inv(itypj)
----
-> c      dscj_inv=dsc_inv(itypj)
->       dscj_inv=vbld_inv(nres+j)
-3034,3040c4140,4148
-<         gg(k)=ed*erij(k)+eom1*dcosom1(k)+eom2*dcosom2(k)
-<       enddo
-<       do k=1,3
-<         ghpbx(k,i)=ghpbx(k,i)-gg(k)
-<      &            +(eom12*dc_norm(k,nres+j)+eom1*erij(k))*dsci_inv
-<         ghpbx(k,j)=ghpbx(k,j)+gg(k)
-<      &            +(eom12*dc_norm(k,nres+i)+eom2*erij(k))*dscj_inv
----
->         ggk=ed*erij(k)+eom1*dcosom1(k)+eom2*dcosom2(k)
->         ghpbx(k,i)=ghpbx(k,i)-ggk
->      &            +(eom12*(dc_norm(k,nres+j)-om12*dc_norm(k,nres+i))
->      &            +eom1*(erij(k)-om1*dc_norm(k,nres+i)))*dsci_inv
->         ghpbx(k,j)=ghpbx(k,j)+ggk
->      &            +(eom12*(dc_norm(k,nres+i)-om12*dc_norm(k,nres+j))
->      &            +eom2*(erij(k)-om2*dc_norm(k,nres+j)))*dscj_inv
->         ghpbc(k,i)=ghpbc(k,i)-ggk
->         ghpbc(k,j)=ghpbc(k,j)+ggk
-3045,3049c4153,4157
-<       do k=i,j-1
-<         do l=1,3
-<           ghpbc(l,k)=ghpbc(l,k)+gg(l)
-<         enddo
-<       enddo
----
-> cgrad      do k=i,j-1
-> cgrad        do l=1,3
-> cgrad          ghpbc(l,k)=ghpbc(l,k)+gg(l)
-> cgrad        enddo
-> cgrad      enddo
-3059d4166
-<       include 'DIMENSIONS.ZSCOPT'
-3070c4177
-<       logical energy_dec /.false./
----
->       include 'COMMON.SETUP'
-3073,3074c4180,4181
-<       write (iout,*) "distchainmax",distchainmax
-<       do i=nnt+1,nct
----
->       estr1=0.0d0
->       do i=ibondp_start,ibondp_end
-3081c4188
-<           if (energy_dec) write(iout,*)
----
->           if (energy_dec) write(iout,*) 
-3085,3090c4192,4199
-<           diff = vbld(i)-vbldp0
-< c          write (iout,*) i,vbld(i),vbldp0,diff,AKP*diff*diff
-<           estr=estr+diff*diff
-<           do j=1,3
-<             gradb(j,i-1)=AKP*diff*dc(j,i-1)/vbld(i)
-<           enddo
----
->         diff = vbld(i)-vbldp0
->         if (energy_dec) write (iout,*) 
->      &     "estr bb",i,vbld(i),vbldp0,diff,AKP*diff*diff
->         estr=estr+diff*diff
->         do j=1,3
->           gradb(j,i-1)=AKP*diff*dc(j,i-1)/vbld(i)
->         enddo
-> c        write (iout,'(i5,3f10.5)') i,(gradb(j,i-1),j=1,3)
-3092d4200
-< 
-3094c4202
-<       estr=0.5d0*AKP*estr
----
->       estr=0.5d0*AKP*estr+estr1
-3098c4206
-<       do i=nnt,nct
----
->       do i=ibond_start,ibond_end
-3104,3105c4212,4214
-< c            write (iout,*) i,iti,vbld(i+nres),vbldsc0(1,iti),diff,
-< c     &      AKSC(1,iti),AKSC(1,iti)*diff*diff
----
->             if (energy_dec) write (iout,*) 
->      &      "estr sc",i,iti,vbld(i+nres),vbldsc0(1,iti),diff,
->      &      AKSC(1,iti),AKSC(1,iti)*diff*diff
-3112c4221
-<               diff=vbld(i+nres)-vbldsc0(j,iti)
----
->               diff=vbld(i+nres)-vbldsc0(j,iti) 
-3132c4241
-<               usumsqder=usumsqder+ud(j)*uprod2
----
->               usumsqder=usumsqder+ud(j)*uprod2   
-3134,3135d4242
-< c            write (iout,*) i,iti,vbld(i+nres),(vbldsc0(j,iti),
-< c     &      AKSC(j,iti),abond0(j,iti),u(j),j=1,nbi)
-3144c4251
-<       end
----
->       end 
-3154d4260
-<       include 'DIMENSIONS.ZSCOPT'
-3163a4270
->       include 'COMMON.CONTROL'
-3169,3170c4276,4277
-<       time11=dexp(-2*time)
-<       time12=1.0d0
----
-> c      time11=dexp(-2*time)
-> c      time12=1.0d0
-3172d4278
-< c      write (iout,*) "nres",nres
-3174d4279
-< c      write (iout,*) ithet_start,ithet_end
-3182,3185c4287,4288
-<           phii=phi(i)
-<           icrc=0
-<           call proc_proc(phii,icrc)
-<           if (icrc.eq.1) phii=150.0
----
->        phii=phi(i)
->           if (phii.ne.phii) phii=150.0
-3191c4294
-<         else
----
->         else 
-3197,3200c4300,4301
-<           phii1=phi(i+1)
-<           icrc=0
-<           call proc_proc(phii1,icrc)
-<           if (icrc.eq.1) phii1=150.0
----
->        phii1=phi(i+1)
->           if (phii1.ne.phii1) phii1=150.0
-3211c4312
-<         endif
----
->         endif  
-3221d4321
-< c        write (iout,*) "thet_pred_mean",thet_pred_mean
-3224d4323
-< c        write (iout,*) "thet_pred_mean",thet_pred_mean
-3250,3251c4349,4350
-< c        write (iout,'(2i3,3f8.3,f10.5)') i,it,rad2deg*theta(i),
-< c     &    rad2deg*phii,rad2deg*phii1,ethetai
----
->         if (energy_dec) write (iout,'(a6,i5,0pf7.3)')
->      &      'ebend',i,ethetai
-3255d4353
-<  1215   continue
-3379d4476
-<       include 'DIMENSIONS.ZSCOPT'
-3396d4492
-< c      write (iout,*) "ithetyp",(ithetyp(i),i=1,ntyp1)
-3449,3451d4544
-< c        write (iout,*) "i",i," ityp1",itype(i-2),ityp1,
-< c     &   " ityp2",itype(i-1),ityp2," ityp3",itype(i),ityp3
-< c        call flush(iout)
-3571d4663
-<       include 'DIMENSIONS.ZSCOPT'
-3580a4673
->       include 'COMMON.CONTROL'
-3598d4690
-< c        write (iout,*) "i",i," x",x(1),x(2),x(3)
-3672c4764,4766
-< c        write (iout,*) 'i=',i,' escloci=',escloci,' dersc=',dersc
----
->         if (energy_dec) write (iout,'(a6,i5,0pf7.3)')
->      &     'escloc',i,escloci
-> c       write (iout,*) 'i=',i,' escloci=',escloci,' dersc=',dersc
-3745a4840,4844
-> #ifdef OSF
->             adexp=bsc(j,it)-0.5D0*contr(j,iii)+emin
->             if(adexp.ne.adexp) adexp=1.0
->             expfac=dexp(adexp)
-> #else
-3746a4846
-> #endif
-3856d4955
-<       include 'DIMENSIONS.ZSCOPT'
-3991,3992c5090
-< c        write (2,*) "escloc",escloc
-<         if (.not. calc_grad) goto 1
----
-> c        write (2,*) "i",i," escloc",sumene,escloc
-4168a5267,5304
-> c------------------------------------------------------------------------------
->       double precision function enesc(x,xx,yy,zz,cost2,sint2)
->       implicit none
->       double precision x(65),xx,yy,zz,cost2,sint2,sumene1,sumene2,
->      & sumene3,sumene4,sumene,dsc_i,dp2_i,dscp1,dscp2,s1,s1_6,s2,s2_6
->       sumene1= x(1)+  x(2)*xx+  x(3)*yy+  x(4)*zz+  x(5)*xx**2
->      &   + x(6)*yy**2+  x(7)*zz**2+  x(8)*xx*zz+  x(9)*xx*yy
->      &   + x(10)*yy*zz
->       sumene2=  x(11) + x(12)*xx + x(13)*yy + x(14)*zz + x(15)*xx**2
->      & + x(16)*yy**2 + x(17)*zz**2 + x(18)*xx*zz + x(19)*xx*yy
->      & + x(20)*yy*zz
->       sumene3=  x(21) +x(22)*xx +x(23)*yy +x(24)*zz +x(25)*xx**2
->      &  +x(26)*yy**2 +x(27)*zz**2 +x(28)*xx*zz +x(29)*xx*yy
->      &  +x(30)*yy*zz +x(31)*xx**3 +x(32)*yy**3 +x(33)*zz**3
->      &  +x(34)*(xx**2)*yy +x(35)*(xx**2)*zz +x(36)*(yy**2)*xx
->      &  +x(37)*(yy**2)*zz +x(38)*(zz**2)*xx +x(39)*(zz**2)*yy
->      &  +x(40)*xx*yy*zz
->       sumene4= x(41) +x(42)*xx +x(43)*yy +x(44)*zz +x(45)*xx**2
->      &  +x(46)*yy**2 +x(47)*zz**2 +x(48)*xx*zz +x(49)*xx*yy
->      &  +x(50)*yy*zz +x(51)*xx**3 +x(52)*yy**3 +x(53)*zz**3
->      &  +x(54)*(xx**2)*yy +x(55)*(xx**2)*zz +x(56)*(yy**2)*xx
->      &  +x(57)*(yy**2)*zz +x(58)*(zz**2)*xx +x(59)*(zz**2)*yy
->      &  +x(60)*xx*yy*zz
->       dsc_i   = 0.743d0+x(61)
->       dp2_i   = 1.9d0+x(62)
->       dscp1=dsqrt(dsc_i**2+dp2_i**2-2*dsc_i*dp2_i
->      &          *(xx*cost2+yy*sint2))
->       dscp2=dsqrt(dsc_i**2+dp2_i**2-2*dsc_i*dp2_i
->      &          *(xx*cost2-yy*sint2))
->       s1=(1+x(63))/(0.1d0 + dscp1)
->       s1_6=(1+x(64))/(0.1d0 + dscp1**6)
->       s2=(1+x(65))/(0.1d0 + dscp2)
->       s2_6=(1+x(65))/(0.1d0 + dscp2**6)
->       sumene = ( sumene3*sint2 + sumene1)*(s1+s1_6)
->      & + (sumene4*cost2 +sumene2)*(s2+s2_6)
->       enesc=sumene
->       return
->       end
-4207d5342
-<       include 'DIMENSIONS.ZSCOPT'
-4252c5387
-<       subroutine etor(etors,edihcnstr,fact)
----
->       subroutine etor(etors,edihcnstr)
-4255d5389
-<       include 'DIMENSIONS.ZSCOPT'
-4266a5401
->       include 'COMMON.CONTROL'
-4273c5408,5409
-<         if (itype(i-2).eq.21 .or. itype(i-1).eq.21
----
->       etors_ii=0.0D0
->         if (itype(i-2).eq.21 .or. itype(i-1).eq.21 
-4286a5423
->             if (energy_dec) etors_ii=etors_ii+etorsi-v1(1,3,3)      
-4294a5432,5433
->             if (energy_dec) etors_ii=etors_ii+
->      &                              v2ij*sinphi+dabs(v1ij)+dabs(v2ij)
-4303a5443,5444
->             if (energy_dec) etors_ii=etors_ii+
->      &                  v1ij*cosphi+v2ij*sinphi+dabs(v1ij)+dabs(v2ij)
-4306a5448,5449
->         if (energy_dec) write (iout,'(a6,i5,0pf7.3)')
->              'etor',i,etors_ii
-4311c5454
-<         gloc(i-3,icg)=gloc(i-3,icg)+wtor*fact*gloci
----
->         gloc(i-3,icg)=gloc(i-3,icg)+wtor*gloci
-4335a5479,5483
->       subroutine etor_d(etors_d)
->       etors_d=0.0d0
->       return
->       end
-> c----------------------------------------------------------------------------
-4337c5485
-<       subroutine etor(etors,edihcnstr,fact)
----
->       subroutine etor(etors,edihcnstr)
-4340d5487
-<       include 'DIMENSIONS.ZSCOPT'
-4351a5499
->       include 'COMMON.CONTROL'
-4355c5503
-< c      lprn=.true.
----
-> c     lprn=.true.
-4358c5506
-<         if (itype(i-2).eq.21 .or. itype(i-1).eq.21
----
->         if (itype(i-2).eq.21 .or. itype(i-1).eq.21 
-4360c5508
-<         if (itel(i-2).eq.0 .or. itel(i-1).eq.0) goto 1215
----
->         etors_ii=0.0D0
-4371a5520,5521
->           if (energy_dec) etors_ii=etors_ii+
->      &                v1ij*cosphi+v2ij*sinphi
-4387a5538,5539
->           if (energy_dec) etors_ii=etors_ii+
->      &                vl1ij*pom1
-4392a5545,5546
->           if (energy_dec) write (iout,'(a6,i5,0pf7.3)')
->      &         'etor',i,etors_ii-v0(itori,itori1)
-4397c5551
-<         gloc(i-3,icg)=gloc(i-3,icg)+wtor*fact*gloci
----
->         gloc(i-3,icg)=gloc(i-3,icg)+wtor*gloci
-4399d5552
-<  1215   continue
-4403c5556,5557
-<       do i=1,ndih_constr
----
-> c      do i=1,ndih_constr
->       do i=idihconstr_start,idihconstr_end
-4407d5560
-<         edihi=0.0d0
-4412d5564
-<           edihi=0.25d0*ftors*difi**4
-4417d5568
-<           edihi=0.25d0*ftors*difi**4
-4419c5570
-<           difi=0.0d0
----
->           difi=0.0
-4421,4424c5572,5574
-< c        write (iout,'(2i5,4f10.5,e15.5)') i,itori,phii,phi0(i),difi,
-< c     &    drange(i),edihi
-< !        write (iout,'(2i5,2f8.3,2e14.5)') i,itori,rad2deg*phii,
-< !     &    rad2deg*difi,0.25d0*ftors*difi**4,gloc(itori-3,icg)
----
-> cd        write (iout,'(2i5,4f8.3,2e14.5)') i,itori,rad2deg*phii,
-> cd     &    rad2deg*phi0(i),  rad2deg*drange(i),
-> cd     &    rad2deg*difi,0.25d0*ftors*difi**4,gloc(itori-3,icg)
-4426c5576
-< !      write (iout,*) 'edihcnstr',edihcnstr
----
-> cd       write (iout,*) 'edihcnstr',edihcnstr
-4430c5580
-<       subroutine etor_d(etors_d,fact2)
----
->       subroutine etor_d(etors_d)
-4434d5583
-<       include 'DIMENSIONS.ZSCOPT'
-4451c5600
-<       do i=iphi_start,iphi_end-1
----
->       do i=iphid_start,iphid_end
-4454,4455d5602
-<         if (itel(i-2).eq.0 .or. itel(i-1).eq.0 .or. itel(i).eq.0) 
-<      &     goto 1215
-4496,4498c5643,5644
-<         gloc(i-3,icg)=gloc(i-3,icg)+wtor_d*fact2*gloci1
-<         gloc(i-2,icg)=gloc(i-2,icg)+wtor_d*fact2*gloci2
-<  1215   continue
----
->         gloc(i-3,icg)=gloc(i-3,icg)+wtor_d*gloci1
->         gloc(i-2,icg)=gloc(i-2,icg)+wtor_d*gloci2
-4509c5655
-< c        of residues computed from AM1 energy surfaces of terminally-blocked
----
-> c        of residues computed from AM1  energy surfaces of terminally-blocked
-4513d5658
-<       include 'DIMENSIONS.ZSCOPT'
-4551c5696
-<         gsccor_loc(i-3)=gloci
----
->         gsccor_loc(i-3)=gsccor_loc(i-3)+gloci
-4555c5700
-< c------------------------------------------------------------------------------
----
-> c----------------------------------------------------------------------------
-4638,4702c5783,5794
-<       enddo
-<       do m=i,j-1
-<         do ll=1,3
-<           gradcorr(ll,m)=gradcorr(ll,m)+gx(ll)
-<         enddo
-<       enddo
-<       do m=k,l-1
-<         do ll=1,3
-<           gradcorr(ll,m)=gradcorr(ll,m)+gx1(ll)
-<         enddo
-<       enddo 
-<       esccorr=-eij*ekl
-<       return
-<       end
-< c------------------------------------------------------------------------------
-< #ifdef MPL
-<       subroutine pack_buffer(dimen1,dimen2,atom,indx,buffer)
-<       implicit real*8 (a-h,o-z)
-<       include 'DIMENSIONS' 
-<       integer dimen1,dimen2,atom,indx
-<       double precision buffer(dimen1,dimen2)
-<       double precision zapas 
-<       common /contacts_hb/ zapas(3,20,maxres,7),
-<      &   facont_hb(20,maxres),ees0p(20,maxres),ees0m(20,maxres),
-<      &         num_cont_hb(maxres),jcont_hb(20,maxres)
-<       num_kont=num_cont_hb(atom)
-<       do i=1,num_kont
-<         do k=1,7
-<           do j=1,3
-<             buffer(i,indx+(k-1)*3+j)=zapas(j,i,atom,k)
-<           enddo ! j
-<         enddo ! k
-<         buffer(i,indx+22)=facont_hb(i,atom)
-<         buffer(i,indx+23)=ees0p(i,atom)
-<         buffer(i,indx+24)=ees0m(i,atom)
-<         buffer(i,indx+25)=dfloat(jcont_hb(i,atom))
-<       enddo ! i
-<       buffer(1,indx+26)=dfloat(num_kont)
-<       return
-<       end
-< c------------------------------------------------------------------------------
-<       subroutine unpack_buffer(dimen1,dimen2,atom,indx,buffer)
-<       implicit real*8 (a-h,o-z)
-<       include 'DIMENSIONS' 
-<       integer dimen1,dimen2,atom,indx
-<       double precision buffer(dimen1,dimen2)
-<       double precision zapas 
-<       common /contacts_hb/ zapas(3,20,maxres,7),
-<      &         facont_hb(20,maxres),ees0p(20,maxres),ees0m(20,maxres),
-<      &         num_cont_hb(maxres),jcont_hb(20,maxres)
-<       num_kont=buffer(1,indx+26)
-<       num_kont_old=num_cont_hb(atom)
-<       num_cont_hb(atom)=num_kont+num_kont_old
-<       do i=1,num_kont
-<         ii=i+num_kont_old
-<         do k=1,7    
-<           do j=1,3
-<             zapas(j,ii,atom,k)=buffer(i,indx+(k-1)*3+j)
-<           enddo ! j 
-<         enddo ! k 
-<         facont_hb(ii,atom)=buffer(i,indx+22)
-<         ees0p(ii,atom)=buffer(i,indx+23)
-<         ees0m(ii,atom)=buffer(i,indx+24)
-<         jcont_hb(ii,atom)=buffer(i,indx+25)
-<       enddo ! i
----
->       enddo
->       do m=i,j-1
->         do ll=1,3
->           gradcorr(ll,m)=gradcorr(ll,m)+gx(ll)
->         enddo
->       enddo
->       do m=k,l-1
->         do ll=1,3
->           gradcorr(ll,m)=gradcorr(ll,m)+gx1(ll)
->         enddo
->       enddo 
->       esccorr=-eij*ekl
-4706d5797
-< #endif
-4711d5801
-<       include 'DIMENSIONS.ZSCOPT'
-4713,4714c5803,5812
-< #ifdef MPL
-<       include 'COMMON.INFO'
----
-> #ifdef MPI
->       include "mpif.h"
->       parameter (max_cont=maxconts)
->       parameter (max_dim=26)
->       integer source,CorrelType,CorrelID,CorrelType1,CorrelID1,Error
->       double precision zapas(max_dim,maxconts,max_fg_procs),
->      &  zapas_recv(max_dim,maxconts,max_fg_procs)
->       common /przechowalnia/ zapas
->       integer status(MPI_STATUS_SIZE),req(maxconts*2),
->      &  status_array(MPI_STATUS_SIZE,maxconts*2)
-4715a5814
->       include 'COMMON.SETUP'
-4720,4728c5819,5821
-< #ifdef MPL
-<       parameter (max_cont=maxconts)
-<       parameter (max_dim=2*(8*3+2))
-<       parameter (msglen1=max_cont*max_dim*4)
-<       parameter (msglen2=2*msglen1)
-<       integer source,CorrelType,CorrelID,Error
-<       double precision buffer(max_cont,max_dim)
-< #endif
-<       double precision gx(3),gx1(3)
----
->       include 'COMMON.CONTROL'
->       include 'COMMON.LOCAL'
->       double precision gx(3),gx1(3),time00
-4733c5826
-< #ifdef MPL
----
-> #ifdef MPI
-4736c5829
-<       if (fgProcs.le.1) goto 30
----
->       if (nfgtasks.le.1) goto 30
-4738c5831
-<         write (iout,'(a)') 'Contact function values:'
----
->         write (iout,'(a)') 'Contact function values before RECEIVE:'
-4745,4746c5838,5917
-< C Caution! Following code assumes that electrostatic interactions concerning
-< C a given atom are split among at most two processors!
----
->       call flush(iout)
->       do i=1,ntask_cont_from
->         ncont_recv(i)=0
->       enddo
->       do i=1,ntask_cont_to
->         ncont_sent(i)=0
->       enddo
-> c      write (iout,*) "ntask_cont_from",ntask_cont_from," ntask_cont_to",
-> c     & ntask_cont_to
-> C Make the list of contacts to send to send to other procesors
-> c      write (iout,*) "limits",max0(iturn4_end-1,iatel_s),iturn3_end
-> c      call flush(iout)
->       do i=iturn3_start,iturn3_end
-> c        write (iout,*) "make contact list turn3",i," num_cont",
-> c     &    num_cont_hb(i)
->         call add_hb_contact(i,i+2,iturn3_sent_local(1,i))
->       enddo
->       do i=iturn4_start,iturn4_end
-> c        write (iout,*) "make contact list turn4",i," num_cont",
-> c     &   num_cont_hb(i)
->         call add_hb_contact(i,i+3,iturn4_sent_local(1,i))
->       enddo
->       do ii=1,nat_sent
->         i=iat_sent(ii)
-> c        write (iout,*) "make contact list longrange",i,ii," num_cont",
-> c     &    num_cont_hb(i)
->         do j=1,num_cont_hb(i)
->         do k=1,4
->           jjc=jcont_hb(j,i)
->           iproc=iint_sent_local(k,jjc,ii)
-> c          write (iout,*) "i",i," j",j," k",k," jjc",jjc," iproc",iproc
->           if (iproc.gt.0) then
->             ncont_sent(iproc)=ncont_sent(iproc)+1
->             nn=ncont_sent(iproc)
->             zapas(1,nn,iproc)=i
->             zapas(2,nn,iproc)=jjc
->             zapas(3,nn,iproc)=facont_hb(j,i)
->             zapas(4,nn,iproc)=ees0p(j,i)
->             zapas(5,nn,iproc)=ees0m(j,i)
->             zapas(6,nn,iproc)=gacont_hbr(1,j,i)
->             zapas(7,nn,iproc)=gacont_hbr(2,j,i)
->             zapas(8,nn,iproc)=gacont_hbr(3,j,i)
->             zapas(9,nn,iproc)=gacontm_hb1(1,j,i)
->             zapas(10,nn,iproc)=gacontm_hb1(2,j,i)
->             zapas(11,nn,iproc)=gacontm_hb1(3,j,i)
->             zapas(12,nn,iproc)=gacontp_hb1(1,j,i)
->             zapas(13,nn,iproc)=gacontp_hb1(2,j,i)
->             zapas(14,nn,iproc)=gacontp_hb1(3,j,i)
->             zapas(15,nn,iproc)=gacontm_hb2(1,j,i)
->             zapas(16,nn,iproc)=gacontm_hb2(2,j,i)
->             zapas(17,nn,iproc)=gacontm_hb2(3,j,i)
->             zapas(18,nn,iproc)=gacontp_hb2(1,j,i)
->             zapas(19,nn,iproc)=gacontp_hb2(2,j,i)
->             zapas(20,nn,iproc)=gacontp_hb2(3,j,i)
->             zapas(21,nn,iproc)=gacontm_hb3(1,j,i)
->             zapas(22,nn,iproc)=gacontm_hb3(2,j,i)
->             zapas(23,nn,iproc)=gacontm_hb3(3,j,i)
->             zapas(24,nn,iproc)=gacontp_hb3(1,j,i)
->             zapas(25,nn,iproc)=gacontp_hb3(2,j,i)
->             zapas(26,nn,iproc)=gacontp_hb3(3,j,i)
->           endif
->         enddo
->         enddo
->       enddo
->       if (lprn) then
->       write (iout,*) 
->      &  "Numbers of contacts to be sent to other processors",
->      &  (ncont_sent(i),i=1,ntask_cont_to)
->       write (iout,*) "Contacts sent"
->       do ii=1,ntask_cont_to
->         nn=ncont_sent(ii)
->         iproc=itask_cont_to(ii)
->         write (iout,*) nn," contacts to processor",iproc,
->      &   " of CONT_TO_COMM group"
->         do i=1,nn
->           write(iout,'(2f5.0,4f10.5)')(zapas(j,i,ii),j=1,5)
->         enddo
->       enddo
->       call flush(iout)
->       endif
-4748,4836c5919,6040
-<       CorrelID=MyID+1
-<       ldone=.false.
-<       do i=1,max_cont
-<         do j=1,max_dim
-<           buffer(i,j)=0.0D0
-<         enddo
-<       enddo
-<       mm=mod(MyRank,2)
-< cd    write (iout,*) 'MyRank',MyRank,' mm',mm
-<       if (mm) 20,20,10 
-<    10 continue
-< cd    write (iout,*) 'Sending: MyRank',MyRank,' mm',mm,' ldone',ldone
-<       if (MyRank.gt.0) then
-< C Send correlation contributions to the preceding processor
-<         msglen=msglen1
-<         nn=num_cont_hb(iatel_s)
-<         call pack_buffer(max_cont,max_dim,iatel_s,0,buffer)
-< cd      write (iout,*) 'The BUFFER array:'
-< cd      do i=1,nn
-< cd        write (iout,'(i2,9(3f8.3,2x))') i,(buffer(i,j),j=1,26)
-< cd      enddo
-<         if (ielstart(iatel_s).gt.iatel_s+ispp) then
-<           msglen=msglen2
-<             call pack_buffer(max_cont,max_dim,iatel_s+1,26,buffer)
-< C Clear the contacts of the atom passed to the neighboring processor
-<         nn=num_cont_hb(iatel_s+1)
-< cd      do i=1,nn
-< cd        write (iout,'(i2,9(3f8.3,2x))') i,(buffer(i,j+26),j=1,26)
-< cd      enddo
-<             num_cont_hb(iatel_s)=0
-<         endif 
-< cd      write (iout,*) 'Processor ',MyID,MyRank,
-< cd   & ' is sending correlation contribution to processor',MyID-1,
-< cd   & ' msglen=',msglen
-< cd      write (*,*) 'Processor ',MyID,MyRank,
-< cd   & ' is sending correlation contribution to processor',MyID-1,
-< cd   & ' msglen=',msglen,' CorrelType=',CorrelType
-<         call mp_bsend(buffer,msglen,MyID-1,CorrelType,CorrelID)
-< cd      write (iout,*) 'Processor ',MyID,
-< cd   & ' has sent correlation contribution to processor',MyID-1,
-< cd   & ' msglen=',msglen,' CorrelID=',CorrelID
-< cd      write (*,*) 'Processor ',MyID,
-< cd   & ' has sent correlation contribution to processor',MyID-1,
-< cd   & ' msglen=',msglen,' CorrelID=',CorrelID
-<         msglen=msglen1
-<       endif ! (MyRank.gt.0)
-<       if (ldone) goto 30
-<       ldone=.true.
-<    20 continue
-< cd    write (iout,*) 'Receiving: MyRank',MyRank,' mm',mm,' ldone',ldone
-<       if (MyRank.lt.fgProcs-1) then
-< C Receive correlation contributions from the next processor
-<         msglen=msglen1
-<         if (ielend(iatel_e).lt.nct-1) msglen=msglen2
-< cd      write (iout,*) 'Processor',MyID,
-< cd   & ' is receiving correlation contribution from processor',MyID+1,
-< cd   & ' msglen=',msglen,' CorrelType=',CorrelType
-< cd      write (*,*) 'Processor',MyID,
-< cd   & ' is receiving correlation contribution from processor',MyID+1,
-< cd   & ' msglen=',msglen,' CorrelType=',CorrelType
-<         nbytes=-1
-<         do while (nbytes.le.0)
-<           call mp_probe(MyID+1,CorrelType,nbytes)
-<         enddo
-< cd      print *,'Processor',MyID,' msglen',msglen,' nbytes',nbytes
-<         call mp_brecv(buffer,msglen,MyID+1,CorrelType,nbytes)
-< cd      write (iout,*) 'Processor',MyID,
-< cd   & ' has received correlation contribution from processor',MyID+1,
-< cd   & ' msglen=',msglen,' nbytes=',nbytes
-< cd      write (iout,*) 'The received BUFFER array:'
-< cd      do i=1,max_cont
-< cd        write (iout,'(i2,9(3f8.3,2x))') i,(buffer(i,j),j=1,52)
-< cd      enddo
-<         if (msglen.eq.msglen1) then
-<           call unpack_buffer(max_cont,max_dim,iatel_e+1,0,buffer)
-<         else if (msglen.eq.msglen2)  then
-<           call unpack_buffer(max_cont,max_dim,iatel_e,0,buffer) 
-<           call unpack_buffer(max_cont,max_dim,iatel_e+1,26,buffer) 
-<         else
-<           write (iout,*) 
-<      & 'ERROR!!!! message length changed while processing correlations.'
-<           write (*,*) 
-<      & 'ERROR!!!! message length changed while processing correlations.'
-<           call mp_stopall(Error)
-<         endif ! msglen.eq.msglen1
-<       endif ! MyRank.lt.fgProcs-1
-<       if (ldone) goto 30
-<       ldone=.true.
-<       goto 10
----
->       CorrelID=fg_rank+1
->       CorrelType1=478
->       CorrelID1=nfgtasks+fg_rank+1
->       ireq=0
-> C Receive the numbers of needed contacts from other processors 
->       do ii=1,ntask_cont_from
->         iproc=itask_cont_from(ii)
->         ireq=ireq+1
->         call MPI_Irecv(ncont_recv(ii),1,MPI_INTEGER,iproc,CorrelType,
->      &    FG_COMM,req(ireq),IERR)
->       enddo
-> c      write (iout,*) "IRECV ended"
-> c      call flush(iout)
-> C Send the number of contacts needed by other processors
->       do ii=1,ntask_cont_to
->         iproc=itask_cont_to(ii)
->         ireq=ireq+1
->         call MPI_Isend(ncont_sent(ii),1,MPI_INTEGER,iproc,CorrelType,
->      &    FG_COMM,req(ireq),IERR)
->       enddo
-> c      write (iout,*) "ISEND ended"
-> c      write (iout,*) "number of requests (nn)",ireq
->       call flush(iout)
->       if (ireq.gt.0) 
->      &  call MPI_Waitall(ireq,req,status_array,ierr)
-> c      write (iout,*) 
-> c     &  "Numbers of contacts to be received from other processors",
-> c     &  (ncont_recv(i),i=1,ntask_cont_from)
-> c      call flush(iout)
-> C Receive contacts
->       ireq=0
->       do ii=1,ntask_cont_from
->         iproc=itask_cont_from(ii)
->         nn=ncont_recv(ii)
-> c        write (iout,*) "Receiving",nn," contacts from processor",iproc,
-> c     &   " of CONT_TO_COMM group"
->         call flush(iout)
->         if (nn.gt.0) then
->           ireq=ireq+1
->           call MPI_Irecv(zapas_recv(1,1,ii),nn*max_dim,
->      &    MPI_DOUBLE_PRECISION,iproc,CorrelType1,FG_COMM,req(ireq),IERR)
-> c          write (iout,*) "ireq,req",ireq,req(ireq)
->         endif
->       enddo
-> C Send the contacts to processors that need them
->       do ii=1,ntask_cont_to
->         iproc=itask_cont_to(ii)
->         nn=ncont_sent(ii)
-> c        write (iout,*) nn," contacts to processor",iproc,
-> c     &   " of CONT_TO_COMM group"
->         if (nn.gt.0) then
->           ireq=ireq+1 
->           call MPI_Isend(zapas(1,1,ii),nn*max_dim,MPI_DOUBLE_PRECISION,
->      &      iproc,CorrelType1,FG_COMM,req(ireq),IERR)
-> c          write (iout,*) "ireq,req",ireq,req(ireq)
-> c          do i=1,nn
-> c            write(iout,'(2f5.0,4f10.5)')(zapas(j,i,ii),j=1,5)
-> c          enddo
->         endif  
->       enddo
-> c      write (iout,*) "number of requests (contacts)",ireq
-> c      write (iout,*) "req",(req(i),i=1,4)
-> c      call flush(iout)
->       if (ireq.gt.0) 
->      & call MPI_Waitall(ireq,req,status_array,ierr)
->       do iii=1,ntask_cont_from
->         iproc=itask_cont_from(iii)
->         nn=ncont_recv(iii)
->         if (lprn) then
->         write (iout,*) "Received",nn," contacts from processor",iproc,
->      &   " of CONT_FROM_COMM group"
->         call flush(iout)
->         do i=1,nn
->           write(iout,'(2f5.0,4f10.5)')(zapas_recv(j,i,iii),j=1,5)
->         enddo
->         call flush(iout)
->         endif
->         do i=1,nn
->           ii=zapas_recv(1,i,iii)
-> c Flag the received contacts to prevent double-counting
->           jj=-zapas_recv(2,i,iii)
-> c          write (iout,*) "iii",iii," i",i," ii",ii," jj",jj
-> c          call flush(iout)
->           nnn=num_cont_hb(ii)+1
->           num_cont_hb(ii)=nnn
->           jcont_hb(nnn,ii)=jj
->           facont_hb(nnn,ii)=zapas_recv(3,i,iii)
->           ees0p(nnn,ii)=zapas_recv(4,i,iii)
->           ees0m(nnn,ii)=zapas_recv(5,i,iii)
->           gacont_hbr(1,nnn,ii)=zapas_recv(6,i,iii)
->           gacont_hbr(2,nnn,ii)=zapas_recv(7,i,iii)
->           gacont_hbr(3,nnn,ii)=zapas_recv(8,i,iii)
->           gacontm_hb1(1,nnn,ii)=zapas_recv(9,i,iii)
->           gacontm_hb1(2,nnn,ii)=zapas_recv(10,i,iii)
->           gacontm_hb1(3,nnn,ii)=zapas_recv(11,i,iii)
->           gacontp_hb1(1,nnn,ii)=zapas_recv(12,i,iii)
->           gacontp_hb1(2,nnn,ii)=zapas_recv(13,i,iii)
->           gacontp_hb1(3,nnn,ii)=zapas_recv(14,i,iii)
->           gacontm_hb2(1,nnn,ii)=zapas_recv(15,i,iii)
->           gacontm_hb2(2,nnn,ii)=zapas_recv(16,i,iii)
->           gacontm_hb2(3,nnn,ii)=zapas_recv(17,i,iii)
->           gacontp_hb2(1,nnn,ii)=zapas_recv(18,i,iii)
->           gacontp_hb2(2,nnn,ii)=zapas_recv(19,i,iii)
->           gacontp_hb2(3,nnn,ii)=zapas_recv(20,i,iii)
->           gacontm_hb3(1,nnn,ii)=zapas_recv(21,i,iii)
->           gacontm_hb3(2,nnn,ii)=zapas_recv(22,i,iii)
->           gacontm_hb3(3,nnn,ii)=zapas_recv(23,i,iii)
->           gacontp_hb3(1,nnn,ii)=zapas_recv(24,i,iii)
->           gacontp_hb3(2,nnn,ii)=zapas_recv(25,i,iii)
->           gacontp_hb3(3,nnn,ii)=zapas_recv(26,i,iii)
->         enddo
->       enddo
->       call flush(iout)
->       if (lprn) then
->         write (iout,'(a)') 'Contact function values after receive:'
->         do i=nnt,nct-2
->           write (iout,'(2i3,50(1x,i3,f5.2))') 
->      &    i,num_cont_hb(i),(jcont_hb(j,i),facont_hb(j,i),
->      &    j=1,num_cont_hb(i))
->         enddo
->         call flush(iout)
->       endif
-4842c6046
-<           write (iout,'(2i3,50(1x,i2,f5.2))') 
----
->           write (iout,'(2i3,50(1x,i3,f5.2))') 
-4856c6060
-<       do i=iatel_s,iatel_e+1
----
->       do i=min0(iatel_s,iturn4_start),max0(iatel_e,iturn3_end)
-4861a6066
->           jp=iabs(j)
-4863a6069
->             jp1=iabs(j1)
-4866c6072,6074
-<             if (j1.eq.j+1 .or. j1.eq.j-1) then
----
->             if ((j.gt.0 .and. j1.gt.0 .or. j.gt.0 .and. j1.lt.0 
->      &          .or. j.lt.0 .and. j1.gt.0) .and.
->      &         (jp1.eq.jp+1 .or. jp1.eq.jp-1)) then
-4869c6077,6079
-<               ecorr=ecorr+ehbcorr(i,j,i+1,j1,jj,kk,0.72D0,0.32D0)
----
->               ecorr=ecorr+ehbcorr(i,jp,i+1,jp1,jj,kk,0.72D0,0.32D0)
->               if (energy_dec) write (iout,'(a6,2i5,0pf7.3)')
->      &            'ecorrh',i,j,ehbcorr(i,j,i+1,j1,jj,kk,0.72D0,0.32D0)
-4891a6102,6158
->       subroutine add_hb_contact(ii,jj,itask)
->       implicit real*8 (a-h,o-z)
->       include "DIMENSIONS"
->       include "COMMON.IOUNITS"
->       integer max_cont
->       integer max_dim
->       parameter (max_cont=maxconts)
->       parameter (max_dim=26)
->       include "COMMON.CONTACTS"
->       double precision zapas(max_dim,maxconts,max_fg_procs),
->      &  zapas_recv(max_dim,maxconts,max_fg_procs)
->       common /przechowalnia/ zapas
->       integer i,j,ii,jj,iproc,itask(4),nn
-> c      write (iout,*) "itask",itask
->       do i=1,2
->         iproc=itask(i)
->         if (iproc.gt.0) then
->           do j=1,num_cont_hb(ii)
->             jjc=jcont_hb(j,ii)
-> c            write (iout,*) "i",ii," j",jj," jjc",jjc
->             if (jjc.eq.jj) then
->               ncont_sent(iproc)=ncont_sent(iproc)+1
->               nn=ncont_sent(iproc)
->               zapas(1,nn,iproc)=ii
->               zapas(2,nn,iproc)=jjc
->               zapas(3,nn,iproc)=facont_hb(j,ii)
->               zapas(4,nn,iproc)=ees0p(j,ii)
->               zapas(5,nn,iproc)=ees0m(j,ii)
->               zapas(6,nn,iproc)=gacont_hbr(1,j,ii)
->               zapas(7,nn,iproc)=gacont_hbr(2,j,ii)
->               zapas(8,nn,iproc)=gacont_hbr(3,j,ii)
->               zapas(9,nn,iproc)=gacontm_hb1(1,j,ii)
->               zapas(10,nn,iproc)=gacontm_hb1(2,j,ii)
->               zapas(11,nn,iproc)=gacontm_hb1(3,j,ii)
->               zapas(12,nn,iproc)=gacontp_hb1(1,j,ii)
->               zapas(13,nn,iproc)=gacontp_hb1(2,j,ii)
->               zapas(14,nn,iproc)=gacontp_hb1(3,j,ii)
->               zapas(15,nn,iproc)=gacontm_hb2(1,j,ii)
->               zapas(16,nn,iproc)=gacontm_hb2(2,j,ii)
->               zapas(17,nn,iproc)=gacontm_hb2(3,j,ii)
->               zapas(18,nn,iproc)=gacontp_hb2(1,j,ii)
->               zapas(19,nn,iproc)=gacontp_hb2(2,j,ii)
->               zapas(20,nn,iproc)=gacontp_hb2(3,j,ii)
->               zapas(21,nn,iproc)=gacontm_hb3(1,j,ii)
->               zapas(22,nn,iproc)=gacontm_hb3(2,j,ii)
->               zapas(23,nn,iproc)=gacontm_hb3(3,j,ii)
->               zapas(24,nn,iproc)=gacontp_hb3(1,j,ii)
->               zapas(25,nn,iproc)=gacontp_hb3(2,j,ii)
->               zapas(26,nn,iproc)=gacontp_hb3(3,j,ii)
->               exit
->             endif
->           enddo
->         endif
->       enddo
->       return
->       end
-> c------------------------------------------------------------------------------
-4897d6163
-<       include 'DIMENSIONS.ZSCOPT'
-4899,4900c6165,6174
-< #ifdef MPL
-<       include 'COMMON.INFO'
----
-> #ifdef MPI
->       include "mpif.h"
->       parameter (max_cont=maxconts)
->       parameter (max_dim=70)
->       integer source,CorrelType,CorrelID,CorrelType1,CorrelID1,Error
->       double precision zapas(max_dim,maxconts,max_fg_procs),
->      &  zapas_recv(max_dim,maxconts,max_fg_procs)
->       common /przechowalnia/ zapas
->       integer status(MPI_STATUS_SIZE),req(maxconts*2),
->      &  status_array(MPI_STATUS_SIZE,maxconts*2)
-4901a6176
->       include 'COMMON.SETUP'
-4903a6179
->       include 'COMMON.LOCAL'
-4906,4913c6182,6183
-< #ifdef MPL
-<       parameter (max_cont=maxconts)
-<       parameter (max_dim=2*(8*3+2))
-<       parameter (msglen1=max_cont*max_dim*4)
-<       parameter (msglen2=2*msglen1)
-<       integer source,CorrelType,CorrelID,Error
-<       double precision buffer(max_cont,max_dim)
-< #endif
----
->       include 'COMMON.CHAIN'
->       include 'COMMON.CONTROL'
-4914a6185
->       integer num_cont_hb_old(maxres)
-4916c6187,6188
-< 
----
->       double precision eello4,eello5,eelo6,eello_turn6
->       external eello4,eello5,eello6,eello_turn6
-4920c6192,6195
-< #ifdef MPL
----
-> #ifdef MPI
->       do i=1,nres
->         num_cont_hb_old(i)=num_cont_hb(i)
->       enddo
-4923c6198
-<       if (fgProcs.le.1) goto 30
----
->       if (nfgtasks.le.1) goto 30
-4925c6200
-<         write (iout,'(a)') 'Contact function values:'
----
->         write (iout,'(a)') 'Contact function values before RECEIVE:'
-4932,4933c6207,6282
-< C Caution! Following code assumes that electrostatic interactions concerning
-< C a given atom are split among at most two processors!
----
->       call flush(iout)
->       do i=1,ntask_cont_from
->         ncont_recv(i)=0
->       enddo
->       do i=1,ntask_cont_to
->         ncont_sent(i)=0
->       enddo
-> c      write (iout,*) "ntask_cont_from",ntask_cont_from," ntask_cont_to",
-> c     & ntask_cont_to
-> C Make the list of contacts to send to send to other procesors
->       do i=iturn3_start,iturn3_end
-> c        write (iout,*) "make contact list turn3",i," num_cont",
-> c     &    num_cont_hb(i)
->         call add_hb_contact_eello(i,i+2,iturn3_sent_local(1,i))
->       enddo
->       do i=iturn4_start,iturn4_end
-> c        write (iout,*) "make contact list turn4",i," num_cont",
-> c     &   num_cont_hb(i)
->         call add_hb_contact_eello(i,i+3,iturn4_sent_local(1,i))
->       enddo
->       do ii=1,nat_sent
->         i=iat_sent(ii)
-> c        write (iout,*) "make contact list longrange",i,ii," num_cont",
-> c     &    num_cont_hb(i)
->         do j=1,num_cont_hb(i)
->         do k=1,4
->           jjc=jcont_hb(j,i)
->           iproc=iint_sent_local(k,jjc,ii)
-> c          write (iout,*) "i",i," j",j," k",k," jjc",jjc," iproc",iproc
->           if (iproc.ne.0) then
->             ncont_sent(iproc)=ncont_sent(iproc)+1
->             nn=ncont_sent(iproc)
->             zapas(1,nn,iproc)=i
->             zapas(2,nn,iproc)=jjc
->             zapas(3,nn,iproc)=d_cont(j,i)
->             ind=3
->             do kk=1,3
->               ind=ind+1
->               zapas(ind,nn,iproc)=grij_hb_cont(kk,j,i)
->             enddo
->             do kk=1,2
->               do ll=1,2
->                 ind=ind+1
->                 zapas(ind,nn,iproc)=a_chuj(ll,kk,j,i)
->               enddo
->             enddo
->             do jj=1,5
->               do kk=1,3
->                 do ll=1,2
->                   do mm=1,2
->                     ind=ind+1
->                     zapas(ind,nn,iproc)=a_chuj_der(mm,ll,kk,jj,j,i)
->                   enddo
->                 enddo
->               enddo
->             enddo
->           endif
->         enddo
->         enddo
->       enddo
->       if (lprn) then
->       write (iout,*) 
->      &  "Numbers of contacts to be sent to other processors",
->      &  (ncont_sent(i),i=1,ntask_cont_to)
->       write (iout,*) "Contacts sent"
->       do ii=1,ntask_cont_to
->         nn=ncont_sent(ii)
->         iproc=itask_cont_to(ii)
->         write (iout,*) nn," contacts to processor",iproc,
->      &   " of CONT_TO_COMM group"
->         do i=1,nn
->           write(iout,'(2f5.0,10f10.5)')(zapas(j,i,ii),j=1,10)
->         enddo
->       enddo
->       call flush(iout)
->       endif
-4935,5023c6284,6403
-<       CorrelID=MyID+1
-<       ldone=.false.
-<       do i=1,max_cont
-<         do j=1,max_dim
-<           buffer(i,j)=0.0D0
-<         enddo
-<       enddo
-<       mm=mod(MyRank,2)
-< cd    write (iout,*) 'MyRank',MyRank,' mm',mm
-<       if (mm) 20,20,10 
-<    10 continue
-< cd    write (iout,*) 'Sending: MyRank',MyRank,' mm',mm,' ldone',ldone
-<       if (MyRank.gt.0) then
-< C Send correlation contributions to the preceding processor
-<         msglen=msglen1
-<         nn=num_cont_hb(iatel_s)
-<         call pack_buffer(max_cont,max_dim,iatel_s,0,buffer)
-< cd      write (iout,*) 'The BUFFER array:'
-< cd      do i=1,nn
-< cd        write (iout,'(i2,9(3f8.3,2x))') i,(buffer(i,j),j=1,26)
-< cd      enddo
-<         if (ielstart(iatel_s).gt.iatel_s+ispp) then
-<           msglen=msglen2
-<             call pack_buffer(max_cont,max_dim,iatel_s+1,26,buffer)
-< C Clear the contacts of the atom passed to the neighboring processor
-<         nn=num_cont_hb(iatel_s+1)
-< cd      do i=1,nn
-< cd        write (iout,'(i2,9(3f8.3,2x))') i,(buffer(i,j+26),j=1,26)
-< cd      enddo
-<             num_cont_hb(iatel_s)=0
-<         endif 
-< cd      write (iout,*) 'Processor ',MyID,MyRank,
-< cd   & ' is sending correlation contribution to processor',MyID-1,
-< cd   & ' msglen=',msglen
-< cd      write (*,*) 'Processor ',MyID,MyRank,
-< cd   & ' is sending correlation contribution to processor',MyID-1,
-< cd   & ' msglen=',msglen,' CorrelType=',CorrelType
-<         call mp_bsend(buffer,msglen,MyID-1,CorrelType,CorrelID)
-< cd      write (iout,*) 'Processor ',MyID,
-< cd   & ' has sent correlation contribution to processor',MyID-1,
-< cd   & ' msglen=',msglen,' CorrelID=',CorrelID
-< cd      write (*,*) 'Processor ',MyID,
-< cd   & ' has sent correlation contribution to processor',MyID-1,
-< cd   & ' msglen=',msglen,' CorrelID=',CorrelID
-<         msglen=msglen1
-<       endif ! (MyRank.gt.0)
-<       if (ldone) goto 30
-<       ldone=.true.
-<    20 continue
-< cd    write (iout,*) 'Receiving: MyRank',MyRank,' mm',mm,' ldone',ldone
-<       if (MyRank.lt.fgProcs-1) then
-< C Receive correlation contributions from the next processor
-<         msglen=msglen1
-<         if (ielend(iatel_e).lt.nct-1) msglen=msglen2
-< cd      write (iout,*) 'Processor',MyID,
-< cd   & ' is receiving correlation contribution from processor',MyID+1,
-< cd   & ' msglen=',msglen,' CorrelType=',CorrelType
-< cd      write (*,*) 'Processor',MyID,
-< cd   & ' is receiving correlation contribution from processor',MyID+1,
-< cd   & ' msglen=',msglen,' CorrelType=',CorrelType
-<         nbytes=-1
-<         do while (nbytes.le.0)
-<           call mp_probe(MyID+1,CorrelType,nbytes)
-<         enddo
-< cd      print *,'Processor',MyID,' msglen',msglen,' nbytes',nbytes
-<         call mp_brecv(buffer,msglen,MyID+1,CorrelType,nbytes)
-< cd      write (iout,*) 'Processor',MyID,
-< cd   & ' has received correlation contribution from processor',MyID+1,
-< cd   & ' msglen=',msglen,' nbytes=',nbytes
-< cd      write (iout,*) 'The received BUFFER array:'
-< cd      do i=1,max_cont
-< cd        write (iout,'(i2,9(3f8.3,2x))') i,(buffer(i,j),j=1,52)
-< cd      enddo
-<         if (msglen.eq.msglen1) then
-<           call unpack_buffer(max_cont,max_dim,iatel_e+1,0,buffer)
-<         else if (msglen.eq.msglen2)  then
-<           call unpack_buffer(max_cont,max_dim,iatel_e,0,buffer) 
-<           call unpack_buffer(max_cont,max_dim,iatel_e+1,26,buffer) 
-<         else
-<           write (iout,*) 
-<      & 'ERROR!!!! message length changed while processing correlations.'
-<           write (*,*) 
-<      & 'ERROR!!!! message length changed while processing correlations.'
-<           call mp_stopall(Error)
-<         endif ! msglen.eq.msglen1
-<       endif ! MyRank.lt.fgProcs-1
-<       if (ldone) goto 30
-<       ldone=.true.
-<       goto 10
----
->       CorrelID=fg_rank+1
->       CorrelType1=478
->       CorrelID1=nfgtasks+fg_rank+1
->       ireq=0
-> C Receive the numbers of needed contacts from other processors 
->       do ii=1,ntask_cont_from
->         iproc=itask_cont_from(ii)
->         ireq=ireq+1
->         call MPI_Irecv(ncont_recv(ii),1,MPI_INTEGER,iproc,CorrelType,
->      &    FG_COMM,req(ireq),IERR)
->       enddo
-> c      write (iout,*) "IRECV ended"
-> c      call flush(iout)
-> C Send the number of contacts needed by other processors
->       do ii=1,ntask_cont_to
->         iproc=itask_cont_to(ii)
->         ireq=ireq+1
->         call MPI_Isend(ncont_sent(ii),1,MPI_INTEGER,iproc,CorrelType,
->      &    FG_COMM,req(ireq),IERR)
->       enddo
-> c      write (iout,*) "ISEND ended"
-> c      write (iout,*) "number of requests (nn)",ireq
->       call flush(iout)
->       if (ireq.gt.0) 
->      &  call MPI_Waitall(ireq,req,status_array,ierr)
-> c      write (iout,*) 
-> c     &  "Numbers of contacts to be received from other processors",
-> c     &  (ncont_recv(i),i=1,ntask_cont_from)
-> c      call flush(iout)
-> C Receive contacts
->       ireq=0
->       do ii=1,ntask_cont_from
->         iproc=itask_cont_from(ii)
->         nn=ncont_recv(ii)
-> c        write (iout,*) "Receiving",nn," contacts from processor",iproc,
-> c     &   " of CONT_TO_COMM group"
->         call flush(iout)
->         if (nn.gt.0) then
->           ireq=ireq+1
->           call MPI_Irecv(zapas_recv(1,1,ii),nn*max_dim,
->      &    MPI_DOUBLE_PRECISION,iproc,CorrelType1,FG_COMM,req(ireq),IERR)
-> c          write (iout,*) "ireq,req",ireq,req(ireq)
->         endif
->       enddo
-> C Send the contacts to processors that need them
->       do ii=1,ntask_cont_to
->         iproc=itask_cont_to(ii)
->         nn=ncont_sent(ii)
-> c        write (iout,*) nn," contacts to processor",iproc,
-> c     &   " of CONT_TO_COMM group"
->         if (nn.gt.0) then
->           ireq=ireq+1 
->           call MPI_Isend(zapas(1,1,ii),nn*max_dim,MPI_DOUBLE_PRECISION,
->      &      iproc,CorrelType1,FG_COMM,req(ireq),IERR)
-> c          write (iout,*) "ireq,req",ireq,req(ireq)
-> c          do i=1,nn
-> c            write(iout,'(2f5.0,4f10.5)')(zapas(j,i,ii),j=1,5)
-> c          enddo
->         endif  
->       enddo
-> c      write (iout,*) "number of requests (contacts)",ireq
-> c      write (iout,*) "req",(req(i),i=1,4)
-> c      call flush(iout)
->       if (ireq.gt.0) 
->      & call MPI_Waitall(ireq,req,status_array,ierr)
->       do iii=1,ntask_cont_from
->         iproc=itask_cont_from(iii)
->         nn=ncont_recv(iii)
->         if (lprn) then
->         write (iout,*) "Received",nn," contacts from processor",iproc,
->      &   " of CONT_FROM_COMM group"
->         call flush(iout)
->         do i=1,nn
->           write(iout,'(2f5.0,10f10.5)')(zapas_recv(j,i,iii),j=1,10)
->         enddo
->         call flush(iout)
->         endif
->         do i=1,nn
->           ii=zapas_recv(1,i,iii)
-> c Flag the received contacts to prevent double-counting
->           jj=-zapas_recv(2,i,iii)
-> c          write (iout,*) "iii",iii," i",i," ii",ii," jj",jj
-> c          call flush(iout)
->           nnn=num_cont_hb(ii)+1
->           num_cont_hb(ii)=nnn
->           jcont_hb(nnn,ii)=jj
->           d_cont(nnn,ii)=zapas_recv(3,i,iii)
->           ind=3
->           do kk=1,3
->             ind=ind+1
->             grij_hb_cont(kk,nnn,ii)=zapas_recv(ind,i,iii)
->           enddo
->           do kk=1,2
->             do ll=1,2
->               ind=ind+1
->               a_chuj(ll,kk,nnn,ii)=zapas_recv(ind,i,iii)
->             enddo
->           enddo
->           do jj=1,5
->             do kk=1,3
->               do ll=1,2
->                 do mm=1,2
->                   ind=ind+1
->                   a_chuj_der(mm,ll,kk,jj,nnn,ii)=zapas_recv(ind,i,iii)
->                 enddo
->               enddo
->             enddo
->           enddo
->         enddo
->       enddo
->       call flush(iout)
->       if (lprn) then
->         write (iout,'(a)') 'Contact function values after receive:'
->         do i=nnt,nct-2
->           write (iout,'(2i3,50(1x,i3,5f6.3))') 
->      &    i,num_cont_hb(i),(jcont_hb(j,i),d_cont(j,i),
->      &    ((a_chuj(ll,kk,j,i),ll=1,2),kk=1,2),j=1,num_cont_hb(i))
->         enddo
->         call flush(iout)
->       endif
-5029,5031c6409,6411
-<           write (iout,'(2i3,50(1x,i2,f5.2))') 
-<      &    i,num_cont_hb(i),(jcont_hb(j,i),facont_hb(j,i),
-<      &    j=1,num_cont_hb(i))
----
->           write (iout,'(2i3,50(1x,i2,5f6.3))') 
->      &    i,num_cont_hb(i),(jcont_hb(j,i),d_cont(j,i),
->      &    ((a_chuj(ll,kk,j,i),ll=1,2),kk=1,2),j=1,num_cont_hb(i))
-5049a6430
-> #ifdef MOMENT
-5050a6432
-> #endif
-5055c6437,6443
-<       do i=iatel_s,iatel_e+1
----
-> c                write (iout,*) "gradcorr5 in eello5 before loop"
-> c                do iii=1,nres
-> c                  write (iout,'(i5,3f10.5)') 
-> c     &             iii,(gradcorr5(jjj,iii),jjj=1,3)
-> c                enddo
->       do i=min0(iatel_s,iturn4_start),max0(iatel_e+1,iturn3_end+1)
-> c        write (iout,*) "corr loop i",i
-5060a6449
->           jp=iabs(j)
-5063c6452,6453
-< c            write (*,*) 'i=',i,' j=',j,' i1=',i1,' j1=',j1,
----
->             jp1=iabs(j1)
-> c            write (iout,*) 'i=',i,' j=',j,' i1=',i1,' j1=',j1,
-5065c6455,6458
-<             if (j1.eq.j+1 .or. j1.eq.j-1) then
----
-> c            if (j1.eq.j+1 .or. j1.eq.j-1) then
->             if ((j.gt.0 .and. j1.gt.0 .or. j.gt.0 .and. j1.lt.0 
->      &          .or. j.lt.0 .and. j1.gt.0) .and.
->      &         (jp1.eq.jp+1 .or. jp1.eq.jp-1)) then
-5075,5076c6468,6469
-< c               write (*,*) 'i=',i,' j=',j,' i1=',i1,' j1=',j1,
-< c     &         ' jj=',jj,' kk=',kk
----
-> cd               write (iout,*) 'i=',i,' j=',jp,' i1=',i1,' j1=',jp1,
-> cd     &         ' jj=',jj,' kk=',kk
-5085,5086c6478,6483
-< cd     &          ' ekont=',ekont,' fprim=',fprimcont
-<                 call calc_eello(i,j,i+1,j1,jj,kk)
----
-> cd     &          ' ekont=',ekont,' fprim=',fprimcont,
-> cd     &          ' fac_prim1',fac_prim1,' fac_prim2',fac_prim2
-> cd               write (iout,*) "g_contij",g_contij
-> cd               write (iout,*) "grij_hb_cont i",grij_hb_cont(:,jj,i)
-> cd               write (iout,*) "grij_hb_cont i1",grij_hb_cont(:,jj,i1)
->                 call calc_eello(i,jp,i+1,jp1,jj,kk)
-5088c6485,6493
-<      &            ecorr=ecorr+eello4(i,j,i+1,j1,jj,kk)
----
->      &            ecorr=ecorr+eello4(i,jp,i+1,jp1,jj,kk)
->                   if (energy_dec.and.wcorr4.gt.0.0d0) 
->      1                 write (iout,'(a6,4i5,0pf7.3)')
->      2                'ecorr4',i,j,i+1,j1,eello4(i,jp,i+1,jp1,jj,kk)
-> c                write (iout,*) "gradcorr5 before eello5"
-> c                do iii=1,nres
-> c                  write (iout,'(i5,3f10.5)') 
-> c     &             iii,(gradcorr5(jjj,iii),jjj=1,3)
-> c                enddo
-5090,5091c6495,6503
-<      &            ecorr5=ecorr5+eello5(i,j,i+1,j1,jj,kk)
-< c                print *,"wcorr5",ecorr5
----
->      &            ecorr5=ecorr5+eello5(i,jp,i+1,jp1,jj,kk)
-> c                write (iout,*) "gradcorr5 after eello5"
-> c                do iii=1,nres
-> c                  write (iout,'(i5,3f10.5)') 
-> c     &             iii,(gradcorr5(jjj,iii),jjj=1,3)
-> c                enddo
->                   if (energy_dec.and.wcorr5.gt.0.0d0) 
->      1                 write (iout,'(a6,4i5,0pf7.3)')
->      2                'ecorr5',i,j,i+1,j1,eello5(i,jp,i+1,jp1,jj,kk)
-5093,5094c6505,6506
-< cd                write(2,*)'ijkl',i,j,i+1,j1 
-<                 if (wcorr6.gt.0.0d0 .and. (j.ne.i+4 .or. j1.ne.i+3
----
-> cd                write(2,*)'ijkl',i,jp,i+1,jp1 
->                 if (wcorr6.gt.0.0d0 .and. (jp.ne.i+4 .or. jp1.ne.i+3
-5097c6509,6511
-<                   ecorr6=ecorr6+eello6(i,j,i+1,j1,jj,kk)
----
->                   ecorr6=ecorr6+eello6(i,jp,i+1,jp1,jj,kk)
->                   if (energy_dec) write (iout,'(a6,4i5,0pf7.3)')
->      1                'ecorr6',i,j,i+1,j1,eello6(i,jp,i+1,jp1,jj,kk)
-5101,5103c6515,6517
-< cd     &          dabs(eello4(i,j,i+1,j1,jj,kk)),
-< cd     &          dabs(eello5(i,j,i+1,j1,jj,kk)),
-< cd     &          dabs(eello6(i,j,i+1,j1,jj,kk))
----
-> cd     &          dabs(eello4(i,jp,i+1,jp1,jj,kk)),
-> cd     &          dabs(eello5(i,jp,i+1,jp1,jj,kk)),
-> cd     &          dabs(eello6(i,jp,i+1,jp1,jj,kk))
-5105,5106c6519,6520
-<      &            .and. (j.eq.i+4 .and. j1.eq.i+3)) then
-< cd                  write (iout,*) '******eturn6: i,j,i+1,j1',i,j,i+1,j1
----
->      &            .and. (jp.eq.i+4 .and. jp1.eq.i+3)) then
-> cd                  write (iout,*) '******eturn6: i,j,i+1,j1',i,jip,i+1,jp1
-5107a6522,6523
->                   if (energy_dec) write (iout,'(a6,4i5,0pf7.3)')
->      1                 'eturn6',i,j,i+1,j1,eello_turn6(i,jj,kk)
-5112,5115d6527
-<             else if (j1.eq.j) then
-< C Contacts I-J and I-(J+1) occur simultaneously. 
-< C The system loses extra energy.
-< c             ecorr=ecorr+ehbcorr(i,j,i+1,j,jj,kk,0.60D0,-0.40D0) 
-5118,5127d6529
-<           do kk=1,num_conti
-<             j1=jcont_hb(kk,i)
-< c           write (iout,*) 'i=',i,' j=',j,' i1=',i1,' j1=',j1,
-< c    &         ' jj=',jj,' kk=',kk
-<             if (j1.eq.j+1) then
-< C Contacts I-J and (I+1)-J occur simultaneously. 
-< C The system loses extra energy.
-< c             ecorr=ecorr+ehbcorr(i,j,i,j+1,jj,kk,0.60D0,-0.40D0)
-<             endif ! j1==j+1
-<           enddo ! kk
-5129a6532,6594
->       do i=1,nres
->         num_cont_hb(i)=num_cont_hb_old(i)
->       enddo
-> c                write (iout,*) "gradcorr5 in eello5"
-> c                do iii=1,nres
-> c                  write (iout,'(i5,3f10.5)') 
-> c     &             iii,(gradcorr5(jjj,iii),jjj=1,3)
-> c                enddo
->       return
->       end
-> c------------------------------------------------------------------------------
->       subroutine add_hb_contact_eello(ii,jj,itask)
->       implicit real*8 (a-h,o-z)
->       include "DIMENSIONS"
->       include "COMMON.IOUNITS"
->       integer max_cont
->       integer max_dim
->       parameter (max_cont=maxconts)
->       parameter (max_dim=70)
->       include "COMMON.CONTACTS"
->       double precision zapas(max_dim,maxconts,max_fg_procs),
->      &  zapas_recv(max_dim,maxconts,max_fg_procs)
->       common /przechowalnia/ zapas
->       integer i,j,ii,jj,iproc,itask(4),nn
-> c      write (iout,*) "itask",itask
->       do i=1,2
->         iproc=itask(i)
->         if (iproc.gt.0) then
->           do j=1,num_cont_hb(ii)
->             jjc=jcont_hb(j,ii)
-> c            write (iout,*) "send turns i",ii," j",jj," jjc",jjc
->             if (jjc.eq.jj) then
->               ncont_sent(iproc)=ncont_sent(iproc)+1
->               nn=ncont_sent(iproc)
->               zapas(1,nn,iproc)=ii
->               zapas(2,nn,iproc)=jjc
->               zapas(3,nn,iproc)=d_cont(j,ii)
->               ind=3
->               do kk=1,3
->                 ind=ind+1
->                 zapas(ind,nn,iproc)=grij_hb_cont(kk,j,ii)
->               enddo
->               do kk=1,2
->                 do ll=1,2
->                   ind=ind+1
->                   zapas(ind,nn,iproc)=a_chuj(ll,kk,j,ii)
->                 enddo
->               enddo
->               do jj=1,5
->                 do kk=1,3
->                   do ll=1,2
->                     do mm=1,2
->                       ind=ind+1
->                       zapas(ind,nn,iproc)=a_chuj_der(mm,ll,kk,jj,j,ii)
->                     enddo
->                   enddo
->                 enddo
->               enddo
->               exit
->             endif
->           enddo
->         endif
->       enddo
-5157,5161c6622,6626
-< c     write (iout,*)'Contacts have occurred for peptide groups',i,j,
-< c    &   ' and',k,l
-< c     write (iout,*)'Contacts have occurred for peptide groups',
-< c    &  i,j,' fcont:',eij,' eij',' eesij',ees0pij,ees0mij,' and ',k,l
-< c    & ,' fcont ',ekl,' eeskl',ees0pkl,ees0mkl,' ees=',ees
----
-> c      write (iout,'(2(a,2i3,a,f10.5,a,2f10.5),a,f10.5,a,$)')
-> c     & 'Contacts ',i,j,
-> c     & ' eij',eij,' eesij',ees0pij,ees0mij,' and ',k,l
-> c     & ,' fcont ',ekl,' eeskl',ees0pkl,ees0mkl,' energy=',ekont*ees,
-> c     & 'gradcorr_long'
-5163,5164c6628
-<       ecorr=ecorr+ekont*ees
-<       if (calc_grad) then
----
-> c      ecorr=ecorr+ekont*ees
-5165a6630,6633
->       coeffpees0pij=coeffp*ees0pij
->       coeffmees0mij=coeffm*ees0mij
->       coeffpees0pkl=coeffp*ees0pkl
->       coeffmees0mkl=coeffm*ees0mkl
-5167,5198c6635,6678
-<         ghalf=0.5D0*ees*ekl*gacont_hbr(ll,jj,i)
-<         gradcorr(ll,i)=gradcorr(ll,i)+ghalf
-<      &  -ekont*(coeffp*ees0pkl*gacontp_hb1(ll,jj,i)+
-<      &  coeffm*ees0mkl*gacontm_hb1(ll,jj,i))
-<         gradcorr(ll,j)=gradcorr(ll,j)+ghalf
-<      &  -ekont*(coeffp*ees0pkl*gacontp_hb2(ll,jj,i)+
-<      &  coeffm*ees0mkl*gacontm_hb2(ll,jj,i))
-<         ghalf=0.5D0*ees*eij*gacont_hbr(ll,kk,k)
-<         gradcorr(ll,k)=gradcorr(ll,k)+ghalf
-<      &  -ekont*(coeffp*ees0pij*gacontp_hb1(ll,kk,k)+
-<      &  coeffm*ees0mij*gacontm_hb1(ll,kk,k))
-<         gradcorr(ll,l)=gradcorr(ll,l)+ghalf
-<      &  -ekont*(coeffp*ees0pij*gacontp_hb2(ll,kk,k)+
-<      &  coeffm*ees0mij*gacontm_hb2(ll,kk,k))
-<       enddo
-<       do m=i+1,j-1
-<         do ll=1,3
-<           gradcorr(ll,m)=gradcorr(ll,m)+
-<      &     ees*ekl*gacont_hbr(ll,jj,i)-
-<      &     ekont*(coeffp*ees0pkl*gacontp_hb3(ll,jj,i)+
-<      &     coeffm*ees0mkl*gacontm_hb3(ll,jj,i))
-<         enddo
-<       enddo
-<       do m=k+1,l-1
-<         do ll=1,3
-<           gradcorr(ll,m)=gradcorr(ll,m)+
-<      &     ees*eij*gacont_hbr(ll,kk,k)-
-<      &     ekont*(coeffp*ees0pij*gacontp_hb3(ll,kk,k)+
-<      &     coeffm*ees0mij*gacontm_hb3(ll,kk,k))
-<         enddo
-<       enddo 
-<       endif
----
-> cgrad        ghalfi=ees*ekl*gacont_hbr(ll,jj,i)
->         gradcorr(ll,i)=gradcorr(ll,i)!+0.5d0*ghalfi
->      &  -ekont*(coeffpees0pkl*gacontp_hb1(ll,jj,i)+
->      &  coeffmees0mkl*gacontm_hb1(ll,jj,i))
->         gradcorr(ll,j)=gradcorr(ll,j)!+0.5d0*ghalfi
->      &  -ekont*(coeffpees0pkl*gacontp_hb2(ll,jj,i)+
->      &  coeffmees0mkl*gacontm_hb2(ll,jj,i))
-> cgrad        ghalfk=ees*eij*gacont_hbr(ll,kk,k)
->         gradcorr(ll,k)=gradcorr(ll,k)!+0.5d0*ghalfk
->      &  -ekont*(coeffpees0pij*gacontp_hb1(ll,kk,k)+
->      &  coeffmees0mij*gacontm_hb1(ll,kk,k))
->         gradcorr(ll,l)=gradcorr(ll,l)!+0.5d0*ghalfk
->      &  -ekont*(coeffpees0pij*gacontp_hb2(ll,kk,k)+
->      &  coeffmees0mij*gacontm_hb2(ll,kk,k))
->         gradlongij=ees*ekl*gacont_hbr(ll,jj,i)-
->      &     ekont*(coeffpees0pkl*gacontp_hb3(ll,jj,i)+
->      &     coeffmees0mkl*gacontm_hb3(ll,jj,i))
->         gradcorr_long(ll,j)=gradcorr_long(ll,j)+gradlongij
->         gradcorr_long(ll,i)=gradcorr_long(ll,i)-gradlongij
->         gradlongkl=ees*eij*gacont_hbr(ll,kk,k)-
->      &     ekont*(coeffpees0pij*gacontp_hb3(ll,kk,k)+
->      &     coeffmees0mij*gacontm_hb3(ll,kk,k))
->         gradcorr_long(ll,l)=gradcorr_long(ll,l)+gradlongkl
->         gradcorr_long(ll,k)=gradcorr_long(ll,k)-gradlongkl
-> c        write (iout,'(2f10.5,2x,$)') gradlongij,gradlongkl
->       enddo
-> c      write (iout,*)
-> cgrad      do m=i+1,j-1
-> cgrad        do ll=1,3
-> cgrad          gradcorr(ll,m)=gradcorr(ll,m)+
-> cgrad     &     ees*ekl*gacont_hbr(ll,jj,i)-
-> cgrad     &     ekont*(coeffp*ees0pkl*gacontp_hb3(ll,jj,i)+
-> cgrad     &     coeffm*ees0mkl*gacontm_hb3(ll,jj,i))
-> cgrad        enddo
-> cgrad      enddo
-> cgrad      do m=k+1,l-1
-> cgrad        do ll=1,3
-> cgrad          gradcorr(ll,m)=gradcorr(ll,m)+
-> cgrad     &     ees*eij*gacont_hbr(ll,kk,k)-
-> cgrad     &     ekont*(coeffp*ees0pij*gacontp_hb3(ll,kk,k)+
-> cgrad     &     coeffm*ees0mij*gacontm_hb3(ll,kk,k))
-> cgrad        enddo
-> cgrad      enddo 
-> c      write (iout,*) "ehbcorr",ekont*ees
-5201a6682
-> #ifdef MOMENT
-5206d6686
-<       include 'DIMENSIONS.ZSCOPT'
-5240d6719
-<       if (.not.calc_grad) return
-5264a6744
-> #endif
-5273d6752
-<       include 'DIMENSIONS.ZSCOPT'
-5289a6769,6770
-> cd      write (iout,*) "a_chujij",((a_chuj(iii,jjj,jj,i),iii=1,2),jjj=1,2)
-> cd      write (iout,*) "a_chujkl",((a_chuj(iii,jjj,kk,k),iii=1,2),jjj=1,2)
-5650d7130
-<       include 'DIMENSIONS.ZSCOPT'
-5671d7150
-<       if (calc_grad) then
-5713,5718c7192,7197
-< cold        ghalf=0.5d0*eel4*ekl*gacont_hbr(ll,jj,i)
-<         ggg1(ll)=eel4*g_contij(ll,1)
-<         ggg2(ll)=eel4*g_contij(ll,2)
-<         ghalf=0.5d0*ggg1(ll)
-< cd        ghalf=0.0d0
-<         gradcorr(ll,i)=gradcorr(ll,i)+ghalf+ekont*derx(ll,2,1)
----
-> cgrad        ggg1(ll)=eel4*g_contij(ll,1)
-> cgrad        ggg2(ll)=eel4*g_contij(ll,2)
->         glongij=eel4*g_contij(ll,1)+ekont*derx(ll,1,1)
->         glongkl=eel4*g_contij(ll,2)+ekont*derx(ll,1,2)
-> cgrad        ghalf=0.5d0*ggg1(ll)
->         gradcorr(ll,i)=gradcorr(ll,i)+ekont*derx(ll,2,1)
-5720c7199
-<         gradcorr(ll,j)=gradcorr(ll,j)+ghalf+ekont*derx(ll,4,1)
----
->         gradcorr(ll,j)=gradcorr(ll,j)+ekont*derx(ll,4,1)
-5722,5725c7201,7204
-< cold        ghalf=0.5d0*eel4*eij*gacont_hbr(ll,kk,k)
-<         ghalf=0.5d0*ggg2(ll)
-< cd        ghalf=0.0d0
-<         gradcorr(ll,k)=gradcorr(ll,k)+ghalf+ekont*derx(ll,2,2)
----
->         gradcorr_long(ll,j)=gradcorr_long(ll,j)+glongij
->         gradcorr_long(ll,i)=gradcorr_long(ll,i)-glongij
-> cgrad        ghalf=0.5d0*ggg2(ll)
->         gradcorr(ll,k)=gradcorr(ll,k)+ekont*derx(ll,2,2)
-5727c7206
-<         gradcorr(ll,l)=gradcorr(ll,l)+ghalf+ekont*derx(ll,4,2)
----
->         gradcorr(ll,l)=gradcorr(ll,l)+ekont*derx(ll,4,2)
-5728a7208,7209
->         gradcorr_long(ll,l)=gradcorr_long(ll,l)+glongkl
->         gradcorr_long(ll,k)=gradcorr_long(ll,k)-glongkl
-5730,5753c7211,7230
-< cd      goto 1112
-<       do m=i+1,j-1
-<         do ll=1,3
-< cold          gradcorr(ll,m)=gradcorr(ll,m)+eel4*ekl*gacont_hbr(ll,jj,i)
-<           gradcorr(ll,m)=gradcorr(ll,m)+ggg1(ll)
-<         enddo
-<       enddo
-<       do m=k+1,l-1
-<         do ll=1,3
-< cold          gradcorr(ll,m)=gradcorr(ll,m)+eel4*eij*gacont_hbr(ll,kk,k)
-<           gradcorr(ll,m)=gradcorr(ll,m)+ggg2(ll)
-<         enddo
-<       enddo
-< 1112  continue
-<       do m=i+2,j2
-<         do ll=1,3
-<           gradcorr(ll,m)=gradcorr(ll,m)+ekont*derx(ll,1,1)
-<         enddo
-<       enddo
-<       do m=k+2,l2
-<         do ll=1,3
-<           gradcorr(ll,m)=gradcorr(ll,m)+ekont*derx(ll,1,2)
-<         enddo
-<       enddo 
----
-> cgrad      do m=i+1,j-1
-> cgrad        do ll=1,3
-> cgrad          gradcorr(ll,m)=gradcorr(ll,m)+ggg1(ll)
-> cgrad        enddo
-> cgrad      enddo
-> cgrad      do m=k+1,l-1
-> cgrad        do ll=1,3
-> cgrad          gradcorr(ll,m)=gradcorr(ll,m)+ggg2(ll)
-> cgrad        enddo
-> cgrad      enddo
-> cgrad      do m=i+2,j2
-> cgrad        do ll=1,3
-> cgrad          gradcorr(ll,m)=gradcorr(ll,m)+ekont*derx(ll,1,1)
-> cgrad        enddo
-> cgrad      enddo
-> cgrad      do m=k+2,l2
-> cgrad        do ll=1,3
-> cgrad          gradcorr(ll,m)=gradcorr(ll,m)+ekont*derx(ll,1,2)
-> cgrad        enddo
-> cgrad      enddo 
-5757d7233
-<       endif
-5767d7242
-<       include 'DIMENSIONS.ZSCOPT'
-5847d7321
-<       if (calc_grad) then
-5886d7359
-<       endif
-5895d7367
-<       if (calc_grad) then
-5926d7397
-<       endif
-5938d7408
-<         if (calc_grad) then
-5971d7440
-<         endif
-5980d7448
-<         if (calc_grad) then
-6004d7471
-<         endif
-6015d7481
-<         if (calc_grad) then
-6048d7513
-<         endif
-6057d7521
-<         if (calc_grad) then
-6082d7545
-<       endif
-6094d7556
-<       if (calc_grad) then
-6112a7575,7578
-> C 2/11/08 AL Gradients over DC's connecting interacting sites will be
-> C        summed up outside the subrouine as for the other subroutines 
-> C        handling long-range interactions. The old code is commented out
-> C        with "cgrad" to keep track of changes.
-6114,6115c7580,7591
-<         ggg1(ll)=eel5*g_contij(ll,1)
-<         ggg2(ll)=eel5*g_contij(ll,2)
----
-> cgrad        ggg1(ll)=eel5*g_contij(ll,1)
-> cgrad        ggg2(ll)=eel5*g_contij(ll,2)
->         gradcorr5ij=eel5*g_contij(ll,1)+ekont*derx(ll,1,1)
->         gradcorr5kl=eel5*g_contij(ll,2)+ekont*derx(ll,1,2)
-> c        write (iout,'(a,3i3,a,5f8.3,2i3,a,5f8.3,a,f8.3)') 
-> c     &   "ecorr5",ll,i,j," derx",derx(ll,2,1),derx(ll,3,1),derx(ll,4,1),
-> c     &   derx(ll,5,1),k,l," derx",derx(ll,2,2),derx(ll,3,2),
-> c     &   derx(ll,4,2),derx(ll,5,2)," ekont",ekont
-> c        write (iout,'(a,3i3,a,3f8.3,2i3,a,3f8.3)') 
-> c     &   "ecorr5",ll,i,j," gradcorr5",g_contij(ll,1),derx(ll,1,1),
-> c     &   gradcorr5ij,
-> c     &   k,l," gradcorr5",g_contij(ll,2),derx(ll,1,2),gradcorr5kl
-6117c7593
-<         ghalf=0.5d0*ggg1(ll)
----
-> cgrad        ghalf=0.5d0*ggg1(ll)
-6119c7595
-<         gradcorr5(ll,i)=gradcorr5(ll,i)+ghalf+ekont*derx(ll,2,1)
----
->         gradcorr5(ll,i)=gradcorr5(ll,i)+ekont*derx(ll,2,1)
-6121c7597
-<         gradcorr5(ll,j)=gradcorr5(ll,j)+ghalf+ekont*derx(ll,4,1)
----
->         gradcorr5(ll,j)=gradcorr5(ll,j)+ekont*derx(ll,4,1)
-6122a7599,7600
->         gradcorr5_long(ll,j)=gradcorr5_long(ll,j)+gradcorr5ij
->         gradcorr5_long(ll,i)=gradcorr5_long(ll,i)-gradcorr5ij
-6124c7602
-<         ghalf=0.5d0*ggg2(ll)
----
-> cgrad        ghalf=0.5d0*ggg2(ll)
-6129a7608,7609
->         gradcorr5_long(ll,l)=gradcorr5_long(ll,l)+gradcorr5kl
->         gradcorr5_long(ll,k)=gradcorr5_long(ll,k)-gradcorr5kl
-6132,6133c7612,7613
-<       do m=i+1,j-1
-<         do ll=1,3
----
-> cgrad      do m=i+1,j-1
-> cgrad        do ll=1,3
-6135,6139c7615,7619
-<           gradcorr5(ll,m)=gradcorr5(ll,m)+ggg1(ll)
-<         enddo
-<       enddo
-<       do m=k+1,l-1
-<         do ll=1,3
----
-> cgrad          gradcorr5(ll,m)=gradcorr5(ll,m)+ggg1(ll)
-> cgrad        enddo
-> cgrad      enddo
-> cgrad      do m=k+1,l-1
-> cgrad        do ll=1,3
-6141,6143c7621,7623
-<           gradcorr5(ll,m)=gradcorr5(ll,m)+ggg2(ll)
-<         enddo
-<       enddo
----
-> cgrad          gradcorr5(ll,m)=gradcorr5(ll,m)+ggg2(ll)
-> cgrad        enddo
-> cgrad      enddo
-6145,6154c7625,7634
-<       do m=i+2,j2
-<         do ll=1,3
-<           gradcorr5(ll,m)=gradcorr5(ll,m)+ekont*derx(ll,1,1)
-<         enddo
-<       enddo
-<       do m=k+2,l2
-<         do ll=1,3
-<           gradcorr5(ll,m)=gradcorr5(ll,m)+ekont*derx(ll,1,2)
-<         enddo
-<       enddo 
----
-> cgrad      do m=i+2,j2
-> cgrad        do ll=1,3
-> cgrad          gradcorr5(ll,m)=gradcorr5(ll,m)+ekont*derx(ll,1,1)
-> cgrad        enddo
-> cgrad      enddo
-> cgrad      do m=k+2,l2
-> cgrad        do ll=1,3
-> cgrad          gradcorr5(ll,m)=gradcorr5(ll,m)+ekont*derx(ll,1,2)
-> cgrad        enddo
-> cgrad      enddo 
-6158d7637
-<       endif
-6168d7646
-<       include 'DIMENSIONS.ZSCOPT'
-6228,6233c7706,7711
-< cd      write(iout,*) 'eello6_1',eello6_1,' eel6_1_num',16*eel6_1_num
-< cd      write(iout,*) 'eello6_2',eello6_2,' eel6_2_num',16*eel6_2_num
-< cd      write(iout,*) 'eello6_3',eello6_3,' eel6_3_num',16*eel6_3_num
-< cd      write(iout,*) 'eello6_4',eello6_4,' eel6_4_num',16*eel6_4_num
-< cd      write(iout,*) 'eello6_5',eello6_5,' eel6_5_num',16*eel6_5_num
-< cd      write(iout,*) 'eello6_6',eello6_6,' eel6_6_num',16*eel6_6_num
----
-> cd      write(iout,*) 'eello6_1',eello6_1!,' eel6_1_num',16*eel6_1_num
-> cd      write(iout,*) 'eello6_2',eello6_2!,' eel6_2_num',16*eel6_2_num
-> cd      write(iout,*) 'eello6_3',eello6_3!,' eel6_3_num',16*eel6_3_num
-> cd      write(iout,*) 'eello6_4',eello6_4!,' eel6_4_num',16*eel6_4_num
-> cd      write(iout,*) 'eello6_5',eello6_5!,' eel6_5_num',16*eel6_5_num
-> cd      write(iout,*) 'eello6_6',eello6_6!,' eel6_6_num',16*eel6_6_num
-6235d7712
-<       if (calc_grad) then
-6251,6252c7728,7729
-<         ggg1(ll)=eel6*g_contij(ll,1)
-<         ggg2(ll)=eel6*g_contij(ll,2)
----
-> cgrad        ggg1(ll)=eel6*g_contij(ll,1)
-> cgrad        ggg2(ll)=eel6*g_contij(ll,2)
-6254c7731
-<         ghalf=0.5d0*ggg1(ll)
----
-> cgrad        ghalf=0.5d0*ggg1(ll)
-6256c7733,7735
-<         gradcorr6(ll,i)=gradcorr6(ll,i)+ghalf+ekont*derx(ll,2,1)
----
->         gradcorr6ij=eel6*g_contij(ll,1)+ekont*derx(ll,1,1)
->         gradcorr6kl=eel6*g_contij(ll,2)+ekont*derx(ll,1,2)
->         gradcorr6(ll,i)=gradcorr6(ll,i)+ekont*derx(ll,2,1)
-6258c7737
-<         gradcorr6(ll,j)=gradcorr6(ll,j)+ghalf+ekont*derx(ll,4,1)
----
->         gradcorr6(ll,j)=gradcorr6(ll,j)+ekont*derx(ll,4,1)
-6260c7739,7741
-<         ghalf=0.5d0*ggg2(ll)
----
->         gradcorr6_long(ll,j)=gradcorr6_long(ll,j)+gradcorr6ij
->         gradcorr6_long(ll,i)=gradcorr6_long(ll,i)-gradcorr6ij
-> cgrad        ghalf=0.5d0*ggg2(ll)
-6263c7744
-<         gradcorr6(ll,k)=gradcorr6(ll,k)+ghalf+ekont*derx(ll,2,2)
----
->         gradcorr6(ll,k)=gradcorr6(ll,k)+ekont*derx(ll,2,2)
-6265c7746
-<         gradcorr6(ll,l)=gradcorr6(ll,l)+ghalf+ekont*derx(ll,4,2)
----
->         gradcorr6(ll,l)=gradcorr6(ll,l)+ekont*derx(ll,4,2)
-6266a7748,7749
->         gradcorr6_long(ll,l)=gradcorr6_long(ll,l)+gradcorr6kl
->         gradcorr6_long(ll,k)=gradcorr6_long(ll,k)-gradcorr6kl
-6269,6270c7752,7753
-<       do m=i+1,j-1
-<         do ll=1,3
----
-> cgrad      do m=i+1,j-1
-> cgrad        do ll=1,3
-6272,6276c7755,7759
-<           gradcorr6(ll,m)=gradcorr6(ll,m)+ggg1(ll)
-<         enddo
-<       enddo
-<       do m=k+1,l-1
-<         do ll=1,3
----
-> cgrad          gradcorr6(ll,m)=gradcorr6(ll,m)+ggg1(ll)
-> cgrad        enddo
-> cgrad      enddo
-> cgrad      do m=k+1,l-1
-> cgrad        do ll=1,3
-6278,6291c7761,7774
-<           gradcorr6(ll,m)=gradcorr6(ll,m)+ggg2(ll)
-<         enddo
-<       enddo
-< 1112  continue
-<       do m=i+2,j2
-<         do ll=1,3
-<           gradcorr6(ll,m)=gradcorr6(ll,m)+ekont*derx(ll,1,1)
-<         enddo
-<       enddo
-<       do m=k+2,l2
-<         do ll=1,3
-<           gradcorr6(ll,m)=gradcorr6(ll,m)+ekont*derx(ll,1,2)
-<         enddo
-<       enddo 
----
-> cgrad          gradcorr6(ll,m)=gradcorr6(ll,m)+ggg2(ll)
-> cgrad        enddo
-> cgrad      enddo
-> cgrad1112  continue
-> cgrad      do m=i+2,j2
-> cgrad        do ll=1,3
-> cgrad          gradcorr6(ll,m)=gradcorr6(ll,m)+ekont*derx(ll,1,1)
-> cgrad        enddo
-> cgrad      enddo
-> cgrad      do m=k+2,l2
-> cgrad        do ll=1,3
-> cgrad          gradcorr6(ll,m)=gradcorr6(ll,m)+ekont*derx(ll,1,2)
-> cgrad        enddo
-> cgrad      enddo 
-6295d7777
-<       endif
-6305d7786
-<       include 'DIMENSIONS.ZSCOPT'
-6346d7826
-<       if (.not. calc_grad) return
-6411d7890
-<       include 'DIMENSIONS.ZSCOPT'
-6461d7939
-<       if (.not. calc_grad) return
-6598d8075
-<       include 'DIMENSIONS.ZSCOPT'
-6651c8128,8129
-< cd      write (2,*) 'eello6_graph3:','s1',s1,' s2',s2,' s3',s3,' s4',s4
----
-> cd      write (2,*) 'eello6_graph3:','s1',s1,' s2',s2,' s3',s3,' s4',s4,
-> cd     & "sum",-(s2+s3+s4)
-6658d8135
-<       if (.not. calc_grad) return
-6714d8190
-<       include 'DIMENSIONS.ZSCOPT'
-6794d8269
-<       if (.not. calc_grad) return
-6960d8434
-<       include 'DIMENSIONS.ZSCOPT'
-6975a8450,8453
->       s1=0.0d0
->       s8=0.0d0
->       s13=0.0d0
-> c
-7013,7014d8490
-< #else
-<       s1 = 0.0d0
-7024,7025d8499
-< #else
-<       s8=0.0d0
-7037,7038d8510
-< #else
-<       s13=0.0d0
-7047d8518
-<       if (calc_grad) then
-7048a8520,8521
->       s1d =0.0d0
->       s8d =0.0d0
-7056,7057d8528
-< #else
-<       s8d=0.0d0
-7074,7075d8544
-< #else
-<       s1d=0.0d0
-7089,7090d8557
-< #else
-<       s13d=0.0d0
-7112,7113d8578
-< #else
-<       s13d = 0.0d0
-7130,7131d8594
-< #else
-<       s1d = 0.0d0
-7140,7141d8602
-< #else
-<       s8d = 0.0d0
-7149,7150d8609
-< #else
-<       s13d = 0.0d0
-7172,7173d8630
-< #else
-<             s1d = 0.0d0
-7184,7185d8640
-< #else
-<             s8d = 0.0d0
-7248,7250c8703,8705
-<         ggg1(ll)=eel_turn6*g_contij(ll,1)
-<         ggg2(ll)=eel_turn6*g_contij(ll,2)
-<         ghalf=0.5d0*ggg1(ll)
----
-> cgrad        ggg1(ll)=eel_turn6*g_contij(ll,1)
-> cgrad        ggg2(ll)=eel_turn6*g_contij(ll,2)
-> cgrad        ghalf=0.5d0*ggg1(ll)
-7252c8707,8709
-<         gcorr6_turn(ll,i)=gcorr6_turn(ll,i)+ghalf
----
->         gturn6ij=eel_turn6*g_contij(ll,1)+ekont*derx_turn(ll,1,1)
->         gturn6kl=eel_turn6*g_contij(ll,2)+ekont*derx_turn(ll,1,2)
->         gcorr6_turn(ll,i)=gcorr6_turn(ll,i)!+ghalf
-7255c8712
-<         gcorr6_turn(ll,j)=gcorr6_turn(ll,j)+ghalf
----
->         gcorr6_turn(ll,j)=gcorr6_turn(ll,j)!+ghalf
-7258c8715,8717
-<         ghalf=0.5d0*ggg2(ll)
----
->         gcorr6_turn_long(ll,j)=gcorr6_turn_long(ll,j)+gturn6ij
->         gcorr6_turn_long(ll,i)=gcorr6_turn_long(ll,i)-gturn6ij
-> cgrad        ghalf=0.5d0*ggg2(ll)
-7260c8719
-<         gcorr6_turn(ll,k)=gcorr6_turn(ll,k)+ghalf
----
->         gcorr6_turn(ll,k)=gcorr6_turn(ll,k)!+ghalf
-7263c8722
-<         gcorr6_turn(ll,l)=gcorr6_turn(ll,l)+ghalf
----
->         gcorr6_turn(ll,l)=gcorr6_turn(ll,l)!+ghalf
-7265a8725,8726
->         gcorr6_turn_long(ll,l)=gcorr6_turn_long(ll,l)+gturn6kl
->         gcorr6_turn_long(ll,k)=gcorr6_turn_long(ll,k)-gturn6kl
-7268,7288c8729,8749
-<       do m=i+1,j-1
-<         do ll=1,3
-<           gcorr6_turn(ll,m)=gcorr6_turn(ll,m)+ggg1(ll)
-<         enddo
-<       enddo
-<       do m=k+1,l-1
-<         do ll=1,3
-<           gcorr6_turn(ll,m)=gcorr6_turn(ll,m)+ggg2(ll)
-<         enddo
-<       enddo
-< 1112  continue
-<       do m=i+2,j2
-<         do ll=1,3
-<           gcorr6_turn(ll,m)=gcorr6_turn(ll,m)+ekont*derx_turn(ll,1,1)
-<         enddo
-<       enddo
-<       do m=k+2,l2
-<         do ll=1,3
-<           gcorr6_turn(ll,m)=gcorr6_turn(ll,m)+ekont*derx_turn(ll,1,2)
-<         enddo
-<       enddo 
----
-> cgrad      do m=i+1,j-1
-> cgrad        do ll=1,3
-> cgrad          gcorr6_turn(ll,m)=gcorr6_turn(ll,m)+ggg1(ll)
-> cgrad        enddo
-> cgrad      enddo
-> cgrad      do m=k+1,l-1
-> cgrad        do ll=1,3
-> cgrad          gcorr6_turn(ll,m)=gcorr6_turn(ll,m)+ggg2(ll)
-> cgrad        enddo
-> cgrad      enddo
-> cgrad1112  continue
-> cgrad      do m=i+2,j2
-> cgrad        do ll=1,3
-> cgrad          gcorr6_turn(ll,m)=gcorr6_turn(ll,m)+ekont*derx_turn(ll,1,1)
-> cgrad        enddo
-> cgrad      enddo
-> cgrad      do m=k+2,l2
-> cgrad        do ll=1,3
-> cgrad          gcorr6_turn(ll,m)=gcorr6_turn(ll,m)+ekont*derx_turn(ll,1,2)
-> cgrad        enddo
-> cgrad      enddo 
-7292d8752
-<       endif
-7297a8758,8777
-> 
-> C-----------------------------------------------------------------------------
->       double precision function scalar(u,v)
-> !DIR$ INLINEALWAYS scalar
-> #ifndef OSF
-> cDEC$ ATTRIBUTES FORCEINLINE::scalar
-> #endif
->       implicit none
->       double precision u(3),v(3)
-> cd      double precision sc
-> cd      integer i
-> cd      sc=0.0d0
-> cd      do i=1,3
-> cd        sc=sc+u(i)*v(i)
-> cd      enddo
-> cd      scalar=sc
-> 
->       scalar=u(1)*v(1)+u(2)*v(2)+u(3)*v(3)
->       return
->       end
-7299a8780,8783
-> !DIR$ INLINEALWAYS MATVEC2
-> #ifndef OSF
-> cDEC$ ATTRIBUTES FORCEINLINE::MATVEC2
-> #endif
-7317a8802,8804
-> #ifndef OSF
-> cDEC$ ATTRIBUTES FORCEINLINE::MATMAT2  
-> #endif
-7343a8831
-> !DIR$ INLINEALWAYS scalar2
-7354a8843,8846
-> !DIR$ INLINEALWAYS transpose2
-> #ifndef OSF
-> cDEC$ ATTRIBUTES FORCEINLINE::transpose2
-> #endif
-7376a8869,8872
-> !DIR$ INLINEALWAYS prodmat3
-> #ifndef OSF
-> cDEC$ ATTRIBUTES FORCEINLINE::prodmat3
-> #endif
-7419,7431d8914
-< C-----------------------------------------------------------------------------
-<       double precision function scalar(u,v)
-<       implicit none
-<       double precision u(3),v(3)
-<       double precision sc
-<       integer i
-<       sc=0.0d0
-<       do i=1,3
-<         sc=sc+u(i)*v(i)
-<       enddo
-<       scalar=sc
-<       return
-<       end
index d633b53..fcc52c0 100644 (file)
@@ -6323,18 +6323,18 @@ c--------------------------------------------------------------------------
       logical lprn
       common /kutas/ lprn
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-C                                              
-C      Parallel       Antiparallel
-C                                             
-C          o             o         
-C         /l\           /j\       
-C        /   \         /   \      
-C       /| o |         | o |\     
-C     \ j|/k\|  /   \  |/k\|l /   
-C      \ /   \ /     \ /   \ /    
-C       o     o       o     o                
-C       i             i                     
-C
+C                                                                              C 
+C      Parallel       Antiparallel                                             C
+C                                                                              C
+C          o             o                                                     C
+C         /l\           /j\                                                    C
+C        /   \         /   \                                                   C
+C       /| o |         | o |\                                                  C
+C     \ j|/k\|  /   \  |/k\|l /                                                C
+C      \ /   \ /     \ /   \ /                                                 C
+C       o     o       o     o                                                  C
+C       i             i                                                        C
+C                                                                              C
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
       itk=itortyp(itype(k))
       s1= scalar2(AEAb1(1,2,imat),CUgb2(1,i))
@@ -6430,18 +6430,18 @@ c----------------------------------------------------------------------------
       logical lprn
       common /kutas/ lprn
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-C                                              
-C      Parallel       Antiparallel
-C                                             
-C          o             o         
-C     \   /l\           /j\   /   
-C      \ /   \         /   \ /    
-C       o| o |         | o |o     
-C     \ j|/k\|      \  |/k\|l     
-C      \ /   \       \ /   \      
-C       o             o                      
-C       i             i                     
-C
+C                                                                              C
+C      Parallel       Antiparallel                                             C
+C                                                                              C
+C          o             o                                                     C
+C     \   /l\           /j\   /                                                C
+C      \ /   \         /   \ /                                                 C
+C       o| o |         | o |o                                                  C
+C     \ j|/k\|      \  |/k\|l                                                  C
+C      \ /   \       \ /   \                                                   C
+C       o             o                                                        C
+C       i             i                                                        C
+C                                                                              C
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
 cd      write (2,*) 'eello6_graph2: i,',i,' j',j,' k',k,' l',l
 C AL 7/4/01 s1 would occur in the sixth-order moment, 
@@ -6614,18 +6614,18 @@ c----------------------------------------------------------------------------
       double precision vv(2),pizda(2,2),auxmat(2,2),auxvec(2)
       logical swap
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-C                                              
-C      Parallel       Antiparallel
-C                                             
-C          o             o         
-C         /l\   /   \   /j\       
-C        /   \ /     \ /   \      
-C       /| o |o       o| o |\     
-C       j|/k\|  /      |/k\|l /   
-C        /   \ /       /   \ /    
-C       /     o       /     o                
-C       i             i                     
-C
+C                                                                              C 
+C      Parallel       Antiparallel                                             C
+C                                                                              C
+C          o             o                                                     C
+C         /l\   /   \   /j\                                                    C
+C        /   \ /     \ /   \                                                   C
+C       /| o |o       o| o |\                                                  C
+C       j|/k\|  /      |/k\|l /                                                C
+C        /   \ /       /   \ /                                                 C
+C       /     o       /     o                                                  C
+C       i             i                                                        C
+C                                                                              C
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
 C
 C 4/7/01 AL Component s1 was removed, because it pertains to the respective 
@@ -6732,18 +6732,18 @@ c----------------------------------------------------------------------------
      & auxvec1(2),auxmat1(2,2)
       logical swap
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-C                                              
-C      Parallel       Antiparallel
-C                                             
-C          o             o         
-C         /l\   /   \   /j\       
-C        /   \ /     \ /   \      
-C       /| o |o       o| o |\     
-C     \ j|/k\|      \  |/k\|l     
-C      \ /   \       \ /   \      
-C       o     \       o     \                
-C       i             i                     
-C
+C                                                                              C 
+C      Parallel       Antiparallel                                             C
+C                                                                              C
+C          o             o                                                     C
+C         /l\   /   \   /j\                                                    C
+C        /   \ /     \ /   \                                                   C
+C       /| o |o       o| o |\                                                  C
+C     \ j|/k\|      \  |/k\|l                                                  C
+C      \ /   \       \ /   \                                                   C
+C       o     \       o     \                                                  C
+C       i             i                                                        C
+C                                                                              C
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
 C
 C 4/7/01 AL Component s1 was removed, because it pertains to the respective 
index 9ef2dff..7a21274 100644 (file)
@@ -1,4 +1,5 @@
 #include <stdlib.h>
+#include <stdio.h>
 #include <math.h>
 
 #ifdef LINUX
@@ -51,8 +52,8 @@ void _stdcall PROC_CONV(char *buf, int *i, int n)
 {
 int j;
 
-sscanf(buf,"%d",&j);
-*i=j;
+if (sscanf(buf,"%d",&j) != EOF)
+       *i=j;
 return;
 }
 
diff --git a/source/wham/src-M/xdrf.org/Makefile b/source/wham/src-M/xdrf.org/Makefile
deleted file mode 100644 (file)
index 0af9b06..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-# This make file is part of the xdrf package.
-#
-# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-#
-# 2006 modified by Cezary Czaplewski
-
-# Set C compiler and flags for ARCH
-BGLSYS = /bgl/BlueLight/ppcfloor/bglsys
-
-CC = xlc
-CPPC = xlc
-
-CFLAGS= -I. -O2 -qarch=440d -qtune=440
-
-M4     = m4
-M4FILE = RS6K.m4
-
-libxdrf.a:  libxdrf.o ftocstr.o xdr_array.o  xdr.o  xdr_float.o  xdr_stdio.o
-       ar cr libxdrf.a $?
-
-clean:
-       rm -f libxdrf.o ftocstr.o libxdrf.a 
-
-ftocstr.o: ftocstr.c
-       $(CC) $(CFLAGS) -c ftocstr.c
-
-libxdrf.o:     libxdrf.m4 $(M4FILE)
-       $(M4) $(M4FILE) libxdrf.m4 > libxdrf.c
-       $(CC) $(CFLAGS) -c libxdrf.c
-#      rm -f libxdrf.c
-
diff --git a/source/wham/src-M/xdrf.org/RS6K.m4 b/source/wham/src-M/xdrf.org/RS6K.m4
deleted file mode 100644 (file)
index 0331d97..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-divert(-1)
-undefine(`len')
-#
-# do nothing special to FORTRAN function names
-#
-define(`FUNCTION',`$1')
-#
-# FORTRAN character strings are passed as follows:
-# a pointer to the base of the string is passed in the normal
-# argument list, and the length is passed by value as an extra
-# argument, after all of the other arguments.
-#
-define(`ARGS',`($1`'undivert(1))')
-define(`SAVE',`divert(1)$1`'divert(0)')
-define(`STRING_ARG',`$1_ptr`'SAVE(`, $1_len')')
-define(`STRING_ARG_DECL',`char * $1_ptr; int $1_len')
-define(`STRING_LEN',`$1_len')
-define(`STRING_PTR',`$1_ptr')
-divert(0)
-
diff --git a/source/wham/src-M/xdrf.org/features.h b/source/wham/src-M/xdrf.org/features.h
deleted file mode 100644 (file)
index 5733b9b..0000000
+++ /dev/null
@@ -1,334 +0,0 @@
-/* Copyright (C) 1991-1993,1995-2003,2004,2005 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#ifndef        _FEATURES_H
-#define        _FEATURES_H     1
-
-/* These are defined by the user (or the compiler)
-   to specify the desired environment:
-
-   __STRICT_ANSI__     ISO Standard C.
-   _ISOC99_SOURCE      Extensions to ISO C89 from ISO C99.
-   _POSIX_SOURCE       IEEE Std 1003.1.
-   _POSIX_C_SOURCE     If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
-                       if >=199309L, add IEEE Std 1003.1b-1993;
-                       if >=199506L, add IEEE Std 1003.1c-1995;
-                       if >=200112L, all of IEEE 1003.1-2004
-   _XOPEN_SOURCE       Includes POSIX and XPG things.  Set to 500 if
-                       Single Unix conformance is wanted, to 600 for the
-                       upcoming sixth revision.
-   _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
-   _LARGEFILE_SOURCE   Some more functions for correct standard I/O.
-   _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
-   _FILE_OFFSET_BITS=N Select default filesystem interface.
-   _BSD_SOURCE         ISO C, POSIX, and 4.3BSD things.
-   _SVID_SOURCE                ISO C, POSIX, and SVID things.
-   _GNU_SOURCE         All of the above, plus GNU extensions.
-   _REENTRANT          Select additionally reentrant object.
-   _THREAD_SAFE                Same as _REENTRANT, often used by other systems.
-   _FORTIFY_SOURCE     If set to numeric value > 0 additional security
-                       measures are defined, according to level.
-
-   The `-ansi' switch to the GNU C compiler defines __STRICT_ANSI__.
-   If none of these are defined, the default is to have _SVID_SOURCE,
-   _BSD_SOURCE, and _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
-   199506L.  If more than one of these are defined, they accumulate.
-   For example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE
-   together give you ISO C, 1003.1, and 1003.2, but nothing else.
-
-   These are defined by this file and are used by the
-   header files to decide what to declare or define:
-
-   __USE_ISOC99                Define ISO C99 things.
-   __USE_POSIX         Define IEEE Std 1003.1 things.
-   __USE_POSIX2                Define IEEE Std 1003.2 things.
-   __USE_POSIX199309   Define IEEE Std 1003.1, and .1b things.
-   __USE_POSIX199506   Define IEEE Std 1003.1, .1b, .1c and .1i things.
-   __USE_XOPEN         Define XPG things.
-   __USE_XOPEN_EXTENDED        Define X/Open Unix things.
-   __USE_UNIX98                Define Single Unix V2 things.
-   __USE_XOPEN2K        Define XPG6 things.
-   __USE_LARGEFILE     Define correct standard I/O things.
-   __USE_LARGEFILE64   Define LFS things with separate names.
-   __USE_FILE_OFFSET64 Define 64bit interface as default.
-   __USE_BSD           Define 4.3BSD things.
-   __USE_SVID          Define SVID things.
-   __USE_MISC          Define things common to BSD and System V Unix.
-   __USE_GNU           Define GNU extensions.
-   __USE_REENTRANT     Define reentrant/thread-safe *_r functions.
-   __USE_FORTIFY_LEVEL Additional security measures used, according to level.
-   __FAVOR_BSD         Favor 4.3BSD things in cases of conflict.
-
-   The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
-   defined by this file unconditionally.  `__GNU_LIBRARY__' is provided
-   only for compatibility.  All new code should use the other symbols
-   to test for features.
-
-   All macros listed above as possibly being defined by this file are
-   explicitly undefined if they are not explicitly defined.
-   Feature-test macros that are not defined by the user or compiler
-   but are implied by the other feature-test macros defined (or by the
-   lack of any definitions) are defined by the file.  */
-
-
-/* Undefine everything, so we get a clean slate.  */
-#undef __USE_ISOC99
-#undef __USE_POSIX
-#undef __USE_POSIX2
-#undef __USE_POSIX199309
-#undef __USE_POSIX199506
-#undef __USE_XOPEN
-#undef __USE_XOPEN_EXTENDED
-#undef __USE_UNIX98
-#undef __USE_XOPEN2K
-#undef __USE_LARGEFILE
-#undef __USE_LARGEFILE64
-#undef __USE_FILE_OFFSET64
-#undef __USE_BSD
-#undef __USE_SVID
-#undef __USE_MISC
-#undef __USE_GNU
-#undef __USE_REENTRANT
-#undef __USE_FORTIFY_LEVEL
-#undef __FAVOR_BSD
-#undef __KERNEL_STRICT_NAMES
-
-/* Suppress kernel-name space pollution unless user expressedly asks
-   for it.  */
-#ifndef _LOOSE_KERNEL_NAMES
-# define __KERNEL_STRICT_NAMES
-#endif
-
-/* Always use ISO C things.  */
-#define        __USE_ANSI      1
-
-/* Convenience macros to test the versions of glibc and gcc.
-   Use them like this:
-   #if __GNUC_PREREQ (2,8)
-   ... code requiring gcc 2.8 or later ...
-   #endif
-   Note - they won't work for gcc1 or glibc1, since the _MINOR macros
-   were not defined then.  */
-#if defined __GNUC__ && defined __GNUC_MINOR__
-# define __GNUC_PREREQ(maj, min) \
-       ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
-#else
-# define __GNUC_PREREQ(maj, min) 0
-#endif
-
-
-/* If _BSD_SOURCE was defined by the user, favor BSD over POSIX.  */
-#if defined _BSD_SOURCE && \
-    !(defined _POSIX_SOURCE || defined _POSIX_C_SOURCE || \
-      defined _XOPEN_SOURCE || defined _XOPEN_SOURCE_EXTENDED || \
-      defined _GNU_SOURCE || defined _SVID_SOURCE)
-# define __FAVOR_BSD   1
-#endif
-
-/* If _GNU_SOURCE was defined by the user, turn on all the other features.  */
-#ifdef _GNU_SOURCE
-# undef  _ISOC99_SOURCE
-# define _ISOC99_SOURCE        1
-# undef  _POSIX_SOURCE
-# define _POSIX_SOURCE 1
-# undef  _POSIX_C_SOURCE
-# define _POSIX_C_SOURCE       199506L
-# undef  _XOPEN_SOURCE
-# define _XOPEN_SOURCE 600
-# undef  _XOPEN_SOURCE_EXTENDED
-# define _XOPEN_SOURCE_EXTENDED        1
-# undef         _LARGEFILE64_SOURCE
-# define _LARGEFILE64_SOURCE   1
-# undef  _BSD_SOURCE
-# define _BSD_SOURCE   1
-# undef  _SVID_SOURCE
-# define _SVID_SOURCE  1
-#endif
-
-/* If nothing (other than _GNU_SOURCE) is defined,
-   define _BSD_SOURCE and _SVID_SOURCE.  */
-#if (!defined __STRICT_ANSI__ && !defined _ISOC99_SOURCE && \
-     !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE && \
-     !defined _XOPEN_SOURCE && !defined _XOPEN_SOURCE_EXTENDED && \
-     !defined _BSD_SOURCE && !defined _SVID_SOURCE)
-# define _BSD_SOURCE   1
-# define _SVID_SOURCE  1
-#endif
-
-/* This is to enable the ISO C99 extension.  Also recognize the old macro
-   which was used prior to the standard acceptance.  This macro will
-   eventually go away and the features enabled by default once the ISO C99
-   standard is widely adopted.  */
-#if (defined _ISOC99_SOURCE || defined _ISOC9X_SOURCE \
-     || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L))
-# define __USE_ISOC99  1
-#endif
-
-/* If none of the ANSI/POSIX macros are defined, use POSIX.1 and POSIX.2
-   (and IEEE Std 1003.1b-1993 unless _XOPEN_SOURCE is defined).  */
-#if ((!defined __STRICT_ANSI__ || (_XOPEN_SOURCE - 0) >= 500) && \
-     !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE)
-# define _POSIX_SOURCE 1
-# if defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) < 500
-#  define _POSIX_C_SOURCE      2
-# else
-#  define _POSIX_C_SOURCE      199506L
-# endif
-#endif
-
-#if defined _POSIX_SOURCE || _POSIX_C_SOURCE >= 1 || defined _XOPEN_SOURCE
-# define __USE_POSIX   1
-#endif
-
-#if defined _POSIX_C_SOURCE && _POSIX_C_SOURCE >= 2 || defined _XOPEN_SOURCE
-# define __USE_POSIX2  1
-#endif
-
-#if (_POSIX_C_SOURCE - 0) >= 199309L
-# define __USE_POSIX199309     1
-#endif
-
-#if (_POSIX_C_SOURCE - 0) >= 199506L
-# define __USE_POSIX199506     1
-#endif
-
-#if (_POSIX_C_SOURCE - 0) >= 200112L
-# define __USE_XOPEN2K         1
-#endif
-
-#ifdef _XOPEN_SOURCE
-# define __USE_XOPEN   1
-# if (_XOPEN_SOURCE - 0) >= 500
-#  define __USE_XOPEN_EXTENDED 1
-#  define __USE_UNIX98 1
-#  undef _LARGEFILE_SOURCE
-#  define _LARGEFILE_SOURCE    1
-#  if (_XOPEN_SOURCE - 0) >= 600
-#   define __USE_XOPEN2K       1
-#   undef __USE_ISOC99
-#   define __USE_ISOC99                1
-#  endif
-# else
-#  ifdef _XOPEN_SOURCE_EXTENDED
-#   define __USE_XOPEN_EXTENDED        1
-#  endif
-# endif
-#endif
-
-#ifdef _LARGEFILE_SOURCE
-# define __USE_LARGEFILE       1
-#endif
-
-#ifdef _LARGEFILE64_SOURCE
-# define __USE_LARGEFILE64     1
-#endif
-
-#if defined _FILE_OFFSET_BITS && _FILE_OFFSET_BITS == 64
-# define __USE_FILE_OFFSET64   1
-#endif
-
-#if defined _BSD_SOURCE || defined _SVID_SOURCE
-# define __USE_MISC    1
-#endif
-
-#ifdef _BSD_SOURCE
-# define __USE_BSD     1
-#endif
-
-#ifdef _SVID_SOURCE
-# define __USE_SVID    1
-#endif
-
-#ifdef _GNU_SOURCE
-# define __USE_GNU     1
-#endif
-
-#if defined _REENTRANT || defined _THREAD_SAFE
-# define __USE_REENTRANT       1
-#endif
-
-#if _FORTIFY_SOURCE > 0 && __GNUC_PREREQ (4, 1) && __OPTIMIZE__ > 0
-# if _FORTIFY_SOURCE == 1
-#  define __USE_FORTIFY_LEVEL 1
-# elif _FORTIFY_SOURCE > 1
-#  define __USE_FORTIFY_LEVEL 2
-# endif
-#endif
-
-/* We do support the IEC 559 math functionality, real and complex.  */
-#define __STDC_IEC_559__               1
-#define __STDC_IEC_559_COMPLEX__       1
-
-/* wchar_t uses ISO 10646-1 (2nd ed., published 2000-09-15) / Unicode 3.1.  */
-#define __STDC_ISO_10646__             200009L
-
-/* This macro indicates that the installed library is the GNU C Library.
-   For historic reasons the value now is 6 and this will stay from now
-   on.  The use of this variable is deprecated.  Use __GLIBC__ and
-   __GLIBC_MINOR__ now (see below) when you want to test for a specific
-   GNU C library version and use the values in <gnu/lib-names.h> to get
-   the sonames of the shared libraries.  */
-#undef  __GNU_LIBRARY__
-#define __GNU_LIBRARY__ 6
-
-/* Major and minor version number of the GNU C library package.  Use
-   these macros to test for features in specific releases.  */
-#define        __GLIBC__       2
-#define        __GLIBC_MINOR__ 3
-
-#define __GLIBC_PREREQ(maj, min) \
-       ((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min))
-
-/* Decide whether a compiler supports the long long datatypes.  */
-#if defined __GNUC__ \
-    || (defined __PGI && defined __i386__ ) \
-    || (defined __INTEL_COMPILER && (defined __i386__ || defined __ia64__)) \
-    || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)
-# define __GLIBC_HAVE_LONG_LONG        1
-#endif
-
-/* This is here only because every header file already includes this one.  */
-#ifndef __ASSEMBLER__
-# ifndef _SYS_CDEFS_H
-#  include <sys/cdefs.h>
-# endif
-
-/* If we don't have __REDIRECT, prototypes will be missing if
-   __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64]. */
-# if defined __USE_FILE_OFFSET64 && !defined __REDIRECT
-#  define __USE_LARGEFILE      1
-#  define __USE_LARGEFILE64    1
-# endif
-
-#endif /* !ASSEMBLER */
-
-/* Decide whether we can define 'extern inline' functions in headers.  */
-#if __GNUC_PREREQ (2, 7) && defined __OPTIMIZE__ \
-    && !defined __OPTIMIZE_SIZE__ && !defined __NO_INLINE__
-# define __USE_EXTERN_INLINES  1
-#endif
-
-
-/* This is here only because every header file already includes this one.
-   Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
-   <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
-   that will always return failure (and set errno to ENOSYS).  */
-#include <gnu/stubs.h>
-
-
-#endif /* features.h  */
diff --git a/source/wham/src-M/xdrf.org/ftocstr.c b/source/wham/src-M/xdrf.org/ftocstr.c
deleted file mode 100644 (file)
index ed2113f..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-int ftocstr(ds, dl, ss, sl)
-    char *ds, *ss;      /* dst, src ptrs */
-    int dl;             /* dst max len */
-    int sl;             /* src len */
-{
-    char *p;
-
-    for (p = ss + sl; --p >= ss && *p == ' '; ) ;
-    sl = p - ss + 1;
-    dl--;
-    ds[0] = 0;
-    if (sl > dl)
-        return 1;
-    while (sl--)
-       (*ds++ = *ss++);
-    *ds = '\0';
-    return 0;
-}
-
-
-int ctofstr(ds, dl, ss)
-       char *ds;               /* dest space */
-       int dl;                 /* max dest length */
-       char *ss;               /* src string (0-term) */
-{
-    while (dl && *ss) {
-       *ds++ = *ss++;
-       dl--;
-    }
-    while (dl--)
-       *ds++ = ' ';
-    return 0;
-}
diff --git a/source/wham/src-M/xdrf.org/libxdrf.c b/source/wham/src-M/xdrf.org/libxdrf.c
deleted file mode 100644 (file)
index 7fce1d1..0000000
+++ /dev/null
@@ -1,1236 +0,0 @@
-
-
-/*____________________________________________________________________________
- |
- | libxdrf - portable fortran interface to xdr. some xdr routines
- |          are C routines for compressed coordinates
- |
- | version 1.1
- |
- | This collection of routines is intended to write and read
- | data in a portable way to a file, so data written on one type
- | of machine can be read back on a different type.
- |
- | all fortran routines use an integer 'xdrid', which is an id to the
- | current xdr file, and is set by xdrfopen.
- | most routines have in integer 'ret' which is the return value.
- | The value of 'ret' is zero on failure, and most of the time one
- | on succes.
- |
- | There are three routines useful for C users:
- |  xdropen(), xdrclose(), xdr3dfcoord().
- | The first two replace xdrstdio_create and xdr_destroy, and *must* be
- | used when you plan to use xdr3dfcoord(). (they are also a bit
- | easier to interface). For writing data other than compressed coordinates 
- | you should use the standard C xdr routines (see xdr man page)
- |
- | xdrfopen(xdrid, filename, mode, ret)
- |     character *(*) filename
- |     character *(*) mode
- |
- |     this will open the file with the given filename (string)
- |     and the given mode, it returns an id in xdrid, which is
- |     to be used in all other calls to xdrf routines.
- |     mode is 'w' to create, or update an file, for all other
- |     values of mode the file is opened for reading
- |
- |     you need to call xdrfclose to flush the output and close
- |     the file.
- |     Note that you should not use xdrstdio_create, which comes with the
- |     standard xdr library
- |
- | xdrfclose(xdrid, ret)
- |     flush the data to the file, and closes the file;
- |     You should not use xdr_destroy (which comes standard with
- |     the xdr libraries.
- |
- | xdrfbool(xdrid, bp, ret)
- |     integer pb
- |
- |     This filter produces values of either 1 or 0    
- |
- | xdrfchar(xdrid, cp, ret)
- |     character cp
- |
- |     filter that translate between characters and their xdr representation
- |     Note that the characters in not compressed and occupies 4 bytes.
- |
- | xdrfdouble(xdrid, dp, ret)
- |     double dp
- |
- |     read/write a double.
- |
- | xdrffloat(xdrid, fp, ret)
- |     float fp
- |
- |     read/write a float.
- |
- | xdrfint(xdrid, ip, ret)
- |     integer ip
- |
- |     read/write integer.
- |
- | xdrflong(xdrid, lp, ret)
- |     integer lp
- |
- |     this routine has a possible portablility problem due to 64 bits longs.
- |
- | xdrfshort(xdrid, sp, ret)
- |     integer *2 sp
- |
- | xdrfstring(xdrid, sp, maxsize, ret)
- |     character *(*)
- |     integer maxsize
- |
- |     read/write a string, with maximum length given by maxsize
- |
- | xdrfwrapstring(xdris, sp, ret)
- |     character *(*)
- |
- |     read/write a string (it is the same as xdrfstring accept that it finds
- |     the stringlength itself.
- |
- | xdrfvector(xdrid, cp, size, xdrfproc, ret)
- |     character *(*)
- |     integer size
- |     external xdrfproc
- |
- |     read/write an array pointed to by cp, with number of elements
- |     defined by 'size'. the routine 'xdrfproc' is the name
- |     of one of the above routines to read/write data (like xdrfdouble)
- |     In contrast with the c-version you don't need to specify the
- |     byte size of an element.
- |     xdrfstring is not allowed here (it is in the c version)
- |     
- | xdrf3dfcoord(xdrid, fp, size, precision, ret)
- |     real (*) fp
- |     real precision
- |     integer size
- |
- |     this is *NOT* a standard xdr routine. I named it this way, because
- |     it invites people to use the other xdr routines.
- |     It is introduced to store specifically 3d coordinates of molecules
- |     (as found in molecular dynamics) and it writes it in a compressed way.
- |     It starts by multiplying all numbers by precision and
- |     rounding the result to integer. effectively converting
- |     all floating point numbers to fixed point.
- |     it uses an algorithm for compression that is optimized for
- |     molecular data, but could be used for other 3d coordinates
- |     as well. There is subtantial overhead involved, so call this
- |     routine only if you have a large number of coordinates to read/write
- |
- | ________________________________________________________________________
- |
- | Below are the routines to be used by C programmers. Use the 'normal'
- | xdr routines to write integers, floats, etc (see man xdr)   
- |
- | int xdropen(XDR *xdrs, const char *filename, const char *type)
- |     This will open the file with the given filename and the 
- |     given mode. You should pass it an allocated XDR struct
- |     in xdrs, to be used in all other calls to xdr routines.
- |     Mode is 'w' to create, or update an file, and for all 
- |     other values of mode the file is opened for reading. 
- |     You need to call xdrclose to flush the output and close
- |     the file.
- |
- |     Note that you should not use xdrstdio_create, which
- |     comes with the standard xdr library.
- |
- | int xdrclose(XDR *xdrs)
- |     Flush the data to the file, and close the file;
- |     You should not use xdr_destroy (which comes standard
- |     with the xdr libraries).
- |      
- | int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision)
- |     This is \fInot\fR a standard xdr routine. I named it this 
- |     way, because it invites people to use the other xdr 
- |     routines.
- |
- |     (c) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-*/     
-
-
-#include <limits.h>
-#include <malloc.h>
-#include <math.h>
-/* #include <rpc/rpc.h>
-#include <rpc/xdr.h> */
-#include "xdr.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include "xdrf.h"
-
-int ftocstr(char *, int, char *, int);
-int ctofstr(char *, int, char *);
-
-#define MAXID 20
-static FILE *xdrfiles[MAXID];
-static XDR *xdridptr[MAXID];
-static char xdrmodes[MAXID];
-static unsigned int cnt;
-
-typedef void (* xdrfproc) (int *, void *, int *);
-
-void
-xdrfbool (xdrid, pb, ret)
-int *xdrid, *ret;
-int *pb;
-{
-       *ret = xdr_bool(xdridptr[*xdrid], (bool_t *) pb);
-       cnt += sizeof(int);
-}
-
-void
-xdrfchar (xdrid, cp, ret)
-int *xdrid, *ret;
-char *cp;
-{
-       *ret = xdr_char(xdridptr[*xdrid], cp);
-       cnt += sizeof(char);
-}
-
-void
-xdrfdouble (xdrid, dp, ret)
-int *xdrid, *ret;
-double *dp;
-{
-       *ret = xdr_double(xdridptr[*xdrid], dp);
-       cnt += sizeof(double);
-}
-
-void
-xdrffloat (xdrid, fp, ret)
-int *xdrid, *ret;
-float *fp;
-{
-       *ret = xdr_float(xdridptr[*xdrid], fp);
-       cnt += sizeof(float);
-}
-
-void
-xdrfint (xdrid, ip, ret)
-int *xdrid, *ret;
-int *ip;
-{
-       *ret = xdr_int(xdridptr[*xdrid], ip);
-       cnt += sizeof(int);
-}
-
-void
-xdrflong (xdrid, lp, ret)
-int *xdrid, *ret;
-long *lp;
-{
-       *ret = xdr_long(xdridptr[*xdrid], lp);
-       cnt += sizeof(long);
-}
-
-void
-xdrfshort (xdrid, sp, ret)
-int *xdrid, *ret;
-short *sp;
-{
-       *ret = xdr_short(xdridptr[*xdrid], sp);
-       cnt += sizeof(sp);
-}
-
-void
-xdrfuchar (xdrid, ucp, ret)
-int *xdrid, *ret;
-char *ucp;
-{
-       *ret = xdr_u_char(xdridptr[*xdrid], ucp);
-       cnt += sizeof(char);
-}
-
-void
-xdrfulong (xdrid, ulp, ret)
-int *xdrid, *ret;
-unsigned long *ulp;
-{
-       *ret = xdr_u_long(xdridptr[*xdrid], ulp);
-       cnt += sizeof(unsigned long);
-}
-
-void
-xdrfushort (xdrid, usp, ret)
-int *xdrid, *ret;
-unsigned short *usp;
-{
-       *ret = xdr_u_short(xdridptr[*xdrid], usp);
-       cnt += sizeof(unsigned short);
-}
-
-void 
-xdrf3dfcoord (xdrid, fp, size, precision, ret)
-int *xdrid, *ret;
-float *fp;
-int *size;
-float *precision;
-{
-       *ret = xdr3dfcoord(xdridptr[*xdrid], fp, size, precision);
-}
-
-void
-xdrfstring (xdrid, sp_ptr, maxsize, ret, sp_len)
-int *xdrid, *ret;
-char * sp_ptr; int sp_len;
-int *maxsize;
-{
-       char *tsp;
-
-       tsp = (char*) malloc(((sp_len) + 1) * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, *maxsize+1, sp_ptr, sp_len)) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int) *maxsize);
-       ctofstr( sp_ptr, sp_len, tsp);
-       cnt += *maxsize;
-       free(tsp);
-}
-
-void
-xdrfwrapstring (xdrid,  sp_ptr, ret, sp_len)
-int *xdrid, *ret;
-char * sp_ptr; int sp_len;
-{
-       char *tsp;
-       int maxsize;
-       maxsize = (sp_len) + 1;
-       tsp = (char*) malloc(maxsize * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, maxsize, sp_ptr, sp_len)) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int)maxsize);
-       ctofstr( sp_ptr, sp_len, tsp);
-       cnt += maxsize;
-       free(tsp);
-}
-
-void
-xdrfopaque (xdrid, cp, ccnt, ret)
-int *xdrid, *ret;
-caddr_t *cp;
-int *ccnt;
-{
-       *ret = xdr_opaque(xdridptr[*xdrid], (caddr_t)*cp, (u_int)*ccnt);
-       cnt += *ccnt;
-}
-
-void
-xdrfsetpos (xdrid, pos, ret)
-int *xdrid, *ret;
-int *pos;
-{
-       *ret = xdr_setpos(xdridptr[*xdrid], (u_int) *pos);
-}
-
-void
-xdrf (xdrid, pos)
-int *xdrid, *pos;
-{
-       *pos = xdr_getpos(xdridptr[*xdrid]);
-}
-
-void
-xdrfvector (xdrid, cp, size, elproc, ret)
-int *xdrid, *ret;
-char *cp;
-int *size;
-xdrfproc elproc;
-{
-       int lcnt;
-       cnt = 0;
-       for (lcnt = 0; lcnt < *size; lcnt++) {
-               elproc(xdrid, (cp+cnt) , ret);
-       }
-}
-
-
-void
-xdrfclose (xdrid, ret)
-int *xdrid;
-int *ret;
-{
-       *ret = xdrclose(xdridptr[*xdrid]);
-       cnt = 0;
-}
-
-void
-xdrfopen (xdrid,  fp_ptr, mode_ptr, ret, fp_len, mode_len)
-int *xdrid;
-char * fp_ptr; int fp_len;
-char * mode_ptr; int mode_len;
-int *ret;
-{
-       char fname[512];
-       char fmode[3];
-
-       if (ftocstr(fname, sizeof(fname), fp_ptr, fp_len)) {
-               *ret = 0;
-       }
-       if (ftocstr(fmode, sizeof(fmode), mode_ptr,
-                       mode_len)) {
-               *ret = 0;
-       }
-
-       *xdrid = xdropen(NULL, fname, fmode);
-       if (*xdrid == 0)
-               *ret = 0;
-       else 
-               *ret = 1;       
-}
-
-/*___________________________________________________________________________
- |
- | what follows are the C routines for opening, closing xdr streams
- | and the routine to read/write compressed coordinates together
- | with some routines to assist in this task (those are marked
- | static and cannot be called from user programs)
-*/
-#define MAXABS INT_MAX-2
-
-#ifndef MIN
-#define MIN(x,y) ((x) < (y) ? (x):(y))
-#endif
-#ifndef MAX
-#define MAX(x,y) ((x) > (y) ? (x):(y))
-#endif
-#ifndef SQR
-#define SQR(x) ((x)*(x))
-#endif
-static int magicints[] = {
-    0, 0, 0, 0, 0, 0, 0, 0, 0,
-    8, 10, 12, 16, 20, 25, 32, 40, 50, 64,
-    80, 101, 128, 161, 203, 256, 322, 406, 512, 645,
-    812, 1024, 1290, 1625, 2048, 2580, 3250, 4096, 5060, 6501,
-    8192, 10321, 13003, 16384, 20642, 26007, 32768, 41285, 52015, 65536,
-    82570, 104031, 131072, 165140, 208063, 262144, 330280, 416127, 524287, 660561,
-    832255, 1048576, 1321122, 1664510, 2097152, 2642245, 3329021, 4194304, 5284491, 6658042,
-    8388607, 10568983, 13316085, 16777216 };
-
-#define FIRSTIDX 9
-/* note that magicints[FIRSTIDX-1] == 0 */
-#define LASTIDX (sizeof(magicints) / sizeof(*magicints))
-
-
-/*__________________________________________________________________________
- |
- | xdropen - open xdr file
- |
- | This versions differs from xdrstdio_create, because I need to know
- | the state of the file (read or write) so I can use xdr3dfcoord
- | in eigther read or write mode, and the file descriptor
- | so I can close the file (something xdr_destroy doesn't do).
- |
-*/
-
-int xdropen(XDR *xdrs, const char *filename, const char *type) {
-    static int init_done = 0;
-    enum xdr_op lmode;
-    const char *type1;
-    int xdrid;
-    
-    if (init_done == 0) {
-       for (xdrid = 1; xdrid < MAXID; xdrid++) {
-           xdridptr[xdrid] = NULL;
-       }
-       init_done = 1;
-    }
-    xdrid = 1;
-    while (xdrid < MAXID && xdridptr[xdrid] != NULL) {
-       xdrid++;
-    }
-    if (xdrid == MAXID) {
-       return 0;
-    }
-    if (*type == 'w' || *type == 'W') {
-           type = "w+";
-           type1 = "a+";
-           lmode = XDR_ENCODE;
-    } else {
-           type = "r";
-            type1 = "r";
-           lmode = XDR_DECODE;
-    }
-    xdrfiles[xdrid] = fopen(filename, type1);
-    if (xdrfiles[xdrid] == NULL) {
-       xdrs = NULL;
-       return 0;
-    }
-    xdrmodes[xdrid] = *type;
-    /* next test isn't usefull in the case of C language
-     * but is used for the Fortran interface
-     * (C users are expected to pass the address of an already allocated
-     * XDR staructure)
-     */
-    if (xdrs == NULL) {
-       xdridptr[xdrid] = (XDR *) malloc(sizeof(XDR));
-       xdrstdio_create(xdridptr[xdrid], xdrfiles[xdrid], lmode);
-    } else {
-       xdridptr[xdrid] = xdrs;
-       xdrstdio_create(xdrs, xdrfiles[xdrid], lmode);
-    }
-    return xdrid;
-}
-
-/*_________________________________________________________________________
- |
- | xdrclose - close a xdr file
- |
- | This will flush the xdr buffers, and destroy the xdr stream.
- | It also closes the associated file descriptor (this is *not*
- | done by xdr_destroy).
- |
-*/
-int xdrclose(XDR *xdrs) {
-    int xdrid;
-    
-    if (xdrs == NULL) {
-       fprintf(stderr, "xdrclose: passed a NULL pointer\n");
-       exit(1);
-    }
-    for (xdrid = 1; xdrid < MAXID; xdrid++) {
-       if (xdridptr[xdrid] == xdrs) {
-           
-           xdr_destroy(xdrs);
-           fclose(xdrfiles[xdrid]);
-           xdridptr[xdrid] = NULL;
-           return 1;
-       }
-    } 
-    fprintf(stderr, "xdrclose: no such open xdr file\n");
-    exit(1);
-    
-}
-
-/*____________________________________________________________________________
- |
- | sendbits - encode num into buf using the specified number of bits
- |
- | This routines appends the value of num to the bits already present in
- | the array buf. You need to give it the number of bits to use and you
- | better make sure that this number of bits is enough to hold the value
- | Also num must be positive.
- |
-*/
-
-static void sendbits(int buf[], int num_of_bits, int num) {
-    
-    unsigned int cnt, lastbyte;
-    int lastbits;
-    unsigned char * cbuf;
-    
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = (unsigned int) buf[0];
-    lastbits = buf[1];
-    lastbyte =(unsigned int) buf[2];
-    while (num_of_bits >= 8) {
-       lastbyte = (lastbyte << 8) | ((num >> (num_of_bits -8)) /* & 0xff*/);
-       cbuf[cnt++] = lastbyte >> lastbits;
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       lastbyte = (lastbyte << num_of_bits) | num;
-       lastbits += num_of_bits;
-       if (lastbits >= 8) {
-           lastbits -= 8;
-           cbuf[cnt++] = lastbyte >> lastbits;
-       }
-    }
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    if (lastbits>0) {
-       cbuf[cnt] = lastbyte << (8 - lastbits);
-    }
-}
-
-/*_________________________________________________________________________
- |
- | sizeofint - calculate bitsize of an integer
- |
- | return the number of bits needed to store an integer with given max size
- |
-*/
-
-static int sizeofint(const int size) {
-    unsigned int num = 1;
-    int num_of_bits = 0;
-    
-    while (size >= num && num_of_bits < 32) {
-       num_of_bits++;
-       num <<= 1;
-    }
-    return num_of_bits;
-}
-
-/*___________________________________________________________________________
- |
- | sizeofints - calculate 'bitsize' of compressed ints
- |
- | given the number of small unsigned integers and the maximum value
- | return the number of bits needed to read or write them with the
- | routines receiveints and sendints. You need this parameter when
- | calling these routines. Note that for many calls I can use
- | the variable 'smallidx' which is exactly the number of bits, and
- | So I don't need to call 'sizeofints for those calls.
-*/
-
-static int sizeofints( const int num_of_ints, unsigned int sizes[]) {
-    int i, num;
-    unsigned int num_of_bytes, num_of_bits, bytes[32], bytecnt, tmp;
-    num_of_bytes = 1;
-    bytes[0] = 1;
-    num_of_bits = 0;
-    for (i=0; i < num_of_ints; i++) {  
-       tmp = 0;
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    num = 1;
-    num_of_bytes--;
-    while (bytes[num_of_bytes] >= num) {
-       num_of_bits++;
-       num *= 2;
-    }
-    return num_of_bits + num_of_bytes * 8;
-
-}
-    
-/*____________________________________________________________________________
- |
- | sendints - send a small set of small integers in compressed format
- |
- | this routine is used internally by xdr3dfcoord, to send a set of
- | small integers to the buffer. 
- | Multiplication with fixed (specified maximum ) sizes is used to get
- | to one big, multibyte integer. Allthough the routine could be
- | modified to handle sizes bigger than 16777216, or more than just
- | a few integers, this is not done, because the gain in compression
- | isn't worth the effort. Note that overflowing the multiplication
- | or the byte buffer (32 bytes) is unchecked and causes bad results.
- |
- */
-static void sendints(int buf[], const int num_of_ints, const int num_of_bits,
-       unsigned int sizes[], unsigned int nums[]) {
-
-    int i;
-    unsigned int bytes[32], num_of_bytes, bytecnt, tmp;
-
-    tmp = nums[0];
-    num_of_bytes = 0;
-    do {
-       bytes[num_of_bytes++] = tmp & 0xff;
-       tmp >>= 8;
-    } while (tmp != 0);
-
-    for (i = 1; i < num_of_ints; i++) {
-       if (nums[i] >= sizes[i]) {
-           fprintf(stderr,"major breakdown in sendints num %d doesn't "
-                   "match size %d\n", nums[i], sizes[i]);
-           exit(1);
-       }
-       /* use one step multiply */    
-       tmp = nums[i];
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    if (num_of_bits >= num_of_bytes * 8) {
-       for (i = 0; i < num_of_bytes; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits - num_of_bytes * 8, 0);
-    } else {
-       for (i = 0; i < num_of_bytes-1; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits- (num_of_bytes -1) * 8, bytes[i]);
-    }
-}
-
-
-/*___________________________________________________________________________
- |
- | receivebits - decode number from buf using specified number of bits
- | 
- | extract the number of bits from the array buf and construct an integer
- | from it. Return that value.
- |
-*/
-
-static int receivebits(int buf[], int num_of_bits) {
-
-    int cnt, num; 
-    unsigned int lastbits, lastbyte;
-    unsigned char * cbuf;
-    int mask = (1 << num_of_bits) -1;
-
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = buf[0];
-    lastbits = (unsigned int) buf[1];
-    lastbyte = (unsigned int) buf[2];
-    
-    num = 0;
-    while (num_of_bits >= 8) {
-       lastbyte = ( lastbyte << 8 ) | cbuf[cnt++];
-       num |=  (lastbyte >> lastbits) << (num_of_bits - 8);
-       num_of_bits -=8;
-    }
-    if (num_of_bits > 0) {
-       if (lastbits < num_of_bits) {
-           lastbits += 8;
-           lastbyte = (lastbyte << 8) | cbuf[cnt++];
-       }
-       lastbits -= num_of_bits;
-       num |= (lastbyte >> lastbits) & ((1 << num_of_bits) -1);
-    }
-    num &= mask;
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    return num; 
-}
-
-/*____________________________________________________________________________
- |
- | receiveints - decode 'small' integers from the buf array
- |
- | this routine is the inverse from sendints() and decodes the small integers
- | written to buf by calculating the remainder and doing divisions with
- | the given sizes[]. You need to specify the total number of bits to be
- | used from buf in num_of_bits.
- |
-*/
-
-static void receiveints(int buf[], const int num_of_ints, int num_of_bits,
-       unsigned int sizes[], int nums[]) {
-    int bytes[32];
-    int i, j, num_of_bytes, p, num;
-    
-    bytes[1] = bytes[2] = bytes[3] = 0;
-    num_of_bytes = 0;
-    while (num_of_bits > 8) {
-       bytes[num_of_bytes++] = receivebits(buf, 8);
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       bytes[num_of_bytes++] = receivebits(buf, num_of_bits);
-    }
-    for (i = num_of_ints-1; i > 0; i--) {
-       num = 0;
-       for (j = num_of_bytes-1; j >=0; j--) {
-           num = (num << 8) | bytes[j];
-           p = num / sizes[i];
-           bytes[j] = p;
-           num = num - p * sizes[i];
-       }
-       nums[i] = num;
-    }
-    nums[0] = bytes[0] | (bytes[1] << 8) | (bytes[2] << 16) | (bytes[3] << 24);
-}
-    
-/*____________________________________________________________________________
- |
- | xdr3dfcoord - read or write compressed 3d coordinates to xdr file.
- |
- | this routine reads or writes (depending on how you opened the file with
- | xdropen() ) a large number of 3d coordinates (stored in *fp).
- | The number of coordinates triplets to write is given by *size. On
- | read this number may be zero, in which case it reads as many as were written
- | or it may specify the number if triplets to read (which should match the
- | number written).
- | Compression is achieved by first converting all floating numbers to integer
- | using multiplication by *precision and rounding to the nearest integer.
- | Then the minimum and maximum value are calculated to determine the range.
- | The limited range of integers so found, is used to compress the coordinates.
- | In addition the differences between succesive coordinates is calculated.
- | If the difference happens to be 'small' then only the difference is saved,
- | compressing the data even more. The notion of 'small' is changed dynamically
- | and is enlarged or reduced whenever needed or possible.
- | Extra compression is achieved in the case of GROMOS and coordinates of
- | water molecules. GROMOS first writes out the Oxygen position, followed by
- | the two hydrogens. In order to make the differences smaller (and thereby
- | compression the data better) the order is changed into first one hydrogen
- | then the oxygen, followed by the other hydrogen. This is rather special, but
- | it shouldn't harm in the general case.
- |
- */
-int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) {
-    
-
-    static int *ip = NULL;
-    static int oldsize;
-    static int *buf;
-
-    int minint[3], maxint[3], mindiff, *lip, diff;
-    int lint1, lint2, lint3, oldlint1, oldlint2, oldlint3, smallidx;
-    int minidx, maxidx;
-    unsigned sizeint[3], sizesmall[3], bitsizeint[3], size3, *luip;
-    int flag, k;
-    int small, smaller, larger, i, is_small, is_smaller, run, prevrun;
-    float *lfp, lf;
-    int tmp, *thiscoord,  prevcoord[3];
-    unsigned int tmpcoord[30];
-
-    int bufsize, xdrid, lsize;
-    unsigned int bitsize;
-    float inv_precision;
-    int errval = 1;
-
-    /* find out if xdrs is opened for reading or for writing */
-    xdrid = 0;
-    while (xdridptr[xdrid] != xdrs) {
-       xdrid++;
-       if (xdrid >= MAXID) {
-           fprintf(stderr, "xdr error. no open xdr stream\n");
-           exit (1);
-       }
-    }
-    if (xdrmodes[xdrid] == 'w') {
-
-       /* xdrs is open for writing */
-
-       if (xdr_int(xdrs, size) == 0)
-           return 0;
-       size3 = *size * 3;
-       /* when the number of coordinates is small, don't try to compress; just
-        * write them as floats using xdr_vector
-        */
-       if (*size <= 9 ) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       /* buf[0-2] are special and do not contain actual data */
-       buf[0] = buf[1] = buf[2] = 0;
-       minint[0] = minint[1] = minint[2] = INT_MAX;
-       maxint[0] = maxint[1] = maxint[2] = INT_MIN;
-       prevrun = -1;
-       lfp = fp;
-       lip = ip;
-       mindiff = INT_MAX;
-       oldlint1 = oldlint2 = oldlint3 = 0;
-       while(lfp < fp + size3 ) {
-           /* find nearest integer */
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint1 = lf;
-           if (lint1 < minint[0]) minint[0] = lint1;
-           if (lint1 > maxint[0]) maxint[0] = lint1;
-           *lip++ = lint1;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint2 = lf;
-           if (lint2 < minint[1]) minint[1] = lint2;
-           if (lint2 > maxint[1]) maxint[1] = lint2;
-           *lip++ = lint2;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint3 = lf;
-           if (lint3 < minint[2]) minint[2] = lint3;
-           if (lint3 > maxint[2]) maxint[2] = lint3;
-           *lip++ = lint3;
-           lfp++;
-           diff = abs(oldlint1-lint1)+abs(oldlint2-lint2)+abs(oldlint3-lint3);
-           if (diff < mindiff && lfp > fp + 3)
-               mindiff = diff;
-           oldlint1 = lint1;
-           oldlint2 = lint2;
-           oldlint3 = lint3;
-       }
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-       
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-       
-       if ((float)maxint[0] - (float)minint[0] >= MAXABS ||
-               (float)maxint[1] - (float)minint[1] >= MAXABS ||
-               (float)maxint[2] - (float)minint[2] >= MAXABS) {
-           /* turning value in unsigned by subtracting minint
-            * would cause overflow
-            */
-           errval = 0;
-       }
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       lip = ip;
-       luip = (unsigned int *) ip;
-       smallidx = FIRSTIDX;
-       while (smallidx < LASTIDX && magicints[smallidx] < mindiff) {
-           smallidx++;
-       }
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-       larger = magicints[maxidx] / 2;
-       i = 0;
-       while (i < *size) {
-           is_small = 0;
-           thiscoord = (int *)(luip) + i * 3;
-           if (smallidx < maxidx && i >= 1 &&
-                   abs(thiscoord[0] - prevcoord[0]) < larger &&
-                   abs(thiscoord[1] - prevcoord[1]) < larger &&
-                   abs(thiscoord[2] - prevcoord[2]) < larger) {
-               is_smaller = 1;
-           } else if (smallidx > minidx) {
-               is_smaller = -1;
-           } else {
-               is_smaller = 0;
-           }
-           if (i + 1 < *size) {
-               if (abs(thiscoord[0] - thiscoord[3]) < small &&
-                       abs(thiscoord[1] - thiscoord[4]) < small &&
-                       abs(thiscoord[2] - thiscoord[5]) < small) {
-                   /* interchange first with second atom for better
-                    * compression of water molecules
-                    */
-                   tmp = thiscoord[0]; thiscoord[0] = thiscoord[3];
-                       thiscoord[3] = tmp;
-                   tmp = thiscoord[1]; thiscoord[1] = thiscoord[4];
-                       thiscoord[4] = tmp;
-                   tmp = thiscoord[2]; thiscoord[2] = thiscoord[5];
-                       thiscoord[5] = tmp;
-                   is_small = 1;
-               }
-    
-           }
-           tmpcoord[0] = thiscoord[0] - minint[0];
-           tmpcoord[1] = thiscoord[1] - minint[1];
-           tmpcoord[2] = thiscoord[2] - minint[2];
-           if (bitsize == 0) {
-               sendbits(buf, bitsizeint[0], tmpcoord[0]);
-               sendbits(buf, bitsizeint[1], tmpcoord[1]);
-               sendbits(buf, bitsizeint[2], tmpcoord[2]);
-           } else {
-               sendints(buf, 3, bitsize, sizeint, tmpcoord);
-           }
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           thiscoord = thiscoord + 3;
-           i++;
-           
-           run = 0;
-           if (is_small == 0 && is_smaller == -1)
-               is_smaller = 0;
-           while (is_small && run < 8*3) {
-               if (is_smaller == -1 && (
-                       SQR(thiscoord[0] - prevcoord[0]) +
-                       SQR(thiscoord[1] - prevcoord[1]) +
-                       SQR(thiscoord[2] - prevcoord[2]) >= smaller * smaller)) {
-                   is_smaller = 0;
-               }
-
-               tmpcoord[run++] = thiscoord[0] - prevcoord[0] + small;
-               tmpcoord[run++] = thiscoord[1] - prevcoord[1] + small;
-               tmpcoord[run++] = thiscoord[2] - prevcoord[2] + small;
-               
-               prevcoord[0] = thiscoord[0];
-               prevcoord[1] = thiscoord[1];
-               prevcoord[2] = thiscoord[2];
-
-               i++;
-               thiscoord = thiscoord + 3;
-               is_small = 0;
-               if (i < *size &&
-                       abs(thiscoord[0] - prevcoord[0]) < small &&
-                       abs(thiscoord[1] - prevcoord[1]) < small &&
-                       abs(thiscoord[2] - prevcoord[2]) < small) {
-                   is_small = 1;
-               }
-           }
-           if (run != prevrun || is_smaller != 0) {
-               prevrun = run;
-               sendbits(buf, 1, 1); /* flag the change in run-length */
-               sendbits(buf, 5, run+is_smaller+1);
-           } else {
-               sendbits(buf, 1, 0); /* flag the fact that runlength did not change */
-           }
-           for (k=0; k < run; k+=3) {
-               sendints(buf, 3, smallidx, sizesmall, &tmpcoord[k]);    
-           }
-           if (is_smaller != 0) {
-               smallidx += is_smaller;
-               if (is_smaller < 0) {
-                   small = smaller;
-                   smaller = magicints[smallidx-1] / 2;
-               } else {
-                   smaller = small;
-                   small = magicints[smallidx] / 2;
-               }
-               sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-           }
-       }
-       if (buf[1] != 0) buf[0]++;;
-       xdr_int(xdrs, &(buf[0])); /* buf[0] holds the length in bytes */
-       return errval * (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]));
-    } else {
-       
-       /* xdrs is open for reading */
-       
-       if (xdr_int(xdrs, &lsize) == 0) 
-           return 0;
-       if (*size != 0 && lsize != *size) {
-           fprintf(stderr, "wrong number of coordinates in xdr3dfcoor; "
-                   "%d arg vs %d in file", *size, lsize);
-       }
-       *size = lsize;
-       size3 = *size * 3;
-       if (*size <= 9) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-               
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       larger = magicints[maxidx];
-
-       /* buf[0] holds the length in bytes */
-
-       if (xdr_int(xdrs, &(buf[0])) == 0)
-           return 0;
-       if (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]) == 0)
-           return 0;
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       lfp = fp;
-       inv_precision = 1.0 / * precision;
-       run = 0;
-       i = 0;
-       lip = ip;
-       while ( i < lsize ) {
-           thiscoord = (int *)(lip) + i * 3;
-
-           if (bitsize == 0) {
-               thiscoord[0] = receivebits(buf, bitsizeint[0]);
-               thiscoord[1] = receivebits(buf, bitsizeint[1]);
-               thiscoord[2] = receivebits(buf, bitsizeint[2]);
-           } else {
-               receiveints(buf, 3, bitsize, sizeint, thiscoord);
-           }
-           
-           i++;
-           thiscoord[0] += minint[0];
-           thiscoord[1] += minint[1];
-           thiscoord[2] += minint[2];
-           
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           
-          
-           flag = receivebits(buf, 1);
-           is_smaller = 0;
-           if (flag == 1) {
-               run = receivebits(buf, 5);
-               is_smaller = run % 3;
-               run -= is_smaller;
-               is_smaller--;
-           }
-           if (run > 0) {
-               thiscoord += 3;
-               for (k = 0; k < run; k+=3) {
-                   receiveints(buf, 3, smallidx, sizesmall, thiscoord);
-                   i++;
-                   thiscoord[0] += prevcoord[0] - small;
-                   thiscoord[1] += prevcoord[1] - small;
-                   thiscoord[2] += prevcoord[2] - small;
-                   if (k == 0) {
-                       /* interchange first with second atom for better
-                        * compression of water molecules
-                        */
-                       tmp = thiscoord[0]; thiscoord[0] = prevcoord[0];
-                               prevcoord[0] = tmp;
-                       tmp = thiscoord[1]; thiscoord[1] = prevcoord[1];
-                               prevcoord[1] = tmp;
-                       tmp = thiscoord[2]; thiscoord[2] = prevcoord[2];
-                               prevcoord[2] = tmp;
-                       *lfp++ = prevcoord[0] * inv_precision;
-                       *lfp++ = prevcoord[1] * inv_precision;
-                       *lfp++ = prevcoord[2] * inv_precision;
-                   } else {
-                       prevcoord[0] = thiscoord[0];
-                       prevcoord[1] = thiscoord[1];
-                       prevcoord[2] = thiscoord[2];
-                   }
-                   *lfp++ = thiscoord[0] * inv_precision;
-                   *lfp++ = thiscoord[1] * inv_precision;
-                   *lfp++ = thiscoord[2] * inv_precision;
-               }
-           } else {
-               *lfp++ = thiscoord[0] * inv_precision;
-               *lfp++ = thiscoord[1] * inv_precision;
-               *lfp++ = thiscoord[2] * inv_precision;          
-           }
-           smallidx += is_smaller;
-           if (is_smaller < 0) {
-               small = smaller;
-               if (smallidx > FIRSTIDX) {
-                   smaller = magicints[smallidx - 1] /2;
-               } else {
-                   smaller = 0;
-               }
-           } else if (is_smaller > 0) {
-               smaller = small;
-               small = magicints[smallidx] / 2;
-           }
-           sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       }
-    }
-    return 1;
-}
-
-
-   
diff --git a/source/wham/src-M/xdrf.org/libxdrf.m4 b/source/wham/src-M/xdrf.org/libxdrf.m4
deleted file mode 100644 (file)
index 8704af2..0000000
+++ /dev/null
@@ -1,1234 +0,0 @@
-/*____________________________________________________________________________
- |
- | libxdrf - portable fortran interface to xdr. some xdr routines
- |          are C routines for compressed coordinates
- |
- | version 1.1
- |
- | This collection of routines is intended to write and read
- | data in a portable way to a file, so data written on one type
- | of machine can be read back on a different type.
- |
- | all fortran routines use an integer 'xdrid', which is an id to the
- | current xdr file, and is set by xdrfopen.
- | most routines have in integer 'ret' which is the return value.
- | The value of 'ret' is zero on failure, and most of the time one
- | on succes.
- |
- | There are three routines useful for C users:
- |  xdropen(), xdrclose(), xdr3dfcoord().
- | The first two replace xdrstdio_create and xdr_destroy, and *must* be
- | used when you plan to use xdr3dfcoord(). (they are also a bit
- | easier to interface). For writing data other than compressed coordinates 
- | you should use the standard C xdr routines (see xdr man page)
- |
- | xdrfopen(xdrid, filename, mode, ret)
- |     character *(*) filename
- |     character *(*) mode
- |
- |     this will open the file with the given filename (string)
- |     and the given mode, it returns an id in xdrid, which is
- |     to be used in all other calls to xdrf routines.
- |     mode is 'w' to create, or update an file, for all other
- |     values of mode the file is opened for reading
- |
- |     you need to call xdrfclose to flush the output and close
- |     the file.
- |     Note that you should not use xdrstdio_create, which comes with the
- |     standard xdr library
- |
- | xdrfclose(xdrid, ret)
- |     flush the data to the file, and closes the file;
- |     You should not use xdr_destroy (which comes standard with
- |     the xdr libraries.
- |
- | xdrfbool(xdrid, bp, ret)
- |     integer pb
- |
- |     This filter produces values of either 1 or 0    
- |
- | xdrfchar(xdrid, cp, ret)
- |     character cp
- |
- |     filter that translate between characters and their xdr representation
- |     Note that the characters in not compressed and occupies 4 bytes.
- |
- | xdrfdouble(xdrid, dp, ret)
- |     double dp
- |
- |     read/write a double.
- |
- | xdrffloat(xdrid, fp, ret)
- |     float fp
- |
- |     read/write a float.
- |
- | xdrfint(xdrid, ip, ret)
- |     integer ip
- |
- |     read/write integer.
- |
- | xdrflong(xdrid, lp, ret)
- |     integer lp
- |
- |     this routine has a possible portablility problem due to 64 bits longs.
- |
- | xdrfshort(xdrid, sp, ret)
- |     integer *2 sp
- |
- | xdrfstring(xdrid, sp, maxsize, ret)
- |     character *(*)
- |     integer maxsize
- |
- |     read/write a string, with maximum length given by maxsize
- |
- | xdrfwrapstring(xdris, sp, ret)
- |     character *(*)
- |
- |     read/write a string (it is the same as xdrfstring accept that it finds
- |     the stringlength itself.
- |
- | xdrfvector(xdrid, cp, size, xdrfproc, ret)
- |     character *(*)
- |     integer size
- |     external xdrfproc
- |
- |     read/write an array pointed to by cp, with number of elements
- |     defined by 'size'. the routine 'xdrfproc' is the name
- |     of one of the above routines to read/write data (like xdrfdouble)
- |     In contrast with the c-version you don't need to specify the
- |     byte size of an element.
- |     xdrfstring is not allowed here (it is in the c version)
- |     
- | xdrf3dfcoord(xdrid, fp, size, precision, ret)
- |     real (*) fp
- |     real precision
- |     integer size
- |
- |     this is *NOT* a standard xdr routine. I named it this way, because
- |     it invites people to use the other xdr routines.
- |     It is introduced to store specifically 3d coordinates of molecules
- |     (as found in molecular dynamics) and it writes it in a compressed way.
- |     It starts by multiplying all numbers by precision and
- |     rounding the result to integer. effectively converting
- |     all floating point numbers to fixed point.
- |     it uses an algorithm for compression that is optimized for
- |     molecular data, but could be used for other 3d coordinates
- |     as well. There is subtantial overhead involved, so call this
- |     routine only if you have a large number of coordinates to read/write
- |
- | ________________________________________________________________________
- |
- | Below are the routines to be used by C programmers. Use the 'normal'
- | xdr routines to write integers, floats, etc (see man xdr)   
- |
- | int xdropen(XDR *xdrs, const char *filename, const char *type)
- |     This will open the file with the given filename and the 
- |     given mode. You should pass it an allocated XDR struct
- |     in xdrs, to be used in all other calls to xdr routines.
- |     Mode is 'w' to create, or update an file, and for all 
- |     other values of mode the file is opened for reading. 
- |     You need to call xdrclose to flush the output and close
- |     the file.
- |
- |     Note that you should not use xdrstdio_create, which
- |     comes with the standard xdr library.
- |
- | int xdrclose(XDR *xdrs)
- |     Flush the data to the file, and close the file;
- |     You should not use xdr_destroy (which comes standard
- |     with the xdr libraries).
- |      
- | int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision)
- |     This is \fInot\fR a standard xdr routine. I named it this 
- |     way, because it invites people to use the other xdr 
- |     routines.
- |
- |     (c) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-*/     
-
-
-#include <limits.h>
-#include <malloc.h>
-#include <math.h>
-/* #include <rpc/rpc.h>
-#include <rpc/xdr.h> */
-#include "xdr.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include "xdrf.h"
-
-int ftocstr(char *, int, char *, int);
-int ctofstr(char *, int, char *);
-
-#define MAXID 20
-static FILE *xdrfiles[MAXID];
-static XDR *xdridptr[MAXID];
-static char xdrmodes[MAXID];
-static unsigned int cnt;
-
-typedef void (* FUNCTION(xdrfproc)) (int *, void *, int *);
-
-void
-FUNCTION(xdrfbool) ARGS(`xdrid, pb, ret')
-int *xdrid, *ret;
-int *pb;
-{
-       *ret = xdr_bool(xdridptr[*xdrid], (bool_t *) pb);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrfchar) ARGS(`xdrid, cp, ret')
-int *xdrid, *ret;
-char *cp;
-{
-       *ret = xdr_char(xdridptr[*xdrid], cp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfdouble) ARGS(`xdrid, dp, ret')
-int *xdrid, *ret;
-double *dp;
-{
-       *ret = xdr_double(xdridptr[*xdrid], dp);
-       cnt += sizeof(double);
-}
-
-void
-FUNCTION(xdrffloat) ARGS(`xdrid, fp, ret')
-int *xdrid, *ret;
-float *fp;
-{
-       *ret = xdr_float(xdridptr[*xdrid], fp);
-       cnt += sizeof(float);
-}
-
-void
-FUNCTION(xdrfint) ARGS(`xdrid, ip, ret')
-int *xdrid, *ret;
-int *ip;
-{
-       *ret = xdr_int(xdridptr[*xdrid], ip);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrflong) ARGS(`xdrid, lp, ret')
-int *xdrid, *ret;
-long *lp;
-{
-       *ret = xdr_long(xdridptr[*xdrid], lp);
-       cnt += sizeof(long);
-}
-
-void
-FUNCTION(xdrfshort) ARGS(`xdrid, sp, ret')
-int *xdrid, *ret;
-short *sp;
-{
-       *ret = xdr_short(xdridptr[*xdrid], sp);
-       cnt += sizeof(sp);
-}
-
-void
-FUNCTION(xdrfuchar) ARGS(`xdrid, ucp, ret')
-int *xdrid, *ret;
-char *ucp;
-{
-       *ret = xdr_u_char(xdridptr[*xdrid], ucp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfulong) ARGS(`xdrid, ulp, ret')
-int *xdrid, *ret;
-unsigned long *ulp;
-{
-       *ret = xdr_u_long(xdridptr[*xdrid], ulp);
-       cnt += sizeof(unsigned long);
-}
-
-void
-FUNCTION(xdrfushort) ARGS(`xdrid, usp, ret')
-int *xdrid, *ret;
-unsigned short *usp;
-{
-       *ret = xdr_u_short(xdridptr[*xdrid], usp);
-       cnt += sizeof(unsigned short);
-}
-
-void 
-FUNCTION(xdrf3dfcoord) ARGS(`xdrid, fp, size, precision, ret')
-int *xdrid, *ret;
-float *fp;
-int *size;
-float *precision;
-{
-       *ret = xdr3dfcoord(xdridptr[*xdrid], fp, size, precision);
-}
-
-void
-FUNCTION(xdrfstring) ARGS(`xdrid, STRING_ARG(sp), maxsize, ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-int *maxsize;
-{
-       char *tsp;
-
-       tsp = (char*) malloc(((STRING_LEN(sp)) + 1) * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, *maxsize+1, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int) *maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += *maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfwrapstring) ARGS(`xdrid,  STRING_ARG(sp), ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-{
-       char *tsp;
-       int maxsize;
-       maxsize = (STRING_LEN(sp)) + 1;
-       tsp = (char*) malloc(maxsize * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, maxsize, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int)maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfopaque) ARGS(`xdrid, cp, ccnt, ret')
-int *xdrid, *ret;
-caddr_t *cp;
-int *ccnt;
-{
-       *ret = xdr_opaque(xdridptr[*xdrid], (caddr_t)*cp, (u_int)*ccnt);
-       cnt += *ccnt;
-}
-
-void
-FUNCTION(xdrfsetpos) ARGS(`xdrid, pos, ret')
-int *xdrid, *ret;
-int *pos;
-{
-       *ret = xdr_setpos(xdridptr[*xdrid], (u_int) *pos);
-}
-
-void
-FUNCTION(xdrf) ARGS(`xdrid, pos')
-int *xdrid, *pos;
-{
-       *pos = xdr_getpos(xdridptr[*xdrid]);
-}
-
-void
-FUNCTION(xdrfvector) ARGS(`xdrid, cp, size, elproc, ret')
-int *xdrid, *ret;
-char *cp;
-int *size;
-FUNCTION(xdrfproc) elproc;
-{
-       int lcnt;
-       cnt = 0;
-       for (lcnt = 0; lcnt < *size; lcnt++) {
-               elproc(xdrid, (cp+cnt) , ret);
-       }
-}
-
-
-void
-FUNCTION(xdrfclose) ARGS(`xdrid, ret')
-int *xdrid;
-int *ret;
-{
-       *ret = xdrclose(xdridptr[*xdrid]);
-       cnt = 0;
-}
-
-void
-FUNCTION(xdrfopen) ARGS(`xdrid,  STRING_ARG(fp), STRING_ARG(mode), ret')
-int *xdrid;
-STRING_ARG_DECL(fp);
-STRING_ARG_DECL(mode);
-int *ret;
-{
-       char fname[512];
-       char fmode[3];
-
-       if (ftocstr(fname, sizeof(fname), STRING_PTR(fp), STRING_LEN(fp))) {
-               *ret = 0;
-       }
-       if (ftocstr(fmode, sizeof(fmode), STRING_PTR(mode),
-                       STRING_LEN(mode))) {
-               *ret = 0;
-       }
-
-       *xdrid = xdropen(NULL, fname, fmode);
-       if (*xdrid == 0)
-               *ret = 0;
-       else 
-               *ret = 1;       
-}
-
-/*___________________________________________________________________________
- |
- | what follows are the C routines for opening, closing xdr streams
- | and the routine to read/write compressed coordinates together
- | with some routines to assist in this task (those are marked
- | static and cannot be called from user programs)
-*/
-#define MAXABS INT_MAX-2
-
-#ifndef MIN
-#define MIN(x,y) ((x) < (y) ? (x):(y))
-#endif
-#ifndef MAX
-#define MAX(x,y) ((x) > (y) ? (x):(y))
-#endif
-#ifndef SQR
-#define SQR(x) ((x)*(x))
-#endif
-static int magicints[] = {
-    0, 0, 0, 0, 0, 0, 0, 0, 0,
-    8, 10, 12, 16, 20, 25, 32, 40, 50, 64,
-    80, 101, 128, 161, 203, 256, 322, 406, 512, 645,
-    812, 1024, 1290, 1625, 2048, 2580, 3250, 4096, 5060, 6501,
-    8192, 10321, 13003, 16384, 20642, 26007, 32768, 41285, 52015, 65536,
-    82570, 104031, 131072, 165140, 208063, 262144, 330280, 416127, 524287, 660561,
-    832255, 1048576, 1321122, 1664510, 2097152, 2642245, 3329021, 4194304, 5284491, 6658042,
-    8388607, 10568983, 13316085, 16777216 };
-
-#define FIRSTIDX 9
-/* note that magicints[FIRSTIDX-1] == 0 */
-#define LASTIDX (sizeof(magicints) / sizeof(*magicints))
-
-
-/*__________________________________________________________________________
- |
- | xdropen - open xdr file
- |
- | This versions differs from xdrstdio_create, because I need to know
- | the state of the file (read or write) so I can use xdr3dfcoord
- | in eigther read or write mode, and the file descriptor
- | so I can close the file (something xdr_destroy doesn't do).
- |
-*/
-
-int xdropen(XDR *xdrs, const char *filename, const char *type) {
-    static int init_done = 0;
-    enum xdr_op lmode;
-    const char *type1;
-    int xdrid;
-    
-    if (init_done == 0) {
-       for (xdrid = 1; xdrid < MAXID; xdrid++) {
-           xdridptr[xdrid] = NULL;
-       }
-       init_done = 1;
-    }
-    xdrid = 1;
-    while (xdrid < MAXID && xdridptr[xdrid] != NULL) {
-       xdrid++;
-    }
-    if (xdrid == MAXID) {
-       return 0;
-    }
-    if (*type == 'w' || *type == 'W') {
-           type = "w+";
-           type1 = "a+";
-           lmode = XDR_ENCODE;
-    } else {
-           type = "r";
-            type1 = "r";
-           lmode = XDR_DECODE;
-    }
-    xdrfiles[xdrid] = fopen(filename, type1);
-    if (xdrfiles[xdrid] == NULL) {
-       xdrs = NULL;
-       return 0;
-    }
-    xdrmodes[xdrid] = *type;
-    /* next test isn't usefull in the case of C language
-     * but is used for the Fortran interface
-     * (C users are expected to pass the address of an already allocated
-     * XDR staructure)
-     */
-    if (xdrs == NULL) {
-       xdridptr[xdrid] = (XDR *) malloc(sizeof(XDR));
-       xdrstdio_create(xdridptr[xdrid], xdrfiles[xdrid], lmode);
-    } else {
-       xdridptr[xdrid] = xdrs;
-       xdrstdio_create(xdrs, xdrfiles[xdrid], lmode);
-    }
-    return xdrid;
-}
-
-/*_________________________________________________________________________
- |
- | xdrclose - close a xdr file
- |
- | This will flush the xdr buffers, and destroy the xdr stream.
- | It also closes the associated file descriptor (this is *not*
- | done by xdr_destroy).
- |
-*/
-int xdrclose(XDR *xdrs) {
-    int xdrid;
-    
-    if (xdrs == NULL) {
-       fprintf(stderr, "xdrclose: passed a NULL pointer\n");
-       exit(1);
-    }
-    for (xdrid = 1; xdrid < MAXID; xdrid++) {
-       if (xdridptr[xdrid] == xdrs) {
-           
-           xdr_destroy(xdrs);
-           fclose(xdrfiles[xdrid]);
-           xdridptr[xdrid] = NULL;
-           return 1;
-       }
-    } 
-    fprintf(stderr, "xdrclose: no such open xdr file\n");
-    exit(1);
-    
-}
-
-/*____________________________________________________________________________
- |
- | sendbits - encode num into buf using the specified number of bits
- |
- | This routines appends the value of num to the bits already present in
- | the array buf. You need to give it the number of bits to use and you
- | better make sure that this number of bits is enough to hold the value
- | Also num must be positive.
- |
-*/
-
-static void sendbits(int buf[], int num_of_bits, int num) {
-    
-    unsigned int cnt, lastbyte;
-    int lastbits;
-    unsigned char * cbuf;
-    
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = (unsigned int) buf[0];
-    lastbits = buf[1];
-    lastbyte =(unsigned int) buf[2];
-    while (num_of_bits >= 8) {
-       lastbyte = (lastbyte << 8) | ((num >> (num_of_bits -8)) /* & 0xff*/);
-       cbuf[cnt++] = lastbyte >> lastbits;
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       lastbyte = (lastbyte << num_of_bits) | num;
-       lastbits += num_of_bits;
-       if (lastbits >= 8) {
-           lastbits -= 8;
-           cbuf[cnt++] = lastbyte >> lastbits;
-       }
-    }
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    if (lastbits>0) {
-       cbuf[cnt] = lastbyte << (8 - lastbits);
-    }
-}
-
-/*_________________________________________________________________________
- |
- | sizeofint - calculate bitsize of an integer
- |
- | return the number of bits needed to store an integer with given max size
- |
-*/
-
-static int sizeofint(const int size) {
-    unsigned int num = 1;
-    int num_of_bits = 0;
-    
-    while (size >= num && num_of_bits < 32) {
-       num_of_bits++;
-       num <<= 1;
-    }
-    return num_of_bits;
-}
-
-/*___________________________________________________________________________
- |
- | sizeofints - calculate 'bitsize' of compressed ints
- |
- | given the number of small unsigned integers and the maximum value
- | return the number of bits needed to read or write them with the
- | routines receiveints and sendints. You need this parameter when
- | calling these routines. Note that for many calls I can use
- | the variable 'smallidx' which is exactly the number of bits, and
- | So I don't need to call 'sizeofints for those calls.
-*/
-
-static int sizeofints( const int num_of_ints, unsigned int sizes[]) {
-    int i, num;
-    unsigned int num_of_bytes, num_of_bits, bytes[32], bytecnt, tmp;
-    num_of_bytes = 1;
-    bytes[0] = 1;
-    num_of_bits = 0;
-    for (i=0; i < num_of_ints; i++) {  
-       tmp = 0;
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    num = 1;
-    num_of_bytes--;
-    while (bytes[num_of_bytes] >= num) {
-       num_of_bits++;
-       num *= 2;
-    }
-    return num_of_bits + num_of_bytes * 8;
-
-}
-    
-/*____________________________________________________________________________
- |
- | sendints - send a small set of small integers in compressed format
- |
- | this routine is used internally by xdr3dfcoord, to send a set of
- | small integers to the buffer. 
- | Multiplication with fixed (specified maximum ) sizes is used to get
- | to one big, multibyte integer. Allthough the routine could be
- | modified to handle sizes bigger than 16777216, or more than just
- | a few integers, this is not done, because the gain in compression
- | isn't worth the effort. Note that overflowing the multiplication
- | or the byte buffer (32 bytes) is unchecked and causes bad results.
- |
- */
-static void sendints(int buf[], const int num_of_ints, const int num_of_bits,
-       unsigned int sizes[], unsigned int nums[]) {
-
-    int i;
-    unsigned int bytes[32], num_of_bytes, bytecnt, tmp;
-
-    tmp = nums[0];
-    num_of_bytes = 0;
-    do {
-       bytes[num_of_bytes++] = tmp & 0xff;
-       tmp >>= 8;
-    } while (tmp != 0);
-
-    for (i = 1; i < num_of_ints; i++) {
-       if (nums[i] >= sizes[i]) {
-           fprintf(stderr,"major breakdown in sendints num %d doesn't "
-                   "match size %d\n", nums[i], sizes[i]);
-           exit(1);
-       }
-       /* use one step multiply */    
-       tmp = nums[i];
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    if (num_of_bits >= num_of_bytes * 8) {
-       for (i = 0; i < num_of_bytes; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits - num_of_bytes * 8, 0);
-    } else {
-       for (i = 0; i < num_of_bytes-1; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits- (num_of_bytes -1) * 8, bytes[i]);
-    }
-}
-
-
-/*___________________________________________________________________________
- |
- | receivebits - decode number from buf using specified number of bits
- | 
- | extract the number of bits from the array buf and construct an integer
- | from it. Return that value.
- |
-*/
-
-static int receivebits(int buf[], int num_of_bits) {
-
-    int cnt, num; 
-    unsigned int lastbits, lastbyte;
-    unsigned char * cbuf;
-    int mask = (1 << num_of_bits) -1;
-
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = buf[0];
-    lastbits = (unsigned int) buf[1];
-    lastbyte = (unsigned int) buf[2];
-    
-    num = 0;
-    while (num_of_bits >= 8) {
-       lastbyte = ( lastbyte << 8 ) | cbuf[cnt++];
-       num |=  (lastbyte >> lastbits) << (num_of_bits - 8);
-       num_of_bits -=8;
-    }
-    if (num_of_bits > 0) {
-       if (lastbits < num_of_bits) {
-           lastbits += 8;
-           lastbyte = (lastbyte << 8) | cbuf[cnt++];
-       }
-       lastbits -= num_of_bits;
-       num |= (lastbyte >> lastbits) & ((1 << num_of_bits) -1);
-    }
-    num &= mask;
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    return num; 
-}
-
-/*____________________________________________________________________________
- |
- | receiveints - decode 'small' integers from the buf array
- |
- | this routine is the inverse from sendints() and decodes the small integers
- | written to buf by calculating the remainder and doing divisions with
- | the given sizes[]. You need to specify the total number of bits to be
- | used from buf in num_of_bits.
- |
-*/
-
-static void receiveints(int buf[], const int num_of_ints, int num_of_bits,
-       unsigned int sizes[], int nums[]) {
-    int bytes[32];
-    int i, j, num_of_bytes, p, num;
-    
-    bytes[1] = bytes[2] = bytes[3] = 0;
-    num_of_bytes = 0;
-    while (num_of_bits > 8) {
-       bytes[num_of_bytes++] = receivebits(buf, 8);
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       bytes[num_of_bytes++] = receivebits(buf, num_of_bits);
-    }
-    for (i = num_of_ints-1; i > 0; i--) {
-       num = 0;
-       for (j = num_of_bytes-1; j >=0; j--) {
-           num = (num << 8) | bytes[j];
-           p = num / sizes[i];
-           bytes[j] = p;
-           num = num - p * sizes[i];
-       }
-       nums[i] = num;
-    }
-    nums[0] = bytes[0] | (bytes[1] << 8) | (bytes[2] << 16) | (bytes[3] << 24);
-}
-    
-/*____________________________________________________________________________
- |
- | xdr3dfcoord - read or write compressed 3d coordinates to xdr file.
- |
- | this routine reads or writes (depending on how you opened the file with
- | xdropen() ) a large number of 3d coordinates (stored in *fp).
- | The number of coordinates triplets to write is given by *size. On
- | read this number may be zero, in which case it reads as many as were written
- | or it may specify the number if triplets to read (which should match the
- | number written).
- | Compression is achieved by first converting all floating numbers to integer
- | using multiplication by *precision and rounding to the nearest integer.
- | Then the minimum and maximum value are calculated to determine the range.
- | The limited range of integers so found, is used to compress the coordinates.
- | In addition the differences between succesive coordinates is calculated.
- | If the difference happens to be 'small' then only the difference is saved,
- | compressing the data even more. The notion of 'small' is changed dynamically
- | and is enlarged or reduced whenever needed or possible.
- | Extra compression is achieved in the case of GROMOS and coordinates of
- | water molecules. GROMOS first writes out the Oxygen position, followed by
- | the two hydrogens. In order to make the differences smaller (and thereby
- | compression the data better) the order is changed into first one hydrogen
- | then the oxygen, followed by the other hydrogen. This is rather special, but
- | it shouldn't harm in the general case.
- |
- */
-int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) {
-    
-
-    static int *ip = NULL;
-    static int oldsize;
-    static int *buf;
-
-    int minint[3], maxint[3], mindiff, *lip, diff;
-    int lint1, lint2, lint3, oldlint1, oldlint2, oldlint3, smallidx;
-    int minidx, maxidx;
-    unsigned sizeint[3], sizesmall[3], bitsizeint[3], size3, *luip;
-    int flag, k;
-    int small, smaller, larger, i, is_small, is_smaller, run, prevrun;
-    float *lfp, lf;
-    int tmp, *thiscoord,  prevcoord[3];
-    unsigned int tmpcoord[30];
-
-    int bufsize, xdrid, lsize;
-    unsigned int bitsize;
-    float inv_precision;
-    int errval = 1;
-
-    /* find out if xdrs is opened for reading or for writing */
-    xdrid = 0;
-    while (xdridptr[xdrid] != xdrs) {
-       xdrid++;
-       if (xdrid >= MAXID) {
-           fprintf(stderr, "xdr error. no open xdr stream\n");
-           exit (1);
-       }
-    }
-    if (xdrmodes[xdrid] == 'w') {
-
-       /* xdrs is open for writing */
-
-       if (xdr_int(xdrs, size) == 0)
-           return 0;
-       size3 = *size * 3;
-       /* when the number of coordinates is small, don't try to compress; just
-        * write them as floats using xdr_vector
-        */
-       if (*size <= 9 ) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       /* buf[0-2] are special and do not contain actual data */
-       buf[0] = buf[1] = buf[2] = 0;
-       minint[0] = minint[1] = minint[2] = INT_MAX;
-       maxint[0] = maxint[1] = maxint[2] = INT_MIN;
-       prevrun = -1;
-       lfp = fp;
-       lip = ip;
-       mindiff = INT_MAX;
-       oldlint1 = oldlint2 = oldlint3 = 0;
-       while(lfp < fp + size3 ) {
-           /* find nearest integer */
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint1 = lf;
-           if (lint1 < minint[0]) minint[0] = lint1;
-           if (lint1 > maxint[0]) maxint[0] = lint1;
-           *lip++ = lint1;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint2 = lf;
-           if (lint2 < minint[1]) minint[1] = lint2;
-           if (lint2 > maxint[1]) maxint[1] = lint2;
-           *lip++ = lint2;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint3 = lf;
-           if (lint3 < minint[2]) minint[2] = lint3;
-           if (lint3 > maxint[2]) maxint[2] = lint3;
-           *lip++ = lint3;
-           lfp++;
-           diff = abs(oldlint1-lint1)+abs(oldlint2-lint2)+abs(oldlint3-lint3);
-           if (diff < mindiff && lfp > fp + 3)
-               mindiff = diff;
-           oldlint1 = lint1;
-           oldlint2 = lint2;
-           oldlint3 = lint3;
-       }
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-       
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-       
-       if ((float)maxint[0] - (float)minint[0] >= MAXABS ||
-               (float)maxint[1] - (float)minint[1] >= MAXABS ||
-               (float)maxint[2] - (float)minint[2] >= MAXABS) {
-           /* turning value in unsigned by subtracting minint
-            * would cause overflow
-            */
-           errval = 0;
-       }
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       lip = ip;
-       luip = (unsigned int *) ip;
-       smallidx = FIRSTIDX;
-       while (smallidx < LASTIDX && magicints[smallidx] < mindiff) {
-           smallidx++;
-       }
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-       larger = magicints[maxidx] / 2;
-       i = 0;
-       while (i < *size) {
-           is_small = 0;
-           thiscoord = (int *)(luip) + i * 3;
-           if (smallidx < maxidx && i >= 1 &&
-                   abs(thiscoord[0] - prevcoord[0]) < larger &&
-                   abs(thiscoord[1] - prevcoord[1]) < larger &&
-                   abs(thiscoord[2] - prevcoord[2]) < larger) {
-               is_smaller = 1;
-           } else if (smallidx > minidx) {
-               is_smaller = -1;
-           } else {
-               is_smaller = 0;
-           }
-           if (i + 1 < *size) {
-               if (abs(thiscoord[0] - thiscoord[3]) < small &&
-                       abs(thiscoord[1] - thiscoord[4]) < small &&
-                       abs(thiscoord[2] - thiscoord[5]) < small) {
-                   /* interchange first with second atom for better
-                    * compression of water molecules
-                    */
-                   tmp = thiscoord[0]; thiscoord[0] = thiscoord[3];
-                       thiscoord[3] = tmp;
-                   tmp = thiscoord[1]; thiscoord[1] = thiscoord[4];
-                       thiscoord[4] = tmp;
-                   tmp = thiscoord[2]; thiscoord[2] = thiscoord[5];
-                       thiscoord[5] = tmp;
-                   is_small = 1;
-               }
-    
-           }
-           tmpcoord[0] = thiscoord[0] - minint[0];
-           tmpcoord[1] = thiscoord[1] - minint[1];
-           tmpcoord[2] = thiscoord[2] - minint[2];
-           if (bitsize == 0) {
-               sendbits(buf, bitsizeint[0], tmpcoord[0]);
-               sendbits(buf, bitsizeint[1], tmpcoord[1]);
-               sendbits(buf, bitsizeint[2], tmpcoord[2]);
-           } else {
-               sendints(buf, 3, bitsize, sizeint, tmpcoord);
-           }
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           thiscoord = thiscoord + 3;
-           i++;
-           
-           run = 0;
-           if (is_small == 0 && is_smaller == -1)
-               is_smaller = 0;
-           while (is_small && run < 8*3) {
-               if (is_smaller == -1 && (
-                       SQR(thiscoord[0] - prevcoord[0]) +
-                       SQR(thiscoord[1] - prevcoord[1]) +
-                       SQR(thiscoord[2] - prevcoord[2]) >= smaller * smaller)) {
-                   is_smaller = 0;
-               }
-
-               tmpcoord[run++] = thiscoord[0] - prevcoord[0] + small;
-               tmpcoord[run++] = thiscoord[1] - prevcoord[1] + small;
-               tmpcoord[run++] = thiscoord[2] - prevcoord[2] + small;
-               
-               prevcoord[0] = thiscoord[0];
-               prevcoord[1] = thiscoord[1];
-               prevcoord[2] = thiscoord[2];
-
-               i++;
-               thiscoord = thiscoord + 3;
-               is_small = 0;
-               if (i < *size &&
-                       abs(thiscoord[0] - prevcoord[0]) < small &&
-                       abs(thiscoord[1] - prevcoord[1]) < small &&
-                       abs(thiscoord[2] - prevcoord[2]) < small) {
-                   is_small = 1;
-               }
-           }
-           if (run != prevrun || is_smaller != 0) {
-               prevrun = run;
-               sendbits(buf, 1, 1); /* flag the change in run-length */
-               sendbits(buf, 5, run+is_smaller+1);
-           } else {
-               sendbits(buf, 1, 0); /* flag the fact that runlength did not change */
-           }
-           for (k=0; k < run; k+=3) {
-               sendints(buf, 3, smallidx, sizesmall, &tmpcoord[k]);    
-           }
-           if (is_smaller != 0) {
-               smallidx += is_smaller;
-               if (is_smaller < 0) {
-                   small = smaller;
-                   smaller = magicints[smallidx-1] / 2;
-               } else {
-                   smaller = small;
-                   small = magicints[smallidx] / 2;
-               }
-               sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-           }
-       }
-       if (buf[1] != 0) buf[0]++;;
-       xdr_int(xdrs, &(buf[0])); /* buf[0] holds the length in bytes */
-       return errval * (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]));
-    } else {
-       
-       /* xdrs is open for reading */
-       
-       if (xdr_int(xdrs, &lsize) == 0) 
-           return 0;
-       if (*size != 0 && lsize != *size) {
-           fprintf(stderr, "wrong number of coordinates in xdr3dfcoor; "
-                   "%d arg vs %d in file", *size, lsize);
-       }
-       *size = lsize;
-       size3 = *size * 3;
-       if (*size <= 9) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-               
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       larger = magicints[maxidx];
-
-       /* buf[0] holds the length in bytes */
-
-       if (xdr_int(xdrs, &(buf[0])) == 0)
-           return 0;
-       if (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]) == 0)
-           return 0;
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       lfp = fp;
-       inv_precision = 1.0 / * precision;
-       run = 0;
-       i = 0;
-       lip = ip;
-       while ( i < lsize ) {
-           thiscoord = (int *)(lip) + i * 3;
-
-           if (bitsize == 0) {
-               thiscoord[0] = receivebits(buf, bitsizeint[0]);
-               thiscoord[1] = receivebits(buf, bitsizeint[1]);
-               thiscoord[2] = receivebits(buf, bitsizeint[2]);
-           } else {
-               receiveints(buf, 3, bitsize, sizeint, thiscoord);
-           }
-           
-           i++;
-           thiscoord[0] += minint[0];
-           thiscoord[1] += minint[1];
-           thiscoord[2] += minint[2];
-           
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           
-          
-           flag = receivebits(buf, 1);
-           is_smaller = 0;
-           if (flag == 1) {
-               run = receivebits(buf, 5);
-               is_smaller = run % 3;
-               run -= is_smaller;
-               is_smaller--;
-           }
-           if (run > 0) {
-               thiscoord += 3;
-               for (k = 0; k < run; k+=3) {
-                   receiveints(buf, 3, smallidx, sizesmall, thiscoord);
-                   i++;
-                   thiscoord[0] += prevcoord[0] - small;
-                   thiscoord[1] += prevcoord[1] - small;
-                   thiscoord[2] += prevcoord[2] - small;
-                   if (k == 0) {
-                       /* interchange first with second atom for better
-                        * compression of water molecules
-                        */
-                       tmp = thiscoord[0]; thiscoord[0] = prevcoord[0];
-                               prevcoord[0] = tmp;
-                       tmp = thiscoord[1]; thiscoord[1] = prevcoord[1];
-                               prevcoord[1] = tmp;
-                       tmp = thiscoord[2]; thiscoord[2] = prevcoord[2];
-                               prevcoord[2] = tmp;
-                       *lfp++ = prevcoord[0] * inv_precision;
-                       *lfp++ = prevcoord[1] * inv_precision;
-                       *lfp++ = prevcoord[2] * inv_precision;
-                   } else {
-                       prevcoord[0] = thiscoord[0];
-                       prevcoord[1] = thiscoord[1];
-                       prevcoord[2] = thiscoord[2];
-                   }
-                   *lfp++ = thiscoord[0] * inv_precision;
-                   *lfp++ = thiscoord[1] * inv_precision;
-                   *lfp++ = thiscoord[2] * inv_precision;
-               }
-           } else {
-               *lfp++ = thiscoord[0] * inv_precision;
-               *lfp++ = thiscoord[1] * inv_precision;
-               *lfp++ = thiscoord[2] * inv_precision;          
-           }
-           smallidx += is_smaller;
-           if (is_smaller < 0) {
-               small = smaller;
-               if (smallidx > FIRSTIDX) {
-                   smaller = magicints[smallidx - 1] /2;
-               } else {
-                   smaller = 0;
-               }
-           } else if (is_smaller > 0) {
-               smaller = small;
-               small = magicints[smallidx] / 2;
-           }
-           sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       }
-    }
-    return 1;
-}
-
-
-   
diff --git a/source/wham/src-M/xdrf.org/libxdrf.m4.org b/source/wham/src-M/xdrf.org/libxdrf.m4.org
deleted file mode 100644 (file)
index b14b374..0000000
+++ /dev/null
@@ -1,1230 +0,0 @@
-/*____________________________________________________________________________
- |
- | libxdrf - portable fortran interface to xdr. some xdr routines
- |          are C routines for compressed coordinates
- |
- | version 1.1
- |
- | This collection of routines is intended to write and read
- | data in a portable way to a file, so data written on one type
- | of machine can be read back on a different type.
- |
- | all fortran routines use an integer 'xdrid', which is an id to the
- | current xdr file, and is set by xdrfopen.
- | most routines have in integer 'ret' which is the return value.
- | The value of 'ret' is zero on failure, and most of the time one
- | on succes.
- |
- | There are three routines useful for C users:
- |  xdropen(), xdrclose(), xdr3dfcoord().
- | The first two replace xdrstdio_create and xdr_destroy, and *must* be
- | used when you plan to use xdr3dfcoord(). (they are also a bit
- | easier to interface). For writing data other than compressed coordinates 
- | you should use the standard C xdr routines (see xdr man page)
- |
- | xdrfopen(xdrid, filename, mode, ret)
- |     character *(*) filename
- |     character *(*) mode
- |
- |     this will open the file with the given filename (string)
- |     and the given mode, it returns an id in xdrid, which is
- |     to be used in all other calls to xdrf routines.
- |     mode is 'w' to create, or update an file, for all other
- |     values of mode the file is opened for reading
- |
- |     you need to call xdrfclose to flush the output and close
- |     the file.
- |     Note that you should not use xdrstdio_create, which comes with the
- |     standard xdr library
- |
- | xdrfclose(xdrid, ret)
- |     flush the data to the file, and closes the file;
- |     You should not use xdr_destroy (which comes standard with
- |     the xdr libraries.
- |
- | xdrfbool(xdrid, bp, ret)
- |     integer pb
- |
- |     This filter produces values of either 1 or 0    
- |
- | xdrfchar(xdrid, cp, ret)
- |     character cp
- |
- |     filter that translate between characters and their xdr representation
- |     Note that the characters in not compressed and occupies 4 bytes.
- |
- | xdrfdouble(xdrid, dp, ret)
- |     double dp
- |
- |     read/write a double.
- |
- | xdrffloat(xdrid, fp, ret)
- |     float fp
- |
- |     read/write a float.
- |
- | xdrfint(xdrid, ip, ret)
- |     integer ip
- |
- |     read/write integer.
- |
- | xdrflong(xdrid, lp, ret)
- |     integer lp
- |
- |     this routine has a possible portablility problem due to 64 bits longs.
- |
- | xdrfshort(xdrid, sp, ret)
- |     integer *2 sp
- |
- | xdrfstring(xdrid, sp, maxsize, ret)
- |     character *(*)
- |     integer maxsize
- |
- |     read/write a string, with maximum length given by maxsize
- |
- | xdrfwrapstring(xdris, sp, ret)
- |     character *(*)
- |
- |     read/write a string (it is the same as xdrfstring accept that it finds
- |     the stringlength itself.
- |
- | xdrfvector(xdrid, cp, size, xdrfproc, ret)
- |     character *(*)
- |     integer size
- |     external xdrfproc
- |
- |     read/write an array pointed to by cp, with number of elements
- |     defined by 'size'. the routine 'xdrfproc' is the name
- |     of one of the above routines to read/write data (like xdrfdouble)
- |     In contrast with the c-version you don't need to specify the
- |     byte size of an element.
- |     xdrfstring is not allowed here (it is in the c version)
- |     
- | xdrf3dfcoord(xdrid, fp, size, precision, ret)
- |     real (*) fp
- |     real precision
- |     integer size
- |
- |     this is *NOT* a standard xdr routine. I named it this way, because
- |     it invites people to use the other xdr routines.
- |     It is introduced to store specifically 3d coordinates of molecules
- |     (as found in molecular dynamics) and it writes it in a compressed way.
- |     It starts by multiplying all numbers by precision and
- |     rounding the result to integer. effectively converting
- |     all floating point numbers to fixed point.
- |     it uses an algorithm for compression that is optimized for
- |     molecular data, but could be used for other 3d coordinates
- |     as well. There is subtantial overhead involved, so call this
- |     routine only if you have a large number of coordinates to read/write
- |
- | ________________________________________________________________________
- |
- | Below are the routines to be used by C programmers. Use the 'normal'
- | xdr routines to write integers, floats, etc (see man xdr)   
- |
- | int xdropen(XDR *xdrs, const char *filename, const char *type)
- |     This will open the file with the given filename and the 
- |     given mode. You should pass it an allocated XDR struct
- |     in xdrs, to be used in all other calls to xdr routines.
- |     Mode is 'w' to create, or update an file, and for all 
- |     other values of mode the file is opened for reading. 
- |     You need to call xdrclose to flush the output and close
- |     the file.
- |
- |     Note that you should not use xdrstdio_create, which
- |     comes with the standard xdr library.
- |
- | int xdrclose(XDR *xdrs)
- |     Flush the data to the file, and close the file;
- |     You should not use xdr_destroy (which comes standard
- |     with the xdr libraries).
- |      
- | int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision)
- |     This is \fInot\fR a standard xdr routine. I named it this 
- |     way, because it invites people to use the other xdr 
- |     routines.
- |
- |     (c) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-*/     
-
-
-#include <limits.h>
-#include <malloc.h>
-#include <math.h>
-#include <rpc/rpc.h>
-#include <rpc/xdr.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include "xdrf.h"
-
-int ftocstr(char *, int, char *, int);
-int ctofstr(char *, int, char *);
-
-#define MAXID 20
-static FILE *xdrfiles[MAXID];
-static XDR *xdridptr[MAXID];
-static char xdrmodes[MAXID];
-static unsigned int cnt;
-
-typedef void (* FUNCTION(xdrfproc)) (int *, void *, int *);
-
-void
-FUNCTION(xdrfbool) ARGS(`xdrid, pb, ret')
-int *xdrid, *ret;
-int *pb;
-{
-       *ret = xdr_bool(xdridptr[*xdrid], (bool_t *) pb);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrfchar) ARGS(`xdrid, cp, ret')
-int *xdrid, *ret;
-char *cp;
-{
-       *ret = xdr_char(xdridptr[*xdrid], cp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfdouble) ARGS(`xdrid, dp, ret')
-int *xdrid, *ret;
-double *dp;
-{
-       *ret = xdr_double(xdridptr[*xdrid], dp);
-       cnt += sizeof(double);
-}
-
-void
-FUNCTION(xdrffloat) ARGS(`xdrid, fp, ret')
-int *xdrid, *ret;
-float *fp;
-{
-       *ret = xdr_float(xdridptr[*xdrid], fp);
-       cnt += sizeof(float);
-}
-
-void
-FUNCTION(xdrfint) ARGS(`xdrid, ip, ret')
-int *xdrid, *ret;
-int *ip;
-{
-       *ret = xdr_int(xdridptr[*xdrid], ip);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrflong) ARGS(`xdrid, lp, ret')
-int *xdrid, *ret;
-long *lp;
-{
-       *ret = xdr_long(xdridptr[*xdrid], lp);
-       cnt += sizeof(long);
-}
-
-void
-FUNCTION(xdrfshort) ARGS(`xdrid, sp, ret')
-int *xdrid, *ret;
-short *sp;
-{
-       *ret = xdr_short(xdridptr[*xdrid], sp);
-       cnt += sizeof(sp);
-}
-
-void
-FUNCTION(xdrfuchar) ARGS(`xdrid, ucp, ret')
-int *xdrid, *ret;
-char *ucp;
-{
-       *ret = xdr_u_char(xdridptr[*xdrid], ucp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfulong) ARGS(`xdrid, ulp, ret')
-int *xdrid, *ret;
-unsigned long *ulp;
-{
-       *ret = xdr_u_long(xdridptr[*xdrid], ulp);
-       cnt += sizeof(unsigned long);
-}
-
-void
-FUNCTION(xdrfushort) ARGS(`xdrid, usp, ret')
-int *xdrid, *ret;
-unsigned short *usp;
-{
-       *ret = xdr_u_short(xdridptr[*xdrid], usp);
-       cnt += sizeof(unsigned short);
-}
-
-void 
-FUNCTION(xdrf3dfcoord) ARGS(`xdrid, fp, size, precision, ret')
-int *xdrid, *ret;
-float *fp;
-int *size;
-float *precision;
-{
-       *ret = xdr3dfcoord(xdridptr[*xdrid], fp, size, precision);
-}
-
-void
-FUNCTION(xdrfstring) ARGS(`xdrid, STRING_ARG(sp), maxsize, ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-int *maxsize;
-{
-       char *tsp;
-
-       tsp = (char*) malloc(((STRING_LEN(sp)) + 1) * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, *maxsize+1, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int) *maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += *maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfwrapstring) ARGS(`xdrid,  STRING_ARG(sp), ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-{
-       char *tsp;
-       int maxsize;
-       maxsize = (STRING_LEN(sp)) + 1;
-       tsp = (char*) malloc(maxsize * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, maxsize, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int)maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfopaque) ARGS(`xdrid, cp, ccnt, ret')
-int *xdrid, *ret;
-caddr_t *cp;
-int *ccnt;
-{
-       *ret = xdr_opaque(xdridptr[*xdrid], (caddr_t)*cp, (u_int)*ccnt);
-       cnt += *ccnt;
-}
-
-void
-FUNCTION(xdrfsetpos) ARGS(`xdrid, pos, ret')
-int *xdrid, *ret;
-int *pos;
-{
-       *ret = xdr_setpos(xdridptr[*xdrid], (u_int) *pos);
-}
-
-void
-FUNCTION(xdrf) ARGS(`xdrid, pos')
-int *xdrid, *pos;
-{
-       *pos = xdr_getpos(xdridptr[*xdrid]);
-}
-
-void
-FUNCTION(xdrfvector) ARGS(`xdrid, cp, size, elproc, ret')
-int *xdrid, *ret;
-char *cp;
-int *size;
-FUNCTION(xdrfproc) elproc;
-{
-       int lcnt;
-       cnt = 0;
-       for (lcnt = 0; lcnt < *size; lcnt++) {
-               elproc(xdrid, (cp+cnt) , ret);
-       }
-}
-
-
-void
-FUNCTION(xdrfclose) ARGS(`xdrid, ret')
-int *xdrid;
-int *ret;
-{
-       *ret = xdrclose(xdridptr[*xdrid]);
-       cnt = 0;
-}
-
-void
-FUNCTION(xdrfopen) ARGS(`xdrid,  STRING_ARG(fp), STRING_ARG(mode), ret')
-int *xdrid;
-STRING_ARG_DECL(fp);
-STRING_ARG_DECL(mode);
-int *ret;
-{
-       char fname[512];
-       char fmode[3];
-
-       if (ftocstr(fname, sizeof(fname), STRING_PTR(fp), STRING_LEN(fp))) {
-               *ret = 0;
-       }
-       if (ftocstr(fmode, sizeof(fmode), STRING_PTR(mode),
-                       STRING_LEN(mode))) {
-               *ret = 0;
-       }
-
-       *xdrid = xdropen(NULL, fname, fmode);
-       if (*xdrid == 0)
-               *ret = 0;
-       else 
-               *ret = 1;       
-}
-
-/*___________________________________________________________________________
- |
- | what follows are the C routines for opening, closing xdr streams
- | and the routine to read/write compressed coordinates together
- | with some routines to assist in this task (those are marked
- | static and cannot be called from user programs)
-*/
-#define MAXABS INT_MAX-2
-
-#ifndef MIN
-#define MIN(x,y) ((x) < (y) ? (x):(y))
-#endif
-#ifndef MAX
-#define MAX(x,y) ((x) > (y) ? (x):(y))
-#endif
-#ifndef SQR
-#define SQR(x) ((x)*(x))
-#endif
-static int magicints[] = {
-    0, 0, 0, 0, 0, 0, 0, 0, 0,
-    8, 10, 12, 16, 20, 25, 32, 40, 50, 64,
-    80, 101, 128, 161, 203, 256, 322, 406, 512, 645,
-    812, 1024, 1290, 1625, 2048, 2580, 3250, 4096, 5060, 6501,
-    8192, 10321, 13003, 16384, 20642, 26007, 32768, 41285, 52015, 65536,
-    82570, 104031, 131072, 165140, 208063, 262144, 330280, 416127, 524287, 660561,
-    832255, 1048576, 1321122, 1664510, 2097152, 2642245, 3329021, 4194304, 5284491, 6658042,
-    8388607, 10568983, 13316085, 16777216 };
-
-#define FIRSTIDX 9
-/* note that magicints[FIRSTIDX-1] == 0 */
-#define LASTIDX (sizeof(magicints) / sizeof(*magicints))
-
-
-/*__________________________________________________________________________
- |
- | xdropen - open xdr file
- |
- | This versions differs from xdrstdio_create, because I need to know
- | the state of the file (read or write) so I can use xdr3dfcoord
- | in eigther read or write mode, and the file descriptor
- | so I can close the file (something xdr_destroy doesn't do).
- |
-*/
-
-int xdropen(XDR *xdrs, const char *filename, const char *type) {
-    static int init_done = 0;
-    enum xdr_op lmode;
-    int xdrid;
-    
-    if (init_done == 0) {
-       for (xdrid = 1; xdrid < MAXID; xdrid++) {
-           xdridptr[xdrid] = NULL;
-       }
-       init_done = 1;
-    }
-    xdrid = 1;
-    while (xdrid < MAXID && xdridptr[xdrid] != NULL) {
-       xdrid++;
-    }
-    if (xdrid == MAXID) {
-       return 0;
-    }
-    if (*type == 'w' || *type == 'W') {
-           type = "w+";
-           lmode = XDR_ENCODE;
-    } else {
-           type = "r";
-           lmode = XDR_DECODE;
-    }
-    xdrfiles[xdrid] = fopen(filename, type);
-    if (xdrfiles[xdrid] == NULL) {
-       xdrs = NULL;
-       return 0;
-    }
-    xdrmodes[xdrid] = *type;
-    /* next test isn't usefull in the case of C language
-     * but is used for the Fortran interface
-     * (C users are expected to pass the address of an already allocated
-     * XDR staructure)
-     */
-    if (xdrs == NULL) {
-       xdridptr[xdrid] = (XDR *) malloc(sizeof(XDR));
-       xdrstdio_create(xdridptr[xdrid], xdrfiles[xdrid], lmode);
-    } else {
-       xdridptr[xdrid] = xdrs;
-       xdrstdio_create(xdrs, xdrfiles[xdrid], lmode);
-    }
-    return xdrid;
-}
-
-/*_________________________________________________________________________
- |
- | xdrclose - close a xdr file
- |
- | This will flush the xdr buffers, and destroy the xdr stream.
- | It also closes the associated file descriptor (this is *not*
- | done by xdr_destroy).
- |
-*/
-int xdrclose(XDR *xdrs) {
-    int xdrid;
-    
-    if (xdrs == NULL) {
-       fprintf(stderr, "xdrclose: passed a NULL pointer\n");
-       exit(1);
-    }
-    for (xdrid = 1; xdrid < MAXID; xdrid++) {
-       if (xdridptr[xdrid] == xdrs) {
-           
-           xdr_destroy(xdrs);
-           fclose(xdrfiles[xdrid]);
-           xdridptr[xdrid] = NULL;
-           return 1;
-       }
-    } 
-    fprintf(stderr, "xdrclose: no such open xdr file\n");
-    exit(1);
-    
-}
-
-/*____________________________________________________________________________
- |
- | sendbits - encode num into buf using the specified number of bits
- |
- | This routines appends the value of num to the bits already present in
- | the array buf. You need to give it the number of bits to use and you
- | better make sure that this number of bits is enough to hold the value
- | Also num must be positive.
- |
-*/
-
-static void sendbits(int buf[], int num_of_bits, int num) {
-    
-    unsigned int cnt, lastbyte;
-    int lastbits;
-    unsigned char * cbuf;
-    
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = (unsigned int) buf[0];
-    lastbits = buf[1];
-    lastbyte =(unsigned int) buf[2];
-    while (num_of_bits >= 8) {
-       lastbyte = (lastbyte << 8) | ((num >> (num_of_bits -8)) /* & 0xff*/);
-       cbuf[cnt++] = lastbyte >> lastbits;
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       lastbyte = (lastbyte << num_of_bits) | num;
-       lastbits += num_of_bits;
-       if (lastbits >= 8) {
-           lastbits -= 8;
-           cbuf[cnt++] = lastbyte >> lastbits;
-       }
-    }
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    if (lastbits>0) {
-       cbuf[cnt] = lastbyte << (8 - lastbits);
-    }
-}
-
-/*_________________________________________________________________________
- |
- | sizeofint - calculate bitsize of an integer
- |
- | return the number of bits needed to store an integer with given max size
- |
-*/
-
-static int sizeofint(const int size) {
-    unsigned int num = 1;
-    int num_of_bits = 0;
-    
-    while (size >= num && num_of_bits < 32) {
-       num_of_bits++;
-       num <<= 1;
-    }
-    return num_of_bits;
-}
-
-/*___________________________________________________________________________
- |
- | sizeofints - calculate 'bitsize' of compressed ints
- |
- | given the number of small unsigned integers and the maximum value
- | return the number of bits needed to read or write them with the
- | routines receiveints and sendints. You need this parameter when
- | calling these routines. Note that for many calls I can use
- | the variable 'smallidx' which is exactly the number of bits, and
- | So I don't need to call 'sizeofints for those calls.
-*/
-
-static int sizeofints( const int num_of_ints, unsigned int sizes[]) {
-    int i, num;
-    unsigned int num_of_bytes, num_of_bits, bytes[32], bytecnt, tmp;
-    num_of_bytes = 1;
-    bytes[0] = 1;
-    num_of_bits = 0;
-    for (i=0; i < num_of_ints; i++) {  
-       tmp = 0;
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    num = 1;
-    num_of_bytes--;
-    while (bytes[num_of_bytes] >= num) {
-       num_of_bits++;
-       num *= 2;
-    }
-    return num_of_bits + num_of_bytes * 8;
-
-}
-    
-/*____________________________________________________________________________
- |
- | sendints - send a small set of small integers in compressed format
- |
- | this routine is used internally by xdr3dfcoord, to send a set of
- | small integers to the buffer. 
- | Multiplication with fixed (specified maximum ) sizes is used to get
- | to one big, multibyte integer. Allthough the routine could be
- | modified to handle sizes bigger than 16777216, or more than just
- | a few integers, this is not done, because the gain in compression
- | isn't worth the effort. Note that overflowing the multiplication
- | or the byte buffer (32 bytes) is unchecked and causes bad results.
- |
- */
-static void sendints(int buf[], const int num_of_ints, const int num_of_bits,
-       unsigned int sizes[], unsigned int nums[]) {
-
-    int i;
-    unsigned int bytes[32], num_of_bytes, bytecnt, tmp;
-
-    tmp = nums[0];
-    num_of_bytes = 0;
-    do {
-       bytes[num_of_bytes++] = tmp & 0xff;
-       tmp >>= 8;
-    } while (tmp != 0);
-
-    for (i = 1; i < num_of_ints; i++) {
-       if (nums[i] >= sizes[i]) {
-           fprintf(stderr,"major breakdown in sendints num %d doesn't "
-                   "match size %d\n", nums[i], sizes[i]);
-           exit(1);
-       }
-       /* use one step multiply */    
-       tmp = nums[i];
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    if (num_of_bits >= num_of_bytes * 8) {
-       for (i = 0; i < num_of_bytes; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits - num_of_bytes * 8, 0);
-    } else {
-       for (i = 0; i < num_of_bytes-1; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits- (num_of_bytes -1) * 8, bytes[i]);
-    }
-}
-
-
-/*___________________________________________________________________________
- |
- | receivebits - decode number from buf using specified number of bits
- | 
- | extract the number of bits from the array buf and construct an integer
- | from it. Return that value.
- |
-*/
-
-static int receivebits(int buf[], int num_of_bits) {
-
-    int cnt, num; 
-    unsigned int lastbits, lastbyte;
-    unsigned char * cbuf;
-    int mask = (1 << num_of_bits) -1;
-
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = buf[0];
-    lastbits = (unsigned int) buf[1];
-    lastbyte = (unsigned int) buf[2];
-    
-    num = 0;
-    while (num_of_bits >= 8) {
-       lastbyte = ( lastbyte << 8 ) | cbuf[cnt++];
-       num |=  (lastbyte >> lastbits) << (num_of_bits - 8);
-       num_of_bits -=8;
-    }
-    if (num_of_bits > 0) {
-       if (lastbits < num_of_bits) {
-           lastbits += 8;
-           lastbyte = (lastbyte << 8) | cbuf[cnt++];
-       }
-       lastbits -= num_of_bits;
-       num |= (lastbyte >> lastbits) & ((1 << num_of_bits) -1);
-    }
-    num &= mask;
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    return num; 
-}
-
-/*____________________________________________________________________________
- |
- | receiveints - decode 'small' integers from the buf array
- |
- | this routine is the inverse from sendints() and decodes the small integers
- | written to buf by calculating the remainder and doing divisions with
- | the given sizes[]. You need to specify the total number of bits to be
- | used from buf in num_of_bits.
- |
-*/
-
-static void receiveints(int buf[], const int num_of_ints, int num_of_bits,
-       unsigned int sizes[], int nums[]) {
-    int bytes[32];
-    int i, j, num_of_bytes, p, num;
-    
-    bytes[1] = bytes[2] = bytes[3] = 0;
-    num_of_bytes = 0;
-    while (num_of_bits > 8) {
-       bytes[num_of_bytes++] = receivebits(buf, 8);
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       bytes[num_of_bytes++] = receivebits(buf, num_of_bits);
-    }
-    for (i = num_of_ints-1; i > 0; i--) {
-       num = 0;
-       for (j = num_of_bytes-1; j >=0; j--) {
-           num = (num << 8) | bytes[j];
-           p = num / sizes[i];
-           bytes[j] = p;
-           num = num - p * sizes[i];
-       }
-       nums[i] = num;
-    }
-    nums[0] = bytes[0] | (bytes[1] << 8) | (bytes[2] << 16) | (bytes[3] << 24);
-}
-    
-/*____________________________________________________________________________
- |
- | xdr3dfcoord - read or write compressed 3d coordinates to xdr file.
- |
- | this routine reads or writes (depending on how you opened the file with
- | xdropen() ) a large number of 3d coordinates (stored in *fp).
- | The number of coordinates triplets to write is given by *size. On
- | read this number may be zero, in which case it reads as many as were written
- | or it may specify the number if triplets to read (which should match the
- | number written).
- | Compression is achieved by first converting all floating numbers to integer
- | using multiplication by *precision and rounding to the nearest integer.
- | Then the minimum and maximum value are calculated to determine the range.
- | The limited range of integers so found, is used to compress the coordinates.
- | In addition the differences between succesive coordinates is calculated.
- | If the difference happens to be 'small' then only the difference is saved,
- | compressing the data even more. The notion of 'small' is changed dynamically
- | and is enlarged or reduced whenever needed or possible.
- | Extra compression is achieved in the case of GROMOS and coordinates of
- | water molecules. GROMOS first writes out the Oxygen position, followed by
- | the two hydrogens. In order to make the differences smaller (and thereby
- | compression the data better) the order is changed into first one hydrogen
- | then the oxygen, followed by the other hydrogen. This is rather special, but
- | it shouldn't harm in the general case.
- |
- */
-int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) {
-    
-
-    static int *ip = NULL;
-    static int oldsize;
-    static int *buf;
-
-    int minint[3], maxint[3], mindiff, *lip, diff;
-    int lint1, lint2, lint3, oldlint1, oldlint2, oldlint3, smallidx;
-    int minidx, maxidx;
-    unsigned sizeint[3], sizesmall[3], bitsizeint[3], size3, *luip;
-    int flag, k;
-    int small, smaller, larger, i, is_small, is_smaller, run, prevrun;
-    float *lfp, lf;
-    int tmp, *thiscoord,  prevcoord[3];
-    unsigned int tmpcoord[30];
-
-    int bufsize, xdrid, lsize;
-    unsigned int bitsize;
-    float inv_precision;
-    int errval = 1;
-
-    /* find out if xdrs is opened for reading or for writing */
-    xdrid = 0;
-    while (xdridptr[xdrid] != xdrs) {
-       xdrid++;
-       if (xdrid >= MAXID) {
-           fprintf(stderr, "xdr error. no open xdr stream\n");
-           exit (1);
-       }
-    }
-    if (xdrmodes[xdrid] == 'w') {
-
-       /* xdrs is open for writing */
-
-       if (xdr_int(xdrs, size) == 0)
-           return 0;
-       size3 = *size * 3;
-       /* when the number of coordinates is small, don't try to compress; just
-        * write them as floats using xdr_vector
-        */
-       if (*size <= 9 ) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       /* buf[0-2] are special and do not contain actual data */
-       buf[0] = buf[1] = buf[2] = 0;
-       minint[0] = minint[1] = minint[2] = INT_MAX;
-       maxint[0] = maxint[1] = maxint[2] = INT_MIN;
-       prevrun = -1;
-       lfp = fp;
-       lip = ip;
-       mindiff = INT_MAX;
-       oldlint1 = oldlint2 = oldlint3 = 0;
-       while(lfp < fp + size3 ) {
-           /* find nearest integer */
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint1 = lf;
-           if (lint1 < minint[0]) minint[0] = lint1;
-           if (lint1 > maxint[0]) maxint[0] = lint1;
-           *lip++ = lint1;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint2 = lf;
-           if (lint2 < minint[1]) minint[1] = lint2;
-           if (lint2 > maxint[1]) maxint[1] = lint2;
-           *lip++ = lint2;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint3 = lf;
-           if (lint3 < minint[2]) minint[2] = lint3;
-           if (lint3 > maxint[2]) maxint[2] = lint3;
-           *lip++ = lint3;
-           lfp++;
-           diff = abs(oldlint1-lint1)+abs(oldlint2-lint2)+abs(oldlint3-lint3);
-           if (diff < mindiff && lfp > fp + 3)
-               mindiff = diff;
-           oldlint1 = lint1;
-           oldlint2 = lint2;
-           oldlint3 = lint3;
-       }
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-       
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-       
-       if ((float)maxint[0] - (float)minint[0] >= MAXABS ||
-               (float)maxint[1] - (float)minint[1] >= MAXABS ||
-               (float)maxint[2] - (float)minint[2] >= MAXABS) {
-           /* turning value in unsigned by subtracting minint
-            * would cause overflow
-            */
-           errval = 0;
-       }
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       lip = ip;
-       luip = (unsigned int *) ip;
-       smallidx = FIRSTIDX;
-       while (smallidx < LASTIDX && magicints[smallidx] < mindiff) {
-           smallidx++;
-       }
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-       larger = magicints[maxidx] / 2;
-       i = 0;
-       while (i < *size) {
-           is_small = 0;
-           thiscoord = (int *)(luip) + i * 3;
-           if (smallidx < maxidx && i >= 1 &&
-                   abs(thiscoord[0] - prevcoord[0]) < larger &&
-                   abs(thiscoord[1] - prevcoord[1]) < larger &&
-                   abs(thiscoord[2] - prevcoord[2]) < larger) {
-               is_smaller = 1;
-           } else if (smallidx > minidx) {
-               is_smaller = -1;
-           } else {
-               is_smaller = 0;
-           }
-           if (i + 1 < *size) {
-               if (abs(thiscoord[0] - thiscoord[3]) < small &&
-                       abs(thiscoord[1] - thiscoord[4]) < small &&
-                       abs(thiscoord[2] - thiscoord[5]) < small) {
-                   /* interchange first with second atom for better
-                    * compression of water molecules
-                    */
-                   tmp = thiscoord[0]; thiscoord[0] = thiscoord[3];
-                       thiscoord[3] = tmp;
-                   tmp = thiscoord[1]; thiscoord[1] = thiscoord[4];
-                       thiscoord[4] = tmp;
-                   tmp = thiscoord[2]; thiscoord[2] = thiscoord[5];
-                       thiscoord[5] = tmp;
-                   is_small = 1;
-               }
-    
-           }
-           tmpcoord[0] = thiscoord[0] - minint[0];
-           tmpcoord[1] = thiscoord[1] - minint[1];
-           tmpcoord[2] = thiscoord[2] - minint[2];
-           if (bitsize == 0) {
-               sendbits(buf, bitsizeint[0], tmpcoord[0]);
-               sendbits(buf, bitsizeint[1], tmpcoord[1]);
-               sendbits(buf, bitsizeint[2], tmpcoord[2]);
-           } else {
-               sendints(buf, 3, bitsize, sizeint, tmpcoord);
-           }
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           thiscoord = thiscoord + 3;
-           i++;
-           
-           run = 0;
-           if (is_small == 0 && is_smaller == -1)
-               is_smaller = 0;
-           while (is_small && run < 8*3) {
-               if (is_smaller == -1 && (
-                       SQR(thiscoord[0] - prevcoord[0]) +
-                       SQR(thiscoord[1] - prevcoord[1]) +
-                       SQR(thiscoord[2] - prevcoord[2]) >= smaller * smaller)) {
-                   is_smaller = 0;
-               }
-
-               tmpcoord[run++] = thiscoord[0] - prevcoord[0] + small;
-               tmpcoord[run++] = thiscoord[1] - prevcoord[1] + small;
-               tmpcoord[run++] = thiscoord[2] - prevcoord[2] + small;
-               
-               prevcoord[0] = thiscoord[0];
-               prevcoord[1] = thiscoord[1];
-               prevcoord[2] = thiscoord[2];
-
-               i++;
-               thiscoord = thiscoord + 3;
-               is_small = 0;
-               if (i < *size &&
-                       abs(thiscoord[0] - prevcoord[0]) < small &&
-                       abs(thiscoord[1] - prevcoord[1]) < small &&
-                       abs(thiscoord[2] - prevcoord[2]) < small) {
-                   is_small = 1;
-               }
-           }
-           if (run != prevrun || is_smaller != 0) {
-               prevrun = run;
-               sendbits(buf, 1, 1); /* flag the change in run-length */
-               sendbits(buf, 5, run+is_smaller+1);
-           } else {
-               sendbits(buf, 1, 0); /* flag the fact that runlength did not change */
-           }
-           for (k=0; k < run; k+=3) {
-               sendints(buf, 3, smallidx, sizesmall, &tmpcoord[k]);    
-           }
-           if (is_smaller != 0) {
-               smallidx += is_smaller;
-               if (is_smaller < 0) {
-                   small = smaller;
-                   smaller = magicints[smallidx-1] / 2;
-               } else {
-                   smaller = small;
-                   small = magicints[smallidx] / 2;
-               }
-               sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-           }
-       }
-       if (buf[1] != 0) buf[0]++;;
-       xdr_int(xdrs, &(buf[0])); /* buf[0] holds the length in bytes */
-       return errval * (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]));
-    } else {
-       
-       /* xdrs is open for reading */
-       
-       if (xdr_int(xdrs, &lsize) == 0) 
-           return 0;
-       if (*size != 0 && lsize != *size) {
-           fprintf(stderr, "wrong number of coordinates in xdr3dfcoor; "
-                   "%d arg vs %d in file", *size, lsize);
-       }
-       *size = lsize;
-       size3 = *size * 3;
-       if (*size <= 9) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-               
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       larger = magicints[maxidx];
-
-       /* buf[0] holds the length in bytes */
-
-       if (xdr_int(xdrs, &(buf[0])) == 0)
-           return 0;
-       if (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]) == 0)
-           return 0;
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       lfp = fp;
-       inv_precision = 1.0 / * precision;
-       run = 0;
-       i = 0;
-       lip = ip;
-       while ( i < lsize ) {
-           thiscoord = (int *)(lip) + i * 3;
-
-           if (bitsize == 0) {
-               thiscoord[0] = receivebits(buf, bitsizeint[0]);
-               thiscoord[1] = receivebits(buf, bitsizeint[1]);
-               thiscoord[2] = receivebits(buf, bitsizeint[2]);
-           } else {
-               receiveints(buf, 3, bitsize, sizeint, thiscoord);
-           }
-           
-           i++;
-           thiscoord[0] += minint[0];
-           thiscoord[1] += minint[1];
-           thiscoord[2] += minint[2];
-           
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           
-          
-           flag = receivebits(buf, 1);
-           is_smaller = 0;
-           if (flag == 1) {
-               run = receivebits(buf, 5);
-               is_smaller = run % 3;
-               run -= is_smaller;
-               is_smaller--;
-           }
-           if (run > 0) {
-               thiscoord += 3;
-               for (k = 0; k < run; k+=3) {
-                   receiveints(buf, 3, smallidx, sizesmall, thiscoord);
-                   i++;
-                   thiscoord[0] += prevcoord[0] - small;
-                   thiscoord[1] += prevcoord[1] - small;
-                   thiscoord[2] += prevcoord[2] - small;
-                   if (k == 0) {
-                       /* interchange first with second atom for better
-                        * compression of water molecules
-                        */
-                       tmp = thiscoord[0]; thiscoord[0] = prevcoord[0];
-                               prevcoord[0] = tmp;
-                       tmp = thiscoord[1]; thiscoord[1] = prevcoord[1];
-                               prevcoord[1] = tmp;
-                       tmp = thiscoord[2]; thiscoord[2] = prevcoord[2];
-                               prevcoord[2] = tmp;
-                       *lfp++ = prevcoord[0] * inv_precision;
-                       *lfp++ = prevcoord[1] * inv_precision;
-                       *lfp++ = prevcoord[2] * inv_precision;
-                   } else {
-                       prevcoord[0] = thiscoord[0];
-                       prevcoord[1] = thiscoord[1];
-                       prevcoord[2] = thiscoord[2];
-                   }
-                   *lfp++ = thiscoord[0] * inv_precision;
-                   *lfp++ = thiscoord[1] * inv_precision;
-                   *lfp++ = thiscoord[2] * inv_precision;
-               }
-           } else {
-               *lfp++ = thiscoord[0] * inv_precision;
-               *lfp++ = thiscoord[1] * inv_precision;
-               *lfp++ = thiscoord[2] * inv_precision;          
-           }
-           smallidx += is_smaller;
-           if (is_smaller < 0) {
-               small = smaller;
-               if (smallidx > FIRSTIDX) {
-                   smaller = magicints[smallidx - 1] /2;
-               } else {
-                   smaller = 0;
-               }
-           } else if (is_smaller > 0) {
-               smaller = small;
-               small = magicints[smallidx] / 2;
-           }
-           sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       }
-    }
-    return 1;
-}
-
-
-   
diff --git a/source/wham/src-M/xdrf.org/types.h b/source/wham/src-M/xdrf.org/types.h
deleted file mode 100644 (file)
index 871f3fd..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-/* fixincludes should not add extern "C" to this file */
-/*
- * Rpc additions to <sys/types.h>
- */
-#ifndef _RPC_TYPES_H
-#define _RPC_TYPES_H 1
-
-typedef int bool_t;
-typedef int enum_t;
-/* This needs to be changed to uint32_t in the future */
-typedef unsigned long rpcprog_t;
-typedef unsigned long rpcvers_t;
-typedef unsigned long rpcproc_t;
-typedef unsigned long rpcprot_t;
-typedef unsigned long rpcport_t;
-
-#define        __dontcare__    -1
-
-#ifndef FALSE
-#      define  FALSE   (0)
-#endif
-
-#ifndef TRUE
-#      define  TRUE    (1)
-#endif
-
-#ifndef NULL
-#      define  NULL 0
-#endif
-
-#include <stdlib.h>            /* For malloc decl.  */
-#define mem_alloc(bsize)       malloc(bsize)
-/*
- * XXX: This must not use the second argument, or code in xdr_array.c needs
- * to be modified.
- */
-#define mem_free(ptr, bsize)   free(ptr)
-
-#ifndef makedev /* ie, we haven't already included it */
-#include <sys/types.h>
-#endif
-
-#ifndef __u_char_defined
-typedef __u_char u_char;
-typedef __u_short u_short;
-typedef __u_int u_int;
-typedef __u_long u_long;
-typedef __quad_t quad_t;
-typedef __u_quad_t u_quad_t;
-typedef __fsid_t fsid_t;
-# define __u_char_defined
-#endif
-#ifndef __daddr_t_defined
-typedef __daddr_t daddr_t;
-typedef __caddr_t caddr_t;
-# define __daddr_t_defined
-#endif
-
-#include <sys/time.h>
-#include <sys/param.h>
-
-#include <netinet/in.h>
-
-#ifndef INADDR_LOOPBACK
-#define       INADDR_LOOPBACK         (u_long)0x7F000001
-#endif
-#ifndef MAXHOSTNAMELEN
-#define        MAXHOSTNAMELEN  64
-#endif
-
-#endif /* rpc/types.h */
diff --git a/source/wham/src-M/xdrf.org/underscore.m4 b/source/wham/src-M/xdrf.org/underscore.m4
deleted file mode 100644 (file)
index 4d620a0..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-divert(-1)
-undefine(`len')
-#
-# append an underscore to FORTRAN function names
-#
-define(`FUNCTION',`$1_')
-#
-# FORTRAN character strings are passed as follows:
-# a pointer to the base of the string is passed in the normal
-# argument list, and the length is passed by value as an extra
-# argument, after all of the other arguments.
-#
-define(`ARGS',`($1`'undivert(1))')
-define(`SAVE',`divert(1)$1`'divert(0)')
-define(`STRING_ARG',`$1_ptr`'SAVE(`, $1_len')')
-define(`STRING_ARG_DECL',`char * $1_ptr; int $1_len')
-define(`STRING_LEN',`$1_len')
-define(`STRING_PTR',`$1_ptr')
-divert(0)
diff --git a/source/wham/src-M/xdrf.org/xdr.c b/source/wham/src-M/xdrf.org/xdr.c
deleted file mode 100644 (file)
index 33b8544..0000000
+++ /dev/null
@@ -1,752 +0,0 @@
-# define INTUSE(name) name
-# define INTDEF(name)
-/* @(#)xdr.c   2.1 88/07/29 4.0 RPCSRC */
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)xdr.c 1.35 87/08/12";
-#endif
-
-/*
- * xdr.c, Generic XDR routines implementation.
- *
- * Copyright (C) 1986, Sun Microsystems, Inc.
- *
- * These are the "generic" xdr routines used to serialize and de-serialize
- * most common data items.  See xdr.h for more info on the interface to
- * xdr.
- */
-
-#include <stdio.h>
-#include <limits.h>
-#include <string.h>
-#include <libintl.h>
-
-#include "types.h"
-#include "xdr.h"
-
-#ifdef USE_IN_LIBIO
-# include <wchar.h>
-#endif
-
-/*
- * constants specific to the xdr "protocol"
- */
-#define XDR_FALSE      ((long) 0)
-#define XDR_TRUE       ((long) 1)
-#define LASTUNSIGNED   ((u_int) 0-1)
-
-/*
- * for unit alignment
- */
-static const char xdr_zero[BYTES_PER_XDR_UNIT] = {0, 0, 0, 0};
-
-/*
- * Free a data structure using XDR
- * Not a filter, but a convenient utility nonetheless
- */
-void
-xdr_free (xdrproc_t proc, char *objp)
-{
-  XDR x;
-
-  x.x_op = XDR_FREE;
-  (*proc) (&x, objp);
-}
-
-/*
- * XDR nothing
- */
-bool_t
-xdr_void (void)
-{
-  return TRUE;
-}
-INTDEF(xdr_void)
-
-/*
- * XDR integers
- */
-bool_t
-xdr_int (XDR *xdrs, int *ip)
-{
-
-#if INT_MAX < LONG_MAX
-  long l;
-
-  switch (xdrs->x_op)
-    {
-    case XDR_ENCODE:
-      l = (long) *ip;
-      return XDR_PUTLONG (xdrs, &l);
-
-    case XDR_DECODE:
-      if (!XDR_GETLONG (xdrs, &l))
-       {
-         return FALSE;
-       }
-      *ip = (int) l;
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-#elif INT_MAX == LONG_MAX
-  return INTUSE(xdr_long) (xdrs, (long *) ip);
-#elif INT_MAX == SHRT_MAX
-  return INTUSE(xdr_short) (xdrs, (short *) ip);
-#else
-#error unexpected integer sizes in_xdr_int()
-#endif
-}
-INTDEF(xdr_int)
-
-/*
- * XDR unsigned integers
- */
-bool_t
-xdr_u_int (XDR *xdrs, u_int *up)
-{
-#if UINT_MAX < ULONG_MAX
-  long l;
-
-  switch (xdrs->x_op)
-    {
-    case XDR_ENCODE:
-      l = (u_long) * up;
-      return XDR_PUTLONG (xdrs, &l);
-
-    case XDR_DECODE:
-      if (!XDR_GETLONG (xdrs, &l))
-       {
-         return FALSE;
-       }
-      *up = (u_int) (u_long) l;
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-#elif UINT_MAX == ULONG_MAX
-  return INTUSE(xdr_u_long) (xdrs, (u_long *) up);
-#elif UINT_MAX == USHRT_MAX
-  return INTUSE(xdr_short) (xdrs, (short *) up);
-#else
-#error unexpected integer sizes in_xdr_u_int()
-#endif
-}
-INTDEF(xdr_u_int)
-
-/*
- * XDR long integers
- * The definition of xdr_long() is kept for backward
- * compatibility. Instead xdr_int() should be used.
- */
-bool_t
-xdr_long (XDR *xdrs, long *lp)
-{
-
-  if (xdrs->x_op == XDR_ENCODE
-      && (sizeof (int32_t) == sizeof (long)
-         || (int32_t) *lp == *lp))
-    return XDR_PUTLONG (xdrs, lp);
-
-  if (xdrs->x_op == XDR_DECODE)
-    return XDR_GETLONG (xdrs, lp);
-
-  if (xdrs->x_op == XDR_FREE)
-    return TRUE;
-
-  return FALSE;
-}
-INTDEF(xdr_long)
-
-/*
- * XDR unsigned long integers
- * The definition of xdr_u_long() is kept for backward
- * compatibility. Instead xdr_u_int() should be used.
- */
-bool_t
-xdr_u_long (XDR *xdrs, u_long *ulp)
-{
-  switch (xdrs->x_op)
-    {
-    case XDR_DECODE:
-      {
-       long int tmp;
-
-       if (XDR_GETLONG (xdrs, &tmp) == FALSE)
-         return FALSE;
-
-       *ulp = (uint32_t) tmp;
-       return TRUE;
-      }
-
-    case XDR_ENCODE:
-      if (sizeof (uint32_t) != sizeof (u_long)
-         && (uint32_t) *ulp != *ulp)
-       return FALSE;
-
-      return XDR_PUTLONG (xdrs, (long *) ulp);
-
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_u_long)
-
-/*
- * XDR hyper integers
- * same as xdr_u_hyper - open coded to save a proc call!
- */
-bool_t
-xdr_hyper (XDR *xdrs, quad_t *llp)
-{
-  long int t1, t2;
-
-  if (xdrs->x_op == XDR_ENCODE)
-    {
-      t1 = (long) ((*llp) >> 32);
-      t2 = (long) (*llp);
-      return (XDR_PUTLONG(xdrs, &t1) && XDR_PUTLONG(xdrs, &t2));
-    }
-
-  if (xdrs->x_op == XDR_DECODE)
-    {
-      if (!XDR_GETLONG(xdrs, &t1) || !XDR_GETLONG(xdrs, &t2))
-       return FALSE;
-      *llp = ((quad_t) t1) << 32;
-      *llp |= (uint32_t) t2;
-      return TRUE;
-    }
-
-  if (xdrs->x_op == XDR_FREE)
-    return TRUE;
-
-  return FALSE;
-}
-INTDEF(xdr_hyper)
-
-
-/*
- * XDR hyper integers
- * same as xdr_hyper - open coded to save a proc call!
- */
-bool_t
-xdr_u_hyper (XDR *xdrs, u_quad_t *ullp)
-{
-  long int t1, t2;
-
-  if (xdrs->x_op == XDR_ENCODE)
-    {
-      t1 = (unsigned long) ((*ullp) >> 32);
-      t2 = (unsigned long) (*ullp);
-      return (XDR_PUTLONG(xdrs, &t1) && XDR_PUTLONG(xdrs, &t2));
-    }
-
-  if (xdrs->x_op == XDR_DECODE)
-    {
-      if (!XDR_GETLONG(xdrs, &t1) || !XDR_GETLONG(xdrs, &t2))
-       return FALSE;
-      *ullp = ((u_quad_t) t1) << 32;
-      *ullp |= (uint32_t) t2;
-      return TRUE;
-    }
-
-  if (xdrs->x_op == XDR_FREE)
-    return TRUE;
-
-  return FALSE;
-}
-INTDEF(xdr_u_hyper)
-
-bool_t
-xdr_longlong_t (XDR *xdrs, quad_t *llp)
-{
-  return INTUSE(xdr_hyper) (xdrs, llp);
-}
-
-bool_t
-xdr_u_longlong_t (XDR *xdrs, u_quad_t *ullp)
-{
-  return INTUSE(xdr_u_hyper) (xdrs, ullp);
-}
-
-/*
- * XDR short integers
- */
-bool_t
-xdr_short (XDR *xdrs, short *sp)
-{
-  long l;
-
-  switch (xdrs->x_op)
-    {
-    case XDR_ENCODE:
-      l = (long) *sp;
-      return XDR_PUTLONG (xdrs, &l);
-
-    case XDR_DECODE:
-      if (!XDR_GETLONG (xdrs, &l))
-       {
-         return FALSE;
-       }
-      *sp = (short) l;
-      return TRUE;
-
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_short)
-
-/*
- * XDR unsigned short integers
- */
-bool_t
-xdr_u_short (XDR *xdrs, u_short *usp)
-{
-  long l;
-
-  switch (xdrs->x_op)
-    {
-    case XDR_ENCODE:
-      l = (u_long) * usp;
-      return XDR_PUTLONG (xdrs, &l);
-
-    case XDR_DECODE:
-      if (!XDR_GETLONG (xdrs, &l))
-       {
-         return FALSE;
-       }
-      *usp = (u_short) (u_long) l;
-      return TRUE;
-
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_u_short)
-
-
-/*
- * XDR a char
- */
-bool_t
-xdr_char (XDR *xdrs, char *cp)
-{
-  int i;
-
-  i = (*cp);
-  if (!INTUSE(xdr_int) (xdrs, &i))
-    {
-      return FALSE;
-    }
-  *cp = i;
-  return TRUE;
-}
-
-/*
- * XDR an unsigned char
- */
-bool_t
-xdr_u_char (XDR *xdrs, u_char *cp)
-{
-  u_int u;
-
-  u = (*cp);
-  if (!INTUSE(xdr_u_int) (xdrs, &u))
-    {
-      return FALSE;
-    }
-  *cp = u;
-  return TRUE;
-}
-
-/*
- * XDR booleans
- */
-bool_t
-xdr_bool (XDR *xdrs, bool_t *bp)
-{
-  long lb;
-
-  switch (xdrs->x_op)
-    {
-    case XDR_ENCODE:
-      lb = *bp ? XDR_TRUE : XDR_FALSE;
-      return XDR_PUTLONG (xdrs, &lb);
-
-    case XDR_DECODE:
-      if (!XDR_GETLONG (xdrs, &lb))
-       {
-         return FALSE;
-       }
-      *bp = (lb == XDR_FALSE) ? FALSE : TRUE;
-      return TRUE;
-
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_bool)
-
-/*
- * XDR enumerations
- */
-bool_t
-xdr_enum (XDR *xdrs, enum_t *ep)
-{
-  enum sizecheck
-    {
-      SIZEVAL
-    };                         /* used to find the size of an enum */
-
-  /*
-   * enums are treated as ints
-   */
-  if (sizeof (enum sizecheck) == 4)
-    {
-#if INT_MAX < LONG_MAX
-      long l;
-
-      switch (xdrs->x_op)
-       {
-       case XDR_ENCODE:
-         l = *ep;
-         return XDR_PUTLONG (xdrs, &l);
-
-       case XDR_DECODE:
-         if (!XDR_GETLONG (xdrs, &l))
-           {
-             return FALSE;
-           }
-         *ep = l;
-       case XDR_FREE:
-         return TRUE;
-
-       }
-      return FALSE;
-#else
-      return INTUSE(xdr_long) (xdrs, (long *) ep);
-#endif
-    }
-  else if (sizeof (enum sizecheck) == sizeof (short))
-    {
-      return INTUSE(xdr_short) (xdrs, (short *) ep);
-    }
-  else
-    {
-      return FALSE;
-    }
-}
-INTDEF(xdr_enum)
-
-/*
- * XDR opaque data
- * Allows the specification of a fixed size sequence of opaque bytes.
- * cp points to the opaque object and cnt gives the byte length.
- */
-bool_t
-xdr_opaque (XDR *xdrs, caddr_t cp, u_int cnt)
-{
-  u_int rndup;
-  static char crud[BYTES_PER_XDR_UNIT];
-
-  /*
-   * if no data we are done
-   */
-  if (cnt == 0)
-    return TRUE;
-
-  /*
-   * round byte count to full xdr units
-   */
-  rndup = cnt % BYTES_PER_XDR_UNIT;
-  if (rndup > 0)
-    rndup = BYTES_PER_XDR_UNIT - rndup;
-
-  switch (xdrs->x_op)
-    {
-    case XDR_DECODE:
-      if (!XDR_GETBYTES (xdrs, cp, cnt))
-       {
-         return FALSE;
-       }
-      if (rndup == 0)
-       return TRUE;
-      return XDR_GETBYTES (xdrs, (caddr_t)crud, rndup);
-
-    case XDR_ENCODE:
-      if (!XDR_PUTBYTES (xdrs, cp, cnt))
-       {
-         return FALSE;
-       }
-      if (rndup == 0)
-       return TRUE;
-      return XDR_PUTBYTES (xdrs, xdr_zero, rndup);
-
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_opaque)
-
-/*
- * XDR counted bytes
- * *cpp is a pointer to the bytes, *sizep is the count.
- * If *cpp is NULL maxsize bytes are allocated
- */
-bool_t
-xdr_bytes (xdrs, cpp, sizep, maxsize)
-     XDR *xdrs;
-     char **cpp;
-     u_int *sizep;
-     u_int maxsize;
-{
-  char *sp = *cpp;     /* sp is the actual string pointer */
-  u_int nodesize;
-
-  /*
-   * first deal with the length since xdr bytes are counted
-   */
-  if (!INTUSE(xdr_u_int) (xdrs, sizep))
-    {
-      return FALSE;
-    }
-  nodesize = *sizep;
-  if ((nodesize > maxsize) && (xdrs->x_op != XDR_FREE))
-    {
-      return FALSE;
-    }
-
-  /*
-   * now deal with the actual bytes
-   */
-  switch (xdrs->x_op)
-    {
-    case XDR_DECODE:
-      if (nodesize == 0)
-       {
-         return TRUE;
-       }
-      if (sp == NULL)
-       {
-         *cpp = sp = (char *) mem_alloc (nodesize);
-       }
-      if (sp == NULL)
-       {
-         fprintf (NULL, "%s", "xdr_bytes: out of memory\n");
-         return FALSE;
-       }
-      /* fall into ... */
-
-    case XDR_ENCODE:
-      return INTUSE(xdr_opaque) (xdrs, sp, nodesize);
-
-    case XDR_FREE:
-      if (sp != NULL)
-       {
-         mem_free (sp, nodesize);
-         *cpp = NULL;
-       }
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_bytes)
-
-/*
- * Implemented here due to commonality of the object.
- */
-bool_t
-xdr_netobj (xdrs, np)
-     XDR *xdrs;
-     struct netobj *np;
-{
-
-  return INTUSE(xdr_bytes) (xdrs, &np->n_bytes, &np->n_len, MAX_NETOBJ_SZ);
-}
-INTDEF(xdr_netobj)
-
-/*
- * XDR a discriminated union
- * Support routine for discriminated unions.
- * You create an array of xdrdiscrim structures, terminated with
- * an entry with a null procedure pointer.  The routine gets
- * the discriminant value and then searches the array of xdrdiscrims
- * looking for that value.  It calls the procedure given in the xdrdiscrim
- * to handle the discriminant.  If there is no specific routine a default
- * routine may be called.
- * If there is no specific or default routine an error is returned.
- */
-bool_t
-xdr_union (xdrs, dscmp, unp, choices, dfault)
-     XDR *xdrs;
-     enum_t *dscmp;            /* enum to decide which arm to work on */
-     char *unp;                        /* the union itself */
-     const struct xdr_discrim *choices;        /* [value, xdr proc] for each arm */
-     xdrproc_t dfault;         /* default xdr routine */
-{
-  enum_t dscm;
-
-  /*
-   * we deal with the discriminator;  it's an enum
-   */
-  if (!INTUSE(xdr_enum) (xdrs, dscmp))
-    {
-      return FALSE;
-    }
-  dscm = *dscmp;
-
-  /*
-   * search choices for a value that matches the discriminator.
-   * if we find one, execute the xdr routine for that value.
-   */
-  for (; choices->proc != NULL_xdrproc_t; choices++)
-    {
-      if (choices->value == dscm)
-       return (*(choices->proc)) (xdrs, unp, LASTUNSIGNED);
-    }
-
-  /*
-   * no match - execute the default xdr routine if there is one
-   */
-  return ((dfault == NULL_xdrproc_t) ? FALSE :
-         (*dfault) (xdrs, unp, LASTUNSIGNED));
-}
-INTDEF(xdr_union)
-
-
-/*
- * Non-portable xdr primitives.
- * Care should be taken when moving these routines to new architectures.
- */
-
-
-/*
- * XDR null terminated ASCII strings
- * xdr_string deals with "C strings" - arrays of bytes that are
- * terminated by a NULL character.  The parameter cpp references a
- * pointer to storage; If the pointer is null, then the necessary
- * storage is allocated.  The last parameter is the max allowed length
- * of the string as specified by a protocol.
- */
-bool_t
-xdr_string (xdrs, cpp, maxsize)
-     XDR *xdrs;
-     char **cpp;
-     u_int maxsize;
-{
-  char *sp = *cpp;     /* sp is the actual string pointer */
-  u_int size;
-  u_int nodesize;
-
-  /*
-   * first deal with the length since xdr strings are counted-strings
-   */
-  switch (xdrs->x_op)
-    {
-    case XDR_FREE:
-      if (sp == NULL)
-       {
-         return TRUE;          /* already free */
-       }
-      /* fall through... */
-    case XDR_ENCODE:
-      if (sp == NULL)
-       return FALSE;
-      size = strlen (sp);
-      break;
-    case XDR_DECODE:
-      break;
-    }
-  if (!INTUSE(xdr_u_int) (xdrs, &size))
-    {
-      return FALSE;
-    }
-  if (size > maxsize)
-    {
-      return FALSE;
-    }
-  nodesize = size + 1;
-  if (nodesize == 0)
-    {
-      /* This means an overflow.  It a bug in the caller which
-        provided a too large maxsize but nevertheless catch it
-        here.  */
-      return FALSE;
-    }
-
-  /*
-   * now deal with the actual bytes
-   */
-  switch (xdrs->x_op)
-    {
-    case XDR_DECODE:
-      if (sp == NULL)
-       *cpp = sp = (char *) mem_alloc (nodesize);
-      if (sp == NULL)
-       {
-         fprintf (NULL, "%s", "xdr_string: out of memory\n");
-         return FALSE;
-       }
-      sp[size] = 0;
-      /* fall into ... */
-
-    case XDR_ENCODE:
-      return INTUSE(xdr_opaque) (xdrs, sp, size);
-
-    case XDR_FREE:
-      mem_free (sp, nodesize);
-      *cpp = NULL;
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_string)
-
-/*
- * Wrapper for xdr_string that can be called directly from
- * routines like clnt_call
- */
-bool_t
-xdr_wrapstring (xdrs, cpp)
-     XDR *xdrs;
-     char **cpp;
-{
-  if (INTUSE(xdr_string) (xdrs, cpp, LASTUNSIGNED))
-    {
-      return TRUE;
-    }
-  return FALSE;
-}
diff --git a/source/wham/src-M/xdrf.org/xdr.h b/source/wham/src-M/xdrf.org/xdr.h
deleted file mode 100644 (file)
index 2602ad9..0000000
+++ /dev/null
@@ -1,379 +0,0 @@
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-
-/*
- * xdr.h, External Data Representation Serialization Routines.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-#ifndef _RPC_XDR_H
-#define _RPC_XDR_H 1
-
-#include <features.h>
-#include <sys/types.h>
-#include "types.h"
-
-/* We need FILE.  */
-#include <stdio.h>
-
-__BEGIN_DECLS
-
-/*
- * XDR provides a conventional way for converting between C data
- * types and an external bit-string representation.  Library supplied
- * routines provide for the conversion on built-in C data types.  These
- * routines and utility routines defined here are used to help implement
- * a type encode/decode routine for each user-defined type.
- *
- * Each data type provides a single procedure which takes two arguments:
- *
- *      bool_t
- *      xdrproc(xdrs, argresp)
- *              XDR *xdrs;
- *              <type> *argresp;
- *
- * xdrs is an instance of a XDR handle, to which or from which the data
- * type is to be converted.  argresp is a pointer to the structure to be
- * converted.  The XDR handle contains an operation field which indicates
- * which of the operations (ENCODE, DECODE * or FREE) is to be performed.
- *
- * XDR_DECODE may allocate space if the pointer argresp is null.  This
- * data can be freed with the XDR_FREE operation.
- *
- * We write only one procedure per data type to make it easy
- * to keep the encode and decode procedures for a data type consistent.
- * In many cases the same code performs all operations on a user defined type,
- * because all the hard work is done in the component type routines.
- * decode as a series of calls on the nested data types.
- */
-
-/*
- * Xdr operations.  XDR_ENCODE causes the type to be encoded into the
- * stream.  XDR_DECODE causes the type to be extracted from the stream.
- * XDR_FREE can be used to release the space allocated by an XDR_DECODE
- * request.
- */
-enum xdr_op {
-  XDR_ENCODE = 0,
-  XDR_DECODE = 1,
-  XDR_FREE = 2
-};
-
-/*
- * This is the number of bytes per unit of external data.
- */
-#define BYTES_PER_XDR_UNIT     (4)
-/*
- * This only works if the above is a power of 2.  But it's defined to be
- * 4 by the appropriate RFCs.  So it will work.  And it's normally quicker
- * than the old routine.
- */
-#if 1
-#define RNDUP(x)  (((x) + BYTES_PER_XDR_UNIT - 1) & ~(BYTES_PER_XDR_UNIT - 1))
-#else /* this is the old routine */
-#define RNDUP(x)  ((((x) + BYTES_PER_XDR_UNIT - 1) / BYTES_PER_XDR_UNIT) \
-                   * BYTES_PER_XDR_UNIT)
-#endif
-
-/*
- * The XDR handle.
- * Contains operation which is being applied to the stream,
- * an operations vector for the particular implementation (e.g. see xdr_mem.c),
- * and two private fields for the use of the particular implementation.
- */
-typedef struct XDR XDR;
-struct XDR
-  {
-    enum xdr_op x_op;          /* operation; fast additional param */
-    struct xdr_ops
-      {
-       bool_t (*x_getlong) (XDR *__xdrs, long *__lp);
-       /* get a long from underlying stream */
-       bool_t (*x_putlong) (XDR *__xdrs, __const long *__lp);
-       /* put a long to " */
-       bool_t (*x_getbytes) (XDR *__xdrs, caddr_t __addr, u_int __len);
-       /* get some bytes from " */
-       bool_t (*x_putbytes) (XDR *__xdrs, __const char *__addr, u_int __len);
-       /* put some bytes to " */
-       u_int (*x_getpostn) (__const XDR *__xdrs);
-       /* returns bytes off from beginning */
-       bool_t (*x_setpostn) (XDR *__xdrs, u_int __pos);
-       /* lets you reposition the stream */
-       int32_t *(*x_inline) (XDR *__xdrs, u_int __len);
-       /* buf quick ptr to buffered data */
-       void (*x_destroy) (XDR *__xdrs);
-       /* free privates of this xdr_stream */
-       bool_t (*x_getint32) (XDR *__xdrs, int32_t *__ip);
-       /* get a int from underlying stream */
-       bool_t (*x_putint32) (XDR *__xdrs, __const int32_t *__ip);
-       /* put a int to " */
-      }
-     *x_ops;
-    caddr_t x_public;          /* users' data */
-    caddr_t x_private;         /* pointer to private data */
-    caddr_t x_base;            /* private used for position info */
-    u_int x_handy;             /* extra private word */
-  };
-
-/*
- * A xdrproc_t exists for each data type which is to be encoded or decoded.
- *
- * The second argument to the xdrproc_t is a pointer to an opaque pointer.
- * The opaque pointer generally points to a structure of the data type
- * to be decoded.  If this pointer is 0, then the type routines should
- * allocate dynamic storage of the appropriate size and return it.
- * bool_t       (*xdrproc_t)(XDR *, caddr_t *);
- */
-typedef bool_t (*xdrproc_t) (XDR *, void *,...);
-
-
-/*
- * Operations defined on a XDR handle
- *
- * XDR          *xdrs;
- * int32_t      *int32p;
- * long         *longp;
- * caddr_t       addr;
- * u_int         len;
- * u_int         pos;
- */
-#define XDR_GETINT32(xdrs, int32p)                      \
-        (*(xdrs)->x_ops->x_getint32)(xdrs, int32p)
-#define xdr_getint32(xdrs, int32p)                      \
-        (*(xdrs)->x_ops->x_getint32)(xdrs, int32p)
-
-#define XDR_PUTINT32(xdrs, int32p)                      \
-        (*(xdrs)->x_ops->x_putint32)(xdrs, int32p)
-#define xdr_putint32(xdrs, int32p)                      \
-        (*(xdrs)->x_ops->x_putint32)(xdrs, int32p)
-
-#define XDR_GETLONG(xdrs, longp)                       \
-       (*(xdrs)->x_ops->x_getlong)(xdrs, longp)
-#define xdr_getlong(xdrs, longp)                       \
-       (*(xdrs)->x_ops->x_getlong)(xdrs, longp)
-
-#define XDR_PUTLONG(xdrs, longp)                       \
-       (*(xdrs)->x_ops->x_putlong)(xdrs, longp)
-#define xdr_putlong(xdrs, longp)                       \
-       (*(xdrs)->x_ops->x_putlong)(xdrs, longp)
-
-#define XDR_GETBYTES(xdrs, addr, len)                  \
-       (*(xdrs)->x_ops->x_getbytes)(xdrs, addr, len)
-#define xdr_getbytes(xdrs, addr, len)                  \
-       (*(xdrs)->x_ops->x_getbytes)(xdrs, addr, len)
-
-#define XDR_PUTBYTES(xdrs, addr, len)                  \
-       (*(xdrs)->x_ops->x_putbytes)(xdrs, addr, len)
-#define xdr_putbytes(xdrs, addr, len)                  \
-       (*(xdrs)->x_ops->x_putbytes)(xdrs, addr, len)
-
-#define XDR_GETPOS(xdrs)                               \
-       (*(xdrs)->x_ops->x_getpostn)(xdrs)
-#define xdr_getpos(xdrs)                               \
-       (*(xdrs)->x_ops->x_getpostn)(xdrs)
-
-#define XDR_SETPOS(xdrs, pos)                          \
-       (*(xdrs)->x_ops->x_setpostn)(xdrs, pos)
-#define xdr_setpos(xdrs, pos)                          \
-       (*(xdrs)->x_ops->x_setpostn)(xdrs, pos)
-
-#define        XDR_INLINE(xdrs, len)                           \
-       (*(xdrs)->x_ops->x_inline)(xdrs, len)
-#define        xdr_inline(xdrs, len)                           \
-       (*(xdrs)->x_ops->x_inline)(xdrs, len)
-
-#define        XDR_DESTROY(xdrs)                                       \
-       do {                                                    \
-               if ((xdrs)->x_ops->x_destroy)                   \
-                       (*(xdrs)->x_ops->x_destroy)(xdrs);      \
-       } while (0)
-#define        xdr_destroy(xdrs)                                       \
-       do {                                                    \
-               if ((xdrs)->x_ops->x_destroy)                   \
-                       (*(xdrs)->x_ops->x_destroy)(xdrs);      \
-       } while (0)
-
-/*
- * Support struct for discriminated unions.
- * You create an array of xdrdiscrim structures, terminated with
- * a entry with a null procedure pointer.  The xdr_union routine gets
- * the discriminant value and then searches the array of structures
- * for a matching value.  If a match is found the associated xdr routine
- * is called to handle that part of the union.  If there is
- * no match, then a default routine may be called.
- * If there is no match and no default routine it is an error.
- */
-#define NULL_xdrproc_t ((xdrproc_t)0)
-struct xdr_discrim
-{
-  int value;
-  xdrproc_t proc;
-};
-
-/*
- * Inline routines for fast encode/decode of primitive data types.
- * Caveat emptor: these use single memory cycles to get the
- * data from the underlying buffer, and will fail to operate
- * properly if the data is not aligned.  The standard way to use these
- * is to say:
- *      if ((buf = XDR_INLINE(xdrs, count)) == NULL)
- *              return (FALSE);
- *      <<< macro calls >>>
- * where ``count'' is the number of bytes of data occupied
- * by the primitive data types.
- *
- * N.B. and frozen for all time: each data type here uses 4 bytes
- * of external representation.
- */
-
-#define IXDR_GET_INT32(buf)           ((int32_t)ntohl((uint32_t)*(buf)++))
-#define IXDR_PUT_INT32(buf, v)        (*(buf)++ = (int32_t)htonl((uint32_t)(v)))
-#define IXDR_GET_U_INT32(buf)         ((uint32_t)IXDR_GET_INT32(buf))
-#define IXDR_PUT_U_INT32(buf, v)      IXDR_PUT_INT32(buf, (int32_t)(v))
-
-/* WARNING: The IXDR_*_LONG defines are removed by Sun for new platforms
- * and shouldn't be used any longer. Code which use this defines or longs
- * in the RPC code will not work on 64bit Solaris platforms !
- */
-#define IXDR_GET_LONG(buf) ((long)IXDR_GET_U_INT32(buf))
-#define IXDR_PUT_LONG(buf, v) ((long)IXDR_PUT_INT32(buf, (long)(v)))
-#define IXDR_GET_U_LONG(buf)         ((u_long)IXDR_GET_LONG(buf))
-#define IXDR_PUT_U_LONG(buf, v)              IXDR_PUT_LONG(buf, (long)(v))
-
-
-#define IXDR_GET_BOOL(buf)            ((bool_t)IXDR_GET_LONG(buf))
-#define IXDR_GET_ENUM(buf, t)         ((t)IXDR_GET_LONG(buf))
-#define IXDR_GET_SHORT(buf)           ((short)IXDR_GET_LONG(buf))
-#define IXDR_GET_U_SHORT(buf)         ((u_short)IXDR_GET_LONG(buf))
-
-#define IXDR_PUT_BOOL(buf, v)         IXDR_PUT_LONG(buf, (long)(v))
-#define IXDR_PUT_ENUM(buf, v)         IXDR_PUT_LONG(buf, (long)(v))
-#define IXDR_PUT_SHORT(buf, v)        IXDR_PUT_LONG(buf, (long)(v))
-#define IXDR_PUT_U_SHORT(buf, v)      IXDR_PUT_LONG(buf, (long)(v))
-
-/*
- * These are the "generic" xdr routines.
- * None of these can have const applied because it's not possible to
- * know whether the call is a read or a write to the passed parameter
- * also, the XDR structure is always updated by some of these calls.
- */
-extern bool_t xdr_void (void) __THROW;
-extern bool_t xdr_short (XDR *__xdrs, short *__sp) __THROW;
-extern bool_t xdr_u_short (XDR *__xdrs, u_short *__usp) __THROW;
-extern bool_t xdr_int (XDR *__xdrs, int *__ip) __THROW;
-extern bool_t xdr_u_int (XDR *__xdrs, u_int *__up) __THROW;
-extern bool_t xdr_long (XDR *__xdrs, long *__lp) __THROW;
-extern bool_t xdr_u_long (XDR *__xdrs, u_long *__ulp) __THROW;
-extern bool_t xdr_hyper (XDR *__xdrs, quad_t *__llp) __THROW;
-extern bool_t xdr_u_hyper (XDR *__xdrs, u_quad_t *__ullp) __THROW;
-extern bool_t xdr_longlong_t (XDR *__xdrs, quad_t *__llp) __THROW;
-extern bool_t xdr_u_longlong_t (XDR *__xdrs, u_quad_t *__ullp) __THROW;
-extern bool_t xdr_int8_t (XDR *__xdrs, int8_t *__ip) __THROW;
-extern bool_t xdr_uint8_t (XDR *__xdrs, uint8_t *__up) __THROW;
-extern bool_t xdr_int16_t (XDR *__xdrs, int16_t *__ip) __THROW;
-extern bool_t xdr_uint16_t (XDR *__xdrs, uint16_t *__up) __THROW;
-extern bool_t xdr_int32_t (XDR *__xdrs, int32_t *__ip) __THROW;
-extern bool_t xdr_uint32_t (XDR *__xdrs, uint32_t *__up) __THROW;
-extern bool_t xdr_int64_t (XDR *__xdrs, int64_t *__ip) __THROW;
-extern bool_t xdr_uint64_t (XDR *__xdrs, uint64_t *__up) __THROW;
-extern bool_t xdr_quad_t (XDR *__xdrs, quad_t *__ip) __THROW;
-extern bool_t xdr_u_quad_t (XDR *__xdrs, u_quad_t *__up) __THROW;
-extern bool_t xdr_bool (XDR *__xdrs, bool_t *__bp) __THROW;
-extern bool_t xdr_enum (XDR *__xdrs, enum_t *__ep) __THROW;
-extern bool_t xdr_array (XDR * _xdrs, caddr_t *__addrp, u_int *__sizep,
-                        u_int __maxsize, u_int __elsize, xdrproc_t __elproc)
-     __THROW;
-extern bool_t xdr_bytes (XDR *__xdrs, char **__cpp, u_int *__sizep,
-                        u_int __maxsize) __THROW;
-extern bool_t xdr_opaque (XDR *__xdrs, caddr_t __cp, u_int __cnt) __THROW;
-extern bool_t xdr_string (XDR *__xdrs, char **__cpp, u_int __maxsize) __THROW;
-extern bool_t xdr_union (XDR *__xdrs, enum_t *__dscmp, char *__unp,
-                        __const struct xdr_discrim *__choices,
-                        xdrproc_t dfault) __THROW;
-extern bool_t xdr_char (XDR *__xdrs, char *__cp) __THROW;
-extern bool_t xdr_u_char (XDR *__xdrs, u_char *__cp) __THROW;
-extern bool_t xdr_vector (XDR *__xdrs, char *__basep, u_int __nelem,
-                         u_int __elemsize, xdrproc_t __xdr_elem) __THROW;
-extern bool_t xdr_float (XDR *__xdrs, float *__fp) __THROW;
-extern bool_t xdr_double (XDR *__xdrs, double *__dp) __THROW;
-extern bool_t xdr_reference (XDR *__xdrs, caddr_t *__xpp, u_int __size,
-                            xdrproc_t __proc) __THROW;
-extern bool_t xdr_pointer (XDR *__xdrs, char **__objpp,
-                          u_int __obj_size, xdrproc_t __xdr_obj) __THROW;
-extern bool_t xdr_wrapstring (XDR *__xdrs, char **__cpp) __THROW;
-extern u_long xdr_sizeof (xdrproc_t, void *) __THROW;
-
-/*
- * Common opaque bytes objects used by many rpc protocols;
- * declared here due to commonality.
- */
-#define MAX_NETOBJ_SZ 1024
-struct netobj
-{
-  u_int n_len;
-  char *n_bytes;
-};
-typedef struct netobj netobj;
-extern bool_t xdr_netobj (XDR *__xdrs, struct netobj *__np) __THROW;
-
-/*
- * These are the public routines for the various implementations of
- * xdr streams.
- */
-
-/* XDR using memory buffers */
-extern void xdrmem_create (XDR *__xdrs, __const caddr_t __addr,
-                          u_int __size, enum xdr_op __xop) __THROW;
-
-/* XDR using stdio library */
-extern void xdrstdio_create (XDR *__xdrs, FILE *__file, enum xdr_op __xop)
-     __THROW;
-
-/* XDR pseudo records for tcp */
-extern void xdrrec_create (XDR *__xdrs, u_int __sendsize,
-                          u_int __recvsize, caddr_t __tcp_handle,
-                          int (*__readit) (char *, char *, int),
-                          int (*__writeit) (char *, char *, int)) __THROW;
-
-/* make end of xdr record */
-extern bool_t xdrrec_endofrecord (XDR *__xdrs, bool_t __sendnow) __THROW;
-
-/* move to beginning of next record */
-extern bool_t xdrrec_skiprecord (XDR *__xdrs) __THROW;
-
-/* true if no more input */
-extern bool_t xdrrec_eof (XDR *__xdrs) __THROW;
-
-/* free memory buffers for xdr */
-extern void xdr_free (xdrproc_t __proc, char *__objp) __THROW;
-
-__END_DECLS
-
-#endif /* rpc/xdr.h */
diff --git a/source/wham/src-M/xdrf.org/xdr.o b/source/wham/src-M/xdrf.org/xdr.o
deleted file mode 100644 (file)
index 913a61c..0000000
Binary files a/source/wham/src-M/xdrf.org/xdr.o and /dev/null differ
diff --git a/source/wham/src-M/xdrf.org/xdr_array.c b/source/wham/src-M/xdrf.org/xdr_array.c
deleted file mode 100644 (file)
index 836405c..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-# define INTUSE(name) name
-# define INTDEF(name)
-/* @(#)xdr_array.c     2.1 88/07/29 4.0 RPCSRC */
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)xdr_array.c 1.10 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * xdr_array.c, Generic XDR routines implementation.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- * These are the "non-trivial" xdr primitives used to serialize and de-serialize
- * arrays.  See xdr.h for more info on the interface to xdr.
- */
-
-#include <stdio.h>
-#include <string.h>
-#include "types.h"
-#include "xdr.h"
-#include <libintl.h>
-#include <limits.h>
-
-#ifdef USE_IN_LIBIO
-# include <wchar.h>
-#endif
-
-#define LASTUNSIGNED   ((u_int)0-1)
-
-
-/*
- * XDR an array of arbitrary elements
- * *addrp is a pointer to the array, *sizep is the number of elements.
- * If addrp is NULL (*sizep * elsize) bytes are allocated.
- * elsize is the size (in bytes) of each element, and elproc is the
- * xdr procedure to call to handle each element of the array.
- */
-bool_t
-xdr_array (xdrs, addrp, sizep, maxsize, elsize, elproc)
-     XDR *xdrs;
-     caddr_t *addrp;           /* array pointer */
-     u_int *sizep;             /* number of elements */
-     u_int maxsize;            /* max numberof elements */
-     u_int elsize;             /* size in bytes of each element */
-     xdrproc_t elproc;         /* xdr routine to handle each element */
-{
-  u_int i;
-  caddr_t target = *addrp;
-  u_int c;             /* the actual element count */
-  bool_t stat = TRUE;
-  u_int nodesize;
-
-  /* like strings, arrays are really counted arrays */
-  if (!INTUSE(xdr_u_int) (xdrs, sizep))
-    {
-      return FALSE;
-    }
-  c = *sizep;
-  /*
-   * XXX: Let the overflow possibly happen with XDR_FREE because mem_free()
-   * doesn't actually use its second argument anyway.
-   */
-  if ((c > maxsize || c > UINT_MAX / elsize) && (xdrs->x_op != XDR_FREE))
-    {
-      return FALSE;
-    }
-  nodesize = c * elsize;
-
-  /*
-   * if we are deserializing, we may need to allocate an array.
-   * We also save time by checking for a null array if we are freeing.
-   */
-  if (target == NULL)
-    switch (xdrs->x_op)
-      {
-      case XDR_DECODE:
-       if (c == 0)
-         return TRUE;
-       *addrp = target = mem_alloc (nodesize);
-       if (target == NULL)
-         {
-           fprintf (stderr, "%s", "xdr_array: out of memory\n");
-           return FALSE;
-         }
-       __bzero (target, nodesize);
-       break;
-
-      case XDR_FREE:
-       return TRUE;
-      default:
-       break;
-      }
-
-  /*
-   * now we xdr each element of array
-   */
-  for (i = 0; (i < c) && stat; i++)
-    {
-      stat = (*elproc) (xdrs, target, LASTUNSIGNED);
-      target += elsize;
-    }
-
-  /*
-   * the array may need freeing
-   */
-  if (xdrs->x_op == XDR_FREE)
-    {
-      mem_free (*addrp, nodesize);
-      *addrp = NULL;
-    }
-  return stat;
-}
-INTDEF(xdr_array)
-
-/*
- * xdr_vector():
- *
- * XDR a fixed length array. Unlike variable-length arrays,
- * the storage of fixed length arrays is static and unfreeable.
- * > basep: base of the array
- * > size: size of the array
- * > elemsize: size of each element
- * > xdr_elem: routine to XDR each element
- */
-bool_t
-xdr_vector (xdrs, basep, nelem, elemsize, xdr_elem)
-     XDR *xdrs;
-     char *basep;
-     u_int nelem;
-     u_int elemsize;
-     xdrproc_t xdr_elem;
-{
-  u_int i;
-  char *elptr;
-
-  elptr = basep;
-  for (i = 0; i < nelem; i++)
-    {
-      if (!(*xdr_elem) (xdrs, elptr, LASTUNSIGNED))
-       {
-         return FALSE;
-       }
-      elptr += elemsize;
-    }
-  return TRUE;
-}
diff --git a/source/wham/src-M/xdrf.org/xdr_array.o b/source/wham/src-M/xdrf.org/xdr_array.o
deleted file mode 100644 (file)
index 7526a6f..0000000
Binary files a/source/wham/src-M/xdrf.org/xdr_array.o and /dev/null differ
diff --git a/source/wham/src-M/xdrf.org/xdr_float.c b/source/wham/src-M/xdrf.org/xdr_float.c
deleted file mode 100644 (file)
index 15d3c88..0000000
+++ /dev/null
@@ -1,307 +0,0 @@
-/* @(#)xdr_float.c     2.1 88/07/29 4.0 RPCSRC */
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)xdr_float.c 1.12 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * xdr_float.c, Generic XDR routines implementation.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- * These are the "floating point" xdr routines used to (de)serialize
- * most common data items.  See xdr.h for more info on the interface to
- * xdr.
- */
-
-#include <stdio.h>
-#include <endian.h>
-
-#include "types.h"
-#include "xdr.h"
-
-/*
- * NB: Not portable.
- * This routine works on Suns (Sky / 68000's) and Vaxen.
- */
-
-#define LSW    (__FLOAT_WORD_ORDER == __BIG_ENDIAN)
-
-#ifdef vax
-
-/* What IEEE single precision floating point looks like on a Vax */
-struct ieee_single {
-       unsigned int    mantissa: 23;
-       unsigned int    exp     : 8;
-       unsigned int    sign    : 1;
-};
-
-/* Vax single precision floating point */
-struct vax_single {
-       unsigned int    mantissa1 : 7;
-       unsigned int    exp       : 8;
-       unsigned int    sign      : 1;
-       unsigned int    mantissa2 : 16;
-};
-
-#define VAX_SNG_BIAS   0x81
-#define IEEE_SNG_BIAS  0x7f
-
-static struct sgl_limits {
-       struct vax_single s;
-       struct ieee_single ieee;
-} sgl_limits[2] = {
-       {{ 0x7f, 0xff, 0x0, 0xffff },   /* Max Vax */
-       { 0x0, 0xff, 0x0 }},            /* Max IEEE */
-       {{ 0x0, 0x0, 0x0, 0x0 },        /* Min Vax */
-       { 0x0, 0x0, 0x0 }}              /* Min IEEE */
-};
-#endif /* vax */
-
-bool_t
-xdr_float(xdrs, fp)
-     XDR *xdrs;
-     float *fp;
-{
-#ifdef vax
-       struct ieee_single is;
-       struct vax_single vs, *vsp;
-       struct sgl_limits *lim;
-       int i;
-#endif
-       switch (xdrs->x_op) {
-
-       case XDR_ENCODE:
-#ifdef vax
-               vs = *((struct vax_single *)fp);
-               for (i = 0, lim = sgl_limits;
-                       i < sizeof(sgl_limits)/sizeof(struct sgl_limits);
-                       i++, lim++) {
-                       if ((vs.mantissa2 == lim->s.mantissa2) &&
-                               (vs.exp == lim->s.exp) &&
-                               (vs.mantissa1 == lim->s.mantissa1)) {
-                               is = lim->ieee;
-                               goto shipit;
-                       }
-               }
-               is.exp = vs.exp - VAX_SNG_BIAS + IEEE_SNG_BIAS;
-               is.mantissa = (vs.mantissa1 << 16) | vs.mantissa2;
-       shipit:
-               is.sign = vs.sign;
-               return (XDR_PUTLONG(xdrs, (long *)&is));
-#else
-               if (sizeof(float) == sizeof(long))
-                       return (XDR_PUTLONG(xdrs, (long *)fp));
-               else if (sizeof(float) == sizeof(int)) {
-                       long tmp = *(int *)fp;
-                       return (XDR_PUTLONG(xdrs, &tmp));
-               }
-               break;
-#endif
-
-       case XDR_DECODE:
-#ifdef vax
-               vsp = (struct vax_single *)fp;
-               if (!XDR_GETLONG(xdrs, (long *)&is))
-                       return (FALSE);
-               for (i = 0, lim = sgl_limits;
-                       i < sizeof(sgl_limits)/sizeof(struct sgl_limits);
-                       i++, lim++) {
-                       if ((is.exp == lim->ieee.exp) &&
-                               (is.mantissa == lim->ieee.mantissa)) {
-                               *vsp = lim->s;
-                               goto doneit;
-                       }
-               }
-               vsp->exp = is.exp - IEEE_SNG_BIAS + VAX_SNG_BIAS;
-               vsp->mantissa2 = is.mantissa;
-               vsp->mantissa1 = (is.mantissa >> 16);
-       doneit:
-               vsp->sign = is.sign;
-               return (TRUE);
-#else
-               if (sizeof(float) == sizeof(long))
-                       return (XDR_GETLONG(xdrs, (long *)fp));
-               else if (sizeof(float) == sizeof(int)) {
-                       long tmp;
-                       if (XDR_GETLONG(xdrs, &tmp)) {
-                               *(int *)fp = tmp;
-                               return (TRUE);
-                       }
-               }
-               break;
-#endif
-
-       case XDR_FREE:
-               return (TRUE);
-       }
-       return (FALSE);
-}
-
-/*
- * This routine works on Suns (Sky / 68000's) and Vaxen.
- */
-
-#ifdef vax
-/* What IEEE double precision floating point looks like on a Vax */
-struct ieee_double {
-       unsigned int    mantissa1 : 20;
-       unsigned int    exp       : 11;
-       unsigned int    sign      : 1;
-       unsigned int    mantissa2 : 32;
-};
-
-/* Vax double precision floating point */
-struct  vax_double {
-       unsigned int    mantissa1 : 7;
-       unsigned int    exp       : 8;
-       unsigned int    sign      : 1;
-       unsigned int    mantissa2 : 16;
-       unsigned int    mantissa3 : 16;
-       unsigned int    mantissa4 : 16;
-};
-
-#define VAX_DBL_BIAS   0x81
-#define IEEE_DBL_BIAS  0x3ff
-#define MASK(nbits)    ((1 << nbits) - 1)
-
-static struct dbl_limits {
-       struct  vax_double d;
-       struct  ieee_double ieee;
-} dbl_limits[2] = {
-       {{ 0x7f, 0xff, 0x0, 0xffff, 0xffff, 0xffff },   /* Max Vax */
-       { 0x0, 0x7ff, 0x0, 0x0 }},                      /* Max IEEE */
-       {{ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},               /* Min Vax */
-       { 0x0, 0x0, 0x0, 0x0 }}                         /* Min IEEE */
-};
-
-#endif /* vax */
-
-
-bool_t
-xdr_double(xdrs, dp)
-     XDR *xdrs;
-     double *dp;
-{
-#ifdef vax
-       struct  ieee_double id;
-       struct  vax_double vd;
-       register struct dbl_limits *lim;
-       int i;
-#endif
-
-       switch (xdrs->x_op) {
-
-       case XDR_ENCODE:
-#ifdef vax
-               vd = *((struct vax_double *)dp);
-               for (i = 0, lim = dbl_limits;
-                       i < sizeof(dbl_limits)/sizeof(struct dbl_limits);
-                       i++, lim++) {
-                       if ((vd.mantissa4 == lim->d.mantissa4) &&
-                               (vd.mantissa3 == lim->d.mantissa3) &&
-                               (vd.mantissa2 == lim->d.mantissa2) &&
-                               (vd.mantissa1 == lim->d.mantissa1) &&
-                               (vd.exp == lim->d.exp)) {
-                               id = lim->ieee;
-                               goto shipit;
-                       }
-               }
-               id.exp = vd.exp - VAX_DBL_BIAS + IEEE_DBL_BIAS;
-               id.mantissa1 = (vd.mantissa1 << 13) | (vd.mantissa2 >> 3);
-               id.mantissa2 = ((vd.mantissa2 & MASK(3)) << 29) |
-                               (vd.mantissa3 << 13) |
-                               ((vd.mantissa4 >> 3) & MASK(13));
-       shipit:
-               id.sign = vd.sign;
-               dp = (double *)&id;
-#endif
-               if (2*sizeof(long) == sizeof(double)) {
-                       long *lp = (long *)dp;
-                       return (XDR_PUTLONG(xdrs, lp+!LSW) &&
-                               XDR_PUTLONG(xdrs, lp+LSW));
-               } else if (2*sizeof(int) == sizeof(double)) {
-                       int *ip = (int *)dp;
-                       long tmp[2];
-                       tmp[0] = ip[!LSW];
-                       tmp[1] = ip[LSW];
-                       return (XDR_PUTLONG(xdrs, tmp) &&
-                               XDR_PUTLONG(xdrs, tmp+1));
-               }
-               break;
-
-       case XDR_DECODE:
-#ifdef vax
-               lp = (long *)&id;
-               if (!XDR_GETLONG(xdrs, lp++) || !XDR_GETLONG(xdrs, lp))
-                       return (FALSE);
-               for (i = 0, lim = dbl_limits;
-                       i < sizeof(dbl_limits)/sizeof(struct dbl_limits);
-                       i++, lim++) {
-                       if ((id.mantissa2 == lim->ieee.mantissa2) &&
-                               (id.mantissa1 == lim->ieee.mantissa1) &&
-                               (id.exp == lim->ieee.exp)) {
-                               vd = lim->d;
-                               goto doneit;
-                       }
-               }
-               vd.exp = id.exp - IEEE_DBL_BIAS + VAX_DBL_BIAS;
-               vd.mantissa1 = (id.mantissa1 >> 13);
-               vd.mantissa2 = ((id.mantissa1 & MASK(13)) << 3) |
-                               (id.mantissa2 >> 29);
-               vd.mantissa3 = (id.mantissa2 >> 13);
-               vd.mantissa4 = (id.mantissa2 << 3);
-       doneit:
-               vd.sign = id.sign;
-               *dp = *((double *)&vd);
-               return (TRUE);
-#else
-               if (2*sizeof(long) == sizeof(double)) {
-                       long *lp = (long *)dp;
-                       return (XDR_GETLONG(xdrs, lp+!LSW) &&
-                               XDR_GETLONG(xdrs, lp+LSW));
-               } else if (2*sizeof(int) == sizeof(double)) {
-                       int *ip = (int *)dp;
-                       long tmp[2];
-                       if (XDR_GETLONG(xdrs, tmp+!LSW) &&
-                           XDR_GETLONG(xdrs, tmp+LSW)) {
-                               ip[0] = tmp[0];
-                               ip[1] = tmp[1];
-                               return (TRUE);
-                       }
-               }
-               break;
-#endif
-
-       case XDR_FREE:
-               return (TRUE);
-       }
-       return (FALSE);
-}
diff --git a/source/wham/src-M/xdrf.org/xdr_float.o b/source/wham/src-M/xdrf.org/xdr_float.o
deleted file mode 100644 (file)
index ce1fabd..0000000
Binary files a/source/wham/src-M/xdrf.org/xdr_float.o and /dev/null differ
diff --git a/source/wham/src-M/xdrf.org/xdr_stdio.c b/source/wham/src-M/xdrf.org/xdr_stdio.c
deleted file mode 100644 (file)
index 12b1709..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-
-/*
- * xdr_stdio.c, XDR implementation on standard i/o file.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- * This set of routines implements a XDR on a stdio stream.
- * XDR_ENCODE serializes onto the stream, XDR_DECODE de-serializes
- * from the stream.
- */
-
-#include "types.h"
-#include <stdio.h>
-#include "xdr.h"
-
-#ifdef USE_IN_LIBIO
-# include <libio/iolibio.h>
-# define fflush(s) INTUSE(_IO_fflush) (s)
-# define fread(p, m, n, s) INTUSE(_IO_fread) (p, m, n, s)
-# define ftell(s) INTUSE(_IO_ftell) (s)
-# define fwrite(p, m, n, s) INTUSE(_IO_fwrite) (p, m, n, s)
-#endif
-
-static bool_t xdrstdio_getlong (XDR *, long *);
-static bool_t xdrstdio_putlong (XDR *, const long *);
-static bool_t xdrstdio_getbytes (XDR *, caddr_t, u_int);
-static bool_t xdrstdio_putbytes (XDR *, const char *, u_int);
-static u_int xdrstdio_getpos (const XDR *);
-static bool_t xdrstdio_setpos (XDR *, u_int);
-static int32_t *xdrstdio_inline (XDR *, u_int);
-static void xdrstdio_destroy (XDR *);
-static bool_t xdrstdio_getint32 (XDR *, int32_t *);
-static bool_t xdrstdio_putint32 (XDR *, const int32_t *);
-
-/*
- * Ops vector for stdio type XDR
- */
-static const struct xdr_ops xdrstdio_ops =
-{
-  xdrstdio_getlong,            /* deserialize a long int */
-  xdrstdio_putlong,            /* serialize a long int */
-  xdrstdio_getbytes,           /* deserialize counted bytes */
-  xdrstdio_putbytes,           /* serialize counted bytes */
-  xdrstdio_getpos,             /* get offset in the stream */
-  xdrstdio_setpos,             /* set offset in the stream */
-  xdrstdio_inline,             /* prime stream for inline macros */
-  xdrstdio_destroy,            /* destroy stream */
-  xdrstdio_getint32,           /* deserialize a int */
-  xdrstdio_putint32            /* serialize a int */
-};
-
-/*
- * Initialize a stdio xdr stream.
- * Sets the xdr stream handle xdrs for use on the stream file.
- * Operation flag is set to op.
- */
-void
-xdrstdio_create (XDR *xdrs, FILE *file, enum xdr_op op)
-{
-  xdrs->x_op = op;
-  /* We have to add the const since the `struct xdr_ops' in `struct XDR'
-     is not `const'.  */
-  xdrs->x_ops = (struct xdr_ops *) &xdrstdio_ops;
-  xdrs->x_private = (caddr_t) file;
-  xdrs->x_handy = 0;
-  xdrs->x_base = 0;
-}
-
-/*
- * Destroy a stdio xdr stream.
- * Cleans up the xdr stream handle xdrs previously set up by xdrstdio_create.
- */
-static void
-xdrstdio_destroy (XDR *xdrs)
-{
-  (void) fflush ((FILE *) xdrs->x_private);
-  /* xx should we close the file ?? */
-};
-
-static bool_t
-xdrstdio_getlong (XDR *xdrs, long *lp)
-{
-  u_int32_t mycopy;
-
-  if (fread ((caddr_t) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1)
-    return FALSE;
-  *lp = (long) ntohl (mycopy);
-  return TRUE;
-}
-
-static bool_t
-xdrstdio_putlong (XDR *xdrs, const long *lp)
-{
-  int32_t mycopy = htonl ((u_int32_t) *lp);
-
-  if (fwrite ((caddr_t) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1)
-    return FALSE;
-  return TRUE;
-}
-
-static bool_t
-xdrstdio_getbytes (XDR *xdrs, const caddr_t addr, u_int len)
-{
-  if ((len != 0) && (fread (addr, (int) len, 1,
-                           (FILE *) xdrs->x_private) != 1))
-    return FALSE;
-  return TRUE;
-}
-
-static bool_t
-xdrstdio_putbytes (XDR *xdrs, const char *addr, u_int len)
-{
-  if ((len != 0) && (fwrite (addr, (int) len, 1,
-                            (FILE *) xdrs->x_private) != 1))
-    return FALSE;
-  return TRUE;
-}
-
-static u_int
-xdrstdio_getpos (const XDR *xdrs)
-{
-  return (u_int) ftell ((FILE *) xdrs->x_private);
-}
-
-static bool_t
-xdrstdio_setpos (XDR *xdrs, u_int pos)
-{
-  return fseek ((FILE *) xdrs->x_private, (long) pos, 0) < 0 ? FALSE : TRUE;
-}
-
-static int32_t *
-xdrstdio_inline (XDR *xdrs, u_int len)
-{
-  /*
-   * Must do some work to implement this: must insure
-   * enough data in the underlying stdio buffer,
-   * that the buffer is aligned so that we can indirect through a
-   * long *, and stuff this pointer in xdrs->x_buf.  Doing
-   * a fread or fwrite to a scratch buffer would defeat
-   * most of the gains to be had here and require storage
-   * management on this buffer, so we don't do this.
-   */
-  return NULL;
-}
-
-static bool_t
-xdrstdio_getint32 (XDR *xdrs, int32_t *ip)
-{
-  int32_t mycopy;
-
-  if (fread ((caddr_t) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1)
-    return FALSE;
-  *ip = ntohl (mycopy);
-  return TRUE;
-}
-
-static bool_t
-xdrstdio_putint32 (XDR *xdrs, const int32_t *ip)
-{
-  int32_t mycopy = htonl (*ip);
-
-  ip = &mycopy;
-  if (fwrite ((caddr_t) ip, 4, 1, (FILE *) xdrs->x_private) != 1)
-    return FALSE;
-  return TRUE;
-}
-
-/* libc_hidden_def (xdrstdio_create) */
diff --git a/source/wham/src-M/xdrf.org/xdr_stdio.o b/source/wham/src-M/xdrf.org/xdr_stdio.o
deleted file mode 100644 (file)
index 6bb7365..0000000
Binary files a/source/wham/src-M/xdrf.org/xdr_stdio.o and /dev/null differ
diff --git a/source/wham/src-M/xdrf.org/xdrf.h b/source/wham/src-M/xdrf.org/xdrf.h
deleted file mode 100644 (file)
index dedf5a2..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-/*_________________________________________________________________
- |
- | xdrf.h - include file for C routines that want to use the 
- |         functions below.
-*/
-
-int xdropen(XDR *xdrs, const char *filename, const char *type);
-int xdrclose(XDR *xdrs) ;
-int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) ;
-
diff --git a/source/wham/src-M/xdrf/Makefile b/source/wham/src-M/xdrf/Makefile
deleted file mode 100644 (file)
index f03276e..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-# This make file is part of the xdrf package.
-#
-# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-#
-# 2006 modified by Cezary Czaplewski
-
-# Set C compiler and flags for ARCH
-CC      = cc
-CFLAGS         = -O 
-
-M4     = m4
-M4FILE = underscore.m4
-
-libxdrf.a:  libxdrf.o ftocstr.o
-       ar cr libxdrf.a $?
-
-clean:
-       rm -f libxdrf.o ftocstr.o libxdrf.a 
-
-ftocstr.o: ftocstr.c
-       $(CC) $(CFLAGS) -c ftocstr.c
-
-libxdrf.o:     libxdrf.m4 $(M4FILE)
-       $(M4) $(M4FILE) libxdrf.m4 > libxdrf.c
-       $(CC) $(CFLAGS) -c libxdrf.c
-       rm -f libxdrf.c
-
diff --git a/source/wham/src-M/xdrf/Makefile~ b/source/wham/src-M/xdrf/Makefile~
deleted file mode 100644 (file)
index 0539995..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-# This make file is part of the xdrf package.
-#
-# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-#
-# 2006 modified by Cezary Czaplewski
-
-# Set C compiler and flags for ARCH
-CC      = cc
-CFLAGS         = -O 
-
-M4     = m4
-M4FILE = underscore.m4
-
-libxdrf.a:  libxdrf.o ftocstr.o
-       ar cr libxdrf.a $?
-
-clean:
-       rm -f libxdrfo ftocstr.o libxdrf.a 
-
-ftocstr.o: ftocstr.c
-       $(CC) $(CFLAGS) -c ftocstr.c
-
-libxdrf.o:     libxdrf.m4 $(M4FILE)
-       $(M4) $(M4FILE) libxdrf.m4 > libxdrf.c
-       $(CC) $(CFLAGS) -c libxdrf.c
-       rm -f libxdrf.c
-
diff --git a/source/wham/src-M/xdrf/ftocstr.c b/source/wham/src-M/xdrf/ftocstr.c
deleted file mode 100644 (file)
index ed2113f..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-int ftocstr(ds, dl, ss, sl)
-    char *ds, *ss;      /* dst, src ptrs */
-    int dl;             /* dst max len */
-    int sl;             /* src len */
-{
-    char *p;
-
-    for (p = ss + sl; --p >= ss && *p == ' '; ) ;
-    sl = p - ss + 1;
-    dl--;
-    ds[0] = 0;
-    if (sl > dl)
-        return 1;
-    while (sl--)
-       (*ds++ = *ss++);
-    *ds = '\0';
-    return 0;
-}
-
-
-int ctofstr(ds, dl, ss)
-       char *ds;               /* dest space */
-       int dl;                 /* max dest length */
-       char *ss;               /* src string (0-term) */
-{
-    while (dl && *ss) {
-       *ds++ = *ss++;
-       dl--;
-    }
-    while (dl--)
-       *ds++ = ' ';
-    return 0;
-}
diff --git a/source/wham/src-M/xdrf/ftocstr.o b/source/wham/src-M/xdrf/ftocstr.o
deleted file mode 100644 (file)
index f0102ea..0000000
Binary files a/source/wham/src-M/xdrf/ftocstr.o and /dev/null differ
diff --git a/source/wham/src-M/xdrf/libxdrf.a b/source/wham/src-M/xdrf/libxdrf.a
deleted file mode 100644 (file)
index e3db089..0000000
Binary files a/source/wham/src-M/xdrf/libxdrf.a and /dev/null differ
diff --git a/source/wham/src-M/xdrf/libxdrf.m4 b/source/wham/src-M/xdrf/libxdrf.m4
deleted file mode 100644 (file)
index aecb5b5..0000000
+++ /dev/null
@@ -1,1233 +0,0 @@
-/*____________________________________________________________________________
- |
- | libxdrf - portable fortran interface to xdr. some xdr routines
- |          are C routines for compressed coordinates
- |
- | version 1.1
- |
- | This collection of routines is intended to write and read
- | data in a portable way to a file, so data written on one type
- | of machine can be read back on a different type.
- |
- | all fortran routines use an integer 'xdrid', which is an id to the
- | current xdr file, and is set by xdrfopen.
- | most routines have in integer 'ret' which is the return value.
- | The value of 'ret' is zero on failure, and most of the time one
- | on succes.
- |
- | There are three routines useful for C users:
- |  xdropen(), xdrclose(), xdr3dfcoord().
- | The first two replace xdrstdio_create and xdr_destroy, and *must* be
- | used when you plan to use xdr3dfcoord(). (they are also a bit
- | easier to interface). For writing data other than compressed coordinates 
- | you should use the standard C xdr routines (see xdr man page)
- |
- | xdrfopen(xdrid, filename, mode, ret)
- |     character *(*) filename
- |     character *(*) mode
- |
- |     this will open the file with the given filename (string)
- |     and the given mode, it returns an id in xdrid, which is
- |     to be used in all other calls to xdrf routines.
- |     mode is 'w' to create, or update an file, for all other
- |     values of mode the file is opened for reading
- |
- |     you need to call xdrfclose to flush the output and close
- |     the file.
- |     Note that you should not use xdrstdio_create, which comes with the
- |     standard xdr library
- |
- | xdrfclose(xdrid, ret)
- |     flush the data to the file, and closes the file;
- |     You should not use xdr_destroy (which comes standard with
- |     the xdr libraries.
- |
- | xdrfbool(xdrid, bp, ret)
- |     integer pb
- |
- |     This filter produces values of either 1 or 0    
- |
- | xdrfchar(xdrid, cp, ret)
- |     character cp
- |
- |     filter that translate between characters and their xdr representation
- |     Note that the characters in not compressed and occupies 4 bytes.
- |
- | xdrfdouble(xdrid, dp, ret)
- |     double dp
- |
- |     read/write a double.
- |
- | xdrffloat(xdrid, fp, ret)
- |     float fp
- |
- |     read/write a float.
- |
- | xdrfint(xdrid, ip, ret)
- |     integer ip
- |
- |     read/write integer.
- |
- | xdrflong(xdrid, lp, ret)
- |     integer lp
- |
- |     this routine has a possible portablility problem due to 64 bits longs.
- |
- | xdrfshort(xdrid, sp, ret)
- |     integer *2 sp
- |
- | xdrfstring(xdrid, sp, maxsize, ret)
- |     character *(*)
- |     integer maxsize
- |
- |     read/write a string, with maximum length given by maxsize
- |
- | xdrfwrapstring(xdris, sp, ret)
- |     character *(*)
- |
- |     read/write a string (it is the same as xdrfstring accept that it finds
- |     the stringlength itself.
- |
- | xdrfvector(xdrid, cp, size, xdrfproc, ret)
- |     character *(*)
- |     integer size
- |     external xdrfproc
- |
- |     read/write an array pointed to by cp, with number of elements
- |     defined by 'size'. the routine 'xdrfproc' is the name
- |     of one of the above routines to read/write data (like xdrfdouble)
- |     In contrast with the c-version you don't need to specify the
- |     byte size of an element.
- |     xdrfstring is not allowed here (it is in the c version)
- |     
- | xdrf3dfcoord(xdrid, fp, size, precision, ret)
- |     real (*) fp
- |     real precision
- |     integer size
- |
- |     this is *NOT* a standard xdr routine. I named it this way, because
- |     it invites people to use the other xdr routines.
- |     It is introduced to store specifically 3d coordinates of molecules
- |     (as found in molecular dynamics) and it writes it in a compressed way.
- |     It starts by multiplying all numbers by precision and
- |     rounding the result to integer. effectively converting
- |     all floating point numbers to fixed point.
- |     it uses an algorithm for compression that is optimized for
- |     molecular data, but could be used for other 3d coordinates
- |     as well. There is subtantial overhead involved, so call this
- |     routine only if you have a large number of coordinates to read/write
- |
- | ________________________________________________________________________
- |
- | Below are the routines to be used by C programmers. Use the 'normal'
- | xdr routines to write integers, floats, etc (see man xdr)   
- |
- | int xdropen(XDR *xdrs, const char *filename, const char *type)
- |     This will open the file with the given filename and the 
- |     given mode. You should pass it an allocated XDR struct
- |     in xdrs, to be used in all other calls to xdr routines.
- |     Mode is 'w' to create, or update an file, and for all 
- |     other values of mode the file is opened for reading. 
- |     You need to call xdrclose to flush the output and close
- |     the file.
- |
- |     Note that you should not use xdrstdio_create, which
- |     comes with the standard xdr library.
- |
- | int xdrclose(XDR *xdrs)
- |     Flush the data to the file, and close the file;
- |     You should not use xdr_destroy (which comes standard
- |     with the xdr libraries).
- |      
- | int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision)
- |     This is \fInot\fR a standard xdr routine. I named it this 
- |     way, because it invites people to use the other xdr 
- |     routines.
- |
- |     (c) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-*/     
-
-
-#include <limits.h>
-#include <malloc.h>
-#include <math.h>
-#include <rpc/rpc.h>
-#include <rpc/xdr.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include "xdrf.h"
-
-int ftocstr(char *, int, char *, int);
-int ctofstr(char *, int, char *);
-
-#define MAXID 20
-static FILE *xdrfiles[MAXID];
-static XDR *xdridptr[MAXID];
-static char xdrmodes[MAXID];
-static unsigned int cnt;
-
-typedef void (* FUNCTION(xdrfproc)) (int *, void *, int *);
-
-void
-FUNCTION(xdrfbool) ARGS(`xdrid, pb, ret')
-int *xdrid, *ret;
-int *pb;
-{
-       *ret = xdr_bool(xdridptr[*xdrid], (bool_t *) pb);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrfchar) ARGS(`xdrid, cp, ret')
-int *xdrid, *ret;
-char *cp;
-{
-       *ret = xdr_char(xdridptr[*xdrid], cp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfdouble) ARGS(`xdrid, dp, ret')
-int *xdrid, *ret;
-double *dp;
-{
-       *ret = xdr_double(xdridptr[*xdrid], dp);
-       cnt += sizeof(double);
-}
-
-void
-FUNCTION(xdrffloat) ARGS(`xdrid, fp, ret')
-int *xdrid, *ret;
-float *fp;
-{
-       *ret = xdr_float(xdridptr[*xdrid], fp);
-       cnt += sizeof(float);
-}
-
-void
-FUNCTION(xdrfint) ARGS(`xdrid, ip, ret')
-int *xdrid, *ret;
-int *ip;
-{
-       *ret = xdr_int(xdridptr[*xdrid], ip);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrflong) ARGS(`xdrid, lp, ret')
-int *xdrid, *ret;
-long *lp;
-{
-       *ret = xdr_long(xdridptr[*xdrid], lp);
-       cnt += sizeof(long);
-}
-
-void
-FUNCTION(xdrfshort) ARGS(`xdrid, sp, ret')
-int *xdrid, *ret;
-short *sp;
-{
-       *ret = xdr_short(xdridptr[*xdrid], sp);
-       cnt += sizeof(sp);
-}
-
-void
-FUNCTION(xdrfuchar) ARGS(`xdrid, ucp, ret')
-int *xdrid, *ret;
-char *ucp;
-{
-       *ret = xdr_u_char(xdridptr[*xdrid], ucp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfulong) ARGS(`xdrid, ulp, ret')
-int *xdrid, *ret;
-unsigned long *ulp;
-{
-       *ret = xdr_u_long(xdridptr[*xdrid], ulp);
-       cnt += sizeof(unsigned long);
-}
-
-void
-FUNCTION(xdrfushort) ARGS(`xdrid, usp, ret')
-int *xdrid, *ret;
-unsigned short *usp;
-{
-       *ret = xdr_u_short(xdridptr[*xdrid], usp);
-       cnt += sizeof(unsigned short);
-}
-
-void 
-FUNCTION(xdrf3dfcoord) ARGS(`xdrid, fp, size, precision, ret')
-int *xdrid, *ret;
-float *fp;
-int *size;
-float *precision;
-{
-       *ret = xdr3dfcoord(xdridptr[*xdrid], fp, size, precision);
-}
-
-void
-FUNCTION(xdrfstring) ARGS(`xdrid, STRING_ARG(sp), maxsize, ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-int *maxsize;
-{
-       char *tsp;
-
-       tsp = (char*) malloc(((STRING_LEN(sp)) + 1) * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, *maxsize+1, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int) *maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += *maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfwrapstring) ARGS(`xdrid,  STRING_ARG(sp), ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-{
-       char *tsp;
-       int maxsize;
-       maxsize = (STRING_LEN(sp)) + 1;
-       tsp = (char*) malloc(maxsize * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, maxsize, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int)maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfopaque) ARGS(`xdrid, cp, ccnt, ret')
-int *xdrid, *ret;
-caddr_t *cp;
-int *ccnt;
-{
-       *ret = xdr_opaque(xdridptr[*xdrid], (caddr_t)*cp, (u_int)*ccnt);
-       cnt += *ccnt;
-}
-
-void
-FUNCTION(xdrfsetpos) ARGS(`xdrid, pos, ret')
-int *xdrid, *ret;
-int *pos;
-{
-       *ret = xdr_setpos(xdridptr[*xdrid], (u_int) *pos);
-}
-
-void
-FUNCTION(xdrf) ARGS(`xdrid, pos')
-int *xdrid, *pos;
-{
-       *pos = xdr_getpos(xdridptr[*xdrid]);
-}
-
-void
-FUNCTION(xdrfvector) ARGS(`xdrid, cp, size, elproc, ret')
-int *xdrid, *ret;
-char *cp;
-int *size;
-FUNCTION(xdrfproc) elproc;
-{
-       int lcnt;
-       cnt = 0;
-       for (lcnt = 0; lcnt < *size; lcnt++) {
-               elproc(xdrid, (cp+cnt) , ret);
-       }
-}
-
-
-void
-FUNCTION(xdrfclose) ARGS(`xdrid, ret')
-int *xdrid;
-int *ret;
-{
-       *ret = xdrclose(xdridptr[*xdrid]);
-       cnt = 0;
-}
-
-void
-FUNCTION(xdrfopen) ARGS(`xdrid,  STRING_ARG(fp), STRING_ARG(mode), ret')
-int *xdrid;
-STRING_ARG_DECL(fp);
-STRING_ARG_DECL(mode);
-int *ret;
-{
-       char fname[512];
-       char fmode[3];
-
-       if (ftocstr(fname, sizeof(fname), STRING_PTR(fp), STRING_LEN(fp))) {
-               *ret = 0;
-       }
-       if (ftocstr(fmode, sizeof(fmode), STRING_PTR(mode),
-                       STRING_LEN(mode))) {
-               *ret = 0;
-       }
-
-       *xdrid = xdropen(NULL, fname, fmode);
-       if (*xdrid == 0)
-               *ret = 0;
-       else 
-               *ret = 1;       
-}
-
-/*___________________________________________________________________________
- |
- | what follows are the C routines for opening, closing xdr streams
- | and the routine to read/write compressed coordinates together
- | with some routines to assist in this task (those are marked
- | static and cannot be called from user programs)
-*/
-#define MAXABS INT_MAX-2
-
-#ifndef MIN
-#define MIN(x,y) ((x) < (y) ? (x):(y))
-#endif
-#ifndef MAX
-#define MAX(x,y) ((x) > (y) ? (x):(y))
-#endif
-#ifndef SQR
-#define SQR(x) ((x)*(x))
-#endif
-static int magicints[] = {
-    0, 0, 0, 0, 0, 0, 0, 0, 0,
-    8, 10, 12, 16, 20, 25, 32, 40, 50, 64,
-    80, 101, 128, 161, 203, 256, 322, 406, 512, 645,
-    812, 1024, 1290, 1625, 2048, 2580, 3250, 4096, 5060, 6501,
-    8192, 10321, 13003, 16384, 20642, 26007, 32768, 41285, 52015, 65536,
-    82570, 104031, 131072, 165140, 208063, 262144, 330280, 416127, 524287, 660561,
-    832255, 1048576, 1321122, 1664510, 2097152, 2642245, 3329021, 4194304, 5284491, 6658042,
-    8388607, 10568983, 13316085, 16777216 };
-
-#define FIRSTIDX 9
-/* note that magicints[FIRSTIDX-1] == 0 */
-#define LASTIDX (sizeof(magicints) / sizeof(*magicints))
-
-
-/*__________________________________________________________________________
- |
- | xdropen - open xdr file
- |
- | This versions differs from xdrstdio_create, because I need to know
- | the state of the file (read or write) so I can use xdr3dfcoord
- | in eigther read or write mode, and the file descriptor
- | so I can close the file (something xdr_destroy doesn't do).
- |
-*/
-
-int xdropen(XDR *xdrs, const char *filename, const char *type) {
-    static int init_done = 0;
-    enum xdr_op lmode;
-    const char *type1;
-    int xdrid;
-    
-    if (init_done == 0) {
-       for (xdrid = 1; xdrid < MAXID; xdrid++) {
-           xdridptr[xdrid] = NULL;
-       }
-       init_done = 1;
-    }
-    xdrid = 1;
-    while (xdrid < MAXID && xdridptr[xdrid] != NULL) {
-       xdrid++;
-    }
-    if (xdrid == MAXID) {
-       return 0;
-    }
-    if (*type == 'w' || *type == 'W') {
-           type = "w+";
-           type1 = "a+";
-           lmode = XDR_ENCODE;
-    } else {
-           type = "r";
-            type1 = "r";
-           lmode = XDR_DECODE;
-    }
-    xdrfiles[xdrid] = fopen(filename, type1);
-    if (xdrfiles[xdrid] == NULL) {
-       xdrs = NULL;
-       return 0;
-    }
-    xdrmodes[xdrid] = *type;
-    /* next test isn't usefull in the case of C language
-     * but is used for the Fortran interface
-     * (C users are expected to pass the address of an already allocated
-     * XDR staructure)
-     */
-    if (xdrs == NULL) {
-       xdridptr[xdrid] = (XDR *) malloc(sizeof(XDR));
-       xdrstdio_create(xdridptr[xdrid], xdrfiles[xdrid], lmode);
-    } else {
-       xdridptr[xdrid] = xdrs;
-       xdrstdio_create(xdrs, xdrfiles[xdrid], lmode);
-    }
-    return xdrid;
-}
-
-/*_________________________________________________________________________
- |
- | xdrclose - close a xdr file
- |
- | This will flush the xdr buffers, and destroy the xdr stream.
- | It also closes the associated file descriptor (this is *not*
- | done by xdr_destroy).
- |
-*/
-int xdrclose(XDR *xdrs) {
-    int xdrid;
-    
-    if (xdrs == NULL) {
-       fprintf(stderr, "xdrclose: passed a NULL pointer\n");
-       exit(1);
-    }
-    for (xdrid = 1; xdrid < MAXID; xdrid++) {
-       if (xdridptr[xdrid] == xdrs) {
-           
-           xdr_destroy(xdrs);
-           fclose(xdrfiles[xdrid]);
-           xdridptr[xdrid] = NULL;
-           return 1;
-       }
-    } 
-    fprintf(stderr, "xdrclose: no such open xdr file\n");
-    exit(1);
-    
-}
-
-/*____________________________________________________________________________
- |
- | sendbits - encode num into buf using the specified number of bits
- |
- | This routines appends the value of num to the bits already present in
- | the array buf. You need to give it the number of bits to use and you
- | better make sure that this number of bits is enough to hold the value
- | Also num must be positive.
- |
-*/
-
-static void sendbits(int buf[], int num_of_bits, int num) {
-    
-    unsigned int cnt, lastbyte;
-    int lastbits;
-    unsigned char * cbuf;
-    
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = (unsigned int) buf[0];
-    lastbits = buf[1];
-    lastbyte =(unsigned int) buf[2];
-    while (num_of_bits >= 8) {
-       lastbyte = (lastbyte << 8) | ((num >> (num_of_bits -8)) /* & 0xff*/);
-       cbuf[cnt++] = lastbyte >> lastbits;
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       lastbyte = (lastbyte << num_of_bits) | num;
-       lastbits += num_of_bits;
-       if (lastbits >= 8) {
-           lastbits -= 8;
-           cbuf[cnt++] = lastbyte >> lastbits;
-       }
-    }
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    if (lastbits>0) {
-       cbuf[cnt] = lastbyte << (8 - lastbits);
-    }
-}
-
-/*_________________________________________________________________________
- |
- | sizeofint - calculate bitsize of an integer
- |
- | return the number of bits needed to store an integer with given max size
- |
-*/
-
-static int sizeofint(const int size) {
-    unsigned int num = 1;
-    int num_of_bits = 0;
-    
-    while (size >= num && num_of_bits < 32) {
-       num_of_bits++;
-       num <<= 1;
-    }
-    return num_of_bits;
-}
-
-/*___________________________________________________________________________
- |
- | sizeofints - calculate 'bitsize' of compressed ints
- |
- | given the number of small unsigned integers and the maximum value
- | return the number of bits needed to read or write them with the
- | routines receiveints and sendints. You need this parameter when
- | calling these routines. Note that for many calls I can use
- | the variable 'smallidx' which is exactly the number of bits, and
- | So I don't need to call 'sizeofints for those calls.
-*/
-
-static int sizeofints( const int num_of_ints, unsigned int sizes[]) {
-    int i, num;
-    unsigned int num_of_bytes, num_of_bits, bytes[32], bytecnt, tmp;
-    num_of_bytes = 1;
-    bytes[0] = 1;
-    num_of_bits = 0;
-    for (i=0; i < num_of_ints; i++) {  
-       tmp = 0;
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    num = 1;
-    num_of_bytes--;
-    while (bytes[num_of_bytes] >= num) {
-       num_of_bits++;
-       num *= 2;
-    }
-    return num_of_bits + num_of_bytes * 8;
-
-}
-    
-/*____________________________________________________________________________
- |
- | sendints - send a small set of small integers in compressed format
- |
- | this routine is used internally by xdr3dfcoord, to send a set of
- | small integers to the buffer. 
- | Multiplication with fixed (specified maximum ) sizes is used to get
- | to one big, multibyte integer. Allthough the routine could be
- | modified to handle sizes bigger than 16777216, or more than just
- | a few integers, this is not done, because the gain in compression
- | isn't worth the effort. Note that overflowing the multiplication
- | or the byte buffer (32 bytes) is unchecked and causes bad results.
- |
- */
-static void sendints(int buf[], const int num_of_ints, const int num_of_bits,
-       unsigned int sizes[], unsigned int nums[]) {
-
-    int i;
-    unsigned int bytes[32], num_of_bytes, bytecnt, tmp;
-
-    tmp = nums[0];
-    num_of_bytes = 0;
-    do {
-       bytes[num_of_bytes++] = tmp & 0xff;
-       tmp >>= 8;
-    } while (tmp != 0);
-
-    for (i = 1; i < num_of_ints; i++) {
-       if (nums[i] >= sizes[i]) {
-           fprintf(stderr,"major breakdown in sendints num %d doesn't "
-                   "match size %d\n", nums[i], sizes[i]);
-           exit(1);
-       }
-       /* use one step multiply */    
-       tmp = nums[i];
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    if (num_of_bits >= num_of_bytes * 8) {
-       for (i = 0; i < num_of_bytes; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits - num_of_bytes * 8, 0);
-    } else {
-       for (i = 0; i < num_of_bytes-1; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits- (num_of_bytes -1) * 8, bytes[i]);
-    }
-}
-
-
-/*___________________________________________________________________________
- |
- | receivebits - decode number from buf using specified number of bits
- | 
- | extract the number of bits from the array buf and construct an integer
- | from it. Return that value.
- |
-*/
-
-static int receivebits(int buf[], int num_of_bits) {
-
-    int cnt, num; 
-    unsigned int lastbits, lastbyte;
-    unsigned char * cbuf;
-    int mask = (1 << num_of_bits) -1;
-
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = buf[0];
-    lastbits = (unsigned int) buf[1];
-    lastbyte = (unsigned int) buf[2];
-    
-    num = 0;
-    while (num_of_bits >= 8) {
-       lastbyte = ( lastbyte << 8 ) | cbuf[cnt++];
-       num |=  (lastbyte >> lastbits) << (num_of_bits - 8);
-       num_of_bits -=8;
-    }
-    if (num_of_bits > 0) {
-       if (lastbits < num_of_bits) {
-           lastbits += 8;
-           lastbyte = (lastbyte << 8) | cbuf[cnt++];
-       }
-       lastbits -= num_of_bits;
-       num |= (lastbyte >> lastbits) & ((1 << num_of_bits) -1);
-    }
-    num &= mask;
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    return num; 
-}
-
-/*____________________________________________________________________________
- |
- | receiveints - decode 'small' integers from the buf array
- |
- | this routine is the inverse from sendints() and decodes the small integers
- | written to buf by calculating the remainder and doing divisions with
- | the given sizes[]. You need to specify the total number of bits to be
- | used from buf in num_of_bits.
- |
-*/
-
-static void receiveints(int buf[], const int num_of_ints, int num_of_bits,
-       unsigned int sizes[], int nums[]) {
-    int bytes[32];
-    int i, j, num_of_bytes, p, num;
-    
-    bytes[1] = bytes[2] = bytes[3] = 0;
-    num_of_bytes = 0;
-    while (num_of_bits > 8) {
-       bytes[num_of_bytes++] = receivebits(buf, 8);
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       bytes[num_of_bytes++] = receivebits(buf, num_of_bits);
-    }
-    for (i = num_of_ints-1; i > 0; i--) {
-       num = 0;
-       for (j = num_of_bytes-1; j >=0; j--) {
-           num = (num << 8) | bytes[j];
-           p = num / sizes[i];
-           bytes[j] = p;
-           num = num - p * sizes[i];
-       }
-       nums[i] = num;
-    }
-    nums[0] = bytes[0] | (bytes[1] << 8) | (bytes[2] << 16) | (bytes[3] << 24);
-}
-    
-/*____________________________________________________________________________
- |
- | xdr3dfcoord - read or write compressed 3d coordinates to xdr file.
- |
- | this routine reads or writes (depending on how you opened the file with
- | xdropen() ) a large number of 3d coordinates (stored in *fp).
- | The number of coordinates triplets to write is given by *size. On
- | read this number may be zero, in which case it reads as many as were written
- | or it may specify the number if triplets to read (which should match the
- | number written).
- | Compression is achieved by first converting all floating numbers to integer
- | using multiplication by *precision and rounding to the nearest integer.
- | Then the minimum and maximum value are calculated to determine the range.
- | The limited range of integers so found, is used to compress the coordinates.
- | In addition the differences between succesive coordinates is calculated.
- | If the difference happens to be 'small' then only the difference is saved,
- | compressing the data even more. The notion of 'small' is changed dynamically
- | and is enlarged or reduced whenever needed or possible.
- | Extra compression is achieved in the case of GROMOS and coordinates of
- | water molecules. GROMOS first writes out the Oxygen position, followed by
- | the two hydrogens. In order to make the differences smaller (and thereby
- | compression the data better) the order is changed into first one hydrogen
- | then the oxygen, followed by the other hydrogen. This is rather special, but
- | it shouldn't harm in the general case.
- |
- */
-int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) {
-    
-
-    static int *ip = NULL;
-    static int oldsize;
-    static int *buf;
-
-    int minint[3], maxint[3], mindiff, *lip, diff;
-    int lint1, lint2, lint3, oldlint1, oldlint2, oldlint3, smallidx;
-    int minidx, maxidx;
-    unsigned sizeint[3], sizesmall[3], bitsizeint[3], size3, *luip;
-    int flag, k;
-    int small, smaller, larger, i, is_small, is_smaller, run, prevrun;
-    float *lfp, lf;
-    int tmp, *thiscoord,  prevcoord[3];
-    unsigned int tmpcoord[30];
-
-    int bufsize, xdrid, lsize;
-    unsigned int bitsize;
-    float inv_precision;
-    int errval = 1;
-
-    /* find out if xdrs is opened for reading or for writing */
-    xdrid = 0;
-    while (xdridptr[xdrid] != xdrs) {
-       xdrid++;
-       if (xdrid >= MAXID) {
-           fprintf(stderr, "xdr error. no open xdr stream\n");
-           exit (1);
-       }
-    }
-    if (xdrmodes[xdrid] == 'w') {
-
-       /* xdrs is open for writing */
-
-       if (xdr_int(xdrs, size) == 0)
-           return 0;
-       size3 = *size * 3;
-       /* when the number of coordinates is small, don't try to compress; just
-        * write them as floats using xdr_vector
-        */
-       if (*size <= 9 ) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       /* buf[0-2] are special and do not contain actual data */
-       buf[0] = buf[1] = buf[2] = 0;
-       minint[0] = minint[1] = minint[2] = INT_MAX;
-       maxint[0] = maxint[1] = maxint[2] = INT_MIN;
-       prevrun = -1;
-       lfp = fp;
-       lip = ip;
-       mindiff = INT_MAX;
-       oldlint1 = oldlint2 = oldlint3 = 0;
-       while(lfp < fp + size3 ) {
-           /* find nearest integer */
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint1 = lf;
-           if (lint1 < minint[0]) minint[0] = lint1;
-           if (lint1 > maxint[0]) maxint[0] = lint1;
-           *lip++ = lint1;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint2 = lf;
-           if (lint2 < minint[1]) minint[1] = lint2;
-           if (lint2 > maxint[1]) maxint[1] = lint2;
-           *lip++ = lint2;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint3 = lf;
-           if (lint3 < minint[2]) minint[2] = lint3;
-           if (lint3 > maxint[2]) maxint[2] = lint3;
-           *lip++ = lint3;
-           lfp++;
-           diff = abs(oldlint1-lint1)+abs(oldlint2-lint2)+abs(oldlint3-lint3);
-           if (diff < mindiff && lfp > fp + 3)
-               mindiff = diff;
-           oldlint1 = lint1;
-           oldlint2 = lint2;
-           oldlint3 = lint3;
-       }
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-       
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-       
-       if ((float)maxint[0] - (float)minint[0] >= MAXABS ||
-               (float)maxint[1] - (float)minint[1] >= MAXABS ||
-               (float)maxint[2] - (float)minint[2] >= MAXABS) {
-           /* turning value in unsigned by subtracting minint
-            * would cause overflow
-            */
-           errval = 0;
-       }
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       lip = ip;
-       luip = (unsigned int *) ip;
-       smallidx = FIRSTIDX;
-       while (smallidx < LASTIDX && magicints[smallidx] < mindiff) {
-           smallidx++;
-       }
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-       larger = magicints[maxidx] / 2;
-       i = 0;
-       while (i < *size) {
-           is_small = 0;
-           thiscoord = (int *)(luip) + i * 3;
-           if (smallidx < maxidx && i >= 1 &&
-                   abs(thiscoord[0] - prevcoord[0]) < larger &&
-                   abs(thiscoord[1] - prevcoord[1]) < larger &&
-                   abs(thiscoord[2] - prevcoord[2]) < larger) {
-               is_smaller = 1;
-           } else if (smallidx > minidx) {
-               is_smaller = -1;
-           } else {
-               is_smaller = 0;
-           }
-           if (i + 1 < *size) {
-               if (abs(thiscoord[0] - thiscoord[3]) < small &&
-                       abs(thiscoord[1] - thiscoord[4]) < small &&
-                       abs(thiscoord[2] - thiscoord[5]) < small) {
-                   /* interchange first with second atom for better
-                    * compression of water molecules
-                    */
-                   tmp = thiscoord[0]; thiscoord[0] = thiscoord[3];
-                       thiscoord[3] = tmp;
-                   tmp = thiscoord[1]; thiscoord[1] = thiscoord[4];
-                       thiscoord[4] = tmp;
-                   tmp = thiscoord[2]; thiscoord[2] = thiscoord[5];
-                       thiscoord[5] = tmp;
-                   is_small = 1;
-               }
-    
-           }
-           tmpcoord[0] = thiscoord[0] - minint[0];
-           tmpcoord[1] = thiscoord[1] - minint[1];
-           tmpcoord[2] = thiscoord[2] - minint[2];
-           if (bitsize == 0) {
-               sendbits(buf, bitsizeint[0], tmpcoord[0]);
-               sendbits(buf, bitsizeint[1], tmpcoord[1]);
-               sendbits(buf, bitsizeint[2], tmpcoord[2]);
-           } else {
-               sendints(buf, 3, bitsize, sizeint, tmpcoord);
-           }
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           thiscoord = thiscoord + 3;
-           i++;
-           
-           run = 0;
-           if (is_small == 0 && is_smaller == -1)
-               is_smaller = 0;
-           while (is_small && run < 8*3) {
-               if (is_smaller == -1 && (
-                       SQR(thiscoord[0] - prevcoord[0]) +
-                       SQR(thiscoord[1] - prevcoord[1]) +
-                       SQR(thiscoord[2] - prevcoord[2]) >= smaller * smaller)) {
-                   is_smaller = 0;
-               }
-
-               tmpcoord[run++] = thiscoord[0] - prevcoord[0] + small;
-               tmpcoord[run++] = thiscoord[1] - prevcoord[1] + small;
-               tmpcoord[run++] = thiscoord[2] - prevcoord[2] + small;
-               
-               prevcoord[0] = thiscoord[0];
-               prevcoord[1] = thiscoord[1];
-               prevcoord[2] = thiscoord[2];
-
-               i++;
-               thiscoord = thiscoord + 3;
-               is_small = 0;
-               if (i < *size &&
-                       abs(thiscoord[0] - prevcoord[0]) < small &&
-                       abs(thiscoord[1] - prevcoord[1]) < small &&
-                       abs(thiscoord[2] - prevcoord[2]) < small) {
-                   is_small = 1;
-               }
-           }
-           if (run != prevrun || is_smaller != 0) {
-               prevrun = run;
-               sendbits(buf, 1, 1); /* flag the change in run-length */
-               sendbits(buf, 5, run+is_smaller+1);
-           } else {
-               sendbits(buf, 1, 0); /* flag the fact that runlength did not change */
-           }
-           for (k=0; k < run; k+=3) {
-               sendints(buf, 3, smallidx, sizesmall, &tmpcoord[k]);    
-           }
-           if (is_smaller != 0) {
-               smallidx += is_smaller;
-               if (is_smaller < 0) {
-                   small = smaller;
-                   smaller = magicints[smallidx-1] / 2;
-               } else {
-                   smaller = small;
-                   small = magicints[smallidx] / 2;
-               }
-               sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-           }
-       }
-       if (buf[1] != 0) buf[0]++;;
-       xdr_int(xdrs, &(buf[0])); /* buf[0] holds the length in bytes */
-       return errval * (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]));
-    } else {
-       
-       /* xdrs is open for reading */
-       
-       if (xdr_int(xdrs, &lsize) == 0) 
-           return 0;
-       if (*size != 0 && lsize != *size) {
-           fprintf(stderr, "wrong number of coordinates in xdr3dfcoor; "
-                   "%d arg vs %d in file", *size, lsize);
-       }
-       *size = lsize;
-       size3 = *size * 3;
-       if (*size <= 9) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-               
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       larger = magicints[maxidx];
-
-       /* buf[0] holds the length in bytes */
-
-       if (xdr_int(xdrs, &(buf[0])) == 0)
-           return 0;
-       if (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]) == 0)
-           return 0;
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       lfp = fp;
-       inv_precision = 1.0 / * precision;
-       run = 0;
-       i = 0;
-       lip = ip;
-       while ( i < lsize ) {
-           thiscoord = (int *)(lip) + i * 3;
-
-           if (bitsize == 0) {
-               thiscoord[0] = receivebits(buf, bitsizeint[0]);
-               thiscoord[1] = receivebits(buf, bitsizeint[1]);
-               thiscoord[2] = receivebits(buf, bitsizeint[2]);
-           } else {
-               receiveints(buf, 3, bitsize, sizeint, thiscoord);
-           }
-           
-           i++;
-           thiscoord[0] += minint[0];
-           thiscoord[1] += minint[1];
-           thiscoord[2] += minint[2];
-           
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           
-          
-           flag = receivebits(buf, 1);
-           is_smaller = 0;
-           if (flag == 1) {
-               run = receivebits(buf, 5);
-               is_smaller = run % 3;
-               run -= is_smaller;
-               is_smaller--;
-           }
-           if (run > 0) {
-               thiscoord += 3;
-               for (k = 0; k < run; k+=3) {
-                   receiveints(buf, 3, smallidx, sizesmall, thiscoord);
-                   i++;
-                   thiscoord[0] += prevcoord[0] - small;
-                   thiscoord[1] += prevcoord[1] - small;
-                   thiscoord[2] += prevcoord[2] - small;
-                   if (k == 0) {
-                       /* interchange first with second atom for better
-                        * compression of water molecules
-                        */
-                       tmp = thiscoord[0]; thiscoord[0] = prevcoord[0];
-                               prevcoord[0] = tmp;
-                       tmp = thiscoord[1]; thiscoord[1] = prevcoord[1];
-                               prevcoord[1] = tmp;
-                       tmp = thiscoord[2]; thiscoord[2] = prevcoord[2];
-                               prevcoord[2] = tmp;
-                       *lfp++ = prevcoord[0] * inv_precision;
-                       *lfp++ = prevcoord[1] * inv_precision;
-                       *lfp++ = prevcoord[2] * inv_precision;
-                   } else {
-                       prevcoord[0] = thiscoord[0];
-                       prevcoord[1] = thiscoord[1];
-                       prevcoord[2] = thiscoord[2];
-                   }
-                   *lfp++ = thiscoord[0] * inv_precision;
-                   *lfp++ = thiscoord[1] * inv_precision;
-                   *lfp++ = thiscoord[2] * inv_precision;
-               }
-           } else {
-               *lfp++ = thiscoord[0] * inv_precision;
-               *lfp++ = thiscoord[1] * inv_precision;
-               *lfp++ = thiscoord[2] * inv_precision;          
-           }
-           smallidx += is_smaller;
-           if (is_smaller < 0) {
-               small = smaller;
-               if (smallidx > FIRSTIDX) {
-                   smaller = magicints[smallidx - 1] /2;
-               } else {
-                   smaller = 0;
-               }
-           } else if (is_smaller > 0) {
-               smaller = small;
-               small = magicints[smallidx] / 2;
-           }
-           sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       }
-    }
-    return 1;
-}
-
-
-   
diff --git a/source/wham/src-M/xdrf/libxdrf.m4.org b/source/wham/src-M/xdrf/libxdrf.m4.org
deleted file mode 100644 (file)
index b14b374..0000000
+++ /dev/null
@@ -1,1230 +0,0 @@
-/*____________________________________________________________________________
- |
- | libxdrf - portable fortran interface to xdr. some xdr routines
- |          are C routines for compressed coordinates
- |
- | version 1.1
- |
- | This collection of routines is intended to write and read
- | data in a portable way to a file, so data written on one type
- | of machine can be read back on a different type.
- |
- | all fortran routines use an integer 'xdrid', which is an id to the
- | current xdr file, and is set by xdrfopen.
- | most routines have in integer 'ret' which is the return value.
- | The value of 'ret' is zero on failure, and most of the time one
- | on succes.
- |
- | There are three routines useful for C users:
- |  xdropen(), xdrclose(), xdr3dfcoord().
- | The first two replace xdrstdio_create and xdr_destroy, and *must* be
- | used when you plan to use xdr3dfcoord(). (they are also a bit
- | easier to interface). For writing data other than compressed coordinates 
- | you should use the standard C xdr routines (see xdr man page)
- |
- | xdrfopen(xdrid, filename, mode, ret)
- |     character *(*) filename
- |     character *(*) mode
- |
- |     this will open the file with the given filename (string)
- |     and the given mode, it returns an id in xdrid, which is
- |     to be used in all other calls to xdrf routines.
- |     mode is 'w' to create, or update an file, for all other
- |     values of mode the file is opened for reading
- |
- |     you need to call xdrfclose to flush the output and close
- |     the file.
- |     Note that you should not use xdrstdio_create, which comes with the
- |     standard xdr library
- |
- | xdrfclose(xdrid, ret)
- |     flush the data to the file, and closes the file;
- |     You should not use xdr_destroy (which comes standard with
- |     the xdr libraries.
- |
- | xdrfbool(xdrid, bp, ret)
- |     integer pb
- |
- |     This filter produces values of either 1 or 0    
- |
- | xdrfchar(xdrid, cp, ret)
- |     character cp
- |
- |     filter that translate between characters and their xdr representation
- |     Note that the characters in not compressed and occupies 4 bytes.
- |
- | xdrfdouble(xdrid, dp, ret)
- |     double dp
- |
- |     read/write a double.
- |
- | xdrffloat(xdrid, fp, ret)
- |     float fp
- |
- |     read/write a float.
- |
- | xdrfint(xdrid, ip, ret)
- |     integer ip
- |
- |     read/write integer.
- |
- | xdrflong(xdrid, lp, ret)
- |     integer lp
- |
- |     this routine has a possible portablility problem due to 64 bits longs.
- |
- | xdrfshort(xdrid, sp, ret)
- |     integer *2 sp
- |
- | xdrfstring(xdrid, sp, maxsize, ret)
- |     character *(*)
- |     integer maxsize
- |
- |     read/write a string, with maximum length given by maxsize
- |
- | xdrfwrapstring(xdris, sp, ret)
- |     character *(*)
- |
- |     read/write a string (it is the same as xdrfstring accept that it finds
- |     the stringlength itself.
- |
- | xdrfvector(xdrid, cp, size, xdrfproc, ret)
- |     character *(*)
- |     integer size
- |     external xdrfproc
- |
- |     read/write an array pointed to by cp, with number of elements
- |     defined by 'size'. the routine 'xdrfproc' is the name
- |     of one of the above routines to read/write data (like xdrfdouble)
- |     In contrast with the c-version you don't need to specify the
- |     byte size of an element.
- |     xdrfstring is not allowed here (it is in the c version)
- |     
- | xdrf3dfcoord(xdrid, fp, size, precision, ret)
- |     real (*) fp
- |     real precision
- |     integer size
- |
- |     this is *NOT* a standard xdr routine. I named it this way, because
- |     it invites people to use the other xdr routines.
- |     It is introduced to store specifically 3d coordinates of molecules
- |     (as found in molecular dynamics) and it writes it in a compressed way.
- |     It starts by multiplying all numbers by precision and
- |     rounding the result to integer. effectively converting
- |     all floating point numbers to fixed point.
- |     it uses an algorithm for compression that is optimized for
- |     molecular data, but could be used for other 3d coordinates
- |     as well. There is subtantial overhead involved, so call this
- |     routine only if you have a large number of coordinates to read/write
- |
- | ________________________________________________________________________
- |
- | Below are the routines to be used by C programmers. Use the 'normal'
- | xdr routines to write integers, floats, etc (see man xdr)   
- |
- | int xdropen(XDR *xdrs, const char *filename, const char *type)
- |     This will open the file with the given filename and the 
- |     given mode. You should pass it an allocated XDR struct
- |     in xdrs, to be used in all other calls to xdr routines.
- |     Mode is 'w' to create, or update an file, and for all 
- |     other values of mode the file is opened for reading. 
- |     You need to call xdrclose to flush the output and close
- |     the file.
- |
- |     Note that you should not use xdrstdio_create, which
- |     comes with the standard xdr library.
- |
- | int xdrclose(XDR *xdrs)
- |     Flush the data to the file, and close the file;
- |     You should not use xdr_destroy (which comes standard
- |     with the xdr libraries).
- |      
- | int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision)
- |     This is \fInot\fR a standard xdr routine. I named it this 
- |     way, because it invites people to use the other xdr 
- |     routines.
- |
- |     (c) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-*/     
-
-
-#include <limits.h>
-#include <malloc.h>
-#include <math.h>
-#include <rpc/rpc.h>
-#include <rpc/xdr.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include "xdrf.h"
-
-int ftocstr(char *, int, char *, int);
-int ctofstr(char *, int, char *);
-
-#define MAXID 20
-static FILE *xdrfiles[MAXID];
-static XDR *xdridptr[MAXID];
-static char xdrmodes[MAXID];
-static unsigned int cnt;
-
-typedef void (* FUNCTION(xdrfproc)) (int *, void *, int *);
-
-void
-FUNCTION(xdrfbool) ARGS(`xdrid, pb, ret')
-int *xdrid, *ret;
-int *pb;
-{
-       *ret = xdr_bool(xdridptr[*xdrid], (bool_t *) pb);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrfchar) ARGS(`xdrid, cp, ret')
-int *xdrid, *ret;
-char *cp;
-{
-       *ret = xdr_char(xdridptr[*xdrid], cp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfdouble) ARGS(`xdrid, dp, ret')
-int *xdrid, *ret;
-double *dp;
-{
-       *ret = xdr_double(xdridptr[*xdrid], dp);
-       cnt += sizeof(double);
-}
-
-void
-FUNCTION(xdrffloat) ARGS(`xdrid, fp, ret')
-int *xdrid, *ret;
-float *fp;
-{
-       *ret = xdr_float(xdridptr[*xdrid], fp);
-       cnt += sizeof(float);
-}
-
-void
-FUNCTION(xdrfint) ARGS(`xdrid, ip, ret')
-int *xdrid, *ret;
-int *ip;
-{
-       *ret = xdr_int(xdridptr[*xdrid], ip);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrflong) ARGS(`xdrid, lp, ret')
-int *xdrid, *ret;
-long *lp;
-{
-       *ret = xdr_long(xdridptr[*xdrid], lp);
-       cnt += sizeof(long);
-}
-
-void
-FUNCTION(xdrfshort) ARGS(`xdrid, sp, ret')
-int *xdrid, *ret;
-short *sp;
-{
-       *ret = xdr_short(xdridptr[*xdrid], sp);
-       cnt += sizeof(sp);
-}
-
-void
-FUNCTION(xdrfuchar) ARGS(`xdrid, ucp, ret')
-int *xdrid, *ret;
-char *ucp;
-{
-       *ret = xdr_u_char(xdridptr[*xdrid], ucp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfulong) ARGS(`xdrid, ulp, ret')
-int *xdrid, *ret;
-unsigned long *ulp;
-{
-       *ret = xdr_u_long(xdridptr[*xdrid], ulp);
-       cnt += sizeof(unsigned long);
-}
-
-void
-FUNCTION(xdrfushort) ARGS(`xdrid, usp, ret')
-int *xdrid, *ret;
-unsigned short *usp;
-{
-       *ret = xdr_u_short(xdridptr[*xdrid], usp);
-       cnt += sizeof(unsigned short);
-}
-
-void 
-FUNCTION(xdrf3dfcoord) ARGS(`xdrid, fp, size, precision, ret')
-int *xdrid, *ret;
-float *fp;
-int *size;
-float *precision;
-{
-       *ret = xdr3dfcoord(xdridptr[*xdrid], fp, size, precision);
-}
-
-void
-FUNCTION(xdrfstring) ARGS(`xdrid, STRING_ARG(sp), maxsize, ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-int *maxsize;
-{
-       char *tsp;
-
-       tsp = (char*) malloc(((STRING_LEN(sp)) + 1) * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, *maxsize+1, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int) *maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += *maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfwrapstring) ARGS(`xdrid,  STRING_ARG(sp), ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-{
-       char *tsp;
-       int maxsize;
-       maxsize = (STRING_LEN(sp)) + 1;
-       tsp = (char*) malloc(maxsize * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, maxsize, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int)maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfopaque) ARGS(`xdrid, cp, ccnt, ret')
-int *xdrid, *ret;
-caddr_t *cp;
-int *ccnt;
-{
-       *ret = xdr_opaque(xdridptr[*xdrid], (caddr_t)*cp, (u_int)*ccnt);
-       cnt += *ccnt;
-}
-
-void
-FUNCTION(xdrfsetpos) ARGS(`xdrid, pos, ret')
-int *xdrid, *ret;
-int *pos;
-{
-       *ret = xdr_setpos(xdridptr[*xdrid], (u_int) *pos);
-}
-
-void
-FUNCTION(xdrf) ARGS(`xdrid, pos')
-int *xdrid, *pos;
-{
-       *pos = xdr_getpos(xdridptr[*xdrid]);
-}
-
-void
-FUNCTION(xdrfvector) ARGS(`xdrid, cp, size, elproc, ret')
-int *xdrid, *ret;
-char *cp;
-int *size;
-FUNCTION(xdrfproc) elproc;
-{
-       int lcnt;
-       cnt = 0;
-       for (lcnt = 0; lcnt < *size; lcnt++) {
-               elproc(xdrid, (cp+cnt) , ret);
-       }
-}
-
-
-void
-FUNCTION(xdrfclose) ARGS(`xdrid, ret')
-int *xdrid;
-int *ret;
-{
-       *ret = xdrclose(xdridptr[*xdrid]);
-       cnt = 0;
-}
-
-void
-FUNCTION(xdrfopen) ARGS(`xdrid,  STRING_ARG(fp), STRING_ARG(mode), ret')
-int *xdrid;
-STRING_ARG_DECL(fp);
-STRING_ARG_DECL(mode);
-int *ret;
-{
-       char fname[512];
-       char fmode[3];
-
-       if (ftocstr(fname, sizeof(fname), STRING_PTR(fp), STRING_LEN(fp))) {
-               *ret = 0;
-       }
-       if (ftocstr(fmode, sizeof(fmode), STRING_PTR(mode),
-                       STRING_LEN(mode))) {
-               *ret = 0;
-       }
-
-       *xdrid = xdropen(NULL, fname, fmode);
-       if (*xdrid == 0)
-               *ret = 0;
-       else 
-               *ret = 1;       
-}
-
-/*___________________________________________________________________________
- |
- | what follows are the C routines for opening, closing xdr streams
- | and the routine to read/write compressed coordinates together
- | with some routines to assist in this task (those are marked
- | static and cannot be called from user programs)
-*/
-#define MAXABS INT_MAX-2
-
-#ifndef MIN
-#define MIN(x,y) ((x) < (y) ? (x):(y))
-#endif
-#ifndef MAX
-#define MAX(x,y) ((x) > (y) ? (x):(y))
-#endif
-#ifndef SQR
-#define SQR(x) ((x)*(x))
-#endif
-static int magicints[] = {
-    0, 0, 0, 0, 0, 0, 0, 0, 0,
-    8, 10, 12, 16, 20, 25, 32, 40, 50, 64,
-    80, 101, 128, 161, 203, 256, 322, 406, 512, 645,
-    812, 1024, 1290, 1625, 2048, 2580, 3250, 4096, 5060, 6501,
-    8192, 10321, 13003, 16384, 20642, 26007, 32768, 41285, 52015, 65536,
-    82570, 104031, 131072, 165140, 208063, 262144, 330280, 416127, 524287, 660561,
-    832255, 1048576, 1321122, 1664510, 2097152, 2642245, 3329021, 4194304, 5284491, 6658042,
-    8388607, 10568983, 13316085, 16777216 };
-
-#define FIRSTIDX 9
-/* note that magicints[FIRSTIDX-1] == 0 */
-#define LASTIDX (sizeof(magicints) / sizeof(*magicints))
-
-
-/*__________________________________________________________________________
- |
- | xdropen - open xdr file
- |
- | This versions differs from xdrstdio_create, because I need to know
- | the state of the file (read or write) so I can use xdr3dfcoord
- | in eigther read or write mode, and the file descriptor
- | so I can close the file (something xdr_destroy doesn't do).
- |
-*/
-
-int xdropen(XDR *xdrs, const char *filename, const char *type) {
-    static int init_done = 0;
-    enum xdr_op lmode;
-    int xdrid;
-    
-    if (init_done == 0) {
-       for (xdrid = 1; xdrid < MAXID; xdrid++) {
-           xdridptr[xdrid] = NULL;
-       }
-       init_done = 1;
-    }
-    xdrid = 1;
-    while (xdrid < MAXID && xdridptr[xdrid] != NULL) {
-       xdrid++;
-    }
-    if (xdrid == MAXID) {
-       return 0;
-    }
-    if (*type == 'w' || *type == 'W') {
-           type = "w+";
-           lmode = XDR_ENCODE;
-    } else {
-           type = "r";
-           lmode = XDR_DECODE;
-    }
-    xdrfiles[xdrid] = fopen(filename, type);
-    if (xdrfiles[xdrid] == NULL) {
-       xdrs = NULL;
-       return 0;
-    }
-    xdrmodes[xdrid] = *type;
-    /* next test isn't usefull in the case of C language
-     * but is used for the Fortran interface
-     * (C users are expected to pass the address of an already allocated
-     * XDR staructure)
-     */
-    if (xdrs == NULL) {
-       xdridptr[xdrid] = (XDR *) malloc(sizeof(XDR));
-       xdrstdio_create(xdridptr[xdrid], xdrfiles[xdrid], lmode);
-    } else {
-       xdridptr[xdrid] = xdrs;
-       xdrstdio_create(xdrs, xdrfiles[xdrid], lmode);
-    }
-    return xdrid;
-}
-
-/*_________________________________________________________________________
- |
- | xdrclose - close a xdr file
- |
- | This will flush the xdr buffers, and destroy the xdr stream.
- | It also closes the associated file descriptor (this is *not*
- | done by xdr_destroy).
- |
-*/
-int xdrclose(XDR *xdrs) {
-    int xdrid;
-    
-    if (xdrs == NULL) {
-       fprintf(stderr, "xdrclose: passed a NULL pointer\n");
-       exit(1);
-    }
-    for (xdrid = 1; xdrid < MAXID; xdrid++) {
-       if (xdridptr[xdrid] == xdrs) {
-           
-           xdr_destroy(xdrs);
-           fclose(xdrfiles[xdrid]);
-           xdridptr[xdrid] = NULL;
-           return 1;
-       }
-    } 
-    fprintf(stderr, "xdrclose: no such open xdr file\n");
-    exit(1);
-    
-}
-
-/*____________________________________________________________________________
- |
- | sendbits - encode num into buf using the specified number of bits
- |
- | This routines appends the value of num to the bits already present in
- | the array buf. You need to give it the number of bits to use and you
- | better make sure that this number of bits is enough to hold the value
- | Also num must be positive.
- |
-*/
-
-static void sendbits(int buf[], int num_of_bits, int num) {
-    
-    unsigned int cnt, lastbyte;
-    int lastbits;
-    unsigned char * cbuf;
-    
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = (unsigned int) buf[0];
-    lastbits = buf[1];
-    lastbyte =(unsigned int) buf[2];
-    while (num_of_bits >= 8) {
-       lastbyte = (lastbyte << 8) | ((num >> (num_of_bits -8)) /* & 0xff*/);
-       cbuf[cnt++] = lastbyte >> lastbits;
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       lastbyte = (lastbyte << num_of_bits) | num;
-       lastbits += num_of_bits;
-       if (lastbits >= 8) {
-           lastbits -= 8;
-           cbuf[cnt++] = lastbyte >> lastbits;
-       }
-    }
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    if (lastbits>0) {
-       cbuf[cnt] = lastbyte << (8 - lastbits);
-    }
-}
-
-/*_________________________________________________________________________
- |
- | sizeofint - calculate bitsize of an integer
- |
- | return the number of bits needed to store an integer with given max size
- |
-*/
-
-static int sizeofint(const int size) {
-    unsigned int num = 1;
-    int num_of_bits = 0;
-    
-    while (size >= num && num_of_bits < 32) {
-       num_of_bits++;
-       num <<= 1;
-    }
-    return num_of_bits;
-}
-
-/*___________________________________________________________________________
- |
- | sizeofints - calculate 'bitsize' of compressed ints
- |
- | given the number of small unsigned integers and the maximum value
- | return the number of bits needed to read or write them with the
- | routines receiveints and sendints. You need this parameter when
- | calling these routines. Note that for many calls I can use
- | the variable 'smallidx' which is exactly the number of bits, and
- | So I don't need to call 'sizeofints for those calls.
-*/
-
-static int sizeofints( const int num_of_ints, unsigned int sizes[]) {
-    int i, num;
-    unsigned int num_of_bytes, num_of_bits, bytes[32], bytecnt, tmp;
-    num_of_bytes = 1;
-    bytes[0] = 1;
-    num_of_bits = 0;
-    for (i=0; i < num_of_ints; i++) {  
-       tmp = 0;
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    num = 1;
-    num_of_bytes--;
-    while (bytes[num_of_bytes] >= num) {
-       num_of_bits++;
-       num *= 2;
-    }
-    return num_of_bits + num_of_bytes * 8;
-
-}
-    
-/*____________________________________________________________________________
- |
- | sendints - send a small set of small integers in compressed format
- |
- | this routine is used internally by xdr3dfcoord, to send a set of
- | small integers to the buffer. 
- | Multiplication with fixed (specified maximum ) sizes is used to get
- | to one big, multibyte integer. Allthough the routine could be
- | modified to handle sizes bigger than 16777216, or more than just
- | a few integers, this is not done, because the gain in compression
- | isn't worth the effort. Note that overflowing the multiplication
- | or the byte buffer (32 bytes) is unchecked and causes bad results.
- |
- */
-static void sendints(int buf[], const int num_of_ints, const int num_of_bits,
-       unsigned int sizes[], unsigned int nums[]) {
-
-    int i;
-    unsigned int bytes[32], num_of_bytes, bytecnt, tmp;
-
-    tmp = nums[0];
-    num_of_bytes = 0;
-    do {
-       bytes[num_of_bytes++] = tmp & 0xff;
-       tmp >>= 8;
-    } while (tmp != 0);
-
-    for (i = 1; i < num_of_ints; i++) {
-       if (nums[i] >= sizes[i]) {
-           fprintf(stderr,"major breakdown in sendints num %d doesn't "
-                   "match size %d\n", nums[i], sizes[i]);
-           exit(1);
-       }
-       /* use one step multiply */    
-       tmp = nums[i];
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    if (num_of_bits >= num_of_bytes * 8) {
-       for (i = 0; i < num_of_bytes; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits - num_of_bytes * 8, 0);
-    } else {
-       for (i = 0; i < num_of_bytes-1; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits- (num_of_bytes -1) * 8, bytes[i]);
-    }
-}
-
-
-/*___________________________________________________________________________
- |
- | receivebits - decode number from buf using specified number of bits
- | 
- | extract the number of bits from the array buf and construct an integer
- | from it. Return that value.
- |
-*/
-
-static int receivebits(int buf[], int num_of_bits) {
-
-    int cnt, num; 
-    unsigned int lastbits, lastbyte;
-    unsigned char * cbuf;
-    int mask = (1 << num_of_bits) -1;
-
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = buf[0];
-    lastbits = (unsigned int) buf[1];
-    lastbyte = (unsigned int) buf[2];
-    
-    num = 0;
-    while (num_of_bits >= 8) {
-       lastbyte = ( lastbyte << 8 ) | cbuf[cnt++];
-       num |=  (lastbyte >> lastbits) << (num_of_bits - 8);
-       num_of_bits -=8;
-    }
-    if (num_of_bits > 0) {
-       if (lastbits < num_of_bits) {
-           lastbits += 8;
-           lastbyte = (lastbyte << 8) | cbuf[cnt++];
-       }
-       lastbits -= num_of_bits;
-       num |= (lastbyte >> lastbits) & ((1 << num_of_bits) -1);
-    }
-    num &= mask;
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    return num; 
-}
-
-/*____________________________________________________________________________
- |
- | receiveints - decode 'small' integers from the buf array
- |
- | this routine is the inverse from sendints() and decodes the small integers
- | written to buf by calculating the remainder and doing divisions with
- | the given sizes[]. You need to specify the total number of bits to be
- | used from buf in num_of_bits.
- |
-*/
-
-static void receiveints(int buf[], const int num_of_ints, int num_of_bits,
-       unsigned int sizes[], int nums[]) {
-    int bytes[32];
-    int i, j, num_of_bytes, p, num;
-    
-    bytes[1] = bytes[2] = bytes[3] = 0;
-    num_of_bytes = 0;
-    while (num_of_bits > 8) {
-       bytes[num_of_bytes++] = receivebits(buf, 8);
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       bytes[num_of_bytes++] = receivebits(buf, num_of_bits);
-    }
-    for (i = num_of_ints-1; i > 0; i--) {
-       num = 0;
-       for (j = num_of_bytes-1; j >=0; j--) {
-           num = (num << 8) | bytes[j];
-           p = num / sizes[i];
-           bytes[j] = p;
-           num = num - p * sizes[i];
-       }
-       nums[i] = num;
-    }
-    nums[0] = bytes[0] | (bytes[1] << 8) | (bytes[2] << 16) | (bytes[3] << 24);
-}
-    
-/*____________________________________________________________________________
- |
- | xdr3dfcoord - read or write compressed 3d coordinates to xdr file.
- |
- | this routine reads or writes (depending on how you opened the file with
- | xdropen() ) a large number of 3d coordinates (stored in *fp).
- | The number of coordinates triplets to write is given by *size. On
- | read this number may be zero, in which case it reads as many as were written
- | or it may specify the number if triplets to read (which should match the
- | number written).
- | Compression is achieved by first converting all floating numbers to integer
- | using multiplication by *precision and rounding to the nearest integer.
- | Then the minimum and maximum value are calculated to determine the range.
- | The limited range of integers so found, is used to compress the coordinates.
- | In addition the differences between succesive coordinates is calculated.
- | If the difference happens to be 'small' then only the difference is saved,
- | compressing the data even more. The notion of 'small' is changed dynamically
- | and is enlarged or reduced whenever needed or possible.
- | Extra compression is achieved in the case of GROMOS and coordinates of
- | water molecules. GROMOS first writes out the Oxygen position, followed by
- | the two hydrogens. In order to make the differences smaller (and thereby
- | compression the data better) the order is changed into first one hydrogen
- | then the oxygen, followed by the other hydrogen. This is rather special, but
- | it shouldn't harm in the general case.
- |
- */
-int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) {
-    
-
-    static int *ip = NULL;
-    static int oldsize;
-    static int *buf;
-
-    int minint[3], maxint[3], mindiff, *lip, diff;
-    int lint1, lint2, lint3, oldlint1, oldlint2, oldlint3, smallidx;
-    int minidx, maxidx;
-    unsigned sizeint[3], sizesmall[3], bitsizeint[3], size3, *luip;
-    int flag, k;
-    int small, smaller, larger, i, is_small, is_smaller, run, prevrun;
-    float *lfp, lf;
-    int tmp, *thiscoord,  prevcoord[3];
-    unsigned int tmpcoord[30];
-
-    int bufsize, xdrid, lsize;
-    unsigned int bitsize;
-    float inv_precision;
-    int errval = 1;
-
-    /* find out if xdrs is opened for reading or for writing */
-    xdrid = 0;
-    while (xdridptr[xdrid] != xdrs) {
-       xdrid++;
-       if (xdrid >= MAXID) {
-           fprintf(stderr, "xdr error. no open xdr stream\n");
-           exit (1);
-       }
-    }
-    if (xdrmodes[xdrid] == 'w') {
-
-       /* xdrs is open for writing */
-
-       if (xdr_int(xdrs, size) == 0)
-           return 0;
-       size3 = *size * 3;
-       /* when the number of coordinates is small, don't try to compress; just
-        * write them as floats using xdr_vector
-        */
-       if (*size <= 9 ) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       /* buf[0-2] are special and do not contain actual data */
-       buf[0] = buf[1] = buf[2] = 0;
-       minint[0] = minint[1] = minint[2] = INT_MAX;
-       maxint[0] = maxint[1] = maxint[2] = INT_MIN;
-       prevrun = -1;
-       lfp = fp;
-       lip = ip;
-       mindiff = INT_MAX;
-       oldlint1 = oldlint2 = oldlint3 = 0;
-       while(lfp < fp + size3 ) {
-           /* find nearest integer */
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint1 = lf;
-           if (lint1 < minint[0]) minint[0] = lint1;
-           if (lint1 > maxint[0]) maxint[0] = lint1;
-           *lip++ = lint1;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint2 = lf;
-           if (lint2 < minint[1]) minint[1] = lint2;
-           if (lint2 > maxint[1]) maxint[1] = lint2;
-           *lip++ = lint2;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint3 = lf;
-           if (lint3 < minint[2]) minint[2] = lint3;
-           if (lint3 > maxint[2]) maxint[2] = lint3;
-           *lip++ = lint3;
-           lfp++;
-           diff = abs(oldlint1-lint1)+abs(oldlint2-lint2)+abs(oldlint3-lint3);
-           if (diff < mindiff && lfp > fp + 3)
-               mindiff = diff;
-           oldlint1 = lint1;
-           oldlint2 = lint2;
-           oldlint3 = lint3;
-       }
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-       
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-       
-       if ((float)maxint[0] - (float)minint[0] >= MAXABS ||
-               (float)maxint[1] - (float)minint[1] >= MAXABS ||
-               (float)maxint[2] - (float)minint[2] >= MAXABS) {
-           /* turning value in unsigned by subtracting minint
-            * would cause overflow
-            */
-           errval = 0;
-       }
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       lip = ip;
-       luip = (unsigned int *) ip;
-       smallidx = FIRSTIDX;
-       while (smallidx < LASTIDX && magicints[smallidx] < mindiff) {
-           smallidx++;
-       }
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-       larger = magicints[maxidx] / 2;
-       i = 0;
-       while (i < *size) {
-           is_small = 0;
-           thiscoord = (int *)(luip) + i * 3;
-           if (smallidx < maxidx && i >= 1 &&
-                   abs(thiscoord[0] - prevcoord[0]) < larger &&
-                   abs(thiscoord[1] - prevcoord[1]) < larger &&
-                   abs(thiscoord[2] - prevcoord[2]) < larger) {
-               is_smaller = 1;
-           } else if (smallidx > minidx) {
-               is_smaller = -1;
-           } else {
-               is_smaller = 0;
-           }
-           if (i + 1 < *size) {
-               if (abs(thiscoord[0] - thiscoord[3]) < small &&
-                       abs(thiscoord[1] - thiscoord[4]) < small &&
-                       abs(thiscoord[2] - thiscoord[5]) < small) {
-                   /* interchange first with second atom for better
-                    * compression of water molecules
-                    */
-                   tmp = thiscoord[0]; thiscoord[0] = thiscoord[3];
-                       thiscoord[3] = tmp;
-                   tmp = thiscoord[1]; thiscoord[1] = thiscoord[4];
-                       thiscoord[4] = tmp;
-                   tmp = thiscoord[2]; thiscoord[2] = thiscoord[5];
-                       thiscoord[5] = tmp;
-                   is_small = 1;
-               }
-    
-           }
-           tmpcoord[0] = thiscoord[0] - minint[0];
-           tmpcoord[1] = thiscoord[1] - minint[1];
-           tmpcoord[2] = thiscoord[2] - minint[2];
-           if (bitsize == 0) {
-               sendbits(buf, bitsizeint[0], tmpcoord[0]);
-               sendbits(buf, bitsizeint[1], tmpcoord[1]);
-               sendbits(buf, bitsizeint[2], tmpcoord[2]);
-           } else {
-               sendints(buf, 3, bitsize, sizeint, tmpcoord);
-           }
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           thiscoord = thiscoord + 3;
-           i++;
-           
-           run = 0;
-           if (is_small == 0 && is_smaller == -1)
-               is_smaller = 0;
-           while (is_small && run < 8*3) {
-               if (is_smaller == -1 && (
-                       SQR(thiscoord[0] - prevcoord[0]) +
-                       SQR(thiscoord[1] - prevcoord[1]) +
-                       SQR(thiscoord[2] - prevcoord[2]) >= smaller * smaller)) {
-                   is_smaller = 0;
-               }
-
-               tmpcoord[run++] = thiscoord[0] - prevcoord[0] + small;
-               tmpcoord[run++] = thiscoord[1] - prevcoord[1] + small;
-               tmpcoord[run++] = thiscoord[2] - prevcoord[2] + small;
-               
-               prevcoord[0] = thiscoord[0];
-               prevcoord[1] = thiscoord[1];
-               prevcoord[2] = thiscoord[2];
-
-               i++;
-               thiscoord = thiscoord + 3;
-               is_small = 0;
-               if (i < *size &&
-                       abs(thiscoord[0] - prevcoord[0]) < small &&
-                       abs(thiscoord[1] - prevcoord[1]) < small &&
-                       abs(thiscoord[2] - prevcoord[2]) < small) {
-                   is_small = 1;
-               }
-           }
-           if (run != prevrun || is_smaller != 0) {
-               prevrun = run;
-               sendbits(buf, 1, 1); /* flag the change in run-length */
-               sendbits(buf, 5, run+is_smaller+1);
-           } else {
-               sendbits(buf, 1, 0); /* flag the fact that runlength did not change */
-           }
-           for (k=0; k < run; k+=3) {
-               sendints(buf, 3, smallidx, sizesmall, &tmpcoord[k]);    
-           }
-           if (is_smaller != 0) {
-               smallidx += is_smaller;
-               if (is_smaller < 0) {
-                   small = smaller;
-                   smaller = magicints[smallidx-1] / 2;
-               } else {
-                   smaller = small;
-                   small = magicints[smallidx] / 2;
-               }
-               sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-           }
-       }
-       if (buf[1] != 0) buf[0]++;;
-       xdr_int(xdrs, &(buf[0])); /* buf[0] holds the length in bytes */
-       return errval * (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]));
-    } else {
-       
-       /* xdrs is open for reading */
-       
-       if (xdr_int(xdrs, &lsize) == 0) 
-           return 0;
-       if (*size != 0 && lsize != *size) {
-           fprintf(stderr, "wrong number of coordinates in xdr3dfcoor; "
-                   "%d arg vs %d in file", *size, lsize);
-       }
-       *size = lsize;
-       size3 = *size * 3;
-       if (*size <= 9) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-               
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       larger = magicints[maxidx];
-
-       /* buf[0] holds the length in bytes */
-
-       if (xdr_int(xdrs, &(buf[0])) == 0)
-           return 0;
-       if (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]) == 0)
-           return 0;
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       lfp = fp;
-       inv_precision = 1.0 / * precision;
-       run = 0;
-       i = 0;
-       lip = ip;
-       while ( i < lsize ) {
-           thiscoord = (int *)(lip) + i * 3;
-
-           if (bitsize == 0) {
-               thiscoord[0] = receivebits(buf, bitsizeint[0]);
-               thiscoord[1] = receivebits(buf, bitsizeint[1]);
-               thiscoord[2] = receivebits(buf, bitsizeint[2]);
-           } else {
-               receiveints(buf, 3, bitsize, sizeint, thiscoord);
-           }
-           
-           i++;
-           thiscoord[0] += minint[0];
-           thiscoord[1] += minint[1];
-           thiscoord[2] += minint[2];
-           
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           
-          
-           flag = receivebits(buf, 1);
-           is_smaller = 0;
-           if (flag == 1) {
-               run = receivebits(buf, 5);
-               is_smaller = run % 3;
-               run -= is_smaller;
-               is_smaller--;
-           }
-           if (run > 0) {
-               thiscoord += 3;
-               for (k = 0; k < run; k+=3) {
-                   receiveints(buf, 3, smallidx, sizesmall, thiscoord);
-                   i++;
-                   thiscoord[0] += prevcoord[0] - small;
-                   thiscoord[1] += prevcoord[1] - small;
-                   thiscoord[2] += prevcoord[2] - small;
-                   if (k == 0) {
-                       /* interchange first with second atom for better
-                        * compression of water molecules
-                        */
-                       tmp = thiscoord[0]; thiscoord[0] = prevcoord[0];
-                               prevcoord[0] = tmp;
-                       tmp = thiscoord[1]; thiscoord[1] = prevcoord[1];
-                               prevcoord[1] = tmp;
-                       tmp = thiscoord[2]; thiscoord[2] = prevcoord[2];
-                               prevcoord[2] = tmp;
-                       *lfp++ = prevcoord[0] * inv_precision;
-                       *lfp++ = prevcoord[1] * inv_precision;
-                       *lfp++ = prevcoord[2] * inv_precision;
-                   } else {
-                       prevcoord[0] = thiscoord[0];
-                       prevcoord[1] = thiscoord[1];
-                       prevcoord[2] = thiscoord[2];
-                   }
-                   *lfp++ = thiscoord[0] * inv_precision;
-                   *lfp++ = thiscoord[1] * inv_precision;
-                   *lfp++ = thiscoord[2] * inv_precision;
-               }
-           } else {
-               *lfp++ = thiscoord[0] * inv_precision;
-               *lfp++ = thiscoord[1] * inv_precision;
-               *lfp++ = thiscoord[2] * inv_precision;          
-           }
-           smallidx += is_smaller;
-           if (is_smaller < 0) {
-               small = smaller;
-               if (smallidx > FIRSTIDX) {
-                   smaller = magicints[smallidx - 1] /2;
-               } else {
-                   smaller = 0;
-               }
-           } else if (is_smaller > 0) {
-               smaller = small;
-               small = magicints[smallidx] / 2;
-           }
-           sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       }
-    }
-    return 1;
-}
-
-
-   
diff --git a/source/wham/src-M/xdrf/libxdrf.m4~ b/source/wham/src-M/xdrf/libxdrf.m4~
deleted file mode 100644 (file)
index 9fd7f48..0000000
+++ /dev/null
@@ -1,1232 +0,0 @@
-/*____________________________________________________________________________
- |
- | libxdrf - portable fortran interface to xdr. some xdr routines
- |          are C routines for compressed coordinates
- |
- | version 1.1
- |
- | This collection of routines is intended to write and read
- | data in a portable way to a file, so data written on one type
- | of machine can be read back on a different type.
- |
- | all fortran routines use an integer 'xdrid', which is an id to the
- | current xdr file, and is set by xdrfopen.
- | most routines have in integer 'ret' which is the return value.
- | The value of 'ret' is zero on failure, and most of the time one
- | on succes.
- |
- | There are three routines useful for C users:
- |  xdropen(), xdrclose(), xdr3dfcoord().
- | The first two replace xdrstdio_create and xdr_destroy, and *must* be
- | used when you plan to use xdr3dfcoord(). (they are also a bit
- | easier to interface). For writing data other than compressed coordinates 
- | you should use the standard C xdr routines (see xdr man page)
- |
- | xdrfopen(xdrid, filename, mode, ret)
- |     character *(*) filename
- |     character *(*) mode
- |
- |     this will open the file with the given filename (string)
- |     and the given mode, it returns an id in xdrid, which is
- |     to be used in all other calls to xdrf routines.
- |     mode is 'w' to create, or update an file, for all other
- |     values of mode the file is opened for reading
- |
- |     you need to call xdrfclose to flush the output and close
- |     the file.
- |     Note that you should not use xdrstdio_create, which comes with the
- |     standard xdr library
- |
- | xdrfclose(xdrid, ret)
- |     flush the data to the file, and closes the file;
- |     You should not use xdr_destroy (which comes standard with
- |     the xdr libraries.
- |
- | xdrfbool(xdrid, bp, ret)
- |     integer pb
- |
- |     This filter produces values of either 1 or 0    
- |
- | xdrfchar(xdrid, cp, ret)
- |     character cp
- |
- |     filter that translate between characters and their xdr representation
- |     Note that the characters in not compressed and occupies 4 bytes.
- |
- | xdrfdouble(xdrid, dp, ret)
- |     double dp
- |
- |     read/write a double.
- |
- | xdrffloat(xdrid, fp, ret)
- |     float fp
- |
- |     read/write a float.
- |
- | xdrfint(xdrid, ip, ret)
- |     integer ip
- |
- |     read/write integer.
- |
- | xdrflong(xdrid, lp, ret)
- |     integer lp
- |
- |     this routine has a possible portablility problem due to 64 bits longs.
- |
- | xdrfshort(xdrid, sp, ret)
- |     integer *2 sp
- |
- | xdrfstring(xdrid, sp, maxsize, ret)
- |     character *(*)
- |     integer maxsize
- |
- |     read/write a string, with maximum length given by maxsize
- |
- | xdrfwrapstring(xdris, sp, ret)
- |     character *(*)
- |
- |     read/write a string (it is the same as xdrfstring accept that it finds
- |     the stringlength itself.
- |
- | xdrfvector(xdrid, cp, size, xdrfproc, ret)
- |     character *(*)
- |     integer size
- |     external xdrfproc
- |
- |     read/write an array pointed to by cp, with number of elements
- |     defined by 'size'. the routine 'xdrfproc' is the name
- |     of one of the above routines to read/write data (like xdrfdouble)
- |     In contrast with the c-version you don't need to specify the
- |     byte size of an element.
- |     xdrfstring is not allowed here (it is in the c version)
- |     
- | xdrf3dfcoord(xdrid, fp, size, precision, ret)
- |     real (*) fp
- |     real precision
- |     integer size
- |
- |     this is *NOT* a standard xdr routine. I named it this way, because
- |     it invites people to use the other xdr routines.
- |     It is introduced to store specifically 3d coordinates of molecules
- |     (as found in molecular dynamics) and it writes it in a compressed way.
- |     It starts by multiplying all numbers by precision and
- |     rounding the result to integer. effectively converting
- |     all floating point numbers to fixed point.
- |     it uses an algorithm for compression that is optimized for
- |     molecular data, but could be used for other 3d coordinates
- |     as well. There is subtantial overhead involved, so call this
- |     routine only if you have a large number of coordinates to read/write
- |
- | ________________________________________________________________________
- |
- | Below are the routines to be used by C programmers. Use the 'normal'
- | xdr routines to write integers, floats, etc (see man xdr)   
- |
- | int xdropen(XDR *xdrs, const char *filename, const char *type)
- |     This will open the file with the given filename and the 
- |     given mode. You should pass it an allocated XDR struct
- |     in xdrs, to be used in all other calls to xdr routines.
- |     Mode is 'w' to create, or update an file, and for all 
- |     other values of mode the file is opened for reading. 
- |     You need to call xdrclose to flush the output and close
- |     the file.
- |
- |     Note that you should not use xdrstdio_create, which
- |     comes with the standard xdr library.
- |
- | int xdrclose(XDR *xdrs)
- |     Flush the data to the file, and close the file;
- |     You should not use xdr_destroy (which comes standard
- |     with the xdr libraries).
- |      
- | int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision)
- |     This is \fInot\fR a standard xdr routine. I named it this 
- |     way, because it invites people to use the other xdr 
- |     routines.
- |
- |     (c) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-*/     
-
-
-#include <limits.h>
-#include <malloc.h>
-#include <math.h>
-#include <rpc/rpc.h>
-#include <rpc/xdr.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include "xdrf.h"
-
-int ftocstr(char *, int, char *, int);
-int ctofstr(char *, int, char *);
-
-#define MAXID 20
-static FILE *xdrfiles[MAXID];
-static XDR *xdridptr[MAXID];
-static char xdrmodes[MAXID];
-static unsigned int cnt;
-
-typedef void (* FUNCTION(xdrfproc)) (int *, void *, int *);
-
-void
-FUNCTION(xdrfbool) ARGS(`xdrid, pb, ret')
-int *xdrid, *ret;
-int *pb;
-{
-       *ret = xdr_bool(xdridptr[*xdrid], (bool_t *) pb);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrfchar) ARGS(`xdrid, cp, ret')
-int *xdrid, *ret;
-char *cp;
-{
-       *ret = xdr_char(xdridptr[*xdrid], cp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfdouble) ARGS(`xdrid, dp, ret')
-int *xdrid, *ret;
-double *dp;
-{
-       *ret = xdr_double(xdridptr[*xdrid], dp);
-       cnt += sizeof(double);
-}
-
-void
-FUNCTION(xdrffloat) ARGS(`xdrid, fp, ret')
-int *xdrid, *ret;
-float *fp;
-{
-       *ret = xdr_float(xdridptr[*xdrid], fp);
-       cnt += sizeof(float);
-}
-
-void
-FUNCTION(xdrfint) ARGS(`xdrid, ip, ret')
-int *xdrid, *ret;
-int *ip;
-{
-       *ret = xdr_int(xdridptr[*xdrid], ip);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrflong) ARGS(`xdrid, lp, ret')
-int *xdrid, *ret;
-long *lp;
-{
-       *ret = xdr_long(xdridptr[*xdrid], lp);
-       cnt += sizeof(long);
-}
-
-void
-FUNCTION(xdrfshort) ARGS(`xdrid, sp, ret')
-int *xdrid, *ret;
-short *sp;
-{
-       *ret = xdr_short(xdridptr[*xdrid], sp);
-       cnt += sizeof(sp);
-}
-
-void
-FUNCTION(xdrfuchar) ARGS(`xdrid, ucp, ret')
-int *xdrid, *ret;
-char *ucp;
-{
-       *ret = xdr_u_char(xdridptr[*xdrid], ucp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfulong) ARGS(`xdrid, ulp, ret')
-int *xdrid, *ret;
-unsigned long *ulp;
-{
-       *ret = xdr_u_long(xdridptr[*xdrid], ulp);
-       cnt += sizeof(unsigned long);
-}
-
-void
-FUNCTION(xdrfushort) ARGS(`xdrid, usp, ret')
-int *xdrid, *ret;
-unsigned short *usp;
-{
-       *ret = xdr_u_short(xdridptr[*xdrid], usp);
-       cnt += sizeof(unsigned short);
-}
-
-void 
-FUNCTION(xdrf3dfcoord) ARGS(`xdrid, fp, size, precision, ret')
-int *xdrid, *ret;
-float *fp;
-int *size;
-float *precision;
-{
-       *ret = xdr3dfcoord(xdridptr[*xdrid], fp, size, precision);
-}
-
-void
-FUNCTION(xdrfstring) ARGS(`xdrid, STRING_ARG(sp), maxsize, ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-int *maxsize;
-{
-       char *tsp;
-
-       tsp = (char*) malloc(((STRING_LEN(sp)) + 1) * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, *maxsize+1, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int) *maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += *maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfwrapstring) ARGS(`xdrid,  STRING_ARG(sp), ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-{
-       char *tsp;
-       int maxsize;
-       maxsize = (STRING_LEN(sp)) + 1;
-       tsp = (char*) malloc(maxsize * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, maxsize, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int)maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfopaque) ARGS(`xdrid, cp, ccnt, ret')
-int *xdrid, *ret;
-caddr_t *cp;
-int *ccnt;
-{
-       *ret = xdr_opaque(xdridptr[*xdrid], (caddr_t)*cp, (u_int)*ccnt);
-       cnt += *ccnt;
-}
-
-void
-FUNCTION(xdrfsetpos) ARGS(`xdrid, pos, ret')
-int *xdrid, *ret;
-int *pos;
-{
-       *ret = xdr_setpos(xdridptr[*xdrid], (u_int) *pos);
-}
-
-void
-FUNCTION(xdrf) ARGS(`xdrid, pos')
-int *xdrid, *pos;
-{
-       *pos = xdr_getpos(xdridptr[*xdrid]);
-}
-
-void
-FUNCTION(xdrfvector) ARGS(`xdrid, cp, size, elproc, ret')
-int *xdrid, *ret;
-char *cp;
-int *size;
-FUNCTION(xdrfproc) elproc;
-{
-       int lcnt;
-       cnt = 0;
-       for (lcnt = 0; lcnt < *size; lcnt++) {
-               elproc(xdrid, (cp+cnt) , ret);
-       }
-}
-
-
-void
-FUNCTION(xdrfclose) ARGS(`xdrid, ret')
-int *xdrid;
-int *ret;
-{
-       *ret = xdrclose(xdridptr[*xdrid]);
-       cnt = 0;
-}
-
-void
-FUNCTION(xdrfopen) ARGS(`xdrid,  STRING_ARG(fp), STRING_ARG(mode), ret')
-int *xdrid;
-STRING_ARG_DECL(fp);
-STRING_ARG_DECL(mode);
-int *ret;
-{
-       char fname[512];
-       char fmode[3];
-
-       if (ftocstr(fname, sizeof(fname), STRING_PTR(fp), STRING_LEN(fp))) {
-               *ret = 0;
-       }
-       if (ftocstr(fmode, sizeof(fmode), STRING_PTR(mode),
-                       STRING_LEN(mode))) {
-               *ret = 0;
-       }
-
-       *xdrid = xdropen(NULL, fname, fmode);
-       if (*xdrid == 0)
-               *ret = 0;
-       else 
-               *ret = 1;       
-}
-
-/*___________________________________________________________________________
- |
- | what follows are the C routines for opening, closing xdr streams
- | and the routine to read/write compressed coordinates together
- | with some routines to assist in this task (those are marked
- | static and cannot be called from user programs)
-*/
-#define MAXABS INT_MAX-2
-
-#ifndef MIN
-#define MIN(x,y) ((x) < (y) ? (x):(y))
-#endif
-#ifndef MAX
-#define MAX(x,y) ((x) > (y) ? (x):(y))
-#endif
-#ifndef SQR
-#define SQR(x) ((x)*(x))
-#endif
-static int magicints[] = {
-    0, 0, 0, 0, 0, 0, 0, 0, 0,
-    8, 10, 12, 16, 20, 25, 32, 40, 50, 64,
-    80, 101, 128, 161, 203, 256, 322, 406, 512, 645,
-    812, 1024, 1290, 1625, 2048, 2580, 3250, 4096, 5060, 6501,
-    8192, 10321, 13003, 16384, 20642, 26007, 32768, 41285, 52015, 65536,
-    82570, 104031, 131072, 165140, 208063, 262144, 330280, 416127, 524287, 660561,
-    832255, 1048576, 1321122, 1664510, 2097152, 2642245, 3329021, 4194304, 5284491, 6658042,
-    8388607, 10568983, 13316085, 16777216 };
-
-#define FIRSTIDX 9
-/* note that magicints[FIRSTIDX-1] == 0 */
-#define LASTIDX (sizeof(magicints) / sizeof(*magicints))
-
-
-/*__________________________________________________________________________
- |
- | xdropen - open xdr file
- |
- | This versions differs from xdrstdio_create, because I need to know
- | the state of the file (read or write) so I can use xdr3dfcoord
- | in eigther read or write mode, and the file descriptor
- | so I can close the file (something xdr_destroy doesn't do).
- |
-*/
-
-int xdropen(XDR *xdrs, const char *filename, const char *type) {
-    static int init_done = 0;
-    enum xdr_op lmode;
-    const char *type1;
-    int xdrid;
-    
-    if (init_done == 0) {
-       for (xdrid = 1; xdrid < MAXID; xdrid++) {
-           xdridptr[xdrid] = NULL;
-       }
-       init_done = 1;
-    }
-    xdrid = 1;
-    while (xdrid < MAXID && xdridptr[xdrid] != NULL) {
-       xdrid++;
-    }
-    if (xdrid == MAXID) {
-       return 0;
-    }
-    if (*type == 'w' || *type == 'W') {
-           type = "w+";
-           type1 = "a+";
-           lmode = XDR_ENCODE;
-    } else {
-           type = "r";
-           lmode = XDR_DECODE;
-    }
-    xdrfiles[xdrid] = fopen(filename, type1);
-    if (xdrfiles[xdrid] == NULL) {
-       xdrs = NULL;
-       return 0;
-    }
-    xdrmodes[xdrid] = *type;
-    /* next test isn't usefull in the case of C language
-     * but is used for the Fortran interface
-     * (C users are expected to pass the address of an already allocated
-     * XDR staructure)
-     */
-    if (xdrs == NULL) {
-       xdridptr[xdrid] = (XDR *) malloc(sizeof(XDR));
-       xdrstdio_create(xdridptr[xdrid], xdrfiles[xdrid], lmode);
-    } else {
-       xdridptr[xdrid] = xdrs;
-       xdrstdio_create(xdrs, xdrfiles[xdrid], lmode);
-    }
-    return xdrid;
-}
-
-/*_________________________________________________________________________
- |
- | xdrclose - close a xdr file
- |
- | This will flush the xdr buffers, and destroy the xdr stream.
- | It also closes the associated file descriptor (this is *not*
- | done by xdr_destroy).
- |
-*/
-int xdrclose(XDR *xdrs) {
-    int xdrid;
-    
-    if (xdrs == NULL) {
-       fprintf(stderr, "xdrclose: passed a NULL pointer\n");
-       exit(1);
-    }
-    for (xdrid = 1; xdrid < MAXID; xdrid++) {
-       if (xdridptr[xdrid] == xdrs) {
-           
-           xdr_destroy(xdrs);
-           fclose(xdrfiles[xdrid]);
-           xdridptr[xdrid] = NULL;
-           return 1;
-       }
-    } 
-    fprintf(stderr, "xdrclose: no such open xdr file\n");
-    exit(1);
-    
-}
-
-/*____________________________________________________________________________
- |
- | sendbits - encode num into buf using the specified number of bits
- |
- | This routines appends the value of num to the bits already present in
- | the array buf. You need to give it the number of bits to use and you
- | better make sure that this number of bits is enough to hold the value
- | Also num must be positive.
- |
-*/
-
-static void sendbits(int buf[], int num_of_bits, int num) {
-    
-    unsigned int cnt, lastbyte;
-    int lastbits;
-    unsigned char * cbuf;
-    
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = (unsigned int) buf[0];
-    lastbits = buf[1];
-    lastbyte =(unsigned int) buf[2];
-    while (num_of_bits >= 8) {
-       lastbyte = (lastbyte << 8) | ((num >> (num_of_bits -8)) /* & 0xff*/);
-       cbuf[cnt++] = lastbyte >> lastbits;
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       lastbyte = (lastbyte << num_of_bits) | num;
-       lastbits += num_of_bits;
-       if (lastbits >= 8) {
-           lastbits -= 8;
-           cbuf[cnt++] = lastbyte >> lastbits;
-       }
-    }
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    if (lastbits>0) {
-       cbuf[cnt] = lastbyte << (8 - lastbits);
-    }
-}
-
-/*_________________________________________________________________________
- |
- | sizeofint - calculate bitsize of an integer
- |
- | return the number of bits needed to store an integer with given max size
- |
-*/
-
-static int sizeofint(const int size) {
-    unsigned int num = 1;
-    int num_of_bits = 0;
-    
-    while (size >= num && num_of_bits < 32) {
-       num_of_bits++;
-       num <<= 1;
-    }
-    return num_of_bits;
-}
-
-/*___________________________________________________________________________
- |
- | sizeofints - calculate 'bitsize' of compressed ints
- |
- | given the number of small unsigned integers and the maximum value
- | return the number of bits needed to read or write them with the
- | routines receiveints and sendints. You need this parameter when
- | calling these routines. Note that for many calls I can use
- | the variable 'smallidx' which is exactly the number of bits, and
- | So I don't need to call 'sizeofints for those calls.
-*/
-
-static int sizeofints( const int num_of_ints, unsigned int sizes[]) {
-    int i, num;
-    unsigned int num_of_bytes, num_of_bits, bytes[32], bytecnt, tmp;
-    num_of_bytes = 1;
-    bytes[0] = 1;
-    num_of_bits = 0;
-    for (i=0; i < num_of_ints; i++) {  
-       tmp = 0;
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    num = 1;
-    num_of_bytes--;
-    while (bytes[num_of_bytes] >= num) {
-       num_of_bits++;
-       num *= 2;
-    }
-    return num_of_bits + num_of_bytes * 8;
-
-}
-    
-/*____________________________________________________________________________
- |
- | sendints - send a small set of small integers in compressed format
- |
- | this routine is used internally by xdr3dfcoord, to send a set of
- | small integers to the buffer. 
- | Multiplication with fixed (specified maximum ) sizes is used to get
- | to one big, multibyte integer. Allthough the routine could be
- | modified to handle sizes bigger than 16777216, or more than just
- | a few integers, this is not done, because the gain in compression
- | isn't worth the effort. Note that overflowing the multiplication
- | or the byte buffer (32 bytes) is unchecked and causes bad results.
- |
- */
-static void sendints(int buf[], const int num_of_ints, const int num_of_bits,
-       unsigned int sizes[], unsigned int nums[]) {
-
-    int i;
-    unsigned int bytes[32], num_of_bytes, bytecnt, tmp;
-
-    tmp = nums[0];
-    num_of_bytes = 0;
-    do {
-       bytes[num_of_bytes++] = tmp & 0xff;
-       tmp >>= 8;
-    } while (tmp != 0);
-
-    for (i = 1; i < num_of_ints; i++) {
-       if (nums[i] >= sizes[i]) {
-           fprintf(stderr,"major breakdown in sendints num %d doesn't "
-                   "match size %d\n", nums[i], sizes[i]);
-           exit(1);
-       }
-       /* use one step multiply */    
-       tmp = nums[i];
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    if (num_of_bits >= num_of_bytes * 8) {
-       for (i = 0; i < num_of_bytes; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits - num_of_bytes * 8, 0);
-    } else {
-       for (i = 0; i < num_of_bytes-1; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits- (num_of_bytes -1) * 8, bytes[i]);
-    }
-}
-
-
-/*___________________________________________________________________________
- |
- | receivebits - decode number from buf using specified number of bits
- | 
- | extract the number of bits from the array buf and construct an integer
- | from it. Return that value.
- |
-*/
-
-static int receivebits(int buf[], int num_of_bits) {
-
-    int cnt, num; 
-    unsigned int lastbits, lastbyte;
-    unsigned char * cbuf;
-    int mask = (1 << num_of_bits) -1;
-
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = buf[0];
-    lastbits = (unsigned int) buf[1];
-    lastbyte = (unsigned int) buf[2];
-    
-    num = 0;
-    while (num_of_bits >= 8) {
-       lastbyte = ( lastbyte << 8 ) | cbuf[cnt++];
-       num |=  (lastbyte >> lastbits) << (num_of_bits - 8);
-       num_of_bits -=8;
-    }
-    if (num_of_bits > 0) {
-       if (lastbits < num_of_bits) {
-           lastbits += 8;
-           lastbyte = (lastbyte << 8) | cbuf[cnt++];
-       }
-       lastbits -= num_of_bits;
-       num |= (lastbyte >> lastbits) & ((1 << num_of_bits) -1);
-    }
-    num &= mask;
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    return num; 
-}
-
-/*____________________________________________________________________________
- |
- | receiveints - decode 'small' integers from the buf array
- |
- | this routine is the inverse from sendints() and decodes the small integers
- | written to buf by calculating the remainder and doing divisions with
- | the given sizes[]. You need to specify the total number of bits to be
- | used from buf in num_of_bits.
- |
-*/
-
-static void receiveints(int buf[], const int num_of_ints, int num_of_bits,
-       unsigned int sizes[], int nums[]) {
-    int bytes[32];
-    int i, j, num_of_bytes, p, num;
-    
-    bytes[1] = bytes[2] = bytes[3] = 0;
-    num_of_bytes = 0;
-    while (num_of_bits > 8) {
-       bytes[num_of_bytes++] = receivebits(buf, 8);
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       bytes[num_of_bytes++] = receivebits(buf, num_of_bits);
-    }
-    for (i = num_of_ints-1; i > 0; i--) {
-       num = 0;
-       for (j = num_of_bytes-1; j >=0; j--) {
-           num = (num << 8) | bytes[j];
-           p = num / sizes[i];
-           bytes[j] = p;
-           num = num - p * sizes[i];
-       }
-       nums[i] = num;
-    }
-    nums[0] = bytes[0] | (bytes[1] << 8) | (bytes[2] << 16) | (bytes[3] << 24);
-}
-    
-/*____________________________________________________________________________
- |
- | xdr3dfcoord - read or write compressed 3d coordinates to xdr file.
- |
- | this routine reads or writes (depending on how you opened the file with
- | xdropen() ) a large number of 3d coordinates (stored in *fp).
- | The number of coordinates triplets to write is given by *size. On
- | read this number may be zero, in which case it reads as many as were written
- | or it may specify the number if triplets to read (which should match the
- | number written).
- | Compression is achieved by first converting all floating numbers to integer
- | using multiplication by *precision and rounding to the nearest integer.
- | Then the minimum and maximum value are calculated to determine the range.
- | The limited range of integers so found, is used to compress the coordinates.
- | In addition the differences between succesive coordinates is calculated.
- | If the difference happens to be 'small' then only the difference is saved,
- | compressing the data even more. The notion of 'small' is changed dynamically
- | and is enlarged or reduced whenever needed or possible.
- | Extra compression is achieved in the case of GROMOS and coordinates of
- | water molecules. GROMOS first writes out the Oxygen position, followed by
- | the two hydrogens. In order to make the differences smaller (and thereby
- | compression the data better) the order is changed into first one hydrogen
- | then the oxygen, followed by the other hydrogen. This is rather special, but
- | it shouldn't harm in the general case.
- |
- */
-int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) {
-    
-
-    static int *ip = NULL;
-    static int oldsize;
-    static int *buf;
-
-    int minint[3], maxint[3], mindiff, *lip, diff;
-    int lint1, lint2, lint3, oldlint1, oldlint2, oldlint3, smallidx;
-    int minidx, maxidx;
-    unsigned sizeint[3], sizesmall[3], bitsizeint[3], size3, *luip;
-    int flag, k;
-    int small, smaller, larger, i, is_small, is_smaller, run, prevrun;
-    float *lfp, lf;
-    int tmp, *thiscoord,  prevcoord[3];
-    unsigned int tmpcoord[30];
-
-    int bufsize, xdrid, lsize;
-    unsigned int bitsize;
-    float inv_precision;
-    int errval = 1;
-
-    /* find out if xdrs is opened for reading or for writing */
-    xdrid = 0;
-    while (xdridptr[xdrid] != xdrs) {
-       xdrid++;
-       if (xdrid >= MAXID) {
-           fprintf(stderr, "xdr error. no open xdr stream\n");
-           exit (1);
-       }
-    }
-    if (xdrmodes[xdrid] == 'w') {
-
-       /* xdrs is open for writing */
-
-       if (xdr_int(xdrs, size) == 0)
-           return 0;
-       size3 = *size * 3;
-       /* when the number of coordinates is small, don't try to compress; just
-        * write them as floats using xdr_vector
-        */
-       if (*size <= 9 ) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       /* buf[0-2] are special and do not contain actual data */
-       buf[0] = buf[1] = buf[2] = 0;
-       minint[0] = minint[1] = minint[2] = INT_MAX;
-       maxint[0] = maxint[1] = maxint[2] = INT_MIN;
-       prevrun = -1;
-       lfp = fp;
-       lip = ip;
-       mindiff = INT_MAX;
-       oldlint1 = oldlint2 = oldlint3 = 0;
-       while(lfp < fp + size3 ) {
-           /* find nearest integer */
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint1 = lf;
-           if (lint1 < minint[0]) minint[0] = lint1;
-           if (lint1 > maxint[0]) maxint[0] = lint1;
-           *lip++ = lint1;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint2 = lf;
-           if (lint2 < minint[1]) minint[1] = lint2;
-           if (lint2 > maxint[1]) maxint[1] = lint2;
-           *lip++ = lint2;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint3 = lf;
-           if (lint3 < minint[2]) minint[2] = lint3;
-           if (lint3 > maxint[2]) maxint[2] = lint3;
-           *lip++ = lint3;
-           lfp++;
-           diff = abs(oldlint1-lint1)+abs(oldlint2-lint2)+abs(oldlint3-lint3);
-           if (diff < mindiff && lfp > fp + 3)
-               mindiff = diff;
-           oldlint1 = lint1;
-           oldlint2 = lint2;
-           oldlint3 = lint3;
-       }
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-       
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-       
-       if ((float)maxint[0] - (float)minint[0] >= MAXABS ||
-               (float)maxint[1] - (float)minint[1] >= MAXABS ||
-               (float)maxint[2] - (float)minint[2] >= MAXABS) {
-           /* turning value in unsigned by subtracting minint
-            * would cause overflow
-            */
-           errval = 0;
-       }
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       lip = ip;
-       luip = (unsigned int *) ip;
-       smallidx = FIRSTIDX;
-       while (smallidx < LASTIDX && magicints[smallidx] < mindiff) {
-           smallidx++;
-       }
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-       larger = magicints[maxidx] / 2;
-       i = 0;
-       while (i < *size) {
-           is_small = 0;
-           thiscoord = (int *)(luip) + i * 3;
-           if (smallidx < maxidx && i >= 1 &&
-                   abs(thiscoord[0] - prevcoord[0]) < larger &&
-                   abs(thiscoord[1] - prevcoord[1]) < larger &&
-                   abs(thiscoord[2] - prevcoord[2]) < larger) {
-               is_smaller = 1;
-           } else if (smallidx > minidx) {
-               is_smaller = -1;
-           } else {
-               is_smaller = 0;
-           }
-           if (i + 1 < *size) {
-               if (abs(thiscoord[0] - thiscoord[3]) < small &&
-                       abs(thiscoord[1] - thiscoord[4]) < small &&
-                       abs(thiscoord[2] - thiscoord[5]) < small) {
-                   /* interchange first with second atom for better
-                    * compression of water molecules
-                    */
-                   tmp = thiscoord[0]; thiscoord[0] = thiscoord[3];
-                       thiscoord[3] = tmp;
-                   tmp = thiscoord[1]; thiscoord[1] = thiscoord[4];
-                       thiscoord[4] = tmp;
-                   tmp = thiscoord[2]; thiscoord[2] = thiscoord[5];
-                       thiscoord[5] = tmp;
-                   is_small = 1;
-               }
-    
-           }
-           tmpcoord[0] = thiscoord[0] - minint[0];
-           tmpcoord[1] = thiscoord[1] - minint[1];
-           tmpcoord[2] = thiscoord[2] - minint[2];
-           if (bitsize == 0) {
-               sendbits(buf, bitsizeint[0], tmpcoord[0]);
-               sendbits(buf, bitsizeint[1], tmpcoord[1]);
-               sendbits(buf, bitsizeint[2], tmpcoord[2]);
-           } else {
-               sendints(buf, 3, bitsize, sizeint, tmpcoord);
-           }
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           thiscoord = thiscoord + 3;
-           i++;
-           
-           run = 0;
-           if (is_small == 0 && is_smaller == -1)
-               is_smaller = 0;
-           while (is_small && run < 8*3) {
-               if (is_smaller == -1 && (
-                       SQR(thiscoord[0] - prevcoord[0]) +
-                       SQR(thiscoord[1] - prevcoord[1]) +
-                       SQR(thiscoord[2] - prevcoord[2]) >= smaller * smaller)) {
-                   is_smaller = 0;
-               }
-
-               tmpcoord[run++] = thiscoord[0] - prevcoord[0] + small;
-               tmpcoord[run++] = thiscoord[1] - prevcoord[1] + small;
-               tmpcoord[run++] = thiscoord[2] - prevcoord[2] + small;
-               
-               prevcoord[0] = thiscoord[0];
-               prevcoord[1] = thiscoord[1];
-               prevcoord[2] = thiscoord[2];
-
-               i++;
-               thiscoord = thiscoord + 3;
-               is_small = 0;
-               if (i < *size &&
-                       abs(thiscoord[0] - prevcoord[0]) < small &&
-                       abs(thiscoord[1] - prevcoord[1]) < small &&
-                       abs(thiscoord[2] - prevcoord[2]) < small) {
-                   is_small = 1;
-               }
-           }
-           if (run != prevrun || is_smaller != 0) {
-               prevrun = run;
-               sendbits(buf, 1, 1); /* flag the change in run-length */
-               sendbits(buf, 5, run+is_smaller+1);
-           } else {
-               sendbits(buf, 1, 0); /* flag the fact that runlength did not change */
-           }
-           for (k=0; k < run; k+=3) {
-               sendints(buf, 3, smallidx, sizesmall, &tmpcoord[k]);    
-           }
-           if (is_smaller != 0) {
-               smallidx += is_smaller;
-               if (is_smaller < 0) {
-                   small = smaller;
-                   smaller = magicints[smallidx-1] / 2;
-               } else {
-                   smaller = small;
-                   small = magicints[smallidx] / 2;
-               }
-               sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-           }
-       }
-       if (buf[1] != 0) buf[0]++;;
-       xdr_int(xdrs, &(buf[0])); /* buf[0] holds the length in bytes */
-       return errval * (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]));
-    } else {
-       
-       /* xdrs is open for reading */
-       
-       if (xdr_int(xdrs, &lsize) == 0) 
-           return 0;
-       if (*size != 0 && lsize != *size) {
-           fprintf(stderr, "wrong number of coordinates in xdr3dfcoor; "
-                   "%d arg vs %d in file", *size, lsize);
-       }
-       *size = lsize;
-       size3 = *size * 3;
-       if (*size <= 9) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-               
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       larger = magicints[maxidx];
-
-       /* buf[0] holds the length in bytes */
-
-       if (xdr_int(xdrs, &(buf[0])) == 0)
-           return 0;
-       if (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]) == 0)
-           return 0;
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       lfp = fp;
-       inv_precision = 1.0 / * precision;
-       run = 0;
-       i = 0;
-       lip = ip;
-       while ( i < lsize ) {
-           thiscoord = (int *)(lip) + i * 3;
-
-           if (bitsize == 0) {
-               thiscoord[0] = receivebits(buf, bitsizeint[0]);
-               thiscoord[1] = receivebits(buf, bitsizeint[1]);
-               thiscoord[2] = receivebits(buf, bitsizeint[2]);
-           } else {
-               receiveints(buf, 3, bitsize, sizeint, thiscoord);
-           }
-           
-           i++;
-           thiscoord[0] += minint[0];
-           thiscoord[1] += minint[1];
-           thiscoord[2] += minint[2];
-           
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           
-          
-           flag = receivebits(buf, 1);
-           is_smaller = 0;
-           if (flag == 1) {
-               run = receivebits(buf, 5);
-               is_smaller = run % 3;
-               run -= is_smaller;
-               is_smaller--;
-           }
-           if (run > 0) {
-               thiscoord += 3;
-               for (k = 0; k < run; k+=3) {
-                   receiveints(buf, 3, smallidx, sizesmall, thiscoord);
-                   i++;
-                   thiscoord[0] += prevcoord[0] - small;
-                   thiscoord[1] += prevcoord[1] - small;
-                   thiscoord[2] += prevcoord[2] - small;
-                   if (k == 0) {
-                       /* interchange first with second atom for better
-                        * compression of water molecules
-                        */
-                       tmp = thiscoord[0]; thiscoord[0] = prevcoord[0];
-                               prevcoord[0] = tmp;
-                       tmp = thiscoord[1]; thiscoord[1] = prevcoord[1];
-                               prevcoord[1] = tmp;
-                       tmp = thiscoord[2]; thiscoord[2] = prevcoord[2];
-                               prevcoord[2] = tmp;
-                       *lfp++ = prevcoord[0] * inv_precision;
-                       *lfp++ = prevcoord[1] * inv_precision;
-                       *lfp++ = prevcoord[2] * inv_precision;
-                   } else {
-                       prevcoord[0] = thiscoord[0];
-                       prevcoord[1] = thiscoord[1];
-                       prevcoord[2] = thiscoord[2];
-                   }
-                   *lfp++ = thiscoord[0] * inv_precision;
-                   *lfp++ = thiscoord[1] * inv_precision;
-                   *lfp++ = thiscoord[2] * inv_precision;
-               }
-           } else {
-               *lfp++ = thiscoord[0] * inv_precision;
-               *lfp++ = thiscoord[1] * inv_precision;
-               *lfp++ = thiscoord[2] * inv_precision;          
-           }
-           smallidx += is_smaller;
-           if (is_smaller < 0) {
-               small = smaller;
-               if (smallidx > FIRSTIDX) {
-                   smaller = magicints[smallidx - 1] /2;
-               } else {
-                   smaller = 0;
-               }
-           } else if (is_smaller > 0) {
-               smaller = small;
-               small = magicints[smallidx] / 2;
-           }
-           sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       }
-    }
-    return 1;
-}
-
-
-   
diff --git a/source/wham/src-M/xdrf/libxdrf.o b/source/wham/src-M/xdrf/libxdrf.o
deleted file mode 100644 (file)
index 2b501fa..0000000
Binary files a/source/wham/src-M/xdrf/libxdrf.o and /dev/null differ
diff --git a/source/wham/src-M/xdrf/underscore.m4 b/source/wham/src-M/xdrf/underscore.m4
deleted file mode 100644 (file)
index 4d620a0..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-divert(-1)
-undefine(`len')
-#
-# append an underscore to FORTRAN function names
-#
-define(`FUNCTION',`$1_')
-#
-# FORTRAN character strings are passed as follows:
-# a pointer to the base of the string is passed in the normal
-# argument list, and the length is passed by value as an extra
-# argument, after all of the other arguments.
-#
-define(`ARGS',`($1`'undivert(1))')
-define(`SAVE',`divert(1)$1`'divert(0)')
-define(`STRING_ARG',`$1_ptr`'SAVE(`, $1_len')')
-define(`STRING_ARG_DECL',`char * $1_ptr; int $1_len')
-define(`STRING_LEN',`$1_len')
-define(`STRING_PTR',`$1_ptr')
-divert(0)
diff --git a/source/wham/src-M/xdrf/xdrf.h b/source/wham/src-M/xdrf/xdrf.h
deleted file mode 100644 (file)
index dedf5a2..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-/*_________________________________________________________________
- |
- | xdrf.h - include file for C routines that want to use the 
- |         functions below.
-*/
-
-int xdropen(XDR *xdrs, const char *filename, const char *type);
-int xdrclose(XDR *xdrs) ;
-int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) ;
-
diff --git a/source/wham/src/.readrtns.F.swp b/source/wham/src/.readrtns.F.swp
deleted file mode 100644 (file)
index ae0379b..0000000
Binary files a/source/wham/src/.readrtns.F.swp and /dev/null differ
diff --git a/source/wham/src/CMakeLists.txt b/source/wham/src/CMakeLists.txt
new file mode 100644 (file)
index 0000000..5a7f7ae
--- /dev/null
@@ -0,0 +1,281 @@
+#
+# CMake project file for WHAM single chain version 
+# 
+
+enable_language (Fortran)
+
+#================================
+# Set source file lists
+#================================
+set(UNRES_WHAM_SRC0 
+       wham_multparm.F
+       bxread.F
+       xread.F
+       cxread.F
+       enecalc1.F 
+       energy_p_new.F
+       initialize_p.F
+       molread_zs.F
+       openunits.F
+       readrtns.F
+       arcos.f
+       cartder.f
+       cartprint.f
+       chainbuild.f
+       geomout.F
+       icant.f
+       intcor.f
+       int_from_cart.f
+       make_ensemble1.F
+       matmult.f
+       misc.f
+       mygetenv.F
+       parmread.F
+       pinorm.f
+       printmat.f
+       rescode.f
+       setup_var.f
+       slices.F
+       store_parm.F
+       timing.F
+       wham_calc1.F
+        readrtns_compar.F
+       readpdb.f
+       fitsq.f 
+       contact.f
+       elecont.f
+       contfunc.f
+       cont_frag.f
+       conf_compar.F
+       match_contact.f
+       angnorm.f
+       odlodc.f
+       promienie.f
+       qwolynes.f
+       read_ref_str.F
+       rmscalc.f
+       secondary.f
+       proc_cont.f
+       define_pairs.f
+       mysort.f
+)
+
+set(UNRES_WHAM_PP_SRC
+       bxread.F
+       chainbuild.F
+       conf_compar.F
+       cxread.F
+       enecalc1.F
+       energy_p_new.F
+       geomout.F
+       initialize_p.F
+       make_ensemble1.F
+       molread_zs.F
+       mygetenv.F
+       openunits.F
+       parmread.F
+       read_ref_str.F
+       readrtns_compar.F
+       readrtns.F
+       slices.F
+       store_parm.F
+       timing.F
+       wham_calc1.F
+       wham_multparm.F
+       xread.F
+       proc_proc.c
+) 
+
+
+#================================================
+# Set comipiler flags for different sourcefiles  
+#================================================
+if (Fortran_COMPILER_NAME STREQUAL "ifort")
+  set(FFLAGS0 "-mcmodel=medium -g -CB -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres" ) 
+elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
+  set(FFLAGS0 "-g -I. -I${CMAKE_CURRENT_SOURCE_DIR}/include_unres" ) 
+endif (Fortran_COMPILER_NAME STREQUAL "ifort")
+
+
+#=========================================
+# Add MPI compiler flags
+#=========================================
+if(UNRES_WITH_MPI)
+  set(FFLAGS0 "${FFLAGS0} -I${MPIF_INCLUDE_DIRECTORIES}")
+endif(UNRES_WITH_MPI)
+
+set_property(SOURCE ${UNRES_WHAM_SRC0} PROPERTY COMPILE_FLAGS ${FFLAGS0} )
+
+#=========================================
+# WHAM preprocesor flags
+#=========================================
+
+set(CPPFLAGS "PROCOR -DUNRES -DISNAN -DSPLITELE -DCRYST_BOND -DCRYST_THETA -DCRYST_SC" )
+
+#=========================================
+# System specific flags
+#=========================================
+if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+  set(CPPFLAGS "${CPPFLAGS} -DLINUX") 
+endif(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+
+#=========================================
+# Compiler specific flags
+#=========================================
+
+if (Fortran_COMPILER_NAME STREQUAL "ifort")
+  # Add ifort preprocessor flags
+  set(CPPFLAGS "${CPPFLAGS} -DPGI") 
+elseif (Fortran_COMPILER_NAME STREQUAL "f95")
+  # Add new gfortran flags
+  set(CPPFLAGS "${CPPFLAGS} -DG77") 
+elseif (Fortran_COMPILER_NAME STREQUAL "gfortran")
+  # Add old gfortran flags
+  set(CPPFLAGS "${CPPFLAGS} -DG77") 
+endif (Fortran_COMPILER_NAME STREQUAL "ifort")
+
+#=========================================
+# Add MPI preprocessor flags
+#=========================================
+set(CPPFLAGS "${CPPFLAGS} -DMPI") 
+
+#=========================================
+# Add 64-bit specific preprocessor flags
+#=========================================
+if (architektura STREQUAL "64")
+  set(CPPFLAGS "${CPPFLAGS} -DAMD64")
+endif (architektura STREQUAL "64")
+
+#=========================================
+# Apply preprocesor flags to *.F files
+#=========================================
+set_property(SOURCE ${UNRES_WHAM_PP_SRC} PROPERTY COMPILE_DEFINITIONS ${CPPFLAGS} )  
+
+
+#========================================
+#  Setting binary name
+#========================================
+set(UNRES_WHAM_BIN "wham_${Fortran_COMPILER_NAME}.exe")
+
+#=========================================
+# cinfo.f stupid workaround for cmake
+#  - shame on me ]:)
+#=========================================
+set_property(SOURCE compinfo.c PROPERTY CMAKE_C_FLAGS "-c" )
+add_executable(compinfo-wham compinfo.c)
+set_target_properties(compinfo-wham PROPERTIES OUTPUT_NAME compinfo)
+
+set(UNRES_CINFO_DIR "${CMAKE_CURRENT_BINARY_DIR}" )
+add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/cinfo.f 
+       COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/cinfo.f ${CMAKE_CURRENT_BINARY_DIR}/cinfo.f
+       COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/COMMON.IOUNITS ${CMAKE_CURRENT_BINARY_DIR}/COMMON.IOUNITS 
+       COMMAND ${CMAKE_CURRENT_BINARY_DIR}/compinfo | true     
+       DEPENDS compinfo-wham )
+set_property(SOURCE ${UNRES_CINFO_DIR}/cinfo.f PROPERTY COMPILE_FLAGS ${FFLAGS0} )
+
+#=========================================
+# Set full unres CSA sources
+#=========================================
+set(UNRES_WHAM_SRCS ${UNRES_WHAM_SRC0} ${UNRES_CINFO_DIR}/cinfo.f proc_proc.c)
+
+#=========================================
+# Build the binary
+#=========================================
+add_executable(UNRES_WHAM_BIN ${UNRES_WHAM_SRCS} )
+set_target_properties(UNRES_WHAM_BIN PROPERTIES OUTPUT_NAME ${UNRES_WHAM_BIN})
+
+#set_property(TARGET ${UNRES_BIN} PROPERTY RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/unres/MD )
+#add_dependencies (${UNRES_BIN} ${UNRES_XDRFLIB})
+
+#=========================================
+# Link libraries
+#=========================================
+# link MPI library (libmpich.a)  
+target_link_libraries( UNRES_WHAM_BIN ${MPIF_LIBRARIES} )
+# link libxdrf.a 
+target_link_libraries( UNRES_WHAM_BIN xdrf )
+
+#=========================================
+# TESTS 
+#=========================================
+
+#-- Copy all the data files from the test directory into the source directory
+#SET(UNRES_TEST_FILES
+#      ala10.inp
+#    )
+
+#FOREACH (UNRES_TEST_FILE ${UNRES_TEST_FILES})
+#      SET (unres_test_dest "${CMAKE_CURRENT_BINARY_DIR}/${UNRES_TEST_FILE}")
+#      MESSAGE (STATUS " Copying ${UNRES_TEST_FILE} from ${CMAKE_SOURCE_DIR}/examples/unres/MD/ff_gab/${UNRES_TEST_FILE} to ${unres_test_dest}")
+#      ADD_CUSTOM_COMMAND (
+#          TARGET     ${UNRES_BIN}
+#          POST_BUILD
+#          COMMAND    ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/examples/unres/MD/ff_gab/${UNRES_TEST_FILE} ${unres_test_dest}
+#      )
+#ENDFOREACH (UNRES_TEST_FILE ${UNRES_TEST_FILES})
+
+#=========================================
+# Generate data test files
+#=========================================
+#  test_single_ala.sh
+#=========================================
+
+#FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh
+#"#!/bin/sh
+#export POT=GB
+#export PREFIX=ala10
+#-----------------------------------------------------------------------------
+#UNRES_BIN=./${UNRES_BIN}
+#-----------------------------------------------------------------------------
+#DD=${CMAKE_SOURCE_DIR}/PARAM
+#export BONDPAR=$DD/bond.parm
+#export THETPAR=$DD/thetaml.5parm
+#export ROTPAR=$DD/scgauss.parm
+#export TORPAR=$DD/torsion_631Gdp.parm
+#export TORDPAR=$DD/torsion_double_631Gdp.parm
+#export ELEPAR=$DD/electr_631Gdp.parm
+#export SIDEPAR=$DD/sc_GB_opt.1gab_3S_qclass5no310-shan2-sc-16-10-8k
+#export FOURIER=$DD/fourier_opt.parm.1igd_hc_iter3_3
+#export SCPPAR=$DD/scp.parm
+#export SCCORPAR=$DD/rotcorr_AM1.parm
+#export PATTERN=$DD/patterns.cart
+#-----------------------------------------------------------------------------
+#$UNRES_BIN
+#")
+
+#=========================================
+#  ala10.inp
+#=========================================
+
+#file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/ala10.inp
+#"ala10 unblocked
+#SEED=-1111333 MD ONE_LETTER rescale_mode=2 PDBOUT
+#nstep=15000 ntwe=100 ntwx=1000 dt=0.1 lang=0 tbf t_bath=300 damax=1.0          &
+#reset_moment=1000 reset_vel=1000 MDPDB
+#WLONG=1.35279 WSCP=1.59304 WELEC=0.71534 WBOND=1.00000 WANG=1.13873            &
+#WSCLOC=0.16258 WTOR=1.98599 WTORD=1.57069 WCORRH=0.42887 WCORR5=0.00000        &
+#WCORR6=0.00000 WEL_LOC=0.16036 WTURN3=1.68722 WTURN4=0.66230 WTURN6=0.00000    &
+#WVDWPP=0.11371 WHPB=1.00000                                                    &
+#CUTOFF=7.00000 WCORR4=0.00000
+#12
+#XAAAAAAAAAAX 
+# 0
+# 0
+#   90.0000   90.0000   90.0000  90.000   90.000   90.000   90.000   90.000 
+#   90.0000   90.0000
+#  180.0000  180.0000  180.0000 180.000  180.000  180.000  180.000  180.000
+#  180.0000
+#  110.0000  110.0000  110.0000 100.000  110.000  100.000  110.000  110.000 
+#  110.0000  110.0000
+# -120.0000 -120.0000 -120.000 -120.000 -120.000 -120.000 -120.000 -120.000
+# -120.0000 -120.0000
+#")
+
+
+# Add tests
+
+#if(NOT UNRES_WITH_MPI)
+
+#  add_test(NAME UNRES_MD_Ala10 COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_single_ala.sh )
+
+#endif(NOT UNRES_WITH_MPI)
index 813cf31..e28f686 100644 (file)
@@ -14,10 +14,10 @@ time_t Tp;
 
 in=fopen("cinfo.f","r");
 out=fopen("cinfo.f.new","w");
-fgets(buf,498,in);
-fprintf(out,"C DO NOT EDIT THIS FILE - IT HAS BEEN GENERATED BY COMPINFO.C\n");
-fgets(buf,498,in);
-sscanf(&buf[1],"%d %d %d",&iv1,&iv2,&iv3);
+if (fgets(buf,498,in) != NULL)
+       fprintf(out,"C DO NOT EDIT THIS FILE - IT HAS BEEN GENERATED BY COMPINFO.C\n");
+if (fgets(buf,498,in) != NULL)
+       sscanf(&buf[1],"%d %d %d",&iv1,&iv2,&iv3);
 iv3++;
 fprintf(out,"C %d %d %d\n",iv1,iv2,iv3);
 fprintf(out,"      subroutine cinfo\n");
@@ -26,18 +26,22 @@ fprintf(out,"      write(iout,*)'++++ Compile info ++++'\n");
 fprintf(out,"      write(iout,*)'Version %d.%-d build %d'\n",iv1,iv2,iv3);
 uname(&Name);
 time(&Tp);
-system("rm tmptmp; whoami > tmptmp");
+system("whoami > tmptmp");
 in1=fopen("tmptmp","r");
-fscanf(in1,"%s",buf1);
-fclose(in1);
+if (fscanf(in1,"%s",buf1) != EOF)
+{
 p1=ctime(&Tp);
 p1[strlen(p1)-1]='\0';
 fprintf(out,"      write(iout,*)'compiled %s'\n",p1);
 fprintf(out,"      write(iout,*)'compiled by %s@%s'\n",buf1,Name.nodename);
 fprintf(out,"      write(iout,*)'OS name:    %s '\n",Name.sysname);
 fprintf(out,"      write(iout,*)'OS release: %s '\n",Name.release);
-fprintf(out,"      write(iout,*)'OS version: %s '\n",Name.version);
+fprintf(out,"      write(iout,*)'OS version:',\n");
+fprintf(out,"     & ' %s '\n",Name.version);
 fprintf(out,"      write(iout,*)'flags:'\n");
+}
+system("rm tmptmp");
+fclose(in1);
 in1=fopen("Makefile","r");
 while(fgets(buf,498,in1) != NULL)
  {
@@ -55,8 +59,8 @@ while(fgets(buf,498,in1) != NULL)
     {
     strcat(buf,"\\");
     fprintf(out,"      write(iout,*)'%s'\n",buf);
-    fgets(buf,498,in1);
-    buf[strlen(buf)-1]='\0';
+    if (fgets(buf,498,in1) != NULL)
+       buf[strlen(buf)-1]='\0';
     if(strlen(buf) > 49)
      {
      buf[47]='\0';
index 4d8977a..dfef8c3 100644 (file)
@@ -6322,18 +6322,18 @@ c--------------------------------------------------------------------------
       logical lprn
       common /kutas/ lprn
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-C                                              
-C      Parallel       Antiparallel
-C                                             
-C          o             o         
-C         /l\           /j\       
-C        /   \         /   \      
-C       /| o |         | o |\     
-C     \ j|/k\|  /   \  |/k\|l /   
-C      \ /   \ /     \ /   \ /    
-C       o     o       o     o                
-C       i             i                     
-C
+C                                                                              C
+C      Parallel       Antiparallel                                             C
+C                                                                              C
+C          o             o                                                     C
+C         /l\           /j\                                                    C 
+C        /   \         /   \                                                   C
+C       /| o |         | o |\                                                  C
+C     \ j|/k\|  /   \  |/k\|l /                                                C
+C      \ /   \ /     \ /   \ /                                                 C
+C       o     o       o     o                                                  C
+C       i             i                                                        C
+C                                                                              C
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
       itk=itortyp(itype(k))
       s1= scalar2(AEAb1(1,2,imat),CUgb2(1,i))
@@ -6429,18 +6429,18 @@ c----------------------------------------------------------------------------
       logical lprn
       common /kutas/ lprn
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-C                                              
-C      Parallel       Antiparallel
-C                                             
-C          o             o         
-C     \   /l\           /j\   /   
-C      \ /   \         /   \ /    
-C       o| o |         | o |o     
-C     \ j|/k\|      \  |/k\|l     
-C      \ /   \       \ /   \      
-C       o             o                      
-C       i             i                     
-C
+C                                                                              C 
+C      Parallel       Antiparallel                                             C
+C                                                                              C
+C          o             o                                                     C
+C     \   /l\           /j\   /                                                C
+C      \ /   \         /   \ /                                                 C
+C       o| o |         | o |o                                                  C
+C     \ j|/k\|      \  |/k\|l                                                  C
+C      \ /   \       \ /   \                                                   C
+C       o             o                                                        C
+C       i             i                                                        C
+C                                                                              C
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
 cd      write (2,*) 'eello6_graph2: i,',i,' j',j,' k',k,' l',l
 C AL 7/4/01 s1 would occur in the sixth-order moment, 
@@ -6613,18 +6613,18 @@ c----------------------------------------------------------------------------
       double precision vv(2),pizda(2,2),auxmat(2,2),auxvec(2)
       logical swap
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-C                                              
-C      Parallel       Antiparallel
-C                                             
-C          o             o         
-C         /l\   /   \   /j\       
-C        /   \ /     \ /   \      
-C       /| o |o       o| o |\     
-C       j|/k\|  /      |/k\|l /   
-C        /   \ /       /   \ /    
-C       /     o       /     o                
-C       i             i                     
-C
+C                                                                              C
+C      Parallel       Antiparallel                                             C
+C                                                                              C
+C          o             o                                                     C
+C         /l\   /   \   /j\                                                    C
+C        /   \ /     \ /   \                                                   C
+C       /| o |o       o| o |\                                                  C
+C       j|/k\|  /      |/k\|l /                                                C
+C        /   \ /       /   \ /                                                 C
+C       /     o       /     o                                                  C
+C       i             i                                                        C
+C                                                                              C
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
 C
 C 4/7/01 AL Component s1 was removed, because it pertains to the respective 
@@ -6731,18 +6731,18 @@ c----------------------------------------------------------------------------
      & auxvec1(2),auxmat1(2,2)
       logical swap
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
-C                                              
-C      Parallel       Antiparallel
-C                                             
-C          o             o         
-C         /l\   /   \   /j\       
-C        /   \ /     \ /   \      
-C       /| o |o       o| o |\     
-C     \ j|/k\|      \  |/k\|l     
-C      \ /   \       \ /   \      
-C       o     \       o     \                
-C       i             i                     
-C
+C                                                                              C
+C      Parallel       Antiparallel                                             C
+C                                                                              C
+C          o             o                                                     C 
+C         /l\   /   \   /j\                                                    C
+C        /   \ /     \ /   \                                                   C
+C       /| o |o       o| o |\                                                  C
+C     \ j|/k\|      \  |/k\|l                                                  C
+C      \ /   \       \ /   \                                                   C
+C       o     \       o     \                                                  C
+C       i             i                                                        C
+C                                                                              C
 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
 C
 C 4/7/01 AL Component s1 was removed, because it pertains to the respective 
diff --git a/source/wham/src/err b/source/wham/src/err
deleted file mode 100644 (file)
index d2249ae..0000000
+++ /dev/null
@@ -1,471 +0,0 @@
-       mpxlf90  -qlistopt -qfixed -w -c -q64  -g -C  -I./include_unres  -WF,-DMPI -WF,-DAIX -WF,-DUNRES -WF,-DSPLITELE -WF,-DPROCOR -WF,-DISNAN enecalc1.F
-"enecalc1.F", line 1.33: 1515-019 (S) Syntax is incorrect.
-"enecalc1.F", line 2.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 15.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 17.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 19.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 20.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 20.28: 1516-050 (S) Expression or initial value must be evaluated at compile time.
-"DIMENSIONS", line 22.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 23.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 23.27: 1516-050 (S) Expression or initial value must be evaluated at compile time.
-"DIMENSIONS", line 25.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 26.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 29.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 30.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 30.26: 1516-050 (S) Expression or initial value must be evaluated at compile time.
-"DIMENSIONS", line 30.37: 1516-050 (S) Expression or initial value must be evaluated at compile time.
-"DIMENSIONS", line 32.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 33.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 33.29: 1516-050 (S) Expression or initial value must be evaluated at compile time.
-"DIMENSIONS", line 35.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 36.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 36.27: 1516-050 (S) Expression or initial value must be evaluated at compile time.
-"DIMENSIONS", line 38.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 39.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 39.32: 1516-050 (S) Expression or initial value must be evaluated at compile time.
-"DIMENSIONS", line 40.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 41.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 41.24: 1516-050 (S) Expression or initial value must be evaluated at compile time.
-"DIMENSIONS", line 41.30: 1516-050 (S) Expression or initial value must be evaluated at compile time.
-"DIMENSIONS", line 44.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 45.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 47.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 48.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 50.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 51.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 53.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 54.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 54.32: 1516-050 (S) Expression or initial value must be evaluated at compile time.
-"DIMENSIONS", line 56.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 57.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 59.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 60.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 62.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 63.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 65.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 66.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 68.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 69.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 71.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 72.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 74.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 75.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 77.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 78.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 78.46: 1516-050 (S) Expression or initial value must be evaluated at compile time.
-"DIMENSIONS", line 80.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 81.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 83.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 84.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 84.50: 1516-050 (S) Expression or initial value must be evaluated at compile time.
-"DIMENSIONS", line 86.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 87.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 89.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 90.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 90.25: 1516-050 (S) Expression or initial value must be evaluated at compile time.
-"DIMENSIONS", line 92.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 93.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 95.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 96.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 98.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 99.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 101.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 102.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 104.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 105.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 107.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 108.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 110.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 111.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 113.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 114.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 114.24: 1516-050 (S) Expression or initial value must be evaluated at compile time.
-"DIMENSIONS", line 116.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 117.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 119.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 120.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 122.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 123.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 125.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS", line 126.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS.ZSCOPT", line 1.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS.ZSCOPT", line 8.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS.ZSCOPT", line 10.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS.ZSCOPT", line 12.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS.ZSCOPT", line 14.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS.ZSCOPT", line 15.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS.ZSCOPT", line 17.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS.ZSCOPT", line 18.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS.ZSCOPT", line 20.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS.ZSCOPT", line 21.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS.ZSCOPT", line 21.27: 1516-050 (S) Expression or initial value must be evaluated at compile time.
-"DIMENSIONS.ZSCOPT", line 23.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS.ZSCOPT", line 23.25: 1516-050 (S) Expression or initial value must be evaluated at compile time.
-"DIMENSIONS.ZSCOPT", line 23.32: 1516-050 (S) Expression or initial value must be evaluated at compile time.
-"DIMENSIONS.ZSCOPT", line 23.40: 1516-050 (S) Expression or initial value must be evaluated at compile time.
-"DIMENSIONS.ZSCOPT", line 25.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS.ZSCOPT", line 27.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS.ZSCOPT", line 28.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS.ZSCOPT", line 30.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS.ZSCOPT", line 31.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS.ZSCOPT", line 33.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS.ZSCOPT", line 34.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS.ZSCOPT", line 39.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS.ZSCOPT", line 40.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS.ZSCOPT", line 40.25: 1516-050 (S) Expression or initial value must be evaluated at compile time.
-"DIMENSIONS.ZSCOPT", line 42.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS.ZSCOPT", line 43.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS.FREE", line 1.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS.FREE", line 2.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS.FREE", line 3.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS.FREE", line 4.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS.FREE", line 10.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS.FREE", line 11.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS.FREE", line 11.31: 1516-050 (S) Expression or initial value must be evaluated at compile time.
-"DIMENSIONS.FREE", line 12.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS.FREE", line 13.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS.FREE", line 15.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS.FREE", line 16.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS.FREE", line 17.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"DIMENSIONS.FREE", line 18.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 32.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 33.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 35.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 36.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 37.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 38.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 39.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 40.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 41.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 42.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 43.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 44.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 45.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 46.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 47.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 48.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 49.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 50.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 51.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 52.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 53.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 54.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 55.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 56.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 57.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 58.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 59.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 60.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 61.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 62.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 63.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 64.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 65.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 66.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 67.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 68.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 69.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 70.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 71.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 72.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 73.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 74.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 75.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 76.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 77.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 78.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 79.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 80.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 81.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 83.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 84.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 85.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 86.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 88.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 89.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 91.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 92.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 93.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 95.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 96.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 97.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 98.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 100.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 101.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 103.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 104.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 105.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 106.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 108.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 109.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 111.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 112.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 114.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 115.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 117.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 118.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 119.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 120.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 121.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 122.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 123.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 124.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 125.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 126.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 127.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 128.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 131.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 132.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 133.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 134.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 135.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 136.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 137.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 138.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 139.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 140.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 141.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 143.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 144.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 145.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 146.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 148.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 149.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 151.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 152.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 154.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 155.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 156.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 158.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 159.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 160.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 161.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 162.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 163.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 165.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 166.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 167.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 168.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 169.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 170.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 171.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 173.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 174.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 175.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 176.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 177.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 179.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 180.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 182.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 183.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 185.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 186.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 188.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 189.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 191.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 192.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 194.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 194.20: 1516-050 (S) Expression or initial value must be evaluated at compile time.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 195.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 197.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 198.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 199.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 200.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 202.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 203.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 205.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 206.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 208.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 209.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 210.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 211.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 213.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 215.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 217.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 219.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 221.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 223.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 225.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 226.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 228.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 229.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 231.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 233.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 235.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 237.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 238.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 240.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 241.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 243.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 244.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 246.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 247.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 248.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 249.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 250.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 251.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 252.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 253.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 254.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 255.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 257.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 258.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 259.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 260.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 261.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 262.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 263.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 264.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 265.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 266.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 267.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 268.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 269.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 270.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 271.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 272.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 273.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 274.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 275.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 277.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 278.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 279.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 280.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 282.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"/usr/lpp/ppe.poe/include/thread64/mpif.h", line 283.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"enecalc1.F", line 8.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"COMMON.MPI", line 1.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"COMMON.MPI", line 3.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"COMMON.MPI", line 4.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"COMMON.CHAIN", line 1.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"COMMON.CHAIN", line 2.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"COMMON.CHAIN", line 3.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"COMMON.CHAIN", line 5.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"COMMON.CHAIN", line 7.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"COMMON.IOUNITS", line 11.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"COMMON.IOUNITS", line 14.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"COMMON.IOUNITS", line 17.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"COMMON.IOUNITS", line 20.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"COMMON.IOUNITS", line 24.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"COMMON.IOUNITS", line 26.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"COMMON.IOUNITS", line 28.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"COMMON.PROTFILES", line 1.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"COMMON.PROTFILES", line 3.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"COMMON.PROTFILES", line 8.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"./include_unres/COMMON.NAMES", line 1.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"./include_unres/COMMON.NAMES", line 2.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"./include_unres/COMMON.NAMES", line 3.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"./include_unres/COMMON.NAMES", line 4.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"./include_unres/COMMON.NAMES", line 5.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"./include_unres/COMMON.NAMES", line 6.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"COMMON.VAR", line 2.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"COMMON.VAR", line 3.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"COMMON.VAR", line 5.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"COMMON.VAR", line 9.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"./include_unres/COMMON.SBRIDGE", line 1.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"./include_unres/COMMON.SBRIDGE", line 3.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"./include_unres/COMMON.SBRIDGE", line 4.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"./include_unres/COMMON.SBRIDGE", line 6.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"./include_unres/COMMON.SBRIDGE", line 8.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"./include_unres/COMMON.SBRIDGE", line 9.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"./include_unres/COMMON.GEO", line 1.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"./include_unres/COMMON.GEO", line 2.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"./include_unres/COMMON.FFIELD", line 6.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"./include_unres/COMMON.FFIELD", line 9.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"./include_unres/COMMON.FFIELD", line 10.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"./include_unres/COMMON.FFIELD", line 14.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"./include_unres/COMMON.FFIELD", line 15.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"COMMON.ENEPS", line 1.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"COMMON.ENEPS", line 2.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"COMMON.ENEPS", line 3.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"./include_unres/COMMON.LOCAL", line 1.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"./include_unres/COMMON.LOCAL", line 4.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"./include_unres/COMMON.LOCAL", line 7.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"./include_unres/COMMON.LOCAL", line 11.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"./include_unres/COMMON.LOCAL", line 15.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"./include_unres/COMMON.LOCAL", line 16.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"./include_unres/COMMON.LOCAL", line 19.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"./include_unres/COMMON.WEIGHTS", line 1.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"./include_unres/COMMON.WEIGHTS", line 5.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"./include_unres/COMMON.WEIGHTS", line 7.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"./include_unres/COMMON.WEIGHTS", line 8.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"./include_unres/COMMON.INTERACT", line 1.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"./include_unres/COMMON.INTERACT", line 2.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"./include_unres/COMMON.INTERACT", line 5.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"./include_unres/COMMON.INTERACT", line 13.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"./include_unres/COMMON.INTERACT", line 16.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"./include_unres/COMMON.INTERACT", line 22.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"./include_unres/COMMON.INTERACT", line 23.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"COMMON.FREE", line 1.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"COMMON.FREE", line 2.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"COMMON.FREE", line 5.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"COMMON.FREE", line 7.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"COMMON.FREE", line 8.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"COMMON.ENERGIES", line 1.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"COMMON.ENERGIES", line 3.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"COMMON.ENERGIES", line 4.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"COMMON.CONTROL", line 1.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"COMMON.CONTROL", line 3.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"COMMON.CONTROL", line 5.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"enecalc1.F", line 26.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"enecalc1.F", line 27.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"enecalc1.F", line 28.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"enecalc1.F", line 29.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"enecalc1.F", line 30.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"enecalc1.F", line 31.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"enecalc1.F", line 32.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"enecalc1.F", line 33.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"enecalc1.F", line 34.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"enecalc1.F", line 35.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"enecalc1.F", line 36.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"enecalc1.F", line 37.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"enecalc1.F", line 38.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"enecalc1.F", line 39.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"enecalc1.F", line 40.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"enecalc1.F", line 41.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"enecalc1.F", line 42.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"enecalc1.F", line 43.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"enecalc1.F", line 44.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"enecalc1.F", line 45.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"enecalc1.F", line 46.6: 1514-050 (S) Specification statement is out of order.  Statement is ignored.
-"enecalc1.F", line 57.13: 1515-025 (S) Only a name of a variable, array element, or character substring is permitted on the left hand side of an assignment statement.
-"enecalc1.F", line 74.13: 1512-020 (S) Expression must not appear as input list item.  Statement is ignored.
-"enecalc1.F", line 75.13: 1512-020 (S) Expression must not appear as input list item.  Statement is ignored.
-"enecalc1.F", line 76.16: 1512-020 (S) Expression must not appear as input list item.  Statement is ignored.
-"enecalc1.F", line 76.24: 1512-020 (S) Expression must not appear as input list item.  Statement is ignored.
-"enecalc1.F", line 77.30: 1512-020 (S) Expression must not appear as input list item.  Statement is ignored.
-"enecalc1.F", line 81.16: 1515-025 (S) Only a name of a variable, array element, or character substring is permitted on the left hand side of an assignment statement.
-"enecalc1.F", line 85.14: 1515-025 (S) Only a name of a variable, array element, or character substring is permitted on the left hand side of an assignment statement.
-"enecalc1.F", line 87.12: 1515-025 (S) Only a name of a variable, array element, or character substring is permitted on the left hand side of an assignment statement.
-"enecalc1.F", line 98.13: 1515-025 (S) Only a name of a variable, array element, or character substring is permitted on the left hand side of an assignment statement.
-"enecalc1.F", line 105.13: 1515-025 (S) Only a name of a variable, array element, or character substring is permitted on the left hand side of an assignment statement.
-"enecalc1.F", line 106.26: 1513-041 (S) Arguments of the wrong type were specified for the INTRINSIC procedure "dexp".
-"enecalc1.F", line 106.38: 1513-041 (S) Arguments of the wrong type were specified for the INTRINSIC procedure "dexp".
-"enecalc1.F", line 114.13: 1515-025 (S) Only a name of a variable, array element, or character substring is permitted on the left hand side of an assignment statement.
-"enecalc1.F", line 155.43: 1515-025 (S) Only a name of a variable, array element, or character substring is permitted on the left hand side of an assignment statement.
-"enecalc1.F", line 161.32: 1516-040 (S) Item has not been defined with the EXTERNAL or INTRINSIC attribute.
-"enecalc1.F", line 165.35: 1516-040 (S) Item has not been defined with the EXTERNAL or INTRINSIC attribute.
-"enecalc1.F", line 181.37: 1516-040 (S) Item has not been defined with the EXTERNAL or INTRINSIC attribute.
-"enecalc1.F", line 188.18: 1513-041 (S) Arguments of the wrong type were specified for the INTRINSIC procedure "dabs".
-"enecalc1.F", line 205.23: 1511-034 (E) RETURN statement in a main program or function subprogram must not be specified with a value.  Value is ignored.
-"enecalc1.F", line 209.11: 1515-025 (S) Only a name of a variable, array element, or character substring is permitted on the left hand side of an assignment statement.
-"enecalc1.F", line 211.13: 1515-025 (S) Only a name of a variable, array element, or character substring is permitted on the left hand side of an assignment statement.
-"enecalc1.F", line 230.37: 1516-040 (S) Item has not been defined with the EXTERNAL or INTRINSIC attribute.
-"enecalc1.F", line 237.50: 1515-025 (S) Only a name of a variable, array element, or character substring is permitted on the left hand side of an assignment statement.
-"enecalc1.F", line 245.9: 1515-025 (S) Only a name of a variable, array element, or character substring is permitted on the left hand side of an assignment statement.
-"enecalc1.F", line 254.7: 1515-025 (S) Only a name of a variable, array element, or character substring is permitted on the left hand side of an assignment statement.
-"enecalc1.F", line 259.7: 1515-025 (S) Only a name of a variable, array element, or character substring is permitted on the left hand side of an assignment statement.
-"enecalc1.F", line 260.7: 1515-025 (S) Only a name of a variable, array element, or character substring is permitted on the left hand side of an assignment statement.
-"enecalc1.F", line 262.9: 1515-025 (S) Only a name of a variable, array element, or character substring is permitted on the left hand side of an assignment statement.
-"enecalc1.F", line 263.9: 1515-025 (S) Only a name of a variable, array element, or character substring is permitted on the left hand side of an assignment statement.
-"enecalc1.F", line 276.7: 1515-025 (S) Only a name of a variable, array element, or character substring is permitted on the left hand side of an assignment statement.
-"enecalc1.F", line 280.13: 1515-025 (S) Only a name of a variable, array element, or character substring is permitted on the left hand side of an assignment statement.
-"enecalc1.F", line 298.13: 1511-034 (E) RETURN statement in a main program or function subprogram must not be specified with a value.  Value is ignored.
-** _main   === End of Compilation 1 ===
-** write_dbase   === End of Compilation 2 ===
-1501-511  Compilation failed for file enecalc1.F.
-make: 1254-004 The error code from the last command is 1.
-
-
-Stop.
diff --git a/source/wham/src/log b/source/wham/src/log
deleted file mode 100644 (file)
index 74330a5..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-       mpxlf90  -qlistopt -qfixed -w -c -q64  -O3  -I./include_unres  -WF,-DMPI -WF,-DAIX -WF,-DUNRES -WF,-DSPLITELE -WF,-DPROCOR -WF,-DISNAN wham_multparm.F
-       mpxlf90  -qlistopt -qfixed -w -c -q64  -O3  -I./include_unres  -WF,-DMPI -WF,-DAIX -WF,-DUNRES -WF,-DSPLITELE -WF,-DPROCOR -WF,-DISNAN cxread.F
-       mpxlf90  -qlistopt -qfixed -w -c -q64  -O3  -I./include_unres  -WF,-DMPI -WF,-DAIX -WF,-DUNRES -WF,-DSPLITELE -WF,-DPROCOR -WF,-DISNAN enecalc.F
-       mpxlf90  -qlistopt -qfixed -w -c -q64  -O3  -I./include_unres  -WF,-DMPI -WF,-DAIX -WF,-DUNRES -WF,-DSPLITELE -WF,-DPROCOR -WF,-DISNAN energy_p_new.F
-       mpxlf90  -qlistopt -qfixed -w -c -q64  -O3  -I./include_unres  -WF,-DMPI -WF,-DAIX -WF,-DUNRES -WF,-DSPLITELE -WF,-DPROCOR -WF,-DISNAN initialize_p.F
-       mpxlf90  -qlistopt -qfixed -w -c -q64  -O3  -I./include_unres  -WF,-DMPI -WF,-DAIX -WF,-DUNRES -WF,-DSPLITELE -WF,-DPROCOR -WF,-DISNAN molread_zs.F
-       mpxlf90  -qlistopt -qfixed -w -c -q64  -O3  -I./include_unres  -WF,-DMPI -WF,-DAIX -WF,-DUNRES -WF,-DSPLITELE -WF,-DPROCOR -WF,-DISNAN openunits.F
-       mpxlf90  -qlistopt -qfixed -w -c -q64  -O3  -I./include_unres  -WF,-DMPI -WF,-DAIX -WF,-DUNRES -WF,-DSPLITELE -WF,-DPROCOR -WF,-DISNAN readrtns.F
-       mpxlf90  -qlistopt -qfixed -w -c -q64  -O3  -I./include_unres  -c arcos.f
-       mpxlf90  -qlistopt -qfixed -w -c -q64  -O3  -I./include_unres  -c cartder.f
-       mpxlf90  -qlistopt -qfixed -w -c -q64  -O3  -I./include_unres  -c cartprint.f
-       mpxlf90  -qlistopt -qfixed -w -c -q64  -O3  -I./include_unres  -c chainbuild.f
-       mpxlf90  -qlistopt -qfixed -w -c -q64  -O3  -I./include_unres  -WF,-DMPI -WF,-DAIX -WF,-DUNRES -WF,-DSPLITELE -WF,-DPROCOR -WF,-DISNAN geomout.F
-       mpxlf90  -qlistopt -qfixed -w -c -q64  -O3  -I./include_unres  -c icant.f
-       mpxlf90  -qlistopt -qfixed -w -c -q64  -O3  -I./include_unres  -c intcor.f
-       mpxlf90  -qlistopt -qfixed -w -c -q64  -O3  -I./include_unres  -c int_from_cart.f
-       mpxlf90  -qlistopt -qfixed -w -c -q64  -O3  -I./include_unres  -WF,-DMPI -WF,-DAIX -WF,-DUNRES -WF,-DSPLITELE -WF,-DPROCOR -WF,-DISNAN make_ensemble.F
index 9ef2dff..01c6bba 100644 (file)
@@ -1,5 +1,6 @@
 #include <stdlib.h>
 #include <math.h>
+#include <stdio.h>
 
 #ifdef LINUX
 #ifdef PGI
diff --git a/source/wham/src/tmptmp b/source/wham/src/tmptmp
deleted file mode 100644 (file)
index 54e7a36..0000000
+++ /dev/null
@@ -1 +0,0 @@
-adam
diff --git a/source/wham/src/xdrf.org/Makefile b/source/wham/src/xdrf.org/Makefile
deleted file mode 100644 (file)
index 0af9b06..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-# This make file is part of the xdrf package.
-#
-# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-#
-# 2006 modified by Cezary Czaplewski
-
-# Set C compiler and flags for ARCH
-BGLSYS = /bgl/BlueLight/ppcfloor/bglsys
-
-CC = xlc
-CPPC = xlc
-
-CFLAGS= -I. -O2 -qarch=440d -qtune=440
-
-M4     = m4
-M4FILE = RS6K.m4
-
-libxdrf.a:  libxdrf.o ftocstr.o xdr_array.o  xdr.o  xdr_float.o  xdr_stdio.o
-       ar cr libxdrf.a $?
-
-clean:
-       rm -f libxdrf.o ftocstr.o libxdrf.a 
-
-ftocstr.o: ftocstr.c
-       $(CC) $(CFLAGS) -c ftocstr.c
-
-libxdrf.o:     libxdrf.m4 $(M4FILE)
-       $(M4) $(M4FILE) libxdrf.m4 > libxdrf.c
-       $(CC) $(CFLAGS) -c libxdrf.c
-#      rm -f libxdrf.c
-
diff --git a/source/wham/src/xdrf.org/RS6K.m4 b/source/wham/src/xdrf.org/RS6K.m4
deleted file mode 100644 (file)
index 0331d97..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-divert(-1)
-undefine(`len')
-#
-# do nothing special to FORTRAN function names
-#
-define(`FUNCTION',`$1')
-#
-# FORTRAN character strings are passed as follows:
-# a pointer to the base of the string is passed in the normal
-# argument list, and the length is passed by value as an extra
-# argument, after all of the other arguments.
-#
-define(`ARGS',`($1`'undivert(1))')
-define(`SAVE',`divert(1)$1`'divert(0)')
-define(`STRING_ARG',`$1_ptr`'SAVE(`, $1_len')')
-define(`STRING_ARG_DECL',`char * $1_ptr; int $1_len')
-define(`STRING_LEN',`$1_len')
-define(`STRING_PTR',`$1_ptr')
-divert(0)
-
diff --git a/source/wham/src/xdrf.org/features.h b/source/wham/src/xdrf.org/features.h
deleted file mode 100644 (file)
index 5733b9b..0000000
+++ /dev/null
@@ -1,334 +0,0 @@
-/* Copyright (C) 1991-1993,1995-2003,2004,2005 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#ifndef        _FEATURES_H
-#define        _FEATURES_H     1
-
-/* These are defined by the user (or the compiler)
-   to specify the desired environment:
-
-   __STRICT_ANSI__     ISO Standard C.
-   _ISOC99_SOURCE      Extensions to ISO C89 from ISO C99.
-   _POSIX_SOURCE       IEEE Std 1003.1.
-   _POSIX_C_SOURCE     If ==1, like _POSIX_SOURCE; if >=2 add IEEE Std 1003.2;
-                       if >=199309L, add IEEE Std 1003.1b-1993;
-                       if >=199506L, add IEEE Std 1003.1c-1995;
-                       if >=200112L, all of IEEE 1003.1-2004
-   _XOPEN_SOURCE       Includes POSIX and XPG things.  Set to 500 if
-                       Single Unix conformance is wanted, to 600 for the
-                       upcoming sixth revision.
-   _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions.
-   _LARGEFILE_SOURCE   Some more functions for correct standard I/O.
-   _LARGEFILE64_SOURCE Additional functionality from LFS for large files.
-   _FILE_OFFSET_BITS=N Select default filesystem interface.
-   _BSD_SOURCE         ISO C, POSIX, and 4.3BSD things.
-   _SVID_SOURCE                ISO C, POSIX, and SVID things.
-   _GNU_SOURCE         All of the above, plus GNU extensions.
-   _REENTRANT          Select additionally reentrant object.
-   _THREAD_SAFE                Same as _REENTRANT, often used by other systems.
-   _FORTIFY_SOURCE     If set to numeric value > 0 additional security
-                       measures are defined, according to level.
-
-   The `-ansi' switch to the GNU C compiler defines __STRICT_ANSI__.
-   If none of these are defined, the default is to have _SVID_SOURCE,
-   _BSD_SOURCE, and _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to
-   199506L.  If more than one of these are defined, they accumulate.
-   For example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE
-   together give you ISO C, 1003.1, and 1003.2, but nothing else.
-
-   These are defined by this file and are used by the
-   header files to decide what to declare or define:
-
-   __USE_ISOC99                Define ISO C99 things.
-   __USE_POSIX         Define IEEE Std 1003.1 things.
-   __USE_POSIX2                Define IEEE Std 1003.2 things.
-   __USE_POSIX199309   Define IEEE Std 1003.1, and .1b things.
-   __USE_POSIX199506   Define IEEE Std 1003.1, .1b, .1c and .1i things.
-   __USE_XOPEN         Define XPG things.
-   __USE_XOPEN_EXTENDED        Define X/Open Unix things.
-   __USE_UNIX98                Define Single Unix V2 things.
-   __USE_XOPEN2K        Define XPG6 things.
-   __USE_LARGEFILE     Define correct standard I/O things.
-   __USE_LARGEFILE64   Define LFS things with separate names.
-   __USE_FILE_OFFSET64 Define 64bit interface as default.
-   __USE_BSD           Define 4.3BSD things.
-   __USE_SVID          Define SVID things.
-   __USE_MISC          Define things common to BSD and System V Unix.
-   __USE_GNU           Define GNU extensions.
-   __USE_REENTRANT     Define reentrant/thread-safe *_r functions.
-   __USE_FORTIFY_LEVEL Additional security measures used, according to level.
-   __FAVOR_BSD         Favor 4.3BSD things in cases of conflict.
-
-   The macros `__GNU_LIBRARY__', `__GLIBC__', and `__GLIBC_MINOR__' are
-   defined by this file unconditionally.  `__GNU_LIBRARY__' is provided
-   only for compatibility.  All new code should use the other symbols
-   to test for features.
-
-   All macros listed above as possibly being defined by this file are
-   explicitly undefined if they are not explicitly defined.
-   Feature-test macros that are not defined by the user or compiler
-   but are implied by the other feature-test macros defined (or by the
-   lack of any definitions) are defined by the file.  */
-
-
-/* Undefine everything, so we get a clean slate.  */
-#undef __USE_ISOC99
-#undef __USE_POSIX
-#undef __USE_POSIX2
-#undef __USE_POSIX199309
-#undef __USE_POSIX199506
-#undef __USE_XOPEN
-#undef __USE_XOPEN_EXTENDED
-#undef __USE_UNIX98
-#undef __USE_XOPEN2K
-#undef __USE_LARGEFILE
-#undef __USE_LARGEFILE64
-#undef __USE_FILE_OFFSET64
-#undef __USE_BSD
-#undef __USE_SVID
-#undef __USE_MISC
-#undef __USE_GNU
-#undef __USE_REENTRANT
-#undef __USE_FORTIFY_LEVEL
-#undef __FAVOR_BSD
-#undef __KERNEL_STRICT_NAMES
-
-/* Suppress kernel-name space pollution unless user expressedly asks
-   for it.  */
-#ifndef _LOOSE_KERNEL_NAMES
-# define __KERNEL_STRICT_NAMES
-#endif
-
-/* Always use ISO C things.  */
-#define        __USE_ANSI      1
-
-/* Convenience macros to test the versions of glibc and gcc.
-   Use them like this:
-   #if __GNUC_PREREQ (2,8)
-   ... code requiring gcc 2.8 or later ...
-   #endif
-   Note - they won't work for gcc1 or glibc1, since the _MINOR macros
-   were not defined then.  */
-#if defined __GNUC__ && defined __GNUC_MINOR__
-# define __GNUC_PREREQ(maj, min) \
-       ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
-#else
-# define __GNUC_PREREQ(maj, min) 0
-#endif
-
-
-/* If _BSD_SOURCE was defined by the user, favor BSD over POSIX.  */
-#if defined _BSD_SOURCE && \
-    !(defined _POSIX_SOURCE || defined _POSIX_C_SOURCE || \
-      defined _XOPEN_SOURCE || defined _XOPEN_SOURCE_EXTENDED || \
-      defined _GNU_SOURCE || defined _SVID_SOURCE)
-# define __FAVOR_BSD   1
-#endif
-
-/* If _GNU_SOURCE was defined by the user, turn on all the other features.  */
-#ifdef _GNU_SOURCE
-# undef  _ISOC99_SOURCE
-# define _ISOC99_SOURCE        1
-# undef  _POSIX_SOURCE
-# define _POSIX_SOURCE 1
-# undef  _POSIX_C_SOURCE
-# define _POSIX_C_SOURCE       199506L
-# undef  _XOPEN_SOURCE
-# define _XOPEN_SOURCE 600
-# undef  _XOPEN_SOURCE_EXTENDED
-# define _XOPEN_SOURCE_EXTENDED        1
-# undef         _LARGEFILE64_SOURCE
-# define _LARGEFILE64_SOURCE   1
-# undef  _BSD_SOURCE
-# define _BSD_SOURCE   1
-# undef  _SVID_SOURCE
-# define _SVID_SOURCE  1
-#endif
-
-/* If nothing (other than _GNU_SOURCE) is defined,
-   define _BSD_SOURCE and _SVID_SOURCE.  */
-#if (!defined __STRICT_ANSI__ && !defined _ISOC99_SOURCE && \
-     !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE && \
-     !defined _XOPEN_SOURCE && !defined _XOPEN_SOURCE_EXTENDED && \
-     !defined _BSD_SOURCE && !defined _SVID_SOURCE)
-# define _BSD_SOURCE   1
-# define _SVID_SOURCE  1
-#endif
-
-/* This is to enable the ISO C99 extension.  Also recognize the old macro
-   which was used prior to the standard acceptance.  This macro will
-   eventually go away and the features enabled by default once the ISO C99
-   standard is widely adopted.  */
-#if (defined _ISOC99_SOURCE || defined _ISOC9X_SOURCE \
-     || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L))
-# define __USE_ISOC99  1
-#endif
-
-/* If none of the ANSI/POSIX macros are defined, use POSIX.1 and POSIX.2
-   (and IEEE Std 1003.1b-1993 unless _XOPEN_SOURCE is defined).  */
-#if ((!defined __STRICT_ANSI__ || (_XOPEN_SOURCE - 0) >= 500) && \
-     !defined _POSIX_SOURCE && !defined _POSIX_C_SOURCE)
-# define _POSIX_SOURCE 1
-# if defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) < 500
-#  define _POSIX_C_SOURCE      2
-# else
-#  define _POSIX_C_SOURCE      199506L
-# endif
-#endif
-
-#if defined _POSIX_SOURCE || _POSIX_C_SOURCE >= 1 || defined _XOPEN_SOURCE
-# define __USE_POSIX   1
-#endif
-
-#if defined _POSIX_C_SOURCE && _POSIX_C_SOURCE >= 2 || defined _XOPEN_SOURCE
-# define __USE_POSIX2  1
-#endif
-
-#if (_POSIX_C_SOURCE - 0) >= 199309L
-# define __USE_POSIX199309     1
-#endif
-
-#if (_POSIX_C_SOURCE - 0) >= 199506L
-# define __USE_POSIX199506     1
-#endif
-
-#if (_POSIX_C_SOURCE - 0) >= 200112L
-# define __USE_XOPEN2K         1
-#endif
-
-#ifdef _XOPEN_SOURCE
-# define __USE_XOPEN   1
-# if (_XOPEN_SOURCE - 0) >= 500
-#  define __USE_XOPEN_EXTENDED 1
-#  define __USE_UNIX98 1
-#  undef _LARGEFILE_SOURCE
-#  define _LARGEFILE_SOURCE    1
-#  if (_XOPEN_SOURCE - 0) >= 600
-#   define __USE_XOPEN2K       1
-#   undef __USE_ISOC99
-#   define __USE_ISOC99                1
-#  endif
-# else
-#  ifdef _XOPEN_SOURCE_EXTENDED
-#   define __USE_XOPEN_EXTENDED        1
-#  endif
-# endif
-#endif
-
-#ifdef _LARGEFILE_SOURCE
-# define __USE_LARGEFILE       1
-#endif
-
-#ifdef _LARGEFILE64_SOURCE
-# define __USE_LARGEFILE64     1
-#endif
-
-#if defined _FILE_OFFSET_BITS && _FILE_OFFSET_BITS == 64
-# define __USE_FILE_OFFSET64   1
-#endif
-
-#if defined _BSD_SOURCE || defined _SVID_SOURCE
-# define __USE_MISC    1
-#endif
-
-#ifdef _BSD_SOURCE
-# define __USE_BSD     1
-#endif
-
-#ifdef _SVID_SOURCE
-# define __USE_SVID    1
-#endif
-
-#ifdef _GNU_SOURCE
-# define __USE_GNU     1
-#endif
-
-#if defined _REENTRANT || defined _THREAD_SAFE
-# define __USE_REENTRANT       1
-#endif
-
-#if _FORTIFY_SOURCE > 0 && __GNUC_PREREQ (4, 1) && __OPTIMIZE__ > 0
-# if _FORTIFY_SOURCE == 1
-#  define __USE_FORTIFY_LEVEL 1
-# elif _FORTIFY_SOURCE > 1
-#  define __USE_FORTIFY_LEVEL 2
-# endif
-#endif
-
-/* We do support the IEC 559 math functionality, real and complex.  */
-#define __STDC_IEC_559__               1
-#define __STDC_IEC_559_COMPLEX__       1
-
-/* wchar_t uses ISO 10646-1 (2nd ed., published 2000-09-15) / Unicode 3.1.  */
-#define __STDC_ISO_10646__             200009L
-
-/* This macro indicates that the installed library is the GNU C Library.
-   For historic reasons the value now is 6 and this will stay from now
-   on.  The use of this variable is deprecated.  Use __GLIBC__ and
-   __GLIBC_MINOR__ now (see below) when you want to test for a specific
-   GNU C library version and use the values in <gnu/lib-names.h> to get
-   the sonames of the shared libraries.  */
-#undef  __GNU_LIBRARY__
-#define __GNU_LIBRARY__ 6
-
-/* Major and minor version number of the GNU C library package.  Use
-   these macros to test for features in specific releases.  */
-#define        __GLIBC__       2
-#define        __GLIBC_MINOR__ 3
-
-#define __GLIBC_PREREQ(maj, min) \
-       ((__GLIBC__ << 16) + __GLIBC_MINOR__ >= ((maj) << 16) + (min))
-
-/* Decide whether a compiler supports the long long datatypes.  */
-#if defined __GNUC__ \
-    || (defined __PGI && defined __i386__ ) \
-    || (defined __INTEL_COMPILER && (defined __i386__ || defined __ia64__)) \
-    || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)
-# define __GLIBC_HAVE_LONG_LONG        1
-#endif
-
-/* This is here only because every header file already includes this one.  */
-#ifndef __ASSEMBLER__
-# ifndef _SYS_CDEFS_H
-#  include <sys/cdefs.h>
-# endif
-
-/* If we don't have __REDIRECT, prototypes will be missing if
-   __USE_FILE_OFFSET64 but not __USE_LARGEFILE[64]. */
-# if defined __USE_FILE_OFFSET64 && !defined __REDIRECT
-#  define __USE_LARGEFILE      1
-#  define __USE_LARGEFILE64    1
-# endif
-
-#endif /* !ASSEMBLER */
-
-/* Decide whether we can define 'extern inline' functions in headers.  */
-#if __GNUC_PREREQ (2, 7) && defined __OPTIMIZE__ \
-    && !defined __OPTIMIZE_SIZE__ && !defined __NO_INLINE__
-# define __USE_EXTERN_INLINES  1
-#endif
-
-
-/* This is here only because every header file already includes this one.
-   Get the definitions of all the appropriate `__stub_FUNCTION' symbols.
-   <gnu/stubs.h> contains `#define __stub_FUNCTION' when FUNCTION is a stub
-   that will always return failure (and set errno to ENOSYS).  */
-#include <gnu/stubs.h>
-
-
-#endif /* features.h  */
diff --git a/source/wham/src/xdrf.org/ftocstr.c b/source/wham/src/xdrf.org/ftocstr.c
deleted file mode 100644 (file)
index ed2113f..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-int ftocstr(ds, dl, ss, sl)
-    char *ds, *ss;      /* dst, src ptrs */
-    int dl;             /* dst max len */
-    int sl;             /* src len */
-{
-    char *p;
-
-    for (p = ss + sl; --p >= ss && *p == ' '; ) ;
-    sl = p - ss + 1;
-    dl--;
-    ds[0] = 0;
-    if (sl > dl)
-        return 1;
-    while (sl--)
-       (*ds++ = *ss++);
-    *ds = '\0';
-    return 0;
-}
-
-
-int ctofstr(ds, dl, ss)
-       char *ds;               /* dest space */
-       int dl;                 /* max dest length */
-       char *ss;               /* src string (0-term) */
-{
-    while (dl && *ss) {
-       *ds++ = *ss++;
-       dl--;
-    }
-    while (dl--)
-       *ds++ = ' ';
-    return 0;
-}
diff --git a/source/wham/src/xdrf.org/libxdrf.c b/source/wham/src/xdrf.org/libxdrf.c
deleted file mode 100644 (file)
index 7fce1d1..0000000
+++ /dev/null
@@ -1,1236 +0,0 @@
-
-
-/*____________________________________________________________________________
- |
- | libxdrf - portable fortran interface to xdr. some xdr routines
- |          are C routines for compressed coordinates
- |
- | version 1.1
- |
- | This collection of routines is intended to write and read
- | data in a portable way to a file, so data written on one type
- | of machine can be read back on a different type.
- |
- | all fortran routines use an integer 'xdrid', which is an id to the
- | current xdr file, and is set by xdrfopen.
- | most routines have in integer 'ret' which is the return value.
- | The value of 'ret' is zero on failure, and most of the time one
- | on succes.
- |
- | There are three routines useful for C users:
- |  xdropen(), xdrclose(), xdr3dfcoord().
- | The first two replace xdrstdio_create and xdr_destroy, and *must* be
- | used when you plan to use xdr3dfcoord(). (they are also a bit
- | easier to interface). For writing data other than compressed coordinates 
- | you should use the standard C xdr routines (see xdr man page)
- |
- | xdrfopen(xdrid, filename, mode, ret)
- |     character *(*) filename
- |     character *(*) mode
- |
- |     this will open the file with the given filename (string)
- |     and the given mode, it returns an id in xdrid, which is
- |     to be used in all other calls to xdrf routines.
- |     mode is 'w' to create, or update an file, for all other
- |     values of mode the file is opened for reading
- |
- |     you need to call xdrfclose to flush the output and close
- |     the file.
- |     Note that you should not use xdrstdio_create, which comes with the
- |     standard xdr library
- |
- | xdrfclose(xdrid, ret)
- |     flush the data to the file, and closes the file;
- |     You should not use xdr_destroy (which comes standard with
- |     the xdr libraries.
- |
- | xdrfbool(xdrid, bp, ret)
- |     integer pb
- |
- |     This filter produces values of either 1 or 0    
- |
- | xdrfchar(xdrid, cp, ret)
- |     character cp
- |
- |     filter that translate between characters and their xdr representation
- |     Note that the characters in not compressed and occupies 4 bytes.
- |
- | xdrfdouble(xdrid, dp, ret)
- |     double dp
- |
- |     read/write a double.
- |
- | xdrffloat(xdrid, fp, ret)
- |     float fp
- |
- |     read/write a float.
- |
- | xdrfint(xdrid, ip, ret)
- |     integer ip
- |
- |     read/write integer.
- |
- | xdrflong(xdrid, lp, ret)
- |     integer lp
- |
- |     this routine has a possible portablility problem due to 64 bits longs.
- |
- | xdrfshort(xdrid, sp, ret)
- |     integer *2 sp
- |
- | xdrfstring(xdrid, sp, maxsize, ret)
- |     character *(*)
- |     integer maxsize
- |
- |     read/write a string, with maximum length given by maxsize
- |
- | xdrfwrapstring(xdris, sp, ret)
- |     character *(*)
- |
- |     read/write a string (it is the same as xdrfstring accept that it finds
- |     the stringlength itself.
- |
- | xdrfvector(xdrid, cp, size, xdrfproc, ret)
- |     character *(*)
- |     integer size
- |     external xdrfproc
- |
- |     read/write an array pointed to by cp, with number of elements
- |     defined by 'size'. the routine 'xdrfproc' is the name
- |     of one of the above routines to read/write data (like xdrfdouble)
- |     In contrast with the c-version you don't need to specify the
- |     byte size of an element.
- |     xdrfstring is not allowed here (it is in the c version)
- |     
- | xdrf3dfcoord(xdrid, fp, size, precision, ret)
- |     real (*) fp
- |     real precision
- |     integer size
- |
- |     this is *NOT* a standard xdr routine. I named it this way, because
- |     it invites people to use the other xdr routines.
- |     It is introduced to store specifically 3d coordinates of molecules
- |     (as found in molecular dynamics) and it writes it in a compressed way.
- |     It starts by multiplying all numbers by precision and
- |     rounding the result to integer. effectively converting
- |     all floating point numbers to fixed point.
- |     it uses an algorithm for compression that is optimized for
- |     molecular data, but could be used for other 3d coordinates
- |     as well. There is subtantial overhead involved, so call this
- |     routine only if you have a large number of coordinates to read/write
- |
- | ________________________________________________________________________
- |
- | Below are the routines to be used by C programmers. Use the 'normal'
- | xdr routines to write integers, floats, etc (see man xdr)   
- |
- | int xdropen(XDR *xdrs, const char *filename, const char *type)
- |     This will open the file with the given filename and the 
- |     given mode. You should pass it an allocated XDR struct
- |     in xdrs, to be used in all other calls to xdr routines.
- |     Mode is 'w' to create, or update an file, and for all 
- |     other values of mode the file is opened for reading. 
- |     You need to call xdrclose to flush the output and close
- |     the file.
- |
- |     Note that you should not use xdrstdio_create, which
- |     comes with the standard xdr library.
- |
- | int xdrclose(XDR *xdrs)
- |     Flush the data to the file, and close the file;
- |     You should not use xdr_destroy (which comes standard
- |     with the xdr libraries).
- |      
- | int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision)
- |     This is \fInot\fR a standard xdr routine. I named it this 
- |     way, because it invites people to use the other xdr 
- |     routines.
- |
- |     (c) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-*/     
-
-
-#include <limits.h>
-#include <malloc.h>
-#include <math.h>
-/* #include <rpc/rpc.h>
-#include <rpc/xdr.h> */
-#include "xdr.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include "xdrf.h"
-
-int ftocstr(char *, int, char *, int);
-int ctofstr(char *, int, char *);
-
-#define MAXID 20
-static FILE *xdrfiles[MAXID];
-static XDR *xdridptr[MAXID];
-static char xdrmodes[MAXID];
-static unsigned int cnt;
-
-typedef void (* xdrfproc) (int *, void *, int *);
-
-void
-xdrfbool (xdrid, pb, ret)
-int *xdrid, *ret;
-int *pb;
-{
-       *ret = xdr_bool(xdridptr[*xdrid], (bool_t *) pb);
-       cnt += sizeof(int);
-}
-
-void
-xdrfchar (xdrid, cp, ret)
-int *xdrid, *ret;
-char *cp;
-{
-       *ret = xdr_char(xdridptr[*xdrid], cp);
-       cnt += sizeof(char);
-}
-
-void
-xdrfdouble (xdrid, dp, ret)
-int *xdrid, *ret;
-double *dp;
-{
-       *ret = xdr_double(xdridptr[*xdrid], dp);
-       cnt += sizeof(double);
-}
-
-void
-xdrffloat (xdrid, fp, ret)
-int *xdrid, *ret;
-float *fp;
-{
-       *ret = xdr_float(xdridptr[*xdrid], fp);
-       cnt += sizeof(float);
-}
-
-void
-xdrfint (xdrid, ip, ret)
-int *xdrid, *ret;
-int *ip;
-{
-       *ret = xdr_int(xdridptr[*xdrid], ip);
-       cnt += sizeof(int);
-}
-
-void
-xdrflong (xdrid, lp, ret)
-int *xdrid, *ret;
-long *lp;
-{
-       *ret = xdr_long(xdridptr[*xdrid], lp);
-       cnt += sizeof(long);
-}
-
-void
-xdrfshort (xdrid, sp, ret)
-int *xdrid, *ret;
-short *sp;
-{
-       *ret = xdr_short(xdridptr[*xdrid], sp);
-       cnt += sizeof(sp);
-}
-
-void
-xdrfuchar (xdrid, ucp, ret)
-int *xdrid, *ret;
-char *ucp;
-{
-       *ret = xdr_u_char(xdridptr[*xdrid], ucp);
-       cnt += sizeof(char);
-}
-
-void
-xdrfulong (xdrid, ulp, ret)
-int *xdrid, *ret;
-unsigned long *ulp;
-{
-       *ret = xdr_u_long(xdridptr[*xdrid], ulp);
-       cnt += sizeof(unsigned long);
-}
-
-void
-xdrfushort (xdrid, usp, ret)
-int *xdrid, *ret;
-unsigned short *usp;
-{
-       *ret = xdr_u_short(xdridptr[*xdrid], usp);
-       cnt += sizeof(unsigned short);
-}
-
-void 
-xdrf3dfcoord (xdrid, fp, size, precision, ret)
-int *xdrid, *ret;
-float *fp;
-int *size;
-float *precision;
-{
-       *ret = xdr3dfcoord(xdridptr[*xdrid], fp, size, precision);
-}
-
-void
-xdrfstring (xdrid, sp_ptr, maxsize, ret, sp_len)
-int *xdrid, *ret;
-char * sp_ptr; int sp_len;
-int *maxsize;
-{
-       char *tsp;
-
-       tsp = (char*) malloc(((sp_len) + 1) * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, *maxsize+1, sp_ptr, sp_len)) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int) *maxsize);
-       ctofstr( sp_ptr, sp_len, tsp);
-       cnt += *maxsize;
-       free(tsp);
-}
-
-void
-xdrfwrapstring (xdrid,  sp_ptr, ret, sp_len)
-int *xdrid, *ret;
-char * sp_ptr; int sp_len;
-{
-       char *tsp;
-       int maxsize;
-       maxsize = (sp_len) + 1;
-       tsp = (char*) malloc(maxsize * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, maxsize, sp_ptr, sp_len)) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int)maxsize);
-       ctofstr( sp_ptr, sp_len, tsp);
-       cnt += maxsize;
-       free(tsp);
-}
-
-void
-xdrfopaque (xdrid, cp, ccnt, ret)
-int *xdrid, *ret;
-caddr_t *cp;
-int *ccnt;
-{
-       *ret = xdr_opaque(xdridptr[*xdrid], (caddr_t)*cp, (u_int)*ccnt);
-       cnt += *ccnt;
-}
-
-void
-xdrfsetpos (xdrid, pos, ret)
-int *xdrid, *ret;
-int *pos;
-{
-       *ret = xdr_setpos(xdridptr[*xdrid], (u_int) *pos);
-}
-
-void
-xdrf (xdrid, pos)
-int *xdrid, *pos;
-{
-       *pos = xdr_getpos(xdridptr[*xdrid]);
-}
-
-void
-xdrfvector (xdrid, cp, size, elproc, ret)
-int *xdrid, *ret;
-char *cp;
-int *size;
-xdrfproc elproc;
-{
-       int lcnt;
-       cnt = 0;
-       for (lcnt = 0; lcnt < *size; lcnt++) {
-               elproc(xdrid, (cp+cnt) , ret);
-       }
-}
-
-
-void
-xdrfclose (xdrid, ret)
-int *xdrid;
-int *ret;
-{
-       *ret = xdrclose(xdridptr[*xdrid]);
-       cnt = 0;
-}
-
-void
-xdrfopen (xdrid,  fp_ptr, mode_ptr, ret, fp_len, mode_len)
-int *xdrid;
-char * fp_ptr; int fp_len;
-char * mode_ptr; int mode_len;
-int *ret;
-{
-       char fname[512];
-       char fmode[3];
-
-       if (ftocstr(fname, sizeof(fname), fp_ptr, fp_len)) {
-               *ret = 0;
-       }
-       if (ftocstr(fmode, sizeof(fmode), mode_ptr,
-                       mode_len)) {
-               *ret = 0;
-       }
-
-       *xdrid = xdropen(NULL, fname, fmode);
-       if (*xdrid == 0)
-               *ret = 0;
-       else 
-               *ret = 1;       
-}
-
-/*___________________________________________________________________________
- |
- | what follows are the C routines for opening, closing xdr streams
- | and the routine to read/write compressed coordinates together
- | with some routines to assist in this task (those are marked
- | static and cannot be called from user programs)
-*/
-#define MAXABS INT_MAX-2
-
-#ifndef MIN
-#define MIN(x,y) ((x) < (y) ? (x):(y))
-#endif
-#ifndef MAX
-#define MAX(x,y) ((x) > (y) ? (x):(y))
-#endif
-#ifndef SQR
-#define SQR(x) ((x)*(x))
-#endif
-static int magicints[] = {
-    0, 0, 0, 0, 0, 0, 0, 0, 0,
-    8, 10, 12, 16, 20, 25, 32, 40, 50, 64,
-    80, 101, 128, 161, 203, 256, 322, 406, 512, 645,
-    812, 1024, 1290, 1625, 2048, 2580, 3250, 4096, 5060, 6501,
-    8192, 10321, 13003, 16384, 20642, 26007, 32768, 41285, 52015, 65536,
-    82570, 104031, 131072, 165140, 208063, 262144, 330280, 416127, 524287, 660561,
-    832255, 1048576, 1321122, 1664510, 2097152, 2642245, 3329021, 4194304, 5284491, 6658042,
-    8388607, 10568983, 13316085, 16777216 };
-
-#define FIRSTIDX 9
-/* note that magicints[FIRSTIDX-1] == 0 */
-#define LASTIDX (sizeof(magicints) / sizeof(*magicints))
-
-
-/*__________________________________________________________________________
- |
- | xdropen - open xdr file
- |
- | This versions differs from xdrstdio_create, because I need to know
- | the state of the file (read or write) so I can use xdr3dfcoord
- | in eigther read or write mode, and the file descriptor
- | so I can close the file (something xdr_destroy doesn't do).
- |
-*/
-
-int xdropen(XDR *xdrs, const char *filename, const char *type) {
-    static int init_done = 0;
-    enum xdr_op lmode;
-    const char *type1;
-    int xdrid;
-    
-    if (init_done == 0) {
-       for (xdrid = 1; xdrid < MAXID; xdrid++) {
-           xdridptr[xdrid] = NULL;
-       }
-       init_done = 1;
-    }
-    xdrid = 1;
-    while (xdrid < MAXID && xdridptr[xdrid] != NULL) {
-       xdrid++;
-    }
-    if (xdrid == MAXID) {
-       return 0;
-    }
-    if (*type == 'w' || *type == 'W') {
-           type = "w+";
-           type1 = "a+";
-           lmode = XDR_ENCODE;
-    } else {
-           type = "r";
-            type1 = "r";
-           lmode = XDR_DECODE;
-    }
-    xdrfiles[xdrid] = fopen(filename, type1);
-    if (xdrfiles[xdrid] == NULL) {
-       xdrs = NULL;
-       return 0;
-    }
-    xdrmodes[xdrid] = *type;
-    /* next test isn't usefull in the case of C language
-     * but is used for the Fortran interface
-     * (C users are expected to pass the address of an already allocated
-     * XDR staructure)
-     */
-    if (xdrs == NULL) {
-       xdridptr[xdrid] = (XDR *) malloc(sizeof(XDR));
-       xdrstdio_create(xdridptr[xdrid], xdrfiles[xdrid], lmode);
-    } else {
-       xdridptr[xdrid] = xdrs;
-       xdrstdio_create(xdrs, xdrfiles[xdrid], lmode);
-    }
-    return xdrid;
-}
-
-/*_________________________________________________________________________
- |
- | xdrclose - close a xdr file
- |
- | This will flush the xdr buffers, and destroy the xdr stream.
- | It also closes the associated file descriptor (this is *not*
- | done by xdr_destroy).
- |
-*/
-int xdrclose(XDR *xdrs) {
-    int xdrid;
-    
-    if (xdrs == NULL) {
-       fprintf(stderr, "xdrclose: passed a NULL pointer\n");
-       exit(1);
-    }
-    for (xdrid = 1; xdrid < MAXID; xdrid++) {
-       if (xdridptr[xdrid] == xdrs) {
-           
-           xdr_destroy(xdrs);
-           fclose(xdrfiles[xdrid]);
-           xdridptr[xdrid] = NULL;
-           return 1;
-       }
-    } 
-    fprintf(stderr, "xdrclose: no such open xdr file\n");
-    exit(1);
-    
-}
-
-/*____________________________________________________________________________
- |
- | sendbits - encode num into buf using the specified number of bits
- |
- | This routines appends the value of num to the bits already present in
- | the array buf. You need to give it the number of bits to use and you
- | better make sure that this number of bits is enough to hold the value
- | Also num must be positive.
- |
-*/
-
-static void sendbits(int buf[], int num_of_bits, int num) {
-    
-    unsigned int cnt, lastbyte;
-    int lastbits;
-    unsigned char * cbuf;
-    
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = (unsigned int) buf[0];
-    lastbits = buf[1];
-    lastbyte =(unsigned int) buf[2];
-    while (num_of_bits >= 8) {
-       lastbyte = (lastbyte << 8) | ((num >> (num_of_bits -8)) /* & 0xff*/);
-       cbuf[cnt++] = lastbyte >> lastbits;
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       lastbyte = (lastbyte << num_of_bits) | num;
-       lastbits += num_of_bits;
-       if (lastbits >= 8) {
-           lastbits -= 8;
-           cbuf[cnt++] = lastbyte >> lastbits;
-       }
-    }
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    if (lastbits>0) {
-       cbuf[cnt] = lastbyte << (8 - lastbits);
-    }
-}
-
-/*_________________________________________________________________________
- |
- | sizeofint - calculate bitsize of an integer
- |
- | return the number of bits needed to store an integer with given max size
- |
-*/
-
-static int sizeofint(const int size) {
-    unsigned int num = 1;
-    int num_of_bits = 0;
-    
-    while (size >= num && num_of_bits < 32) {
-       num_of_bits++;
-       num <<= 1;
-    }
-    return num_of_bits;
-}
-
-/*___________________________________________________________________________
- |
- | sizeofints - calculate 'bitsize' of compressed ints
- |
- | given the number of small unsigned integers and the maximum value
- | return the number of bits needed to read or write them with the
- | routines receiveints and sendints. You need this parameter when
- | calling these routines. Note that for many calls I can use
- | the variable 'smallidx' which is exactly the number of bits, and
- | So I don't need to call 'sizeofints for those calls.
-*/
-
-static int sizeofints( const int num_of_ints, unsigned int sizes[]) {
-    int i, num;
-    unsigned int num_of_bytes, num_of_bits, bytes[32], bytecnt, tmp;
-    num_of_bytes = 1;
-    bytes[0] = 1;
-    num_of_bits = 0;
-    for (i=0; i < num_of_ints; i++) {  
-       tmp = 0;
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    num = 1;
-    num_of_bytes--;
-    while (bytes[num_of_bytes] >= num) {
-       num_of_bits++;
-       num *= 2;
-    }
-    return num_of_bits + num_of_bytes * 8;
-
-}
-    
-/*____________________________________________________________________________
- |
- | sendints - send a small set of small integers in compressed format
- |
- | this routine is used internally by xdr3dfcoord, to send a set of
- | small integers to the buffer. 
- | Multiplication with fixed (specified maximum ) sizes is used to get
- | to one big, multibyte integer. Allthough the routine could be
- | modified to handle sizes bigger than 16777216, or more than just
- | a few integers, this is not done, because the gain in compression
- | isn't worth the effort. Note that overflowing the multiplication
- | or the byte buffer (32 bytes) is unchecked and causes bad results.
- |
- */
-static void sendints(int buf[], const int num_of_ints, const int num_of_bits,
-       unsigned int sizes[], unsigned int nums[]) {
-
-    int i;
-    unsigned int bytes[32], num_of_bytes, bytecnt, tmp;
-
-    tmp = nums[0];
-    num_of_bytes = 0;
-    do {
-       bytes[num_of_bytes++] = tmp & 0xff;
-       tmp >>= 8;
-    } while (tmp != 0);
-
-    for (i = 1; i < num_of_ints; i++) {
-       if (nums[i] >= sizes[i]) {
-           fprintf(stderr,"major breakdown in sendints num %d doesn't "
-                   "match size %d\n", nums[i], sizes[i]);
-           exit(1);
-       }
-       /* use one step multiply */    
-       tmp = nums[i];
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    if (num_of_bits >= num_of_bytes * 8) {
-       for (i = 0; i < num_of_bytes; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits - num_of_bytes * 8, 0);
-    } else {
-       for (i = 0; i < num_of_bytes-1; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits- (num_of_bytes -1) * 8, bytes[i]);
-    }
-}
-
-
-/*___________________________________________________________________________
- |
- | receivebits - decode number from buf using specified number of bits
- | 
- | extract the number of bits from the array buf and construct an integer
- | from it. Return that value.
- |
-*/
-
-static int receivebits(int buf[], int num_of_bits) {
-
-    int cnt, num; 
-    unsigned int lastbits, lastbyte;
-    unsigned char * cbuf;
-    int mask = (1 << num_of_bits) -1;
-
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = buf[0];
-    lastbits = (unsigned int) buf[1];
-    lastbyte = (unsigned int) buf[2];
-    
-    num = 0;
-    while (num_of_bits >= 8) {
-       lastbyte = ( lastbyte << 8 ) | cbuf[cnt++];
-       num |=  (lastbyte >> lastbits) << (num_of_bits - 8);
-       num_of_bits -=8;
-    }
-    if (num_of_bits > 0) {
-       if (lastbits < num_of_bits) {
-           lastbits += 8;
-           lastbyte = (lastbyte << 8) | cbuf[cnt++];
-       }
-       lastbits -= num_of_bits;
-       num |= (lastbyte >> lastbits) & ((1 << num_of_bits) -1);
-    }
-    num &= mask;
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    return num; 
-}
-
-/*____________________________________________________________________________
- |
- | receiveints - decode 'small' integers from the buf array
- |
- | this routine is the inverse from sendints() and decodes the small integers
- | written to buf by calculating the remainder and doing divisions with
- | the given sizes[]. You need to specify the total number of bits to be
- | used from buf in num_of_bits.
- |
-*/
-
-static void receiveints(int buf[], const int num_of_ints, int num_of_bits,
-       unsigned int sizes[], int nums[]) {
-    int bytes[32];
-    int i, j, num_of_bytes, p, num;
-    
-    bytes[1] = bytes[2] = bytes[3] = 0;
-    num_of_bytes = 0;
-    while (num_of_bits > 8) {
-       bytes[num_of_bytes++] = receivebits(buf, 8);
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       bytes[num_of_bytes++] = receivebits(buf, num_of_bits);
-    }
-    for (i = num_of_ints-1; i > 0; i--) {
-       num = 0;
-       for (j = num_of_bytes-1; j >=0; j--) {
-           num = (num << 8) | bytes[j];
-           p = num / sizes[i];
-           bytes[j] = p;
-           num = num - p * sizes[i];
-       }
-       nums[i] = num;
-    }
-    nums[0] = bytes[0] | (bytes[1] << 8) | (bytes[2] << 16) | (bytes[3] << 24);
-}
-    
-/*____________________________________________________________________________
- |
- | xdr3dfcoord - read or write compressed 3d coordinates to xdr file.
- |
- | this routine reads or writes (depending on how you opened the file with
- | xdropen() ) a large number of 3d coordinates (stored in *fp).
- | The number of coordinates triplets to write is given by *size. On
- | read this number may be zero, in which case it reads as many as were written
- | or it may specify the number if triplets to read (which should match the
- | number written).
- | Compression is achieved by first converting all floating numbers to integer
- | using multiplication by *precision and rounding to the nearest integer.
- | Then the minimum and maximum value are calculated to determine the range.
- | The limited range of integers so found, is used to compress the coordinates.
- | In addition the differences between succesive coordinates is calculated.
- | If the difference happens to be 'small' then only the difference is saved,
- | compressing the data even more. The notion of 'small' is changed dynamically
- | and is enlarged or reduced whenever needed or possible.
- | Extra compression is achieved in the case of GROMOS and coordinates of
- | water molecules. GROMOS first writes out the Oxygen position, followed by
- | the two hydrogens. In order to make the differences smaller (and thereby
- | compression the data better) the order is changed into first one hydrogen
- | then the oxygen, followed by the other hydrogen. This is rather special, but
- | it shouldn't harm in the general case.
- |
- */
-int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) {
-    
-
-    static int *ip = NULL;
-    static int oldsize;
-    static int *buf;
-
-    int minint[3], maxint[3], mindiff, *lip, diff;
-    int lint1, lint2, lint3, oldlint1, oldlint2, oldlint3, smallidx;
-    int minidx, maxidx;
-    unsigned sizeint[3], sizesmall[3], bitsizeint[3], size3, *luip;
-    int flag, k;
-    int small, smaller, larger, i, is_small, is_smaller, run, prevrun;
-    float *lfp, lf;
-    int tmp, *thiscoord,  prevcoord[3];
-    unsigned int tmpcoord[30];
-
-    int bufsize, xdrid, lsize;
-    unsigned int bitsize;
-    float inv_precision;
-    int errval = 1;
-
-    /* find out if xdrs is opened for reading or for writing */
-    xdrid = 0;
-    while (xdridptr[xdrid] != xdrs) {
-       xdrid++;
-       if (xdrid >= MAXID) {
-           fprintf(stderr, "xdr error. no open xdr stream\n");
-           exit (1);
-       }
-    }
-    if (xdrmodes[xdrid] == 'w') {
-
-       /* xdrs is open for writing */
-
-       if (xdr_int(xdrs, size) == 0)
-           return 0;
-       size3 = *size * 3;
-       /* when the number of coordinates is small, don't try to compress; just
-        * write them as floats using xdr_vector
-        */
-       if (*size <= 9 ) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       /* buf[0-2] are special and do not contain actual data */
-       buf[0] = buf[1] = buf[2] = 0;
-       minint[0] = minint[1] = minint[2] = INT_MAX;
-       maxint[0] = maxint[1] = maxint[2] = INT_MIN;
-       prevrun = -1;
-       lfp = fp;
-       lip = ip;
-       mindiff = INT_MAX;
-       oldlint1 = oldlint2 = oldlint3 = 0;
-       while(lfp < fp + size3 ) {
-           /* find nearest integer */
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint1 = lf;
-           if (lint1 < minint[0]) minint[0] = lint1;
-           if (lint1 > maxint[0]) maxint[0] = lint1;
-           *lip++ = lint1;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint2 = lf;
-           if (lint2 < minint[1]) minint[1] = lint2;
-           if (lint2 > maxint[1]) maxint[1] = lint2;
-           *lip++ = lint2;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint3 = lf;
-           if (lint3 < minint[2]) minint[2] = lint3;
-           if (lint3 > maxint[2]) maxint[2] = lint3;
-           *lip++ = lint3;
-           lfp++;
-           diff = abs(oldlint1-lint1)+abs(oldlint2-lint2)+abs(oldlint3-lint3);
-           if (diff < mindiff && lfp > fp + 3)
-               mindiff = diff;
-           oldlint1 = lint1;
-           oldlint2 = lint2;
-           oldlint3 = lint3;
-       }
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-       
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-       
-       if ((float)maxint[0] - (float)minint[0] >= MAXABS ||
-               (float)maxint[1] - (float)minint[1] >= MAXABS ||
-               (float)maxint[2] - (float)minint[2] >= MAXABS) {
-           /* turning value in unsigned by subtracting minint
-            * would cause overflow
-            */
-           errval = 0;
-       }
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       lip = ip;
-       luip = (unsigned int *) ip;
-       smallidx = FIRSTIDX;
-       while (smallidx < LASTIDX && magicints[smallidx] < mindiff) {
-           smallidx++;
-       }
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-       larger = magicints[maxidx] / 2;
-       i = 0;
-       while (i < *size) {
-           is_small = 0;
-           thiscoord = (int *)(luip) + i * 3;
-           if (smallidx < maxidx && i >= 1 &&
-                   abs(thiscoord[0] - prevcoord[0]) < larger &&
-                   abs(thiscoord[1] - prevcoord[1]) < larger &&
-                   abs(thiscoord[2] - prevcoord[2]) < larger) {
-               is_smaller = 1;
-           } else if (smallidx > minidx) {
-               is_smaller = -1;
-           } else {
-               is_smaller = 0;
-           }
-           if (i + 1 < *size) {
-               if (abs(thiscoord[0] - thiscoord[3]) < small &&
-                       abs(thiscoord[1] - thiscoord[4]) < small &&
-                       abs(thiscoord[2] - thiscoord[5]) < small) {
-                   /* interchange first with second atom for better
-                    * compression of water molecules
-                    */
-                   tmp = thiscoord[0]; thiscoord[0] = thiscoord[3];
-                       thiscoord[3] = tmp;
-                   tmp = thiscoord[1]; thiscoord[1] = thiscoord[4];
-                       thiscoord[4] = tmp;
-                   tmp = thiscoord[2]; thiscoord[2] = thiscoord[5];
-                       thiscoord[5] = tmp;
-                   is_small = 1;
-               }
-    
-           }
-           tmpcoord[0] = thiscoord[0] - minint[0];
-           tmpcoord[1] = thiscoord[1] - minint[1];
-           tmpcoord[2] = thiscoord[2] - minint[2];
-           if (bitsize == 0) {
-               sendbits(buf, bitsizeint[0], tmpcoord[0]);
-               sendbits(buf, bitsizeint[1], tmpcoord[1]);
-               sendbits(buf, bitsizeint[2], tmpcoord[2]);
-           } else {
-               sendints(buf, 3, bitsize, sizeint, tmpcoord);
-           }
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           thiscoord = thiscoord + 3;
-           i++;
-           
-           run = 0;
-           if (is_small == 0 && is_smaller == -1)
-               is_smaller = 0;
-           while (is_small && run < 8*3) {
-               if (is_smaller == -1 && (
-                       SQR(thiscoord[0] - prevcoord[0]) +
-                       SQR(thiscoord[1] - prevcoord[1]) +
-                       SQR(thiscoord[2] - prevcoord[2]) >= smaller * smaller)) {
-                   is_smaller = 0;
-               }
-
-               tmpcoord[run++] = thiscoord[0] - prevcoord[0] + small;
-               tmpcoord[run++] = thiscoord[1] - prevcoord[1] + small;
-               tmpcoord[run++] = thiscoord[2] - prevcoord[2] + small;
-               
-               prevcoord[0] = thiscoord[0];
-               prevcoord[1] = thiscoord[1];
-               prevcoord[2] = thiscoord[2];
-
-               i++;
-               thiscoord = thiscoord + 3;
-               is_small = 0;
-               if (i < *size &&
-                       abs(thiscoord[0] - prevcoord[0]) < small &&
-                       abs(thiscoord[1] - prevcoord[1]) < small &&
-                       abs(thiscoord[2] - prevcoord[2]) < small) {
-                   is_small = 1;
-               }
-           }
-           if (run != prevrun || is_smaller != 0) {
-               prevrun = run;
-               sendbits(buf, 1, 1); /* flag the change in run-length */
-               sendbits(buf, 5, run+is_smaller+1);
-           } else {
-               sendbits(buf, 1, 0); /* flag the fact that runlength did not change */
-           }
-           for (k=0; k < run; k+=3) {
-               sendints(buf, 3, smallidx, sizesmall, &tmpcoord[k]);    
-           }
-           if (is_smaller != 0) {
-               smallidx += is_smaller;
-               if (is_smaller < 0) {
-                   small = smaller;
-                   smaller = magicints[smallidx-1] / 2;
-               } else {
-                   smaller = small;
-                   small = magicints[smallidx] / 2;
-               }
-               sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-           }
-       }
-       if (buf[1] != 0) buf[0]++;;
-       xdr_int(xdrs, &(buf[0])); /* buf[0] holds the length in bytes */
-       return errval * (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]));
-    } else {
-       
-       /* xdrs is open for reading */
-       
-       if (xdr_int(xdrs, &lsize) == 0) 
-           return 0;
-       if (*size != 0 && lsize != *size) {
-           fprintf(stderr, "wrong number of coordinates in xdr3dfcoor; "
-                   "%d arg vs %d in file", *size, lsize);
-       }
-       *size = lsize;
-       size3 = *size * 3;
-       if (*size <= 9) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-               
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       larger = magicints[maxidx];
-
-       /* buf[0] holds the length in bytes */
-
-       if (xdr_int(xdrs, &(buf[0])) == 0)
-           return 0;
-       if (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]) == 0)
-           return 0;
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       lfp = fp;
-       inv_precision = 1.0 / * precision;
-       run = 0;
-       i = 0;
-       lip = ip;
-       while ( i < lsize ) {
-           thiscoord = (int *)(lip) + i * 3;
-
-           if (bitsize == 0) {
-               thiscoord[0] = receivebits(buf, bitsizeint[0]);
-               thiscoord[1] = receivebits(buf, bitsizeint[1]);
-               thiscoord[2] = receivebits(buf, bitsizeint[2]);
-           } else {
-               receiveints(buf, 3, bitsize, sizeint, thiscoord);
-           }
-           
-           i++;
-           thiscoord[0] += minint[0];
-           thiscoord[1] += minint[1];
-           thiscoord[2] += minint[2];
-           
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           
-          
-           flag = receivebits(buf, 1);
-           is_smaller = 0;
-           if (flag == 1) {
-               run = receivebits(buf, 5);
-               is_smaller = run % 3;
-               run -= is_smaller;
-               is_smaller--;
-           }
-           if (run > 0) {
-               thiscoord += 3;
-               for (k = 0; k < run; k+=3) {
-                   receiveints(buf, 3, smallidx, sizesmall, thiscoord);
-                   i++;
-                   thiscoord[0] += prevcoord[0] - small;
-                   thiscoord[1] += prevcoord[1] - small;
-                   thiscoord[2] += prevcoord[2] - small;
-                   if (k == 0) {
-                       /* interchange first with second atom for better
-                        * compression of water molecules
-                        */
-                       tmp = thiscoord[0]; thiscoord[0] = prevcoord[0];
-                               prevcoord[0] = tmp;
-                       tmp = thiscoord[1]; thiscoord[1] = prevcoord[1];
-                               prevcoord[1] = tmp;
-                       tmp = thiscoord[2]; thiscoord[2] = prevcoord[2];
-                               prevcoord[2] = tmp;
-                       *lfp++ = prevcoord[0] * inv_precision;
-                       *lfp++ = prevcoord[1] * inv_precision;
-                       *lfp++ = prevcoord[2] * inv_precision;
-                   } else {
-                       prevcoord[0] = thiscoord[0];
-                       prevcoord[1] = thiscoord[1];
-                       prevcoord[2] = thiscoord[2];
-                   }
-                   *lfp++ = thiscoord[0] * inv_precision;
-                   *lfp++ = thiscoord[1] * inv_precision;
-                   *lfp++ = thiscoord[2] * inv_precision;
-               }
-           } else {
-               *lfp++ = thiscoord[0] * inv_precision;
-               *lfp++ = thiscoord[1] * inv_precision;
-               *lfp++ = thiscoord[2] * inv_precision;          
-           }
-           smallidx += is_smaller;
-           if (is_smaller < 0) {
-               small = smaller;
-               if (smallidx > FIRSTIDX) {
-                   smaller = magicints[smallidx - 1] /2;
-               } else {
-                   smaller = 0;
-               }
-           } else if (is_smaller > 0) {
-               smaller = small;
-               small = magicints[smallidx] / 2;
-           }
-           sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       }
-    }
-    return 1;
-}
-
-
-   
diff --git a/source/wham/src/xdrf.org/libxdrf.m4 b/source/wham/src/xdrf.org/libxdrf.m4
deleted file mode 100644 (file)
index 8704af2..0000000
+++ /dev/null
@@ -1,1234 +0,0 @@
-/*____________________________________________________________________________
- |
- | libxdrf - portable fortran interface to xdr. some xdr routines
- |          are C routines for compressed coordinates
- |
- | version 1.1
- |
- | This collection of routines is intended to write and read
- | data in a portable way to a file, so data written on one type
- | of machine can be read back on a different type.
- |
- | all fortran routines use an integer 'xdrid', which is an id to the
- | current xdr file, and is set by xdrfopen.
- | most routines have in integer 'ret' which is the return value.
- | The value of 'ret' is zero on failure, and most of the time one
- | on succes.
- |
- | There are three routines useful for C users:
- |  xdropen(), xdrclose(), xdr3dfcoord().
- | The first two replace xdrstdio_create and xdr_destroy, and *must* be
- | used when you plan to use xdr3dfcoord(). (they are also a bit
- | easier to interface). For writing data other than compressed coordinates 
- | you should use the standard C xdr routines (see xdr man page)
- |
- | xdrfopen(xdrid, filename, mode, ret)
- |     character *(*) filename
- |     character *(*) mode
- |
- |     this will open the file with the given filename (string)
- |     and the given mode, it returns an id in xdrid, which is
- |     to be used in all other calls to xdrf routines.
- |     mode is 'w' to create, or update an file, for all other
- |     values of mode the file is opened for reading
- |
- |     you need to call xdrfclose to flush the output and close
- |     the file.
- |     Note that you should not use xdrstdio_create, which comes with the
- |     standard xdr library
- |
- | xdrfclose(xdrid, ret)
- |     flush the data to the file, and closes the file;
- |     You should not use xdr_destroy (which comes standard with
- |     the xdr libraries.
- |
- | xdrfbool(xdrid, bp, ret)
- |     integer pb
- |
- |     This filter produces values of either 1 or 0    
- |
- | xdrfchar(xdrid, cp, ret)
- |     character cp
- |
- |     filter that translate between characters and their xdr representation
- |     Note that the characters in not compressed and occupies 4 bytes.
- |
- | xdrfdouble(xdrid, dp, ret)
- |     double dp
- |
- |     read/write a double.
- |
- | xdrffloat(xdrid, fp, ret)
- |     float fp
- |
- |     read/write a float.
- |
- | xdrfint(xdrid, ip, ret)
- |     integer ip
- |
- |     read/write integer.
- |
- | xdrflong(xdrid, lp, ret)
- |     integer lp
- |
- |     this routine has a possible portablility problem due to 64 bits longs.
- |
- | xdrfshort(xdrid, sp, ret)
- |     integer *2 sp
- |
- | xdrfstring(xdrid, sp, maxsize, ret)
- |     character *(*)
- |     integer maxsize
- |
- |     read/write a string, with maximum length given by maxsize
- |
- | xdrfwrapstring(xdris, sp, ret)
- |     character *(*)
- |
- |     read/write a string (it is the same as xdrfstring accept that it finds
- |     the stringlength itself.
- |
- | xdrfvector(xdrid, cp, size, xdrfproc, ret)
- |     character *(*)
- |     integer size
- |     external xdrfproc
- |
- |     read/write an array pointed to by cp, with number of elements
- |     defined by 'size'. the routine 'xdrfproc' is the name
- |     of one of the above routines to read/write data (like xdrfdouble)
- |     In contrast with the c-version you don't need to specify the
- |     byte size of an element.
- |     xdrfstring is not allowed here (it is in the c version)
- |     
- | xdrf3dfcoord(xdrid, fp, size, precision, ret)
- |     real (*) fp
- |     real precision
- |     integer size
- |
- |     this is *NOT* a standard xdr routine. I named it this way, because
- |     it invites people to use the other xdr routines.
- |     It is introduced to store specifically 3d coordinates of molecules
- |     (as found in molecular dynamics) and it writes it in a compressed way.
- |     It starts by multiplying all numbers by precision and
- |     rounding the result to integer. effectively converting
- |     all floating point numbers to fixed point.
- |     it uses an algorithm for compression that is optimized for
- |     molecular data, but could be used for other 3d coordinates
- |     as well. There is subtantial overhead involved, so call this
- |     routine only if you have a large number of coordinates to read/write
- |
- | ________________________________________________________________________
- |
- | Below are the routines to be used by C programmers. Use the 'normal'
- | xdr routines to write integers, floats, etc (see man xdr)   
- |
- | int xdropen(XDR *xdrs, const char *filename, const char *type)
- |     This will open the file with the given filename and the 
- |     given mode. You should pass it an allocated XDR struct
- |     in xdrs, to be used in all other calls to xdr routines.
- |     Mode is 'w' to create, or update an file, and for all 
- |     other values of mode the file is opened for reading. 
- |     You need to call xdrclose to flush the output and close
- |     the file.
- |
- |     Note that you should not use xdrstdio_create, which
- |     comes with the standard xdr library.
- |
- | int xdrclose(XDR *xdrs)
- |     Flush the data to the file, and close the file;
- |     You should not use xdr_destroy (which comes standard
- |     with the xdr libraries).
- |      
- | int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision)
- |     This is \fInot\fR a standard xdr routine. I named it this 
- |     way, because it invites people to use the other xdr 
- |     routines.
- |
- |     (c) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-*/     
-
-
-#include <limits.h>
-#include <malloc.h>
-#include <math.h>
-/* #include <rpc/rpc.h>
-#include <rpc/xdr.h> */
-#include "xdr.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include "xdrf.h"
-
-int ftocstr(char *, int, char *, int);
-int ctofstr(char *, int, char *);
-
-#define MAXID 20
-static FILE *xdrfiles[MAXID];
-static XDR *xdridptr[MAXID];
-static char xdrmodes[MAXID];
-static unsigned int cnt;
-
-typedef void (* FUNCTION(xdrfproc)) (int *, void *, int *);
-
-void
-FUNCTION(xdrfbool) ARGS(`xdrid, pb, ret')
-int *xdrid, *ret;
-int *pb;
-{
-       *ret = xdr_bool(xdridptr[*xdrid], (bool_t *) pb);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrfchar) ARGS(`xdrid, cp, ret')
-int *xdrid, *ret;
-char *cp;
-{
-       *ret = xdr_char(xdridptr[*xdrid], cp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfdouble) ARGS(`xdrid, dp, ret')
-int *xdrid, *ret;
-double *dp;
-{
-       *ret = xdr_double(xdridptr[*xdrid], dp);
-       cnt += sizeof(double);
-}
-
-void
-FUNCTION(xdrffloat) ARGS(`xdrid, fp, ret')
-int *xdrid, *ret;
-float *fp;
-{
-       *ret = xdr_float(xdridptr[*xdrid], fp);
-       cnt += sizeof(float);
-}
-
-void
-FUNCTION(xdrfint) ARGS(`xdrid, ip, ret')
-int *xdrid, *ret;
-int *ip;
-{
-       *ret = xdr_int(xdridptr[*xdrid], ip);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrflong) ARGS(`xdrid, lp, ret')
-int *xdrid, *ret;
-long *lp;
-{
-       *ret = xdr_long(xdridptr[*xdrid], lp);
-       cnt += sizeof(long);
-}
-
-void
-FUNCTION(xdrfshort) ARGS(`xdrid, sp, ret')
-int *xdrid, *ret;
-short *sp;
-{
-       *ret = xdr_short(xdridptr[*xdrid], sp);
-       cnt += sizeof(sp);
-}
-
-void
-FUNCTION(xdrfuchar) ARGS(`xdrid, ucp, ret')
-int *xdrid, *ret;
-char *ucp;
-{
-       *ret = xdr_u_char(xdridptr[*xdrid], ucp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfulong) ARGS(`xdrid, ulp, ret')
-int *xdrid, *ret;
-unsigned long *ulp;
-{
-       *ret = xdr_u_long(xdridptr[*xdrid], ulp);
-       cnt += sizeof(unsigned long);
-}
-
-void
-FUNCTION(xdrfushort) ARGS(`xdrid, usp, ret')
-int *xdrid, *ret;
-unsigned short *usp;
-{
-       *ret = xdr_u_short(xdridptr[*xdrid], usp);
-       cnt += sizeof(unsigned short);
-}
-
-void 
-FUNCTION(xdrf3dfcoord) ARGS(`xdrid, fp, size, precision, ret')
-int *xdrid, *ret;
-float *fp;
-int *size;
-float *precision;
-{
-       *ret = xdr3dfcoord(xdridptr[*xdrid], fp, size, precision);
-}
-
-void
-FUNCTION(xdrfstring) ARGS(`xdrid, STRING_ARG(sp), maxsize, ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-int *maxsize;
-{
-       char *tsp;
-
-       tsp = (char*) malloc(((STRING_LEN(sp)) + 1) * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, *maxsize+1, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int) *maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += *maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfwrapstring) ARGS(`xdrid,  STRING_ARG(sp), ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-{
-       char *tsp;
-       int maxsize;
-       maxsize = (STRING_LEN(sp)) + 1;
-       tsp = (char*) malloc(maxsize * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, maxsize, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int)maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfopaque) ARGS(`xdrid, cp, ccnt, ret')
-int *xdrid, *ret;
-caddr_t *cp;
-int *ccnt;
-{
-       *ret = xdr_opaque(xdridptr[*xdrid], (caddr_t)*cp, (u_int)*ccnt);
-       cnt += *ccnt;
-}
-
-void
-FUNCTION(xdrfsetpos) ARGS(`xdrid, pos, ret')
-int *xdrid, *ret;
-int *pos;
-{
-       *ret = xdr_setpos(xdridptr[*xdrid], (u_int) *pos);
-}
-
-void
-FUNCTION(xdrf) ARGS(`xdrid, pos')
-int *xdrid, *pos;
-{
-       *pos = xdr_getpos(xdridptr[*xdrid]);
-}
-
-void
-FUNCTION(xdrfvector) ARGS(`xdrid, cp, size, elproc, ret')
-int *xdrid, *ret;
-char *cp;
-int *size;
-FUNCTION(xdrfproc) elproc;
-{
-       int lcnt;
-       cnt = 0;
-       for (lcnt = 0; lcnt < *size; lcnt++) {
-               elproc(xdrid, (cp+cnt) , ret);
-       }
-}
-
-
-void
-FUNCTION(xdrfclose) ARGS(`xdrid, ret')
-int *xdrid;
-int *ret;
-{
-       *ret = xdrclose(xdridptr[*xdrid]);
-       cnt = 0;
-}
-
-void
-FUNCTION(xdrfopen) ARGS(`xdrid,  STRING_ARG(fp), STRING_ARG(mode), ret')
-int *xdrid;
-STRING_ARG_DECL(fp);
-STRING_ARG_DECL(mode);
-int *ret;
-{
-       char fname[512];
-       char fmode[3];
-
-       if (ftocstr(fname, sizeof(fname), STRING_PTR(fp), STRING_LEN(fp))) {
-               *ret = 0;
-       }
-       if (ftocstr(fmode, sizeof(fmode), STRING_PTR(mode),
-                       STRING_LEN(mode))) {
-               *ret = 0;
-       }
-
-       *xdrid = xdropen(NULL, fname, fmode);
-       if (*xdrid == 0)
-               *ret = 0;
-       else 
-               *ret = 1;       
-}
-
-/*___________________________________________________________________________
- |
- | what follows are the C routines for opening, closing xdr streams
- | and the routine to read/write compressed coordinates together
- | with some routines to assist in this task (those are marked
- | static and cannot be called from user programs)
-*/
-#define MAXABS INT_MAX-2
-
-#ifndef MIN
-#define MIN(x,y) ((x) < (y) ? (x):(y))
-#endif
-#ifndef MAX
-#define MAX(x,y) ((x) > (y) ? (x):(y))
-#endif
-#ifndef SQR
-#define SQR(x) ((x)*(x))
-#endif
-static int magicints[] = {
-    0, 0, 0, 0, 0, 0, 0, 0, 0,
-    8, 10, 12, 16, 20, 25, 32, 40, 50, 64,
-    80, 101, 128, 161, 203, 256, 322, 406, 512, 645,
-    812, 1024, 1290, 1625, 2048, 2580, 3250, 4096, 5060, 6501,
-    8192, 10321, 13003, 16384, 20642, 26007, 32768, 41285, 52015, 65536,
-    82570, 104031, 131072, 165140, 208063, 262144, 330280, 416127, 524287, 660561,
-    832255, 1048576, 1321122, 1664510, 2097152, 2642245, 3329021, 4194304, 5284491, 6658042,
-    8388607, 10568983, 13316085, 16777216 };
-
-#define FIRSTIDX 9
-/* note that magicints[FIRSTIDX-1] == 0 */
-#define LASTIDX (sizeof(magicints) / sizeof(*magicints))
-
-
-/*__________________________________________________________________________
- |
- | xdropen - open xdr file
- |
- | This versions differs from xdrstdio_create, because I need to know
- | the state of the file (read or write) so I can use xdr3dfcoord
- | in eigther read or write mode, and the file descriptor
- | so I can close the file (something xdr_destroy doesn't do).
- |
-*/
-
-int xdropen(XDR *xdrs, const char *filename, const char *type) {
-    static int init_done = 0;
-    enum xdr_op lmode;
-    const char *type1;
-    int xdrid;
-    
-    if (init_done == 0) {
-       for (xdrid = 1; xdrid < MAXID; xdrid++) {
-           xdridptr[xdrid] = NULL;
-       }
-       init_done = 1;
-    }
-    xdrid = 1;
-    while (xdrid < MAXID && xdridptr[xdrid] != NULL) {
-       xdrid++;
-    }
-    if (xdrid == MAXID) {
-       return 0;
-    }
-    if (*type == 'w' || *type == 'W') {
-           type = "w+";
-           type1 = "a+";
-           lmode = XDR_ENCODE;
-    } else {
-           type = "r";
-            type1 = "r";
-           lmode = XDR_DECODE;
-    }
-    xdrfiles[xdrid] = fopen(filename, type1);
-    if (xdrfiles[xdrid] == NULL) {
-       xdrs = NULL;
-       return 0;
-    }
-    xdrmodes[xdrid] = *type;
-    /* next test isn't usefull in the case of C language
-     * but is used for the Fortran interface
-     * (C users are expected to pass the address of an already allocated
-     * XDR staructure)
-     */
-    if (xdrs == NULL) {
-       xdridptr[xdrid] = (XDR *) malloc(sizeof(XDR));
-       xdrstdio_create(xdridptr[xdrid], xdrfiles[xdrid], lmode);
-    } else {
-       xdridptr[xdrid] = xdrs;
-       xdrstdio_create(xdrs, xdrfiles[xdrid], lmode);
-    }
-    return xdrid;
-}
-
-/*_________________________________________________________________________
- |
- | xdrclose - close a xdr file
- |
- | This will flush the xdr buffers, and destroy the xdr stream.
- | It also closes the associated file descriptor (this is *not*
- | done by xdr_destroy).
- |
-*/
-int xdrclose(XDR *xdrs) {
-    int xdrid;
-    
-    if (xdrs == NULL) {
-       fprintf(stderr, "xdrclose: passed a NULL pointer\n");
-       exit(1);
-    }
-    for (xdrid = 1; xdrid < MAXID; xdrid++) {
-       if (xdridptr[xdrid] == xdrs) {
-           
-           xdr_destroy(xdrs);
-           fclose(xdrfiles[xdrid]);
-           xdridptr[xdrid] = NULL;
-           return 1;
-       }
-    } 
-    fprintf(stderr, "xdrclose: no such open xdr file\n");
-    exit(1);
-    
-}
-
-/*____________________________________________________________________________
- |
- | sendbits - encode num into buf using the specified number of bits
- |
- | This routines appends the value of num to the bits already present in
- | the array buf. You need to give it the number of bits to use and you
- | better make sure that this number of bits is enough to hold the value
- | Also num must be positive.
- |
-*/
-
-static void sendbits(int buf[], int num_of_bits, int num) {
-    
-    unsigned int cnt, lastbyte;
-    int lastbits;
-    unsigned char * cbuf;
-    
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = (unsigned int) buf[0];
-    lastbits = buf[1];
-    lastbyte =(unsigned int) buf[2];
-    while (num_of_bits >= 8) {
-       lastbyte = (lastbyte << 8) | ((num >> (num_of_bits -8)) /* & 0xff*/);
-       cbuf[cnt++] = lastbyte >> lastbits;
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       lastbyte = (lastbyte << num_of_bits) | num;
-       lastbits += num_of_bits;
-       if (lastbits >= 8) {
-           lastbits -= 8;
-           cbuf[cnt++] = lastbyte >> lastbits;
-       }
-    }
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    if (lastbits>0) {
-       cbuf[cnt] = lastbyte << (8 - lastbits);
-    }
-}
-
-/*_________________________________________________________________________
- |
- | sizeofint - calculate bitsize of an integer
- |
- | return the number of bits needed to store an integer with given max size
- |
-*/
-
-static int sizeofint(const int size) {
-    unsigned int num = 1;
-    int num_of_bits = 0;
-    
-    while (size >= num && num_of_bits < 32) {
-       num_of_bits++;
-       num <<= 1;
-    }
-    return num_of_bits;
-}
-
-/*___________________________________________________________________________
- |
- | sizeofints - calculate 'bitsize' of compressed ints
- |
- | given the number of small unsigned integers and the maximum value
- | return the number of bits needed to read or write them with the
- | routines receiveints and sendints. You need this parameter when
- | calling these routines. Note that for many calls I can use
- | the variable 'smallidx' which is exactly the number of bits, and
- | So I don't need to call 'sizeofints for those calls.
-*/
-
-static int sizeofints( const int num_of_ints, unsigned int sizes[]) {
-    int i, num;
-    unsigned int num_of_bytes, num_of_bits, bytes[32], bytecnt, tmp;
-    num_of_bytes = 1;
-    bytes[0] = 1;
-    num_of_bits = 0;
-    for (i=0; i < num_of_ints; i++) {  
-       tmp = 0;
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    num = 1;
-    num_of_bytes--;
-    while (bytes[num_of_bytes] >= num) {
-       num_of_bits++;
-       num *= 2;
-    }
-    return num_of_bits + num_of_bytes * 8;
-
-}
-    
-/*____________________________________________________________________________
- |
- | sendints - send a small set of small integers in compressed format
- |
- | this routine is used internally by xdr3dfcoord, to send a set of
- | small integers to the buffer. 
- | Multiplication with fixed (specified maximum ) sizes is used to get
- | to one big, multibyte integer. Allthough the routine could be
- | modified to handle sizes bigger than 16777216, or more than just
- | a few integers, this is not done, because the gain in compression
- | isn't worth the effort. Note that overflowing the multiplication
- | or the byte buffer (32 bytes) is unchecked and causes bad results.
- |
- */
-static void sendints(int buf[], const int num_of_ints, const int num_of_bits,
-       unsigned int sizes[], unsigned int nums[]) {
-
-    int i;
-    unsigned int bytes[32], num_of_bytes, bytecnt, tmp;
-
-    tmp = nums[0];
-    num_of_bytes = 0;
-    do {
-       bytes[num_of_bytes++] = tmp & 0xff;
-       tmp >>= 8;
-    } while (tmp != 0);
-
-    for (i = 1; i < num_of_ints; i++) {
-       if (nums[i] >= sizes[i]) {
-           fprintf(stderr,"major breakdown in sendints num %d doesn't "
-                   "match size %d\n", nums[i], sizes[i]);
-           exit(1);
-       }
-       /* use one step multiply */    
-       tmp = nums[i];
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    if (num_of_bits >= num_of_bytes * 8) {
-       for (i = 0; i < num_of_bytes; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits - num_of_bytes * 8, 0);
-    } else {
-       for (i = 0; i < num_of_bytes-1; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits- (num_of_bytes -1) * 8, bytes[i]);
-    }
-}
-
-
-/*___________________________________________________________________________
- |
- | receivebits - decode number from buf using specified number of bits
- | 
- | extract the number of bits from the array buf and construct an integer
- | from it. Return that value.
- |
-*/
-
-static int receivebits(int buf[], int num_of_bits) {
-
-    int cnt, num; 
-    unsigned int lastbits, lastbyte;
-    unsigned char * cbuf;
-    int mask = (1 << num_of_bits) -1;
-
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = buf[0];
-    lastbits = (unsigned int) buf[1];
-    lastbyte = (unsigned int) buf[2];
-    
-    num = 0;
-    while (num_of_bits >= 8) {
-       lastbyte = ( lastbyte << 8 ) | cbuf[cnt++];
-       num |=  (lastbyte >> lastbits) << (num_of_bits - 8);
-       num_of_bits -=8;
-    }
-    if (num_of_bits > 0) {
-       if (lastbits < num_of_bits) {
-           lastbits += 8;
-           lastbyte = (lastbyte << 8) | cbuf[cnt++];
-       }
-       lastbits -= num_of_bits;
-       num |= (lastbyte >> lastbits) & ((1 << num_of_bits) -1);
-    }
-    num &= mask;
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    return num; 
-}
-
-/*____________________________________________________________________________
- |
- | receiveints - decode 'small' integers from the buf array
- |
- | this routine is the inverse from sendints() and decodes the small integers
- | written to buf by calculating the remainder and doing divisions with
- | the given sizes[]. You need to specify the total number of bits to be
- | used from buf in num_of_bits.
- |
-*/
-
-static void receiveints(int buf[], const int num_of_ints, int num_of_bits,
-       unsigned int sizes[], int nums[]) {
-    int bytes[32];
-    int i, j, num_of_bytes, p, num;
-    
-    bytes[1] = bytes[2] = bytes[3] = 0;
-    num_of_bytes = 0;
-    while (num_of_bits > 8) {
-       bytes[num_of_bytes++] = receivebits(buf, 8);
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       bytes[num_of_bytes++] = receivebits(buf, num_of_bits);
-    }
-    for (i = num_of_ints-1; i > 0; i--) {
-       num = 0;
-       for (j = num_of_bytes-1; j >=0; j--) {
-           num = (num << 8) | bytes[j];
-           p = num / sizes[i];
-           bytes[j] = p;
-           num = num - p * sizes[i];
-       }
-       nums[i] = num;
-    }
-    nums[0] = bytes[0] | (bytes[1] << 8) | (bytes[2] << 16) | (bytes[3] << 24);
-}
-    
-/*____________________________________________________________________________
- |
- | xdr3dfcoord - read or write compressed 3d coordinates to xdr file.
- |
- | this routine reads or writes (depending on how you opened the file with
- | xdropen() ) a large number of 3d coordinates (stored in *fp).
- | The number of coordinates triplets to write is given by *size. On
- | read this number may be zero, in which case it reads as many as were written
- | or it may specify the number if triplets to read (which should match the
- | number written).
- | Compression is achieved by first converting all floating numbers to integer
- | using multiplication by *precision and rounding to the nearest integer.
- | Then the minimum and maximum value are calculated to determine the range.
- | The limited range of integers so found, is used to compress the coordinates.
- | In addition the differences between succesive coordinates is calculated.
- | If the difference happens to be 'small' then only the difference is saved,
- | compressing the data even more. The notion of 'small' is changed dynamically
- | and is enlarged or reduced whenever needed or possible.
- | Extra compression is achieved in the case of GROMOS and coordinates of
- | water molecules. GROMOS first writes out the Oxygen position, followed by
- | the two hydrogens. In order to make the differences smaller (and thereby
- | compression the data better) the order is changed into first one hydrogen
- | then the oxygen, followed by the other hydrogen. This is rather special, but
- | it shouldn't harm in the general case.
- |
- */
-int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) {
-    
-
-    static int *ip = NULL;
-    static int oldsize;
-    static int *buf;
-
-    int minint[3], maxint[3], mindiff, *lip, diff;
-    int lint1, lint2, lint3, oldlint1, oldlint2, oldlint3, smallidx;
-    int minidx, maxidx;
-    unsigned sizeint[3], sizesmall[3], bitsizeint[3], size3, *luip;
-    int flag, k;
-    int small, smaller, larger, i, is_small, is_smaller, run, prevrun;
-    float *lfp, lf;
-    int tmp, *thiscoord,  prevcoord[3];
-    unsigned int tmpcoord[30];
-
-    int bufsize, xdrid, lsize;
-    unsigned int bitsize;
-    float inv_precision;
-    int errval = 1;
-
-    /* find out if xdrs is opened for reading or for writing */
-    xdrid = 0;
-    while (xdridptr[xdrid] != xdrs) {
-       xdrid++;
-       if (xdrid >= MAXID) {
-           fprintf(stderr, "xdr error. no open xdr stream\n");
-           exit (1);
-       }
-    }
-    if (xdrmodes[xdrid] == 'w') {
-
-       /* xdrs is open for writing */
-
-       if (xdr_int(xdrs, size) == 0)
-           return 0;
-       size3 = *size * 3;
-       /* when the number of coordinates is small, don't try to compress; just
-        * write them as floats using xdr_vector
-        */
-       if (*size <= 9 ) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       /* buf[0-2] are special and do not contain actual data */
-       buf[0] = buf[1] = buf[2] = 0;
-       minint[0] = minint[1] = minint[2] = INT_MAX;
-       maxint[0] = maxint[1] = maxint[2] = INT_MIN;
-       prevrun = -1;
-       lfp = fp;
-       lip = ip;
-       mindiff = INT_MAX;
-       oldlint1 = oldlint2 = oldlint3 = 0;
-       while(lfp < fp + size3 ) {
-           /* find nearest integer */
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint1 = lf;
-           if (lint1 < minint[0]) minint[0] = lint1;
-           if (lint1 > maxint[0]) maxint[0] = lint1;
-           *lip++ = lint1;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint2 = lf;
-           if (lint2 < minint[1]) minint[1] = lint2;
-           if (lint2 > maxint[1]) maxint[1] = lint2;
-           *lip++ = lint2;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint3 = lf;
-           if (lint3 < minint[2]) minint[2] = lint3;
-           if (lint3 > maxint[2]) maxint[2] = lint3;
-           *lip++ = lint3;
-           lfp++;
-           diff = abs(oldlint1-lint1)+abs(oldlint2-lint2)+abs(oldlint3-lint3);
-           if (diff < mindiff && lfp > fp + 3)
-               mindiff = diff;
-           oldlint1 = lint1;
-           oldlint2 = lint2;
-           oldlint3 = lint3;
-       }
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-       
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-       
-       if ((float)maxint[0] - (float)minint[0] >= MAXABS ||
-               (float)maxint[1] - (float)minint[1] >= MAXABS ||
-               (float)maxint[2] - (float)minint[2] >= MAXABS) {
-           /* turning value in unsigned by subtracting minint
-            * would cause overflow
-            */
-           errval = 0;
-       }
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       lip = ip;
-       luip = (unsigned int *) ip;
-       smallidx = FIRSTIDX;
-       while (smallidx < LASTIDX && magicints[smallidx] < mindiff) {
-           smallidx++;
-       }
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-       larger = magicints[maxidx] / 2;
-       i = 0;
-       while (i < *size) {
-           is_small = 0;
-           thiscoord = (int *)(luip) + i * 3;
-           if (smallidx < maxidx && i >= 1 &&
-                   abs(thiscoord[0] - prevcoord[0]) < larger &&
-                   abs(thiscoord[1] - prevcoord[1]) < larger &&
-                   abs(thiscoord[2] - prevcoord[2]) < larger) {
-               is_smaller = 1;
-           } else if (smallidx > minidx) {
-               is_smaller = -1;
-           } else {
-               is_smaller = 0;
-           }
-           if (i + 1 < *size) {
-               if (abs(thiscoord[0] - thiscoord[3]) < small &&
-                       abs(thiscoord[1] - thiscoord[4]) < small &&
-                       abs(thiscoord[2] - thiscoord[5]) < small) {
-                   /* interchange first with second atom for better
-                    * compression of water molecules
-                    */
-                   tmp = thiscoord[0]; thiscoord[0] = thiscoord[3];
-                       thiscoord[3] = tmp;
-                   tmp = thiscoord[1]; thiscoord[1] = thiscoord[4];
-                       thiscoord[4] = tmp;
-                   tmp = thiscoord[2]; thiscoord[2] = thiscoord[5];
-                       thiscoord[5] = tmp;
-                   is_small = 1;
-               }
-    
-           }
-           tmpcoord[0] = thiscoord[0] - minint[0];
-           tmpcoord[1] = thiscoord[1] - minint[1];
-           tmpcoord[2] = thiscoord[2] - minint[2];
-           if (bitsize == 0) {
-               sendbits(buf, bitsizeint[0], tmpcoord[0]);
-               sendbits(buf, bitsizeint[1], tmpcoord[1]);
-               sendbits(buf, bitsizeint[2], tmpcoord[2]);
-           } else {
-               sendints(buf, 3, bitsize, sizeint, tmpcoord);
-           }
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           thiscoord = thiscoord + 3;
-           i++;
-           
-           run = 0;
-           if (is_small == 0 && is_smaller == -1)
-               is_smaller = 0;
-           while (is_small && run < 8*3) {
-               if (is_smaller == -1 && (
-                       SQR(thiscoord[0] - prevcoord[0]) +
-                       SQR(thiscoord[1] - prevcoord[1]) +
-                       SQR(thiscoord[2] - prevcoord[2]) >= smaller * smaller)) {
-                   is_smaller = 0;
-               }
-
-               tmpcoord[run++] = thiscoord[0] - prevcoord[0] + small;
-               tmpcoord[run++] = thiscoord[1] - prevcoord[1] + small;
-               tmpcoord[run++] = thiscoord[2] - prevcoord[2] + small;
-               
-               prevcoord[0] = thiscoord[0];
-               prevcoord[1] = thiscoord[1];
-               prevcoord[2] = thiscoord[2];
-
-               i++;
-               thiscoord = thiscoord + 3;
-               is_small = 0;
-               if (i < *size &&
-                       abs(thiscoord[0] - prevcoord[0]) < small &&
-                       abs(thiscoord[1] - prevcoord[1]) < small &&
-                       abs(thiscoord[2] - prevcoord[2]) < small) {
-                   is_small = 1;
-               }
-           }
-           if (run != prevrun || is_smaller != 0) {
-               prevrun = run;
-               sendbits(buf, 1, 1); /* flag the change in run-length */
-               sendbits(buf, 5, run+is_smaller+1);
-           } else {
-               sendbits(buf, 1, 0); /* flag the fact that runlength did not change */
-           }
-           for (k=0; k < run; k+=3) {
-               sendints(buf, 3, smallidx, sizesmall, &tmpcoord[k]);    
-           }
-           if (is_smaller != 0) {
-               smallidx += is_smaller;
-               if (is_smaller < 0) {
-                   small = smaller;
-                   smaller = magicints[smallidx-1] / 2;
-               } else {
-                   smaller = small;
-                   small = magicints[smallidx] / 2;
-               }
-               sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-           }
-       }
-       if (buf[1] != 0) buf[0]++;;
-       xdr_int(xdrs, &(buf[0])); /* buf[0] holds the length in bytes */
-       return errval * (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]));
-    } else {
-       
-       /* xdrs is open for reading */
-       
-       if (xdr_int(xdrs, &lsize) == 0) 
-           return 0;
-       if (*size != 0 && lsize != *size) {
-           fprintf(stderr, "wrong number of coordinates in xdr3dfcoor; "
-                   "%d arg vs %d in file", *size, lsize);
-       }
-       *size = lsize;
-       size3 = *size * 3;
-       if (*size <= 9) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-               
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       larger = magicints[maxidx];
-
-       /* buf[0] holds the length in bytes */
-
-       if (xdr_int(xdrs, &(buf[0])) == 0)
-           return 0;
-       if (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]) == 0)
-           return 0;
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       lfp = fp;
-       inv_precision = 1.0 / * precision;
-       run = 0;
-       i = 0;
-       lip = ip;
-       while ( i < lsize ) {
-           thiscoord = (int *)(lip) + i * 3;
-
-           if (bitsize == 0) {
-               thiscoord[0] = receivebits(buf, bitsizeint[0]);
-               thiscoord[1] = receivebits(buf, bitsizeint[1]);
-               thiscoord[2] = receivebits(buf, bitsizeint[2]);
-           } else {
-               receiveints(buf, 3, bitsize, sizeint, thiscoord);
-           }
-           
-           i++;
-           thiscoord[0] += minint[0];
-           thiscoord[1] += minint[1];
-           thiscoord[2] += minint[2];
-           
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           
-          
-           flag = receivebits(buf, 1);
-           is_smaller = 0;
-           if (flag == 1) {
-               run = receivebits(buf, 5);
-               is_smaller = run % 3;
-               run -= is_smaller;
-               is_smaller--;
-           }
-           if (run > 0) {
-               thiscoord += 3;
-               for (k = 0; k < run; k+=3) {
-                   receiveints(buf, 3, smallidx, sizesmall, thiscoord);
-                   i++;
-                   thiscoord[0] += prevcoord[0] - small;
-                   thiscoord[1] += prevcoord[1] - small;
-                   thiscoord[2] += prevcoord[2] - small;
-                   if (k == 0) {
-                       /* interchange first with second atom for better
-                        * compression of water molecules
-                        */
-                       tmp = thiscoord[0]; thiscoord[0] = prevcoord[0];
-                               prevcoord[0] = tmp;
-                       tmp = thiscoord[1]; thiscoord[1] = prevcoord[1];
-                               prevcoord[1] = tmp;
-                       tmp = thiscoord[2]; thiscoord[2] = prevcoord[2];
-                               prevcoord[2] = tmp;
-                       *lfp++ = prevcoord[0] * inv_precision;
-                       *lfp++ = prevcoord[1] * inv_precision;
-                       *lfp++ = prevcoord[2] * inv_precision;
-                   } else {
-                       prevcoord[0] = thiscoord[0];
-                       prevcoord[1] = thiscoord[1];
-                       prevcoord[2] = thiscoord[2];
-                   }
-                   *lfp++ = thiscoord[0] * inv_precision;
-                   *lfp++ = thiscoord[1] * inv_precision;
-                   *lfp++ = thiscoord[2] * inv_precision;
-               }
-           } else {
-               *lfp++ = thiscoord[0] * inv_precision;
-               *lfp++ = thiscoord[1] * inv_precision;
-               *lfp++ = thiscoord[2] * inv_precision;          
-           }
-           smallidx += is_smaller;
-           if (is_smaller < 0) {
-               small = smaller;
-               if (smallidx > FIRSTIDX) {
-                   smaller = magicints[smallidx - 1] /2;
-               } else {
-                   smaller = 0;
-               }
-           } else if (is_smaller > 0) {
-               smaller = small;
-               small = magicints[smallidx] / 2;
-           }
-           sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       }
-    }
-    return 1;
-}
-
-
-   
diff --git a/source/wham/src/xdrf.org/libxdrf.m4.org b/source/wham/src/xdrf.org/libxdrf.m4.org
deleted file mode 100644 (file)
index b14b374..0000000
+++ /dev/null
@@ -1,1230 +0,0 @@
-/*____________________________________________________________________________
- |
- | libxdrf - portable fortran interface to xdr. some xdr routines
- |          are C routines for compressed coordinates
- |
- | version 1.1
- |
- | This collection of routines is intended to write and read
- | data in a portable way to a file, so data written on one type
- | of machine can be read back on a different type.
- |
- | all fortran routines use an integer 'xdrid', which is an id to the
- | current xdr file, and is set by xdrfopen.
- | most routines have in integer 'ret' which is the return value.
- | The value of 'ret' is zero on failure, and most of the time one
- | on succes.
- |
- | There are three routines useful for C users:
- |  xdropen(), xdrclose(), xdr3dfcoord().
- | The first two replace xdrstdio_create and xdr_destroy, and *must* be
- | used when you plan to use xdr3dfcoord(). (they are also a bit
- | easier to interface). For writing data other than compressed coordinates 
- | you should use the standard C xdr routines (see xdr man page)
- |
- | xdrfopen(xdrid, filename, mode, ret)
- |     character *(*) filename
- |     character *(*) mode
- |
- |     this will open the file with the given filename (string)
- |     and the given mode, it returns an id in xdrid, which is
- |     to be used in all other calls to xdrf routines.
- |     mode is 'w' to create, or update an file, for all other
- |     values of mode the file is opened for reading
- |
- |     you need to call xdrfclose to flush the output and close
- |     the file.
- |     Note that you should not use xdrstdio_create, which comes with the
- |     standard xdr library
- |
- | xdrfclose(xdrid, ret)
- |     flush the data to the file, and closes the file;
- |     You should not use xdr_destroy (which comes standard with
- |     the xdr libraries.
- |
- | xdrfbool(xdrid, bp, ret)
- |     integer pb
- |
- |     This filter produces values of either 1 or 0    
- |
- | xdrfchar(xdrid, cp, ret)
- |     character cp
- |
- |     filter that translate between characters and their xdr representation
- |     Note that the characters in not compressed and occupies 4 bytes.
- |
- | xdrfdouble(xdrid, dp, ret)
- |     double dp
- |
- |     read/write a double.
- |
- | xdrffloat(xdrid, fp, ret)
- |     float fp
- |
- |     read/write a float.
- |
- | xdrfint(xdrid, ip, ret)
- |     integer ip
- |
- |     read/write integer.
- |
- | xdrflong(xdrid, lp, ret)
- |     integer lp
- |
- |     this routine has a possible portablility problem due to 64 bits longs.
- |
- | xdrfshort(xdrid, sp, ret)
- |     integer *2 sp
- |
- | xdrfstring(xdrid, sp, maxsize, ret)
- |     character *(*)
- |     integer maxsize
- |
- |     read/write a string, with maximum length given by maxsize
- |
- | xdrfwrapstring(xdris, sp, ret)
- |     character *(*)
- |
- |     read/write a string (it is the same as xdrfstring accept that it finds
- |     the stringlength itself.
- |
- | xdrfvector(xdrid, cp, size, xdrfproc, ret)
- |     character *(*)
- |     integer size
- |     external xdrfproc
- |
- |     read/write an array pointed to by cp, with number of elements
- |     defined by 'size'. the routine 'xdrfproc' is the name
- |     of one of the above routines to read/write data (like xdrfdouble)
- |     In contrast with the c-version you don't need to specify the
- |     byte size of an element.
- |     xdrfstring is not allowed here (it is in the c version)
- |     
- | xdrf3dfcoord(xdrid, fp, size, precision, ret)
- |     real (*) fp
- |     real precision
- |     integer size
- |
- |     this is *NOT* a standard xdr routine. I named it this way, because
- |     it invites people to use the other xdr routines.
- |     It is introduced to store specifically 3d coordinates of molecules
- |     (as found in molecular dynamics) and it writes it in a compressed way.
- |     It starts by multiplying all numbers by precision and
- |     rounding the result to integer. effectively converting
- |     all floating point numbers to fixed point.
- |     it uses an algorithm for compression that is optimized for
- |     molecular data, but could be used for other 3d coordinates
- |     as well. There is subtantial overhead involved, so call this
- |     routine only if you have a large number of coordinates to read/write
- |
- | ________________________________________________________________________
- |
- | Below are the routines to be used by C programmers. Use the 'normal'
- | xdr routines to write integers, floats, etc (see man xdr)   
- |
- | int xdropen(XDR *xdrs, const char *filename, const char *type)
- |     This will open the file with the given filename and the 
- |     given mode. You should pass it an allocated XDR struct
- |     in xdrs, to be used in all other calls to xdr routines.
- |     Mode is 'w' to create, or update an file, and for all 
- |     other values of mode the file is opened for reading. 
- |     You need to call xdrclose to flush the output and close
- |     the file.
- |
- |     Note that you should not use xdrstdio_create, which
- |     comes with the standard xdr library.
- |
- | int xdrclose(XDR *xdrs)
- |     Flush the data to the file, and close the file;
- |     You should not use xdr_destroy (which comes standard
- |     with the xdr libraries).
- |      
- | int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision)
- |     This is \fInot\fR a standard xdr routine. I named it this 
- |     way, because it invites people to use the other xdr 
- |     routines.
- |
- |     (c) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-*/     
-
-
-#include <limits.h>
-#include <malloc.h>
-#include <math.h>
-#include <rpc/rpc.h>
-#include <rpc/xdr.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include "xdrf.h"
-
-int ftocstr(char *, int, char *, int);
-int ctofstr(char *, int, char *);
-
-#define MAXID 20
-static FILE *xdrfiles[MAXID];
-static XDR *xdridptr[MAXID];
-static char xdrmodes[MAXID];
-static unsigned int cnt;
-
-typedef void (* FUNCTION(xdrfproc)) (int *, void *, int *);
-
-void
-FUNCTION(xdrfbool) ARGS(`xdrid, pb, ret')
-int *xdrid, *ret;
-int *pb;
-{
-       *ret = xdr_bool(xdridptr[*xdrid], (bool_t *) pb);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrfchar) ARGS(`xdrid, cp, ret')
-int *xdrid, *ret;
-char *cp;
-{
-       *ret = xdr_char(xdridptr[*xdrid], cp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfdouble) ARGS(`xdrid, dp, ret')
-int *xdrid, *ret;
-double *dp;
-{
-       *ret = xdr_double(xdridptr[*xdrid], dp);
-       cnt += sizeof(double);
-}
-
-void
-FUNCTION(xdrffloat) ARGS(`xdrid, fp, ret')
-int *xdrid, *ret;
-float *fp;
-{
-       *ret = xdr_float(xdridptr[*xdrid], fp);
-       cnt += sizeof(float);
-}
-
-void
-FUNCTION(xdrfint) ARGS(`xdrid, ip, ret')
-int *xdrid, *ret;
-int *ip;
-{
-       *ret = xdr_int(xdridptr[*xdrid], ip);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrflong) ARGS(`xdrid, lp, ret')
-int *xdrid, *ret;
-long *lp;
-{
-       *ret = xdr_long(xdridptr[*xdrid], lp);
-       cnt += sizeof(long);
-}
-
-void
-FUNCTION(xdrfshort) ARGS(`xdrid, sp, ret')
-int *xdrid, *ret;
-short *sp;
-{
-       *ret = xdr_short(xdridptr[*xdrid], sp);
-       cnt += sizeof(sp);
-}
-
-void
-FUNCTION(xdrfuchar) ARGS(`xdrid, ucp, ret')
-int *xdrid, *ret;
-char *ucp;
-{
-       *ret = xdr_u_char(xdridptr[*xdrid], ucp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfulong) ARGS(`xdrid, ulp, ret')
-int *xdrid, *ret;
-unsigned long *ulp;
-{
-       *ret = xdr_u_long(xdridptr[*xdrid], ulp);
-       cnt += sizeof(unsigned long);
-}
-
-void
-FUNCTION(xdrfushort) ARGS(`xdrid, usp, ret')
-int *xdrid, *ret;
-unsigned short *usp;
-{
-       *ret = xdr_u_short(xdridptr[*xdrid], usp);
-       cnt += sizeof(unsigned short);
-}
-
-void 
-FUNCTION(xdrf3dfcoord) ARGS(`xdrid, fp, size, precision, ret')
-int *xdrid, *ret;
-float *fp;
-int *size;
-float *precision;
-{
-       *ret = xdr3dfcoord(xdridptr[*xdrid], fp, size, precision);
-}
-
-void
-FUNCTION(xdrfstring) ARGS(`xdrid, STRING_ARG(sp), maxsize, ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-int *maxsize;
-{
-       char *tsp;
-
-       tsp = (char*) malloc(((STRING_LEN(sp)) + 1) * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, *maxsize+1, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int) *maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += *maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfwrapstring) ARGS(`xdrid,  STRING_ARG(sp), ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-{
-       char *tsp;
-       int maxsize;
-       maxsize = (STRING_LEN(sp)) + 1;
-       tsp = (char*) malloc(maxsize * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, maxsize, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int)maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfopaque) ARGS(`xdrid, cp, ccnt, ret')
-int *xdrid, *ret;
-caddr_t *cp;
-int *ccnt;
-{
-       *ret = xdr_opaque(xdridptr[*xdrid], (caddr_t)*cp, (u_int)*ccnt);
-       cnt += *ccnt;
-}
-
-void
-FUNCTION(xdrfsetpos) ARGS(`xdrid, pos, ret')
-int *xdrid, *ret;
-int *pos;
-{
-       *ret = xdr_setpos(xdridptr[*xdrid], (u_int) *pos);
-}
-
-void
-FUNCTION(xdrf) ARGS(`xdrid, pos')
-int *xdrid, *pos;
-{
-       *pos = xdr_getpos(xdridptr[*xdrid]);
-}
-
-void
-FUNCTION(xdrfvector) ARGS(`xdrid, cp, size, elproc, ret')
-int *xdrid, *ret;
-char *cp;
-int *size;
-FUNCTION(xdrfproc) elproc;
-{
-       int lcnt;
-       cnt = 0;
-       for (lcnt = 0; lcnt < *size; lcnt++) {
-               elproc(xdrid, (cp+cnt) , ret);
-       }
-}
-
-
-void
-FUNCTION(xdrfclose) ARGS(`xdrid, ret')
-int *xdrid;
-int *ret;
-{
-       *ret = xdrclose(xdridptr[*xdrid]);
-       cnt = 0;
-}
-
-void
-FUNCTION(xdrfopen) ARGS(`xdrid,  STRING_ARG(fp), STRING_ARG(mode), ret')
-int *xdrid;
-STRING_ARG_DECL(fp);
-STRING_ARG_DECL(mode);
-int *ret;
-{
-       char fname[512];
-       char fmode[3];
-
-       if (ftocstr(fname, sizeof(fname), STRING_PTR(fp), STRING_LEN(fp))) {
-               *ret = 0;
-       }
-       if (ftocstr(fmode, sizeof(fmode), STRING_PTR(mode),
-                       STRING_LEN(mode))) {
-               *ret = 0;
-       }
-
-       *xdrid = xdropen(NULL, fname, fmode);
-       if (*xdrid == 0)
-               *ret = 0;
-       else 
-               *ret = 1;       
-}
-
-/*___________________________________________________________________________
- |
- | what follows are the C routines for opening, closing xdr streams
- | and the routine to read/write compressed coordinates together
- | with some routines to assist in this task (those are marked
- | static and cannot be called from user programs)
-*/
-#define MAXABS INT_MAX-2
-
-#ifndef MIN
-#define MIN(x,y) ((x) < (y) ? (x):(y))
-#endif
-#ifndef MAX
-#define MAX(x,y) ((x) > (y) ? (x):(y))
-#endif
-#ifndef SQR
-#define SQR(x) ((x)*(x))
-#endif
-static int magicints[] = {
-    0, 0, 0, 0, 0, 0, 0, 0, 0,
-    8, 10, 12, 16, 20, 25, 32, 40, 50, 64,
-    80, 101, 128, 161, 203, 256, 322, 406, 512, 645,
-    812, 1024, 1290, 1625, 2048, 2580, 3250, 4096, 5060, 6501,
-    8192, 10321, 13003, 16384, 20642, 26007, 32768, 41285, 52015, 65536,
-    82570, 104031, 131072, 165140, 208063, 262144, 330280, 416127, 524287, 660561,
-    832255, 1048576, 1321122, 1664510, 2097152, 2642245, 3329021, 4194304, 5284491, 6658042,
-    8388607, 10568983, 13316085, 16777216 };
-
-#define FIRSTIDX 9
-/* note that magicints[FIRSTIDX-1] == 0 */
-#define LASTIDX (sizeof(magicints) / sizeof(*magicints))
-
-
-/*__________________________________________________________________________
- |
- | xdropen - open xdr file
- |
- | This versions differs from xdrstdio_create, because I need to know
- | the state of the file (read or write) so I can use xdr3dfcoord
- | in eigther read or write mode, and the file descriptor
- | so I can close the file (something xdr_destroy doesn't do).
- |
-*/
-
-int xdropen(XDR *xdrs, const char *filename, const char *type) {
-    static int init_done = 0;
-    enum xdr_op lmode;
-    int xdrid;
-    
-    if (init_done == 0) {
-       for (xdrid = 1; xdrid < MAXID; xdrid++) {
-           xdridptr[xdrid] = NULL;
-       }
-       init_done = 1;
-    }
-    xdrid = 1;
-    while (xdrid < MAXID && xdridptr[xdrid] != NULL) {
-       xdrid++;
-    }
-    if (xdrid == MAXID) {
-       return 0;
-    }
-    if (*type == 'w' || *type == 'W') {
-           type = "w+";
-           lmode = XDR_ENCODE;
-    } else {
-           type = "r";
-           lmode = XDR_DECODE;
-    }
-    xdrfiles[xdrid] = fopen(filename, type);
-    if (xdrfiles[xdrid] == NULL) {
-       xdrs = NULL;
-       return 0;
-    }
-    xdrmodes[xdrid] = *type;
-    /* next test isn't usefull in the case of C language
-     * but is used for the Fortran interface
-     * (C users are expected to pass the address of an already allocated
-     * XDR staructure)
-     */
-    if (xdrs == NULL) {
-       xdridptr[xdrid] = (XDR *) malloc(sizeof(XDR));
-       xdrstdio_create(xdridptr[xdrid], xdrfiles[xdrid], lmode);
-    } else {
-       xdridptr[xdrid] = xdrs;
-       xdrstdio_create(xdrs, xdrfiles[xdrid], lmode);
-    }
-    return xdrid;
-}
-
-/*_________________________________________________________________________
- |
- | xdrclose - close a xdr file
- |
- | This will flush the xdr buffers, and destroy the xdr stream.
- | It also closes the associated file descriptor (this is *not*
- | done by xdr_destroy).
- |
-*/
-int xdrclose(XDR *xdrs) {
-    int xdrid;
-    
-    if (xdrs == NULL) {
-       fprintf(stderr, "xdrclose: passed a NULL pointer\n");
-       exit(1);
-    }
-    for (xdrid = 1; xdrid < MAXID; xdrid++) {
-       if (xdridptr[xdrid] == xdrs) {
-           
-           xdr_destroy(xdrs);
-           fclose(xdrfiles[xdrid]);
-           xdridptr[xdrid] = NULL;
-           return 1;
-       }
-    } 
-    fprintf(stderr, "xdrclose: no such open xdr file\n");
-    exit(1);
-    
-}
-
-/*____________________________________________________________________________
- |
- | sendbits - encode num into buf using the specified number of bits
- |
- | This routines appends the value of num to the bits already present in
- | the array buf. You need to give it the number of bits to use and you
- | better make sure that this number of bits is enough to hold the value
- | Also num must be positive.
- |
-*/
-
-static void sendbits(int buf[], int num_of_bits, int num) {
-    
-    unsigned int cnt, lastbyte;
-    int lastbits;
-    unsigned char * cbuf;
-    
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = (unsigned int) buf[0];
-    lastbits = buf[1];
-    lastbyte =(unsigned int) buf[2];
-    while (num_of_bits >= 8) {
-       lastbyte = (lastbyte << 8) | ((num >> (num_of_bits -8)) /* & 0xff*/);
-       cbuf[cnt++] = lastbyte >> lastbits;
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       lastbyte = (lastbyte << num_of_bits) | num;
-       lastbits += num_of_bits;
-       if (lastbits >= 8) {
-           lastbits -= 8;
-           cbuf[cnt++] = lastbyte >> lastbits;
-       }
-    }
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    if (lastbits>0) {
-       cbuf[cnt] = lastbyte << (8 - lastbits);
-    }
-}
-
-/*_________________________________________________________________________
- |
- | sizeofint - calculate bitsize of an integer
- |
- | return the number of bits needed to store an integer with given max size
- |
-*/
-
-static int sizeofint(const int size) {
-    unsigned int num = 1;
-    int num_of_bits = 0;
-    
-    while (size >= num && num_of_bits < 32) {
-       num_of_bits++;
-       num <<= 1;
-    }
-    return num_of_bits;
-}
-
-/*___________________________________________________________________________
- |
- | sizeofints - calculate 'bitsize' of compressed ints
- |
- | given the number of small unsigned integers and the maximum value
- | return the number of bits needed to read or write them with the
- | routines receiveints and sendints. You need this parameter when
- | calling these routines. Note that for many calls I can use
- | the variable 'smallidx' which is exactly the number of bits, and
- | So I don't need to call 'sizeofints for those calls.
-*/
-
-static int sizeofints( const int num_of_ints, unsigned int sizes[]) {
-    int i, num;
-    unsigned int num_of_bytes, num_of_bits, bytes[32], bytecnt, tmp;
-    num_of_bytes = 1;
-    bytes[0] = 1;
-    num_of_bits = 0;
-    for (i=0; i < num_of_ints; i++) {  
-       tmp = 0;
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    num = 1;
-    num_of_bytes--;
-    while (bytes[num_of_bytes] >= num) {
-       num_of_bits++;
-       num *= 2;
-    }
-    return num_of_bits + num_of_bytes * 8;
-
-}
-    
-/*____________________________________________________________________________
- |
- | sendints - send a small set of small integers in compressed format
- |
- | this routine is used internally by xdr3dfcoord, to send a set of
- | small integers to the buffer. 
- | Multiplication with fixed (specified maximum ) sizes is used to get
- | to one big, multibyte integer. Allthough the routine could be
- | modified to handle sizes bigger than 16777216, or more than just
- | a few integers, this is not done, because the gain in compression
- | isn't worth the effort. Note that overflowing the multiplication
- | or the byte buffer (32 bytes) is unchecked and causes bad results.
- |
- */
-static void sendints(int buf[], const int num_of_ints, const int num_of_bits,
-       unsigned int sizes[], unsigned int nums[]) {
-
-    int i;
-    unsigned int bytes[32], num_of_bytes, bytecnt, tmp;
-
-    tmp = nums[0];
-    num_of_bytes = 0;
-    do {
-       bytes[num_of_bytes++] = tmp & 0xff;
-       tmp >>= 8;
-    } while (tmp != 0);
-
-    for (i = 1; i < num_of_ints; i++) {
-       if (nums[i] >= sizes[i]) {
-           fprintf(stderr,"major breakdown in sendints num %d doesn't "
-                   "match size %d\n", nums[i], sizes[i]);
-           exit(1);
-       }
-       /* use one step multiply */    
-       tmp = nums[i];
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    if (num_of_bits >= num_of_bytes * 8) {
-       for (i = 0; i < num_of_bytes; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits - num_of_bytes * 8, 0);
-    } else {
-       for (i = 0; i < num_of_bytes-1; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits- (num_of_bytes -1) * 8, bytes[i]);
-    }
-}
-
-
-/*___________________________________________________________________________
- |
- | receivebits - decode number from buf using specified number of bits
- | 
- | extract the number of bits from the array buf and construct an integer
- | from it. Return that value.
- |
-*/
-
-static int receivebits(int buf[], int num_of_bits) {
-
-    int cnt, num; 
-    unsigned int lastbits, lastbyte;
-    unsigned char * cbuf;
-    int mask = (1 << num_of_bits) -1;
-
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = buf[0];
-    lastbits = (unsigned int) buf[1];
-    lastbyte = (unsigned int) buf[2];
-    
-    num = 0;
-    while (num_of_bits >= 8) {
-       lastbyte = ( lastbyte << 8 ) | cbuf[cnt++];
-       num |=  (lastbyte >> lastbits) << (num_of_bits - 8);
-       num_of_bits -=8;
-    }
-    if (num_of_bits > 0) {
-       if (lastbits < num_of_bits) {
-           lastbits += 8;
-           lastbyte = (lastbyte << 8) | cbuf[cnt++];
-       }
-       lastbits -= num_of_bits;
-       num |= (lastbyte >> lastbits) & ((1 << num_of_bits) -1);
-    }
-    num &= mask;
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    return num; 
-}
-
-/*____________________________________________________________________________
- |
- | receiveints - decode 'small' integers from the buf array
- |
- | this routine is the inverse from sendints() and decodes the small integers
- | written to buf by calculating the remainder and doing divisions with
- | the given sizes[]. You need to specify the total number of bits to be
- | used from buf in num_of_bits.
- |
-*/
-
-static void receiveints(int buf[], const int num_of_ints, int num_of_bits,
-       unsigned int sizes[], int nums[]) {
-    int bytes[32];
-    int i, j, num_of_bytes, p, num;
-    
-    bytes[1] = bytes[2] = bytes[3] = 0;
-    num_of_bytes = 0;
-    while (num_of_bits > 8) {
-       bytes[num_of_bytes++] = receivebits(buf, 8);
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       bytes[num_of_bytes++] = receivebits(buf, num_of_bits);
-    }
-    for (i = num_of_ints-1; i > 0; i--) {
-       num = 0;
-       for (j = num_of_bytes-1; j >=0; j--) {
-           num = (num << 8) | bytes[j];
-           p = num / sizes[i];
-           bytes[j] = p;
-           num = num - p * sizes[i];
-       }
-       nums[i] = num;
-    }
-    nums[0] = bytes[0] | (bytes[1] << 8) | (bytes[2] << 16) | (bytes[3] << 24);
-}
-    
-/*____________________________________________________________________________
- |
- | xdr3dfcoord - read or write compressed 3d coordinates to xdr file.
- |
- | this routine reads or writes (depending on how you opened the file with
- | xdropen() ) a large number of 3d coordinates (stored in *fp).
- | The number of coordinates triplets to write is given by *size. On
- | read this number may be zero, in which case it reads as many as were written
- | or it may specify the number if triplets to read (which should match the
- | number written).
- | Compression is achieved by first converting all floating numbers to integer
- | using multiplication by *precision and rounding to the nearest integer.
- | Then the minimum and maximum value are calculated to determine the range.
- | The limited range of integers so found, is used to compress the coordinates.
- | In addition the differences between succesive coordinates is calculated.
- | If the difference happens to be 'small' then only the difference is saved,
- | compressing the data even more. The notion of 'small' is changed dynamically
- | and is enlarged or reduced whenever needed or possible.
- | Extra compression is achieved in the case of GROMOS and coordinates of
- | water molecules. GROMOS first writes out the Oxygen position, followed by
- | the two hydrogens. In order to make the differences smaller (and thereby
- | compression the data better) the order is changed into first one hydrogen
- | then the oxygen, followed by the other hydrogen. This is rather special, but
- | it shouldn't harm in the general case.
- |
- */
-int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) {
-    
-
-    static int *ip = NULL;
-    static int oldsize;
-    static int *buf;
-
-    int minint[3], maxint[3], mindiff, *lip, diff;
-    int lint1, lint2, lint3, oldlint1, oldlint2, oldlint3, smallidx;
-    int minidx, maxidx;
-    unsigned sizeint[3], sizesmall[3], bitsizeint[3], size3, *luip;
-    int flag, k;
-    int small, smaller, larger, i, is_small, is_smaller, run, prevrun;
-    float *lfp, lf;
-    int tmp, *thiscoord,  prevcoord[3];
-    unsigned int tmpcoord[30];
-
-    int bufsize, xdrid, lsize;
-    unsigned int bitsize;
-    float inv_precision;
-    int errval = 1;
-
-    /* find out if xdrs is opened for reading or for writing */
-    xdrid = 0;
-    while (xdridptr[xdrid] != xdrs) {
-       xdrid++;
-       if (xdrid >= MAXID) {
-           fprintf(stderr, "xdr error. no open xdr stream\n");
-           exit (1);
-       }
-    }
-    if (xdrmodes[xdrid] == 'w') {
-
-       /* xdrs is open for writing */
-
-       if (xdr_int(xdrs, size) == 0)
-           return 0;
-       size3 = *size * 3;
-       /* when the number of coordinates is small, don't try to compress; just
-        * write them as floats using xdr_vector
-        */
-       if (*size <= 9 ) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       /* buf[0-2] are special and do not contain actual data */
-       buf[0] = buf[1] = buf[2] = 0;
-       minint[0] = minint[1] = minint[2] = INT_MAX;
-       maxint[0] = maxint[1] = maxint[2] = INT_MIN;
-       prevrun = -1;
-       lfp = fp;
-       lip = ip;
-       mindiff = INT_MAX;
-       oldlint1 = oldlint2 = oldlint3 = 0;
-       while(lfp < fp + size3 ) {
-           /* find nearest integer */
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint1 = lf;
-           if (lint1 < minint[0]) minint[0] = lint1;
-           if (lint1 > maxint[0]) maxint[0] = lint1;
-           *lip++ = lint1;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint2 = lf;
-           if (lint2 < minint[1]) minint[1] = lint2;
-           if (lint2 > maxint[1]) maxint[1] = lint2;
-           *lip++ = lint2;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint3 = lf;
-           if (lint3 < minint[2]) minint[2] = lint3;
-           if (lint3 > maxint[2]) maxint[2] = lint3;
-           *lip++ = lint3;
-           lfp++;
-           diff = abs(oldlint1-lint1)+abs(oldlint2-lint2)+abs(oldlint3-lint3);
-           if (diff < mindiff && lfp > fp + 3)
-               mindiff = diff;
-           oldlint1 = lint1;
-           oldlint2 = lint2;
-           oldlint3 = lint3;
-       }
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-       
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-       
-       if ((float)maxint[0] - (float)minint[0] >= MAXABS ||
-               (float)maxint[1] - (float)minint[1] >= MAXABS ||
-               (float)maxint[2] - (float)minint[2] >= MAXABS) {
-           /* turning value in unsigned by subtracting minint
-            * would cause overflow
-            */
-           errval = 0;
-       }
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       lip = ip;
-       luip = (unsigned int *) ip;
-       smallidx = FIRSTIDX;
-       while (smallidx < LASTIDX && magicints[smallidx] < mindiff) {
-           smallidx++;
-       }
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-       larger = magicints[maxidx] / 2;
-       i = 0;
-       while (i < *size) {
-           is_small = 0;
-           thiscoord = (int *)(luip) + i * 3;
-           if (smallidx < maxidx && i >= 1 &&
-                   abs(thiscoord[0] - prevcoord[0]) < larger &&
-                   abs(thiscoord[1] - prevcoord[1]) < larger &&
-                   abs(thiscoord[2] - prevcoord[2]) < larger) {
-               is_smaller = 1;
-           } else if (smallidx > minidx) {
-               is_smaller = -1;
-           } else {
-               is_smaller = 0;
-           }
-           if (i + 1 < *size) {
-               if (abs(thiscoord[0] - thiscoord[3]) < small &&
-                       abs(thiscoord[1] - thiscoord[4]) < small &&
-                       abs(thiscoord[2] - thiscoord[5]) < small) {
-                   /* interchange first with second atom for better
-                    * compression of water molecules
-                    */
-                   tmp = thiscoord[0]; thiscoord[0] = thiscoord[3];
-                       thiscoord[3] = tmp;
-                   tmp = thiscoord[1]; thiscoord[1] = thiscoord[4];
-                       thiscoord[4] = tmp;
-                   tmp = thiscoord[2]; thiscoord[2] = thiscoord[5];
-                       thiscoord[5] = tmp;
-                   is_small = 1;
-               }
-    
-           }
-           tmpcoord[0] = thiscoord[0] - minint[0];
-           tmpcoord[1] = thiscoord[1] - minint[1];
-           tmpcoord[2] = thiscoord[2] - minint[2];
-           if (bitsize == 0) {
-               sendbits(buf, bitsizeint[0], tmpcoord[0]);
-               sendbits(buf, bitsizeint[1], tmpcoord[1]);
-               sendbits(buf, bitsizeint[2], tmpcoord[2]);
-           } else {
-               sendints(buf, 3, bitsize, sizeint, tmpcoord);
-           }
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           thiscoord = thiscoord + 3;
-           i++;
-           
-           run = 0;
-           if (is_small == 0 && is_smaller == -1)
-               is_smaller = 0;
-           while (is_small && run < 8*3) {
-               if (is_smaller == -1 && (
-                       SQR(thiscoord[0] - prevcoord[0]) +
-                       SQR(thiscoord[1] - prevcoord[1]) +
-                       SQR(thiscoord[2] - prevcoord[2]) >= smaller * smaller)) {
-                   is_smaller = 0;
-               }
-
-               tmpcoord[run++] = thiscoord[0] - prevcoord[0] + small;
-               tmpcoord[run++] = thiscoord[1] - prevcoord[1] + small;
-               tmpcoord[run++] = thiscoord[2] - prevcoord[2] + small;
-               
-               prevcoord[0] = thiscoord[0];
-               prevcoord[1] = thiscoord[1];
-               prevcoord[2] = thiscoord[2];
-
-               i++;
-               thiscoord = thiscoord + 3;
-               is_small = 0;
-               if (i < *size &&
-                       abs(thiscoord[0] - prevcoord[0]) < small &&
-                       abs(thiscoord[1] - prevcoord[1]) < small &&
-                       abs(thiscoord[2] - prevcoord[2]) < small) {
-                   is_small = 1;
-               }
-           }
-           if (run != prevrun || is_smaller != 0) {
-               prevrun = run;
-               sendbits(buf, 1, 1); /* flag the change in run-length */
-               sendbits(buf, 5, run+is_smaller+1);
-           } else {
-               sendbits(buf, 1, 0); /* flag the fact that runlength did not change */
-           }
-           for (k=0; k < run; k+=3) {
-               sendints(buf, 3, smallidx, sizesmall, &tmpcoord[k]);    
-           }
-           if (is_smaller != 0) {
-               smallidx += is_smaller;
-               if (is_smaller < 0) {
-                   small = smaller;
-                   smaller = magicints[smallidx-1] / 2;
-               } else {
-                   smaller = small;
-                   small = magicints[smallidx] / 2;
-               }
-               sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-           }
-       }
-       if (buf[1] != 0) buf[0]++;;
-       xdr_int(xdrs, &(buf[0])); /* buf[0] holds the length in bytes */
-       return errval * (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]));
-    } else {
-       
-       /* xdrs is open for reading */
-       
-       if (xdr_int(xdrs, &lsize) == 0) 
-           return 0;
-       if (*size != 0 && lsize != *size) {
-           fprintf(stderr, "wrong number of coordinates in xdr3dfcoor; "
-                   "%d arg vs %d in file", *size, lsize);
-       }
-       *size = lsize;
-       size3 = *size * 3;
-       if (*size <= 9) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-               
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       larger = magicints[maxidx];
-
-       /* buf[0] holds the length in bytes */
-
-       if (xdr_int(xdrs, &(buf[0])) == 0)
-           return 0;
-       if (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]) == 0)
-           return 0;
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       lfp = fp;
-       inv_precision = 1.0 / * precision;
-       run = 0;
-       i = 0;
-       lip = ip;
-       while ( i < lsize ) {
-           thiscoord = (int *)(lip) + i * 3;
-
-           if (bitsize == 0) {
-               thiscoord[0] = receivebits(buf, bitsizeint[0]);
-               thiscoord[1] = receivebits(buf, bitsizeint[1]);
-               thiscoord[2] = receivebits(buf, bitsizeint[2]);
-           } else {
-               receiveints(buf, 3, bitsize, sizeint, thiscoord);
-           }
-           
-           i++;
-           thiscoord[0] += minint[0];
-           thiscoord[1] += minint[1];
-           thiscoord[2] += minint[2];
-           
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           
-          
-           flag = receivebits(buf, 1);
-           is_smaller = 0;
-           if (flag == 1) {
-               run = receivebits(buf, 5);
-               is_smaller = run % 3;
-               run -= is_smaller;
-               is_smaller--;
-           }
-           if (run > 0) {
-               thiscoord += 3;
-               for (k = 0; k < run; k+=3) {
-                   receiveints(buf, 3, smallidx, sizesmall, thiscoord);
-                   i++;
-                   thiscoord[0] += prevcoord[0] - small;
-                   thiscoord[1] += prevcoord[1] - small;
-                   thiscoord[2] += prevcoord[2] - small;
-                   if (k == 0) {
-                       /* interchange first with second atom for better
-                        * compression of water molecules
-                        */
-                       tmp = thiscoord[0]; thiscoord[0] = prevcoord[0];
-                               prevcoord[0] = tmp;
-                       tmp = thiscoord[1]; thiscoord[1] = prevcoord[1];
-                               prevcoord[1] = tmp;
-                       tmp = thiscoord[2]; thiscoord[2] = prevcoord[2];
-                               prevcoord[2] = tmp;
-                       *lfp++ = prevcoord[0] * inv_precision;
-                       *lfp++ = prevcoord[1] * inv_precision;
-                       *lfp++ = prevcoord[2] * inv_precision;
-                   } else {
-                       prevcoord[0] = thiscoord[0];
-                       prevcoord[1] = thiscoord[1];
-                       prevcoord[2] = thiscoord[2];
-                   }
-                   *lfp++ = thiscoord[0] * inv_precision;
-                   *lfp++ = thiscoord[1] * inv_precision;
-                   *lfp++ = thiscoord[2] * inv_precision;
-               }
-           } else {
-               *lfp++ = thiscoord[0] * inv_precision;
-               *lfp++ = thiscoord[1] * inv_precision;
-               *lfp++ = thiscoord[2] * inv_precision;          
-           }
-           smallidx += is_smaller;
-           if (is_smaller < 0) {
-               small = smaller;
-               if (smallidx > FIRSTIDX) {
-                   smaller = magicints[smallidx - 1] /2;
-               } else {
-                   smaller = 0;
-               }
-           } else if (is_smaller > 0) {
-               smaller = small;
-               small = magicints[smallidx] / 2;
-           }
-           sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       }
-    }
-    return 1;
-}
-
-
-   
diff --git a/source/wham/src/xdrf.org/types.h b/source/wham/src/xdrf.org/types.h
deleted file mode 100644 (file)
index 871f3fd..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-/* fixincludes should not add extern "C" to this file */
-/*
- * Rpc additions to <sys/types.h>
- */
-#ifndef _RPC_TYPES_H
-#define _RPC_TYPES_H 1
-
-typedef int bool_t;
-typedef int enum_t;
-/* This needs to be changed to uint32_t in the future */
-typedef unsigned long rpcprog_t;
-typedef unsigned long rpcvers_t;
-typedef unsigned long rpcproc_t;
-typedef unsigned long rpcprot_t;
-typedef unsigned long rpcport_t;
-
-#define        __dontcare__    -1
-
-#ifndef FALSE
-#      define  FALSE   (0)
-#endif
-
-#ifndef TRUE
-#      define  TRUE    (1)
-#endif
-
-#ifndef NULL
-#      define  NULL 0
-#endif
-
-#include <stdlib.h>            /* For malloc decl.  */
-#define mem_alloc(bsize)       malloc(bsize)
-/*
- * XXX: This must not use the second argument, or code in xdr_array.c needs
- * to be modified.
- */
-#define mem_free(ptr, bsize)   free(ptr)
-
-#ifndef makedev /* ie, we haven't already included it */
-#include <sys/types.h>
-#endif
-
-#ifndef __u_char_defined
-typedef __u_char u_char;
-typedef __u_short u_short;
-typedef __u_int u_int;
-typedef __u_long u_long;
-typedef __quad_t quad_t;
-typedef __u_quad_t u_quad_t;
-typedef __fsid_t fsid_t;
-# define __u_char_defined
-#endif
-#ifndef __daddr_t_defined
-typedef __daddr_t daddr_t;
-typedef __caddr_t caddr_t;
-# define __daddr_t_defined
-#endif
-
-#include <sys/time.h>
-#include <sys/param.h>
-
-#include <netinet/in.h>
-
-#ifndef INADDR_LOOPBACK
-#define       INADDR_LOOPBACK         (u_long)0x7F000001
-#endif
-#ifndef MAXHOSTNAMELEN
-#define        MAXHOSTNAMELEN  64
-#endif
-
-#endif /* rpc/types.h */
diff --git a/source/wham/src/xdrf.org/underscore.m4 b/source/wham/src/xdrf.org/underscore.m4
deleted file mode 100644 (file)
index 4d620a0..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-divert(-1)
-undefine(`len')
-#
-# append an underscore to FORTRAN function names
-#
-define(`FUNCTION',`$1_')
-#
-# FORTRAN character strings are passed as follows:
-# a pointer to the base of the string is passed in the normal
-# argument list, and the length is passed by value as an extra
-# argument, after all of the other arguments.
-#
-define(`ARGS',`($1`'undivert(1))')
-define(`SAVE',`divert(1)$1`'divert(0)')
-define(`STRING_ARG',`$1_ptr`'SAVE(`, $1_len')')
-define(`STRING_ARG_DECL',`char * $1_ptr; int $1_len')
-define(`STRING_LEN',`$1_len')
-define(`STRING_PTR',`$1_ptr')
-divert(0)
diff --git a/source/wham/src/xdrf.org/xdr.c b/source/wham/src/xdrf.org/xdr.c
deleted file mode 100644 (file)
index 33b8544..0000000
+++ /dev/null
@@ -1,752 +0,0 @@
-# define INTUSE(name) name
-# define INTDEF(name)
-/* @(#)xdr.c   2.1 88/07/29 4.0 RPCSRC */
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)xdr.c 1.35 87/08/12";
-#endif
-
-/*
- * xdr.c, Generic XDR routines implementation.
- *
- * Copyright (C) 1986, Sun Microsystems, Inc.
- *
- * These are the "generic" xdr routines used to serialize and de-serialize
- * most common data items.  See xdr.h for more info on the interface to
- * xdr.
- */
-
-#include <stdio.h>
-#include <limits.h>
-#include <string.h>
-#include <libintl.h>
-
-#include "types.h"
-#include "xdr.h"
-
-#ifdef USE_IN_LIBIO
-# include <wchar.h>
-#endif
-
-/*
- * constants specific to the xdr "protocol"
- */
-#define XDR_FALSE      ((long) 0)
-#define XDR_TRUE       ((long) 1)
-#define LASTUNSIGNED   ((u_int) 0-1)
-
-/*
- * for unit alignment
- */
-static const char xdr_zero[BYTES_PER_XDR_UNIT] = {0, 0, 0, 0};
-
-/*
- * Free a data structure using XDR
- * Not a filter, but a convenient utility nonetheless
- */
-void
-xdr_free (xdrproc_t proc, char *objp)
-{
-  XDR x;
-
-  x.x_op = XDR_FREE;
-  (*proc) (&x, objp);
-}
-
-/*
- * XDR nothing
- */
-bool_t
-xdr_void (void)
-{
-  return TRUE;
-}
-INTDEF(xdr_void)
-
-/*
- * XDR integers
- */
-bool_t
-xdr_int (XDR *xdrs, int *ip)
-{
-
-#if INT_MAX < LONG_MAX
-  long l;
-
-  switch (xdrs->x_op)
-    {
-    case XDR_ENCODE:
-      l = (long) *ip;
-      return XDR_PUTLONG (xdrs, &l);
-
-    case XDR_DECODE:
-      if (!XDR_GETLONG (xdrs, &l))
-       {
-         return FALSE;
-       }
-      *ip = (int) l;
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-#elif INT_MAX == LONG_MAX
-  return INTUSE(xdr_long) (xdrs, (long *) ip);
-#elif INT_MAX == SHRT_MAX
-  return INTUSE(xdr_short) (xdrs, (short *) ip);
-#else
-#error unexpected integer sizes in_xdr_int()
-#endif
-}
-INTDEF(xdr_int)
-
-/*
- * XDR unsigned integers
- */
-bool_t
-xdr_u_int (XDR *xdrs, u_int *up)
-{
-#if UINT_MAX < ULONG_MAX
-  long l;
-
-  switch (xdrs->x_op)
-    {
-    case XDR_ENCODE:
-      l = (u_long) * up;
-      return XDR_PUTLONG (xdrs, &l);
-
-    case XDR_DECODE:
-      if (!XDR_GETLONG (xdrs, &l))
-       {
-         return FALSE;
-       }
-      *up = (u_int) (u_long) l;
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-#elif UINT_MAX == ULONG_MAX
-  return INTUSE(xdr_u_long) (xdrs, (u_long *) up);
-#elif UINT_MAX == USHRT_MAX
-  return INTUSE(xdr_short) (xdrs, (short *) up);
-#else
-#error unexpected integer sizes in_xdr_u_int()
-#endif
-}
-INTDEF(xdr_u_int)
-
-/*
- * XDR long integers
- * The definition of xdr_long() is kept for backward
- * compatibility. Instead xdr_int() should be used.
- */
-bool_t
-xdr_long (XDR *xdrs, long *lp)
-{
-
-  if (xdrs->x_op == XDR_ENCODE
-      && (sizeof (int32_t) == sizeof (long)
-         || (int32_t) *lp == *lp))
-    return XDR_PUTLONG (xdrs, lp);
-
-  if (xdrs->x_op == XDR_DECODE)
-    return XDR_GETLONG (xdrs, lp);
-
-  if (xdrs->x_op == XDR_FREE)
-    return TRUE;
-
-  return FALSE;
-}
-INTDEF(xdr_long)
-
-/*
- * XDR unsigned long integers
- * The definition of xdr_u_long() is kept for backward
- * compatibility. Instead xdr_u_int() should be used.
- */
-bool_t
-xdr_u_long (XDR *xdrs, u_long *ulp)
-{
-  switch (xdrs->x_op)
-    {
-    case XDR_DECODE:
-      {
-       long int tmp;
-
-       if (XDR_GETLONG (xdrs, &tmp) == FALSE)
-         return FALSE;
-
-       *ulp = (uint32_t) tmp;
-       return TRUE;
-      }
-
-    case XDR_ENCODE:
-      if (sizeof (uint32_t) != sizeof (u_long)
-         && (uint32_t) *ulp != *ulp)
-       return FALSE;
-
-      return XDR_PUTLONG (xdrs, (long *) ulp);
-
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_u_long)
-
-/*
- * XDR hyper integers
- * same as xdr_u_hyper - open coded to save a proc call!
- */
-bool_t
-xdr_hyper (XDR *xdrs, quad_t *llp)
-{
-  long int t1, t2;
-
-  if (xdrs->x_op == XDR_ENCODE)
-    {
-      t1 = (long) ((*llp) >> 32);
-      t2 = (long) (*llp);
-      return (XDR_PUTLONG(xdrs, &t1) && XDR_PUTLONG(xdrs, &t2));
-    }
-
-  if (xdrs->x_op == XDR_DECODE)
-    {
-      if (!XDR_GETLONG(xdrs, &t1) || !XDR_GETLONG(xdrs, &t2))
-       return FALSE;
-      *llp = ((quad_t) t1) << 32;
-      *llp |= (uint32_t) t2;
-      return TRUE;
-    }
-
-  if (xdrs->x_op == XDR_FREE)
-    return TRUE;
-
-  return FALSE;
-}
-INTDEF(xdr_hyper)
-
-
-/*
- * XDR hyper integers
- * same as xdr_hyper - open coded to save a proc call!
- */
-bool_t
-xdr_u_hyper (XDR *xdrs, u_quad_t *ullp)
-{
-  long int t1, t2;
-
-  if (xdrs->x_op == XDR_ENCODE)
-    {
-      t1 = (unsigned long) ((*ullp) >> 32);
-      t2 = (unsigned long) (*ullp);
-      return (XDR_PUTLONG(xdrs, &t1) && XDR_PUTLONG(xdrs, &t2));
-    }
-
-  if (xdrs->x_op == XDR_DECODE)
-    {
-      if (!XDR_GETLONG(xdrs, &t1) || !XDR_GETLONG(xdrs, &t2))
-       return FALSE;
-      *ullp = ((u_quad_t) t1) << 32;
-      *ullp |= (uint32_t) t2;
-      return TRUE;
-    }
-
-  if (xdrs->x_op == XDR_FREE)
-    return TRUE;
-
-  return FALSE;
-}
-INTDEF(xdr_u_hyper)
-
-bool_t
-xdr_longlong_t (XDR *xdrs, quad_t *llp)
-{
-  return INTUSE(xdr_hyper) (xdrs, llp);
-}
-
-bool_t
-xdr_u_longlong_t (XDR *xdrs, u_quad_t *ullp)
-{
-  return INTUSE(xdr_u_hyper) (xdrs, ullp);
-}
-
-/*
- * XDR short integers
- */
-bool_t
-xdr_short (XDR *xdrs, short *sp)
-{
-  long l;
-
-  switch (xdrs->x_op)
-    {
-    case XDR_ENCODE:
-      l = (long) *sp;
-      return XDR_PUTLONG (xdrs, &l);
-
-    case XDR_DECODE:
-      if (!XDR_GETLONG (xdrs, &l))
-       {
-         return FALSE;
-       }
-      *sp = (short) l;
-      return TRUE;
-
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_short)
-
-/*
- * XDR unsigned short integers
- */
-bool_t
-xdr_u_short (XDR *xdrs, u_short *usp)
-{
-  long l;
-
-  switch (xdrs->x_op)
-    {
-    case XDR_ENCODE:
-      l = (u_long) * usp;
-      return XDR_PUTLONG (xdrs, &l);
-
-    case XDR_DECODE:
-      if (!XDR_GETLONG (xdrs, &l))
-       {
-         return FALSE;
-       }
-      *usp = (u_short) (u_long) l;
-      return TRUE;
-
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_u_short)
-
-
-/*
- * XDR a char
- */
-bool_t
-xdr_char (XDR *xdrs, char *cp)
-{
-  int i;
-
-  i = (*cp);
-  if (!INTUSE(xdr_int) (xdrs, &i))
-    {
-      return FALSE;
-    }
-  *cp = i;
-  return TRUE;
-}
-
-/*
- * XDR an unsigned char
- */
-bool_t
-xdr_u_char (XDR *xdrs, u_char *cp)
-{
-  u_int u;
-
-  u = (*cp);
-  if (!INTUSE(xdr_u_int) (xdrs, &u))
-    {
-      return FALSE;
-    }
-  *cp = u;
-  return TRUE;
-}
-
-/*
- * XDR booleans
- */
-bool_t
-xdr_bool (XDR *xdrs, bool_t *bp)
-{
-  long lb;
-
-  switch (xdrs->x_op)
-    {
-    case XDR_ENCODE:
-      lb = *bp ? XDR_TRUE : XDR_FALSE;
-      return XDR_PUTLONG (xdrs, &lb);
-
-    case XDR_DECODE:
-      if (!XDR_GETLONG (xdrs, &lb))
-       {
-         return FALSE;
-       }
-      *bp = (lb == XDR_FALSE) ? FALSE : TRUE;
-      return TRUE;
-
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_bool)
-
-/*
- * XDR enumerations
- */
-bool_t
-xdr_enum (XDR *xdrs, enum_t *ep)
-{
-  enum sizecheck
-    {
-      SIZEVAL
-    };                         /* used to find the size of an enum */
-
-  /*
-   * enums are treated as ints
-   */
-  if (sizeof (enum sizecheck) == 4)
-    {
-#if INT_MAX < LONG_MAX
-      long l;
-
-      switch (xdrs->x_op)
-       {
-       case XDR_ENCODE:
-         l = *ep;
-         return XDR_PUTLONG (xdrs, &l);
-
-       case XDR_DECODE:
-         if (!XDR_GETLONG (xdrs, &l))
-           {
-             return FALSE;
-           }
-         *ep = l;
-       case XDR_FREE:
-         return TRUE;
-
-       }
-      return FALSE;
-#else
-      return INTUSE(xdr_long) (xdrs, (long *) ep);
-#endif
-    }
-  else if (sizeof (enum sizecheck) == sizeof (short))
-    {
-      return INTUSE(xdr_short) (xdrs, (short *) ep);
-    }
-  else
-    {
-      return FALSE;
-    }
-}
-INTDEF(xdr_enum)
-
-/*
- * XDR opaque data
- * Allows the specification of a fixed size sequence of opaque bytes.
- * cp points to the opaque object and cnt gives the byte length.
- */
-bool_t
-xdr_opaque (XDR *xdrs, caddr_t cp, u_int cnt)
-{
-  u_int rndup;
-  static char crud[BYTES_PER_XDR_UNIT];
-
-  /*
-   * if no data we are done
-   */
-  if (cnt == 0)
-    return TRUE;
-
-  /*
-   * round byte count to full xdr units
-   */
-  rndup = cnt % BYTES_PER_XDR_UNIT;
-  if (rndup > 0)
-    rndup = BYTES_PER_XDR_UNIT - rndup;
-
-  switch (xdrs->x_op)
-    {
-    case XDR_DECODE:
-      if (!XDR_GETBYTES (xdrs, cp, cnt))
-       {
-         return FALSE;
-       }
-      if (rndup == 0)
-       return TRUE;
-      return XDR_GETBYTES (xdrs, (caddr_t)crud, rndup);
-
-    case XDR_ENCODE:
-      if (!XDR_PUTBYTES (xdrs, cp, cnt))
-       {
-         return FALSE;
-       }
-      if (rndup == 0)
-       return TRUE;
-      return XDR_PUTBYTES (xdrs, xdr_zero, rndup);
-
-    case XDR_FREE:
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_opaque)
-
-/*
- * XDR counted bytes
- * *cpp is a pointer to the bytes, *sizep is the count.
- * If *cpp is NULL maxsize bytes are allocated
- */
-bool_t
-xdr_bytes (xdrs, cpp, sizep, maxsize)
-     XDR *xdrs;
-     char **cpp;
-     u_int *sizep;
-     u_int maxsize;
-{
-  char *sp = *cpp;     /* sp is the actual string pointer */
-  u_int nodesize;
-
-  /*
-   * first deal with the length since xdr bytes are counted
-   */
-  if (!INTUSE(xdr_u_int) (xdrs, sizep))
-    {
-      return FALSE;
-    }
-  nodesize = *sizep;
-  if ((nodesize > maxsize) && (xdrs->x_op != XDR_FREE))
-    {
-      return FALSE;
-    }
-
-  /*
-   * now deal with the actual bytes
-   */
-  switch (xdrs->x_op)
-    {
-    case XDR_DECODE:
-      if (nodesize == 0)
-       {
-         return TRUE;
-       }
-      if (sp == NULL)
-       {
-         *cpp = sp = (char *) mem_alloc (nodesize);
-       }
-      if (sp == NULL)
-       {
-         fprintf (NULL, "%s", "xdr_bytes: out of memory\n");
-         return FALSE;
-       }
-      /* fall into ... */
-
-    case XDR_ENCODE:
-      return INTUSE(xdr_opaque) (xdrs, sp, nodesize);
-
-    case XDR_FREE:
-      if (sp != NULL)
-       {
-         mem_free (sp, nodesize);
-         *cpp = NULL;
-       }
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_bytes)
-
-/*
- * Implemented here due to commonality of the object.
- */
-bool_t
-xdr_netobj (xdrs, np)
-     XDR *xdrs;
-     struct netobj *np;
-{
-
-  return INTUSE(xdr_bytes) (xdrs, &np->n_bytes, &np->n_len, MAX_NETOBJ_SZ);
-}
-INTDEF(xdr_netobj)
-
-/*
- * XDR a discriminated union
- * Support routine for discriminated unions.
- * You create an array of xdrdiscrim structures, terminated with
- * an entry with a null procedure pointer.  The routine gets
- * the discriminant value and then searches the array of xdrdiscrims
- * looking for that value.  It calls the procedure given in the xdrdiscrim
- * to handle the discriminant.  If there is no specific routine a default
- * routine may be called.
- * If there is no specific or default routine an error is returned.
- */
-bool_t
-xdr_union (xdrs, dscmp, unp, choices, dfault)
-     XDR *xdrs;
-     enum_t *dscmp;            /* enum to decide which arm to work on */
-     char *unp;                        /* the union itself */
-     const struct xdr_discrim *choices;        /* [value, xdr proc] for each arm */
-     xdrproc_t dfault;         /* default xdr routine */
-{
-  enum_t dscm;
-
-  /*
-   * we deal with the discriminator;  it's an enum
-   */
-  if (!INTUSE(xdr_enum) (xdrs, dscmp))
-    {
-      return FALSE;
-    }
-  dscm = *dscmp;
-
-  /*
-   * search choices for a value that matches the discriminator.
-   * if we find one, execute the xdr routine for that value.
-   */
-  for (; choices->proc != NULL_xdrproc_t; choices++)
-    {
-      if (choices->value == dscm)
-       return (*(choices->proc)) (xdrs, unp, LASTUNSIGNED);
-    }
-
-  /*
-   * no match - execute the default xdr routine if there is one
-   */
-  return ((dfault == NULL_xdrproc_t) ? FALSE :
-         (*dfault) (xdrs, unp, LASTUNSIGNED));
-}
-INTDEF(xdr_union)
-
-
-/*
- * Non-portable xdr primitives.
- * Care should be taken when moving these routines to new architectures.
- */
-
-
-/*
- * XDR null terminated ASCII strings
- * xdr_string deals with "C strings" - arrays of bytes that are
- * terminated by a NULL character.  The parameter cpp references a
- * pointer to storage; If the pointer is null, then the necessary
- * storage is allocated.  The last parameter is the max allowed length
- * of the string as specified by a protocol.
- */
-bool_t
-xdr_string (xdrs, cpp, maxsize)
-     XDR *xdrs;
-     char **cpp;
-     u_int maxsize;
-{
-  char *sp = *cpp;     /* sp is the actual string pointer */
-  u_int size;
-  u_int nodesize;
-
-  /*
-   * first deal with the length since xdr strings are counted-strings
-   */
-  switch (xdrs->x_op)
-    {
-    case XDR_FREE:
-      if (sp == NULL)
-       {
-         return TRUE;          /* already free */
-       }
-      /* fall through... */
-    case XDR_ENCODE:
-      if (sp == NULL)
-       return FALSE;
-      size = strlen (sp);
-      break;
-    case XDR_DECODE:
-      break;
-    }
-  if (!INTUSE(xdr_u_int) (xdrs, &size))
-    {
-      return FALSE;
-    }
-  if (size > maxsize)
-    {
-      return FALSE;
-    }
-  nodesize = size + 1;
-  if (nodesize == 0)
-    {
-      /* This means an overflow.  It a bug in the caller which
-        provided a too large maxsize but nevertheless catch it
-        here.  */
-      return FALSE;
-    }
-
-  /*
-   * now deal with the actual bytes
-   */
-  switch (xdrs->x_op)
-    {
-    case XDR_DECODE:
-      if (sp == NULL)
-       *cpp = sp = (char *) mem_alloc (nodesize);
-      if (sp == NULL)
-       {
-         fprintf (NULL, "%s", "xdr_string: out of memory\n");
-         return FALSE;
-       }
-      sp[size] = 0;
-      /* fall into ... */
-
-    case XDR_ENCODE:
-      return INTUSE(xdr_opaque) (xdrs, sp, size);
-
-    case XDR_FREE:
-      mem_free (sp, nodesize);
-      *cpp = NULL;
-      return TRUE;
-    }
-  return FALSE;
-}
-INTDEF(xdr_string)
-
-/*
- * Wrapper for xdr_string that can be called directly from
- * routines like clnt_call
- */
-bool_t
-xdr_wrapstring (xdrs, cpp)
-     XDR *xdrs;
-     char **cpp;
-{
-  if (INTUSE(xdr_string) (xdrs, cpp, LASTUNSIGNED))
-    {
-      return TRUE;
-    }
-  return FALSE;
-}
diff --git a/source/wham/src/xdrf.org/xdr.h b/source/wham/src/xdrf.org/xdr.h
deleted file mode 100644 (file)
index 2602ad9..0000000
+++ /dev/null
@@ -1,379 +0,0 @@
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-
-/*
- * xdr.h, External Data Representation Serialization Routines.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- */
-
-#ifndef _RPC_XDR_H
-#define _RPC_XDR_H 1
-
-#include <features.h>
-#include <sys/types.h>
-#include "types.h"
-
-/* We need FILE.  */
-#include <stdio.h>
-
-__BEGIN_DECLS
-
-/*
- * XDR provides a conventional way for converting between C data
- * types and an external bit-string representation.  Library supplied
- * routines provide for the conversion on built-in C data types.  These
- * routines and utility routines defined here are used to help implement
- * a type encode/decode routine for each user-defined type.
- *
- * Each data type provides a single procedure which takes two arguments:
- *
- *      bool_t
- *      xdrproc(xdrs, argresp)
- *              XDR *xdrs;
- *              <type> *argresp;
- *
- * xdrs is an instance of a XDR handle, to which or from which the data
- * type is to be converted.  argresp is a pointer to the structure to be
- * converted.  The XDR handle contains an operation field which indicates
- * which of the operations (ENCODE, DECODE * or FREE) is to be performed.
- *
- * XDR_DECODE may allocate space if the pointer argresp is null.  This
- * data can be freed with the XDR_FREE operation.
- *
- * We write only one procedure per data type to make it easy
- * to keep the encode and decode procedures for a data type consistent.
- * In many cases the same code performs all operations on a user defined type,
- * because all the hard work is done in the component type routines.
- * decode as a series of calls on the nested data types.
- */
-
-/*
- * Xdr operations.  XDR_ENCODE causes the type to be encoded into the
- * stream.  XDR_DECODE causes the type to be extracted from the stream.
- * XDR_FREE can be used to release the space allocated by an XDR_DECODE
- * request.
- */
-enum xdr_op {
-  XDR_ENCODE = 0,
-  XDR_DECODE = 1,
-  XDR_FREE = 2
-};
-
-/*
- * This is the number of bytes per unit of external data.
- */
-#define BYTES_PER_XDR_UNIT     (4)
-/*
- * This only works if the above is a power of 2.  But it's defined to be
- * 4 by the appropriate RFCs.  So it will work.  And it's normally quicker
- * than the old routine.
- */
-#if 1
-#define RNDUP(x)  (((x) + BYTES_PER_XDR_UNIT - 1) & ~(BYTES_PER_XDR_UNIT - 1))
-#else /* this is the old routine */
-#define RNDUP(x)  ((((x) + BYTES_PER_XDR_UNIT - 1) / BYTES_PER_XDR_UNIT) \
-                   * BYTES_PER_XDR_UNIT)
-#endif
-
-/*
- * The XDR handle.
- * Contains operation which is being applied to the stream,
- * an operations vector for the particular implementation (e.g. see xdr_mem.c),
- * and two private fields for the use of the particular implementation.
- */
-typedef struct XDR XDR;
-struct XDR
-  {
-    enum xdr_op x_op;          /* operation; fast additional param */
-    struct xdr_ops
-      {
-       bool_t (*x_getlong) (XDR *__xdrs, long *__lp);
-       /* get a long from underlying stream */
-       bool_t (*x_putlong) (XDR *__xdrs, __const long *__lp);
-       /* put a long to " */
-       bool_t (*x_getbytes) (XDR *__xdrs, caddr_t __addr, u_int __len);
-       /* get some bytes from " */
-       bool_t (*x_putbytes) (XDR *__xdrs, __const char *__addr, u_int __len);
-       /* put some bytes to " */
-       u_int (*x_getpostn) (__const XDR *__xdrs);
-       /* returns bytes off from beginning */
-       bool_t (*x_setpostn) (XDR *__xdrs, u_int __pos);
-       /* lets you reposition the stream */
-       int32_t *(*x_inline) (XDR *__xdrs, u_int __len);
-       /* buf quick ptr to buffered data */
-       void (*x_destroy) (XDR *__xdrs);
-       /* free privates of this xdr_stream */
-       bool_t (*x_getint32) (XDR *__xdrs, int32_t *__ip);
-       /* get a int from underlying stream */
-       bool_t (*x_putint32) (XDR *__xdrs, __const int32_t *__ip);
-       /* put a int to " */
-      }
-     *x_ops;
-    caddr_t x_public;          /* users' data */
-    caddr_t x_private;         /* pointer to private data */
-    caddr_t x_base;            /* private used for position info */
-    u_int x_handy;             /* extra private word */
-  };
-
-/*
- * A xdrproc_t exists for each data type which is to be encoded or decoded.
- *
- * The second argument to the xdrproc_t is a pointer to an opaque pointer.
- * The opaque pointer generally points to a structure of the data type
- * to be decoded.  If this pointer is 0, then the type routines should
- * allocate dynamic storage of the appropriate size and return it.
- * bool_t       (*xdrproc_t)(XDR *, caddr_t *);
- */
-typedef bool_t (*xdrproc_t) (XDR *, void *,...);
-
-
-/*
- * Operations defined on a XDR handle
- *
- * XDR          *xdrs;
- * int32_t      *int32p;
- * long         *longp;
- * caddr_t       addr;
- * u_int         len;
- * u_int         pos;
- */
-#define XDR_GETINT32(xdrs, int32p)                      \
-        (*(xdrs)->x_ops->x_getint32)(xdrs, int32p)
-#define xdr_getint32(xdrs, int32p)                      \
-        (*(xdrs)->x_ops->x_getint32)(xdrs, int32p)
-
-#define XDR_PUTINT32(xdrs, int32p)                      \
-        (*(xdrs)->x_ops->x_putint32)(xdrs, int32p)
-#define xdr_putint32(xdrs, int32p)                      \
-        (*(xdrs)->x_ops->x_putint32)(xdrs, int32p)
-
-#define XDR_GETLONG(xdrs, longp)                       \
-       (*(xdrs)->x_ops->x_getlong)(xdrs, longp)
-#define xdr_getlong(xdrs, longp)                       \
-       (*(xdrs)->x_ops->x_getlong)(xdrs, longp)
-
-#define XDR_PUTLONG(xdrs, longp)                       \
-       (*(xdrs)->x_ops->x_putlong)(xdrs, longp)
-#define xdr_putlong(xdrs, longp)                       \
-       (*(xdrs)->x_ops->x_putlong)(xdrs, longp)
-
-#define XDR_GETBYTES(xdrs, addr, len)                  \
-       (*(xdrs)->x_ops->x_getbytes)(xdrs, addr, len)
-#define xdr_getbytes(xdrs, addr, len)                  \
-       (*(xdrs)->x_ops->x_getbytes)(xdrs, addr, len)
-
-#define XDR_PUTBYTES(xdrs, addr, len)                  \
-       (*(xdrs)->x_ops->x_putbytes)(xdrs, addr, len)
-#define xdr_putbytes(xdrs, addr, len)                  \
-       (*(xdrs)->x_ops->x_putbytes)(xdrs, addr, len)
-
-#define XDR_GETPOS(xdrs)                               \
-       (*(xdrs)->x_ops->x_getpostn)(xdrs)
-#define xdr_getpos(xdrs)                               \
-       (*(xdrs)->x_ops->x_getpostn)(xdrs)
-
-#define XDR_SETPOS(xdrs, pos)                          \
-       (*(xdrs)->x_ops->x_setpostn)(xdrs, pos)
-#define xdr_setpos(xdrs, pos)                          \
-       (*(xdrs)->x_ops->x_setpostn)(xdrs, pos)
-
-#define        XDR_INLINE(xdrs, len)                           \
-       (*(xdrs)->x_ops->x_inline)(xdrs, len)
-#define        xdr_inline(xdrs, len)                           \
-       (*(xdrs)->x_ops->x_inline)(xdrs, len)
-
-#define        XDR_DESTROY(xdrs)                                       \
-       do {                                                    \
-               if ((xdrs)->x_ops->x_destroy)                   \
-                       (*(xdrs)->x_ops->x_destroy)(xdrs);      \
-       } while (0)
-#define        xdr_destroy(xdrs)                                       \
-       do {                                                    \
-               if ((xdrs)->x_ops->x_destroy)                   \
-                       (*(xdrs)->x_ops->x_destroy)(xdrs);      \
-       } while (0)
-
-/*
- * Support struct for discriminated unions.
- * You create an array of xdrdiscrim structures, terminated with
- * a entry with a null procedure pointer.  The xdr_union routine gets
- * the discriminant value and then searches the array of structures
- * for a matching value.  If a match is found the associated xdr routine
- * is called to handle that part of the union.  If there is
- * no match, then a default routine may be called.
- * If there is no match and no default routine it is an error.
- */
-#define NULL_xdrproc_t ((xdrproc_t)0)
-struct xdr_discrim
-{
-  int value;
-  xdrproc_t proc;
-};
-
-/*
- * Inline routines for fast encode/decode of primitive data types.
- * Caveat emptor: these use single memory cycles to get the
- * data from the underlying buffer, and will fail to operate
- * properly if the data is not aligned.  The standard way to use these
- * is to say:
- *      if ((buf = XDR_INLINE(xdrs, count)) == NULL)
- *              return (FALSE);
- *      <<< macro calls >>>
- * where ``count'' is the number of bytes of data occupied
- * by the primitive data types.
- *
- * N.B. and frozen for all time: each data type here uses 4 bytes
- * of external representation.
- */
-
-#define IXDR_GET_INT32(buf)           ((int32_t)ntohl((uint32_t)*(buf)++))
-#define IXDR_PUT_INT32(buf, v)        (*(buf)++ = (int32_t)htonl((uint32_t)(v)))
-#define IXDR_GET_U_INT32(buf)         ((uint32_t)IXDR_GET_INT32(buf))
-#define IXDR_PUT_U_INT32(buf, v)      IXDR_PUT_INT32(buf, (int32_t)(v))
-
-/* WARNING: The IXDR_*_LONG defines are removed by Sun for new platforms
- * and shouldn't be used any longer. Code which use this defines or longs
- * in the RPC code will not work on 64bit Solaris platforms !
- */
-#define IXDR_GET_LONG(buf) ((long)IXDR_GET_U_INT32(buf))
-#define IXDR_PUT_LONG(buf, v) ((long)IXDR_PUT_INT32(buf, (long)(v)))
-#define IXDR_GET_U_LONG(buf)         ((u_long)IXDR_GET_LONG(buf))
-#define IXDR_PUT_U_LONG(buf, v)              IXDR_PUT_LONG(buf, (long)(v))
-
-
-#define IXDR_GET_BOOL(buf)            ((bool_t)IXDR_GET_LONG(buf))
-#define IXDR_GET_ENUM(buf, t)         ((t)IXDR_GET_LONG(buf))
-#define IXDR_GET_SHORT(buf)           ((short)IXDR_GET_LONG(buf))
-#define IXDR_GET_U_SHORT(buf)         ((u_short)IXDR_GET_LONG(buf))
-
-#define IXDR_PUT_BOOL(buf, v)         IXDR_PUT_LONG(buf, (long)(v))
-#define IXDR_PUT_ENUM(buf, v)         IXDR_PUT_LONG(buf, (long)(v))
-#define IXDR_PUT_SHORT(buf, v)        IXDR_PUT_LONG(buf, (long)(v))
-#define IXDR_PUT_U_SHORT(buf, v)      IXDR_PUT_LONG(buf, (long)(v))
-
-/*
- * These are the "generic" xdr routines.
- * None of these can have const applied because it's not possible to
- * know whether the call is a read or a write to the passed parameter
- * also, the XDR structure is always updated by some of these calls.
- */
-extern bool_t xdr_void (void) __THROW;
-extern bool_t xdr_short (XDR *__xdrs, short *__sp) __THROW;
-extern bool_t xdr_u_short (XDR *__xdrs, u_short *__usp) __THROW;
-extern bool_t xdr_int (XDR *__xdrs, int *__ip) __THROW;
-extern bool_t xdr_u_int (XDR *__xdrs, u_int *__up) __THROW;
-extern bool_t xdr_long (XDR *__xdrs, long *__lp) __THROW;
-extern bool_t xdr_u_long (XDR *__xdrs, u_long *__ulp) __THROW;
-extern bool_t xdr_hyper (XDR *__xdrs, quad_t *__llp) __THROW;
-extern bool_t xdr_u_hyper (XDR *__xdrs, u_quad_t *__ullp) __THROW;
-extern bool_t xdr_longlong_t (XDR *__xdrs, quad_t *__llp) __THROW;
-extern bool_t xdr_u_longlong_t (XDR *__xdrs, u_quad_t *__ullp) __THROW;
-extern bool_t xdr_int8_t (XDR *__xdrs, int8_t *__ip) __THROW;
-extern bool_t xdr_uint8_t (XDR *__xdrs, uint8_t *__up) __THROW;
-extern bool_t xdr_int16_t (XDR *__xdrs, int16_t *__ip) __THROW;
-extern bool_t xdr_uint16_t (XDR *__xdrs, uint16_t *__up) __THROW;
-extern bool_t xdr_int32_t (XDR *__xdrs, int32_t *__ip) __THROW;
-extern bool_t xdr_uint32_t (XDR *__xdrs, uint32_t *__up) __THROW;
-extern bool_t xdr_int64_t (XDR *__xdrs, int64_t *__ip) __THROW;
-extern bool_t xdr_uint64_t (XDR *__xdrs, uint64_t *__up) __THROW;
-extern bool_t xdr_quad_t (XDR *__xdrs, quad_t *__ip) __THROW;
-extern bool_t xdr_u_quad_t (XDR *__xdrs, u_quad_t *__up) __THROW;
-extern bool_t xdr_bool (XDR *__xdrs, bool_t *__bp) __THROW;
-extern bool_t xdr_enum (XDR *__xdrs, enum_t *__ep) __THROW;
-extern bool_t xdr_array (XDR * _xdrs, caddr_t *__addrp, u_int *__sizep,
-                        u_int __maxsize, u_int __elsize, xdrproc_t __elproc)
-     __THROW;
-extern bool_t xdr_bytes (XDR *__xdrs, char **__cpp, u_int *__sizep,
-                        u_int __maxsize) __THROW;
-extern bool_t xdr_opaque (XDR *__xdrs, caddr_t __cp, u_int __cnt) __THROW;
-extern bool_t xdr_string (XDR *__xdrs, char **__cpp, u_int __maxsize) __THROW;
-extern bool_t xdr_union (XDR *__xdrs, enum_t *__dscmp, char *__unp,
-                        __const struct xdr_discrim *__choices,
-                        xdrproc_t dfault) __THROW;
-extern bool_t xdr_char (XDR *__xdrs, char *__cp) __THROW;
-extern bool_t xdr_u_char (XDR *__xdrs, u_char *__cp) __THROW;
-extern bool_t xdr_vector (XDR *__xdrs, char *__basep, u_int __nelem,
-                         u_int __elemsize, xdrproc_t __xdr_elem) __THROW;
-extern bool_t xdr_float (XDR *__xdrs, float *__fp) __THROW;
-extern bool_t xdr_double (XDR *__xdrs, double *__dp) __THROW;
-extern bool_t xdr_reference (XDR *__xdrs, caddr_t *__xpp, u_int __size,
-                            xdrproc_t __proc) __THROW;
-extern bool_t xdr_pointer (XDR *__xdrs, char **__objpp,
-                          u_int __obj_size, xdrproc_t __xdr_obj) __THROW;
-extern bool_t xdr_wrapstring (XDR *__xdrs, char **__cpp) __THROW;
-extern u_long xdr_sizeof (xdrproc_t, void *) __THROW;
-
-/*
- * Common opaque bytes objects used by many rpc protocols;
- * declared here due to commonality.
- */
-#define MAX_NETOBJ_SZ 1024
-struct netobj
-{
-  u_int n_len;
-  char *n_bytes;
-};
-typedef struct netobj netobj;
-extern bool_t xdr_netobj (XDR *__xdrs, struct netobj *__np) __THROW;
-
-/*
- * These are the public routines for the various implementations of
- * xdr streams.
- */
-
-/* XDR using memory buffers */
-extern void xdrmem_create (XDR *__xdrs, __const caddr_t __addr,
-                          u_int __size, enum xdr_op __xop) __THROW;
-
-/* XDR using stdio library */
-extern void xdrstdio_create (XDR *__xdrs, FILE *__file, enum xdr_op __xop)
-     __THROW;
-
-/* XDR pseudo records for tcp */
-extern void xdrrec_create (XDR *__xdrs, u_int __sendsize,
-                          u_int __recvsize, caddr_t __tcp_handle,
-                          int (*__readit) (char *, char *, int),
-                          int (*__writeit) (char *, char *, int)) __THROW;
-
-/* make end of xdr record */
-extern bool_t xdrrec_endofrecord (XDR *__xdrs, bool_t __sendnow) __THROW;
-
-/* move to beginning of next record */
-extern bool_t xdrrec_skiprecord (XDR *__xdrs) __THROW;
-
-/* true if no more input */
-extern bool_t xdrrec_eof (XDR *__xdrs) __THROW;
-
-/* free memory buffers for xdr */
-extern void xdr_free (xdrproc_t __proc, char *__objp) __THROW;
-
-__END_DECLS
-
-#endif /* rpc/xdr.h */
diff --git a/source/wham/src/xdrf.org/xdr.o b/source/wham/src/xdrf.org/xdr.o
deleted file mode 100644 (file)
index 913a61c..0000000
Binary files a/source/wham/src/xdrf.org/xdr.o and /dev/null differ
diff --git a/source/wham/src/xdrf.org/xdr_array.c b/source/wham/src/xdrf.org/xdr_array.c
deleted file mode 100644 (file)
index 836405c..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-# define INTUSE(name) name
-# define INTDEF(name)
-/* @(#)xdr_array.c     2.1 88/07/29 4.0 RPCSRC */
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)xdr_array.c 1.10 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * xdr_array.c, Generic XDR routines implementation.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- * These are the "non-trivial" xdr primitives used to serialize and de-serialize
- * arrays.  See xdr.h for more info on the interface to xdr.
- */
-
-#include <stdio.h>
-#include <string.h>
-#include "types.h"
-#include "xdr.h"
-#include <libintl.h>
-#include <limits.h>
-
-#ifdef USE_IN_LIBIO
-# include <wchar.h>
-#endif
-
-#define LASTUNSIGNED   ((u_int)0-1)
-
-
-/*
- * XDR an array of arbitrary elements
- * *addrp is a pointer to the array, *sizep is the number of elements.
- * If addrp is NULL (*sizep * elsize) bytes are allocated.
- * elsize is the size (in bytes) of each element, and elproc is the
- * xdr procedure to call to handle each element of the array.
- */
-bool_t
-xdr_array (xdrs, addrp, sizep, maxsize, elsize, elproc)
-     XDR *xdrs;
-     caddr_t *addrp;           /* array pointer */
-     u_int *sizep;             /* number of elements */
-     u_int maxsize;            /* max numberof elements */
-     u_int elsize;             /* size in bytes of each element */
-     xdrproc_t elproc;         /* xdr routine to handle each element */
-{
-  u_int i;
-  caddr_t target = *addrp;
-  u_int c;             /* the actual element count */
-  bool_t stat = TRUE;
-  u_int nodesize;
-
-  /* like strings, arrays are really counted arrays */
-  if (!INTUSE(xdr_u_int) (xdrs, sizep))
-    {
-      return FALSE;
-    }
-  c = *sizep;
-  /*
-   * XXX: Let the overflow possibly happen with XDR_FREE because mem_free()
-   * doesn't actually use its second argument anyway.
-   */
-  if ((c > maxsize || c > UINT_MAX / elsize) && (xdrs->x_op != XDR_FREE))
-    {
-      return FALSE;
-    }
-  nodesize = c * elsize;
-
-  /*
-   * if we are deserializing, we may need to allocate an array.
-   * We also save time by checking for a null array if we are freeing.
-   */
-  if (target == NULL)
-    switch (xdrs->x_op)
-      {
-      case XDR_DECODE:
-       if (c == 0)
-         return TRUE;
-       *addrp = target = mem_alloc (nodesize);
-       if (target == NULL)
-         {
-           fprintf (stderr, "%s", "xdr_array: out of memory\n");
-           return FALSE;
-         }
-       __bzero (target, nodesize);
-       break;
-
-      case XDR_FREE:
-       return TRUE;
-      default:
-       break;
-      }
-
-  /*
-   * now we xdr each element of array
-   */
-  for (i = 0; (i < c) && stat; i++)
-    {
-      stat = (*elproc) (xdrs, target, LASTUNSIGNED);
-      target += elsize;
-    }
-
-  /*
-   * the array may need freeing
-   */
-  if (xdrs->x_op == XDR_FREE)
-    {
-      mem_free (*addrp, nodesize);
-      *addrp = NULL;
-    }
-  return stat;
-}
-INTDEF(xdr_array)
-
-/*
- * xdr_vector():
- *
- * XDR a fixed length array. Unlike variable-length arrays,
- * the storage of fixed length arrays is static and unfreeable.
- * > basep: base of the array
- * > size: size of the array
- * > elemsize: size of each element
- * > xdr_elem: routine to XDR each element
- */
-bool_t
-xdr_vector (xdrs, basep, nelem, elemsize, xdr_elem)
-     XDR *xdrs;
-     char *basep;
-     u_int nelem;
-     u_int elemsize;
-     xdrproc_t xdr_elem;
-{
-  u_int i;
-  char *elptr;
-
-  elptr = basep;
-  for (i = 0; i < nelem; i++)
-    {
-      if (!(*xdr_elem) (xdrs, elptr, LASTUNSIGNED))
-       {
-         return FALSE;
-       }
-      elptr += elemsize;
-    }
-  return TRUE;
-}
diff --git a/source/wham/src/xdrf.org/xdr_array.o b/source/wham/src/xdrf.org/xdr_array.o
deleted file mode 100644 (file)
index 7526a6f..0000000
Binary files a/source/wham/src/xdrf.org/xdr_array.o and /dev/null differ
diff --git a/source/wham/src/xdrf.org/xdr_float.c b/source/wham/src/xdrf.org/xdr_float.c
deleted file mode 100644 (file)
index 15d3c88..0000000
+++ /dev/null
@@ -1,307 +0,0 @@
-/* @(#)xdr_float.c     2.1 88/07/29 4.0 RPCSRC */
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-#if !defined(lint) && defined(SCCSIDS)
-static char sccsid[] = "@(#)xdr_float.c 1.12 87/08/11 Copyr 1984 Sun Micro";
-#endif
-
-/*
- * xdr_float.c, Generic XDR routines implementation.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- * These are the "floating point" xdr routines used to (de)serialize
- * most common data items.  See xdr.h for more info on the interface to
- * xdr.
- */
-
-#include <stdio.h>
-#include <endian.h>
-
-#include "types.h"
-#include "xdr.h"
-
-/*
- * NB: Not portable.
- * This routine works on Suns (Sky / 68000's) and Vaxen.
- */
-
-#define LSW    (__FLOAT_WORD_ORDER == __BIG_ENDIAN)
-
-#ifdef vax
-
-/* What IEEE single precision floating point looks like on a Vax */
-struct ieee_single {
-       unsigned int    mantissa: 23;
-       unsigned int    exp     : 8;
-       unsigned int    sign    : 1;
-};
-
-/* Vax single precision floating point */
-struct vax_single {
-       unsigned int    mantissa1 : 7;
-       unsigned int    exp       : 8;
-       unsigned int    sign      : 1;
-       unsigned int    mantissa2 : 16;
-};
-
-#define VAX_SNG_BIAS   0x81
-#define IEEE_SNG_BIAS  0x7f
-
-static struct sgl_limits {
-       struct vax_single s;
-       struct ieee_single ieee;
-} sgl_limits[2] = {
-       {{ 0x7f, 0xff, 0x0, 0xffff },   /* Max Vax */
-       { 0x0, 0xff, 0x0 }},            /* Max IEEE */
-       {{ 0x0, 0x0, 0x0, 0x0 },        /* Min Vax */
-       { 0x0, 0x0, 0x0 }}              /* Min IEEE */
-};
-#endif /* vax */
-
-bool_t
-xdr_float(xdrs, fp)
-     XDR *xdrs;
-     float *fp;
-{
-#ifdef vax
-       struct ieee_single is;
-       struct vax_single vs, *vsp;
-       struct sgl_limits *lim;
-       int i;
-#endif
-       switch (xdrs->x_op) {
-
-       case XDR_ENCODE:
-#ifdef vax
-               vs = *((struct vax_single *)fp);
-               for (i = 0, lim = sgl_limits;
-                       i < sizeof(sgl_limits)/sizeof(struct sgl_limits);
-                       i++, lim++) {
-                       if ((vs.mantissa2 == lim->s.mantissa2) &&
-                               (vs.exp == lim->s.exp) &&
-                               (vs.mantissa1 == lim->s.mantissa1)) {
-                               is = lim->ieee;
-                               goto shipit;
-                       }
-               }
-               is.exp = vs.exp - VAX_SNG_BIAS + IEEE_SNG_BIAS;
-               is.mantissa = (vs.mantissa1 << 16) | vs.mantissa2;
-       shipit:
-               is.sign = vs.sign;
-               return (XDR_PUTLONG(xdrs, (long *)&is));
-#else
-               if (sizeof(float) == sizeof(long))
-                       return (XDR_PUTLONG(xdrs, (long *)fp));
-               else if (sizeof(float) == sizeof(int)) {
-                       long tmp = *(int *)fp;
-                       return (XDR_PUTLONG(xdrs, &tmp));
-               }
-               break;
-#endif
-
-       case XDR_DECODE:
-#ifdef vax
-               vsp = (struct vax_single *)fp;
-               if (!XDR_GETLONG(xdrs, (long *)&is))
-                       return (FALSE);
-               for (i = 0, lim = sgl_limits;
-                       i < sizeof(sgl_limits)/sizeof(struct sgl_limits);
-                       i++, lim++) {
-                       if ((is.exp == lim->ieee.exp) &&
-                               (is.mantissa == lim->ieee.mantissa)) {
-                               *vsp = lim->s;
-                               goto doneit;
-                       }
-               }
-               vsp->exp = is.exp - IEEE_SNG_BIAS + VAX_SNG_BIAS;
-               vsp->mantissa2 = is.mantissa;
-               vsp->mantissa1 = (is.mantissa >> 16);
-       doneit:
-               vsp->sign = is.sign;
-               return (TRUE);
-#else
-               if (sizeof(float) == sizeof(long))
-                       return (XDR_GETLONG(xdrs, (long *)fp));
-               else if (sizeof(float) == sizeof(int)) {
-                       long tmp;
-                       if (XDR_GETLONG(xdrs, &tmp)) {
-                               *(int *)fp = tmp;
-                               return (TRUE);
-                       }
-               }
-               break;
-#endif
-
-       case XDR_FREE:
-               return (TRUE);
-       }
-       return (FALSE);
-}
-
-/*
- * This routine works on Suns (Sky / 68000's) and Vaxen.
- */
-
-#ifdef vax
-/* What IEEE double precision floating point looks like on a Vax */
-struct ieee_double {
-       unsigned int    mantissa1 : 20;
-       unsigned int    exp       : 11;
-       unsigned int    sign      : 1;
-       unsigned int    mantissa2 : 32;
-};
-
-/* Vax double precision floating point */
-struct  vax_double {
-       unsigned int    mantissa1 : 7;
-       unsigned int    exp       : 8;
-       unsigned int    sign      : 1;
-       unsigned int    mantissa2 : 16;
-       unsigned int    mantissa3 : 16;
-       unsigned int    mantissa4 : 16;
-};
-
-#define VAX_DBL_BIAS   0x81
-#define IEEE_DBL_BIAS  0x3ff
-#define MASK(nbits)    ((1 << nbits) - 1)
-
-static struct dbl_limits {
-       struct  vax_double d;
-       struct  ieee_double ieee;
-} dbl_limits[2] = {
-       {{ 0x7f, 0xff, 0x0, 0xffff, 0xffff, 0xffff },   /* Max Vax */
-       { 0x0, 0x7ff, 0x0, 0x0 }},                      /* Max IEEE */
-       {{ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},               /* Min Vax */
-       { 0x0, 0x0, 0x0, 0x0 }}                         /* Min IEEE */
-};
-
-#endif /* vax */
-
-
-bool_t
-xdr_double(xdrs, dp)
-     XDR *xdrs;
-     double *dp;
-{
-#ifdef vax
-       struct  ieee_double id;
-       struct  vax_double vd;
-       register struct dbl_limits *lim;
-       int i;
-#endif
-
-       switch (xdrs->x_op) {
-
-       case XDR_ENCODE:
-#ifdef vax
-               vd = *((struct vax_double *)dp);
-               for (i = 0, lim = dbl_limits;
-                       i < sizeof(dbl_limits)/sizeof(struct dbl_limits);
-                       i++, lim++) {
-                       if ((vd.mantissa4 == lim->d.mantissa4) &&
-                               (vd.mantissa3 == lim->d.mantissa3) &&
-                               (vd.mantissa2 == lim->d.mantissa2) &&
-                               (vd.mantissa1 == lim->d.mantissa1) &&
-                               (vd.exp == lim->d.exp)) {
-                               id = lim->ieee;
-                               goto shipit;
-                       }
-               }
-               id.exp = vd.exp - VAX_DBL_BIAS + IEEE_DBL_BIAS;
-               id.mantissa1 = (vd.mantissa1 << 13) | (vd.mantissa2 >> 3);
-               id.mantissa2 = ((vd.mantissa2 & MASK(3)) << 29) |
-                               (vd.mantissa3 << 13) |
-                               ((vd.mantissa4 >> 3) & MASK(13));
-       shipit:
-               id.sign = vd.sign;
-               dp = (double *)&id;
-#endif
-               if (2*sizeof(long) == sizeof(double)) {
-                       long *lp = (long *)dp;
-                       return (XDR_PUTLONG(xdrs, lp+!LSW) &&
-                               XDR_PUTLONG(xdrs, lp+LSW));
-               } else if (2*sizeof(int) == sizeof(double)) {
-                       int *ip = (int *)dp;
-                       long tmp[2];
-                       tmp[0] = ip[!LSW];
-                       tmp[1] = ip[LSW];
-                       return (XDR_PUTLONG(xdrs, tmp) &&
-                               XDR_PUTLONG(xdrs, tmp+1));
-               }
-               break;
-
-       case XDR_DECODE:
-#ifdef vax
-               lp = (long *)&id;
-               if (!XDR_GETLONG(xdrs, lp++) || !XDR_GETLONG(xdrs, lp))
-                       return (FALSE);
-               for (i = 0, lim = dbl_limits;
-                       i < sizeof(dbl_limits)/sizeof(struct dbl_limits);
-                       i++, lim++) {
-                       if ((id.mantissa2 == lim->ieee.mantissa2) &&
-                               (id.mantissa1 == lim->ieee.mantissa1) &&
-                               (id.exp == lim->ieee.exp)) {
-                               vd = lim->d;
-                               goto doneit;
-                       }
-               }
-               vd.exp = id.exp - IEEE_DBL_BIAS + VAX_DBL_BIAS;
-               vd.mantissa1 = (id.mantissa1 >> 13);
-               vd.mantissa2 = ((id.mantissa1 & MASK(13)) << 3) |
-                               (id.mantissa2 >> 29);
-               vd.mantissa3 = (id.mantissa2 >> 13);
-               vd.mantissa4 = (id.mantissa2 << 3);
-       doneit:
-               vd.sign = id.sign;
-               *dp = *((double *)&vd);
-               return (TRUE);
-#else
-               if (2*sizeof(long) == sizeof(double)) {
-                       long *lp = (long *)dp;
-                       return (XDR_GETLONG(xdrs, lp+!LSW) &&
-                               XDR_GETLONG(xdrs, lp+LSW));
-               } else if (2*sizeof(int) == sizeof(double)) {
-                       int *ip = (int *)dp;
-                       long tmp[2];
-                       if (XDR_GETLONG(xdrs, tmp+!LSW) &&
-                           XDR_GETLONG(xdrs, tmp+LSW)) {
-                               ip[0] = tmp[0];
-                               ip[1] = tmp[1];
-                               return (TRUE);
-                       }
-               }
-               break;
-#endif
-
-       case XDR_FREE:
-               return (TRUE);
-       }
-       return (FALSE);
-}
diff --git a/source/wham/src/xdrf.org/xdr_float.o b/source/wham/src/xdrf.org/xdr_float.o
deleted file mode 100644 (file)
index ce1fabd..0000000
Binary files a/source/wham/src/xdrf.org/xdr_float.o and /dev/null differ
diff --git a/source/wham/src/xdrf.org/xdr_stdio.c b/source/wham/src/xdrf.org/xdr_stdio.c
deleted file mode 100644 (file)
index 12b1709..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
- * unrestricted use provided that this legend is included on all tape
- * media and as a part of the software program in whole or part.  Users
- * may copy or modify Sun RPC without charge, but are not authorized
- * to license or distribute it to anyone else except as part of a product or
- * program developed by the user.
- *
- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
- *
- * Sun RPC is provided with no support and without any obligation on the
- * part of Sun Microsystems, Inc. to assist in its use, correction,
- * modification or enhancement.
- *
- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
- * OR ANY PART THEREOF.
- *
- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
- * or profits or other special, indirect and consequential damages, even if
- * Sun has been advised of the possibility of such damages.
- *
- * Sun Microsystems, Inc.
- * 2550 Garcia Avenue
- * Mountain View, California  94043
- */
-
-/*
- * xdr_stdio.c, XDR implementation on standard i/o file.
- *
- * Copyright (C) 1984, Sun Microsystems, Inc.
- *
- * This set of routines implements a XDR on a stdio stream.
- * XDR_ENCODE serializes onto the stream, XDR_DECODE de-serializes
- * from the stream.
- */
-
-#include "types.h"
-#include <stdio.h>
-#include "xdr.h"
-
-#ifdef USE_IN_LIBIO
-# include <libio/iolibio.h>
-# define fflush(s) INTUSE(_IO_fflush) (s)
-# define fread(p, m, n, s) INTUSE(_IO_fread) (p, m, n, s)
-# define ftell(s) INTUSE(_IO_ftell) (s)
-# define fwrite(p, m, n, s) INTUSE(_IO_fwrite) (p, m, n, s)
-#endif
-
-static bool_t xdrstdio_getlong (XDR *, long *);
-static bool_t xdrstdio_putlong (XDR *, const long *);
-static bool_t xdrstdio_getbytes (XDR *, caddr_t, u_int);
-static bool_t xdrstdio_putbytes (XDR *, const char *, u_int);
-static u_int xdrstdio_getpos (const XDR *);
-static bool_t xdrstdio_setpos (XDR *, u_int);
-static int32_t *xdrstdio_inline (XDR *, u_int);
-static void xdrstdio_destroy (XDR *);
-static bool_t xdrstdio_getint32 (XDR *, int32_t *);
-static bool_t xdrstdio_putint32 (XDR *, const int32_t *);
-
-/*
- * Ops vector for stdio type XDR
- */
-static const struct xdr_ops xdrstdio_ops =
-{
-  xdrstdio_getlong,            /* deserialize a long int */
-  xdrstdio_putlong,            /* serialize a long int */
-  xdrstdio_getbytes,           /* deserialize counted bytes */
-  xdrstdio_putbytes,           /* serialize counted bytes */
-  xdrstdio_getpos,             /* get offset in the stream */
-  xdrstdio_setpos,             /* set offset in the stream */
-  xdrstdio_inline,             /* prime stream for inline macros */
-  xdrstdio_destroy,            /* destroy stream */
-  xdrstdio_getint32,           /* deserialize a int */
-  xdrstdio_putint32            /* serialize a int */
-};
-
-/*
- * Initialize a stdio xdr stream.
- * Sets the xdr stream handle xdrs for use on the stream file.
- * Operation flag is set to op.
- */
-void
-xdrstdio_create (XDR *xdrs, FILE *file, enum xdr_op op)
-{
-  xdrs->x_op = op;
-  /* We have to add the const since the `struct xdr_ops' in `struct XDR'
-     is not `const'.  */
-  xdrs->x_ops = (struct xdr_ops *) &xdrstdio_ops;
-  xdrs->x_private = (caddr_t) file;
-  xdrs->x_handy = 0;
-  xdrs->x_base = 0;
-}
-
-/*
- * Destroy a stdio xdr stream.
- * Cleans up the xdr stream handle xdrs previously set up by xdrstdio_create.
- */
-static void
-xdrstdio_destroy (XDR *xdrs)
-{
-  (void) fflush ((FILE *) xdrs->x_private);
-  /* xx should we close the file ?? */
-};
-
-static bool_t
-xdrstdio_getlong (XDR *xdrs, long *lp)
-{
-  u_int32_t mycopy;
-
-  if (fread ((caddr_t) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1)
-    return FALSE;
-  *lp = (long) ntohl (mycopy);
-  return TRUE;
-}
-
-static bool_t
-xdrstdio_putlong (XDR *xdrs, const long *lp)
-{
-  int32_t mycopy = htonl ((u_int32_t) *lp);
-
-  if (fwrite ((caddr_t) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1)
-    return FALSE;
-  return TRUE;
-}
-
-static bool_t
-xdrstdio_getbytes (XDR *xdrs, const caddr_t addr, u_int len)
-{
-  if ((len != 0) && (fread (addr, (int) len, 1,
-                           (FILE *) xdrs->x_private) != 1))
-    return FALSE;
-  return TRUE;
-}
-
-static bool_t
-xdrstdio_putbytes (XDR *xdrs, const char *addr, u_int len)
-{
-  if ((len != 0) && (fwrite (addr, (int) len, 1,
-                            (FILE *) xdrs->x_private) != 1))
-    return FALSE;
-  return TRUE;
-}
-
-static u_int
-xdrstdio_getpos (const XDR *xdrs)
-{
-  return (u_int) ftell ((FILE *) xdrs->x_private);
-}
-
-static bool_t
-xdrstdio_setpos (XDR *xdrs, u_int pos)
-{
-  return fseek ((FILE *) xdrs->x_private, (long) pos, 0) < 0 ? FALSE : TRUE;
-}
-
-static int32_t *
-xdrstdio_inline (XDR *xdrs, u_int len)
-{
-  /*
-   * Must do some work to implement this: must insure
-   * enough data in the underlying stdio buffer,
-   * that the buffer is aligned so that we can indirect through a
-   * long *, and stuff this pointer in xdrs->x_buf.  Doing
-   * a fread or fwrite to a scratch buffer would defeat
-   * most of the gains to be had here and require storage
-   * management on this buffer, so we don't do this.
-   */
-  return NULL;
-}
-
-static bool_t
-xdrstdio_getint32 (XDR *xdrs, int32_t *ip)
-{
-  int32_t mycopy;
-
-  if (fread ((caddr_t) &mycopy, 4, 1, (FILE *) xdrs->x_private) != 1)
-    return FALSE;
-  *ip = ntohl (mycopy);
-  return TRUE;
-}
-
-static bool_t
-xdrstdio_putint32 (XDR *xdrs, const int32_t *ip)
-{
-  int32_t mycopy = htonl (*ip);
-
-  ip = &mycopy;
-  if (fwrite ((caddr_t) ip, 4, 1, (FILE *) xdrs->x_private) != 1)
-    return FALSE;
-  return TRUE;
-}
-
-/* libc_hidden_def (xdrstdio_create) */
diff --git a/source/wham/src/xdrf.org/xdr_stdio.o b/source/wham/src/xdrf.org/xdr_stdio.o
deleted file mode 100644 (file)
index 6bb7365..0000000
Binary files a/source/wham/src/xdrf.org/xdr_stdio.o and /dev/null differ
diff --git a/source/wham/src/xdrf.org/xdrf.h b/source/wham/src/xdrf.org/xdrf.h
deleted file mode 100644 (file)
index dedf5a2..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-/*_________________________________________________________________
- |
- | xdrf.h - include file for C routines that want to use the 
- |         functions below.
-*/
-
-int xdropen(XDR *xdrs, const char *filename, const char *type);
-int xdrclose(XDR *xdrs) ;
-int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) ;
-
diff --git a/source/wham/src/xdrf/Makefile b/source/wham/src/xdrf/Makefile
deleted file mode 100644 (file)
index f03276e..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-# This make file is part of the xdrf package.
-#
-# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-#
-# 2006 modified by Cezary Czaplewski
-
-# Set C compiler and flags for ARCH
-CC      = cc
-CFLAGS         = -O 
-
-M4     = m4
-M4FILE = underscore.m4
-
-libxdrf.a:  libxdrf.o ftocstr.o
-       ar cr libxdrf.a $?
-
-clean:
-       rm -f libxdrf.o ftocstr.o libxdrf.a 
-
-ftocstr.o: ftocstr.c
-       $(CC) $(CFLAGS) -c ftocstr.c
-
-libxdrf.o:     libxdrf.m4 $(M4FILE)
-       $(M4) $(M4FILE) libxdrf.m4 > libxdrf.c
-       $(CC) $(CFLAGS) -c libxdrf.c
-       rm -f libxdrf.c
-
diff --git a/source/wham/src/xdrf/Makefile~ b/source/wham/src/xdrf/Makefile~
deleted file mode 100644 (file)
index 0539995..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-# This make file is part of the xdrf package.
-#
-# (C) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-#
-# 2006 modified by Cezary Czaplewski
-
-# Set C compiler and flags for ARCH
-CC      = cc
-CFLAGS         = -O 
-
-M4     = m4
-M4FILE = underscore.m4
-
-libxdrf.a:  libxdrf.o ftocstr.o
-       ar cr libxdrf.a $?
-
-clean:
-       rm -f libxdrfo ftocstr.o libxdrf.a 
-
-ftocstr.o: ftocstr.c
-       $(CC) $(CFLAGS) -c ftocstr.c
-
-libxdrf.o:     libxdrf.m4 $(M4FILE)
-       $(M4) $(M4FILE) libxdrf.m4 > libxdrf.c
-       $(CC) $(CFLAGS) -c libxdrf.c
-       rm -f libxdrf.c
-
diff --git a/source/wham/src/xdrf/ftocstr.c b/source/wham/src/xdrf/ftocstr.c
deleted file mode 100644 (file)
index ed2113f..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-int ftocstr(ds, dl, ss, sl)
-    char *ds, *ss;      /* dst, src ptrs */
-    int dl;             /* dst max len */
-    int sl;             /* src len */
-{
-    char *p;
-
-    for (p = ss + sl; --p >= ss && *p == ' '; ) ;
-    sl = p - ss + 1;
-    dl--;
-    ds[0] = 0;
-    if (sl > dl)
-        return 1;
-    while (sl--)
-       (*ds++ = *ss++);
-    *ds = '\0';
-    return 0;
-}
-
-
-int ctofstr(ds, dl, ss)
-       char *ds;               /* dest space */
-       int dl;                 /* max dest length */
-       char *ss;               /* src string (0-term) */
-{
-    while (dl && *ss) {
-       *ds++ = *ss++;
-       dl--;
-    }
-    while (dl--)
-       *ds++ = ' ';
-    return 0;
-}
diff --git a/source/wham/src/xdrf/libxdrf.m4 b/source/wham/src/xdrf/libxdrf.m4
deleted file mode 100644 (file)
index aecb5b5..0000000
+++ /dev/null
@@ -1,1233 +0,0 @@
-/*____________________________________________________________________________
- |
- | libxdrf - portable fortran interface to xdr. some xdr routines
- |          are C routines for compressed coordinates
- |
- | version 1.1
- |
- | This collection of routines is intended to write and read
- | data in a portable way to a file, so data written on one type
- | of machine can be read back on a different type.
- |
- | all fortran routines use an integer 'xdrid', which is an id to the
- | current xdr file, and is set by xdrfopen.
- | most routines have in integer 'ret' which is the return value.
- | The value of 'ret' is zero on failure, and most of the time one
- | on succes.
- |
- | There are three routines useful for C users:
- |  xdropen(), xdrclose(), xdr3dfcoord().
- | The first two replace xdrstdio_create and xdr_destroy, and *must* be
- | used when you plan to use xdr3dfcoord(). (they are also a bit
- | easier to interface). For writing data other than compressed coordinates 
- | you should use the standard C xdr routines (see xdr man page)
- |
- | xdrfopen(xdrid, filename, mode, ret)
- |     character *(*) filename
- |     character *(*) mode
- |
- |     this will open the file with the given filename (string)
- |     and the given mode, it returns an id in xdrid, which is
- |     to be used in all other calls to xdrf routines.
- |     mode is 'w' to create, or update an file, for all other
- |     values of mode the file is opened for reading
- |
- |     you need to call xdrfclose to flush the output and close
- |     the file.
- |     Note that you should not use xdrstdio_create, which comes with the
- |     standard xdr library
- |
- | xdrfclose(xdrid, ret)
- |     flush the data to the file, and closes the file;
- |     You should not use xdr_destroy (which comes standard with
- |     the xdr libraries.
- |
- | xdrfbool(xdrid, bp, ret)
- |     integer pb
- |
- |     This filter produces values of either 1 or 0    
- |
- | xdrfchar(xdrid, cp, ret)
- |     character cp
- |
- |     filter that translate between characters and their xdr representation
- |     Note that the characters in not compressed and occupies 4 bytes.
- |
- | xdrfdouble(xdrid, dp, ret)
- |     double dp
- |
- |     read/write a double.
- |
- | xdrffloat(xdrid, fp, ret)
- |     float fp
- |
- |     read/write a float.
- |
- | xdrfint(xdrid, ip, ret)
- |     integer ip
- |
- |     read/write integer.
- |
- | xdrflong(xdrid, lp, ret)
- |     integer lp
- |
- |     this routine has a possible portablility problem due to 64 bits longs.
- |
- | xdrfshort(xdrid, sp, ret)
- |     integer *2 sp
- |
- | xdrfstring(xdrid, sp, maxsize, ret)
- |     character *(*)
- |     integer maxsize
- |
- |     read/write a string, with maximum length given by maxsize
- |
- | xdrfwrapstring(xdris, sp, ret)
- |     character *(*)
- |
- |     read/write a string (it is the same as xdrfstring accept that it finds
- |     the stringlength itself.
- |
- | xdrfvector(xdrid, cp, size, xdrfproc, ret)
- |     character *(*)
- |     integer size
- |     external xdrfproc
- |
- |     read/write an array pointed to by cp, with number of elements
- |     defined by 'size'. the routine 'xdrfproc' is the name
- |     of one of the above routines to read/write data (like xdrfdouble)
- |     In contrast with the c-version you don't need to specify the
- |     byte size of an element.
- |     xdrfstring is not allowed here (it is in the c version)
- |     
- | xdrf3dfcoord(xdrid, fp, size, precision, ret)
- |     real (*) fp
- |     real precision
- |     integer size
- |
- |     this is *NOT* a standard xdr routine. I named it this way, because
- |     it invites people to use the other xdr routines.
- |     It is introduced to store specifically 3d coordinates of molecules
- |     (as found in molecular dynamics) and it writes it in a compressed way.
- |     It starts by multiplying all numbers by precision and
- |     rounding the result to integer. effectively converting
- |     all floating point numbers to fixed point.
- |     it uses an algorithm for compression that is optimized for
- |     molecular data, but could be used for other 3d coordinates
- |     as well. There is subtantial overhead involved, so call this
- |     routine only if you have a large number of coordinates to read/write
- |
- | ________________________________________________________________________
- |
- | Below are the routines to be used by C programmers. Use the 'normal'
- | xdr routines to write integers, floats, etc (see man xdr)   
- |
- | int xdropen(XDR *xdrs, const char *filename, const char *type)
- |     This will open the file with the given filename and the 
- |     given mode. You should pass it an allocated XDR struct
- |     in xdrs, to be used in all other calls to xdr routines.
- |     Mode is 'w' to create, or update an file, and for all 
- |     other values of mode the file is opened for reading. 
- |     You need to call xdrclose to flush the output and close
- |     the file.
- |
- |     Note that you should not use xdrstdio_create, which
- |     comes with the standard xdr library.
- |
- | int xdrclose(XDR *xdrs)
- |     Flush the data to the file, and close the file;
- |     You should not use xdr_destroy (which comes standard
- |     with the xdr libraries).
- |      
- | int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision)
- |     This is \fInot\fR a standard xdr routine. I named it this 
- |     way, because it invites people to use the other xdr 
- |     routines.
- |
- |     (c) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-*/     
-
-
-#include <limits.h>
-#include <malloc.h>
-#include <math.h>
-#include <rpc/rpc.h>
-#include <rpc/xdr.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include "xdrf.h"
-
-int ftocstr(char *, int, char *, int);
-int ctofstr(char *, int, char *);
-
-#define MAXID 20
-static FILE *xdrfiles[MAXID];
-static XDR *xdridptr[MAXID];
-static char xdrmodes[MAXID];
-static unsigned int cnt;
-
-typedef void (* FUNCTION(xdrfproc)) (int *, void *, int *);
-
-void
-FUNCTION(xdrfbool) ARGS(`xdrid, pb, ret')
-int *xdrid, *ret;
-int *pb;
-{
-       *ret = xdr_bool(xdridptr[*xdrid], (bool_t *) pb);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrfchar) ARGS(`xdrid, cp, ret')
-int *xdrid, *ret;
-char *cp;
-{
-       *ret = xdr_char(xdridptr[*xdrid], cp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfdouble) ARGS(`xdrid, dp, ret')
-int *xdrid, *ret;
-double *dp;
-{
-       *ret = xdr_double(xdridptr[*xdrid], dp);
-       cnt += sizeof(double);
-}
-
-void
-FUNCTION(xdrffloat) ARGS(`xdrid, fp, ret')
-int *xdrid, *ret;
-float *fp;
-{
-       *ret = xdr_float(xdridptr[*xdrid], fp);
-       cnt += sizeof(float);
-}
-
-void
-FUNCTION(xdrfint) ARGS(`xdrid, ip, ret')
-int *xdrid, *ret;
-int *ip;
-{
-       *ret = xdr_int(xdridptr[*xdrid], ip);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrflong) ARGS(`xdrid, lp, ret')
-int *xdrid, *ret;
-long *lp;
-{
-       *ret = xdr_long(xdridptr[*xdrid], lp);
-       cnt += sizeof(long);
-}
-
-void
-FUNCTION(xdrfshort) ARGS(`xdrid, sp, ret')
-int *xdrid, *ret;
-short *sp;
-{
-       *ret = xdr_short(xdridptr[*xdrid], sp);
-       cnt += sizeof(sp);
-}
-
-void
-FUNCTION(xdrfuchar) ARGS(`xdrid, ucp, ret')
-int *xdrid, *ret;
-char *ucp;
-{
-       *ret = xdr_u_char(xdridptr[*xdrid], ucp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfulong) ARGS(`xdrid, ulp, ret')
-int *xdrid, *ret;
-unsigned long *ulp;
-{
-       *ret = xdr_u_long(xdridptr[*xdrid], ulp);
-       cnt += sizeof(unsigned long);
-}
-
-void
-FUNCTION(xdrfushort) ARGS(`xdrid, usp, ret')
-int *xdrid, *ret;
-unsigned short *usp;
-{
-       *ret = xdr_u_short(xdridptr[*xdrid], usp);
-       cnt += sizeof(unsigned short);
-}
-
-void 
-FUNCTION(xdrf3dfcoord) ARGS(`xdrid, fp, size, precision, ret')
-int *xdrid, *ret;
-float *fp;
-int *size;
-float *precision;
-{
-       *ret = xdr3dfcoord(xdridptr[*xdrid], fp, size, precision);
-}
-
-void
-FUNCTION(xdrfstring) ARGS(`xdrid, STRING_ARG(sp), maxsize, ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-int *maxsize;
-{
-       char *tsp;
-
-       tsp = (char*) malloc(((STRING_LEN(sp)) + 1) * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, *maxsize+1, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int) *maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += *maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfwrapstring) ARGS(`xdrid,  STRING_ARG(sp), ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-{
-       char *tsp;
-       int maxsize;
-       maxsize = (STRING_LEN(sp)) + 1;
-       tsp = (char*) malloc(maxsize * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, maxsize, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int)maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfopaque) ARGS(`xdrid, cp, ccnt, ret')
-int *xdrid, *ret;
-caddr_t *cp;
-int *ccnt;
-{
-       *ret = xdr_opaque(xdridptr[*xdrid], (caddr_t)*cp, (u_int)*ccnt);
-       cnt += *ccnt;
-}
-
-void
-FUNCTION(xdrfsetpos) ARGS(`xdrid, pos, ret')
-int *xdrid, *ret;
-int *pos;
-{
-       *ret = xdr_setpos(xdridptr[*xdrid], (u_int) *pos);
-}
-
-void
-FUNCTION(xdrf) ARGS(`xdrid, pos')
-int *xdrid, *pos;
-{
-       *pos = xdr_getpos(xdridptr[*xdrid]);
-}
-
-void
-FUNCTION(xdrfvector) ARGS(`xdrid, cp, size, elproc, ret')
-int *xdrid, *ret;
-char *cp;
-int *size;
-FUNCTION(xdrfproc) elproc;
-{
-       int lcnt;
-       cnt = 0;
-       for (lcnt = 0; lcnt < *size; lcnt++) {
-               elproc(xdrid, (cp+cnt) , ret);
-       }
-}
-
-
-void
-FUNCTION(xdrfclose) ARGS(`xdrid, ret')
-int *xdrid;
-int *ret;
-{
-       *ret = xdrclose(xdridptr[*xdrid]);
-       cnt = 0;
-}
-
-void
-FUNCTION(xdrfopen) ARGS(`xdrid,  STRING_ARG(fp), STRING_ARG(mode), ret')
-int *xdrid;
-STRING_ARG_DECL(fp);
-STRING_ARG_DECL(mode);
-int *ret;
-{
-       char fname[512];
-       char fmode[3];
-
-       if (ftocstr(fname, sizeof(fname), STRING_PTR(fp), STRING_LEN(fp))) {
-               *ret = 0;
-       }
-       if (ftocstr(fmode, sizeof(fmode), STRING_PTR(mode),
-                       STRING_LEN(mode))) {
-               *ret = 0;
-       }
-
-       *xdrid = xdropen(NULL, fname, fmode);
-       if (*xdrid == 0)
-               *ret = 0;
-       else 
-               *ret = 1;       
-}
-
-/*___________________________________________________________________________
- |
- | what follows are the C routines for opening, closing xdr streams
- | and the routine to read/write compressed coordinates together
- | with some routines to assist in this task (those are marked
- | static and cannot be called from user programs)
-*/
-#define MAXABS INT_MAX-2
-
-#ifndef MIN
-#define MIN(x,y) ((x) < (y) ? (x):(y))
-#endif
-#ifndef MAX
-#define MAX(x,y) ((x) > (y) ? (x):(y))
-#endif
-#ifndef SQR
-#define SQR(x) ((x)*(x))
-#endif
-static int magicints[] = {
-    0, 0, 0, 0, 0, 0, 0, 0, 0,
-    8, 10, 12, 16, 20, 25, 32, 40, 50, 64,
-    80, 101, 128, 161, 203, 256, 322, 406, 512, 645,
-    812, 1024, 1290, 1625, 2048, 2580, 3250, 4096, 5060, 6501,
-    8192, 10321, 13003, 16384, 20642, 26007, 32768, 41285, 52015, 65536,
-    82570, 104031, 131072, 165140, 208063, 262144, 330280, 416127, 524287, 660561,
-    832255, 1048576, 1321122, 1664510, 2097152, 2642245, 3329021, 4194304, 5284491, 6658042,
-    8388607, 10568983, 13316085, 16777216 };
-
-#define FIRSTIDX 9
-/* note that magicints[FIRSTIDX-1] == 0 */
-#define LASTIDX (sizeof(magicints) / sizeof(*magicints))
-
-
-/*__________________________________________________________________________
- |
- | xdropen - open xdr file
- |
- | This versions differs from xdrstdio_create, because I need to know
- | the state of the file (read or write) so I can use xdr3dfcoord
- | in eigther read or write mode, and the file descriptor
- | so I can close the file (something xdr_destroy doesn't do).
- |
-*/
-
-int xdropen(XDR *xdrs, const char *filename, const char *type) {
-    static int init_done = 0;
-    enum xdr_op lmode;
-    const char *type1;
-    int xdrid;
-    
-    if (init_done == 0) {
-       for (xdrid = 1; xdrid < MAXID; xdrid++) {
-           xdridptr[xdrid] = NULL;
-       }
-       init_done = 1;
-    }
-    xdrid = 1;
-    while (xdrid < MAXID && xdridptr[xdrid] != NULL) {
-       xdrid++;
-    }
-    if (xdrid == MAXID) {
-       return 0;
-    }
-    if (*type == 'w' || *type == 'W') {
-           type = "w+";
-           type1 = "a+";
-           lmode = XDR_ENCODE;
-    } else {
-           type = "r";
-            type1 = "r";
-           lmode = XDR_DECODE;
-    }
-    xdrfiles[xdrid] = fopen(filename, type1);
-    if (xdrfiles[xdrid] == NULL) {
-       xdrs = NULL;
-       return 0;
-    }
-    xdrmodes[xdrid] = *type;
-    /* next test isn't usefull in the case of C language
-     * but is used for the Fortran interface
-     * (C users are expected to pass the address of an already allocated
-     * XDR staructure)
-     */
-    if (xdrs == NULL) {
-       xdridptr[xdrid] = (XDR *) malloc(sizeof(XDR));
-       xdrstdio_create(xdridptr[xdrid], xdrfiles[xdrid], lmode);
-    } else {
-       xdridptr[xdrid] = xdrs;
-       xdrstdio_create(xdrs, xdrfiles[xdrid], lmode);
-    }
-    return xdrid;
-}
-
-/*_________________________________________________________________________
- |
- | xdrclose - close a xdr file
- |
- | This will flush the xdr buffers, and destroy the xdr stream.
- | It also closes the associated file descriptor (this is *not*
- | done by xdr_destroy).
- |
-*/
-int xdrclose(XDR *xdrs) {
-    int xdrid;
-    
-    if (xdrs == NULL) {
-       fprintf(stderr, "xdrclose: passed a NULL pointer\n");
-       exit(1);
-    }
-    for (xdrid = 1; xdrid < MAXID; xdrid++) {
-       if (xdridptr[xdrid] == xdrs) {
-           
-           xdr_destroy(xdrs);
-           fclose(xdrfiles[xdrid]);
-           xdridptr[xdrid] = NULL;
-           return 1;
-       }
-    } 
-    fprintf(stderr, "xdrclose: no such open xdr file\n");
-    exit(1);
-    
-}
-
-/*____________________________________________________________________________
- |
- | sendbits - encode num into buf using the specified number of bits
- |
- | This routines appends the value of num to the bits already present in
- | the array buf. You need to give it the number of bits to use and you
- | better make sure that this number of bits is enough to hold the value
- | Also num must be positive.
- |
-*/
-
-static void sendbits(int buf[], int num_of_bits, int num) {
-    
-    unsigned int cnt, lastbyte;
-    int lastbits;
-    unsigned char * cbuf;
-    
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = (unsigned int) buf[0];
-    lastbits = buf[1];
-    lastbyte =(unsigned int) buf[2];
-    while (num_of_bits >= 8) {
-       lastbyte = (lastbyte << 8) | ((num >> (num_of_bits -8)) /* & 0xff*/);
-       cbuf[cnt++] = lastbyte >> lastbits;
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       lastbyte = (lastbyte << num_of_bits) | num;
-       lastbits += num_of_bits;
-       if (lastbits >= 8) {
-           lastbits -= 8;
-           cbuf[cnt++] = lastbyte >> lastbits;
-       }
-    }
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    if (lastbits>0) {
-       cbuf[cnt] = lastbyte << (8 - lastbits);
-    }
-}
-
-/*_________________________________________________________________________
- |
- | sizeofint - calculate bitsize of an integer
- |
- | return the number of bits needed to store an integer with given max size
- |
-*/
-
-static int sizeofint(const int size) {
-    unsigned int num = 1;
-    int num_of_bits = 0;
-    
-    while (size >= num && num_of_bits < 32) {
-       num_of_bits++;
-       num <<= 1;
-    }
-    return num_of_bits;
-}
-
-/*___________________________________________________________________________
- |
- | sizeofints - calculate 'bitsize' of compressed ints
- |
- | given the number of small unsigned integers and the maximum value
- | return the number of bits needed to read or write them with the
- | routines receiveints and sendints. You need this parameter when
- | calling these routines. Note that for many calls I can use
- | the variable 'smallidx' which is exactly the number of bits, and
- | So I don't need to call 'sizeofints for those calls.
-*/
-
-static int sizeofints( const int num_of_ints, unsigned int sizes[]) {
-    int i, num;
-    unsigned int num_of_bytes, num_of_bits, bytes[32], bytecnt, tmp;
-    num_of_bytes = 1;
-    bytes[0] = 1;
-    num_of_bits = 0;
-    for (i=0; i < num_of_ints; i++) {  
-       tmp = 0;
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    num = 1;
-    num_of_bytes--;
-    while (bytes[num_of_bytes] >= num) {
-       num_of_bits++;
-       num *= 2;
-    }
-    return num_of_bits + num_of_bytes * 8;
-
-}
-    
-/*____________________________________________________________________________
- |
- | sendints - send a small set of small integers in compressed format
- |
- | this routine is used internally by xdr3dfcoord, to send a set of
- | small integers to the buffer. 
- | Multiplication with fixed (specified maximum ) sizes is used to get
- | to one big, multibyte integer. Allthough the routine could be
- | modified to handle sizes bigger than 16777216, or more than just
- | a few integers, this is not done, because the gain in compression
- | isn't worth the effort. Note that overflowing the multiplication
- | or the byte buffer (32 bytes) is unchecked and causes bad results.
- |
- */
-static void sendints(int buf[], const int num_of_ints, const int num_of_bits,
-       unsigned int sizes[], unsigned int nums[]) {
-
-    int i;
-    unsigned int bytes[32], num_of_bytes, bytecnt, tmp;
-
-    tmp = nums[0];
-    num_of_bytes = 0;
-    do {
-       bytes[num_of_bytes++] = tmp & 0xff;
-       tmp >>= 8;
-    } while (tmp != 0);
-
-    for (i = 1; i < num_of_ints; i++) {
-       if (nums[i] >= sizes[i]) {
-           fprintf(stderr,"major breakdown in sendints num %d doesn't "
-                   "match size %d\n", nums[i], sizes[i]);
-           exit(1);
-       }
-       /* use one step multiply */    
-       tmp = nums[i];
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    if (num_of_bits >= num_of_bytes * 8) {
-       for (i = 0; i < num_of_bytes; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits - num_of_bytes * 8, 0);
-    } else {
-       for (i = 0; i < num_of_bytes-1; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits- (num_of_bytes -1) * 8, bytes[i]);
-    }
-}
-
-
-/*___________________________________________________________________________
- |
- | receivebits - decode number from buf using specified number of bits
- | 
- | extract the number of bits from the array buf and construct an integer
- | from it. Return that value.
- |
-*/
-
-static int receivebits(int buf[], int num_of_bits) {
-
-    int cnt, num; 
-    unsigned int lastbits, lastbyte;
-    unsigned char * cbuf;
-    int mask = (1 << num_of_bits) -1;
-
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = buf[0];
-    lastbits = (unsigned int) buf[1];
-    lastbyte = (unsigned int) buf[2];
-    
-    num = 0;
-    while (num_of_bits >= 8) {
-       lastbyte = ( lastbyte << 8 ) | cbuf[cnt++];
-       num |=  (lastbyte >> lastbits) << (num_of_bits - 8);
-       num_of_bits -=8;
-    }
-    if (num_of_bits > 0) {
-       if (lastbits < num_of_bits) {
-           lastbits += 8;
-           lastbyte = (lastbyte << 8) | cbuf[cnt++];
-       }
-       lastbits -= num_of_bits;
-       num |= (lastbyte >> lastbits) & ((1 << num_of_bits) -1);
-    }
-    num &= mask;
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    return num; 
-}
-
-/*____________________________________________________________________________
- |
- | receiveints - decode 'small' integers from the buf array
- |
- | this routine is the inverse from sendints() and decodes the small integers
- | written to buf by calculating the remainder and doing divisions with
- | the given sizes[]. You need to specify the total number of bits to be
- | used from buf in num_of_bits.
- |
-*/
-
-static void receiveints(int buf[], const int num_of_ints, int num_of_bits,
-       unsigned int sizes[], int nums[]) {
-    int bytes[32];
-    int i, j, num_of_bytes, p, num;
-    
-    bytes[1] = bytes[2] = bytes[3] = 0;
-    num_of_bytes = 0;
-    while (num_of_bits > 8) {
-       bytes[num_of_bytes++] = receivebits(buf, 8);
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       bytes[num_of_bytes++] = receivebits(buf, num_of_bits);
-    }
-    for (i = num_of_ints-1; i > 0; i--) {
-       num = 0;
-       for (j = num_of_bytes-1; j >=0; j--) {
-           num = (num << 8) | bytes[j];
-           p = num / sizes[i];
-           bytes[j] = p;
-           num = num - p * sizes[i];
-       }
-       nums[i] = num;
-    }
-    nums[0] = bytes[0] | (bytes[1] << 8) | (bytes[2] << 16) | (bytes[3] << 24);
-}
-    
-/*____________________________________________________________________________
- |
- | xdr3dfcoord - read or write compressed 3d coordinates to xdr file.
- |
- | this routine reads or writes (depending on how you opened the file with
- | xdropen() ) a large number of 3d coordinates (stored in *fp).
- | The number of coordinates triplets to write is given by *size. On
- | read this number may be zero, in which case it reads as many as were written
- | or it may specify the number if triplets to read (which should match the
- | number written).
- | Compression is achieved by first converting all floating numbers to integer
- | using multiplication by *precision and rounding to the nearest integer.
- | Then the minimum and maximum value are calculated to determine the range.
- | The limited range of integers so found, is used to compress the coordinates.
- | In addition the differences between succesive coordinates is calculated.
- | If the difference happens to be 'small' then only the difference is saved,
- | compressing the data even more. The notion of 'small' is changed dynamically
- | and is enlarged or reduced whenever needed or possible.
- | Extra compression is achieved in the case of GROMOS and coordinates of
- | water molecules. GROMOS first writes out the Oxygen position, followed by
- | the two hydrogens. In order to make the differences smaller (and thereby
- | compression the data better) the order is changed into first one hydrogen
- | then the oxygen, followed by the other hydrogen. This is rather special, but
- | it shouldn't harm in the general case.
- |
- */
-int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) {
-    
-
-    static int *ip = NULL;
-    static int oldsize;
-    static int *buf;
-
-    int minint[3], maxint[3], mindiff, *lip, diff;
-    int lint1, lint2, lint3, oldlint1, oldlint2, oldlint3, smallidx;
-    int minidx, maxidx;
-    unsigned sizeint[3], sizesmall[3], bitsizeint[3], size3, *luip;
-    int flag, k;
-    int small, smaller, larger, i, is_small, is_smaller, run, prevrun;
-    float *lfp, lf;
-    int tmp, *thiscoord,  prevcoord[3];
-    unsigned int tmpcoord[30];
-
-    int bufsize, xdrid, lsize;
-    unsigned int bitsize;
-    float inv_precision;
-    int errval = 1;
-
-    /* find out if xdrs is opened for reading or for writing */
-    xdrid = 0;
-    while (xdridptr[xdrid] != xdrs) {
-       xdrid++;
-       if (xdrid >= MAXID) {
-           fprintf(stderr, "xdr error. no open xdr stream\n");
-           exit (1);
-       }
-    }
-    if (xdrmodes[xdrid] == 'w') {
-
-       /* xdrs is open for writing */
-
-       if (xdr_int(xdrs, size) == 0)
-           return 0;
-       size3 = *size * 3;
-       /* when the number of coordinates is small, don't try to compress; just
-        * write them as floats using xdr_vector
-        */
-       if (*size <= 9 ) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       /* buf[0-2] are special and do not contain actual data */
-       buf[0] = buf[1] = buf[2] = 0;
-       minint[0] = minint[1] = minint[2] = INT_MAX;
-       maxint[0] = maxint[1] = maxint[2] = INT_MIN;
-       prevrun = -1;
-       lfp = fp;
-       lip = ip;
-       mindiff = INT_MAX;
-       oldlint1 = oldlint2 = oldlint3 = 0;
-       while(lfp < fp + size3 ) {
-           /* find nearest integer */
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint1 = lf;
-           if (lint1 < minint[0]) minint[0] = lint1;
-           if (lint1 > maxint[0]) maxint[0] = lint1;
-           *lip++ = lint1;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint2 = lf;
-           if (lint2 < minint[1]) minint[1] = lint2;
-           if (lint2 > maxint[1]) maxint[1] = lint2;
-           *lip++ = lint2;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint3 = lf;
-           if (lint3 < minint[2]) minint[2] = lint3;
-           if (lint3 > maxint[2]) maxint[2] = lint3;
-           *lip++ = lint3;
-           lfp++;
-           diff = abs(oldlint1-lint1)+abs(oldlint2-lint2)+abs(oldlint3-lint3);
-           if (diff < mindiff && lfp > fp + 3)
-               mindiff = diff;
-           oldlint1 = lint1;
-           oldlint2 = lint2;
-           oldlint3 = lint3;
-       }
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-       
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-       
-       if ((float)maxint[0] - (float)minint[0] >= MAXABS ||
-               (float)maxint[1] - (float)minint[1] >= MAXABS ||
-               (float)maxint[2] - (float)minint[2] >= MAXABS) {
-           /* turning value in unsigned by subtracting minint
-            * would cause overflow
-            */
-           errval = 0;
-       }
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       lip = ip;
-       luip = (unsigned int *) ip;
-       smallidx = FIRSTIDX;
-       while (smallidx < LASTIDX && magicints[smallidx] < mindiff) {
-           smallidx++;
-       }
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-       larger = magicints[maxidx] / 2;
-       i = 0;
-       while (i < *size) {
-           is_small = 0;
-           thiscoord = (int *)(luip) + i * 3;
-           if (smallidx < maxidx && i >= 1 &&
-                   abs(thiscoord[0] - prevcoord[0]) < larger &&
-                   abs(thiscoord[1] - prevcoord[1]) < larger &&
-                   abs(thiscoord[2] - prevcoord[2]) < larger) {
-               is_smaller = 1;
-           } else if (smallidx > minidx) {
-               is_smaller = -1;
-           } else {
-               is_smaller = 0;
-           }
-           if (i + 1 < *size) {
-               if (abs(thiscoord[0] - thiscoord[3]) < small &&
-                       abs(thiscoord[1] - thiscoord[4]) < small &&
-                       abs(thiscoord[2] - thiscoord[5]) < small) {
-                   /* interchange first with second atom for better
-                    * compression of water molecules
-                    */
-                   tmp = thiscoord[0]; thiscoord[0] = thiscoord[3];
-                       thiscoord[3] = tmp;
-                   tmp = thiscoord[1]; thiscoord[1] = thiscoord[4];
-                       thiscoord[4] = tmp;
-                   tmp = thiscoord[2]; thiscoord[2] = thiscoord[5];
-                       thiscoord[5] = tmp;
-                   is_small = 1;
-               }
-    
-           }
-           tmpcoord[0] = thiscoord[0] - minint[0];
-           tmpcoord[1] = thiscoord[1] - minint[1];
-           tmpcoord[2] = thiscoord[2] - minint[2];
-           if (bitsize == 0) {
-               sendbits(buf, bitsizeint[0], tmpcoord[0]);
-               sendbits(buf, bitsizeint[1], tmpcoord[1]);
-               sendbits(buf, bitsizeint[2], tmpcoord[2]);
-           } else {
-               sendints(buf, 3, bitsize, sizeint, tmpcoord);
-           }
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           thiscoord = thiscoord + 3;
-           i++;
-           
-           run = 0;
-           if (is_small == 0 && is_smaller == -1)
-               is_smaller = 0;
-           while (is_small && run < 8*3) {
-               if (is_smaller == -1 && (
-                       SQR(thiscoord[0] - prevcoord[0]) +
-                       SQR(thiscoord[1] - prevcoord[1]) +
-                       SQR(thiscoord[2] - prevcoord[2]) >= smaller * smaller)) {
-                   is_smaller = 0;
-               }
-
-               tmpcoord[run++] = thiscoord[0] - prevcoord[0] + small;
-               tmpcoord[run++] = thiscoord[1] - prevcoord[1] + small;
-               tmpcoord[run++] = thiscoord[2] - prevcoord[2] + small;
-               
-               prevcoord[0] = thiscoord[0];
-               prevcoord[1] = thiscoord[1];
-               prevcoord[2] = thiscoord[2];
-
-               i++;
-               thiscoord = thiscoord + 3;
-               is_small = 0;
-               if (i < *size &&
-                       abs(thiscoord[0] - prevcoord[0]) < small &&
-                       abs(thiscoord[1] - prevcoord[1]) < small &&
-                       abs(thiscoord[2] - prevcoord[2]) < small) {
-                   is_small = 1;
-               }
-           }
-           if (run != prevrun || is_smaller != 0) {
-               prevrun = run;
-               sendbits(buf, 1, 1); /* flag the change in run-length */
-               sendbits(buf, 5, run+is_smaller+1);
-           } else {
-               sendbits(buf, 1, 0); /* flag the fact that runlength did not change */
-           }
-           for (k=0; k < run; k+=3) {
-               sendints(buf, 3, smallidx, sizesmall, &tmpcoord[k]);    
-           }
-           if (is_smaller != 0) {
-               smallidx += is_smaller;
-               if (is_smaller < 0) {
-                   small = smaller;
-                   smaller = magicints[smallidx-1] / 2;
-               } else {
-                   smaller = small;
-                   small = magicints[smallidx] / 2;
-               }
-               sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-           }
-       }
-       if (buf[1] != 0) buf[0]++;;
-       xdr_int(xdrs, &(buf[0])); /* buf[0] holds the length in bytes */
-       return errval * (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]));
-    } else {
-       
-       /* xdrs is open for reading */
-       
-       if (xdr_int(xdrs, &lsize) == 0) 
-           return 0;
-       if (*size != 0 && lsize != *size) {
-           fprintf(stderr, "wrong number of coordinates in xdr3dfcoor; "
-                   "%d arg vs %d in file", *size, lsize);
-       }
-       *size = lsize;
-       size3 = *size * 3;
-       if (*size <= 9) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-               
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       larger = magicints[maxidx];
-
-       /* buf[0] holds the length in bytes */
-
-       if (xdr_int(xdrs, &(buf[0])) == 0)
-           return 0;
-       if (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]) == 0)
-           return 0;
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       lfp = fp;
-       inv_precision = 1.0 / * precision;
-       run = 0;
-       i = 0;
-       lip = ip;
-       while ( i < lsize ) {
-           thiscoord = (int *)(lip) + i * 3;
-
-           if (bitsize == 0) {
-               thiscoord[0] = receivebits(buf, bitsizeint[0]);
-               thiscoord[1] = receivebits(buf, bitsizeint[1]);
-               thiscoord[2] = receivebits(buf, bitsizeint[2]);
-           } else {
-               receiveints(buf, 3, bitsize, sizeint, thiscoord);
-           }
-           
-           i++;
-           thiscoord[0] += minint[0];
-           thiscoord[1] += minint[1];
-           thiscoord[2] += minint[2];
-           
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           
-          
-           flag = receivebits(buf, 1);
-           is_smaller = 0;
-           if (flag == 1) {
-               run = receivebits(buf, 5);
-               is_smaller = run % 3;
-               run -= is_smaller;
-               is_smaller--;
-           }
-           if (run > 0) {
-               thiscoord += 3;
-               for (k = 0; k < run; k+=3) {
-                   receiveints(buf, 3, smallidx, sizesmall, thiscoord);
-                   i++;
-                   thiscoord[0] += prevcoord[0] - small;
-                   thiscoord[1] += prevcoord[1] - small;
-                   thiscoord[2] += prevcoord[2] - small;
-                   if (k == 0) {
-                       /* interchange first with second atom for better
-                        * compression of water molecules
-                        */
-                       tmp = thiscoord[0]; thiscoord[0] = prevcoord[0];
-                               prevcoord[0] = tmp;
-                       tmp = thiscoord[1]; thiscoord[1] = prevcoord[1];
-                               prevcoord[1] = tmp;
-                       tmp = thiscoord[2]; thiscoord[2] = prevcoord[2];
-                               prevcoord[2] = tmp;
-                       *lfp++ = prevcoord[0] * inv_precision;
-                       *lfp++ = prevcoord[1] * inv_precision;
-                       *lfp++ = prevcoord[2] * inv_precision;
-                   } else {
-                       prevcoord[0] = thiscoord[0];
-                       prevcoord[1] = thiscoord[1];
-                       prevcoord[2] = thiscoord[2];
-                   }
-                   *lfp++ = thiscoord[0] * inv_precision;
-                   *lfp++ = thiscoord[1] * inv_precision;
-                   *lfp++ = thiscoord[2] * inv_precision;
-               }
-           } else {
-               *lfp++ = thiscoord[0] * inv_precision;
-               *lfp++ = thiscoord[1] * inv_precision;
-               *lfp++ = thiscoord[2] * inv_precision;          
-           }
-           smallidx += is_smaller;
-           if (is_smaller < 0) {
-               small = smaller;
-               if (smallidx > FIRSTIDX) {
-                   smaller = magicints[smallidx - 1] /2;
-               } else {
-                   smaller = 0;
-               }
-           } else if (is_smaller > 0) {
-               smaller = small;
-               small = magicints[smallidx] / 2;
-           }
-           sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       }
-    }
-    return 1;
-}
-
-
-   
diff --git a/source/wham/src/xdrf/libxdrf.m4.org b/source/wham/src/xdrf/libxdrf.m4.org
deleted file mode 100644 (file)
index b14b374..0000000
+++ /dev/null
@@ -1,1230 +0,0 @@
-/*____________________________________________________________________________
- |
- | libxdrf - portable fortran interface to xdr. some xdr routines
- |          are C routines for compressed coordinates
- |
- | version 1.1
- |
- | This collection of routines is intended to write and read
- | data in a portable way to a file, so data written on one type
- | of machine can be read back on a different type.
- |
- | all fortran routines use an integer 'xdrid', which is an id to the
- | current xdr file, and is set by xdrfopen.
- | most routines have in integer 'ret' which is the return value.
- | The value of 'ret' is zero on failure, and most of the time one
- | on succes.
- |
- | There are three routines useful for C users:
- |  xdropen(), xdrclose(), xdr3dfcoord().
- | The first two replace xdrstdio_create and xdr_destroy, and *must* be
- | used when you plan to use xdr3dfcoord(). (they are also a bit
- | easier to interface). For writing data other than compressed coordinates 
- | you should use the standard C xdr routines (see xdr man page)
- |
- | xdrfopen(xdrid, filename, mode, ret)
- |     character *(*) filename
- |     character *(*) mode
- |
- |     this will open the file with the given filename (string)
- |     and the given mode, it returns an id in xdrid, which is
- |     to be used in all other calls to xdrf routines.
- |     mode is 'w' to create, or update an file, for all other
- |     values of mode the file is opened for reading
- |
- |     you need to call xdrfclose to flush the output and close
- |     the file.
- |     Note that you should not use xdrstdio_create, which comes with the
- |     standard xdr library
- |
- | xdrfclose(xdrid, ret)
- |     flush the data to the file, and closes the file;
- |     You should not use xdr_destroy (which comes standard with
- |     the xdr libraries.
- |
- | xdrfbool(xdrid, bp, ret)
- |     integer pb
- |
- |     This filter produces values of either 1 or 0    
- |
- | xdrfchar(xdrid, cp, ret)
- |     character cp
- |
- |     filter that translate between characters and their xdr representation
- |     Note that the characters in not compressed and occupies 4 bytes.
- |
- | xdrfdouble(xdrid, dp, ret)
- |     double dp
- |
- |     read/write a double.
- |
- | xdrffloat(xdrid, fp, ret)
- |     float fp
- |
- |     read/write a float.
- |
- | xdrfint(xdrid, ip, ret)
- |     integer ip
- |
- |     read/write integer.
- |
- | xdrflong(xdrid, lp, ret)
- |     integer lp
- |
- |     this routine has a possible portablility problem due to 64 bits longs.
- |
- | xdrfshort(xdrid, sp, ret)
- |     integer *2 sp
- |
- | xdrfstring(xdrid, sp, maxsize, ret)
- |     character *(*)
- |     integer maxsize
- |
- |     read/write a string, with maximum length given by maxsize
- |
- | xdrfwrapstring(xdris, sp, ret)
- |     character *(*)
- |
- |     read/write a string (it is the same as xdrfstring accept that it finds
- |     the stringlength itself.
- |
- | xdrfvector(xdrid, cp, size, xdrfproc, ret)
- |     character *(*)
- |     integer size
- |     external xdrfproc
- |
- |     read/write an array pointed to by cp, with number of elements
- |     defined by 'size'. the routine 'xdrfproc' is the name
- |     of one of the above routines to read/write data (like xdrfdouble)
- |     In contrast with the c-version you don't need to specify the
- |     byte size of an element.
- |     xdrfstring is not allowed here (it is in the c version)
- |     
- | xdrf3dfcoord(xdrid, fp, size, precision, ret)
- |     real (*) fp
- |     real precision
- |     integer size
- |
- |     this is *NOT* a standard xdr routine. I named it this way, because
- |     it invites people to use the other xdr routines.
- |     It is introduced to store specifically 3d coordinates of molecules
- |     (as found in molecular dynamics) and it writes it in a compressed way.
- |     It starts by multiplying all numbers by precision and
- |     rounding the result to integer. effectively converting
- |     all floating point numbers to fixed point.
- |     it uses an algorithm for compression that is optimized for
- |     molecular data, but could be used for other 3d coordinates
- |     as well. There is subtantial overhead involved, so call this
- |     routine only if you have a large number of coordinates to read/write
- |
- | ________________________________________________________________________
- |
- | Below are the routines to be used by C programmers. Use the 'normal'
- | xdr routines to write integers, floats, etc (see man xdr)   
- |
- | int xdropen(XDR *xdrs, const char *filename, const char *type)
- |     This will open the file with the given filename and the 
- |     given mode. You should pass it an allocated XDR struct
- |     in xdrs, to be used in all other calls to xdr routines.
- |     Mode is 'w' to create, or update an file, and for all 
- |     other values of mode the file is opened for reading. 
- |     You need to call xdrclose to flush the output and close
- |     the file.
- |
- |     Note that you should not use xdrstdio_create, which
- |     comes with the standard xdr library.
- |
- | int xdrclose(XDR *xdrs)
- |     Flush the data to the file, and close the file;
- |     You should not use xdr_destroy (which comes standard
- |     with the xdr libraries).
- |      
- | int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision)
- |     This is \fInot\fR a standard xdr routine. I named it this 
- |     way, because it invites people to use the other xdr 
- |     routines.
- |
- |     (c) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-*/     
-
-
-#include <limits.h>
-#include <malloc.h>
-#include <math.h>
-#include <rpc/rpc.h>
-#include <rpc/xdr.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include "xdrf.h"
-
-int ftocstr(char *, int, char *, int);
-int ctofstr(char *, int, char *);
-
-#define MAXID 20
-static FILE *xdrfiles[MAXID];
-static XDR *xdridptr[MAXID];
-static char xdrmodes[MAXID];
-static unsigned int cnt;
-
-typedef void (* FUNCTION(xdrfproc)) (int *, void *, int *);
-
-void
-FUNCTION(xdrfbool) ARGS(`xdrid, pb, ret')
-int *xdrid, *ret;
-int *pb;
-{
-       *ret = xdr_bool(xdridptr[*xdrid], (bool_t *) pb);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrfchar) ARGS(`xdrid, cp, ret')
-int *xdrid, *ret;
-char *cp;
-{
-       *ret = xdr_char(xdridptr[*xdrid], cp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfdouble) ARGS(`xdrid, dp, ret')
-int *xdrid, *ret;
-double *dp;
-{
-       *ret = xdr_double(xdridptr[*xdrid], dp);
-       cnt += sizeof(double);
-}
-
-void
-FUNCTION(xdrffloat) ARGS(`xdrid, fp, ret')
-int *xdrid, *ret;
-float *fp;
-{
-       *ret = xdr_float(xdridptr[*xdrid], fp);
-       cnt += sizeof(float);
-}
-
-void
-FUNCTION(xdrfint) ARGS(`xdrid, ip, ret')
-int *xdrid, *ret;
-int *ip;
-{
-       *ret = xdr_int(xdridptr[*xdrid], ip);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrflong) ARGS(`xdrid, lp, ret')
-int *xdrid, *ret;
-long *lp;
-{
-       *ret = xdr_long(xdridptr[*xdrid], lp);
-       cnt += sizeof(long);
-}
-
-void
-FUNCTION(xdrfshort) ARGS(`xdrid, sp, ret')
-int *xdrid, *ret;
-short *sp;
-{
-       *ret = xdr_short(xdridptr[*xdrid], sp);
-       cnt += sizeof(sp);
-}
-
-void
-FUNCTION(xdrfuchar) ARGS(`xdrid, ucp, ret')
-int *xdrid, *ret;
-char *ucp;
-{
-       *ret = xdr_u_char(xdridptr[*xdrid], ucp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfulong) ARGS(`xdrid, ulp, ret')
-int *xdrid, *ret;
-unsigned long *ulp;
-{
-       *ret = xdr_u_long(xdridptr[*xdrid], ulp);
-       cnt += sizeof(unsigned long);
-}
-
-void
-FUNCTION(xdrfushort) ARGS(`xdrid, usp, ret')
-int *xdrid, *ret;
-unsigned short *usp;
-{
-       *ret = xdr_u_short(xdridptr[*xdrid], usp);
-       cnt += sizeof(unsigned short);
-}
-
-void 
-FUNCTION(xdrf3dfcoord) ARGS(`xdrid, fp, size, precision, ret')
-int *xdrid, *ret;
-float *fp;
-int *size;
-float *precision;
-{
-       *ret = xdr3dfcoord(xdridptr[*xdrid], fp, size, precision);
-}
-
-void
-FUNCTION(xdrfstring) ARGS(`xdrid, STRING_ARG(sp), maxsize, ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-int *maxsize;
-{
-       char *tsp;
-
-       tsp = (char*) malloc(((STRING_LEN(sp)) + 1) * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, *maxsize+1, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int) *maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += *maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfwrapstring) ARGS(`xdrid,  STRING_ARG(sp), ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-{
-       char *tsp;
-       int maxsize;
-       maxsize = (STRING_LEN(sp)) + 1;
-       tsp = (char*) malloc(maxsize * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, maxsize, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int)maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfopaque) ARGS(`xdrid, cp, ccnt, ret')
-int *xdrid, *ret;
-caddr_t *cp;
-int *ccnt;
-{
-       *ret = xdr_opaque(xdridptr[*xdrid], (caddr_t)*cp, (u_int)*ccnt);
-       cnt += *ccnt;
-}
-
-void
-FUNCTION(xdrfsetpos) ARGS(`xdrid, pos, ret')
-int *xdrid, *ret;
-int *pos;
-{
-       *ret = xdr_setpos(xdridptr[*xdrid], (u_int) *pos);
-}
-
-void
-FUNCTION(xdrf) ARGS(`xdrid, pos')
-int *xdrid, *pos;
-{
-       *pos = xdr_getpos(xdridptr[*xdrid]);
-}
-
-void
-FUNCTION(xdrfvector) ARGS(`xdrid, cp, size, elproc, ret')
-int *xdrid, *ret;
-char *cp;
-int *size;
-FUNCTION(xdrfproc) elproc;
-{
-       int lcnt;
-       cnt = 0;
-       for (lcnt = 0; lcnt < *size; lcnt++) {
-               elproc(xdrid, (cp+cnt) , ret);
-       }
-}
-
-
-void
-FUNCTION(xdrfclose) ARGS(`xdrid, ret')
-int *xdrid;
-int *ret;
-{
-       *ret = xdrclose(xdridptr[*xdrid]);
-       cnt = 0;
-}
-
-void
-FUNCTION(xdrfopen) ARGS(`xdrid,  STRING_ARG(fp), STRING_ARG(mode), ret')
-int *xdrid;
-STRING_ARG_DECL(fp);
-STRING_ARG_DECL(mode);
-int *ret;
-{
-       char fname[512];
-       char fmode[3];
-
-       if (ftocstr(fname, sizeof(fname), STRING_PTR(fp), STRING_LEN(fp))) {
-               *ret = 0;
-       }
-       if (ftocstr(fmode, sizeof(fmode), STRING_PTR(mode),
-                       STRING_LEN(mode))) {
-               *ret = 0;
-       }
-
-       *xdrid = xdropen(NULL, fname, fmode);
-       if (*xdrid == 0)
-               *ret = 0;
-       else 
-               *ret = 1;       
-}
-
-/*___________________________________________________________________________
- |
- | what follows are the C routines for opening, closing xdr streams
- | and the routine to read/write compressed coordinates together
- | with some routines to assist in this task (those are marked
- | static and cannot be called from user programs)
-*/
-#define MAXABS INT_MAX-2
-
-#ifndef MIN
-#define MIN(x,y) ((x) < (y) ? (x):(y))
-#endif
-#ifndef MAX
-#define MAX(x,y) ((x) > (y) ? (x):(y))
-#endif
-#ifndef SQR
-#define SQR(x) ((x)*(x))
-#endif
-static int magicints[] = {
-    0, 0, 0, 0, 0, 0, 0, 0, 0,
-    8, 10, 12, 16, 20, 25, 32, 40, 50, 64,
-    80, 101, 128, 161, 203, 256, 322, 406, 512, 645,
-    812, 1024, 1290, 1625, 2048, 2580, 3250, 4096, 5060, 6501,
-    8192, 10321, 13003, 16384, 20642, 26007, 32768, 41285, 52015, 65536,
-    82570, 104031, 131072, 165140, 208063, 262144, 330280, 416127, 524287, 660561,
-    832255, 1048576, 1321122, 1664510, 2097152, 2642245, 3329021, 4194304, 5284491, 6658042,
-    8388607, 10568983, 13316085, 16777216 };
-
-#define FIRSTIDX 9
-/* note that magicints[FIRSTIDX-1] == 0 */
-#define LASTIDX (sizeof(magicints) / sizeof(*magicints))
-
-
-/*__________________________________________________________________________
- |
- | xdropen - open xdr file
- |
- | This versions differs from xdrstdio_create, because I need to know
- | the state of the file (read or write) so I can use xdr3dfcoord
- | in eigther read or write mode, and the file descriptor
- | so I can close the file (something xdr_destroy doesn't do).
- |
-*/
-
-int xdropen(XDR *xdrs, const char *filename, const char *type) {
-    static int init_done = 0;
-    enum xdr_op lmode;
-    int xdrid;
-    
-    if (init_done == 0) {
-       for (xdrid = 1; xdrid < MAXID; xdrid++) {
-           xdridptr[xdrid] = NULL;
-       }
-       init_done = 1;
-    }
-    xdrid = 1;
-    while (xdrid < MAXID && xdridptr[xdrid] != NULL) {
-       xdrid++;
-    }
-    if (xdrid == MAXID) {
-       return 0;
-    }
-    if (*type == 'w' || *type == 'W') {
-           type = "w+";
-           lmode = XDR_ENCODE;
-    } else {
-           type = "r";
-           lmode = XDR_DECODE;
-    }
-    xdrfiles[xdrid] = fopen(filename, type);
-    if (xdrfiles[xdrid] == NULL) {
-       xdrs = NULL;
-       return 0;
-    }
-    xdrmodes[xdrid] = *type;
-    /* next test isn't usefull in the case of C language
-     * but is used for the Fortran interface
-     * (C users are expected to pass the address of an already allocated
-     * XDR staructure)
-     */
-    if (xdrs == NULL) {
-       xdridptr[xdrid] = (XDR *) malloc(sizeof(XDR));
-       xdrstdio_create(xdridptr[xdrid], xdrfiles[xdrid], lmode);
-    } else {
-       xdridptr[xdrid] = xdrs;
-       xdrstdio_create(xdrs, xdrfiles[xdrid], lmode);
-    }
-    return xdrid;
-}
-
-/*_________________________________________________________________________
- |
- | xdrclose - close a xdr file
- |
- | This will flush the xdr buffers, and destroy the xdr stream.
- | It also closes the associated file descriptor (this is *not*
- | done by xdr_destroy).
- |
-*/
-int xdrclose(XDR *xdrs) {
-    int xdrid;
-    
-    if (xdrs == NULL) {
-       fprintf(stderr, "xdrclose: passed a NULL pointer\n");
-       exit(1);
-    }
-    for (xdrid = 1; xdrid < MAXID; xdrid++) {
-       if (xdridptr[xdrid] == xdrs) {
-           
-           xdr_destroy(xdrs);
-           fclose(xdrfiles[xdrid]);
-           xdridptr[xdrid] = NULL;
-           return 1;
-       }
-    } 
-    fprintf(stderr, "xdrclose: no such open xdr file\n");
-    exit(1);
-    
-}
-
-/*____________________________________________________________________________
- |
- | sendbits - encode num into buf using the specified number of bits
- |
- | This routines appends the value of num to the bits already present in
- | the array buf. You need to give it the number of bits to use and you
- | better make sure that this number of bits is enough to hold the value
- | Also num must be positive.
- |
-*/
-
-static void sendbits(int buf[], int num_of_bits, int num) {
-    
-    unsigned int cnt, lastbyte;
-    int lastbits;
-    unsigned char * cbuf;
-    
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = (unsigned int) buf[0];
-    lastbits = buf[1];
-    lastbyte =(unsigned int) buf[2];
-    while (num_of_bits >= 8) {
-       lastbyte = (lastbyte << 8) | ((num >> (num_of_bits -8)) /* & 0xff*/);
-       cbuf[cnt++] = lastbyte >> lastbits;
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       lastbyte = (lastbyte << num_of_bits) | num;
-       lastbits += num_of_bits;
-       if (lastbits >= 8) {
-           lastbits -= 8;
-           cbuf[cnt++] = lastbyte >> lastbits;
-       }
-    }
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    if (lastbits>0) {
-       cbuf[cnt] = lastbyte << (8 - lastbits);
-    }
-}
-
-/*_________________________________________________________________________
- |
- | sizeofint - calculate bitsize of an integer
- |
- | return the number of bits needed to store an integer with given max size
- |
-*/
-
-static int sizeofint(const int size) {
-    unsigned int num = 1;
-    int num_of_bits = 0;
-    
-    while (size >= num && num_of_bits < 32) {
-       num_of_bits++;
-       num <<= 1;
-    }
-    return num_of_bits;
-}
-
-/*___________________________________________________________________________
- |
- | sizeofints - calculate 'bitsize' of compressed ints
- |
- | given the number of small unsigned integers and the maximum value
- | return the number of bits needed to read or write them with the
- | routines receiveints and sendints. You need this parameter when
- | calling these routines. Note that for many calls I can use
- | the variable 'smallidx' which is exactly the number of bits, and
- | So I don't need to call 'sizeofints for those calls.
-*/
-
-static int sizeofints( const int num_of_ints, unsigned int sizes[]) {
-    int i, num;
-    unsigned int num_of_bytes, num_of_bits, bytes[32], bytecnt, tmp;
-    num_of_bytes = 1;
-    bytes[0] = 1;
-    num_of_bits = 0;
-    for (i=0; i < num_of_ints; i++) {  
-       tmp = 0;
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    num = 1;
-    num_of_bytes--;
-    while (bytes[num_of_bytes] >= num) {
-       num_of_bits++;
-       num *= 2;
-    }
-    return num_of_bits + num_of_bytes * 8;
-
-}
-    
-/*____________________________________________________________________________
- |
- | sendints - send a small set of small integers in compressed format
- |
- | this routine is used internally by xdr3dfcoord, to send a set of
- | small integers to the buffer. 
- | Multiplication with fixed (specified maximum ) sizes is used to get
- | to one big, multibyte integer. Allthough the routine could be
- | modified to handle sizes bigger than 16777216, or more than just
- | a few integers, this is not done, because the gain in compression
- | isn't worth the effort. Note that overflowing the multiplication
- | or the byte buffer (32 bytes) is unchecked and causes bad results.
- |
- */
-static void sendints(int buf[], const int num_of_ints, const int num_of_bits,
-       unsigned int sizes[], unsigned int nums[]) {
-
-    int i;
-    unsigned int bytes[32], num_of_bytes, bytecnt, tmp;
-
-    tmp = nums[0];
-    num_of_bytes = 0;
-    do {
-       bytes[num_of_bytes++] = tmp & 0xff;
-       tmp >>= 8;
-    } while (tmp != 0);
-
-    for (i = 1; i < num_of_ints; i++) {
-       if (nums[i] >= sizes[i]) {
-           fprintf(stderr,"major breakdown in sendints num %d doesn't "
-                   "match size %d\n", nums[i], sizes[i]);
-           exit(1);
-       }
-       /* use one step multiply */    
-       tmp = nums[i];
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    if (num_of_bits >= num_of_bytes * 8) {
-       for (i = 0; i < num_of_bytes; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits - num_of_bytes * 8, 0);
-    } else {
-       for (i = 0; i < num_of_bytes-1; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits- (num_of_bytes -1) * 8, bytes[i]);
-    }
-}
-
-
-/*___________________________________________________________________________
- |
- | receivebits - decode number from buf using specified number of bits
- | 
- | extract the number of bits from the array buf and construct an integer
- | from it. Return that value.
- |
-*/
-
-static int receivebits(int buf[], int num_of_bits) {
-
-    int cnt, num; 
-    unsigned int lastbits, lastbyte;
-    unsigned char * cbuf;
-    int mask = (1 << num_of_bits) -1;
-
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = buf[0];
-    lastbits = (unsigned int) buf[1];
-    lastbyte = (unsigned int) buf[2];
-    
-    num = 0;
-    while (num_of_bits >= 8) {
-       lastbyte = ( lastbyte << 8 ) | cbuf[cnt++];
-       num |=  (lastbyte >> lastbits) << (num_of_bits - 8);
-       num_of_bits -=8;
-    }
-    if (num_of_bits > 0) {
-       if (lastbits < num_of_bits) {
-           lastbits += 8;
-           lastbyte = (lastbyte << 8) | cbuf[cnt++];
-       }
-       lastbits -= num_of_bits;
-       num |= (lastbyte >> lastbits) & ((1 << num_of_bits) -1);
-    }
-    num &= mask;
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    return num; 
-}
-
-/*____________________________________________________________________________
- |
- | receiveints - decode 'small' integers from the buf array
- |
- | this routine is the inverse from sendints() and decodes the small integers
- | written to buf by calculating the remainder and doing divisions with
- | the given sizes[]. You need to specify the total number of bits to be
- | used from buf in num_of_bits.
- |
-*/
-
-static void receiveints(int buf[], const int num_of_ints, int num_of_bits,
-       unsigned int sizes[], int nums[]) {
-    int bytes[32];
-    int i, j, num_of_bytes, p, num;
-    
-    bytes[1] = bytes[2] = bytes[3] = 0;
-    num_of_bytes = 0;
-    while (num_of_bits > 8) {
-       bytes[num_of_bytes++] = receivebits(buf, 8);
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       bytes[num_of_bytes++] = receivebits(buf, num_of_bits);
-    }
-    for (i = num_of_ints-1; i > 0; i--) {
-       num = 0;
-       for (j = num_of_bytes-1; j >=0; j--) {
-           num = (num << 8) | bytes[j];
-           p = num / sizes[i];
-           bytes[j] = p;
-           num = num - p * sizes[i];
-       }
-       nums[i] = num;
-    }
-    nums[0] = bytes[0] | (bytes[1] << 8) | (bytes[2] << 16) | (bytes[3] << 24);
-}
-    
-/*____________________________________________________________________________
- |
- | xdr3dfcoord - read or write compressed 3d coordinates to xdr file.
- |
- | this routine reads or writes (depending on how you opened the file with
- | xdropen() ) a large number of 3d coordinates (stored in *fp).
- | The number of coordinates triplets to write is given by *size. On
- | read this number may be zero, in which case it reads as many as were written
- | or it may specify the number if triplets to read (which should match the
- | number written).
- | Compression is achieved by first converting all floating numbers to integer
- | using multiplication by *precision and rounding to the nearest integer.
- | Then the minimum and maximum value are calculated to determine the range.
- | The limited range of integers so found, is used to compress the coordinates.
- | In addition the differences between succesive coordinates is calculated.
- | If the difference happens to be 'small' then only the difference is saved,
- | compressing the data even more. The notion of 'small' is changed dynamically
- | and is enlarged or reduced whenever needed or possible.
- | Extra compression is achieved in the case of GROMOS and coordinates of
- | water molecules. GROMOS first writes out the Oxygen position, followed by
- | the two hydrogens. In order to make the differences smaller (and thereby
- | compression the data better) the order is changed into first one hydrogen
- | then the oxygen, followed by the other hydrogen. This is rather special, but
- | it shouldn't harm in the general case.
- |
- */
-int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) {
-    
-
-    static int *ip = NULL;
-    static int oldsize;
-    static int *buf;
-
-    int minint[3], maxint[3], mindiff, *lip, diff;
-    int lint1, lint2, lint3, oldlint1, oldlint2, oldlint3, smallidx;
-    int minidx, maxidx;
-    unsigned sizeint[3], sizesmall[3], bitsizeint[3], size3, *luip;
-    int flag, k;
-    int small, smaller, larger, i, is_small, is_smaller, run, prevrun;
-    float *lfp, lf;
-    int tmp, *thiscoord,  prevcoord[3];
-    unsigned int tmpcoord[30];
-
-    int bufsize, xdrid, lsize;
-    unsigned int bitsize;
-    float inv_precision;
-    int errval = 1;
-
-    /* find out if xdrs is opened for reading or for writing */
-    xdrid = 0;
-    while (xdridptr[xdrid] != xdrs) {
-       xdrid++;
-       if (xdrid >= MAXID) {
-           fprintf(stderr, "xdr error. no open xdr stream\n");
-           exit (1);
-       }
-    }
-    if (xdrmodes[xdrid] == 'w') {
-
-       /* xdrs is open for writing */
-
-       if (xdr_int(xdrs, size) == 0)
-           return 0;
-       size3 = *size * 3;
-       /* when the number of coordinates is small, don't try to compress; just
-        * write them as floats using xdr_vector
-        */
-       if (*size <= 9 ) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       /* buf[0-2] are special and do not contain actual data */
-       buf[0] = buf[1] = buf[2] = 0;
-       minint[0] = minint[1] = minint[2] = INT_MAX;
-       maxint[0] = maxint[1] = maxint[2] = INT_MIN;
-       prevrun = -1;
-       lfp = fp;
-       lip = ip;
-       mindiff = INT_MAX;
-       oldlint1 = oldlint2 = oldlint3 = 0;
-       while(lfp < fp + size3 ) {
-           /* find nearest integer */
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint1 = lf;
-           if (lint1 < minint[0]) minint[0] = lint1;
-           if (lint1 > maxint[0]) maxint[0] = lint1;
-           *lip++ = lint1;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint2 = lf;
-           if (lint2 < minint[1]) minint[1] = lint2;
-           if (lint2 > maxint[1]) maxint[1] = lint2;
-           *lip++ = lint2;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint3 = lf;
-           if (lint3 < minint[2]) minint[2] = lint3;
-           if (lint3 > maxint[2]) maxint[2] = lint3;
-           *lip++ = lint3;
-           lfp++;
-           diff = abs(oldlint1-lint1)+abs(oldlint2-lint2)+abs(oldlint3-lint3);
-           if (diff < mindiff && lfp > fp + 3)
-               mindiff = diff;
-           oldlint1 = lint1;
-           oldlint2 = lint2;
-           oldlint3 = lint3;
-       }
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-       
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-       
-       if ((float)maxint[0] - (float)minint[0] >= MAXABS ||
-               (float)maxint[1] - (float)minint[1] >= MAXABS ||
-               (float)maxint[2] - (float)minint[2] >= MAXABS) {
-           /* turning value in unsigned by subtracting minint
-            * would cause overflow
-            */
-           errval = 0;
-       }
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       lip = ip;
-       luip = (unsigned int *) ip;
-       smallidx = FIRSTIDX;
-       while (smallidx < LASTIDX && magicints[smallidx] < mindiff) {
-           smallidx++;
-       }
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-       larger = magicints[maxidx] / 2;
-       i = 0;
-       while (i < *size) {
-           is_small = 0;
-           thiscoord = (int *)(luip) + i * 3;
-           if (smallidx < maxidx && i >= 1 &&
-                   abs(thiscoord[0] - prevcoord[0]) < larger &&
-                   abs(thiscoord[1] - prevcoord[1]) < larger &&
-                   abs(thiscoord[2] - prevcoord[2]) < larger) {
-               is_smaller = 1;
-           } else if (smallidx > minidx) {
-               is_smaller = -1;
-           } else {
-               is_smaller = 0;
-           }
-           if (i + 1 < *size) {
-               if (abs(thiscoord[0] - thiscoord[3]) < small &&
-                       abs(thiscoord[1] - thiscoord[4]) < small &&
-                       abs(thiscoord[2] - thiscoord[5]) < small) {
-                   /* interchange first with second atom for better
-                    * compression of water molecules
-                    */
-                   tmp = thiscoord[0]; thiscoord[0] = thiscoord[3];
-                       thiscoord[3] = tmp;
-                   tmp = thiscoord[1]; thiscoord[1] = thiscoord[4];
-                       thiscoord[4] = tmp;
-                   tmp = thiscoord[2]; thiscoord[2] = thiscoord[5];
-                       thiscoord[5] = tmp;
-                   is_small = 1;
-               }
-    
-           }
-           tmpcoord[0] = thiscoord[0] - minint[0];
-           tmpcoord[1] = thiscoord[1] - minint[1];
-           tmpcoord[2] = thiscoord[2] - minint[2];
-           if (bitsize == 0) {
-               sendbits(buf, bitsizeint[0], tmpcoord[0]);
-               sendbits(buf, bitsizeint[1], tmpcoord[1]);
-               sendbits(buf, bitsizeint[2], tmpcoord[2]);
-           } else {
-               sendints(buf, 3, bitsize, sizeint, tmpcoord);
-           }
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           thiscoord = thiscoord + 3;
-           i++;
-           
-           run = 0;
-           if (is_small == 0 && is_smaller == -1)
-               is_smaller = 0;
-           while (is_small && run < 8*3) {
-               if (is_smaller == -1 && (
-                       SQR(thiscoord[0] - prevcoord[0]) +
-                       SQR(thiscoord[1] - prevcoord[1]) +
-                       SQR(thiscoord[2] - prevcoord[2]) >= smaller * smaller)) {
-                   is_smaller = 0;
-               }
-
-               tmpcoord[run++] = thiscoord[0] - prevcoord[0] + small;
-               tmpcoord[run++] = thiscoord[1] - prevcoord[1] + small;
-               tmpcoord[run++] = thiscoord[2] - prevcoord[2] + small;
-               
-               prevcoord[0] = thiscoord[0];
-               prevcoord[1] = thiscoord[1];
-               prevcoord[2] = thiscoord[2];
-
-               i++;
-               thiscoord = thiscoord + 3;
-               is_small = 0;
-               if (i < *size &&
-                       abs(thiscoord[0] - prevcoord[0]) < small &&
-                       abs(thiscoord[1] - prevcoord[1]) < small &&
-                       abs(thiscoord[2] - prevcoord[2]) < small) {
-                   is_small = 1;
-               }
-           }
-           if (run != prevrun || is_smaller != 0) {
-               prevrun = run;
-               sendbits(buf, 1, 1); /* flag the change in run-length */
-               sendbits(buf, 5, run+is_smaller+1);
-           } else {
-               sendbits(buf, 1, 0); /* flag the fact that runlength did not change */
-           }
-           for (k=0; k < run; k+=3) {
-               sendints(buf, 3, smallidx, sizesmall, &tmpcoord[k]);    
-           }
-           if (is_smaller != 0) {
-               smallidx += is_smaller;
-               if (is_smaller < 0) {
-                   small = smaller;
-                   smaller = magicints[smallidx-1] / 2;
-               } else {
-                   smaller = small;
-                   small = magicints[smallidx] / 2;
-               }
-               sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-           }
-       }
-       if (buf[1] != 0) buf[0]++;;
-       xdr_int(xdrs, &(buf[0])); /* buf[0] holds the length in bytes */
-       return errval * (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]));
-    } else {
-       
-       /* xdrs is open for reading */
-       
-       if (xdr_int(xdrs, &lsize) == 0) 
-           return 0;
-       if (*size != 0 && lsize != *size) {
-           fprintf(stderr, "wrong number of coordinates in xdr3dfcoor; "
-                   "%d arg vs %d in file", *size, lsize);
-       }
-       *size = lsize;
-       size3 = *size * 3;
-       if (*size <= 9) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-               
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       larger = magicints[maxidx];
-
-       /* buf[0] holds the length in bytes */
-
-       if (xdr_int(xdrs, &(buf[0])) == 0)
-           return 0;
-       if (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]) == 0)
-           return 0;
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       lfp = fp;
-       inv_precision = 1.0 / * precision;
-       run = 0;
-       i = 0;
-       lip = ip;
-       while ( i < lsize ) {
-           thiscoord = (int *)(lip) + i * 3;
-
-           if (bitsize == 0) {
-               thiscoord[0] = receivebits(buf, bitsizeint[0]);
-               thiscoord[1] = receivebits(buf, bitsizeint[1]);
-               thiscoord[2] = receivebits(buf, bitsizeint[2]);
-           } else {
-               receiveints(buf, 3, bitsize, sizeint, thiscoord);
-           }
-           
-           i++;
-           thiscoord[0] += minint[0];
-           thiscoord[1] += minint[1];
-           thiscoord[2] += minint[2];
-           
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           
-          
-           flag = receivebits(buf, 1);
-           is_smaller = 0;
-           if (flag == 1) {
-               run = receivebits(buf, 5);
-               is_smaller = run % 3;
-               run -= is_smaller;
-               is_smaller--;
-           }
-           if (run > 0) {
-               thiscoord += 3;
-               for (k = 0; k < run; k+=3) {
-                   receiveints(buf, 3, smallidx, sizesmall, thiscoord);
-                   i++;
-                   thiscoord[0] += prevcoord[0] - small;
-                   thiscoord[1] += prevcoord[1] - small;
-                   thiscoord[2] += prevcoord[2] - small;
-                   if (k == 0) {
-                       /* interchange first with second atom for better
-                        * compression of water molecules
-                        */
-                       tmp = thiscoord[0]; thiscoord[0] = prevcoord[0];
-                               prevcoord[0] = tmp;
-                       tmp = thiscoord[1]; thiscoord[1] = prevcoord[1];
-                               prevcoord[1] = tmp;
-                       tmp = thiscoord[2]; thiscoord[2] = prevcoord[2];
-                               prevcoord[2] = tmp;
-                       *lfp++ = prevcoord[0] * inv_precision;
-                       *lfp++ = prevcoord[1] * inv_precision;
-                       *lfp++ = prevcoord[2] * inv_precision;
-                   } else {
-                       prevcoord[0] = thiscoord[0];
-                       prevcoord[1] = thiscoord[1];
-                       prevcoord[2] = thiscoord[2];
-                   }
-                   *lfp++ = thiscoord[0] * inv_precision;
-                   *lfp++ = thiscoord[1] * inv_precision;
-                   *lfp++ = thiscoord[2] * inv_precision;
-               }
-           } else {
-               *lfp++ = thiscoord[0] * inv_precision;
-               *lfp++ = thiscoord[1] * inv_precision;
-               *lfp++ = thiscoord[2] * inv_precision;          
-           }
-           smallidx += is_smaller;
-           if (is_smaller < 0) {
-               small = smaller;
-               if (smallidx > FIRSTIDX) {
-                   smaller = magicints[smallidx - 1] /2;
-               } else {
-                   smaller = 0;
-               }
-           } else if (is_smaller > 0) {
-               smaller = small;
-               small = magicints[smallidx] / 2;
-           }
-           sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       }
-    }
-    return 1;
-}
-
-
-   
diff --git a/source/wham/src/xdrf/libxdrf.m4~ b/source/wham/src/xdrf/libxdrf.m4~
deleted file mode 100644 (file)
index 9fd7f48..0000000
+++ /dev/null
@@ -1,1232 +0,0 @@
-/*____________________________________________________________________________
- |
- | libxdrf - portable fortran interface to xdr. some xdr routines
- |          are C routines for compressed coordinates
- |
- | version 1.1
- |
- | This collection of routines is intended to write and read
- | data in a portable way to a file, so data written on one type
- | of machine can be read back on a different type.
- |
- | all fortran routines use an integer 'xdrid', which is an id to the
- | current xdr file, and is set by xdrfopen.
- | most routines have in integer 'ret' which is the return value.
- | The value of 'ret' is zero on failure, and most of the time one
- | on succes.
- |
- | There are three routines useful for C users:
- |  xdropen(), xdrclose(), xdr3dfcoord().
- | The first two replace xdrstdio_create and xdr_destroy, and *must* be
- | used when you plan to use xdr3dfcoord(). (they are also a bit
- | easier to interface). For writing data other than compressed coordinates 
- | you should use the standard C xdr routines (see xdr man page)
- |
- | xdrfopen(xdrid, filename, mode, ret)
- |     character *(*) filename
- |     character *(*) mode
- |
- |     this will open the file with the given filename (string)
- |     and the given mode, it returns an id in xdrid, which is
- |     to be used in all other calls to xdrf routines.
- |     mode is 'w' to create, or update an file, for all other
- |     values of mode the file is opened for reading
- |
- |     you need to call xdrfclose to flush the output and close
- |     the file.
- |     Note that you should not use xdrstdio_create, which comes with the
- |     standard xdr library
- |
- | xdrfclose(xdrid, ret)
- |     flush the data to the file, and closes the file;
- |     You should not use xdr_destroy (which comes standard with
- |     the xdr libraries.
- |
- | xdrfbool(xdrid, bp, ret)
- |     integer pb
- |
- |     This filter produces values of either 1 or 0    
- |
- | xdrfchar(xdrid, cp, ret)
- |     character cp
- |
- |     filter that translate between characters and their xdr representation
- |     Note that the characters in not compressed and occupies 4 bytes.
- |
- | xdrfdouble(xdrid, dp, ret)
- |     double dp
- |
- |     read/write a double.
- |
- | xdrffloat(xdrid, fp, ret)
- |     float fp
- |
- |     read/write a float.
- |
- | xdrfint(xdrid, ip, ret)
- |     integer ip
- |
- |     read/write integer.
- |
- | xdrflong(xdrid, lp, ret)
- |     integer lp
- |
- |     this routine has a possible portablility problem due to 64 bits longs.
- |
- | xdrfshort(xdrid, sp, ret)
- |     integer *2 sp
- |
- | xdrfstring(xdrid, sp, maxsize, ret)
- |     character *(*)
- |     integer maxsize
- |
- |     read/write a string, with maximum length given by maxsize
- |
- | xdrfwrapstring(xdris, sp, ret)
- |     character *(*)
- |
- |     read/write a string (it is the same as xdrfstring accept that it finds
- |     the stringlength itself.
- |
- | xdrfvector(xdrid, cp, size, xdrfproc, ret)
- |     character *(*)
- |     integer size
- |     external xdrfproc
- |
- |     read/write an array pointed to by cp, with number of elements
- |     defined by 'size'. the routine 'xdrfproc' is the name
- |     of one of the above routines to read/write data (like xdrfdouble)
- |     In contrast with the c-version you don't need to specify the
- |     byte size of an element.
- |     xdrfstring is not allowed here (it is in the c version)
- |     
- | xdrf3dfcoord(xdrid, fp, size, precision, ret)
- |     real (*) fp
- |     real precision
- |     integer size
- |
- |     this is *NOT* a standard xdr routine. I named it this way, because
- |     it invites people to use the other xdr routines.
- |     It is introduced to store specifically 3d coordinates of molecules
- |     (as found in molecular dynamics) and it writes it in a compressed way.
- |     It starts by multiplying all numbers by precision and
- |     rounding the result to integer. effectively converting
- |     all floating point numbers to fixed point.
- |     it uses an algorithm for compression that is optimized for
- |     molecular data, but could be used for other 3d coordinates
- |     as well. There is subtantial overhead involved, so call this
- |     routine only if you have a large number of coordinates to read/write
- |
- | ________________________________________________________________________
- |
- | Below are the routines to be used by C programmers. Use the 'normal'
- | xdr routines to write integers, floats, etc (see man xdr)   
- |
- | int xdropen(XDR *xdrs, const char *filename, const char *type)
- |     This will open the file with the given filename and the 
- |     given mode. You should pass it an allocated XDR struct
- |     in xdrs, to be used in all other calls to xdr routines.
- |     Mode is 'w' to create, or update an file, and for all 
- |     other values of mode the file is opened for reading. 
- |     You need to call xdrclose to flush the output and close
- |     the file.
- |
- |     Note that you should not use xdrstdio_create, which
- |     comes with the standard xdr library.
- |
- | int xdrclose(XDR *xdrs)
- |     Flush the data to the file, and close the file;
- |     You should not use xdr_destroy (which comes standard
- |     with the xdr libraries).
- |      
- | int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision)
- |     This is \fInot\fR a standard xdr routine. I named it this 
- |     way, because it invites people to use the other xdr 
- |     routines.
- |
- |     (c) 1995 Frans van Hoesel, hoesel@chem.rug.nl
-*/     
-
-
-#include <limits.h>
-#include <malloc.h>
-#include <math.h>
-#include <rpc/rpc.h>
-#include <rpc/xdr.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include "xdrf.h"
-
-int ftocstr(char *, int, char *, int);
-int ctofstr(char *, int, char *);
-
-#define MAXID 20
-static FILE *xdrfiles[MAXID];
-static XDR *xdridptr[MAXID];
-static char xdrmodes[MAXID];
-static unsigned int cnt;
-
-typedef void (* FUNCTION(xdrfproc)) (int *, void *, int *);
-
-void
-FUNCTION(xdrfbool) ARGS(`xdrid, pb, ret')
-int *xdrid, *ret;
-int *pb;
-{
-       *ret = xdr_bool(xdridptr[*xdrid], (bool_t *) pb);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrfchar) ARGS(`xdrid, cp, ret')
-int *xdrid, *ret;
-char *cp;
-{
-       *ret = xdr_char(xdridptr[*xdrid], cp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfdouble) ARGS(`xdrid, dp, ret')
-int *xdrid, *ret;
-double *dp;
-{
-       *ret = xdr_double(xdridptr[*xdrid], dp);
-       cnt += sizeof(double);
-}
-
-void
-FUNCTION(xdrffloat) ARGS(`xdrid, fp, ret')
-int *xdrid, *ret;
-float *fp;
-{
-       *ret = xdr_float(xdridptr[*xdrid], fp);
-       cnt += sizeof(float);
-}
-
-void
-FUNCTION(xdrfint) ARGS(`xdrid, ip, ret')
-int *xdrid, *ret;
-int *ip;
-{
-       *ret = xdr_int(xdridptr[*xdrid], ip);
-       cnt += sizeof(int);
-}
-
-void
-FUNCTION(xdrflong) ARGS(`xdrid, lp, ret')
-int *xdrid, *ret;
-long *lp;
-{
-       *ret = xdr_long(xdridptr[*xdrid], lp);
-       cnt += sizeof(long);
-}
-
-void
-FUNCTION(xdrfshort) ARGS(`xdrid, sp, ret')
-int *xdrid, *ret;
-short *sp;
-{
-       *ret = xdr_short(xdridptr[*xdrid], sp);
-       cnt += sizeof(sp);
-}
-
-void
-FUNCTION(xdrfuchar) ARGS(`xdrid, ucp, ret')
-int *xdrid, *ret;
-char *ucp;
-{
-       *ret = xdr_u_char(xdridptr[*xdrid], ucp);
-       cnt += sizeof(char);
-}
-
-void
-FUNCTION(xdrfulong) ARGS(`xdrid, ulp, ret')
-int *xdrid, *ret;
-unsigned long *ulp;
-{
-       *ret = xdr_u_long(xdridptr[*xdrid], ulp);
-       cnt += sizeof(unsigned long);
-}
-
-void
-FUNCTION(xdrfushort) ARGS(`xdrid, usp, ret')
-int *xdrid, *ret;
-unsigned short *usp;
-{
-       *ret = xdr_u_short(xdridptr[*xdrid], usp);
-       cnt += sizeof(unsigned short);
-}
-
-void 
-FUNCTION(xdrf3dfcoord) ARGS(`xdrid, fp, size, precision, ret')
-int *xdrid, *ret;
-float *fp;
-int *size;
-float *precision;
-{
-       *ret = xdr3dfcoord(xdridptr[*xdrid], fp, size, precision);
-}
-
-void
-FUNCTION(xdrfstring) ARGS(`xdrid, STRING_ARG(sp), maxsize, ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-int *maxsize;
-{
-       char *tsp;
-
-       tsp = (char*) malloc(((STRING_LEN(sp)) + 1) * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, *maxsize+1, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int) *maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += *maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfwrapstring) ARGS(`xdrid,  STRING_ARG(sp), ret')
-int *xdrid, *ret;
-STRING_ARG_DECL(sp);
-{
-       char *tsp;
-       int maxsize;
-       maxsize = (STRING_LEN(sp)) + 1;
-       tsp = (char*) malloc(maxsize * sizeof(char));
-       if (tsp == NULL) {
-           *ret = -1;
-           return;
-       }
-       if (ftocstr(tsp, maxsize, STRING_PTR(sp), STRING_LEN(sp))) {
-           *ret = -1;
-           free(tsp);
-           return;
-       }
-       *ret = xdr_string(xdridptr[*xdrid], (char **) &tsp, (u_int)maxsize);
-       ctofstr( STRING_PTR(sp), STRING_LEN(sp), tsp);
-       cnt += maxsize;
-       free(tsp);
-}
-
-void
-FUNCTION(xdrfopaque) ARGS(`xdrid, cp, ccnt, ret')
-int *xdrid, *ret;
-caddr_t *cp;
-int *ccnt;
-{
-       *ret = xdr_opaque(xdridptr[*xdrid], (caddr_t)*cp, (u_int)*ccnt);
-       cnt += *ccnt;
-}
-
-void
-FUNCTION(xdrfsetpos) ARGS(`xdrid, pos, ret')
-int *xdrid, *ret;
-int *pos;
-{
-       *ret = xdr_setpos(xdridptr[*xdrid], (u_int) *pos);
-}
-
-void
-FUNCTION(xdrf) ARGS(`xdrid, pos')
-int *xdrid, *pos;
-{
-       *pos = xdr_getpos(xdridptr[*xdrid]);
-}
-
-void
-FUNCTION(xdrfvector) ARGS(`xdrid, cp, size, elproc, ret')
-int *xdrid, *ret;
-char *cp;
-int *size;
-FUNCTION(xdrfproc) elproc;
-{
-       int lcnt;
-       cnt = 0;
-       for (lcnt = 0; lcnt < *size; lcnt++) {
-               elproc(xdrid, (cp+cnt) , ret);
-       }
-}
-
-
-void
-FUNCTION(xdrfclose) ARGS(`xdrid, ret')
-int *xdrid;
-int *ret;
-{
-       *ret = xdrclose(xdridptr[*xdrid]);
-       cnt = 0;
-}
-
-void
-FUNCTION(xdrfopen) ARGS(`xdrid,  STRING_ARG(fp), STRING_ARG(mode), ret')
-int *xdrid;
-STRING_ARG_DECL(fp);
-STRING_ARG_DECL(mode);
-int *ret;
-{
-       char fname[512];
-       char fmode[3];
-
-       if (ftocstr(fname, sizeof(fname), STRING_PTR(fp), STRING_LEN(fp))) {
-               *ret = 0;
-       }
-       if (ftocstr(fmode, sizeof(fmode), STRING_PTR(mode),
-                       STRING_LEN(mode))) {
-               *ret = 0;
-       }
-
-       *xdrid = xdropen(NULL, fname, fmode);
-       if (*xdrid == 0)
-               *ret = 0;
-       else 
-               *ret = 1;       
-}
-
-/*___________________________________________________________________________
- |
- | what follows are the C routines for opening, closing xdr streams
- | and the routine to read/write compressed coordinates together
- | with some routines to assist in this task (those are marked
- | static and cannot be called from user programs)
-*/
-#define MAXABS INT_MAX-2
-
-#ifndef MIN
-#define MIN(x,y) ((x) < (y) ? (x):(y))
-#endif
-#ifndef MAX
-#define MAX(x,y) ((x) > (y) ? (x):(y))
-#endif
-#ifndef SQR
-#define SQR(x) ((x)*(x))
-#endif
-static int magicints[] = {
-    0, 0, 0, 0, 0, 0, 0, 0, 0,
-    8, 10, 12, 16, 20, 25, 32, 40, 50, 64,
-    80, 101, 128, 161, 203, 256, 322, 406, 512, 645,
-    812, 1024, 1290, 1625, 2048, 2580, 3250, 4096, 5060, 6501,
-    8192, 10321, 13003, 16384, 20642, 26007, 32768, 41285, 52015, 65536,
-    82570, 104031, 131072, 165140, 208063, 262144, 330280, 416127, 524287, 660561,
-    832255, 1048576, 1321122, 1664510, 2097152, 2642245, 3329021, 4194304, 5284491, 6658042,
-    8388607, 10568983, 13316085, 16777216 };
-
-#define FIRSTIDX 9
-/* note that magicints[FIRSTIDX-1] == 0 */
-#define LASTIDX (sizeof(magicints) / sizeof(*magicints))
-
-
-/*__________________________________________________________________________
- |
- | xdropen - open xdr file
- |
- | This versions differs from xdrstdio_create, because I need to know
- | the state of the file (read or write) so I can use xdr3dfcoord
- | in eigther read or write mode, and the file descriptor
- | so I can close the file (something xdr_destroy doesn't do).
- |
-*/
-
-int xdropen(XDR *xdrs, const char *filename, const char *type) {
-    static int init_done = 0;
-    enum xdr_op lmode;
-    const char *type1;
-    int xdrid;
-    
-    if (init_done == 0) {
-       for (xdrid = 1; xdrid < MAXID; xdrid++) {
-           xdridptr[xdrid] = NULL;
-       }
-       init_done = 1;
-    }
-    xdrid = 1;
-    while (xdrid < MAXID && xdridptr[xdrid] != NULL) {
-       xdrid++;
-    }
-    if (xdrid == MAXID) {
-       return 0;
-    }
-    if (*type == 'w' || *type == 'W') {
-           type = "w+";
-           type1 = "a+";
-           lmode = XDR_ENCODE;
-    } else {
-           type = "r";
-           lmode = XDR_DECODE;
-    }
-    xdrfiles[xdrid] = fopen(filename, type1);
-    if (xdrfiles[xdrid] == NULL) {
-       xdrs = NULL;
-       return 0;
-    }
-    xdrmodes[xdrid] = *type;
-    /* next test isn't usefull in the case of C language
-     * but is used for the Fortran interface
-     * (C users are expected to pass the address of an already allocated
-     * XDR staructure)
-     */
-    if (xdrs == NULL) {
-       xdridptr[xdrid] = (XDR *) malloc(sizeof(XDR));
-       xdrstdio_create(xdridptr[xdrid], xdrfiles[xdrid], lmode);
-    } else {
-       xdridptr[xdrid] = xdrs;
-       xdrstdio_create(xdrs, xdrfiles[xdrid], lmode);
-    }
-    return xdrid;
-}
-
-/*_________________________________________________________________________
- |
- | xdrclose - close a xdr file
- |
- | This will flush the xdr buffers, and destroy the xdr stream.
- | It also closes the associated file descriptor (this is *not*
- | done by xdr_destroy).
- |
-*/
-int xdrclose(XDR *xdrs) {
-    int xdrid;
-    
-    if (xdrs == NULL) {
-       fprintf(stderr, "xdrclose: passed a NULL pointer\n");
-       exit(1);
-    }
-    for (xdrid = 1; xdrid < MAXID; xdrid++) {
-       if (xdridptr[xdrid] == xdrs) {
-           
-           xdr_destroy(xdrs);
-           fclose(xdrfiles[xdrid]);
-           xdridptr[xdrid] = NULL;
-           return 1;
-       }
-    } 
-    fprintf(stderr, "xdrclose: no such open xdr file\n");
-    exit(1);
-    
-}
-
-/*____________________________________________________________________________
- |
- | sendbits - encode num into buf using the specified number of bits
- |
- | This routines appends the value of num to the bits already present in
- | the array buf. You need to give it the number of bits to use and you
- | better make sure that this number of bits is enough to hold the value
- | Also num must be positive.
- |
-*/
-
-static void sendbits(int buf[], int num_of_bits, int num) {
-    
-    unsigned int cnt, lastbyte;
-    int lastbits;
-    unsigned char * cbuf;
-    
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = (unsigned int) buf[0];
-    lastbits = buf[1];
-    lastbyte =(unsigned int) buf[2];
-    while (num_of_bits >= 8) {
-       lastbyte = (lastbyte << 8) | ((num >> (num_of_bits -8)) /* & 0xff*/);
-       cbuf[cnt++] = lastbyte >> lastbits;
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       lastbyte = (lastbyte << num_of_bits) | num;
-       lastbits += num_of_bits;
-       if (lastbits >= 8) {
-           lastbits -= 8;
-           cbuf[cnt++] = lastbyte >> lastbits;
-       }
-    }
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    if (lastbits>0) {
-       cbuf[cnt] = lastbyte << (8 - lastbits);
-    }
-}
-
-/*_________________________________________________________________________
- |
- | sizeofint - calculate bitsize of an integer
- |
- | return the number of bits needed to store an integer with given max size
- |
-*/
-
-static int sizeofint(const int size) {
-    unsigned int num = 1;
-    int num_of_bits = 0;
-    
-    while (size >= num && num_of_bits < 32) {
-       num_of_bits++;
-       num <<= 1;
-    }
-    return num_of_bits;
-}
-
-/*___________________________________________________________________________
- |
- | sizeofints - calculate 'bitsize' of compressed ints
- |
- | given the number of small unsigned integers and the maximum value
- | return the number of bits needed to read or write them with the
- | routines receiveints and sendints. You need this parameter when
- | calling these routines. Note that for many calls I can use
- | the variable 'smallidx' which is exactly the number of bits, and
- | So I don't need to call 'sizeofints for those calls.
-*/
-
-static int sizeofints( const int num_of_ints, unsigned int sizes[]) {
-    int i, num;
-    unsigned int num_of_bytes, num_of_bits, bytes[32], bytecnt, tmp;
-    num_of_bytes = 1;
-    bytes[0] = 1;
-    num_of_bits = 0;
-    for (i=0; i < num_of_ints; i++) {  
-       tmp = 0;
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    num = 1;
-    num_of_bytes--;
-    while (bytes[num_of_bytes] >= num) {
-       num_of_bits++;
-       num *= 2;
-    }
-    return num_of_bits + num_of_bytes * 8;
-
-}
-    
-/*____________________________________________________________________________
- |
- | sendints - send a small set of small integers in compressed format
- |
- | this routine is used internally by xdr3dfcoord, to send a set of
- | small integers to the buffer. 
- | Multiplication with fixed (specified maximum ) sizes is used to get
- | to one big, multibyte integer. Allthough the routine could be
- | modified to handle sizes bigger than 16777216, or more than just
- | a few integers, this is not done, because the gain in compression
- | isn't worth the effort. Note that overflowing the multiplication
- | or the byte buffer (32 bytes) is unchecked and causes bad results.
- |
- */
-static void sendints(int buf[], const int num_of_ints, const int num_of_bits,
-       unsigned int sizes[], unsigned int nums[]) {
-
-    int i;
-    unsigned int bytes[32], num_of_bytes, bytecnt, tmp;
-
-    tmp = nums[0];
-    num_of_bytes = 0;
-    do {
-       bytes[num_of_bytes++] = tmp & 0xff;
-       tmp >>= 8;
-    } while (tmp != 0);
-
-    for (i = 1; i < num_of_ints; i++) {
-       if (nums[i] >= sizes[i]) {
-           fprintf(stderr,"major breakdown in sendints num %d doesn't "
-                   "match size %d\n", nums[i], sizes[i]);
-           exit(1);
-       }
-       /* use one step multiply */    
-       tmp = nums[i];
-       for (bytecnt = 0; bytecnt < num_of_bytes; bytecnt++) {
-           tmp = bytes[bytecnt] * sizes[i] + tmp;
-           bytes[bytecnt] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       while (tmp != 0) {
-           bytes[bytecnt++] = tmp & 0xff;
-           tmp >>= 8;
-       }
-       num_of_bytes = bytecnt;
-    }
-    if (num_of_bits >= num_of_bytes * 8) {
-       for (i = 0; i < num_of_bytes; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits - num_of_bytes * 8, 0);
-    } else {
-       for (i = 0; i < num_of_bytes-1; i++) {
-           sendbits(buf, 8, bytes[i]);
-       }
-       sendbits(buf, num_of_bits- (num_of_bytes -1) * 8, bytes[i]);
-    }
-}
-
-
-/*___________________________________________________________________________
- |
- | receivebits - decode number from buf using specified number of bits
- | 
- | extract the number of bits from the array buf and construct an integer
- | from it. Return that value.
- |
-*/
-
-static int receivebits(int buf[], int num_of_bits) {
-
-    int cnt, num; 
-    unsigned int lastbits, lastbyte;
-    unsigned char * cbuf;
-    int mask = (1 << num_of_bits) -1;
-
-    cbuf = ((unsigned char *)buf) + 3 * sizeof(*buf);
-    cnt = buf[0];
-    lastbits = (unsigned int) buf[1];
-    lastbyte = (unsigned int) buf[2];
-    
-    num = 0;
-    while (num_of_bits >= 8) {
-       lastbyte = ( lastbyte << 8 ) | cbuf[cnt++];
-       num |=  (lastbyte >> lastbits) << (num_of_bits - 8);
-       num_of_bits -=8;
-    }
-    if (num_of_bits > 0) {
-       if (lastbits < num_of_bits) {
-           lastbits += 8;
-           lastbyte = (lastbyte << 8) | cbuf[cnt++];
-       }
-       lastbits -= num_of_bits;
-       num |= (lastbyte >> lastbits) & ((1 << num_of_bits) -1);
-    }
-    num &= mask;
-    buf[0] = cnt;
-    buf[1] = lastbits;
-    buf[2] = lastbyte;
-    return num; 
-}
-
-/*____________________________________________________________________________
- |
- | receiveints - decode 'small' integers from the buf array
- |
- | this routine is the inverse from sendints() and decodes the small integers
- | written to buf by calculating the remainder and doing divisions with
- | the given sizes[]. You need to specify the total number of bits to be
- | used from buf in num_of_bits.
- |
-*/
-
-static void receiveints(int buf[], const int num_of_ints, int num_of_bits,
-       unsigned int sizes[], int nums[]) {
-    int bytes[32];
-    int i, j, num_of_bytes, p, num;
-    
-    bytes[1] = bytes[2] = bytes[3] = 0;
-    num_of_bytes = 0;
-    while (num_of_bits > 8) {
-       bytes[num_of_bytes++] = receivebits(buf, 8);
-       num_of_bits -= 8;
-    }
-    if (num_of_bits > 0) {
-       bytes[num_of_bytes++] = receivebits(buf, num_of_bits);
-    }
-    for (i = num_of_ints-1; i > 0; i--) {
-       num = 0;
-       for (j = num_of_bytes-1; j >=0; j--) {
-           num = (num << 8) | bytes[j];
-           p = num / sizes[i];
-           bytes[j] = p;
-           num = num - p * sizes[i];
-       }
-       nums[i] = num;
-    }
-    nums[0] = bytes[0] | (bytes[1] << 8) | (bytes[2] << 16) | (bytes[3] << 24);
-}
-    
-/*____________________________________________________________________________
- |
- | xdr3dfcoord - read or write compressed 3d coordinates to xdr file.
- |
- | this routine reads or writes (depending on how you opened the file with
- | xdropen() ) a large number of 3d coordinates (stored in *fp).
- | The number of coordinates triplets to write is given by *size. On
- | read this number may be zero, in which case it reads as many as were written
- | or it may specify the number if triplets to read (which should match the
- | number written).
- | Compression is achieved by first converting all floating numbers to integer
- | using multiplication by *precision and rounding to the nearest integer.
- | Then the minimum and maximum value are calculated to determine the range.
- | The limited range of integers so found, is used to compress the coordinates.
- | In addition the differences between succesive coordinates is calculated.
- | If the difference happens to be 'small' then only the difference is saved,
- | compressing the data even more. The notion of 'small' is changed dynamically
- | and is enlarged or reduced whenever needed or possible.
- | Extra compression is achieved in the case of GROMOS and coordinates of
- | water molecules. GROMOS first writes out the Oxygen position, followed by
- | the two hydrogens. In order to make the differences smaller (and thereby
- | compression the data better) the order is changed into first one hydrogen
- | then the oxygen, followed by the other hydrogen. This is rather special, but
- | it shouldn't harm in the general case.
- |
- */
-int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) {
-    
-
-    static int *ip = NULL;
-    static int oldsize;
-    static int *buf;
-
-    int minint[3], maxint[3], mindiff, *lip, diff;
-    int lint1, lint2, lint3, oldlint1, oldlint2, oldlint3, smallidx;
-    int minidx, maxidx;
-    unsigned sizeint[3], sizesmall[3], bitsizeint[3], size3, *luip;
-    int flag, k;
-    int small, smaller, larger, i, is_small, is_smaller, run, prevrun;
-    float *lfp, lf;
-    int tmp, *thiscoord,  prevcoord[3];
-    unsigned int tmpcoord[30];
-
-    int bufsize, xdrid, lsize;
-    unsigned int bitsize;
-    float inv_precision;
-    int errval = 1;
-
-    /* find out if xdrs is opened for reading or for writing */
-    xdrid = 0;
-    while (xdridptr[xdrid] != xdrs) {
-       xdrid++;
-       if (xdrid >= MAXID) {
-           fprintf(stderr, "xdr error. no open xdr stream\n");
-           exit (1);
-       }
-    }
-    if (xdrmodes[xdrid] == 'w') {
-
-       /* xdrs is open for writing */
-
-       if (xdr_int(xdrs, size) == 0)
-           return 0;
-       size3 = *size * 3;
-       /* when the number of coordinates is small, don't try to compress; just
-        * write them as floats using xdr_vector
-        */
-       if (*size <= 9 ) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       /* buf[0-2] are special and do not contain actual data */
-       buf[0] = buf[1] = buf[2] = 0;
-       minint[0] = minint[1] = minint[2] = INT_MAX;
-       maxint[0] = maxint[1] = maxint[2] = INT_MIN;
-       prevrun = -1;
-       lfp = fp;
-       lip = ip;
-       mindiff = INT_MAX;
-       oldlint1 = oldlint2 = oldlint3 = 0;
-       while(lfp < fp + size3 ) {
-           /* find nearest integer */
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint1 = lf;
-           if (lint1 < minint[0]) minint[0] = lint1;
-           if (lint1 > maxint[0]) maxint[0] = lint1;
-           *lip++ = lint1;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint2 = lf;
-           if (lint2 < minint[1]) minint[1] = lint2;
-           if (lint2 > maxint[1]) maxint[1] = lint2;
-           *lip++ = lint2;
-           lfp++;
-           if (*lfp >= 0.0)
-               lf = *lfp * *precision + 0.5;
-           else
-               lf = *lfp * *precision - 0.5;
-           if (fabs(lf) > MAXABS) {
-               /* scaling would cause overflow */
-               errval = 0;
-           }
-           lint3 = lf;
-           if (lint3 < minint[2]) minint[2] = lint3;
-           if (lint3 > maxint[2]) maxint[2] = lint3;
-           *lip++ = lint3;
-           lfp++;
-           diff = abs(oldlint1-lint1)+abs(oldlint2-lint2)+abs(oldlint3-lint3);
-           if (diff < mindiff && lfp > fp + 3)
-               mindiff = diff;
-           oldlint1 = lint1;
-           oldlint2 = lint2;
-           oldlint3 = lint3;
-       }
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-       
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-       
-       if ((float)maxint[0] - (float)minint[0] >= MAXABS ||
-               (float)maxint[1] - (float)minint[1] >= MAXABS ||
-               (float)maxint[2] - (float)minint[2] >= MAXABS) {
-           /* turning value in unsigned by subtracting minint
-            * would cause overflow
-            */
-           errval = 0;
-       }
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       lip = ip;
-       luip = (unsigned int *) ip;
-       smallidx = FIRSTIDX;
-       while (smallidx < LASTIDX && magicints[smallidx] < mindiff) {
-           smallidx++;
-       }
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-       larger = magicints[maxidx] / 2;
-       i = 0;
-       while (i < *size) {
-           is_small = 0;
-           thiscoord = (int *)(luip) + i * 3;
-           if (smallidx < maxidx && i >= 1 &&
-                   abs(thiscoord[0] - prevcoord[0]) < larger &&
-                   abs(thiscoord[1] - prevcoord[1]) < larger &&
-                   abs(thiscoord[2] - prevcoord[2]) < larger) {
-               is_smaller = 1;
-           } else if (smallidx > minidx) {
-               is_smaller = -1;
-           } else {
-               is_smaller = 0;
-           }
-           if (i + 1 < *size) {
-               if (abs(thiscoord[0] - thiscoord[3]) < small &&
-                       abs(thiscoord[1] - thiscoord[4]) < small &&
-                       abs(thiscoord[2] - thiscoord[5]) < small) {
-                   /* interchange first with second atom for better
-                    * compression of water molecules
-                    */
-                   tmp = thiscoord[0]; thiscoord[0] = thiscoord[3];
-                       thiscoord[3] = tmp;
-                   tmp = thiscoord[1]; thiscoord[1] = thiscoord[4];
-                       thiscoord[4] = tmp;
-                   tmp = thiscoord[2]; thiscoord[2] = thiscoord[5];
-                       thiscoord[5] = tmp;
-                   is_small = 1;
-               }
-    
-           }
-           tmpcoord[0] = thiscoord[0] - minint[0];
-           tmpcoord[1] = thiscoord[1] - minint[1];
-           tmpcoord[2] = thiscoord[2] - minint[2];
-           if (bitsize == 0) {
-               sendbits(buf, bitsizeint[0], tmpcoord[0]);
-               sendbits(buf, bitsizeint[1], tmpcoord[1]);
-               sendbits(buf, bitsizeint[2], tmpcoord[2]);
-           } else {
-               sendints(buf, 3, bitsize, sizeint, tmpcoord);
-           }
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           thiscoord = thiscoord + 3;
-           i++;
-           
-           run = 0;
-           if (is_small == 0 && is_smaller == -1)
-               is_smaller = 0;
-           while (is_small && run < 8*3) {
-               if (is_smaller == -1 && (
-                       SQR(thiscoord[0] - prevcoord[0]) +
-                       SQR(thiscoord[1] - prevcoord[1]) +
-                       SQR(thiscoord[2] - prevcoord[2]) >= smaller * smaller)) {
-                   is_smaller = 0;
-               }
-
-               tmpcoord[run++] = thiscoord[0] - prevcoord[0] + small;
-               tmpcoord[run++] = thiscoord[1] - prevcoord[1] + small;
-               tmpcoord[run++] = thiscoord[2] - prevcoord[2] + small;
-               
-               prevcoord[0] = thiscoord[0];
-               prevcoord[1] = thiscoord[1];
-               prevcoord[2] = thiscoord[2];
-
-               i++;
-               thiscoord = thiscoord + 3;
-               is_small = 0;
-               if (i < *size &&
-                       abs(thiscoord[0] - prevcoord[0]) < small &&
-                       abs(thiscoord[1] - prevcoord[1]) < small &&
-                       abs(thiscoord[2] - prevcoord[2]) < small) {
-                   is_small = 1;
-               }
-           }
-           if (run != prevrun || is_smaller != 0) {
-               prevrun = run;
-               sendbits(buf, 1, 1); /* flag the change in run-length */
-               sendbits(buf, 5, run+is_smaller+1);
-           } else {
-               sendbits(buf, 1, 0); /* flag the fact that runlength did not change */
-           }
-           for (k=0; k < run; k+=3) {
-               sendints(buf, 3, smallidx, sizesmall, &tmpcoord[k]);    
-           }
-           if (is_smaller != 0) {
-               smallidx += is_smaller;
-               if (is_smaller < 0) {
-                   small = smaller;
-                   smaller = magicints[smallidx-1] / 2;
-               } else {
-                   smaller = small;
-                   small = magicints[smallidx] / 2;
-               }
-               sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx];
-           }
-       }
-       if (buf[1] != 0) buf[0]++;;
-       xdr_int(xdrs, &(buf[0])); /* buf[0] holds the length in bytes */
-       return errval * (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]));
-    } else {
-       
-       /* xdrs is open for reading */
-       
-       if (xdr_int(xdrs, &lsize) == 0) 
-           return 0;
-       if (*size != 0 && lsize != *size) {
-           fprintf(stderr, "wrong number of coordinates in xdr3dfcoor; "
-                   "%d arg vs %d in file", *size, lsize);
-       }
-       *size = lsize;
-       size3 = *size * 3;
-       if (*size <= 9) {
-           return (xdr_vector(xdrs, (char *) fp, size3, sizeof(*fp),
-               (xdrproc_t)xdr_float));
-       }
-       xdr_float(xdrs, precision);
-       if (ip == NULL) {
-           ip = (int *)malloc(size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)malloc(bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       } else if (*size > oldsize) {
-           ip = (int *)realloc(ip, size3 * sizeof(*ip));
-           if (ip == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           bufsize = size3 * 1.2;
-           buf = (int *)realloc(buf, bufsize * sizeof(*buf));
-           if (buf == NULL) {
-               fprintf(stderr,"malloc failed\n");
-               exit(1);
-           }
-           oldsize = *size;
-       }
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       xdr_int(xdrs, &(minint[0]));
-       xdr_int(xdrs, &(minint[1]));
-       xdr_int(xdrs, &(minint[2]));
-
-       xdr_int(xdrs, &(maxint[0]));
-       xdr_int(xdrs, &(maxint[1]));
-       xdr_int(xdrs, &(maxint[2]));
-               
-       sizeint[0] = maxint[0] - minint[0]+1;
-       sizeint[1] = maxint[1] - minint[1]+1;
-       sizeint[2] = maxint[2] - minint[2]+1;
-       
-       /* check if one of the sizes is to big to be multiplied */
-       if ((sizeint[0] | sizeint[1] | sizeint[2] ) > 0xffffff) {
-           bitsizeint[0] = sizeofint(sizeint[0]);
-           bitsizeint[1] = sizeofint(sizeint[1]);
-           bitsizeint[2] = sizeofint(sizeint[2]);
-           bitsize = 0; /* flag the use of large sizes */
-       } else {
-           bitsize = sizeofints(3, sizeint);
-       }
-       
-       xdr_int(xdrs, &smallidx);
-       maxidx = MIN(LASTIDX, smallidx + 8) ;
-       minidx = maxidx - 8; /* often this equal smallidx */
-       smaller = magicints[MAX(FIRSTIDX, smallidx-1)] / 2;
-       small = magicints[smallidx] / 2;
-       sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       larger = magicints[maxidx];
-
-       /* buf[0] holds the length in bytes */
-
-       if (xdr_int(xdrs, &(buf[0])) == 0)
-           return 0;
-       if (xdr_opaque(xdrs, (caddr_t)&(buf[3]), (u_int)buf[0]) == 0)
-           return 0;
-       buf[0] = buf[1] = buf[2] = 0;
-       
-       lfp = fp;
-       inv_precision = 1.0 / * precision;
-       run = 0;
-       i = 0;
-       lip = ip;
-       while ( i < lsize ) {
-           thiscoord = (int *)(lip) + i * 3;
-
-           if (bitsize == 0) {
-               thiscoord[0] = receivebits(buf, bitsizeint[0]);
-               thiscoord[1] = receivebits(buf, bitsizeint[1]);
-               thiscoord[2] = receivebits(buf, bitsizeint[2]);
-           } else {
-               receiveints(buf, 3, bitsize, sizeint, thiscoord);
-           }
-           
-           i++;
-           thiscoord[0] += minint[0];
-           thiscoord[1] += minint[1];
-           thiscoord[2] += minint[2];
-           
-           prevcoord[0] = thiscoord[0];
-           prevcoord[1] = thiscoord[1];
-           prevcoord[2] = thiscoord[2];
-           
-          
-           flag = receivebits(buf, 1);
-           is_smaller = 0;
-           if (flag == 1) {
-               run = receivebits(buf, 5);
-               is_smaller = run % 3;
-               run -= is_smaller;
-               is_smaller--;
-           }
-           if (run > 0) {
-               thiscoord += 3;
-               for (k = 0; k < run; k+=3) {
-                   receiveints(buf, 3, smallidx, sizesmall, thiscoord);
-                   i++;
-                   thiscoord[0] += prevcoord[0] - small;
-                   thiscoord[1] += prevcoord[1] - small;
-                   thiscoord[2] += prevcoord[2] - small;
-                   if (k == 0) {
-                       /* interchange first with second atom for better
-                        * compression of water molecules
-                        */
-                       tmp = thiscoord[0]; thiscoord[0] = prevcoord[0];
-                               prevcoord[0] = tmp;
-                       tmp = thiscoord[1]; thiscoord[1] = prevcoord[1];
-                               prevcoord[1] = tmp;
-                       tmp = thiscoord[2]; thiscoord[2] = prevcoord[2];
-                               prevcoord[2] = tmp;
-                       *lfp++ = prevcoord[0] * inv_precision;
-                       *lfp++ = prevcoord[1] * inv_precision;
-                       *lfp++ = prevcoord[2] * inv_precision;
-                   } else {
-                       prevcoord[0] = thiscoord[0];
-                       prevcoord[1] = thiscoord[1];
-                       prevcoord[2] = thiscoord[2];
-                   }
-                   *lfp++ = thiscoord[0] * inv_precision;
-                   *lfp++ = thiscoord[1] * inv_precision;
-                   *lfp++ = thiscoord[2] * inv_precision;
-               }
-           } else {
-               *lfp++ = thiscoord[0] * inv_precision;
-               *lfp++ = thiscoord[1] * inv_precision;
-               *lfp++ = thiscoord[2] * inv_precision;          
-           }
-           smallidx += is_smaller;
-           if (is_smaller < 0) {
-               small = smaller;
-               if (smallidx > FIRSTIDX) {
-                   smaller = magicints[smallidx - 1] /2;
-               } else {
-                   smaller = 0;
-               }
-           } else if (is_smaller > 0) {
-               smaller = small;
-               small = magicints[smallidx] / 2;
-           }
-           sizesmall[0] = sizesmall[1] = sizesmall[2] = magicints[smallidx] ;
-       }
-    }
-    return 1;
-}
-
-
-   
diff --git a/source/wham/src/xdrf/underscore.m4 b/source/wham/src/xdrf/underscore.m4
deleted file mode 100644 (file)
index 4d620a0..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-divert(-1)
-undefine(`len')
-#
-# append an underscore to FORTRAN function names
-#
-define(`FUNCTION',`$1_')
-#
-# FORTRAN character strings are passed as follows:
-# a pointer to the base of the string is passed in the normal
-# argument list, and the length is passed by value as an extra
-# argument, after all of the other arguments.
-#
-define(`ARGS',`($1`'undivert(1))')
-define(`SAVE',`divert(1)$1`'divert(0)')
-define(`STRING_ARG',`$1_ptr`'SAVE(`, $1_len')')
-define(`STRING_ARG_DECL',`char * $1_ptr; int $1_len')
-define(`STRING_LEN',`$1_len')
-define(`STRING_PTR',`$1_ptr')
-divert(0)
diff --git a/source/wham/src/xdrf/xdrf.h b/source/wham/src/xdrf/xdrf.h
deleted file mode 100644 (file)
index dedf5a2..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-/*_________________________________________________________________
- |
- | xdrf.h - include file for C routines that want to use the 
- |         functions below.
-*/
-
-int xdropen(XDR *xdrs, const char *filename, const char *type);
-int xdrclose(XDR *xdrs) ;
-int xdr3dfcoord(XDR *xdrs, float *fp, int *size, float *precision) ;
-
diff --git a/source/xdrfpdb/src-M/CMakeLists.txt b/source/xdrfpdb/src-M/CMakeLists.txt
new file mode 100644 (file)
index 0000000..6346acb
--- /dev/null
@@ -0,0 +1,69 @@
+# Set of programs to convert UNRES xdrf format (compressed Cartesian coordinates) to PDF
+# or raw-Cartesian format (*.x) or to extract backbone angular coordinates (*.ang)
+# The pdb files can be constructed from canonical or MREMD trajectories.
+#
+# The xdrf library is required
+#
+# Programs
+#
+# xdrf2pdb   : converts a single cx trajectory file to PDB format
+# xdrf2x     : converts a single cx trajectory file to raw-coordinate (x) format
+# xdrf2ang   : extracts backbone angles from a cx trajectory file
+# xdrf2pdb-m : converts a selected trajectory of a MREMD run dumpend into a cx file to PDB format
+#
+# xdrf2pdb1  : converts conformation(s) selected from a wham post-processing run into PDB format
+# xdrf2x1    : converts conformation(s) selected from a wham post-processing run into raw (x) format.
+#
+# 9/23/2010 A. Liwo
+#
+# CMake file by D. JagieÅ‚a
+# 
+
+set(UNRES_XDRF_XDRF2PDB_SRC-M
+       xdrf2pdb.F
+       geomout.F
+       misc.f
+       rescode.f
+       nazwy.f
+)
+
+set(UNRES_XDRF_XDRF2PDB-M_SRC-M
+       xdrf2pdb-m.F
+       geomout.F
+       misc.f
+       rescode.f
+       nazwy.f
+)
+
+
+set(UNRES_XDRF_PP_SRC-M
+       geomout.F
+       xdrf2pdb.F
+       xdrf2pdb-m.F
+       xdrf2x.F        
+)
+
+set(CPPFLAGS "PROCOR -DUNRES -DMP -DMPI -DSPLITELE -DNEWUNRES" )
+
+#=========================================
+# System specific flags
+#=========================================
+if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+  set(CPPFLAGS "${CPPFLAGS} -DLINUX")
+endif(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+
+# Apply preprocesor flags to *.F files
+set_property(SOURCE ${UNRES_XDRF_PP_SRC-M} PROPERTY COMPILE_DEFINITIONS ${CPPFLAGS} )
+
+#=========================================
+# Build the binaries
+#=========================================
+add_executable(UNRES_XDRF2PDB_BIN-M   ${UNRES_XDRF_XDRF2PDB_SRC-M} )
+target_link_libraries(UNRES_XDRF2PDB_BIN-M xdrf )
+set_target_properties(UNRES_XDRF2PDB_BIN-M PROPERTIES OUTPUT_NAME xdrf2pdb )
+
+add_executable(UNRES_XDRF2PDBM_BIN-M ${UNRES_XDRF_XDRF2PDB-M_SRC-M} )
+target_link_libraries( UNRES_XDRF2PDBM_BIN-M xdrf )
+set_target_properties(UNRES_XDRF2PDBM_BIN-M PROPERTIES OUTPUT_NAME xdrf2pdb-m )
+
index ad4cb10..118148a 100644 (file)
@@ -40,7 +40,8 @@
    10   continue
         nres=i
         i=0
-        do while (.not.iblnk(sequenc(i+1)(1:1)))
+c        do while (.not.iblnk(sequenc(i+1)(1:1)))
+        do while (.not.(iblnk(sequenc(i+1)(1:1))==0) )
           i=i+1
         enddo 
         nres=i
@@ -52,7 +53,8 @@
    11   continue
         nres=i
         i=0
-        do while (.not.iblnk(sequenc(i+1)(1:1)))
+c        do while (.not.iblnk(sequenc(i+1)(1:1)))
+        do while (.not.(iblnk(sequenc(i+1)(1:1))==0))
           i=i+1
         enddo 
         nres=i
diff --git a/source/xdrfpdb/src-M/xdrf2pdb1.f b/source/xdrfpdb/src-M/xdrf2pdb1.f
deleted file mode 100644 (file)
index f41d0a0..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-      implicit real*8 (a-h,o-z)
-      include 'DIMENSIONS'
-      include 'COMMON.CHAIN'
-      include 'COMMON.INTERACT'
-      include 'COMMON.SBRIDGE'
-      real*4 coord(3,1000)
-      real*4 prec,potE,efree,rmsdev
-      real*8 etot
-      character*80 arg,seqfile,pdbfile
-      character*3 sequenc(maxres)
-      character*50 tytul
-      character*8 onethree,cfreq
-      character*8 ucase
-      external ucase
-      logical oneletter
-      integer rescode
-      external rescode
-      
-      ifreq=1
-      if (iargc().lt.4) then
-        print '(a)',
-     &    "Usage: xdrf2pdb one/three seqfile cxfile conf [pdbfile]"
-        stop
-      endif
-      call getarg(1,onethree)
-      onethree = ucase(onethree)
-      if (onethree.eq.'ONE') then
-        oneletter = .true.
-      else if (onethree.eq.'THREE') then
-        oneletter = .false.
-      else
-        print *,"ONE or THREE must be specified"
-      endif
-      call getarg(2,seqfile)
-      open (1,file=seqfile,status='old')
-      if (oneletter) then
-        read(1,'(80a1)',end=10,err=10) (sequenc(i)(1:1),i=1,maxres)
-   10   continue
-        nres=i
-        i=0
-        do while (.not.iblnk(sequenc(i+1)(1:1)))
-          i=i+1
-        enddo 
-        nres=i
-        do i=1,nres
-          itype(i)=rescode(i,sequenc(i),1)
-        enddo
-      else
-        read(1,'(20(a3,1x))',end=11,err=11) (sequenc(i),i=1,maxres)
-   11   continue
-        nres=i
-        print *,"nres",nres
-        do i=1,nres
-          print *,i," ",sequenc(i)
-        enddo
-        print *
-        i=0
-        do while (.not.iblnk(sequenc(i+1)(1:1)))
-          print *,i+1," ",sequenc(i+1)," ",sequenc(i+1)(1:1)
-          i=i+1
-        enddo 
-        nres=i
-        print *,"nres",nres
-        do i=1,nres
-          itype(i)=rescode(i,sequenc(i),0)
-        enddo
-        print *,(itype(i),i=1,nres)
-      endif
-      call getarg(3,arg)
-      iext = index(arg,'.cx') - 1
-      if (iext.lt.0) then
-        print *,"Error - not a cx file"
-        stop
-      endif
-      print *,"arg ",arg
-      call getarg(4,cfreq)
-      read (cfreq,*) iconf
-      print *,"iconf",iconf
-      if (iargc().gt.4) then
-        call getarg(5,pdbfile)
-      else
-        pdbfile=arg(:iext)//'.pdb'
-      endif
-      open(9,file=pdbfile)
-      nnt = 1
-      if (itype(1).eq.21) nnt = 2
-      nct=nres
-      if (itype(nres).eq.21) nct = nres-1
-c      if (nct.eq.nres-1) nres=nres-1
-c      if (nnt.eq.2) nres=nres-1
-
-      print *,"nres",nres," nnt",nnt," nct",nct
-
-      call xdrfopen(ixdrf,arg, "r", iret)
-      print *,"iret",iret 
-      kk = 0
-      do while(.true.) 
-       prec=10000.0
-       isize=0
-       call xdrf3dfcoord(ixdrf, coord, isize, prec, iret)
-       call xdrfint(ixdrf, nss, iret) 
-       do j=1,nss
-        call xdrfint(ixdrf, ihpb(j), iret)
-        call xdrfint(ixdrf, jhpb(j), iret)
-       enddo
-       call xdrffloat(ixdrf, potE, iret)
-       if(iret.eq.0) exit
-       kk = kk + 1
-       call xdrffloat(ixdrf, efree, iret)
-       call xdrffloat(ixdrf, rmsdev, iret)
-       call xdrfint(ixdrf, iscor, iret)
-       if (kk.eq.iconf) then
-         print *,"pote",pote," efree",efree," rmsdev",rmsdev
-
-         print *,"isize",isize
-
-         if (isize .ne. nres+nct-nnt+1) then
-           print *,"Error: inconsistent sizes",isize,nres+nct-nnt+1
-         endif
-         do i=1,nres
-           do j=1,3
-             c(j,i)=coord(j,i)
-           enddo
-         enddo
-         ii = 0
-         do i=nnt,nct
-           ii = ii + 1 
-           do j=1,3
-             c(j,i+nres)=coord(j,ii+nres)
-           enddo
-         enddo
-         etot=potE
-         write (tytul,'(a,i6)') "Structure",kk
-         call pdbout(etot,tytul,9)
-         stop
-       endif
-      enddo
-     
-      end
diff --git a/source/xdrfpdb/src/CMakeLists.txt b/source/xdrfpdb/src/CMakeLists.txt
new file mode 100644 (file)
index 0000000..962d7fa
--- /dev/null
@@ -0,0 +1,117 @@
+# Set of programs to convert UNRES xdrf format (compressed Cartesian coordinates) to PDF
+# or raw-Cartesian format (*.x) or to extract backbone angular coordinates (*.ang)
+# The pdb files can be constructed from canonical or MREMD trajectories.
+#
+# The xdrf library is required
+#
+# Programs
+#
+# xdrf2pdb   : converts a single cx trajectory file to PDB format
+# xdrf2x     : converts a single cx trajectory file to raw-coordinate (x) format
+# xdrf2ang   : extracts backbone angles from a cx trajectory file
+# xdrf2pdb-m : converts a selected trajectory of a MREMD run dumpend into a cx file to PDB format
+#
+# xdrf2pdb1  : converts conformation(s) selected from a wham post-processing run into PDB format
+# xdrf2x1    : converts conformation(s) selected from a wham post-processing run into raw (x) format.
+#
+# 9/23/2010 A. Liwo
+#
+# CMake file by D. JagieÅ‚a
+# 
+
+set(UNRES_XDRF_XDRF2PDB_SRC
+       xdrf2pdb.F
+       geomout.F
+       misc.f
+       rescode.f
+       nazwy.f
+)
+
+set(UNRES_XDRF_XDRF2PDB-M_SRC
+       xdrf2pdb-m.F
+       geomout.F
+       misc.f
+       rescode.f
+       nazwy.f
+)
+
+
+set(UNRES_XDRF_XDRF2X_SRC
+       xdrf2x.F
+)
+
+
+set(UNRES_XDRF_XDRF2XANG_SRC
+       xdrf2ang.f
+       misc.f
+       rescode.f
+       nazwy.f
+       intcor.f
+       arcos.f
+)
+
+set(UNRES_XDRF_PP_SRC
+       geomout.F
+       xdrf2pdb.F
+       xdrf2pdb-m.F
+       xdrf2x.F        
+)
+
+set(CPPFLAGS "PROCOR -DUNRES -DSPLITELE -DNEWUNRES" )
+
+#=========================================
+# System specific flags
+#=========================================
+if(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+  set(CPPFLAGS "${CPPFLAGS} -DLINUX")
+endif(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+
+# Apply preprocesor flags to *.F files
+set_property(SOURCE ${UNRES_XDRF_PP_SRC} PROPERTY COMPILE_DEFINITIONS ${CPPFLAGS} )
+
+#=========================================
+# Build the binaries
+#=========================================
+add_executable(xdrf2pdb   ${UNRES_XDRF_XDRF2PDB_SRC} )
+target_link_libraries( xdrf2pdb xdrf )
+
+add_executable(xdrf2pdb-m ${UNRES_XDRF_XDRF2PDB-M_SRC} )
+target_link_libraries( xdrf2pdb-m xdrf )
+
+add_executable(xdrf2x     ${UNRES_XDRF_XDRF2X_SRC} )
+target_link_libraries( xdrf2x xdrf )
+
+add_executable(xdrf2ang   ${UNRES_XDRF_XDRF2XANG_SRC} )
+target_link_libraries( xdrf2ang xdrf )
+
+
+#=========================================
+# TESTS
+#=========================================
+
+
+# Create files needed for tests
+file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/ala10one.seq
+"XAAAAAAAAAAX"
+)
+
+file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/ala10three.seq
+"D   Ala Ala Ala Ala Ala Ala Ala Ala Ala Ala D  "
+)
+
+file(  COPY ${CMAKE_SOURCE_DIR}/ctest/ala10MD.cx 
+       DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+
+
+# Test xdrf2pdb 
+add_test(NAME XDRF2PDB-one   COMMAND xdrf2pdb one ala10one.seq ala10MD.cx )
+add_test(NAME XDRF2PDB-three COMMAND xdrf2pdb three ala10three.seq ala10MD.cx )
+
+# Test xdrf2ang
+add_test(NAME XDRF2ANG-one   COMMAND xdrf2ang one ala10one.seq ala10MD.cx )
+add_test(NAME XDRF2ANG-three COMMAND xdrf2ang three ala10three.seq ala10MD.cx )
+
+
+
index e379f40..747d0c0 100644 (file)
@@ -25,7 +25,7 @@ OPT =
 
 FFLAGS = -c ${OPT} 
 
-CPPFLAGS = -DLINUX -DUNRES -DMP -DMPI -DSPLITELE -DPROCOR -DNEWUNRES
+CPPFLAGS = -DNEWUNRES
 
 M4     = m4
 M4FILE = underscore.m4
index 5714f40..f1c8472 100644 (file)
       character*8 onethree,cfreq
       character*8 ucase
       external ucase
+<<<<<<< HEAD
       logical oneletter,iblnk
+=======
+      logical oneletter, iblnk
+>>>>>>> aebadf9023e437f497f92dfcf2303c16f60917c1
       integer rescode
       external rescode
       
@@ -48,6 +52,7 @@
         nres=i
         i=0
         do while (.not.iblnk(sequenc(i+1)(1:1)))
+c        do while (.not.(iblnk(sequenc(i+1)(1:1)) == 0) )
           i=i+1
         enddo 
         nres=i
@@ -60,6 +65,7 @@
         nres=i
         i=0
         do while (.not.iblnk(sequenc(i+1)(1:1)))
+c        do while (.not.(iblnk(sequenc(i+1)(1:1)) == 0) )
           i=i+1
         enddo 
         nres=i
index edbd0d8..1fbf5af 100644 (file)
       character*3 licz
       character*8 ucase
       external ucase
+<<<<<<< HEAD
       logical oneletter,iblnk
+=======
+      logical oneletter, iblnk
+>>>>>>> aebadf9023e437f497f92dfcf2303c16f60917c1
       integer rescode
       external rescode
       
@@ -41,6 +45,7 @@
         nres=i
         i=0
         do while (.not.iblnk(sequenc(i+1)(1:1)))
+c        do while (.not.(iblnk(sequenc(i+1)(1:1)) == 0))
           i=i+1
         enddo 
         nres=i
@@ -53,6 +58,7 @@
         nres=i
         i=0
         do while (.not.iblnk(sequenc(i+1)(1:1)))
+c        do while (.not.(iblnk(sequenc(i+1)(1:1)) == 0))
           i=i+1
         enddo 
         nres=i
@@ -98,9 +104,11 @@ c      print *,"ifreq",ifreq," ntraj",ntraj," itraj",itraj
        call xdrffloat(ixdrf, potE, iret)
        call xdrffloat(ixdrf, uconst, iret)
        call xdrffloat(ixdrf, t_bath, iret)
+       print *,"potE",potE," uconst",uconst," t_bath",t_bath
 #ifdef NEWUNRES
        call xdrffloat(ixdrf, uconst_back, iret)
 #endif
+       print *,"uconst_back",uconst_back
        call xdrfint(ixdrf, nss, iret) 
        do j=1,nss
         call xdrfint(ixdrf, ihpb(j), iret)
@@ -113,6 +121,7 @@ c      print *,"ifreq",ifreq," ntraj",ntraj," itraj",itraj
        prec=10000.0
 
        isize=0
+       print *," call xdrf3coord"
        call xdrf3dfcoord(ixdrf, coord, isize, prec, iret)
 
 
diff --git a/source/xdrfpdb/src/xdrf2pdb1.f b/source/xdrfpdb/src/xdrf2pdb1.f
deleted file mode 100644 (file)
index f41d0a0..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-      implicit real*8 (a-h,o-z)
-      include 'DIMENSIONS'
-      include 'COMMON.CHAIN'
-      include 'COMMON.INTERACT'
-      include 'COMMON.SBRIDGE'
-      real*4 coord(3,1000)
-      real*4 prec,potE,efree,rmsdev
-      real*8 etot
-      character*80 arg,seqfile,pdbfile
-      character*3 sequenc(maxres)
-      character*50 tytul
-      character*8 onethree,cfreq
-      character*8 ucase
-      external ucase
-      logical oneletter
-      integer rescode
-      external rescode
-      
-      ifreq=1
-      if (iargc().lt.4) then
-        print '(a)',
-     &    "Usage: xdrf2pdb one/three seqfile cxfile conf [pdbfile]"
-        stop
-      endif
-      call getarg(1,onethree)
-      onethree = ucase(onethree)
-      if (onethree.eq.'ONE') then
-        oneletter = .true.
-      else if (onethree.eq.'THREE') then
-        oneletter = .false.
-      else
-        print *,"ONE or THREE must be specified"
-      endif
-      call getarg(2,seqfile)
-      open (1,file=seqfile,status='old')
-      if (oneletter) then
-        read(1,'(80a1)',end=10,err=10) (sequenc(i)(1:1),i=1,maxres)
-   10   continue
-        nres=i
-        i=0
-        do while (.not.iblnk(sequenc(i+1)(1:1)))
-          i=i+1
-        enddo 
-        nres=i
-        do i=1,nres
-          itype(i)=rescode(i,sequenc(i),1)
-        enddo
-      else
-        read(1,'(20(a3,1x))',end=11,err=11) (sequenc(i),i=1,maxres)
-   11   continue
-        nres=i
-        print *,"nres",nres
-        do i=1,nres
-          print *,i," ",sequenc(i)
-        enddo
-        print *
-        i=0
-        do while (.not.iblnk(sequenc(i+1)(1:1)))
-          print *,i+1," ",sequenc(i+1)," ",sequenc(i+1)(1:1)
-          i=i+1
-        enddo 
-        nres=i
-        print *,"nres",nres
-        do i=1,nres
-          itype(i)=rescode(i,sequenc(i),0)
-        enddo
-        print *,(itype(i),i=1,nres)
-      endif
-      call getarg(3,arg)
-      iext = index(arg,'.cx') - 1
-      if (iext.lt.0) then
-        print *,"Error - not a cx file"
-        stop
-      endif
-      print *,"arg ",arg
-      call getarg(4,cfreq)
-      read (cfreq,*) iconf
-      print *,"iconf",iconf
-      if (iargc().gt.4) then
-        call getarg(5,pdbfile)
-      else
-        pdbfile=arg(:iext)//'.pdb'
-      endif
-      open(9,file=pdbfile)
-      nnt = 1
-      if (itype(1).eq.21) nnt = 2
-      nct=nres
-      if (itype(nres).eq.21) nct = nres-1
-c      if (nct.eq.nres-1) nres=nres-1
-c      if (nnt.eq.2) nres=nres-1
-
-      print *,"nres",nres," nnt",nnt," nct",nct
-
-      call xdrfopen(ixdrf,arg, "r", iret)
-      print *,"iret",iret 
-      kk = 0
-      do while(.true.) 
-       prec=10000.0
-       isize=0
-       call xdrf3dfcoord(ixdrf, coord, isize, prec, iret)
-       call xdrfint(ixdrf, nss, iret) 
-       do j=1,nss
-        call xdrfint(ixdrf, ihpb(j), iret)
-        call xdrfint(ixdrf, jhpb(j), iret)
-       enddo
-       call xdrffloat(ixdrf, potE, iret)
-       if(iret.eq.0) exit
-       kk = kk + 1
-       call xdrffloat(ixdrf, efree, iret)
-       call xdrffloat(ixdrf, rmsdev, iret)
-       call xdrfint(ixdrf, iscor, iret)
-       if (kk.eq.iconf) then
-         print *,"pote",pote," efree",efree," rmsdev",rmsdev
-
-         print *,"isize",isize
-
-         if (isize .ne. nres+nct-nnt+1) then
-           print *,"Error: inconsistent sizes",isize,nres+nct-nnt+1
-         endif
-         do i=1,nres
-           do j=1,3
-             c(j,i)=coord(j,i)
-           enddo
-         enddo
-         ii = 0
-         do i=nnt,nct
-           ii = ii + 1 
-           do j=1,3
-             c(j,i+nres)=coord(j,ii+nres)
-           enddo
-         enddo
-         etot=potE
-         write (tytul,'(a,i6)') "Structure",kk
-         call pdbout(etot,tytul,9)
-         stop
-       endif
-      enddo
-     
-      end
index b6e86cf..24ab39d 100644 (file)
@@ -3,7 +3,8 @@
       integer ihpb(100),jhpb(100)
       character*80 arg,ctime_start /"0"/,ctime_end /"1000000000"/,
      &  cfreq /"1"/
-      integer time_start,time_end,freq
+      integer*4 time_start,time_end,freq
+c      real time_start,time_end,freq
       
       call getarg(1,arg)
       if (iargc().eq.0) stop
         call getarg(2,ctime_start)
         read (ctime_start,*) time_start
       else
-        time_start=0.0d0
+        time_start=0
       endif
       if (iargc().gt.2) then
         call getarg(3,ctime_end)
         read (ctime_end,*) time_end
       else
-        time_end=1.0d10
+        time_end=1000000000
       endif
       if (iargc().gt.3) then
         call getarg(4,cfreq)
diff --git a/source/xdrfpdb/src/xdrf2x1.f b/source/xdrfpdb/src/xdrf2x1.f
deleted file mode 100644 (file)
index 53f8fb0..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-      implicit real*8 (a-h,o-z)
-      integer ihpb(100),jhpb(100)
-      real*4 coord(3,1000)
-      real*4 prec,potE,efree,rmsdev,qfrag(100)
-      real*8 etot
-      character*80 arg,xfile
-      character*8 ucase,cfreq
-      external ucase
-      logical oneletter
-      integer rescode
-      external rescode
-      
-      ifreq=1
-      if (iargc().lt.2) then
-        print '(a)',
-     &    "Usage: xdrf2x1 cxfile conf [pdbfile]"
-        stop
-      endif
-      call getarg(1,arg)
-      iext = index(arg,'.cx') - 1
-      if (iext.lt.0) then
-        print *,"Error - not a cx file"
-        stop
-      endif
-      print *,"arg ",arg
-      call getarg(2,cfreq)
-      read (cfreq,*) iconf
-      print *,"iconf",iconf
-      if (iargc().gt.2) then
-        call getarg(3,pdbfile)
-      else
-        xfile=arg(:iext)//'.x'
-      endif
-      open(9,file=xfile)
-
-      call xdrfopen(ixdrf,arg, "r", iret)
-      print *,"iret",iret 
-      kk = 0
-      do while(.true.) 
-       prec=10000.0
-       isize=0
-       call xdrf3dfcoord(ixdrf, coord, isize, prec, iret)
-       call xdrfint(ixdrf, nss, iret) 
-       do j=1,nss
-        call xdrfint(ixdrf, ihpb(j), iret)
-        call xdrfint(ixdrf, jhpb(j), iret)
-       enddo
-       call xdrffloat(ixdrf, potE, iret)
-       if(iret.eq.0) exit
-       kk = kk + 1
-       call xdrffloat(ixdrf, efree, iret)
-       call xdrffloat(ixdrf, rmsdev, iret)
-       call xdrfint(ixdrf, iscor, iret)
-       if (kk.eq.iconf) then
-         print *,"pote",pote," efree",efree," rmsdev",rmsdev
-
-         print *,"isize",isize
-
-         write (9,'(e15.8,2e15.5,f12.5,$)') time,potE,uconst,t_bath
-         write (9,'(i4,$)') nss,(ihpb(j),jhpb(j),j=1,nss)
-         write (9,'(i4,20f7.4)') nfrag,(qfrag(i),i=1,nfrag)
-         write (9,'(8f10.5)') ((coord(k,j),k=1,3),j=1,isize)
-         stop
-       endif
-      enddo
-     
-      end