Graphics Programming from a Bygone Era
This is an example of what it took to run a simple Fortran program in 1977. I wrote this when I worked as a co-op engineering student at the Nebraska Public Power District in Columbus, Nebraska. At that time NPPD bought additional computer time from the University of Nebraska’s Computing Network. A remote card reader/printer was installed in Columbus and connected to the UN Med Center computer in Omaha via a leased phone line.
This is a very simple example – the JCL statements all start with // and sometimes there were dozens of them. This is a program that plotted a graph of electrical load data, which had to be sent to a Calcomp pen plotter in Lincoln with instructions to the operator at the Med Center to mount a tape, then send it to Lincoln. The Lincoln operator had to mount the tape, plot on 30” paper, etc, then return the paper to Columbus and the tape to the UNMC tape library. So I’d run this from Columbus and wait a few days for the plot to arrive to see if it worked. If it didn’t, I’d repeat the process and wait a few more days.
//DAHMKE JOB (NPPDAA541500,MARK,99,99),DAHMKE,CLASS=A,PRTY=6
// EXEC PGM=CONSOL
//READF DD *
UNMC: MOUNT TAPE = NPPLOT WITH RING IN. THANKS.
MESSAGE TO LINCOLN I/O CLERK:
PLOT ON 30 INCH WHITE PAPER WITH INDIA INK. (TAPE=NPPLOT)
RETURN TO MARK DAHMKE, PLANNING DEPT OF NPPD COLUMBUS.
RETURN TAPE TO UNMC
THANK YOU.
/*
// EXEC FORTGCLP,TIME.GO=5
//FORT.SYSIN DD *
DIMENSION EEI(365,24),AB(8000)
CALL PLOTS(AB(1),16000,6)
CALL FACTOR(.109)
CALL PLOT(180.,10.,-3)
DO 10 I = 1,365
READ(5,1)(EEI(I,J),J=1,12)
10 READ(5,1,END=99)(EEI(I,J),J=13,24)
99 CONTINUE
100 CONTINUE
CALL SYMBOL(-73.4,73.4,.2,’HOUR INTERVALS’,-45.,14)
CALL SYMBOL(-89.,88.08,.2,’23.’,0.,3)
CALL SYMBOL(-3.6,0.,.2,’0.’,0.,2)
CALL AXIS(0.,0.,’NPPD SYSTEM LOAD 1976′,-21,365.,0.,0.,1.,10.)
CALL AXIS(-88.08,88.08, ‘LOAD IN MW * 10.’,16,150.,90.,0.,10.,10.
& )
1 FORMAT(20X,12F5.0)
DO 20 J=1,24
DO 30 I=1,365
X=FLOAT(I)
30 CALL PLOT(X,EEI(I,J)/10.,2)
CALL PLOT(-3.67,3.67,-3)
20 CONTINUE
CALL PLOT(10.,10.,999)
STOP
END
/*
//GO.SYSIN DD *
[data goes here]
/*
//