RFC 390 UNKNOWN TSO · TUTORIAL · COMPUTING

TSO Scenario

A worked example of editing, compiling and running a Fortran program

On rfc-editor.org ↗
PUBLISHED
September 1972
AUTHORS
R.T. Braden
STREAM
Legacy
DOI
10.17487/RFC0390

RFC text

Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                  Robert T. Braden
Request for Comments: 390                              UCLA/CCM
NIC: 11582                                             September 12, 1972

                              TSO SCENARIO
               BATCH COMPILATION AND FOREGROUND EXECUTION

logon uid                                              (Use your user-id)
LOGON UID                       (TSO repeats line for reasons of its own)
ENTER PASSWORD                                    (TSO asks for password)
xyz
UID LOGON IN PROGRESS AT 09:59:18 ON AUGUST 28, 1972
LOGON PROCEEDING                         (It may take a minute or longer)
WELCOME TO TSO.  GOOD LUCK.

= CCN NEWS =

THE DEFAULT LOGON PROCEDURE NO LONGER PRE-ALLOCATES FILES -
  SYSUT1, SYSUT2, AND SYSUT3.

READY                               (call EDIT to create source data set)
edit sample new fortg
INPUT          (for "new" data set, EDIT enters INPUT mode automatically)
00010 // exec fortgcl                                     (in INPUT mode,
00020 c  a sample fortran program            EDIT types out line numbers,
00030 c                                               user enters lines.)
00040 1     format(' enter a')
00050 2     format(' the square root of',f10.3,' is',f10.3)
00060 3     format(f10.3)
00070 100   write(6,1)                            (Specifying "fortg" in
00080       read(5,3) a                   edit command sets logical tabs
00090       b=sqrt(a)                             correctly for Fortran)
00100       write(6,2) a, b
00110       go to 100
00120       end
00130 /*
00140 //lked.syslmod dd disp=new,dsn=abc132.uid.load(root)
00150                                      (Null line leaves INPUT mode)
verify                    ("verify" causes changed line to be displayed)
change 140 /new/old/
00140 //LKED.SYSLMOD DD DISP=OLD,DSN=ABC123.UID.LOAD(ROOT)
list
00010 // EXEC FORTGCL
00020 C A SAMPLE FORTRAN PROGRAM
00030 C

00040 1     FORMAT(' ENTER A')
00050 2     FORMAT(' THE SQUARE ROOT OF',F10.3,' IS',F10.3)
00060 3     FORMAT(F10.3)
00070 100   WRITE(6,1)
00080       READ(5,3) A
00090       B=SQRT(A)
00100       WRITE(6,2) A, B
00110       GO TO 100
00120       END
00130 /*
00140 //LKED.SYSLMOD DD DISP=OLD,DSN=ABC132.UID.LOAD(ROOT)
END OF DATA
save                          (Make permanent copy of source file)
SAVED
end                           (Leave EDIT)
READY                         (Create new load module library data set)
allocate da(load) new space(5,5) block(7294) dir(1)
READY
free da(load)                 (Free library data set from TSO so batch
READY                         job can linkedit into it)
submit sample                 (Submit source file to batch)
ENTER JOBNAME CHARACTER-
p
JOB ABC123P SUBMITTED         (User "UID" has charge number "ABC123")
READY
status
 ABC123P  WAITING FOR READER
IEF404I ABC123P  ENDED        (Spontaneous message when job finishes)
READY
status
 ABC123P  FINISHED WAITING FOR WRITER
READY
keepout abc123p               (Save output in permanent data set)
SYSOUT DATA SET FOR JOB ABC123P ADDED TO PRINT DATA SET WITH UNLIKE ATTRIBUTES+
SYSOUT DATA SET FOR JOB ABC123P ADDED TO PRINT DATA SET WITH UNLIKE ATTRIBUTES+
NO CLASS OUTPUT FOR JOB ABC123P
EDIT OUTPUT.LIST  ("Keepout" leaves you in EDIT to examine output list)
find /return code/
CCN011I STEP RETURN CODE =     0
list
//ABC123P   JOB  'ABC123.UID,B=0672',
//             UID,
//             NOTIFY=UID,
//             MSGLEVEL=(1,1)
// EXEC FORTGCL                                                0000001

XXFORTGCL PROC TC=1439,TL=1439,PC=150,PL=10,RL=154K,RC=100K,LEVEL=1
XXFORT   EXEC  PGM=IEYFORT,REGION=&RC,TIME=&TC                 0000002
IEF653I SUBSTITUTION JCL - PGM=IEYFORT,REGION=100K,TIME=1439
XXSTEPLIB DD DISP=(SHR,PASS),DSN=&&FORTRAN&LEVEL               0000003
IEF653I SUBSTITUTION JCL - DISP=(SHR,PASS),DSN=&&FORTRAN1
XXSYSLIN DD DSN=&&LOADSET,DISP=(MOD,PASS),UNIT=SYSDA,          0000004
XX SPACE=(3200,(8,4),RLSE),DCB=BLKSIZE=3200                    0000005
XXSYSPRINT DD SYSOUT=A,DCB=(RECFM=FBA,LRECL=120,BLKSIZE=3480), 0000006
XX SPACE=(TRK,&PC,RLSE)                                        0000007
IEF653I SUBSTITUTION JCL - SPACE=(TRK,150,RLSE)
//SYSIN DD * GENERATED STATEMENT
IEF236I ALLOC. FOR ABC123P  FORT
IEF237I 342   ALLOCATED TO STEPLIB
IEF237I 450   ALLOCATED TO SYSLIN
IEF237I 630   ALLOCATED TO SYSPRINT
IEF237I 230   ALLOCATED TO SYSIN
1  FORTRAN IV G LEVEL  20                MAIN          DATE=72241

0               C  A SAMPLE FORTRAN PROGRAM
                C
    0001        1     FORMAT(' ENTER A')
    0002        2     FORMAT(' THE SQUARE ROOT OF',F10.3,' IS',F10.3)
    0003        3     FORMAT(F10.3)
    0004        100   WRITE(6,1)
    0005              READ(5,3) A
    0006              B=SQRT(A)
    0007              WRITE(6,2) A, B
    0008              GO TO 100
    0009              END
1 FORTRAN IV G LEVEL   20                MAIN          DATE=72241
0

SUBPROGRAMS CALLED
EDIT
end                           (Leave EDIT)
READY
print output.list             (Ask to have output printed at CCN)
DATASET OUTPUT.LIST HAS BEEN ENQUEUED FOR PRINTING IN CLASS C
READY                         (Now execute load module in foreground)
allocate file(ft05f001) da(*)
READY              (Allocate Fortran input and output files to terminal)
allocate file(ft06f001) da(*)
READY
call load(root)               (Call load module)
ENTER A
3.141
THE SQUARE ROOT OF      3.141 IS    1.772
ENTER A
4096.
THE SQUARE ROOT OF   4096.000 IS   64.000
ENTER A
READY
logoff
UID LOGGED OFF TSO AT 10:40:18 ON AUGUST 28,  1972+


       [ This RFC was put into machine readable form for entry ]
        [ into the online RFC archives by Marcus Meissner 1/98 ]

ISO Plain Language

On this page
PROBLEMUsers needed an example of compiling a program in batch and then running it interactively through TSO.
MECHANISMThe scenario logs into TSO, creates and saves a Fortran source file, submits it for compilation, checks its status and calls the resulting program.
A WORKED SCENARIOThe example demonstrates a complete workflow with a program that repeatedly reads a number and prints its square root.

§1Logging In and Creating Source Code

The scenario begins with a TSO logon using a user ID and password. The user opens EDIT, creates a new Fortran source data set and enters a program that prompts for a value, calculates its square root and prints the result.

The example shows commands for reviewing and changing a source line, listing the file and saving it before leaving the editor.

The user logs in, opens the editor and types a Fortran program. The example also shows how to inspect, change and save the source.

§2Submitting the Program for Compilation

After allocating a library data set, the user submits the source file as a batch job. TSO assigns the job a name, and the user checks its progress with STATUS. When it finishes, the user examines the output listing and finds a step return code of 0.

The example then sends the output listing to the print queue.

The source is sent to a batch job for compilation. The user checks the job status and then looks at the output to see the compiler's return code.

§3Running the Compiled Program

The user allocates terminal input and output for the Fortran program and calls the load module. The program asks for values, including 3.141 and 4096, and prints the corresponding square roots shown in the example. The scenario ends with the user leaving TSO.

After compilation, the user runs the program at the terminal and enters values. The program prints the results before the user logs off.