This is MILC Version 7 code

Gradually version 6 code is being ported to it and new modules have
been added.

So far the following applications have been tested:

clover_dynamical
clover_invert
clover_invert2
ext_src
file_utilities
gauge_utilities
gluon_prop
heavy
ks_eigen
ks_hl_spectrum
ks_imp_dyn
ks_imp_rhmc
ks_imp_invert_multi
ks_imp_utilities
pure_gauge
pw_nr_meson
schroed_cl_inv
smooth_inst
symanzik_sl32
wilson_static

Build the code with GNU make.  See the README file in this directory
for general instructions.

Here are highlights of the changes:

For version 7.6.3

  Standardization of byte counts for the header in the open-meson file.
  Optimizations for memory and speed in clover_invert2 and ext_src
  Support multifile sources in ext_src.
  Latest updates of HISQ code from Alexei.
  Further changes in metadata for FNAL correlator files
  Support open meson correlators for B_K project
  Add several new clover sources
  Add FFTW support
  Add gauge_utilities for translating the gauge field and 
    standalone gauge fixing
  Add support for internal translation of sources for clover_invert*
  Updated MILC HISQ treatment

For version 7.6.2

  Revise metadata for FNAL correlator files in clover_invert2
  Add QOP and QDP support for clover inversions.
  Add heavy-light-light baryon code from Heechang Na.
  Add ks_eigen code from version 6 and fix QDP support.
  Add ext_src for generating extended source from propagators
  Add some spectrum calculations to HISQ targets in ks_imp_rhmc
  Add HISQ fermion code from Doug and Alexei
  Add link and action coeffs to all fermion_force calls.
    Remove global accessor calls for these coeffs.
  Change normalization of point sink props in ks_hl_spectrum
    fix seg fault, and allow suppression of correlators in log file.
  Fix nrestart treatment in QOP inverter calls.

For version 7.6.0

  Adds pw_nr_meson. Does P-wave charmonium.
  Support for FNAL correlator format for ks_hl_spectrum.
  Support for double-precision NERSC archive lattices.
  clover_invert2 enlarges the capabilities of clover_invert.
  Support for changed QOPQDP Asqtad inverter conventions
     in qopqdp-0.10.1 with a backward compatibility option in Makefile.
  Partial preparation for HISQ: move calls for fat link creation out of
     all staggered dslash and congrad.  Changes API for all ks_congrad
     and dslash calls - hence a new minor version number.
  Fix bugs in io_source_w_fm.c and in io_helpers_w.c.
  Add capability of reading a sink smearing function.

For version 7.5.0

  Precision selection for QOP and QDP Asqtad fermion force 
     (single & multisource)
  Change to true residual stopping condition in single mass staggered
     and clover inverters.  Prepare for supporting FNAL relative residual.
  Support for fixed mesh layouts (e.g. BG/L and QCDOC)
  Support a variety of FNAL Wilson sources and propagator formats.
  Support for USQCD/SciDAC gauge file format in some applications.
  Dcache I/O support (FNAL)
  Drop site structure temps from gaugefix args.
  Drop site structure args from restrict_fourier args
  New interface for clover inverters.
  Z2 random number support in f_meas
  Support qopqdp-0.7.7 and later for fermion force.
  EVENANDODD KS matrix inversion now does odd-site polish
  Support for QCDOC multi Asqtad force and multi Asqtad inverter
  A few more less-used version 6 apps upgraded to version 7.

For version 7.4.0

  Mixed precision for QOP and QDP inverters, dslash, and supporting
  fermion links.
  Introduced precision selection "prec_pbp" for f_meas.c inversions.
  Made multicg option choice available to applications other than RHMC.
  Support qopqdp-0.7.7 including FNMAT version of multi fermion force
  "initialize_machine" now takes pointers to argc and **argv.
  Support USQCD metadata in SciDAC file output
  Print list of selected options during setup.
  Segregate inclusion of SciDAC headers for faster compilation times
  Libraries "make" builds both precisions independently.
  Make reporting of remapping time optional with macro REMAP.

For version 7.3.1

  Polished the parameter input format for the RHMC.
  Now allow comment lines beginning with # in parameter input.
  Added NERSC checksum to link trace.
  Added more precise timing to the QOP and QDP modules
  including remapping times.

For version 7.3.0

  Nearly complete QOP and QDP support for all major components of
  Asqtad molecular dynamics, including Doug's new multi fermion force.
  Reworked RHMC parameter input and Remez parameter output.
  Added support for more than two pseudofermion fields in RHMC
  Support different CG residuals for RHMC MD, FA, GR.
  Changed inline global make macros to C_GLOBAL_INLINE and
  SSE_GLOBAL_INLINE.
  Added file pointer to get_i, get_f, etc.
  Added nrestart to KS CG routines throughout.
  (These last changes affect most application subdirectories.)

For version 7.2.2

  Upgrade RHMC code to do concurrent EOS calculations
  Fix p4 capability in ks_imp_dyn.
  Distinguish inverter residuals for mol dyn and action.

For version 7.2.1

  Start supporting the QOP/QDP package
  Split out fermion_links_fn from quark_stuff but no QOP support
    for fat and long link generation, yet.
 
  Make sample files precision-specific

For version 7.2.0.1

  Correct the weights for QOP_asqtad_force_multi in fermion_force_asqtad_qop.c
  Restore clobbered sse directory.

For version 7.2.0

  Port clover_dynamical to Version 7
 
  Add RHMC code and rearrange multicg and multi fermion force procedures
 
  Add Level 3 wrappers for Level 3 multicg and multi fermion force
 
  Begin adding plaquette and link trace to MILC file metadata.
 
  Add Urs's gluon_prop

For version 7.1.12

  Fix Level 3 fermion force coef usage

  Support new level 3 interface for asqtad_invert and asqtad_force

  Add clover_invert to Version 7.

For version 7.1.11

  Support new Level 3 API for Asqtad fermion force and inverter
    Support for QOP/QDP awaits upgrade.

  Change write_ksprop_info_item to use fwrite instead of fprintf

  Add MILC imitations of Level 3 force and inverter for testing

  Make dummy QCDML be legitimate XML

For previous versions 7

 1. Unified Makefile replaces Make_vanilla Make_linux_mpi, etc.
    See various macros in Makefile, including MPP.
    Requires GNU make.

 2. Unified support for single and double precision
    See the PRECISION macro in Makefile.

 3. Support for SciDAC QIO
    See the WANTQIO macro in Makefile

 4. Support for SciDAC QDP
    See the WANTQDP macro in Makefile

 5. Support for single and double precision SSE
    Uses the same SSE and SSE_INLINE macros as in version 6,
    except that P3 or P4 compiler macros are not used.

 6. Standalone MILC/FNAL to SciDAC file conversion in file_utilities.

 7. Uses only temp vectors for dslash_fn and d_congrad5_fn.

 8. New applications:

    ks_hl_spectrum: Ludmila's MILC version for the clover heavy
      staggered light spectrum.
    ks_imp_invert_multi: multimass inversion
    ks_imp_utilities: for checking fermion force and inverter

 9. New file_utilities
    Conversion among binary file types for KS and Wilson propagators.
    Differencing for propagator files.

10. Unified I/O for KS propagators supporting Wingate, Fermilab
    and SciDAC formats.

11. Unified I/O for Wilson propagators supporitng MILC, Fermilab,
    and SciDAC formats.

12. Time-slice checksums for Fermilab KS and Wilson propagators.

13. QCDOC support - including the SciDAC Level 3 inverter

14. C-coded optimized fermion force term for QCDOC

15. An assortment of C-inline routines

16. Support for SciDAC Level 3 QOP for QCDOC

17. Support for ILDG lattice formats and QIO parallel I/O.

18. Few-gather and few-sum versions of the MILC inverter.

19. Support for parallel I/O and ILDG LFN

20. Modified multimass inverter to allow arbitrary source points.

21. Add C versions of MILC QOP wrappers.  Make wrappers support QOP/QDP.


C. DeTar, Utah
9 September 2006
