Newman E. Argraves built I-95 through Connecticut as State Highway Commissioner. He had sold his stake in private practice when he took the post, so that there could be no question of a conflict of interest, and he drove a beat-up Volkswagen Karmann Ghia. Around 1985, on an Ericsson suitcase portable his grandson Gary found for him, he wrote GW-BASIC programs to solve two-, three- and four-legged bridge piers. His daughter Nancy typed the code into the machine. He kept revising them until at least February 1989.
Those programs are the method an engineer of his generation carried in his head and on paper: the pier cap and legs taken as one rigid frame, the joints and the sway solved together by slope-deflection, then the shears, moments, face values, axial loads, temperature and shrinkage worked out in order. The listings survived, along with his data and his printed runs.
This handbook goes with pier.html, a single browser page that runs all three pier families from a plain-text deck, shows the work line by line as it would be done on paper, plots the frame, and checks itself against his own printed answers. Nothing is installed and nothing is hidden: his listings sit one link from every result.
The aim is a simple one. A designer who never met him should be able to open the page, understand what the numbers mean and where they come from, and trust them as far as the checks go, and no further. The past stays in use, and the work going forward is shown on the page.
The first thing that looks wrong to a newcomer is the span length: 12 to 20 ft seems far too short for a highway bridge. It is short because the pier "spans" run across the road, between the legs under the cap. The bridge spans run along the road, pier to pier, and are carried by the girders. The pier only feels them as large point loads where each girder line bears on the cap.
| Example (his data) | Cap geometry | Reads as |
|---|---|---|
| 3 legs, PR3LDG3Z | 2 × 20.5 ft between legs + 2 × 5.5 ft overhangs = 52 ft; seven girder lines at about 8.3 ft | one direction: three 12-ft lanes plus shoulders |
| 4 legs, PR4BM4I | 3 × 19.25 ≈ 58 ft between outer legs | a somewhat wider one-way deck |
| 4 legs, PR4BMQ | 3 × 12.84 ≈ 38.5 ft between outer legs | a narrower roadway or ramp |
| 2 legs, PIER2LD | one 20.5 ft span plus overhangs | a narrow deck |
The size of the girder reactions, 145 to 236 k on one beam line, is where the long bridge spans show up: it is that girder's share of the deck from both sides of the pier, dead plus live.
The cap and legs are one rigid frame. The unknowns are a rotation θ at each cap joint and one sway Δ of the cap (and, with footing springs, a rotation at each leg base). Slope-deflection gives every member end moment in terms of them:
M_near = 2·E·K·(2·θ_near + θ_far − 3·Δ/H) + FEM K = I / length
One equation per joint (the moments meeting there sum to zero) and one for sway (the leg shears balance F) are solved together by Gaussian elimination with row swap, exactly as he programmed it. The report then works, in order: properties and stiffnesses, fixed-end moments, cantilever moments ZL and ZR, the matrix, the solution, end moments, equilibrium checks, span shears and moments with face-of-leg values, cantilever faces, leg axial loads with self-weight, the footing check, temperature and shrinkage, and the answer key.
Moments depend only on stiffness ratios, so E cancels out of them. E matters only where a real movement is imposed: rotations, sway, temperature and shrinkage.
| Point | What it means |
|---|---|
| w is the cap, not the bridge | The uniform load is the cap's own weight, BW·BD·0.150 kcf: 3 × 4 × 0.15 = 1.80 k/ft in the 3-leg example, 3 × 2.5 × 0.15 = 1.13 in the 4-leg. It is light on purpose. |
| The point loads are the bridge | Each P is a girder reaction: one beam line of the superstructure, dead plus live. Their positions are the girder lines. Nearly all the load on a pier comes this way. |
| The outer loads ride the cantilevers | The fascia girders sit on the overhangs and are usually the heaviest (parapet, sidewalk, rail). They twist the cap at the outer joints: ZL and ZR. |
| Unequal girder loads are deliberate | Live load is placed lane by lane for the worst case. Heavier reactions on one side (236 k against 145.6 k) unbalance the cap, rotate the joints and sway the frame. |
| F reverses: run it both ways | Wind on superstructure and pier, braking, stream flow: the lateral force at cap level can come from either side. In the 3-leg example, reversing F changes the outer leg-top moments from about −200 and −227 ft-k to +82 and +55. Design each member for the worse. |
| Legs bend both ways | Under sway a leg fixed at both ends bends in double curvature; the moment changes sign up the leg. Steel must work on both faces. |
| The base moment goes to the footing | A fixed leg hands its base moment to the footing with the axial load; e = M/N decides the soil pressure. |
| Temperature works from the centre | The cap grows and shrinks about the pier centre, so the centre leg of three does not move and the outer legs take the moment. |
| Shrinkage is not in the load diagrams | Shrinkage and temperature are worked apart from the loads, as he did, and can exceed the load moments in the outer legs: 323 ft-k against 227 in the 3-leg example. The page warns on the plot, flags it in the summary box, and can add shrinkage plus a temperature fall to the leg diagrams. The formula 6EIδ/H² is an upper bound (fixed legs, full E, gross I); creep and cracking reduce it, so ε and ΔT are the designer's inputs, not defaults to accept. |
| Sway load factor | F enters times a factor, default 1.0. His BM revision used 0.75 (his P5 written with 4·2 for 3·2). It is an input so the designer decides. |
All his runs assume legs fixed at the base. Fixity is a real detail, not a label: it means dowels from the footing into the leg and a footing stiff enough, on soil stiff enough, not to turn. A pinned base would imply no steel carried from footing into leg. Real footings sit between the two.
The page brackets this with a rotational spring at each base, from the footing size and the soil:
kr = ks · Lf · B³ / 12 ks = modulus of subgrade reaction (k/ft³)
≈100 loose sand · 300 medium · 600+ dense sand / stiff clay
.footing B=10 Lf=12 ks=300 every leg .leg 2 ... kr=0 one leg pinned
Softer soil lets the footing turn; base moments fall and the leg tops and cap take more. A very large ks reproduces the fixed result exactly; kr = 0 gives a true pin with zero base moment. The footing check then works the bearing pressure: within the kern (e ≤ B/6) q = N/(B·Lf)·(1 ± 6e/B), otherwise q_max = 2N / (3·Lf·(B/2 − e)).
The complexity of a multi-leg frame, its sway and its footings is part of why many crossings use wall-type abutments and wall piers instead. Where open legs are wanted (clearance, sight lines, stream flow, less concrete), this is the analysis that has to be done.
The overhang delivers a shear V and a moment Z to the outer joint. The deck supplies them one of two ways, one way per side.
| Case 1 · computed: .cantL / .cantR | Case 2 · hand-worked: .joint | |
|---|---|---|
| Who uses it | most designs; the default | Newman's 1989 4-leg way; any overhang the program cannot describe |
| Deck | .cantL LC=5.5 X=4.25 P=-201.6 w=-1.8 | .joint ZL=-150 VL=-50 .joint ZR=-150 VR=-50 |
| Moment at joint | Z = P·X + w·LC²/2, worked every run | typed in from the overhang calculation (hogging negative) |
| Shear at joint | P + w·LC, worked every run | typed in (down negative) |
| Face values | V and M at the leg face, in the report | from the hand calculation |
| Good for | one bearing per overhang plus self-weight | two bearings, parapet, sidewalk, utilities; a fixed design whose loads are being iterated |
His 4-leg BM revision reads no overhang data, so he worked the overhang by hand and typed the moment into lines 725 and 740: 150 / 150 in PR4BMQ (50 k × 3.0 ft), 151 / 156 in PR4BM4I. The earlier 4-leg programs computed it, as the 3-leg does. Give the shear with the moment: a moment alone leaves the overhang load out of the leg axial loads. (His runs carried it as the bearing load listed in the span at 0.2 ft.) Check hand numbers once against Case 1; for a single bearing they must agree.
| Quantity | Convention |
|---|---|
| Joints and legs | His letters: cap joints A, B, F, G from the left; leg bases D, C, E, H. Spans AB, BF, FG; legs AD, BC, FE, GH. |
| Loads | down negative, as in his DATA |
| End moments | clockwise positive on the member end (slope-deflection) |
| Cap internal moment | sagging positive; M(left end) = MAB, M(right end) = −MBA |
| Leg shear | V = (Mtop + Mbase)/H |
| Leg axial | compression positive, including leg self-weight γ·CW·D·(H − deduct) |
Every run prints these, and every one must close:
Joint balance Σ member end moments − ZL (left joint) / + ZR (right joint) = 0.000 Sway Σ V + F · factor = 0.000 Base springs M_base + kr · θ_base = 0.000 Spans shear and moment at each end agree with the end moments Vertical Σ N = Σ loads + self-weight
On the plot the hover pane lists each joint's moments and shows them summing to zero. A number that does not close is a wrong number, however neat it looks.
| His program | Result on the page | Remaining difference explained by |
|---|---|---|
| PIER2LD (2 legs) | matches every printed digit | — |
| PR3LDG3Z (3 legs) | within 0.11 % | his CBF leaves out MC4A4 (P9's left fixed-end moment); replicated: exact |
| PR4BMQ (4 legs) | within 0.20 % | his sway coefficient −2.67 for −8/3; replicated: exact |
| PR4BM4I (4 legs) | within 0.43 % | the same −2.67; replicated: exact |
| Framer, 5 legs (wind, dead, all loads) | within 0.016 ft-k | Framer applies loads as strips 0.001 ft wide, F just below the joint |
He wrote programs for 2, 3 and 4 legs. The page solves 2 to 6; five legs (the multi-column type seen on I-84 at Southbury, no overhangs) are proved against Framer, a stiffness-method frame program independent of his code. Framer prints end moments counterclockwise positive, so its key enters with the sign changed. Framer takes point loads as narrow strips (W = P/C), so the deck puts F as a 0.001 ft strip ending at the cap, the way the page applies it. A first run with a 0.1 ft strip lower on the column shifted the sway moments by up to 1.6 ft-k; an independent solve with the load placed the same way matched Framer to 0.002 ft-k. New joint letters continue his pattern: J, M at the cap, K, N at the bases.
Limits: a very stiff footing equals the fixed answer; kr = 0 gives zero base moment; reversing F mirrors the sway part of the answer. All equilibrium checks close in all six example decks.
Each was proved by statics in his own runs. None touches the solve or the end moments; they are in the follow-on shears, face values and side calculations. His originals are kept unchanged beside the page.
| Line(s) | As written | Corrected |
|---|---|---|
| 2104 (2-leg) | MCR … WU*(L-A1B)^2 | /2 added |
| 2258 (2-leg) | WU*(C31-A1B) | C31−B1B: right-end shear then equals SL + WT |
| 4661 (2-leg) | WU(B1A-D/2) | missing * (GW-BASIC read it as an array, value 0) |
| 2105 (3L, 3LD) | RL = (−ZL+MBA)/L | (MAB+MBA)/L, as he later did in G3Z |
| 2300 (3L, 4L) | MA … + .3*ZL | removed; his BM revision agrees |
| 2312 (2/3-leg) | MRFCA uses SFC before it exists | integrated to the face |
| 3289 (G3Z) | B1A in span BF | B3A |
| 3343 (G3Z) | (SA4+SFL)/2 | SA4R |
| 3190 (4-leg) | WUM*B3A | WUM*B3A^2/2 |
| 1460 (PIER4L) | MC4ARA in CFB | removed (P9 is a right-span load) |
| 1375 (3-leg) | MC4A4 computed, not added to CBF | added |
| D*CW*(H-3) | D is the sway there, H unset | each leg D·CW·(H − deduct) |
| 4841 (G3Z) | shrinkage as a force | moment 6·E·144·I·δ/H² |
| 2-leg temperature | one leg L, the other 0 | each leg its distance from the pier centre |
| 2520/3520 (BM) | max-moment search | where the shear crosses zero |
Two load-model choices were made with Gary: a bearing load on an overhang is carried by the cantilever, so its shear at the leg face is fully additive (his "inspan" model is kept to reproduce his runs), and one bearing load per overhang is enough.
The page is an analysis, not a code check. Verified means: it solves the frame he solved, the way he solved it, and every equilibrium check closes. It does not choose the loads.
The same rule governs every port in this family (concrete beam, ultimate-strength carry sheet, bridge pier):
/var/www/main/
frame/ browsable source (Caddy file_server browse; mkindex.sh)
forms/ *.frm, *.out.txt, PAGES.txt templates, runs, form-to-page map
lua/ frame.lua the engine
pascal/ frame.pas, bin/ the original engine and Linux binary
pier/
pier.html the page: deck · Report · Plots · Instructions
pier_core.js pier_decks.js pier_shell.html build parts (awk splice)
legacy/ *.TXT *.RUN *.IN his listings, runs and data, kept as found
Every page's Instructions link to its sources in one side browser tab, so the original and the port can be compared side by side. To rerun his programs on Linux:
pcbasic -n -q PIER2LD.TXT > PIER2LD.RUN
He solved these frames with an ordinary portable computer, a careful daughter at the keyboard and a method he could check by hand. The page keeps all of that: his letters, his names beside the new ones, his runs as the answer key, his corrections shown rather than hidden. What it adds is reach. The next designer can see the frame bend, watch every joint sum to zero, and follow any number back to 1985.
Gary Argraves & Claude · Newtown, Connecticut · November 2026