\section{Conclusion}

 Coding and compiling large-scale application programs for execution
 on distributed-memory parallel machines and workstation clusters 
is a big challenge. High Performance Fortran
 eases this task by letting the user define the data decompositions
 and parallel fragments of the code and doing the rest of the work
 itself: it simply detects the necessary communication patterns and generates
 calls to the runtime libraries to make the necessary data exchanges among
 the processors. 
 Until recently, HPF compilers were capable only of generating code 
 for toy applications. The compilers still have restricted capabilities 
 and some of the important pieces of the functionalities are missing. We 
 used the PGI's HPF compiler and  successfully implemented  PIC codes.
 %used two of the commercial HPF compilers, DEC and PGI and implemented
 We had to augment the HPF codes with extrinsic
 procedures supplying the missing functionalities of the compilers, but
 we were always  loyal to the standard language definition while implementing
 those statements. Finally,
 we obtained a performance comparable to the native message-passing 
 implementations on the %Dec Alpha farm and 
 IBM SP-2 platform. 

\subsection*{Acknowledgements}

We would like to thank Victor Decyk for supplying his 1-D and 2-D PIC 
codes that was the main focus in this work. We would also like to thank 
David Walker for sending us a set of research papers about the PIC, 
Robert D.~Ferraro for helping us to find message-passing PIC benchmark 
data on other architectures and Elaine Weinman for proofreading this 
manuscript.


