1 (edited by JohnWasilewski 2017-06-05 08:54:14)

Topic: [STR]uctural [E]ngineering [S]ystems [S]olver

I have found a downloadable .PDF of Fenves, Logcher & Mauch: 'STRESS: A Reference Manual: MIT: 1965.
It contains the complete listing of STRESS, mainly in Fortran-II but also with embedded Assembler, as I have explained.  Good news is that the .PDF is has the text, not just bitmapped pages.  The bad news is that spaces at the start of each line are not captured, either as spaces or tabs, when extracting the text, so there's quite a bit of editing to do to insert them.  However, the code itself is all readable and able to be copied as text, so save as FTN source files.

Here's where to find it:

ftp://bitsavers.informatik.uni-stuttgart.de/pdf/mit/civil_engr/stress/Fenves_Stress_A_Reference_Manual_1965.pdf

The book is:

STRESS: A Reference Manual
A Problem-Oriented Computer Language
for Structural Engineering

the Massachusetts Institute of Technology

Steven J. Fenves
Robert D. Logcher
Samuel P.Mauch

The M.I.T. Press
Massachusetts Institute of Technology#Cambridge, Massachusetts

Copyright 1965
Library of Congress Catalog Card Number: 65-13830

The preface explains how work on STRESS becan in Autumn 1962, under Illinois university and MIT visiting faculty member Prof. S.J.Fenves.  The introduction tells us that STRESS was implemented on an IBM 7094.  Chapter 1 says the Fortran code is in FORTRAN II.  The book explains the entire program organisation, with many flow-charts and a lot of explanatory text.  Remarkably, the team developed a dynamic storage scheme, using 1-D arrays and pointers.

The code is mainly Fortran but there is also a quite a lot of embedded assembler, and there's a warning in the narrative that reprogramming will be needed on any system that differes from the 7094 in word format or length, in the internal representation of alphanumeric characters, or in access to secondary storage (tapes and disks).  The assembler code is used for the dynamic memory process, for the equation solution, and for many other things.  It's all embedded within the Fortran listing.  The program listing fills pages 217 to 382, at 62 lines per page, which comes to over 10,000 lines.

By today's standards, the code is not well structured.  In saying this, I mean no disrespect to the authors, who, with the technology they had then, did a magnificent job.  It is just that this was groundbreaking coding of complex structural software, at a time when portable code was both difficult, with the machines and compilers they had, and not yet a priority.  To illustrate what I mean,  pretty well EVERY PAGE has 20 to 30 lines of numbered statements, and not far off the same number of GO TO statements.  Over one third of the code is potential spaghetti.

If the download address becomes unresponsive, I can provide a copy by email
If anyone has the time and skill to translate the embedded Assembler into Fortran, do, please, share this with the rest of us!
----
John