— 1 —SENAC Vol. 46, No. 1（2013. 1）[巻頭言]2013 年東北大学及びサイバーサイエンスセンターへの期待
公益財団法人仙台応用情報学研究振興財団
理事長 野口正一

2012 年は我が国にとって必ずしも明るい年ではなかったと思います。
一向に改善されない日本の経済、伸びない GDP、かつて日本を牽引したエレクトロニクス産
業の急速な衰退、そして領土問題等。これら多くの要因で我々の周囲には大きい閉塞感が漂っていました。
今、2013 年に向けて日本はどのように復活できるのであろうか。この目的に向けて大学を中心とするアカデミアはどのように貢献できるのであろうか。
この問題が 2013 年の初頭、我々に課せられた大きい課題だと思います。
即ち、2013 年に向けて日本の進むべき進路、そしてどのような輝く未来を具体的に我々は描くことができるのか。
この中で重要な課題の一つが日本の産業構造のドラスティックな再構築の問題です。
日本の産業力はかつて世界的なコモディティの分野で圧倒的な力を持ち、現在の日本のポテンシャルをここまでに高めることができたわけです。
しかしながら、この分野は新たに台頭してきた新興国の産業の力のもとで自動車を除く多くの分野で決定的な差をつけられてきました。
この分野で再び日本が覇権を取り戻すためにはコモディティのビジネスで決定的に他に勝てる製品開発のシナリオがなければ不可欠ですし、当面は大変に難しいと思います。
一方、現在の日本は世界最高水準の物作りの技術、また新素材の開発の分野でも圧倒的な力を持っています。当然この技術を具体的に産業化していくことは大変大事なことですが、これだけでは日本を支える産業基盤として考えることは難しい。とすれば、これらの技術を集大成し、新しいビジネスモデルを構築していくことが大事となります。
異種分野の技術の知的資源を活用し、総合的な社会システムのインフラの構築技術ができれば、他国に先駆けて日本にとっての大きいビジネスが創出できるものと思います。そしてこれを支える技術は異種の巨大データベースを活用し、社会インフラに対応するクラウドシス
テムの構築技術、つまり大規模なスマートコンバージェンスを可能とする技術です。
対象となる分野としてはエネルギー資源を中心とした Smart City、水資源を中心とした環境
社会システム、交通、Logistic を中心とした社会システム等数多くの分野で多くの産業が創出される可能性があります。同時に多くの新しい雇用も生まれます。
以上のことを換言すれば、すでに日本が絶対的な力として獲得している各産業分野の高度の知的資源をベースに高度なスマートコンバージェンスをベースとした新しい総合的な情報処理システムの開発が早急に解決すべき課題ということです。

— 2 —

SENAC Vol. 46, No. 1（2013. 1）

しかしながら、この問題を解決するための基本的な技術はいまだ十分に開発されているとは思えません。
この技術を達成するための最も重要な課題は heterogeneous な巨大データをどのように一元化し、目的とする分野に最大限有効な情報を提供させる技術です。このためにはいくつかの重要な研究課題を解決しなければなりません。
第一が heterogeneous な情報環境における巨大データベースをどのように効率的に一元化するかということ。
このためには heterogeneous な環境のデータを一元化する共通プラットフォーム構築の問題が重要となります。当然データ送受信の要である新しい通信プロトコルの開発も必要となります。これらの問題をどのようにして開発していくか、特に共通プラットフォーム問題解決
を含めての国際標準化への問題は重要となります。
次の重要な課題は巨大データ処理のための知的エンジンとそれを管理する巨大センターの開発です。
このセンターはシステムを構成する各個別の要素に実時間で必要とする情報を提供しなければならない。以上、総括すれば夫々の目的に対応した分野のための巨大クラウドの構築技術の開発が中心的課題です。
以上のような一般論の上で東北大学はどのようなプロジェクトを行うことができるのでしょうか。
あくまで私見ではありますが、次の三つの大きい分野があると思います。
第一は現在医学系を中心に推進されている巨大な人間のゲノム情報の活用です。
この情報を新しい医療、健康、介護、福祉等の世界に活用する技術が生まれれば大きい新しい産業の創出が可能となります。
第二に東北大学が世界に誇る多様な分野の材料物性の巨大データベースの活用です。
新しい材料の創出とこれをベースに知的生産システムとのコンバージェンスにより、新しい産業が創出されるでしょう。
第三が現在東北大学の通研が中心に NICT との間で研究開発を推進している“大震災に対応できる次世代情報・通信システム構築”のプロジェクトです。
このプロジェクトが産業創出の面からさらに解決すべき一つの重要な課題は国、自治体、企業の持つ情報システムと本次世代情報・通信システムとの総合的な融合技術です。
このプロジェクトが開発されれば日本のみならず諸外国でも展開できる新しい産業創出の基盤となります。
以上のような状況下で上に述べたプロジェクトが産業創出の面からも推進されれば、これらは東北大学の更なる社会貢献の柱になると思います。
最後に以上のプロジェクトを推進する上で巨大な知的資源を保有し、活用している当サイ
バーサイエンスセンターはスマートコンバージェンス技術推進の中核の機関として重要なミッションを果たすことができると強く期待しています。

— 3 —

SENAC Vol. 46, No. 1（2013. 1）［共同研究成果］

ダウンスケールシミュレーションにおける台風の再現性について
台風 Choi-wan(2009)の事例解析

濵田真之、岩崎俊樹
東北大学理学研究科
台風予報は数値予報の重要な開発課題である。全球数値予報モデルによる進路予報は、近年精度向上が著しく、5 日先までの予報が提供されている。しかしながら、台風の強度の再現には高解像度の雲解像モデルが必要であり、多大な計算機資源が必要であることと、現状で予測性能が十分ではない
ため、まだ数値モデルによる台風強度予測は実用化には至っていない。現在、非静力学数値モデルを用いたダウンスケールシステムを利用し、台風強度予測の可能性を調べている。このようなフレームワークでは、台風強度予測に関しては数値モデルそのものの性能に加えて、初期条件や境界条件もその精度に影響する。そこで、本研究では現状の再解析を初期値・境界値に用いた完全予報(事後予報)
実験における、台風の進路と強度の再現精度を事例解析により調べる。
実験対象は防災上大きな問題となる急発達を示した台風 Choi-wan(2009)を選んだ。特に、台風進路と強度の再現精度は初期値・境界値の精度に依存する。このため、初期値・境界値に JRA25/JCDAS とERA-Interim の 2 つの異なる再解析を用いて、再現された台風の強度を調べた。
本研究のケースでは台風強度についてはどちらの場合も過小評価であった。2 つの再解析の影響については、
進路・強度とも ERA-Interim を使用した実験のほうがベストトラック(観測値)に近かった。
また、初期値と境界値の組み合わせを変えた実験から、進路の予報精度を上げるためには境界値を、強度の精度を向上させるには初期値の再現性を向上させる必要があることが明らかになった。

1. はじめに
台風は北西太平洋で発生・発達し、大災害をもたらす気象現象である。最近では Talas(2011)
や Megi(2010)などによる災害が記憶に新しい。台風の進路や強度を正確に予報することは重要である。
台風を含む気象現象を予報するために主要国の予報機関は独自の数値モデルを開発してきた。近年
では、観測データの増加[1]、4 次元データ同化手法の高度化、予測モデルの高解像度化、パラメタリ
ゼーションの改善などにより、予報精度は大幅に向上している。気象庁の台風モデルについても予報
誤差の縮小に伴い、狭領域の TYM(気象庁台風モデル、[2])から TEPS(Typhoon Ensemble Prediction
System :[3])へ移行され、5 日間予報が行われている。
進路予報に関しては TIGGE(The THORPEX Interactive Grand Globak Ensemble)を使用した解析から進路予報の精度を向上させるためには指向流が再現されているかに依存することが明らかになっている[4]。一方、強度予報では台風内部の小規模現象(e.g.,Eyewall Replacement Cycle)を再現できる高解像度の雲解像モデルが必要となる[5]。高解像度モデルは膨大な計算機資源を必要とし、予測精度も満足いくレベルに達していないため、台風強度の数値予報は実用化されていない。
現在、強度予報に関しては非静力学数値モデルと力学的ダウンスケーリングを用いた研究が行われている [6]。この手法では領域モデルを使用するため、予報精度は数値モデルの誤差の他に初期値や境界値に左右される。また、ダウンスケーリングを用いた台風の強度予報実験では各予報機関が作成した再解析データが初期値として使用されている [7][8]。再解析データとは、過去の観測データを数
値予報モデルに同化し、過去の大気の 3 次元分布を再現させたものであり、台風や集中豪雨等の極端現象を再現する際に有効である。

— 4 —

SENAC Vol. 46, No. 1（2013. 1）

本研究では JCDAS(Japan Climate Data Assimilation System：以下 JRA)[7]と ERA-interim(以下ERA)[8]の 2 つの再解析データを初期値と境界値として使用した実験を行う。JRA25(Japanese 25-year
Reanalysis)/JCDAS は気象庁の再解析で、ERA-Interim(ECMWF re-analysis)は ECMWF(European Center
for Medium-Range Weather Forecasts)の作成した ERA と JMA(Japan Meteorological agency)が作成した再解析である。また、2009 年に発生した台風 Choi-wan を対象として気象庁非静力学モデル(JMA-NHM)を用いて再現実験を行った。
台風 Choi-wan は 2009 年に発生した台風の中でも急激に発達した台風であり、防災上重要な問題を持つため本研究の対象として選択した。本研究を通じて、強度と進路が初期値と境界値のどちらに影響を受けるか事例解析を行った。また、本計算は東北大学サイバ
ーサイエンスセンターの並列コンピュータを用いて 64 並列の計算を約 15 時間実行した。

2. 実験概要
2.1 台風 Choi-wan(2009)の概要
気象庁ベストトラックから Choi-wan は 2009 年 9 月 12 日 18:00UTC に 15.4°N、150.9°E で台風となった。急発達しながら北西へ進み、9 月 15 日 12:00UTC に最低気圧が 915hPa、最大風速が 55m/s に達した。その後も強度を維持したまま北西に進み、9 月 18 日 00:00UTC に転向した。転向後は強度が弱まり、9 月 20 日 12:00UTC に熱帯低気圧に変化した。
本稿では Choi-wan が急発達した段階である 9 月 13 日 06:00UTC から成熟状態に達した 9 月 16 日
12:00UTC までを計算時間とする。
2.2 数値モデルの概要
本研究では JMA-NHM[9]を数値モデルとして使用した。
JMA-NHM は気象研究所/数値予報課統一非静力学モデル(MRI/NPD-NHM)を基にしたモデルであり、メソ数値モデルシステムの現業モデルとして採用されている。このモデルは静力学近似を用いていないため細かい水平解像度を要求する現象の再現が可能である。また、雲の微物理過程をモデルに含む。これは、相変化や放射に伴う熱収支や雲を構成する微粒子の質量変化によって降水過程だけではなく熱力学や力学過程を変化させるため顕著な降水を伴う気象現象を扱う場合には微物理過程を含むモデルを使用することが必要となる。
本研究で対象とする台風は積乱雲の集合体であり、静力学近似を使用することは適切ではない。さらに、台風は激しい降水を伴う気象現象であるため雲物理過程を含むモデルを使用することが望ましい。この 2 点から非静力学モデルを用いることが適当である。
JMA-NHM の設定は表 1 に示す。
表 1 JMA-NHM の設定
本研究では以下の 3 つの条件で実験を行った。
・EI-EB(era)
初期値 ERA、境界値 ERA
・EI-JB(era_bc_jra)
初期値 ERA、境界値 JRA
・JI-JB(jra)
初期値 JRA、境界値 JRA
ERA と JRA は実験で使用する水平解像度 2km と比べて粗いため、水平解像度を 30km(201×171 格子)→10km(481×391 格子)→2km(1501×1001 格子)へとダウンスケーリングした。
各ダウンスケーリングの際にスピンアップとして 3 時間ずつ計算
時間をずらしている。
積雲対流パラメタリゼーションとして水平解像
度が 30km と 10km の計算をする際にはKain-Fritsch 法を用いた。対流パラメタリゼーシ
ョンは解像度が粗いモデルで表現することが出来ダウンスケールシミュレーションにおける台風の再現性について

台風 Choi-wan（2009）
の事例解析

— 5 —

ない雲を仮想的に与えて計算をする手法である。しかし、台風の強度はアイウォール内部の現象(e.g.,Eyewall Replacement Cycle、2 重眼構造)の影響を受ける[4]ためメソ渦を表現することが望ましい。また、積雲パラメタリゼーションを用いずにメソ渦を再現するためには水平解像度を 2.5km 以
下にすることが求められる[10]。よって、水平解像度 2km の計算では雲物理過程のみを用いて計算を行った。

2.3 MPI(Maximum Potential Intensity)
台風の潜在的な強度を評価する方法として MPI[11][12]を用いた。計算式は、
2
m

V 

(Ts  T0 )C k (k 0*  k a )Ts C DV2 
p c  p m exp  m 
 2 Rd Ts 

m

(1)

(2)

である。また、式中のパラメータについては、𝑉𝑉𝑚𝑚 は最大接線風速、𝑇𝑇𝑠𝑠 は海面温度、𝑇𝑇0は台風の温度、
𝐶𝐶𝑘𝑘 ⁄𝐶𝐶𝐷𝐷 は熱の交換係数、𝑘𝑘 ∗ 0は海面のエンタルピー、𝑘𝑘0は大気のエンタルピー、𝑃𝑃𝑐𝑐 は中心気圧、𝑃𝑃𝑚𝑚 は最大風速半径での気圧、𝑅𝑅𝑑𝑑 は気体定数である。
MPI は初期条件から台風の最大可能強度を求める手法であり、内部構造に左右されず強度を求めることが出来る点でメリットがある。一方、台風は成長の過程で海面を混合させ、海面温度を低下させるため成長を抑える効果がある[5]。また、海面から供給される熱とアウトフローとして放出される熱の差によって生じるエネルギーと、地表面の摩擦による消失エネルギーが等しくなるときに最大可能強度としているため、強度を過大評価する傾向がある点に考慮する必要がある。

3. 結果
3.1 構造図 1 TRMM の観測値(左図)と計算結果(EI-EB(中央図)と JI-JB(右図))
TRMM は 2009 年 9 月 15 日 23:20UTC、
計算結果は 2009 年 9 月 15 日 23:00UTC のデータを使用

再現性を確かめるために TRMM(Tropical Rainfall Measuring Mission)の降水データと計算結果を比較する(図 1)。図 1 から EI-EB ではアイウォールの顕著な降水やレインバンドを再現しているのに対して JI-JB では渦の再現性が悪い。また、JI-JB は強い降水を再現できていない。この
結果から、Choi-wan(2009)のケースでは降水分布に関しては EI-EB の再現性が高い。

— 6 —

SENAC Vol. 46, No. 1（2013. 1）

3.2 進路
台風の経路を図 2 に示す。予報時間は 72
時間である。計算結果から EI-EB の結果が気象庁ベストトラックと同方向に進路をとる。
しかし、中心からの誤差では常に 50km から150km の誤差を持ち、進行速度がベストトラックと比べて速いことが分かる。また、JRAを境界値とした EI-JB と JI-JB はマリアナ諸島に接近後、ベストトラックに比べて相対的に北向きの進路をとる。この結果から、本事
例では台風の進路は境界値に依存する。
図 3 は 2009 年 9 月 13 日 06:00UTC におけるERA と JRA の動径方向の風速である。
JRA は第2 象限に北西方向の強い風速を持つ。一方、
ERA は第 1 象限に南西方向の強い風速を持つ。
計算結果から境界値が ERA の EI-EB は境界値をJRA とした EI-JB と JI-JB と比較して南のルートをとる点から計算開始時の流れに依存している。この結果から、台風は大規模場の流れを指向流として移動するため、進路は境界値に依存したと考えられる。

図 2 台風 Choi-wan(2009)の経路図
計算結果は 1 時間毎、ベストトラックは
6 時間毎のデータをプロット

図 3 風速の動径方向成分(JRA(右図)、ERA(左図))
赤色が中心から離れる方向、青色が中心に向かう方向

3.3 強度
図 4 は台風の強度(最大接線風速、
最低気圧)である。
計算時間内で最も低い気圧は EI-EB で 954.8hPa、
EI-JB で 961.0hPa、
JI-JB で986.2hPa となった。
最大風速については EI-EB は 43.9m/s、
EI-JB は 40.7m/s、
JI-JB は 27.8m/s である。
最大接線風速及び最低気圧は EI-EB で最もベストトラックに近い値となる。
EI-EB と同じ初期値を使用した EI-JB についても EI-EB と同じ強度変化をしているが計算時間 30 時間
目から乖離し、計算時間後半では 6hPa 程度の差が生じた。JI-JB については計算開始から発達が見られなかった。この結果から台風の強度は初期値に依存することが明らかになった。
強度についてベストトラックと比較するとすべての実験結果で大きな差が生じた。計算を行った初期場が発達できる環境場であったか調べるために MPI を使用する。MPI の結果と EI-EB と JI-JB の最ダウンスケールシミュレーションにおける台風の再現性について

台風 Choi-wan（2009）
の事例解析

— 7 —

大風速、最低気圧を表 2 に示す。MPI の結果から初期場は発達が可能であることが分かる。また、ERAと JRA では初期場の発達に大きな違いがないことが分かる。従って、急発達を対象とした本事例では環境場よりも台風の初期渦の再現性を高めることが重要であると示唆される。

図 4 最低気圧(右図)と最大接線風速(左図)
計算結果は 1 時間毎、ベストトラックは 6 時間毎のデータをプロットした。また、横軸は 2009 年 9 月 13 日 12:00UTC(time=1h)から 2009 年 9 月 16 日
12:00UTC(time=73h)
表 2 MPI と EI-EB(ERA)、JI-JB(JRA)の結果の比較

4. まとめERA-Interim と JRA25/JCDAS の 2 つの再解析データを初期値と境界値として JMA-NHM を用いて台風
Choi-wan(2009)の再現実験を行った。本事例では進路と強度で ERA を使用した場合の方がベストトラック(実況監視データ)に近かった。特に降水分布は衛星データと比較的よく一致した。また、初期値と境界値の組み合わせを変えた実験から、領域モデルを使用して台風の数値実験をする際には、進路は境界値により強く依存することが分かった。台風の進路は比較的大規模な周囲の風を指向流として感じているためだと考えられる。これに対して、台風の強度の再現には、境界値より初期場の方が重要であった。MPI(最大可能強度)は、JRA と ERA では違いは大きくはなかった。従って、急発達の 1～2
日前を初期条件とする今回の実験の場合は、初期渦の構造が台風強度の再現にとってより重要である
ことを示している。もちろん、数値モデルについても、雲物理過程や大気境界層などまだ課題は多い[13]。今後事例を重ねて数値モデルの問題点を洗い出し、数値モデルを改良していく必要がある。
5. 謝辞
気象庁より気象庁非静力学モデル(JMA-NHM)を貸与して頂いた。また、本研究は東北大学サイバーサ
イエンスセンターを利用することによって実現することが出来た。ここに謝意を表する。

— 8 —

SENAC Vol. 46, No. 1（2013. 1）

参考文献[1]Elsberry, R. L., T. D. B. Lambert, and M. A. Boothe, : Accuracy of Atlantic and Eastern North
Pacific Tropical Cyclone Intensity Forecast Guidance. Wea. Forecasting, 22, 747-762, 2007[2]Iwasaki, T., H. Nakano, and M. Sugi, : The performance of typhoon track prediction modelwith cumulus parameterization. J. Meteor. Soc. Japan, 65, 555-570, 1987
[3]Yamaguchi, M., R. Sakai, M. Kyoda, T. Komori, and T. Kadowaki, : Typhoon Ensemble Prediction
System Developed at the Japan Meteorological Agency. Mon. Wea. Rev, 137, 2592-2604, 2009[4]Yamaguchi, M., T. Nakazawa, and K. Aonoshi, : Tropical cyclone track forecastsusing JMA modelwith ECMWF and JMA initial conditions. Geophys. Res. Lett, 39, L09801, doi:10.1029/2012GL051473,
2012[5]Chen, H., D. Zhang, and J. Carton, : On the rapid intensification of hurricane Wilma(2005).
Part Ⅰ: Model prediction and structural changes. Wea. Forecasting, 26, 885-901, 2011[6]Wada, A., : Numerical study on the effect of the ocean on tropical-cyclone intensity andstructural change. Atmospheric Model Applications, In Tech, 43-68, ISBN 979-953-307-335-3,
2012[7]Onogi, K., J. Tsutsui, H. Koide, M. Sakamoto, S. Kobayashi, H. Hatsushika, T. Matsumoto,N. Yamazaki, H. Kamahori, K. Takahashi, N. Mannoji, and R. Taira, : The JRA-25 Reanalysis, J.
Meteor. Soc. Japan, 85, 369-432, 2007[8]Dee, D. P., S. M. Uppala, A. J. Simmons, P. Berrisford, P. Poli, S. Kobayashi, U. Andrae,
M. A. Balmaseda, G. Balsamo, P. Bauer, P. Bechtold, A. C. M. Beljaars, L. van de Berg, J. Bidlot,
N. Bormann, C. Delsol, R. Dragami, M. Fuentes, A. J. Geer, L. Haimberger, S. B. Healy, H. Hersbach,
E. V. Holm, L. Isaksen, P. Lallberg, M. Kohler, M. Matricardi, A. P. Mcnally, B. M. Monge-Sanz,
J.-J. Morcrette, B.-K. Park, C. Peubey, P. de Rosnay, C. Tavolato, J.-N. Thepaut, and F. Vitart,:
The ERA-Interim reanalysis: configuration and performance of the data assimulation system. Q.
J. R. Meteorol. Soc, 137, 553-597, 2011[9]Saito, K., J. Ishida, K. Aranami, T. Hara, T. Segawa, M. Narita, and Y. Honda,: Nonhydrostatic
atmospheric models and operational development at JMA. J. Meteor. Soc. Jpn, 85B, 271-304, 2007[10]Noda, A., and H. Niino, : Critical grid size for simulating convective storms: A case studyof the Del City supercell storm. Geophys. Res. Lett, 30, 1844, doi:10.1029/2003GL017498, 2003
[11]Emanuel, K., : An air-sea interaction theory for tropical cyclones. Part I. J. Atmos.
Sci., 42, 586-604, 1986
[12]Emanuel, K., : Sensitivity of tropical cyclones to surface exchange coefficients and arevised steady-state model incorporating eye dynamics. J. Atmos. Sci., 52, 3969-3976, 1995
[13]Sawada, M., and T. Iwasaki,: Impacts of Evaporation from Raindrop on Tropical Cyclone. Part
I: Evolution and Axisymmetric Structure. J. Atmos. Sci., 67, 71-83, 2010

— 9 —

SENAC Vol. 46, No. 1（2013. 1）［共同研究成果］

ヤマセ研究のための再解析・気候モデルデータのダウンスケーリング
島田照久

沢田雅洋* 岩崎俊樹

東北大学大学院理学研究科*( 現在 東京大学大気海洋研究所)

1.

はじめに

気候変動の影響が顕在化するにつれて、気候変動研究は、気候変動そのものの解明に取り組むという本来の目的に加えて、気候変動の影響評価に貢献する必要性があると強調されるようになってきている。気候変動の予測には不確実性が伴うが、気候変動の起こりうる範囲を考慮したう
えで、気候変動の影響評価が求められるようになっているのである。このような影響評価は、温暖化適応策や気候変動に起因する様々なリスク管理を推進する上で重要な基礎情報となる。さらに、気候変動の影響評価は、地域レベルで求められるようになっており、それに応える科学的知見が必要である。このような社会的要請に応えるための方法の一つが、気候モデルの力学的ダウ
ンスケーリング(数値気象モデルを用いた再計算によるデータの詳細化のこと。以下、ダウンスケーリングという)である。つまり、低解像度の気候モデルによる大規模場の計算結果をもとに、高解像度の地形等を入力することで下部境界の状態に大きく依存した小さな現象を解像し、気候予測の結果に付加価値を付けるのである。気候モデルの予測から、地域レベルでの気候変動の予測と影響評価を行うためにダウンスケーリングに関する様々なプロジェクトが実施されている[1-4]。
本研究では、気候モデルのダウンスケーリングによって、東北地方の夏季気候に重要な役割を果たすヤマセとその将来変化の理解を進めることを目的としている。ヤマセとは、夏季に間欠的に発達するオホーツク海高気圧から北日本の太平洋側に吹きつける冷たい東風のことである。背の低い(<1000m)下層の冷気層は、逆転層を伴って安定成層しており、地形の影響を大きく受ける。
そのため、下層雲や霧が低地を覆い、放射冷却により低温を維持する。一方で、オホーツク海高
気圧の消長に合わせて、ヤマセの発生頻度や低温の程度は顕著な経年変動を起こす。ヤマセは、
地域気象・気候、そして社会活動(農業、海洋安全、航空安全等)に影響を与えるため、ヤマセの理解は、特に東北地方の冷害の歴史[5]を背景に、社会的に重要な課題でありつづけている。その一方で、気候変動に伴うヤマセの将来変化を予測し、ヤマセの局地気候への影響の理解をさらに進めることが重要な課題となってきている。しかし、温暖化シミュレーションを行うほとんどの気候モデルの空間解像度は 100km より粗く、気候モデルではヤマセにとって重要な役割を果たす
北日本の地形(脊梁山脈等)を十分に解像することはできていない。そこで、私達は、再解析デー
タや気候モデルデータのダウンスケーリングによって、長期間にわたって地域スケールの気象・気候解析ができるデータセットを作成し、ヤマセとその将来変化について研究を進めている[2]。
本稿では、これまでの取り組みの概要について述べる。

2.

ダウンスケーリング

気象庁・気象研究所の数値気象モデル(非静力学モデル JMA-NHM [6])を用いて、北日本全体(東北地方と北海道)を含む領域について、10km 解像度までダウンスケーリングする (図１)。北日本
全体を計算領域に含めることによって、ヤマセの影響が顕著な北日本の太平洋側だけに着目する

— 10 —

SENAC Vol. 46, No. 1（2013. 1）のではなく、北日本の太平洋側と日本海側の気候の対照性を明らかにすることができる。また、
今回は長期間の気候データセットを作成することが目的であるので、ダウンスケーリングする解
像度は、計算時間とのトレードオフで決める必要がある。今回選択した 10km という解像度は、北日本全体の長期積分(現在気候から将来気候まで)に必要な計算時間が妥当な範囲でありながら、ヤマセにとって重要な地形(脊梁山脈、山地と平野、海峡や地峡、半島等)を解像し、地域スケー
ルの解析が可能となる解像度である。実際、20-30km 解像度では、北日本の脊梁山脈全体は表現できるものの、平野の形状再現や海峡の解像が難しく、標高の過小評価が著しい。鉛直方向には
38 層設定し、１時間間隔でデータを出力する。データ作成の対象期間は、各年の 6-8 月である。
今回、作成したデータセットは次の通りである。まず、再解析データを境界条件とする現在気候データを作成した(1979-2011 年)。用いたデータは、再解析データ JRA-25(1.25 度格子)[7]と0.25 度格子の海面水温[8] (1979-1981 年は、COBE-SST[9]を用いた)である。10km にダウンスケーリングを行うために、30km 解像度の計算領域を介し、2 回のネスティングを行う。次に、気候
モデルデータをダウンスケーリングした。今回用いたのは、気象研究所のグループが開発した水平解像度約 20km (TL959)鉛直 60 層の超高解像度全球大気モデル (MRI-AGCM) によるタイムスラ
イス実験データである。現在気候(1979-2003 年)，将来気候(2075-2099 年)の各 25 年間を解析対象とする。温室効果気体の濃度は、SRES A1B シナリオに基づいている。下部境界条件の海面水温は、現在気候実験では、英国ハドレーセンターの HadISST データセットを用いている。将来気候実験については、第 3 次結合モデル相互比較プロジェクト(CMIP3)の 18 の大気海洋結合モデルの平均から作成されており、線形トレンドを除去した後の経年変動については、現在気候の経年変動に置き換えられている[10]。以上のようにして作成したデータセットは、東北地方の地域特性を考慮できる空間解像度(10km)と日変化を解析できる時間解像度(1h)を有し、ヤマセの経年変動を扱える長期間(25,33 年)の均質な(同じモデル、スキーム、計算領域)データとなり、このような特徴を持つデータセットは初めてである。

図１ モデルの計算領域(外側が 30km 解像度、内側が 10km 解像度)。
数値気象モデルによるデータ作成は、東北大学サイバーサイエンスセンターのスーパーコンピ
ュータ SX-9 で行った。各年の 6-8 月の 3 ヶ月分の JRA-25(MRI-AGCM)の 2(1)段階のダウンスケー
リングにかかる時間は、ノード内の 8CPU(ジョブクラス p8)を用いた MPI による並列処理で、約25(12)時間である。この計算を JRA-25 については 33 年分、MRI-AGCM については計 50 年分実施した。このような長期間の気候データセットの作成は、スーパーコンピュータを利用することで可能になった。

3.

解析事例(1)ダウンスケーリングの効果2

ヤマセ研究のための再解析・気候モデルデータのダウンスケーリング— 11 —

まず、空間解像度の観点からダウンスケーリングの効果を見てみる。ヤマセを特徴づけるイン
デックス(ヤマセインデックス)[11]を用いて、ヤマセインデックスが１標準偏差を越える時(つまり、ヤマセが卓越する時)の 6-8 月の地表気温の気候平均と偏差を図 2 に示す。ここでは、稚内と仙台の気圧差で定義され、ヤマセ卓越時の北高型の気圧配置をよく表すヤマセインデックス[12]を用いた。再解析データ JRA-25(図 2 左)の 1.25 度格子の解像度では、オホーツク海からの冷気が日本列島とユーラシア大陸の東側に沿って舌状に伸びていることがわかる程度であるが、10km
場(図 2 右)では、北海道から北東北にかけて山地の東側で低温偏差が大きいことがわかる。つまり、10km の解像度のデータでは、北日本の主要な地形を考慮した局地気候が解析可能であると言える。一方で、時間解像度の違いを見てみる(図 3)。ダウンスケーリングによって計算された 1
時間毎の八戸の気温は、気温の日変化とともに、ヤマセ卓越時(下層雲量が多いときに対応)に気
温の日振幅が減少する様子が再現されている。このような特徴を、6 時間間隔の JRA-25 データから解析することは難しい。つまり、ダウンスケーリングにより時間解像度も改善され、ヤマセに起因する日周期の変動を考察することができる。例えば、日変化の周期帯のウェーブレットパワ
ーが、ヤマセのよい指標となることを示した[11]。

図 2 ヤマセ卓越時の気候平均の気温分布(コンター)と平年偏差(カラー) (6-8 月,1979-2011 年)。
(左)JRA-25 と(右)10km ダウンスケーリングデータ。

図 3 八戸の気象官署に対応する格子の 10km データの 1 時間毎の気温(灰色実線)と JRA-25 の６
時間毎の気温(赤点)(2003 年)。下層雲量を合わせて示す。
(2) 気温の変動
現在気候の再現性と将来の気温上昇を確認するために地表気温をデータセット間で比較した。
図 4 には、八戸について、各データセットのヒストグラムと、観測値に対する Q-Q プロットを示す。現在気候のデータセット(JRA-25 と MRI-AGCM)は観測に対しやや高温のバイアスを持つが、分3

— 12 —

SENAC Vol. 46, No. 1（2013. 1）布形はほぼ一致することが確認できる。将来気候の気温は、夏季平均では現在気候よりも 3.2℃
上昇するが、将来気候の気温のヒストグラムの全体の形状は現在気候のものに近い。高温バイア
スの原因の一部は、MRI-AGCM で用いられた海面水温の解像度の問題、雲物理過程の解像度依存性にあることがわかっている。
各データセット間で気温の頻度分布には違いが見られるものの、ヤマセに伴う気温の変動パターンを検証してみると、各データセット間でよい一致が見られる。図 5 には、各データセットについて、気象官署の観測点における気温の主成分解析による第 3 モードの空間パターンを示す。
北日本全体の気温変動を表す第 1 モード(寄与率 80%)、南北変動パターンを示す第 2 モード(寄与率 7%)に加えて、北日本の山地を境にした太平洋側と日本海側の変動パターンを示す第 3 モード(寄与率 3%)が各データセット間に共通してみられる。このモードは、ヤマセ卓越時に特に強調される[11]。この結果は、現在気候の再現性の良さを示すとともに、ヤマセ卓越時の気温変動パターンが将来気候データにおいても見られることを示す。ただ、MRI-AGCM の結果では、福島から茨城にかけては、日本海側と同符号になっており、気候モデルではヤマセによる冷気の南下の表現が弱いことが示唆される。

図 4 八戸における気温のヒストグラムと観測に対するモデルの気温の Q-Q プロット(6-8 月)。
気象官署における観測(灰色)、JRA-25 からのダウンスケーリングデータ(青)、MRI-AGCM からの現在気候(赤)と将来気候(緑)のダウンスケーリングデータ。現在気候については 1979-2003 年で共通で、将来気候は 2075-2099 年である。

図 5 気象官署の観測地点における気温の主成分解析の第３モードの空間分布(6-8 月)。
左から、気象官署の観測、JRA-25 からのダウンスケーリングデータ、MRI-AGCM からの現在気候と将来気候のダウンスケーリングデータを用いた結果を示す。

4

ヤマセ研究のための再解析・気候モデルデータのダウンスケーリング— 13 —(3) ヤマセの将来変化
ヤマセが卓越する頻度が現在気候と将来気候でどのように違うかを、ヤマセインデックスを用いて検証した(図 6)。ここでも、ヒストグラムと観測に対する Q-Q プロットを示す。ヒストグラ
ムの分布は各データセット間でほぼ一致し、極値にわずかな違いがみられるものの変動幅がほぼ同じであることがわかる。実際に、ヤマセ卓越時の海面気圧を比較してみる。図 1 と同様に、ヤマセインデックスが、１標準偏差を越えるときのコンポジット場を作成した(図 7)。海面気圧の分布は、MRI-AGCM と JRA-25 からダウンスケーリングした現在気候、MRI-AGCM からダウンスケー
リングした現在気候と将来気候は、ともに北高型の気圧配置を示す。上記の結果は、MRI-AGCM の
現在気候の再現性の良さを示すとともに、気温上昇した将来気候においても、北高型の海面気圧分布が現在気候と同様に出現することを示す。つまり、ヤマセは将来気候においても現在気候とほぼ同じ頻度と強度で発生していると言える。ただし、将来気候と現在気候の差を詳しく見ると、将来気候においては、北日本付近では、約 1hPa の気圧傾度の弱化が示される。一方、地表気温分
布についても、将来気候の平年偏差にしてみると、図１右にみられるようなヤマセ卓越時の気温分布が出現することがわかった。しかし、地形の東側の低温偏差は、現在気候に比べ 0.2℃ほど小さくなっていることを確認しており、ヤマセの弱化を示唆する。

図 6 ヤマセインデックス(稚内と仙台の海面気圧差)のヒストグラムと観測に対するモデルのQ-Q プロット(6-8 月)。気象官署の観測(灰色)、JRA-25 からのダウンスケーリングデータ(青)、MRI-AGCM からの現在気候(赤)と将来気候(緑)のダウンスケーリングデータ。

図 7 ヤマセ卓越時の海面気圧のコンポジット(コンター)と各データセットの気候平均からの偏差(カラー)。左から、JRA-25 からのダウンスケーリングデータ、MRI-AGCM の現在気候と将来気候からのダウンスケーリングデータ。右端は、MRI-AGCM の将来気候と現在気候の差である。

5

— 14 —

4.

SENAC Vol. 46, No. 1（2013. 1）

まとめと今後の方針

本稿では、東北地方の夏季気候に重要な役割を果たすヤマセの将来変化を解析するために、再解析データと気候モデルデータから 10km にダウンスケーリングしたデータセットの概要と解析結果を報告した。ダウンスケーリングにより、北日本の主要な地形を解像でき、日変化が表現できるデータセットを現在気候と将来気候について作成することができた。そして、MRI-AGCM の将
来気候データでは、地球温暖化によって気温上昇した後も、将来気候の平年偏差でみるとヤマセが出現していると言え、下層大気に対する地形の影響は現在気候のものと同様であることがわかった。今後は、ヤマセの影響の地域性や顕著なヤマセ事例について解析する予定である。また、今回作成したデータセットは、その長所を活かして、例えば、農業気象分野における気候変動の影響評価(生育予測モデルへの適用等)への応用が期待される。
一方で、気候モデルによる将来気候の不確実性を考慮するために、別の気候モデルのダウンス
ケーリングを行うことを予定している。さらに、多数の気候モデルの中で、ダウンスケーリングに用いた気候シナリオと気候モデルの位置づけを把握することが重要である。ヤマセの再現性においても、気候モデルの再現性の差が大きいことが示されている[13]。ここでは、最新の気候モ
デルデータを用いて、オホーツク海南部の領域(東経 140-155 度、北緯 45-50 度)の平均海面気圧(オホーツク海高気圧の消長の指標となる)について、7 月の統計(2075-2099 年)を気候モデルごとに比較してみる(図 8)。これらの気候モデルは、気候変動に関する政府間パネル(IPCC)の第 5 次報
告書に用いられる、第 5 期結合モデル相互比較計画(CMIP5)の気候モデルのうち、本稿作成時に入手 可 能 な も の で あ る 。 こ こ で は 、 CMIP5 に 採 用 さ れ て い る 気 候 変 動 予 測 シ ナ リ オ (RCP:
Representative Concentration Pathways)のうち、RCP4.5 のデータを用いた。気候モデル間で、平均値の差は最大約 7hPa にもなり、変動幅の違いも大きいことがわかる(RCP8.5 でも同様な傾向を示す)。MRI-AGCM は、この中ではオホーツク海高気圧の気圧が高い方から 11 番目に位置する。
この位置は、現在気候の比較においても同じで、かつ再解析データ JRA-25 の結果に最も近いことを確認している。現在、これらの気候モデルの比較や解析利用が世界中で進んでいる。今後、各モデルの特徴(現在気候の再現性や気候感度)が明らかになるにつれて、ダウンスケーリングに利用した気候モデルの位置づけがより明確になってくると考えられる。

図 8 CMIP5 の RCP4.5 シナリオを用いた気候モデルと MRI-AGCM(図中の MRI20km)から求めた 7
月平均のオホーツク海南部の領域平均海面気圧の 2075-2099 年の統計。黒丸と棒が平均値と±１標準偏差、灰色の点が、最大値と最小値を示す。左から平均値の大きい順に並べた。

謝辞
本研究は、東北大学サイバーサイエンスセンターのスーパーコンピュータを利用することで実6ヤマセ研究のための再解析・気候モデルデータのダウンスケーリング— 15 —

現することができた。また、研究にあたっては同センター関係各位から有益なご指導とご協力をいただいた。気候モデルデータは、気象研究所から提供いただいた。本研究は、文部科学省の委託事業「気候変動適応研究推進プログラム」に採択されている課題「東北地域のヤマセと冬季モンスーンの先進的ダウンスケール研究」(代表 岩崎俊樹)の一環として実施した。

参考文献[1] 環境省環境研究総合推進費 S-8「温暖化影響評価・適応政策に関する総合的研究」
http://www.nies.go.jp/s8_project/index.html[2] 気候変動適応研究推進プログラム http://www.mext-isacc.jp[3] ENSEMBLES project http://www.ensembles-eu.org[4] North American Regional Climate Change Assessment Program (NCARCCAP)
http://www.narccap.ucar.edu/index.html[5] 卜蔵建治, 2001: ヤマセと冷害: 東北稲作のあゆみ, 成山堂書店.
[6] Saito, K., J. Ishida, K. Aranami, T. Hara, T. Segawa, M. Narita, and Y. Honda, 2007:
Nonhydrostatic atmospheric mod- els and operational development at JMA. J. Meteor. Soc.
Japan, 85B, 271–304.
[7] Onogi, K., J. Tsutsui, H. Koide, M. Sakamoto, S. Kobayashi, H. Hatsushika, T. Matsumoto,N. Yamazaki, H. Kamahori, K. Takahashi, S. Kadokura, K. Wada, K. Kato, R. Oyama, T. Ose,N. Mannoji and R. Taira, 2007: The JRA-25 Reanalysis, J. Meteor. Soc. Japan, 85, 369-432.
[8] Reynolds, R. W., T. M. Smith, C. Liu, D. B. Chelton, K. S. Casey and M. G. Schlax, 2007:
Daily High-resolution Blended Analyses for sea surface temperature. J. Climate, 20,5473-5496.
[9] Ishii, M., A. Shouji, S. Sugimoto, and T. Matsumoto, 2005: Objective Analyses of
Sea-Surface Temperature and Marine Meteorological Variables for the 20th Century using
ICOADS and the Kobe Collection. Int. J. Climatol., 25, 865-879.
[10] Murakami, H.and B. Wang, 2010: Future Change of North Atlantic Tropical Cyclone
Tracks: Projection by a 20-km-Mesh Global Atmospheric Model. J. Climate, 23, 2699–2721.
[11] Shimada, T., M. Sawada, and T. Iwasaki, Indices of cool summer climate in northern
Japan: Yamase indices, in submission.
[12] Kanno, H., 2004: Five-year cycle of north-south pressure difference as an index ofsummer weather in northern Japan from 1982 onwards, J. Meteor. Soc. Japan, 82, 711-724.
[13] Endo, H., 2012: Future changes of Yamase bringing unusually cold summers overnortheastern Japan in CMIP3 multi-models. J. Meteor. Soc. Japan, 90A, 123-136.

7

— 16 —

SENAC Vol. 46, No. 1（2013. 1）

SENAC Vol. 46, No. 1（2013. 1）［共同研究成果］— 17 —

— 18 —

SENAC Vol. 46, No. 1（2013. 1）

Convergence Property of Flexible GMRES for the Method of Moments
Based on a Volume-Surface Integral Equation— 19 —

— 20 —

SENAC Vol. 46, No. 1（2013. 1）

Convergence Property of Flexible GMRES for the Method of Moments
Based on a Volume-Surface Integral Equation— 21 —

— 22 —

SENAC Vol. 46, No. 1（2013. 1）

Convergence Property of Flexible GMRES for the Method of Moments
Based on a Volume-Surface Integral Equation— 23 —

— 24 —

SENAC Vol. 46, No. 1（2013. 1）

Convergence Property of Flexible GMRES for the Method of Moments
Based on a Volume-Surface Integral Equation— 25 —

— 26 —

SENAC Vol. 46, No. 1（2013. 1）

Convergence Property of Flexible GMRES for the Method of Moments
Based on a Volume-Surface Integral Equation— 27 —

— 28 —

SENAC Vol. 46, No. 1（2013. 1）

— 29 —

SENAC Vol. 46, No. 1（2013. 1）

Fortran スマートプログラミング	 S ȉʑł

v{®ÈÖº}ÅÓ§ÏÊ~k_ SǪİ ûųƖĨœŘǦŧŘɨɼǍɼŕŧŘǿȉʏłz !EHJH7D ÅÓ§ÏÊŋƯǲƩű{qȥ`ƠǽkʋȉʐłzªÄÑÖµÔ{ĉđĝ~w^yɊƤkksʌƜĀȿȌȿȌǃ¬ÉÍÒÖ¬ÎÔǩÅÓ§ÏÊƩfsǹɏhhzzĥĒzmʌƜĀȿȌ{ʋ¨ÔÂÍÖ³ŋƯġõz]TʆɡƜĀǙȌU{TœŝɫËÌÐɋƩdUĖǩmcàǳǲzʋq~TĉđĝÔ³ÖÃÖ®UĞ`ĐǦřșmbzmʌkbkʋ!EHJH7D ~hê~ƿY}ƞǑcǩƂjy^mʌqß~ʋÅÓ§ÏÊƩfƉɯǶ^sʋËÔ¸¼Ô®ŝƥ~ksʋ¨ÔÂÍÖ³ġõȕbfėŹmsƩűcĺy^mʌƪȗłz]çłʋhßbùĖ}
^fwbȖèkmʌ÷`ʋ
TɩēǙȌUö`ʋƜĀɸĶ×wŐƜzìȲkʋɸĶȶȔɯǙȌʋɸĶ{ɸĶǙȌŶzɀɜmh{czdmʌsʋŐƜŜȾƌŴŶʋƞŖēŐƜ}|~w^yȖèkmʌÅÓ§ÏÊõ~ƅydsʋh_}uv{ɤtƞǑövyʋÅÓ§ÏÊj~®ÈÖº~kyk_ʌsʋƜĀȿȌm{d~ʋʆɡÃÖÐ ŐƕŒÿɬȿȌ}|ʋȨĒz×bõƆmɻk^ÅÓ§ÏÊcŻȶ~}h{c]mʌŮ^}h{~ʋhŒfÔ³Ö¾¶ºb´ÔÓÖ»Ĳȧ}ªÄÑÖµÔÏÄÏÐ{kyċɮjy^zʋƪŷ~!EHJH7D bĖǩzdȊȦcaĢÏÄÏÐ^fwbȖèkmʌ1.	
  知っておくと便利な文法	 ƯȍzʋȺ`yaf{ùĖ}ƩűʋhzŋƯǲƞǑzɀɜmh{czd}^ʋ¨ÔÂÍÖ³ȕb}ġõƎŚ~w^yɊƤkmʌ

1.1	
  継 続 行 と 複 文 	 ȿȌűcɽŪ~ɬfyʋõƆ~övy^ ¹³Ô»ǁūɓ`{ɋxf}mʌsʋ¨ÔÀÏ~vyʏȱ~ƩgƞŖƜ~ėɳc]zʋqz ÏÖ~}h{]mʌqhzʋʏȱƞɟßzƙȱkyʋȵƜȱ~ĒĜkyƩfh{czdmʌh{dʋǅȱ~Ȝȝm{^_ƂżǽmĪ{kyʋȱƮ~TUƞŖƩdmʌ÷`ʋ
FH?DJ 7BF>7 8;J7 =7CC7 :;BJ7 ;FI?BED P;J7 ;J7 ?EJ7 A7FF7 B7C8:7 CK{^_ʏȱʋ
FH?DJ 7BF>7 8;J7 =7CC7 :;BJ7 ;FI?BED  P;J7 ;J7 ?EJ7 A7FF7 B7C8:7 CK{ĒĜkyƩfh{czdmʌȜȝȱôȱ~svyb^oʌ
FH?DJ 7BF>7 8;J7 =7CC7  :;BJ7 ;FI?BED  P;J7 ;J7 ?EJ7  A7FF7 B7C8:7 CK{Ʃ^yķlzmʌƪŷȱ~TUëĞm{ ÏÖ~}zǒƂkyÚj^ʌ
ɞ~ʋʏȱ~ȵƜƞƩfh{ĲȧzmʌhTȵƞU{^^mʌʐþíÙƞʏȱzƩf~ʋƞ{ƞĒɺmɀĴ{kyTUƞŖƩdmʌ÷`ʋ

— 30 —

SENAC Vol. 46, No. 1（2013. 1）

M	
 	
 	
 N	
 	
 	
 O	
 	
 	
 
~]|ƧdfyaxbkʊqriʉȳƜ~ôǧf~]{Ǹ\êćƜƧdŋĴ|ɱŘiwØh\ʊÃÑ¥ÍÈʍȯxÕu~ŗȗiqğóȰk~aŉƭxkʊʍȯ|ȳƚ~ƜƧdyʉğó~ǒaȵ^|dd{~xʉŐǧi{\ƞaȩ\yŽ\kʊ	 	  \Z(Vu`	 fxŎƚɧđ~Śȼ|ôtw\qŚȼƜʉ	 ņƌŘ	 Ŏƚ  	 Ŏƚ ʉ

	 y\]Ŵůxiqʊffxʉ
SņƌŘT|S>CI:<:GTy`ʉ
SG:6AT~]{ƚþņȾɚiʉSŎƚT|ŎƚĶ`ʉɧđĶyo~ȴȒƚȾɚikʊf~ŚȼƜʉ·Ô±ɿň|_e
ÉÊÎ~Ǻúy\]ƀĺ[kʊ	
 hwʉ DGIG6C `ŚȼƜ~ȾɚŴůaƊŲhiqʊƊŲŚȼƜô]yʉÉÊÎǺúkyĵƥ|ĒƪþêćiqʉÉÊÎ~ǟžƌŘkfyaxbkʊƊŲŚȼƜëØ~Ŵůxkʊ	 ņƌŘʕ ŢžʍʉŢžʎʉʖ	 	 Ŏƚ ʕƚþʍʖ Ŏƚ ʕƚþʍʖʉ	
 ffxʉȺ`tfʉS
ʕTySʖ
Tʉf~ÝaǴǫİȥx[y\]ƀĺxôtw\re{~xʉȺ`tfȦñƧ`{\xØh\ʊƊŲŚȼƜôǧkybʉņƌŘɦyŚȼkŎƚɧ
đ~ɭ|¦ÑÒʎüSTƧdŹȴa[kʊqʉSŢžT|ŚȼkŎƚ~ǟžƌŘkq~áȐɆȾɚikʊŢžƚþǴǫiwʉħ|ņƌŘyŎƚ~ɭ|STƧ\
qre~ŚȼƜʉƧ`l|ŚȼiqơƯ~Ƨůyĵjƀĺ|{kʊ	 ŢžƧ`l|ʉħ|ƚþêćiqŴxŚȼkyʉo~Ŏƚ|ƌŘiqƚþêćiwʉÃÑ¥ÍÈ~ğóaɬŒkfyƀĺikʊõ^ʉ	 >CI:<:G	 	 >B6M 	
 ?B6M
G:6A	
 	
 MM
	
 NN 	 	 ~]|Śȼkyʉop~Ŏƚ|ƌŘhqþêćiqǠƂxğóaɬŒikʊqr
iʉf~ŚȼƜÝx~ƚþêćÕŮrexkʊ¨ÂÏÔ³ÒÝxƚþêćiqŎƚŚȼiwʉ¦ÔÏkq|ƚþaêćh~x[mʊf~qʉo~ŎƚřȯƜxŎƦ
kyʉo~ŎƦiqȗƳaǆkʊõ^ʉ	 EGD<G6B	
 HI:HI	 	 	 >BEA>8>I	
 CDC:	 	 	
 86AA	 HJ7G	 	 	 86AA	 HJ7G	 	 	 86AA	 HJ7G	 :C9	
 EGD<G6B	
 HI:HI	 HJ7GDJI>C:	 HJ7G	 	 	 >BEA>8>I	
 CDC:	 	 	 >CI:<:G	
 	
 C	
 
	
 	
 EG>CI	
  C	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 ¦ÔÏkq| C ōĜk	
 
	
 	
 C	
 	
 C	
 	
 	
 
:C9	
 HJ7GDJI>C:	 HJ7G	 y\]ÃÑ¥ÍÈxʉÉÒÃÑ¥ÍÈx¨ÂÏÔ³Ò HJ7G aʏŀ¦ÔÏhw\kaʉ¨ÂÏÔ³ÒÝ~ EG>CI Ɯ~ďěʉʍŀǱa ʉʎŀǱa ʉʏŀǱa ʉy{kʊŚȼƜ|_eêćʉÃÑ¥ÍÈɬŒƥ~Ēƪþryȣ^wØh\ʊ	
 hwʉ×Ⱦ~¨ÂÏÔ³Ò~ğóȣ^ybʉÕuǐƀi{e{{\fya[kʊ
1ƭȁxʉƊŲhqŚȼƜ~fySƊŲŚȼƜTyĻxʉơƯ~ņƌŘre~ŚȼƜyĢēikʊ

Fortran スマートプログラミング— 第３回 もっとスマートなプログラムにしよう —— 31 —

ęŀ~¨ÂÏÔ³Ò~ȋxʉÑÔ¡ÏŎƚĳÏÔ³Ò~·Ô±ɿň|ƆŢiw\y\]ɈƢiiqaʉ]şiɄidȼ]yʉ¨ÂÏÔ³Ò~·Ô±ɿň|ʎȀʃ[kʊÕuʉ¨ÂÏÔ³Òa¦ÔÏhqƥǙxÕƥǰ|ǦƄhÉÊÎɿňxʉ]Õuʉ¨ÂÏÔ³
Ò~Ļďi|ɮø{dŨ|ǺúhqÉÊÎɿňxkʊƭȁxʉęȤSÕƥÉÊÎɿňTyĻʉŵȤSŃŘÉÊÎɿňTyĻfy|ikʊơƯ~ŚȼƜxŚȼiqÑÔ¡ÏŎƚʉÕƥÉÊÎɿň|ƆŢikʊÕƥÉÊÎɿňʉ¨ÂÏÔ³ÒĻďkq|ŋƆČśaŎİȥža[~xʉĵj¨ÂÏÔ³Òʎŀ¦ÔÏiqŋĴʉʍŀǱ~¦ÔÏxÑÔ
¡ÏŎƚ|êćiqþaʉʎŀǱ|¦ÔÏiqƥǙxo~ǆtw\yɱmʊ	
 
õ^ʉ	
 
EGD<G6B	
 HI:HI	 	 	 >BEA>8>I	
 CDC:	 	 	
 86AA	 HJ7G	 	 	 86AA	 HJ7G	 :C9	
 EGD<G6B	
 HI:HI	 HJ7GDJI>C:	 HJ7GC	 	 	 >BEA>8>I	
 CDC:	 	 	 >CI:<:G	
 C	
 
	
 	
 G:6A	
 M N	
 
	
 	
 >;	
 C	
 	
 	
 EG>CI	  M N	
 	
 	
 	
 	
 	
 	
  	
  	
 f~ďěþÙŘ	
 
	
 	
 M	
 	
 
	
 
	
 	
 N	
 	
 
	
 
:C9	
 HJ7GDJI>C:	 HJ7G	 ~]{ÃÑ¥ÍÈƧ\qyikʊʍŀǱ~¦ÔÏƜʉ86AA	
 HJ7GxʉÑÔ¡ÏŎƚ M
y N |ʉop yy\]þaêćhkaʉʎŀǱ~¦ÔÏƜʉ86AA	
 HJ7G
řȯiqyb|ʉEG>CI Ɯxďěiq M y N a y|{úɁ{\~xkʊÑÔ¡ÏŎƚ|êćiqþúɁk|ʉŃŘÉÊÎɿň|ƆŢhm{e{mʊƊŲŚȼƜôtwĒƪþêćiqÑÔ¡ÏŎƚʉÕƥÉÊÎɿňx{dʉŃŘÉÊÎɿň|ƆŢikʊƨĒ~¨ÂÏÔ³ÒõʉHJ7G ~Ŏƚ C aʉ¦ÔÏkgy|ʍluōĜiqþďěk~ʉĒƪþ  êćiwŚȼkfyxŃŘÉÊÎɿň|ƆŢhmqqxkʊ	 ƚþêćml|ʉÑÔ¡ÏŎƚŃŘÉÊÎɿň|ƆŢhm|ʉŎƚ| H6K: ŢžƌŘikʊõ^ʉ×Ⱦ~¨ÂÏÔ³Ò HJ7G ëØ~]|ƧbƓ^ʉʎŀǱ~¦ÔÏx yaďěhkʊ	 HJ7GDJI>C:	 HJ7GC	 	 	 >BEA>8>I	
 CDC:	 	 	 >CI:<:G	
 C	
 
	
 	
 G:6A 	 H6K:	
 	
 M N	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 H6K: ŢžƌŘ	
 
	
 	
 >;	
 C	
 	
 	
 EG>CI	  M N	
 
	
 	
 M	
 	
 
	
 
	
 	
 N	
 	
 
	
 
:C9	
 HJ7GDJI>C:	 HJ7G	 Ŏƚ~ĒƪþaƫŘ~ybʉÑÔ¡ÏɧđŃŘÉÊÎɿň|ƆŢhmq\ybʉH6K: ŢžôtwØh\ʊqʉĒƪþêćkŋĴxʉŃŘÉÊÎɿň|ƆŢhmfyȂƹǰ|Ĕǧk~x[ʉǃ~]| H6K: ŢžéĜiwʉŃŘÉÊÎɿň|[fyƢǻiqƞaȩ\yŽ\kʊ	
 2f|ŜiʉÉÒÃÑ¥ÍÈ~ŎƚyÊ«ËÔÏČ~¥ÑÔ½ÏŎƚʉŚȼƜ~Ⱦɚ|``lʉĈwŃŘÉÊÎɿň|ƆŢikʊ3 ¦Ò¾Í|twʉĈw~ÑÔ¡ÏŎƚŃŘÉÊÎɿň|ƆŢhm~a[ʉf~ÃÑ¥ÍÈx]d\dŋĴa[kʊi`iʉƜǏǰ|úɁhw\{\~xk`ʉųw|k bx[mʊ

— 32 —

SENAC Vol. 46, No. 1（2013. 1）>CI:<:G 	
 H6K:	 	 C	 o~è~÷Ĕ{Ţž\du`Ȕæikʊlʉĵņ~ɧđŐƚŚȼkyb~q|ʉ
9>B:CH>DC Ţžaǧƀhw\kʊõ^ʉ Q ~ʎǃĄřƚņɧđ  üǧƀkybʉɞŨ~Śȼxʉ	
 
G:6A	
 6

  	
 7

  	
 8

  	
 9

  	
 :

 	
 

yƧbkaʉ9>B:CH>DC Ţžô^ʉfǃ~]|Ƨdfyaxbkʊ	
 G:6A 	
 9>B:CH>DC

 	
 	
 6 	
 7 	
 8 	
 9 	
 :	
 

k{sʉ9>B:CH>DC Ţž|ɧđ~ŴǠʅǃĄȴȒƚʆƧ\w_eʉŚȼkŎƚ~ðȡ|ʉɧđĶȾɚkre|{kʊŢžȳƚéĜkfyaxb~xʉ9>B:CH>DC Ţ
ž| H6K: ŢžĜ^wŚȼkfyİȥxkʊ	 ]ÕuʉɧđŚȼkyb|÷Ĕ{~aʉE6G6B:I:G ŢžƌŘiqŎƚʉE6G6B:I:G Ŏƚ
xkʊE6G6B:I:G Ŏƚ|Źlþêći{e{mʊõ^ʉ	 >CI:<:G 	
 E6G6B:I:G	 	
 >B6M

	
 ?B6M

	 ~]|Ƨdyʉ>B6M y ?B6M a E6G6B:I:G Ŏƚ|{kʊ	 hwʉɧđŚȼkybʉo~ȴȒƚƛƚŘƚxƌŘi{e{mʊf~qʉɧđ~ɪhŎƦkyb|ʉŚȼiqȴȒƚ|ɮɡiqƚþĈwŎƦkŹȴa[ʉƇɭa``rex{dʉȵȮyiqʉƧbɭɤ^İȥža[kʊõ^ʉ	
 G:6A	
 6  7 	
 	
 	
 	
 	
 	
 
>CI:<:G	
 >	
 
9D	
 >	
 	
  	
  	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 
	
 	
 6>	
 	
 >>	
 
	
 	
 7>	 	
 6>	 
:C99D	
 

aʎ¡Ɔ	
 
aʍ¡Ɔ	
 

y\]ÃÑ¥ÍÈ|_\wʉɧđȴȒƚ~  ʉŚȼƜrex{dʉ9D Ɯ~ȕàþ|ćtw\kʊf~qʉɧđȴȒƚŎƦkybʏ¡ƆŎƦi{e{mʊf~ybʉɧđŚȼ~ȴȒƚ E6G6B:I:G Ŏƚ|êćkŴxǧƀiw_dyʉɧđȴȒƚo~ E6G6B:I:GŎƚxȡb`^fyaxbkʊõ^ʉ×~ÃÑ¥ÍÈǃ~]|ƧbƓ^fyaxb
kʊ	
 >CI:<:G 	
 E6G6B:I:G	 	
 >B6M
G:6A	
 6>B6M 7>B6M	
 
>CI:<:G	
 >	
 
9D	
 >	
 	
  	
 >B6M	 	 	
 6>	
 	
 >>	
 
	
 	
 7>	 	
 6>	 
:C99D	 	
 f~ÃÑ¥ÍÈ{ʉ>B6M |êćkƚþŎƦkrexʉɧđȴȒƚ~ŎƦŗàxkʊ	 E6G6B:I:G ŎƚĸrȽȊůē~ E6G6B:I:G Ŏƚ~êćþ|iqʉɧđŚȼ~ȴȒƚ|ô]fyxbkʊfʉo~ȽȊů~ȗƳxŚȼiqfy|ǳųikʊõ^ʉ	 >CI:<:G 	
 E6G6B:I:G	 	
 >B6M
	
 >B6M>B6M	
 G:6A	
 6>B6M  7>B6M 8>B6M	 y\]ŚȼʉëØ~ŚȼƜyĵȉxkʊ	 >CI:<:G 	
 E6G6B:I:G	 	
 >B6M
G:6A	
 6 7  8	 	
 >B6M	 qriʉè~ E6G6B:I:G Ŏƚ|êćkybʉêćhŎƚʅf~õx >B6Mʆaʉêć

— 33 —

Fortran スマートプログラミング— 第３回 もっとスマートなプログラムにしよう —kȽȊů|ô]Ŏƚʅf~õx >B6MʆŵxŚȼh{e{mʊ	 řʉE6G6B:I:G ŢžƌŘiqŎƚʉSŎƚʓƚþT~ŴůxŎƚĶyƚþ~ŜŻɮøǻ
iw\rexʉÉÊÎyiw~řñ[mʊf~ŜŻɮøôtqSŎƚT`SƚþT
~ȡbƓ^ʉ¦Ò¾Ï~Ǉɴxȯ~xʉɻřȯƜx[ŚȼƜxô^~xkʊ
ɜ|ȼ^ʉE6G6B:I:G Ŏƚ|řȯƜôtwêćkfyxbmʊõ^ʉ	 >CI:<:G 	
 E6G6B:I:G	 	
 >B6M 	 G:6A	
 6>B6M 7>B6M	
 
>B6M	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 fÍÔ	 yƧ\qŋĴʉ
S>B6MTʉ¦Ò¾ÏÍÔxkʊfʉÃÑ¥ÍÈ|S TyƧ\qfy|ȉi\~xk`ųǛryȼ^kʊ	 ¦Ò¾Ïƥ|ƚþ~ȡbƓ^k~xk`ʉêćy\]řȯğóaÙȴ|{ʉşixkaȽȊƥɭ~ǸȞ|{kʊqʉĵƥ|ÉÊÎ~ȋȐ|{kʊofxʉȽȊxô]Řƚ E6G6B:I:G Ŏƚ|iw_dy÷Ĕxkʊõ^ʉ	
 G:6A 	
 E6G6B:I:G	 	 9
	 E>  	 E>E>	 G:6A 	
 E6G6B:I:G	 	
 8A><=I : 	
 =EA6C8@  : 	 ~]|ʉƚŖŘƚǞǤŘƚ E6G6B:I:G Ŏƚxǧƀiw_e\\xi]ʊfÊ«
ËÔÏ~Ý|ćw¥ÑÔ½ÏŎƚ|iw_dyʉh|ȩ\yŽ\kʊE6G6B:I:G ŎƚʉÙǧƀ|ƧbƓ^fya{\~xʉf~]{Řƚ~ŘȢ|]twuexkʊ	 	
  _G4A1#lX]U	 ȇʍŀxʉŉƭǰ{ƚþņ|ƛƚņyřƚņa[ʉřƚņ|ħȎŮřƚņyýȎŮřƚ
ņa[y\]Ƀiiqʊ DGIG6C ~·ÁÏ¸řƚņħȎŮxkaʉ¦Ò¾Í~ȦğýȎŮǁȥô^·ÁÏ¸ýȎŮřƚņ|ŎƦxb~xʉƭȁxfxƚþ~ȎŮ|ɮiwǟ|ƀɍi{\ɈƢiwbiqʊi`iʉőɩ~·Ô±½ºÎŴůxúŕk
yb|úŕśɩńȞkq|ȎŮȮykfyaȣ^kiʉ
SʐýȎŮřƚTy\]ýȎŮƩĞƶƚ~Ő\řƚņôtwʉʄȎŮȽȊkfyxbkʊf~fy`ʉȎŮƌŘkƞǏǷtw_dy÷Ĕxkʊ	 Ŏƚ~ȎŮƌŘk|ʉʏȀʃ~ƞǏa[kʊffxʉŉƭǰ{ŚȼƜreȔæikaʉŢžƚþêćĸƊŲŚȼİȥxkʊ	 ņƌŘȎŮƚ	 	 ŎƚʍʉŎƚʎʉ	 ņƌŘȎŮƚ	 	 ŎƚʍʉŎƚʎʉ	 ņƌŘ@>C9ȎŮƚ	 	 ŎƚʍʉŎƚʎʉ	
 ffxʉSȎŮƚT~yf|ʉƚþņ~ 7NI: ƚƛƚxƌŘikʊřƚņ~ŋĴʉħȎŮ{ ʉýȎŮ{ ʉʐýȎŮ{  xkʊõ^ʉħȎŮřƚņŎƚŚȼk|ʉ	
 G:6A	
 MH NH 6H 	
 G:6A	
 MH NH 6H 	
 G:6A@>C9	
 MH NH 9H



	
 

{zyƧbkʊqʉɞŨ~ƛƚņ 7NI: xkaʉƨɘSýȎŮƛƚTy\] 7NI: ~ƛƚņô]fyaxb~xʉfĔǧkyb|ʉ	 >CI:<:G	
 C B @ 	
 >CI:<:G	
 C B @ 	
 >CI:<:G@>C9	
 C B @6



	
 

{zyƧbkʊ	 ʏȀʃ~Ƨů~Ýxzaȩ\`Õƻ|ȼ^mʊÕǬǱ~STôtqƧůʉį\
4qriʉʐýȎŮřƚņʉŹlřȱi{e{{\ȶƵx{\]xʉ¦Ò¾Í|twô^{\ŋĴa[kʊgfortran xʉ½Ô«ÌÒ 4.8 xô^kaʉ4.2 xô^{\]xkʊ— 34 —

SENAC Vol. 46, No. 1（2013. 1）

DGIG6C `ôw\~xʉ¦Ò¾Íaį\ŋĴʉƤ~ÃÑ¥ÍÈȚƉkŋĴ~q|ȸ^w_\qƞaȩ\yŽ\kaʉf`ÃÑ¥ÍÈƧbŒŋĴ|ʉâǬǱ`ʉ
ȎŮƚ~ƀĺƢȾiqÖǬǱ~ƞaȩ\yŽ\kʊfʉǃ~]|ȎŮƚ E6G6B:I:GŎƚôtwƌŘkfyaxbkʊ	
 >CI:<:G 	
 E6G6B:I:G	 	
 @E	
 G:6A@E	
 MF NF 6F 	
 G:6A@>C9@E	
 MF NF 9F



	
 

f|Ŝiʉ
STôtqƧůxʉŹlŘƚxƌŘi{e{mʊE6G6B:I:G ŎƚxȎŮƌŘiw_eʉȽȊǁǥŌ|ŻjwȎŮŎƦkŹȴa[yb|÷Ĕxkʊ	 qriʉʄȎŮ~ȽȊkŋĴʉŘƚʄȎŮ|i{e{mʊõ^ʉ
S TyƧeʉ·ÁÏ¸~řƚņ|{~xʉƭȁxýȎŮřƚxkʊtwʉf~ʐýȎ
Ů~ȽȊ|ô]yȎŮaȮswi\kʊQ  xȰhřƚʐýȎŮxȰǣkyb
S TS F TyƧ`{e{mʊ	
 SFTyƧbkʊf~qʉi`iʉE6G6B:I:G ŎƚxȎŮƌŘiw\yb|ʉ:  F ~]{ƜŔxȎŮƌŘiw\
yʉȎŮŎƦkɵ|ʉŘƚ~ŎƦaēɝŹȴxkʊofxʉƚþ~ŵ|Ò²Ô¬¦S5T
yȎŮƚéewŘƚ~ȎŮƌŘkfyaxbkʊõ^ʉýȎŮ~S TS 5TyƧeʉʐýȎŮ~S F Tʉ
S 5TyƧdfyaxbkʊf~ȎŮƌŘ| E6G6B:I:GŎƚô]fyaxb~xʉǃ~]|Ƨdfyaxbkʊ	
 >CI:<:G 	
 E6G6B:I:G	 	
 @E	
 G:6A@E	
 MM NN	 MM	 	  5@E	 NN	 	  : 5@EMM	 f~õ~ NN |êćiw\řƚ~ƌƚƌŘ : ôtw\kaʉȎŮƚa  {~xʉʐýȎ
ŮŘƚ|{kʊ	 	   
`	 E6G6B:I:G Ŏƚô^ʉɧđ~ȴȒƚrex{dƚþņ~ȎŮxƌŘkfyaxbkaʉoxÏÔ³Ògy|Śȼiw\yʉŎƦaŹȴ|{tqyb|ʉôǧiw\Ĉw~ÏÔ³Òx E6G6B:I:G Ŏƚ~þŎƦi{e{mʊofxʉ	 BD9JA:	
 <AD76A5E6G6B	
 	 	 >CI:<:G 	
 E6G6B:I:G	 	
 >B6M
:C9	
 BD9JA:	
 <AD76A5E6G6B	
 	
 ?B6M

	 ~]|ʉE6G6B:I:G ŎƚreȾɚiqÊ«ËÔÏǧƀiwʉĊƩkÏÔ³Òx JH: Śȼk~aȩ\yŽ\kʊJH: ŚȼÊ«ËÔÏ~Ýxô]fyaxb~xʉëØ~]|Ⱦɚkfyaİȥxkʊ	 BD9JA:	
 <AD76A5E6G6B	
 	 	 >CI:<:G 	
 E6G6B:I:G	 	
 >B6M
	
 ?B6M 	
 :C9	
 BD9JA:	
 <AD76A5E6G6B	
 BD9JA:	
 BD956GG6N	
 
	
 	
 JH:	
 <AD76A5E6G6B	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 Ê«ËÔÏČx JH: Śȼİȥ	 	 	 G:6A	
 678>B6M ?B6M 89?B6M 	
 :C9	
 BD9JA:	
 BD956GG6N	
 EGD<G6B	
 BI:HI	
 
	
 	
 JH:	
 BD956GG6N	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 JH:	
 <AD76A5E6G6B Ùȴ	 	 	 >BEA>8>I	
 CDC:	 	 	 >CI:<:G	
 @B>B6M	 5s{|ʉ·ÁÏ¸řƚaħȎŮ~ƥʉýȎŮřŘƚS9 TyƧbkʊõ^ʉS TS 9 Txkʊ

— 35 —

Fortran スマートプログラミング— 第３回 もっとスマートなプログラムにしよう —ffxʉ[Ê«ËÔÏ~Ýxē~Ê«ËÔÏ JH: ŚȼiqŋĴʉęȤ~Ê«ËÔÏ JH: ŚȼiqÏÔ³ÒxʉŵȤ~Ê«ËÔÏĴmw JH: Śȼiqfy|{kʊ×Ⱦ~ÉÒÃÑ¥ÍÈ BI:HI xÊ«ËÔÏ BD956GG6N i` JH: Śȼiw\maʉBD956GG6N	
 ~Ýx
JH: Śȼiw\Ê«ËÔÏ <AD76A5E6G6B ĵƥ|Śȼiqfy|{ʉo~Ý|[Ŏƚ>B6M ÉÒÃÑ¥ÍÈxĔǧİȥ|{kʊqriʉǃ~]|ʉÉÒÃÑ¥ÍÈ|	 <AD76A5E6G6B ~ JH: ŚȼĜ^wʉo~ôǧƢǻkfyxbkʊ	
 EGD<G6B	
 BI:HI	
 
	
 	
 JH:	
 <AD76A5E6G6B	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 Ƨ\wÍÔx{\	
 
	
 	
 JH:	
 BD956GG6N	 	 	 >BEA>8>I	
 CDC:	 	 	 >CI:<:G	
 @B>B6M	 	 fʉĵjÊ«ËÔÏ~ JH: ŚȼɨȳiwƧ\wÍÔ|{{\`xkʊ	 hwʉÃÑ¥ÍÈaŗƄiwʉŵľʂ|Żjw E6G6B:I:G ŎƚŎƦkre|{yʉ
E6G6B:I:G Ŏƚ~ŎƦ~qre|ÃÑ¥ÍÈƭñŎƦk~ǜi\iʉŎƦkyb|ɇtwƭñƧbƓ^wi]Î¬¤[kʊÃÑ¥ÍÈŎƦkyʉÃÑ¥ÍÈÁ
Ï~ƟéaŎƦh~xʉ\u~ƥǙxŗƄiqÃÑ¥ÍÈ``{d{kʊfʉǟ|èä|ÃÑ¥ÍÈƒökyb|ľʂy{kʊ	 ofxʉE6G6B:I:G Ŏƚ~ɦĐreÃÑ¥ÍÈƭñ`ĐɸiwúŕiʉŹȴ|ŻjwȗĴky÷ĔxkʊȗĴkÕu~ƇǇ| >C8AJ9: Ɯ~Ĕǧa[kʊ>C8AJ9: ƜyʉëØ~]| >C8AJ9: ~ŵ|ʉÁÏĶƜŔđxȾɚiqƜxkʊ	 >C8AJ9:	 ÁÏĶ	 >C8AJ9: ƜƧdyʉ¦Ò¾Ío~ðȡ|SÁÏĶTxƌŘiqÁÏ~ČśƎćiqÃÑ¥ÍÈǦƄiwʉo¦Ò¾Ïikʊõ^ʉ×Ⱦ~Ê«ËÔÏ <AD76A5E6G6B
S<AD76A >C8Ty\]ÁÏ|Ƨbɗxúŕiw_eʉǃ~]|Ⱦɚkfyaxb
kʊ	
 >C8AJ9:	
 <AD76A >C8	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 ff| <AD76A5E6G6B aƎćh	 BD9JA:	
 BD956GG6N	
 
	
 	
 JH:	
 <AD76A5E6G6B	
 	 	 G:6A	
 678>B6M ?B6M 89?B6M 	
 :C9	
 BD9JA:	
 BD956GG6N	
 EGD<G6B	
 BI:HI	
 
	
 	
 JH:	
 BD956GG6N	 	 	 >BEA>8>I	
 CDC:	 	 	 >CI:<:G	
 @B>B6M	
 
	
 	
 
	
 
>C8AJ9: ƜaƌŘkÁÏ~Čśʉo >C8AJ9: Ɯ~ðȡ|Ǝćiqyb|ʉÃÑ¥ÍÈĈñaǄidğók\\~xʉÊ«ËÔÏ¨ÂÏÔ³Ò~]{ŗȗiqÃÑ¥ÍÈx[Źȴ[mʊqʉĵjÁÏÕu~ÃÑ¥ÍÈ~ȳƚ~ŋƆx >C8AJ9: ƌŘkfyxbkʊõ^ʉ	 	 	 >CI:<:G 	
 E6G6B:I:G	 	
 >B6M

	
 ?B6M	 reÁÏ|Ƨ\wʉ¨ÂÏÔ³Ògy| >C8AJ9: ƌŘkfyİȥxkʊ	 	  `TJ#dg	 fx EG>CI Ɯ LG>I: Ɯ|Ǝćiwʉƚþ~ƀĺ{zȰǻk~|ôtwbqƜŔđx
kaʉf~è|ƽW{ǧɝa[kʊqʉŃŘiqƜŔ~Ürex{dʉƜŔđŎƚ
ôtwʉƮí|Żjwo~ČśŎƦiqʉƜŔđyƜŔđɡȗiqʉÕɦĭďi

— 36 —

SENAC Vol. 46, No. 1（2013. 1）

qƜŔđóƄk{z~SƜŔđǗȊTkfyxbkʊƭȋxƜŔđȂƹǰ|ǑǧkƇǏȔæikʊ	 	  `TJU_ `TJR_	 DGIG6C |_eƜŔđyʎü~XYqXYxŁrƜŔ~Ü~fyxkʊõ^ʉ	 678	
  ,6<J8=>␣, 	   04	 	  ǘŔƧek	 XYyXYĵȉ{~ȉaƜŔđxkʊƜŔđ|¬ÅÔ¬ȾĲćfyxbkʊ
xʉzsô]`Ȧǩxkʊõ^ʉɞŨXYxŁ\ʉƜŔđ~Ý|XYô\q\ybʉX,:68=:GHY~]|ĈñXYxŁʉy\]]|Ǎw_eȩ\xi]ʊ	 ¦ÒÀËÔ±~SƜŔTƜŔ¦Ô¹y\]ƛƚþyŜŻiw\wʉƜŔđƜŔ¦Ô¹Ȱ
kƛƚ~ɧđxřǣhw\kʊf~qʉƛƚŘƚ~  yƜŔđ~	 	 Ĉdǭ{~xkʊƜŔ¦Ô¹ĤȺȭƚŔ{ʍƜŔ[q 7NI: ~ƛƚʉĈȺ~ǘŔa{{ʍƜŔ[q 7NI: ~ƛƚxkʊĤȺȭƚŔ~¦Ô¹ʉǣŅyzĈw~¦ÒÀËÔ±x +## ¦
Ô¹aôw\kʊf~qʉĤȺȭƚŔrexÃÑ¥ÍÈƧeǾƸž~ľʂ[mʊi`iʉĈȺƜŔ (+ ĔǧǥŌ|twƜŔ¦Ô¹aɤ]İȥža[~xʉÃÑ¥Í
ÈÝ|ƟƭɆȾɚkyʉē~¦ÒÀËÔ±|Ǿiqyb|ƜŔġekfya[kʊ
DGIG6C |_\wƟƭɆaô^~¦ÉÒ¸Ɯy¶¢¬¸Ȱǻd\{~xʉozɨȴx[mʊëØʉƜŔđÝ~SƜŔT 7NI: ~ +## ¦Ô¹x[yìŘiwɈƢikʊ	 XYqXYxŁrƜŔđʉSƜŔđŘƚTxkaʉƜŔđêćiwúŕkƜŔđ~ŎƚófyxbkʊƜŔđŎƚó| 8=6G68I:G Śȼô\kʊ8=6G68I:G ŚȼʉëØ~]{Ƨůxkʊ	 8=6G68I:G	 ƜŔđŎƚʍƜŔƚʍ ƜŔđŎƚʎƜŔƚʎ

	
 

	
 

ƜŔƚyʉƜŔđŎƚ|êćİȥ{ƨő~ƜŔƚxkʊƌŘxbƨŞ~ƜŔƚ  xkʊqʉƊŲŚȼƜ|iwŢž{zéĜkfyİȥxkʊõ^ʉ	
 8=6G68I:G	
 8

8

88 8=G 

8=H



 	
 

yŚȼkyʉƜŔđŎƚ 8 |  üxʉ8 |  üx~ƜŔêćkfyaxb
kʊf|Ŝi 88 |ʍƜŔi`ćmʊq 8=G  8=H ~]|ƜŔđ~ɧđŚȼkfyİȥxkʊ8=G   ƜŔxćʍǃĄɧđxʉ
8=H   ƜŔxćʎǃĄɧđxkʊ	 ĵjƜŔƚ~ƜŔđŎƚȳƚüŚȼkybʉëØ~ƧůxŚȼkfyaxbkʊ	
 8=6G68I:GƜŔƚ	 	 ƜŔđŎƚʍʉƜŔđŎƚʎʉ	
 8=6G68I:GƜŔƚ	 	 ƜŔđŎƚʍʉƜŔđŎƚʎʉ	
 8=6G68I:GA:CƜŔƚ	 	 ƜŔđŎƚʍʉƜŔđŎƚʎʉ

	
 

ffxʉ
SƜŔđŎƚT|ʉŎƚĶ`ʉɧđĶyo~ȴȒƚȾɚikʊf~ʏȀʃ~ǳɤǙʉ  ȋ~ȎŮƚ~ƌŘyĵƽxʉƨĒ~SƜŔƚTaơƯ~ƧůʉoëŏaƝi\ƧůxkʊƝi\Ƨů~ŋĴ|ʉE6G6B:I:G ŎƚĔǧiwƜŔƚƌŘkfyaxbkʊ	 ƜŔđŎƚ|ƜŔđêćk|ʉƚþ~êćyĵjxʉ¦ÔÏXYô\kʊõ^ʉ×Ⱦ~  ƜŔ~ƜŔđŎƚ 8 |ƜŔđŘƚêćk|ʉ	
 
8	
 	
 678	 ~]|Ƨbkʊf~ybʉêćhƜŔ	 678	   ƜŔ{~xʉ ƜŔ~Ŏƚ 8 ~Ćʀ
6ƭȋxĤȺ¬ÅÔ¬ȾĲƢȾkyb|S␣Tô\kʊ¾°¦Òxôw\~ Shift JIS ¦Ô¹aŐdʉLinux {z~ UNIX ȏ OS xôw\~ EUC ¦Ô¹aŐ\]xkʊƨɘʉ¦Ô¹ñȏȘÕġiq Unicode ô] OS aō^wbiqʊ
8 ƜǏǰ|S*ƜŔƚTǴǫiwŎƚĶrexŚȼkyʉƜŔƚaʍ~ƜŔđ|{kʊi`iʉÃÑ¥ÍÈa`|dd{~xʉŨ|S*1TéĜiwƜŔƚʍɳ|ƌŘiqƞaȩ\xi]ʊ
7Fortran スマートプログラミング— 第３回 もっとスマートなプログラムにしよう —— 37 —`ɾ|  ƜŔvuêćhʉǆ~ɿňĤȺ¬ÅÔ¬aêćhkʊ¬ÅÔ¬ƜŔxk`ʉ8 ~ƜŔƚʉêćiqƜŔđ~ƜŔƚ|``lʉ ~xkʊł|ƑeʉëØ~]{ÉÔ«xkʊ	
 
	
 
8	
  6	
  7	
  8	
  ␣	
  ␣	
  ␣	
  ␣	
  ␣	
  ␣	
  ␣	
  ␣	
 
	
 
ɜ|ʉêćkƜŔđ~ƜŔƚ~ƞaŐ\ŋĴ|ʉo~ƜŔđ~Ćʀ`ʉêćxbƨőƜŔƚxaêćhʉǆǚȷhkʊƊŲŚȼƜô^ʉǃ~]|[`jƜŔđŘƚêćiqƜŔđŎƚǧƀkfyİȥxkʊ	 8=6G68I:G	 	
 8=G 6789:	 ƜŔđŎƚ|êćhqƜŔđɦĐǰ|ĭďkfyaxbkʊfSɦĐƜŔđTy
\\kʊɦĐƜŔđʉƜŔđŎƚ~Ćʀ`ƚ^wòǬǱ`òǬǱy\]ȌŁXYôtwƌŘikʊõ^ʉ8 y\]ƜŔđŎƚ~ C ǬǱ` C ǬǱ~ƜŔĭďk|ʉ	
 8CC	 yƌŘikʊf~ƜŔđʉC C ƜŔ~ƜŔđyiwƈkʊõ^ʉ86789:;<{ʉ8ʉ89:xkʊC y C ȉidkfyxʍƜŔĭďkfyxbkʊ
õ^ʉ	
 
8	
 	
 6789:;<	
 
9D	
 >	
 	
  	
 	
 
	
  	
 EG>CI	
  8>>	
 :C99D	 ykʉʍƜŔluȝ|ďěhkʊ	 ƜŔđɧđ~ɦĐƜŔđĭďkŋĴ|ʉȴȒƌŘĆ|ʉɦĐƜŔđƌŘŵ|Ƨbkʊõ^ʉʍǃĄ~ƜŔđɧđ 8=G |Ŝiʉ@ ǬǱ~ȴȒ~ɦĐƜŔđʉ	
 8=G@CC	 ~]|ƌŘikʊ`tfaɡțk~xʉɾǬ|ǋéewØh\ʊ	
 ƜŔđɡȗkfyxbkʊƜŔđ~ɡȗ|ǗȊœX Yǧ\kʊõ^ʉ	
 
8	
 	
 678

MNO	 yƧdyʉ8 |678MNOy\]ƜŔđaêćhkʊƜŔđ~ɡȗʉƜŔđŘƚyƜŔđ
ŎƚʉƜŔđŎƚyƜŔđŎƚy\]ȖĴmxİȥxkʊqriʉƜŔđŎƚ|êćhqƜŔđɡȗkyb|ǐƀaŹȴxkʊõ^ʉ	
 8=6G68I:G	
 8 8 	
 
8	
 	
 678	 8	 	
 8 MNO	 yƧ\qŋĴʉ8 |678MNOy\]ƜŔđaêćhyŽtqɭɤ\xkʊǄid	 678␣␣␣␣␣␣␣MNO	 aêćhkʊfʉ×Ⱦ~]|  ƜŔ~ƜŔŎƚ 8 |  ƜŔ~	 678êćiwʉ
8 ~ƜŔƚŎ{\`xkʊƬŠ~Ùȴ{¬ÅÔ¬Ęɲk|ʉɦĐƜŔđô]Ź
ȴa[kʊ	
 8=6G68I:G	
 8 8 	
 
8	
 	
 678	 8	 	 8 MNO	
 f~ÃÑ¥ÍÈ{ʉ8 |678MNOaêćhkʊ	
 i`iʉf~ƞǏŎƚ|êćhw\ƜŔƚaÙƢ~yb|ô^mʊofxʉɮƚ— 38 —

SENAC Vol. 46, No. 1（2013. 1）

IG>B aǧƀhw\kʊIG>B ƬŠ~¬ÅÔ¬ɲĪiqƜŔđəkȖɗɮƚxkʊõ^ʉ×Ⱦ~õʉ	
 8=6G68I:G	
 8 8 	
 
8	
 	
 678	 8	 	 IG>B8 MNO	 yƧdfyaxbkʊf~ȗƳ 8 |678MNOaêćhkʊ	 ƜŔđ¨ÂÏÔ³Ò~Űƚ|kybʉ
XYƌŘiwŚȼikʊõ^ʉ	 HJ7GDJI>C:	 HJ7G8=G	 	 	 >BEA>8>I	
 CDC:	 	 	
 8=6G68I:G	
 8=G	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 ƜŔƚÙȴ	 ~ 8=G ~]|Śȼikʊ DGIG6C ~ƜŔđ|ʉƜŔ¦Ô¹~Ürex{dʉƜŔƚ~ſŊĸw\kʊf~qʉƌŘ~]|ƜŔƚaƢȾhw\{dwʉ¦ÔÏĀxƌŘiqƜŔƚ~ƜŔđyiwôǧkfyaxbkʊõ^ʉ	 EGD<G6B	
 8I:HI	 	 	 >BEA>8>I	
 CDC:	 	 	
 86AA	 HJ7G6789:	 :C9	 EGD<G6B	
 8I:HI	 HJ7GDJI>C:	 HJ7G8=G	 	 	 >BEA>8>I	
 CDC:	 	 	
 8=6G68I:G	
 8=G	
 
	
 	
 EG>CI	  8=G A:C8=G	
 	
 	
 	
 	
 	
 ƜŔđ	
 678:9yƜŔƚ  aďěh	
 :C9	
 HJ7GDJI>C:	 HJ7G	 ~]{ÃÑ¥ÍÈ|_\wʉ¨ÂÏÔ³Ò HJ7G ~ EG>CI Ɯ~ďěʉƜŔđ	 6789:’yƜŔƚ  |{kʊffxʉɮƚ A:C ʉƜŔđ~ƜŔƚĭŶkɮƚxkʊƜŔđ|ɮkȖɗɮƚʉ  ȋxɈƢikʊ	 ƜŔđ|őŞɮøa[ʉfĔǧiw >; ƜxƮíĐŤkfyxbkʊʎü~ƜŔđǈɔkybʉëØ~Ƈɾxȯ\kʊ	 	 ƜŔƚ~ɪhaǭ{ybʉǸ\ƞ~ƜŔđ~ƬŠ|¬ÅÔ¬ɛĜiwƜŔƚȉ
idk	
 
	
 ʎü~ƜŔđĆʀ`ʍƜŔvuǈɔiw\twʉĈwĵj{ʉSȉi\ʅʆT	 	 ǭ{ƜŔa[ʉƨĒ|ǭ{ƜŔ~ +## ¦Ô¹ǈɔiwʉ¦Ô¹þ~őŞa
ƜŔđ~SőʅʆTqSŞʅʆT	
 +## ¦Ô¹ʉ
S¬ÅÔ¬TʒSƚŔTʒSȭőƜŔTʒSȭŞƜŔT~ɾxőbd{ʉüW~ƜŔ|ǃ~]{őŞɮøa[kʊ	
 	
 
	
 	
 	
 	
 	
 	
 	
 	
 	
 ␣	  	
 

	
 	
 	
 	
 

	
 1	
 	
 6	
 7

	
 O	
 

õ^ʉƜŔđ~ǈɔôtwǃ~]{ÃÑ¥ÍÈƧdfyaxbkʊ	
 8=6G68I:G	
 8 8 	
 
8	
 	
 6789:	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 ʏǬǱa	
 8	
 
8	
 	
 6798:	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 ʏǬǱa	
 9	
 
>;	
 8	
 	
 8	
 	
 EG>CI	  8	
 	
 8	
 
>;	
 8	
 	
 8	
 EG>CI	  8	
 	
 8	
 
>;	
 8	
 	
 8	
 	
 EG>CI	  8	 	 8	
 f~ȗƳʉ8	 	
 8xkʊ{n{ʉʏǬǱ~ƜŔaĒwǭ{ʉ8 	 8ʉ8 	 9	 xkaʉ8	 9r`xkʊ{_ʉ8   ƜŔʉ8   ƜŔxkaʉŵ|¬ÅÔ¬Ȳ]~xʉf~õ~ȗƳ|ǚɮøxkʊ	 — 39 —

Fortran スマートプログラミング— 第３回 もっとスマートなプログラムにしよう —	  HM"'`TJ#Kg	 ƨdƜŔđô]ŋɼʉEG>CI Ɯ LG>I: Ɯ~Ý|ćwȰǻ~Ȳĝ|ô]fyxi]ʊõ^ʉ	
 G:6A	
 HE9 EG:H	
 
HE9	
 	
 
	
 
EG:H	
 	
 
	
 
EG>CI	  	 />C9	
 +E::9	 	  HE9 	 	 )G:HHJG:	 	  EG:H	 yƧeʉďěa	 />C9	
 +E::9	
 	
 	
 	
 	
 

	
 	
 	
 	
 	
 	
 	
 	
 )G:HHJG:	
 	
 	
 	
 	
 

	
 

~]|{twʉz~ƚþaz~Ŏƚ~þ{~`aÕǱx`kʊ	
 ffxʉƜŔđo~ɪh|Ĵmwďěhw\kʊfʉEG>CI ƜaƜŔđ|ćtw\ƜŔƚ~ſŊ|Ĵmwďěk`xkʊf~ǁȥʉ;DGB6I ôtwƜŔđ~ďěƌŘkyb|ô]fyaxbkʊƜŔđ~ďěƌŘ|ʉ Ȝɶǧ\kaʉ Ȝɶʉ
X6Y
reƧdyʉƜŔđ~ƜŔƚaďěũ|{kʊõ^×Ⱦ~ EG>CI Ɯʉ	 EG>CI	 	
 />C9	
 +E::9	 	  HE9 	
 B H	
 EG>CI	 	 )G:HHJG:	 	  EG:H 	 =)6	  	 ;DGB6I6 ;  6	 yƧeʉǃ~]{ƜŔũ|ĴmqďěȗƳaŶkʊ	
 />C9	
 +E::9	
 	
 	
 	
 	
 
)G:HHJG:	
 	
 	
 	
 

	
 B H	
 
	
 =)6	
 

ęŀ~ ;DGB6I ~ɈƢxȔæiiqaʉďěŴůƌŘ EG>CI Ɯ LG>I: Ɯ~Ý|ŇɗƧůʉƜŔđ~ĔǧƞǏ~Õuxkʊõ^ʉ	 EG>CI	 M	 LG>I:  	
 M	
 
 	
 ;DGB6I	
 M :H 	
 y\]ÃÑ¥ÍÈǃ~]|ƧbƓ^fyaxbkʊ	 EG>CI	 	
 M :H  M	
 LG>I: 	
 M :H 	 M	 k{sʉ;DGB6I Ɯ~`tfëØʉÛȆ~`tfĸwƜŔđ|iw EG>CI Ɯ LG>I: Ɯ~ƧůƌŘ~ðȡ|Ƨbɗkʊf~ybʉƜŔđŎƚô^ʉȳƚ~ŋƆxĵj ;DGB6I ô]yb|÷ĔriʉďěČś|Żjwʉřȯƥ| ;DGB6I ŎƦkfyİȥxkʊõ^ʉ	
 
G:6A	
 M	
 
8=6G68I:G	 ;DGB 	 >;	
 67HM	 	  :	
 I=:C	 	 	 	
 ;DGB	 	
 M :H 	 
	
 :AH:	 	 	 	
 ;DGB	 	
 M ; 	 :C9>;	
 EG>CI	
 ;DGB M	 h{d ;  Ȝɶxďěhkʊ
	
 
ykʉ
M ~șŜþa   ë×~yb| :H  ȜɶxʉqʉɦĐƜŔđĔǧiwŎƦkfyȣ^kʊõ^ʉ	
 
G:6A	
 M	
 
8=6G68I:G	 ;DGB 	
 
;DGB	
 	
 M ; 	
 
>;	
 M	
 	
 
	
 ;DGB 	
 	
 	
 	
 
EG>CI	
 ;DGB M	  `   |ŎƦ	 — 40 —

SENAC Vol. 46, No. 1（2013. 1）~]|ƧeʉM a ë×~yb ;  Ȝɶxʉh{d ; Ȝɶxďěhkʊ	 	
  _G@`TJR^	 ffx LG>I: Ɯ G:69 Ɯ~ƧůƌŘ~ðȡ|ƜŔđôǧiw\iqaʉȱȡǬĲ~ðȡ|ƜŔđȾɚkfyxbkʊfSƜŔđT`SƚþT~ŎƓʉqo~ɜŎƓȯ]yb|ôǧikʊ×Ⱦ~]|  y\]ƚþyy\]ƜŔđȽȊǁČɦ~
Ȱǣaǭ{kaʉĎǤ~ɣǿx  y\]ƚþ`o|ǳųkƜŔótqʉɜ|y\]ƜŔđƚþyiwȽȊ|Ĕǧiq\ŋĴa[kʊooʉƧů[ G:69 ƜÁÏ{z`SƜŔxȰǣhqƚþTćěiwSȽȊǁČɦ~ƚþT|ŎƓkğóx[ʉƧů[ LG>I: ƜSȽȊǁČɦ~ƚþTSƜŔxȰǣhqƚþT|ŎƓiwďěkğóxkʊȱȡǬĲ~ðȡ|ƜŔđĔǧkyʉo~ŎƓǁȥreô]fyaxb~xkʊ	
 SƚþTUSƜŔđTŎƓk| LG>I: Ɯǧ\kʊõ^ʉ	
 
G:6A	
 M	
 
8=6G68I:G	
 8= 	 M	 	  	 LG>I:8= ; 	 M	
 yƧeʉƜŔđŎƚ 8= |	  
y\]ƜŔđaêćhkʊqriʉƜŔđ|ŎƓkybʉďěƜŔƚë×~ɪhƋuƜŔđŎƚǧƀiw_dŹȴa[kʊ	
 DE:C ƜôtwÁÏ ÔÃÒkybʉÁÏĶƜŔđxƌŘkŹȴa[kʊ
f~qʉ;>A:  96I 	
 ;>A:  96I;>A: 96I y\]ɞiǬĲ~é\q  ü~ÁÏaŕŅiwʉopȱȡǬĲ Z yiw ÔÃÒkybʉǃ~]|Ƨbkʊ	
 8=6G68I:G	
 C6B: 	 
>CI:<:G	
 B	
 
9D	
 B	
 	
  	
  	
 
	
 	
 	
 LG>I:C6B: ;>A: >   96I	
 B	
 
	
  	
 DE:C > ;>A:C6B:	
 :C99D	
 ffxʉƛƚ B ~ďěȜɶ >  |iw\~ʉ¬ÅÔ¬	  xŇwʉƛƚ~ďě ʉ
ʉ ~]|kqxkʊ	 ɜ|ʉSƜŔTUSƚþTŎƓk| G:69 Ɯǧ\kʊõ^ʉ	
 
G:6A	
 M	
 
8=6G68I:G	
 8= 	 8=	 	  	
 G:698= 	 M	 yƧeʉřƚņŎƚ M | 

y\]SƚþTaêćhkʊ	 	  `TJ"~'n$x$~_	
 ƜŔđ|ɮkȖɗɮƚʉIG>B ~è|ȪW[kʊêȰǰ{~Ȱʍ|ǻikʊ	 ƜŔđɮƚ	 ȰʍʊƜŔđ|ɮkȖɗɮƚ	
 
Űƚ~ņ	
 
ɮƚþ~ņ	 
ɮƚ~ƀĺ	
 IG>B8	
 

ƜŔđ	
 

ƜŔđ	
 

ƬŠ~ȄǯĘɲ	 A:C8	
 

ƜŔđ	
 

ƛƚ	
 

ƜŔđ~ƜŔƚ	
 A:C5IG>B8	
 

ƜŔđ	
 

ƛƚ	
 

ƬŠ~ȄǯĘɲiqƜŔđ~ƜŔƚ	
 69?JHIA8	
 

ƜŔđ	
 

ƜŔđ	
 

ƜŔđŦ|o^qƜŔđ	 69?JHIG8	
 

ƜŔđ	
 

ƜŔđ	
 

ƜŔđı|o^qƜŔđ	 — 41 —

Fortran スマートプログラミング— 第３回 もっとスマートなプログラムにしよう —Ȱʍʅțbʆ
ʊƜŔđ|ɮkȖɗɮƚ	
 
Űƚ~ņ	
 
ɮƚþ~ņ	 
ɮƚ~ƀĺ	 ƜŔđɮƚ	
 >C9:M8 8E	 ʎü~ƜŔđ

ƛƚ	
 G:E:6I8 C	 ƜŔđyƛƚ	 ƜŔđ	 8=6GC	 ƛƚʍƜŔ~ƜŔđ	 >8=6G8	 ʍƜŔ~ƜŔđƛƚ	 ƜŔđ 8 ÝxƜŔđ 8E aĸw\ʉo~ɬŒðȡəkʊ	 ǚe ək	 ƜŔđ 8  C üɡȗiqƜŔđ	 	 +## ¦Ô¹þÚ^yʉo|ŜŻkĤȺȭƚƜŔək	 ĤȺȭƚƜŔÚ^yʉo|ŜŻ	 k +## ¦Ô¹þək	 	 ôǧõ\du`ǻikʊ  ȋ|ďwbqɮƚ A:C ʉƜŔđ~ƜŔƚĭŶkq~ɮƚxkaʉôǧ~ɵǐƀaŹȴxkʊõ^ʉ	
 8=6G68I:G	
 8 	 >CI:<:G	
 B C	
 
B	
 	
 	
 A:C678	
 	
 	
 	
 B	
 	
 	
 
8	
 	
 678	 C	 	 	 A:C8	
 	
 	
 	
 	
 	
 	
 C	
 	
  	
 
ykyʉB ~þ  xkaʉC ~þ  |{kʊfʉƜŔđŎƚ~ƜŔƚaŚȼƥ~ƜŔƚr`xkʊƬŠ~¬ÅÔ¬ɲĪiqƜŔđ~ɪhĭŶk|ʉɮƚ IG>B ôtw
Ęɲiw`ɮƚ A:C xɊ `ʉɮƚ A:C5IG>B ô\kʊõ^ʉ×~ÃÑ¥ÍÈxʉƨŵ~ C ~êćƜ	
 CA:CIG>B8	
 	
 q	
 	
 CA:C5IG>B8	 xȡbƓ^ʉC |{kʊ	 ƨŵ~ 8=6G y >8=6G ~ôǧõǻikʊf~âu~ɮƚȖĴmʉG:69 Ɯ LG>I:Ɯô{dwʉƜŔyƚþ~ŎƓkfyaxbkʊõ^ʉʎƶ~ƛƚʏƶ~  ɢƚxȰǻkÃÑ¥ÍÈëØ~]|{kʊ	 >CI:<:G	
 O:GD CJB	 8=6G68I:G	
 8 	
 
CJB	
 	
 	
 
8	
 	
 
	
 
O:GD	
 	
 >8=6G 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
  ~ƜŔ¦Ô¹ƛƚþ|ŎƓ	
 8	 	
 8=6GO:GDBD9CJB 	
 	
 	
 	
 	
 	
 	
 	
 CJB ~  ~ð~ƜŔ	
 8	 	
 8=6GO:GDBD9CJB  	
 	
 	
 	
 	
 	
 CJB ~  ~ð~ƜŔ	
 8	 	
 8=6GO:GDBD9CJB  	
 	
 	
 	
 	
 CJB ~  ~ð~ƜŔ	
 EG>CI	
  9:8>B6A CJB 	 	
 D8I6A	  IG>B8 	 	
 +## ¦Ô¹xʉ    ~ɾxþa  luōĜiw\kʊofxʉĆʀ~ ~¦Ô¹þ|ʍƶ~ƚŔĜ^ʉo~ƚŔ~¦Ô¹þaŶkʊĵƽ|ʉőƜŔ~ȭƚŔʉŞƜŔ~ȭƚŔ  luōĜiwÜx\~xʉĆʀ~ƜŔx[6~¦Ô¹
þ|ʉo~ƜŔ~ɾǬ~ŧ~ƚŔĜ^wɜŎƓkʉŜŻkƜŔŶfyaxbkʊ
ƛƚ~  ɢƚȰǻkÃÑ¥ÍÈȣ^ww\`axi]`ʊ	 	
  |JvkY	
 ƜŔđ~ĎǤʉfxɈƢiwbqƚþ~ȽȊyşiǉȪaɤ\kʊƚþȽȊaʍü~ƚþyʍü~ƚþ~ɭ~ǗȊŉƭyiw\~|ŜiʉƜŔđ~ĎǤxʉSƜŔđTy\]ƜŔ¦Ô¹~ɶĴyy|iwĭƈ\ʉƜŔđyƜŔđ~ɡȗƜŔđŎƚ~êćÕu~ůxřȯkfyaxbkʊƜŔđyƜŔ¦Ô¹~ɧđ{~xk`ʉfƚþȽȊǰ|ĎǤk{— 42 —

SENAC Vol. 46, No. 1（2013. 1）

ʉƭƯʍƜŔluĎǤi{e{mʊƜŔđ~ǗȊaİȥ{~ʉ DGIG6C ¦Ò¾Í
aʉSƜŔđTy\]ƚþɶĴ~ĎǤʉČɦxʍƜŔluĎǤkÃÑ¥ÍÈ|ŎƓiwd`xkʊ	
 DGIG6C xʉf~ƻżÕȨ~ɧđ|ƊŲiqSɧđǗȊTaİȥxkʊɧđǗȊyʉƚþ~ɶĴɧđĶxêȰhmʉɧđȴȒyɧđȴȒ~ǗȊʉɧđĶyɧđĶ~ǗȊ~ŴxȾɚk
~xkʊɧđǗȊô^ʉ9D Ɯôl|ɧđôtqȽȊȾɚkfyaxbkʊ
fSɧđȽȊůTyĻkʊɧđȽȊůô]ĔǙʉħ|ÃÑ¥ÍÈaǸd{rex[mʊȽȊaƨɥ|{]|ʉȠəi~ɾŭÉÊÎɧȡ¦Ò¾ÍaǍwd
~xʉŋĴ|twʉ9D ƜôtwƧdʄɟ|ȽȊhmfyaxbkʊ	 	  Qai!|JvkY	 ɧđǗȊʉɧđ~ĈȴȒ|ŜiwʉĈwĵj¾±ÔÒ~ǗȊk~aŉƭxkʊf~qʉʍȯ~ɧđȽȊůxǧ\ɧđʉǃĄyĳǃĄ~ȴȒƚaĈwȉi\ʉSĵņ~ɧđTx{e
{mʊo~Ǚ|ǐƀkʉɧđ~Ĉw~ȴȒ|ĵjŘƚêćkybʉʎü~ɧđ~ŜŻkȴȒɭxĈwĵjĿėǗȊkyb|ʉ[q`ɧđĶaÕu~Ŏƚx[`~]{Ⱦɚkfyaxbkʊõ^ʉǃ~]{Ⱦɚaİȥxkʊ	
 G:6A	
 M   N
M	
 	
  	
 
N	
 	
  	
 
O	
 	
 M	
 	
 N 	   O 	
 f~ÃÑ¥ÍÈřȯkyʉɧđ M ~Ĉw~ȴȒ  |{ʉɧđ N ~Ĉw~ȴȒ  |{ʉɧđ O ~Ĉw~ȴȒ  ʅ   ʆ|{kʊf~ÃÑ¥ÍÈ 9D Ɯôtq
ëØ~ÃÑ¥ÍÈyĵjȗƳ|{kʊ	
 	
 
G:6A	
 M   N   O  	
 >CI:<:G	
 > ?	
 	
 
9D	
 ?	
 	
  	
  	
 
	
 	
 9D	
 >	
 	
  	
  	
 
	
 	
 	
 	
 M> ?	
 	
  	
 
	
 	
 	
 	
 N> ?	
 	
  	
 
	
 	
 	
 	
 O> ?	 	 M> ?	 	 N> ? 	 	 	
 :C99D	
 :C99D	 ɧđȽȊůÝ~ŘƚʉĈȴȒ|ŜiwĊɞ~þyiwȽȊikʊ	 ǃ~]{ʉɮƚôtqɧđȽȊůİȥxkʊ	
 
	
 	
 	
 

G:6A	
 6   7   8  	
 
	
 
6	
 	
 HFGI7H>C8  8	 	  : 	 f~ɧđȽȊů 9D ƜxȰkyʉǃ~]|{kʊ	
 
9D	
 ?	
 	
  	
  	
 
	
 	
 9D	
 >	
 	
  	
  	
 
	
 	
 	
 	
 6> ?	 	
 HFGI7> ?H>C8> ?  8> ?	 	  : 	 	 	
 :C99D	
 :C99D	 ɧđȽȊů|_\wʉůÝ|ĸĈw~ɧđaĵņx{e{{\~xʉǭ{ǃĄȴȒƚ~ɧđaǔjtw\yÍÔ|{kʊqriʉØɱǭ{tw`\mʊ

9qriʉÏÔÃ~ĎǤ¦Ò¾ÍaȦğǰ|ǦƄk~xʉřɵ|f~ɞ~ɾŭxȽȊk`z]``mʊ[dxʉf~ÃÑ¥ÍÈyĵjȗƳ|{y\]ƀĺryȣ^wdrh\ʊFortran スマートプログラミング— 第３回 もっとスマートなプログラムにしよう —— 43 —

õ^ʉ	
 
	
 	
 	
 

G:6A	
 6  G 
	
 
6	
 	
  G	
 

	
 

~]|ȽȊkfyaxbkʊqriʉf~ɧđȽȊů 9D ƜxȰmʉ	
 
9D	
 ?	
 	
  	
 	
 
	
 	
 9D	
 >	
 	
  	
 	
 
	
 	
 	
 	
 6> ?	 	  G>  ? 	 	 	
 :C99D	
 :C99D	 ~]|ʉŜŻkȴȒ~ðȡal~xǐƀiwØh\ʊ	 f~]|ʉɧđȽȊůô]yÃÑ¥ÍÈaªÒÃÏ|{kʊɜ|ʉħÕŎƚ~ȽȊůyɧđȽȊůy~Ģēa{d{~xʉÛȤaćãjyÃÑ¥ÍÈa`|dd{ʉÍÔaȵue|dd{y\]ǂǙ[kʊ	 {_ʉ¨ÂÏÔ³Ò~ŰƚɧđôtwɧđȽȊkyb|ǐƀaŹȴxkʊõ^ʉ	 HJ7GDJI>C:	 HJ7G6 7	 	 	 >BEA>8>I	
 CDC:	 	 	
 G:6A	
 6 7	
 
	
 	
 6	
 	
 7	
 	
 	
 	
 	
 	
 	
 	
 	
 fÍÔ|{	
 
	
 	
 
	
 
~]{ÃÑ¥ÍÈxʉɧđȽȊůÍÔ|{kʊ{n{ʉSTćwɧđŚȼiqŋĴʉȴȒƚaÙŘr`xkʊf|Ŝiʉ	 HJ7GDJI>C:	 HJ7G6 7 C	 	 	 >BEA>8>I	
 CDC:	 	 	
 G:6A	
 6C 7C	 	 	 >CI:<:G	
 C	
 
	
 	
 6	
 	
 7	
 	
 	
 	
 	
 	
 	
 	
 	
 f~ŋĴ ($	
 
	
 	
 
	
 
~]|ʉƛĴɧđô]yʉɧđȽȊaİȥ|{kʊ	
 	
 

	
  {I|J	 ɧđĶreôtqɧđȽȊůxĈw~ȴȒ|u\wȽȊikaʉŨ|ĈȴȒ~ȽȊaŹȴyɱmʊofxʉɧđ~ÕɦĭďiqɧđʉSɦĐɧđTƌŘkfyaxb
kʊɦĐɧđSʑTʅ¦ÑÒʆôtwȴȒǬĲ~ȌŁƌŘikʊõ^ʉʍǃĄɧđ 6|Ŝiwʉ	
 6CC	 yƧeʉ6CZ6Cy\] C C ü~ȴȒ`ƼƄhqʍǃĄɧđyiwȽȊ|ô]fyaxbkʊqʉʎǃĄɧđ 7 |Ŝiwʉ	 7CC CC	 yƧeʉ7C CZ7C CZ7C CZ7C Cy\]ʅC CʆQC C
~ʎǃĄɧđyiwȽȊ|ô]fyaxbkʊqʉ[ǃĄ~ȴȒǬĲŃŘiwʉ	 7C CC	 yƧeʉ7C CZ7C Cy\] C C ü~ȴȒ`ƼƄhqʍǃĄɧđyiwȽȊ|ô]fyaxbkʊ	 ɧđȽȊůxɦĐɧđô]ybʉo~ɦĐɧđao~è~ɧđyĵņx[ȩ\~xʉŚȼƜx~ǃĄȴȒƚaÕȧiw\Źȴ[mʊõ^ʍǃĄɧđ{ʉ	 — 44 —

SENAC Vol. 46, No. 1（2013. 1）

G:6A	
 6  7	 	
 6	 	
 7	 ~]|ƧdfyaxbkʊqʉʎǃĄɧđ~ɦĐɧđôtwʉ	
 G:6A	
 6   7  8 	 	 6 	 	
 7 	 {zyƧdfyaxbkʊf~ɧđȽȊů 9D ƜxȰmʉ	
 
9D	
 ?	
 	
  	
 	
 
	
 	
 9D	
 >	
 	
  	
 	
 
	
 	
 	
 	
 6> ?	 	
 7>  ? 	 	 	
 :C99D	
 :C99D	
 y{kʊ[ǃĄ~ȴȒǬĲŃŘiqʎǃĄɧđʍǃĄɧđyiwƈ^~xʉʎǃĄɧđyʍǃĄɧđaǔŅiqȽȊİȥxkʊõ^ʉ	
 G:6A	
 6   8 	 	 8	 	
 6 	 yƧdfyaxbkʊf~ɧđȽȊů 9D ƜxȰmʉ	
 
9D	
 ?	
 	
  	
 	
 
	
 	
 8?	 	
 6 ?	 
:C99D	
 y{kʊ	 {_ʉȴȒ~yf|SʑTreȾɚkySo~ǃĄ~ĈȴȒTy\]ƀĺ|{kʊ
ofxʉĈɧđȴȒôtqɧđȽȊůƧdyb|SʑTôtwɧđx[fyƢǻkfyaxbkʊõ^ʉęȋ~ʎǃĄɧđȽȊůʉ	
 6	 	 HFGI7H>C8  8	 	  : 	 ʉǃ~]|Ƨdfyaxbkʊ	
 6 	 	
 HFGI7 H>C8   8 	 	  : 	 f~ƞaʉħÕŎƚ~ȽȊyĢēxb~xȩ\xi]ʊƭȁxfëɰf~ƧůôtwȾɚikʊ	 	    	 `"%'bDIW	 ɧđǗȊ÷ĔxkaʉĈw~ȴȒ|u\wĵjŴ~ȽȊk~xʉȴȒ~Ʈí|Żjwǭ{ĎǤhmfyaxbmʊofxʉɧđȴȒ~Ʈí|ŻjwğóĐŤhmq~
L=:G: Ɯaǧƀhw\kʊL=:G: ƜʉëØ~]{Ŵůxkʊ	
 
L=:G:	 ɧđƮí	 ɧđȽȊů	 fʉSɧđƮíT|ĴtqȴȒ|Ŝiw~ʉ
SɧđȽȊůTřȯky\]ƀĺxkʊõ
^ʉ	
 
G:6A	
 6   7  	 	
 L=:G:	
 6 	 	  	 7 	 	
 6 	 ~]|Ƨbkʊf~ L=:G: Ɯ~ɦĐ 9D ƜxȰmʉǃ~]|{kʊ	
 
	
 
	
 

Fortran スマートプログラミング— 第３回 もっとスマートなプログラムにしよう —— 45 —

9D	
 ?	
 	
  	
  	
 
	
 	
 9D	
 >	
 	
  	
  	
 
	
 	
 	
 	
 >;	
 6> ?	 	  	 7> ?	 	
 6> ?	
 
	
 	
 	
 	
 	
 	
 	
 	
 :C99D	
 :C99D	
 L=:G: ƜÂÑ´¤ƼƜ|kfyxbkʊÂÑ´¤ L=:G: Ɯxʉǃ~]| :AH:	
 L=:G:
ƜéĜiwʉƮí|Õȧi{\ŋĴ~Ⱦɚkfyxbkʊ	 L=:G:	 ɧđƮíʍ	 	 	 	 ɧđȽȊůʍ	
 
	
 	
 
	
 
:AH:	
 L=:G:	 ɧđƮíʎ	 	 	 ɧđȽȊůʎ	
 
	
 	
 
	
 
:AH:	
 L=:G:	 	 	 ɧđȽȊůʌ	
 
	
 	
 
	
 
:C9L=:G:	 f~ŋĴʉɧđƮíʍǖɒkȴȒɧđȽȊůʍ~ÂÑ´¤řȯiʉɧđƮíʍǖɒmlʉɧđƮíʎǖɒkȴȒɧđȽȊůʎ~ÂÑ´¤řȯiʉʊʊʊy\]ċĴ|ț\wʉĈw~Ʈíǖɒi{\ȴȒɧđȽȊůʌ~ÂÑ´¤řȯky\]ğó|{kʊÝɭ~:AH:	
 L=:G: |ɮkÂÑ´¤Ǵǫİȥxkʊ>; Ɯyɤtwʉ
SI=:CTaÙȴ{fyʉ
SĈw~ƮíëŏTȰkƜaS:AH:	
 L=:G:Tx[fyʉÂÑ´¤~ƨŵ|S:C9L=:G:TƜéĜkfyʉ{z|ǐƀiwØh\ʊõ^ʉ	
 G:6A	
 6   7  	 	
 L=:G:	  7 	
 	
  	
 
	
 	
 6 	 	
 7 	 	
 :AH:	
 L=:G:	 	 	 6 	 	
 7 	 
:C9L=:G:	
 ~]|Ƨdfyaxbkʊf~ÂÑ´¤ L=:G: Ɯ 9D ƜxȰmʉǃ~]|{kʊ	
 
9D	
 ?	
 	
  	
  	
 
	
 	
 9D	
 >	
 	
  	
  	
 
	
 	
 	
 	
 >;	
  7> ?	 	  	
 I=:C	
 
	
 	
 	
 	
 	
 	
 6> ?	 	
 7> ?	
 
	
 	
 	
 	
 	
 :AH:	
 	
 
	
 	
 	
 	
 	
 	
 6> ?	 	
 7> ?	
 
	
 	
 	
 	
 	
 	
 	
 :C9>;	
 
	
 	
 	
 	
 	
 	
 	
 	
 :C99D	
 :C99D	
 L=:G: ÂÑ´¤ÝxôǧkɧđʉĈwĵņx{e{mʊf~qʉL=:G: ÂÑ´¤~Ý|ʉħÕŎƚ~ȽȊůʉǃĄȴȒƚ~ǭ{ɧđȽȊůćfyxbmʊ	 	  |JU_	 ɧđǗȊô^ʉ9D Ɯô{dwɧđȴȒ~ȽȊaxbkaʉffx~ƧůxɧđȴȒgy|ǭ{ŘƚôǧkfyaxbmʊofxʉʍǃĄɧđrexkaʉɧđŘƚaǧƀhw\kʊC ü~ȴȒ`{ʍǃĄ~ɧđŘƚëØ~Ŵůxkʊ	
 
	
 	
 	
 	
 	
  Řƚʍ ŘƚʎŘƚ C 	 f~ybʉC ü~ŘƚĈwĵjņ~ƚþņx{e{mʊõ^ʉ	 — 46 —

SENAC Vol. 46, No. 1（2013. 1）

G:6A	
 6	
 
6	
 	
  









	
 

yƧeʉıɖřƚņ~ʍǃĄɧđŘƚx[ʉf~ɧđȽȊůʉ6
	
 6	
 6 	
 6
	
 6 y\]  ü~êćƜřȯiqfy|ǳųikʊf~ɧđŘƚʉǃ~]|ƊŲŚȼƜ~Ēƪþêć|ô]fyxbkʊ	
 
G:6A	
 	
 6 









	
 

i`iʉf~ŴůxƚþÕüÕüƧ`}{lʉȴȒƚaŐ\yőŎxkʊofxʉęŀ~ćďěƜ~ɈƢ|ďwbqʉ
S9D ņŴůTôtwŘƚȿŘkfyaxbkʊf
9D ņŘƚy\\kʊ9D ņŘƚyʉëØ~]{Ŵůxkʊ	
 
	
 	
 	
 	
 	
 ·Ô±ʍ ·Ô±ʎƛƚņŎƚĒƪþ ȕàþ	 f~ŴůxʉlƛƚņŎƚʅ¡Ò±ŎƚʆĒƪþ|iwʉ·Ô±ʍʉ·Ô±ʎʉyÜ ʉǃ|ʉ¡Ò±ŎƚʍōĜiwʉčŮʉ·Ô±ʍʉ·Ô±ʎʉ yÜ ʉ¡Ò±Ŏ
ƚaȕàþ|{xȠəiwŶɧđŘƚ|{kʊf~qʉɧđȴȒƚS·Ô±Ü~ƚQ¡Ò±Ŏƚ~¡Ò¸ŀƚT|{kʊõ^ʉ	  C 	 C  	 y\] 9D ņŘƚôtqɧđŘƚʉƛƚņ~ɧđŘƚʉ	       	 yĵjxkʊqʉ	  C 	 C 	 C  	 y\] 9D ņŘƚôtqɧđŘƚʉƛƚņ~ɧđŘƚʉ	            	 yĵjxkʊȳƚ~ 9D ņŘƚÜ G:6AC 	 C

qʉɞŨ~ŘƚyǔŅhmfyİȥxkʊõ^ʉ	      G:6AC 	 C  	
 y\]řƚņ~ɧđŘƚʉ	
 






    





	
 

yĵjxkʊf~ybʉņŎƓɮƚ~ G:6ACħ| C yƧdyÍÔ|{~xǐƀiwØh
\ʊfʉC aƛƚņ{~xʉC reƧdyÕu~ɧđŘƚ~Ý|řƚņyƛƚņaǔŅk`xkʊ	
 9D ņŘƚŐɨ|kfyİȥxkʊõ^ʉ	  >? >  ?  	 y\] 9D ņŘƚôtqƛƚņ~ɧđŘƚʉ	              	 yĵjxkʊŐɨ|iqŋĴʉ¡Ò±ŎƚČĀaĆ|ɢkʊ	 ƭȋƨĒ~õʉǃ~]| 9D ņŘƚôtwƧdfyaxbkʊ	
 G:6A	 6	 6	 	  C 	 C  	
 ffxʉıɖƛƚņ~ɧđxʉŦɖřƚņ~ɧđxkaʉf~ŋĴĈȴȒ|Ŝiwƛƚņ
`řƚņ~ŎƓaȯwêćh~xÍÔ|{mʊ{_ʉ9D ņŘƚƊŲhqŚȼƜx~Ēƪþêć|ô]fyxbkaʉ¡Ò±Ŏƚo~ŚȼƜę|Śȼhw\Źȴa[kʊ	 — 47 —

Fortran スマートプログラミング— 第３回 もっとスマートなプログラムにしよう —ɧđŘƚʍǃĄɧđi`ǧƀhw\mʊf~qʉʎǃĄë×~ɧđȽȊxô]ybʉʍǃĄgy|ȽȊkŹȴa[kʊõ^ʉ	
 G:6A	
 6 	 
>CI:<:G	
 > ?	
 
9D	
 ?	
 	
  	
 	
 
	
 	
 6 ?	 	  H>C:C99D	 >? 	
 >  	 ~]|ƧbkʊfëØ~ÃÑ¥ÍÈyĵȉxkʊ	
 G:6A	
 6 	 
>CI:<:G	
 > ?	
 
9D	
 ?	
 	
  	
 	
 
	
 	
 9D	
 >	
 	
  	
 	
 
	
 	
 	
 	
 6> ?	
 	
 H>C
	
 	
 :C99D	
 :C99D	 >?	 qrʉɧđȽȊx 9D Ɯô]~[¬ÆÔ¸x[mʊofxʉɧđ~ŴǠŎƓkȖɗɮƚ G:H=6E: aǧƀhw\kʊG:H=6E: ôtwʍǃĄ~ɧđŘƚŐǃĄɧ
đ|ŎƓkʉo~ŐǃĄ~ɧđȽȊů|Ⱦɚxbkʊf~ƞǏǃȋxɈƢikʊ	 	  |J"~'n$x$~_	 ɧđŰƚ|ƋuȖɗɮƚȪW[kaʉÞyiwɧđſŊ|ɮkɮƚȰʎ|ǻikʊ	 Ȱʎʊɧđ|ɮkȖɗɮƚ	
 
ɧđɮƚ	
 
Űƚ~ņ	
 
ɮƚþ~ņ	 
ɮƚ~ƀĺ	 HJB6	 ɧđ	 ɧđȴȒ~ņ	 Ĉw~ɧđȴȒ~ļ	 EGD9J8I6	
 

ɧđ	
 

ɧđȴȒ~ņ	 Ĉw~ɧđȴȒ~Ȃ	
 



ɧđ	
 

ɧđȴȒ~ņ	 Ĉw~ɧđȴȒ~ƨŞþ	 

B6MK6A6 	
 

ɧđ	
 

ɧđȴȒ~ņ	 Ĉw~ɧđȴȒ~ƨőþ	 B>CAD86	
 

ɧđ	
 

ƛƚņɧđ	 Ĉw~ɧđȴȒ~ƨŞþ~ðȡ	
 B6MAD86	
 

ɧđ	
 

ƛƚņɧđ	 Ĉw~ɧđȴȒ~ƨőþ~ðȡ	
 



ɧđ	
 

ƛƚņɧđ	 

ɧđ~ĳǃĄ~ƨŞȴȒǬĲÎ¬¸	 

J7DJC96 	
 

ɧđ	
 

ƛƚņɧđ	 

ɧđ~ĳǃĄ~ƨőȴȒǬĲÎ¬¸	
 H=6E:6	 ɧđƛƚņɧđ	 

ɧđ~ĳǃĄ~ȴȒƚÎ¬¸	
 H>O:6	
 

ɧđ	
 

ƛƚ	
 

ɧđ~ĈȴȒƚ	 B>CK6A6 	 A7DJC96 	 G:H=6E:6 H	  ɧđyƛƚņɧđ	 6AAD86I:96	
 

ɧđ	
 

6 ~ņ~ɧđ	 ɋǤ	 ɧđ 6 ɧđ H xƌŘhqņ~	 ɧđ|ŎƓk	 ɧđ 6 aĚéew\Ƕʉ	 h{dā	 	
 ffxʉ	
 ~é\qɮƚʉŰƚɧđ~ŵ|ǃĄǻkƛƚņ~ŰƚɛĜiwʉo~ǃĄ|ɮkþĭďkfyxbkʊõ^ʉ	
 G:6A	
 6GG6N 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 Q ~ɧđ	
 >CI:<:G	 B C C	
 
B	
 	
 	
 H>O:6GG6N	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 ĈȴȒƚ Q	
 
C	
 	
 H>O:6GG6N 	
 	
 	
 	
 	
 	
 	
 	
 ȇʍǃĄȴȒƚ 	
 
C	
 	
 H>O:6GG6N 	
 	
 	
 	
 	
 	
 	
 	
 ȇʎǃĄȴȒƚ 	 yƧeʉB |ʉ6GG6N ~ĈȴȒƚx[  aêćhʉC | 6GG6N ~ȇʍǃĄ~ȴȒƚx— 48 —

SENAC Vol. 46, No. 1（2013. 1）[  aʉC | 6GG6N ~ȇʎǃĄ~ȴȒƚx[  aêćhkʊ	 Ȱʎxʉɮƚþ~ņaSƛƚņɧđT|{tw\ɮƚʉŰƚ|Ú^qɧđ~ǃĄȴȒƚ|ƋuʍǃĄƛƚņɧđaƅþxkʊo~ɵʉo~ʍǃĄɧđ~ĳȴȒ|ʉŰƚɧđ~ĳǃ
Ą~ſŊaêćhw\kʊõ^ʉØɱy×ɱĭŶkq~ɮƚʉA7DJC9 y J7DJC9 ëØ~]|ô\kʊ	
 G:6A	 77   	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 ʎǃĄɧđ	 
>CI:<:G	
 7ADL 7JEE	
 	
 	
 	
 	
 ʎǃĄ{~xȴȒƚ  ~ɧđ	
 
7ADL	
 	
 A7DJC977	
 
7JEE	
 	
 J7DJC977	 EG>CI	
  7ADL 7JEE	 ffxʉʎǃĄɧđ 77 ʉȇʍǃĄ~Øɱa  ʉ×ɱa  ʉȇʎǃĄ~Øɱa ʉ×ɱa  xk`ʉŘƚxƧeʉ7ADL    ʉ7JEE    |{kʊf~ybʉJ7DJC977 ~]|ʉǃĄ|ɮkŰƚĜ^yʉo~ȗƳÕü~ƛƚʅf~õx ʆ|{kʊ	
 G:H=6E: ʉɧđ~ŴǠŎƓkɮƚxkʊooʉz{ǃĄ~ɧđÉÊÎ×xʍǃĄǰ|Üx\~xʉʎǃĄɧđ 6 yʍǃĄɧđ 7~]|ʉĈȴȒƚaȉi\ɧđĵj]|ĭƈ^lxkaʉɧđǗȊʉǃĄ_ĳǃĄ~ȴȒƚaȉi\ʉĵņ~ɧđɭxi`ɀİhw\mʊofxʉ6 y 7~ɭxǗȊk|ʉŴů×ʉ
ĵņ|{]{ŎƓaŹȴxkʊfřȯk~aɮƚ G:H=6E: xkʊG:H=6E: |ʉƨĒ~Űƚ|ŎƓiq\ɧđÚ^ʉʎǬǱ~Űƚ|ŎƓŵ~ŴǠȰkʍǃĄɧđÚ^kʊffxŴǠȰkʍǃĄɧđyʉŎƓŵ~ɧđaʉ@Q@Q
Q@C ~ C ǃĄɧđx[ʉ	  @ @@C 	 xÚ^ȴȒƚ C ~ʍǃĄƛƚņɧđ~fyxkʊõ^ʉ  ȋƨŵ~õƜʉ	
 G:6A	
 6 	 
>CI:<:G	
 > ?	
 6 	 	
 G:H=6E: H>C

>? 	
 >  	
 ?   	    	 yƧdfyaxbkʊG:H=6E: ~ȇʍŰƚ 9D ņŘƚ{~xʍǃĄɧđxkaʉfȇʎŰ
ƚ~   x Q ~ʎǃĄɧđ|ŎƓk]ƌŘiw\exkʊ	
 f~ɧđ~ŴǠȰkʍǃĄɧđʉɮƚ H=6E: ôtwĭŶkfyaxbkʊõ^ʉ
×Ⱦ~ 6 y\]Śȼiqɧđ|ŜiʉH=6E:6ʉʍǃĄƛƚņɧđʉ   |{kʊofxʉ×Ⱦ~ɧđȽȊůǃ~]|Ƨdfyaxbkʊ	
 6 	 	
 G:H=6E: H>C

>? >  ?   H=6E:6	
 i`iʉfxr 9D ņŎƚ|_e >  ? ~ȌŁƌŘaŘƚ~xkʊofxʉffĆzɈƢiqɮƚ H>O: xƧbǲkyȩ\xi]ʊ	
 6 	 	
 G:H=6E: H>C

>? > H>O:6  ? H>O:6   H=6E:6	
 f~ɧđȽȊů{ʉŚȼƜ~ȴȒƚŎƦkrexŎƦŗàxkʊ	 	
  |J#OiL&C	 ɧđŚȼkyb|ʉƛƚŘƚÚ^wȴȒƚƢǻi{e{mʊfʉo~ſŊ|ŉv\wʉÃÑ¥ÍÈ~ğóɬŒƥ|ȽȊxôǧkÉÊÎɩǺŘkqxkʊi`iʉƨɘ~¦ÒÀËÔ±xÃÑ¥ÍÈ~řȯÝ|Źȴ|{tqÉÊÎǺúiqʉÙȴ|{tqÉÊÎȻƘky\]ğóaʁȟ|ȯw\kʊf~]{ʉÃÑ¥ÍÈ~řȯÝ|Źȴ|ŻjwÉÊÎǺúkfySğǰĚéeTy\\kʊ DGIG6C  DGIG6C `ğǰĚéeaİȥ|{ʉÃÑ¥ÍÈ~ğó|Źȴ{ȴȒƚƋuɧđřȯÝ|Ǻúxb
]|{iqʊğǰĚéeô]yʉÉÊÎĞǢ~ȩ\ǌǧž~[ÃÑ¥ÍÈóƄkfyaxbkʊffxo~ƞǏȔæikʊ	 Fortran スマートプログラミング— 第３回 もっとスマートなプログラムにしよう —— 49 —lʉ¨ÂÏÔ³Ò~ÝxŹȴ|ŻjqȴȒƚ~ɧđǺúkȍħ{ƞǏyiwʉ¨ÂÏÔ
³Ò~ŰƚôtqɧđŚȼa[kʊõ^ʉǃ~¨ÂÏÔ³Òx G:6A Śȼhw\ʎǃĄɧđ 7 af|ǳųikʊ	 HJ7GDJI>C:	 B:BDGN6 B C	 	 	 >BEA>8>I	
 CDC:	 	 	
 G:6A	
 6B C 7B C M	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 Űƚ B y C ôtwŚȼk	 	 	 >CI:<:G	 B C > ?	
 
	
 	
 M	
 	
 
	
 
	
 	
 7 	 	
 MG:H=6E: >? > B ? C  H=6E:7	 	
 	
 6 	 	
 7 	
 :C9	
 HJ7GDJI>C:	 B:BDGN	 ɧđ 7 ʉf~¨ÂÏÔ³Òa¦ÔÏhqyb|ʉŰƚ B y C ~þôtwǺúhkʊf~ybʉ7B C~]{ħȑ{Śȼrex{dʉ7 B C ~]{ʉØɱƌŘȽȊůôtqŚȼİȥxkʊ{_ʉɧđ 6 ŰƚôtwŚȼhw\kaʉ6 Űƚ|ĸw\~xęŀɈƢiqƛĴɧđxkʊƛĴɧđʉŰƚɧđ~ĭƈ\ǍçȖ|kclʉɧđȦñ¨ÂÏÔ³ÒĀ|[mʊ	
 Űƚ|ĸw\{\ɧđ 7 ÑÔ¡Ïɧđx[ʉŚȼhq¨ÂÏÔ³Ò~ÕƥÉÊÎɿň|ƆŢikʊ  ȋxɈƢiq]|ʉÕƥÉÊÎɿň|ƆŢkÑÔ¡ÏŎƚʉ¨ÂÏÔ³ÒĻďiqƥǙxǦƄhkʊŰƚ~þ¨ÂÏÔ³ÒɬŒƥ|ǺŘiw\~xʉfôtwɧđ|Źȴ{ÉÊÎǺúkfyaİȥ{~xkʊqriʉf[dx¨ÂÏÔ³ÒxŚȼkɧđ|u\w~ô^ǁȥx[ʉÉÒÃÑ¥ÍÈ~ɧđÊ«ËÔÏÝ~¥ÑÔ½Ïɧđyiwô^mʊ	
 ofxʉÉÊÎ~ğǰĚéeƢǻǰ|ȯ]çȖaǧƀhw\kʊ DGIG6C xğǰĚéeȯ]|ʉâu~ƇțbaŹȴxkʊÕuʉĚéeqÉÊÎɧđyiwôǧkq~ɧđĶ~ŚȼxkʊfʉĚéeqÉÊÎ~Ćʀ¹Ð¬úƋkq~ÉÊÎǧƀkfyryȣ^kʊ]Õuʉo~ɧđĶ|ʉřɵ~ÉÊÎĚéeğóxkʊęȤŚȼƜ{~xɻřȯƜʉŵȤÃÑ¥ÍÈřȯÝ|Ěée~xřȯƜxkʊ	 ÉÊÎĚéeáŘ~ɧđĶʉ6AAD86I67A: ŢžéewņŚȼikʊf~ybʉɧđ~ǃĄſŊ¦ÑÒSTôtwǻkŹȴa[kʊɧđ~ǃĄ¦ÑÒ~ƚxǍʉřȯƥ|ŎƦkfyxbmʊõ^ʉ	
 G:6A 	
 6AAD86I67A:	 	 67 O 	
 >CI:<:G 	
 6AAD86I67A: 	
 9>B:CH>DC 	
 	
 @B	
 
~]|ŚȼikʊʍȯǱ~]|ʉĶę~ŵ|ǃĄſŊéĜiwȩ\iʉʎȯǱ~
]|ʉ9>B:CH>DC Ţžô]fyİȥxkʊf~õ~ŋĴʉ67 ʍǃĄřƚņɧđʉO ʎǃĄřƚņɧđʉ@B ʎǃĄƛƚņɧđyiwĚéefyaxbkʊ	 ɧđ~Ěée 6AAD86I: Ɯxȯ\kʊ6AAD86I: Ɯʉǃ~]|ɧđ~ȴȒƌŘ¨Â
ÏÔ³Ò~]|`tfxŁxȾɚikʊ	 	
 6AAD86I:	
 	
 67

 	
 O B

BB 	
 @B@  @	 	 `tfČʉɧđŚȼyĵjŴůxkʊ67  @B ~]|ʉȴȒƚ|ƛƚreÚ^yʉo~ǃĄ~Øɱ  |{iʉO ~]|SʑTôtwØɱƌŘkfyİȥxkʊĚéeybʉɧđ~ŎƚņaǔŅiw\w`\mʊ6AAD86I: ƜřȯƜ{~xʉO  @B~]|ƛƚņŎƚƛƚů~ȽȊȗƳôtwĚéefyİȥxkʊÕƠĚéeqɧđʉɞŨ~ŚȼƜxŚȼiqɧđyĵƽ|ôǧkfyaxbkʊ	 qriʉ|ĚéeȠəkyʉ¦ÒÀËÔ±xĔǧxbśɩɐ^SÉÊÎÔ½ÔT|{İȥža[kʊofxʉÙǧ|{tqɧđ~ÉÊÎɿň 9:6AAD86I: ƜxȻƘkfyaxbkʊ9:6AAD86I: Ɯʉǃ~]|ɧđĶre`tfxŁxƌŘikʊ	 — 50 —

SENAC Vol. 46, No. 1（2013. 1）

9:6AAD86I:	
 	
 67 	
 O 	
 AB	
 	
 
ÉÊÎ~ĚéeȻƘozƥɭa``ĎǤx{\~xʉŹȴ{yb|Ěéewʉ
Ùȴ|{tqȻƘk]|ii]ʊõ^ʉĆz~¨ÂÏÔ³Ò B:BDGN ʉëØ~]|ƧbƓ^fyaxbkʊ	 HJ7GDJI>C:	 B:BDGN6 B C	 	 	 >BEA>8>I	
 CDC:	 	 	
 G:6A	
 6B C M	
 
	
 	
 	
 	
 	
 	
 	
 	
 G:6A 	 6AAD86I67A:	
 	
 7 ! ĚéeǧʎǃĄřƚņɧđ	 	 	 >CI:<:G	 B C > ?	
 	 	 6AAD86I:	
 7B C	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 BQC ~ʎǃĄɧđĚée	
 
	
 	
 M	
 	
 
	
 
	
 	
 7 	 	
 MG:H=6E: >? > B ? C  H=6E:7	 	
 	
 6 	 	
 7 	 	 	
 9:6AAD86I:	
 7	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 ÉÊÎ~ȻƘ	
 :C9	
 HJ7GDJI>C:	 B:BDGN	 {_ʉŰƚŎƚôtwŚȼiqÑÔ¡ÏɧđÕƥÉÊÎɿň|ƆŢikaʉ6AAD86I: ƜxĚéeqɧđŃŘÉÊÎɿň|ƆŢik ʊ¨ÂÏÔ³Ò|_eÕƥÉÊÎɿňŃŘÉÊÎɿňśɩaş{\fyaŐ\~xʉȴȒƚ~őb{ɧđĚéeyb
6AAD86I: Ɯô]ƞaȩ\xi]ʊ6AAD86I: ƜôtqğǰĚéeʉÉÒÃÑ¥ÍÈxĔǧxbiʉÊ«ËÔÏ~ÝxɧđŚȼiwʉ¥ÑÔ½Ïɧđyiwôǧkfyİȥxkʊ	
 qriʉ6AAD86I: ƜxĚéeqɧđʉȻƘi{\xčŮ 6AAD86I: ƜxĚée]ykyřȯƥÍÔ|{kʊqʉĚéeę|o~ɧđôǧi]yiwřȯƥÍÔ|{kʊofxʉɧđakx|Ěéew\`z]`ǺɅkɮƚ 6AAD86I:9aǧƀhw\kʊ6AAD86I:9 ɋǤņ~þəkɮƚxʉ6AAD86I67A: ŢžƋuɧđŰƚ|Ú^yʉo~ɧđakx|Ěéew\SǶTʉĚéew\{eSāT
əikʊɋǤņ~ɮƚʉo~ >; Ɯ~Ʈíyiwô]fyaxb~xʉõ^ǃ~]|Ĕǧkfyaxbkʊ	
 G:6A 	
 6AAD86I67A:	
 	
 6	
 >CI:<:G	
 > C	
 
	
 
>;	
 6AAD86I:96	
 I=:C	 	 	
 6	 	   > > C 	
 	
 	
 	
 	
 	
 êćʍ	
 
	
 :AH:	 	 	
 6AAD86I:	
 	
 6C	 	 	 	 6	 	   > > C 	
 	
 	
 	
 	
 	
 êćʎ	
 
:C9>;	
 f~ŋĴʉɧđ 6 akx|Ěéew\SêćʍTřȯiʉĚéew\{eʉ6AAD86I: ƜxĚéew`SêćʎTřȯikʊ	
 	
 

	
  _Gvk)sN'6<A#/7=A2?;+7;<	 ƭȁ|_e DGIG6C ÃÑ¥ÍÇÒ¥~ɈƢë×xkʊfxȔæiqƜǏôtwȪW
{ÃÑ¥ÍÈƧ\wwØh\ʊqrʉȳɷ{ȽȊÏ§Î­ÈôtqÃÑ¥ÍÈk w
Õ`Ƨd~`{~Ƈɭa``kʊÏ§Î­È|twÒ±Ô¼´¸×|¨ÂÏÔ³ÒÍÂÍÎyiwĉɬhw\~xʉfĔǧiwÃÑ¥ÍÈóyƇɭaǴe10

qriʉ¨ÂÏÔ³Òȳƚŀ¦ÔÏkq|ŃŘÉÊÎɿň|ƆŢhmfyĔǧkŋĴ|ʉɧđ
Ķ~Śȼ| save ŢžĜ^wʉɧđĶŃŘÉÊÎɿň|ƆŢhm{e{mʊFortran スマートプログラミング— 第３回 もっとスマートなプログラムにしよう —— 51 —

kʊffxȈȤaôtqfy~[ÍÂÍÎ~Ý`_Ġ\du`Ȕæikʊ	 	  y6A<,R^	 ÿŸĐƞǿů~ȻǏ·Ô±ȻƲxȩdô]ʄɟÁÔÎŎƓʅ 6HI	  DJG>:G	 ,G6CH;DGB 	  ,ʆʉÏ§Î­ÈaȳɷxʉĞǢ~ȩ\ÃÑ¥ÍÈȦók~őŎxkʊȈȤtyȍħ{ÐÄÏ~ÃÑ¥ÍÈótqfy[kaʉƨɘ¼´¸xĉɬhw\~ôt
w\kʊ_Ġ{~ʉ ,/ʅ 6HI:HI	  DJG>:G	 ,G6CH;DGB	
 >C	
 I=:	
 /:HIʆxkʊ	 =IIE

LLL ;;IL DG< 	
 f~ÍÂÍÎ|ʉ DGIG6C `ôǧxb¨ÂÏÔ³Òaćtw\kʊ	 	  SF}vk	 DGIG6C x~ýȎŮřƚ 7NI: xʉƩĞƚŔ  ƶǿŮxkʊʐýȎŮřƚ 7NI: xƩĞƚŔa  ƶǿŮ|ōĜikaʉoë×ǚǤriʉ¦Ò¾Í|twʐýȎŮřƚa
ô^{\fy[kʊȈȤŐɽů~ƴȽȊkyb|ʄȎŮȽȊaŹȴ|{tqfya[kʊƚģǃ~ŐɽůȽȊkybʉƨőǃƚ~ɽyƨŞǃƚ~ɽy~ƚþ~ŧaɻŨ|őbdwʉƶȮsaǓĖ{ľʂ|{`xkʊ	
 f~yb|÷Ĕ{~aŐýɪȽȊÍÂÍÎxkʊfʉîƀ~ȎŮxřƚȽȊkfy
axb~xkʊɞŨ~ȽȊĎǤ|ƥɭa``kaʉȎŮăĆ~yb|Ŷmʊ¼´¸×|òȀʃ`ĉɬhw\kaʉȈȤaôtw÷Ĕrtq~ʉ &%# xkʊ	 =IIE

BNL:7 ABJ :9J 9BHB>I=&%# =IBA	 f DGIG6C ~Ê«ËÔÏ|{tw\wʉĿėǗȊSʈVʇʋT~ȾĲxƧeiʉH>C  8DH{z~ɮƚąřiw\kʊƭȁxɈƢiw\{\Ƽɠñ~ǷɍaşireŹȴxkaʉŎƚŚȼǿŮ{~xozɹid[mʊȈȤʉýȎŮȽȊǧ|ótqŐɽů~ƴȽȊkÃÑ¥ÍÈʉozőb{ŎƦkfy{dŐýɪxğóhmfyaxbiqʊ
	
 

	
  B_hf	 ȽȊǁªÇËÐÔªÌÒ|ʉƥɭǮš~ƞǿůȻdfyxƫƯáǕkǍŘɋǰƇǏyʉ¨¦ÑƍtwǺǢǰ|ŝƯ~İȥžƏǺǢɋǰƇǏa[kʊŵȤ~ǺǢɋǰƇǏxʉ¨¦Ñ|ǳųkĂbk~aßƚxkʊ DGIG6C |ʉßƚǮǦǧ~Ȗɗ¨ÂÏÔ³
Ò G6C9DB5CJB7:G aǧƀhw\~xʉ	
 86AA	
 G6C9DB5CJB7:GM	 ~]|Ƨeʉßƚ M Ŷfyaxbkʊi`iʉßƚĹƪɪaľʂxʉĹƪ~Ǹ\ßƚô]yȩ\ªÇËÐÔªÌÒȗƳaŶmʊG6C9DB5CJB7:G xĹƪɪaÙɒkyb|_Ġ{~ʉĹƪaɻŨ|ɪ\ßƚyiwƩĶ{ʉ&:GH:CC:	
 ,L>HI:G xkʊfȣƷiqƱƭǵhaëØ~¨¸xÃÑ¥ÍÈĉɬhw\kʊ	 =IIE

LLL B6I= H8> =>GDH=>B6 J 68 ?E PB B6I &, BI =IBA	 Ʊƭhaĉɬhw\~ʔȼɆxƧ`q~xkaʉÎÒ¤ɶ~Ý| DGIG6C ǧ~ĉɬĆaćtw\kʊ	
 	
 

	
  _Gvk;+7;<	 ɡȅƞǿů~ȻǏƚþȂĐ{zʉÕȨǰ{ƚþȽȊÍÂÍÎa[ʉƚþȽȊ~ÃÑ¥ÍÈó~aƺ|{kʊqrʉǆż{aȈȤÁÎÔ~ȩ\ÍÂÍÎǷmʊ
¼´¸xĉɬhw\wô^o]{~|ʉ!+%ʅ!'-	
 +8>:CI>;>8	
 %>7G6GNʆa[kʊ	
 
=IIE
11

LLL <CJ DG< HD;IL6G: <HA 	
 ¨½Ô¨Ò¬®Ò±Ô~ȽȊǁ|Ľǧ~¨ÂÏÔ³ÒÍÂÍÎaÒ¬¸ÔÏhw\kʊɄidʉShttp://www.ss.isc.tohoku.ac.jp/super/library.htmlTgȹØh\ʊ

— 52 —

SENAC Vol. 46, No. 1（2013. 1）

qriʉŉƭǰ|ʔȼɆǧ{~xʉ DGIG6C xô]|ȬŪ¶¤»´¤a\]xkʊqʉstyôtwiqaʉŹliɟd[mʊÄ´®Ïɮƚ{z~ǟǅɮƚʉo~ʄɟ½Ô«ÌÒĉɬiw\¨¸`²ÒÑÔ¹iqƞaȩ\yŽ\kʊȈȤʉƚþȽ
Ȋ~ƙǽƧɉxĩǤ`Ȧók`ʉīȣƜǡ2 3|Ɛɕhw\~¦ÀÔiwô]fyaŐ\xkʊ	 	
  .;6*3-;+7;<	 ȽȊǁªÇËÐÔªÌÒǞǤǰ|ɏftw\ǣɎƾƖk~xkaʉďěhƚþrexǣɎɉĭ~śƣx[mʊofxŹȴÙİǂ{~aİȷġ°Á¸xkʊÁÎÔ~İȷġ°Á¸yiwƩĶ{~| <CJEADI a[kʊ	 =IIE

LLL <CJEADI >C;D 	 ÃÑ¥ÍÈ~ȗƳÁÏ|úŕiw_eʉ<CJEADI `oɉɗxʉƽW{¥ÍÁ|ĜťiwȰǻkfyaxbkʊ	 ƨɘ~¾°¦ÒŉƭƕóaĈw¿«ËÏx[ʉ¥ÍÁ´¤ďěǁȥ (+ |Ȗɗw\kʊ DGIG6C |¥ÍÁ´¤ďě|ɮkƜǏ[maʉè~ȼɆxƧ`q¥ÍÁ´¤ÍÂÍÎyÎÒ¤kʉ DGIG6C ÃÑ¥ÍÈ`¨ÂÏÔ³Ò¦ÔÏkŴů
xłƑdfyaİȥxkʊo~Õu|ʉȈȤaótq G6B:H a[kʊ	 =IIE

LLL EE I::C H:IHJC6C 68 ?E ;G6B:H 	
 G6B:H ʉ DGIG6C xô]q~¥ÍÁ´¤µÔÏyiwɬǮiwbq~xʉƭȁxɈƢiqǷɍrexȍħ|ʎǃĄʏǃĄ~¥ÍÁƑdfyaxbkʊqʉƑǪiqłŴÉÔ«»ÉÔªÌÒŴůxďěiwʉÃÐ¯Ò¶ÔªÌÒ|ô]fyİȥxkʊȩ`tq
ɂiwwØh\ʊ	 zw)m'"[	 åŀʉęŀx|ɈƢiqƧů~ƊŲyʉƜŔđɧđȽȊů~ô\ƞɈƢiiqʊ
DGIG6C |ʉf~è|ȪW{ƜǏaǧƀhw\wʉƼɠñôtq Â«¤¸ƌķǰ{ÃÑ¥ÍÇÒ¥İȥxkiʉƨƝ~ DGIG6C  |ÜđĎǤ~Ⱦɚxćtw\kʊi`iʉȈȤaȽȊǁªÇËÐÔªÌÒkq|ôtw\ƜǏʉf~ʏŀ~ČśxĈw
xkʊƚþȽȊȽȊǁªÇËÐÔªÌÒʉȽȊǁĞǢȩdğ`ih^koxȩ\~x[ʉƝi\ƜǏŹliŹȴx[mʊ¦ÒÀËÔ±~ğóyÃÑ¥ÍÈy~ɮøaǤȻxbʉŵ\dxȳɷ{ȽȊhmfyaxbkʊ DGIG6C ôtw¦ÒÀËÔ±S¬ÆÔ¸|Tô\f{iʉƚþȽȊȽȊǁªÇËÐÔªÌÒtytyƺix^yŽ\kʊ	 ƭȁʉȈȤaƔĦőŖ~ĥǹǦķe|Ƨ\q DGIG6C ~¶¢¬¸aÄÔ¬|{tw\kʊfʉőɯőŖÐÔ©Ô¼Ï£ÔŖǹȃ®Ò±Ô~ǼǨăœǊa /:7 xĉɬxb DGIG6C¶¢¬¸Əiw\y\]~xƒöiqyfʉŀŀtwfsxɡɕhmw\qrdfy|{iqʊƨŵ|ʉf~]{ǁïÚ^wØhtqǼǨăœǊ|Ǔ\ƁɌ~ƀȰiwʉƭȁȕ^q\yŽ\kʊ	
 

Pq`e
23	
 ćɫ DGIG6C řɓÃÑ¥ÍÇÒ¥ʉưǨŬǀÓţƭȫäÓǝǎĬûʉ°Á¸½Ò¤ʉ ū	
 23	
 'JB:G>86A	
 *:8>E:H	
 >C	  DGIG6C	
  	
 +:8DC9	 9>I>DC 	
 / 	
 " 	
 )G:HH 	 + 	  	
 ,:J@DAH@N 	
 	
 
	
 
/ 	
 , 	
 .:II:GA>C< 	
  	
 ) 	
  A6CC:GN 	
 6B7G>9<:	
 -C>K:GH>IN	 )G:HH 	  	 
23	 'JB:G>86A	
 *:8>E:H	
 >C	  DGIG6C	
  	
 / 	
 " 	
 )G:HH 	 + 	  	
 ,:J@DAH@N 	
 / 	
 , 	
 .:II:GA>C< 	
 	
 
	
 
 	
 ) 	
  A6CC:GN 	
 6B7G>9<:	
 -C>K:GH>IN	 )G:HH 	  	 

SENAC Vol. 46, No. 1（2013. 1）— 53 —[全国共同利用情報基盤センター研究開発論文集 No.34 より]東北大学サイバーサイエンスセンターにおけるユーザコードの高速化支援活動
佐々木大輔†，山下毅†，小野敏†，大泉健治†
江川隆輔‡，小林広明‡†
東北大学 情報部 情報基盤課
東北大学サイバーサイエンスセンター スーパーコンピューティング研究部

‡

1

はじめに
東北大学サイバーサイエンスセンター(以下，本センター)は，その前身の一つである大型計算機センターの設立(1969 年)以来，研究室のレベルを遙かに超える最高性能の計算機システムを設置し，最先端の学術研究を強力に支援してきた．さらに，利用者にとって使い勝手の良いシステムの構築，他では実行できない大規模プログラムの実行環境の整備を行うと共に，スーパーコンピュータの性能を最大限に発揮することを目的に，利用者，本センター教員・技術職員，ベンダーが一体となってプログラムの高速化技術および新しいシミュレーション技術の研究・開発に取り組み，計算科学・計算機科学の発展に貢献してきた．本稿では，はじめに本センターのシステム概要および自動バッファリング機能を持つコ
ンパイラへのアップデート，次に共同研究を通した高速化支援活動の取り組みについて述べる．

2

大規模科学計算システム

2.1 システム概要
本センターでは，全国のベクトル型計算機ユーザの高いニーズに応えられるシステム構成を目的に，ベクトル型スーパーコンピュータSX-9とスカラ型並列コンピュータExpress5800を運用している．
ベクトル型スーパーコンピュータSX-9は1ノードあたり16個のCPUで構成され，シングルコアのCPUは
1CPUあたり102.4Gflop/sの演算性能を有する．また，1ノードあたり1Tバイトの共有メモリと1CPUあたり
256Gバイト/秒と高いデータ転送能力を有し，大規模かつ高性能な処理を可能にしている．ベクトル型のスーパーコンピュータは，高いメモリバンド幅とループ中で繰り返し処理されるような大規模な配列データを一括して演算実行することで，流体解析や気象解析，電磁界解析をはじめとするメモリバンド幅に対する要求の高い大規模科学シミュレーションを高効率で実行可能である．
Express5800はSX-9システムのフロントエンドサーバとして機能するばかりでなく，汎用のアプリケー
ションや，ベクトルスーパーコンピュータに適さないアプリケーションの実行に用いられている．このように，本センターではベクトル・スカラと2種類のスーパーコンピュータを配備・運用することで多様なユーザの計算要求に応えられる計算サービスを提供している．

2.2

コンパイラによるADB向け最適化の評価

本センターは，FortranコンパイラおよびC/C++コンパイラに対し年に数回のアップデートを実施し，最新の環境を利用者に提供している．本年は既に2回のアップデートを行い，機能強化,機能追加およびバグ修正に対応している．ベクトル化促進等の最適化強化や性能解析ツールの強化が主な内容だが，本年はADBを用いた自動ベクトルデータ・バッファリング機能を新たに追加している．

— 54 —

2.2.1

SENAC Vol. 46, No. 1（2013. 1）

ADB(Assignable Data Buffer)

SX-9ではCPUと主記憶装置間にADBと呼ばれるベクトルデータをバッファする機構が新たに追加されている．図１にADBの概念図を示す．ADBはCPU―主記憶装置間よりメモリバンド幅が広く,レイテンシ（遅延）が短いという特徴を持っている．また,通常のキャッシュメモリとは異なり利用者が選択的にデータをバッファリングすることが可能である．ベクトル計算機は,大きいメモリバンド幅を持ち,高いデータ供給能力を有する．データ供給能力は，ベクトル演算性能あたりのメモリバンド幅である
B/F(Bytes/FLOP)で表され,これまでのベクトル計算機は4B/Fと高いデータ供給能力を有していた．ところが，近年マイクロプロセッサの様々な設計制約により，SX-9のデータ供給能力は2.5B/Fに低下している．そこで，ADBを用いる事で，SX-9のデータ供給能力を2.5B/Fから4.0B/Fに向上させることが可能にな
る．

2.2.2 自動ベクトルデータ・バッファリング機能
ベクトルデータ・バッファリングとは，再利用性のあるベクトルデータをADBに保持することである．
プログラム中で頻繁にアクセスされる配列をADBに保持することでデータ供給能力が向上し，アプリケー
ションの高速化が期待できる．これまで，バッファリングをするには指示行を用いて，保存する配列を指定する必要があり，ADBを効果的に利用するには利用者の判断によるところが大きかった．しかし，本年3月のコンパイラアップデートにより自動ベクトルデータ・バッファリング機能が追加され，FortranおよびC/C++ともにバッファリングの自動化が可能になった．センターで利用されている各種プログラム
を,自動バッファリング機能の有無で比較した結果を図２に示す．前コンパイラは自動バッファリング”
なし”，現コンパイラは自動バッファリング”あり”の場合の性能を示している．各プログラムとも実行
時間にして概ね数パーセントの性能向上が得られていることがわかる．性能が低下しているプログラム
も一部見られるがこれはスカラデータ・命令がベクトルデータによりADBから追い出されたためと考えられる．この結果から，本センターで実行されている多くのプログラムが自動化の効果を得られると判断し,規定値で自動化を有効とし利用者への提供を開始している．

図１ ADBの概念図

3

図２ 自動バッファリング機能の有無による性能比較

高速化支援活動
スーパコンピュータシステムの潜在能力を最大限に享受し，大規模かつ高精度な計算機シミューションを実現するためには，コンピュータシステム，およびプログラミング技術に関する高度な知識が求められるのが実情である．このような状況下で，本センターでは「最先端，かつ世界最高性能クラスのコ
ンピュータシステムの導入，利用環境の整備・運用・研究・開発」という使命を果たすために，1997年

— 55 —

東北大学サイバーサイエンスセンターにおけるユーザコードの高速化支援活動

より利用者・センター運用スタッフ（技術系職員・スーパーコンピューティング研究部教員）,ベンダーの技術者から構成される高速化支援体制を整備している.
本センターでは，この支援体制のもと，自動ベクトル化，自動並列化機能のみに頼ることなく，実シ
ミュレーションコード解析に基づく臨床学的研究開発を行い，ユーザプログラムの高速化支援活動に取り組んできた．表１に1999年から2012年にかけて本活動を通して，取り組んできた高速化支援の結果を示す．この間，合計163件のプログラムの高速化に取り組み，平均で単体性能向上比は39.3倍，並列性能向上比12.2倍を実現しており，高速化支援が高い成果を上げていることがわかる．
さらに，1997年から全国に広がる本センターのユーザ(計算科学者)とセンター(計算機科学者)が連携し，サイバーサイエンスセンター共同研究として131件の共同研究を推進している．また，2008年からは文部科学省先端研究施設共用促進事業，2010年からは大規模情報基盤共同利用・共同研究拠点の一拠点として，全国の計算科学者らとの共同研究も推進している．次に，本年度の代表的な高速化支援活動例をとりあげ説明する．
表１高速化実績

3.1.

年

1999

2000

2001

2002

2003

2004

2005

2006

2007

2008

2009

2010

2011

件数

8

9

10

7

18

20

8

29

10

15

8

8

13

単体性能
向上比
並列性能
向上比

4.5

2.5

1.6

2.2

6.7

2.9

1.5

3.1

33.0

9,3

381.0

47.0

16.2

31.7

8.6

4.9

2.8

18.6

4.5

4.1

8.0

1.9

5.1

3.6

48.0

17.2

ベクトル化率促進による高速化

ベクトル処理は DO ループによる配列データの繰り返し演算を，ベクトルユニットを用いて一括に実行するものである．ベクトル型スーパーコンピュータの高い実効性能を得るためには，プログラム全体に対するベクトル処理可能な割合であるベクトル化率を，出来る限り 100％に近づける必要がある．また，ベクトル処理を高速に行うためには，主記憶装置からベクトルユニットに対して，データを滞りなく供給する必要がある．
DO ループのベクトル化を阻害する要因としては，1）配列要素の定義・引用関係に依存関係がある 2）配列要素が確定されない IF・CASE 文を含む

3）配列データのアクセス時に複雑な間接参照を伴う

4）

DO ループ中の関数・サブルーチン呼び出しおよび入出力文がある，などが挙げられる．
データ供給の遅延の要因としては，1）CPU 内における同一 CPU ポートへのロード･ストアの集中 2）
同一のメモリバンクへのアクセス競合および CPU と主記憶装置間の経路上で発生するアクセス競合

3）

主記憶装置への不連続なメモリアクセス，などが挙げられる．メモリアクセスの効率化では，前述の ADBを利用することで， メモリバンド幅を補うことが可能となり，性能向上を図れる場合がある．
最適化例として以下で取り上げるユーザコードは，Red Black 法を用いて SOR 法の反復計算を行うもの
である[1]．オリジナルコードはユーザにより OpenMP による並列化が行われていた．SX-9 の簡易性能解析ツール（Ftrace）によりプログラムの実行プロファイルを取得したところ，プラズマ流の各支配方程式を解くためのサブルーチン A でベクトル化率が低いため，実効性能が低いことが分かった．このサブルーチンのベクトル化率の促進と，OpenMP による並列化の促進について検討を行った．

3.1.1

IF 文の除去によるベクトル化と作業配列の導入による並列化の促進

図３に示すサブルーチン A のオリジナルコードでは 5625 行目の if 文が真の場合 5626-5633 行が実行され，さらにこの中の if 文(5628 行目)が真になると RSMAX や IRMU,JRMU,KRMU が更新される構造である．

— 56 —

SENAC Vol. 46, No. 1（2013. 1）

この構造のままではコンパイラは 5628 行目の if 文に依存関係が存在すると判断し，ベクトル化が行われない．5625 行目の if 文の結果はループ中で不変なので，ループの外側に移動することが可能である．
また最外側ループ K を並列化するために作業配列 WKRSMAX を導入した．この作業配列 WKRSMAX により，最外側ループ K における各最大値を保存することができ，OpenMP 指示行による並列化が可能になった．
図４に SX-9 の 16CPU でサブルーチン A のオリジナルコードと修正コードを実行した際の Ftrace 結果を示す．オリジナルコードは並列化されていないため 1CPU の値，修正コードは 16CPU（スレッド）の合計値である．修正コードはベクトル化率 98.95%となり，16CPU 合計の FLOPS 値が約 6.5 倍向上した．その結果サブルーチン A の実行時間は約 1/24 に短縮された．
(オリジナルコード)
5620:
5621: +------>
5622: |+----->
5623: ||+---->
5625: |||
5626: |||
5627: |||
5628: |||
5629: |||
5630: |||
5631: |||
5632: |||
5633: |||RSMAX=ZERO
DO K=1,KEND
DO J=2,JENDDO I=2,IENDIF (IPHI.EQ.IU) THENRSMU=RESP/RSU0RSU(I,J,K)=RESI(I,J,K)/RSU0
IF (DABS(RSU(I,J,K)).GT.RSMAX) THEN
RSMAX=DABS(RSU(I,J,K))
IRMU=IJRMU=J
KRMU=KEND IF（略）(修正コード)
6179:
6180:
6181:
6196:
6197: P------>
6198: |
6199: |+----->
6200: ||V---->
6201: |||
6202: |||
6203: |||
6204: |||
6205: |||
6206: |||
6207: |||
6208: ||V---6209: |+----6210: P-----6211:

IF (IPHI.EQ.IU) THEN
RSMAX=ZERO
RSMU=RESP/RSU0!$OMP PARALLEL DO
DO K=1,KEND! P は並列化された DO ループ，WKRSMAX(K)=ZERO! V はベクトル化された DO ループを示す．
DO J=2,JENDDO I=2,IENDRSU(I,J,K)=RESI(I,J,K)/RSU0! Non-dimensionalization
IF (DABS(RSU(I,J,K)).GT.WKRSMAX(K)) THENWKRSMAX(K)=DABS(RSU(I,J,K))
IWIR(K)=I
IWJR(K)=J
IWKR(K)=K
END IF
END DOEND DOEND DO!$OMP END PARALLEL DO

図３ サブルーチン A のオリジナルコードと修正コード
PROC.NAME

original
modified

FREQUENCY

5100
5100

EXCLUSIVE
TIME[sec](

AVER.TIME[msec]MOPS% )MFLOPS V.OP AVER.
RATIO V.LEN

VECTOR I-CACHE O-CACHEBANK CONFLICT
TIME
MISS
MISS CPU PORT NETWORK

432.549(
17.984(7.9)
0.7)

84.8137.340

3057.335438.2

1472.4 88.65 250.0
9558.2 98.95 235.1

79.49512.754

0.252
0.326

56.389
1.019

0.561
0.499

47.4255.434

図４ サブルーチン A のオリジナルコードと修正コードの Ftrace 結果比較

3.2

MPI 並列による高速化

近年の大規模コンピューティングでは分散メモリ並列による実行が不可欠であり，各種の並列化ライ東北大学サイバーサイエンスセンターにおけるユーザコードの高速化支援活動— 57 —

ブラリを用いて大規模並列計算が行われている．SX-9 では並列化ライブラリとして MPI-2（Message
Passing Interface）をサポートしている．MPI は標準化された並列化ライブラリであるため可搬性が高く，システムのリプレイスの際も従来の MPI 化されたプログラムを大規模な修正なしに実行可能であるなど，そのメリットは大きい．しかしながら，逐次プログラムあるいは OpenMP による並列化プログラム
を MPI 化する際には，プログラムを分析し，データ処理の分割方法，通信の内容と方法をユーザが選択し記述する必要がある．これらは実行時の通信性能に大きく影響を与えるため，MPI 化の前には適切な設計が必要である．
MPI 化例として以下で取り上げるユーザコードは，乱流モデルには k-ω Shear Stress Transport (SST)
モデルを用い，3 次元差分法を用いて Navier Stokes 方程式を解くものである[2]．現状の計算規模（グリッド点）は i,j,k =141×39×45 である．MPI 化に必要なデータ分割は，データ配列の第 3 次元目の kで行った．本コードはオリジナルコードの自動並列化版，MPI によるフラット MPI 並列化版および，MPI
化に加えてコンパイラによる自動並列化機能を併用したハイブリッド並列版の作成を行った．

3.2.1

フラット MPI 化コード

ここでは４つのプロセスに分割した場合を例に説明する．MPI による分散並列化は k の上端と下端を除いた，k=2,..,44 の範囲を４等分して k=2,..,12，k=13,..,23， k=24,..,34，k=35,..,44 をそれぞれのプロセスに割り当てる．上端と下端を除くのは，多くの配列の更新は k=2,..,nz-1 の範囲で行われているためである．ただし，インデックス k での配列の更新において，k-1 または k+1 のインデックスを参照する場合があるため，各プロセスにさらに k=1,..,13，k=12,..,24，k=23,..,35，k=34,..,45 を割り当てる必要がある．
k のループをプロセスごとに分割するとともに，各配列は分割され，プロセスごとに各領域の大きさが小さくなる．この領域分割した部分は並列に実行することができ，並列化前と同じ結果が得られることが確認されている．図５に，MPI 化に必要なデータ分割を行ったソースコードの一部を示す．
!宣言 (lz はプロセス 0,1,2 で 13，プロセス 3 で 12)
111: allocate( mxf(nx,ny,lz,nsp))
117: allocate(amuis(nx,ny,lz,nsp))
134: allocate( xfai(nx,ny,lz,nsp))
184: allocate( amu(nx,ny,lz) )!実行コード (local_kend はプロセス 0,1,2 で 12，プロセス 3 で 11)
326: +------> do k=2,local_kend
327: |+-----> do j=2,ny-1
328: ||V----> do i=2,nx-1! V はベクトル化された DO ループ，329: |||! *は展開された DO ループを示す．
330: ||| amumix=0.d0
331: ||| akpmix=0.d0
332: ||| !cdir expand=nsp
333: |||*---> do l=1,nsp
334: |||| amumix=amumix+amuis(i,j,k,l)/(1.d0+(1.d0/mxf(i,j,k,l))*xfai(i,j,k,l))335: |||| akpmix=akpmix+akpis(i,j,k,l)/(1.d0+(1.065d0/mxf(i,j,k,l))*xfai(i,j,k,l))
336: |||*--- end do
337: |||
338: ||| amu(i,j,k)=amumix
339: ||| anu(i,j,k)=amu(i,j,k)/rhos(i,j,k)
340: ||| akpl(i,j,k)=akpmix
341: |||
342: ||V---- end do
343: |+----- end do
344: +------ end do

図５ 各プロセスにデータを分割した MPI 化コード

— 58 —

3.2.2

SENAC Vol. 46, No. 1（2013. 1）

ハイブリッド MPI 化コード

ハイブリッド MPI 化コードは MPI による並列化に加えて，コンパイラによる自動並列化機能を併用したコードである． MPI 並列で 16 プロセス生成された場合ループ長は，以下の式より 2 または 3 である．
(オリジナルの k のループ長 43)÷(プロセス数 16) = 2 または 3
MPI プロセスで分割されたこのループを自動並列化の対象とすると，2 または 3 スレッドしか並列実行できないため，高い並列度を実現するには MPI とスレッド並列のループを別のものにする必要がある．自動並列化では一般的に最外側ループを並列化の対象とするため，MPI による並列化が行われていないイン
デックス j のループを最外側に来るようにソースを修正し，最外側の j のループで自動並列化が行われるようにした．j のループ長は 37 なので，37 スレッドまで並列実行可能である．

3.2.3

性能測定結果表２にオリジナルコードの自動並列化による SMP 並列化実行，フラット MPI 並列化によるマルチプロ
セス実行の結果を，表３にハイブリッド MPI 並列化コードによるマルチノード実行の結果を示す．
表２ 性能測定結果（シングルノード）
プログラム
オリジナル
（自動並列化のみ）
フラットMPI版（MPI化のみ）

ノード数

ノードあたり ノードあたり 実行時間
プロセス数 ス レッド数
/sec

(a)

1

1

16

42.80

(b)

1

16

1

26.72

実行時間の測定結果より，1 ノード内実行におけるフラット MPI 版(b)はコンパイラの自動並列化による(a)よりも 1.6 倍の性能が得られた．このことから本プログラムでは MPI による並列化が高速化に有用であることが示された．
表３ 性能測定結果（マルチノード）
プログラム

ハイブリッドMPI版（ MPI化＋自動並列化）

ノード数

ノードあたり ノードあたり 実行時間
プロセス数 スレッド数
/sec

(c)

2

1

16

32.40

(d)
(e)

2
2

2
4

8
4

30.46
29.44

次に，ハイブリッド MPI 版での(c) ～(e)では，2 ノードを用い，ノード内のプロセス数とスレッド数を変化させて実行したものである．プロセス数を増加させると実行時間が短くなっている．これは，本プログラムは格子点数が並列数で割り切れず，ロードインバランスが発生するが，プロセス数を増加させることで影響を小さくできるためと考えられる．プロセス数およびスレッド数は計算規模（グリッド点）の拡張や，利用可能なノード数（CPU 数）をパラメータとして，計算を実行するシステムに最適な設定値を決定する必要がある．今回のユーザコードの並列化には，汎用性のある MPI ライブラリによる並列化とコンパイラの自動並列化を用いているので，将来的にシステムの大規模化やアーキテクチャの変更があったとしても，コードの長期間の利用が可能である．

4

まとめ
本稿では，本センターの有する大規模科学計算システムと 1999 年から取り組んでいる高速化支援活動の取り組みと成果について述べた．この活動により利用者のプログラムは大幅に性能改善しているが，大規模化・長時間化する様々なプログラムに対応すべく,引き続き高速化支援活動を推進していきたい．

東北大学サイバーサイエンスセンターにおけるユーザコードの高速化支援活動

本稿に記載されている成果は,— 59 —

本センターを利用してくださる利用者の方々の多大なるご協力により得られたものである．高速化・MPI 化の事例には東北大学工学研究科機械システムデザイン工学専攻茂田先生，東北大学工学研究科航空宇宙工学専攻渡辺先生のご協力をいただいた．ここにあらためて感謝の意を表する．

参考文献[1]日本電気株式会社 プログラム最適化作業報告[2]日本電気株式会社 渡辺先生コード MPI 化作業報告書

— 60 —

SENAC Vol. 46, No. 1（2013. 1）[全国共同利用情報基盤センター研究開発論文集 No.34 より]キャンパス無線 eduroam の耐災害性・耐障害性向上と高機能化
後藤 英昭

曽根 秀昭

東北大学サイバーサイエンスセンター

1

はじめに

2006 年に日本が国際的な学術無線 LAN ローミング基盤である eduroam (エデュローム)[1]に参加して以来，徐々に参加機関が増え，2011 年末に 27 だった国内の機関数は 2012 年 9 月現在では 39 となり，順調な増加傾向にある[2]．大学 ICT 推進協議会年次大会[3]を始め，各種研究会や学会などにおける広報により，eduroam の知名度も高くなってきており，参加に向けて準備中あるいは検討中の機関も少なくない．しかしながら，日本国内には 1,200 を超える高等教育機関があり，普及率では約 3.1%に留まっている．機関へのeduroam 導入の障壁の一つとして，機関ごとの RADIUS サーバの導入・管理にかかる労力および経費の高さが考えられ，この問題に対処するために，サイバーサイエンスセンターでは「eduroam 代理認証システム」を開発して，2008 年よりサービス提供してきた．
代理認証システムは，低い導入・管理コストと高い安定性を実現する eduroam の新しいアーキテクチャとして世界的にも注目されているが，従来の実装では IdP (ID プロバイダ)の機能が単一故障点となる問題があり，実際に 2011 年の東日本大震災では広域停電の影響を受けた[4]．当システムの耐災害性および耐障害性を向上させるために，IdP を地理的分散させたクラウド型の認証基盤を構築したので，本稿で紹介する．
一方，eduroam には機能の高度化の要求もある．サイバーサイエンスセンターCSI 研究室では，OpenFlow
技術を用いて，機関のポリシーと利用者の属性情報に基づいたアクセス制御を実現する方式を開発した．詳細は参考文献[4],[5]で示したが，本稿ではその概略を述べる．

2

eduroam 代理認証システムの耐災害性・耐障害性の向上

代理認証システムは，eduroam の認証基盤をウェブサービスとして代行・提供するものであり，各機関の管理者はウェブ画面から必要数の eduroam アカウント(ID とパスワードのペア)を随時請求，取得できる．eduroam のユーザ認証は，機関ごとの RADIUS IdP ではなく代理認証システムによって行われる．
本システムを利用することにより，各機関で RADIUS IdP を導入・運用する必要がなくなり，機関管理者のサインアップのみで eduroam を利用開始できるようになる．もし機関が無線 LAN 基地局の運用をシステムインテグレータやインターネットサービスプロバイダ(ISP)などに委託すれば，基地局を収容す
る RADIUS proxy の管理も不要となる．
2012 年 9 月現在，代理認証システムは 13 機関に利用されている．このうち 2 機関は，代理認証シス
テムを当初利用していたが，学内のインフラ整備に伴って RADIUS IdP を構築し，補助用として代理認証システムの利用を継続している．4 機関は主システムとして日常的に代理認証システムを利用しており，他の 1 機関は数か月内に自前の RADIUS IdP を立ち上げるとされる．その他の機関は補助用の IdPとして利用している．このように，代理認証システムは機関の eduroam 参加の障壁を下げるのに役立っている．
2011 年 3 月 11 日に発生した東北地方太平洋沖地震では，地震の揺れの最中から東日本で大規模な停電が発生し，数時間後に無停電電源装置のバッテリが切れた後は，東北大学に設置されていた eduroam
関係のサーバ群も停止した．サイバーサイエンスセンターは学内の情報インフラの拠点であり，優先的に電源復旧作業が進められたが，それでも再通電まで約 2 日間を要した．日本国内のインフラである
eduroam JP では，トップレベル RADIUS proxy のプライマリサーバが国立情報学研究所(東京都)，セカ
ンダリサーバが東北大学(仙台市)に設置されていたが，このような冗長構成が功を奏して，国内のeduroam が停止することは避けられた．大地震の直後から初期の復旧作業にかけて，部分的ではあるものの，eduroam が緊急連絡手段として有効に使われたことが判明している．この時の様子は文献[6]で報告済みである．

— 61 —

キャンパス無線 eduroam の耐災害性・耐障害性向上と高機能化

代理認証システムのサーバは東北大学に設置されており，当時はまだセカンダリサーバの構築は計画段階であった．このため，3 月の大地震の際には広域停電の影響を受け，停電のなかった関東地区の大学においても，2 日間に渡って eduroam が利用できなくなるという問題があった．これは被災時のネッ
トワーク利用環境を維持するという観点でも問題であり，改善が急務であった．2012 年に入り，株式会
社データホテル(旧ライブドア)より同社クラウドサービス「EX-CLOUD」のサーバ無償提供の申し出があり，今回これを利用して代理認証システムを冗長化し，クラウド型の代理認証システムを構築した．
システム構成を以下に説明する．
代理認証システムの構成要素は大きく分けて，(1) ウェブユーザインタフェース(CGI プログラム群)，(2) SQL データベース(PostgreSQL DB)，(3) RADIUS インタフェース(FreeRADIUS) の 3 つがある．ウェ
ブインタフェースの機能を冗長化するには，データ変更の同期や排他制御の処理が複雑となり，システ
ムの大幅な変更が必要である．しかし，被災時に eduroam の認証処理が継続できることが最も重要であり，新規ユーザ作成などのアカウント管理はそれほど緊急性を要しないとみなせる．そこで，主システ
ムの復旧にはそれほど日数を要しないという前提で，ウェブインタフェースの冗長化は今回見送った．
図 1 に，代理認証システムの冗長化の様子を示す．主システムであるマスタサーバは従来どおり東北大学に設置，運用継続する．東京にある EX-CLOUD の仮想マシン上に PostgreSQL DB と FreeRADIUS
をインストールして，レプリカサーバを構築した．SQL データベースには，ウェブインタフェース用の管理者アカウント情報と，RADIUS 認証に必要な eduroam アカウント情報が格納されているが，後者のみを同期すれば十分である．eduroam JP のトップレベル RADIUS proxy には，代理認証システムのマス
タサーバをプライマリサーバ，レプリカサーバをセカンダリサーバとしてそれぞれ登録し，代理認証シ
ステム用のレルム名を持つアカウントの認証要求を，これらのサーバに転送するように設定した．通常はマスタサーバのみに認証要求が転送されるが，例えば東北大学の停電や，何らかの障害によってマスタサーバが応答できない場合は，転送先が自動的にレプリカサーバに切り替わる．
マスタサーバとレプリカサーバのデータの同期には Slony-I (2.x 系)を用い，マスタからレプリカへの一方向の同期とした．アカウント管理の機能がマスタ側にしかないので，一方向で十分である．また，アカウントの作成，削除，一時停止などの操作は頻繁に行われるものではなく，多少の遅れがあっても実用上問題がないため，同期確認間隔は Slony-I の最大値である 1.0 秒に設定した．

http://eduroam.jp/
Sendai cityTokyonational
DEAS (master)
National
RADIUS 2

Data replication
for higher availability.

national
DEAS (replica)

National
RADIUS 1

eduroam Top-level servers (Asia-Pacific)
eduroam Global

図 1. クラウド型代理認証システムにおけるデータベースの冗長構成
株式会社データホテルでは，公衆無線 LAN サービス livedoor Wireless における eduroam サービスの提供[7]に加えて，各大学のキャンパス無線 LAN システムの構築も手掛けている．同社の顧客の多くが代理認証システムを利用していることから，同社の基地局を利用する学内利用者の認証リクエストの多くが日本のトップレベル RADIUS proxy を通過することになり，混雑による性能低下の懸念があること，
および，各大学に RADIUS IdP を設置する従来方法と比べて RADIUS proxy のホップ数が多くなり，安— 62 —

SENAC Vol. 46, No. 1（2013. 1）

定性が低下する恐れがある．これら問題は，基地局を設置した業者に代理認証システムのレプリカサー
バを持たせることで解決できると考えられる．今回構築したシステムでは，同社がレプリカサーバの方をプライマリ IdP とみなして認証要求を転送するように設定することで，RADIUS 認証のバイパス経路を構成でき，安定性の向上が期待できる．このような構成による運用は執筆時点において検討中であるが，負荷分散の有効な手段になると考えられる．

3

利用者の属性情報に基づく eduroam のアクセス制御の高度化

eduroam の運用の現場では，ID のレルムを見て機関のメンバーとゲストの端末を区別し，異なるサブ
ネットに収容するといった単純なアクセス制御は従来も可能であったが，より高度なアクセス制御を実現する標準的な仕組みは存在しない．利用者の種別に応じた詳細なネットワークアクセス制御が可能になれば，利便性やセキュリティの向上につながると考えられる．
利用者の所属機関と訪問先機関では，それぞれがアクセス制御のポリシーを有する．一例を以下に示す．
所属機関のポリシー(例)： 自機関の教職員・学生のネットワーク利用に特にアクセス制限は設けないが，ファイアウォール
を通して，アクセスログを採取する．
 学生にはトラブルの生じがちな特定のウェブ掲示板やファイル交換サイトを訪問先機関で利用させないようにしたい．利用帯域も制限したい．(訪問先に対するリクエスト) 教職員には訪問先でも比較的自由なネットワークアクセスを許可したい．(訪問先に対するリクエスト)
 訪問先機関が許可した場合，教職員については訪問先のファイルサーバやプリンタなどの利用を許可する．(訪問先に対するリクエスト)
訪問先機関のポリシー(例)： 訪問者の学生には特定のウェブ掲示板やファイル交換サイトを利用させないようにする．利用帯
域も制限する．
 訪問者の学内サーバへのアクセスは原則禁止とするが，非常勤講師には許可する．
 会議等において，その場で利用権限を付与して，訪問者にファイルサーバやプリンタなどのロー
カルサービスの利用を許可する．
このような複雑なポリシーを元にアクセス制御を行うには，ポリシーやルールの記述方法の標準化が必要である．しかし，汎用的な記述方法を設計するのは大変難しいと考えられる．そこでまず初めに，
ポリシーおよびルールを単純化したモデルを採用することとし，機関のポリシーと利用者の属性情報に基づいたアクセス制御を実現する方式を開発した[4][5]．ローカルサービス(リソース)の利用の可否はネットワークのアクセス制御によって行う．システムの概要を図 2 に示す．
[access privilege][Calling-Station-ID]

NW printerAccess-Control
function

OpenFlow
Controller[User-category][Access-policy]

PolicyDB

RADIUS
proxiessetting
RADIUS
server A
OpenFlow
Switches
file serverAP[realm][Calling-Station-ID]
Roaming user

RADIUS
server B

IdP-side

SP-side図 2. 属性情報に基づいたアクセス制御が可能な eduroam システム

キャンパス無線 eduroam の耐災害性・耐障害性向上と高機能化— 63 —

IdP となる RADIUS サーバにはポリシーを格納したデータベースが接続される．利用者ごとの eduroam
アカウントには，利用者の種別やアクセス範囲を示す識別子が属性情報として付与されている．ある機関において訪問者がユーザ認証の手続きを開始すると，RADIUS プロトコルの通信パケットに埋め込まれた属性情報が訪問先機関の RADIUS サーバに届けられる．両機関のポリシーを突き合わせ，利用者の属性情報と組み合わせることによって，ネットワークアクセス制御のためのルールが生成される．このルールは OpenFlow コントローラに渡され，OpenFlow スイッチの動作が決定される．図 2 には，利用者がファイルサーバにアクセス可能だが，プリンタは利用できないというシナリオが例示されている．
ポリシーや属性情報が複雑になるにつれて，アクセス制御に必要な VLAN の数も非常に多くなることがある．OpenFlow 技術を用いることで，VLAN の総数に実用上制限のない dynamic VLAN が実現できる．また，システム内のすべての OpenFlow スイッチの制御を一台のコントローラで一括して行うことが可能である．このような OpenFlow の特長を生かして，eduroam のアクセス制御システムを構築する
ことにより，単純なハードウェア構成で所望の機能を実装できた．

4

むすび

本稿では，平成 23～24 年度にサイバーサイエンスセンターで実施した業務の成果として，耐災害性・耐障害性を向上させたクラウド型の代理認証システムと，利用者の属性情報に基づく eduroam のアクセス制御の高度化について紹介した．両方とも，TF-MNM(モバイル通信とネットワークミドルウェアに関する TERENA のミーティング)や国際会議などで，国際的に方式提案を行なっている．

参考文献[1] L. Florio, K. Wierenga, “Eduroam, providing mobility for roaming users,” EUNIS 2005, June
2005.
[2] eduroam JP ウェブサイト： http://www.eduroam.jp/[3] 後藤英昭, 曽根秀昭, “キャンパス無線 eduroam 導入のメリットと国内外の動向,” 大学 ICT 推進協議会
2011 年度年次大会 論文集 D10-6, pp.259-263, 2011.
[4] T. Watanabe, S. Kinoshita, J. Yamato, H. Goto, and H. Sone, “Flexible Access Control
Framework Considering IdP-side’s Authorization Policy in Roaming Environment,” IEEE 36th
International Conference on Computer Software and Applications Workshops,
COMPSAC-MidArch 2012, pp.76-81, July 16-20, 2012 (Izmir).
[5] S. Kinoshita, T. Watanabe, J. Yamato, H. Goto, and H. Sone, “Implementation and Evaluationof an OpenFlow-based Access Control System for Wireless LAN Roaming,” IEEE 36th
International Conference on Computer Software and Applications Workshops,
COMPSAC-MidArch 2012, pp.82-87, July 16-20, 2012 (Izmir).
[6] 後藤英昭, 曽根秀昭, “災害時における eduroam 全学無線 LAN の有効性とキャンパスアクセスネットワー
クの運用,” 電子情報通信学会 2012 年総合大会講演論文集 BS-6-1, pp.98-99, 2012.
[7] プレスリリース 「ライブドアと国立情報学研究所(NII)国際学術無線 LAN ローミング基盤 eduroam の共同実証実験を livedoor Wireless アクセスポイントにて開始」
http://corp.livedoor.com/press/2010/0308376

— 64 —

SENAC Vol. 46, No. 1（2013. 1）

HPCI システムとサイバーサイエンスセンターの提供資源紹介
共同研究支援係、共同利用支援係、スーパーコンピューティング研究部「京」コンピュータを中核とする全国のスーパーコンピュータ群を連携した HPCI システムの共用が、平成 24 年 9 月から開始されています。HPCI システムの利用を検討している方を対象に、
HPCI システムの概要とサイバーサイエンスセンターが提供している計算機資源について紹介します。

１.

HPCI システム

1.1 概要革新的ハイパフォーマンス・コンピューティング・インフラ(HPCI)システムは、「京」コンピ
ュータを中核とする全国の基盤センター等の計算機資源を連携した計算環境基盤です。計算科学
技術における世界最高水準の成果創出と社会還元に寄与することを目的に、計算科学技術コミュ
ニティを結集した一般社団法人 HPCI コンソーシアムが主導して体制と仕組みを整備し、平成 24
年 9 月 28 日から共用が開始されています。HPCI システムは、HPCI システム構成機関から提供される計算資源によって構成されます（図 1）。計算資源は、計算機資源、HPCI 共用ストレージ、
ネットワーク、可視化システム、ライブラリ・アプリケーション等が含まれます。これらの計算
資源は HPCI システムとして共通運用され、一括した課題選定によって一部の産業利用を除いて無償で利用することができます。また、ワンストップサービスによる共通窓口、アカウント管理、運用情報等の提供や、シングルサインオンによる共通アカウント・パスワードの機能が提供され、全国の計算資源をシームレスに利用可能な環境を実現しています。

図 1 HPCI システムを構成する計算資源

1.2 HPCI システムを利用するにはHPCI システムを利用するには、利用申請を行い課題の審査を受ける必要があります。HPCI 運用事務局にて一括して課題公募が行われ、第 1 回目の公募はすでに終了しています。今後の公募情報については、HPCI 運用事務局が運営する HPCI ポータルサイト[1]をご参照ください。HPCI シス
テムの利用に関する情報を随時提供しているようですので、このサイトをご覧になりぜひご利用をご検討ください。

— 65 —HPCI システムとサイバーサイエンスセンターの提供資源紹介

２.

サイバーサイエンスセンターの提供資源

2.1 提供計算機資源
当センターは、スーパーコンピュータ SX-9 と並列コンピュータ Express5800 を計算機資源として HPCI システムに提供しています（図 2）。SX-9 は、1CPU あたり 100Gflops を超える性能と高いバンド幅を持つ超高速ベクトルプロセッサを搭載し、1T バイトの大規模共有メモリにより高速
かつ大規模モデルの演算が可能です[2]。Intel 社の Xeon プロセッサを搭載した Express5800 も512G バイトの大規模共有メモリを持つシステムです[3]。

図 2 SX-9（左）と Express5800（右）の実機
1 ジョブあたりの利用可能な最大資源量は SX-9 が 64CPU・4TB メモリ、Express5800 が 32core・
512GB メモリで、一般利用ジョブと計算機資源を共用します。並列数に対応したジョブクラスの設定があり（表 1）(表 2)、利用希望のクラスにジョブを投入すると投入順により資源が割り当てられ実行が開始されます。また、デバッグ作業等を想定した ss 以外の各クラスは実行 CPU 時間を無制限としていますので、長時間ジョブも時間制限にとらわれることなく実行可能です。
表 1 ジョブクラスと制限値 SX-9

クラス名
ss
s
p8
p16
p32
p64
クラス名
as
a8
a16
a32

利用可能 CPU 数
メモリサイズ
4
256 GB
432 GB
8512 GB
161024 GB32
1024×2 GB
641024×4 GB
表 2 ジョブクラスと制限値 Express5800
利用可能 CPU 数
メモリサイズ
116 GB
8128 GB
16
256 GB32
512 GBCPU 時間
1 時間
無制限
無制限
無制限
無制限
無制限
CPU 時間
無制限
無制限
無制限
無制限

2.2 提供ソフトウェア
スーパーコンピュータ SX-9 と並列コンピュータ Express5800 が提供するコンパイラとライブラ
リを表 3 に示します。
表 3 提供ソフトウェア

スーパーコンピュータ SX-9
コンパイラ
Fortran/SX, C++/SX
ライブラリ
MPI/SX, ASL, MathKeisan for SX
並列コンピュータ Express5800
コンパイラIntel Fortran, Intel C++
ライブラリ
MPI, ASL, MKL

— 66 —

SENAC Vol. 46, No. 1（2013. 1）

2.3 HPCI システムの利用に必要な設定
当センターの HPCI システムを利用する際に必要となる設定項目です。HPCI システム利用に関するマニュアルが HPCI ポータルサイトに用意されていますので、全般的な解説はそちらを参照いただき、ここでは当センターの利用に関わる設定を解説します。同様の解説をホームページにも掲載しています[4]ので併せてご覧ください。
○ログインホスト
SX-9,Express5800 の両システムとも、
HPCI システム用のログインホストに接続して利用します。
接続するには、ログインツールの導入や電子証明書の発行など、シングルサインオンのための準備が必要になります。HPCI クイックスタートガイド[5]等のマニュアルをご参照の上、事前に準備してください。
サイバーサイエンスセンターのログインホスト

hpcig.isc.tohoku.ac.jp○HPCI アカウントのパスワード変更
当センターをプライマリセンターとして登録した HPCI 利用者は、以下のパスワード変更サイト
にて HPCI アカウントのパスワードを変更できます。
HPCI アカウントのパスワード変更サイト

https://hpcis.isc.tohoku.ac.jp/pwm○HPCI 共用ストレージのマウントポイント（HPCI 共用ストレージ利用者のみ対象）
HPCI 共用ストレージは、ログインホストの以下のディレクトリにマウントしています。
マウントポイント：/gfarm/（課題 ID）/（利用者番号）※※

利用者番号は、サイバーサイエンスセンターが発行したローカル ID です。

○同一利用者が複数の HPCI 課題を持つ場合
課題ごとに利用者番号を発行していますので、課題に対応した利用者番号を用いて HPCI システ
ムを利用します。設定方法・切り替え方法は、当センターの HPCI ページを参照ください[4]。

参考文献[1] HPCI ポータルサイト：http://www.hpci-office.jp/[2]ベクトル型スーパーコンピュータ SX-9: http://www.ss.isc.tohoku.ac.jp/super/index.html[3]並列コンピュータ Express5800: http://www.ss.isc.tohoku.ac.jp/scalar/index.html[4]サイバーサイエンスセンターHPCI ページ:
http://www.ss.isc.tohoku.ac.jp/collabo/hpci.html[5] HPCI クイックスタートガイド：https://www.hpci-office.jp/documents/HPCI-UM01-001.pdf

SENAC Vol. 46, No. 1（2013. 1）— 67 —[報 告]

後藤英昭准教授と曽根秀昭教授の研究グループが大学 ICT 推進協議会 2011 年度年次大会・優秀論文賞を受賞しました

サイバーサイエンスセンターの後藤英昭、曽根秀昭が、大学 ICT 推進協議会 2011 年度年次大会・優秀論文賞を受賞しました。
本受賞は、大学 ICT 推進協議会 2011 年度年次大会における下記の発表論文が高く評価されたも
のです。
対象論文：
「キャンパス無線 eduroam 導入のメリットと国内外の動向」
後藤英昭, 曽根秀昭
(この賞は，大学 ICT 推進協議会年次大会において発表された論文・ポスターのうち、特に優れた業績と認められたものに与えられるものです。)
会議情報：大学 ICT 推進協議会年次大会
http://axies.jp/ja/conf

研究背景：
サイバーサイエンスセンター・CSI 研究室は，国際的な学術系無線 LAN ローミング基盤である
eduroam(エデュローム)を 2006 年に日本に初導入し、国立情報学研究所と共同で、国内の基盤である eduroam JP を立ち上げ、その運用および研究開発を行ってきました。1,200 以上もの高等教
育機関を有する日本において、キャンパス無線 LAN の安全性向上や、eduroam 導入の技術面および運用面のコスト低減は必須であり、そのための啓発活動、技術開発、および評価・運用を行うとともに、キャンパスネットワークのユビキタス化に向けての研究開発などを推進しています。
これらの一連の活動は、研究成果から実運用への適用と、多数機関の eduroam 参加促進の効果が実証されています。

— 68 —

SENAC Vol. 46, No. 1（2013. 1）[報 告]SC12 報告東北大学サイバーサイエンスセンター

小松一彦

2012 年 11 月 10 日〜16 日に米国ユタ州ソルトレイク市において International Conference forHigh Performance Computing, Networking, Storage and Analysis (通称 SC)が開催されました。
SC はスーパーコンピューティングとその関連技術に関する世界最大の国際会議であり、参加者は１万人を超え、その年の最新の研究成果・製品が学界、産業界から発表されてきました。今回、SC12(12 は開催年を意味する)に参加し、サイバーサイエンスセンターの研究活動の展示を行ってきましたので、その報告をします。
SC12は技術論文が発表される本会議と大学・研究所・企業等が最新の成果・製品を発表する展
示会から構成され、サイバーサイエンスセンターは流体科学研究所と金属材料研究所と連携し、東北大学としてスーパーコンピューティングに関する活動についての展示を行いました。東北大学展示ブースでは，サイバーサイエンスセンターのスパコンシステムの紹介をはじめ、3次元積層型ベクトルプロセッサや将来のHPCIシステムのあり方の調査研究など、次世代高性能計算基盤技術に関する最新の研究成果を紹介しました。また、スパコン研究部に所属する研究員3名、大学院
学生2名も帯同させ、各自が取り組む高性能計算技術に関する成果発表も行いました。12～15日の4日間の展示会期間中、東北大学展示ブースへの訪問者は300名以上にものぼり、活発な情報交換を行うことができました。また、訪問者にはセンター紹介パンフレット、手ぬぐい、SX-9折り紙などをくばり、特に折り紙は外国の方々に非常に好評でした。(作り方はyoutubeでも見られます。
http://www.youtube.com/watch?v=J60eh_5fnPY)
今年の SC13 は 11 月 17 日～22 日に米国コロラド州デンバー市で行われる予定です。

展示の様子

東北大学展示スタッフ

— 69 —

SENAC Vol. 46, No. 1（2013. 1）[展示室便り⑦]

センター刊行物

今回は、大型計算機センター発足直前から現在までの当センターによる刊行物です。展
示品１は、準備速報、広報誌 SENAC、大型計算機センター便りです。

展示品１

大型計算機センターの発足は 1969 年 6 月（昭和 44 年 6 月）です。展示品の SENAC（Vol.1,No.1

1968-4）は、センター発足一年前に準備室委員会により発行されました。掲

載されている内容は、利用に関すること、設置準備に関することなどです。開設に向けての準備の期間であり No.1~No.3 には設置準備の各種委員会、設備の進捗の経過が詳しく書かれています。発行は現在も続いており，本号で Vol.46,No.1 となりました。
「SENAC」の名称については展示室便り①で紹介しましたが、東北大学の電気通信研究所で開発された計算機 SENAC（SENdai

Automatic Computer）から命名されました。この表紙のデザ

インはパンチカードに SENAC と穿孔したもので、Vol.29 まで使われました。本号の表紙は三代目です。現在は３ヶ月おきですが、当初は毎月の発刊でした。一方、利用者に対する業務連絡を中心に、速報として「大型計算機センター便り」が 1969 年から毎週発行されるようになりました。現在は概ね月１回の発行ですが、メールマガジンとして継続しております。No.1 の最初の記事は「昭和 44 年度計算機利用申請書の受付開始について」でした。
センター発足当時は、計算機メーカごとにオペレーティングシステムが異なり、利用者

— 70 —

SENAC Vol. 46, No. 1（2013. 1）が計算機を利用するために参考となる市販の説明書がほとんどありませんでした。そこで、センタースタッフ、利用者、メーカー担当者が協力してシステムの利用法などの説明書を作成しました。展示品２～４は「計算機の利用法に関する説明書」です。ここでは、３つのカテゴリに分けてタイトルを列挙しておきます（これまでの[展示室便り]中で、紹介したものもいくつか含まれています）。
①システムの利用法に関する説明書（展示品２）
利用の手引き、利用者のためのパンチ（穿孔）の手引き、ジョブの構成法、ファイルの利用法、TSS 入門、TSS の使い方、TSS ライブラリの利用法、ACOS-6 FORTRAN 構造型
エディタ FEDIT、スーパーコンピュタ SX-3 の使い方、高速化推進研究活動報告。

展示品２②ライブラリ／アプリケーションに関する説明書（展示品３）
数値計算ライブラリ SSL、図形処理ライブラリ説明書（I）DRFLIB 編、図形処理ライブ
ラリ説明書（II）GKS 編、会話型データベース管理システム COOD 説明書、UNIQ-1 の使
い方、X 線/中性子粉末解析パターン Rietveld 解析システム RIETAN、結晶構造解析プログ
ラムシステム UNICS。

展示品３

— 71 —

センター刊行物③メインシステムとは別に導入された小規模システムのための説明書（展示品４）
DT システムの利用法、手書き OCR の利用法、図形入力装置の利用法、画像システムの使い方、東北画像データベース説明書。

展示品４

展示品５は、［センター概要］です。センターの見学等でセンターを紹介するために作られている冊子で、システム更新時などに改版されてきました。
展示品６は、「十年史、三十年史・軌跡、年報」で、センターの活動をまとめた刊行物です。

展示品５

展示品６

読者の中には、若い頃センターを利用されたときに参考にした説明書を上記写真やタイ
トルから見つけられ思い出された方もいらっしゃったのではないでしょうか。
紹介したこれらの刊行物はセンター広報活動の一環として発行してきましたが、改めて並べてみると計算機センターの歴史と計算機の進歩を感じます。この展示室便りもこれらの資料を参考にしながら書いています。

— 72 —

SENAC Vol. 46, No. 1（2013. 1）[Web 版大規模科学計算システムニュースより]
大規模科学計算システムニュースに掲載された記事の一部を転載しています。

http://www.ss.isc.tohoku.ac.jp/tayori/

負担金の支払費目について (No.143)
次回の利用負担金請求（平成 25 年 1 月 1 日から 2 月 15 日までの利用分）は 2 月下旬に行います。負担金の支払費目の指定に関して、これまで shiharai コマンドで指定頂いておりましたが、今年度より廃止いたしました。学内の方については事前に費目の指定は必要ありません（請求金額確定後、センター会計係より各部局の会計担当を通して照会いたします）。
学外の方については、特に支払費目名の入った利用負担金請求書を希望する場合や請求書の適要欄等について不明な点がある場合は会計係（022-795-3405）へご連絡くださるようお願いいたします。また、その他負担金に関することで不明な点がある場合は、共同利用支援係（022-795-6251）へご連絡くださるようお願いします。
（共同利用支援係，会計係）

利用負担金（1 月～3 月分）の請求について (No.143)
大規模科学計算システムの平成 25 年 1 月～3 月分の利用負担金の請求を次のように行います（昨年と同じです）。
《学内支払責任者》
1 月から 2 月中旬までの利用負担金を 2 月下旬に請求します。その後 3 月末までの利用負担
金は、翌年度 4 月に請求します（平成 25 年度の大学運営資金で予算の調整を行います）。
《学外支払責任者》
1 月から 2 月中旬までの実績額と 3 月末までの利用見込額を合算した利用負担金を 2 月下旬に請求します。
利用見込額は以下の mikomi コマンドで 2 月 15 日(金)までに申告してください。
なお、見込額と実績が異なっても精算は行わないのでご注意ください。
【 mikomi コマンドの使用例 】
ssh gen.isc.tohoku.ac.jp -l 利用者番号
利用者番号@gen.isc.tohoku.ac.jp's password: パスワード
gen% mikomi*並列コンピュータにログイン
して下線部を入力します。

2 月 5 日 現在の見込み額は次のとおりです。
支払責任者： ○○ ○○ （u23456）
見込み額指定者 ：見込み額：0円
1．見込み額の指定
2．削除
9．終了
何番の処理を選びますか？1
見込み額を入力してください(円)？200000
登録してよろしいですか（yes/no）？yes
・・・・
gen%

（共同利用支援係,会計係）

— 73 —

［Web 版大規模科学計算システムニュースより］

利用負担金額の表示コマンドについて (No.143)

本センター大規模科学計算システムでは、利用者の利用額と支払責任者ごとの利用額・負担額を表示するためのコマンドとして kakin, skakin があります。これらのコマンドは、並列コンピュータ(gen.isc.tohoku.ac.jp)にログインして使用します。
コマンド名

機

能

kakin

利用者ごとの利用額を各システム、月ごとに表示

skakin

支払責任者ごとに集計した利用額と負担額を表示（負担額は割引制度に基づいた金額）

いずれも、前日までご利用いただいた金額を表示します。コマンド使用例は大規模科学計算
システムウェブページをご覧ください。
負担金の確認http://www.ss.isc.tohoku.ac.jp/utilize/academic.html#負担金の確認(共同利用支援係)

— 74 —

SENAC Vol. 46, No. 1（2013. 1）

研究成果リスト提出のお願い (No.143)

平素、本センターの大規模科学計算システムをご利用いただきありがとうございます。
本センターでは、学術研究を支える世界最高水準の大規模科学計算システムの導入と利用環境の整備・拡充を行い、研究の発展に資することを心掛けてまいりました。今後もシステムの整備を進めていくには、大規模科学計算システムが多くの研究分野で必要不可欠であり、かつ研究成果が得られていることを広くアピールしていく必要があります。
つきましては、本センター大規模科学計算システムを利用して得られた研究成果を、下記により提出くださるようお願い申し上げます。なお、提出していただく研究成果は、平成 24 年度中に発表されたものとします。
記
１．研究成果リスト：著者名、論文名、掲載誌（巻号頁）、発表年
２．提出方法：電子メールでお願いします。
提出先メールアドレス
seika@isc.tohoku.ac.jp

３．締切り日：平成 25 年 4 月 19 日（金）４．問合せ先：共同利用支援係（022-795-6251,uketuke@isc.tohoku.ac.jp）

論文等への利用の明記について研究成果を論文等で発表する場合には、本センターを利用した旨を明記くださるようお願いいたします。
－ 記入例 －
「本研究の実験結果の一部は、東北大学サイバーサイエンスセンター大規模科学計算システムを利用して得られた。」
Part of the experimental results in this research were obtained using
supercomputing resources at Cyberscience Center, Tohoku University.
（共同利用支援係）

— 75 —

SENAC Vol. 46, No. 1（2013. 1）― SENAC 執筆要項 ―１．お寄せいただきたい投稿内容
次のような内容の投稿のうち、当センターで適当と判定したものを掲載します。その際に原稿の修正をお願いすることもありますのであらかじめご了承ください。
・一般利用者の方々が関心をもたれる事項に関する論説・センターの計算機を利用して行った研究論文の概要
・プログラミングの実例と解説・センターに対する意見、要望
・利用者相互の情報交換
２．執筆にあたってご注意いただく事項(1)原稿は横書きです。
(2)術語以外は、「常用漢字」を用い、かなは「現代かなづかい」を用いるものとします。
(3)学術あるいは技術に関する原稿の場合、200 字～400 字程度のアブストラクトをつけてください。
(4)参考文献は通し番号を付し末尾に一括記載し、本文中の該当箇所に引用番号を記入ください。
・雑誌：著者,タイトル,雑誌名,巻,号,ページ,発行年
・書籍：著者,書名,ページ,発行所,発行年
３．原稿の提出方法
原稿のファイル形式は Word を標準としますが、PDF での提出も可能です。サイズ*は以下を参照してください。ファイルは電子メールで提出してください。
－Word の場合－
・用紙サイズ：A4
・余白：上＝30mm 下＝25mm 左右＝25mm 綴じ代＝0
・標準の文字数（45 文字 47 行）＜文字サイズ等の目安＞
・表題＝ゴシック体 14pt 中央 ・副題＝明朝体 12pt 中央
・氏名＝明朝体 10.5pt 中央
・所属＝明朝体 10.5pt 中央
・本文＝明朝体 10.5pt
・章・見出し番号＝ゴシック体 11pt～12pt*余白サイズ、文字数、文字サイズは目安とお考えください。
４．その他(1)執筆者には、希望があれば別刷 50 部を進呈します。50 部を超える分については、著者の実費負担とします。別刷の希望部数等は投稿の際に申し出てください。
(2)投稿予定の原稿が 15 ページを超す場合は以下まで前もってご連絡ください。
(3)初回の校正は、執筆者が行って、誤植の防止をはかるものとします。
(4)原稿の提出先は次のとおりです。
東北大学サイバーサイエンスセンター内 情報部情報基盤課共同利用支援係
e-mail uketuke@isc.tohoku.ac.jp
TEL 022-795-3406

— 76 —

SENAC Vol. 46, No. 1（2013. 1）

スタッフ便り*近年、2011 年 6 月に TOP500 ランキング 1 位になった「京」をはじめとして、スーパーコンピュ
ータへの興味・関心が非常に高まってきています。東北大学サイバーサイエンスセンターのスー
パーコンピュータや並列コンピュータ、コンピュータ博物館などを公開している東北大学オープ
ンキャンパスでも、たくさんの皆様が見学に来場して頂けることでも、その興味・関心の高さが伺えます。
全国共同利用施設として大学・研究所の研究者・学生を支える本センターは、この時期、卒業
シーズンや年度末に近いということもあり、スーパーコンピュータや並列コンピュータの利用がピークに達します。ジョブのスケジューリングや計算資源の割り当てなど、スーパーコンピュー
タや並列コンピュータを効率的に利用して頂けるよう、少しでも早く計算結果を出せるよう運用
しております。日本の研究・科学技術を支える重要な基盤として、研究者・開発者を支援することができるよう取り組んでおります。これからもどうぞよろしくお願いいたします。(K.K)

サイバーサイエンスセンターが NHK の「クローズアップ現代」という番組に取り上げられました。
「京」をはじめとして我が国のスーパーコンピュータにおける可能性と課題についての番組で、「産業利用」などにも焦点を当てる狙いのようでした。本センターのスーパーコンピュータ SX-9
でシミュレーションすることで実用化が間近に迫っている国産旅客機の設計やタービン設計などが取り上げられていました。予定より遅れて年が明けての放送となりましたが、本センターにとって新年から弾みがつく出来事でした。
本センターは次期スーパーコンピュータシステムを収容する場所と建物を用意しなければならないなど多くの課題を抱えておりますが、利用者の皆様のご協力を得て解決してまいりますので、一層のご愛顧をお願いいたします。（M.C）

SENAC 編集部会
小林広明 曽根秀昭 水木敬明 後藤英昭
江川隆輔 早坂哲夫 大泉健治 小野 敏
斉藤くみ子
* 編集部会では、より多くのセンタースタッフからの話題もお届できればと考え、今号より「編集後記」を改め「スタッフ便り」といたしました。

サイバーサイエンスセンター前
整備中の青葉山新キャンパス

平成 25 年 1 月発行
編集・発行 東北大学
サイバーサイエンスセンター
仙台市青葉区荒巻字青葉 6-3
郵便番号 980-8578
印 刷
東北大学生活協同組合
プリントコープ