木綿豆腐コードのマニュアル千葉豪
平成 28 年 7 月 23 日

はじめに

1

木綿豆腐コードは、そもそも炉物理計算に用いる確率テーブルを作成するために開発された MOMENTOF コード [1] をベースに開発されたものであるが、ENDF 形式 1 で記述された種々のデータを読み取る機能が備えられており、いろいろと便利なので、その機能のいく
つかを解説する。

インストール方法

2

まずはパッケージ「momentof.tgz」を解凍する。「.tgz」ファイルは、ディレクトリがひとつのファイルに固められ（「tar」コマンドによる）、かつ圧縮された（「gzip」コマンドによる）ファイルである。このファイルを解凍すると、もとのディレクトリ構造が復活する。
tgz ファイルを解凍するためには、「tar xvfz momentof.tgz」と打ち込めばよい。
tgz ファイル解凍後は「momentof」なるディレクトリが生成される筈なので、そのディレクトリに移動する（「cd momentof」）。木綿豆腐は FORTRAN で記述されたプログラムであるので、コンパイルを行い、実行形式（ロードモジュール）を作成しなければならない。
コンパイル方法はディレクトリ「momentof」の「@ReadMe」ファイルに記述されているので、それに従って作業を行う。コンパイルが成功した場合、ディレクトリ「momentof」にロードモジュール「momentof.lm」が生成されるので、そのファイルが存在することを確認する 2 。

ポイントワイズ断面積データの読み込み

3

評価済み核データファイルには様々な種類がある。そのうち、中性子と原子核との反応確率（断面積）を記述するものが「汎用評価済み核データファイル（General purpose evaluated1

実験データや核模型計算により核データの尤も確からしい値を決めることを「評価」といい、評価された
核データをファイル化したものを「評価済み核データファイル（Evaluated nuclear data file)」と呼ぶ。その代表的なものとして挙げられるものが米国が開発した ENDF であり、最新のバージョンは ENDF/B-VII.1 となっている。ENDF では、データの記述方法に厳密なルールが定められており、そのルール、形式を「ENDF形式」「ENDF フォーマット」と呼ぶ。欧州の評価済み核データファイル JEFF や日本のファイル JENDL は、いずれも ENDF 形式を採用してデータを記述しており、ENDF 形式が現在の世界標準となっている。
2
コンパイラ gfortran がインストールされていない場合には、「sudo apt-get install gfortran」でインストー
ルすること。

1

nuclear data file）」と呼ばれているものである 3 。汎用ファイルには、中性子捕獲、核分裂、
弾性散乱といった種々の反応の断面積が定義されている。それらの断面積は中性子の入射エネルギーに依存するため、中性子入射エネルギーに応じて断面積が定義されている。詳細なエネルギー点に対して断面積を定義したファイルを「ポイントワイズデータファイル（point-wise ENDF, PENDF）」と読んでいる。その例として、「momentof/PENDF」ディ
レクトリに「Pu241.t0269.dat」というファイルがある。これは評価済み核データファイル
JENDL-4.0 の Pu-241 データの PENDF ファイルである。試しに開いてみてもらいたい（vi、emacs 等、適当なエディタで）。おそらく、大量の数字が羅列されていることのみが分かるであろう。このデータから必要なデータを読み取ることは、よほどの熟練者でないと難しい。
木綿豆腐コードは PENDF で記述されているデータから、ユーザが必要とする反応の断面積データを取り出す機能を持つ。試しに、「Sample」ディレクトリのシェルスクリプト「go.pdf.sh」を実行してみるとよい（「./go.pdf.sh」4 ）。すると、同じディレクトリに「output pdf」なるファイルが生成されたことが分かる。この「output pdf」ファイルを開くと数字のペアが並んでいることが分かるであろう。この数字のペアは、中性子の入射エネルギーと反応断面積に対応している。このテキストデータを Excel 等にもっていけば、断面積と入射エネルギーの関係を示した図を得ることができる（Gnuplot を使えば非常に簡単）。
なお、この処理で取り出した断面積は「弾性散乱反応」のものである。取り出したい断面積の種類を指定するのは「go.pdf.sh」の入力ファイル「input pdf」である。このファイルの 4 行目の最初の数値が反応の種類を決めるものであり、「2」は弾性散乱反応に該当する。
この数値は ENDF フォーマットでは「MT 番号」と呼ばれる。MT 番号と反応の種類の対応の主なものについて Table 1 にまとめる。MT として 451 を指定することにより、η 値を取り出すことができる。また、MT として 42 を指定したときに取り出される弾性散乱断面積 P1 係数は、弾性散乱反応の平均散乱角余弦 µ̄ に他ならない。
Table 1: MT number and its corresponding reaction type in the ENDF format
MT
1
2
4
16
18
102
452
451
42

Reaction type
Total （全反応）
Elastic scattering （弾性散乱）
Inelasctic scattering （非弾性散乱）(n,2n)
Fission （核分裂）
Capture （中性子捕獲）The number of neutrons by fission reaction（核分裂あたりの中性子発生数）
η-value (νσf /σa )（η 値）
P1 Legendre coeﬃcient of elastic scattering (弾性散乱断面積 P1 係数)3

その他にも、原子核の崩壊様式を記述する「崩壊データファイル」、核分裂で発生する核分裂生成物核種の数を定義する「核分裂収率データファイル」、光子と原子の反応確率を記述する「光子-原子データファイル」などがある。
4
このファイルが実行可能となっていない場合には、「chmod +x go.pdf.sh」により、実行可能なファイルにする必要がある。

2

Pu-241 の種々の反応断面積をプロットし、各々の特徴について観察するとよいであろう。





また、
「go.pdf.sh」では、PENDF ディレクトリの「Pu241.t0269.dat」ファイルを入力として読み込んでいるが、異なるファイルのデータを読み込むことも可能である。読み込む入力ファイルは「go.pdf.sh」の一行目で指定しているので、その部分を変更すればよい。


H-1 の弾性散乱断面積、中性子捕獲断面積をプロットしてみよ。







H-1 と H-2 の中性子捕獲断面積をプロットし、比較してみよ。







H-1 と Xe-135 の中性子捕獲断面積をプロットし、比較してみよ。



なお、このように PENDF ファイルから必要なデータを抽出する処理は、木綿豆腐コードにキーワード「WRTPDF」を与えることで行われる。このキーワードは入力ファイルで与えられる。例えば「input pdf」ファイルを眺めると、二行目に「WRTPDF」が記述されていることが分かるであろう。

多群無限希釈断面積の計算

4木綿豆腐コードには、ポイントワイズ断面積データから多群形式の断面積データを作成する機能がある。
多群の無限希釈断面積は以下の式で計算される。
∫

σ(E)W (E)dE
σg =

E∈g

∫

(1)
W (E)dEE∈g

ここで W (E) は重み関数であり、いくつかの種類を指定することができる。
試しに、「Sample」ディレクトリのシェルスクリプト「go.inf.sh」を実行してみよう。これを実行すると、Pu-241 の SRAC107 群構造での多群無限希釈断面積が表形式で与えられるファイル「output inf」が生成されるであろう。また、他で活用しやすいように、数値デー
タの羅列が「siginf」ファイルに与えられる。
無限希釈断面積を計算する核種を変更するときは、「go.inf.sh」ファイルの１行目で指定
する PENDF ファイルを変更すればよい。また、多群の構造を変更するときは、「input inf」
5
ファイルの 3 行目の数字のペアを変更すればよい 。


Pu-241 の核分裂断面積について、連続エネルギーのものと SRAC の 107 群構造のもの、
VITAMIN-J の 175 群構造のものを同一の図に示してみよ。


5

SRAC107 群の場合は「107」と「4」の組み合わせだが、JFS-70 群の場合には「70」と「1」、VITAMIN-Jの 175 群の場合には「175」と「2」を与えらればよい。

3

核分裂収率データの読み込み

5U-235、Pu-239 といった核分裂性核種（fissile）が核分裂した場合、様々な種類の核分裂生成物核種が、ある確率分布（収率）をもって生成する。この分布は核分裂性核種によっても異なり、また、核分裂を起こした中性子のエネルギーによっても異なる。核分裂収率を定義するものが核分裂収率データファイル（Fission yields data file）である。
核分裂収率には、「独立収率（Independent yield）」と「累積収率（Cumulative yield）」の二種類がある。前者は核分裂反応によりその核種が「直接」発生する量を示すのに対して、後者は核分裂反応で発生した様々な核種の崩壊の結果、その核種が発生する量を示す。従って、独立収率は累積収率よりも小さい。また、全ての核分裂生成物核種について独立収率の和をとった場合は 2 近傍の値をとるが（一般的に核分裂反応により原子核はふたつに分裂するため）、累積収率の和をとった場合はそのようにはならない。
木綿豆腐コードは核分裂収率データファイルを読み込み、人間が判読しやすい形式に出力する機能を有する。そのための実行シェルスクリプトが「Sample/go.fy.sh」に与えられている。このシェルスクリプトでは、「Files」ディレクトリに与えられている JENDL/FPY-2011の U-235 のファイルからデータを読み出す。インプットはシェルに直接与えられている。その内容は極めて簡単であり、まずキーワード「READFY」により Fission yields data の読み込む処理を行うことを宣言する（その機能をもつモジュールを呼び出す）。その次の行には数値（「454」）が与えられているが、ここでは読み込むデータの種類を指定する（独立収率では「454」、累積収率では「459」）。
シェルスクリプト「go.fy.sh」を実行すると、画面上に結果が出力されるため、ファイルに落とすようにする（「./go.fy.sh > output」等）。中性子の入射エネルギーに応じた核分裂
収率データが判読しやすい形式で出力されているであろう。なお、出力中の「G/M」は基底状態（ground）か励起状態（excited）かを示す数値であり、「0」では ground、それ以外
が excited に対応する。

5.1

核分裂収率データのテキスト出力

燃焼チェーンの構築等に必要となるデータをテキスト形式で論理機番 7 に出力する機能も有する 6 。ソースコードの出力該当部を以下に示す。「le1」は収率データが評価された中性子の入射エネルギー点数である。各入射エネルギー点毎に、入射エネルギー（「e」）、核分裂
生成物核種の数（「nfp」）が与えられ、さらに核分裂生成物核種毎に、原子番号（「iz」）、質量数（「ia」）、励起準位（「ist」）、核分裂収率（「yc」）とその絶対標準偏差（「dyc」）が与えられる。

Listing 1: 論理機番 7 への核分裂収率データの出力処理部分
1
2
3
4
5
6

i o 2 =7
write ( i o 2 , ∗ ) l e 1
do i e = 1 , l e 1
write ( i o 2 , ∗ ) e
write ( i o 2 , ∗ ) n f p
do i = 1 , n f p
6

このテキスト形式のファイルは CBZ/BurnupChainGenerator モジュールの入力のひとつとして利用される。

4write ( i o 2 , ∗ ) i z
write ( i o 2 , ∗ ) i awrite ( i o 2 , ∗ ) i s twrite ( i o 2 , ∗ ) yc
write ( i o 2 , ∗ ) dyc
enddo
enddo

7
8
9
10
11
12
13

崩壊データの読み込み

6

一部の安定な原子核を除いて、大多数の原子核は崩壊により別の原子核に変わる。崩壊の半減期や、崩壊様式（α 崩壊、β 崩壊、等）を記述するデータファイルが崩壊データファイル（Decay data file）である。
木綿豆腐コードでは、「READDD」により、崩壊データを読み込み、人間が判読しやす
い形式に出力することができる。シェルスクリプトの例として「Sample/go.dd.sh」がある。
このシェルスクリプトでは、「Files」ディレクトリに与えられている JENDL/FPD-2011 のI-138 のファイルからデータを読み出す。これを実行すると、画面上に結果が出力されるため、前節で述べたように、「./go.dd.sh > output」等によりファイルに落とすとよいであろう。
出力の最初の部分に、データの読み方に関する説明が記載されているので、それを参照す
るとよい。
その後に、読み込んだ Decay data file に定義されている全ての原子核について、原子核毎に、半減期、崩壊様式、崩壊の際に放出されるエネルギーが出力される。崩壊の際に放出されるエネルギーとしては ELP 、EEM 、EHP に分類されており、それぞれ、ベータ線、ガンマ線、アルファ線のエネルギーに対応している。また、「Decay channel」以下では、ふたつめの（欄の）数値は崩壊によって放出される粒子を示している。例えば、「1550000」が与えられている場合は、ベータ線（「1」に対応）が一本、中性子（「5」に対応）が二個放出されることになる（この数値がどの粒子に対応するかは、出力の冒頭部分に説明がある）。原
子核によっては複数の崩壊様式をもつ場合があり、その数が「Decay channel」の数に対応する。三つめの（欄の）数値は、そのチャンネルで崩壊する割合（分岐比）を示しており、その後には、崩壊後の原子核の情報（元素記号、原子番号、質量数、励起準位）が記載され
ている。

6.1

崩壊データのテキスト出力

燃焼チェーンの構築等に必要となるデータをテキスト形式で論理機番 7 に出力する機能も有する 7 。ソースコードの出力該当部を以下に示す。下記の処理が原子核毎に行なわれ、ファイルの最後には「-1」が出力される。「t」は半減期（単位は秒）、「elp」「eem」「ehp」
はそれぞれ崩壊エネルギーを示し、それらの頭に「d」がついたものは絶対標準偏差を示す。
また、「ndk」は崩壊チャンネルの総数に対応しており、崩壊チャンネル毎に、そのチャンネ
ルへの分岐比（br）とその絶対標準偏差（dbr）、崩壊後の原子核の原子番号（iz2）、質量数（ia2）、励起準位（irfs）、さらに崩壊により発生する中性子数（idn）が出力される。
7

このテキスト形式のファイルは CBZ/BurnupChainGenerator モジュールの入力のひとつとして利用される。

5

Listing 2: 論理機番 7 への崩壊データの出力処理部分
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

i o 2 =7
write ( i o 2 , ∗ ) i z
write ( i o 2 , ∗ ) i awrite ( i o 2 , ∗ ) l i s owrite ( i o 2 , ∗ ) awr
write ( i o 2 , ∗ ) t
write ( i o 2 , ∗ ) dt
write ( i o 2 , ∗ ) e l p
write ( i o 2 , ∗ ) d e l p
write ( i o 2 , ∗ ) eem
write ( i o 2 , ∗ ) deem
write ( i o 2 , ∗ ) ehp
write ( i o 2 , ∗ ) dehp
write ( i o 2 , ∗ ) l i swrite ( i o 2 , ∗ ) ndk
cdo i = 1 , ndk
write ( i o 2 , ’ ( 1 pe22 . 1 5 ) ’ ) br
write ( i o 2 , ’ ( 1 pe22 . 1 5 ) ’ ) dbr
write ( i o 2 , ∗ ) i z 2
write ( i o 2 , ∗ ) i a 2
write ( i o 2 , ∗ ) i r f s
write ( i o 2 , ∗ ) i d n
enddo

6.2

崩壊により発生するガンマ線と中性子のエネルギースペクトルの出力

さらに高度な使い方として、READDD モジュールは、崩壊により発生するガンマ線と中性子のエネルギースペクトルを出力することができる。
入力において、READDD モジュールを起動させるためのキーワード「READDD」の次の行には通常「0」を指定しておくが、この値を「1」にすると、放出放射線のエネルギースペ
クトル出力機能が動作する。なお、出力されるスペクトルは多群化されるため、さらに次の行に、エネルギー群数とエネルギー群構造を指定するパラメータ 8 を入力する必要がある。
計算結果は論理機番 6 に出力されるとともに、ガンマ線については論理機番 9、中性子については 10 に、それぞれシンプルなフォーマットで出力される。

参考文献[1] 千葉豪：”サブグループパラメータ計算コード MOMENTOF の開発,” JNC TN9400
2003-074, 核燃料サイクル開発機構 (2003).

8

1 が JFS-3 の 70 群、2 が VITAMIN-J の 175 群、4 が SRAC の 107 群、5 がガンマ線用の 42 群である。

6