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

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

BOND SYMBOL EXPR OUT DEFIN PARM INIT

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

GS20のコード

BOND SYMBOL EXPR OUT DEFIN PARM INIT
SE11   11
OJ     -11   12    121
ZJ     -121  19    32    33
RE32   32
CI33   33
RE12   12
TF19   19    21
OJ     -21   24    22    23    234
II24   24
SE234  234
RE22   22
CI23   23
/
BC: P33   EF33
BC: Q12   FL12 
BC: PL    EF33
BC: PL2   EF12
BC: FL    FL32
OP: X231
RV: XXRR
      OP=XXRR
EOD
OP: X232
RV: XXR2
       OP=XXR2
EOD
/
SE11
PA: PSE1   1.000D+00
        E=PSE1
EOD
RE32
PA: PRE1   1.0000D+03
PA: PT01   5.0000D-01
      IF(T.LE.PT01)THEN
      R=Z*PRE1
      ELSE
      R=Z*PRE1*0.3
      ENDIF
EOD
CI33
PA: PCE1   2.0000D+02
       C=Z/PCE1
EOD
TF19
PA: PT1    3.14
       TF=1/PT1
EOD
II24
PA: PI1    3.0000D-05
       L=Z/PI1
EOD
RE22
PA: PRE2   5.0000D-03
       R=PRE2*Z
EOD
SE234
PA: PSE2   1.8800D+00
        E=PSE2
EOD
CI23
PA: PCE2   1.0000D+00
PA: POP1   -5.000D-01
PA: POP2   6.2800D+00
PA: POP3   0.0000D+00
PA: POP4   5.0000D-01
PA: POP5   -5.000D-01
PA: POP6   1.5700D-01
PA: POP7   1.2560D+01
PA: POP8   3.1400D-01
PA: POP9   1.2246D+01
PA: PO10   -5.9660D+00
RV: XXRR
        C=Z/PCE2
        ZZ=C
        XXRR=ZZ
        IF(ZZ.LE.POP5)THEN
         C=-POP2
        ELSEIF(ZZ.LE.POP3)THEN
        C=POP7*ZZ
        ELSEIF(ZZ.LE.POP4)THEN
        C=POP8*ZZ
        ELSEIF(ZZ.LE.1.0)THEN
        C=POP9*ZZ+PO10
        ELSE
        C=POP2
        ENDIF
EOD
RE12
PA: PRE5   8.000D+03
PA: PRX1   -0.5000D+00
PA: PRX2   0.50000D+00
PA: PRX3   0.00000D+00
PA: PRX4   1.00000D+00
RV: XXRR
RV: XXR2
        IF(XXRR.LE.PRX3)THEN
         XXR2=PRX2
        ELSEIF(XXRR.LE.PRX2)THEN
         XXR2=-XXRR+PRX2
         ELSE
         XXR2=PRX3
        ENDIF
        R=Z*PRE5*XXR2
EOD
/
0.0000            1.000D-00         1.000D-8          4000
/