Although we are all Fortran geeks, if you have never been to Vicksburg, then the battlefield is worth a trip, to see the scale and read about the differences 150 years makes in communication to the battles, but humans will always be humans. Coming back it was 110 F in the sun according to the Weather people and the excellent thermometer in the car. The battle was fought in that sort of weather. Five minutes in the sun on top of the hill was enough for me.
Next to the battlefield is the Coca Cola museum, if you grew up on coke from the 60’s you will love it, memories of your mother getting you a coke. And an incredible bookstore, think Notting Hill and Hugh Grant run by a Nuclear Specialist.
The drive gave me a long time to think about the prestress program and Fortran IV. The original program uses the variable STRNS to determine the number of strands, it has several constraints, it has to be an integer and usually a multiple of two - for the mirror image on the section to be true. Will ignore the three case, it is not relevant.
The following equation tells you the theoretical peak load in the strands, but the original IV code does not round the STRNS to meet the requirements, or so it appears in just looking at the code. The answers in the book for a standard problem provide a centre of gravity of 10.4 inches. I have now fixed the bugs I introduced in typing in the cards, and I get all the answers correct, but the CG was coming out at 11.3 inches. This is not correct.
The IV equation was
FO = TENIN*STRNS
and it gives the correct answer from rounding STRNS as if I had taken the floor command. After a lot of playing, the simple solution is just using the floor function.
FO = TENIN*floor(STRNS)
It gives the exact answers in the book and it is conceptually correct from the engineering perspective.
I checked the equations numerically in EXCEL, if I had not had the answers it would have been easy to miss the issue if you were in a hurry.
Interesting, no idea why IV gives this answer, the correct one, but why? We do not declare the variables, but IV is clearly treating STRNS as an integer.
Here is the program, I am still tiding up the output, but the good part is now understanding how they engineered these bridges, I found a good explanation in a standard engineering book from the 1960’s by Leonhardt. In terms of programming skills the code is advanced engineering, would have saved them weeks of hand calculations.
PrestressBridge (2).zip (3.68 MB)