From chk@erato.cs.rice.edu  Mon Jun 15 16:02:52 1992
Received: from erato.cs.rice.edu by cs.rice.edu (AA27555); Mon, 15 Jun 92 16:02:52 CDT
Received: from localhost.cs.rice.edu by erato.cs.rice.edu (AA02826); Mon, 15 Jun 92 16:02:54 CDT
Message-Id: <9206152102.AA02826@erato.cs.rice.edu>
To: hpff-format@erato.cs.rice.edu
Word-Of-The-Day: comity : (n) friendly social atmosphere; social harmony
Subject: Hello?
Date: Mon, 15 Jun 92 16:02:50 -0500
From: chk@erato.cs.rice.edu


Due to a variety of problems, I'm not sure anyone (else) got the
"Welcome to the HPFF Editorial Subgroup" message.  If you did, please
excuse the following reposts; if not, I hope it works this time.

	Chuck

> Date:    Fri, 12 Jun 92 16:07:16 CDT
> To:      hpff-format@cs.rice.edu
> From:    chk@cs.rice.edu
> Subject: Welcome to the HPFF Editorial Subgroup
> Word-Of-The-Day: comity : (n) friendly social atmosphere; social harmony
> 
> 
> Welcome to the HPFF Editorial Subgroup
> 
> The purpose of this group is to develop a standard format for drafts
> of the HPFF language.  Let the games begin!
> 
> To start off discussion, the next two messages are attempts that I
> made to define an outline for the eventual HPFF draft.  One follows
> the F90 standard fairly slavishly, the other is more of an independent
> document.  In the end, I wasn't satisfied with either of them, or I
> would have circulated them at the last meeting.
> 
> Proposal: 
> HPFF should produce the following in its draft(s):
> 	HPF language spec, giving just the extensions to F90
> 	BNF + constraints for the entire language (i.e. both F90 and HPF)
> 	BNF + constraints for the subset language
> 	Rationale for HPF features, including
> 	    Examples of features (more extensive than in the language
> 	    spec, and probably with more amusing variable names)
> 	    Sample implementations for distributed-memory and SIMD machines
> 	If someone has automatic indexing software, an index would be
> 	    nice, too...
> Presumably these could all be packaged as a single document.
> 
> 						Chuck

From chk@erato.cs.rice.edu  Mon Jun 15 16:03:22 1992
Received: from erato.cs.rice.edu by cs.rice.edu (AA27605); Mon, 15 Jun 92 16:03:22 CDT
Received: from localhost.cs.rice.edu by erato.cs.rice.edu (AA02831); Mon, 15 Jun 92 16:03:23 CDT
Message-Id: <9206152103.AA02831@erato.cs.rice.edu>
To: hpff-format@erato.cs.rice.edu
Word-Of-The-Day: comity : (n) friendly social atmosphere; social harmony
Subject: HPFF outline, draft 1
Date: Mon, 15 Jun 92 16:03:20 -0500
From: chk@erato.cs.rice.edu

\documentstyle{article}

%------------------------------------------------------------------------------
% Can this all go into a .sty file?
% If so, it probably should...

\oddsidemargin=0.25in
\textwidth=6.0in
\topmargin=-1in
\textheight=9in
\parindent=1em

\catcode`\$=11  \catcode`\&=11  \catcode`\_=11

\newdimen\bnfalign   \bnfalign=2in
\newdimen\bnfopwidth \bnfopwidth=.3in
\newdimen\bnfindent  \bnfindent=.2in
\newdimen\bnfsep     \bnfsep=6pt
\newdimen\bnfmargin  \bnfmargin=0.5in
\newdimen\codemargin \codemargin=0.5in

\def\IT{\it}
\def\RM{\rm}
\let\CHAR=\char
\let\CATCODE=\catcode
\let\DEF=\def
\let\GLOBAL=\global
\let\RELAX=\relax
\let\BEGIN=\begin
\let\END=\end

\def\FUNNYCHARACTIVE{\CATCODE`\a=13 \CATCODE`\b=13 \CATCODE`\c=13 \CATCODE`\d=13
		     \CATCODE`\e=13 \CATCODE`\f=13 \CATCODE`\g=13 \CATCODE`\h=13
		     \CATCODE`\i=13 \CATCODE`\j=13 \CATCODE`\k=13 \CATCODE`\l=13
		     \CATCODE`\m=13 \CATCODE`\n=13 \CATCODE`\o=13 \CATCODE`\p=13
		     \CATCODE`\q=13 \CATCODE`\r=13 \CATCODE`\s=13 \CATCODE`\t=13
		     \CATCODE`\u=13 \CATCODE`\v=13 \CATCODE`\w=13 \CATCODE`\x=13
		     \CATCODE`\y=13 \CATCODE`\z=13 \CATCODE`\[=13 \CATCODE`\]=13
                     \CATCODE`\-=13}

\def\RETURNACTIVE{\CATCODE`\
=13}

\makeatletter
\def\section{\@startsection {section}{1}{\z@}{-3.5ex plus -1ex minus 
 -.2ex}{2.3ex plus .2ex}{\normalsize\bf}}
\def\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex plus -1ex minus 
 -.2ex}{1.5ex plus .2ex}{\normalsize\bf}}

\def\@IFSPACEORRETURNNEXT#1#2{\def\@tempa{#1}\def\@tempb{#2}\futurelet
  \@tempc\@ifspnx}
{
\FUNNYCHARACTIVE
\GLOBAL\DEF\FUNNYCHARDEF{\RELAX
    \DEFa{{\IT\CHAR"61}}\DEFb{{\IT\CHAR"62}}\DEFc{{\IT\CHAR"63}}\RELAX
    \DEFd{{\IT\CHAR"64}}\DEFe{{\IT\CHAR"65}}\DEFf{{\IT\CHAR"66}}\RELAX
    \DEFg{{\IT\CHAR"67}}\DEFh{{\IT\CHAR"68}}\DEFi{{\IT\CHAR"69}}\RELAX
    \DEFj{{\IT\CHAR"6A}}\DEFk{{\IT\CHAR"6B}}\DEFl{{\IT\CHAR"6C}}\RELAX
    \DEFm{{\IT\CHAR"6D}}\DEFn{{\IT\CHAR"6E}}\DEFo{{\IT\CHAR"6F}}\RELAX
    \DEFp{{\IT\CHAR"70}}\DEFq{{\IT\CHAR"71}}\DEFr{{\IT\CHAR"72}}\RELAX
    \DEFs{{\IT\CHAR"73}}\DEFt{{\IT\CHAR"74}}\DEFu{{\IT\CHAR"75}}\RELAX
    \DEFv{{\IT\CHAR"76}}\DEFw{{\IT\CHAR"77}}\DEFx{{\IT\CHAR"78}}\RELAX
    \DEFy{{\IT\CHAR"79}}\DEFz{{\IT\CHAR"7A}}\DEF[{{\RM\CHAR"5B}}\RELAX
    \DEF]{{\RM\CHAR"5D}}\DEF-{\@IFSPACEORRETURNNEXT{{\CHAR"2D}}{{\IT\CHAR"2D}}}}
}

%%% Warning!  Devious return-character machinations in the next several lines!
{\RETURNACTIVE\global\def\RETURNDEF{\def
{\@ifnextchar\FNB{}{\@stopline\@ifnextchar
{\@NEWBNFRULE}{\penalty\@M\@startline\ignorespaces}}}}\global\def\@NEWBNFRULE
{\vskip\bnfsep\@startline\ignorespaces}\global\def\@ifspnx{\ifx\@tempc\@sptoken \let\@tempd\@tempa \else \ifx\@tempc
\let\@tempd\@tempa \else \let\@tempd\@tempb \fi\fi \@tempd}}
%%% End of bizarro return-character machinations.
\def\IS{\@stopfield\global\setbox\@curfield\hbox\bgroup
  \hskip-\bnfindent \hskip-\bnfopwidth  \hskip-\bnfalign
  \hbox to \bnfalign{\unhbox\@curfield\hfill}\hbox to \bnfopwidth{\bf is \hfill}}
\def\OR{\@stopfield\global\setbox\@curfield\hbox\bgroup
  \hskip-\bnfindent \hskip-\bnfopwidth \hbox to \bnfopwidth{\bf or \hfill}}
\def\XBNF{\FUNNYCHARDEF\FUNNYCHARACTIVE\RETURNDEF\RETURNACTIVE
  \tt\frenchspacing \advance\@totalleftmargin\bnfmargin \tabbing
  \hskip\bnfalign\hskip\bnfopwidth\hskip\bnfindent\=\kill\>\+\@gobblecr}
\def\endXBNF{\-\endtabbing}

\def\BNF{\BEGIN{XBNF}}
\def\FNB{\END{XBNF}}

\begingroup \catcode `|=0 \catcode`\\=12
|gdef|@XCODE#1\EDOC{#1|endtrivlist|end{tt}}
|endgroup

\def\CODE{\begin{tt}\advance\@totalleftmargin\codemargin \@verbatim
   \frenchspacing \@vobeyspaces \@XCODE}
\def\ICODE{\begin{tt}\advance\@totalleftmargin\codemargin \@verbatim
   \frenchspacing \@vobeyspaces \FUNNYCHARDEF\FUNNYCHARACTIVE \@XCODE}

\makeatother

% End putative .sty file
%------------------------------------------------------------------------------

\begin{document}

\title{High Performance Fortran Language Specification}

\date{June 4, 1992}

\author{High Performance Fortran Forum}

\maketitle

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Overview}
\label{sec-overview}

This document specifies the form and establishes the interpretation of 
programs expressed in the High Performance Fortran language.
It is designed as a set of extensions and modifications to the 
established International Standard for Fortran (ISO/IEC 1539:1991(E)), 
informally referred to as ``Fortran 90."
The sections of this document reference the 
related sections of the Fortran 90 standard to facilitate its 
incorporation into new standards, should ISO and national standards 
committees deem that desirable.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{Goals and Scope of High Performance Fortran}
\label{sub-goals}

The goals of the High Performance Fortran Forum go here.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{Fortran 90 Binding}
\label{sub-f90}

Elaboration of the statement ``HPF has chosen a Fortran 90 binding" goes 
here.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{Fortran 90 Subset}
\label{sub-subset}

Description of the the Fortran 90 subset goes here.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{Notation}
\label{sub-notation}

In general, this standard uses the same notation as ISO/IEC 1539:1991.
To disabmiguate new syntax rules from the rules in that standard, we make 
the following change: HPF syntax rules are given numbers of the form 
HPF$snn$, where $s$ is a one- or two-digit section number and $nn$ is a 
two-digit sequence number within that section.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{High Performance Fortran Terms and Concepts}
\label{sec-terms}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{High Level Syntax}
\label{sub-hl-syntax}

This section extends Section 2.1 of the Fortran 90 standard.

High Performance Fortran retains Fortran 90's high-level syntax with 
extensions for several new statement types.

New statement-level syntax rules go here.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{Program Unit Concepts}
\label{sub-prog-units}

This section extends Section 2.2 of the Fortran 90 standard.

HPF retains Fortran 90's definitions of {\bf program unit} and the various 
types of program units.
In addition, HPF defines the concept of {\bf local subroutine}.

\subsubsection{Local Subroutine}
\label{subb-local}

Definition of {\bf local subroutine} goes here.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{Execution Concepts}
\label{sub-execution}

\subsubsection{Statement Order}
\label{subb-order}

This section extends Section 2.3.2 of the Fortran 90 standard.

HPF retains Fortran 90's ordering constraints on statements, with 
extensions for new statements.

If we define new ordering constraints for REALIGN and REDISTRIBUTE, they 
go here.

\subsubsection{Execution Sequence}
\label{subb-exec-sequence}

This section extends Section 2.3.4 of the Fortran 90 standard.

HPF retains the Fortran 90 execution sequence, with extensions for 
redistribution and FORALL statements and local subroutines.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection{Data Concepts}
\label{sub-data}

\subsubsection{Array}
\label{subb-array}

This section extends Section 2.4.5 of the Fortran 90 standard.

HPF retains the Fortran 90 notion of an {\bf array}.
In addition to the Fortran 90 array attributes of {\bf rank} and {\bf 
shape}, an array may have a {\bf distribution} describing its storage on 
processor memories.
The facilities for this distribution are described in Section 
\ref{sub-distribute}.
The distribution of an array does not affect its {\bf conformability} with 
other arrays.

\subsubsection{Storage}
\label{subb-storage}

This section extends and replaces Section 2.4.7 of the Fortran 90 standard.

Description of {\bf sequential} and {\bf nonsequential} storage goes here.
Program units which make use of sequential storage must observe certain 
constraints for those data objects (\ref{subb-sequential}).
Objects which are nonsequential make no assumption about the organization 
of physical memory.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Distribution Concepts}
\label{sub-distribute}

General description of the data distribution model goes here, elaborated 
in the following subsections.

\subsubsection{Processor}
\label{subb-processor}

The description of the processor level goes here.

\subsubsection{Template}
\label{subb-template}

The description of the template level goes here.

\subsubsection{Alignment}
\label{subb-align}

The description of alignment goes here.

\subsubsection{Distribution}
\label{subb-distribution}

The description of distribution goes here.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Data Object Declarations and Specifications}
\label{sec-declaration}

This section extends Section 5 of the Fortran 90 standard.

HPF retains Fortran 90's declarations, with the extensions noted 
below.
The notion of type is extended to include certain abstract entities which 
do not represent physical data, but rather entities used to organize data 
distribution.
These 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Type Declaration Statements}
\label{sub-declaration}

This section extends Section 5.1 of the Fortran 90 standard.

Add TEMPLATE and PROCESSORS to the list of type specifiers.

Add ALIGN and DISTRIBUTE to the list of attributions.

\subsubsection{Type Specifiers}
\label{subsub-type-spec}

This section extends Section 5.1.1 of the Fortran 90 standard.

HPF retains all type specifiers from the Fortran 90 standard.
It also adds two type specifiers, the PROCESSOR and TEMPLATE specifiers.

\paragraph{PROCESSOR}
\label{para-processor}

Syntax and semantics of PROCESSOR type go here.

\paragraph{TEMPLATE}
\label{para-template}

Syntax and semantics of TEMPLATE type go here.

\subsubsection{Attributes}
\label{subb-attributes}

This section extends Section 5.1.2 of the Fortran 90 standard.

HPF retains the Fortran 90 type attributes.
In addition, it defines two new attributes, ALIGN and DISTRIBUTE.

\paragraph{ALIGN and REALIGNABLE}
\label{para-align}

Syntax and semantics of ALIGN and REALIGNABLE go here.

\paragraph{DISTRIBUTE and REDISTRIBUTABLE}
\label{para-distribute}

Syntax and semantics of DISTRIBUTE and REDISTRIBUTABLE go here.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Attribute Specification Statements}
\label{sub-attribute-spec}

This section extends Section 5.2 of the Fortran 90 standard.

HPF retains Fortran 90's attribute specification statements, with the 
following extensions.

\subsubsection{ALIGN Statement}
\label{subb-align}

Syntax and semantics of the ALIGN statement go here.

\subsubsection{DISTRIBUTE Statement}
\label{subb-distribute}

Syntax and semantics of the DISTRIBUTE statement go here.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Storage Association of Data Objects}
\label{sub-storage}

This section extends Section 5.5 of the Fortran 90 standard.

Storage and sequence proposal goes here.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Use of Data Objects}
\label{sec-data}

\subsection{Dynamic Association}
\label{sub-allocate}

This section extends Section 6.3 of the Fortran 90 standard.

HPF retains Fortran 90's methods for controling the dynamic creation, 
association, and deallocation of pointer targets and dynamic arrays.

ALIGN and DISTRIBUTE features for allocatable arrays go here, if different 
from general REALIGN and REDISTRIBUTE.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Dynamic Distribution}
\label{sub-distribute}

Description of REALIGN and REDISTRIBUTE go here.

\subsubsection{REALIGN Statement}
\label{subb-realign}

Description of REALIGN goes here.

\subsubsection{REDISTRIBUTE Statement}
\label{subb-redistribute}

Description of REDISTRIBUTE goes here.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Expressions and Assignment}
\label{sec-expression}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Expressions}
\label{sub-expression}

\subsubsection{Scalar and Array Expressions}
\label{subb-scalar-expr}

This section extends Section 7.1.6 of the Fortran 90 standard.

HPF retains Fortran 90's concepts of {\bf scalar}, {\bf array}, {\bf 
constant}, and {\bf specification} expressions, with extensions for new 
intrinsic functions defined in HPF.

If we make a statement regarding the distribution of an array expression, 
it goes here.

\paragraph{Constant Expression}
\label{para-const-expr}

This section extends Section 7.1.6.1 of the Fortran 90 standard.

Definition of constant expression goes here.

\paragraph{Specification Expression}
\label{para-spec-expr}

This section extends Section 7.1.6.2 of the Fortran 90 standard.

Definition of restricted expression and specification expression goes here.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Assignment}
\label{sub-assignment}

\subsubsection{Masked Array Assignment - WHERE}
\label{subb-where}

This section extends Section 7.5.3 of the Fortran 90 standard.

If we decide to allow nested WHERE constructs, this is where they go.
If we allow more generalizations of WHERE (arbitrary nested statements, 
for example), then this section should be moved under 
Section~\ref{sec-execution}.

\subsubsection{Element Array Assignment - FORALL}
\label{subb-single-forall}

Syntax and semantics of the single-statement FORALL go here.
(This assumes that we limit the single statement to an assignment.)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Execution Control}
\label{sec-execution}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Executable Constructs Containing Blocks}
\label{sub-blocks}

This section extends Section 8.1 of the Fortran 90 standard.

HPF retains Fortran 90's structured programming constructs.
In addition, HPF defines the extensions below.

\subsubsection{Rules Governing Blocks}
\label{subb-blocks}

This section extends Section 8.1.1 of the Fortran 90 standard.

HPF retains Fortran 90's rules concerning the definition and execution of 
blocks.
In addition, HPF defines the ON clause for providing user control of the 
location of computations.

\paragraph{ON Clause}
\label{para-on-clause}

Syntax and semantics of ON go here.

\subsubsection{FORALL Construct}
\label{subb-block-forall}

Syntax and semantics of block FORALL go here.

\subsubsection{Other Parallel Indexing Construct}
\label{subb-parallel-loop}

Syntax and semantics of the parallel indexing construct to be named later 
go here.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Input/Output Statements}
\label{sec-io}

This section extends Section 9 of the Fortran 90 standard.

Results of the I/O subgroup go here.
(This assumes that no new FORMAT statements are defined; if they are, 
they should go into a new ``Input/Output Editing" section.)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Program Units}
\label{sec-prog-units}

This section extends Section 11 of the Fortran 90 standard.

HPF retains Fortran 90's notion of program units.
In addition, HPF provides the extension below.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Local Subroutines}
\label{sub-local-subr}

General definition of local subroutines goes here.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Procedures}
\label{sec-procedures}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Characteristics of Procedures}
\label{sub-characteristics}

This section extends Section 12.2 of the Fortran 90 standard.

Add distribution to the list of dummy argument attributes.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Procedure Interface}
\label{sub-interface}

This section extends Section 12.3 of the Fortran 90 standard.

HPF retains Fortran 90's features for implicit and explicit procedure 
interfaces.
The conditions requiring an explicit interface have been extended somewhat.

Require explicit interfaces for passing distributed arrays.

Definition of sequential and nonsequential variables  goes here.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Procedure Reference}
\label{sub-proc-ref}

\subsubsection{Actual Argument List}
\label{subb-sequence-assoc}

This section extends Section 12.4.1 of the Fortran 90 standard.

Redistribution of actual array arguments goes here.

Treatment of sequence association goes here.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Local Subroutines}
\label{sec-local-subrs}

Syntax and detailed semantics of local subroutines go here.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Intrinsics}
\label{sec-intrinsics}

This section extends Section 13 of the Fortran 90 standard.

HPF retains Fortran 90's intrinsic functions.
It also adds a number of intrinsics.

New intrinsics go here.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Scope, Association, and Definition}
\label{sec-scope}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\appendix
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Section Notes}
\label{app-notes}

Rationales for the major features go here.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Syntax Rules}
\label{app-syntax}

Collection of syntax rules and constraints goes here.  If I can find a 
\LaTeX\ Fortran 90 grammar, it will be included.

Unless someone can do the cross-referencing automatically, there won't be 
a cross-reference subsection.



\end{document}

From chk@erato.cs.rice.edu  Mon Jun 15 16:03:43 1992
Received: from erato.cs.rice.edu by cs.rice.edu (AA27644); Mon, 15 Jun 92 16:03:43 CDT
Received: from localhost.cs.rice.edu by erato.cs.rice.edu (AA02836); Mon, 15 Jun 92 16:03:46 CDT
Message-Id: <9206152103.AA02836@erato.cs.rice.edu>
To: hpff-format@erato.cs.rice.edu
Word-Of-The-Day: comity : (n) friendly social atmosphere; social harmony
Subject: HPFF outline, draft 2
Date: Mon, 15 Jun 92 16:03:45 -0500
From: chk@erato.cs.rice.edu

\documentstyle{article}

%------------------------------------------------------------------------------
% Can this all go into a .sty file?
% If so, it probably should...

\oddsidemargin=0.25in
\textwidth=6.0in
\topmargin=-1in
\textheight=9in
\parindent=1em

\catcode`\$=11  \catcode`\&=11  \catcode`\_=11

\newdimen\bnfalign   \bnfalign=2in
\newdimen\bnfopwidth \bnfopwidth=.3in
\newdimen\bnfindent  \bnfindent=.2in
\newdimen\bnfsep     \bnfsep=6pt
\newdimen\bnfmargin  \bnfmargin=0.5in
\newdimen\codemargin \codemargin=0.5in

\def\IT{\it}
\def\RM{\rm}
\let\CHAR=\char
\let\CATCODE=\catcode
\let\DEF=\def
\let\GLOBAL=\global
\let\RELAX=\relax
\let\BEGIN=\begin
\let\END=\end

\def\FUNNYCHARACTIVE{\CATCODE`\a=13 \CATCODE`\b=13 \CATCODE`\c=13 \CATCODE`\d=13
		     \CATCODE`\e=13 \CATCODE`\f=13 \CATCODE`\g=13 \CATCODE`\h=13
		     \CATCODE`\i=13 \CATCODE`\j=13 \CATCODE`\k=13 \CATCODE`\l=13
		     \CATCODE`\m=13 \CATCODE`\n=13 \CATCODE`\o=13 \CATCODE`\p=13
		     \CATCODE`\q=13 \CATCODE`\r=13 \CATCODE`\s=13 \CATCODE`\t=13
		     \CATCODE`\u=13 \CATCODE`\v=13 \CATCODE`\w=13 \CATCODE`\x=13
		     \CATCODE`\y=13 \CATCODE`\z=13 \CATCODE`\[=13 \CATCODE`\]=13
                     \CATCODE`\-=13}

\def\RETURNACTIVE{\CATCODE`\
=13}

\makeatletter
\def\section{\@startsection {section}{1}{\z@}{-3.5ex plus -1ex minus 
 -.2ex}{2.3ex plus .2ex}{\normalsize\bf}}
\def\subsection{\@startsection{subsection}{2}{\z@}{-3.25ex plus -1ex minus 
 -.2ex}{1.5ex plus .2ex}{\normalsize\bf}}

\def\@IFSPACEORRETURNNEXT#1#2{\def\@tempa{#1}\def\@tempb{#2}\futurelet
  \@tempc\@ifspnx}
{
\FUNNYCHARACTIVE
\GLOBAL\DEF\FUNNYCHARDEF{\RELAX
    \DEFa{{\IT\CHAR"61}}\DEFb{{\IT\CHAR"62}}\DEFc{{\IT\CHAR"63}}\RELAX
    \DEFd{{\IT\CHAR"64}}\DEFe{{\IT\CHAR"65}}\DEFf{{\IT\CHAR"66}}\RELAX
    \DEFg{{\IT\CHAR"67}}\DEFh{{\IT\CHAR"68}}\DEFi{{\IT\CHAR"69}}\RELAX
    \DEFj{{\IT\CHAR"6A}}\DEFk{{\IT\CHAR"6B}}\DEFl{{\IT\CHAR"6C}}\RELAX
    \DEFm{{\IT\CHAR"6D}}\DEFn{{\IT\CHAR"6E}}\DEFo{{\IT\CHAR"6F}}\RELAX
    \DEFp{{\IT\CHAR"70}}\DEFq{{\IT\CHAR"71}}\DEFr{{\IT\CHAR"72}}\RELAX
    \DEFs{{\IT\CHAR"73}}\DEFt{{\IT\CHAR"74}}\DEFu{{\IT\CHAR"75}}\RELAX
    \DEFv{{\IT\CHAR"76}}\DEFw{{\IT\CHAR"77}}\DEFx{{\IT\CHAR"78}}\RELAX
    \DEFy{{\IT\CHAR"79}}\DEFz{{\IT\CHAR"7A}}\DEF[{{\RM\CHAR"5B}}\RELAX
    \DEF]{{\RM\CHAR"5D}}\DEF-{\@IFSPACEORRETURNNEXT{{\CHAR"2D}}{{\IT\CHAR"2D}}}}
}

%%% Warning!  Devious return-character machinations in the next several lines!
{\RETURNACTIVE\global\def\RETURNDEF{\def
{\@ifnextchar\FNB{}{\@stopline\@ifnextchar
{\@NEWBNFRULE}{\penalty\@M\@startline\ignorespaces}}}}\global\def\@NEWBNFRULE
{\vskip\bnfsep\@startline\ignorespaces}\global\def\@ifspnx{\ifx\@tempc\@sptoken \let\@tempd\@tempa \else \ifx\@tempc
\let\@tempd\@tempa \else \let\@tempd\@tempb \fi\fi \@tempd}}
%%% End of bizarro return-character machinations.
\def\IS{\@stopfield\global\setbox\@curfield\hbox\bgroup
  \hskip-\bnfindent \hskip-\bnfopwidth  \hskip-\bnfalign
  \hbox to \bnfalign{\unhbox\@curfield\hfill}\hbox to \bnfopwidth{\bf is \hfill}}
\def\OR{\@stopfield\global\setbox\@curfield\hbox\bgroup
  \hskip-\bnfindent \hskip-\bnfopwidth \hbox to \bnfopwidth{\bf or \hfill}}
\def\XBNF{\FUNNYCHARDEF\FUNNYCHARACTIVE\RETURNDEF\RETURNACTIVE
  \tt\frenchspacing \advance\@totalleftmargin\bnfmargin \tabbing
  \hskip\bnfalign\hskip\bnfopwidth\hskip\bnfindent\=\kill\>\+\@gobblecr}
\def\endXBNF{\-\endtabbing}

\def\BNF{\BEGIN{XBNF}}
\def\FNB{\END{XBNF}}

\begingroup \catcode `|=0 \catcode`\\=12
|gdef|@XCODE#1\EDOC{#1|endtrivlist|end{tt}}
|endgroup

\def\CODE{\begin{tt}\advance\@totalleftmargin\codemargin \@verbatim
   \frenchspacing \@vobeyspaces \@XCODE}
\def\ICODE{\begin{tt}\advance\@totalleftmargin\codemargin \@verbatim
   \frenchspacing \@vobeyspaces \FUNNYCHARDEF\FUNNYCHARACTIVE \@XCODE}

\makeatother

% End putative .sty file
%------------------------------------------------------------------------------

\begin{document}

\title{High Performance Fortran Language Specification}

\date{June 4, 1992}

\author{High Performance Fortran Forum}

\maketitle



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Overview}
\label{sec-overview}

This document specifies the form and establishes the interpretation of 
programs expressed in the High Performance Fortran language.
It is designed as a set of extensions and modifications to the 
established International Standard for Fortran (ISO/IEC 1539:1991(E)), 
informally referred to as ``Fortran 90."
The sections of this document reference the 
related sections of the Fortran 90 standard to facilitate its 
incorporation into new standards, should ISO and national standards 
committees deem that desirable.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Goals and Scope of High Performance Fortran}
\label{sub-goals}

The goals of the High Performance Fortran Forum go here.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{New Features in High Performance Fortran}
\label{sub-new}

List and one-paragraph descriptions of HPF extensions go here, with 
forward references to other sections.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Notation}
\label{sub-notation}

In general, this standard uses the same notation as ISO/IEC 1539:1991.
To disabmiguate new syntax rules from the rules in that standard, we make 
the following change: HPF syntax rules are given numbers of the form 
HPF$snn$, where $s$ is a one- or two-digit section number and $nn$ is a 
two-digit sequence number within that section.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Organization of This Document}

One-sentence descriptions of all sections go here.



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Fortran 90 Binding}
\label{sec-f90}

Elaboration of the statement ``HPF has chosen a Fortran 90 binding" goes 
here.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Fortran 90 Subset}
\label{sub-subset}

Description of the the Fortran 90 subset goes here.



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Data Distribution Model}
\label{sec-distribute}

General description of the data distribution model goes here.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{General Concepts}
\label{sec-dist-concepts}

\subsubsection{Processor}
\label{subb-processor}

The description of the processor level goes here.

\subsubsection{Template}
\label{subb-template}

The description of the template level goes here.

\subsubsection{Alignment}
\label{subb-align}

The description of alignment goes here.

\subsubsection{Distribution}
\label{subb-distribution}

The description of distribution goes here.

\subsubsection{Procedure Interfaces}
\label{subb-interface}

Overview of procedure call interfaces goes here.

\subsubsection{Sequence and Storage Association}
\label{subb-association}

Storage and sequence association proposal goes here.

\subsubsection{Pointers}
\label{subb-pointers}

Proposal for dealing with distributed pointers goes here.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Concrete Syntax}
\label{sec-dist-syntax}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection{Type Specifiers}
\label{subsub-type-spec}

This section extends Section 5.1.1 of the Fortran 90 standard.

HPF retains the Fortran 90 type specifiers.
It also adds two type specifiers, the PROCESSOR and TEMPLATE specifiers.

\paragraph{PROCESSOR}
\label{para-processor}

Syntax and semantics of PROCESSOR type go here.

\paragraph{TEMPLATE}
\label{para-template}

Syntax and semantics of TEMPLATE type go here.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection{Attributes}
\label{subb-attributes}

This section extends Section 5.1.2 of the Fortran 90 standard.

HPF retains the Fortran 90 type attributes.
It also defines four new attributes, ALIGN, REALIGNABLE, DISTRIBUTE, and 
REDISTRIBUTABLE.

\paragraph{ALIGN and REALIGNABLE}
\label{para-align}

Syntax of ALIGN and REALIGNABLE goes here.

\paragraph{DISTRIBUTE and REDISTRIBUTABLE}
\label{para-distribute}

Syntax of DISTRIBUTE and REDISTRIBUTABLE goes here.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection{Attribute Specification Statements}
\label{subb-attribute-spec}

This section extends Section 5.2 of the Fortran 90 standard.

HPF retains the Fortran 90 attribute specification statement.
It also adds four new statements: ALIGN, REALIGN, DISTRIBUTE, and 
REDISTRIBUTE.
Of these, REALIGN and REDISTRIBUTE are executable statements and ALIGN 
and DISTRIBUTE are nonexecutable statements.

\paragraph{ALIGN and REALIGN Statements}
\label{para-align-stmt}

Syntax of the ALIGN and REALIGN statements goes here.

\paragraph{DISTRIBUTE and REDISTRIBUTE Statements}
\label{para-distribute-stmt}

Syntax of the DISTRIBUTE and REDISTRIBUTE statements goes here.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection{Procedure Interfaces}
\label{subb-procedure}

If directives for subroutine interfaces are defined, they go here; 
otherwise, this subsection is eliminated.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection{Association}
\label{subb-assoc-dir}

Descriptions of NO\_STORAGE\_ASSOC and related directives go here.



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Data Parallel Execution Model}
\label{sec-parallel}

General description of the data parallel model goes here.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{General Concepts}
\label{sub-par-concepts}

\subsubsection{Independent Indexed Threads}
\label{subb-forall}

Description of FORALL and other parallel indexing construct goes here.

\subsubsection{Computation Partitioning and Location}
\label{subb-on}

Description of ON clause functionality goes here.

\subsubsection{Reduction and Sorting Intrinsics}

Description of intrinsic functionality goes here.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Concrete Syntax}
\label{sub-par-syntax}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection{Assignment}
\label{subb-assign}

This section extends Section 7.5 of the Fortran 90 standard.
(The reference assumes that only assignment statements are allowed in 
WHERE and single-statement FORALL constructs.
If we decide to be more general, it seems more appropriate to modify 
Section 8.)

HPF retains all assignment statements in Fortran 90.
In addition, two new forms of assignment are defined: nested WHERE and 
FORALL.

\paragraph{Masked Array Assignment - WHERE}
\label{para-where}

If we decide to allow nested WHERE constructs, this is where they go.

\paragraph{Element Array Assignment - FORALL}
\label{para-single-forall}

Syntax and semantics of the single-statement FORALL go here.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Executable Constructs Containing Blocks}
\label{sub-blocks}

This section extends Section 8.1 of the Fortran 90 standard.

HPF retains the Fortran 90 structured programming constructs.
It also defines the block FORALL construct, the other parallel indexing 
construct, and ON clause.

\paragraph{FORALL Construct}
\label{para-block-forall}

Syntax and semantics of block FORALL go here.

\paragraph{Other Parallel Indexing Construct}
\label{para-parallel-loop}

Syntax and semantics of the parallel indexing construct to be named later 
go here.

\paragraph{ON Clause}
\label{para-on-clause}

Syntax and semantics of ON go here.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection{Intrinsics}
\label{subb-intrinsics}

This section extends Sections 13.2 through 13.9 of the Fortran 90 standard.

HPF retains the Fortran 90 intrinsic functions.
It also defines many new intrinsics which are useful for parallel 
computation.


\section{Expressions and Assignment}
\label{sec-expression}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Expressions}
\label{sub-expression}

\subsubsection{Scalar and Array Expressions}
\label{subb-scalar-expr}

This section extends Section 7.1.6 of the Fortran 90 standard.

HPF retains Fortran 90's concepts of {\bf scalar}, {\bf array}, {\bf 
constant}, and {\bf specification} expressions, with extensions for new 
intrinsic functions defined in HPF.

\paragraph{Constant Expression}
\label{para-const-expr}

This section extends Section 7.1.6.1 of the Fortran 90 standard.

Definition of constant expression goes here.

\paragraph{Specification Expression}
\label{para-spec-expr}

This section extends Section 7.1.6.2 of the Fortran 90 standard.

Definition of restricted expression and specification expression goes here.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Input/Output Statements}
\label{sec-io}

This section extends Section 9 of the Fortran 90 standard.

Results of the I/O subgroup go here.
(This assumes that no new FORMAT statements are defined; if they are, 
they should go into a new ``Input/Output Editing" section.)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Program Units}
\label{sec-prog-units}

This section extends Section 11 of the Fortran 90 standard.

HPF retains Fortran 90's notion of program units.
In addition, HPF provides the extension below.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Local Subroutines}
\label{sub-local-subr}

General definition of local subroutines goes here.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Procedures}
\label{sec-procedures}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Characteristics of Procedures}
\label{sub-characteristics}

This section extends Section 12.2 of the Fortran 90 standard.

Add distribution to the list of dummy argument attributes.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Procedure Interface}
\label{sub-interface}

This section extends Section 12.3 of the Fortran 90 standard.

HPF retains Fortran 90's features for implicit and explicit procedure 
interfaces.
The conditions requiring an explicit interface have been extended somewhat.

Require explicit interfaces for passing distributed arrays.

Definition of sequential and nonsequential variables  goes here.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Procedure Reference}
\label{sub-proc-ref}

\subsubsection{Actual Argument List}
\label{subb-sequence-assoc}

This section extends Section 12.4.1 of the Fortran 90 standard.

Redistribution of actual array arguments goes here.

Treatment of sequence association goes here.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Local Subroutines}
\label{sec-local-subrs}

Syntax and detailed semantics of local subroutines go here.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Intrinsics}
\label{sec-intrinsics}

This section extends Section 13 of the Fortran 90 standard.

HPF retains Fortran 90's intrinsic functions.
It also adds a number of intrinsics.

New intrinsics go here.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Scope, Association, and Definition}
\label{sec-scope}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\appendix
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Section Notes}
\label{app-notes}

Rationales for the major features go here.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Syntax Rules}
\label{app-syntax}

Collection of syntax rules and constraints goes here.  If I can find a 
\LaTeX\ Fortran 90 grammar, it will be included.

Unless someone can do the cross-referencing automatically, there won't be 
a cross-reference subsection.



\end{document}

From loveman@ftn90.enet.dec.com  Thu Jul 16 10:06:26 1992
Received: from enet-gw.pa.dec.com by cs.rice.edu (AA11516); Thu, 16 Jul 92 10:06:26 CDT
Received: by enet-gw.pa.dec.com; id AA13958; Thu, 16 Jul 92 08:06:25 -0700
Message-Id: <9207161506.AA13958@enet-gw.pa.dec.com>
Received: from ftn90.enet; by decwrl.enet; Thu, 16 Jul 92 08:06:25 PDT
Date: Thu, 16 Jul 92 08:06:25 PDT
From: David Loveman <loveman@ftn90.enet.dec.com>
To: hpff-format@cs.rice.edu
Cc: loveman@ftn90.enet.dec.com
Apparently-To: hpff-format@cs.rice.edu
Subject: HPF document structure


I have been thinking a bit, actually a lot, about the mechanism of
producing and distributing the results of our efforts.  I have reviewed
Chuck's two proposed document styles, both of which have plusses and
minuses.  The biggest minus I see in both of them is the monumental
amount of writing our group would have to do to take the results of the
working groups and put them into that form.  

I have a proposed meta-structure for the document, in which the
editorial group will propose style and structure standards for the
document, and require the working groups, as they finalize their
proposals, to produce the text of most of the chapters in an
almost-ready-to-be-used form.

I have a prototype directory structure developed that allows for the
(semi) automated updating and printing of the document.  There is a
directory named hpf-report which contains the following files:

README
MAKE-HPF-DOCUMENT - a script to run latex, etc
PRINT-ALL-RELEVANT-TEX - a script to print the tex sources
CLEANUP - a script that deletes all backup files, tex artifacts, etc
hpf-document.tex - the document structure, a copy follows
syntax-macros.tex - Guy Steele's syntax macros
acknowledgements.tex - the first "chapter"
. . . . .
bibliography.tex - the last "chapter"

For distribution, we can make a compressed tar file of the directory. 
Then anyone with a standard LaTeX can duplicate the document at their
site (after we eliminate the site-dependencies that are no doubt all throughout it).

I propose that we have a meeting early on Thursday to discuss the
details, decide if this is the approach we want, if so, fix the errors
in my first cut, and then have discussions with the working group heads
about the effort required to turn a thousand email message into
coherent chapters of a combined report.

Thoughts???

-David

**********************************************************************
The hpf-document.tex file is as follows:


%hpf-document.tex

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% REVISION HISTORY:
%    92-6-18  David Loveman - first version
%    92-7-15  David Loveman - version for July HPFF meeting
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\documentstyle[11pt]{report}
\pagestyle{plain}
\pagenumbering{arabic}
\marginparwidth 0pt
\oddsidemargin=.25in
\evensidemargin  .25in
\marginparsep 0pt
\topmargin=-.5in
\textwidth=6.0in
\textheight=9.0in
\parindent=2em

\include{syntax-macros}

\title{High Performance Fortran \\ Language Specification}
\author{High Performance Fortran Forum}
%\date{ }


\begin{document}

\maketitle

\newpage

\pagenumbering{roman}

\copyright 1992 Rice University, Houston Texas.  Permission to copy 
without fee all or part of this material is granted, provided the 
Rice University copyright notice and the title of this document 
appear, and notice is given that copying is by permission of Rice 
University.

\tableofcontents

\newpage

\include{acknowledgements}

\newpage

\pagenumbering{arabic}

\include{overview}

\include{terms-and-concepts}

\include{distribution}

\include{statements}

\include{intrinsics}

\include{io}

\include{hpf-subset}

\appendix

\include{appendixes}

\cleardoublepage

\onecolumn

\addcontentsline{toc}{chapter}{Bibliography}

\include{bibliography}

\end{document}



Currently the "chapters" are stubs, such as the following "statements" chapter:


%statements.tex

%Version of July 14, 1992

\chapter{Statements\protect\footnote{version of July 14, 1992}}
\label{statements}

\section{Element Array Assignment - the FORALL Statement}

\subsection{Single Statement FORALL}

\subsection{Multiple Statement FORALL}

\section{Parallel Loops - The INDEPENDENT Directive}



