next up previous contents
Next: 24.3.1 ramdrive Up: 24. Options for the Previous: 24.2 Compilers

   
24.3 Dataflow I/O Options

Various options for handling I/O between disk and the memory window are available. Each has its advantages and disadvantages as described in the following sections. One and only one of these options must be enabled. It should be noted that regardless of which option is used, details are implemented at the lowest level routines. This allows the higher level code structure (where reading and writing takes place) to remain the same for all options.

Characteristics for each file are controlled by specifying file attributes (i.e. whether the file is sequential, direct access, cray wordio, unformatted, etc.) in a character string which is passed into the I/O manager iomngr.F. The I/O manager then assigns a unit number for each file and opens the file with the specified attributes. Refer to Section 15.1.4 for details on the I/O manager.

Otions relating to I/O are set at compile time with UNIX ``cpp'' directives of the form -Doption. The available I/O options are ``crayio'', ``fio'', ``ramdrive'' or ``ssread_swrite'' and are described below. The platform options are ``cray_ymp'', cray_c90'', ``cray_t90'', or ``sgi'' and are described in Section 24.1.

The I/O within MOM occurs during initialization, integration, diagnostic analysis, and shutdown. Initialization consists of reading namelist files, and possibly a restart file, boundary condition data, and data for sponge zones along artificial boundaries. The namelist files have the attributes ``formatted sequential'' and these files allow an easy way to override default settings of coefficients and miscellaneous variables (i.e. mixing coefficients, time step lengths, etc). They only amount to O(100) words and are therefore unimportant as far as efficiency is concerned. The biggest part of initialization is the reading of a restart file which may be huge (it contains two time levels of prognostic data plus the topography mask). The restart file has the attributes ``unformatted sequential'' and on CRAY systems is buffered through the ``cachea layer'' by an assign issued from within the I/O manager. The size of the buffer is calculated within MOM and passed within the attribute character string. The attributes given to boundary condition and sponge data are similar but contain the additional attribute `` ieee''. The ``ieee'' attribute specifies that the data was created as 32 bit IEEE. The large initialization files are buffered through the ``cachea layer'' on CRAY systems.

Prognostic data from the restart file is placed on ``tau files'' which take various forms depending on whether option ``ramdrive'', ``crayio'', ``fio'', or ``ssread_sswrite'' was enabled. The ``tau files'' are used during the integtration phase. By default, all of these options (except for ramdrive) use attribute ``sds'' to instruct the I/O manager to put the files on CRAY Solid state disk. The assign statements in the I/O manager can be changed to put the files on rotating disk if desired (although this is very inefficient compared with solid state disk).

During the integration phase, diagnostic data is also written out. It may be of two forms: Either 32bit IEEE or NetCDF. The recommended way is NetCDF which is specified by option ``netcdf''. The 32bit IEEE form is older and has not been extended to use buffering. The shutdown phase basically writes the last image of the ``tau files'' onto a restart file with the previously specified characteristics.



 
next up previous contents
Next: 24.3.1 ramdrive Up: 24. Options for the Previous: 24.2 Compilers
RC Pacanowski and SM Griffies, GFDL, Jan 2000