This parameter determines whether FMS stores the file in memory or on disk. The following options are available:
- 0, Store the file on disk.
- 1, Store the file in memory. If the file does not fit, exit with an error condition.
- 2, Store the file in memory if it fits. Otherwise store the file on disk.
With today's large memory machines, it is possible for some smaller problems to fit entirely in memory. In this case FMS creates "memory files" and eliminates all read/write operations to and from disk.
When using the option INCORE=2, the order in which the files are opened must be considered. When subroutine RSDI, RNDI, CHDI, CSDI, or CNDI is called to create a matrix file, it makes a decision on the record size based on the amount of memory available in the FMS memory pool. If that memory is removed by creating an incore file before the matrix is factored, it may result in an insufficient memory error during factoring.
This condition can be avoided by opening the vector and submatrix files first, then calling RSDI, RNDI, CHDI, CSDI, or CNDI to open the matrix file. If the matrix file fits in memory, all is fine. If it doesn't, it will be correctly blocked for the memory that remains.
In an extreme condition, it is possible for the submatrix and vector files to use all the memory pool, leaving nothing for the matrix. If this happens, simply change INCORE back to 0.