In the ‘F” specs, one of your files is coded with a ‘P’ for Primary instead of ‘F’ for Full Procedureal.
Unless it has a NOMAIN the cycle runs — here is the short list of cycle stuff
it does some initialization
runs first statement
does some stuff when *inlr is on and end or return is reached
If the F spec has a P then it automatically reads records from that file
It can also automatically write stuff to a report and do control breaks …
So back a ways there were programs written with F-specs I-specs and O-specs and the program did as the name implies – (Report Program Generator).