Functions/Subroutines |
| subroutine, public | IOUnitsGet (iunit) |
| | This routine returns the next available i/o unit and marks it as in use to prevent any later use. Note that {all} processors must call this routine even if only the master task is doing the i/o. This is necessary insure that the units remain synchronized for other parallel I/O functions.
|
| subroutine, public | IOUnitsRelease (iunit) |
| | This routine releases an i/o unit (marks it as available). Note that {all} processors must call this routine even if only the master task is doing the i/o. This is necessary insure that the units remain synchronized for other parallel I/O functions.
|
| subroutine, public | IOUnitsFlush (iunit) |
| | This routine enables a user to flush the output from an IO unit (typically stdout) to force output when the system is buffering such output. Because this system function is system dependent, we only support this wrapper and users are welcome to insert the code relevant to their local machine. In the case where the CCSM libraries are available, the shared routine for sys flush can be used (and is provided here under a preprocessor option).
|
Variables |
| integer(i4), parameter, public | stdin = 5 |
| integer(i4), parameter, public | stdout = 6 |
| integer(i4), parameter, public | stderr = 6 |
| integer(i4), parameter, public | nmlin = 10 |
| character(9), parameter, public | delimFormat = "(72('-'))" |
| character(9), parameter, public | delimFormatNew = "(72('='))" |
| character(5), parameter, public | blankFormat = "(' ')" |
| character(7), parameter, public | nml_filename = 'pop_in' |
| integer(i4), parameter | IOUnitsMinUnits = 11 |
| integer(i4), parameter | IOUnitsMaxUnits = 99 |
| logical(log_kind) | IOUnitsInitialized = .false. |
| logical(log_kind), dimension(iounitsmaxunits) | IOUnitsInUse |
There are three reserved I/O units set as parameters in this module. The default units for standard input (stdin), standard output (stdout) and standard error (stderr). These are currently set as units 5,6,6, respectively as that is the most commonly used among vendors. However, the user may change these if those default units are conflicting with other models or if the vendor is using different values.
The maximum number of I/O units per node is currently set by the parameter POP.