これまで、GAMESのInputファイルに関して「入門編」と「中級編」に分けて基礎的な内容を紹介してきました。今回は、意外に知らないGAMESSの入力ファイルに関するTips(豆知識)を紹介したいと思います。
it00
これを知ることで、入力ファイルを作成する際の手間が省けたり、誤って作成していたことに気付いたりと新たな発見があるかもしれません。なお、ここで扱うTipsはGAMESS(US)Firefly(PC GAMES)両方に使えるので是非活用してみてください。

① $グループとキーワドの順番にルールはない!!

$グループを記述する順番にルールはありません。例えば、$CONTRLグループを$DATAグループの下に置くことだってルール上問題ありません。また、$グループ内のキーワードを記述する順番も自由です。つまり、キーワードを修正・追加したい場合は順序にこだわる必要なんてまったくないのです。ただし、自分なりに記述する順番のルールを決めておく、あとから見返した時に見やすいと思います。

② メモを自由に残せる!!

GAMESSの入力ファイルには、一定のルールさえ守れば自由にメモが残せます。例えば、最初の行には何行でもメモが残せます。もちろん日本語でもOKですし、文字数の制限もありません。また、各キーワードの行間や$END以降にも自由にメモが残せます。
it02
例えば、以下のように実行した内容のメモを残すことだって可能です(赤文字)。


 $CONTRL SCFTYP=RHF RUNTYP=OPTIMIZE $END
^RHFレベルの構造最適化を指定
 $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 $END <基底関数は6-31G*に指定→次回6-31+G**に変更
 $STATPT OPTTOL=0.0005 NSTEP=50 HSSEND=.TRUE. $END


注意したいのは、$DATA直下のメモは一行のみに限定されることです(二行以上記述するとエラーが出力されます)。
また、$グループ内に対応するキワード以外を記述すると当然エラーが出力されるので、メモを残すことはできません。

③ 同種の$グループを複数追加することも可能!!

同じ種類で複数の$グループを作成することができます(e.g. $CONTRLグループを2つ作るなど)。また、両方の$グループに同じキーワードがある場合は、最後の$グループのキーワードが優先されます。

 $CONTRL RUNTYP=HESSIAN $END
 $CONTRL RUNTYP=OPTIMIZE $END


例えば上記の場合、振動数計算(HESSIAN)は実行されずに構造最適化(OPTIMIZE)のみ実行されます。キーワードの二重入力は、キーワードをコピペして再利用する際などに起こりやすいです。目的と異なる計算が実行されてしまう可能性があるので注意が必要です。
逆にキワードを残しておきたい場合などは、キーワードの二重入力を活用する手もありますね。

④ $直前の半角スペースを削除して命令文を一時解除!!

$記号の直前に半角スペースを入れないと、その行の指示は実行されません(記述していないのと同じになります)。これを利用して、その行の命令文を一時的に解除することができます。例えば、スペースを削除してもいいですし、分かりやすいように「!」等の記号を入れてもかまいません。もちろん「Stop」なんて適当な単語をいれてもOKです。
it03
 $CONTRL SCFTYP=RHF RUNTYP=OPTIMIZE $END
 $BASIS GBASIS=N31 NGAUSS=6 NDFUNC=1 $END
STOP$STATPT NSTEP=50 OPTTOL=0.0005  HSSEND=.TRUE. $END


上記のような場合、最後の行の$STATPTグループはデフォルト値(NSTEP=20, OPTTOL=1.0D-4)が採用され、追加のオプションであるHSSEND=.TRUE.は実行されません(デフォルトは.FALS.)。ただし、キーワード間の空白は必ず入れないとエラーが出るので注意が必要です。命令文を残しておきたいけど、今回だけ実行したくない場合などに活用できます。半角スペースの部分や$END以下に実行しない旨のメモを残すと分かりやすいかもしれません。

⑤ $グループ~END$は複数行にまたがってもOK、ただし文字数制限に注意!!

$グループ~END$は複数行にまたがってもかまいません。ただし、行の長さは80文字までです。 それ以降は無視されるので注意が必要です。例えば、以下のように入力ファイルを作成してもきちんとGAMESSは実行してくれます。

$CONTRL SCFTYP=RHF
RUNTYP=OPTIMIZE $END

⑥ 大文字、小文字は関係ない、また一部省略記号も利用できる!!

グループ名やキーワードは大文字と小文字両方が利用できます。もちろん、大文字と小文字が混ざっていてもOKです。
Inputビルダー(GUIソフト)では、大文字入力が当たり前になっているので、毎回大文字でキーワードの追加を行っていた方も多いのではないでしょうか。
また、HSSEND=, IRC=などでよく利用する".TRUE."や".FALS."のオプションは".t."と  ".f."に省略することができます。これは覚えておくと良いでしょう。
it01

⑦ ほとんど空欄でも計算が実行される!?

GAMESSには、ほとんどすべてのパラメータにデフォルト値が設定されています。例えば$CONTRLグループがない場合、GAMESSはRHFレベルでシングルポイントエネルギー計算(一点計算, RUNTYP=ENERGY)を実行します。
極端な話、$BASIS(基底関数)と$DATA(分子座標)グループさえあれば計算は実行されます。
デフォルト値についてはGAMESSのマニュアルの各種キーワード欄に(Default)という注意書きがあります。
it05
デフォルト値になっているにも関わらず、一々入力ファイルにキーワードを記述するのは面倒ですよね。また、なにより余計なキーワードが多いと見やすさに欠けてしまいます。今後、GAMESのマニュアルを見る際は(Default)のキーワードに目を向けてみると良いかもしれません。

おわり

今回は、知っているようで知らないGAMESSの入力ファイルに関するTips(豆知識)を紹介しました。中には既に知っていたものや、「こんな使い方があったんだ!!」だったり、さらには「こんな使い方も出来そうだな」というアイディアが浮かんだ方もいるかもしれません。ここで紹介した内容は、ふとしたところで役に立つテクニックだと思うので是非活用してみてください。

【関連記事】
Inputファイルを見てみよう その①~入門編〜
Inputファイルを見てみよう その②~中級編~
GAMESSの入力ファイルに追加・変更したいキーワード8選