POP uses standard Fortran and will work on any machine with a compliant Fortran compiler (Fortran here denotes Fortran 90 or later - FORTRAN 77, FORTRAN 66, FORTRAN IV or other antiquated dialects are only supported to the extent that F90 is backward compatible). Two levels of parallelism are supported and combinations of these two levels can be used on architectures which support them. For shared-memory parallelism, OpenMP can be used. For distributed-memory parallelism, MPI or SHMEM can be used. In clustered SMP architectures, OpenMP can be used for multiple processors on a node while MPI can be used between nodes.