MODINPUTORDERオプションは、モデルの連立ブロック内の方程式を、指定した順序で実行するか、またはモデル・コンパイラで決定される順序で実行するかを制御します。MODINPUTORDERは、単純ブロックおよびステップ・ブロック内の方程式の順序には影響しません。
例
例5-55 デフォルトの順序の使用
次の文は、income.calcモデルを定義する文です。
DEFINE income.calc MODEL MODEL DIMENSION line month Net.Income = Opr.Income - Taxes Opr.Income = Gross.Margin - TOTAL(Marketing + Selling + R.D) Marketing = LAG(Opr.Income, 1, month) Gross.Margin = Revenue - Cogs END
次の文で、モデルをコンパイルし、MODEL.COMPRPTプログラムを使用してコンパイル・レポートを生成します。
COMPILE income.calc MODEL.COMPRPT income.calc
これらの文によって生成される出力は次のとおりです。
MODEL INCOME.CALC <LINE MONTH>
BLOCK 1 (SIMPLE)
INCOME.CALC 5: gross.margin = revenue - cogs
BLOCK 2 (SIMULTANEOUS <MONTH>)
INCOME.CALC 4: marketing = lag(opr.income, 1, month)
INCOME.CALC 3: opr.income = gross.margin - total(marketing + selling + r.d)
END BLOCK 2
INCOME.CALC 2: net.income = opr.income - taxes
END BLOCK 1
MODINPUTORDERをデフォルト値のNOに設定してincome.calcをコンパイルすると、コンパイラによって連立ブロック内の方程式の順序が置き換えられているのが確認できます。
例5-56 MODINPUT値の変更
次の文では、MODINPUTORDERの値をYESに設定してモデルをコンパイルし、コンパイル・レポートを生成します。
MODINPUTORDER = YES COMPILE income.calc MODEL.COMPRPT income.calc
これらの文によって生成される出力は次のとおりです。
MODEL INCOME.CALC <LINE MONTH>
BLOCK 1 (SIMPLE)
INCOME.CALC 5: gross.margin = revenue - cogs
BLOCK 2 (SIMULTANEOUS <MONTH>)
INCOME.CALC 3: opr.income = gross.margin - total(marketing + selling + r.d)
INCOME.CALC 4: marketing = lag(opr.income, 1, month)
END BLOCK 2
INCOME.CALC 2: net.income = opr.income - taxes
END BLOCK 1
連立方程式の順序が指定した順序のまま、コンパイラによって変更されていないことが確認できます。