[HERMES?] [実験日程] [実験に必要な情報] [解析の情報] [論文の投稿] [LinK] [装置の詳細]
[TOP]>>[解析の情報]>>[RIETAN]>>[Terminal版]

Mac OS X Terminal版への道

update : 4-July-2005





Mac OSX版では、アイコン操作するCarbon版だけでなく、Terminal版があります。Terminal版のメリットは:

   計算速度がCarbonよりずっと早い(〜2.5倍)
   解析の繰り返しが楽
   Openダイアログがでないのは意外に快適

などですが、なにより更新がCarbon版より早くて確実です。インストールにUnixの知識がほんの少し必要ですが、Finkのインストールなど特別な作業はまったく不要です。ほとんどの作業はFInderで操作しますので、これまでのRIETANを使っていた人ならさほどの障壁にはならないと思います。

ここでは、UnixやTerminalになれていない人むけに、Terminal版のインストール、使い方を、自分の失敗に基づいて説明します。Terminal版を使えるようになるまでに、泉先生から多数のアドバイスを直接いただきました。

なお、たぶん本当はシェルといわなければいけないものをterminalと書いています。また、TerminalでのDirectoryは、Finderでのフォルダと同じものですが、「書類」フォルダが「Documents」Directoryと英語になおっていたりします。




インストール


1:泉先生のサイトからRIETAN2000m.tbzを落としてくる。
日々進化しているので、かならず最新バージョンを落として使いましょう。

2:.tbzを解凍するとRIETAN2000mというフォルダーができる。(解凍の設定によっては、このフォルダができない場合もあるらしい。)中に以下の二つのフォルダができている。

RIETAN2000 Folder   :Carbon版
RIETAN2000X Folder   :Terminal版


3:RIETAN2000X Folderを開き、Readme_Darwinをよく読みましょう。基本的にここに書いてあるまんまをやれば動くはずですし、また、Readme_Darwinに書いてあることをちゃんとやらないと走りません。以下はReadme_Darwinの内容の概要を日本語にしたものです。


Terminalの設定

1:Terminalを起動し、環境設定を開く。
「新規ウィンドウの作成時:」で「このコマンドを実行する(完全なパスを指定)」にマークし、窓に、以下を書き込む

    /bin/bash

2:環境設定で、「ウィンドウの設定」を好みで設定する。ここの設定は、RIETANの動作には影響を与えない。


フォルダを置く


この作業はFinder上で普通のマックのファイル、フォルダの操作でできます。

1:RIETAN2000X Folder内のRIETAN_ProgramsフォルダをまるごとApplicationsの中にいれる。自分のホームディレクトリー内のApplicationsではなく、システムフォルダと同じレベルにあるApplicationsフォルダです。〜.outが実行形式ファイル、つまり本体です。

2:RIETAN2000X Folder内のExamplesフォルダを、自分のホームディレクトリーの下におく。

自分のホームディレクトリーのフォルダは、Finderで「ユーザ」フォルダの中にある家のアイコンをしたフォルダ(私の場合はohoyamaという名前のフォルダ)です。で、たとえば、自分のホームディレクトリーの中に最初からある「書類」フォルダの中にrietanというフォルダを新しく作って、そこにExamplesフォルダをいれておきます。その場合のアドレスは、(私の場合では)以下のようになってます。自分のホームディレクトリーの下なら(つまりohoyamaの家アイコンの中なら)、別な位置でも問題ありません。

/Users/ohoyama/documents/rietan/Examples


不可視ファイルを2つ作る。

1:場所がきまったら、実行ファイルへのpathを定義します。この場合のpathとは、RIETANの実行形式ファイルのあるDirectoryを指定しているパラメーターのことです。「pathを通す」などというようです。pathは.bash_profileというUnixの不可視ファイルで設定されています。名前がピリオドで始まるファイルが不可視ファイルで、MacのFinderからでは存在がみえません。 でも、Terminalで以下のunixコマンドを走らせると、不可視ファイルを含むファイル一覧をみる事ができます。

> ls -a


2: たぶん.bash_profileはないので、新たにつくります。このファイルを置く場所は自分のホームディレクトリーで、Terminalを起動したときに最初にいるdirectoryです。Finderでいえば「ユーザ」フォルダ内の家形アイコンのフォルダです。私の場合は:/Users/ohoyama です。

不可視ファイルはmiまたはJeditで作成するといいでしょう。Finderでは不可視ファイルがみえませんが、mi,Jedtiorのオープンダイアログからは不可視ファイルがみえますので、修正に便利です。最新のmiならいきなりみえるはずですが、もしもオープンダイアログからみえない場合はお使いのmiバージョンが古いかもしれません。その場合は、ツールの下の方にある「不可視ファイルを開く」を使うと見えると思います。

ファイルの中身は、Readme_Darwinをまるまるパクるのが確実です。Readme_Darwinの下の緑文字の部分をコピーペーストすしてください。このページはhtml化のため少し変えてあり、動作保証できません。赤いところが重要なところで、行末のピリオドを含めこのまま使います。もしすでに.bash_profileが存在していたら、赤い部分を加えるか、同じように修正する事になります。

Unixなので、改行はLFでないといけません。miやJeditorなら改行を簡単に確認・変更する事ができます。

# .bash_profile

# Get aliases and a stack size from .bashrc
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

umask 022

PATH=$PATH:/usr/local/bin:.
ENV=$HOME/.bashrc
PS1="\w > "
EDITOR=emacs
PAGER=less
export PATH ENV PS1 EDITOR PAGER

export RIETAN='/Applications/RIETAN_Programs'
export ORFFE='/Applications/RIETAN_Programs'
export lst2cif='/Applications/RIETAN_Programs'

# end of .bash_profile


3:もしRIETAN_Programsフォルダを別な位置においたときは、export RIETAN=****などの***を正しいアドレスに書き換える必要があります。たとえば、Applicationsフォルダの中にRIETANというフォルダを作って、その中にRIETAN_Programsをいれたとすると:

export RIETAN='/Applications/RIETAN/RIETAN_Programs'など


4:RIETAN実行形式ファイルへの絶対pathの最大長さは256文字なので、かなり深くしても大丈夫なはずです。上の例では36文字。ただし、日本語や空白を含むディレクトリー(フォルダ)名は無効です。まあ、Readme_Darwinどおりにしておくのが確実です。

5:PS1="\w > " は、terminal使用時のプロンプトになるので、適当に好みで変えておいていい。>は不等号を表します。PS1="ohoyama>"とか



6:次に、もうひとつの不可視ファイル.bashrcを作る。
これもmiを使ってReadme_Darwinの下の部分をまるまるコピーペーストすればいい。

alias ls='ls -F'

# Avoid stack overflow on the execution of Fortran programs
ulimit -s 64000

# end of .bashrc



loginし直す

作っただけではこの二つのファイルは無効で、RIETANへのpathがとおりません。この2つのファイルでの設定はlogin時に有効になりますので、いったんterminalを抜けて入り直す必要があります。terminalでexitとうつか、terminalウィンドウを閉じるたあと、コマンドNとかで新しいterminalを開けばファイルが有効になります。有効ならプロンプトが変わったはず。





サンプルを走らせてみる


1:Terminalから、cdコマンドを使ってExamplesフォルダに移動する。

cd Documents/rietan/Examples

など。アドレスがよく分からなければ、lsコマンドで下位directryを確認しながら一個一個directoryを下がっていけばいい。


2:Examplesフォルダにきたら、lsコマンドで一覧をだす。中性子用はCu3Fe4P6Eなので、cdでそのフォルダに移動する


3:lsで内容を確認。


4:x*という実行ファイルがあります。これは楽に解析をするためのバッチファイルみたいなものです。これをmiなどのeditorで開いてみます。
x*の中身はたとえば以下のようになっています。赤文字が大事なところで、#はコメントです。:

#!/bin/bash
# Execute RIETAN-2000 for Mac OS X (Terminal application)

export sample=Cu3Fe4P6E

# The environment variable RIETAN was defined in ~/.bash_profile.
$RIETAN/rietan.out $sample.ins $sample.int $sample.bkg $sample.itx $sample.hkl $sample.xyz $sample.fos $sample.ffe $sample.fba $sample.ffi $sample.ffo $sample.cmt | tee $sample.lst

# g: Go to the first line
# G: Go to the last line
# f or space: Next page
# b: Previous page
# q: Quit
# /string: Search string
# n: Repeat previous search
# N: Repeat previous search in reverse direction
# h: Help
# Arrow keys can also be used.

#less -M +/Reliability $sample.lst
less -MISp Reliability $sample.lst

unset sample


export sample=Cu3Fe4P6Eで、insファイル、intファイルを指定しています。xファイルとins,intファイルは同じフォルダにないといけません。pathをきちんと指定してやれば別なDirectoryでも大丈夫と思いますが、関係が分かりにくくなるだけなので、同じフォルダの方がいいでしょう。
今はサンプルなので、修正は必要ありません。

いよいよ実行

teminalで、ただ以下のようにxをはしらせるだけで、RIETANが走り始めます。x*の*は不要です。

\w >x


pathがとおっていないと

./x: line 7: /ApplicationsRIETAN/RIETAN_Programs/rietan.out: No such file or dir

なんてエラーがでます。.bash_profileでpathを確認しましょう。修正したあとの再loginをわすれずに。


計算が正常に終了すれば、Carbon版と同様、以下のようなメッセージが表示されるはずです。

*** End of job ***

CPU time = 59.92 s

--- RIETAN-2000 Rev. 2.3.5 Copyright 2000-2005 by F. Izumi ---


計算終了時に自動的にUnixのlessコマンドが実行され、結果ファイルSi_14800.lstの内容を表示してくれています。抜けるにはキーボードでqを押す。


アイコンから一発起動

Unixコマンドで起動させるのが嫌いな方のために、アイコンクリックでRietanの起動も可能です。 最新版(17-June-2005版)のExamplesには、x*だけでなく、x.commandというファイルがついています。内容はxと同じです。そのアイコンをクリックしただけで自動でTerminalが立ち上がり、RIETANが走ります。やっている事は、Terminalでx.comman本体の置いてあるDirectoryに移動して、x*を実行したのと同じで、当然、insファイルはx.commandの中で指定しているものが選ばれます。x.commandをDockにドラッグしておけばさらに便利。

自分のデータを解析する時は、x*とx.commandをコピーし修正してから、Dockにおけば一発起動可。別なデータを解析する場合は、dockにおいたx.commandファイルを新しいものに交換します。

lessコマンドをqで終了すると、自動的にlogoutします。

自分のデータを解析する


1:Examplsフォルダと同じ階層に、自分のサンプル用のフォルダを作る。たとえば、そのフォルダの名前をSi_14800としたとするとアドレスは

/Users/ohoyama/Documents/rietan/Si_14800

自分のホームディレクトリー(/Users/ohoyama/)の下なら、別な位置でも大丈夫です。


2:Si_14800フォルダーに、Examples中のinsファイルとxファイルをコピーする。


3:intファイルを作って、Si_14800フォルダにおく。(intファイルの作り方)Terminal版で解析するときは、Unix形式でないといけないので、ファイル中の改行をLFにする必要があります。


4:insファイルを自分の解析用に書き直す。Rev1.8以前のinsファイルとは少し異なっているので、Carbon版のときに動いていたファイルではなく、最新のsamplesを元に起こす事をお勧めします。どこを直すかはinsファイルの詳しい説明をご覧下さい。自分で起こした場合は、改行をLFにする事をおわすれなく。


5:特に、NPAHSE@は、Rev1.8以前にはなかった重要なパラメーターなので、正しく定義する事をわすれないようにしましょう。


6:insに日本語でコメントいれた場合、長すぎるとエラーが起きます。特に

(注釈の文字列){

というタイプの注釈行の場合,"{"の位置は80桁目以前になければいけないので注意が必要です。


7:editorでxを開いて、export sample=Cu3Fe4P6EのCu3Fe4P6Eを自分のins,intファイル名に修正する。Si_14800.insなら、export sample=Si_14800

8:Termainlで、xリターンで走り出すはず。

\w >x


あるいは、x.commandファイルも修正してDockにいれておけば、アイコンをクリックするだけで、Terminalが自動的に立ち上がり、RIETANが走ります。

9:でも、どうせエラーでとまるので、あとはinsをこつこつ直していく。

10:計算が正常に終了すれば、Carbon版と同様、以下のようなメッセージが表示される。

*** End of job ***

CPU time = 59.92 s

--- RIETAN-2000 Rev. 2.3.5 Copyright 2000-2005 by F. Izumi ---


計算終了時に自動的にUnixのlessコマンドが実行され、結果ファイルSi_14800.lstの内容を表示してくれています。xファイルのなかに使えるコマンドが表示されているので、それを参考にして、計算結果を確認します。lessコマンドを抜けるにはキーボードでqを押す。面倒だったら、miなどのeditorで.lstファイルを開いてチェックすればいいでしょう。


11:計算結果のグラフはigorファイルSi_14800.itxになります。Finderでこれをダブルクリックすれば、Igor Proが立ち上がりグラフが表示されます。itxの改行はLFですが、そのままグラフが表示されます。


12:結果をみて、insファイルを書き直し、xの実行、またはDockのアイコンクリックで解析を繰り返す。




エラー



エラー
RIETANがはしりださず、terminal画面上に以下のメッセージが表示される。

./x: line 7: /ApplicationsRIETAN/RIETAN_Programs/rietan.out: No such file or dir

pathが通っていません。.bach_profileファイルで指定されているpathと、実際にRIETAN_Programsフォルダがおかれている位置を確認しましょう。



エラー
いったん走り出すけど、すぐとまってしまい、termainal画面に以下のエラーが表示される。

? FORTRAN Runtime Error:
? Attempt to read past end of file
? READ(UNIT=4,...

insファイルに問題があり、読めなかったというエラー。おそらく、ファイルがUnix形式(LF)になっていない。


エラー
特にエラーメッセージはでないけれど、以下のような情報を表示した後で止まってしまう。

Excluded regions in the diffraction data
0.000- 25.000
40.000- 50.000
150.010-180.000

intファイルがx*ファイルと同じフォルダにない。あっても名前が異なる。あるいは、intファイルがUNIX形式になっていない。


エラー
以下を表示して走らない。

\w > x
? System Error:
? No such file or directory
? OPEN(UNIT=5,...

insファイルがx*ファイルと同じフォルダにない。あっても名前がxファイル内の指定と異なっている。


エラー
放射光X線のときに、1相だとうごいたのに2相にしたら、以下を表示してうごかなくなっちゃった。

Wavelength = 0.80190 Angstroms PCOR = 0.0100 CTHM = 1.000000 MUR = 0.514600
? FORTRAN Runtime Error:
? Illegal character in numeric input
? OPEN(UNIT=4,...

たぶん、anomalous dispersion corrections, Delta-f' and Delta-f''.の入力数が、すぐ上で定義している元素の数とあっていない。2相目であらたにはいった元素の分をわすれているかも。




Terminal版を使うときに必要になりそうな簡単UNIXコマンドリスト

pwdいまいるDirectory(フォルダ)を表示。パスワードじゃない。
lsいまいるDirectory(フォルダ)の可視ファイルを全部表示。VAXならdirだな。optionがたくさんある。
ls -l、ls -a........
cd Documents 今いるDIrectory(フォルダ)内にあるDocumentsというDirectory(フォルダ)に移動。Documentsという Directory(フォルダ)がなければエラーがかえってくる
cd .. 一つ上のDirectory(フォルダ)に移動する。
cd 自分のホームディレクトリー(家形アイコンのフォルダ)にいきなり移動する。
cp FILEA FILEB コピーコマンド。FILEAをFILEBにコピーする。Finderの「複製」(コマンドD)で複製してから名前を変えるのと等価
rm FILEA 消去コマンド。FILEAを消去している。可視ファイルについては、ごみ箱行きと等価。
mv FILEA Documents/FILEB ファイルを移動するコマンド。コピーと違い、もとのファイルはのこらない。
less FILEA FILEAの中身を表示。editorのように上下にスクロールできるので便利。でもUnixファイル以外をみると改行がぐちゃぐちゃになる。
cat FILEA FILEAの中身をただ画面にたれながす。typeコマンドみたいなの。
man ls helpの表示。左の例はコマンドlsのヘルプを表示する。ただし英語。素人にはよんでも分からない事の方が多い。説明が長い場合はスペースバーでスクロールする。読んでて途中であきたら、ただのqで抜けられる。
mkdir RIETAN 新しいDirectoryの作成。今いるDirectoryの下に新たに「RIETAN」というDirectoryを作っている。でもMacのFinderの「新しいフォルダを作る」と等価だから、あまり使わない。
exit logoutする。

ここのTopにもどる。
130.GIF