increasing it by the amount 3 after each time until either α >
90, or |x + y| ≤ ε.</para>
+<indexterm><primary>Iteration Statement</primary></indexterm>
+
<para>We shall abbreviate this by the form:</para>
<programlisting>
<sect2 id='THROUGH'><title>THROUGH (Iteration) Statement</title>
+<indexterm><primary>Iteration Statement</primary></indexterm>
+<indexterm><primary>Iteration Variable</primary></indexterm>
+
<para>The following program segment illustrates the use of this
statement.</para>
<!-- beginpage II.17 -->
+<indexterm><primary>Iteration, Nested</primary></indexterm>
+
<programlisting>
THROUGH END, FOR J = 2, .GE. K
...
</sect2>
<sect2 id='list_statements'><title>List Manipulation Statements</title>
+<indexterm><primary>List Manipulation</primary></indexterm>
+
<para>These statements facilitate the writing of recursive internal
and external functions. (see <xref linkend='funcdefs'/>) They cause
the designation and use of a vector for the temporary storage of data
<para>Variables may be declared to be array variables, such as vectors or
matrices of various dimensions, rather than individual variables.</para>
- <para>Each array is stored in a region whose elements may be referred to by
-means of a single subscript, such as A(0), A(1), B(16), etc. Even
-elements of higher dimensional arrays may be referred to in this way
-at any time. We shall call the subscript thus associated with each
-element of an array its "linear subscript." If A is an array then the
-name A is equivalent to A(0), e.e., the name A written without a
-subscript is assumed to have a subscript of zero.</para>
+ <para>Each array is stored in a region whose elements may be referred
+to by means of a single subscript, such as A(0), A(1), B(16), etc.
+Even elements of higher dimensional arrays may be referred to in this
+way at any time. We shall call the subscript thus associated with
+each element of an array its "linear
+subscript."<indexterm><primary>Linear Subscript</primary></indexterm>
+If A is an array then the name A is equivalent to A(0), e.e., the name
+A written without a subscript is assumed to have a subscript of
+zero.</para>
<para>Two dimensional matrices are stored internally by rows, i.e., an
m × n matrix will be stored in the order: a<subscript>11</subscript>,
a<subscript>11pq</subscript>, a<subscript>1211</subscript>,...,
a<subscript>1npq</subscript>, ... a<subscript>mnpq</subscript>.</para>
+<indexterm><primary>Matrix Notation</primary></indexterm>
+
<para>Elements of higher dimensional arrays may be referred to not only by
their linear subscripts but also by the usual matrix notation, such as
A(1,1), A(I,J), B(I+6,J/3+3).</para>
<sect2 id='funcdefs'><title>Function Definitions</title>
<indexterm><primary>Function Definition</primary></indexterm>
+<indexterm><primary>INTERNAL FUNCTION</primary></indexterm>
<!-- the xrefs here were in the form "subsection 3.8.x" in the original -->
</sect3>
<sect3 id='internal_functions'><title>Internal Function Definitions</title>
+<indexterm><primary>INTERNAL FUNCTION</primary></indexterm>
+
<para>These statements define functions not yet available in the
language or as standard package programs ("subroutines"). The
designation "INTERNAL" implies that the definition program which
</sect3>
<sect3 id='internal_and_external'><title>Internal and External Functions</title>
<indexterm><primary>Function Definition</primary></indexterm>
+<indexterm><primary>INTERNAL FUNCTION</primary></indexterm>
<para>Each function definition (except single statement definitions
described in <xref linkend='internal_functions'/>) may define any
<para>It is important to note that internal function definitions of
any kind whatever (including the single statement definition of <xref
linkend='internal_functions'/>) may occur anywhere in the program,
+<indexterm><primary>INTERNAL FUNCTION</primary></indexterm>
except within another internal function definition. Internal function
definitions may occur within external function definitions, however.
External function definitions may not occur within any other programs,
</imageobject>
</mediaobject>
+<indexterm><primary>Iteration Statement</primary></indexterm>
+
<para>Here the scope of the iteration lies between the hexagonal box
and diamond box A, and the calculation proceeds from A when the stated
relation is true.</para>
<!-- beginpage III.15 -->
<sect2><title>Example 5<emphasis role='note'>: Compute the transpose of a matrix</emphasis></title>
+<indexterm><primary>Matrix Transpose Example</primary></indexterm>
+
<para><emphasis>Problem:</emphasis> Find the transpose A' of an n×n
matrix A = (a<subscript>ij</subscript>).</para>
<!-- beginpage III.19 -->
<sect2><title>Example 7<emphasis role='note'>: Solve simultaneous linear equations</emphasis></title>
+<indexterm><primary>Jordan Elimination Method Example</primary></indexterm>
+
<para><emphasis>Problem</emphasis> Solve a system of n ≤ 20 simultaneous
linear equations in n unknowns, assuming that one does not encounter a
zero on the main diagonal of the coefficient matrix during the
<sect2><title><emphasis role='note'>Example 2: Compute the factorial function</emphasis></title>
<para><emphasis>Problem:</emphasis> Evaluate the recursive function,</para>
+<!-- not clear what this is referring to -->
+<indexterm><primary>List Manipulation</primary></indexterm>
+
<para role='centered'>f(0) = 1</para>
<para role='centered'>f(n) = f(n-1) * n</para>
<indexterm><primary>Hierarchy of Parentheses</primary><see>Parentheses</see></indexterm>
<indexterm><primary>Individual Variables</primary><see>Single Variables</see></indexterm>
<indexterm><primary>Input-Output Blocks</primary><see>Blocks, Input-Output</see></indexterm>
-
+<indexterm><primary>Labels, Statement</primary><see>Statement, Labels</see></indexterm>
+<indexterm><primary>List, Input-Output</primary><see>Input-Output List</see></indexterm>
+<indexterm><primary>Matrices</primary><see>Array Variables</see></indexterm>
<index/>
</appendix>