Private Homepage of Hartmut Henkel

Recovering the MSTRIP2 Fortran Source Code

There is the technical report “MSTRIP2: Parameters of Microstrip Transmission Lines and of Coupled Pairs of Lines – 1978 Version and Its Application” by J.A. Weiss, R.S. Withers, and R.C. Lewis, Technical Report 600, Lincoln Laboratory, 4 June 1982. The original report is available for the public and can be freely downloaded here:

This report contains in its Appendix the MSTRIP2 Fortran source, which caught my interest, since it's obviously a classic, with time-proven high accuracy, and with published source code (a nice way for long-term preservation). I wanted to use this program to calculate the impedance of some PCB tracks. However it was not possible to find the MSTRIP2 source code in the Internet, and the quality of the copy was so bad, that my OCR experiments were not working satisfactory at all. So i typed the code in (as an exercitium), trying to preserve the original as faithful as possible (e. g., including some minor inconsistent spacing). Here now is an inofficial, recovered version of the MSTRIP2 Fortran source:

Beware, there is no warranty for correctness! This program needs three external Fortran subroutines, which can be freely downloaded from the PDP-10 software archive:

With these ingredients at hand, it is rather straight-forward to compile the source, either by using the f2c converter and a C compiler, or directly using the GNU Fortran compiler gfortran. The call to function TIMES() in mstrip2.for is non-standard and machine-dependent, but this call can easily be removed by the following ed-script:

The compilation through f2c and gcc is managed (on a PC running debian-jessie Linux) by the following

Various tests of the resulting mstrip2 program with the input parameters listed in Table II from the technical report above produced the results as listed there. As mentioned in the MSTRIP2 source code by the authors, it is also easy to improve the accuracy by increasing the number M of substrips, with corresponding changes of the DIMENSION and COMMON lines. I tried this with M = 200 and M = 1000. In any case the program worked stably.

Summing up this experiment, it seems that recovering the MSTRIP2 Fortran source code has been so far successful. Further playing with the program also showed that it is still as useful as it was over 30 years ago.

By the way, this was not the first attempt to recover the MSTRIP2 source, as can be read on page 35 (“archeological work”) of the technical report “LLAMA (Lincoln Laboratory Advanced MARTHA Applications) Software Manual” by D.W. White from 1 December 2003:

This page first put online 4 October 2015.