Part 4 - Analysis Of The Fortran Program - IBM 1620 Manual

Hide thumbs Also See for 1620:
Table of Contents

Advertisement

Floating Point
Accumulator
Subroutine Linkage
Error Analysis of
Subroutines
The preceding table shows each subroutine provided, its type, the num-
ber of operands it requires, and its symbolic name. The symbolic names shown
on this table are not used in programming; they are included to provide refer-
ence to the symbolic listing of the subroutines.
The results of all floating point subroutines appear in a 10-digit field which ex-
tends from storage positions 00051 through 00060. This field is called the floating
point accumulator
(FAC).
The symbol,
FAC,
is associated with the address 00060
in the symbolic listing of the system.
F AC
is also used as the fixed point accumulator. Fixed point numbers occupy
only the four low-order positions of
FAC,
00057-00060.
The subroutine linkage is in the form
BTM SUBR A (where A is the address of the argument)
for arithmetic subroutines. The number stored in
FAC
is added to, subtracted
from, divided by, or multiplied by the operand.
Both type 2 and type 3 subroutines are relocatable and are loaded only if
called for. Toward the beginning of the compilation phase, the symbol table area
is cleared. The symbolic name of the subroutine,
SIN,
is loaded into a specific
10-digit field in the symbol table. The address of this field is derived from the
order in which the subroutine names are listed in the
FORTRAN
processor. The
symbol is left-justified in the field, and the high-order address of that field is
associated with the function subroutine. The 10-digit field immediately preceding
this field is also associated with the same function subroutine. For example, if the
subroutine order is the order used by
IBM
Programming Systems in the decks
they prepare and release, the locations 19990 through 19999 are reserved for the
symbol
SIN
and the preceding ten digits, 19980 through 19989, are also reserved
for the sine subroutine. If the program calls for the sine subroutine (i.e., the sine
function is used in an arithmetic statement), the following instruction is compiled:
BTM 19990 , A
where A is the address of the subroutine argument. When the subroutine has
been assigned an absolute address, the symbol
SIN
is replaced by 49 xxxxx, where
xxxxx is the absolute address of the
FSIN
subroutine in memory. Thus, when the
BTM
19990 A instruction is executed in the object program, the address of the
argument will be transmitted to 19985 through 19989, and the branch to 19990
will be followed by a branch to the
FSIN
subroutine.
Results of all
FORTRAN
subroutines are truncated (except
FMP
and
FEXP,
where
the result is rounded), and, in general, errors are no greater than one in the
last digit of the resulting mantissa. The exceptions to this statement are listed
below:
FLN: The argument of the
FLN
subroutine is broken into an integral and a frac-
tional part. The logarithm of the fraction is evaluated using a series expansion.
The result is correct to nine decimal digits. The integral part of the argument is
multiplied by Inl0 and added to the above result to produce the desired value.
For values of the argument in the range .99<ARG .::::; 1.01, some loss of accuracy
will occur. The reason for this is that some of the digits calculated will be leading
zeros, and, when the result is normalized, fewer than eight significant digits will
remain.
FEXP: The antilogarithm is computed using a Hastings'
approximation~
for
lOX. The argument is initially multiplied by log e and then divided into an integral
«Hastings, Cecil, Jr., Approximations for Digital Computers,
Princeton University Press, New Jersey,
The Rand Corporation, 1955
Analysis of the FORTRAN Program
59

Advertisement

Table of Contents
loading

Table of Contents