韜晦日記

韜晦日記

Rietveldよりもプログラミングメインになりつつある

Rietveld解析初心者による備忘録とつぶやき

RIETAN-FPにて発生するエラーとその対処法

後で書きます

RIETAN-FPでのエラー

RIETAN-FPの計算では何かしらの問題が発生すると計算を中断してエラーログを出力したうえで終了します。 エラーの大部分は以下のような内容になるかと思います。

  • パラメータや変数の入力が間違っている。
  • 計算が発散した
  • 必要なファイルが存在しない
  • 何らかの理由で計算ができない

これらのエラーに関して、エラー表示を基に対処法を書いていこうと思います。

An error occurred during reading *.int. The end-of-line code may be incorrect.

エラーログ

An error occurred during reading *.int. The end-of-line code may be incorrect.

intファイルが作成されていない場合やinsファイルの中身が間違っている場合に起きるようです。

対処法

  • intファイルをinsファイルと同じフォルダ内に作成しているか確認
  • insファイルの中身が正しいか確認

Intensity data will be input from *.int.

エラーログ

Intensity data will be input from *.int. Error during reading intensity data.

これはintファイルが正しく作成されていない場合に起きるエラーです。 特に私の場合はintファイルの改行コードが正しくない場合に生じました。

対処法

  • intファイルの改行コードが正しいか(windows版ではCRLF以外は受け付けないようです。

Check the above values of NVOXA, NVOXB, and NVOXC. If necessary, set them at zero temporarily.

エラーログ

Check the above values of NVOXA, NVOXB, and NVOXC. If necessary, set them at zero temporarily.

これはvoxelsの値が誤っている場合に発生するようです。特にinsファイルを流用した際に変更し忘れてるとおきます。

対処法

MEM解析を行わないのであれば、基本的に0で大丈夫です。

   NVOXA = 0: Number of voxels along the a axis.
   NVOXB = 0: Number of voxels along the b axis.
   NVOXC = 0: Number of voxels along the c axis.

としましょう。

Check decay parameters

エラーログ

Check decay parameters

対処法

プロファイルパラメータにある減衰パラメータの値がおかしい場合などに生じるエラー # Decay parameters, eta_L0, eta_L1, eta_H0, and eta_H1.以下のパラメータを直せばよい。Fapatiteなどのテンプレートファイルからコピペするとよい。

NPRFN=1, 2, 3の時に減衰パラメータが必要になるのでどうしても直らない場合はNPRFN=0を試すのもひとつの手。

The number of linear constraints is smaller than that expected from the ID values of parameters

エラーログ

The number of linear constraints is smaller than that expected from the ID values of parameters これは線形制約条件が構造パラメータのIDでしている数より、少ない場合に生じます。 例えば

Al1/Al  1.0  0.5  0.5  0.5 1.0 20000
Fe1/Fe  1.0  0.5  0.5  0.5 1.0 10000

Al2/Al  1.0  0.5  0.0  0.5 1.0 20000
Fe2/Fe  1.0  0.5  0.0  0.5 1.0 10000

と構造パラメータでは2つの線形制約条件を課しているにもかかわらず

A(Al1, g) = 1 - (Fe1, g)

と1つしか線形制約条件を記入していないときなど。

対処法

線形制約条件を正しく指定してあげれば大丈夫なはずです。 ここで線形制約条件の式は左辺のIDが2、右辺のIDが1となることにも注意します。

A zero intensity has been found. Delete it!

エラーログ

Intensity data will be input from *.int.
Intensity data recorded in *.int:
Zero intensity at   5.000 degrees -->   0.00000    
Zero intensity at   5.010 degrees -->   0.00000    
Zero intensity at   5.020 degrees -->  0.466467    
Zero intensity at   5.030 degrees -->   1.02623    
Zero intensity at   5.050 degrees -->   5.85135    
Zero intensity at   5.080 degrees -->   5.89882  

A zero intensity has been found. Delete it!

回折強度に0が含まれていると生じる。

対処法

0にならないようにする。データがバックグラウンドを差し引いたデータを使っていないか確認する

原因不明のエラー

エラーログ

forrtl: severe (59): list-directed I/O syntax error, unit 4, file C:\Users\ユーザー名\AppData\Local\Temp\FOREC5E.tmp
Image              PC                Routine            Line        Source
rietan.exe         00007FF6DBF6E26A  Unknown               Unknown  Unknown
rietan.exe         00007FF6DBF6BDA8  Unknown               Unknown  Unknown
rietan.exe         00007FF6DBE658FE  Unknown               Unknown  Unknown
rietan.exe         00007FF6DC019216  Unknown               Unknown  Unknown
rietan.exe         00007FF6DBFF6DEF  Unknown               Unknown  Unknown
KERNEL32.DLL       00007FFB135D81F4  Unknown               Unknown  Unknown
ntdll.dll          00007FFB147CA251  Unknown               Unknown  Unknown

であったり、

      forrtl: 致命的なエラー (29): ファイルが見つかりません。ユニット 31、ファイル
    Image              PC        Routine            Line        Source
    RIETAN.exe         00D49DE9  Unknown               Unknown  Unknown
    RIETAN.exe         00D12142  Unknown               Unknown  Unknown
    RIETAN.exe         00C6218D  Unknown               Unknown  Unknown
    RIETAN.exe         00D6A037  Unknown               Unknown  Unknown
    RIETAN.exe         00D37C9A  Unknown               Unknown  Unknown

こんなエラーを吐かれてRIETANが全く実行できない問題にぶち当たったことがある。
このエラーはコンソール上に吐かれて実際には.lst上には記録されない。
なのでちゃんとコンソールを見ていないと見逃してしまうでしょう。
さて、このエラーが何者かについては依然として分かってはいません。
現状分かっている原因は2つあります。

  • 記入すべき位置にパラメータが書かれていない。
  • Windowsマシン自体の問題

前者は比較的問題解決は簡単です。以前に解析して成功していた場合はそちらのファイルを使って実行可能か確かめます。
そしてファイルを比較して誤っている個所を探すのみです。
実際に私は線形条件を入力すべき場所ではない部分に入力していたためエラーが生じていました。
これはあくまで推測なのですが、実行時に値がないことで変数内がnullなど空の値を保持した結果実行エラーを生じたものだと考えています。

そして問題なのが後者です。
私の場合は講習会に参加した際に泉先生の配布したプログラマム、データを用いて実行しようとしましたが上記のエラーにより計算が正常に終了しません。
どんな方法を試してもダメで、会場内でただ一人私だけがRIETANを動かすことが出来ませんでした。
周囲の人や、泉先生ご本人にも原因を追究してもらいましたが結局分からず仕舞いでした。
ワタシの当時わたしのWindowは8.1でした。そこでまず内部の個人データなどは保持したままでOSを再インストールしましたが結果は変わりません。
仕方ないのでWindows10をクリーンインストールしました。PCのデータを全消去するのでかなり大掛かりな作業になりましたが、その結果RIETANは正常に実行できるようになりました。
結局原因はわかりませんが、PC内部の潜在的な問題が潜んでいたのでしょう。
同じような症状に陥った場合はOSのクリーンインストールを検討することも視野に入れた方がよさそうです。
またこのエラーログを確認するためには、cmdを起動して直接コマンドを入力してRIETANを実行します。
その辺のやり方は別記事に書きたいと思います。

Plot出来ない。

対処法

OFFSETの値が0になっていないか確認する

その他注意したい点

テンプレートファイルの流用

基本的にRIETAN-FPのファイルはテンプレートファイルを流用します。
その方が入力のミスも少なく、また簡単に入力ファイルを作成することが出来ます。 単相解析の場合はFapatite.ins、多相解析の場合はCu3Fe4P6.insを使うといいでしょう。 しかしこれらを流用する際に見落としがちな注意点があるので書いておきます。

Fapatite.insの場合

  • NVOXA, NVOXB, NVOXCを0にする
    MEM解析を行わない場合は基本的にvoxelsの値は0で大丈夫です。ここを変更し忘れていると大体エラーを吐かれます。
  • NUPDTを確認する
    NUPDTが0になっているのでここの変更を忘れているといくら解析をしても値が更新されません。無駄にプログラムを回し続けることになります。

Cu3Fe4P6.insの場合

  • R12 = 0.5に変更する
    この実験では単色化された線源を用いているようです。そのためR12 = 0.0となっています。
    通常の実験系で測定した場合はKa2線も入っているはずなのでR12 = 0.5に変更します。
  • NUPDTを確認する
    Fapatiteと同じです。
  • NPHASE@ = 3を任意の値に変更する
    ここでは多相解析する相の数を入力します。 ここを間違えるとエラーが吐かれてしまいます。
    合わせて# Effective radii (micrometers) for NPHASE@ phases.のところも変更しておきます。
# Effective radii (micrometers) for NPHASE@ phases.
# Enter '/' when neglecting microabsorption.
5.0  5.0  5.0   ←相の数と合わせる。
  • NINT = 1にする
    XRDデータ(intファイル)の形式がRIETANfromatになっているのでx-y形式に変更する。RIETANformatを使う人はそのままでいいけど。x-y形式の方が主流な気がします。
  • OFFSET1, OFFSET2, ....OFFSETn(n相解析)の値を変更する
    スペクトル描画の軸のサイズを変更するのは当然だが、忘れがちなのがOFFSET
    多相解析では各相の回折線を個別で描画できるため、その位置を指定しなくてはならない。OFFSETの数は解析する相に合わせる