# Gravity

Whether gravity is the fixed standard value or the value for the shot's latitude.

## Generated table

**Setting:** Gravity

| Choice | Used by |
|---|---|
| 9.80665 m/s² (Standard) | Standard, Classic |
| By latitude (WGS-84) | Physics, Spin |

## What it does

Gravity pulls the bullet down, and the solver needs a number for how hard. This setting picks it.

- **9.80665 m/s² (Standard):** the standard value of gravity, the same everywhere on Earth.
- **By latitude (WGS-84):** the value the WGS-84 Earth model gives at the latitude in your environment. Gravity is about 0.5 % stronger at the poles than at the equator, because the Earth spins and bulges. The solver evaluates it at sea level and does not change it along the flight.

Either way, the Earth-rotation term of the `coriolis` option (when it is on its Standard value) adjusts whichever number this setting gives. See "The math".

## When to choose it

Choose "By latitude" when you want the Physics answer and trust the latitude in your environment. Choose Standard to match a calculator that uses one fixed value. The effect is small, a few parts in ten thousand of the drop, so on a shot inside a mile it is lost in everything else. It grows with the drop, so it is most visible at very long range. The Classic model uses Standard because that calculator has no latitude input.

## How to picture it

One number sets the pull. A diagram would show the same arc twice, drawn with a slightly weaker pull for the second, so the second arc falls a hair less far at the target. The two arcs are almost on top of each other; the gap grows toward the target. A second picture would show the pull split along and across the line of sight on a sloped shot: the number does not change, only how it is shared between the two directions.

## The math

**Standard.**

$$ g_0 = 9.80665 \ \mathrm{m/s^2} $$

**By latitude.** The Somigliana formula for normal gravity at geodetic latitude, minus a free-air term for height $h$:

$$ g_0 = \frac{g_e \left(1 + k \sin^2\varphi\right)}{\sqrt{1 - e^2 \sin^2\varphi}} - \gamma\, h $$

The solver always calls it with $h = 0$ and $\varphi$ the environment's latitude, so the last term vanishes in a shot.

| Symbol | Meaning | Value / unit |
|---|---|---|
| $g_0$ | gravity chosen by this option | m/s² |
| $g_e$ | normal gravity at the equator | 9.7803253359 m/s² |
| $k$ | Somigliana constant | 0.00193185265241 |
| $e^2$ | first eccentricity squared of the WGS-84 ellipsoid | 0.00669437999013 |
| $\varphi$ | latitude of the environment | degrees |
| $\gamma$ | free-air gradient | 3.086e-6 m/s² per m |
| $h$ | height above the reference (always 0 in a shot) | m |

The ratio of the two values at a site is $g_0^{\text{lat}}/9.80665$. At latitude 42.1° the latitude value is 9.8036 m/s² against 9.80665, a ratio of 0.99969 (about 0.031 % less). The dialed come-up at long range follows the drop, and the drop is proportional to the pull, so the come-up changes roughly in proportion to this ratio. It is only roughly proportional because drag also acts on the flight, so the drop is not exactly proportional to $g$.

**How the value is used.** For each flight the solver forms an effective gravity $g$ and spreads it over the line-of-sight frame ($x$ along the line of sight, $y$ across it, up) for a shot at inclination $\theta$:

$$ \vec g = \left(-g\sin\theta,\ -g\cos\theta,\ 0\right) $$

Under `coriolis: 'baseline'`, $g$ is the chosen $g_0$ plus the Eötvös term, evaluated at the muzzle velocity:

$$ g = g_0 - 2\,\Omega\, v_0 \cos\varphi \,\sin\alpha $$

With any other `coriolis` value, $g = g_0$.

| Symbol | Meaning | Value / unit |
|---|---|---|
| $\theta$ | inclination of the line of sight, up positive | degrees |
| $\Omega$ | Earth's rotation rate | 7.292115e-5 rad/s |
| $v_0$ | muzzle velocity (feet per second times 0.3048) | m/s |
| $\alpha$ | azimuth of fire, 0° north, 90° east | degrees |

**What the `coriolis` option adds.** That option's own page owns the Earth-rotation math. This page only needs its one effect on gravity: under its Standard value the Eötvös term above is subtracted from the number this option gives (firing east makes the bullet lighter, west heavier), and the whole vector, both components, is scaled by the result. The zeroing flight turns `coriolis` off, so the zero uses plain $g_0$.

**Spin drift on a slope.** The Litz spin drift (the `spinDrift` option) is multiplied by $\cos\theta$ in the solve; it is a plain cosine of the inclination and does not read $g$. Under the modified point-mass dynamics the yaw of repose is computed from the acceleration vector above, which includes $g$ and its two components.

## The algorithm

Run once per flight, before the integration steps. The zeroing flight and the shot each run it.

```
function effectiveGravity(options, lat, azimuth, mv, inclination):
    if options.gravity == 'wgs84':
        g0 = wgs84Gravity(lat, 0)            # sea level, no height change along the path
    else:
        g0 = 9.80665                          # 'standard'
    if options.coriolis == 'baseline':
        g = g0 - 2 * Omega * (mv * 0.3048) * cos(lat) * sin(azimuth)
    else:
        g = g0
    return [-g * sin(inclination), -g * cos(inclination), 0]
```

```
function wgs84Gravity(lat, h):
    s2 = sin(lat)^2
    return 9.7803253359 * (1 + 0.00193185265241 * s2) / sqrt(1 - 0.00669437999013 * s2) - 3.086e-6 * h
```

## On a real shot

The shot: a 350 gr 0.375 in bullet at 3048 fps muzzle velocity, fired at 3520 yd in air of 60 °F, 40 % humidity, 24.43 inHg at the firing line, latitude 42.1°, wind 10 mph from the right (90° to the line of fire), the same wind in every column; site altitude 5,500 ft. In the app, type it as "Site altitude" (shown when the profile's model reads one); left blank, the classic values count from sea level and can differ from this table. All other settings are the Standard model's. In the first column (North, level) the reference arc reaches 223 ft above the line of sight at 2160 yd.

| Value | Shown in the app as | North, level | East, level | North, 10° uphill | North, 10° downhill |
|---|---|---|---|---|---|
| `'standard'` | 9.80665 m/s² (Standard) | reference | reference | reference | reference |
| `'wgs84'` | By latitude (WGS-84) | -0.017 / 0.000 / 0.0 | -0.017 / 0.000 / 0.0 | -0.017 / 0.000 / 0.0 | -0.016 / 0.000 / 0.0 |

Each cell is the change from the reference row (`'standard'`) in the same shot, as elevation (mil) / windage (mil) / velocity at the target (fps). Elevation: plus means more elevation must be dialed. Windage: plus means the windage correction moves to the right (dial further right); this is a correction, not where the bullet lands. Velocity: plus means the bullet arrives faster. A zero means no difference at the shown precision.

Read from the table: changing only this setting moves the come-up by -0.017 mil on the north and east level shots and on the uphill shot, and by -0.016 mil on the downhill shot (less come-up needed); windage and arrival velocity do not change at the shown precision. The cause is the ratio of the two values of $g_0$ at latitude 42.1°, given in the math section (a little under 1), applied to a dial of tens of mils; the change is roughly, not exactly, in proportion to it, because drag acts on the flight too. North and east differ by the Eötvös term, but that term is added to either value of $g_0$ and so cancels in the difference, which is why the two columns match. The slopes differ slightly: the table has -0.017 mil level and uphill but -0.016 mil downhill. On an inclined shot the same pull is split into a part across the line of sight (by the cosine of the inclination) and a part along it (by the sine), so the change in drop across the line of sight and the way the along-line part helps or hinders the bullet differ a little between uphill and downhill.

---

[All reference pages](../index.md)
