The code is written in Fortran90 and can be run on a variety of parallel and serial computer architectures. Originally, the code was written using a data-parallel approach for the Thinking Machines Connection Machine. Later versions used a more traditional domain decomposition style using MPI or SHMEM for inter-processor communications. The most recent version of the code supports current clusters of shared-memory multi-processor nodes through the use of thread-based parallism (OpenMP) between processors on a node and message-passing (MPI or SHMEM) for communication between nodes. The flexibility of mixing thread-based and message-passing programming models gives the user the option of choosing the best combination of styles to suit a given machine.