diff --git a/src/main/java/gov/usgs/earthquake/nshmp/gmm/Gmm.java b/src/main/java/gov/usgs/earthquake/nshmp/gmm/Gmm.java
index 974f0b1a3ac0d735532fa2ec3a5ad0576a474be9..9ed68e43552b7ce3b958de98c89566423418d9c0 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/gmm/Gmm.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/gmm/Gmm.java
@@ -850,62 +850,6 @@ public enum Gmm {
       WongEtAl_2015.COEFFS_760,
       WongEtAl_2015.CONSTRAINTS),
 
-  /** @see ZhaoEtAl_2016 */
-  ZHAO_16_SHALLOW_CRUST(
-      ZhaoEtAl_2016.ShallowCrust.class,
-      ZhaoEtAl_2016.ShallowCrust.NAME,
-      ZhaoEtAl_2016.SITE_AMP,
-      ZhaoEtAl_2016.CONSTRAINTS),
-
-  /** @see ZhaoEtAl_2016 */
-  ZHAO_16_UPPER_MANTLE(
-      ZhaoEtAl_2016.UpperMantle.class,
-      ZhaoEtAl_2016.UpperMantle.NAME,
-      ZhaoEtAl_2016.SITE_AMP,
-      ZhaoEtAl_2016.CONSTRAINTS),
-
-  /** @see ZhaoEtAl_2016 */
-  ZHAO_16_INTERFACE(
-      ZhaoEtAl_2016.Interface.class,
-      ZhaoEtAl_2016.Interface.NAME,
-      ZhaoEtAl_2016.SITE_AMP,
-      ZhaoEtAl_2016.CONSTRAINTS),
-
-  /** @see ZhaoEtAl_2016 */
-  ZHAO_16_SLAB(
-      ZhaoEtAl_2016.Slab.class,
-      ZhaoEtAl_2016.Slab.NAME,
-      ZhaoEtAl_2016.SITE_AMP,
-      ZhaoEtAl_2016.CONSTRAINTS),
-
-  /** @see McVerryEtAl_2000 */
-  MCVERRY_00_CRUSTAL(
-      McVerryEtAl_2000.Crustal.class,
-      McVerryEtAl_2000.Crustal.NAME,
-      McVerryEtAl_2000.COEFFS_GM,
-      McVerryEtAl_2000.CONSTRAINTS),
-
-  /** @see McVerryEtAl_2000 */
-  MCVERRY_00_INTERFACE(
-      McVerryEtAl_2000.Interface.class,
-      McVerryEtAl_2000.Interface.NAME,
-      McVerryEtAl_2000.COEFFS_GM,
-      McVerryEtAl_2000.CONSTRAINTS),
-
-  /** @see McVerryEtAl_2000 */
-  MCVERRY_00_SLAB(
-      McVerryEtAl_2000.Slab.class,
-      McVerryEtAl_2000.Slab.NAME,
-      McVerryEtAl_2000.COEFFS_GM,
-      McVerryEtAl_2000.CONSTRAINTS),
-
-  /** @see McVerryEtAl_2000 */
-  MCVERRY_00_VOLCANIC(
-      McVerryEtAl_2000.Volcanic.class,
-      McVerryEtAl_2000.Volcanic.NAME,
-      McVerryEtAl_2000.COEFFS_GM,
-      McVerryEtAl_2000.CONSTRAINTS),
-
   /* NGA-East for USGS */
 
   /** @see NgaEastUsgs_2017 */
@@ -1543,10 +1487,6 @@ public enum Gmm {
     OTHER(
         "Others",
         List.of(
-            ZHAO_16_SHALLOW_CRUST,
-            ZHAO_16_UPPER_MANTLE,
-            ZHAO_16_INTERFACE,
-            ZHAO_16_SLAB,
             ATKINSON_15,
             AB_03_CASCADIA_INTERFACE,
             BCHYDRO_18_NGA_INTERFACE,
@@ -1554,11 +1494,7 @@ public enum Gmm {
             BCHYDRO_12_INTERFACE_BACKARC,
             BCHYDRO_12_INTERFACE_BASIN_BACKARC,
             BCHYDRO_12_SLAB_BACKARC,
-            BCHYDRO_12_SLAB_BASIN_BACKARC,
-            MCVERRY_00_CRUSTAL,
-            MCVERRY_00_INTERFACE,
-            MCVERRY_00_SLAB,
-            MCVERRY_00_VOLCANIC)),
+            BCHYDRO_12_SLAB_BASIN_BACKARC)),
 
     COMBINED(
         "Combined Models",
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/gmm/McVerryEtAl_2000.java b/src/main/java/gov/usgs/earthquake/nshmp/gmm/McVerryEtAl_2000.java
deleted file mode 100644
index 7b1a36821e0cd7771c06732e225af58e789e37eb..0000000000000000000000000000000000000000
--- a/src/main/java/gov/usgs/earthquake/nshmp/gmm/McVerryEtAl_2000.java
+++ /dev/null
@@ -1,430 +0,0 @@
-package gov.usgs.earthquake.nshmp.gmm;
-
-import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkState;
-import static gov.usgs.earthquake.nshmp.gmm.FaultStyle.NORMAL;
-import static gov.usgs.earthquake.nshmp.gmm.FaultStyle.REVERSE;
-import static gov.usgs.earthquake.nshmp.gmm.FaultStyle.REVERSE_OBLIQUE;
-import static gov.usgs.earthquake.nshmp.gmm.FaultStyle.STRIKE_SLIP;
-import static gov.usgs.earthquake.nshmp.gmm.GmmInput.Field.MW;
-import static gov.usgs.earthquake.nshmp.gmm.GmmInput.Field.RAKE;
-import static gov.usgs.earthquake.nshmp.gmm.GmmInput.Field.RRUP;
-import static gov.usgs.earthquake.nshmp.gmm.GmmInput.Field.VS30;
-import static gov.usgs.earthquake.nshmp.gmm.GmmInput.Field.ZHYP;
-import static gov.usgs.earthquake.nshmp.gmm.Imt.PGA;
-import static gov.usgs.earthquake.nshmp.model.TectonicSetting.ACTIVE_CRUST;
-import static gov.usgs.earthquake.nshmp.model.TectonicSetting.VOLCANIC;
-import static java.lang.Math.exp;
-import static java.lang.Math.log;
-import static java.lang.Math.sqrt;
-
-import java.util.Map;
-
-import com.google.common.collect.Range;
-
-import gov.usgs.earthquake.nshmp.Faults;
-import gov.usgs.earthquake.nshmp.gmm.GmmInput.Constraints;
-import gov.usgs.earthquake.nshmp.model.SourceType;
-import gov.usgs.earthquake.nshmp.model.TectonicSetting;
-import gov.usgs.earthquake.nshmp.tree.LogicTree;
-
-/**
- * Abstract implementation of the ground motion model by McVerry et al. (2000).
- *
- * <p><b>Implementation details:</b><ul><li>McVerry proposes a hanging wall term
- * but it was not specifically modeled and is not implemented here.</li><li> New
- * Zealand uses site classes that do not strictly correspond to fixed ranges of
- * Vs30, in contrast with the US model; NZ soil site classes C and D consider
- * stratification and site-specific response period. This implementation uses
- * the following New Zealend site class to Vs30 values for convenience and
- * consistency with the majority of other ground motion models:<ul><li>Class A:
- * 1500 &lt; Vs30</li><li>Class B: 360 &lt; Vs30 ≤ 1500</li><li>Class C: 250
- * &lt; Vs30 ≤ 360</li><li>Class D: 150 &lt; Vs30 ≤ 250</li><li>Class E: s30 ≤
- * 150 (not supported)</li></ul></li></ul>
- *
- * <p><b>Model applicability:</b> Prior implementations restricted distance to
- * 400km, foacl depths to 100km, and Magnitudes between 5.0 and 8.5. However the
- * model supports a range of tectonic settings and McVerry et al. (2006)
- * restrict magnitude to 7.5 and distance to 400km for curstal earthquakes, and
- * restrict magnitudes to 8.0 and distances to 500km for subduction
- * earthquake.<p>
- *
- * <p><b>Reference:</b> McVerry, G.H., Zhao, J.X., Abrahamson, N.A., and
- * Somerville, P.G., 2000, Crustal and subduction zone attenuation realations
- * for New Zealand earthquakes: Proc 12th World conference on earthquake
- * engineering, Auckland, New Zealand, February, 2000.
- *
- * <p><b>Reference:</b> McVerry, G.H., Zhao, J.X., Abrahamson, N.A., and
- * Somerville, P.G., 2000, New Zealand acceleration response spectrum
- * attenuation relations for crustal and subduction zone earthquakes: Bulletin
- * of the New Zealand Society of Earthquake Engineering, v. 39, n. 4, p. 1-58.
- *
- * <p><b>doi:</b> <a href="http://doi.org/10.5459/BNZSEE.39.1.1-58">
- * 10.5459/BNZSEE.39.1.1-58</a>
- *
- * <p><b>Component:</b> Model supports geometric mean or maximum of two
- * horizontal components; only concrete implementations of max-horizontal
- * component are provided at this time.
- *
- * @author Brendon A. Bradley
- * @author U.S. Geological Survey
- * @see Gmm#MCVERRY_00_CRUSTAL
- * @see Gmm#MCVERRY_00_INTERFACE
- * @see Gmm#MCVERRY_00_SLAB
- * @see Gmm#MCVERRY_00_VOLCANIC
- */
-public abstract class McVerryEtAl_2000 implements GroundMotionModel {
-
-  // Need hypocentral depth for subduction
-
-  // NOTE: Changed rake cutoffs to be symmetric and conform with 2006 pub.
-  // NOTE: updated NZ_SourceID to collapse SR RS keys
-
-  static final String NAME = "McVerry et al. (2000)";
-
-  // Probably want to have constraints per-implementation
-  // (e.g. zHyp only used by subduction)
-
-  static final Constraints CONSTRAINTS = Constraints.builder()
-      .set(MW, Range.closed(4.0, 8.0))
-      .set(RRUP, Range.closed(0.0, 200.0))
-      .set(ZHYP, Range.closed(0.0, 20.0))
-      .set(RAKE, Faults.RAKE_RANGE)
-      .set(VS30, Range.closed(150.0, 1500.0))
-      .build();
-
-  // geomean and max-horizontal coefficients
-  static final CoefficientContainer COEFFS_GM = new CoefficientContainer("McVerry00_gm.csv");
-  static final CoefficientContainer COEFFS_MH = new CoefficientContainer("McVerry00_mh.csv");
-
-  private static final double C4AS = -0.144;
-  private static final double C6AS = 0.17;
-  private static final double C12Y = 1.414;
-  private static final double C18Y = 1.7818;
-  private static final double C19Y = 0.554;
-  private static final double C32 = -0.2;
-
-  private static final class Coefficients {
-
-    // 'as' and 'y' suffixes indicate attribution to
-    // Abrahamson & Silva or Youngs et al.
-
-    final Imt imt;
-    final double c1, c3as, c5, c8, c10as, c11, c13y, c15, c17, c20, c24, c29, c30as, c33as,
-        c43, c46, σ6, σSlope, τ;
-
-    Coefficients(Imt imt, CoefficientContainer cc) {
-      this.imt = imt;
-      Map<String, Double> coeffs = cc.get(imt);
-      c1 = coeffs.get("c1");
-      c3as = coeffs.get("c3as");
-      c5 = coeffs.get("c5");
-      c8 = coeffs.get("c8");
-      c10as = coeffs.get("c10as");
-      c11 = coeffs.get("c11");
-      c13y = coeffs.get("c13y");
-      c15 = coeffs.get("c15");
-      c17 = coeffs.get("c17");
-      c20 = coeffs.get("c20");
-      c24 = coeffs.get("c24");
-      c29 = coeffs.get("c29");
-      c30as = coeffs.get("c30as");
-      c33as = coeffs.get("c33as");
-      c43 = coeffs.get("c43");
-      c46 = coeffs.get("c46");
-      σ6 = coeffs.get("sigma6");
-      σSlope = coeffs.get("sigSlope");
-      Ï„ = coeffs.get("tau");
-    }
-
-    // pga'
-    Coefficients(boolean geomean) {
-      imt = PGA;
-      if (geomean) {
-        c1 = 0.07713;
-        c3as = 0.0;
-        c5 = -0.00898;
-        c8 = -0.73728;
-        c10as = 5.6;
-        c11 = 8.08611;
-        c13y = 0.0;
-        c15 = -2.552;
-        c17 = -2.49894;
-        c20 = 0.0159;
-        c24 = -0.43223;
-        c29 = 0.3873;
-        c30as = -0.23;
-        c33as = 0.26;
-        c43 = -0.31036;
-        c46 = -0.0325;
-        σ6 = 0.5099;
-        σSlope = -0.0259;
-        Ï„ = 0.2469;
-      } else {
-        // max horizontal
-        c1 = 0.1813;
-        c3as = 0.0;
-        c5 = -0.00846;
-        c8 = -0.75519;
-        c10as = 5.6;
-        c11 = 8.10697;
-        c13y = 0.0;
-        c15 = -2.552;
-        c17 = -2.48795;
-        c20 = 0.01622;
-        c24 = -0.41369;
-        c29 = 0.44307;
-        c30as = -0.23;
-        c33as = 0.26;
-        c43 = -0.29648;
-        c46 = -0.03301;
-        σ6 = 0.5035;
-        σSlope = -0.0635;
-        Ï„ = 0.2598;
-      }
-    }
-  }
-
-  private final Coefficients coeffs;
-  private final Coefficients coeffsPGA;
-  private final Coefficients coeffsPGAprime;
-
-  McVerryEtAl_2000(Imt imt) {
-    coeffs = new Coefficients(imt, isGeomean() ? COEFFS_GM : COEFFS_MH);
-    coeffsPGA = new Coefficients(PGA, isGeomean() ? COEFFS_GM : COEFFS_MH);
-    coeffsPGAprime = new Coefficients(isGeomean());
-  }
-
-  @Override
-  public final LogicTree<GroundMotion> calc(GmmInput in) {
-    double μ = calcMean(coeffs, coeffsPGA, coeffsPGAprime, tectonicSetting(), sourceType(), in);
-    double σ = calcStdDev(coeffs, in.Mw);
-    return GroundMotions.createTree(μ, σ);
-  }
-
-  /* as opposed to greatest horizontal */
-  abstract boolean isGeomean();
-
-  /* as opposed to subduction */
-  abstract TectonicSetting tectonicSetting();
-
-  abstract SourceType sourceType();
-
-  private static double calcMean(Coefficients c, Coefficients cPGA,
-      Coefficients cPGAp, TectonicSetting tect, SourceType type, GmmInput in) {
-
-    double pgaMean = calcMeanBase(cPGA, tect, type, in);
-
-    if (c.imt == PGA) {
-      return pgaMean;
-    }
-
-    double pga_prime = exp(calcMeanBase(cPGAp, tect, type, in));
-    double sa_prime = exp(calcMeanBase(c, tect, type, in));
-    return log(sa_prime * exp(pgaMean) / pga_prime);
-  }
-
-  private static double calcMeanBase(Coefficients c, TectonicSetting tect,
-      SourceType type, GmmInput in) {
-
-    double lnSA_AB = (tect == ACTIVE_CRUST || tect == VOLCANIC)
-        ? calcCrustal(c, tect, in) : calcSubduction(c, type, in);
-
-    double lnSA_CD = calcSiteTerm(c, in.vs30, lnSA_AB);
-
-    return lnSA_AB + lnSA_CD;
-  }
-
-  private static double calcCrustal(Coefficients c, TectonicSetting tect,
-      GmmInput in) {
-
-    double Mw = in.Mw;
-    double rRup = in.rRup;
-
-    double rVol = (tect == VOLCANIC) ? rRup : 0.0;
-
-    FaultStyle style = rakeToFaultStyle(in.rake);
-    double faultTerm = (style == REVERSE) ? c.c33as : (style == REVERSE_OBLIQUE)
-        ? c.c33as * 0.5 : (style == NORMAL) ? C32 : 0.0;
-
-    return c.c1 +
-        C4AS * (Mw - 6.0) +
-        c.c3as * (8.5 - Mw) * (8.5 - Mw) +
-        c.c5 * rRup +
-        (c.c8 + C6AS * (Mw - 6.0)) * log(sqrt(rRup * rRup + c.c10as * c.c10as)) +
-        c.c46 * rVol + faultTerm;
-  }
-
-  private static double calcSubduction(Coefficients c, SourceType type,
-      GmmInput in) {
-
-    double Mw = in.Mw;
-    double magTerm = 10 - Mw;
-
-    double subTerm = (type == SourceType.INTERFACE) ? c.c24 : 0.0;
-
-    return c.c11 +
-        (C12Y + (c.c15 - c.c17) * C19Y) * (Mw - 6) +
-        c.c13y * magTerm * magTerm * magTerm +
-        c.c17 * log(in.rRup + C18Y * exp(C19Y * Mw)) +
-        c.c20 * in.zHyp + subTerm;
-
-    // NOTE: tectonic setting terms from publication:
-    // c.c24 * SI + c.c46 * rVol * (1 - DS);
-    //
-    // volcanic sources will always be fed to calcCrustal so rVol will
-    // alwyas be 0.0 here; only interface (or not) matters.
-  }
-
-  private static double calcSiteTerm(Coefficients c, double vs30,
-      double lnSA_AB) {
-    SiteClass siteClass = SiteClass.fromVs30(vs30);
-    checkState(siteClass != SiteClass.E);
-    return (siteClass == SiteClass.C) ? c.c29
-        : (siteClass == SiteClass.D) ? c.c30as * log(exp(lnSA_AB) + 0.03) + c.c43 : 0.0;
-  }
-
-  private double calcStdDev(Coefficients c, double Mw) {
-    double sigma = c.σ6 +
-        ((Mw >= 7.0) ? c.σSlope : (Mw <= 5.0) ? -c.σSlope : c.σSlope * (Mw - 6.0));
-    return sqrt(sigma * sigma + c.Ï„ * c.Ï„);
-  }
-
-  // @formatter:on
-
-  /*
-   * New Zealand site classes; these do not stricly correspond to ranges of vs30
-   * values
-   */
-  private static enum SiteClass {
-    A(1500.0),
-    B(360.0),
-    C(250.0),
-    D(150.0),
-    E(0.0);
-
-    private double min;
-
-    private SiteClass(double min) {
-      this.min = min;
-    }
-
-    static SiteClass fromVs30(double vs30) {
-      checkArgument(vs30 > 0.0);
-      for (SiteClass siteClass : values()) {
-        if (vs30 > siteClass.min) {
-          return siteClass;
-        }
-      }
-      throw new IllegalStateException("Shouldn't be here");
-    }
-  }
-
-  private static FaultStyle rakeToFaultStyle(double rake) {
-    if ((rake > 33 && rake <= 56) || (rake >= 124 && rake < 147)) {
-      return REVERSE_OBLIQUE;
-    } else if (rake > 56 && rake < 124) {
-      return REVERSE;
-    } else if (rake > -147 && rake < -33) {
-      return NORMAL;
-    } else {
-      // rake <= -147 || rake >= 147
-      // rake <= 33 && rake >= -33
-      return STRIKE_SLIP;
-    }
-  }
-
-  static final class Crustal extends McVerryEtAl_2000 {
-    final static String NAME = McVerryEtAl_2000.NAME + " : Crustal";
-
-    Crustal(Imt imt) {
-      super(imt);
-    }
-
-    @Override
-    boolean isGeomean() {
-      return false;
-    }
-
-    @Override
-    TectonicSetting tectonicSetting() {
-      return TectonicSetting.ACTIVE_CRUST;
-    }
-
-    @Override
-    SourceType sourceType() {
-      // irrelevant to implementation
-      return SourceType.FAULT;
-    }
-  }
-
-  static final class Volcanic extends McVerryEtAl_2000 {
-    final static String NAME = McVerryEtAl_2000.NAME + " : Volcanic";
-
-    Volcanic(Imt imt) {
-      super(imt);
-    }
-
-    @Override
-    boolean isGeomean() {
-      return false;
-    }
-
-    @Override
-    TectonicSetting tectonicSetting() {
-      return TectonicSetting.VOLCANIC;
-    }
-
-    @Override
-    SourceType sourceType() {
-      // irrelevant to implementation
-      return SourceType.GRID;
-    }
-  }
-
-  static final class Interface extends McVerryEtAl_2000 {
-    final static String NAME = McVerryEtAl_2000.NAME + " : Interface";
-
-    Interface(Imt imt) {
-      super(imt);
-    }
-
-    @Override
-    boolean isGeomean() {
-      return false;
-    }
-
-    @Override
-    TectonicSetting tectonicSetting() {
-      return TectonicSetting.SUBDUCTION;
-    }
-
-    @Override
-    SourceType sourceType() {
-      return SourceType.INTERFACE;
-    }
-  }
-
-  static final class Slab extends McVerryEtAl_2000 {
-    final static String NAME = McVerryEtAl_2000.NAME + " : Slab";
-
-    Slab(Imt imt) {
-      super(imt);
-    }
-
-    @Override
-    boolean isGeomean() {
-      return false;
-    }
-
-    @Override
-    TectonicSetting tectonicSetting() {
-      return TectonicSetting.SUBDUCTION;
-    }
-
-    @Override
-    SourceType sourceType() {
-      return SourceType.SLAB;
-    }
-  }
-}
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/gmm/ZhaoEtAl_2006.java b/src/main/java/gov/usgs/earthquake/nshmp/gmm/ZhaoEtAl_2006.java
index 51b8d595b8ede8076f3fda66e89fad1508870532..b46893692d060e49b93987d379221687476dfd19 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/gmm/ZhaoEtAl_2006.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/gmm/ZhaoEtAl_2006.java
@@ -31,9 +31,7 @@ import com.google.common.collect.Range;
 import com.google.common.collect.Sets;
 
 import gov.usgs.earthquake.nshmp.Earthquakes;
-import gov.usgs.earthquake.nshmp.data.Interpolator;
 import gov.usgs.earthquake.nshmp.gmm.GmmInput.Constraints;
-import gov.usgs.earthquake.nshmp.gmm.ZhaoEtAl_2016.SiteClass;
 import gov.usgs.earthquake.nshmp.tree.LogicTree;
 
 /**
@@ -286,36 +284,6 @@ public abstract class ZhaoEtAl_2006 implements GroundMotionModel {
             : c.C3;
   }
 
-  private static final double siteTermSmooth(Coefficients c, double vs30) {
-    Range<SiteClass> siteRange = ZhaoEtAl_2016.siteRange(vs30);
-    SiteClass lower = siteRange.upperEndpoint();
-    SiteClass upper = siteRange.lowerEndpoint();
-    if (lower == upper) {
-      return siteCoeff(c, lower);
-    }
-    double fsLower = siteCoeff(c, lower);
-    double fsUpper = siteCoeff(c, upper);
-    return Interpolator.findY(
-        lower.vs30, fsLower,
-        upper.vs30, fsUpper,
-        vs30);
-  }
-
-  private static double siteCoeff(Coefficients c, SiteClass siteClass) {
-    switch (siteClass) {
-      case I:
-        return c.C1;
-      case II:
-        return c.C2;
-      case III:
-        return c.C3;
-      case IV:
-        return c.C4;
-      default:
-        throw new IllegalStateException();
-    }
-  }
-
   /*
    * Developer note: In most GMMs, subtype constructors, if present, need only
    * the IMT argument to initialize their parent. To support several
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/gmm/ZhaoEtAl_2016.java b/src/main/java/gov/usgs/earthquake/nshmp/gmm/ZhaoEtAl_2016.java
deleted file mode 100644
index 0a1caacaf69aaead92c01b3be4d2d8b4dfffbb98..0000000000000000000000000000000000000000
--- a/src/main/java/gov/usgs/earthquake/nshmp/gmm/ZhaoEtAl_2016.java
+++ /dev/null
@@ -1,704 +0,0 @@
-package gov.usgs.earthquake.nshmp.gmm;
-
-import static gov.usgs.earthquake.nshmp.gmm.FaultStyle.NORMAL;
-import static gov.usgs.earthquake.nshmp.gmm.FaultStyle.REVERSE;
-import static gov.usgs.earthquake.nshmp.gmm.GmmInput.Field.MW;
-import static gov.usgs.earthquake.nshmp.gmm.GmmInput.Field.RRUP;
-import static gov.usgs.earthquake.nshmp.gmm.GmmInput.Field.VS30;
-import static gov.usgs.earthquake.nshmp.gmm.GmmInput.Field.ZTOR;
-import static java.lang.Math.exp;
-import static java.lang.Math.log;
-import static java.lang.Math.min;
-import static java.lang.Math.sqrt;
-
-import java.util.Map;
-
-import com.google.common.annotations.Beta;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Maps;
-import com.google.common.collect.Range;
-
-import gov.usgs.earthquake.nshmp.Earthquakes;
-import gov.usgs.earthquake.nshmp.data.Interpolator;
-import gov.usgs.earthquake.nshmp.gmm.GmmInput.Constraints;
-import gov.usgs.earthquake.nshmp.tree.LogicTree;
-
-/**
- * Abstract implementation of the shallow crustal, upper mantle, subduction
- * interface, and subduction slab ground motion models by Zhao et al. (2016).
- *
- * <p><b>Implementation notes:</b><ul>
- *
- * <li>All models supply site-class specific sigma, however, only the total
- * sigma is used here as reported in the various coefficient tables.</li>
- *
- * <li>All models currently ignore volcanic path terms.</li>
- *
- * <li>The interface model handles shallow, {@code zHyp ≤ 25 km}, and deep,
- * {@code zHyp > 25 km}, events differently.</li>
- *
- * <li>THe site amplification term is handled via interpolation of terms
- * computed for discrete Vs30 values that correspond to the Zhao site classes:
- * I, II, III, and IV.</li>
- *
- * </ul>
- *
- * <p><b>References:</b><ul>
- *
- * <li>Zhao, J.X., Liang, X., Jiang, F., Xing, H., Zhu, M., Hou, R., Zhang, Y.,
- * Lan, X., Rhoades, D.A., Irikura, K., Fukushima, Y., and Somerville, P.G.,
- * 2016, Ground-motion prediction equations for subduction interface earthquakes
- * in Japan using site class and simple geometric attenuation functions:
- * Bulletin of the Seismological Society of America, v. 106, p.
- * 1518-1534.<b>doi:</b> <a href="http://dx.doi.org/10.1785/0120150034">
- * 10.1785/0120150034</a></li>
- *
- * <li>Zhao, J.X., Jiang, F., Shi, P., Xing, H., Huang, H., Hou, R., Zhang, Y.,
- * Yu, P., Lan, X., Rhoades, D.A., Somerville, P.G., Irikura, K., and Fukushima,
- * Y., 2016, Ground-motion prediction equations for subduction slab earthquakes
- * in Japan using site class and simple geometric attenuation functions:
- * Bulletin of the Seismological Society of America, v. 106, p.
- * 1535-1551.<b>doi:</b> <a href="http://dx.doi.org/10.1785/0120150056">
- * 10.1785/0120150056</a></li>
- *
- * <li>Zhao, J.X., Zhou, S.L., Gao, P.J., Zhang, Y.B., Zhou, J., Lu, M., and
- * Rhoades, D.A., 2016, Ground-motion prediction equations for shallow crustal
- * and upper mantle earthquakes in Japan using site class and simple geometric
- * attenuation functions: Bulletin of the Seismological Society of America, v.
- * 106, p. 1552-1569.<b>doi:</b> <a href="http://dx.doi.org/10.1785/0120150063">
- * 10.1785/0120150063</a></li>
- *
- * </ul>
- *
- * <p><b>Component:</b> geometric mean of two randomly oriented horizontal
- * components
- *
- * @author U.S. Geological Survey
- * @see Gmm#ZHAO_16_SHALLOW_CRUST
- * @see Gmm#ZHAO_16_UPPER_MANTLE
- * @see Gmm#ZHAO_16_INTERFACE
- * @see Gmm#ZHAO_16_SLAB
- */
-@Beta
-public abstract class ZhaoEtAl_2016 implements GroundMotionModel {
-
-  /*
-   * Implementation notes:
-   *
-   * Site amplification terms shared by all models, Table 3, Zhao, Zhou et al.
-   * (2016) stored in Zhao16_siteamp.csv. The 'rock-site factor' (AmSCI) was
-   * removed from this table because the values were independently smoothed in
-   * the interface model; AmSCI is included as a coefficient with the values in
-   * the curstal and slab tables being the same.
-   *
-   * See notes in nonlinCrossover().
-   */
-
-  static final String NAME = "Zhao et al. (2016)";
-
-  static final Constraints CONSTRAINTS = Constraints.builder()
-      .set(MW, Range.closed(5.0, 9.5))
-      .set(RRUP, Range.closed(0.0, 1000.0))
-      .set(ZTOR, Earthquakes.SLAB_DEPTH_RANGE)
-      .set(VS30, Range.closed(150.0, 1000.0))
-      .build();
-
-  static final CoefficientContainer COEFFS_CRUST = new CoefficientContainer("Zhao16_crust.csv");
-  static final CoefficientContainer COEFFS_INTER = new CoefficientContainer("Zhao16_interface.csv");
-  static final CoefficientContainer COEFFS_SLAB = new CoefficientContainer("Zhao16_slab.csv");
-  static final CoefficientContainer SITE_AMP = new CoefficientContainer("Zhao16_siteamp.csv");
-
-  private final SiteAmp siteAmp;
-
-  private static final double MC = 7.1;
-  private static final double X_0_CR = 2.0;
-  private static final double X_0_INT = 10.0;
-
-  ZhaoEtAl_2016(Imt imt) {
-    siteAmp = new SiteAmp(imt, SITE_AMP);
-  }
-
-  /*
-   * Compute the natural-log "hard-rock" ground motion. This is the basic ground
-   * motion model without the site term, ln(A).
-   */
-  abstract double saRock(GmmInput in);
-
-  /*
-   * The elastic site amplification ratio, aNmax, is unique to each site class
-   * and model. The interface model has depth dependent values; zTor is ignored
-   * by other implementations.
-   */
-  abstract double elasticSiteAmpRatio(SiteClass siteClass, double zTor);
-
-  /*
-   * Model and site-class dependent nonlinear soil site smoothing factor.
-   */
-  abstract double smoothingFactor(SiteClass siteClass);
-
-  abstract double sigma();
-
-  @Override
-  public LogicTree<GroundMotion> calc(GmmInput in) {
-    double lnSaRock = saRock(in);
-    double siteTerm = siteTerm(in, exp(lnSaRock));
-    return GroundMotions.createTree(
-        lnSaRock + siteTerm,
-        sigma());
-  }
-
-  private double siteTerm(GmmInput in, double saRock) {
-    Range<SiteClass> siteRange = siteRange(in.vs30);
-    /*
-     * Reverse range values here because lower site classes correspond to higher
-     * Vs30 values.
-     */
-    SiteClass lower = siteRange.upperEndpoint();
-    SiteClass upper = siteRange.lowerEndpoint();
-    if (lower == upper) {
-      return siteTerm(lower, in.zTor, saRock);
-    }
-    double fsLower = siteTerm(lower, in.zTor, saRock);
-    double fsUpper = siteTerm(upper, in.zTor, saRock);
-    return Interpolator.findY(
-        lower.vs30, fsLower,
-        upper.vs30, fsUpper,
-        in.vs30);
-  }
-
-  private double siteTerm(SiteClass siteClass, double zTor, double saRock) {
-    double aNmax = elasticSiteAmpRatio(siteClass, zTor);
-    double aMax = siteAmp.aMax.get(siteClass);
-    double sRC = siteAmp.sRc.get(siteClass);
-    double Imf = siteClass.impedance;
-    double fSR = smoothingFactor(siteClass);
-    return siteTerm(aNmax, aMax, sRC, Imf, fSR, saRock);
-  }
-
-  /*
-   * Zhao, Zhou, et al. (2016)
-   */
-  static final class ShallowCrust extends ZhaoEtAl_2016 {
-
-    static final String NAME = ZhaoEtAl_2016.NAME + " : Shallow Crust";
-
-    /* Tables 4, 5, 6 */
-    static final class Coefficients {
-
-      final double c1, c2, c, d, fN, b, g, gL, gN, e, γ, σ;
-
-      /* Site amplification */
-      final double AmSCI, s2, s3, s4;
-      final Map<SiteClass, Double> fsr;
-
-      /* Unused or constant: FumRV, FumNS, gum, eum, evcr, sigma, tau */
-
-      Coefficients(Imt imt, CoefficientContainer cc) {
-
-        Map<String, Double> coeffs = cc.get(imt);
-        c1 = coeffs.get("c1");
-        c2 = coeffs.get("c2");
-        c = coeffs.get("ccr");
-        d = coeffs.get("dcr");
-        fN = coeffs.get("FcrN");
-        b = coeffs.get("bcr");
-        g = coeffs.get("gcr");
-        gL = coeffs.get("gcrL");
-        gN = coeffs.get("gcrN");
-        e = coeffs.get("ecr");
-        γ = coeffs.get("gamma");
-        σ = coeffs.get("sigmaT");
-
-        AmSCI = coeffs.get("AmSCI");
-        s2 = coeffs.get("S2");
-        s3 = coeffs.get("S3");
-        s4 = coeffs.get("S4");
-
-        fsr = Maps.immutableEnumMap(ImmutableMap.of(
-            SiteClass.I, coeffs.get("FsrCrI"),
-            SiteClass.II, coeffs.get("FsrCrII"),
-            SiteClass.III, coeffs.get("FsrCrIII"),
-            SiteClass.IV, coeffs.get("FsrCrIV")));
-      }
-    }
-
-    private final Coefficients c;
-    private final Map<SiteClass, Double> aNmax;
-
-    ShallowCrust(Imt imt) {
-      super(imt);
-      c = new Coefficients(imt, COEFFS_CRUST);
-      aNmax = Maps.immutableEnumMap(ImmutableMap.of(
-          SiteClass.I, c.AmSCI,
-          SiteClass.II, c.AmSCI * exp(c.s2),
-          SiteClass.III, c.AmSCI * exp(c.s3),
-          SiteClass.IV, c.AmSCI * exp(c.s4)));
-    }
-
-    @Override
-    final double saRock(GmmInput in) {
-
-      FaultStyle style = GmmUtils.rakeToFaultStyle_NSHMP(in.rake);
-      double Mw = in.Mw;
-      double rRup = in.rRup;
-
-      /* Source term; equation 1 */
-      double mTerm = (Mw > MC) ? c.c * MC + c.d * (Mw - MC) : c.c * Mw;
-      double fm = c.b * in.zTor + mTerm + (style == NORMAL ? c.fN : 0.0);
-
-      /* Geometric spreading distance; equation 4 */
-      double r = X_0_CR + rRup + exp(c.c1 + c.c2 * min(Mw, MC));
-
-      /* Geometric attenuation terms; equations 3, 6 */
-      double fg = c.g * log(r) +
-          c.gL * log(in.rRup + 200.0) +
-          c.gN * log(min(rRup, 30.0) + exp(c.c1 + 6.5 * c.c2));
-
-      /* Anelastic attenuation term; volcanic ignored (eV * rRup) */
-      double fe = c.e * in.rRup;
-
-      return fm + fg + fe + c.γ;
-    }
-
-    @Override
-    final double elasticSiteAmpRatio(SiteClass siteClass, double zTor) {
-      return aNmax.get(siteClass);
-    }
-
-    @Override
-    double smoothingFactor(SiteClass siteClass) {
-      return c.fsr.get(siteClass);
-    }
-
-    @Override
-    final double sigma() {
-      return c.σ;
-    }
-  }
-
-  /*
-   * Zhao, Zhou, et al. (2016)
-   */
-  static final class UpperMantle extends ZhaoEtAl_2016 {
-
-    static final String NAME = ZhaoEtAl_2016.NAME + " : Upper Mantle";
-
-    /* Tables 4, 5, 6 */
-    static final class Coefficients {
-
-      final double c1, c2, c, d, fRV, fNS, g, gL, gN, e, γ, σ;
-
-      /* Site amplification */
-      final double AmSCI, s2, s3, s4;
-      final Map<SiteClass, Double> fsr;
-
-      /* Unused or constant: FcrN, bcr, gcr, ecr, evcr, sigma, tau */
-
-      Coefficients(Imt imt, CoefficientContainer cc) {
-
-        Map<String, Double> coeffs = cc.get(imt);
-        c1 = coeffs.get("c1");
-        c2 = coeffs.get("c2");
-        c = coeffs.get("ccr");
-        d = coeffs.get("dcr");
-        fRV = coeffs.get("FumRV");
-        fNS = coeffs.get("FumNS");
-        g = coeffs.get("gum");
-        gL = coeffs.get("gcrL");
-        gN = coeffs.get("gcrN");
-        e = coeffs.get("eum");
-        γ = coeffs.get("gamma");
-        σ = coeffs.get("sigmaT");
-
-        AmSCI = coeffs.get("AmSCI");
-        s2 = coeffs.get("S2");
-        s3 = coeffs.get("S3");
-        s4 = coeffs.get("S4");
-
-        fsr = Maps.immutableEnumMap(ImmutableMap.of(
-            SiteClass.I, coeffs.get("FsrUmI"),
-            SiteClass.II, coeffs.get("FsrUmII"),
-            SiteClass.III, coeffs.get("FsrUmIII"),
-            SiteClass.IV, coeffs.get("FsrUmIV")));
-      }
-    }
-
-    private final Coefficients c;
-    private final Map<SiteClass, Double> aNmax;
-
-    UpperMantle(Imt imt) {
-      super(imt);
-      c = new Coefficients(imt, COEFFS_CRUST);
-      aNmax = Maps.immutableEnumMap(ImmutableMap.of(
-          SiteClass.I, c.AmSCI,
-          SiteClass.II, c.AmSCI * exp(c.s2),
-          SiteClass.III, c.AmSCI * exp(c.s3),
-          SiteClass.IV, c.AmSCI * exp(c.s4)));
-    }
-
-    @Override
-    final double saRock(GmmInput in) {
-
-      FaultStyle style = GmmUtils.rakeToFaultStyle_NSHMP(in.rake);
-      double Mw = in.Mw;
-      double rRup = in.rRup;
-
-      /* Source term; equation 2 */
-      double mTerm = (Mw > MC) ? c.c * MC + c.d * (Mw - MC) : c.c * Mw;
-      double fm = mTerm + (style == REVERSE ? c.fRV : c.fNS);
-
-      /* Geometric spreading distance; equation 4 */
-      double r = X_0_CR + rRup + exp(c.c1 + c.c2 * min(Mw, MC));
-
-      /* Geometric attenuation terms; equations 6, 7 */
-      double fg = c.g * log(r) +
-          c.gL * log(in.rRup + 200.0) +
-          c.gN * log(min(rRup, 30.0) + exp(c.c1 + 6.5 * c.c2));
-
-      /* Anelastic attenuation term; volcanic ignored (eV * rRup) */
-      double fe = c.e * in.rRup;
-
-      return fm + fg + fe + c.γ;
-    }
-
-    @Override
-    final double elasticSiteAmpRatio(SiteClass siteClass, double zTor) {
-      return aNmax.get(siteClass);
-    }
-
-    @Override
-    double smoothingFactor(SiteClass siteClass) {
-      return c.fsr.get(siteClass);
-    }
-
-    @Override
-    final double sigma() {
-      return c.σ;
-    }
-  }
-
-  /*
-   * Zhao, Liang, et al. (2016)
-   *
-   * Notes: use x_ij = rRup iff fault plane known, otherwise rHyp
-   */
-  static final class Interface extends ZhaoEtAl_2016 {
-
-    static final String NAME = ZhaoEtAl_2016.NAME + " : Interface";
-
-    private static final double C2 = 1.151;
-
-    /* Tables 2, 3, 4, 5 */
-    static final class Coefficients {
-
-      final double c1, cD, cS, d, γS, b, g, gDL, gSL, eS, γ, σ;
-
-      /* Site amplification */
-      final double AmSCI, s2, s3, s4, s5, s6, s7;
-      final Map<SiteClass, Double> fsr;
-
-      /* Unused or constant: c2, eV, sigma, tau */
-
-      Coefficients(Imt imt, CoefficientContainer cc) {
-
-        Map<String, Double> coeffs = cc.get(imt);
-        c1 = coeffs.get("c1");
-        cD = coeffs.get("cD");
-        cS = coeffs.get("cS");
-        d = coeffs.get("d");
-        γS = coeffs.get("gammaS");
-        b = coeffs.get("b");
-        g = coeffs.get("g");
-        gDL = coeffs.get("gDL");
-        gSL = coeffs.get("gSL");
-        eS = coeffs.get("eS");
-        γ = coeffs.get("gamma");
-        σ = coeffs.get("sigmaT");
-
-        AmSCI = coeffs.get("AmSCI");
-        s2 = coeffs.get("S2");
-        s3 = coeffs.get("S3");
-        s4 = coeffs.get("S4");
-        s5 = coeffs.get("S5");
-        s6 = coeffs.get("S6");
-        s7 = coeffs.get("S7");
-
-        fsr = Maps.immutableEnumMap(ImmutableMap.of(
-            SiteClass.I, coeffs.get("FsrI"),
-            SiteClass.II, coeffs.get("FsrII"),
-            SiteClass.III, coeffs.get("FsrIII"),
-            SiteClass.IV, coeffs.get("FsrIV")));
-      }
-    }
-
-    private final Coefficients c;
-    private final Map<SiteClass, Double> aNmax_shallow;
-    private final Map<SiteClass, Double> aNmax_deep;
-
-    Interface(Imt imt) {
-      super(imt);
-      c = new Coefficients(imt, COEFFS_INTER);
-      aNmax_shallow = Maps.immutableEnumMap(ImmutableMap.of(
-          SiteClass.I, c.AmSCI,
-          SiteClass.II, c.AmSCI * exp(c.s2),
-          SiteClass.III, c.AmSCI * exp(c.s3),
-          SiteClass.IV, c.AmSCI * exp(c.s4)));
-      aNmax_deep = Maps.immutableEnumMap(ImmutableMap.of(
-          SiteClass.I, c.AmSCI,
-          SiteClass.II, c.AmSCI * exp(c.s5),
-          SiteClass.III, c.AmSCI * exp(c.s6),
-          SiteClass.IV, c.AmSCI * exp(c.s7)));
-    }
-
-    @Override
-    final double saRock(GmmInput in) {
-
-      double Mw = in.Mw;
-      double rRup = in.rRup;
-      boolean deep = in.zHyp > 25.0;
-
-      /* Source term; equations 1, 2 */
-      double cDepth = deep ? c.cD : c.cS;
-      double mTerm = (Mw > MC) ? cDepth * MC + c.d * (Mw - MC) : cDepth * Mw;
-      double fm = c.b * in.zTor + c.γS + mTerm;
-
-      /* Geometric spreading distance; equation 4 */
-      double r = X_0_INT + rRup + exp(c.c1 + C2 * min(Mw, MC));
-
-      /* Geometric attenuation terms; equations 3a, 6 */
-      double fg = c.g * log(r) + (deep ? c.gDL : c.gSL) * log(rRup + 200.0);
-
-      /* Anelastic attenuation (shallow only); volcanic ignored (eV * rV) */
-      double fe = deep ? 0.0 : c.eS * rRup;
-
-      return fm + fg + fe + c.γ;
-    }
-
-    @Override
-    final double elasticSiteAmpRatio(SiteClass siteClass, double zTor) {
-      return (zTor > 25.0 ? aNmax_deep : aNmax_shallow).get(siteClass);
-    }
-
-    @Override
-    double smoothingFactor(SiteClass siteClass) {
-      return c.fsr.get(siteClass);
-    }
-
-    @Override
-    final double sigma() {
-      return c.σ;
-    }
-  }
-
-  /*
-   * Zhao, Jiang, et al. (2016)
-   */
-  static final class Slab extends ZhaoEtAl_2016 {
-
-    static final String NAME = ZhaoEtAl_2016.NAME + " : Slab";
-
-    private static final double MSC = 6.3;
-    private static final double ΔMC = MC - MSC;
-    private static final double ΔMCSQ = ΔMC * ΔMC;
-    private static final double C2 = 1.151;
-
-    /* Tables 4, 5, 6, 7 */
-    static final class Coefficients {
-
-      final double c1, csl1, csl2, d, b, g, gL, e, eH, γ, σ;
-
-      /* Site amplification */
-      final double AmSCI, s2, s3, s4;
-      final Map<SiteClass, Double> fsr;
-
-      /* Unused or constant: c2, eV, sigma, tau */
-
-      Coefficients(Imt imt, CoefficientContainer cc) {
-
-        Map<String, Double> coeffs = cc.get(imt);
-        c1 = coeffs.get("c1");
-        csl1 = coeffs.get("cSL1");
-        csl2 = coeffs.get("cSL2");
-        d = coeffs.get("d");
-        b = coeffs.get("b");
-        g = coeffs.get("g");
-        gL = coeffs.get("gL");
-        e = coeffs.get("e");
-        eH = coeffs.get("eH");
-        γ = coeffs.get("gamma");
-        σ = coeffs.get("sigmaT");
-
-        AmSCI = coeffs.get("AmSCI");
-        s2 = coeffs.get("S2");
-        s3 = coeffs.get("S3");
-        s4 = coeffs.get("S4");
-
-        fsr = Maps.immutableEnumMap(ImmutableMap.of(
-            SiteClass.I, coeffs.get("FsrI"),
-            SiteClass.II, coeffs.get("FsrII"),
-            SiteClass.III, coeffs.get("FsrIII"),
-            SiteClass.IV, coeffs.get("FsrIV")));
-      }
-    }
-
-    private final Coefficients c;
-    private final Map<SiteClass, Double> aNmax;
-
-    Slab(Imt imt) {
-      super(imt);
-      c = new Coefficients(imt, COEFFS_SLAB);
-      aNmax = Maps.immutableEnumMap(ImmutableMap.of(
-          SiteClass.I, c.AmSCI,
-          SiteClass.II, c.AmSCI * exp(c.s2),
-          SiteClass.III, c.AmSCI * exp(c.s3),
-          SiteClass.IV, c.AmSCI * exp(c.s4)));
-    }
-
-    @Override
-    final double saRock(GmmInput in) {
-
-      double Mw = in.Mw;
-      double rRup = in.rRup;
-      double zTor = in.zTor;
-
-      /* Source term; equation 1 */
-      double fm = c.b * zTor;
-      if (Mw > MC) {
-        fm += c.csl1 * MC + c.csl2 * ΔMCSQ + c.d * (Mw - MC);
-      } else {
-        double Δmsc = Mw - MSC;
-        fm += c.csl1 * Mw + c.csl2 * Δmsc * Δmsc;
-      }
-
-      /* Geometric spreading distance; equation 3 */
-      double r = rRup + exp(c.c1 + C2 * min(Mw, MC));
-
-      /* Geometric attenuation terms; equation 2a */
-      double fg = c.g * log(r) + c.gL * log(rRup + 200.0);
-
-      /* Anelastic atten. term; volc. ignored (eV * rV) equations 2a, 5 */
-      double fe = c.e * rRup + (zTor < 50.0 ? 0.0 : c.eH * (0.02 * zTor - 1.0));
-
-      return fm + fg + fe + c.γ;
-    }
-
-    @Override
-    final double elasticSiteAmpRatio(SiteClass siteClass, double zTor) {
-      return aNmax.get(siteClass);
-    }
-
-    @Override
-    double smoothingFactor(SiteClass siteClass) {
-      return c.fsr.get(siteClass);
-    }
-
-    @Override
-    final double sigma() {
-      return c.σ;
-    }
-  }
-
-  static class SiteAmp {
-
-    final Map<SiteClass, Double> aMax;
-    final Map<SiteClass, Double> sRc;
-
-    SiteAmp(Imt imt, CoefficientContainer cc) {
-      Map<String, Double> coeffs = cc.get(imt);
-
-      aMax = Maps.immutableEnumMap(ImmutableMap.of(
-          SiteClass.I, coeffs.get("AmaxI"),
-          SiteClass.II, coeffs.get("AmaxII"),
-          SiteClass.III, coeffs.get("AmaxIII"),
-          SiteClass.IV, coeffs.get("AmaxIV")));
-
-      sRc = Maps.immutableEnumMap(ImmutableMap.of(
-          SiteClass.I, coeffs.get("SrcI"),
-          SiteClass.II, coeffs.get("SrcII"),
-          SiteClass.III, coeffs.get("SrcIII"),
-          SiteClass.IV, coeffs.get("SrcIV")));
-    }
-  }
-
-  static double siteTerm(
-      double aNmax,
-      double aMax,
-      double sRC,
-      double Imf,
-      double fSR,
-      double saRock) {
-
-    double sReff = saRock * Imf;
-    double sReffC = sRC * Imf;
-    double sNC = nonlinCrossover(aNmax, aMax, sReffC);
-    double sMR = sReff * fSR * sNC / sReffC;
-    return nonlinAmpRatio(aNmax, aMax, sMR, sReffC);
-  }
-
-  private static double nonlinAmpRatio(double aNmax, double aMax, double sMR, double sReffC) {
-    return log(aNmax) - log(aMax) * lnSqββ(sMR) / lnSqββ(sReffC);
-  }
-
-  private static double lnSqβ(double x) {
-    return log(x * x + β);
-  }
-
-  private static double lnSqββ(double x) {
-    return lnSqβ(x) - lnβ;
-  }
-
-  /* α = 2.0 exponent is handled via in-place multiplication */
-  private static final double β = 0.6;
-  private static final double lnβ = log(β);
-
-  /* Identical in all models. */
-  private static double nonlinCrossover(double aNmax, double aMax, double sReffC) {
-    /* Zhao, Ziang, et al. (2016); slab; equation 14. */
-    double sF = aNmax / aMax;
-    double t = exp((log(aNmax) * log(sReffC * sReffC + β) - log(sF) * lnβ) / log(aMax));
-    /*
-     * For some short periods, exp(t) - β < 0 ==> NaN. These are cases where
-     * aNmax and aMax are below 1.25, which are circumstances Zhao has special
-     * cased to use approximate functional forms defined in Xhao, Hu et al.
-     * (2015), but these are difficult to follow (e.g. θ can be any
-     * "arbitrarily large" number). Zhao, Hu et al. also state that for Table 5,
-     * those periods not listed for each site class do not require nonlinear
-     * site terms, but this listing is inconsistent with the fSR tables in each
-     * implementation.
-     *
-     * For now, we are preventing the expression below from falling below 0,
-     * which almost certainly incorrect.
-     */
-    return (t < β) ? 0.0 : sqrt(t - β);
-  }
-
-  static Range<SiteClass> siteRange(double vs30) {
-    if (vs30 >= SiteClass.I.vs30) {
-      return Range.singleton(SiteClass.I);
-    } else if (vs30 >= SiteClass.II.vs30) {
-      return Range.closedOpen(SiteClass.I, SiteClass.II);
-    } else if (vs30 >= SiteClass.III.vs30) {
-      return Range.closedOpen(SiteClass.II, SiteClass.III);
-    } else if (vs30 >= SiteClass.IV.vs30) {
-      return Range.closedOpen(SiteClass.III, SiteClass.IV);
-    } else {
-      return Range.singleton(SiteClass.IV);
-    }
-  }
-
-  static enum SiteClass {
-    I(760.0, 0.91),
-    II(450.0, 1.023),
-    III(250.0, 1.034),
-    IV(150.0, 0.737);
-
-    final double vs30;
-    final double impedance;
-
-    private SiteClass(double vs30, double impedance) {
-      this.vs30 = vs30;
-      this.impedance = impedance;
-    }
-  }
-
-}
diff --git a/src/main/resources/gmm/coeffs/McVerry00_gm.csv b/src/main/resources/gmm/coeffs/McVerry00_gm.csv
deleted file mode 100644
index 19d7bb703e9b74c669f07a0ae208d379ab060d80..0000000000000000000000000000000000000000
--- a/src/main/resources/gmm/coeffs/McVerry00_gm.csv
+++ /dev/null
@@ -1,13 +0,0 @@
-T,c1,c3as,c5,c8,c10as,c11,c13y,c15,c17,c20,c24,c29,c30as,c33as,c43,c46,sigma6,sigSlope,tau
-PGA,0.14274,0,-0.00989,-0.68744,5.6,8.57343,0,-2.552,-2.56592,0.01545,-0.49963,0.27315,-0.23,0.26,-0.33716,-0.03255,0.4871,-0.1011,0.2677
-0.075,1.2205,0.03,-0.00914,-0.93059,5.58,8.69303,0,-2.707,-2.55903,0.01821,-0.52504,0.27879,-0.28,0.26,-0.49068,-0.03441,0.5297,-0.0703,0.3139
-0.1,1.53365,0.028,-0.00903,-0.96506,5.5,9.304,-0.0011,-2.655,-2.61372,0.01737,-0.61452,0.28619,-0.28,0.26,-0.46604,-0.03594,0.5401,-0.0292,0.3017
-0.2,1.22565,-0.0138,-0.00975,-0.75855,5.1,10.4163,-0.0027,-2.528,-2.70038,0.01531,-0.65966,0.34064,-0.245,0.26,-0.31282,-0.03823,0.5599,0.0172,0.2583
-0.3,0.21124,-0.036,-0.01032,-0.524,4.8,9.21783,-0.0036,-2.454,-2.47356,0.01304,-0.56604,0.53213,-0.195,0.198,-0.07565,-0.03535,0.5456,-0.0566,0.1967
-0.4,-0.10541,-0.0518,-0.00941,-0.50802,4.52,8.0115,-0.0043,-2.401,-2.30457,0.01426,-0.33169,0.63272,-0.16,0.154,0.17615,-0.03354,0.5556,-0.1064,0.1802
-0.5,-0.1426,-0.0635,-0.00878,-0.52214,4.3,7.87495,-0.0048,-2.36,-2.31991,0.01277,-0.24374,0.58809,-0.121,0.119,0.34775,-0.03211,0.5658,-0.1123,0.144
-0.75,-0.65968,-0.0862,-0.00802,-0.47264,3.9,7.26785,-0.0057,-2.286,-2.2846,0.01055,-0.01583,0.50708,-0.05,0.057,0.7238,-0.02857,0.5611,-0.0836,0.1871
-1,-0.51404,-0.102,-0.00647,-0.58672,3.7,6.98741,-0.0064,-2.234,-2.28256,0.00927,0.02009,0.33002,0,0.013,0.89239,-0.025,0.5573,-0.062,0.2073
-1.5,-0.95399,-0.12,-0.00713,-0.49268,3.55,6.77543,-0.0073,-2.16,-2.27895,0.00748,-0.07051,0.07445,0.04,-0.049,0.77743,-0.02008,0.5419,0.0385,0.2405
-2,-1.24167,-0.12,-0.00713,-0.49268,3.55,6.48775,-0.0073,-2.16,-2.27895,0.00748,-0.07051,0.07445,0.04,-0.049,0.77743,-0.02008,0.5419,0.0385,0.2405
-3,-1.5657,-0.1726,-0.00623,-0.52257,3.5,5.05424,-0.0089,-2.033,-2.0556,-0.00273,-0.23967,0.09869,0.04,-0.156,0.60938,-0.01587,0.5809,0.1403,0.2053
diff --git a/src/main/resources/gmm/coeffs/McVerry00_mh.csv b/src/main/resources/gmm/coeffs/McVerry00_mh.csv
deleted file mode 100644
index 01a46c6f4749cecdd2a9ddd52b5b1c52bc92fef3..0000000000000000000000000000000000000000
--- a/src/main/resources/gmm/coeffs/McVerry00_mh.csv
+++ /dev/null
@@ -1,13 +0,0 @@
-T,c1,c3as,c5,c8,c10as,c11,c13y,c15,c17,c20,c24,c29,c30as,c33as,c43,c46,sigma6,sigSlope,tau
-PGA,0.28815,0,-0.00967,-0.70494,5.6,8.68354,0,-2.552,-2.56727,0.0155,-0.50962,0.30206,-0.23,0.26,-0.31769,-0.03279,0.4865,-0.1261,0.2687
-0.075,1.36561,0.03,-0.00889,-0.94568,5.58,8.68782,0,-2.707,-2.54215,0.0185,-0.48652,0.31139,-0.28,0.26,-0.43866,-0.03452,0.5281,-0.097,0.3217
-0.1,1.77717,0.028,-0.00837,-1.01852,5.5,9.37929,-0.0011,-2.655,-2.60945,0.0174,-0.61973,0.34059,-0.28,0.26,-0.43854,-0.03595,0.5398,-0.0673,0.3088
-0.2,1.39535,-0.0138,-0.0094,-0.78199,5.1,10.61479,-0.0027,-2.528,-2.70851,0.01542,-0.67672,0.37235,-0.245,0.26,-0.29906,-0.03853,0.5703,-0.0243,0.2726
-0.3,0.44591,-0.036,-0.00987,-0.56098,4.8,9.40776,-0.0036,-2.454,-2.47668,0.01278,-0.59339,0.56648,-0.195,0.198,-0.05184,-0.03604,0.5505,-0.0861,0.2112
-0.4,0.01645,-0.0518,-0.00923,-0.51281,4.52,8.50343,-0.0043,-2.401,-2.36895,0.01426,-0.30579,0.69911,-0.16,0.154,0.20301,-0.03364,0.5627,-0.1405,0.2005
-0.5,0.14826,-0.0635,-0.00823,-0.56716,4.3,8.46463,-0.0048,-2.36,-2.4063,0.01287,-0.24839,0.63188,-0.121,0.119,0.37026,-0.0326,0.568,-0.1444,0.1476
-0.75,-0.21246,-0.0862,-0.00738,-0.55384,3.9,7.30176,-0.0057,-2.286,-2.26512,0.0108,-0.01298,0.51577,-0.05,0.057,0.73517,-0.02877,0.5562,-0.0932,0.1794
-1,-0.10451,-0.102,-0.00588,-0.65892,3.7,7.08727,-0.0064,-2.234,-2.27668,0.00946,0.06672,0.34048,0,0.013,0.87764,-0.02561,0.5629,-0.0749,0.2053
-1.5,-0.48665,-0.12,-0.0063,-0.58222,3.55,6.93264,-0.0073,-2.16,-2.28347,0.00788,-0.02289,0.12468,0.04,-0.049,0.75438,-0.02034,0.5394,-0.0056,0.2411
-2,-0.77433,-0.12,-0.0063,-0.58222,3.55,6.64496,-0.0073,-2.16,-2.28347,0.00788,-0.02289,0.12468,0.04,-0.049,0.75438,-0.02034,0.5394,-0.0056,0.2411
-3,-1.30916,-0.1726,-0.00553,-0.57009,3.5,5.05488,-0.0089,-2.033,-2.0305,-0.00265,-0.20537,0.14593,0.04,-0.156,0.61545,-0.01673,0.5701,0.0934,0.2406
diff --git a/src/main/resources/gmm/coeffs/Zhao16_crust.csv b/src/main/resources/gmm/coeffs/Zhao16_crust.csv
deleted file mode 100644
index 2c5cbe96cb446236644829e785cd9aea3d3a045f..0000000000000000000000000000000000000000
--- a/src/main/resources/gmm/coeffs/Zhao16_crust.csv
+++ /dev/null
@@ -1,38 +0,0 @@
-T,c1,c2,ccr,dcr,FcrN,FumRV,FumNS,bcr,gcr,gum,gcrN,gcrL,ecr,eum,evcr,gamma,sigma,tau,sigmaT,AmSCI,S2,S3,S4,FsrCrI,FsrCrII,FsrCrIII,FsrCrIV,FsrUmI,FsrUmII,FsrUmIII,FsrUmIV
-PGA,-3.224,0.900,1.0731,0.200,0.3128,-0.2024,0.2519,0.00907,-1.2603,-1.0999,-0.4992,1.2656,-0.00794,-0.01083,-0.00628,-9.0872,0.556,0.391,0.680,1.381,0.2888,0.1221,0.2081,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0
-0.01,-3.357,0.909,1.0785,0.200,0.3157,-0.2143,0.2585,0.00907,-1.2695,-1.1072,-0.4868,1.2415,-0.00772,-0.01058,-0.00629,-9.0521,0.556,0.390,0.679,1.228,0.2999,0.1032,0.2193,1.0,1.2,1.0,1.0,1.0,1.0,1.0,1.0
-0.02,-3.552,0.927,1.0725,0.200,0.3185,-0.2213,0.2607,0.00907,-1.2878,-1.1177,-0.4465,1.1989,-0.00756,-0.01051,-0.00634,-8.8578,0.555,0.396,0.682,1.087,0.2978,0.1111,0.2171,1.0,1.3,1.0,0.949,1.0,1.0,1.0,1.150
-0.03,-3.640,0.937,1.0574,0.200,0.3202,-0.2231,0.2603,0.00907,-1.2962,-1.1139,-0.4218,1.1865,-0.00788,-0.01101,-0.00647,-8.6279,0.553,0.408,0.687,1.042,0.2254,0.0897,0.1595,1.0,1.253,1.0,0.550,1.0,1.0,1.0,0.800
-0.04,-3.758,0.944,1.0357,0.200,0.3214,-0.2233,0.2589,0.00907,-1.2515,-1.0797,-0.3762,1.1421,-0.00863,-0.01149,-0.00681,-8.3982,0.558,0.438,0.710,1.035,0.1587,0.0404,0.0703,1.0,1.064,1.0,0.477,1.0,1.0,1.0,0.613
-0.05,-3.826,0.948,1.0058,0.200,0.3219,-0.2230,0.2576,0.00907,-1.1472,-0.9861,-0.4358,1.1414,-0.00988,-0.01229,-0.00710,-8.1531,0.564,0.460,0.728,1.047,0.0826,-0.0593,-0.0353,1.0,1.120,1.0,0.492,1.0,1.0,1.0,0.542
-0.06,-3.890,0.956,0.9841,0.200,0.3247,-0.2223,0.2561,0.00907,-1.0913,-0.9390,-0.4679,1.1575,-0.01075,-0.01274,-0.00724,-8.0033,0.577,0.481,0.751,1.071,0.0554,-0.1096,-0.0902,1.0,1.207,1.0,0.531,1.0,1.0,1.0,0.534
-0.07,-3.965,0.967,0.9806,0.200,0.3286,-0.2215,0.2546,0.00907,-1.0468,-0.9004,-0.5026,1.1868,-0.01130,-0.01308,-0.00734,-8.0478,0.599,0.488,0.772,1.103,0.0418,-0.1326,-0.0958,1.0,1.238,1.0,0.613,1.0,1.0,1.0,0.583
-0.08,-4.055,0.980,0.9863,0.200,0.3398,-0.2205,0.2530,0.00907,-1.0136,-0.8706,-0.5380,1.2234,-0.01164,-0.01331,-0.00741,-8.1969,0.616,0.481,0.782,1.141,0.0604,-0.1354,-0.0732,1.0,1.360,1.0,0.693,1.0,1.0,0.830,0.643
-0.09,-4.153,0.995,0.9912,0.200,0.3304,-0.2196,0.2556,0.00907,-0.9923,-0.8508,-0.5730,1.2640,-0.01182,-0.01345,-0.00746,-8.3508,0.629,0.477,0.789,1.184,0.0930,-0.1251,-0.0363,1.0,1.355,1.0,0.780,1.0,1.0,0.706,0.674
-0.10,-4.255,1.009,1.0003,0.200,0.3460,-0.2186,0.2402,0.00907,-0.9832,-0.8418,-0.6084,1.3053,-0.01184,-0.01348,-0.00749,-8.5243,0.641,0.460,0.789,1.231,0.1521,-0.0709,0.0111,1.0,1.341,1.080,0.816,1.0,1.0,0.800,0.694
-0.12,-4.466,1.040,1.0344,0.200,0.3456,-0.2166,0.2478,0.00958,-0.9731,-0.8293,-0.6701,1.3928,-0.01174,-0.01349,-0.00751,-9.0548,0.657,0.437,0.789,1.334,0.2616,0.0026,0.1030,0.0,1.195,1.093,0.998,0.0,1.0,0.759,0.763
-0.14,-4.677,1.070,1.0839,0.200,0.3460,-0.2147,0.2452,0.01055,-0.9832,-0.8348,-0.7252,1.4777,-0.01142,-0.01334,-0.00748,-9.6764,0.663,0.414,0.782,1.448,0.3547,0.1120,0.2143,0.0,0.835,0.948,0.954,0.0,0.767,0.715,0.684
-0.15,-4.781,1.085,1.1060,0.200,0.3450,-0.2137,0.2441,0.01122,-0.9926,-0.8415,-0.7498,1.5188,-0.01123,-0.01323,-0.00746,-9.9660,0.666,0.402,0.778,1.510,0.3941,0.1567,0.2557,0.0,0.781,0.908,0.942,0.0,0.708,0.686,0.645
-0.16,-4.883,1.100,1.1267,0.200,0.3435,-0.2128,0.2431,0.01170,-1.0042,-0.8503,-0.7724,1.5588,-0.01101,-0.01311,-0.00743,-10.2416,0.671,0.384,0.773,1.573,0.4252,0.1968,0.2981,0.0,0.738,0.862,0.927,0.0,0.657,0.644,0.610
-0.18,-5.085,1.129,1.1646,0.200,0.3391,-0.2110,0.2410,0.01233,-1.0330,-0.8733,-0.8129,1.6348,-0.01054,-0.01284,-0.00735,-10.7520,0.680,0.380,0.779,1.707,0.4764,0.2741,0.3636,0.0,0.684,0.745,0.927,0.0,0.568,0.549,0.532
-0.20,-5.233,1.151,1.1984,0.200,0.3335,-0.2093,0.2389,0.01346,-1.0649,-0.8995,-0.8463,1.7060,-0.01007,-0.01256,-0.00725,-11.2249,0.692,0.359,0.780,1.833,0.5117,0.3379,0.4257,0.0,0.654,0.623,0.949,0.0,0.509,0.434,0.468
-0.25,-5.229,1.151,1.2700,0.200,0.3169,-0.2053,0.2345,0.01617,-1.1514,-0.9728,-0.9058,1.8625,-0.00890,-0.01182,-0.00696,-12.2628,0.694,0.340,0.773,1.954,0.5518,0.4787,0.5564,0.0,0.683,0.436,0.970,0.0,0.433,0.292,0.291
-0.30,-5.226,1.151,1.3285,0.200,0.2991,-0.2016,0.2305,0.01831,-1.2372,-1.0481,-0.9393,1.9916,-0.00784,-0.01110,-0.00661,-13.1418,0.688,0.344,0.770,2.034,0.5533,0.5739,0.6584,0.0,0.691,0.400,0.961,0.0,0.337,0.275,0.275
-0.35,-5.223,1.151,1.3780,0.200,0.2817,-0.1982,0.2267,0.01980,-1.3174,-1.1203,-0.9540,2.0982,-0.00691,-0.01044,-0.00624,-13.9025,0.675,0.353,0.762,2.052,0.5356,0.6382,0.7354,0.0,0.800,0.433,0.948,0.0,0.337,0.295,0.295
-0.40,-5.221,1.151,1.4209,0.200,0.2652,-0.1951,0.2236,0.02078,-1.3899,-1.1874,-0.9548,2.1863,-0.00610,-0.00983,-0.00586,-14.5736,0.667,0.363,0.759,2.025,0.5086,0.6795,0.7933,0.0,0.876,0.460,0.965,0.0,0.337,0.293,0.293
-0.45,-5.218,1.151,1.4587,0.200,0.2500,-0.1922,0.2204,0.02138,-1.4546,-1.2486,-0.9451,2.2593,-0.00541,-0.00929,-0.00548,-15.1738,0.665,0.359,0.756,1.999,0.4791,0.7052,0.8385,0.0,0.966,0.496,0.958,0.0,0.0,0.0,0.0
-0.50,-5.216,1.151,1.4925,0.190,0.2360,-0.1895,0.2176,0.02168,-1.5122,-1.3044,-0.9277,2.3197,-0.00482,-0.00879,-0.00511,-15.7157,0.664,0.361,0.756,1.975,0.4509,0.7207,0.8751,0.0,1.034,0.529,0.984,0.0,0.0,0.0,0.0
-0.60,-5.213,1.151,1.5510,0.178,0.2116,-0.1845,0.2125,0.02161,-1.6083,-1.4010,-0.8766,2.4107,-0.00387,-0.00792,-0.00439,-16.6622,0.669,0.362,0.761,1.931,0.3985,0.7282,0.9262,0.0,1.206,0.578,1.055,0.0,0.0,0.0,0.0
-0.70,-5.210,1.151,1.6005,0.162,0.1913,-0.1801,0.2081,0.02094,-1.6837,-1.4807,-0.8116,2.4718,-0.00315,-0.00719,-0.00374,-17.4673,0.670,0.370,0.765,1.891,0.3525,0.7158,0.9563,0.0,1.314,0.578,1.114,0.0,0.0,0.0,0.0
-0.80,-5.208,1.151,1.6434,0.148,0.1746,-0.1760,0.2040,0.01987,-1.7431,-1.5471,-0.7389,2.5110,-0.00261,-0.00657,-0.00315,-18.1645,0.674,0.378,0.773,1.855,0.3171,0.6966,0.9762,0.0,1.357,0.578,1.175,0.0,0.0,0.0,0.0
-0.90,-5.206,1.151,1.6812,0.136,0.1606,-0.1723,0.2003,0.01854,-1.7897,-1.6026,-0.6621,2.5342,-0.00220,-0.00603,-0.00261,-18.7780,0.673,0.386,0.775,1.822,0.2890,0.6737,0.9882,0.0,1.357,0.578,1.216,0.0,0.0,0.0,0.0
-1.00,-5.204,1.151,1.7150,0.125,0.1490,-0.1688,0.1967,0.01704,-1.8260,-1.6491,-0.5835,2.5454,-0.00189,-0.00555,-0.00214,-19.3256,0.670,0.390,0.776,1.791,0.2669,0.6499,0.9949,0.0,1.357,0.000,1.230,0.0,0.0,0.0,0.0
-1.25,-5.200,1.151,1.7866,0.101,0.1276,-0.1611,0.1891,0.01292,-1.8867,-1.7381,-0.4024,2.5471,-0.00139,-0.00458,-0.00119,-20.4671,0.660,0.399,0.771,1.724,0.2289,0.5939,0.9964,0.0,0.0,0.0,1.192,0.0,0.0,0.0,0.0
-1.50,-5.196,1.151,1.8452,0.083,0.1138,-0.1545,0.1827,0.00863,-1.9171,-1.7980,-0.2405,2.5258,-0.00116,-0.00384,-0.00054,-21.3882,0.656,0.397,0.767,1.667,0.2078,0.5512,0.9881,0.0,0.0,0.0,0.942,0.0,0.0,0.0,0.0
-2.00,-5.191,1.151,1.9375,0.053,0.0992,-0.1433,0.1717,0.00042,-1.9318,-1.8691,-0.0359,2.4975,-0.00109,-0.00284,0.0,-22.8117,0.631,0.381,0.737,1.574,0.1868,0.5025,0.9600,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-2.50,-5.187,1.151,2.0091,0.030,0.0933,-0.1340,0.1629,-0.00687,-1.9179,-1.9039,0.0874,2.4789,-0.00125,-0.00223,0.0,-23.9051,0.605,0.376,0.713,1.500,0.1775,0.4888,0.9290,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-3.00,-5.183,1.151,2.0677,0.011,0.0911,-0.1260,0.1553,-0.01315,-1.8963,-1.9224,0.1741,2.4647,-0.00144,-0.00184,0.0,-24.7945,0.591,0.363,0.694,1.439,0.1681,0.4825,0.8935,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-3.50,-5.181,1.151,2.1236,0.000,0.0900,-0.1191,0.1485,-0.01849,-1.8770,-1.9347,0.2450,2.4527,-0.00159,-0.00160,0.0,-25.5887,0.578,0.363,0.682,1.387,0.1599,0.4761,0.8560,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-4.00,-5.178,1.151,2.1373,0.000,0.0890,-0.1128,0.1426,-0.02298,-1.8617,-1.9436,0.3117,2.4427,-0.00171,-0.00149,0.0,-26.0464,0.556,0.376,0.671,1.341,0.1543,0.4698,0.8168,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-4.50,-5.176,1.151,2.1373,0.000,0.0872,-0.1071,0.1372,-0.02672,-1.8542,-1.9534,0.3795,2.4339,-0.00176,-0.00145,0.0,-26.3701,0.542,0.377,0.661,1.301,0.1512,0.4634,0.7738,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
-5.00,-5.174,1.151,2.1373,0.000,0.0844,-0.1019,0.1325,-0.02980,-1.8529,-1.9635,0.4520,2.4267,-0.00177,-0.00150,0.0,-26.6780,0.538,0.395,0.667,1.265,0.1528,0.4571,0.7280,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0
diff --git a/src/main/resources/gmm/coeffs/Zhao16_interface.csv b/src/main/resources/gmm/coeffs/Zhao16_interface.csv
deleted file mode 100644
index 0713d06a6aebe04c7f2f4bb1873da3d3a36d42a1..0000000000000000000000000000000000000000
--- a/src/main/resources/gmm/coeffs/Zhao16_interface.csv
+++ /dev/null
@@ -1,38 +0,0 @@
-T,c1,c2,cD,cS,d,gammaS,b,g,gDL,gSL,eV,eS,gamma,sigma,tau,sigmaT,AmSCI,S2,S3,S4,S5,S6,S7,FsrI,FsrII,FsrIII,FsrIV
-PGA,-5.301,1.151,1.0997,1.3148,0.553,-3.8953,0.0200,-2.0559,0.5454,1.1336,-0.01123,-0.00628,-4.4986,0.553,0.378,0.670,1.358,0.3129,-0.0043,0.2284,0.3129,-0.0043,0.2284,1.0,1.0,1.165,1.0
-0.01,-5.288,1.151,1.0985,1.3174,0.553,-3.8953,0.0200,-2.0657,0.5498,1.1336,-0.01125,-0.00625,-4.4589,0.553,0.377,0.670,1.247,0.3085,-0.0112,0.2231,0.3085,-0.0112,0.2231,1.0,1.0,0.944,1.0
-0.02,-5.276,1.151,1.0923,1.3192,0.553,-3.8953,0.0200,-2.1023,0.5617,1.1336,-0.01127,-0.00616,-4.2581,0.553,0.383,0.672,1.149,0.2930,-0.0217,0.2089,0.2930,-0.0217,0.2089,1.0,1.0,1.012,1.0
-0.03,-5.268,1.151,1.1069,1.3410,0.553,-3.8953,0.0207,-2.1923,0.5789,1.1336,-0.01158,-0.00572,-3.9180,0.554,0.397,0.682,1.097,0.2287,-0.1129,0.1331,0.2287,-0.0829,0.1631,1.0,1.0,1.100,1.000
-0.04,-5.263,1.151,1.1158,1.3805,0.553,-3.8953,0.0231,-2.2464,0.4933,0.9881,-0.01203,-0.00532,-3.1142,0.564,0.428,0.708,1.065,0.1632,-0.1887,0.0696,0.1632,-0.1887,0.0596,1.0,0.843,0.959,0.557
-0.05,-5.259,1.151,1.1023,1.4325,0.553,-3.8953,0.0271,-2.2934,0.4910,0.9044,-0.01256,-0.00503,-2.7604,0.569,0.463,0.734,1.037,0.1213,-0.2283,0.0285,0.1213,-0.2283,0.0085,1.0,0.663,0.889,0.543
-0.06,-5.255,1.151,1.0861,1.4624,0.553,-3.8953,0.0297,-2.3117,0.5085,0.8877,-0.01312,-0.00528,-2.6409,0.583,0.487,0.759,1.038,0.1235,-0.2192,0.0007,0.1235,-0.2192,0.0007,1.0,0.841,0.946,0.574
-0.07,-5.253,1.151,1.0729,1.4712,0.553,-3.8953,0.0321,-2.3110,0.5275,0.9049,-0.01359,-0.00569,-2.6562,0.602,0.501,0.783,1.050,0.1397,-0.1901,-0.0095,0.1397,-0.1901,0.0055,1.0,1.029,1.006,0.648
-0.08,-5.250,1.151,1.0638,1.4643,0.553,-3.8946,0.0320,-2.2878,0.5460,0.9421,-0.01382,-0.00619,-2.7527,0.614,0.501,0.793,1.103,0.1639,-0.1550,-0.0049,0.1639,-0.1550,0.0141,1.0,1.235,1.065,0.721
-0.09,-5.248,1.151,1.0586,1.4470,0.553,-3.9018,0.0297,-2.2468,0.5631,0.9865,-0.01393,-0.00673,-2.8992,0.625,0.495,0.797,1.192,0.2050,-0.1125,0.0305,0.2050,-0.1125,0.0405,1.0,1.144,1.093,0.809
-0.10,-5.246,1.151,1.0567,1.4232,0.553,-3.9077,0.0279,-2.2041,0.5762,1.0355,-0.01395,-0.00718,-3.0770,0.637,0.478,0.796,1.277,0.2445,-0.0751,0.0608,0.2445,-0.0751,0.0708,1.0,1.092,1.077,1.015
-0.12,-5.243,1.151,1.0605,1.3683,0.553,-3.9164,0.0247,-2.1201,0.5926,1.1353,-0.01381,-0.00793,-3.4828,0.646,0.453,0.789,1.400,0.3228,0.0150,0.1423,0.3228,0.0150,0.1403,0.0,0.945,1.036,0.972
-0.14,-5.240,1.151,1.0714,1.3156,0.553,-3.9227,0.0212,-2.0434,0.6098,1.2342,-0.01351,-0.00853,-3.9161,0.654,0.412,0.773,1.525,0.4012,0.0970,0.2270,0.4012,0.0970,0.2020,0.0,0.624,0.895,0.967
-0.15,-5.239,1.151,1.0786,1.2928,0.553,-3.9253,0.0195,-2.0109,0.6196,1.2813,-0.01333,-0.00879,-4.1348,0.659,0.404,0.773,1.578,0.4362,0.1459,0.2576,0.4362,0.1359,0.2326,0.0,0.577,0.860,0.963
-0.16,-5.237,1.151,1.0866,1.2732,0.553,-3.9275,0.0179,-1.9830,0.6308,1.3266,-0.01312,-0.00902,-4.3524,0.664,0.398,0.774,1.625,0.4674,0.1879,0.3075,0.4674,0.1729,0.2625,0.0,0.545,0.822,0.953
-0.18,-5.235,1.151,1.1047,1.2483,0.553,-3.9313,0.0151,-1.9461,0.6620,1.4113,-0.01269,-0.00927,-4.7803,0.672,0.387,0.776,1.705,0.5120,0.2515,0.3597,0.5120,0.2415,0.3197,0.0,0.527,0.743,0.967
-0.20,-5.233,1.151,1.1244,1.2372,0.553,-3.9345,0.0126,-1.9270,0.6998,1.4885,-0.01223,-0.00942,-5.1944,0.678,0.382,0.778,1.768,0.5393,0.3030,0.4031,0.5393,0.3030,0.3731,0.0,0.546,0.663,1.005
-0.25,-5.229,1.151,1.1769,1.2239,0.553,-3.9407,0.0077,-1.8988,0.7845,1.6521,-0.01108,-0.00959,-6.1580,0.659,0.365,0.753,1.868,0.5860,0.4269,0.5077,0.5860,0.4269,0.4877,0.0,0.596,0.487,1.045
-0.30,-5.226,1.151,1.2297,1.2285,0.553,-3.9455,0.0044,-1.8914,0.8594,1.7813,-0.00998,-0.00952,-7.0200,0.640,0.348,0.729,1.917,0.6047,0.5162,0.5778,0.6047,0.5162,0.5778,0.0,0.623,0.447,1.035
-0.35,-5.223,1.151,1.2806,1.2422,0.553,-3.9494,0.0022,-1.8930,0.9234,1.8844,-0.00898,-0.00933,-7.7915,0.634,0.360,0.729,1.938,0.6064,0.5695,0.6382,0.6064,0.5795,0.6482,0.0,0.701,0.473,1.008
-0.40,-5.221,1.151,1.3287,1.2608,0.553,-3.9527,0.0000,-1.8953,0.9801,1.9676,-0.00808,-0.00911,-8.4955,0.627,0.354,0.720,1.944,0.6028,0.6237,0.7032,0.6028,0.6337,0.7132,0.0,0.708,0.487,1.007
-0.45,-5.218,1.151,1.3739,1.2819,0.553,-3.9556,0.0000,-1.9058,1.0222,2.0355,-0.00727,-0.00888,-9.1135,0.620,0.363,0.719,1.945,0.5804,0.6581,0.7508,0.5804,0.6581,0.7508,0.0,0.737,0.511,0.981
-0.50,-5.216,1.151,1.4163,1.3043,0.553,-3.9580,0.0000,-1.9147,1.0587,2.0914,-0.00656,-0.00866,-9.6852,0.612,0.364,0.712,1.942,0.5569,0.6867,0.7938,0.5569,0.6867,0.7938,0.0,0.748,0.536,0.990
-0.60,-5.213,1.151,1.4931,1.3502,0.553,-3.9618,0.0000,-1.9274,1.1180,2.1764,-0.00534,-0.00824,-10.6895,0.612,0.379,0.720,1.928,0.5097,0.7122,0.8495,0.5097,0.7122,0.8495,0.0,0.728,0.540,1.016
-0.70,-5.210,1.151,1.5607,1.3952,0.560,-3.9648,0.0000,-1.9345,1.1630,2.2360,-0.00437,-0.00787,-11.5460,0.624,0.393,0.738,1.911,0.4650,0.7124,0.8798,0.4650,0.7124,0.8798,0.0,0.634,0.477,1.022
-0.80,-5.208,1.151,1.6206,1.4382,0.580,-3.9673,0.0000,-1.9374,1.1973,2.2783,-0.00359,-0.00755,-12.2872,0.628,0.396,0.742,1.892,0.4244,0.6994,0.8954,0.4244,0.6994,0.8954,0.0,0.0,0.0,1.023
-0.90,-5.206,1.151,1.6739,1.4788,0.602,-3.9696,0.0000,-1.9373,1.2236,2.3085,-0.00296,-0.00726,-12.9363,0.628,0.397,0.743,1.873,0.3884,0.6800,0.9026,0.3884,0.6800,0.9026,0.0,0.0,0.0,0.997
-1.00,-5.204,1.151,1.7217,1.5169,0.622,-3.9720,0.0000,-1.9351,1.2437,2.3299,-0.00244,-0.00700,-13.5100,0.632,0.404,0.750,1.853,0.3570,0.6583,0.9053,0.3570,0.6583,0.9053,0.0,0.0,0.0,0.948
-1.25,-5.200,1.151,1.8219,1.6015,0.667,-3.9795,0.0000,-1.9247,1.2725,2.3585,-0.00153,-0.00644,-14.6903,0.635,0.404,0.752,1.799,0.2967,0.6193,0.9179,0.2967,0.6193,0.9179,0.0,0.0,0.0,0.802
-1.50,-5.196,1.151,1.9008,1.6728,0.705,-3.9905,0.0000,-1.9119,1.2854,2.3665,-0.00097,-0.00597,-15.6030,0.643,0.392,0.753,1.740,0.2579,0.5829,0.9213,0.2579,0.5829,0.9213,0.0,0.0,0.0,0.0
-2.00,-5.191,1.151,2.0148,1.7837,0.768,-4.0265,0.0000,-1.8886,1.2883,2.3554,-0.00043,-0.00518,-16.9001,0.634,0.382,0.741,1.620,0.2226,0.5262,0.9171,0.2226,0.5262,0.9171,0.0,0.0,0.0,0.0
-2.50,-5.187,1.151,2.0889,1.8624,0.820,-4.0830,0.0000,-1.8725,1.2773,2.3311,-0.00023,-0.00451,-17.7366,0.619,0.393,0.733,1.508,0.2184,0.4872,0.9055,0.2184,0.4872,0.9055,0.0,0.0,0.0,0.0
-3.00,-5.183,1.151,2.1357,1.9171,0.863,-4.1594,0.0000,-1.8635,1.2605,2.3041,-0.00016,-0.00393,-18.2714,0.599,0.385,0.712,1.416,0.2160,0.4570,0.8867,0.2160,0.4570,0.8867,0.0,0.0,0.0,0.0
-3.50,-5.181,1.151,2.1625,1.9532,0.902,-4.2542,0.0000,-1.8597,1.2411,2.2779,0.0,-0.00344,-18.5926,0.580,0.376,0.692,1.347,0.2160,0.4281,0.8588,0.2160,0.4281,0.8588,0.0,0.0,0.0,0.0
-4.00,-5.178,1.151,2.1739,1.9745,0.935,-4.3658,0.0000,-1.8595,1.2203,2.2537,0.0,-0.00302,-18.7547,0.568,0.377,0.682,1.304,0.2160,0.3952,0.8203,0.2160,0.3952,0.8203,0.0,0.0,0.0,0.0
-4.50,-5.176,1.151,2.1730,1.9836,0.966,-4.4927,0.0000,-1.8615,1.1986,2.2316,0.0,-0.00267,-18.7935,0.552,0.376,0.668,1.285,0.2160,0.3549,0.7699,0.2160,0.3549,0.7699,0.0,0.0,0.0,0.0
-5.00,-5.174,1.151,2.1620,1.9826,0.994,-4.6331,0.0000,-1.8645,1.1763,2.2115,0.0,-0.00240,-18.7339,0.563,0.374,0.676,1.267,0.2160,0.3047,0.7071,0.2160,0.3047,0.7071,0.0,0.0,0.0,0.0
diff --git a/src/main/resources/gmm/coeffs/Zhao16_siteamp.csv b/src/main/resources/gmm/coeffs/Zhao16_siteamp.csv
deleted file mode 100644
index 9437f6b5cdc864f2fb4c7b6fa676107bc7e912b5..0000000000000000000000000000000000000000
--- a/src/main/resources/gmm/coeffs/Zhao16_siteamp.csv
+++ /dev/null
@@ -1,38 +0,0 @@
-T,AmaxI,SrcI,AmaxII,SrcII,AmaxIII,SrcIII,AmaxIV,SrcIV
-PGA,1.916,8.429,2.033,1.914,1.905,1.117,1.498,0.836
-0.01,1.919,8.090,2.027,1.883,1.908,1.114,1.498,0.836
-0.02,1.922,6.992,2.003,1.779,1.894,1.124,1.474,0.830
-0.03,1.925,6.350,1.989,1.718,1.886,1.130,1.460,0.826
-0.04,1.921,4.883,2.012,2.052,1.833,1.151,1.374,0.768
-0.05,1.959,5.043,2.017,2.387,1.854,1.240,1.363,0.786
-0.06,2.013,6.271,2.064,2.834,1.893,1.348,1.384,0.838
-0.07,2.049,7.667,2.103,3.294,1.924,1.452,1.425,0.926
-0.08,2.046,9.034,2.195,3.991,1.974,1.583,1.481,1.022
-0.09,2.066,11.251,2.219,4.466,2.032,1.733,1.525,1.118
-0.10,2.100,14.817,2.263,5.046,2.052,1.841,1.549,1.166
-0.12,2.143,14.817,2.329,5.900,2.066,2.030,1.603,1.286
-0.14,2.122,14.817,2.188,5.054,2.107,2.281,1.670,1.398
-0.15,2.092,14.817,2.214,5.205,2.140,2.444,1.706,1.443
-0.16,2.053,14.817,2.245,5.387,2.156,2.580,1.734,1.472
-0.18,1.923,14.817,2.324,5.872,2.132,2.742,1.773,1.547
-0.20,1.793,14.817,2.405,6.574,2.050,2.826,1.816,1.644
-0.25,1.793,14.817,2.554,8.500,1.925,2.719,1.843,1.790
-0.30,1.793,14.817,2.586,10.67,2.006,2.418,1.871,1.823
-0.35,1.793,14.817,2.718,10.67,2.179,2.304,1.878,1.790
-0.40,1.793,14.817,2.718,10.67,2.288,2.236,1.911,1.768
-0.45,1.793,14.817,2.718,10.67,2.402,2.217,1.899,1.675
-0.50,1.793,14.817,2.718,10.67,2.522,2.243,1.927,1.625
-0.60,1.793,14.817,2.718,10.67,2.648,2.805,1.987,1.525
-0.70,1.793,14.817,2.718,10.67,2.780,6.658,2.025,1.397
-0.80,1.793,14.817,2.718,10.67,2.919,30.0,2.043,1.320
-0.90,1.793,14.817,2.718,10.67,3.065,30.0,2.022,1.266
-1.00,1.793,14.817,2.718,10.67,3.217,30.0,1.970,1.227
-1.25,1.793,14.817,2.718,10.67,3.378,30.0,1.843,1.221
-1.50,1.793,14.817,2.718,10.67,3.547,30.0,1.729,1.318
-2.00,1.793,14.817,2.718,10.67,3.724,30.0,1.583,2.125
-2.50,1.793,14.817,2.718,10.67,3.909,30.0,1.504,14.382
-3.00,1.793,14.817,2.718,10.67,4.104,30.0,1.439,14.382
-3.50,1.793,14.817,2.718,10.67,4.309,30.0,1.391,14.382
-4.00,1.793,14.817,2.718,10.67,4.524,30.0,1.362,14.382
-4.50,1.793,14.817,2.718,10.67,4.750,30.0,1.340,14.382
-5.00,1.793,14.817,2.718,10.67,4.987,30.0,1.729,14.382
diff --git a/src/main/resources/gmm/coeffs/Zhao16_slab.csv b/src/main/resources/gmm/coeffs/Zhao16_slab.csv
deleted file mode 100644
index 298f553ed077527aa9fed9192404a4e8b37378da..0000000000000000000000000000000000000000
--- a/src/main/resources/gmm/coeffs/Zhao16_slab.csv
+++ /dev/null
@@ -1,38 +0,0 @@
-T,c1,cSL1,cSL2,d,b,g,gL,eV,e,eH,gamma,sigma,tau,sigmaT,AmSCI,S2,S3,S4,FsrI,FsrII,FsrIII,FsrIV
-PGA,-5.30119,1.44758,0.37625,0.42646,0.01826,-1.98471,1.12071,-0.01499,-0.00340,-0.00050,-9.880,0.587,0.457,0.744,1.381,0.2320,0.1437,0.1470,1.0,1.0,1.0,1.0
-0.01,-5.28844,1.45400,0.38099,0.42075,0.01826,-1.96360,1.03278,-0.01503,-0.00331,-0.00050,-9.513,0.587,0.458,0.745,1.228,0.2289,0.1398,0.1328,1.0,1.0,1.0,1.0
-0.02,-5.27568,1.46625,0.39101,0.40055,0.01826,-1.91839,0.94715,-0.01517,-0.00345,-0.00050,-9.266,0.587,0.465,0.749,1.087,0.2183,0.1260,0.1443,1.0,1.0,1.0,1.05
-0.03,-5.26822,1.49246,0.41976,0.36433,0.01826,-1.89271,0.93420,-0.01567,-0.00391,-0.00050,-9.332,0.588,0.480,0.759,1.042,0.1874,0.0616,0.0660,1.0,1.0,1.0,0.58
-0.04,-5.26293,1.50129,0.45746,0.32072,0.01826,-1.87260,0.97168,-0.01616,-0.00454,-0.00050,-9.508,0.599,0.521,0.794,1.035,0.1233,-0.0171,-0.0171,1.0,1.006,1.0,0.482
-0.05,-5.25882,1.51051,0.48601,0.30000,0.01826,-1.85351,1.01492,-0.01676,-0.00510,-0.00050,-9.729,0.607,0.555,0.823,1.047,0.0721,-0.0633,-0.0731,1.0,0.851,1.0,0.472
-0.06,-5.25547,1.51380,0.50311,0.31147,0.01826,-1.83395,1.06854,-0.01722,-0.00552,-0.00050,-9.966,0.623,0.584,0.854,1.071,0.0270,-0.1010,-0.1196,1.0,0.803,1.044,0.506
-0.07,-5.25263,1.51111,0.50704,0.32673,0.01826,-1.81345,1.13401,-0.01752,-0.00588,-0.00049,-10.226,0.638,0.600,0.876,1.103,-0.0062,-0.1468,-0.1601,1.0,0.918,0.975,0.587
-0.08,-5.25017,1.50406,0.50004,0.34289,0.01826,-1.79189,1.20364,-0.01768,-0.00615,-0.00048,-10.551,0.651,0.598,0.884,1.141,0.0157,-0.1448,-0.1243,1.0,1.062,0.964,0.683
-0.09,-5.24801,1.49423,0.48071,0.35921,0.01826,-1.76931,1.25808,-0.01772,-0.00635,-0.00048,-10.807,0.662,0.585,0.883,1.184,0.0509,-0.1267,-0.0729,1.0,1.106,0.980,0.782
-0.10,-5.24607,1.48300,0.45759,0.37000,0.01826,-1.74581,1.30112,-0.01768,-0.00652,-0.00048,-11.022,0.674,0.567,0.881,1.231,0.0956,-0.0932,-0.0146,1.0,1.071,0.970,0.823
-0.12,-5.24271,1.45559,0.41355,0.40606,0.01826,-1.73746,1.39137,-0.01742,-0.00660,-0.00049,-11.365,0.689,0.534,0.872,1.334,0.2004,-0.0088,0.0825,0.0,0.952,1.022,1.029
-0.14,-5.23988,1.44277,0.37828,0.43450,0.01826,-1.74463,1.47084,-0.01700,-0.00652,-0.00051,-11.730,0.692,0.504,0.856,1.448,0.3037,0.0893,0.1715,0.0,0.672,0.889,0.991
-0.15,-5.23861,1.43314,0.36308,0.45000,0.01826,-1.74972,1.50784,-0.01676,-0.00647,-0.00052,-11.880,0.696,0.486,0.849,1.510,0.3428,0.1360,0.2093,0.0,0.631,0.861,0.983
-0.16,-5.23742,1.43253,0.34919,0.46055,0.01826,-1.76259,1.54326,-0.01649,-0.00636,-0.00053,-12.056,0.697,0.465,0.838,1.573,0.3740,0.1775,0.2412,0.0,0.600,0.831,0.973
-0.18,-5.23525,1.43710,0.32464,0.48439,0.01826,-1.78989,1.60985,-0.01594,-0.00614,-0.00056,-12.420,0.704,0.430,0.825,1.707,0.4270,0.2531,0.2990,0.0,0.571,0.748,0.979
-0.20,-5.23331,1.44781,0.30358,0.50900,0.01826,-1.82110,1.67146,-0.01537,-0.00590,-0.00059,-12.785,0.713,0.406,0.821,1.833,0.4630,0.3201,0.3459,0.0,0.565,0.650,1.006
-0.25,-5.22921,1.48260,0.26174,0.55500,0.01826,-1.90412,1.80738,-0.01395,-0.00526,-0.00067,-13.635,0.711,0.385,0.808,1.954,0.5086,0.4530,0.4423,0.0,0.601,0.479,1.027
-0.30,-5.22585,1.51881,0.23036,0.59300,0.01826,-1.98439,1.92242,-0.01261,-0.00468,-0.00075,-14.381,0.684,0.365,0.775,2.034,0.5078,0.5488,0.5178,0.0,0.579,0.449,1.021
-0.35,-5.22302,1.55291,0.20580,0.62500,0.01826,-2.05756,2.02102,-0.01139,-0.00415,-0.00083,-15.035,0.665,0.371,0.762,2.052,0.4971,0.6171,0.5760,0.0,0.679,0.482,1.003
-0.40,-5.22056,1.58443,0.18597,0.65200,0.01826,-2.12282,2.10642,-0.01029,-0.00369,-0.00091,-15.616,0.657,0.383,0.761,2.025,0.4807,0.6663,0.6224,0.0,0.655,0.499,1.010
-0.45,-5.21839,1.61360,0.16960,0.67500,0.01826,-2.18047,2.18097,-0.00931,-0.00327,-0.00099,-16.138,0.647,0.391,0.756,1.999,0.4616,0.7011,0.6598,0.0,0.615,0.515,0.985
-0.50,-5.21645,1.64075,0.15585,0.69500,0.01826,-2.23118,2.24651,-0.00843,-0.00290,-0.00107,-16.613,0.640,0.403,0.756,1.975,0.4422,0.7256,0.6907,0.0,0.550,0.530,0.990
-0.60,-5.21310,1.69020,0.13405,0.72900,0.01826,-2.31475,2.35602,-0.00694,-0.00227,-0.00124,-17.453,0.633,0.412,0.755,1.931,0.4054,0.7529,0.7380,0.0,0.0,0.530,1.006
-0.70,-5.21026,1.73450,0.11757,0.75600,0.01826,-2.37885,2.44331,-0.00574,-0.00178,-0.00139,-18.181,0.632,0.432,0.766,1.891,0.3734,0.7625,0.7723,0.0,0.0,0.499,1.000
-0.80,-5.20781,1.77474,0.10476,0.77800,0.01826,-2.42769,2.51391,-0.00477,-0.00139,-0.00154,-18.825,0.635,0.438,0.772,1.855,0.3462,0.7612,0.7974,0.0,0.0,0.369,1.000
-0.90,-5.20564,1.81162,0.09458,0.79600,0.01826,-2.46450,2.57166,-0.00398,-0.00109,-0.00166,-19.403,0.636,0.438,0.772,1.822,0.3236,0.7538,0.8162,0.0,0.0,0.3,0.960
-1.00,-5.20370,1.84561,0.08636,0.81200,0.01826,-2.49170,2.61931,-0.00333,-0.00086,-0.00178,-19.928,0.636,0.439,0.773,1.791,0.3048,0.7428,0.8301,0.0,0.0,0.2,0.904
-1.25,-5.19959,1.92015,0.07173,0.84100,0.01808,-2.52758,2.70638,-0.00215,-0.00052,-0.00199,-21.058,0.635,0.444,0.775,1.724,0.2703,0.7083,0.8504,0.0,0.0,0.0,0.738
-1.50,-5.19624,1.98274,0.06258,0.86100,0.01786,-2.53359,2.76244,-0.00142,-0.00043,-0.00213,-21.996,0.645,0.448,0.786,1.667,0.2483,0.6726,0.8573,0.0,0.0,0.0,0.535
-2.00,-5.19095,2.08214,0.05327,0.88400,0.01718,-2.49565,2.82205,-0.00067,-0.00070,-0.00225,-23.488,0.633,0.425,0.762,1.574,0.2253,0.6107,0.8499,0.0,0.0,0.0,0.358
-2.50,-5.18684,2.15841,0.05036,0.90000,0.01628,-2.42623,2.84475,-0.00039,-0.00127,-0.00219,-24.647,0.607,0.413,0.735,1.500,0.2154,0.5640,0.8276,0.0,0.0,0.0,0.0
-3.00,-5.18349,2.22046,0.04536,0.90000,0.01549,-2.34726,2.84988,-0.00030,-0.00198,-0.00207,-25.597,0.582,0.407,0.710,1.439,0.2115,0.5261,0.7991,0.0,0.0,0.0,0.0
-3.50,-5.18065,2.27406,0.04536,0.90000,0.01489,-2.27002,2.84667,-0.00026,-0.00271,-0.00193,-26.410,0.562,0.395,0.687,1.387,0.2098,0.4977,0.7678,0.0,0.0,0.0,0.0
-4.00,-5.17819,2.32307,0.04536,0.90000,0.01458,-2.19947,2.83992,-0.00021,-0.00341,-0.00180,-27.132,0.540,0.381,0.661,1.341,0.2088,0.4769,0.7359,0.0,0.0,0.0,0.0
-4.50,-5.17602,2.37009,0.04536,0.90000,0.01459,-2.12528,2.82802,-0.00021,-0.00421,-0.00170,-27.793,0.526,0.367,0.641,1.301,0.2077,0.4622,0.7041,0.0,0.0,0.0,0.0
-5.00,-5.17409,2.37009,0.04536,0.90000,0.01459,-2.02646,2.82521,-0.00021,-0.00500,-0.00158,-28.313,0.522,0.378,0.645,1.265,0.2067,0.4527,0.6722,0.0,0.0,0.0,0.0