// Program to convert Richter Scale numbers to energy. // // Both of these functions can take either a dimensionless number, which // indicates a number on the Richter Scale, or a unit with dimensions of // energy. If a dimensionless number is passed in, this returns an energy. // If an energy is passed in, this returns a dimensionless number which is // the number on the Richter scale. // // The first approximation is due to Richter and Gutenberg, but this // approximation uses a very narrow frequency band, which is not the band // in which earthquakes primarily radiate their energy. RichterGutenberg[n] := { if (n conforms 1) // Passed in dimensionless. (Richter number) return 10^(4.8 + 1.5n) J // Convert to energy. if (n conforms joule) // Passed in energy. Convert to Richter. return -3.2 + 0.28953 ln[n/J] return "Error: Expected dimensionless number or unit with dimensions of energy." } // The Choy-Boatwright approximation (1995) assumes higher-frequency components // and is thus more realistic. This returns the amount of energy radiated // as seismic energy. ChoyBoatwright[n] := { if (n conforms 1) // Passed in dimensionless. (Richter number) return 22387 e^(3.45388 n) J // Convert to energy. if (n conforms joule) // Passed in energy. Convert to Richter. return -2.9 + 0.28953 ln[n/J] return "Error: Expected dimensionless number or unit with dimensions of energy." }