シミュレーションの演習のコード

GS10.BGSのコードを以下に示します。このコードは BGSP用です。第1行の

BOND SYMBOL EXPR OUT DEFIN PARM INIT

はコードの一部ですから省略してはいけません。また、BGSPではカラム指定が厳格で1カラムでもずれるとエラーになります。また、許される文字は英数字、コロン(:)、スラッシュ(/)、加減乗算記号(+-*)、半角空白のみであり、制御文字が入るとエラーになります。倍角の空白はエラーを生じますが、ソースをプリントしても気づきにくいので注意が必要です。

GS10のコード

BOND SYMBOL EXPR OUT DEFIN PARM INIT
SE1    10
OJ     -10   12    11
RE1    12
ZJ     -11   13    15    19
CI1    13
RE2    15
TF1    19    21
OJ     -21   23    22    24    25
RE3    22
II1    24
CI2    23
SE2    25
/
BC: P10   EF10
BC: P13   EF13
BC: X245  DP24
/
SE1
PA: PSLW   6.000D-01
       F=PSLW
EOD
CI1
PA: PC1    4.300D-01
       C=Z/PC1
EOD
RE1
PA: PR1    4.000D-06
       R=Z/PCLR
EOD
RE2
PA: PR2    1.000D+36
       R=Z/PR2
EOD
TF1
PA: PTF1   9.000D+01
       TF=PTF1
EOD
RE3
PA: PR3    3.0000D-01
       R=Z*PR2
EOD
CI2
PA: PC21   2.300D+36
PA: PC22   8.333D-01
PA: PC23   7.000D+01
PA: PC24   -2.260D+01
PA: PC25   4.500D+02
PA: PC26   -1.556D+02
       IF(C.LE.0.0)THEN
        ZZ=0.0
       ELSEIF(C.LE.1.000D-36)THEN
        ZZ=C*PC21
       ELSEIF(C.LE.0.36)THEN
        ZZ=PC22*C
       ELSEIF(C.LE.0.38)THEN
        ZZ=PC23*C+PC24
       ELSEIF(C.LE.0.41)THEN
        ZZ=PC25*C+PC26
       ELSE
        ZZ=16.6
       ENDIF
       C=ZZ
EOD
II1
PA: PI1    1.000D+00
       L=Z/PI1
EOD
SE2
PA: PS2    4.000D-01
PA: PS3    0.000D+00
FB: XPI    DP24
FB: XPI2   MN24
FB: XP2    EF23
FB: XP3    EF22
FB: XP4    EF21
      XPX=XP4-XP2-XP3
      IF(XPI.LT.PS3)THEN
       XPI=PS3
       XPI2=PS3
       E=-XPX
      ELSEIF(XPI.GT.PS2)THEN
       XPI=PS2
       XPI2=PS3
       E=-XPX
      ELSE
       E=PS3
      ENDIF
EOD
/
0.00              5.00D-00          1.000D-05         3000
/