Version 5.5.1
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 15 Oct 2008 11:10:29 +0000 (11:10 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 15 Oct 2008 11:10:29 +0000 (11:10 +0000)
80 files changed:
LHAPDF/lhapdf5.5.1/include/LHAPDF/FortranWrappers.h [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/include/LHAPDF/FortranWrappers.h.in [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/include/LHAPDF/LHAPDF.h [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/include/LHAPDF/LHAPDFWrap.h [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/include/LHAPDF/LHAPDFfw.h [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/include/LHAPDF/Makefile [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/include/LHAPDF/Makefile.am [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/include/LHAPDF/Makefile.in [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/include/LHAPDF/stamp-h2 [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/include/Makefile [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/include/Makefile.am [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/include/Makefile.in [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/.deps/binreloc.Plo [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/.deps/getdatapath.Plo [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/.deps/version.Plo [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/.libs/libLHAPDFCore.a [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/EVLCTEQ.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/LHpdflib.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/QCDNUM.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/QCDparams.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/Sqcdnum.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/alphas.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/binreloc.c [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/binreloc.h [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/common.inc [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/commoninit.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/commonlhacontrol.inc [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/commonlhaglsta.inc [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/commonlhapdf.inc [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/commonlhapdfc.inc [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/commonlhasets.inc [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/description.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/eks98.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/eksarp.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/eps08.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/evolution.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/getdatapath.cc [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/inputPDF.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/lhaglue.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/parameter.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/parmsetup.inc [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/parmsetup.inc.in [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/version.cc [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/version.cxx [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/wrapEVLCTEQ.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/wrapQCDNUM.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/wrapQCDNUM3.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/wrapQCDNUM4.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/wrapUSER.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/wrapa02.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/wrapa02m.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/wrapabfkwpi.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/wrapacfgpg.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/wrapcteq5.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/wrapcteq6-lite.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/wrapcteq6.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/wrapcteq65-lite.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/wrapcteq65.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/wrapcteq6lg.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/wrapdgg.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/wrapdog.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/wrapevolve.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/wrapgrv.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/wrapgrvg.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/wrapgrvpi.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/wrapgsg.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/wrapgsg96.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/wraph1.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/wraplacg.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/wrapmrst-lite.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/wrapmrst.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/wrapmrst2006-lite.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/wrapmrst2006.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/wrapmrst98.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/wrapmrstqed.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/wrapowpi.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/wrapsasg.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/wrapsmrspi.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/wrapwhitg.f [new file with mode: 0644]
LHAPDF/lhapdf5.5.1/src/wrapzeus.f [new file with mode: 0644]

diff --git a/LHAPDF/lhapdf5.5.1/include/LHAPDF/FortranWrappers.h b/LHAPDF/lhapdf5.5.1/include/LHAPDF/FortranWrappers.h
new file mode 100644 (file)
index 0000000..c50c825
--- /dev/null
@@ -0,0 +1,20 @@
+/* include/LHAPDF/FortranWrappers.h.  Generated from FortranWrappers.h.in by configure.  */
+/* Define to dummy `main' function (if any) required to link to the Fortran
+   libraries. */
+/* #undef FC_DUMMY_MAIN */
+
+/* Define if F77 and FC dummy `main' functions are identical. */
+/* #undef FC_DUMMY_MAIN_EQ_F77 */
+
+/* Define to a macro mangling the given C identifier (in lower and upper
+   case), which must not contain underscores, for linking with Fortran. */
+#define FC_FUNC(name,NAME) name ## _
+
+/* As FC_FUNC, but for C identifiers containing underscores. */
+#define FC_FUNC_(name,NAME) name ## _
+
+/* As FC_FUNC, but for C identifiers containing underscores. */
+#define FC_FUNC_(name,NAME) name ## _
+
+/* LHAPDF version string */
+#define PACKAGE_VERSION "5.5.1"
diff --git a/LHAPDF/lhapdf5.5.1/include/LHAPDF/FortranWrappers.h.in b/LHAPDF/lhapdf5.5.1/include/LHAPDF/FortranWrappers.h.in
new file mode 100644 (file)
index 0000000..a2d1d09
--- /dev/null
@@ -0,0 +1,19 @@
+/* Define to dummy `main' function (if any) required to link to the Fortran
+   libraries. */
+#undef FC_DUMMY_MAIN
+
+/* Define if F77 and FC dummy `main' functions are identical. */
+#undef FC_DUMMY_MAIN_EQ_F77
+
+/* Define to a macro mangling the given C identifier (in lower and upper
+   case), which must not contain underscores, for linking with Fortran. */
+#undef FC_FUNC
+
+/* As FC_FUNC, but for C identifiers containing underscores. */
+#undef FC_FUNC_
+
+/* As FC_FUNC, but for C identifiers containing underscores. */
+#undef FC_FUNC_
+
+/* LHAPDF version string */
+#undef PACKAGE_VERSION
diff --git a/LHAPDF/lhapdf5.5.1/include/LHAPDF/LHAPDF.h b/LHAPDF/lhapdf5.5.1/include/LHAPDF/LHAPDF.h
new file mode 100644 (file)
index 0000000..ef4b630
--- /dev/null
@@ -0,0 +1,567 @@
+#ifndef LHAPDF_H
+#define LHAPDF_H
+
+#include <string>
+#include <vector>
+#include <iostream>
+#include <sstream>
+
+/**
+ * @mainpage A C++ wrapper for the LHAPDF library
+ *
+ * @section intro Introduction
+ * The LHAPDF library provides a set of C++ wrapper functions 
+ * for its Fortran subroutines. New users should browse this
+ * documentation and take a look at the @c CCTest1.cc and
+ * @c CCTest2.cc example program source files, which are good 
+ * examples of how the wrapper is used.
+ *
+ * @section changes Recent changes
+ * The LHAPDF wrapper has been improved in several ways for 
+ * the LHAPDF v5.4 release:
+ *
+ * @li String passing to the Fortran functions from C++ now 
+ *  correctly passes the hidden length argument, fixing problems
+ *  on 64 bit systems;
+ * @li The @c LHAPDFWrap class has been deprecated in favour of 
+ *  a set of wrapper functions in the @c LHAPDF namespace. The
+ *  class interface was misleading, since no persistent state
+ *  was involved and two class instances would not have been 
+ *  independent;
+ * @li Proper C++ @c std::string arguments can now be used for 
+ *  set names: @c char* string arguments can still be passed, due 
+ *  to implicit conversion via the string(char*) constructor.
+ *
+ * @section credits Credits
+ *
+ * @li Originally by Stefan Gieseke.
+ * @li Adapted for LHAPDFv4 by Mike Whalley.
+ * @li Adapted for LHAPDFv5 by Craig Group/Mike Whalley.
+ * @li v5.4: Fortran portability, tidying, extensions
+ *  and conversion to namespaced functions by Andy Buckley.
+ * @li v5.4.1: Rationalised init functions and deprecated "M"
+ *  functions by Andy Buckley.
+ *
+ * @example ../examples/CCTest1.cc
+ * This is an example of a program using the recommended C++ 
+ * interface to LHAPDF.
+ *
+ * @example ../examples/CCTest2.cc
+ * An example of a program using the C++ interface to LHAPDF to 
+ * calculate PDF errors.
+ */
+
+
+// Compatibility preprocessing of deprecated "M" function names
+#define initPDFSetM initPDFSet
+#define initPDFSetByNameM initPDFSetByName
+#define initPDFM initPDF
+#define initPDFByNameM initPDFByName
+#define getDescriptionM getDescription
+#define xfxM xfx
+#define xfxpM xfxp
+#define xfxaM xfxa
+#define xfxphotonM xfxphoton
+#define numberPDFM numberPDF
+#define alphasPDFM alphasPDF
+#define getOrderPDFM getOrderPDF
+#define getOrderAlphaSM getOrderAlphaS
+#define getQMassM getQMass
+#define getThresholdM getThreshold
+#define getNfM getNf
+#define getLam4M getLam4
+#define getLam5M getLam5
+#define getXminM getXmin
+#define getXmaxM getXmax
+#define getQ2minM getQ2min
+#define getQ2maxM getQ2max
+
+
+/// Namespace containing all the LHAPDF wrapper functions.
+namespace LHAPDF {
+
+  /// @brief Enum of flavours which map to LHAPDF integer codes.
+  /// Useful for improving readability of client code. Note that these codes
+  /// can't be used to access elements of returned @c vector<double>, which
+  /// don't use the LHAPDF scheme (they use "LHAPDF code + 6").
+  enum Flavour {
+    TBAR= -6, BBAR = -5, CBAR = -4, SBAR = -3, UBAR = -2, DBAR = -1,
+    GLUON = 0,
+    DOWN = 1, UP = 2, STRANGE = 3, CHARM = 4, BOTTOM = 5, TOP= 6,
+    PHOTON = 7
+  };
+
+  /// @brief Distinction between evolution or interpolation PDF sets.
+  /// Enum to choose whether evolution (i.e. @c LHpdf data file) or
+  /// interpolation (i.e. @c LHgrid data file) is used.
+  enum SetType {
+    EVOLVE = 0, LHPDF = 0, 
+    INTERPOLATE = 1, LHGRID = 1
+  };
+
+  /// Level of noisiness.
+  enum Verbosity { SILENT=0, LOWKEY=1, DEFAULT=2 };
+
+
+  /// @name Global setup functions
+  //@{
+
+  /// Get LHAPDF version string.
+  std::string getVersion();
+
+  /// Global initialisation.
+  void initLHAPDF();
+
+  /// Choose level of noisiness.
+  void setVerbosity(Verbosity noiselevel);
+
+  /// Extrapolate beyond grid edges.
+  void extrapolate(bool extrapolate=true);
+
+  /// Set the LHAPATH variable (the location of the PDF sets directory).
+  void setPDFPath(const std::string& path);
+  //@}
+
+
+  /// @name Set metadata
+  //@{
+
+  /// Structure containing metadata about a PDF set.
+  class PDFSetInfo {
+  public:
+    std::string file;
+    std::string description;
+    int id; 
+    int pdflibNType, pdflibNGroup, pdflibNSet;
+    int memberId;
+    double lowx, highx;
+    double lowQ2, highQ2;
+
+    /// Render a standard representation of a PDF set's metadata.
+    std::string toString() const {
+      std::ostringstream os;
+      os << "PDF set #" << id 
+         << " {" 
+         << " file='" << file << "',"
+         << " description='" << description << "',"
+         << " x = ["  << lowx  << ", " << highx << "],"
+         << " Q2 = [" << lowQ2 << ", " << highQ2 << "]"
+         << " }";
+      return os.str();
+    }
+  };
+
+
+  std::ostream& operator<<(std::ostream& os, const PDFSetInfo& info) {
+    os << info.toString();
+    return os;
+  }
+
+  /// Get a PDF set info object by filename and member number.
+  PDFSetInfo getPDFSetInfo(const std::string& filename, int memid);
+
+  /// Get a PDF set info object by the LHAPDF ID number.
+  PDFSetInfo getPDFSetInfo(int id);
+
+  /// Get a vector of PDF set info objects for all known sets.
+  std::vector<PDFSetInfo> getAllPDFSetInfo();
+  //@}
+
+
+  /// @name Path info functions
+  //@{
+
+  /// Get path to LHAPDF installation (the "prefix" path).
+  std::string prefixPath();
+
+  /// Get path to LHAPDF PDF sets directory.
+  std::string pdfsetsPath();
+
+  /// Get path to LHAPDF PDF sets index file.
+  std::string pdfsetsIndexPath();
+
+  //@}
+
+
+  /// @name Initialisation functions
+  /// LHAPDF functions for initialising PDF sets. If you need to use
+  /// more than one set simultaneously, use the multi-set functions, which 
+  /// have a integer @c nset first argument.
+  //@{
+
+  /// Initialise @a member in PDF set @a setid.
+  void initPDFSet(int setid, int member);
+  /// Initialise @a member in PDF set @a setid (multi-set version).
+  void initPDFSet(int nset, int setid, int member); // can't have a default 3rd arg
+
+  /// Initialise @a member in PDF set @a name, of type @a type.
+  void initPDFSet(const std::string& name, SetType type, int member=0);
+  /// Initialise @a member in PDF set @a name, of type @a type (multi-set version).
+  void initPDFSet(int nset, const std::string& name, SetType type, int member=0);
+
+  /// @brief Initialise @a member in PDF set file @a filename.
+  /// If @a filename contains a "/" character, it will be used as a path,
+  /// otherwise it will be assumed to be a PDF file in the LHAPDF @c PDFsets directory.
+  void initPDFSet(const std::string& filename, int member=0);
+  /// @brief Initialise @a member in PDF set file @a filename (multi-set version).
+  /// If @a filename contains a "/" character, it will be used as a path,
+  /// otherwise it will be assumed to be a PDF file in the LHAPDF @c PDFsets directory.
+  void initPDFSet(int nset, const std::string& filename, int member=0);
+
+  /// @brief Use @a member in current PDF set. 
+  /// This operation is computationally cheap.
+  void usePDFMember(int member);
+  /// @brief Use @a member in PDF set @a nset (multi-set version).
+  /// This operation is computationally cheap.
+  void usePDFMember(int nset, int member);
+  //@}
+
+
+  /// @name PDF set information
+  //@{
+
+  /// Prints a brief description of the current PDF set to stdout.
+  void getDescription();
+  /// Prints a brief description of the current PDF set to stdout.
+  void getDescription(int nset);
+
+  /// Number of members available in the current set.
+  int numberPDF();
+  /// Number of members available in the current set.
+  int numberPDF(int nset);
+
+  /// \f$ \alpha_\mathrm{s} \f$ used by the current PDF.
+  double alphasPDF(double Q);
+  /// \f$ \alpha_\mathrm{s} \f$ used by the current PDF.
+  double alphasPDF(int nset, double Q);
+
+  /// Get order at which the PDF was fitted.
+  int getOrderPDF();
+  /// Get order at which the PDF was fitted.
+  int getOrderPDF(int nset);
+
+  /// Perturbative order of parton evolution and \f$ \alpha_\mathrm{s} \f$ respectively.
+  int getOrderAlphaS();
+  /// Perturbative order of parton evolution and \f$ \alpha_\mathrm{s} \f$ respectively.
+  int getOrderAlphaS(int nset);
+
+  /// Quark mass used for flavour @a f.
+  double getQMass(int f);
+  /// Quark mass used for flavour @a f.
+  double getQMass(int nset, int f);
+
+  /// Threshold for flavour @a f.
+  double getThreshold(int f);
+  /// Threshold for flavour @a f.
+  double getThreshold(int nset, int f);
+
+  /// Number of flavours used in the current PDF set.
+  int getNf();
+  /// Number of flavours used in the current PDF set.
+  int getNf(int nset);
+
+  /// Value of QCD \f$ \lambda_4 \f$ for member @a m.
+  double getLam4(int m);
+  /// Value of QCD \f$ \lambda_4 \f$ for member @a m.
+  double getLam4(int nset, int m);
+
+  /// Value of QCD \f$ \lambda_5 \f$ for member @a m.
+  double getLam5(int m);
+  /// Value of QCD \f$ \lambda_5 \f$ for member @a m. 
+  double getLam5(int nset, int m);
+
+  /// Minimum \f$ x \f$ value considered valid for this set, as specified by the set authors.
+  double getXmin(int m);
+  /// Minimum \f$ x \f$ value considered valid for this set, as specified by the set authors.
+  double getXmin(int nset, int m);
+
+  /// Maximum \f$ x \f$ value considered valid for this set, as specified by the set authors.
+  double getXmax(int m);
+  /// Maximum \f$ x \f$ value considered valid for this set, as specified by the set authors.
+  double getXmax(int nset, int m);
+
+  /// Minimum \f$ Q^2 \f$ value considered valid for this set, as specified by the set authors.
+  double getQ2min(int m);
+  /// Minimum \f$ Q^2 \f$ value considered valid for this set, as specified by the set authors.
+  double getQ2min(int nset, int m);
+
+  /// Maximum \f$ Q^2 \f$ value considered valid for this set, as specified by the set authors.
+  double getQ2max(int m);
+  /// Maximum \f$ Q^2 \f$ value considered valid for this set, as specified by the set authors.
+  double getQ2max(int nset, int m);
+  //@}
+
+
+  /// @name Nucleon PDFs
+  /// These PDFs are defined for protons --- neutron PDFs are usually obtained by 
+  /// isospin conjugation.
+  //@{
+
+  /// Nucleon PDF: returns a vector \f$ x f_i(x, Q) \f$ with index \f$ 0 < i < 12 \f$.
+  /// @arg 0..5 = \f$ \bar{t} \f$, ..., \f$ \bar{u} \f$, \f$ \bar{d} \f$; 
+  /// @arg 6 = \f$ g \f$; 
+  /// @arg 7..12 = \f$ d \f$, \f$ u \f$, ..., \f$ t \f$.
+  std::vector<double> xfx(double x, double Q);
+  /// Nucleon PDF: returns a vector @c x f_i(x, Q) with index \f$ 0 < i < 12 \f$.
+  /// @arg 0..5 = \f$ \bar{t} \f$, ..., \f$ \bar{u} \f$, \f$ \bar{d} \f$; 
+  /// @arg 6 = \f$ g \f$; 
+  /// @arg 7..12 = \f$ d \f$, \f$ u \f$, ..., \f$ t \f$.
+  std::vector<double> xfx(int nset, double x, double Q);
+
+  /// Nucleon PDF: fills primitive 13 element array pointed at by @a results with
+  /// \f$ x f(x, Q) \f$ with index \f$ 0 < i < 12 \f$.
+  /// @arg 0..5 = \f$ \bar{t} \f$, ..., \f$ \bar{u} \f$, \f$ \bar{d} \f$; 
+  /// @arg 6 = \f$ g \f$;
+  /// @arg 7..12 = \f$ d \f$, \f$ u \f$, ..., \f$ t \f$.
+  void xfx(double x, double Q, double* results);
+  /// Nucleon PDF: fills primitive 13 element array pointed at by @a results with
+  /// \f$ x f(x, Q) \f$ with index \f$ 0 < i < 12 \f$.
+  /// @arg 0..5 = \f$ \bar{t} \f$, ..., \f$ \bar{u} \f$, \f$ \bar{d} \f$; 
+  /// @arg 6 = \f$ g \f$;
+  /// @arg 7..12 = \f$ d \f$, \f$ u \f$, ..., \f$ t \f$.
+  void xfx(int nset, double x, double Q, double* results);
+
+
+  /// Nucleon PDF: returns \f$ x f(x, Q) \f$ for flavour @a fl - this time the flavour encoding
+  /// is as in the LHAPDF manual.
+  /// @arg -6..-1 = \f$ \bar{t} \f$, ..., \f$ \bar{u} \f$, \f$ \bar{d} \f$;
+  /// @arg 0 = \f$ g \f$
+  /// @arg 1..6 = \f$ d \f$, \f$ u \f$, ..., \f$ t \f$.
+  double xfx(double x, double Q, int fl);
+  /// Nucleon PDF: returns @c x f(x, Q) for flavour @a fl - this time the flavour encoding
+  /// is as in the LHAPDF manual.
+  /// @arg -6..-1 = \f$ \bar{t} \f$, ..., \f$ \bar{u} \f$, \f$ \bar{d} \f$;
+  /// @arg 0 = \f$ g \f$
+  /// @arg 1..6 = \f$ d \f$, \f$ u \f$, ..., \f$ t \f$.
+  double xfx(int nset, double x, double Q, int fl);
+  //@}
+
+
+  /// @name Photon PDFs
+  //@{
+
+  /// Photon PDF: returns a vector \f$ x f_i(x, Q) \f$ with index \f$ 0 < i < 12 \f$.
+  /// @arg 0..5 = \f$ \bar{t} \f$, ..., \f$ \bar{u} \f$, \f$ \bar{d} \f$; 
+  /// @arg 6 = \f$ g \f$; 
+  /// @arg 7..12 = \f$ d \f$, \f$ u \f$, ..., \f$ t \f$.
+  ///
+  /// NB. Extra @a P2 and @a ip params.
+  std::vector<double> xfxp(double x, double Q, double P2, int ip);
+  /// Photon PDF: returns a vector \f$ x f_i(x, Q) \f$ with index \f$ 0 < i < 12 \f$.
+  /// @arg 0..5 = \f$ \bar{t} \f$, ..., \f$ \bar{u} \f$, \f$ \bar{d} \f$; 
+  /// @arg 6 = \f$ g \f$; 
+  /// @arg 7..12 = \f$ d \f$, \f$ u \f$, ..., \f$ t \f$.
+  ///
+  /// NB. Extra @a P2 and @a ip params.
+  std::vector<double> xfxp(int nset, double x, double Q, double P2, int ip);
+
+  /// Photon PDF: fills primitive 13 element array pointed at by @a results with
+  /// \f$ x f(x, Q) \f$ with index \f$ 0 < i < 12 \f$.
+  /// @arg 0..5 = \f$ \bar{t} \f$, ..., \f$ \bar{u} \f$, \f$ \bar{d} \f$; 
+  /// @arg 6 = \f$ g \f$;
+  /// @arg 7..12 = \f$ d \f$, \f$ u \f$, ..., \f$ t \f$.
+  ///
+  /// NB. Extra @a P2 and @a ip params.
+  void xfxp(double x, double Q, double P2, int ip, double* results);
+  /// Photon PDF: fills primitive 13 element array pointed at by @a results with
+  /// \f$ x f(x, Q) \f$ with index \f$ 0 < i < 12 \f$.
+  /// @arg 0..5 = \f$ \bar{t} \f$, ..., \f$ \bar{u} \f$, \f$ \bar{d} \f$; 
+  /// @arg 6 = \f$ g \f$;
+  /// @arg 7..12 = \f$ d \f$, \f$ u \f$, ..., \f$ t \f$.
+  ///
+  /// NB. Extra @a P2 and @a ip params.
+  void xfxp(int nset, double x, double Q, double P2, int ip, double* results);
+
+
+  /// Photon PDF: returns \f$ x f(x, Q) \f$ for flavour @a fl - this time the flavour encoding
+  /// is as in the LHAPDF manual.
+  /// @arg -6..-1 = \f$ \bar{t} \f$, ..., \f$ \bar{u} \f$, \f$ \bar{d} \f$;
+  /// @arg 0 = \f$ g \f$
+  /// @arg 1..6 = \f$ d \f$, \f$ u \f$, ..., \f$ t \f$.
+  ///
+  /// NB. Extra @a P2 and @a ip params.
+  double xfxp(double x, double Q, double P2, int ip, int fl);
+  /// Photon PDF: returns \f$ x f(x, Q) \f$ for flavour @a fl - this time the flavour encoding
+  /// is as in the LHAPDF manual.
+  /// @arg -6..-1 = \f$ \bar{t} \f$, ..., \f$ \bar{u} \f$, \f$ \bar{d} \f$;
+  /// @arg 0 = \f$ g \f$
+  /// @arg 1..6 = \f$ d \f$, \f$ u \f$, ..., \f$ t \f$.
+  ///
+  /// NB. Extra @a P2 and @a ip params.
+  double xfxp(int nset, double x, double Q, double P2, int ip, int fl);
+  //@}
+
+
+  /// @name Nuclear PDFs
+  //@{
+
+  /// Nuclear PDF: returns a vector \f$ x f_i(x, Q) \f$ with index \f$ 0 < i < 12 \f$.
+  /// @arg 0..5 = \f$ \bar{t} \f$, ..., \f$ \bar{u} \f$, \f$ \bar{d} \f$; 
+  /// @arg 6 = \f$ g \f$; 
+  /// @arg 7..12 = \f$ d \f$, \f$ u \f$, ..., \f$ t \f$.
+  ///
+  /// NB. Extra @a a param for atomic mass number.
+  std::vector<double> xfxa(double x, double Q, double a);
+  /// Nuclear PDF: returns a vector \f$ x f_i(x, Q) \f$ with index \f$ 0 < i < 12 \f$.
+  /// @arg 0..5 = \f$ \bar{t} \f$, ..., \f$ \bar{u} \f$, \f$ \bar{d} \f$; 
+  /// @arg 6 = \f$ g \f$; 
+  /// @arg 7..12 = \f$ d \f$, \f$ u \f$, ..., \f$ t \f$.
+  ///
+  /// NB. Extra @a a param for atomic mass number.
+  std::vector<double> xfxa(int nset, double x, double Q, double a);
+
+  /// Nuclear PDF: fills primitive 13 element array pointed at by @a results with
+  /// \f$ x f(x, Q) \f$ with index \f$ 0 < i < 12 \f$.
+  /// @arg 0..5 = \f$ \bar{t} \f$, ..., \f$ \bar{u} \f$, \f$ \bar{d} \f$; 
+  /// @arg 6 = \f$ g \f$;
+  /// @arg 7..12 = \f$ d \f$, \f$ u \f$, ..., \f$ t \f$.
+  ///
+  /// NB. Extra @a a param for atomic mass number.
+  void xfxa(double x, double Q, double a, double* results);
+  /// Nuclear PDF: fills primitive 13 element array pointed at by @a results with
+  /// \f$ x f(x, Q) \f$ with index \f$ 0 < i < 12 \f$.
+  /// @arg 0..5 = \f$ \bar{t} \f$, ..., \f$ \bar{u} \f$, \f$ \bar{d} \f$; 
+  /// @arg 6 = \f$ g \f$;
+  /// @arg 7..12 = \f$ d \f$, \f$ u \f$, ..., \f$ t \f$.
+  ///
+  /// NB. Extra @a a param for atomic mass number.
+  void xfxa(int nset, double x, double Q, double a, double* results);
+
+  /// Nuclear PDF: returns \f$ x f(x, Q) \f$ for flavour @a fl - this time the flavour encoding
+  /// is as in the LHAPDF manual.
+  /// @arg -6..-1 = \f$ \bar{t} \f$, ..., \f$ \bar{u} \f$, \f$ \bar{d} \f$;
+  /// @arg 0 = \f$ g \f$
+  /// @arg 1..6 = \f$ d \f$, \f$ u \f$, ..., \f$ t \f$.
+  ///
+  /// NB. Extra @a a param for atomic mass number.
+  double xfxa(double x, double Q, double a, int fl);
+  /// Nuclear PDF: returns \f$ x f(x, Q) \f$ for flavour @a fl - this time the flavour encoding
+  /// is as in the LHAPDF manual.
+  /// @arg -6..-1 = \f$ \bar{t} \f$, ..., \f$ \bar{u} \f$, \f$ \bar{d} \f$;
+  /// @arg 0 = \f$ g \f$
+  /// @arg 1..6 = \f$ d \f$, \f$ u \f$, ..., \f$ t \f$.
+  ///
+  /// NB. Extra @a a param for atomic mass number.
+  double xfxa(int nset, double x, double Q, double a, int fl);
+  //@}
+
+
+  /// @name Nucleon MRST QED PDF
+  /// These functions only apply to the MRST QED PDF set, since they return an extra element 
+  /// for the additional photon.
+  //@{
+
+  /// MRST QED PDF: returns a vector \f$ x f_i(x, Q) \f$ with index \f$ 0 < i < 12 \f$.
+  /// @arg 0..5 = \f$ \bar{t} \f$, ..., \f$ \bar{u} \f$, \f$ \bar{d} \f$; 
+  /// @arg 6 = \f$ g \f$; 
+  /// @arg 7..12 = \f$ d \f$, \f$ u \f$, ..., \f$ t \f$;
+  /// @arg 13 = \f$ \gamma \f$.
+  ///
+  /// NB. Note extra element in this set for MRST photon.
+  std::vector<double> xfxphoton(double x, double Q);
+  /// MRST QED PDF: returns a vector \f$ x f_i(x, Q) \f$ with index \f$ 0 < i < 12 \f$.
+  /// @arg 0..5 = \f$ \bar{t} \f$, ..., \f$ \bar{u} \f$, \f$ \bar{d} \f$; 
+  /// @arg 6 = \f$ g \f$; 
+  /// @arg 7..12 = \f$ d \f$, \f$ u \f$, ..., \f$ t \f$;
+  /// @arg 13 = \f$ \gamma \f$.
+  std::vector<double> xfxphoton(int nset, double x, double Q);
+
+
+  /// MRST QED PDF: fills primitive 14 element array pointed at by @a results with
+  /// \f$ x f(x, Q) \f$ with index \f$ 0 < i < 12 \f$.
+  /// @arg 0..5 = \f$ \bar{t} \f$, ..., \f$ \bar{u} \f$, \f$ \bar{d} \f$; 
+  /// @arg 6 = \f$ g \f$;
+  /// @arg 7..12 = \f$ d \f$, \f$ u \f$, ..., \f$ t \f$.
+  /// @arg 13 = \f$ \gamma \f$.
+  ///
+  /// NB. Note extra element in this set for MRST photon.
+  void xfxphoton(double x, double Q, double* results);
+  /// MRST QED PDF: fills primitive 14 element array pointed at by @a results with
+  /// \f$ x f(x, Q) \f$ with index \f$ 0 < i < 12 \f$.
+  /// @arg 0..5 = \f$ \bar{t} \f$, ..., \f$ \bar{u} \f$, \f$ \bar{d} \f$; 
+  /// @arg 6 = \f$ g \f$;
+  /// @arg 7..12 = \f$ d \f$, \f$ u \f$, ..., \f$ t \f$.
+  /// @arg 13 = \f$ \gamma \f$.
+  ///
+  /// NB. Note extra element in this set for MRST photon.
+  void xfxphoton(int nset, double x, double Q, double* results);
+
+
+  /// MRST QED PDF: returns \f$ x f(x, Q) \f$ for flavour @a fl - this time the flavour encoding
+  /// is as in the LHAPDF manual.
+  /// @arg -6..-1 = \f$ \bar{t} \f$, ..., \f$ \bar{u} \f$, \f$ \bar{d} \f$;
+  /// @arg 0 = \f$ g \f$
+  /// @arg 1..6 = \f$ d \f$, \f$ u \f$, ..., \f$ t \f$;
+  /// @arg 7 = \f$ \gamma \f$.
+  ///
+  /// NB. Note extra element in this set for MRST photon.
+  double xfxphoton(double x, double Q, int fl);
+  /// MRST QED PDF: returns \f$ x f(x, Q) \f$ for flavour @a fl - this time the flavour encoding
+  /// is as in the LHAPDF manual.
+  /// @arg -6..-1 = \f$ \bar{t} \f$, ..., \f$ \bar{u} \f$, \f$ \bar{d} \f$;
+  /// @arg 0 = \f$ g \f$
+  /// @arg 1..6 = \f$ d \f$, \f$ u \f$, ..., \f$ t \f$;
+  /// @arg 7 = \f$ \gamma \f$.
+  double xfxphoton(int nset, double x, double Q, int fl);
+  //@}
+
+
+  /// @name Deprecated initialisation functions
+  /// LHAPDF functions for initialising PDF sets. If you need to use
+  /// more than one set simultaneously, use the multi-set functions, which 
+  /// have a integer @c nset first argument.
+  /// @deprecated These init methods are deprecated.
+  //@{
+
+  /// The PDF set by file path, see subdir @c PDFsets of LHAPDF for choices.
+  //void initPDFSet(const std::string& path);
+  /// The PDF set by file path, see subdir @c PDFsets of LHAPDF for choices.
+  //void initPDFSet(int nset, const std::string& path);
+
+  /// The PDF set by name and type, see subdir @c PDFsets of LHAPDF for choices.
+  void initPDFSetByName(const std::string& name, SetType type);
+  /// The PDF set by name and type, see subdir @c PDFsets of LHAPDF for choices.
+  void initPDFSetByName(int nset, const std::string& name, SetType type);
+
+  /// The PDF set by filename, see subdir @c PDFsets of LHAPDF for choices.
+  void initPDFSetByName(const std::string& filename);
+  /// The PDF set by filename, see subdir @c PDFsets of LHAPDF for choices.
+  void initPDFSetByName(int nset, const std::string& filename);
+
+  /// The choice of PDF member out of one distribution.
+  void initPDF(int memset);
+  /// The choice of PDF member out of one distribution.
+  void initPDF(int nset, int memset);
+
+  /// @brief Convenient initializer with PDF set @a name, set type @a type and member @a memset.
+  /// @param name The name of the desired set.
+  /// @param type The type of PDF set (grid or data) by enum.
+  /// @param memset PDF number within set @a name.
+  /// Equivalent to @c initPDFSetByName + @c initPDF.
+  void initPDFByName(const std::string& name, SetType type, int memset);
+
+  /// @brief Typical initializer for multiple PDF sets with PDF set @a name and member @a memset.
+  /// @param nset Specifies the reference number for the set to be initialized.
+  /// @param name Name of the desired set.
+  /// @param type The type of PDF set (grid or data) by enum.
+  /// @param memset PDF number within set @a name.
+  /// Equivalent to @c initPDFSetByNameM + @c initPDFM.
+  void initPDFByName(int nset, const std::string& name, SetType type, int memset);
+
+  /// @brief Convenient initializer with PDF set @a filename and member @a memset.
+  /// @param filename The name of the grid or data file of the desired set.
+  /// @param memset PDF number within set @a name.
+  /// Equivalent to @c initPDFSetByName + @c initPDF.
+  void initPDFByName(const std::string& filename, int memset);
+  /// @brief Typical initializer for multiple PDF sets with PDF set @a name and member @a memset.
+  /// @param nset Specifies the reference number for the set to be initialized.
+  /// @param filename Name of the grid or data file of the desired set.
+  /// @param memset PDF number within set @a name.
+  /// Equivalent to @c initPDFSetByNameM + @c initPDFM.
+  void initPDFByName(int nset, const std::string& filename, int memset);
+  //@}
+
+
+}
+
+#endif
diff --git a/LHAPDF/lhapdf5.5.1/include/LHAPDF/LHAPDFWrap.h b/LHAPDF/lhapdf5.5.1/include/LHAPDF/LHAPDFWrap.h
new file mode 100644 (file)
index 0000000..f591d9c
--- /dev/null
@@ -0,0 +1,204 @@
+#ifndef LHAPDFWRAP_H
+#define LHAPDFWRAP_H
+
+#include <string>
+#include <vector>
+
+// WARNING! This C++ interface is deprecated in favour of the 
+// interface declared in LHAPDF/LHAPDF.h
+
+// This class is a wrapper around the LHAPDF package for parton
+// distribution functions of the proton.
+//
+// Originally by Stefan Gieseke.
+// Adapted for LHAPDFv4 by Mike Whalley.
+// Adapted for LHAPDFv5 by Craig Group/Mike Whalley.
+// Fortran portability and interface improvements by Andy Buckley.
+
+
+/////////////////////////////////////////////////////////////////
+
+
+/// Wrapper class used to contain all the wrapper functions.
+/// @deprecated 
+/// The class-based C++ wrapper on LHAPDF will be retired in a forthcoming
+/// release of LHAPDF in favour of the namespaced wrapper declared in @c
+/// LHAPDF.h. Please convert client code which uses the class interface to use
+/// the new interface instead.  Typically, this will just involve changing the
+/// header include from @c "LHAPDF/LHAPDFWrap.h" to @c "LHAPDF/LHAPDFWrap.h",
+/// changing any constructors to initialisation functions, and replacing @c
+/// LHAPDFWrap objects with an @c LHAPDF namespace. For example,
+/// @code
+///  #include "LHAPDF/LHAPDFWrap.h"
+///  LHAPDFWrap pdf = LHAPDFWrap("MRST2004qed.LHgrid", 0);
+///  pdf.getDescription();
+/// @endcode
+/// would be replaced by
+/// @code
+///  #include "LHAPDF/LHAPDF.h"
+///  LHAPDF::initPDFByName("MRST2004qed.LHgrid", 0);
+///  LHAPDF::getDescription();
+/// @endcode
+class LHAPDFWrap {
+
+public:
+  /// Do-nothing constructor.
+  LHAPDFWrap();
+  
+  /// Typical constructor with PDF set 'name' 
+  /// 'name' is the name of the grid or data file of the desired set.  
+  LHAPDFWrap(const std::string& name);
+
+  /// Typical constructor with PDF set 'name' and subset 'memset' 
+  /// 'name' is the name of the grid or data file of the desired set.  
+  LHAPDFWrap(const std::string& name, int memset);
+
+  /// Typical constructor (when multiple PDF sets need to be initialized) 
+  /// with pdfset 'name' and subset 'memset'.
+  /// 'name' is the name of the grid or data file of the desired set.  
+  /// int nset specifies the reference number for the set to be initialized
+  LHAPDFWrap(int nset, const std::string& name);
+
+  /// Typical constructor (when multiple PDF sets need to be initialized) 
+  /// with PDF set 'name' and subset 'memset'. 
+  /// 'name' is the name of the grid or data file of the desired set.  
+  /// int nset specifies the reference number for the set to be initialized
+  LHAPDFWrap(int nset, const std::string& name, int memset);
+
+  /// Returns a vector xf(x, Q) with index 0 < i < 12.
+  /// 0..5 = tbar, ..., ubar, dbar; 
+  /// 6 = g; 
+  /// 7..12 = d, u, ..., t
+  std::vector<double> xfx(double x, double Q);
+
+  /// Returns xf(x, Q) for flavour fl - this time the flavour encoding
+  /// is as in the LHAPDF manual...
+  /// -6..-1 = tbar,...,ubar, dbar
+  /// 1..6 = duscbt
+  /// 0 = g
+  double xfx(double x, double Q, int fl);
+
+  std::vector<double> xfxp(double x, double Q, double P2, int ip);
+  double xfxp(double x, double Q, double P2, int ip, int fl);
+
+  std::vector<double> xfxa(double x, double Q, double a);
+  double xfxa(double x, double Q, double a, int fl);
+
+  std::vector<double> xfxphoton(double x, double Q);
+  double xfxphoton(double x, double Q, int fl);
+
+  /// The PDF set by name, see subdir 'PDFset' of LHAPDFv2 for choices
+  void initPDFSet(const std::string& name);
+
+  /// The PDF set by name, see subdir 'PDFset' of LHAPDFv2 for choices
+  void initPDFSetByName(const std::string& name);
+
+  /// The choice of PDF subset out of one distribution
+  void initPDF(int memset);
+
+  /// Prints a brief description of the current pdf set to stdout
+  void getDescription();
+
+  /// Number of subsets available in the current distribution.
+  int numberPDF();
+
+  /// \f$ \alpha_\mathrm{s} \f$ used by the current PDF.
+  double alphasPDF(double Q);
+
+  int getOrderPDF();
+
+  /// Perturbative order of parton evolution and \f$ \alpha_\mathrm{s} \f$ respectively.
+  int getOrderAlphaS();
+
+  /// Quark mass used for flavour f.
+  double getQMass(int f);
+
+  /// Threshold for flavour f.
+  double getThreshold(int f);
+
+  /// Number of flavours used in the current PDF set.
+  int getNf();
+
+  /// Value of QCD lambda4 for member m 
+  double getLam4(int m);
+
+  /// Value of QCD lambda5 for member m 
+  double getLam5(int m);
+
+  double getXmin(int m);
+  double getXmax(int m);
+  double getQ2min(int m);
+  double getQ2max(int m);
+
+  void extrapolate();
+
+  // Additional functions for when more than 1 PDF set is being stored in memory
+
+  // Returns a vector xf(x, Q) with index 0 < i < 12.
+  // 0..5 = tbar, ..., ubar, dbar; 
+  // 6 = g; 
+  // 7..12 = d, u, ..., t
+  std::vector<double> xfxM(int nset, double x, double Q);
+
+  // Returns xf(x, Q) for flavour fl - this time the flavour encoding
+  // is as in the LHAPDF manual...
+  // -6..-1 = tbar,...,ubar, dbar
+  // 1..6 = duscbt
+  // 0 = g
+  double xfxM(int nset, double x, double Q, int fl);
+
+  std::vector<double> xfxpM(int nset, double x, double Q, double P2, int ip);
+  double xfxpM(int nset, double x, double Q, double P2, int ip, int fl);
+
+  std::vector<double> xfxaM(int nset, double x, double Q, double a);
+  double xfxaM(int nset, double x, double Q, double a, int fl);
+
+  std::vector<double> xfxphotonM(int nset, double x, double Q);
+  double xfxphotonM(int nset, double x, double Q, int fl);
+
+  /// The PDF set by name, see subdir 'PDFset' of LHAPDFv2 for choices
+  void initPDFSetM(int nset, const std::string& name);
+
+  /// The PDF set by name, see subdir 'PDFset' of LHAPDFv2 for choices
+  void initPDFSetByNameM(int nset, const std::string& name);
+
+  /// The choice of PDF subset out of one distribution
+  void initPDFM(int nset, int memset);
+
+  /// Prints a brief description of the current PDF set to stdout
+  void getDescriptionM(int nset);
+
+  /// Number of subsets available in the current distribution.
+  int numberPDFM(int nset);
+
+  /// \f$ \alpha_\mathrm{s} \f$ used by the current PDF.
+  double alphasPDFM(int nset, double Q);
+
+  int getOrderPDFM(int nset);
+
+  /// Perturbative order of parton evolution and \f$ \alpha_\mathrm{s} \f$ respectively.
+  int getOrderAlphaSM(int nset);
+
+  /// Quark mass used for flavour f.
+  double getQMassM(int nset, int f);
+
+  /// Threshold for flavour f.
+  double getThresholdM(int nset, int f);
+
+  /// Number of flavours used in the current PDF set.
+  int getNfM(int nset);
+
+  /// Value of QCD lambda4 for member m 
+  double getLam4M(int nset, int m);
+
+  /// Value of QCD lambda5 for member m 
+  double getLam5M(int nset, int m);
+
+  double getXminM(int nset, int m);
+  double getXmaxM(int nset, int m);
+  double getQ2minM(int nset, int m);
+  double getQ2maxM(int nset, int m);
+
+};
+
+#endif
diff --git a/LHAPDF/lhapdf5.5.1/include/LHAPDF/LHAPDFfw.h b/LHAPDF/lhapdf5.5.1/include/LHAPDF/LHAPDFfw.h
new file mode 100644 (file)
index 0000000..a19f624
--- /dev/null
@@ -0,0 +1,131 @@
+#ifndef LHAPDFfw_H
+#define LHAPDFfw_H
+
+// Forward declarations of signatures of Fortran
+// intermediate wrapper functions.
+
+#include "LHAPDF/FortranWrappers.h"
+
+extern "C" {
+
+  #define fgetprefixpath FC_FUNC(getprefixpath, GETPREFIXPATH)
+  void fgetprefixpath(char*, int len);
+  #define fgetindexpath FC_FUNC(getindexpath, GETINDEXPATH)
+  void fgetindexpath(char*, int len);
+  #define fgetdirpath FC_FUNC(getdirpath, GETDIRPATH)
+  void fgetdirpath(char*, int len);
+
+  #define finitlhapdf FC_FUNC(initlhapdf, INITLHAPDF)
+  void finitlhapdf();
+
+  #define fgetlhapdfversion FC_FUNC(getlhapdfversion, GETLHAPDFVERSION)
+  void fgetlhapdfversion(char*, int len);
+
+  #define finitpdfset FC_FUNC(finitpdfset, FINITPDFSET)
+  void finitpdfset(char*, int len);
+  #define finitpdfsetbyname FC_FUNC(finitpdfsetbyname, FINITPDFSETBYNAME)
+  void finitpdfsetbyname(char*, int len);
+  #define finitpdf FC_FUNC(finitpdf, FINITPDF)
+  void finitpdf(int*);
+  #define fevolvepdf FC_FUNC(fevolvepdf, FEVOLVEPDF)
+  void fevolvepdf(double*, double *, double*);
+  #define fevolvepdfp FC_FUNC(fevolvepdfp, FEVOLVEPDFP)
+  void fevolvepdfp(double*, double *, double*, int*, double*);
+  #define fevolvepdfa FC_FUNC(fevolvepdfa, FEVOLVEPDFA)
+  void fevolvepdfa(double*, double *, double *, double*);
+  #define fevolvepdfphoton FC_FUNC(fevolvepdfphoton, FEVOLVEPDFPHOTON)
+  void fevolvepdfphoton(double*, double *, double*, double*);
+  #define fnumberpdf FC_FUNC(fnumberpdf, FNUMBERPDF)
+  void fnumberpdf(int*);
+  #define falphaspdf FC_FUNC(falphaspdf, FALPHASPDF)
+  void falphaspdf(double*, double *);
+  #define fgetorderpdf FC_FUNC(fgetorderpdf, FGETORDERPDF)
+  void fgetorderpdf(int*);
+  #define fgetorderas FC_FUNC(fgetorderas, FGETORDERAS)
+  void fgetorderas(int*);
+  #define fgetdesc FC_FUNC(fgetdesc, FGETDESC)
+  void fgetdesc();
+  #define fgetqmass FC_FUNC(fgetqmass, FGETQMASS)
+  void fgetqmass(int*, double*);
+  #define fgetthreshold FC_FUNC(fgetthreshold, FGETTHRESHOLD)
+  void fgetthreshold(int*, double*);
+  #define fgetnf FC_FUNC(fgetnf, FGETNF)
+  void fgetnf(int*);
+  #define fgetlam4 FC_FUNC(fgetlam4, FGETLAM4)
+  void fgetlam4(int*, double*);
+  #define fgetlam5 FC_FUNC(fgetlam5, FGETLAM5)
+  void fgetlam5(int*, double*);
+  #define fgetxmin FC_FUNC(fgetxmin, FGETXMIN)
+  void fgetxmin(int*, double*);
+  #define fgetxmax FC_FUNC(fgetxmax, FGETXMAX)
+  void fgetxmax(int*, double*);
+  #define fgetq2min FC_FUNC(fgetq2min, FGETQ2MIN)
+  void fgetq2min(int*, double*);
+  #define fgetq2max FC_FUNC(fgetq2max, FGETQ2MAX)
+  void fgetq2max(int*, double*);
+  #define fgetminmax FC_FUNC(fgetminmax, FGETMINMAX)
+  void fgetminmax(int*, double*, double*, double*, double*);
+  #define fextrapolate FC_FUNC(fextrapolate, FEXTRAPOLATE)
+  void fextrapolate();
+
+  // v5 subroutines for multiple set initialization
+  #define finitpdfsetm FC_FUNC(finitpdfsetm, FINITPDFSETM)
+  void finitpdfsetm(int*, char*, int len);
+  #define finitpdfsetbynamem FC_FUNC(finitpdfsetbynamem, FINITPDFSETBYNAMEM)
+  void finitpdfsetbynamem(int*, char*, int len);
+  #define finitpdfm FC_FUNC(finitpdfm, FINITPDFM)
+  void finitpdfm(int*, int*);
+  #define fevolvepdfm FC_FUNC(fevolvepdfm, FEVOLVEPDFM)
+  void fevolvepdfm(int*, double*, double *, double*);
+  #define fevolvepdfpm FC_FUNC(fevolvepdfpm, FEVOLVEPDFPM)
+  void fevolvepdfpm(int*, double*, double *, double*, int*, double*);
+  #define fevolvepdfam FC_FUNC(fevolvepdfam, FEVOLVEPDFAM)
+  void fevolvepdfam(int*, double*, double *, double *, double*);
+  #define fevolvepdfphotonm FC_FUNC(fevolvepdfphotonm, FEVOLVEPDFPHOTONM)
+  void fevolvepdfphotonm(int*, double*, double *, double*, double*);
+  #define fnumberpdfm FC_FUNC(fnumberpdfm, FNUMBERPDFM)
+  void fnumberpdfm(int*, int*);
+  #define falphaspdfm FC_FUNC(falphaspdfm, FALPHASPDFM)
+  void falphaspdfm(int*, double*, double *);
+  #define fgetorderpdfm FC_FUNC(fgetorderpdfm, FGETORDERPDFM)
+  void fgetorderpdfm(int*, int*);
+  #define fgetorderasm FC_FUNC(fgetorderasm, FGETORDERASM)
+  void fgetorderasm(int*, int*);
+  #define fgetdescm FC_FUNC(fgetdescm, FGETDESCM)
+  void fgetdescm(int*);
+  #define fgetqmassm FC_FUNC(fgetqmassm, FGETQMASSM)
+  void fgetqmassm(int*, int*, double*);
+  #define fgetthresholdm FC_FUNC(fgetthresholdm, FGETTHRESHOLDM)
+  void fgetthresholdm(int*, int*, double*);
+  #define fgetnfm FC_FUNC(fgetnfm, FGETNFM)
+  void fgetnfm(int*, int*);
+  #define fgetlam4m FC_FUNC(fgetlam4m, FGETLAM4M)
+  void fgetlam4m(int*, int*, double*);
+  #define fgetlam5m FC_FUNC(fgetlam5m, FGETLAM5M)
+  void fgetlam5m(int*, int*, double*);
+  #define fgetxminm FC_FUNC(fgetxminm, FGETXMINM)
+  void fgetxminm(int*, int*, double*);
+  #define fgetxmaxm FC_FUNC(fgetxmaxm, FGETXMAXM)
+  void fgetxmaxm(int*, int*, double*);
+  #define fgetq2minm FC_FUNC(fgetq2minm, FGETQ2MINM)
+  void fgetq2minm(int*, int*, double*);
+  #define fgetq2maxm FC_FUNC(fgetq2maxm, FGETQ2MAXM)
+  void fgetq2maxm(int*, int*, double*);
+  #define fgetminmaxm FC_FUNC(fgetminmaxm, FGETMINMAXM)
+  void fgetminmaxm(int*, int*, double*, double*, double*, double*);
+  #define fextrapolateon FC_FUNC(fextrapolateon, FEXTRAPOLATEON)
+  void fextrapolateon();
+  #define fextrapolateoff FC_FUNC(fextrapolateoff, FEXTRAPOLATEOFF)      
+  void fextrapolateoff();
+  #define fsilent FC_FUNC(fsilent, FSILENT) 
+  void fsilent();
+  #define flowkey FC_FUNC(flowkey, FLOWKEY)
+  void flowkey();
+  #define fdefaultverb FC_FUNC(fdefaultverb, FDEFAULTVERB)
+  void fdefaultverb();
+  #define fsetpdfpath FC_FUNC(fsetpdfpath, FSETPDFPATH)
+  void fsetpdfpath(char*, int len);
+
+}
+
+#endif
diff --git a/LHAPDF/lhapdf5.5.1/include/LHAPDF/Makefile b/LHAPDF/lhapdf5.5.1/include/LHAPDF/Makefile
new file mode 100644 (file)
index 0000000..62f5a75
--- /dev/null
@@ -0,0 +1,482 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# include/LHAPDF/Makefile.  Generated from Makefile.in by configure.
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+
+pkgdatadir = $(datadir)/lhapdf
+pkglibdir = $(libdir)/lhapdf
+pkgincludedir = $(includedir)/lhapdf
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = x86_64-unknown-linux-gnu
+host_triplet = x86_64-unknown-linux-gnu
+am__append_1 = LHAPDFWrap.h
+#am__append_2 = LHAPDF.h LHAPDFfw.h LHAPDFWrap.h
+subdir = include/LHAPDF
+DIST_COMMON = $(am__PKGinclude_HEADERS_DIST) \
+       $(srcdir)/FortranWrappers.h.in $(srcdir)/Makefile.am \
+       $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/binreloc.m4 \
+       $(top_srcdir)/m4/compilerflags.m4 $(top_srcdir)/m4/python.m4 \
+       $(top_srcdir)/m4/swig.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config/config.h FortranWrappers.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+am__PKGinclude_HEADERS_DIST = LHAPDF.h LHAPDFfw.h LHAPDFWrap.h
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(PKGincludedir)" \
+       "$(DESTDIR)$(PKGincludedir)"
+PKGincludeHEADERS_INSTALL = $(INSTALL_HEADER)
+nodist_PKGincludeHEADERS_INSTALL = $(INSTALL_HEADER)
+HEADERS = $(PKGinclude_HEADERS) $(nodist_PKGinclude_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = ${SHELL} /home/morsch/AliRoot/trunk/LHAPDF/lhapdf5.5.1/config/missing --run aclocal-1.10
+AMTAR = ${SHELL} /home/morsch/AliRoot/trunk/LHAPDF/lhapdf5.5.1/config/missing --run tar
+AM_CPPFLAGS =  -I$(top_srcdir)/include -I$(top_builddir)/include -DDEFAULTPREFIXPATH=\"NONE\" -DDEFAULTLHAPATH=\"${datarootdir}\" 
+AM_CXXFLAGS =  -pedantic  -ansi  -Wall 
+AM_FCFLAGS =  -ffree-form 
+AM_FFLAGS =  -ffree-form 
+AR = ar
+AUTOCONF = ${SHELL} /home/morsch/AliRoot/trunk/LHAPDF/lhapdf5.5.1/config/missing --run autoconf
+AUTOHEADER = ${SHELL} /home/morsch/AliRoot/trunk/LHAPDF/lhapdf5.5.1/config/missing --run autoheader
+AUTOMAKE = ${SHELL} /home/morsch/AliRoot/trunk/LHAPDF/lhapdf5.5.1/config/missing --run automake-1.10
+AWK = gawk
+BINRELOC_CFLAGS = 
+BINRELOC_LIBS = 
+CC = gcc
+CCDEPMODE = depmode=gcc3
+CFLAGS = -g -O2
+CPP = gcc -E
+CPPFLAGS = 
+CXX = g++
+CXXCPP = g++ -E
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -g -O2
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+DOXYGEN = /usr/bin/doxygen
+DSYMUTIL = 
+ECHO = echo
+ECHO_C = 
+ECHO_N = -n
+ECHO_T = 
+EGREP = /bin/grep -E
+EXEEXT = 
+F77 = gfortran
+FC = gfortran
+FCFLAGS = -O2 -ffree-form
+FCLIBS =  -L/usr/lib/gcc/x86_64-redhat-linux5E/4.1.2 -L/usr/lib/gcc/x86_64-redhat-linux5E/4.1.2/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -lgfortranbegin -lgfortran -lm
+FFLAGS =  -O2 -ffree-form
+GREP = /bin/grep
+INSTALL = /usr/bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+LDFLAGS = 
+LIBOBJS = 
+LIBS = 
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LN_S = ln -s
+LTLIBOBJS = 
+MAKEINFO = ${SHELL} /home/morsch/AliRoot/trunk/LHAPDF/lhapdf5.5.1/config/missing --run makeinfo
+MKDIR_P = /bin/mkdir -p
+NMEDIT = 
+NMXSET = 3
+OBJEXT = o
+PACKAGE = lhapdf
+PACKAGE_BUGREPORT = lhapdf@projects.hepforge.org
+PACKAGE_NAME = LHAPDF
+PACKAGE_STRING = LHAPDF 5.5.1
+PACKAGE_TARNAME = lhapdf
+PACKAGE_VERSION = 5.5.1
+PATH_SEPARATOR = :
+PYTHON = /usr/bin/python
+PYTHON_CPPFLAGS = -I/usr/include/python2.3
+PYTHON_EXEC_PREFIX = ${exec_prefix}
+PYTHON_EXTRA_LDFLAGS = -Xlinker -export-dynamic
+PYTHON_EXTRA_LIBS =  -lpthread -ldl  -lutil
+PYTHON_LDFLAGS = -L/usr/lib64/python2.3 -lpython2.3
+PYTHON_PLATFORM = linux2
+PYTHON_PREFIX = ${prefix}
+PYTHON_SITE_PKG = /usr/lib/python2.3/site-packages
+PYTHON_VERSION = 2.3
+RANLIB = ranlib
+SED = /bin/sed
+SET_MAKE = 
+SHELL = /bin/sh
+STRIP = strip
+SWIG = /usr/bin/swig -c++
+SWIG_LIB = /usr/lib64/swig1.3
+SWIG_PYTHON_CPPFLAGS = -I/usr/include/python2.3
+SWIG_PYTHON_OPT = -python
+SWVERS = 
+VERSION = 5.5.1
+VERSIONFLAGS = -version-info 1:3:2
+abs_builddir = /home/morsch/AliRoot/trunk/LHAPDF/lhapdf5.5.1/include/LHAPDF
+abs_srcdir = /home/morsch/AliRoot/trunk/LHAPDF/lhapdf5.5.1/include/LHAPDF
+abs_top_builddir = /home/morsch/AliRoot/trunk/LHAPDF/lhapdf5.5.1
+abs_top_srcdir = /home/morsch/AliRoot/trunk/LHAPDF/lhapdf5.5.1
+ac_ct_CC = gcc
+ac_ct_CXX = g++
+ac_ct_F77 = 
+ac_ct_FC = gfortran
+am__include = include
+am__leading_dot = .
+am__quote = 
+am__tar = ${AMTAR} chof - "$$tardir"
+am__untar = ${AMTAR} xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-unknown-linux-gnu
+build_alias = 
+build_cpu = x86_64
+build_os = linux-gnu
+build_vendor = unknown
+builddir = .
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = ${prefix}
+host = x86_64-unknown-linux-gnu
+host_alias = 
+host_cpu = x86_64
+host_os = linux-gnu
+host_vendor = unknown
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = $(SHELL) /home/morsch/AliRoot/trunk/LHAPDF/lhapdf5.5.1/config/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = /bin/mkdir -p
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+pkgpyexecdir = ${pyexecdir}/lhapdf
+pkgpythondir = ${pythondir}/lhapdf
+prefix = /usr/local
+program_transform_name = s,x,x,
+psdir = ${docdir}
+pyexecdir = ${exec_prefix}/lib64/python2.3/site-packages
+pythondir = ${prefix}/lib/python2.3/site-packages
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = .
+sysconfdir = ${prefix}/etc
+target_alias = 
+top_builddir = ../..
+top_srcdir = ../..
+EXTRA_DIST = FortranWrappers.h.in $(am__append_2)
+PKGincludedir = $(includedir)/LHAPDF
+PKGinclude_HEADERS = LHAPDF.h LHAPDFfw.h \
+       $(am__append_1)
+nodist_PKGinclude_HEADERS = FortranWrappers.h
+all: FortranWrappers.h
+       $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+               && exit 0; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  include/LHAPDF/Makefile'; \
+       cd $(top_srcdir) && \
+         $(AUTOMAKE) --gnu  include/LHAPDF/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+FortranWrappers.h: stamp-h2
+       @if test ! -f $@; then \
+         rm -f stamp-h2; \
+         $(MAKE) $(AM_MAKEFLAGS) stamp-h2; \
+       else :; fi
+
+stamp-h2: $(srcdir)/FortranWrappers.h.in $(top_builddir)/config.status
+       @rm -f stamp-h2
+       cd $(top_builddir) && $(SHELL) ./config.status include/LHAPDF/FortranWrappers.h
+$(srcdir)/FortranWrappers.h.in:  $(am__configure_deps) 
+       cd $(top_srcdir) && $(AUTOHEADER)
+       rm -f stamp-h2
+       touch $@
+
+distclean-hdr:
+       -rm -f FortranWrappers.h stamp-h2
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-PKGincludeHEADERS: $(PKGinclude_HEADERS)
+       @$(NORMAL_INSTALL)
+       test -z "$(PKGincludedir)" || $(MKDIR_P) "$(DESTDIR)$(PKGincludedir)"
+       @list='$(PKGinclude_HEADERS)'; for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         f=$(am__strip_dir) \
+         echo " $(PKGincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(PKGincludedir)/$$f'"; \
+         $(PKGincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(PKGincludedir)/$$f"; \
+       done
+
+uninstall-PKGincludeHEADERS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(PKGinclude_HEADERS)'; for p in $$list; do \
+         f=$(am__strip_dir) \
+         echo " rm -f '$(DESTDIR)$(PKGincludedir)/$$f'"; \
+         rm -f "$(DESTDIR)$(PKGincludedir)/$$f"; \
+       done
+install-nodist_PKGincludeHEADERS: $(nodist_PKGinclude_HEADERS)
+       @$(NORMAL_INSTALL)
+       test -z "$(PKGincludedir)" || $(MKDIR_P) "$(DESTDIR)$(PKGincludedir)"
+       @list='$(nodist_PKGinclude_HEADERS)'; for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         f=$(am__strip_dir) \
+         echo " $(nodist_PKGincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(PKGincludedir)/$$f'"; \
+         $(nodist_PKGincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(PKGincludedir)/$$f"; \
+       done
+
+uninstall-nodist_PKGincludeHEADERS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(nodist_PKGinclude_HEADERS)'; for p in $$list; do \
+         f=$(am__strip_dir) \
+         echo " rm -f '$(DESTDIR)$(PKGincludedir)/$$f'"; \
+         rm -f "$(DESTDIR)$(PKGincludedir)/$$f"; \
+       done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES) FortranWrappers.h.in $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS) FortranWrappers.h.in $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+           $$tags $$unique; \
+       fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES) FortranWrappers.h.in $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       tags=; \
+       list='$(SOURCES) $(HEADERS) FortranWrappers.h.in $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$tags$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$tags $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && cd $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+           fi; \
+           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+         else \
+           test -f $(distdir)/$$file \
+           || cp -p $$d/$$file $(distdir)/$$file \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(HEADERS) FortranWrappers.h
+installdirs:
+       for dir in "$(DESTDIR)$(PKGincludedir)" "$(DESTDIR)$(PKGincludedir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-hdr distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-PKGincludeHEADERS \
+       install-nodist_PKGincludeHEADERS
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-PKGincludeHEADERS \
+       uninstall-nodist_PKGincludeHEADERS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+       clean-libtool ctags distclean distclean-generic distclean-hdr \
+       distclean-libtool distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-PKGincludeHEADERS \
+       install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-nodist_PKGincludeHEADERS install-pdf install-pdf-am \
+       install-ps install-ps-am install-strip installcheck \
+       installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+       uninstall-PKGincludeHEADERS uninstall-am \
+       uninstall-nodist_PKGincludeHEADERS
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/LHAPDF/lhapdf5.5.1/include/LHAPDF/Makefile.am b/LHAPDF/lhapdf5.5.1/include/LHAPDF/Makefile.am
new file mode 100644 (file)
index 0000000..be47f5a
--- /dev/null
@@ -0,0 +1,17 @@
+EXTRA_DIST = FortranWrappers.h.in
+
+if ENABLE_CCWRAP
+
+PKGincludedir = $(includedir)/LHAPDF
+PKGinclude_HEADERS = LHAPDF.h LHAPDFfw.h
+nodist_PKGinclude_HEADERS = FortranWrappers.h
+if ENABLE_OLDCCWRAP
+PKGinclude_HEADERS += LHAPDFWrap.h
+endif
+
+else 
+
+## Make sure that headers are always bundled
+EXTRA_DIST += LHAPDF.h LHAPDFfw.h LHAPDFWrap.h
+
+endif
diff --git a/LHAPDF/lhapdf5.5.1/include/LHAPDF/Makefile.in b/LHAPDF/lhapdf5.5.1/include/LHAPDF/Makefile.in
new file mode 100644 (file)
index 0000000..d977fbe
--- /dev/null
@@ -0,0 +1,482 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+@ENABLE_CCWRAP_TRUE@@ENABLE_OLDCCWRAP_TRUE@am__append_1 = LHAPDFWrap.h
+@ENABLE_CCWRAP_FALSE@am__append_2 = LHAPDF.h LHAPDFfw.h LHAPDFWrap.h
+subdir = include/LHAPDF
+DIST_COMMON = $(am__PKGinclude_HEADERS_DIST) \
+       $(srcdir)/FortranWrappers.h.in $(srcdir)/Makefile.am \
+       $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/binreloc.m4 \
+       $(top_srcdir)/m4/compilerflags.m4 $(top_srcdir)/m4/python.m4 \
+       $(top_srcdir)/m4/swig.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config/config.h FortranWrappers.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+am__PKGinclude_HEADERS_DIST = LHAPDF.h LHAPDFfw.h LHAPDFWrap.h
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(PKGincludedir)" \
+       "$(DESTDIR)$(PKGincludedir)"
+PKGincludeHEADERS_INSTALL = $(INSTALL_HEADER)
+nodist_PKGincludeHEADERS_INSTALL = $(INSTALL_HEADER)
+HEADERS = $(PKGinclude_HEADERS) $(nodist_PKGinclude_HEADERS)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_CPPFLAGS = @AM_CPPFLAGS@
+AM_CXXFLAGS = @AM_CXXFLAGS@
+AM_FCFLAGS = @AM_FCFLAGS@
+AM_FFLAGS = @AM_FFLAGS@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BINRELOC_CFLAGS = @BINRELOC_CFLAGS@
+BINRELOC_LIBS = @BINRELOC_LIBS@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOXYGEN = @DOXYGEN@
+DSYMUTIL = @DSYMUTIL@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FC = @FC@
+FCFLAGS = @FCFLAGS@
+FCLIBS = @FCLIBS@
+FFLAGS = @FFLAGS@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NMEDIT = @NMEDIT@
+NMXSET = @NMXSET@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PYTHON = @PYTHON@
+PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@
+PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@
+PYTHON_LDFLAGS = @PYTHON_LDFLAGS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_SITE_PKG = @PYTHON_SITE_PKG@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+SWIG = @SWIG@
+SWIG_LIB = @SWIG_LIB@
+SWIG_PYTHON_CPPFLAGS = @SWIG_PYTHON_CPPFLAGS@
+SWIG_PYTHON_OPT = @SWIG_PYTHON_OPT@
+SWVERS = @SWVERS@
+VERSION = @VERSION@
+VERSIONFLAGS = @VERSIONFLAGS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_FC = @ac_ct_FC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = FortranWrappers.h.in $(am__append_2)
+@ENABLE_CCWRAP_TRUE@PKGincludedir = $(includedir)/LHAPDF
+@ENABLE_CCWRAP_TRUE@PKGinclude_HEADERS = LHAPDF.h LHAPDFfw.h \
+@ENABLE_CCWRAP_TRUE@   $(am__append_1)
+@ENABLE_CCWRAP_TRUE@nodist_PKGinclude_HEADERS = FortranWrappers.h
+all: FortranWrappers.h
+       $(MAKE) $(AM_MAKEFLAGS) all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+               && exit 0; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  include/LHAPDF/Makefile'; \
+       cd $(top_srcdir) && \
+         $(AUTOMAKE) --gnu  include/LHAPDF/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+FortranWrappers.h: stamp-h2
+       @if test ! -f $@; then \
+         rm -f stamp-h2; \
+         $(MAKE) $(AM_MAKEFLAGS) stamp-h2; \
+       else :; fi
+
+stamp-h2: $(srcdir)/FortranWrappers.h.in $(top_builddir)/config.status
+       @rm -f stamp-h2
+       cd $(top_builddir) && $(SHELL) ./config.status include/LHAPDF/FortranWrappers.h
+$(srcdir)/FortranWrappers.h.in:  $(am__configure_deps) 
+       cd $(top_srcdir) && $(AUTOHEADER)
+       rm -f stamp-h2
+       touch $@
+
+distclean-hdr:
+       -rm -f FortranWrappers.h stamp-h2
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+install-PKGincludeHEADERS: $(PKGinclude_HEADERS)
+       @$(NORMAL_INSTALL)
+       test -z "$(PKGincludedir)" || $(MKDIR_P) "$(DESTDIR)$(PKGincludedir)"
+       @list='$(PKGinclude_HEADERS)'; for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         f=$(am__strip_dir) \
+         echo " $(PKGincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(PKGincludedir)/$$f'"; \
+         $(PKGincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(PKGincludedir)/$$f"; \
+       done
+
+uninstall-PKGincludeHEADERS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(PKGinclude_HEADERS)'; for p in $$list; do \
+         f=$(am__strip_dir) \
+         echo " rm -f '$(DESTDIR)$(PKGincludedir)/$$f'"; \
+         rm -f "$(DESTDIR)$(PKGincludedir)/$$f"; \
+       done
+install-nodist_PKGincludeHEADERS: $(nodist_PKGinclude_HEADERS)
+       @$(NORMAL_INSTALL)
+       test -z "$(PKGincludedir)" || $(MKDIR_P) "$(DESTDIR)$(PKGincludedir)"
+       @list='$(nodist_PKGinclude_HEADERS)'; for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         f=$(am__strip_dir) \
+         echo " $(nodist_PKGincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(PKGincludedir)/$$f'"; \
+         $(nodist_PKGincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(PKGincludedir)/$$f"; \
+       done
+
+uninstall-nodist_PKGincludeHEADERS:
+       @$(NORMAL_UNINSTALL)
+       @list='$(nodist_PKGinclude_HEADERS)'; for p in $$list; do \
+         f=$(am__strip_dir) \
+         echo " rm -f '$(DESTDIR)$(PKGincludedir)/$$f'"; \
+         rm -f "$(DESTDIR)$(PKGincludedir)/$$f"; \
+       done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES) FortranWrappers.h.in $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS) FortranWrappers.h.in $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+           $$tags $$unique; \
+       fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES) FortranWrappers.h.in $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       tags=; \
+       list='$(SOURCES) $(HEADERS) FortranWrappers.h.in $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$tags$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$tags $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && cd $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+           fi; \
+           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+         else \
+           test -f $(distdir)/$$file \
+           || cp -p $$d/$$file $(distdir)/$$file \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(HEADERS) FortranWrappers.h
+installdirs:
+       for dir in "$(DESTDIR)$(PKGincludedir)" "$(DESTDIR)$(PKGincludedir)"; do \
+         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-hdr distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-PKGincludeHEADERS \
+       install-nodist_PKGincludeHEADERS
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-PKGincludeHEADERS \
+       uninstall-nodist_PKGincludeHEADERS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+       clean-libtool ctags distclean distclean-generic distclean-hdr \
+       distclean-libtool distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-PKGincludeHEADERS \
+       install-am install-data install-data-am install-dvi \
+       install-dvi-am install-exec install-exec-am install-html \
+       install-html-am install-info install-info-am install-man \
+       install-nodist_PKGincludeHEADERS install-pdf install-pdf-am \
+       install-ps install-ps-am install-strip installcheck \
+       installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
+       uninstall-PKGincludeHEADERS uninstall-am \
+       uninstall-nodist_PKGincludeHEADERS
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/LHAPDF/lhapdf5.5.1/include/LHAPDF/stamp-h2 b/LHAPDF/lhapdf5.5.1/include/LHAPDF/stamp-h2
new file mode 100644 (file)
index 0000000..a8a133b
--- /dev/null
@@ -0,0 +1 @@
+timestamp for include/LHAPDF/FortranWrappers.h
diff --git a/LHAPDF/lhapdf5.5.1/include/Makefile b/LHAPDF/lhapdf5.5.1/include/Makefile
new file mode 100644 (file)
index 0000000..cc8b0bf
--- /dev/null
@@ -0,0 +1,516 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# include/Makefile.  Generated from Makefile.in by configure.
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+pkgdatadir = $(datadir)/lhapdf
+pkglibdir = $(libdir)/lhapdf
+pkgincludedir = $(includedir)/lhapdf
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = x86_64-unknown-linux-gnu
+host_triplet = x86_64-unknown-linux-gnu
+subdir = include
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/binreloc.m4 \
+       $(top_srcdir)/m4/compilerflags.m4 $(top_srcdir)/m4/python.m4 \
+       $(top_srcdir)/m4/swig.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config/config.h \
+       $(top_builddir)/include/LHAPDF/FortranWrappers.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+       html-recursive info-recursive install-data-recursive \
+       install-dvi-recursive install-exec-recursive \
+       install-html-recursive install-info-recursive \
+       install-pdf-recursive install-ps-recursive install-recursive \
+       installcheck-recursive installdirs-recursive pdf-recursive \
+       ps-recursive uninstall-recursive
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
+  distclean-recursive maintainer-clean-recursive
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = ${SHELL} /home/morsch/AliRoot/trunk/LHAPDF/lhapdf5.5.1/config/missing --run aclocal-1.10
+AMTAR = ${SHELL} /home/morsch/AliRoot/trunk/LHAPDF/lhapdf5.5.1/config/missing --run tar
+AM_CPPFLAGS =  -I$(top_srcdir)/include -I$(top_builddir)/include -DDEFAULTPREFIXPATH=\"NONE\" -DDEFAULTLHAPATH=\"${datarootdir}\" 
+AM_CXXFLAGS =  -pedantic  -ansi  -Wall 
+AM_FCFLAGS =  -ffree-form 
+AM_FFLAGS =  -ffree-form 
+AR = ar
+AUTOCONF = ${SHELL} /home/morsch/AliRoot/trunk/LHAPDF/lhapdf5.5.1/config/missing --run autoconf
+AUTOHEADER = ${SHELL} /home/morsch/AliRoot/trunk/LHAPDF/lhapdf5.5.1/config/missing --run autoheader
+AUTOMAKE = ${SHELL} /home/morsch/AliRoot/trunk/LHAPDF/lhapdf5.5.1/config/missing --run automake-1.10
+AWK = gawk
+BINRELOC_CFLAGS = 
+BINRELOC_LIBS = 
+CC = gcc
+CCDEPMODE = depmode=gcc3
+CFLAGS = -g -O2
+CPP = gcc -E
+CPPFLAGS = 
+CXX = g++
+CXXCPP = g++ -E
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -g -O2
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+DOXYGEN = /usr/bin/doxygen
+DSYMUTIL = 
+ECHO = echo
+ECHO_C = 
+ECHO_N = -n
+ECHO_T = 
+EGREP = /bin/grep -E
+EXEEXT = 
+F77 = gfortran
+FC = gfortran
+FCFLAGS = -O2 -ffree-form
+FCLIBS =  -L/usr/lib/gcc/x86_64-redhat-linux5E/4.1.2 -L/usr/lib/gcc/x86_64-redhat-linux5E/4.1.2/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -lgfortranbegin -lgfortran -lm
+FFLAGS =  -O2 -ffree-form
+GREP = /bin/grep
+INSTALL = /usr/bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+LDFLAGS = 
+LIBOBJS = 
+LIBS = 
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LN_S = ln -s
+LTLIBOBJS = 
+MAKEINFO = ${SHELL} /home/morsch/AliRoot/trunk/LHAPDF/lhapdf5.5.1/config/missing --run makeinfo
+MKDIR_P = /bin/mkdir -p
+NMEDIT = 
+NMXSET = 3
+OBJEXT = o
+PACKAGE = lhapdf
+PACKAGE_BUGREPORT = lhapdf@projects.hepforge.org
+PACKAGE_NAME = LHAPDF
+PACKAGE_STRING = LHAPDF 5.5.1
+PACKAGE_TARNAME = lhapdf
+PACKAGE_VERSION = 5.5.1
+PATH_SEPARATOR = :
+PYTHON = /usr/bin/python
+PYTHON_CPPFLAGS = -I/usr/include/python2.3
+PYTHON_EXEC_PREFIX = ${exec_prefix}
+PYTHON_EXTRA_LDFLAGS = -Xlinker -export-dynamic
+PYTHON_EXTRA_LIBS =  -lpthread -ldl  -lutil
+PYTHON_LDFLAGS = -L/usr/lib64/python2.3 -lpython2.3
+PYTHON_PLATFORM = linux2
+PYTHON_PREFIX = ${prefix}
+PYTHON_SITE_PKG = /usr/lib/python2.3/site-packages
+PYTHON_VERSION = 2.3
+RANLIB = ranlib
+SED = /bin/sed
+SET_MAKE = 
+SHELL = /bin/sh
+STRIP = strip
+SWIG = /usr/bin/swig -c++
+SWIG_LIB = /usr/lib64/swig1.3
+SWIG_PYTHON_CPPFLAGS = -I/usr/include/python2.3
+SWIG_PYTHON_OPT = -python
+SWVERS = 
+VERSION = 5.5.1
+VERSIONFLAGS = -version-info 1:3:2
+abs_builddir = /home/morsch/AliRoot/trunk/LHAPDF/lhapdf5.5.1/include
+abs_srcdir = /home/morsch/AliRoot/trunk/LHAPDF/lhapdf5.5.1/include
+abs_top_builddir = /home/morsch/AliRoot/trunk/LHAPDF/lhapdf5.5.1
+abs_top_srcdir = /home/morsch/AliRoot/trunk/LHAPDF/lhapdf5.5.1
+ac_ct_CC = gcc
+ac_ct_CXX = g++
+ac_ct_F77 = 
+ac_ct_FC = gfortran
+am__include = include
+am__leading_dot = .
+am__quote = 
+am__tar = ${AMTAR} chof - "$$tardir"
+am__untar = ${AMTAR} xf -
+bindir = ${exec_prefix}/bin
+build = x86_64-unknown-linux-gnu
+build_alias = 
+build_cpu = x86_64
+build_os = linux-gnu
+build_vendor = unknown
+builddir = .
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = ${prefix}
+host = x86_64-unknown-linux-gnu
+host_alias = 
+host_cpu = x86_64
+host_os = linux-gnu
+host_vendor = unknown
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = $(SHELL) /home/morsch/AliRoot/trunk/LHAPDF/lhapdf5.5.1/config/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = /bin/mkdir -p
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+pkgpyexecdir = ${pyexecdir}/lhapdf
+pkgpythondir = ${pythondir}/lhapdf
+prefix = /usr/local
+program_transform_name = s,x,x,
+psdir = ${docdir}
+pyexecdir = ${exec_prefix}/lib64/python2.3/site-packages
+pythondir = ${prefix}/lib/python2.3/site-packages
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = .
+sysconfdir = ${prefix}/etc
+target_alias = 
+top_builddir = ..
+top_srcdir = ..
+SUBDIRS = LHAPDF
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+               && exit 0; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  include/Makefile'; \
+       cd $(top_srcdir) && \
+         $(AUTOMAKE) --gnu  include/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+       @failcom='exit 1'; \
+       for f in x $$MAKEFLAGS; do \
+         case $$f in \
+           *=* | --[!k]*);; \
+           *k*) failcom='fail=yes';; \
+         esac; \
+       done; \
+       dot_seen=no; \
+       target=`echo $@ | sed s/-recursive//`; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           dot_seen=yes; \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         || eval $$failcom; \
+       done; \
+       if test "$$dot_seen" = "no"; then \
+         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+       fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+       @failcom='exit 1'; \
+       for f in x $$MAKEFLAGS; do \
+         case $$f in \
+           *=* | --[!k]*);; \
+           *k*) failcom='fail=yes';; \
+         esac; \
+       done; \
+       dot_seen=no; \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       rev=''; for subdir in $$list; do \
+         if test "$$subdir" = "."; then :; else \
+           rev="$$subdir $$rev"; \
+         fi; \
+       done; \
+       rev="$$rev ."; \
+       target=`echo $@ | sed s/-recursive//`; \
+       for subdir in $$rev; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         || eval $$failcom; \
+       done && test -z "$$fail"
+tags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+       done
+ctags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+       done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+         include_option=--etags-include; \
+         empty_fix=.; \
+       else \
+         include_option=--include; \
+         empty_fix=; \
+       fi; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test ! -f $$subdir/TAGS || \
+             tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+         fi; \
+       done; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+           $$tags $$unique; \
+       fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       tags=; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$tags$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$tags $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && cd $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+           fi; \
+           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+         else \
+           test -f $(distdir)/$$file \
+           || cp -p $$d/$$file $(distdir)/$$file \
+           || exit 1; \
+         fi; \
+       done
+       list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test -d "$(distdir)/$$subdir" \
+           || $(MKDIR_P) "$(distdir)/$$subdir" \
+           || exit 1; \
+           distdir=`$(am__cd) $(distdir) && pwd`; \
+           top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+           (cd $$subdir && \
+             $(MAKE) $(AM_MAKEFLAGS) \
+               top_distdir="$$top_distdir" \
+               distdir="$$distdir/$$subdir" \
+               am__remove_distdir=: \
+               am__skip_length_check=: \
+               distdir) \
+             || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-info: install-info-recursive
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-ps: install-ps-recursive
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
+       install-strip
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+       all all-am check check-am clean clean-generic clean-libtool \
+       ctags ctags-recursive distclean distclean-generic \
+       distclean-libtool distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am install-data \
+       install-data-am install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am install-info \
+       install-info-am install-man install-pdf install-pdf-am \
+       install-ps install-ps-am install-strip installcheck \
+       installcheck-am installdirs installdirs-am maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
+       uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/LHAPDF/lhapdf5.5.1/include/Makefile.am b/LHAPDF/lhapdf5.5.1/include/Makefile.am
new file mode 100644 (file)
index 0000000..1450427
--- /dev/null
@@ -0,0 +1 @@
+SUBDIRS = LHAPDF
diff --git a/LHAPDF/lhapdf5.5.1/include/Makefile.in b/LHAPDF/lhapdf5.5.1/include/Makefile.in
new file mode 100644 (file)
index 0000000..1cc37c0
--- /dev/null
@@ -0,0 +1,516 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = include
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/binreloc.m4 \
+       $(top_srcdir)/m4/compilerflags.m4 $(top_srcdir)/m4/python.m4 \
+       $(top_srcdir)/m4/swig.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+       $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config/config.h \
+       $(top_builddir)/include/LHAPDF/FortranWrappers.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+       html-recursive info-recursive install-data-recursive \
+       install-dvi-recursive install-exec-recursive \
+       install-html-recursive install-info-recursive \
+       install-pdf-recursive install-ps-recursive install-recursive \
+       installcheck-recursive installdirs-recursive pdf-recursive \
+       ps-recursive uninstall-recursive
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
+  distclean-recursive maintainer-clean-recursive
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_CPPFLAGS = @AM_CPPFLAGS@
+AM_CXXFLAGS = @AM_CXXFLAGS@
+AM_FCFLAGS = @AM_FCFLAGS@
+AM_FFLAGS = @AM_FFLAGS@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BINRELOC_CFLAGS = @BINRELOC_CFLAGS@
+BINRELOC_LIBS = @BINRELOC_LIBS@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DOXYGEN = @DOXYGEN@
+DSYMUTIL = @DSYMUTIL@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FC = @FC@
+FCFLAGS = @FCFLAGS@
+FCLIBS = @FCLIBS@
+FFLAGS = @FFLAGS@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NMEDIT = @NMEDIT@
+NMXSET = @NMXSET@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PYTHON = @PYTHON@
+PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@
+PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@
+PYTHON_LDFLAGS = @PYTHON_LDFLAGS@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_SITE_PKG = @PYTHON_SITE_PKG@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+SWIG = @SWIG@
+SWIG_LIB = @SWIG_LIB@
+SWIG_PYTHON_CPPFLAGS = @SWIG_PYTHON_CPPFLAGS@
+SWIG_PYTHON_OPT = @SWIG_PYTHON_OPT@
+SWVERS = @SWVERS@
+VERSION = @VERSION@
+VERSIONFLAGS = @VERSIONFLAGS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+ac_ct_FC = @ac_ct_FC@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SUBDIRS = LHAPDF
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+               && exit 0; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  include/Makefile'; \
+       cd $(top_srcdir) && \
+         $(AUTOMAKE) --gnu  include/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+       @failcom='exit 1'; \
+       for f in x $$MAKEFLAGS; do \
+         case $$f in \
+           *=* | --[!k]*);; \
+           *k*) failcom='fail=yes';; \
+         esac; \
+       done; \
+       dot_seen=no; \
+       target=`echo $@ | sed s/-recursive//`; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           dot_seen=yes; \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         || eval $$failcom; \
+       done; \
+       if test "$$dot_seen" = "no"; then \
+         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+       fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+       @failcom='exit 1'; \
+       for f in x $$MAKEFLAGS; do \
+         case $$f in \
+           *=* | --[!k]*);; \
+           *k*) failcom='fail=yes';; \
+         esac; \
+       done; \
+       dot_seen=no; \
+       case "$@" in \
+         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+         *) list='$(SUBDIRS)' ;; \
+       esac; \
+       rev=''; for subdir in $$list; do \
+         if test "$$subdir" = "."; then :; else \
+           rev="$$subdir $$rev"; \
+         fi; \
+       done; \
+       rev="$$rev ."; \
+       target=`echo $@ | sed s/-recursive//`; \
+       for subdir in $$rev; do \
+         echo "Making $$target in $$subdir"; \
+         if test "$$subdir" = "."; then \
+           local_target="$$target-am"; \
+         else \
+           local_target="$$target"; \
+         fi; \
+         (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+         || eval $$failcom; \
+       done && test -z "$$fail"
+tags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+       done
+ctags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+       done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+         include_option=--etags-include; \
+         empty_fix=.; \
+       else \
+         include_option=--include; \
+         empty_fix=; \
+       fi; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test ! -f $$subdir/TAGS || \
+             tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+         fi; \
+       done; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+           $$tags $$unique; \
+       fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       tags=; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+             END { if (nonempty) { for (i in files) print i; }; }'`; \
+       test -z "$(CTAGS_ARGS)$$tags$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$tags $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && cd $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+       list='$(DISTFILES)'; \
+         dist_files=`for file in $$list; do echo $$file; done | \
+         sed -e "s|^$$srcdirstrip/||;t" \
+             -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+       case $$dist_files in \
+         */*) $(MKDIR_P) `echo "$$dist_files" | \
+                          sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+                          sort -u` ;; \
+       esac; \
+       for file in $$dist_files; do \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+           fi; \
+           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+         else \
+           test -f $(distdir)/$$file \
+           || cp -p $$d/$$file $(distdir)/$$file \
+           || exit 1; \
+         fi; \
+       done
+       list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+         if test "$$subdir" = .; then :; else \
+           test -d "$(distdir)/$$subdir" \
+           || $(MKDIR_P) "$(distdir)/$$subdir" \
+           || exit 1; \
+           distdir=`$(am__cd) $(distdir) && pwd`; \
+           top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+           (cd $$subdir && \
+             $(MAKE) $(AM_MAKEFLAGS) \
+               top_distdir="$$top_distdir" \
+               distdir="$$distdir/$$subdir" \
+               am__remove_distdir=: \
+               am__skip_length_check=: \
+               distdir) \
+             || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+       -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-info: install-info-recursive
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-ps: install-ps-recursive
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
+       install-strip
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+       all all-am check check-am clean clean-generic clean-libtool \
+       ctags ctags-recursive distclean distclean-generic \
+       distclean-libtool distclean-tags distdir dvi dvi-am html \
+       html-am info info-am install install-am install-data \
+       install-data-am install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am install-info \
+       install-info-am install-man install-pdf install-pdf-am \
+       install-ps install-ps-am install-strip installcheck \
+       installcheck-am installdirs installdirs-am maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-generic \
+       mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
+       uninstall uninstall-am
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/LHAPDF/lhapdf5.5.1/src/.deps/binreloc.Plo b/LHAPDF/lhapdf5.5.1/src/.deps/binreloc.Plo
new file mode 100644 (file)
index 0000000..da7786c
--- /dev/null
@@ -0,0 +1,118 @@
+binreloc.lo binreloc.o: binreloc.c /usr/include/sys/types.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h /usr/include/bits/types.h \
+  /usr/include/bits/wordsize.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h \
+  /usr/include/bits/typesizes.h /usr/include/time.h /usr/include/endian.h \
+  /usr/include/bits/endian.h /usr/include/sys/select.h \
+  /usr/include/bits/select.h /usr/include/bits/sigset.h \
+  /usr/include/bits/time.h /usr/include/sys/sysmacros.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/sched.h \
+  /usr/include/sys/stat.h /usr/include/bits/stat.h /usr/include/unistd.h \
+  /usr/include/bits/posix_opt.h /usr/include/bits/confname.h \
+  /usr/include/getopt.h /usr/include/stdio.h /usr/include/libio.h \
+  /usr/include/_G_config.h /usr/include/wchar.h /usr/include/bits/wchar.h \
+  /usr/include/gconv.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stdarg.h \
+  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+  /usr/include/bits/stdio.h /usr/include/stdlib.h /usr/include/alloca.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/limits.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/string.h \
+  /usr/include/bits/string.h /usr/include/bits/string2.h binreloc.h
+
+/usr/include/sys/types.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/sys/stat.h:
+
+/usr/include/bits/stat.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/include/stdlib.h:
+
+/usr/include/alloca.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/limits.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/string.h:
+
+/usr/include/bits/string.h:
+
+/usr/include/bits/string2.h:
+
+binreloc.h:
diff --git a/LHAPDF/lhapdf5.5.1/src/.deps/getdatapath.Plo b/LHAPDF/lhapdf5.5.1/src/.deps/getdatapath.Plo
new file mode 100644 (file)
index 0000000..6a82014
--- /dev/null
@@ -0,0 +1,390 @@
+getdatapath.lo getdatapath.o: getdatapath.cc \
+  ../include/LHAPDF/FortranWrappers.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/iostream \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/c++config.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/ostream \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/ios \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/iosfwd \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/c++locale.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstring \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstddef \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h \
+  /usr/include/string.h /usr/include/xlocale.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstdio \
+  /usr/include/stdio.h /usr/include/bits/types.h \
+  /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h \
+  /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
+  /usr/include/bits/wchar.h /usr/include/gconv.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stdarg.h \
+  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+  /usr/include/bits/stdio.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/clocale \
+  /usr/include/locale.h /usr/include/bits/locale.h \
+  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
+  /usr/include/libintl.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/c++io.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/gthr.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
+  /usr/include/bits/sched.h /usr/include/bits/time.h \
+  /usr/include/signal.h /usr/include/bits/sigset.h \
+  /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h \
+  /usr/include/bits/sigthread.h /usr/include/unistd.h \
+  /usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
+  /usr/include/bits/confname.h /usr/include/getopt.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cctype \
+  /usr/include/ctype.h /usr/include/endian.h /usr/include/bits/endian.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stringfwd.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/postypes.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cwchar \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/ctime \
+  /usr/include/stdint.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/functexcept.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/exception_defines.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/exception \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/char_traits.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/climits \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/limits.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstdlib \
+  /usr/include/stdlib.h /usr/include/bits/waitflags.h \
+  /usr/include/bits/waitstatus.h /usr/include/sys/types.h \
+  /usr/include/sys/select.h /usr/include/bits/select.h \
+  /usr/include/sys/sysmacros.h /usr/include/alloca.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/new \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_pair.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/type_traits.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator_base_types.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator_base_funcs.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/concept_check.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/debug/debug.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cassert \
+  /usr/include/assert.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/localefwd.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/ios_base.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/atomicity.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/atomic_word.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/locale_classes.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/string \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/allocator.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/c++allocator.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/ext/new_allocator.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_construct.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_uninitialized.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_raw_storage_iter.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_function.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/algorithm \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_heap.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_tempbuf.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.tcc \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/streambuf \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/streambuf.tcc \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_ios.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/streambuf_iterator.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/locale_facets.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cwctype \
+  /usr/include/wctype.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/ctype_base.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/ctype_inline.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/codecvt.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/codecvt_specializations.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/time_members.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/messages_members.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_ios.tcc \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/ostream.tcc \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/locale \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/locale_facets.tcc \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/typeinfo \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/istream \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/istream.tcc \
+  binreloc.h
+
+../include/LHAPDF/FortranWrappers.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/iostream:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/c++config.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/ostream:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/ios:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/iosfwd:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/c++locale.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstring:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstddef:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stdarg.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/c++io.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/gthr.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/time.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cctype:
+
+/usr/include/ctype.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stringfwd.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/postypes.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cwchar:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/ctime:
+
+/usr/include/stdint.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/functexcept.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/exception_defines.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/exception:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/char_traits.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/climits:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/limits.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/alloca.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/new:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_pair.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/type_traits.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator_base_types.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator_base_funcs.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/concept_check.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/debug/debug.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cassert:
+
+/usr/include/assert.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/localefwd.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/ios_base.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/atomicity.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/atomic_word.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/locale_classes.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/string:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/allocator.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/c++allocator.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/ext/new_allocator.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_construct.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_uninitialized.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_raw_storage_iter.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_function.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/algorithm:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_heap.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_tempbuf.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.tcc:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/streambuf:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/streambuf.tcc:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_ios.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/streambuf_iterator.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/locale_facets.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cwctype:
+
+/usr/include/wctype.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/ctype_base.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/ctype_inline.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/codecvt.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/codecvt_specializations.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/time_members.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/messages_members.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_ios.tcc:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/ostream.tcc:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/locale:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/locale_facets.tcc:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/typeinfo:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/istream:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/istream.tcc:
+
+binreloc.h:
diff --git a/LHAPDF/lhapdf5.5.1/src/.deps/version.Plo b/LHAPDF/lhapdf5.5.1/src/.deps/version.Plo
new file mode 100644 (file)
index 0000000..88ca8e1
--- /dev/null
@@ -0,0 +1,309 @@
+version.lo version.o: version.cc ../include/LHAPDF/FortranWrappers.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/string \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/c++config.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/os_defines.h \
+  /usr/include/features.h /usr/include/sys/cdefs.h \
+  /usr/include/gnu/stubs.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stringfwd.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/char_traits.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstring \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstddef \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h \
+  /usr/include/string.h /usr/include/xlocale.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/climits \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/limits.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/syslimits.h \
+  /usr/include/limits.h /usr/include/bits/posix1_lim.h \
+  /usr/include/bits/local_lim.h /usr/include/linux/limits.h \
+  /usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
+  /usr/include/bits/stdio_lim.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstdlib \
+  /usr/include/stdlib.h /usr/include/bits/waitflags.h \
+  /usr/include/bits/waitstatus.h /usr/include/endian.h \
+  /usr/include/bits/endian.h /usr/include/sys/types.h \
+  /usr/include/bits/types.h /usr/include/bits/wordsize.h \
+  /usr/include/bits/typesizes.h /usr/include/time.h \
+  /usr/include/sys/select.h /usr/include/bits/select.h \
+  /usr/include/bits/sigset.h /usr/include/bits/time.h \
+  /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
+  /usr/include/bits/sched.h /usr/include/alloca.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/new \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/exception \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/iosfwd \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/c++locale.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstdio \
+  /usr/include/stdio.h /usr/include/libio.h /usr/include/_G_config.h \
+  /usr/include/wchar.h /usr/include/bits/wchar.h /usr/include/gconv.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stdarg.h \
+  /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/clocale \
+  /usr/include/locale.h /usr/include/bits/locale.h \
+  /usr/include/langinfo.h /usr/include/nl_types.h /usr/include/iconv.h \
+  /usr/include/libintl.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/c++io.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/gthr.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/gthr-default.h \
+  /usr/include/pthread.h /usr/include/sched.h /usr/include/signal.h \
+  /usr/include/bits/initspin.h /usr/include/bits/sigthread.h \
+  /usr/include/unistd.h /usr/include/bits/posix_opt.h \
+  /usr/include/bits/environments.h /usr/include/bits/confname.h \
+  /usr/include/getopt.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cctype \
+  /usr/include/ctype.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/postypes.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cwchar \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/ctime \
+  /usr/include/stdint.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/functexcept.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/exception_defines.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_pair.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/type_traits.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator_base_types.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator_base_funcs.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/concept_check.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/debug/debug.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cassert \
+  /usr/include/assert.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/allocator.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/c++allocator.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/ext/new_allocator.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_construct.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_uninitialized.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_raw_storage_iter.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_function.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/atomicity.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/atomic_word.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/algorithm \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_heap.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_tempbuf.h \
+  /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.tcc
+
+../include/LHAPDF/FortranWrappers.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/string:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/c++config.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/os_defines.h:
+
+/usr/include/features.h:
+
+/usr/include/sys/cdefs.h:
+
+/usr/include/gnu/stubs.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stringfwd.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/char_traits.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstring:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstddef:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stddef.h:
+
+/usr/include/string.h:
+
+/usr/include/xlocale.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algobase.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/climits:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/limits.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/syslimits.h:
+
+/usr/include/limits.h:
+
+/usr/include/bits/posix1_lim.h:
+
+/usr/include/bits/local_lim.h:
+
+/usr/include/linux/limits.h:
+
+/usr/include/bits/posix2_lim.h:
+
+/usr/include/bits/xopen_lim.h:
+
+/usr/include/bits/stdio_lim.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstdlib:
+
+/usr/include/stdlib.h:
+
+/usr/include/bits/waitflags.h:
+
+/usr/include/bits/waitstatus.h:
+
+/usr/include/endian.h:
+
+/usr/include/bits/endian.h:
+
+/usr/include/sys/types.h:
+
+/usr/include/bits/types.h:
+
+/usr/include/bits/wordsize.h:
+
+/usr/include/bits/typesizes.h:
+
+/usr/include/time.h:
+
+/usr/include/sys/select.h:
+
+/usr/include/bits/select.h:
+
+/usr/include/bits/sigset.h:
+
+/usr/include/bits/time.h:
+
+/usr/include/sys/sysmacros.h:
+
+/usr/include/bits/pthreadtypes.h:
+
+/usr/include/bits/sched.h:
+
+/usr/include/alloca.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/new:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/exception:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/iosfwd:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/c++locale.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cstdio:
+
+/usr/include/stdio.h:
+
+/usr/include/libio.h:
+
+/usr/include/_G_config.h:
+
+/usr/include/wchar.h:
+
+/usr/include/bits/wchar.h:
+
+/usr/include/gconv.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/include/stdarg.h:
+
+/usr/include/bits/sys_errlist.h:
+
+/usr/include/bits/stdio.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/clocale:
+
+/usr/include/locale.h:
+
+/usr/include/bits/locale.h:
+
+/usr/include/langinfo.h:
+
+/usr/include/nl_types.h:
+
+/usr/include/iconv.h:
+
+/usr/include/libintl.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/c++io.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/gthr.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/gthr-default.h:
+
+/usr/include/pthread.h:
+
+/usr/include/sched.h:
+
+/usr/include/signal.h:
+
+/usr/include/bits/initspin.h:
+
+/usr/include/bits/sigthread.h:
+
+/usr/include/unistd.h:
+
+/usr/include/bits/posix_opt.h:
+
+/usr/include/bits/environments.h:
+
+/usr/include/bits/confname.h:
+
+/usr/include/getopt.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cctype:
+
+/usr/include/ctype.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/postypes.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cwchar:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/ctime:
+
+/usr/include/stdint.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/functexcept.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/exception_defines.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_pair.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/type_traits.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator_base_types.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator_base_funcs.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/concept_check.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_iterator.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/debug/debug.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/cassert:
+
+/usr/include/assert.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/memory:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/allocator.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/c++allocator.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/ext/new_allocator.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_construct.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_uninitialized.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_raw_storage_iter.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/limits:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_function.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/atomicity.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/x86_64-redhat-linux/bits/atomic_word.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/algorithm:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_algo.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_heap.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/stl_tempbuf.h:
+
+/usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/bits/basic_string.tcc:
diff --git a/LHAPDF/lhapdf5.5.1/src/.libs/libLHAPDFCore.a b/LHAPDF/lhapdf5.5.1/src/.libs/libLHAPDFCore.a
new file mode 100644 (file)
index 0000000..352b97c
Binary files /dev/null and b/LHAPDF/lhapdf5.5.1/src/.libs/libLHAPDFCore.a differ
diff --git a/LHAPDF/lhapdf5.5.1/src/EVLCTEQ.f b/LHAPDF/lhapdf5.5.1/src/EVLCTEQ.f
new file mode 100644 (file)
index 0000000..d4eb346
--- /dev/null
@@ -0,0 +1,2716 @@
+! -*- F90 -*-
+
+
+SUBROUTINE CtLhALFSET (QS, ALFS) 
+  IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+  EXTERNAL CtLhRTALF 
+  COMMON / CtLhRTALFC / ALFST, JORD, NEFF 
+  DATA ALAM, BLAM, ERR / 0.01, 10.0, 0.02 / 
+  ALFST = ALFS 
+  CALL CtLhParQcd (2, 'ORDR', ORDR, IR1) 
+  JORD  = Int(ORDR) 
+  NEFF = LhCtNFL(QS) 
+  EFLLN  = CtLhQZBRNT (CtLhRTALF, ALAM, BLAM, ERR, IR2) 
+  EFFLAM = QS / EXP (EFLLN) 
+  CALL CtLhSETL1 (NEFF, EFFLAM) 
+END SUBROUTINE CtLhALFSET
+
+
+FUNCTION CtLhALPI (AMU) 
+  IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+  COMMON / LhCtCWZPRM / ALAM(0:9), AMHAT(0:9), AMN, NHQ 
+  COMMON / LhCtQCDPAR_LHA / AL, NF, NORDER, SET 
+  LOGICAL SET 
+  PARAMETER (D0 = 0.D0, D1 = 1.D0, BIG = 1.0D15) 
+  DATA IW1, IW2 / 2*0 / 
+  IF(.NOT.SET) CALL CtLhLAMCWZ 
+  NEFF = LhCtNFL(AMU) 
+  ALM  = ALAM(NEFF) 
+  CtLhALPI = CtLhALPQCD (NORDER, NEFF, AMU/ALM, IRT) 
+  IF (IRT .EQ. 1) THEN 
+     CALL CtLhWARNR (IW1, 'AMU < ALAM in CtLhALPI', 'AMU', AMU,     &
+          &              ALM, BIG, 1)                                        
+  ELSEIF (IRT .EQ. 2) THEN 
+     CALL CtLhWARNR (IW2, 'CtLhALPI > 3; Be aware!', 'CtLhALPI',    &
+          &  CtLhALPI, D0, D1, 0)                                            
+  ENDIF
+  RETURN 
+END FUNCTION CtLhALPI
+
+
+FUNCTION CtLhALPQCD (IRDR, NF, RML, IRT) 
+  IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+  PARAMETER (D0 = 0.D0, D1 = 1.D0, BIG = 1.0D15) 
+  PARAMETER (CG = 3.0d0, TR = 0.5d0, CF = 4.0d0/3.0d0) 
+  IRT = 0 
+  IF (IRDR .LT. 1 .OR. IRDR .GT. 2) THEN 
+     print *,                                                        &
+          &  'Order out of range in CtLhALPQCD: IRDR = ', IRDR               
+     STOP 
+  ENDIF
+  B0 = (11.d0*CG  - 2.* NF) / 3.d0 
+  B1 = (34.d0*CG**2 - 10.d0*CG*NF - 6.d0*CF*NF) / 3.d0 
+  RM2 = RML**2 
+  IF (RM2 .LE. 1.) THEN 
+     IRT = 1 
+     CtLhALPQCD = 99. 
+     RETURN 
+  ENDIF
+  ALN = LOG (RM2) 
+  AL = 4.d0/ B0 / ALN 
+  IF (IRDR .GE. 2) AL = AL * (1.d0-B1*LOG(ALN) / ALN / B0**2) 
+  IF (AL .GE. 3.) THEN 
+     IRT = 2 
+  ENDIF
+  CtLhALPQCD = AL 
+  RETURN 
+END FUNCTION CtLhALPQCD
+
+
+FUNCTION CtLhAMHATF(I) 
+  IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+  COMMON / LhCtCWZPRM / ALAM(0:9), AMHAT(0:9), AMN, NHQ 
+  COMMON / LhCtQCDPAR_LHA / AL, NF, NORDER, SET 
+  LOGICAL SET 
+  IF (.NOT.SET) CALL CtLhLAMCWZ 
+  IF ((I.LE.0).OR.(I.GT.9)) THEN 
+     print *,'warning I OUT OF RANGE IN CtLhAMHATF' 
+     CtLhAMHATF = 0 
+  ELSE 
+     CtLhAMHATF = AMHAT(I) 
+  ENDIF
+  RETURN 
+END FUNCTION CtLhAMHATF
+
+
+FUNCTION CtLhDXDZ (Z) 
+  IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+  PARAMETER (D0=0D0, D1=1D0, D2=2D0, D3=3D0, D4=4D0, D10=1D1) 
+  DATA HUGE, IWRN / 1.E20, 0 / 
+  ZZ = Z 
+  X = CtLhXFRMZ (ZZ) 
+  TEM = CtLhDZDX (X) 
+  IF     (TEM .NE. D0) THEN 
+     TMP = D1 / TEM 
+  Else 
+     CALL CtLhWARNR(IWRN, 'CtLhDXDZ singular in CtLhDXDZ; set=HUGE',   &
+          &             'Z', Z, D0, D1, 0)                                   
+     TMP = HUGE 
+  EndIf
+  CtLhDXDZ = TMP 
+  RETURN 
+END FUNCTION CtLhDXDZ
+
+
+SUBROUTINE CtLhEVLPAR (IACT, NAME, VALUE, IRET) 
+  IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+  CHARACTER*(*) NAME 
+  IRET = 1 
+  IF     (IACT .EQ. 0) THEN 
+     WRITE ( NINT(VALUE) , 101) 
+101  FORMAT (/ ' Initiation parameters:   Qini, Ipd0, Ihdn ' / &
+          &                  ' Maximum Q, Order of Alpha:     Qmax, IKNL ' / &
+          &                  ' X- mesh parameters   :   Xmin, Xcr,   Nx  ' / &
+          &                  ' LnQ-mesh parameters  :         Nt,   Jt   ' / &
+          &                  ' # of parton flavors  :         NfMx       ' /)
+     IRET = 4 
+  ElseIF (IACT .EQ. 1) THEN 
+     CALL CtLhEVLSET (NAME, VALUE, IRET) 
+  Else 
+     print *,'fatal evlpar' 
+     stop 
+  EndIf
+  RETURN 
+END SUBROUTINE CtLhEVLPAR
+
+
+SUBROUTINE CtLhEVLSET (NAME, VALUE, IRET) 
+  IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+  LOGICAL LSTX 
+  CHARACTER*(*) NAME 
+  PARAMETER (MXX = 105, MXQ = 25, MXF = 6) 
+  PARAMETER (MXPN = MXF * 2 + 2) 
+  PARAMETER (MXQX= MXQ * MXX,   MXPQX = MXQX * MXPN) 
+  COMMON / LhCtXXARAY / XCR, XMIN, XV(0:MXX), LSTX, NX 
+  COMMON / LhCtQARAY1 / QINI,QMAX, QV(0:MXQ),TV(0:MXQ), NT,JT,NG 
+  COMMON / LhCtEVLPAC / AL, IKNL, IPD0, IHDN, NfMx                  &
+       & / PdfSwh / Iset, IpdMod, Iptn0, NuIni                            
+  IRET = 1 
+  IF     (NAME .EQ. 'QINI')  THEN 
+     IF (VALUE .LE. 0) GOTO 12 
+     QINI = VALUE 
+  ElseIF (NAME .EQ. 'IPD0')  THEN 
+     ITEM = NINT(VALUE) 
+     IF (Item .Eq. 10 .or. Item .Eq. 11) GOTO 12 
+     IPD0 = ITEM 
+  ElseIF (NAME .EQ. 'IHDN') THEN 
+     ITEM = NINT(VALUE) 
+     IF (ITEM .LT. -1 .OR. ITEM .GT. 5) GOTO 12 
+     IHDN = ITEM 
+  ElseIF (NAME .EQ. 'QMAX')  THEN 
+     IF (VALUE .LE. QINI) GOTO 12 
+     QMAX = VALUE 
+  ElseIF (NAME .EQ. 'IKNL') THEN 
+     ITMP = NINT(VALUE) 
+     ITEM = ABS(ITMP) 
+     IF (ITEM.NE.1.AND.ITEM.NE.2) GOTO 12 
+     IKNL = ITMP 
+  ElseIF (NAME .EQ. 'XCR') THEN 
+     IF (VALUE .LT. XMIN .OR. VALUE .GT. 10.) GOTO 12 
+     XCR = VALUE 
+     LSTX = .FALSE. 
+  ElseIF (NAME .EQ. 'XMIN') THEN 
+     IF (VALUE .LT. 1D-7 .OR. VALUE .GT. 1D0) GOTO 12 
+     XMIN = VALUE 
+     LSTX = .FALSE. 
+  ElseIF (NAME .EQ. 'NX') THEN 
+     ITEM = NINT(VALUE) 
+     IF (ITEM .LT. 10 .OR. ITEM .GT. MXX-1) GOTO 12 
+     NX = ITEM 
+     LSTX = .FALSE. 
+  ElseIF (NAME .EQ. 'NT') THEN 
+     ITEM = NINT(VALUE) 
+     IF (ITEM .LT. 2 .OR. ITEM .GT. MXQ) GOTO 12 
+     NT = ITEM 
+  ElseIF (NAME .EQ. 'JT') THEN 
+     ITEM = NINT(VALUE) 
+     IF (ITEM .LT. 1 .OR. ITEM .GT. 5) GOTO 12 
+     JT = ITEM 
+  ElseIF (NAME .EQ. 'NFMX') THEN 
+     ITEM = NINT(VALUE) 
+     IF (ITEM .LT. 1 .OR. ITEM .GT. MXPN) GOTO 12 
+     NfMx = ITEM 
+  ElseIF (NAME .EQ. 'IPDMOD') THEN 
+     ITEM = NINT(VALUE) 
+     IF (Abs(Item) .Gt. 1) GOTO 12 
+     IpdMod = ITEM 
+  ElseIF (NAME .EQ. 'IPTN0') THEN 
+     ITEM = NINT(VALUE) 
+     IF (ABS(ITEM) .GT. MXF) GOTO 12 
+     IPTN0 = ITEM 
+  ElseIF (NAME .EQ. 'NUINI') THEN 
+     ITEM = NINT(VALUE) 
+     IF (ITEM .LE. 0) GOTO 12 
+     NuIni = ITEM 
+  Else 
+     IRET = 0 
+  EndIf
+  RETURN 
+12 IRET = 2 
+  RETURN 
+END SUBROUTINE CtLhEVLSET
+
+
+SUBROUTINE CtLhEVOLVE (FINI, IRET) 
+  IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+  include 'parmsetup.inc' 
+  LOGICAL LSTX 
+  PARAMETER (MXX = 105, MXQ = 25, MXF = 6) 
+  PARAMETER (MXPN = MXF * 2 + 2) 
+  PARAMETER (MXQX= MXQ * MXX,   MXPQX = MXQX * MXPN) 
+  PARAMETER (M1=-3, M2=3, NDG=3, NDH=NDG+1, L1=M1-1, L2=M2+NDG-2) 
+  COMMON / LhCtXXARAY / XCR, XMIN, XV(0:MXX), LSTX, NX 
+  COMMON / LhCtQARAY1 / QINI,QMAX, QV(0:MXQ),TV(0:MXQ), NT,JT,NG 
+  COMMON / LhCtQARAY2 / TLN(MXF), DTN(MXF), NTL(MXF), NTN(MXF) 
+  COMMON / LhCtEVLPAC / AL, IKNL, IPD0, IHDN, NfMx 
+  COMMON / LhCtPEVLDT / UPD(MXPQX,nmxset), KF, Nelmt 
+  COMMON / LhCtVARIBX / XA(MXX, L1:L2), ELY(MXX), DXTZ(MXX) 
+  COMMON / LhCtVARBAB / GB(NDG, NDH, MXX), H(NDH, MXX, M1:M2) 
+  DIMENSION QRKP(MXF) 
+  DIMENSION JI(-MXF : MXF+1) 
+  EXTERNAL LhCtNSRHSP, LhCtNSRHSM, FINI 
+  DATA DZER / 0.0 / 
+  save nxsave, ntsave, jtsave, ngsave,                              &
+       &     xcrsave, xminsave, qinisave, qmaxsave, ientry                
+  data ientry / 0 / 
+  !                                                                       
+  call getnset(iset) 
+  !                                                                       
+  ientry = ientry + 1 
+  IRET = 0 
+  IF (IHDN .LE. 4) THEN 
+     MXVAL = 2 
+  ElseIF (IHDN .LE. 6) THEN 
+     MXVAL = 3 
+  EndIf
+  IF (.NOT. LSTX) CALL CtLhXARRAY 
+  CALL CtLhPARPDF (2, 'ALAM', AL, IR) 
+  CALL CtLhQARRAY (NINI) 
+  NFSN = NFMX + 1 
+  KF = 2 * NFMX + 2 
+  Nelmt = KF * (Nt+1) * (Nx+1) 
+  DO IFLV = -NFMX, NFMX+1 
+     JFL = NFMX + IFLV 
+     JI(IFLV) = JFL * (NT+1) * (NX+1) 
+  END DO
+  DO IZ = 1, NX 
+     UPD(JI(0)+IZ+1,iset) = FINI (0, XV(IZ)) 
+     UPD(JI(NFSN)+IZ+1,iset) = 0 
+     IF (NFMX .EQ. 0) EXIT
+     DO IFLV = 1, NINI 
+        A = FINI ( IFLV, XV(IZ)) 
+        B = FINI (-IFLV, XV(IZ)) 
+        QRKP (IFLV) = A + B 
+        UPD(JI(NFSN)+IZ+1,iset) =                                     &
+             &       UPD(JI(NFSN)+IZ+1,iset) + QRKP (IFLV)                      
+        UPD(JI(-IFLV)+IZ+1,iset) = A - B 
+     END DO
+     DO IFLV = 1, NINI 
+        UPD(JI( IFLV)+IZ+1,iset) =                                   &
+             &        QRKP(IFLV) - UPD(JI(NFSN)+IZ+1,iset)/NINI                 
+     END DO
+  END DO
+  DO NEFF = NINI, NFMX 
+     IF (IKNL .EQ. 2) CALL CtLhSTUPKL (NEFF) 
+     ICNT = NEFF - NINI + 1 
+     IF (NTN(ICNT) .EQ. 0) EXIT
+     NITR = NTN (ICNT) 
+     DT   = DTN (ICNT) 
+     TIN  = TLN (ICNT) 
+     CALL CtLhSNEVL (IKNL, NX, NITR, JT, DT, TIN, NEFF,            &
+          &    UPD(JI(NFSN)+2,iset), UPD(JI(0)+2,iset),                      &
+          &    UPD(JI(NFSN)+1,iset), UPD(JI(0)+1,iset))                      
+     IF (NEFF .EQ. 0) GOTO 88 
+     DO IFLV = 1, NEFF 
+        CALL CtLhNSEVL (LhCtNSRHSP, IKNL, NX, NITR, JT, DT, TIN,     &
+             &     NEFF, UPD(JI( IFLV)+2,iset), UPD(JI( IFLV)+1,iset))          
+        IF (IFLV .LE. MXVAL)                                         &
+             &     CALL CtLhNSEVL (LhCtNSRHSM, IKNL, NX, NITR, JT, DT, TIN,     &
+             &     NEFF, UPD(JI(-IFLV)+2,iset), UPD(JI(-IFLV)+1,iset))          
+        DO IS = 0, NITR 
+           DO IX = 0, NX 
+              TP = UPD (IS*(NX+1) + IX + 1 + JI( IFLV),iset) 
+              TS = UPD (IS*(NX+1) + IX + 1 + JI( NFSN),iset) / NEFF 
+              TP = TP + TS 
+              IF (IKNL .GT. 0) TP = MAX (TP, DZER) 
+              IF (IFLV .LE. MXVAL) THEN 
+                 TM = UPD (IS*(NX+1) + IX + 1 + JI(-IFLV),iset) 
+                 IF (IKNL .GT. 0) THEN 
+                    TM = MAX (TM, DZER) 
+                    TP = MAX (TP, TM) 
+                 EndIf
+              Else 
+                 TM = 0. 
+              EndIf
+              UPD (JI( IFLV) + IS*(NX+1) + IX + 1,iset) = (TP + TM)/2. 
+              UPD (JI(-IFLV) + IS*(NX+1) + IX + 1,iset) = (TP - TM)/2. 
+           END DO
+        END DO
+     END DO
+     DO IFLV = NEFF + 1, NFMX 
+        DO IS = 0, NITR 
+           DO IX = 0, NX 
+              UPD(JI( IFLV) + IS*(NX+1) + IX + 1,iset) = 0 
+              UPD(JI(-IFLV) + IS*(NX+1) + IX + 1,iset) = 0 
+           END DO
+        END DO
+     END DO
+88   CONTINUE 
+     IF (NFMX .EQ. NEFF) EXIT
+     DO IFLV = -NFMX, NFMX+1 
+        JI(IFLV) = JI(IFLV) + NITR * (NX+1) 
+     END DO
+     CALL CtLhHQRK (NX, TT, NEFF+1, UPD(JI(0)+2,iset),               &
+          &     UPD(JI(NEFF+1)+2,iset))                                      
+     DO IZ = 1, NX 
+        QRKP (NEFF+1) = 2. * UPD(JI( NEFF+1) + IZ + 1,iset) 
+        UPD (JI(NFSN)+IZ+1,iset) = UPD (JI(NFSN)+IZ+1,iset)            &
+             &        + QRKP (NEFF+1)                                           
+        VS00 =  UPD (JI(NFSN)+IZ+1,iset) / (NEFF+1) 
+        UPD(JI( NEFF+1) + IZ + 1,iset) = QRKP(NEFF+1) - VS00 
+        DO IFL = 1, NEFF 
+           A = UPD(JI( IFL)+IZ+1,iset) 
+           B = UPD(JI(-IFL)+IZ+1,iset) 
+           QRKP(IFL) = A + B 
+           UPD(JI( IFL)+IZ+1,iset) = QRKP(IFL) - VS00 
+           IF (IFL .LE. MXVAL)  UPD(JI(-IFL)+IZ+1,iset) = A - B 
+        END DO
+     END DO
+  END DO
+  if(ientry .eq. 1) then 
+     nxsave = nx 
+     ntsave = nt 
+     jtsave = jt 
+     ngsave = ng 
+     xcrsave = xcr 
+     xminsave = xmin 
+     qinisave = qini 
+     qmaxsave = qmax 
+  endif
+  if((nx .ne. nxsave) .or.                                        &
+       &           (nt .ne. ntsave) .or.                                  &
+       &           (jt .ne. jtsave) .or.                                  &
+       &           (ng .ne. ngsave) .or.                                  &
+       &           (xcr .ne. xcrsave) .or.                                &
+       &           (xmin .ne. xminsave) .or.                              &
+       &           (qini .ne. qinisave) .or.                              &
+       &           (qmax .ne. qmaxsave)) then                             
+     write(6,669) nx, nt, jt, ng, xcr, xmin,                      &
+          &                        qini, qmax, ientry                        
+669  format(1x,'evolve.f:  nx,nt,jt,ng=',4i4,                  &
+          &               ' xcr,xmin=',2f9.6,                                &
+          &               ' qini, qmax',f7.4,1x,e12.5,' ientry=',i6)         
+     nxsave = nx 
+     ntsave = nt 
+     jtsave = jt 
+     ngsave = ng 
+     qinisave = qini 
+     qmaxsave = qmax 
+     xcrsave = xcr 
+     xminsave = xmin 
+  endif
+  Return 
+END SUBROUTINE CtLhEVOLVE
+
+
+FUNCTION CtLhFINTRP (FF,  X0, DX, NX,  XV,  ERR, IR) 
+  IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+  PARAMETER (D0=0D0, D1=1D0, D2=2D0, D3=3D0, D4=4D0, D10=1D1) 
+  PARAMETER (MX = 3) 
+  DIMENSION FF (0:NX), XX(MX) 
+  DATA SML, XX / 1.D-5,  0., 1.0, 2.0 / 
+  DATA  IW1, IW3, IW5 / 3 * 0 / 
+  IR = 0 
+  X = XV 
+  ERR = 0. 
+  ANX = NX 
+  CtLhFINTRP = 0. 
+  IF (NX .LT. 1) THEN 
+     CALL CtLhWARNI(IW1, 'Nx < 1, error in CtLhFINTRP.',            &
+          &              'NX', NX, 1, 256, 1)                                
+     IR = 1 
+     RETURN 
+  ELSE 
+     MNX = MIN(NX+1, MX) 
+  ENDIF
+  IF (DX .LE. 0) THEN 
+     CALL CtLhWARNR(IW3, 'DX < 0, error in CtLhFINTRP.',            &
+          &              'DX', DX, D0, D1, 1)                                
+     IR = 2 
+     RETURN 
+  ENDIF
+  XM = X0 + DX * NX 
+  IF (X .LT. X0-SML .OR. X .GT. XM+SML) THEN 
+     CALL CtLhWARNR(IW5,                                             &
+          &     'X out of range in CtLhFINTRP, Extrapolation used.',         &
+          &     'X',X,X0,XM,1)                                               
+     IR = 3 
+  ENDIF
+  TX = (X - X0) / DX 
+  IF (TX .LE. 1.) THEN 
+     IX = 0 
+  ELSEIF (TX .GE. ANX-1.) THEN 
+     IX = NX - 2 
+  ELSE 
+     IX = Int(TX) 
+  ENDIF
+  DDX = TX - IX 
+  CALL CtLhRATINT (XX, FF(IX), MNX, DDX, TEM, ERR) 
+  CtLhFINTRP = TEM 
+  RETURN 
+END FUNCTION CtLhFINTRP
+
+
+FUNCTION CtLhGausInt(F,XL,XR,AERR,RERR,ERR,IRT) 
+  IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+  DIMENSION XLIMS(100), R(93), W(93) 
+  INTEGER PTR(4),NORD(4) 
+  external f 
+  DATA PTR,NORD/4,10,22,46,  6,12,24,48/ 
+  DATA R/.2386191860,.6612093865,.9324695142,                     &
+       & .1252334085,.3678314990,.5873179543,.7699026742,.9041172563,     &
+       & .9815606342,.0640568929,.1911188675,.3150426797,.4337935076,     &
+       & .5454214714,.6480936519,.7401241916,.8200019860,.8864155270,     &
+       & .9382745520,.9747285560,.9951872200,.0323801710,.0970046992,     &
+       & .1612223561,.2247637903,.2873624873,.3487558863,.4086864820,     &
+       & .4669029048,.5231609747,.5772247261,.6288673968,.6778723796,     &
+       & .7240341309,.7671590325,.8070662040,.8435882616,.8765720203,     &
+       & .9058791367,.9313866907,.9529877032,.9705915925,.9841245837,     &
+       & .9935301723,.9987710073,.0162767488,.0488129851,.0812974955,     &
+       & .1136958501,.1459737146,.1780968824,.2100313105,.2417431561,     &
+       & .2731988126,.3043649444,.3352085229,.3656968614,.3957976498,     &
+       & .4254789884,.4547094222,.4834579739,.5116941772,.5393881083,     &
+       & .5665104186,.5930323648,.6189258401,.6441634037,.6687183100,     &
+       & .6925645366,.7156768123,.7380306437,.7596023411,.7803690438,     &
+       & .8003087441,.8194003107,.8376235112,.8549590334,.8713885059,     &
+       & .8868945174,.9014606353,.9150714231,.9277124567,.9393703398,     &
+       & .9500327178,.9596882914,.9683268285,.9759391746,.9825172636,     &
+       & .9880541263,.9925439003,.9959818430,.9983643759,.9996895039/     
+  DATA W/.4679139346,.3607615730,.1713244924,                     &
+       & .2491470458,.2334925365,.2031674267,.1600783285,.1069393260,     &
+       & .0471753364,.1279381953,.1258374563,.1216704729,.1155056681,     &
+       & .1074442701,.0976186521,.0861901615,.0733464814,.0592985849,     &
+       & .0442774388,.0285313886,.0123412298,.0647376968,.0644661644,     &
+       & .0639242386,.0631141923,.0620394232,.0607044392,.0591148397,     &
+       & .0572772921,.0551995037,.0528901894,.0503590356,.0476166585,     &
+       & .0446745609,.0415450829,.0382413511,.0347772226,.0311672278,     &
+       & .0274265097,.0235707608,.0196161605,.0155793157,.0114772346,     &
+       & .0073275539,.0031533461,.0325506145,.0325161187,.0324471637,     &
+       & .0323438226,.0322062048,.0320344562,.0318287589,.0315893308,     &
+       & .0313164256,.0310103326,.0306713761,.0302999154,.0298963441,     &
+       & .0294610900,.0289946142,.0284974111,.0279700076,.0274129627,     &
+       & .0268268667,.0262123407,.0255700360,.0249006332,.0242048418,     &
+       & .0234833991,.0227370697,.0219666444,.0211729399,.0203567972,     &
+       & .0195190811,.0186606796,.0177825023,.0168854799,.0159705629,     &
+       & .0150387210,.0140909418,.0131282296,.0121516047,.0111621020,     &
+       & .0101607705,.0091486712,.0081268769,.0070964708,.0060585455,     &
+       & .0050142027,.0039645543,.0029107318,.0018539608,.0007967921/     
+  DATA TOLABS,TOLREL,NMAX/1.E-35,5.E-4,100/ 
+  TOLABS=AERR 
+  TOLREL=RERR 
+  
+  CtLhGausInt=0. 
+  NLIMS=2 
+  XLIMS(1)=XL 
+  XLIMS(2)=XR 
+10 AA=(XLIMS(NLIMS)-XLIMS(NLIMS-1))/2D0 
+  BB=(XLIMS(NLIMS)+XLIMS(NLIMS-1))/2D0 
+  TVAL=0. 
+  DO 15 I=1,3 
+15   TVAL=TVAL+W(I)*(F(BB+AA*R(I))+F(BB-AA*R(I))) 
+     TVAL=TVAL*AA 
+     DO 25 J=1,4 
+        VAL=0. 
+        DO 20 I=PTR(J),PTR(J)-1+NORD(J) 
+20         VAL=VAL+W(I)*(F(BB+AA*R(I))+F(BB-AA*R(I))) 
+           VAL=VAL*AA 
+           TOL=MAX(TOLABS,TOLREL*ABS(VAL)) 
+           IF (ABS(TVAL-VAL).LT.TOL) THEN 
+              CtLhGausInt=CtLhGausInt+VAL 
+              NLIMS=NLIMS-2 
+              IF (NLIMS.NE.0) GO TO 10 
+              RETURN 
+           END IF
+25         TVAL=VAL 
+           IF (NMAX.EQ.2) THEN 
+              CtLhGausInt=VAL 
+              RETURN 
+           END IF
+           IF (NLIMS.GT.(NMAX-2)) THEN 
+              write(*,50) CtLhGausInt,NMAX,BB-AA,BB+AA 
+              RETURN 
+           END IF
+           XLIMS(NLIMS+1)=BB 
+           XLIMS(NLIMS+2)=BB+AA 
+           XLIMS(NLIMS)=BB 
+           NLIMS=NLIMS+2 
+           GO TO 10 
+50         FORMAT (' CtLhGausInt FAILS, CtLhGausInt,NMAX,XL,XR=',          &
+                &            G15.7,I5,2G15.7)                                      
+      END                                           
+      SUBROUTINE CtLhHINTEG (NX, F, H) 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      PARAMETER (MXX = 105, MXQ = 25, MXF = 6) 
+      PARAMETER (MXPN = MXF * 2 + 2) 
+      PARAMETER (MXQX= MXQ * MXX,   MXPQX = MXQX * MXPN) 
+      PARAMETER (M1=-3, M2=3, NDG=3, NDH=NDG+1, L1=M1-1, L2=M2+NDG-2) 
+      COMMON / LhCtHINTEC / GH(NDG, MXX) 
+      COMMON / LhCtVARIBX / XA(MXX, L1:L2), ELY(MXX), DXTZ(MXX) 
+      DIMENSION F(NX), H(NX), G(MXX) 
+      DZ = 1D0 / (NX-1) 
+      DO 20 I = 1, NX-2 
+         NP = NX - I + 1 
+         TEM = GH(1,I)*F(I) + GH(2,I)*F(I+1) + GH(3,I)*F(I+2) 
+         DO 30 KZ = 3, NP 
+            IY = I + KZ - 1 
+            W = XA(I,1) / XA(IY,1) 
+            G(KZ) = DXTZ(IY)*(F(IY)-W*F(I))/(1.-W) 
+   30    CONTINUE 
+         HTEM = CtLhSMPSNA (NP-2, DZ, G(3), ERR) 
+         TEM1 = F(I) * ELY(I) 
+         H(I) = TEM + HTEM + TEM1 
+   20 END DO 
+      H(NX-1) = F(NX) - F(NX-1) + F(NX-1) * (ELY(NX-1) - XA(NX-1,0)) 
+      H(NX)   = 0 
+      RETURN 
+      END                                           
+      SUBROUTINE CtLhHQRK (NX, TT, NQRK, Y, F) 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      PARAMETER (MXX = 105, MXQ = 25, MXF = 6) 
+      DIMENSION Y(NX), F(NX) 
+      IF (NX .GT. 1) GOTO 11 
+   11 CONTINUE 
+      DO 230 IZ = 1, NX 
+        IF (NX .GT. 1) THEN 
+        F(IZ) = 0 
+        GOTO 230 
+        EndIf 
+  230 END DO 
+      RETURN 
+      END                                           
+
+
+      SUBROUTINE CtLhINTEGR (NX, M, F,   G, IR) 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      CHARACTER MSG*80 
+      PARAMETER (MXX = 105, MXQ = 25, MXF = 6) 
+      PARAMETER (MXPN = MXF * 2 + 2) 
+      PARAMETER (MXQX= MXQ * MXX,   MXPQX = MXQX * MXPN) 
+      PARAMETER (M1=-3, M2=3, NDG=3, NDH=NDG+1, L1=M1-1, L2=M2+NDG-2) 
+      COMMON / LhCtVARIBX / XA(MXX, L1:L2), ELY(MXX), DXTZ(MXX) 
+      COMMON / LhCtVARBAB / GB(NDG, NDH, MXX), H(NDH, MXX, M1:M2) 
+      DIMENSION   F(NX), G(NX) 
+      DATA IWRN1, IWRN2 / 0, 0 / 
+      IRR = 0 
+      IF (NX .LT. 1 .OR. XA(NX-1,1) .EQ. 0D0) THEN 
+        MSG = 'NX out of range in CtLhINTEGR call' 
+        CALL CtLhWARNI (IWRN1, MSG, 'NX', NX, 0, MXX, 0) 
+        IRR = 1 
+      EndIf 
+      IF (M .LT. M1 .OR. M .GT. M2) THEN 
+        MSG ='Exponent M out of range in CtLhINTEGR' 
+        CALL CtLhWARNI (IWRN2, MSG, 'M', M, M1, M2, 1) 
+        IRR = 2 
+      EndIf 
+      G(NX) = 0D0 
+      TEM = H(1, NX-1, -M) * F(NX-2) + H(2, NX-1, -M) * F(NX-1)         &
+     &    + H(3, NX-1, -M) * F(NX)                                      
+      IF (M .EQ. 0) THEN 
+         G(NX-1) = TEM 
+      Else 
+         G(NX-1) = TEM * XA(NX-1, M) 
+      EndIf 
+      DO 10 I = NX-2, 2, -1 
+         TEM = TEM + H(1,I,-M)*F(I-1) + H(2,I,-M)*F(I)                  &
+     &             + H(3,I,-M)*F(I+1) + H(4,I,-M)*F(I+2)                
+         IF (M .EQ. 0) THEN 
+            G(I) = TEM 
+         Else 
+            G(I) = TEM * XA(I, M) 
+         EndIf 
+   10 END DO 
+      TEM = TEM + H(2,1,-M)*F(1) + H(3,1,-M)*F(2) + H(4,1,-M)*F(3) 
+      IF (M .EQ. 0) THEN 
+         G(1) = TEM 
+      Else 
+         G(1) = TEM * XA(1, M) 
+      EndIf 
+      IR = IRR 
+      RETURN 
+      END       
+
+                                    
+      SUBROUTINE CtLhKERNEL                                             &
+     &(XX, FF1, FG1, GF1, GG1, PNSP, PNSM, FF2, FG2, GF2, GG2, NFL, IRT)
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      PARAMETER (PI = 3.141592653589793d0, PI2 = PI ** 2) 
+      PARAMETER (D0 = 0.0, D1 = 1.0) 
+      DATA CF, CG, TR, IWRN / 1.33333333333333d0, 3.0d0, 0.5d0, 0 / 
+      IRT = 0 
+      TRNF = TR * NFL 
+      X = XX 
+      IF (X .LE. 0. .OR. X .GE. 1.) THEN 
+        CALL CtLhWARNR(IWRN, 'X out of range in CtLhKERNEL', 'X', X,    &
+     &             D0, D1, 1)                                           
+        IRT = 1 
+        RETURN 
+      EndIf 
+      XI = 1./ X 
+      X2 = X ** 2 
+      XM1I = 1./ (1.- X) 
+      XP1I = 1./ (1.+ X) 
+      XLN = LOG (X) 
+      XLN2 = XLN ** 2 
+      XLN1M = LOG (1.- X) 
+      SPEN2 = CtLhSPENC2 (X) 
+      FFP = (1.+ X2) * XM1I 
+      FGP = (2.- 2.* X + X2) / X 
+      GFP = 1. - 2.* X + 2.* X2 
+      GGP = XM1I + XI - 2. + X - X2 
+      FFM = (1.+ X2) * XP1I 
+      FGM = - (2.+ 2.* X + X2) / X 
+      GFM = 1. + 2.* X + 2.* X2 
+      GGM = XP1I - XI - 2. - X - X2 
+      FF1 = CF * FFP * (1.- X) 
+      FG1 = CF * FGP * X 
+      GF1 = 2.* TRNF * GFP 
+      GG1 = 2.* CG * GGP * X * (1.-X) 
+      PCF2 = -2.* FFP *XLN*XLN1M - (3.*XM1I + 2.*X)*XLN                 &
+     &     - (1.+X)/2.*XLN2 - 5.*(1.-X)                                 
+      PCFG = FFP * (XLN2 + 11.*XLN/3.+ 67./9.- PI**2 / 3.)              &
+     &     + 2.*(1.+X) * XLN + 40.* (1.-X) / 3.                         
+      PCFT = (FFP * (- XLN - 5./3.) - 2.*(1.-X)) * 2./ 3. 
+      PQQB = 2.* FFM * SPEN2 + 2.*(1.+X)*XLN + 4.*(1.-X) 
+      PQQB = (CF**2-CF*CG/2.) * PQQB 
+      PQQ2 = CF**2 * PCF2 + CF*CG * PCFG / 2. + CF*TRNF * PCFT 
+      PNSP = (PQQ2 + PQQB) * (1.-X) 
+      PNSM = (PQQ2 - PQQB) * (1.-X) 
+      FFCF2 = - 1. + X + (1.- 3.*X) * XLN / 2. - (1.+ X) * XLN2 / 2.    &
+     &      - FFP * (3.* XLN / 2. + 2.* XLN * XLN1M)                    &
+     &      + FFM * 2.* SPEN2                                           
+      FFCFG = 14./3.* (1.-X)                                            &
+     &      + FFP * (11./6.* XLN + XLN2 / 2. + 67./18. - PI2 / 6.)      &
+     &      - FFM * SPEN2                                               
+      FFCFT = - 16./3. + 40./3.* X + (10.* X + 16./3.* X2 + 2.) * XLN   &
+     &                 - 112./9.* X2 + 40./9./X - 2.* (1.+ X) * XLN2    &
+     &      - FFP * (10./9. + 2./3. * XLN)                              
+      FGCF2 = - 5./2.- 7./2.* X + (2.+ 7./2.* X) * XLN + (X/2.-1.)*XLN2 &
+     &               - 2.* X * XLN1M                                    &
+     &      - FGP * (3.* XLN1M + XLN1M ** 2)                            
+      FGCFG = 28./9. + 65./18.* X + 44./9. * X2 - (12.+ 5.*X + 8./3.*X2)&
+     &                      * XLN + (4.+ X) * XLN2 + 2.* X * XLN1M      &
+     &      + FGP * (-2.*XLN*XLN1M + XLN2/2. + 11./3.*XLN1M + XLN1M**2  &
+     &               - PI2/6. + 0.5)                                    &
+     &      + FGM * SPEN2                                               
+      FGCFT = -4./3.* X - FGP * (20./9.+ 4./3.*XLN1M) 
+      GFCFT = 4.- 9.*X + (-1.+ 4.*X)*XLN + (-1.+ 2.*X)*XLN2 + 4.*XLN1M  &
+     &      + GFP * (-4.*XLN*XLN1M + 4.*XLN + 2.*XLN2 - 4.*XLN1M        &
+     &               + 2.*XLN1M**2 - 2./3.* PI2 + 10.)                  
+      GFCGT = 182./9.+ 14./9.*X + 40./9./X + (136./3.*X - 38./3.)*XLN   &
+     &               - 4.*XLN1M - (2.+ 8.*X)*XLN2                       &
+     &      + GFP * (-XLN2 + 44./3.*XLN - 2.*XLN1M**2 + 4.*XLN1M        &
+     &               + PI2/3. - 218./9.)                                &
+     &      + GFM * 2. * SPEN2                                          
+      GGCFT = -16.+ 8.*X + 20./3.*X2 + 4./3./X + (-6.-10.*X)*XLN        &
+     &        - 2.* (1.+ X) * XLN2                                      
+      GGCGT = 2.- 2.*X + 26./9.*X2 - 26./9./X - 4./3.*(1.+X)*XLN        &
+     &      - GGP * 20./9.                                              
+      GGCG2 = 27./2.*(1.-X) + 67./9.*(X2-XI) + 4.*(1.+X)*XLN2           &
+     &              + (-25.+ 11.*X - 44.*X2)/3.*XLN                     &
+     &      + GGP * (67./9.- 4.*XLN*XLN1M + XLN2 - PI2/3.)              &
+     &      + GGM * 2.* SPEN2                                           
+      FF2 = CF * TRNF * FFCFT + CF ** 2 * FFCF2 + CF * CG   * FFCFG 
+      FG2 = CF * TRNF * FGCFT + CF ** 2 * FGCF2 + CF * CG   * FGCFG 
+      GF2 = CF * TRNF * GFCFT                   + CG * TRNF * GFCGT 
+      GG2 = CF * TRNF * GGCFT + CG ** 2 * GGCG2 + CG * TRNF * GGCGT 
+      XLG = (LOG(1./(1.-X)) + 1.) 
+      XG2 = XLG ** 2 
+      FF2 = FF2 * X * (1.- X) 
+      FG2 = FG2 * X / XG2 
+      GF2 = GF2 * X / XG2 
+      GG2 = GG2 * X * (1.- X) 
+      RETURN 
+      END       
+
+                                    
+      SUBROUTINE CtLhLAMCWZ 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      COMMON / LhCtQCDPAR_LHA / AL, NF, NORDER, SET 
+      LOGICAL SET 
+      CALL CtLhSETL1 (NF, AL) 
+      END                                           
+
+
+      FUNCTION LhCtNAMQCD(NNAME) 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      CHARACTER NNAME*(*), NAME*8 
+      COMMON / LhCtQCDPAR_LHA / AL, NF, NORDER, SET 
+      LOGICAL SET 
+      CHARACTER ONECH*(1) 
+      ONECH = '0' 
+      IASC0 = ICHAR(ONECH) 
+      NAME = NNAME 
+      LhCtNAMQCD=0 
+      IF ( (NAME .EQ. 'ALAM') .OR. (NAME .EQ. 'LAMB') .OR.              &
+     &        (NAME .EQ. 'LAM') .OR. (NAME .EQ. 'LAMBDA') )             &
+     &             LhCtNAMQCD=1                                         
+      IF ( (NAME .EQ. 'NFL') .OR. (NAME(1:3) .EQ. '#FL') .OR.           &
+     &        (NAME .EQ. '# FL') )                                      &
+     &             LhCtNAMQCD=2                                         
+      DO 10 I=1, 9 
+         IF (NAME .EQ. 'M'//CHAR(I+IASC0))                              &
+     &             LhCtNAMQCD=I+2                                       
+   10    CONTINUE 
+      DO 20 I= 0, NF 
+         IF (NAME .EQ. 'LAM'//CHAR(I+IASC0))                            &
+     &             LhCtNAMQCD=I+13                                      
+   20    CONTINUE 
+      IF (NAME(:3).EQ.'ORD' .OR. NAME(:3).EQ.'NRD') LhCtNAMQCD = 24 
+      RETURN 
+      END     
+
+                                      
+      FUNCTION LhCtNFL(AMU) 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      COMMON / LhCtCWZPRM / ALAM(0:9), AMHAT(0:9), AMN, NHQ 
+      COMMON / LhCtQCDPAR_LHA / AL, NF, NORDER, SET 
+      LOGICAL SET 
+      IF (.NOT. SET) CALL CtLhLAMCWZ 
+      LhCtNFL = NF - NHQ 
+      IF ((LhCtNFL .EQ. NF) .OR. (AMU .LE. AMN)) GOTO 20 
+      DO 10 I = NF - NHQ + 1, NF 
+         IF (AMU .GE. AMHAT(I)) THEN 
+            LhCtNFL = I 
+         ELSE 
+            GOTO 20 
+         ENDIF 
+   10    CONTINUE 
+   20 RETURN 
+      END       
+
+                                    
+      SUBROUTINE CtLhNSEVL (RHS, IKNL,NX,NT,JT,DT,TIN,NEFF,U0,UN) 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      PARAMETER (MXX = 105, MXQ = 25, MXF = 6) 
+      PARAMETER (MXPN = MXF * 2 + 2) 
+      PARAMETER (MXQX= MXQ * MXX,   MXPQX = MXQX * MXPN) 
+      PARAMETER (M1=-3, M2=3, NDG=3, NDH=NDG+1, L1=M1-1, L2=M2+NDG-2) 
+      COMMON / LhCtVARIBX / XA(MXX, L1:L2), ELY(MXX), DXTZ(MXX) 
+      DIMENSION  U0(NX), UN(0:NX, 0:NT) 
+      DIMENSION  Y0(MXX), Y1(MXX), YP(MXX), F0(MXX), F1(MXX), FP(MXX) 
+      external rhs 
+      DDT = DT / JT 
+      IF (NX .GT. MXX) THEN 
+      WRITE (*,*) 'Nx =', NX, ' greater than Max pts in CtLhNSEVL.' 
+      STOP 'Program stopped in CtLhNSEVL' 
+      EndIf 
+! ++ remove unused quantities (jcp)                                     
+! ++  TMD = TIN + DT * NT / 2.                                          
+! ++  AMU = EXP(TMD)                                                    
+! ++  TEM = 6./ (33.- 2.* NEFF) / CtLhALPI(AMU)                         
+! ++  TLAM = TMD - TEM                                                  
+      DO 9 IX = 1, NX 
+      UN(IX, 0)  = U0(IX) 
+    9 END DO 
+      UN(0, 0) = 3D0*U0(1) - 3D0*U0(2) - U0(1) 
+      TT = TIN 
+      DO 10 IZ = 1, NX 
+      Y0(IZ)   = U0(IZ) 
+   10 END DO 
+      DO 20 IS = 1, NT 
+         DO 202 JS = 1, JT 
+            IRND = (IS-1) * JT + JS 
+            IF (IRND .EQ. 1) THEN 
+                CALL RHS (TT, Neff, Y0, F0) 
+                DO 250 IZ = 1, NX 
+                   Y0(IZ) = Y0(IZ) + DDT * F0(IZ) 
+  250           CONTINUE 
+                TT = TT + DDT 
+                CALL RHS (TT, NEFF, Y0, F1) 
+                DO 251 IZ = 1, NX 
+                   Y1(IZ) = U0(IZ) + DDT * (F0(IZ) + F1(IZ)) / 2D0 
+  251           CONTINUE 
+            Else 
+                CALL RHS (TT, NEFF, Y1, F1) 
+                DO 252 IZ = 1, NX 
+                   YP(IZ) = Y1(IZ) + DDT * (3D0 * F1(IZ) - F0(IZ)) / 2D0 
+  252           CONTINUE 
+                TT = TT + DDT 
+                CALL RHS (TT, NEFF, YP, FP) 
+                DO 253 IZ = 1, NX 
+                   Y1(IZ) = Y1(IZ) + DDT * (FP(IZ) + F1(IZ)) / 2D0 
+                   F0(IZ) = F1(IZ) 
+  253           CONTINUE 
+            EndIf 
+  202    CONTINUE 
+         DO 260 IZ = 1, NX 
+            UN (IZ, IS) = Y1(IZ) 
+  260    CONTINUE 
+         UN(0, IS) = 3D0*Y1(1) - 3D0*Y1(2) + Y1(3) 
+   20 END DO 
+      RETURN 
+      END       
+
+                                    
+      SUBROUTINE LhCtNSRHSM (TT, NEFF, FI, FO) 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      LOGICAL LSTX 
+      PARAMETER (MXX = 105, MXQ = 25, MXF = 6) 
+      PARAMETER (M1=-3, M2=3, NDG=3, NDH=NDG+1, L1=M1-1, L2=M2+NDG-2) 
+      COMMON / LhCtVARIBX / XA(MXX, L1:L2), ELY(MXX), DXTZ(MXX) 
+      COMMON / LhCtXXARAY / XCR, XMIN, XV(0:MXX), LSTX, NX 
+      COMMON / LhCtXYARAY / ZZ(MXX, MXX), ZV(0:MXX) 
+      COMMON / LhCtKRNL01 / AFF2(MXX),AFG2(MXX),AGF2(MXX),AGG2(MXX),    &
+     &                  ANSP (MXX), ANSM (MXX), ZFG2, ZGF2, ZQQB        
+      COMMON / LhCtKRN2ND / FFG(MXX, MXX), GGF(MXX, MXX), PNS(MXX, MXX) 
+      COMMON / LhCtEVLPAC / AL, IKNL, IPD0, IHDN, NfMx 
+      DIMENSION G1(MXX), FI(NX), FO(NX) 
+      DIMENSION W0(MXX), W1(MXX), WH(MXX) 
+      S = EXP(TT) 
+      Q = AL * EXP (S) 
+      CPL = CtLhALPI(Q) 
+      CPL2= CPL ** 2 / 2. * S 
+      CPL = CPL * S 
+      CALL CtLhINTEGR (NX, 0, FI, W0, IR1) 
+      CALL CtLhINTEGR (NX, 1, FI, W1, IR2) 
+      CALL CtLhHINTEG (NX,    FI, WH) 
+      DO 230 IZ = 1, NX 
+      FO(IZ) = 2.* FI(IZ) + 4./3.* ( 2.* WH(IZ) - W0(IZ) - W1(IZ)) 
+      FO(IZ) = CPL * FO(IZ) 
+  230 END DO 
+      IF (IKNL .EQ. 2) THEN 
+      DZ = 1./ (NX - 1) 
+      DO 21 IX = 1, NX-1 
+        NP = NX - IX + 1 
+        IS = NP 
+        DO 31 KZ = 2, NP 
+          IY = IX + KZ - 1 
+          IT = NX - IY + 1 
+          XY = ZZ (IS, IT) 
+          G1(KZ) = PNS (IS,IT) * (FI(IY) - XY * FI(IX)) 
+   31   CONTINUE 
+        TEM1 = CtLhSMPNOL (NP, DZ, G1, ERR) 
+        TMP2 = (TEM1 - FI(IX) * ANSM(IX)) * CPL2 
+        FO(IX) = FO(IX) + TMP2 
+   21 END DO 
+      EndIf 
+      RETURN 
+      END       
+
+                                    
+      SUBROUTINE LhCtNSRHSP (TT, NEFF, FI, FO) 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      LOGICAL LSTX 
+      PARAMETER (MXX = 105, MXQ = 25, MXF = 6) 
+      PARAMETER (M1=-3, M2=3, NDG=3, NDH=NDG+1, L1=M1-1, L2=M2+NDG-2) 
+      COMMON / LhCtVARIBX / XA(MXX, L1:L2), ELY(MXX), DXTZ(MXX) 
+      COMMON / LhCtXXARAY / XCR, XMIN, XV(0:MXX), LSTX, NX 
+      COMMON / LhCtXYARAY / ZZ(MXX, MXX), ZV(0:MXX) 
+      COMMON / LhCtKRNL01 / AFF2(MXX),AFG2(MXX),AGF2(MXX),AGG2(MXX),    &
+     &                  ANSP (MXX), ANSM (MXX), ZFG2, ZGF2, ZQQB        
+      COMMON / LhCtKRN2ND / FFG(MXX, MXX), GGF(MXX, MXX), PNS(MXX, MXX) 
+      COMMON / LhCtEVLPAC / AL, IKNL, IPD0, IHDN, NfMx 
+      DIMENSION G1(MXX), FI(NX), FO(NX) 
+      DIMENSION W0(MXX), W1(MXX), WH(MXX) 
+      S = EXP(TT) 
+      Q = AL * EXP (S) 
+      CPL = CtLhALPI(Q) 
+      CPL2= CPL ** 2 / 2. * S 
+      CPL = CPL * S 
+      CALL CtLhINTEGR (NX, 0, FI, W0, IR1) 
+      CALL CtLhINTEGR (NX, 1, FI, W1, IR2) 
+      CALL CtLhHINTEG (NX,    FI, WH) 
+      DO 230 IZ = 1, NX 
+      FO(IZ) = 2.* FI(IZ) + 4./3.* ( 2.* WH(IZ) - W0(IZ) - W1(IZ)) 
+      FO(IZ) = CPL * FO(IZ) 
+  230 END DO 
+      IF (IKNL .EQ. 2) THEN 
+      DZ = 1./ (NX - 1) 
+      DO 21 IX = 1, NX-1 
+        NP = NX - IX + 1 
+        DO 31 KZ = 2, NP 
+          IY = IX + KZ - 1 
+          XY = ZZ (NX-IX+1, NX-IY+1) 
+          G1(KZ) = PNS (IX,IY) * (FI(IY) - XY * FI(IX)) 
+   31   CONTINUE 
+        TEM1 = CtLhSMPNOL (NP, DZ, G1, ERR) 
+        TMP2 = (TEM1 + FI(IX) * (-ANSP(IX) + ZQQB)) * CPL2 
+        FO(IX) = FO(IX) + TMP2 
+   21 END DO 
+      EndIf 
+      RETURN 
+      END     
+
+                                      
+      FUNCTION CtLhPARDIS (IPRTN, XX, QQ) 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      include 'parmsetup.inc' 
+      Character Msg*80 
+      LOGICAL LSTX 
+      PARAMETER (MXX = 105, MXQ = 25, MXF = 6) 
+      PARAMETER (MXPN = MXF * 2 + 2) 
+      PARAMETER (MXQX= MXQ * MXX,   MXPQX = MXQX * MXPN) 
+      PARAMETER (M1=-3, M2=3, NDG=3, NDH=NDG+1, L1=M1-1, L2=M2+NDG-2) 
+      PARAMETER (Smll = 1D-9) 
+        parameter(nqvec = 4) 
+      COMMON / LhCtXXARAY / XCR, XMIN, XV(0:MXX), LSTX, NX 
+      COMMON / LhCtXYARAY / ZZ(MXX, MXX), ZV(0:MXX) 
+      COMMON / LhCtVARIBX / XA(MXX, L1:L2), ELY(MXX), DXTZ(MXX) 
+      COMMON / LhCtQARAY1 / QINI,QMAX, QV(0:MXQ),TV(0:MXQ), NT,JT,NG 
+      COMMON / LhCtQARAY2 / TLN(MXF), DTN(MXF), NTL(MXF), NTN(MXF) 
+      COMMON / LhCtEVLPAC / AL, IKNL, IPD0, IHDN, NfMx 
+      COMMON / LhCtPEVLDT / UPD(MXPQX,nmxset), KF, Nelmt 
+      COMMON / LhCtCOMQMS / VALQMS(9) 
+      dimension fvec(4), fij(4) 
+      dimension xvpow(0:mxx) 
+      Data Iwrn1, Iwrn2, Iwrn3, OneP / 3*0, 1.00001 / 
+                                 !**** choice of interpolation variable 
+      data xpow / 0.3d0 / 
+      data nxsave / 0 / 
+        save xvpow, nxsave 
+         save xlast, qlast 
+         save jq, jx, JLx, JLq, ss, sy2, sy3, s23, ty2, ty3 
+         save const1 , const2, const3, const4, const5, const6 
+         save tt, t13, t12, t23, t34 , t24, tmp1, tmp2, tdet 
+!                                                                       
+      call getnset(iset) 
+!                                                                       
+      if(nx .ne. nxsave) then 
+         xvpow(0) = 0D0 
+         do i = 1, nx 
+            xvpow(i) = xv(i)**xpow 
+         enddo 
+        nxsave = nx 
+      endif 
+                                                                        
+      X = XX 
+      Q = QQ 
+                                                                        
+!      if((x.lt.xmin).or.(x.gt.1.d0)) print 98,x                        
+!  98  format(' WARNING:  X=',e12.5,' OUT OF RANGE')                    
+!      if((q.lt.qini).or.(q.gt.qmax)) print 99,q                        
+!  99  format(' WARNING:  Q=',e12.5,' OUT OF RANGE')                    
+                                                                        
+! enforce threshold early to improve speed...                           
+        ii = iabs(IPRTN) 
+        if(ii .ne. 0) then 
+           if(QQ .lt. VALQMS(ii) ) then 
+              ctlhpardis = 0.d0 
+              return 
+           endif 
+        endif 
+                                                                        
+! force pardis = 0.0d0 at exactly =1.0d0 - added mrw 10/May/06          
+        if(xx .eq. 1.0d0) then 
+          ctlhpardis = 0.0d0 
+          return 
+        endif 
+                                                                        
+! skip the initialization in x if same as in the previous call.         
+        if(x .eq. xlast) goto 100 
+        xlast = x 
+                                                                        
+      JLx = -1 
+      JU = Nx+1 
+   11 If (JU-JLx .GT. 1) Then 
+         JM = (JU+JLx) / 2 
+         If (X .Ge. XV(JM)) Then 
+            JLx = JM 
+         Else 
+            JU = JM 
+         Endif 
+         Goto 11 
+      Endif 
+      If     (JLx .LE. -1) Then 
+        Print '(A,1pE12.4)','Severe error: x <= 0 in ParDis x=', x 
+        Stop 
+      ElseIf (JLx .Eq. 0) Then 
+         Jx = 0 
+         Msg = '0 < X < Xmin in ParDis; extrapolation used!' 
+         CALL CtLhWARNR (IWRN1, Msg, 'X', X, Xmin, 1D0, 1) 
+      Elseif (JLx .LE. Nx-2) Then 
+         Jx = JLx - 1 
+      Elseif (JLx.Eq.Nx-1 .or. x.LT.OneP) Then 
+         Jx = JLx - 2 
+      Else 
+        Print '(A,1pE12.4)','Severe error: x > 1 in ParDis x=', x 
+        Stop 
+      Endif 
+      ss = x**xpow 
+      If (JLx.Ge.2 .and. JLx.Le.Nx-2) Then 
+      svec1 = xvpow(jx) 
+      svec2 = xvpow(jx+1) 
+      svec3 = xvpow(jx+2) 
+      svec4 = xvpow(jx+3) 
+      s12 = svec1 - svec2 
+      s13 = svec1 - svec3 
+      s23 = svec2 - svec3 
+      s24 = svec2 - svec4 
+      s34 = svec3 - svec4 
+      sy2 = ss - svec2 
+      sy3 = ss - svec3 
+      const1 = s13/s23 
+      const2 = s12/s23 
+      const3 = s34/s23 
+      const4 = s24/s23 
+      s1213 = s12 + s13 
+      s2434 = s24 + s34 
+      sdet = s12*s34 - s1213*s2434 
+      tmp = sy2*sy3/sdet 
+      const5 = (s34*sy2-s2434*sy3)*tmp/s12 
+      const6 = (s1213*sy2-s12*sy3)*tmp/s34 
+      EndIf 
+                                                                        
+  100      continue 
+                                                                        
+! skip the initialization in q if same as in the previous call.         
+        if(q .eq. qlast) goto 110 
+        qlast = q 
+                                                                        
+      tt = log(log(Q/Al)) 
+                                                                        
+      JLq = -1 
+      JU = NT+1 
+   12 If (JU-JLq .GT. 1) Then 
+         JM = (JU+JLq) / 2 
+         If (Q .GE. QV(JM)) Then 
+            JLq = JM 
+         Else 
+            JU = JM 
+         Endif 
+         Goto 12 
+       Endif 
+      If     (JLq .LE. 0) Then 
+         Jq = 0 
+         If (JLq .LT. 0) Then 
+          Msg = 'Q < Q0 in ParDis; extrapolation used!' 
+          CALL CtLhWARNR (IWRN2, Msg, 'Q', Q, Qini, 1D0, 1) 
+         EndIf 
+      Elseif (JLq .LE. Nt-2) Then 
+         Jq = JLq - 1 
+      Else 
+        Jq = Nt - 3 
+        If (JLq .GE. Nt) Then 
+         Msg = 'Q > Qmax in ParDis; extrapolation used!' 
+         CALL CtLhWARNR (IWRN3, Msg, 'Q', Q, Qmax, 1D0, 1) 
+        Endif 
+      Endif 
+                                                                        
+      If (JLq.GE.1 .and. JLq.LE.Nt-2) Then 
+      tvec1 = Tv(jq) 
+      tvec2 = Tv(jq+1) 
+      tvec3 = Tv(jq+2) 
+      tvec4 = Tv(jq+3) 
+      t12 = tvec1 - tvec2 
+      t13 = tvec1 - tvec3 
+      t23 = tvec2 - tvec3 
+      t24 = tvec2 - tvec4 
+      t34 = tvec3 - tvec4 
+      ty2 = tt - tvec2 
+      ty3 = tt - tvec3 
+      tmp1 = t12 + t13 
+      tmp2 = t24 + t34 
+      tdet = t12*t34 - tmp1*tmp2 
+      EndIf 
+                                                                        
+  110      continue 
+                                                                        
+      jtmp = ((IPRTN + NfMx)*(NT+1)+(jq-1))*(NX+1)+jx+1 
+      Do it = 1, nqvec 
+         J1  = jtmp + it*(NX+1) 
+       If (Jx .Eq. 0) Then 
+         fij(1) = 0 
+         fij(2) = Upd(J1+1,iset) * Xa(1,2) 
+         fij(3) = Upd(J1+2,iset) * Xa(2,2) 
+         fij(4) = Upd(J1+3,iset) * Xa(3,2) 
+         Call CtLhPolint4 (XVpow(0), Fij(1), 4, ss, Fx, Dfx) 
+                                                                        
+         If (x .GT. 0D0)  Fvec(it) =  Fx / x**2 
+       ElseIf  (JLx .Eq. Nx-1) Then 
+        Call CtLhPolint4 (XVpow(Nx-3), Upd(J1,iset), 4, ss, Fx, Dfx) 
+        Fvec(it) = Fx 
+       Else 
+         sf2 = Upd(J1+1,iset) 
+         sf3 = Upd(J1+2,iset) 
+         Fvec(it) = (const5*(Upd(J1,iset)                               &
+     &                             - sf2*const1 + sf3*const2)           &
+     &               + const6*(Upd(J1+3,iset)                           &
+     &                             + sf2*const3 - sf3*const4)           &
+     &               + sf2*sy3 - sf3*sy2) / s23                         
+       Endif 
+      enddo 
+      If (JLq .LE. 0) Then 
+        Call CtLhPolint4 (TV(0), Fvec(1), 4, tt, ff, Dfq) 
+      ElseIf (JLq .GE. Nt-1) Then 
+        Call CtLhPolint4 (TV(Nt-3), Fvec(1), 4, tt, ff, Dfq) 
+      Else 
+        tf2 = fvec(2) 
+        tf3 = fvec(3) 
+        g1 = ( tf2*t13 - tf3*t12) / t23 
+        g4 = (-tf2*t34 + tf3*t24) / t23 
+        h00 = ((t34*ty2-tmp2*ty3)*(fvec(1)-g1)/t12                      &
+     &          +  (tmp1*ty2-t12*ty3)*(fvec(4)-g4)/t34)                 
+        ff = (h00*ty2*ty3/tdet + tf2*ty3 - tf3*ty2) / t23 
+      EndIf 
+      CtLhPARDIS = ff 
+      Return 
+      END                                           
+                
+                                                        
+      SUBROUTINE CtLhPARPDF (IACT, NAME, VALUE, IRET) 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      CHARACTER NAME*(*), Uname*10 
+      LOGICAL START1 
+      DATA ILEVEL, LRET / 1, 1 / 
+      JRET = IRET 
+      CALL CtLhUPC (NAME, Ln, Uname) 
+      IF (IACT .EQ. 0 .OR. IACT .EQ. 4) then 
+!     >    IVALUE = NINT (VALUE)   !tentatively remove this since it see
+       print *,'Fatal error: iact=',iact 
+       stop 
+      ENDIF 
+      START1 = (IACT .NE. 1) .AND. (IACT .NE. 2) 
+! prepare to remove this stuff, since I think IACT=1 or 2 always        
+      if(start1) then 
+        print *,'Fatal error: start1=',start1 
+        stop 
+      endif 
+      IF (START1)  ILEVEL = 1 
+      GOTO (1, 2), ILEVEL 
+    1 START1 = .TRUE. 
+      ILEVEL = 0 
+      CALL CtLhParQcd (IACT, Uname(1:Ln), VALUE, JRET) 
+              IF (JRET .EQ. 1)  GOTO 11 
+              IF (JRET .EQ. 2)  GOTO 12 
+              IF (JRET .EQ. 3)  GOTO 13 
+              IF (JRET .GT. 4)  GOTO 15 
+              ILEVEL =  ILEVEL + 1 
+    2 CALL CtLhEVLPAR (IACT, Uname(1:Ln), VALUE, JRET) 
+              IF (JRET .EQ. 1)  GOTO 11 
+              IF (JRET .EQ. 2)  GOTO 12 
+              IF (JRET .EQ. 3)  GOTO 13 
+              IF (JRET .GT. 4)  GOTO 15 
+              ILEVEL =  ILEVEL + 1 
+      IF (.NOT. START1) GOTO 1 
+      IF (JRET .EQ. 0)  GOTO 10 
+      GOTO 14 
+   10 CONTINUE 
+   11 CONTINUE 
+   12 CONTINUE 
+   13 CONTINUE 
+   14 CONTINUE 
+   15 CONTINUE 
+      IF (JRET .NE. 4) LRET = JRET 
+      IF (LRET.EQ.0 .OR. LRET.EQ.2 .OR. LRET.EQ.3) THEN 
+        PRINT *, 'Error in CtLhPARPDF: IRET, IACT, NAME, VALUE =',      &
+     &  LRET, IACT, NAME, VALUE                                         
+        PRINT *, 'fatal error in CtLhparpdf' 
+        stop 
+      EndIf 
+      IRET= JRET 
+      RETURN 
+      END       
+
+                                    
+      SUBROUTINE CtLhParQcd(IACT,NAME,VALUE,IRET) 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      INTEGER IACT,IRET 
+      CHARACTER*(*) NAME 
+      IRET=1 
+      IF (IACT.EQ.0) THEN 
+         WRITE (NINT(VALUE), *)  'LAM(BDA), NFL, ORD(ER), Mi, ',        &
+     &               '(i in 1 to 9), LAMi (i in 1 to NFL)'              
+         IRET=4 
+      ELSEIF (IACT.EQ.1) THEN 
+         CALL CtLhQCDSET (NAME,VALUE,IRET) 
+      ELSEIF (IACT.EQ.2) THEN 
+         CALL CtLhQCDGET (NAME,VALUE,IRET) 
+      ELSE 
+         IRET=3 
+      ENDIF 
+      RETURN 
+      END     
+
+                                      
+      FUNCTION CtLhPFF1 (XX) 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      LOGICAL LA, LB, LSTX 
+      PARAMETER (D0=0D0, D1=1D0, D2=2D0, D3=3D0, D4=4D0, D10=1D1) 
+      PARAMETER (MXX = 105, MXQ = 25, MXF = 6) 
+      PARAMETER (M1=-3, M2=3, NDG=3, NDH=NDG+1, L1=M1-1, L2=M2+NDG-2) 
+      PARAMETER (MX = 3) 
+      COMMON / LhCtXXARAY / XCR, XMIN, XV(0:MXX), LSTX, NX 
+      COMMON / LhCtKRNL00 / DZ, XL(MX), NNX 
+      COMMON / LhCtVARIBX / XA(MXX, L1:L2), ELY(MXX), DXTZ(MXX) 
+      COMMON / LhCtKRN1ST / FF1(0:MXX),FG1(0:MXX),GF1(0:MXX),GG1(0:MXX),&
+     &                  FF2(0:MXX), FG2(0:MXX), GF2(0:MXX), GG2(0:MXX), &
+     &                  PNSP(0:MXX), PNSM(0:MXX)                        
+      SAVE 
+      DATA LA, LB / 2 * .FALSE. / 
+      LB = .TRUE. 
+      ENTRY CtLhTFF1(ZZ) 
+      LA = .TRUE. 
+      IF (LA .AND. .NOT.LB) THEN 
+        Z = ZZ 
+        X = CtLhXFRMZ (Z) 
+      Else 
+        X = XX 
+      EndIf 
+      IF (X .GE. D1) THEN 
+        CtLhPFF1 = 0 
+        RETURN 
+      ElseIF (X .GE. XMIN) THEN 
+        Z = CtLhZFRMX (X) 
+        TEM = CtLhFINTRP (FF1,  -DZ, DZ, NX,  Z,  ERR, IRT) 
+      Else 
+        CALL CtLhPOLIN1 (XL, FF1(1), MX, X, TEM, ERR) 
+      EndIf 
+      IF (LA) THEN 
+         IF (LB) THEN 
+            CtLhPFF1 = TEM / (1.-X) 
+            LB   =.FALSE. 
+         Else 
+            CtLhTFF1 = TEM / (1.-X) * CtLhDXDZ(Z) 
+         EndIf 
+         LA   =.FALSE. 
+      Else 
+         IF (LB) THEN 
+! +++ something is wrong, since QFF1 and RFF1 are not used.             
+! +++ but this code appears to only be used for extrapolation           
+! +++ to small x, which is unreliable anyway, so ignore for now (jcp)   
+            QFF1 = TEM 
+            LB   =.FALSE. 
+         Else 
+            RFF1 = TEM * X / (1.-X) 
+         EndIf 
+      EndIf 
+      RETURN 
+      ENTRY CtLhFNSP (XX) 
+      X = XX 
+      IF (X .GE. D1) THEN 
+        CtLhFNSP = 0. 
+        RETURN 
+      ElseIF (X .GE. XMIN) THEN 
+        Z = CtLhZFRMX (X) 
+        TEM = CtLhFINTRP (PNSP,  -DZ, DZ, NX,  Z,  ERR, IRT) 
+      Else 
+        CALL CtLhPOLIN1 (XL, PNSP(1), MX, X, TEM, ERR) 
+      EndIf 
+      CtLhFNSP = TEM / (1.- X) 
+      RETURN 
+      ENTRY CtLhFNSM (XX) 
+      X = XX 
+      IF (X .GE. D1) THEN 
+        CtLhFNSM = 0. 
+        RETURN 
+      ElseIF (X .GE. XMIN) THEN 
+        Z = CtLhZFRMX (X) 
+        TEM = CtLhFINTRP (PNSM,  -DZ, DZ, NX,  Z,  ERR, IRT) 
+      Else 
+        CALL CtLhPOLIN1 (XL, PNSM(1), MX, X, TEM, ERR) 
+      EndIf 
+      CtLhFNSM = TEM / (1.- X) 
+      RETURN 
+      ENTRY CtLhRGG1 (XX) 
+      X = XX 
+      IF (X .GE. D1) THEN 
+                                   !error corrected? (jcp)              
+        CtLhRGG1= 0 
+        RETURN 
+      ElseIF (X .GE. XMIN) THEN 
+        Z = CtLhZFRMX (X) 
+        TEM = CtLhFINTRP (GG1,  -DZ, DZ, NX,  Z,  ERR, IRT) 
+      Else 
+        CALL CtLhPOLIN1 (XL, GG1(1), MX, X, TEM, ERR) 
+      EndIf 
+      IF (LA) THEN 
+                                            !error corrected? (jcp)     
+         CtLhRGG1 = TEM / X / (1.-X) 
+         LA   =.FALSE. 
+      Else 
+         IF (LB) THEN 
+                                              !error corrected? (jcp)   
+            CtLhRGG1 = TEM / X 
+            LB   =.FALSE. 
+         Else 
+            CtLhRGG1 = TEM / (1.-X) 
+         EndIf 
+      EndIf 
+      RETURN 
+      ENTRY CtLhRFF2 (XX) 
+      X = XX 
+      IF (X .GE. D1) THEN 
+                                    !error corrected? (jcp)             
+        CtLhRFF2 = 0 
+        RETURN 
+      ElseIF (X .GE. XMIN) THEN 
+        Z = CtLhZFRMX (X) 
+        TEM = CtLhFINTRP (FF2,  -DZ, DZ, NX,  Z,  ERR, IRT) 
+      Else 
+        CALL CtLhPOLIN1 (XL, FF2(1), MX, X, TEM, ERR) 
+      EndIf 
+      IF (LA) THEN 
+                                            !error corrected? (jcp)     
+         CtLhRFF2 = TEM / X / (1.-X) 
+         LA   =.FALSE. 
+      Else 
+         IF (LB) THEN 
+                                              !error corrected? (jcp)   
+            CtLhRFF2 = TEM / X 
+            LB   =.FALSE. 
+         Else 
+            CtLhRFF2 = TEM / (1.-X) 
+         EndIf 
+      EndIf 
+      RETURN 
+      ENTRY CtLhRGG2 (XX) 
+      X = XX 
+      IF (X .GE. D1) THEN 
+                                    !error corrected? (jcp)             
+        CtLhRGG2 = 0 
+        RETURN 
+      ElseIF (X .GE. XMIN) THEN 
+        Z = CtLhZFRMX (X) 
+        TEM = CtLhFINTRP (GG2,  -DZ, DZ, NX,  Z,  ERR, IRT) 
+      Else 
+        CALL CtLhPOLIN1 (XL, GG2(1), MX, X, TEM, ERR) 
+      EndIf 
+      IF (LA) THEN 
+                                            !error corrected? (jcp)     
+         CtLhRGG2 = TEM / X / (1.-X) 
+         LA   =.FALSE. 
+      Else 
+         IF (LB) THEN 
+                                      !error corrected? (jcp)           
+            CtLhRGG2 = TEM / X 
+            LB   =.FALSE. 
+         Else 
+            CtLhRGG2 = TEM / (1.-X) 
+         EndIf 
+      EndIf 
+      RETURN 
+      END       
+
+                                    
+      SUBROUTINE CtLhPOLIN1 (XA,YA,N,X,Y,DY) 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      PARAMETER (NMAX=10) 
+      DIMENSION XA(N),YA(N),C(NMAX),D(NMAX) 
+      NS=1 
+      DIF=ABS(X-XA(1)) 
+      DO 11 I=1,N 
+        DIFT=ABS(X-XA(I)) 
+        IF (DIFT.LT.DIF) THEN 
+          NS=I 
+          DIF=DIFT 
+        ENDIF 
+        C(I)=YA(I) 
+        D(I)=YA(I) 
+   11 END DO 
+      Y=YA(NS) 
+      NS=NS-1 
+      DO 13 M=1,N-1 
+        DO 12 I=1,N-M 
+          HO=XA(I)-X 
+          HP=XA(I+M)-X 
+          W=C(I+1)-D(I) 
+          DEN=HO-HP 
+          DEN=W/DEN 
+          D(I)=HP*DEN 
+          C(I)=HO*DEN 
+   12   CONTINUE 
+        IF (2*NS.LT.N-M)THEN 
+          DY=C(NS+1) 
+        ELSE 
+          DY=D(NS) 
+          NS=NS-1 
+        ENDIF 
+        Y=Y+DY 
+   13 END DO 
+      RETURN 
+      END       
+
+                                    
+      SUBROUTINE CtLhQARRAY (NINI) 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      PARAMETER (MXX = 105, MXQ = 25, MXF = 6) 
+      PARAMETER (MXPN = MXF * 2 + 2) 
+      PARAMETER (MXQX= MXQ * MXX,   MXPQX = MXQX * MXPN) 
+      COMMON / LhCtQARAY1 / QINI,QMAX, QV(0:MXQ),TV(0:MXQ), NT,JT,NG 
+      COMMON / LhCtQARAY2 / TLN(MXF), DTN(MXF), NTL(MXF), NTN(MXF) 
+      COMMON / LhCtEVLPAC / AL, IKNL, IPD0, IHDN, NfMx 
+      NCNT = 0 
+      IF (NT .GE. mxq) NT = mxq - 1 
+      S = LOG(QINI/AL) 
+      TINI = LOG(S) 
+      S = LOG(QMAX/AL) 
+      TMAX = LOG(S) 
+    1 DT0 = (TMAX - TINI) / float(NT) 
+      NINI = LhCtNFL(QINI) 
+      NFMX = LhCtNFL(QMAX) 
+      Call CtLhParQcd (2, 'ORDER', Ord, Ir) 
+      Call CtLhParQcd (2, 'ALAM', Al0, Ir) 
+      Call CtLhParQcd (2, 'NFL', Afl0, Ir) 
+      AFL = NfMx 
+      Call CtLhParQcd (1, 'NFL', AFL, Ir) 
+      Iordr = Nint (Ord) 
+      Ifl0  = Nint (Afl0) 
+      Call CtLhSetLam (Ifl0, Al0, Iordr) 
+      NG = NFMX - NINI + 1 
+      QIN  = QINI 
+      QOUT = QINI 
+      S = LOG(QIN/AL) 
+      TIN  = LOG(S) 
+      TLN(1) = TIN 
+      NTL(1)  = 0 
+      QV(0) = QINI 
+      TV(0) = Tin 
+      DO 20 NEFF = NINI, NFMX 
+        ICNT = NEFF - NINI + 1 
+        IF (NEFF .LT. NFMX) THEN 
+          THRN = CtLhAMHATF (NEFF + 1) 
+          QOUN = MIN (QMAX, THRN) 
+        Else 
+          QOUN = QMAX 
+        EndIf 
+        IF (QOUN-QOUT .LE. 0.0001) THEN 
+          DT   = 0 
+          NITR = 0 
+        Else 
+          QOUT = QOUN 
+          S = LOG(QOUT/AL) 
+          TOUT = LOG(S) 
+          TEM = TOUT - TIN 
+          NITR = INT (TEM / DT0) + 1 
+          DT  = TEM / NITR 
+        EndIf 
+        DTN (ICNT) = DT 
+        NTN (ICNT) = NITR 
+        TLN (ICNT) = TIN 
+        NTL (ICNT+1) = NTL(ICNT) + NITR 
+        IF (NITR .NE. 0) THEN 
+        DO 205 I = 1, NITR 
+           TV (NTL(ICNT)+I) = TIN + DT * I 
+           S = EXP (TV(NTL(ICNT)+I)) 
+           QV (NTL(ICNT)+I) = AL * EXP (S) 
+  205   CONTINUE 
+        EndIf 
+        QIN = QOUT 
+        TIN = TOUT 
+   20 END DO 
+      NCNT = NCNT + 1 
+      NTP = NTL (NG + 1) 
+      ND  = NTP - NT 
+      IF (NTP .GE. MXQ) THEN 
+         NT = MXQ - ND - NCNT 
+         GOTO 1 
+      EndIf 
+      NT = NTP 
+      RETURN 
+      END       
+
+                                    
+      SUBROUTINE CtLhQCDGET(NAME,VALUE,IRET) 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      CHARACTER*(*) NAME 
+      COMMON / LhCtCWZPRM / ALAM(0:9), AMHAT(0:9), AMN, NHQ 
+      COMMON / LhCtQCDPAR_LHA / AL, NF, NORDER, SET 
+      COMMON / LhCtCOMQMS / VALQMS(9) 
+      LOGICAL SET 
+      PARAMETER (PI=3.141592653589793d0, EULER=0.57721566) 
+      ICODE = LhCtNAMQCD(NAME) 
+      IRET = 1 
+      IF (ICODE .EQ. 1) THEN 
+         VALUE = AL 
+      ELSEIF (ICODE .EQ. 2) THEN 
+         VALUE = NF 
+      ELSEIF ((ICODE .GE. 3) .AND. (ICODE .LE. 12))  THEN 
+         VALUE = VALQMS(ICODE - 2) 
+      ELSEIF ((ICODE .GE. 13) .AND. (ICODE .LE. 13+NF))  THEN 
+         VALUE = ALAM(ICODE - 13) 
+      ELSEIF (ICODE .EQ. 24) THEN 
+         VALUE = NORDER 
+      ELSE 
+         IRET=0 
+      ENDIF 
+      END       
+
+                                    
+      SUBROUTINE CtLhQCDSET (NAME,VALUE,IRET) 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      CHARACTER*(*) NAME 
+      COMMON / LhCtCOMQMS / VALQMS(9) 
+      COMMON / LhCtQCDPAR_LHA / AL, NF, NORDER, SET 
+      LOGICAL SET 
+      PARAMETER (PI=3.141592653589793d0, EULER=0.57721566) 
+      IVALUE = NINT(VALUE) 
+      ICODE  = LhCtNAMQCD(NAME) 
+      IF (ICODE .EQ. 0) THEN 
+         IRET=0 
+!     print *,'warning empty CtLhQCDSET call: NAME=',                   
+!     &                 NAME,' VALUE=',VALUE                            
+      ELSE 
+         IRET = 1 
+         SET = .FALSE. 
+         IF (ICODE .EQ. 1) THEN 
+            IF (VALUE.LE.0) GOTO 12 
+            AL=VALUE 
+         ELSEIF (ICODE .EQ. 2) THEN 
+            IF ( (IVALUE .LT. 0) .OR. (IVALUE .GT. 9)) GOTO 12 
+            NF = IVALUE 
+         ELSEIF ((ICODE .GE. 3) .AND. (ICODE .LE. 11))  THEN 
+            IF (VALUE .LT. 0) GOTO 12 
+            Scle = Min (Value , VALQMS(ICODE - 2)) 
+            AlfScle = CtLhALPI(Scle) * Pi 
+            VALQMS(ICODE - 2) = VALUE 
+            Call CtLhAlfSet (Scle, AlfScle) 
+         ELSEIF ((ICODE .GE. 13) .AND. (ICODE .LE. 13+NF))  THEN 
+            IF (VALUE .LE. 0) GOTO 12 
+            CALL CtLhSETL1 (ICODE-13, VALUE) 
+         ELSEIF (ICODE .EQ. 24)  THEN 
+            IF ((IVALUE .LT. 1) .OR. (IVALUE .GT. 2)) GOTO 12 
+            NORDER = IVALUE 
+         ENDIF 
+         IF (.NOT. SET) CALL CtLhLAMCWZ 
+      ENDIF 
+      RETURN 
+   12 IRET=2 
+      RETURN 
+      END     
+
+                                      
+      FUNCTION CtLhQZBRNT(FUNC, X1, X2, TOLIN, IRT) 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      PARAMETER (ITMAX = 1000, EPS = 3.E-12) 
+      external func 
+      TOL = ABS(TOLIN) 
+      A=X1 
+      B=X2 
+      FA=FUNC(A) 
+      FB=FUNC(B) 
+      IF(FB*FA.GT.0.)  THEN 
+        WRITE (*, *) 'Root must be bracketed for CtLhQZBRNT.' 
+        IRT = 1 
+      ENDIF 
+      FC=FB 
+      DO 11 ITER=1,ITMAX 
+        IF(FB*FC.GT.0.) THEN 
+          C=A 
+          FC=FA 
+          D=B-A 
+          E=D 
+        ENDIF 
+        IF(ABS(FC).LT.ABS(FB)) THEN 
+          A=B 
+          B=C 
+          C=A 
+          FA=FB 
+          FB=FC 
+          FC=FA 
+        ENDIF 
+        TOL1=2.*EPS*ABS(B)+0.5*TOL 
+        XM=.5*(C-B) 
+        IF(ABS(XM).LE.TOL1 .OR. FB.EQ.0.)THEN 
+          CtLhQZBRNT=B 
+          RETURN 
+        ENDIF 
+        IF(ABS(E).GE.TOL1 .AND. ABS(FA).GT.ABS(FB)) THEN 
+          S=FB/FA 
+          IF(A.EQ.C) THEN 
+            P=2.*XM*S 
+            Q=1.-S 
+          ELSE 
+            Q=FA/FC 
+            R=FB/FC 
+            P=S*(2.*XM*Q*(Q-R)-(B-A)*(R-1.)) 
+            Q=(Q-1.)*(R-1.)*(S-1.) 
+          ENDIF 
+          IF(P.GT.0.) Q=-Q 
+          P=ABS(P) 
+          IF(2.*P .LT. MIN(3.*XM*Q-ABS(TOL1*Q),ABS(E*Q))) THEN 
+            E=D 
+            D=P/Q 
+          ELSE 
+            D=XM 
+            E=D 
+          ENDIF 
+        ELSE 
+          D=XM 
+          E=D 
+        ENDIF 
+        A=B 
+        FA=FB 
+        IF(ABS(D) .GT. TOL1) THEN 
+          B=B+D 
+        ELSE 
+          B=B+SIGN(TOL1,XM) 
+        ENDIF 
+        FB=FUNC(B) 
+   11 END DO 
+      WRITE (*, *) 'CtLhQZBRNT exceeding maximum iterations.' 
+      IRT = 2 
+      CtLhQZBRNT=B 
+      RETURN 
+      END       
+
+                                    
+      SUBROUTINE CtLhRATINT(XA,YA,N,X,Y,DY) 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      PARAMETER (NMAX=10,TINY=1.E-25) 
+      DIMENSION XA(N),YA(N),C(NMAX),D(NMAX) 
+      NS=1 
+      HH=ABS(X-XA(1)) 
+      DO 11 I=1,N 
+        H=ABS(X-XA(I)) 
+        IF (H.EQ.0.)THEN 
+          Y=YA(I) 
+          DY=0.0 
+          RETURN 
+        ELSE IF (H.LT.HH) THEN 
+          NS=I 
+          HH=H 
+        ENDIF 
+        C(I)=YA(I) 
+        D(I)=YA(I)+TINY 
+   11 END DO 
+      Y=YA(NS) 
+      NS=NS-1 
+      DO 13 M=1,N-1 
+        DO 12 I=1,N-M 
+          W=C(I+1)-D(I) 
+          H=XA(I+M)-X 
+          T=(XA(I)-X)*D(I)/H 
+          DD=T-C(I+1) 
+          DD=W/DD 
+          D(I)=C(I+1)*DD 
+          C(I)=T*DD 
+   12   CONTINUE 
+        IF (2*NS.LT.N-M)THEN 
+          DY=C(NS+1) 
+        ELSE 
+          DY=D(NS) 
+          NS=NS-1 
+        ENDIF 
+        Y=Y+DY 
+   13 END DO 
+      RETURN 
+      END     
+
+                                      
+      FUNCTION CtLhRTALF (EFLLN) 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      include 'parmsetup.inc' 
+      PARAMETER (PI = 3.141592653589793d0) 
+      COMMON / CtLhRTALFC / ALFST, JORD, NEFF 
+      EFMULM = EXP (EFLLN) 
+      TEM1 = PI / ALFST 
+      TEM2 = 1. / CtLhALPQCD (JORD, NEFF, EFMULM, I) 
+      CtLhRTALF = TEM1 - TEM2 
+      END       
+
+                                    
+      Subroutine CtLhbldat1 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      include 'parmsetup.inc' 
+      LOGICAL LSTX 
+      PARAMETER (MXX = 105, MXQ = 25, MxF = 6) 
+      PARAMETER (MxPN = MxF * 2 + 2) 
+      PARAMETER (MxQX= MXQ * MXX,   MxPQX = MxQX * MxPN) 
+      COMMON / LhCtXXARAY / XCR, XMIN, XV(0:MXX), LSTX, NX 
+      COMMON / LhCtQARAY1 / QINI,QMAX, QV(0:MXQ),TV(0:MXQ), NT,JT,NG 
+      COMMON / LhCtEVLPAC / AL, IKNL, IPD0, IHDN, NfMx 
+      COMMON / LhCtPEVLDT / UPD(MXPQX,nmxset), KF, Nelmt 
+        PARAMETER (NF0 = 4, Nshp = 8,NEX = Nshp+2) 
+      XMIN =  .999999D-4 
+      XCR = 1.5 
+      JT = 1 
+      Return 
+      END       
+
+                                    
+      SUBROUTINE CtLhSETL1  (NEF, VLAM) 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      LOGICAL SET 
+      COMMON / LhCtCWZPRM / ALAM(0:9), AMHAT(0:9), AMN, NHQ 
+      COMMON / LhCtQCDPAR_LHA / AL, NF, NORDER, SET 
+      COMMON / LhCtCOMQMS / VALQMS(9) 
+      IF (NEF .LT. 0 .OR. NEF .GT. NF) THEN 
+        WRITE(*,*)'NEF out of range in CtLhSETL1: NEF NF =',NEF,NF 
+        STOP 
+      ENDIF 
+      AMHAT(0) = 0. 
+      DO 5 N = 1, NF 
+         AMHAT(N) = VALQMS(N) 
+    5    CONTINUE 
+      ALAM(NEF) = VLAM 
+      DO 10 N = NEF, 1, -1 
+         CALL CtLhTRNLAM(NORDER, N, -1, IR1) 
+   10    CONTINUE 
+      DO 20 N = NEF, NF-1 
+         CALL CtLhTRNLAM(NORDER, N, 1, IR1) 
+   20    CONTINUE 
+      DO 30, N = NF, 1, -1 
+         IF ((ALAM(N) .GE. 0.7 * AMHAT(N))                              &
+     &       .OR. (ALAM(N-1) .GE. 0.7 * AMHAT(N)))THEN                  
+            NHQ = NF - N 
+            GOTO 40 
+            ENDIF 
+   30    CONTINUE 
+      NHQ = NF 
+   40 CONTINUE 
+      DO 50, N = NF-NHQ, 1, -1 
+         AMHAT(N) = 0 
+         ALAM(N-1) = ALAM(N) 
+   50    CONTINUE 
+      AMN = ALAM(NF) 
+      DO 60, N = 0, NF-1 
+         IF (ALAM(N) .GT. AMN)  AMN = ALAM(N) 
+   60    CONTINUE 
+      AMN = AMN * 1.0001 
+      AL = ALAM(NF) 
+      SET = .TRUE. 
+      RETURN 
+      END       
+
+                                    
+      SUBROUTINE CtLhSETLAM (NEF, WLAM, IRDR) 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      COMMON / LhCtQCDPAR_LHA / AL, NF, NORDER, SET 
+      LOGICAL SET 
+      IF ((NEF .LT. 0) .OR. (NEF .GT. NF)) THEN 
+         WRITE(*,*)'NEF out of range in CtLhSETLAM: NEF NF=',NEF,NF 
+         STOP 
+      ENDIF 
+      VLAM = WLAM 
+      IF (IRDR .NE. NORDER) then 
+        PRINT *,'fatal error: wanted cnvl1' 
+        stop 
+      ENDIF 
+      CALL CtLhSETL1 (NEF, VLAM) 
+      END       
+
+                                    
+      Subroutine CtLhbldat2 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      COMMON / LhCtCOMQMS / VALQMS(9) 
+      COMMON / LhCtQCDPAR_LHA / AL, NF, NORDER, SET 
+      LOGICAL SET 
+      AL = .226d0 
+      NF = 5 
+      NORDER = 2 
+      SET = .FALSE. 
+      VALQMS(1) =  0. 
+      VALQMS(2) =  0. 
+      VALQMS(3) =  0.2d0 
+      VALQMS(4) =  1.3d0 
+      VALQMS(5) =  4.5d0 
+      VALQMS(6) =  174.d0 
+      VALQMS(7) =  0. 
+      VALQMS(8) =  0. 
+      VALQMS(9) =  0. 
+      Return 
+      END     
+
+                                      
+      FUNCTION CtLhSMPNOL (NX, DX, FN, ERR) 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      DIMENSION FN(NX) 
+      MS = MOD(NX, 2) 
+      IF (NX .LE. 1 .OR. NX .GT. 1000) THEN 
+         PRINT *, 'NX =', NX, ' OUT OF RANGE IN CtLhSMPNOL!' 
+         STOP 
+      ELSEIF (NX .EQ. 2) THEN 
+         TEM = DX * FN(2) 
+      ELSEIF (NX .EQ. 3) THEN 
+         TEM = DX * FN(2) * 2. 
+      ELSE 
+         IF (MS .EQ. 0) THEN 
+            TEM = DX * (23.* FN(2) - 16.* FN(3) + 5.* FN(4)) / 12. 
+            TMP = DX * (3.* FN(2) - FN(3)) / 2. 
+            ERR = ABS(TEM - TMP) 
+            TEM = TEM + CtLhSMPSNA (NX-1, DX, FN(2), ER1) 
+            ERR = ABS(ER1) + ERR 
+         ELSE 
+            TEM = DX * (8.* FN(2) - 4.* FN(3) + 8.* FN(4)) / 3. 
+            TMP = DX * (3.* FN(2) + 2.* FN(3) + 3.* FN(4)) / 2. 
+            ERR = ABS(TEM - TMP) 
+            TEM = TEM + CtLhSMPSNA (NX-4, DX, FN(5), ER1) 
+            ERR = ABS(ER1) + ERR 
+         ENDIF 
+      ENDIF 
+      CtLhSMPNOL = TEM 
+      RETURN 
+      END     
+
+                                      
+      FUNCTION CtLhSMPSNA (NX, DX, F, ERR) 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      PARAMETER (D0=0D0, D1=1D0, D2=2D0, D3=3D0, D4=4D0, D10=1D1) 
+      PARAMETER (MAXX = 1000) 
+      DIMENSION F(NX) 
+      DATA IW1, IW2, TINY / 2*0, 1.E-35 / 
+      IF (DX .LE. 0.) THEN 
+        CALL CtLhWARNR(IW2,'DX cannot be < 0. in CtLhSMPSNA', 'DX',     &
+     &         DX, D0, D1, 0)                                           
+        CtLhSMPSNA = 0. 
+        RETURN 
+      ENDIF 
+      IF (NX .LE. 0 .OR. NX .GT. MAXX) THEN 
+        CALL CtLhWARNI(IW1, 'NX out of range in CtLhSMPSNA', 'NX', NX,  &
+     &               1, MAXX, 1)                                        
+        SIMP = 0. 
+      ELSEIF (NX .EQ. 1) THEN 
+        SIMP = 0. 
+      ELSEIF (NX .EQ. 2) THEN 
+        SIMP = (F(1) + F(2)) / 2. 
+        ERRD = (F(1) - F(2)) / 2. 
+      ELSE 
+        MS = MOD(NX, 2) 
+        IF (MS .EQ. 0) THEN 
+          ADD = (9.*F(NX) + 19.*F(NX-1) - 5.*F(NX-2) + F(NX-3)) / 24. 
+          NZ = NX - 1 
+        ELSE 
+          ADD = 0. 
+          NZ = NX 
+        ENDIF 
+        IF (NZ .EQ. 3) THEN 
+          SIMP = (F(1) + 4.* F(2) + F(3)) / 3. 
+          TRPZ = (F(1) + 2.* F(2) + F(3)) / 2. 
+        ELSE 
+          SE = F(2) 
+          SO = 0 
+          NM1 = NZ - 1 
+          DO 60 I = 4, NM1, 2 
+            IM1 = I - 1 
+            SE = SE + F(I) 
+            SO = SO + F(IM1) 
+   60     CONTINUE 
+          SIMP = (F(1) + 4.* SE + 2.* SO + F(NZ)) / 3. 
+          TRPZ = (F(1) + 2.* (SE + SO) + F(NZ)) / 2. 
+        ENDIF 
+        ERRD = TRPZ - SIMP 
+        SIMP = SIMP + ADD 
+      ENDIF 
+      CtLhSMPSNA = SIMP * DX 
+      IF (ABS(SIMP) .GT. TINY) THEN 
+        ERR = ERRD / SIMP 
+      ELSE 
+        ERR = 0. 
+      ENDIF 
+      RETURN 
+      END       
+
+                                    
+      SUBROUTINE CtLhSNEVL(IKNL,NX,NT,JT,DT,TIN,NEFF,UI,GI,US,GS) 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      PARAMETER (MXX = 105, MXQ = 25, MXF = 6) 
+      PARAMETER (MXQX= MXQ * MXX) 
+      PARAMETER (M1=-3, M2=3, NDG=3, NDH=NDG+1, L1=M1-1, L2=M2+NDG-2) 
+      COMMON / LhCtVARIBX / XA(MXX, L1:L2), ELY(MXX), DXTZ(MXX) 
+      DIMENSION UI(NX), US(0:NX, 0:NT) 
+      DIMENSION GI(NX), GS(0:NX, 0:NT) 
+      DIMENSION Y0(MXX), Y1(MXX), YP(MXX), F0(MXX), F1(MXX), FP(MXX) 
+      DIMENSION Z0(MXX), Z1(MXX), ZP(MXX), G0(MXX), G1(MXX), GP(MXX) 
+      DATA D0 / 0.0 / 
+      JTT = 2 * JT 
+      DDT = DT / JTT 
+      IF (NX .GT. MXX) THEN 
+      WRITE (*,*) 'Nx =', NX, ' too many pts in CtLhSNEVL' 
+      STOP 'Program stopped in CtLhSNEVL' 
+      EndIf 
+! ++ remove unused quantities (jcp)                                     
+! ++  TMD = TIN + DT * NT / 2.                                          
+! ++  AMU = EXP(TMD)                                                    
+! ++  TEM = 6./ (33.- 2.* NEFF) / CtLhALPI(AMU)                         
+! ++  TLAM = TMD - TEM                                                  
+      DO 9 IX = 1, NX 
+      US (IX, 0) = UI(IX) 
+      GS (IX, 0) = GI(IX) 
+    9 END DO 
+      US ( 0, 0) = (UI(1) - UI(2))* 3D0 + UI(3) 
+      GS ( 0, 0) = (GI(1) - GI(2))* 3D0 + GI(3) 
+      TT = TIN 
+      DO 10 IZ = 1, NX 
+      Y0(IZ) = UI(IZ) 
+      Z0(IZ) = GI(IZ) 
+   10 END DO 
+      DO 20 IS = 1, NT 
+         DO 202 JS = 1, JTT 
+            IRND = (IS-1) * JTT + JS 
+            IF (IRND .EQ. 1) THEN 
+                CALL CtLhSNRHS (TT, NEFF, Y0,Z0,  F0,G0) 
+                DO 250 IZ = 1, NX 
+                   Y0(IZ) = Y0(IZ) + DDT * F0(IZ) 
+                   Z0(IZ) = Z0(IZ) + DDT * G0(IZ) 
+  250           CONTINUE 
+                TT = TT + DDT 
+                CALL CtLhSNRHS (TT, NEFF, Y0, Z0,  F1, G1) 
+                DO 251 IZ = 1, NX 
+                   Y1(IZ) = UI(IZ) + DDT * (F0(IZ) + F1(IZ)) / 2D0 
+                   Z1(IZ) = GI(IZ) + DDT * (G0(IZ) + G1(IZ)) / 2D0 
+  251           CONTINUE 
+            Else 
+                CALL CtLhSNRHS (TT, NEFF, Y1, Z1,  F1, G1) 
+                DO 252 IZ = 1, NX 
+                   YP(IZ) = Y1(IZ) + DDT * (3D0 * F1(IZ) - F0(IZ)) / 2D0 
+                   ZP(IZ) = Z1(IZ) + DDT * (3D0 * G1(IZ) - G0(IZ)) / 2D0 
+  252           CONTINUE 
+                TT = TT + DDT 
+                CALL CtLhSNRHS (TT, NEFF, YP, ZP,  FP, GP) 
+                DO 253 IZ = 1, NX 
+                   Y1(IZ) = Y1(IZ) + DDT * (FP(IZ) + F1(IZ)) / 2D0 
+                   Z1(IZ) = Z1(IZ) + DDT * (GP(IZ) + G1(IZ)) / 2D0 
+                   F0(IZ) = F1(IZ) 
+                   G0(IZ) = G1(IZ) 
+  253           CONTINUE 
+            EndIf 
+  202    CONTINUE 
+         DO 260 IX = 1, NX 
+           IF (IKNL .GT. 0) THEN 
+            US (IX, IS) = MAX(Y1(IX), D0) 
+            GS (IX, IS) = MAX(Z1(IX), D0) 
+           Else 
+            US (IX, IS) = Y1(IX) 
+            GS (IX, IS) = Z1(IX) 
+           EndIf 
+  260    CONTINUE 
+         US(0, IS) = 3D0*Y1(1) - 3D0*Y1(2) + Y1(3) 
+         GS(0, IS) = 3D0*Z1(1) - 3D0*Z1(2) + Z1(3) 
+   20 END DO 
+      RETURN 
+      END       
+
+                                    
+      SUBROUTINE CtLhSNRHS (TT, NEFF, FI, GI,  FO, GO) 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      LOGICAL LSTX 
+      PARAMETER (MXX = 105, MXQ = 25, MXF = 6) 
+      PARAMETER (M1=-3, M2=3, NDG=3, NDH=NDG+1, L1=M1-1, L2=M2+NDG-2) 
+      COMMON / LhCtVARIBX / XA(MXX, L1:L2), ELY(MXX), DXTZ(MXX) 
+      COMMON / LhCtXXARAY / XCR, XMIN, XV(0:MXX), LSTX, NX 
+      COMMON / LhCtXYARAY / ZZ(MXX, MXX), ZV(0:MXX) 
+      COMMON / LhCtKRNL01 / AFF2(MXX),AFG2(MXX),AGF2(MXX),AGG2(MXX),    &
+     &                  ANSP (MXX), ANSM (MXX), ZFG2, ZGF2, ZQQB        
+      COMMON / LhCtKRN2ND / FFG(MXX, MXX), GGF(MXX, MXX), PNS(MXX, MXX) 
+      COMMON / LhCtEVLPAC / AL, IKNL, IPD0, IHDN, NfMx 
+      DIMENSION GI(NX), GO(NX), G1(MXX), G2(MXX), G3(MXX), G4(MXX) 
+      DIMENSION FI(NX), FO(NX), W0(MXX), W1(MXX), WH(MXX), WM(MXX) 
+      DIMENSION R0(MXX), R1(MXX), R2(MXX), RH(MXX), RM(MXX) 
+      S = EXP(TT) 
+      Q = AL * EXP (S) 
+      CPL = CtLhALPI(Q) 
+      CPL2= CPL ** 2 / 2. * S 
+      CPL = CPL * S 
+      CALL CtLhINTEGR (NX,-1, FI, WM, IR1) 
+      CALL CtLhINTEGR (NX, 0, FI, W0, IR2) 
+      CALL CtLhINTEGR (NX, 1, FI, W1, IR3) 
+      CALL CtLhINTEGR (NX,-1, GI, RM, IR4) 
+      CALL CtLhINTEGR (NX, 0, GI, R0, IR5) 
+      CALL CtLhINTEGR (NX, 1, GI, R1, IR6) 
+      CALL CtLhINTEGR (NX, 2, GI, R2, IR7) 
+      CALL CtLhHINTEG (NX,    FI, WH) 
+      CALL CtLhHINTEG (NX,    GI, RH) 
+      IF (IKNL .GT. 0) THEN 
+      DO 230 IZ = 1, NX 
+      FO(IZ) = ( 2D0 * FI(IZ)                                           &
+     &      + 4D0 / 3D0 * ( 2D0 * WH(IZ) - W0(IZ) - W1(IZ) ))           &
+     &      + NEFF * ( R0(IZ) - 2D0 * R1(IZ) + 2D0 * R2(IZ) )           
+      FO(IZ) = FO(IZ) * CPL 
+      GO(IZ) = 4D0 / 3D0 * ( 2D0 * WM(IZ) - 2D0 * W0(IZ)  + W1(IZ) )    &
+     &      + (33D0 - 2D0 * NEFF) / 6D0 * GI(IZ)                        &
+     &      + 6D0 * (RH(IZ) + RM(IZ) - 2D0 * R0(IZ) + R1(IZ) - R2(IZ))  
+      GO(IZ) = GO(IZ) * CPL 
+  230 END DO 
+      Else 
+      DO 240 IZ = 1, NX 
+      FO(IZ) = NEFF * (-R0(IZ) + 2.* R1(IZ) )                           &
+     & + 2.* FI(IZ) + 4./ 3.* ( 2.* WH(IZ) - W0(IZ) - W1(IZ) )          
+      FO(IZ) = FO(IZ) * CPL 
+      GO(IZ) = 4./ 3.* ( 2.* W0(IZ) - W1(IZ) )                          &
+     &+ (33.- 2.* NEFF) / 6.* GI(IZ) + 6.*(RH(IZ) + R0(IZ) - 2.* R1(IZ))
+      GO(IZ) = GO(IZ) * CPL 
+  240 END DO 
+      EndIf 
+      IF (IKNL .EQ. 2) THEN 
+      DZ = 1./(NX - 1) 
+      DO 21 I = 1, NX-1 
+        NP = NX - I + 1 
+        IS = NP 
+           g2(1)=0d0 
+           g3(1)=0d0 
+        DO 31 KZ = 2, NP 
+          IY = I + KZ - 1 
+          IT = NX - IY + 1 
+          XY = ZZ (IS, IT) 
+          G1(KZ) = FFG(I, IY) * (FI(IY) - XY**2 *FI(I)) 
+          G4(KZ) = GGF(I, IY) * (GI(IY) - XY**2 *GI(I)) 
+                                                        !FG             
+           G2(KZ) = FFG(IS,IT) * (GI(IY) - xy*GI(I)) 
+                                                        !GF (usual notat
+           G3(KZ) = GGF(IS,IT) * (FI(IY) - XY*FI(I)) 
+   31   CONTINUE 
+        TEM1 = CtLhSMPNOL (NP, DZ, G1, ERR) 
+        TEM2 = CtLhSMPSNA (NP, DZ, G2, ERR) 
+        TEM3 = CtLhSMPSNA (NP, DZ, G3, ERR) 
+        TEM4 = CtLhSMPNOL (NP, DZ, G4, ERR) 
+        TEM1 = TEM1 - FI(I) * (AFF2(I) + ZGF2) 
+        TEM4 = TEM4 - GI(I) * (AGG2(I) + ZFG2) 
+         tem2 = tem2 + GI(I)*AFG2(I) 
+         tem3=  tem3 + FI(I)*AGF2(I) 
+        TMF = TEM1 + TEM2 
+        TMG = TEM3 + TEM4 
+        FO(I) = FO(I) + TMF * CPL2 
+        GO(I) = GO(I) + TMG * CPL2 
+   21 END DO 
+      EndIf 
+      RETURN 
+      END     
+
+                                      
+      FUNCTION CtLhSPENC2 (X) 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      EXTERNAL CtLhSPN2IN 
+      COMMON / LhCtSPENCC / XX 
+      DATA U1, AERR, RERR / 1.D0, 1.E-7, 5.E-3 / 
+      XX = X 
+      TEM = CtLhGausInt(CtLhSPN2IN, XX, U1, AERR, RERR, ERR, IRT) 
+      CtLhSPENC2 = TEM + LOG (XX) ** 2 / 2. 
+      RETURN 
+      END     
+
+                                      
+      FUNCTION CtLhSPN2IN (ZZ) 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      COMMON / LhCtSPENCC / X 
+      Z = ZZ 
+      TEM = LOG (1.+ X - Z) / Z 
+      CtLhSPN2IN = TEM 
+      RETURN 
+      END       
+
+                                    
+      SUBROUTINE CtLhSTUPKL (NFL) 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      LOGICAL LSTX 
+      PARAMETER (D0=0D0, D1=1D0, D2=2D0, D3=3D0, D4=4D0, D10=1D1) 
+      PARAMETER (MXX = 105, MXQ = 25, MXF = 6) 
+      PARAMETER (MX = 3) 
+      PARAMETER (M1=-3, M2=3, NDG=3, NDH=NDG+1, L1=M1-1, L2=M2+NDG-2) 
+      COMMON / LhCtXXARAY / XCR, XMIN, XV(0:MXX), LSTX, NX 
+      COMMON / LhCtXYARAY / ZZ(MXX, MXX), ZV(0:MXX) 
+      COMMON / LhCtVARIBX / XA(MXX, L1:L2), ELY(MXX), DXTZ(MXX) 
+      COMMON / LhCtKRN1ST / FF1(0:MXX),FG1(0:MXX),GF1(0:MXX),GG1(0:MXX),&
+     &                  FF2(0:MXX), FG2(0:MXX), GF2(0:MXX), GG2(0:MXX), &
+     &                  PNSP(0:MXX), PNSM(0:MXX)                        
+      COMMON / LhCtKRN2ND / FFG(MXX, MXX), GGF(MXX, MXX), PNS(MXX, MXX) 
+      COMMON / LhCtKRNL00 / DZ, XL(MX), NNX 
+      COMMON / LhCtKRNL01 / AFF2(MXX),AFG2(MXX),AGF2(MXX),AGG2(MXX),    &
+     &                  ANSP (MXX), ANSM (MXX), ZFG2, ZGF2, ZQQB        
+      EXTERNAL CtLhPFF1, CtLhRGG1, CtLhRFF2, CtLhRGG2 
+      EXTERNAL CtLhFNSP, CtLhFNSM 
+      dimension aff1(mxx),agg1(mxx) 
+      PARAMETER (PI = 3.141592653589793d0, PI2 = PI**2) 
+      DATA CF, CG, TR / 1.33333333333333d0, 3.0, 0.5 / 
+                                              ! zeta(3.0)               
+      data zeta3/1.20205690315959d0/ 
+      SAVE 
+      DATA AERR, RERR / 0.0, 0.02 / 
+      NNX = NX 
+      DZ = 1./ (NX - 1) 
+      DO 5 I0 = 1, MX 
+        XL(I0) = XV(I0) 
+    5 END DO 
+      DO 10 I = 1, NX-1 
+        XZ = XV(I) 
+      CALL CtLhKERNEL (XZ, FF1(I), GF1(I), FG1(I), GG1(I), PNSP(I),     &
+     &          PNSM(I), FF2(I), GF2(I), FG2(I), GG2(I), NFL, IRT)      
+   10 END DO 
+      FF1(0) = FF1(1) * 3. - FF1(2) * 3. + FF1(3) 
+      FG1(0) = FG1(1) * 3. - FG1(2) * 3. + FG1(3) 
+      GF1(0) = GF1(1) * 3. - GF1(2) * 3. + GF1(3) 
+      GG1(0) = GG1(1) * 3. - GG1(2) * 3. + GG1(3) 
+      PNSP(0) = PNSP(1) * 3. - PNSP(2) * 3. + PNSP(3) 
+      PNSM(0) = PNSM(1) * 3. - PNSM(2) * 3. + PNSM(3) 
+      FF2(0) = FF2(1) * 3. - FF2(2) * 3. + FF2(3) 
+      FG2(0) = FG2(1) * 3. - FG2(2) * 3. + FG2(3) 
+      GF2(0) = GF2(1) * 3. - GF2(2) * 3. + GF2(3) 
+      GG2(0) = GG2(1) * 3. - GG2(2) * 3. + GG2(3) 
+      FF1(NX) = FF1(NX-1) * 3. - FF1(NX-2) * 3. + FF1(NX-3) 
+      FG1(NX) = FG1(NX-1) * 3. - FG1(NX-2) * 3. + FG1(NX-3) 
+      GF1(NX) = GF1(NX-1) * 3. - GF1(NX-2) * 3. + GF1(NX-3) 
+      GG1(NX) = GG1(NX-1) * 3. - GG1(NX-2) * 3. + GG1(NX-3) 
+      PNSM(NX) = PNSM(NX-1) * 3. - PNSM(NX-2) * 3. + PNSM(NX-3) 
+      PNSP(NX) = PNSP(NX-1) * 3. - PNSP(NX-2) * 3. + PNSP(NX-3) 
+      FF2(NX) = FF2(NX-1) * 3. - FF2(NX-2) * 3. + FF2(NX-3) 
+      FG2(NX) = FG2(NX-1) * 3. - FG2(NX-2) * 3. + FG2(NX-3) 
+      GF2(NX) = GF2(NX-1) * 3. - GF2(NX-2) * 3. + GF2(NX-3) 
+      GG2(NX) = GG2(NX-1) * 3. - GG2(NX-2) * 3. + GG2(NX-3) 
+         RER = RERR * 4. 
+         AFF1(1) = CtLhGausInt(CtLhPFF1,D0,XV(1),AERR,RERR,ER1,IRT) 
+         DGG1     = NFL / 3. 
+         TMPG     = CtLhGausInt(CtLhRGG1,D0,XV(1),AERR,RERR,ER3,IRT) 
+         AGG1(1) = TMPG + DGG1 
+       ANSM(1) = CtLhGausInt(CtLhFNSM,D0,XV(1),AERR,RER,ER2,IRT) 
+       ANSP(1) = CtLhGausInt(CtLhFNSP,D0,XV(1),AERR,RER,ER2,IRT) 
+         AER = AFF1(1) * RER 
+         AFF2(1) = CtLhGausInt(CtLhRFF2, D0, XV(1),  AER, RER, ER2, IRT) 
+         AER = AGG1(1) * RER 
+         AGG2(1) = CtLhGausInt(CtLhRGG2, D0, XV(1),  AER, RER, ER4, IRT) 
+      DO 20 I2 = 2, NX-1 
+      TEM =CtLhGausInt(CtLhPFF1,XV(I2-1),XV(I2),AERR,RERR,ER1,IRT) 
+      AFF1(I2) = TEM + AFF1(I2-1) 
+      AER = ABS(TEM * RER) 
+      AFF2(I2)=CtLhGausInt(CtLhRFF2,XV(I2-1),XV(I2),AER,RER,ER2,IRT)    &
+     &        +AFF2(I2-1)                                               
+      TEM      = CtLhGausInt(CtLhRGG1,XV(I2-1),XV(I2),AERR,RERR,ER3,IRT) 
+      TMPG     = TMPG + TEM 
+      AGG1(I2) = TMPG + DGG1 
+      AER = ABS(TEM * RER) 
+      AGG2(I2)=CtLhGausInt(CtLhRGG2,XV(I2-1),XV(I2),AER,RER,ER4,IRT)    &
+     &        +AGG2(I2-1)                                               
+      ANSP(I2)=CtLhGausInt(CtLhFNSP,XV(I2-1),XV(I2),AERR,RER,ER4,IRT)   &
+     &        +ANSP(I2-1)                                               
+      ANSM(I2)=CtLhGausInt(CtLhFNSM,XV(I2-1),XV(I2),AERR,RER,ER4,IRT)   &
+     &        +ANSM(I2-1)                                               
+   20 END DO 
+      ANSP(NX)=CtLhGausInt(CtLhFNSP,XV(NX-1),D1,AERR,RER,ERR,           &
+     & IRT) + ANSP(NX-1)                                                
+      ANSM(NX)=CtLhGausInt(CtLhFNSM,XV(NX-1),D1,AERR,RER,ERR,           &
+     & IRT) + ANSM(NX-1)                                                
+           TRNF = TR * NFL 
+                                                          !loop over x  
+      do i2=1,nx-1 
+         x=xv(i2) 
+!        XI = 1./ X                !unused - jcp                        
+         X2 = X ** 2 
+         X3=  x**3 
+         XLN = DLOG (X) 
+         XLN2 = XLN ** 2 
+         XLN1M = DLOG (1.- X) 
+         xLi2m=CtLhxLi(2,-x) 
+         xLi2=CtLhxLi(2,x) 
+         xLi3=CtLhxLi(3,x) 
+         xLi31m=CtLhxLi(3,1d0-x) 
+         xLi32=CtLhxLi(3,x2) 
+         xln1m2=xln1m*xln1m 
+         xln1p=dlog(1d0+x) 
+         x1m=1d0-x 
+         x1p=1d0+x 
+         x3m=3d0-x 
+         x3p=3d0+x 
+         wgfcft=                                                        &
+     & (9 + 4*Pi2 - 22*x + 13*x2 + 6*(3 - 4*x + x2)*xln1m +             &
+     & 40*xln - 24*xLi2)/9.                                             
+       wgfcf2=                                                          &
+     & (6*(2*(-9 + Pi2) + 3*x*(5 + x)) +4*(3 +2*Pi2+3*x*(-3 + 2*x))*    &
+     & xln1m + 6*x3m*x1m*xln1m2 - 6*(x*(8 + 3*x) + 4*xln1m2)*           &
+     & xln - 3*(-4 + x)*x*xln2)/12 - 2*(3 + 2*xln1m)*xLi2 - 4*xLi31m    
+       wgfcfg=                                                          &
+     & (3637-186*Pi2-x*(3198+72*Pi2+x*(231 + 208*x)))/108.- xln +       &
+     & (3*xln1m*(-33 - 4*Pi2 + (50 - 17*x)*x - 3*x3m*x1m*xln1m) +       &
+     & 2*(x*(198 + x*(27+8*x))+9*xln1m*(3 - 4*x + x2 + 2*xln1m))*       &
+     & xln - 9*x*(4 + x)*xln2)/18- x1p*x3p*xln*xln1p-                   &
+     & (x1p*x3p - 4*xln)*xLi2m + (31d0/3d0 +4*xln1m- 4*xln)*xLi2 +      &
+     & 4*xLi31m + 12*xLi3 - 2*xLi32 - 10*zeta3                          
+       wfgcft=                                                          &
+     & (18 - 81*x + 6*Pi2*x + 123*x2 - 6*Pi2*x2 - 60*x3 +               &
+     & 4*Pi2*x3 - 6*(-2 + 3*x - 3*x2 + 2*x3)*xln1m2 -33*x*xln +         &
+     & 15*x2*xln - 24*x3*xln - 9*x*xln2 + 9*x2*xln2 -                   &
+     & 12*x3*xln2 - 12*x1m*xln1m*(-1 + 2*x2 + 2*xln - x*xln +           &
+     & 2*x2*xln) - 24*xLi2)/9.                                          
+       wfgcgt=                                                          &
+     & (2*(-67 + 2*Pi2 + x*(64 + x*(-91 + 3*Pi2 + 94*x)) +              &
+     & x1m*(7+x*(-5+16*x))*xln1m -3*x1m*(2+ x*(-1+2*x))*xln1m2 -        &
+     & 20*xln - 3*x*xln*(13 + 16*x*x1p - 3*x1p*xln) +                   &
+     & 6*x1p*(2+x+2*x2)*xln*xln1p+6*x1p*(2+x+2*x2)*xLi2m))/9.           
+       AGF2(I2) = CF*TRNF*WGFCFT+CF**2* WGFCF2+CF*CG*WGFCFG 
+       AFG2(I2) = CF*TRNF*WFGCFT            +CG*TRNF*WFGCGT 
+            !i2                                                         
+      enddo 
+       AGF2(nx)=0d0 
+       AFG2(nx)=0d0 
+       ZGF2=-28./27.*Cf**2+94./27.*Cf*Cg -52./27.*Cf*TrNf 
+       ZFG2= 37./27.*Cf*TrNf + 35./54.*Cg*TrNf 
+       ZQQB=1.43862321154902*(Cf**2-0.5*Cf*Cg) 
+      DO 21 IX = 1, NX-1 
+        X = XV(IX) 
+        NP = NX - IX + 1 
+        IS = NP 
+        XG2 = (LOG(1./(1.-X)) + 1.) ** 2 
+        FFG (IS, IS) = FG2(NX) * DXTZ(I) * XG2 
+      GGF (IS, IS) = GF2(NX) * DXTZ(I) * XG2 
+      PNS (IS, IS) =PNSM(NX) * DXTZ(I) 
+        DO 31 KZ = 2, NP 
+          IY = IX + KZ - 1 
+          IT = NX - IY + 1 
+          XY = X / XV(IY) 
+          XM1 = 1.- XY 
+          XG2 = (LOG(1./XM1) + 1.) ** 2 
+          Z  = ZZ (IX, IY) 
+          TZ = (Z + DZ) / DZ 
+          IZ = Int(TZ) 
+          IZ = MAX (IZ, 0) 
+          IZ = MIN (IZ, NX-1) 
+          DT = TZ - IZ 
+          TEM = (FF2(IZ) * (1.- DT) + FF2(IZ+1) * DT) / XM1 / XY 
+          FFG (IX, IY) = TEM * DXTZ(IY) 
+          TEM = (FG2(IZ) * (1.- DT) + FG2(IZ+1) * DT) * XG2 / XY 
+          FFG (IS, IT) = TEM * DXTZ(IY) 
+          TEM = (GF2(IZ) * (1.- DT) + GF2(IZ+1) * DT) * XG2 / XY 
+        GGF (IS, IT) = TEM * DXTZ(IY) 
+          TEM = (GG2(IZ) * (1.- DT) + GG2(IZ+1) * DT) / XM1 / XY 
+        GGF (IX, IY) = TEM * DXTZ(IY) 
+        TEM = (PNSP(IZ) * (1.- DT) + PNSP(IZ+1) * DT) / XM1 
+        PNS (IX, IY) = TEM * DXTZ(IY) 
+        TEM = (PNSM(IZ) * (1.- DT) + PNSM(IZ+1) * DT) / XM1 
+        PNS (IS, IT) = TEM * DXTZ(IY) 
+   31   CONTINUE 
+   21 END DO 
+      RETURN 
+      END       
+
+                                    
+      SUBROUTINE CtLhTRNLAM (IRDR, NF, IACT, IRT) 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      COMMON / LhCtCWZPRM / ALAM(0:9), AMHAT(0:9), AMN, NHQ 
+      COMMON / LhCtTRNCOM / VMULM, JRDR, N, N1 
+      EXTERNAL CtLhZBRLAM 
+      DATA ALM0, BLM0, RERR / 0.01, 10.0, 0.0001 / 
+      DATA IR1, SML / 0, 1.E-5 / 
+      IRT = 0 
+      N = NF 
+      JRDR = IRDR 
+      JACT = IACT 
+      VLAM = ALAM(N) 
+      IF (JACT .GT. 0) THEN 
+         N1 = N + 1 
+         THMS = AMHAT(N1) 
+         ALM = LOG (THMS/VLAM) 
+         BLM = BLM0 
+      ELSE 
+         N1 = N -1 
+         THMS = AMHAT(N) 
+         ALM = ALM0 
+         THMS = MAX (THMS, SML) 
+         BLM = LOG (THMS/VLAM) 
+      ENDIF 
+      IF (VLAM .GE. 0.7 * THMS) THEN 
+         IF (JACT .EQ. 1) THEN 
+            AMHAT(N1) = 0 
+         ELSE 
+            AMHAT(N) = 0 
+         ENDIF 
+         IRT = 4 
+         ALAM(N1) = VLAM 
+         RETURN 
+      ENDIF 
+      IF (ALM .GE. BLM) THEN 
+         WRITE (*, *) 'CtLhTRNLAM has ALM >= BLM: ', ALM, BLM 
+         WRITE (*, *) 'I do not know how to continue' 
+         STOP 
+         ENDIF 
+      VMULM = THMS/VLAM 
+      ERR = RERR * LOG (VMULM) 
+      WLLN = CtLhQZBRNT (CtLhZBRLAM, ALM, BLM, ERR, IR1) 
+      ALAM(N1) = THMS / EXP (WLLN) 
+      IF (IR1 .NE. 0) THEN 
+         WRITE (*, *) 'CtLhQZBRNT failed in CtLhTRNLAM; ',              &
+     &        'NF, VLAM =', NF, VLAM                                    
+         WRITE (*, *) 'I do not know how to continue' 
+        STOP 
+      ENDIF 
+      RETURN 
+      END       
+      
+                              
+      SUBROUTINE CtLhUPC (A, La, UpA) 
+      CHARACTER A*(*), UpA*(*), C*(1) 
+      INTEGER I, La, Ld 
+      La = Len(A) 
+      Lb = Len(UpA) 
+      If (Lb .Lt. La) Stop 'UpCase conversion length mismatch!' 
+      Ld = ICHAR('A')-ICHAR('a') 
+      DO 1 I = 1, Lb 
+        If (I .Le. La) Then 
+         c = A(I:I) 
+         IF ( LGE(C, 'a') .AND. LLE(C, 'z') ) THEN 
+           UpA (I:I) = CHAR(Ichar(c) + ld) 
+         Else 
+           UpA (I:I) = C 
+         ENDIF 
+        Else 
+         UpA (I:I) = ' ' 
+        Endif 
+    1 END DO 
+                                                                        
+      RETURN 
+      END       
+
+                                    
+      SUBROUTINE CtLhWARNI (IWRN, MSG, NMVAR, IVAB,                     &
+     &                  IMIN, IMAX, IACT)                               
+      CHARACTER*(*) MSG, NMVAR 
+      Save Iw 
+      Data Nmax / 100 / 
+      IW = IWRN 
+      IV = IVAB 
+                                                                        
+      IF  (IW .EQ. 0) THEN 
+         PRINT '(1X,A/1X, 2A,I10)', MSG, NMVAR,' = ', IV 
+         IF (IACT .EQ. 1) THEN 
+         PRINT '(A/2I10)', ' The limits are: ', IMIN, IMAX 
+         ENDIF 
+      ENDIF 
+      If (Iw .LT. Nmax) Then 
+         PRINT '(1X,A/1X, 2A,I10)', MSG, NMVAR,' = ', IV 
+      Elseif (Iw .Eq. Nmax) Then 
+         Print '(/A/)', 'CtLhWARNI Severe Warning: Too many errors' 
+      Endif 
+      IWRN = IW + 1 
+      RETURN 
+      END       
+
+                                    
+      SUBROUTINE CtLhWARNR (IWRN, MSG, NMVAR, VARIAB,                   &
+     &                  VMIN, VMAX, IACT)                               
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      PARAMETER (D0=0D0, D1=1D0, D2=2D0, D3=3D0, D4=4D0, D10=1D1) 
+      CHARACTER*(*) MSG, NMVAR 
+      Save Iw 
+!      Data Nmax / 100 /                                                
+      Data Nmax / 10 / 
+      IW = IWRN 
+      VR = VARIAB 
+      IF  (IW .EQ. 0) THEN 
+         PRINT '(1X, A/1X,2A,1PD16.7)', MSG, NMVAR, ' = ', VR 
+         IF (IACT .EQ. 1) THEN 
+         PRINT       '(A/2(1PE15.4))', ' The limits are: ', VMIN, VMAX 
+         ENDIF 
+      ENDIF 
+      If (Iw .LT. Nmax) Then 
+         PRINT '(I5, 2A/1X,2A,1PD16.7)', IW, '   ', MSG,                &
+     &                  NMVAR, ' = ', VR                                
+      Elseif (Iw .Eq. Nmax) Then 
+         Print '(/A/)', 'CtLhWARNR Severe Warning: Too many errors' 
+      Endif 
+      IWRN = IW + 1 
+      RETURN 
+      END       
+
+                                    
+      SUBROUTINE CtLhXARRAY 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      LOGICAL LSTX 
+      PARAMETER (D0 = 0.0, D10=10.0) 
+      PARAMETER (MXX = 105, MXQ = 25, MXF = 6) 
+      PARAMETER (MXPN = MXF * 2 + 2) 
+      PARAMETER (MXQX= MXQ * MXX,   MXPQX = MXQX * MXPN) 
+      PARAMETER (M1=-3, M2=3, NDG=3, NDH=NDG+1, L1=M1-1, L2=M2+NDG-2) 
+      Character Msg*80 
+      COMMON / LhCtVARIBX / XA(MXX, L1:L2), ELY(MXX), DXTZ(MXX) 
+      COMMON / LhCtVARBAB / GB(NDG, NDH, MXX), H(NDH, MXX, M1:M2) 
+      COMMON / LhCtHINTEC / GH(NDG, MXX) 
+      COMMON / LhCtXXARAY / XCR, XMIN, XV(0:MXX), LSTX, NX 
+      COMMON / LhCtXYARAY / ZZ(MXX, MXX), ZV(0:MXX) 
+      DIMENSION G1(NDG,NDH), G2(NDG,NDH), A(NDG) 
+      DATA F12, F22, F32 / 1D0, 1D0, 1D0 / 
+      DATA (G1(I,NDH), G2(I,1), I=1,NDG) / 0.0,0.0,0.0,0.0,0.0,0.0 / 
+      DATA PUNY / 1D-30 / 
+      XV(0) = 0D0 
+      DZ = 1D0 / (NX-1) 
+      DO 10 I = 1, NX - 1 
+         Z = DZ * (I-1) 
+         ZV(I) = Z 
+         X = CtLhXFRMZ (Z) 
+         DXTZ(I) = CtLhDXDZ(Z) / X 
+         XV (I)  = X 
+         XA(I, 1) = X 
+         XA(I, 0) = LOG (X) 
+         DO 20 L = L1, L2 
+          IF (L .NE. 0 .AND. L .NE. 1)  XA(I, L) = X ** L 
+   20    CONTINUE 
+   10 END DO 
+         XV(1) = Xmin 
+         XV(NX) = 1D0 
+         ZV(Nx) = 1D0 
+         DXTZ(NX) = CtLhDXDZ(1.D0) 
+         DO 21 L = L1, L2 
+            XA (NX, L) = 1D0 
+   21    CONTINUE 
+         XA (NX, 0) = 0D0 
+      DO 11 I = 1, NX-1 
+         ELY(I) = LOG(1D0 - XV(I)) 
+   11 END DO 
+       ELY(NX) = 3D0* ELY(NX-1) - 3D0* ELY(NX-2) + ELY(NX-3) 
+      DO 17 IX = 1, NX 
+      ZZ (IX, IX) = 1. 
+      DO 17 IY = IX+1, NX 
+         XY = XV(IX) / XV(IY) 
+         ZZ (IX, IY) = CtLhZFRMX (XY) 
+         ZZ (NX-IX+1, NX-IY+1) = XY 
+   17 CONTINUE 
+      DO 30 I = 1, NX-1 
+      IF (I .NE. NX-1) THEN 
+        F11 = 1D0/XV(I) 
+        F21 = 1D0/XV(I+1) 
+        F31 = 1D0/XV(I+2) 
+        F13 = XV(I) 
+        F23 = XV(I+1) 
+        F33 = XV(I+2) 
+        DET = F11*F22*F33 + F21*F32*F13 + F31*F12*F23                   &
+     &      - F31*F22*F13 - F21*F12*F33 - F11*F32*F23                   
+        IF (ABS(DET) .LT. PUNY) THEN 
+           Msg='Determinant close to zero; will be arbitrarily set to:' 
+           CALL CtLhWARNR(IWRN, Msg, 'DET', PUNY, D0, D0, 0) 
+           DET = PUNY 
+        EndIf 
+        G2(1,2) = (F22*F33 - F23*F32) / DET 
+        G2(1,3) = (F32*F13 - F33*F12) / DET 
+        G2(1,4) = (F12*F23 - F13*F22) / DET 
+        G2(2,2) = (F23*F31 - F21*F33) / DET 
+        G2(2,3) = (F33*F11 - F31*F13) / DET 
+        G2(2,4) = (F13*F21 - F11*F23) / DET 
+        G2(3,2) = (F21*F32 - F22*F31) / DET 
+        G2(3,3) = (F31*F12 - F32*F11) / DET 
+        G2(3,4) = (F11*F22 - F12*F21) / DET 
+        B2 = LOG (XV(I+2)/XV(I)) 
+        B3 = XV(I) * (B2 - 1.) + XV(I+2) 
+        GH (1,I) = B2 * G2 (2,2) + B3 * G2 (3,2) 
+        GH (2,I) = B2 * G2 (2,3) + B3 * G2 (3,3) 
+        GH (3,I) = B2 * G2 (2,4) + B3 * G2 (3,4) 
+      EndIf 
+        DO 51 J = 1, NDH 
+           DO 52 L = 1, NDG 
+              IF     (I .EQ. 1) THEN 
+                 GB(L,J,I) = G2(L,J) 
+              ElseIF (I .EQ. NX-1) THEN 
+                 GB(L,J,I) = G1(L,J) 
+              Else 
+                 GB(L,J,I) = (G1(L,J) + G2(L,J)) / 2D0 
+              EndIf 
+   52      CONTINUE 
+   51   CONTINUE 
+        DO 35 MM = M1, M2 
+           DO 40 K = 1, NDG 
+             KK = K + MM - 2 
+             IF (KK .EQ. 0) THEN 
+               A(K) = XA(I+1, 0) - XA(I, 0) 
+             Else 
+               A(K) = (XA(I+1, KK) - XA(I, KK)) / DBLE(KK) 
+             EndIf 
+   40      CONTINUE 
+           DO 41 J = 1, NDH 
+             TEM = 0 
+             DO 43 L = 1, NDG 
+               TEM = TEM + A(L) * GB(L,J,I) 
+   43        CONTINUE 
+             H(J,I,MM) = TEM 
+   41      CONTINUE 
+   35   CONTINUE 
+      DO 42 J = 1, NDG 
+        DO 44 L = 1, NDG 
+           G1(L,J) = G2(L,J+1) 
+   44 END DO 
+   42 END DO 
+   30 END DO 
+      LSTX = .TRUE. 
+      RETURN 
+      END     
+
+                                      
+      FUNCTION CtLhXFRMZ (Z) 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      LOGICAL LSTX 
+      PARAMETER (D0=0D0, D1=1D0, D2=2D0, D3=3D0, D4=4D0, D10=1D1) 
+      PARAMETER (MXX = 105) 
+      COMMON / LhCtXXARAY / XCR, XMIN, XV(0:MXX), LSTX, NX 
+      COMMON / LhCtINVERT / ZA 
+      EXTERNAL CtLhZFXL 
+      DATA TEM, RER / D1, 1E-3 / 
+      DATA ZLOW, ZHIGH, IWRN2 / -10.0, 1.00002, 0 / 
+      EPS = TEM * RER 
+      ZA = Z 
+      IF (Z .LE. ZHIGH .AND. Z .GT. ZLOW) THEN 
+          XLA = LOG (XMIN) * 1.5 
+          XLB = 0.00001 
+          TEM = CtLhZBRNT (CtLhZFXL, XLA, XLB, EPS, IRT) 
+      Else 
+        CALL CtLhWARNR (IWRN2, 'Z out of range in CtLhXFRMZ, X set=0.', &
+     &              'Z', Z, ZLOW, ZHIGH, 1)                             
+        TEM = 0 
+      EndIf 
+      CtLhXFRMZ = EXP(TEM) 
+      RETURN 
+      END     
+
+                                      
+      FUNCTION CtLhxLi(n,x) 
+      implicit NONE 
+      integer NCUT, i,n,m3 
+      real*8 CtLhxLi,Out,x,pi2by6,zeta3,c1,c2 
+      real*8 r,xt,L,xln1m 
+      parameter (m3=8) 
+      dimension c1(2:m3),c2(2:m3) 
+      data NCUT/27/ 
+      data c1/0.75,-0.5833333333333333d0,0.454861111111111d0,           &
+     &        -0.3680555555555555d0,0.3073611111111111d0,               &
+     &        -0.2630555555555555d0,0.2294880243764172d0/               
+      data c2/-0.5d0,0.5d0,-0.4583333333333333d0,0.416666666666666d0,   &
+     &        -0.3805555555555555d0,0.35d0,-0.3241071428571428d0/       
+      data zeta3,pi2by6 /1.20205690315959d0,1.64493406684823d0/ 
+      L=0.0 
+      i=0 
+      r=1.0 
+      if (abs(x).gt.r) then 
+        PRINT *,'Li: x out of range (-1,1) , x=',x 
+        STOP 
+      endif 
+      if (n.lt.0) then 
+       PRINT *,'Polylogarithm Li undefined for n=',n 
+       STOP 
+      elseif (n.eq.0) then 
+       Out=x/(1d0-x) 
+      elseif (n.eq.1) then 
+       Out=-dlog(1-x) 
+      elseif (n.eq.2) then 
+                                                !Calculate dilogarithm  
+                                                !separately for x<0.5 an
+      if (x.ge.(-0.5).and.x.le.0.5) then 
+         do while(i.le.NCUT) 
+                 i=i+1 
+          r=r*x 
+          L=L+r/i/i 
+         enddo 
+         Out=L 
+       elseif (x.eq.0) then 
+         Out=0d0 
+                             !n.eq.2,x>0.5                              
+       elseif(x.gt.0.5) then 
+         xt = 1.0-x 
+         L = pi2by6 - dlog(x)*dlog(xt) 
+         do while(i.le.NCUT) 
+          i=i+1 
+          r=r*xt 
+          L=L-r/i/i 
+         enddo 
+         Out=L 
+       elseif (x.lt.(-0.5)) then 
+         xt=-x/(1d0-x) 
+         L=-0.5*dlog(1-x)**2 
+         do while (i.le.NCUT) 
+          i=i+1 
+          r=r*xt 
+          L=L-r/i/i 
+         enddo 
+         Out=L 
+       endif 
+                                        !use the expansion of Li3 near x
+      elseif (n.eq.3.and.x.ge.0.8) then 
+       L=zeta3+pi2by6*dlog(x) 
+       xt=(1d0-x) 
+       xln1m=dlog(xt) 
+       do i=2,m3 
+        L=L+(c1(i)+c2(i)*xln1m)*xt**i 
+       enddo 
+       Out=L 
+           !n>3 or x=3,x<0.8                                            
+      else 
+         do while(i.le.NCUT) 
+          i=i+1 
+          r=r*x 
+          L=L+r/dble(i)**dble(n) 
+         enddo 
+         Out=L 
+      endif 
+      CtLhxLi=Out 
+          ! CtLhxLi                                                     
+      END     
+
+                                      
+      FUNCTION CtLhZBRLAM (WLLN) 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      COMMON / LhCtTRNCOM / VMULM, JRDR, N, N1 
+      WMULM = EXP (WLLN) 
+      TEM1 = 1./ CtLhALPQCD(JRDR, N1, WMULM, I) 
+      TEM2 = 1./ CtLhALPQCD(JRDR, N,  VMULM, I) 
+      CtLhZBRLAM = TEM1 - TEM2 
+      END     
+
+                                      
+      FUNCTION CtLhZBRNT(FUNC, X1, X2, TOL, IRT) 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      PARAMETER (ITMAX = 1000, EPS = 3.E-12) 
+      external func 
+      IRT = 0 
+      TOL = ABS(TOL) 
+      A=X1 
+      B=X2 
+      FA=FUNC(A) 
+      FB=FUNC(B) 
+      IF(FB*FA.GT.0.)  THEN 
+        PRINT *, 'Root must be bracketed for CtLhZBRNT. Set = 0' 
+        IRT = 1 
+        CtLhZBRNT=0. 
+        RETURN 
+      ENDIF 
+      FC=FB 
+      DO 11 ITER=1,ITMAX 
+        IF(FB*FC.GT.0.) THEN 
+          C=A 
+          FC=FA 
+          D=B-A 
+          E=D 
+        ENDIF 
+        IF(ABS(FC).LT.ABS(FB)) THEN 
+          A=B 
+          B=C 
+          C=A 
+          FA=FB 
+          FB=FC 
+          FC=FA 
+        ENDIF 
+        TOL1=2.*EPS*ABS(B)+0.5*TOL 
+        XM=.5*(C-B) 
+        IF(ABS(XM).LE.TOL1 .OR. FB.EQ.0.)THEN 
+          CtLhZBRNT=B 
+          RETURN 
+        ENDIF 
+        IF(ABS(E).GE.TOL1 .AND. ABS(FA).GT.ABS(FB)) THEN 
+          S=FB/FA 
+          IF(A.EQ.C) THEN 
+            P=2.*XM*S 
+            Q=1.-S 
+          ELSE 
+            Q=FA/FC 
+            R=FB/FC 
+            P=S*(2.*XM*Q*(Q-R)-(B-A)*(R-1.)) 
+            Q=(Q-1.)*(R-1.)*(S-1.) 
+          ENDIF 
+          IF(P.GT.0.) Q=-Q 
+          P=ABS(P) 
+          IF(2.*P .LT. MIN(3.*XM*Q-ABS(TOL1*Q),ABS(E*Q))) THEN 
+            E=D 
+            D=P/Q 
+          ELSE 
+            D=XM 
+            E=D 
+          ENDIF 
+        ELSE 
+          D=XM 
+          E=D 
+        ENDIF 
+        A=B 
+        FA=FB 
+        IF(ABS(D) .GT. TOL1) THEN 
+          B=B+D 
+        ELSE 
+          B=B+SIGN(TOL1,XM) 
+        ENDIF 
+        FB=FUNC(B) 
+   11 END DO 
+      PRINT *, 'CtLhZBRNT exceeding maximum iterations.' 
+      IRT = 2 
+      CtLhZBRNT=B 
+      RETURN 
+      END     
+
+                                      
+      FUNCTION CtLhZFRMX (XX) 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      LOGICAL LSTX 
+      PARAMETER (D0=0D0, D1=1D0, D2=2D0, D3=3D0, D4=4D0, D10=1D1) 
+      PARAMETER (MXX = 105) 
+      COMMON / LhCtXXARAY / XCR, XMIN, XV(0:MXX), LSTX, NX 
+      DATA IWRN1, HUGE, TINY / 0, 1.E35, 1.E-35 / 
+      F(X) = (XCR-XMIN) * LOG (X/XMIN) + LOG (XCR/XMIN) * (X-XMIN) 
+      D(X) = (XCR-XMIN) / X          + LOG (XCR/XMIN) 
+      X = XX 
+      IF (X .GE. XMIN) THEN 
+         TEM = F(X) / F(D1) 
+      ElseIF (X .GE. D0) THEN 
+         X = MAX (X, TINY) 
+         TEM = F(X) / F(D1) 
+      Else 
+         CALL CtLhWARNR(IWRN1, 'X out of range in CtLhZFRMX'            &
+     &             , 'X', X, TINY, HUGE, 1)                             
+         TEM = 99. 
+         STOP 
+      EndIf 
+      CtLhZFRMX = TEM 
+      RETURN 
+      ENTRY CtLhDZDX (XX) 
+      X = XX 
+      IF (X .GE. XMIN) THEN 
+         TEM = D(X) / F(D1) 
+      ElseIF (X .GE. D0) THEN 
+         X = MAX (X, TINY) 
+         TEM = D(X) / F(D1) 
+      Else 
+         CALL CtLhWARNR(IWRN1, 'X out of range in CtLhDZDX '            &
+     &             , 'X', X, TINY, HUGE, 1)                             
+         TEM = 99. 
+         STOP 
+      EndIf 
+      CtLhDZDX = TEM 
+      RETURN 
+      END     
+
+                                      
+      FUNCTION CtLhZFXL (XL) 
+      IMPLICIT DOUBLE PRECISION (A-H, O-Z) 
+      COMMON / LhCtINVERT / ZA 
+      X = EXP(XL) 
+      TT = CtLhZFRMX (X) - ZA 
+      CtLhZFXL = TT 
+      RETURN 
+      END                                           
diff --git a/LHAPDF/lhapdf5.5.1/src/LHpdflib.f b/LHAPDF/lhapdf5.5.1/src/LHpdflib.f
new file mode 100644 (file)
index 0000000..cc6c3ad
--- /dev/null
@@ -0,0 +1,324 @@
+! -*- F90 -*-
+
+
+! Initialize a PDF set, determining the path to the PDF set directory automatically
+! subroutine InitPDFsetByCodes(code1, code2, code3)
+!   write(*,*) "Not implemented yet: this will move the 'glue' interface to ", &
+!        "LHAPDF proper and use the InitPDFsetByName function to ", &
+!        "get the path automatically."
+!   return
+! end subroutine InitPDFsetByCodes
+
+
+
+! Initialize a PDF set, determining the path to the PDF set
+! directory automatically
+subroutine InitPDFsetByName(setname)
+  implicit none
+  character setname*(*)
+  integer nset
+  nset = 1
+  call commoninit()
+  call InitPDFsetByNameM(nset,setname)
+  return
+end subroutine InitPDFsetByName
+
+      
+
+! Initialize a PDF set, determining the path to the PDF set
+! directory automatically
+subroutine InitPDFsetByNameM(nset,setname)
+  implicit none
+  include 'parmsetup.inc'
+  include 'commonlhapdfc.inc'
+  include 'commonlhacontrol.inc'
+  character setname*(*)
+  integer nset
+  character*512 dirpath, setpath
+
+  ! Initialise common blocks  
+  call commoninit()
+
+  ! Find the directory with the PDFsets
+  call getdirpath(dirpath)
+
+  ! Now build the path to the PDF set
+  setpath = dirpath(:len_trim(dirpath)) // "/" // setname(:len_trim(setname))
+
+  ! Initialize using the detected PDF set
+  call InitPDFsetM(nset, setpath(:len_trim(setpath)))
+  return
+end subroutine InitPDFsetByNameM
+
+
+
+subroutine InitPDFset(setpath)
+  implicit none
+  integer nset
+  character setpath*(*)
+  nset = 1
+  call commoninit()
+  call InitPDFsetM(nset,setpath)
+  return
+end subroutine InitPDFset
+
+
+subroutine InitLHAPDF()
+  call commoninit()
+end subroutine InitLHAPDF
+
+
+subroutine InitPDFsetM(nset,setpath)
+  implicit none
+  include 'parmsetup.inc'
+  include 'commonlhacontrol.inc'
+  character setpath*(*)
+  character*512 inputfile
+  character*64 string
+  character*16 s1,s2
+  character*10 lhaversion
+  integer id,token,Ctoken
+  integer lhaonce
+  save lhaonce,inputfile
+  data lhaonce/0/
+  integer lhasilent
+  common/lhasilent/lhasilent
+  integer nset
+
+  ! Initialise common blocks  
+  call commoninit()
+  call getlhapdfversion(lhaversion)
+  
+  inputfile=setpath
+  lhasilent = 0
+  if (lhaparm(19).eq.'SILENT') then
+     lhasilent = 1
+  elseif (lhaparm(19).eq.'LOWKEY') then
+     if (lhaonce .eq. 0) then
+        lhaonce = 1
+     else
+        lhasilent = 1
+     endif
+  endif
+  
+  call setnset(nset)
+  open(unit=1,file=setpath,status='old')
+  read(1,*) s1,s2
+  if ((    index(s2,'1.0').ne.1) &
+     .and.(index(s2,'1.1').ne.1) &
+     .and.(index(s2,'2.0').ne.1) &
+     .and.(index(s2,'2.1').ne.1) &
+     .and.(index(s2,'3.0').ne.1) &
+     .and.(index(s2,'3.1').ne.1) &
+     .and.(index(s2,'4.0').ne.1) &
+     .and.(index(s2,'5.0').ne.1) &
+     .and.(index(s2,'5.3').ne.1) &
+     .and.(index(s2,'5.4').ne.1) & 
+     .and.(index(s2,'5.5').ne.1)) then
+     write(*,*) 'Version ',s2,' not supported by this version of LHAPDF'
+     stop
+  else  
+     if (lhasilent.eq.0) then
+        write(*,*) '*************************************'
+        write(*,*) '*       LHAPDF Version ',lhaversion,'   *'
+        write(*,*) '*************************************'
+        write(*,*)
+     endif
+  endif
+  id=Ctoken()
+1 read(1,*) string
+  id=token(string)
+  ! print *,'id = ',id,string
+  if (id.eq.0) then
+     write(*,*) 'File description error:'
+     write(*,*) 'Command not understood: ',string
+     stop
+  endif
+  if (id.eq.1) call descriptionPDF(nset,id)
+  ! print *,'1/2'
+  if (id.eq.2) call initEvolve(nset)
+  ! print *,'2/3'
+  if (id.eq.3) call initAlphasPDF(nset)
+  ! print *,'3/4'
+  if (id.eq.4) call initInputPDF(nset)
+  ! print *,'4/5'
+  if (id.eq.5) call initListPDF(nset)
+  ! print *,'5/6'
+  if (id.eq.6) call initQCDparams(nset)
+  ! print *,'6/7'
+  if (id.eq.7) call initMinMax(nset)
+  ! print *,'7/8'
+  if (id.ne.8) goto 1
+  close(1)
+  ! print *,'calling InitEvolveCode',nset
+  call InitEvolveCode(nset)
+
+  ! Initialize the default member 0
+  call InitPDFM(nset,0)
+
+  return
+  entry getsetpath(setpath)
+    setpath=inputfile
+  return
+
+end subroutine InitPDFsetM
+
+
+    
+integer function token(s)
+  implicit none
+  character*16 s
+  integer not,i,Ctoken
+  parameter(not=8)
+  character*16 t(not)
+  data t/'Description:','Evolution:','Alphas:', 'Parametrization:', &
+       'Parameterlist:','QCDparams:','MinMax:','End:'/
+  integer count(not)
+  save count
+
+  token=0
+  do i=1,not
+     if (s.eq.t(i)) token=i
+  enddo
+  if (token.ne.0) then
+     count(token)=count(token)+1
+     if (count(token).eq.2) then
+        write(*,*) 'File description error:'
+        write(*,*) 'Second definition of entry: ',s
+        stop
+     endif
+  endif
+  return
+
+  entry Ctoken()
+  do i=1,not
+     count(i)=0
+  enddo
+  Ctoken=0
+  return
+end function token
+
+
+
+subroutine LHAprint(iprint)
+  implicit none
+  include 'commonlhacontrol.inc'
+  integer lhasilent,iprint
+  common/lhasilent/lhasilent
+  call commoninit()
+  lhasilent = iprint
+  ! If using stream #6, don't silence!
+  if(iprint.ne.6) lhaparm(19)='SILENT'
+  return
+end subroutine LHAprint
+
+
+
+subroutine setPDFpath(pathname)
+  implicit none
+  include 'commonlhapdfc.inc'
+  include 'commonlhacontrol.inc'
+  include 'parmsetup.inc'
+  character*(*) pathname
+  integer j
+
+  call commoninit()
+  lhaparm(20) = 'LHAPATH'
+  do j=1,len_trim(lhapath)
+     lhapath(j:j)=''
+  enddo
+  lhapath = pathname
+  return
+end subroutine setPDFpath
+
+
+
+subroutine lhaset(lhaparm2,lhavalue2)
+  implicit none
+  include 'commonlhacontrol.inc'
+  character*20 lhaparm2(20)
+  double precision lhavalue2(20)
+  integer j
+
+  call commoninit()
+  do j=1,20
+     lhaparm(j)=lhaparm2(j)
+     lhavalue(j)=lhavalue2(j)
+  enddo
+  return
+end subroutine lhaset
+
+
+
+subroutine setlhaparm(lparm)
+  implicit none
+  include 'commonlhacontrol.inc'
+  character*(*) lparm
+  integer nparm
+
+  call commoninit()
+
+  if(lparm.eq.'EKS98') then
+     lhaparm(15)='EKS98'
+  else if(lparm.eq.'EPS08') then
+     lhaparm(15)='EPS08'
+  else if(lparm.eq.'15') then
+     lhaparm(15)=''
+  else if(lparm.eq.'NOSTAT') then
+     lhaparm(16)='NOSTAT'
+  else if (lparm.eq.'16') then
+     lhaparm(16)=''
+  else if (lparm.eq.'LHAPDF') then
+     lhaparm(17)='LHAPDF'
+  else if (lparm.eq.'17') then
+     lhaparm(17)=''
+  else if (lparm.eq.'EXTRAPOLATE') then
+     lhaparm(18)='EXTRAPOLATE'
+  else if (lparm.eq.'18') then
+     lhaparm(18)=''
+  else if (lparm.eq.'SILENT') then
+     lhaparm(19)='SILENT'
+  else if (lparm.eq.'LOWKEY') then
+     lhaparm(19)='LOWKEY'
+  else if (lparm.eq.'19') then
+     lhaparm(19)=''
+  else
+     print *,'WARNING from SetLHAPARM - value',lparm,'not recognized!'
+  endif
+  return
+  
+  entry getlhaparm(nparm,lparm)
+  lparm = lhaparm(nparm)
+  return
+end subroutine setlhaparm
+
+
+
+subroutine getdirpath(dirpath)
+  ! This routine is to determine the directory path for the PDFsets
+  ! directory. It has a two-fold purpose: 
+  ! 1) to return the value as an argument in dirpath for the native 
+  !    LHAPDF use (ie via initPDFSetByName
+  ! 2) to fill the value of lhapath in the LHAPDFC common for use in 
+  !    lhaglue.
+  implicit none
+  include 'commonlhapdfc.inc'
+  include 'commonlhacontrol.inc'
+  include 'parmsetup.inc'
+  character*(*) dirpath
+  
+  ! First look in the LHAPDFC array (lhaparm(20), set by setPDFpath).
+  ! Next, check environmental variable LHAPATH.
+  ! Finally, use binreloc via getdatapath(...).
+  ! Will use default path if this all fails.
+  if (lhaparm(20) /= 'LHAPATH') then
+     call getenv('LHAPATH', lhapath)
+     !call get_environment_variable('LHAPATH',lhapath)
+     if (lhapath.eq.'') then
+        call getdatapath(dirpath)
+        lhapath = dirpath
+     endif
+  endif
+  dirpath = lhapath 
+  return
+end subroutine getdirpath
diff --git a/LHAPDF/lhapdf5.5.1/src/QCDNUM.f b/LHAPDF/lhapdf5.5.1/src/QCDNUM.f
new file mode 100644 (file)
index 0000000..82f0400
--- /dev/null
@@ -0,0 +1,27003 @@
+! -*- F90 -*-
+
+
+!DECK  ID>, QCDCOM.                                                     
+                                                                        
+!DECK  ID>, QCDCOM.                                                     
+                                                                        
+!------------------------QCDNUM COMMON BLOCKS---------------------      
+                                                                        
+!DECK  ID>, QCDNUM.                                                     
+                                                                        
+!DECK  ID>, QNINIT.                                                     
+                                                                        
+!     =================                                                 
+      SUBROUTINE QNINIT 
+!     =================                                                 
+                                                                        
+!---  QNINIT: initialisation.                                           
+!---  Called by user.                                                   
+                                                                        
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z) 
+                                                                        
+      CHARACTER*8 CHVERS,CHDATE 
+      COMMON/QCVERS/ CHVERS,CHDATE 
+                                                                        
+                                                                        
+      COMMON/QCCONS/                                                    &
+     &PI,PROTON,EUTRON,UCLEON,UDSCBT(6),AAM2H,BBM2H,AAM2L,BBM2L,        &
+     &AAAR2,BBBR2,FL_FAC,CBMSTF(4:7),CHARGE(4:7),                       &
+     &C1S3,C2S3,C4S3,C5S3,C8S3,C11S3,C14S3,C16S3,C20S3,C22S3,C28S3,     &
+     &C38S3,C40S3,C44S3,C52S3,C136S3,C11S6,C2S9,C4S9,C10S9,C14S9,C16S9, &
+     &C40S9,C44S9,C62S9,C112S9,C182S9,C11S12,C35S18,C61S12,C215S1,      &
+     &C29S12,CPI2S3,CPIA,CPIB,CPIC,CPID,CPIE,CPIF,CCA,CCF,CTF,CATF,CFTF 
+                                                                        
+                                                                        
+                                                                        
+      LOGICAL                                                           &
+     &LDOUBL,LBMARK,LWF2C,LWF2B,LWFLC,LWFLB,                            &
+     &LW1ANA,LW1NUM,LW2NUM,LW2STF,LIMCK,LPLUS,                          &
+     &LALFOK,LDQ2OK,LWT1OK,LWT2OK,                                      &
+     &LWTFOK,LWFCOK,LWLCOK,LWFBOK,LWLBOK,LMARK,LCLOWQ,                  &
+     &LFFCAL,LASOLD                                                     
+                                                                        
+      COMMON/QCFLAG/                                                    &
+     &IORD,IOLAST,                                                      &
+     &LDOUBL,LBMARK,LWF2C,LWF2B,LWFLC,LWFLB,                            &
+     &LW1ANA,LW1NUM,LW2NUM,LW2STF,LIMCK,LPLUS,                          &
+     &LALFOK,LDQ2OK,LWT1OK,LWT2OK,                                      &
+     &LWTFOK,LWFCOK,LWLCOK,LWFBOK,LWLBOK,LMARK,LCLOWQ,                  &
+     &LFFCAL(7,30),LASOLD                                               
+                                                                        
+                                                                        
+      PARAMETER ( MXX = 410 ) 
+      PARAMETER ( MQ2 =  120 ) 
+                                                                        
+!--   Do not set the following parameter to zero!                       
+      PARAMETER ( NDFMAX = 20) 
+                                                                        
+                                                                        
+      COMMON/QCGRID/                                                    &
+     &SCAX0,SCAQ0,XMICUT,QMICUT,QMACUT,RS2CUT,QMINAS,                   &
+     &XXTAB(MXX),Q2TAB(MQ2),XHTAB(MXX),THRS34,THRS45,                   &
+     &NXX,NQ2,NGRVER,IHTAB(MXX),NFMAP(MQ2),IQF2C(MQ2),                  &
+     &IQF2B(MQ2),IQFLC(MQ2),IQFLB(MQ2),IFAILC(MXX,MQ2)                  
+                                                                        
+                                                                        
+      REAL                                                              &
+     &WGTFF1,WGTFG1,                                                    &
+     &WGTGF1,WGTGG1,                                                    &
+     &WGTPP2,WGTPM2,WGTNS2,                                             &
+     &WGTFF2,WGTFG2,                                                    &
+     &WGTGF2,WGTGG2,                                                    &
+     &WGTC2Q,WGTC2G,YNTC2Q,                                             &
+     &WGTCLQ,WGTCLG,WGTC3Q                                              
+                                                                        
+      COMMON/QCWEIT/                                                    &
+     &WGTFF1(MXX*(MXX+1)/2)    ,WGTFG1(MXX*(MXX+1)/2,3:5),              &
+     &WGTGF1(MXX*(MXX+1)/2)    ,WGTGG1(MXX*(MXX+1)/2,3:5),              &
+     &WGTPP2(MXX*(MXX+1)/2,3:5),WGTPM2(MXX*(MXX+1)/2,3:5),              &
+     &WGTNS2(MXX*(MXX+1)/2,3:5),                                        &
+     &WGTFF2(MXX*(MXX+1)/2,3:5),WGTFG2(MXX*(MXX+1)/2,3:5),              &
+     &WGTGF2(MXX*(MXX+1)/2,3:5),WGTGG2(MXX*(MXX+1)/2,3:5),              &
+     &WGTC2Q(MXX*(MXX+1)/2)    ,WGTC2G(MXX*(MXX+1)/2,3:5),              &
+     &WGTCLQ(MXX*(MXX+1)/2)    ,WGTCLG(MXX*(MXX+1)/2,3:5),              &
+     &WGTC3Q(MXX*(MXX+1)/2)    ,YNTC2Q(MXX)                             
+                                                                        
+      COMMON/QCWADR/ IWADR(MXX,MXX) 
+                                                                        
+                                                                        
+      COMMON/QCPASS/                                                    &
+     &ALPHA0, Q0ALFA, ASLAST, QALAST,                                   &
+     &ALFASQ(MQ2), ALFAPQ(MQ2), ALFA2Q(MQ2),                            &
+     &DELUP(MQ2), DELDN(MQ2), PDFQCD(MXX,MQ2,0:10),                     &
+     &FNSQCD(MXX,MQ2),DNSQCD(MXX,MQ2),                                  &
+     &FSIQCD(MXX,MQ2),DSIQCD(MXX,MQ2),                                  &
+     &FGLQCD(MXX,MQ2),DGGQCD(MXX,MQ2),                                  &
+     &FSTORE(MXX,MQ2,31:30+NDFMAX),IDFAST(7,30),NDFAST,                 &
+     &MARKFF(MXX,MQ2),MARKFH(MXX,MQ2),MARKQQ(MQ2),                      &
+     &ISTFID(31:30+NDFMAX),IPDFID(31:30+NDFMAX),IEALFA(MQ2),            &
+     &IQL_LAST(10),IQ0_LAST(10),IQH_LAST(10)                            
+                                                                        
+      LOGICAL LEVDONE,LE_DONE 
+      COMMON/QCLEVL/                                                    &
+     &LEVDONE(MXX,10),LE_DONE(MXX)                                      
+                                                                        
+                                                                        
+      CHARACTER*5 PNAM,STFNAM 
+      LOGICAL     LNFP 
+      COMMON /QCLNFP/ LNFP(0:30,3:5) 
+      COMMON /QCPNAM/ PNAM(0:30) 
+      COMMON /QCPWGT/ PWGT(0:10,0:30,3:5) 
+      COMMON /QCFNAM/ STFNAM(7) 
+                                                                        
+                                                                        
+      LOGICAL LTIME 
+      REAL T_START,T_END,T_SPENT 
+      COMMON/QCTIME/T_START(10),T_END(10),T_SPENT(10),N_CALLS(10),      &
+     &E_CALLS(10),LTIME                                                 
+      COMMON/QCFCNT/IFCNT(-1:1,5) 
+                                                                        
+      CHARACTER*7 TSNAM 
+      COMMON/QCTRCE/ TSNAM(0:19) 
+      COMMON/QCTRCI/ NTCAL(0:19),ITADR 
+!                                                                       
+! common added by MRW 18/3/05 to make silent mode for LHAPDF            
+!                                                                       
+      common/lhasilent/lhasilent 
+!                                                                       
+                                                                        
+      CHVERS = '16.12   ' 
+      CHDATE = '12-08-98' 
+                                                                        
+      LDOUBL = .TRUE. 
+      if(lhasilent.eq.0) then 
+      WRITE(6,'(/////)') 
+      WRITE(6,                                                          &
+     &'(8X,''+-----------------------------------------------+'')')     
+      WRITE(6,                                                          &
+     &'(8X,''|                                               |'')')     
+!      LDOUBL = .TRUE.                                                  
+      WRITE(6,                                                          &
+     &'(8X,''| You are using the double precision version of |'')')     
+      WRITE(6,                                                          &
+     &'(8X,''|                                               |'')')     
+      WRITE(6,                                                          &
+     &'(8X,''|              Q C D N U M '',A8,                          &
+     &     ''             |'')') CHVERS                                 
+      WRITE(6,                                                          &
+     &'(8X,''|                                               |'')')     
+      WRITE(6,                                                          &
+     &'(8X,''|         Author  : Michiel Botje               |'')')     
+      WRITE(6,                                                          &
+     &'(8X,''|         Email   : h24@nikhef.nl               |'')')     
+      WRITE(6,                                                          &
+     &'(8X,''|                                               |'')')     
+      WRITE(6,                                                          &
+     &'(8X,''|         Date    : '',A8,                                 &
+     &     ''                    |'')') CHDATE                          
+      WRITE(6,                                                          &
+     &'(8X,''|         Max NX  : '',I3,                                 &
+     &     ''                         |'')') MXX-1                      
+      WRITE(6,                                                          &
+     &'(8X,''|         Max NQ2 : '',I3,                                 &
+     &     ''                         |'')') MQ2-1                      
+      WRITE(6,                                                          &
+     &'(8X,''|                                               |'')')     
+      WRITE(6,                                                          &
+     &'(8X,''+-----------------------------------------------+'')')     
+      WRITE(6,'(/////)') 
+      endif 
+                                                                        
+      IORD   = 2 
+      IOLAST = -999 
+      Q0ALFA = 50. 
+      ALPHA0 = 0.180 
+      QALAST = -999. 
+      ASLAST = -999. 
+      SCAX0  = 0.20 
+      SCAQ0  = 1.D10 
+                                                                        
+      PI     = 3.14159265359 
+      PROTON = 0.9382796 
+      EUTRON = 0.9395731 
+      UCLEON = (PROTON + EUTRON) / 2. 
+      UDSCBT(1) = 0.005 
+      UDSCBT(2) = 0.01 
+      UDSCBT(3) = 0.3 
+      UDSCBT(4) = 1.5 
+      UDSCBT(5) = 5.0 
+      UDSCBT(6) = 188. 
+      CBMSTF(4) = UDSCBT(4) 
+      CBMSTF(5) = UDSCBT(4) 
+      CBMSTF(6) = UDSCBT(5) 
+      CBMSTF(7) = UDSCBT(5) 
+      CHARGE(4) = 4./9. 
+      CHARGE(5) = 4./9. 
+      CHARGE(6) = 1./9. 
+      CHARGE(7) = 1./9. 
+      AAM2H     = 1. 
+      BBM2H     = 0. 
+      AAM2L     = 1. 
+      BBM2L     = 0. 
+      AAAR2     = 1. 
+      BBBR2     = 0. 
+      FL_FAC    = 0. 
+      C1S3   = 1./3. 
+      C2S3   = 2./3. 
+      C4S3   = 4./3. 
+      C5S3   = 5./3. 
+      C8S3   = 8./3. 
+      C14S3  = 14./3. 
+      C16S3  = 16./3. 
+      C20S3  = 20./3. 
+      C28S3  = 28./3. 
+      C38S3  = 38./3. 
+      C40S3  = 40./3. 
+      C44S3  = 44./3. 
+      C52S3  = 52./3. 
+      C136S3 = 136./3. 
+      C11S6  = 11./6. 
+      C2S9   = 2./9. 
+      C4S9   = 4./9. 
+      C10S9  = 10./9. 
+      C14S9  = 14./9. 
+      C16S9  = 16./9. 
+      C40S9  = 40./9. 
+      C44S9  = 44./9. 
+      C62S9  = 62./9. 
+      C112S9 = 112./9. 
+      C182S9 = 182./9. 
+      C11S12 = 11./12. 
+      C35S18 = 35./18. 
+      C11S3  = 11./3. 
+      C22S3  = 22./3. 
+      C61S12 = 61./12. 
+      C215S1 = 215./12. 
+      C29S12 = 29./12. 
+      CPI2S3 = PI**2/3. 
+      CPIA   = 67./18. - CPI2S3/2. 
+      CPIB   = 4.*CPI2S3 
+      CPIC   = 17./18. + 3.5*CPI2S3 
+      CPID   = 367./36. - CPI2S3 
+      CPIE   = 5. - CPI2S3 
+      CPIF   = CPI2S3 - 218./9. 
+                                                                        
+      CCA    = 3. 
+      CCF    = (CCA*CCA-1.)/(2.*CCA) 
+      CTF    = 0.5 
+      CATF   = CCA*CTF 
+      CFTF   = CCF*CTF 
+                                                                        
+      DO I = 1,10 
+        T_SPENT(I) = 0. 
+        E_CALLS(I) = 0. 
+        N_CALLS(I) = 0 
+      ENDDO 
+      LTIME  = .FALSE. 
+                                                                        
+      LBMARK = .FALSE. 
+      LW1ANA = .TRUE. 
+      LW1NUM = .FALSE. 
+      LW2NUM = .TRUE. 
+      LW2STF = .TRUE. 
+      LWF2C  = .FALSE. 
+      LWF2B  = .FALSE. 
+      LWFLC  = .FALSE. 
+      LWFLB  = .FALSE. 
+      LIMCK  = .TRUE. 
+      LPLUS  = .TRUE. 
+      LALFOK = .FALSE. 
+      LDQ2OK = .FALSE. 
+      LWT1OK = .FALSE. 
+      LWT2OK = .FALSE. 
+      LWTFOK = .FALSE. 
+      LWFCOK = .FALSE. 
+      LWLCOK = .FALSE. 
+      LWFBOK = .FALSE. 
+      LWLBOK = .FALSE. 
+      LMARK  = .FALSE. 
+      LCLOWQ = .TRUE. 
+      LASOLD = .FALSE. 
+      DO I = 1,30 
+        DO J = 1,7 
+          LFFCAL(J,I)  = .FALSE. 
+        ENDDO 
+      ENDDO 
+!--   Invalidate all evolutions                                         
+      CALL QNFALS(LEVDONE,MXX*10) 
+      CALL QNFALS(LE_DONE,MXX) 
+      CALL QNINUL(IQL_LAST,10) 
+      CALL QNINUL(IQ0_LAST,10) 
+      CALL QNINUL(IQH_LAST,10) 
+                                                                        
+      ITADR = 0 
+      DO I = 0,19 
+        TSNAM(I) = '       ' 
+        NTCAL(I) = 0 
+      ENDDO 
+                                                                        
+      NXX    = 0 
+      NQ2    = 0 
+      NGRVER = 0 
+      NDFAST = 30 
+      XMICUT = -1. 
+      QMICUT = -1. 
+      QMACUT = -1. 
+      RS2CUT = -1. 
+      QMINAS = 0. 
+      THRS34 = -1.D10 
+      THRS45 =  1.D10 
+                                                                        
+      CALL VZERO_LHA (WGTFF1,MXX*(MXX+1)/2) 
+      CALL VZERO_LHA (WGTFG1,MXX*(MXX+1)*3/2) 
+      CALL VZERO_LHA (WGTGF1,MXX*(MXX+1)/2) 
+      CALL VZERO_LHA (WGTGG1,MXX*(MXX+1)*3/2) 
+      CALL VZERO_LHA (WGTPP2,MXX*(MXX+1)*3/2) 
+      CALL VZERO_LHA (WGTPM2,MXX*(MXX+1)*3/2) 
+      CALL VZERO_LHA (WGTNS2,MXX*(MXX+1)*3/2) 
+      CALL VZERO_LHA (WGTFF2,MXX*(MXX+1)*3/2) 
+      CALL VZERO_LHA (WGTFG2,MXX*(MXX+1)*3/2) 
+      CALL VZERO_LHA (WGTGF2,MXX*(MXX+1)*3/2) 
+      CALL VZERO_LHA (WGTGG2,MXX*(MXX+1)*3/2) 
+      CALL VZERO_LHA (WGTC2Q,MXX*(MXX+1)/2) 
+      CALL VZERO_LHA (WGTC2G,MXX*(MXX+1)*3/2) 
+      CALL VZERO_LHA (YNTC2Q,MXX) 
+      CALL VZERO_LHA (WGTCLQ,MXX*(MXX+1)/2) 
+      CALL VZERO_LHA (WGTCLG,MXX*(MXX+1)*3/2) 
+      CALL VZERO_LHA (WGTC3Q,MXX*(MXX+1)/2) 
+                                                                        
+      CALL QNVNUL(PWGT,11*31*3) 
+      CALL QNINUL(NFMAP,MQ2) 
+      CALL QNINUL(MARKFF,MXX*MQ2) 
+      CALL QNINUL(MARKFH,MXX*MQ2) 
+      CALL QNINUL(MARKQQ,MQ2) 
+      CALL QNINUL(IDFAST,7*30) 
+      CALL QNINUL(IFCNT,3*5) 
+                                                                        
+      CALL QNVNUL(PDFQCD,MXX*MQ2*11) 
+      DO ID = 1,NDFMAX 
+        DO IX = 1,MXX 
+          DO IQ = 1,MQ2 
+            FSTORE(IX,IQ,30+ID) = -501. 
+          ENDDO 
+        ENDDO 
+      ENDDO 
+                                                                        
+      PNAM(0)   = 'GLUON' 
+      PNAM(1)   = 'SINGL' 
+      LNFP(0,3) = .TRUE. 
+      LNFP(0,4) = .TRUE. 
+      LNFP(0,5) = .TRUE. 
+      LNFP(1,3) = .TRUE. 
+      LNFP(1,4) = .TRUE. 
+      LNFP(1,5) = .TRUE. 
+      DO 10 I = 2,30 
+        PNAM(I)   = 'FREE ' 
+        LNFP(I,3) = .FALSE. 
+        LNFP(I,4) = .FALSE. 
+        LNFP(I,5) = .FALSE. 
+   10 END DO 
+      PWGT(0,0,3) = 1. 
+      PWGT(0,0,4) = 1. 
+      PWGT(0,0,5) = 1. 
+      PWGT(1,1,3) = 1. 
+      PWGT(1,1,4) = 1. 
+      PWGT(1,1,5) = 1. 
+      STFNAM(1)   = 'F2   ' 
+      STFNAM(2)   = 'FL   ' 
+      STFNAM(3)   = 'XF3  ' 
+      STFNAM(4)   = 'F2C  ' 
+      STFNAM(5)   = 'FLC  ' 
+      STFNAM(6)   = 'F2B  ' 
+      STFNAM(7)   = 'FLB  ' 
+                                                                        
+      CALL QTRACE('QNINIT ',0) 
+                                                                        
+      RETURN 
+      END                                           
+                                                                        
+!DECK  ID>, QTRACE.                                                     
+                                                                        
+!     ===============================                                   
+      SUBROUTINE QTRACE(SRNAM,IPRINT) 
+!     ===============================                                   
+                                                                        
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z) 
+                                                                        
+      CHARACTER*7 SRNAM 
+                                                                        
+      CHARACTER*7 TSNAM 
+      COMMON/QCTRCE/ TSNAM(0:19) 
+      COMMON/QCTRCI/ NTCAL(0:19),ITADR 
+                                                                        
+                                                                        
+      IF(IPRINT.EQ.0) THEN 
+                                                                        
+        IF(SRNAM.EQ.TSNAM(ITADR)) THEN 
+          NTCAL(ITADR) = NTCAL(ITADR) + 1 
+        ELSE 
+          ITADR = MOD(ITADR+1,20) 
+          TSNAM(ITADR) = SRNAM 
+          NTCAL(ITADR) = 1 
+        ENDIF 
+                                                                        
+      ELSE 
+                                                                        
+        WRITE(6,'(/'' ----------------------------'')') 
+                                                                        
+        K = -20 
+        DO I = ITADR+1,ITADR+19 
+          J = MOD(I,20) 
+          K = K+1 
+          WRITE(6,'(I4,2X,A7,''  #calls = '',I5)')                      &
+     &    K,TSNAM(J),NTCAL(J)                                           
+        ENDDO 
+        K = 0 
+        WRITE(6,'(I4,2X,A7,''  #calls = '',I5,''  <--- error'')')       &
+     &  K,TSNAM(ITADR),NTCAL(ITADR)                                     
+                                                                        
+        WRITE(6,'( '' ----------------------------'')') 
+                                                                        
+      ENDIF 
+                                                                        
+      RETURN 
+      END                                           
+                                                                        
+!DECK  ID>, QNDUMP.                                                     
+                                                                        
+!     ======================                                            
+      SUBROUTINE QNDUMP(LUN) 
+!     ======================                                            
+                                                                        
+!---  QNDUMP: write weight tables to LUN.                               
+!---  Called by user.                                                   
+                                                                        
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z) 
+                                                                        
+                                                                        
+      PARAMETER ( MXX = 410 ) 
+      PARAMETER ( MQ2 =  120 ) 
+                                                                        
+!--   Do not set the following parameter to zero!                       
+      PARAMETER ( NDFMAX = 20) 
+                                                                        
+      CHARACTER*8 CHVERS,CHDATE 
+      COMMON/QCVERS/ CHVERS,CHDATE 
+                                                                        
+                                                                        
+      COMMON/QCCONS/                                                    &
+     &PI,PROTON,EUTRON,UCLEON,UDSCBT(6),AAM2H,BBM2H,AAM2L,BBM2L,        &
+     &AAAR2,BBBR2,FL_FAC,CBMSTF(4:7),CHARGE(4:7),                       &
+     &C1S3,C2S3,C4S3,C5S3,C8S3,C11S3,C14S3,C16S3,C20S3,C22S3,C28S3,     &
+     &C38S3,C40S3,C44S3,C52S3,C136S3,C11S6,C2S9,C4S9,C10S9,C14S9,C16S9, &
+     &C40S9,C44S9,C62S9,C112S9,C182S9,C11S12,C35S18,C61S12,C215S1,      &
+     &C29S12,CPI2S3,CPIA,CPIB,CPIC,CPID,CPIE,CPIF,CCA,CCF,CTF,CATF,CFTF 
+                                                                        
+                                                                        
+                                                                        
+      LOGICAL                                                           &
+     &LDOUBL,LBMARK,LWF2C,LWF2B,LWFLC,LWFLB,                            &
+     &LW1ANA,LW1NUM,LW2NUM,LW2STF,LIMCK,LPLUS,                          &
+     &LALFOK,LDQ2OK,LWT1OK,LWT2OK,                                      &
+     &LWTFOK,LWFCOK,LWLCOK,LWFBOK,LWLBOK,LMARK,LCLOWQ,                  &
+     &LFFCAL,LASOLD                                                     
+                                                                        
+      COMMON/QCFLAG/                                                    &
+     &IORD,IOLAST,                                                      &
+     &LDOUBL,LBMARK,LWF2C,LWF2B,LWFLC,LWFLB,                            &
+     &LW1ANA,LW1NUM,LW2NUM,LW2STF,LIMCK,LPLUS,                          &
+     &LALFOK,LDQ2OK,LWT1OK,LWT2OK,                                      &
+     &LWTFOK,LWFCOK,LWLCOK,LWFBOK,LWLBOK,LMARK,LCLOWQ,                  &
+     &LFFCAL(7,30),LASOLD                                               
+                                                                        
+                                                                        
+      COMMON/QCGRID/                                                    &
+     &SCAX0,SCAQ0,XMICUT,QMICUT,QMACUT,RS2CUT,QMINAS,                   &
+     &XXTAB(MXX),Q2TAB(MQ2),XHTAB(MXX),THRS34,THRS45,                   &
+     &NXX,NQ2,NGRVER,IHTAB(MXX),NFMAP(MQ2),IQF2C(MQ2),                  &
+     &IQF2B(MQ2),IQFLC(MQ2),IQFLB(MQ2),IFAILC(MXX,MQ2)                  
+                                                                        
+                                                                        
+      REAL                                                              &
+     &WGTFF1,WGTFG1,                                                    &
+     &WGTGF1,WGTGG1,                                                    &
+     &WGTPP2,WGTPM2,WGTNS2,                                             &
+     &WGTFF2,WGTFG2,                                                    &
+     &WGTGF2,WGTGG2,                                                    &
+     &WGTC2Q,WGTC2G,YNTC2Q,                                             &
+     &WGTCLQ,WGTCLG,WGTC3Q                                              
+                                                                        
+      COMMON/QCWEIT/                                                    &
+     &WGTFF1(MXX*(MXX+1)/2)    ,WGTFG1(MXX*(MXX+1)/2,3:5),              &
+     &WGTGF1(MXX*(MXX+1)/2)    ,WGTGG1(MXX*(MXX+1)/2,3:5),              &
+     &WGTPP2(MXX*(MXX+1)/2,3:5),WGTPM2(MXX*(MXX+1)/2,3:5),              &
+     &WGTNS2(MXX*(MXX+1)/2,3:5),                                        &
+     &WGTFF2(MXX*(MXX+1)/2,3:5),WGTFG2(MXX*(MXX+1)/2,3:5),              &
+     &WGTGF2(MXX*(MXX+1)/2,3:5),WGTGG2(MXX*(MXX+1)/2,3:5),              &
+     &WGTC2Q(MXX*(MXX+1)/2)    ,WGTC2G(MXX*(MXX+1)/2,3:5),              &
+     &WGTCLQ(MXX*(MXX+1)/2)    ,WGTCLG(MXX*(MXX+1)/2,3:5),              &
+     &WGTC3Q(MXX*(MXX+1)/2)    ,YNTC2Q(MXX)                             
+                                                                        
+      COMMON/QCWADR/ IWADR(MXX,MXX) 
+                                                                        
+                                                                        
+      REAL                                                              &
+     &WH_C0KG,WH_C1KG,WH_C1BKG,                                         &
+     &WH_C1KQ,WH_C1BKQ,WH_D1KQ,WH_D1BKQ                                 
+                                                                        
+      COMMON/QCHWGT/                                                    &
+     &WH_C0KG(0:MXX,MQ2,4:7),                                           &
+     &WH_C1KG(0:MXX,MQ2,4:7),WH_C1BKG(0:MXX,MQ2,4:7),                   &
+     &WH_C1KQ(0:MXX,MQ2,4:7),WH_C1BKQ(0:MXX,MQ2,4:7),                   &
+     &WH_D1KQ(0:MXX,MQ2,4:7),WH_D1BKQ(0:MXX,MQ2,4:7)                    
+                                                                        
+                                                                        
+      DIMENSION STOREM(6) 
+                                                                        
+      CALL QTRACE('QNDUMP ',0) 
+                                                                        
+      STOREM(1) = CBMSTF(4) 
+      STOREM(2) = CBMSTF(6) 
+      STOREM(3) = 0. 
+      STOREM(4) = 0. 
+      STOREM(5) = 0. 
+      STOREM(6) = 0. 
+                                                                        
+      WRITE(LUN) MXX,MQ2 
+      WRITE(LUN) CHVERS,CHDATE 
+      WRITE(LUN) STOREM 
+      WRITE(LUN) LWT1OK,LWT2OK,LWTFOK,LWFCOK,LWLCOK,LWFBOK,LWLBOK,      &
+     &           LPLUS                                                  
+      WRITE(LUN) XXTAB,Q2TAB,                                           &
+     &           NXX,NQ2,IQF2C,IQF2B,IQFLC,IQFLB                        
+      IF(LWT1OK) THEN 
+      WRITE(LUN) WGTFF1,WGTFG1,WGTGF1,WGTGG1 
+      ENDIF 
+      IF(LWT2OK) THEN 
+      WRITE(LUN) WGTPP2,WGTPM2,WGTNS2,WGTFF2,WGTFG2,WGTGF2,WGTGG2 
+      ENDIF 
+      IF(LWTFOK) THEN 
+      WRITE(LUN) WGTC2Q,WGTC2G,YNTC2Q,WGTCLQ,WGTCLG,WGTC3Q 
+      ENDIF 
+      IF(LWFCOK.OR.LWLCOK.OR.LWFBOK.OR.LWLBOK) THEN 
+      WRITE(LUN) WH_C0KG,WH_C1KG,WH_C1BKG,                              &
+     &           WH_C1KQ,WH_C1BKQ,WH_D1KQ,WH_D1BKQ                      
+      ENDIF 
+                                                                        
+      RETURN 
+      END                                           
+                                                                        
+!DECK  ID>, QNREAD.                                                     
+                                                                        
+!     =================================                                 
+      SUBROUTINE QNREAD(LUN,ISTOP,IERR) 
+!     =================================                                 
+                                                                        
+!---  QNDUMP: read weight tables from LUN.                              
+!---  Called by user.                                                   
+!---  Input  integer LUN                                                
+!---         integer ISTOP = 0 read the file                            
+!---                 ISTOP = 1 read only when ierr = 0                  
+!---                 ISTOP = 2 stop the program when ierr .ne. 0        
+!---  Output integer IERR  = 0 all ok                                   
+!---                       = 1 xgrid on file .ne. that in QCDNUM        
+!---                       = 2 file contains heavy quark weight tables a
+!---                           qgrid on file .ne. that in QCDNUM        
+!---                       = 3 file contains charm weight tables and    
+!---                           c mass on the file .ne. that in QCDNUM   
+!---                       = 4 file contains bottom weight tables and   
+!---                           b mass on the file .ne. that in QCDNUM   
+                                                                        
+      IMPLICIT DOUBLE PRECISION (A-H,O-Z) 
+                                                                        
+                                                                        
+      PARAMETER ( MXX = 410 ) 
+      PARAMETER ( MQ2 =  120 ) 
+                                                                        
+!--   Do not set the following parameter to zero!                       
+      PARAMETER ( NDFMAX = 20) 
+                                                                        
+      CHARACTER*8 CHVERS,CHDATE 
+      COMMON/QCVERS/ CHVERS,CHDATE 
+                                                                        
+                                                                        
+      COMMON/QCCONS/                                                    &
+     &PI,PROTON,EUTRON,UCLEON,UDSCBT(6),AAM2H,BBM2H,AAM2L,BBM2L,        &
+     &AAAR2,BBBR2,FL_FAC,CBMSTF(4:7),CHARGE(4:7),                       &
+     &C1S3,C2S3,C4S3,C5S3,C8S3,C11S3,C14S3,C16S3,C20S3,C22S3,C28S3,     &
+     &C38S3,C40S3,C44S3,C52S3,C136S3,C11S6,C2S9,C4S9,C10S9,C14S9,C16S9, &
+     &C40S9,C44S9,C62S9,C112S9,C182S9,C11S12,C35S18,C61S12,C215S1,      &
+     &C29S12,CPI2S3,CPIA,CPIB,CPIC,CPID,CPIE,CPIF,CCA,CCF,CTF,CATF,CFTF 
+                                                                        
+                                                                        
+                                                                        
+      LOGICAL                                                           &
+     &LDOUBL,LBMARK,LWF2C,LWF2B,LWFLC,LWFLB,                            &
+     &LW1ANA,LW1NUM,LW2NUM,LW2STF,LIMCK,LPLUS,                          &
+     &LALFOK,LDQ2OK,LWT1OK,LWT2OK,                                      &
+     &LWTFOK,LWFCOK,LWLCOK,LWFBOK,LWLBOK,LMARK,LCLOWQ,                  &
+     &LFFCAL,LASOLD                                                     
+                                                                        
+      COMMON/QCFLAG/                                                    &
+     &IORD,IOLAST,                                                      &
+     &LDOUBL,LBMARK,LWF2C,LWF2B,LWFLC,LWFLB,                            &
+     &LW1ANA,LW1NUM,LW2NUM,LW2STF,LIMCK,LPLUS,                          &
+     &LALFOK,LDQ2OK,LWT1OK,LWT2OK,                                      &
+     &LWTFOK,LWFCOK,LWLCOK,LWFBOK,LWLBOK,LMARK,LCLOWQ,                  &
+     &LFFCAL(7,30),LASOLD                                               
+                                                                        
+                                                                        
+      COMMON/QCGRID/                                                    &
+     &SCAX0,SCAQ0,XMICUT,QMICUT,QMACUT,RS2CUT,QMINAS,                   &
+     &XXTAB(MXX),Q2TAB(MQ2),XHTAB(MXX),THRS34,THRS45,                   &
+     &NXX,NQ2,NGRVER,IHTAB(MXX),NFMAP(MQ2),IQF2C(MQ2),                  &
+     &IQF2B(MQ2),IQFLC(MQ2),IQFLB(MQ2),IFAILC(MXX,MQ2)                  
+                                                                        
+                                                                        
+      REAL                                                              &
+     &WGTFF1,WGTFG1,                                                    &
+     &WGTGF1,WGTGG1,                                                    &
+     &WGTPP2,WGTPM2,WGTNS2,                                             &
+     &WGTFF2,WGTFG2,                                                    &
+     &WGTGF2,WGTGG2,                                                    &
+     &WGTC2Q,WGTC2G,YNTC2Q,                                             &
+     &WGTCLQ,WGTCLG,WGTC3Q                                              
+                                                                        
+      COMMON/QCWEIT/                                                    &
+     &WGTFF1(MXX*(MXX+1)/2)    ,WGTFG1(MXX*(MXX+1)/2,3:5),              &
+     &WGTGF1(MXX*(MXX+1)/2)    ,WGTGG1(MXX*(MXX+1)/2,3:5),              &
+     &WGTPP2(MXX*(MXX+1)/2,3:5),WGTPM2(MXX*(MXX+1)/2,3:5),              &
+     &WGTNS2(MXX*(MXX+1)/2,3:5),                                        &
+     &WGTFF2(MXX*(MXX+1)/2,3:5),WGTFG2(MXX*(MXX+1)/2,3:5),              &
+     &WGTGF2(MXX*(MXX+1)/2,3:5),WGTGG2(MXX*(MXX+1)/2,3:5),              &
+     &WGTC2Q(MXX*(MXX+1)/2)    ,WGTC2G(MXX*(MXX+1)/2,3:5),              &
+     &WGTCLQ(MXX*(MXX+1)/2)    ,WGTCLG(MXX*(MXX+1)/2,3:5),              &
+     &WGTC3Q(MXX*(MXX+1)/2)    ,YNTC2Q(MXX)                             
+                                                                        
+      COMMON/QCWADR/ IWADR(MXX,MXX) 
+                                                                        
+                                                                        
+      REAL                                                              &
+     &WH_C0KG,WH_C1KG,WH_C1BKG,                                         &
+     &WH_C1KQ,WH_C1BKQ,WH_D1KQ,WH_D1BKQ                                 
+                                                                        
+      COMMON/QCHWGT/                                                    &
+     &WH_C0KG(0:MXX,MQ2,4:7),                                           &
+     &WH_C1KG(0:MXX,MQ2,4:7),WH_C1BKG(0:MXX,MQ2,4:7),                   &
+     &WH_C1KQ(0:MXX,MQ2,4:7),WH_C1BKQ(0:MXX,MQ2,4:7),                   &
+     &WH_D1KQ(0:MXX,MQ2,4:7),WH_D1BKQ(0:MXX,MQ2,4:7)                    
+                                                                        
+                                                                        
+      COMMON/QCPASS/                                                    &
+     &ALPHA0, Q0ALFA, ASLAST, QALAST,                                   &
+     &ALFASQ(MQ2), ALFAPQ(MQ2), ALFA2Q(MQ2),                            &
+     &DELUP(MQ2), DELDN(MQ2), PDFQCD(MXX,MQ2,0:10),                     &
+     &FNSQCD(MXX,MQ2),DNSQCD(MXX,MQ2),                                  &
+     &FSIQCD(MXX,MQ2),DSIQCD(MXX,MQ2),                                  &
+     &FGLQCD(MXX,MQ2),DGGQCD(MXX,MQ2),                                  &
+     &FSTORE(MXX,MQ2,31:30+NDFMAX),IDFAST(7,30),NDFAST,                 &
+     &MARKFF(MXX,MQ2),MARKFH(MXX,MQ2),MARKQQ(MQ2),                      &
+     &ISTFID(31:30+NDFMAX),IPDFID(31:30+NDFMAX),IEALFA(MQ2),            &
+     &IQL_LAST(10),IQ0_LAST(10),IQH_LAST(10)                            
+                                                                        
+      LOGICAL LEVDONE,LE_DONE 
+      COMMON/QCLEVL/                                                    &
+     &LEVDONE(MXX,10),LE_DONE(MXX)                                      
+                                                                        
+                                                                        
+      CHARACTER*8 RHVERS,RHDATE 
+      LOGICAL     RWT1OK,RWT2OK,RWTFOK,RWFCOK 
+      LOGICAL     RWLCOK,RWFBOK,RWLBOK,RPLUS 
+      LOGICAL     LREADX,LREADQ,LREADB,LREADC 
+      DIMENSION   RMASS(6) 
+      DIMENSION   RXTAB(MXX),RQTAB(MQ2) 
+      DIMENSION   IRF2C(MQ2),IRF2B(MQ2),IRFLC(MQ2),IRFLB(MQ2) 
+!                                                                       
+! common added 18/3/05 by MRW                                           
+      common/lhasilent/lhasilent 
+                                                                        
+      CALL QTRACE('QNREAD ',0) 
+                                                                        
+      REWIND LUN 
+                                                                        
+!--   Setup the weight adresses                                         
+!--   (Usually done in QNFILW, but this routine might not be called)    
+      DO IX0 = 1,MXX 
+        DO IX = IX0,MXX 
+          IWADR(IX,IX0) = IWTAD(IX,IX0) 
+        ENDDO 
+      ENDDO 
+                                                                        
+!--   Read header information                                           
+      READ(LUN,ERR=500) KXX,KQ2 
+      IF(KXX.NE.MXX.OR.KQ2.NE.MQ2) THEN 
+        WRITE(6,'(/'' QNREAD: nxmax, nqmax on file  '',2I5,             &
+     &            /''         nxmax, nqmax in QCDNUM'',2I5,             &
+     &            /''         Incompatible ---> STOP'')')               &
+     &                        KXX,KQ2,MXX,MQ2                           
+        STOP 
+      ENDIF 
+      READ(LUN,ERR=500) RHVERS,RHDATE 
+      READ(RHVERS(1:2),'(I2)') IV 
+                                                                        
+!--   If ISTOP > 0 : stop when fileversion = QCDNUM15 or lower          
+!--   If ISTOP = 0 : read up to the weight tables                       
+      IF(IV.LE.15.AND.ISTOP.NE.0) THEN 
+        WRITE(6,'(/'' QNREAD: file was written with QCDNUM'',A8,        &
+     &             '' Incompatible ---> STOP'')')                       &
+     &   RHVERS                                                         
+        STOP 
+      ENDIF 
+      if(lhasilent.eq.0)                                                &
+     & WRITE(6,'(/'' QNREAD: file was written with QCDNUM'',A8)')       &
+     & RHVERS                                                           
+                                                                        
+      READ(LUN,ERR=500) RMASS 
+      READ(LUN,ERR=500) RWT1OK,RWT2OK,RWTFOK,RWFCOK,RWLCOK,RWFBOK,      &
+     &                  RWLBOK,RPLUS                                    
+      READ(LUN,ERR=500) RXTAB,RQTAB,                                    &
+     &                  NRX,NRQ,IRF2C,IRF2B,IRFLC,IRFLB                 
+                                                                        
+      IERR   = 0 
+      LREADX = .FALSE. 
+      LREADQ = .FALSE. 
+      LREADC = .FALSE. 
+      LREADB = .FALSE. 
+                                                                        
+!--   Check xgrid (if there is one already defined)                     
+      IF(NXX.NE.0)     THEN 
+        IF(NXX.NE.NRX) THEN 
+          IERR = 1 
+        ELSE 
+          DO IX = 1,NXX 
+            IF(RXTAB(IX).NE.XXTAB(IX)) IERR = 1 
+          ENDDO 
+        ENDIF 
+      ENDIF 
+                                                                        
+!--   What to do when xgrid is different                                
+      IF(IERR.EQ.1) THEN 
+        IF(ISTOP.EQ.1) THEN 
+          WRITE(6,'(/                                                   &
+     &    '' QNREAD: X grid in memory different from that on file'',    &
+     &    '' ---> abandon reading'')')                                  
+          RETURN 
+        ENDIF 
+        IF(ISTOP.EQ.2) THEN 
+          WRITE(6,'(/                                                   &
+     &    '' QNREAD: X grid in memory different from that on file'',    &
+     &    '' ---> STOP'')')                                             
+          STOP 
+        ENDIF 
+      ENDIF 
+                                                                        
+      IF(IERR.EQ.1.OR.NXX.LE.0) LREADX = .TRUE. 
+                                                                        
+!--   Check Q2 grid if there is one already defined and if there are    
+!--   heavy quark weight tables on the file                             
+      IF(NQ2.NE.0.AND.(RWFCOK.OR.RWLCOK.OR.RWFBOK.OR.RWLBOK)) THEN 
+        IF(NQ2.NE.NRQ) THEN 
+          IERR = 2 
+        ELSE 
+          DO IQ = 1,NQ2 
+            IF(RQTAB(IQ).NE.Q2TAB(IQ)) IERR = 2 
+          ENDDO 
+        ENDIF 
+      ENDIF 
+                                                                        
+!--   What to do when qgrid is different                                
+      IF(IERR.EQ.2) THEN 
+        IF(ISTOP.EQ.1) THEN 
+          WRITE(6,'(/                                                   &
+     &    '' QNREAD: Q2 grid in memory different from that on file'',   &
+     &    '' ---> abandon reading'')')                                  
+          RETURN 
+        ENDIF 
+        IF(ISTOP.EQ.2) THEN 
+          WRITE(6,'(/                                                   &
+     &    '' QNREAD: Q2 grid in memory different from that on file'',   &
+     &    '' ---> STOP'')')                                             
+          STOP 
+        ENDIF 
+      ENDIF 
+                                                                        
+      IF(IERR.EQ.2.OR.NQ2.LE.0) LREADQ = .TRUE. 
+                                                                        
+!--   Check charm mass if there are charm weight tables on the file     
+      IF(RWFCOK.OR.RWLCOK) THEN 
+        IF(IV.LE.15) THEN 
+          IF(RMASS(4).NE.CBMSTF(4)) IERR = 3 
+        ELSE 
+          IF(RMASS(1).NE.CBMSTF(4)) IERR = 3 
+        ENDIF 
+      ENDIF 
+                                                                        
+!--   What to do when charm mass is different                           
+      IF(IERR.EQ.3) THEN 
+        IF(ISTOP.EQ.1) THEN 
+          WRITE(6,'(/                                                   &
+     &    '' QNREAD: Charm mass in memory different from that on file'',&
+     &    '' ---> abandon reading'')')                                  
+          RETURN 
+        ENDIF 
+        IF(ISTOP.EQ.2) THEN 
+          WRITE(6,'(/                                                   &
+     &    '' QNREAD: Charm mass in memory different from that on'',     &
+     &    '' file ---> STOP'')')                                        
+          STOP 
+        ENDIF 
+        LREADC = .TRUE. 
+      ENDIF 
+                                                                        
+!--   Check bottom mass if there are bottom weight tables on the file   
+      IF(RWFBOK.OR.RWLBOK) THEN 
+        IF(IV.LE.15) THEN 
+          IF(RMASS(5).NE.CBMSTF(6)) IERR = 4 
+        ELSE 
+          IF(RMASS(2).NE.CBMSTF(6)) IERR = 4 
+        ENDIF 
+      ENDIF 
+                                                                        
+!--   What to do when bottom mass is different                          
+      IF(IERR.EQ.4) THEN 
+        IF(ISTOP.EQ.1) THEN 
+          WRITE(6,'(/                                                   &
+     &    '' QNREAD: Bottom mass in memory different from that on'',    &
+     &    '' file ---> abandon reading'')')                             
+          RETURN 
+        ENDIF 
+        IF(ISTOP.EQ.2) THEN 
+          WRITE(6,'(/                                                   &
+     &    '' QNREAD: Bottom mass in memory different from that on'',    &
+     &    '' file ---> STOP'')')                                        
+          STOP 
+        ENDIF 
+        LREADB = .TRUE. 
+      ENDIF 
+                                                                        
+!--   ok..... continue.......                                           
+      LPLUS  = RPLUS 
+!--   Invalidate all evolutions                                         
+      CALL QNFALS(LEVDONE,MXX*10) 
+                                                                        
+      IF(LREADX) THEN 
+!--     Copy xgrid to qcdnum common block                               
+        NXX = NRX 
+        DO IX = 1,NXX+1 
+          XXTAB(IX) = RXTAB(IX) 
+        ENDDO 
+        WRITE(6,'(/                                                     &
+     &    '' QNREAD: xgrid table read in (original overwritten)'')')    
+!--     Invalidate all weight tables since the grid has changed         
+        LWT1OK = .FALSE. 
+        LWT2OK = .FALSE. 
+        LWTFOK = .FALSE. 
+        LWFCOK = .FALSE. 
+        LWLCOK = .FALSE. 
+        LWFBOK = .FALSE. 
+        LWLBOK = .FALSE. 
+        LMARK  = .FALSE. 
+        NGRVER = NGRVER+1 
+!--     Invalidate all evolutions                                       
+        CALL QNFALS(LEVDONE,MXX*10) 
+!---    Update IFAILC                                                   
+        CALL GRSETC 
+!---    Update NFMAP                                                    
+        CALL QNSETT 
+!---    Update heavy quark xgrid                                        
+        CALL GXHDEF 
+      ENDIF 
+                                                                        
+      IF(LREADQ) THEN 
+!--     Copy q2 grid to common block                                    
+        NQ2 = NRQ 
+        DO IQ = 1,NQ2 
+          Q2TAB(IQ) = RQTAB(IQ) 
+        ENDDO 
+        WRITE(6,'(/                                                     &
+     &    '' QNREAD: qgrid table read in (original overwritten)'')')    
+!--     Invalidate hq weight tables since the grid has changed          
+        LALFOK = .FALSE. 
+        LDQ2OK = .FALSE. 
+        LWFCOK = .FALSE. 
+        LWLCOK = .FALSE. 
+        LWFBOK = .FALSE. 
+        LWLBOK = .FALSE. 
+        LMARK  = .FALSE. 
+        NGRVER = NGRVER + 1 
+!--     Invalidate all evolutions                                       
+        CALL QNFALS(LEVDONE,MXX*10) 
+!---    Update IFAILC                                                   
+        CALL GRSETC 
+!---    Update NFMAP                                                    
+        CALL QNSETT 
+      ENDIF 
+                                                                        
+      IF(LREADC) THEN 
+        IF(IV.LE.15) THEN 
+          UDSCBT(4) = RMASS(4) 
+          CBMSTF(4) = RMASS(4) 
+          CBMSTF(5) = RMASS(4) 
+        ELSE 
+          CBMSTF(4) = RMASS(1) 
+          CBMSTF(5) = RMASS(1) 
+        ENDIF 
+        WRITE(6,'(/                                                     &
+     &    '' QNREAD: charm mass read in (original overwritten)'')')     
+!--     Invalidate charm weight tables since charm mass has changed     
+        LWFCOK = .FALSE. 
+        LWLCOK = .FALSE. 
+!--     Invalidate alpha_s table                                        
+        LALFOK = .FALSE. 
+      ENDIF 
+                                                                        
+      IF(LREADB) THEN 
+        IF(IV.LE.15) THEN 
+          UDSCBT(5) = RMASS(5) 
+          CBMSTF(6) = RMASS(5) 
+          CBMSTF(7) = RMASS(5) 
+        ELSE 
+          CBMSTF(6) = RMASS(2) 
+          CBMSTF(7) = RMASS(2) 
+        ENDIF 
+        WRITE(6,'(/                                                     &
+     &    '' QNREAD: bottom mass read in (original overwritten)'')')    
+!--     Invalidate bottom weight tables since charm mass has changed    
+        LWFBOK = .FALSE. 
+        LWLBOK = .FALSE. 
+!--     Invalidate alpha_s table                                        
+        LALFOK = .FALSE. 
+      ENDIF 
+                                                                        
+      IF(IV.LE.15) THEN 
+        WRITE(6,'(/'' QNREAD: file was written with QCDNUM'',A8)')      &
+     &   RHVERS                                                         
+        WRITE(6,'( '' ------> Abandon reading the weight tables'')') 
+        RETURN 
+      ENDIF 
+                                                                        
+      IF(RWT1OK) THEN 
+        READ(LUN,ERR=500) WGTFF1,WGTFG1,WGTGF1,WGTGG1 
+        LWT1OK = .TRUE. 
+        if(lhasilent.eq.0)                                              &
+     &   WRITE(6,'(/'' QNREAD: LO weight tables read in'')')            
+      ENDIF 
+                                                                        
+      IF(RWT2OK) THEN 
+        READ(LUN,ERR=500) WGTPP2,WGTPM2,WGTNS2,WGTFF2,WGTFG2,WGTGF2,    &
+     &                    WGTGG2                                        
+        LWT2OK = .TRUE. 
+        if(lhasilent.eq.0)                                              &
+     &   WRITE(6,'(/'' QNREAD: NLO weight tables read in'')')           
+      ENDIF 
+                                                                        
+      IF(RWTFOK) THEN 
+        READ(LUN,ERR=500) WGTC2Q,WGTC2G,YNTC2Q,WGTCLQ,WGTCLG,WGTC3Q 
+        LWTFOK = .TRUE. 
+        if(lhasilent.eq.0)                                              &
+     &   WRITE(6,'(/'' QNREAD: F2, FL weight tables read in'')')        
+      ENDIF 
+                                                                        
+      IF(RWFCOK.OR.RWLCOK.OR.RWFBOK.OR.RWLBOK) THEN 
+        READ(LUN,ERR=500) WH_C0KG,WH_C1KG,WH_C1BKG,                     &
+     &                    WH_C1KQ,WH_C1BKQ,WH_D1KQ,WH_D1BKQ             
+        LWFCOK = RWFCOK 
+        LWLCOK = RWLCOK 
+        LWFBOK = RWFBOK 
+        LWLBOK = RWLBOK 
+        if(lhasilent.eq.0) then 
+        IF(RWFCOK)                                                      &
+     &  WRITE(6,'(/'' QNREAD: F2C weight tables read in'')')            
+        IF(RWLCOK)                                                      &
+     &  WRITE(6,'(/'' QNREAD: FLC weight tables read in'')')            
+        IF(RWFBOK)                                                      &
+     &  WRITE(6,'(/'' QNREAD: F2B weight tables read in'')')            
+        IF(RWLBOK)                                                      &
+     &  WRITE(6,'(/'' QNREAD: FLB weight tables read in'')')            
+        endif 
+      ENDIF 
+                                                                        
+      RETURN 
+                                                                        
+  500 CONTINUE 
+      WRITE(6,'(/'' QNREAD: cannot read file on lun = '',I5,