Skip to content

StateMod File Comparison

The smfc program is written in FORTRAN and expects a command file with data. Smfc does the following for StateMod applications:

  • Reads and compares 2 or more StateMod input or output files. The user has the ability to:
    • Compare all StateMod input files associated with a run if the file to be compared is a response (*.rsp) file.
    • Compare just one file if the file to be compares is anything except a response file (e.g. *.dds, *.res, *.xpl, etc.).

Constraints used by the model include:

StateMod allows a unit response (*.urm, *.urd, or *.dly) file data to be provided in a free format. In order for SmFc to differentiate between an ID and data, columns 1-12 of a unit response file should be reserved for an ID. See below for an example free format *.urm file where the ID is URM_1, 12 unit response values of 10 are provided as input, and columns 1-12 are reserved for the ID designation.

URM_1       12  10. 10. 10. 10. 10. 10. 10. 10. 10. 10. 10. 10

StateMod allows an operating rule (*.opr) file to be provided in free format. In order for SmLink to differentiate between an ID and data, columns 1-12 should be reserved for an ID. See below for an example free format operating rule file with monthly on off switch.

Opr_Mead.01 Opr_Meadow_D&S_01                         100.00000      12.       1 
              1 1 1 1 -15 0 0 0 0 0 0 0 (on/off data begins in column 13)

It is common for a well water right to be assigned more than one structure and a well plan to include many wells. Therefore when comparing a well right file or a well plan file, differences may be expected.

Options

If a command file is not provided, the program defaults to smfc.rsp.

If a response (*.rsp) file is provided on the file to compare (line 2) then the code will compare all files contained in the response files.

If any file other than a response if provided then it only compares those two files.

Has the option to print all lines in a comparison (iprint=0) or only lines where differences occur (iprint=1).

Following is the information in a typical command file:

  Line 1: Print control (iprint) 0=print all; 1=print only delta
  Line 2: Comparison control (e.g. .rsp, .dds, etc)
  Line 3: Output file name 
  Line 4: File 1 to compare
  Line 5: File 2 to compare

Example

#
# Smfc.rsp; response file to smfc.for; StateMod file compare
#
# 1. iprint 0=print all; 1=print only delta
1
#
# 2. Files to compare (.rsp = all)
.rsp
#
# 3. Output File name
SmFc.out
#
# 4. File 1 to compare
/usr2/crdsswork/statemod/white/whiteH.rsp
#
# 5. File 2 to compare
/usr2/crdsswork/statemod/whiteT/whiteTH.rsp