next up previous contents
Next: PGI Up: NEMO on HECToR A Previous: Operating systems   Contents

Compiling NEMO on HECToR

In this section we describe how to compile NEMO on the HECToR system. The system has three different compiler suites available; Portland Group International (PGI), PathScale and GNU. Generally, PGI and PathScale are found to give the best performance for Fortran/Fortran 90 codes so we will only consider these two compiler suites. Further information on the compilers available on HECToR can be found in the HECToR User Guide [2].

The NEMO code utilises the netCDF (network Common Data Form) library for inputting and outputting its data files which means before compilation can begin the netCDF library must be available or compiled from source. Further information on netCDF can be found at [3,4].

NEMO can potentially be run on any number of processors providing sufficient memory is available to fit the required subset of data onto a single processor. The number of processors must be specified at compile time as the dimensions of a number of statically allocated arrays are computed based on the processor count. This hard-wiring of the processor count into code means that the code must be recompiled if a different number of processors is used.

The NEMO Makefile is somewhat complex. The internal macro names (those pre- defined in make) such as FC, FFLAGS, LDFLAGS, etc are not used. Instead, the code authors use their own naming convention and as no comments have been included to describe these the user is left to make their own decision as to what each macro name stands for. Table 1 lists the NEMO Makefile macro names and what they are believed to correspond to using the standard Makefile macro naming conventions.

Table 1: NEMO Makefile macros with corresponding standard Makefile macro name if applicable and description
NEMO Makefile macro Standard make macro Description
P_C CPP Pre-processor with default flags
P_P CPPFLAGS Pre-processor flags
P_O - Pre-processor, specific optimisation flags
M_K MAKE Name of make utility
F_C FC Specifies Fortran compiler and flags
F_L LD Fortran linker
F_O FFLAGS Fortran optimisation flags
A_C AR Archiver
L_X LDFLAGS Fortran linker flags

next up previous contents
Next: PGI Up: NEMO on HECToR A Previous: Operating systems   Contents