㻌኱つᶍ⛉Ꮫィ⟬ࢩࢫࢸ࣒㛵㐃᱌ෆ㸺኱つᶍ⛉Ꮫィ⟬ࢩࢫࢸ࣒㛵㐃ᴗົࡣࠊࢧ࢖ࣂ࣮ࢧ࢖࢚ࣥࢫࢭࣥࢱ࣮ᮏ㤋ෆࡢ᝟ሗ㒊᝟ሗᇶ┙ㄢࡀᢸᙜࡋ࡚࠸ࡲࡍࠋ㸼KWWSZZZVVLVFWRKRNXDFMS㝵㟁ヰ␒ྕ䠄ෆ⥺䠅 
HPDLOಀ䞉ᐊྡ୺䛺䝃䞊䝡䝇ෆᐜ䝃䞊䝡䝇᫬ 㛫
ᖹ᪥

୍㝵



ඹྠ฼⏝ᨭ᥼ಀ   䠄ཷ㻌 ௜䠅)$;䠖XNHWXNH#LVFWRKRNXDFMS  
VRGDQ#LVFWRKRNXDFMS฼⏝┦ㄯᐊ
┦ㄯဨ୙ᅾ᫬
  䡚
኱ุ䝥䝸䞁䝍䚸฼⏝⪅➃ᮎ➼䛾䡚฼⏝฼⏝⪅ㄯヰᐊ

ྛ䝉䞁䝍䞊ᗈሗ䛾㜀ぴ䡚

 

ྛ✀⏦ㄳ䚸ㅮ⩦఍䚸฼⏝┦ㄯ䚸ᗈሗ䚸䝉䞁䝍䞊ᴗົ඲⯡䛻㛵
䛩䜛㉁ၥ䜔せᮃ䛾ཷ௜䡚

ィ⟬ᶵ฼⏝඲⯡䛻㛵䛩䜛┦ㄯ








Ṕ௦䛾኱ᆺィ⟬ᶵ➼䛾ᒎ♧䠖䡚䠖ᗢົಀ  
V\RPX#LVFWRKRNXDFMSᗢົ䛻㛵䛩䜛䛣䛸䡚

఍ィಀ  
NDLNHL#LVFWRKRNXDFMS఍ィ䛻㛵䛩䜛䛣䛸䚸㈇ᢸ㔠䛾ㄳồ䛻㛵䛩䜛䛣䛸䡚

ඹྠ◊✲ᨭ᥼ಀ

  
UVVHF#LVFWRKRNXDFMSඹྠ◊✲䚸ィ⟬ᶵ䝅䝇䝔䝮䛻㛵䛩䜛䛣䛸

䡚

ඹྠ฼⏝ᨭ᥼ಀ

  
XNHWXNH#LVFWRKRNXDFMS䝷䜲䝤䝷䝸䚸䜰䝥䝸䜿䞊䝅䝵䞁䛻㛵䛩䜛䛣䛸

䡚

䝛䝑䝖䝽䞊䜽ಀ  
QHWVHF#LVFWRKRNXDFMS䝛䝑䝖䝽䞊䜽䛻㛵䛩䜛䛣䛸䡚

ᅄ◊✲㛤Ⓨ㒊
㝵  ஬㝵 ➃ᮎᶵᐊ

 

3& ➃ᮎᶵ䠄; ➃ᮎ䠅୕㝵ᒎ♧ᐊ ศᩓ䡶䢙䢇䢛䡩䡬䡼༤≀㤋 䡚㸦 㸧ෆࡣᮾ໭኱Ꮫෆࡢࡳࡢෆ⥺㟁ヰ␒ྕ࡛ࡍࠋ㟷ⴥᒣ࣭ᕝෆᆅ༊௨እ࠿ࡽࡣ㢌࡟  ࢆຍ࠼ࡲࡍࠋ                                   






ᮏㄅ䛾ྡ๓䛂㻿㻱㻺㻭㻯䛃䛾⏤᮶㻌᫛࿴  ᖺ䛻ᮾ໭ᆅ༊䛾᭱ึ䛾㟁Ꮚィ⟬ᶵ䛸䛧䛶䚸ᮾ໭኱Ꮫ㟁Ẽ㏻ಙ◊✲ᡤ䛻䛚䛔䛶᏶ᡂ䛥䜜䛯䝟䝷䝯䝖䝻䞁ᘧィ⟬ᶵ䛾ྡ๓䛷 6(1$& 6(1GDL$XWRPDWLF&RPSXWHU 䛛䜙䛸䛳䛶࿨ྡ䛥䜜䛯䚹㻌

— 1 —

SENAC Vol. 45, No. 3（2012.7）［共同研究成果］

ࠕ࠿ࡄࡸࠖ᭶࣮ࣞࢲࢧ࢘ࣥࢲࡀぢࡓ᭶ࡢᾏ

小林敬生 1) 加藤雄人２） 熊本篤志２） 小野高幸２）
１）
韓国地質資源研究院 国土地質研究本部 地質調査研究室
２）
東北大学大学院 理学研究科 地球物理学専攻

 ࡣࡌࡵ࡟
日本の月探査機「かぐや」は 2007 年 9 月 14 日に宇宙航空研究開発機構（JAXA）種子島宇宙センターから打ち上げられ、同年 11 月に月周回軌道上での観測を開始、 2009 年 6 月 11 日の制御落下による運用終了時まで 1 年 7 ヶ月にわたり 15 の搭載機器による全球規模の各種科学観測を行なった[1]。月レーダサウンダ（Lunar Radar Sounder: LRS）は 15 の搭載機器のひとつで、月の地下構造探査を主要観測目標とする短波（5MHz）レーダである[2]。LRS は 1972 年のアポロ 17 号
によるレーダ探査実験（Apollo Lunar Sounder Experiment）[3]以来 35 年振りの、そして史上初の全球規模の月レーダ探査を実現した。LRS は月の表面が平坦な「海」と呼ばれる領域の多地点
で地下のレーダ反射信号をとらえることに成功し、この結果は初期成果として発表された[4]。
「かぐや」の運用終了後、取得された大量の LRS データは空間分解能と微弱な地下反射信号の S/N （信号対雑音比）を改善するため合成開口レーダ（Synthetic Aperture Radar: SAR）処理を施され[5]
新たなデータセット、LRS SAR データとして生まれ変わった。大量の LRS データに SAR 処理を施す作業は サイバーサイエンスセンターのスーパーコンピュータ SX で行なった。SX でのデータ処理については、すでにこの SENAC 誌上で紹介したとおりである[6]。 LRS SAR データは月科学における LRS データ利用の出発点である。本稿では、LRS SAR データを解析して明らかになった月の海領域の様相について紹介したい。

 /566$5 ࢹ࣮ࢱLRS は高度 100km の極軌道を周回しながら月全面をカバーするように観測を行なった。全観測期間を通じて行なった観測（レーダパルス送信）の総数は1 億を超え、平均すると月面上の 600m 四方毎に LRS
観測（レーダパルス送信）がひとつなされたことに相当する。LRS の空間分解能は軌道方向に 600m（合成開口長 5km の場合）、軌道直交方向は 5km で、レンジ（深さ）方向は 150m である。レンジ分解能は真空中の値である。地下では、地下媒質（岩石）の誘電率の値に依存してこの値の 1/2～1/3 程度の値になる。
LRS SAR データを構成する個々の要素データは信号値対レンジ（探知距離）の 1 次元配列データである。図１は典型的な観測例についてそれを図示したものである。軌道上の各観測点に対応して図 1 に示されるような 1 次元配列データがひとつ得られる。
図 1．LRS 受信データ（1 パルス）例。

— 2 —

SENAC Vol. 45, No. 3（2012.7）

図２． LRS SAR データによる月地下断面画像の例。 縦軸に示す深さは地下媒質の比誘電率を 6.25 と仮定した場合の値。

図１では、任意のレンジを基準としてレンジ値を定義している。観測領域の月面が平坦な場合、信号の最大値はかぐや直下点からの表面反射波のものである。図１では、レンジ 2.9km に直下点
表面が見つかったことになる。図では、この表面反射波に続いて弱い強度の信号が受信されているが、これら表面レンジより遠くからやってくる反射波は地下反射面からのものであると考えられる。これらの小ピークは対応する深さにおける地下反射面（地層境界面）の存在を示唆するが、図１のデータだけでは地下の地層境界面からの反射波なのか、表面の同レンジ地点からの斜め反射波なのかはっきりしない。地下反射波と同定するためには、図 1 のデータを観測経路に沿ってならべて図２のような地下断面イメージを作って地下の層構造を確認し、さらに表面の光学画像データから地下反射波と紛らわしい斜め反射波を返すような地形がないことを確認する必要がある。
図１に示すよう、個々の LRS SAR 要素データには月直下点表面反射波信号と直下点地下反射波
信号が含まれ、それに表面斜め反射波信号が重畳している。表面が平坦な海領域では、表面斜め
反射波信号は 直下点地下反射波信号に比べ十分微弱であることがわかって来た。つまり、任意の深さの地下イメージを表面反射の誤認の恐れなく構成することができるということである。以下
では、LRS の電波で「見た」月の表面および地下の様相を紹介する。

 ⾲㠃
月の表面（図３）は大別して 2 種類の地形領域に分類できる。ひとつは、「海」と呼ばれる領域で、過去の火山活動で噴出した溶岩に満たされてできた平坦な地形領域である。肉眼（可視光）
では暗く見えるが、これはこの溶岩（玄武岩）の色による。もうひとつは、「高地」と呼ばれる領域で望遠鏡で見るとクレータに覆われた 起伏の激しい地形領域であることがわかる。「高地」は明るく見えるが、これは高地の岩石に多く含まれる斜長石が白いためである。
「海」は月面全体の2 割程度の表面を覆う。月の裏側はほぼ全面「高地」である。東北アジアの国々では、「海」の暗い部分をうさぎの姿に見立てて、月にいるうさぎの話を語らってきた。
LRS データから表面反射波だけを取り出し、それを画像ピクセル情報として軌道情報に従って
月面座標の当該点に置いて行けば LRS の月面反射波強度マップができる。これは、言わば LRS の電波で「見た」月表面イメージである。図４は地球から見える月の表側の大部分を含む、南北方
向南緯 40 度から北緯 70 度、東西方向西経 90 度から東経 100 度の範囲の LRS による「月表面イメージ」である。図の「明るさ」は月面の LRS 反射波強度を表しており、その相対強度はグレイス

「かぐや」月レーダサウンダが見た月の海— 3 —ケール（単位：dB）が示すとおりである。画像ピクセルのサイズは 0.1 度×0.1 度だが、図３．月表側の可視光イメージ[7]。主な海の名前を図中に示す。

図４． LRS SAR データによる月表側表面画像 。
これは赤道では 3km×3km に相当する。かぐやの観測軌道投影（フットプリントパス）は一様

— 4 —

SENAC Vol. 45, No. 3（2012.7）ケール（単位：dB）が示すとおりである。画像ピクセルのサイズは 0.1 度×0.1 度だが、これは赤道では 3km×3km に相当する。かぐやの観測軌道投影（フットプリントパス）は一様に月面をカバーしているわけではないので一部の領域でデータ欠損が生じている。データ欠損領域は近接データを線形補間して補った。そのため、空間分解能にむらが生じている。
LRS が見る月面（図４）は我々が普段見慣れている月のイメージ（図３）と明暗が逆転している。我々の目には暗く見える「海」が LRS には明るく見え、逆に、我々の目に明るく見える「高地」は LRS には暗く見えるのだ。これは、波長 60ｍの LRS の電波観測の場合、表面の物質の違い
による反射率の違いよりも表面の起伏の大小による散乱の影響の違いのほうが大きいためである。
すなわち、「海」の表面は平坦なため鏡面反射がほぼ実現され LRS の観測では強い表面反射波が受信されるが、「高地」では表面の大きな起伏のために LRS のレーダパルスが強い散乱を受けて弱い
反射波しか受信されないためである。高地領域の中でも、直径が 100km を越える大きなクレータ
は底が比較的平坦なため、明るく見えるものもある。
「海」の部分を詳しく見るとさまざまな様相が見えてくる。図５は「嵐の大洋」から「雨の海」
西部を含む領域を拡大した図である。図５は電波で見た月面とはいえ、陰影に富む豊かな様相を呈している。まず、「海」の中にも明るい領域と暗い領域があることに気づく。我々の研究の結果、「海」の明るさはその表面を覆っている溶岩の流出年代と関係があることが分かってきた。暗い部分は溶岩の流出による表面形成時期が 30 億年以上前の古いもので、明るい部分は表面形成時期
が 30 億年前から 15 億年前ころまでの比較的新しいものである。
赤線で囲まれた 3 つの領域は北から順に、リュンカー、アリスタルコス台地、マリウス丘陵と呼ばれており、いずれも火山性の地形である。リュンカーとアリスタルコス台地は周囲よりも暗く見えているが現時点でその理由ははっきりしていない。マリウス丘陵にはゴマ粒のような多数の黒点状のイメージが見られるがこれら一つ一つは個々の火山の溶岩ドームに対応する。

図５（左）では多数の黒く丸いイメージが「海」のあちらこちらに認められる。同図（右）に示すように、これらの黒丸イメージは直径数十キロメートルのクレータである。直径がさらに
図５． LRS SAR データによる月表側表面画像、「嵐の大洋」領域拡大図。右図は左図に代表的な地形、クレータ等の名称を表示したもの。

「かぐや」月レーダサウンダが見た月の海— 5 —

図５（左）では多数の黒く丸いイメージが「海」のあちらこちらに認められる。同図（右）に示すように、これらの黒丸イメージは直径数十キロメートルのクレータである。直径がさらに小さいクレータは黒い点のイメージとして認められる。これら、クレータが黒く見えるのは、クレータのふちから外に広がる斜面がクレータの生成（隕石衝突）時に放出された瓦礫（イジェクタ）が積もってできた起伏の激しい斜面なので、入射する LRS レーダパルスが強い散乱を受けて反射波の受信強度が著しく低下するためである。
図５では、ひも状の暗い構造も見られる。これは、リンクルリッジと呼ばれる地形に対応している。リンクルリッジは「海」を満たした溶岩が冷えて固まるときに起きる溶岩全体の体積収縮に伴って生じたと考えられている。リンクルリッジは幅が数キロメートルから 10 キロメートル程
度、 長さは数百キロメートルにおよぶ。起伏があり周囲からの高さは数百メートル程度である。
暗く見えるのはリッジの起伏による幾何学的な要因によるものとも考えられるが、リッジの表面から十数メートル程度の浅い部分の空隙率が大きいことによる強い散乱・吸収効果も否定できない。
最後に、「ジュラ山脈（Montes Jura）」を見てみよう。ジュラ山脈は図５の図中右上の部分に広がるひときわ暗い部分である。ここは、溶岩に埋もれることなく残った古い高地であるので、月の海が生じる前の隕石重爆撃を受けてクレータで飽和した古い地形を呈している。その起伏の激しい表面のため LRS レーダパルスは強い散乱を受け、結果としてジュラ山脈全体が非常に暗く見えている。ジュラ山脈の東側に大きな入り江のような地形があるが、これは直径 260km の衝突
クレータで「虹の入り江（Sinus Iridum）」と呼ばれている。虹の入り江には「雨の海」からの溶岩が流入して内側を満たしており、これが入り江を形づくっている。虹の入り江は 2014 年に計画されている中国の「嫦娥 3 号」の着陸地点の候補地に選ばれている。

����

LRS による「海」領域の観測ではあちらこちらで地下の層構造を示すデータが得られた[4]。合成開口処理を施す前はその層構造も 2 層程度までしか認められていなかったが、処理後のデータ
ではさらに多層の構造がよりはっきりと認められるようになった。図６は LRS データの合成開口処理によって実現された代表的な地下構造可視化の例を示している。層構造を示す地下反射波は
従来火山活動に伴って流出した溶岩が作り出した溶岩層の境界からの反射波であると考えられてきたが、我々は、それが、単純な溶岩層境界面ではなく、過去の火山活動休止期に隕石衝突によって粉砕された溶岩層表面に作られたレゴリス層からの反射波であると考えている。単純な溶岩層境界面からの反射だけでは 3 層以上の多層地下構造の反射波強度をうまく説明できなくなるからである。この考え方で図６を見ると、月の「海」領域における過去の火山活動は領域毎に異なる休止期を伴う活動度で生じてきたことが分かる。
さて、これら検出された地下反射波はどのような分布をしているのだろうか。図７は LRS SAR
データの見かけ深さ 300m から 1200m までのデータを深さ毎に正規化してデータのダイナミックレ
ンジをそろえた後、さらに深さ方向に積分して作った地下反射波検出分布図である。図中、白く見える領域が特にはっきりと地下反射波が検出された領域であり、暗く見える部分は地下反射波を識別することができなかった領域であることを示す。LRS データの初期解析では月面表面物質の二酸化チタン（TiO2）含有量と LRS の地下反射波検出との間に逆相関の関係があることが見つかったが[7]、S/N が向上した LRS SAR データによる図７を見ると当初見られたほどにはその逆相
関関係は強そうには見えない。今後、定量的な再解析が必要である。

— 6 —

SENAC Vol. 45, No. 3（2012.7）

図６．さまざまな領域の LRS 地下断面画像。(a)嵐の大洋（西経 68.1 度）、 (b)雨の海（西経 8.9 度）、 (c)晴れの海（東経 20.9 度）、 (d)危機の海（東経 59.0 度）、 (e)神酒の海（東経 37.7 度）、 (f)スミス海（東経 87.6 度）。縦軸に示す深さは地下媒質の比誘電率を 6.25 と仮定した値。一部著しく画像が乱れている部分があるが、これは信号処理上の問題で生じたもので、実際の地形を表すものではない。

「かぐや」月レーダサウンダが見た月の海— 7 —

図７． LRS 地下反射波検出分布図 。みかけ深さ 300m から 1200m までの観測データを積分。表示範
囲は図３に同じ。

�����

本稿では、これまでに明らかになった「かぐや」月レーダらサウンダの観測による月の様相の一部を紹介した。地球上からは、LRS の観測周波数、5MHz による月のレーダ観測は電離層の遮蔽効果のために不可能である。これは宇宙空間からしかできない観測である。この、かぐや LRS の観測・データ処理は東北大学が率いる観測グループによって進められてきた。データの SAR 処理が終了した現在、本格的なデータの解析と研究が進行中である。研究の今後が楽しみである。

��
本研究は、韓国地質資源研究院基本研究事業「地球・惑星進化追跡源泉技術開発」の中で行なわれた。本研究における大量のデータ処理は,東北大学サイバーサイエンスセンターのスーパーコ
ンピュータを利用することで実現することができた。また、研究にあたっては同センター関係各位に有益なご指導とご協力をいただいた。

����[1] M. Kato, S. Sasaki, Y. Takizawa, and the Kaguya project team, The Kaguya Mission Overview,
Space Sci. Rev., 2010, DOI 10.1007/s11214-010-9678-3[2] T. Ono et al., The Lunar Radar Sounder (LRS) Onboard the KAGUYA (SELENE) Spacecraft,
Space Sci. Rev., 2010, DOI 10.1007/s11214-010-9673-8[3] R. J. Phillips et al., Apollo Lunar Sounder Experiment, APOLLO 17 Preliminary Science
Report ch. 22, NASA, 1973

— 8 —

SENAC Vol. 45, No. 3（2012.7）[4] T. Ono et al., Lunar Radar Sounder Observations of subsurface layers under thenearside maria of the Moon, Science, 2009, DOI: 10.1126/science.1165988[5] T. Kobayashi et al., Synthetic Aperture Radar processing of Kaguya Lunar Radar Sounderdata for lunar subsurface imaging, IEEE Trans. Geoscience and Remote Sensing, 2012, DOI:
10.1109/TGRS.2011.2171349[6] 小林敬生 小野高幸、スーパーコンピュータ SX と月探査――「かぐや」による月地下構造探査――、SENAC, Vol.42, pp.101-105, 2009[7] http://www.google.com/moon/[8] A. Pommerol et al., Detectability of subsurface interfaces in lunar maria by the
LRS/SELENE sounding radar: Influence of mineralogical composition, Gephys. Res. Lett.,
2010, DOI: 10.1029/2009GL041681

SENAC Vol. 45, No. 3（2012.7）— 9 —［共同研究成果］

��������������������
��������� MPI �������
岩長 祐伸
物質・材料研究機構，科学技術振興機構さきがけ
周期長が光の波長程度である人工周期構造体（フォトニック結晶）に構成要素として金属ナノ構造を含む一般的なフォトニック結晶における光学応答を高精度に数値計算するためには，巨大なメモリを使用しながら 10000×10000 程度の一般複素数値行列の演算を大量に実行する必要がある．数年来，この計算コードの高速化，並列化に漸進的な改良を行ってきたが，さらなる高速化を実現するために MPI 化を実施した．本稿では，MPI 化によって得られた高速化の現状を中心に報告する．

1.

����

電磁波の数値計算に関しては多くのソフトウェアが存在し，商用シェアウェアで利用できるものとしてマクスウェル方程式を時間差分して電磁場を計算する FDTD（Finite Difference Time
Domain）法，空間を有限要素で分割してマクスウェル方程式を解く有限要素法，マクスウェル方程式をフーリエ変換した方程式を解いて反射率・透過率などを算出する RCWA（Rigorously
Coupled Wave Approximation）法などが比較的よく知られている．
いずれの方法でもマクスウェル方程式を数値的に解くことになるので，空間のグリッド分割が必要になる．定性的には，フォトニック結晶内における電磁波の波長 λ の数十分の１程度のグリ
ッドの細かさが必要となる（RCWA 法では空間座量から電磁波の波数へのフーリエ変換が行われるので，さらにフーリエ波数 2πim/λ も大きな m 次まで取ることになる）．フォトニック結晶の単位胞に金属ナノ構造が含まれていると，ナノ構造のサイズ程度で電磁波が固有の分布を形成する
ため，ナノ構造の数十分の１程度のグリッドというさらに細かい空間分割が必要となってくる．
図１は金属フォトニック結晶の細線で外枠を示す単位ドメイン内における金属部表面を分割した一例を示している．この例は有限要素法によるもので境界 yz，zx 面に周期境界条件を課して計算を行う．円柱状のロッドは直径 150 nm，x 軸方向の周期は 900 nm，z 方向の金属の厚さは 150 nm
である．金属ナノロッドの直径 150 nm に対して，その数十分の１は 2~5 nm になる．

図１

一般フォトニック結晶単位ドメイン（細線）内の金属部分のグリッド分割の例

— 10 —

SENAC Vol. 45, No. 3（2012.7）

FDTD 法や RCWA 法においても単位ドメインに対応する分割を設定して，対象の光学応答を算出することになる．結果として周期構造の単位ドメインを 108 程度の要素に分割して，各グリッ
ドに物質パラメータである複素誘電率を割り当て，マクスウェル方程式の膨大な数値計算（最終的には数値行列演算）を行うことになる．
研究の現場で未知のフォトニック結晶の性質を明らかにするためには，試行錯誤を含めて多くの数値計算を実行しながら，計算精度を追求することが必要となるので，筆者は RCWA 法の原著
論文［1］を基に有限次切断フーリエ展開を高速に取り扱うアルゴリズムを取り入れ，周期構造が積層した 3 次元的なフォトニック結晶を数値的に安定に取り扱うことができる散乱行列法［2］を組み込んだ数値計算コードを開発し，SX-9 上で運用してきた．これまでの RCWA・散乱行列コードのアルゴリズムの詳細，運用実例，改良については本誌上で報告してきた［3－7］ので繰り返さないが，漸進的に高速化・並列化の向上を実現し，MPI 化を除けば，改良の上限に達していた．
計算機環境についても読者の関心があると思われるので，ここで簡単に触れておきたい．近年のワークステーションの進歩に伴い，100 GB 程度のメモリをもつワークステーションを研究室に備えて計算を実行していくことも選択肢としてありうるが，RCWA 計算では対象次第では 1 TBに近いメモリを要する場合も稀ではないため SX-9 上でのコード運用に大きな利点を筆者は感じている．また，メモリだけならばクラスター型の計算機なら対応できるが，数値行列演算に関して SX-9 のほうが数倍から数十倍速かったという経験もある．コード自体に多くのチューニング
を施さないと高速化できないクラスター計算機はユーザーにとっては恩恵を感じにくいと想像する．一方，SX-9 上では自動並列化オプション（-Pauto）のみで相当程度の並列化率を得て高速化できる利点がある［7］．
本稿では，以上の状況を受けて，今回 RCWA・散乱行列コードの MPI 化とその結果について述べる．通常，フォトニック結晶というと，シリコンなどの半導体材料または透明誘電体であるオパールなどからなるものを通常想定するので，以下では金属ナノ構造も含む，より一般的なフォ
トニック結晶を単に一般フォトニック結晶と呼ぶことにする．

2．MPI ����一般フォトニック結晶の光学応答では線形過程によって生じるもののみを考える．この場合，反射光，透過光に加えて回折光が生じうる．これらの応答の特性はスペクトルとして表現し，その性質を吟味することになる．図２は図１で示した金属フォトニック結晶の模式図と反射（R）
スペクトル（赤線），透過（T）スペクトル（青線）である．入射角度 θ が 0 度（実線）と 10 度
（点線）の場合を示している．

図２ 金属フォトニック結晶の模式図と反射（赤線）・透過（青線）スペクトル— 11 —

金属ナノ構造を含む一般フォトニック結晶の光学応答計算コード MPI 化による高速化

図２左では入射光の配置を示している．入射面（入射光と反射光の進行ベクトルが張る平面）
は xz 面であるように設定し，入射偏光は電場ベクトル Ein が xz 面内にある p 偏光とした．対応する実験も行い，計算結果とよい一致を示すことを明らかにした［8］．図２右では横軸を光の波長で表示した反射・透過スペクトルを示し，入射角度によってピークやディップが大きく変化していることが分かる．これらのスペクトル特性から共鳴状態を明らかにするのが筆者の数値計算を通じた物理学的な主題であり，実際に起源の異なるプラズモン共鳴として分類できるのであるが，考察結果と構造パラメータの詳細は文献［8］に譲り，ここでは数値計算の条件などについて述べていく．
図２の反射・透過スペクトルは RCWA 法によって SX-9 上で計算した結果であり，xy 面を 5×5
nm2 のグリッドで分割して，フーリエ波数を±20 次まで取った．この計算を p16（16 CPU 下）で実行した結果，使用したメモリは 59.6 GB でスペクトル上の１点を計算するのに 9.8 分要した．
１つのスペクトルには 139 点のデータ点があるから，22.7 時間かかったことになる．
光学スペクトルの各点は線形過程では互いに独立であるから，１つのスペクトル（列データ）を計算するために MPI 化で強制的に並列化することは大幅な計算時間の短縮につながることが期待できる．単純に言えば，図２の例を p64 で 16 CPU×4 の実行を行うことができれば，計算時間は 1/4 に短縮できる．この大幅な時間短縮，つまり高速化を実現するために今回コードの MPI化を実施した．
MPI 化の方針は図３に図式化した．基本的な方針としては，スペクトル計算の主要ループを強制的に並列化すればよい．ただし，主要ループの前で共通保持できるポインターは確保し，物質
パラメータなどを割り当てている．

図３

MPI 化の概念図

計算実行時のメインループは図３で簡略化して示しているように E-LOOP が担う．このループ
はスペクトルの横軸に相当する量を掃引する．主な計算処理は，
1. フーリエ変換したマクスウェル方程式の係数行列を構成する CONSTRUCT_MATRIX

— 12 —

SENAC Vol. 45, No. 3（2012.7）2.
3.

各周期層のなかのマクスウェル方程式を解く SOLVE_MATRIX
各周期層の固有モードを使って一般フォトニック結晶全体の応答を表現する散乱行列を構成する CONSTRUCT_S_MATRIX
4. 最後にインプット（入射光）に対してアウトプット（反射光，透過光など）を散乱行列から算出する CAL_R_Tがある．各処理で使う配列が E-LOOP ごとに独立であるから，今回の MPI 化は実行できた．物理量として対象の線形応答からスペクトルを算出する場合は，今回のように電磁波の問題に限らず，同様の MPI 化が一般に可能である．
図３の左側は自動並列化のみでの実行を想定しており，p16 または p8 または s での実行に対応する．一方で図３右は MPI 化後に p64 に 16 CPU×4 並列で実行することを模式化している．スペ
クトルのデータ点が 8 点であれば，2 点×4 並列となり，理想的には計算時間は 1/4 になる．一般にはデータ点が 4 で割り切れるとは限らないが，その場合は端数を E-LOOP1 と E-LOOP2 に割り振る実装になっている．スペクトル計算において通例データ点は 100 から 1000 点ほどあるので，実際の運用において端数が出たことによる遅延が問題になることはなかった．
表１は p16 と p32（16 CPU×2 並列），p64（16 CPU×4 並列）での計算時間と使用メモリの変化の典型的な例である．テストケースとして 3 層積層からなる一般フォトニック結晶の反射・透過スペクトルを計算した（図１，２の構造とは異なる）．
p16
p32
13.2
3.38
データ１点の計算時間（分）
50.15
100.67
使用メモリ（GB）
表１ MPI 化の有無による計算時間，使用メモリの変化

p64
1.78
200.34

表１から，p64 での計算時間が 1.78/13.2 = 1/7.4 と想定の 1/4 よりさらに高速化しているように読み取れる．この例では p16 でのデータ点数を 21 点に抑えたため，偶然時間のかかる波長域で計算してしまった可能性がある．共鳴状態の波長においては SOLVE_MATRIX のなかで call している行列の固有値・固有ベクトルを求める関数の実行に時間がかかる傾向がある．表１以外の例では，およそ 1/4 程度の時間短縮が得られており，当初の目標通りの高速化が実現できていると言える．また，p32 と p64 を比較すると，1.78/3.38 = 1/1.9 と p64 で約 1/2 の実行時間で計算を実行できている．
使用メモリに関しては，MPI による並列化で同じ配列を並列数だけ確保するので，p16 に対して p64 では約 4 倍，p32 では約 2 倍のメモリを使用している．これも想定通りであり，MPI の実
装がうまくできていることの証左である．

3. メタ��リ��������の��
この節では SX-9 上での光学応答計算コード運用から得られた，この１年の結果［8－10］のなかからメタマテリアルに関する成果［9,10］について述べる．メタマテリアルとは，一般フォトニック結晶のなかで考察する波長域よりも周期長が小さいものであり，回折光が生じないことから，従来の固体媒体では実現困難な性質を備えた新しい電磁波伝播媒体となることが期待されている．

3.1 ���������メタ��リ��������モー�の分�計算
フィッシュネット・メタマテリアルとは，金属・絶縁体・金属の積層構造に貫通孔を周期的にあけたフォトニック結晶のことを指す．図４左は構造模式図であり，図４右は p 偏光下の波数・
光エネルギー分散図を示している．分散のデータ点は光学応答から得られた吸収スペクトルのピーク位置をプロットすることで得た．光吸収量 A は入射光の電磁エネルギーを 1 と規格化したと— 13 —

金属ナノ構造を含む一般フォトニック結晶の光学応答計算コード MPI 化による高速化

きに A  1  R  T で表される（ R ：反射率， T ：透過率）．最低次下枝 a の分散式は

   k x  1(1)と表される．ただし，   0 ， k x は波数， 1 は k x  0 での最低次のエネルギーである．

図４ フィッシュネット・メタマテリアルにおける固有モードの波数・エネルギー分散
金属層に挟まれた絶縁体層内部の導波路モードの群速度 vg は

vg 


k x

(2)

で与えられ，式（1）から v g    0 となる．つまり，最低次下枝 a の導波路モードは負の群速度を持つことが分かった．このような特異な条件が満たされることで，このフィッシュネット・
メタマテリアルは，斜め入射下で負の屈折現象が生じる媒体となっていることが今回初めて明らかにできた［9］．なお，最低次のモードであっても上枝 b の群速度は正であり，負の屈折現象は生じない．

3.2� ������������������������������
金属ナノロッドが周期的に配列した場合に，単独のロッドだけでは生じない集団的な共鳴状態を見出した．図５はその具体的な構造と透過スペクトルを示している．周期構造に上から入射光が当たる配置を考える．
金属ナノロッド間の距離（ギャップ）を 0 nm から 20 nm まで少しずつ変えていく．ギャップ
が 0 nm のときは入射直線偏光が ψ=45 度（ψ は x 軸と直線偏光のなす角）に対して波長 1500 nm
以上で透過率がほぼ 0 になっている．一方，入射偏光 ψ=135 度に対しては同じ波長域で 40%程度の透過率がある．このことは ψ=45 度では広帯域な共鳴状態が形成されて，光エネルギーが吸収されていることを示唆している．実際，電磁場分布の解析からナノロッド間の集団的な共鳴が生じていることを明らかにした［10］．ナノロッド間の集団共鳴を示したのは，筆者の知るかぎりにおいてこの例が初めてである．この集団共鳴はロッド間の距離に非常に敏感でわずか 10 nm のギ

— 14 —

SENAC Vol. 45, No. 3（2012.7）

ャップでもほぼ失われてしまう．構造設計の精度が非常に重要であることを示唆している．

z

図５ 金属ナノロッド列における構造変化と偏光透過スペクトル

金属ナノ構造を含む一般フォトニック結晶の光学応答計算コード MPI 化による高速化— 15 —

一方で入射偏光 ψ=135 度のとき，つまり入射直線偏光がナノロッド列と直交しているとき，透過スペクトルはほとんどギャップに依らない．この結果は集団的な共鳴状態が偏光選択性をもつ
ことを示している．このようにフォトニック構造と光の状態（偏光）の組み合わせを含めて，対象の光機能を設計していく必要がある．

4. ࡲ࡜ࡵ࡜௒ᚋࡢᒎᮃ
一般フォトニック結晶の光学応答を数値計算するコードの MPI 化を実装し，高速化（計算時間の短縮）を試みた．当初の期待通り，p64 では p16 の約 1/4 の実行時間でコードの運用ができるようになった．光学スペクトルの計算が電磁波の線形応答をもとにしたものであったので，各データ点を独立に扱うことができ，自ずと MPI 化に適していた．電磁気学の問題に限らず，線形ス
ペクトル計算の MPI 化は物理学一般において有効であると考えられる．
計算時間の短縮は様々な対象をより多く扱うことを可能にするので，コードを運用するユーザ
ーとしても大きな恩恵にあずかることができる．この１年だけでも様々な対象を詳細に研究できた［8－10］ことも端的な成果と言える．
本稿で紹介した例では p16 実行下で 50 GB 程度のメモリを使ったものが多かったが，その他の事例ではメモリ 500 GB というものもあった．SX-9 でもメモリの上限をそろそろ意識しなくてはならない領域に踏み込みつつある．私見ながら，SX-9 のスペックは電磁気学の問題を解くのに適していると感じている．量子力学の問題の多くは現在の大型計算機を持ってしても解けていない
ことは周知であり，チャレンジングな課題であることは確かであるが，単に計算機のスペック不足なのか，それとも良いアルゴリズムを見つけることができていないだけなのか，筆者にはいまだに判然としない．今回用いた RCWA 法に関して，実用に耐えるアルゴリズムの発見［1］までに約 30 年を要した歴史的経緯がその思いを強めている．
今回の MPI 化の効果として，さらに膨大な計算量を必要とする数値的な新規フォトニック構造
探索が可能になった．遺伝アルゴリズム［5］と今回の光学応答計算コードの融合による構造探索
を現在実行している．比較的単純な構造に潜む共鳴状態を解くことがこれまでの主な研究であったが，人間の想像を超える新しい人工ナノ構造の発見につなげていくことを目標に SX-9 を今後活用していきたいと考えている．

ㅰ㎡
本研究における MPI 化の実装は SX-9 開発元 NEC のご協力を得て，東北大学サイバーサイエン
スセンターと共同で実施したものであり，期待にたがわぬ MPI 化を行っていただきました．この場を借りて厚くお礼を申し上げます．また，本研究の一部は科学技術振興機構さきがけ，科学研究費補助金（No. 22760047）の支援を受けて行われました．
ཧ⪃ᩥ⊩
[1] L. Li, “New formulation of the Fourier modal method for crossed surface-relief gratings,” J. Opt. Soc.
Am. A 14 (10), 2758–2767 (1997).
[2] L. Li, “Formation and comparison of two recursive matrix algorithm for modeling layered diffraction
gratings,” J. Opt. Soc. Am. A 13 (5), 1024–1035(1996).
[3] 岩長祐伸,「散乱行列法を用いたフォトニック結晶の光学応答解析」SENAC 39 (3), 25–32(2006).
[4] 岩長祐伸,「メタマテリアルにおける有効光学定数の決定法と応用」SENAC 40 (3), 5–14 (2007).
[5] 岩長祐伸,「遺伝アルゴリズムを用いた光機能性人工構造体の探索」SENAC 41 (3), 43–51(2008).
[6] 岩長祐伸，「メゾ周期構造体における電磁波散乱の高精度数値計算」SENAC 42 (4), 9–18 (2009).
[7] 岩長祐伸，「積層プラズモニック結晶における光機能性発現」SENAC 44 (2), 49–56 (2011).
[8] M. Iwanaga, N. Ikeda, and Y. Sugimoto, “Enhancement of local electromagnetic fields in plasmonic

— 16 —

SENAC Vol. 45, No. 3（2012.7）

crystals of coaxial metallic nanostructures,” Phys. Rev. B 85 (4), 045427 (2012).
[9] M. Iwanaga, “In-plane plasmonic modes of negative group velocity in perforated waveguides,” Opt.
Lett. 36 (13), 2504–2506 (2011).
[10] M. Iwanaga, “Collective Plasmonic States in Metallic Nanorod Array and Their Application,” inNanorods, edited by O. Yalcin (InTech, Rijeka, 2012) Chap. 4. (http://dx.doi.org/10.5772/36198)

— 17 —

SENAC Vol. 45, No. 3（2012.7）［研究成果］

1D8F=!"%(  4AG.	
 
DE

Ĭŷ	
 ºĿ	
  	
  DCůŏ	 Ȋ	  	  DEƍı	 Ȋǯ	  	  BEƗƏ	 ĪÄ	  	  DĬŹ	 ĹŪ	 DŶ÷ğģ¹··¹	 BCŶ÷ğģŋĘƶģƱƸƶ	  «µ¹ŻĻÍƵ	 E
#$	
 "#$	 	 	   	   jȚğǛƄǟƼ«diƒÒª¯´¹°·{ŉȖhǡǟVy^Ƈ¿É 869=<+<387+5	
 5=3.	
 A7+63-;³¹dHxț djƻȅȌƮÆŽġ
{śƢWcLwȚƒÒª¯´¹°·hņǙgƘƼ{ħūhĔƻæïYxTeNdOx^rȚğǛƄǟƼ«{ƢI^ÁèǟƼhǼWcIxțŴĘĈdjȚƃFgğǛƄǟƼ«i
ƛŅ{ǉōWc  iĦǖ¸ŰǼö{ǓIȚ\iŊǊǢÖhėbOĦôŊǊ{ǦǣYxț	
 
	
 

	
  ?E	
 
 ĸÉËȇȚ·¢¯¹{ƢI^ŦÛǟƼNƒÒñģhLRxª¯´¹°·tǝŸhƢIvycO^țºǎƫh  iæȀdjȚǘȐgľƜ{ãƟYx^rhȚĚƤǼăŽġ
,8=7.+:A03<</.	
 6/;2tȒƂǷŽġ=7;<:=-<=:/.	
 6/;2NĹPƢIvyxțTyviŽġ{ƢIxTehuwȚƒÒǝŸiīǧegxľƜ{ňĦhãƟYxTeNāǊg^rȚuwƈƲg {ǓJTeNdOxțWMWgNvȚǱĸȚȘǓƆtșǶȃǺ	 ǌõǫgfiuJhȚȒĵhľ
ƜNǘȐgƚÒN  iÃgīǧeg`cIxț\i^rȚȒƂǷŽġ{ƢI^  hLIcjȚ
­³¹MviŽġÓŎgfiäơ{ǓJîäơȚǘȐg­³iƒÒǝŸǟƼȚ\iǝŸǂźhėbPāǜöt¹ŕågfiłäơhȒĵhǋğgŭȅNņǙegxțp^ȚğǛƄǟƼ«{ƢI^ÁèäơhņǙegxæïŨƐsǘȐöWȚƘƼǨǐ{ĔƻhÙaiNȑ
WI^rȚȒƂǷŽġhėbPğǛƄ  iôƞƫgÁèäơjđȑhg`cIxț	 Tičȗ{żŴƫhǝƎYx^rhȚƇ¿Éi  ³¹dHx  NşžVycIx(   )ț jğǛƄǟƼ«{ƢIcƃFgƒÒƟǧ{ôƞƫhª¯´¹°·Yx^rhȚŽġiľƜNùƿgƮÆŽġ+:</;3+7	
 6/;2{śƢWcIxțTyhuwȚǘȐö¸ƙȐöW^îäơ¸ƒÒǝŸ¸łäơ{ȚùƿhYxTeNdOx( )țVvhȚ j  hņǙegxƘƼ{ħūhĔƻæïYxTeNdOx^rȚğǛƄǟƼ«hLIcǨǐi±·
{Ù`^ôƞƫgÁèäơ{ĦƟdOxț	 ŴĘĈdjȚğǛƄǟƼ«{ƢIc  iŊǊǢÖ¸ǝŸ{ǓIȚ iƛŊ{ŪvMhYxțǱĸiğǛƄǟƼ«iŊǊĆ¼jǑWPȚĞƃgğǛƄǟƼ«NƩęWc
IxțƌƢ¥µ{ŢǮW^ ±ĕğǛƄǟƼ«tŞƣäơƢ¥µ:+923-;	
 !:8-/;;371	
 %73<	
 !%{ǟƼhŇƢYx}±´¹ĕğǛƄǟƼ«ȚğȁiǟƼ{ĄŭhäơYx§³ĕğǛƄǟƼ«gfȚ¥µi}¹®t«ƂŎ
huw\iƛŅNƦgxț\y]yiğǛƄǟƼ«iƛŅ{ǉōWc  iĦǖeŰǼö
{ǓIȚ\iŊǊǢÖ¸ǝŸ{ǓJTedȚ iƛŅ{ŪvMhWȚŮgxșǶöiſǠ{Ǔ
Jț	
 

	
  <JK;-62:   	
 

	
 

 7C	  jȚșĨĺŽġ{ņǙeYxuJgǘȐgƚÒĉwiğǛƄ ƇÞƒÒǝŸi^rhǡǟ
VycIxțĒ hƴYuJhȚ dj  iǝŸȕĖ{   eĊkyxǽæȕĖhæïWȚ
Vvh\y]yi -=,/ {  eĊkyxșĨĺiƻȅȌƮÆŽġdæïYxț-=,/ ijƚÒiľƜtƒyiƛŅhŇXcƎrvyx( )țŽġiľƜNȒƂǷŽġiuJhǘȐdjg

— 18 —

SENAC Vol. 45, No. 3（2012.7）

I^rȚ i}³²«{·¥³hYxTeNdOȚîäơtƒÒǝŸȚłäơișǶö
NŲŁdOxț	  jƘƼ{ħūhĔƻæïYxTeNdOx^rȚÁèäơhǼWcIxț-=,/ UeiǟƼ
jĤàhƝƹWcLwȚĂ -=,/ iǟƼhņǙegxƘƼȁe¹ȁjĄºdHxț\i^rȚ-=,/ ùÏdǟƼ{æïYxTehuwȚĔƻgƘƼhæïYxTeNdOxțVvhȚ-=,/ âiȏŜYx -/55 ĄĜhjÕĢȆ×NHxNȚĂ -/55 iǟƼhņǙegxƘƼȁe¹ȁjĄºdHxț\i^rȚ-/55 ĄĜiÕĢȆ×{ǝƔYxTeNdOykȚŮgx¹ÁèŊ{ŕåYxTeNāǊhgxț	 Ē h  huxȒēǅŊƒÒǝŸi£µ¹®¹{ƴY(  )ț djȚƒyiėƳŨƷ
ĻhȒēǅŊ +>3/:#<84/; ŨƷĻ{ƢIcLw( )Ț¹ǾǇ;<+11/:/.	
 +::+71/6/7<iǙǀhīWcűȈĳæƐ0373</	
 .300/:/7-/	
 ;-2/6/huxǽæƉȋƐ
0:+-<387+5;</9	
 6/<28.dǟƼ{ǓJțǽæƉȋƐdjȚƒÒǝŸ{ŭȅ¥UehȚÌ
ǶĺęǟƼ¹ȚēñęǟƼ¹ȚǶĺęǟƼ¹iÃh ai¹hæRcIxțĂ¹hjęiǟƼeȏŜYx -=,/ ȅei¹ÆŠNćpycIxț	 Tyvi¹iÂdȚ# "#=--/;;3>/	
 8>/::/5+@+<387Ɛ{ƢIc¨}·ŨƷĻ{ǝPēñęiǟƼNŰsŤǾƫdHxțTyjȚȏŜYx  ai -/55 {ƢI^·³ǟƼ{ȚēñęiĳæNýŵYxpdȚàci -=,/ iàci -/55 hīWcǆwǲWǟƼ{ǓJņǙNHx
^rdHxț	 	 Ē 1	   hLRxǟƼŽġ

Ē 	   hLRxƒÒǝŸiƒy	
 
	
 

	
 
	
 
	
 
	
 

大規模計算システムにおける BCM の性能評価— 19 —

	
  1D8F=!"%(  3B	 ğǛƄǟƼ«huxÁèäơhu`c  iǟƼŭȅ{ưǅV[x^rhjȚ¥µ
i}¹®t«ƂŎ{ǉōW^ĦǖeŰǼöNņǙhgxțŴƺdjȚǕ hƴY¥µ{ŢǮYxğǛƄǟƼ«iƁǙ{ǳmȚ\y]yiğǛƄǟƼ«li
 iĦǖ¸ŰǼöhaIcǳmxț	
 
	
 
Ǖ 	
  ğǛƄǟƼ«hŢǮVyx¥µiǤÞ	 	 ơǣƘƼŊǊ¬­²·
«	
 
}Ŧ	
 
·¥¬­²	  Û	 0589;;	 Ķ;	 	  -8:/	 /2+5/6	
 !	
 
 	
 
	
 
	
 
 	
 
	
 ;2+:/.	
  	
 
	
  -8:/	 /2+5/6	
 '	
   	
 
 	
 
	
 
 	
 
	
 ;2+:/.	
  	
 
' 	
 
 	
 
	
 
	
 
	
 ;2+:/.	
  	
 
	
 
	
  -8:/	 #" 	
  	
 
 	
 
	
 
	
 
 	
 
	
 ;2+:/.	
  	
 
#'	
 
  	
 
	
 
	
 
	
 	
 
 	
 
$/;5+	  	
 
	
 
 	
 
	
 
#	
 
 	
 
	
 

	
  "  ) 0 1 D 8 F = ! " % (       3 B 	 7</5	
 /2+5/6	
 ! ±t 7</5	
 /2+5/6	
 ' ±ȚĩĜǵ ' 	 ũƹ #" 	  jȚ\y]y /2+5/6	
 !	 /2+5/6	
 '	
 #!" &	 	
 !8?/:	  eI`^ĞŦiƌƢĕ ±¥µ{ŢǮYx ±ĕğǛƄǟƼ«dHxțǕ hƴYuJgǘŦi}{Ŗa±¥µ{ ap^jǘŦŢǮW ¹{ƂŎWȚTi¹{ 70373,+7. gfișǶg
¶¹dĞŦŜǄYxTedȚ ±ĕğǛƄǟƼ«NƂƽVycIxț ±¥µjǘŦi¹hīWcĄXƘƼ{ĦǓYxTeNāǊg ##3715/	 7;<:=-<387	
 =5<395/	
 +<+ċÊtȚĮőŊișI¹li}´·{íƕYx^riğħȁ·¥®¯¬­²{ÜKcIxț	  { ±ĕğǛƄǟƼ«dĦǖYx^rhjȚĞŦi ±¥µiűôƑƢNǿǙegxț ișI -=,/ ÁèŊ{ëƢWȚ-=,/ {ǟƼ«i¹Ț\Wc¹âi¥µlȚ¥µâi}leȋİƫhïwĽcxTedȚĞŦi}{ƢI^Á
èäơ{ǓJț-=,/ ƊiƘƼȁjĤàhĄºdHx^rȚ¹ȅȚ¥µȅȚ}ȅiƘ
ƼjĔƻegwȚĞŦi ±¥µ{ëƢW^ôƞƫgǟƼNāǊhgxț ±¥µhLRxğħȁ®¯¬­²{ôƞƫhëƢYx^rhȚ¹li}NǸǄdHwĮőŊNșIǵĵi # " Ɛ{ƢIxțp^Ț# ċÊ{ëƢYx^rhȚ· ±hux
ŰǼö{Ǔ`cIxțuwôƞƫh # ċÊ{ëƢYx^rhjȚ ±¥µUeh\y]yĥǈVycIx·±·}·¤±gf{ƢI^ĦǖNņǙhgxț	 	  ' & * 0 1 D 8 F = ! " % (       3 B 	 	 #' jğǛƄg   	 	   ¹MvƂŎVyx§³ĕğǛƄǟƼ«dHxțĂ #! ¹j   0589;; i§³¥µ{  ÚŢǮWcIxț#' §³¥µdj  ǙǀiĄºƘƼ{ĄŭhäơYxTeNdOxț	 #' huxôƞƫgäơ{ĦƟYx^rhjȚ iÁèŊ{dOxȈwŕåWȚdOx_RĞPiǙǀ{ĄŭhƘƼYxņǙNHxț\i^rȚ#' hLRx  iĦǖhjȚ-=,/ iÁè— 20 —

SENAC Vol. 45, No. 3（2012.7）

Ŋ_RdgPȚ-/55 iÁèŊsëƢāǊgȚ"/.5+-4	
 # " Ɛ{śƢYxț"/.5+-4 ƐdjȏŜYx -/55 ĄĜiÕĢȆ×{ǝƔYx^rhȚ-=,/ âiYmci -/55 {Ē hƴYuJg :/.
³¹¥e ,5+-4 ³¹¥hæRxț:/. ³¹¥i -/55 ĄĜjÕĢȆ×NgI^rȚ:/. ³¹¥iYmci -/55 iēñę{ĄŭhǟƼYxTeNāǊegxțĄƃhȚ:/. ³¹¥iēñęiǟƼNǁz`^łhȚ,5+-4 ³¹¥iYmci -/55 iēñę{ĄŭhǟƼYxțTi
"/.5+-4	
 # " ƐhuwȚ-=,/ iÁèŊ_RdgP -/55 iÁèŊsëƢWcȚǘŦi -/55 iēñęiǟƼ{§³¥µdĄŭhäơYxTeNdOxț	
 
WMWgNvȚºǎƫh§³äơhux "/.5+-4	
 # " ƐdjȚĄŭhäơdOxǙǀŦ
Nƕ`cWpI§³ƘƼŊǊNÐ½WcWpJāǊŊNHxțTy{ŔìYx^rhȚ©
¹¤³{ƢIc :/. ³¹¥e ,5+-4 ³¹¥{éêYxTehuwȚ§³ƘƼhøæ
gǙǀŦ{ƲÙYxț	
 
	
 

	
 
	
 
Ē 	
  "/.	
 -/55 ³¹¥e ,5+-4	
 -/55 ³¹¥	
 
	
 
¸¸¸	
 
!cdir ON_ADB(prs)do icolor=1, 2
do icell=icolor,max_cell*max_cell*max_cell,2if(mask(icell,1,1,icolor).eq.1) thenp0 = prs(icell,1,1)
pxm = prs(icell-1,1,1)
pym = prs(icell-max_cell,1,1)
pzm = prs(icell-max_cell*max_cell,1,1)
pxp = prs(icell+1,1,1)
pyp = prs(icell+max_cell,1,1)
pzp = prs(icell+max_cell*max_cell,1,1)
¸¸¸	
 
	
 
Ē 	
  #' hLRxēñęǟƼiƧÎ¹	
 p^Ț#' iŊǊ{VvhļOåY^rhȚ¥µhŢǮVycIx·¥¬­²d
Hx  	   	  {ƑƢYxț j  iħȁ{Ŗa£}ì
ńNāǊg·¥®¯¬­²dHxț¥µ±©hŗƴVy^¹hºĺ}
Vyxe  hÙĢVyȚƇi}iȍh  Mv¹{þŃYxTeNdOxțĒ hƴYuJhȚēñęi·³ǟƼiȍh  ďãëƢVyx¹{  hÙĢYx *~´~¤{¹¹hŚßYxțTyhu`cȚ¬·¬­²e  iÀŨMvêF

大規模計算システムにおける BCM の性能評価— 21 —i¹{§³ƘƼĎhÔǃYxTeNdOx^rȚuwșIĦô¬­²·Ķ{ĦƟWȚ iǟƼ{șǶhĦǓdOxTeNŲŁdOxț	 	   # ) + , $ 0 1 D 8 F = ! " % (       3 B 	 ÉǕƫg}±´¹ĕğǛƄǟƼ«i adHx   	  	  ±djȚ ap^jǘŦi !% {ŢǮW^¹NĞŦŜǄVycIxț!% j 	  	 	  djȚŦƪi   	  
Mvgx¬¹}i¥µeǉKxTeNdOx( )ț% dj #! N   	  eWc³¹¥hpervyȚ# iÂi #! NĄŭhõÓYxț	 !% ±djȚ ai !% hŦƪ}sŢǮVycIx^rȚ«àÒi}Ŧjǋğ
hgxțp^Ț!% j¬­²}ÂhÈiƘƼ{ĦǓYxTedȚ¬­²}´·
{ȎǒYxTeNāǊg^rȚ!% ișIŊǊ{ļOåY^rhjÁèäơNāǊgäơ{āǊgȈwětYņǙNHxț\i^rȚ!% ±liĦǖhLIcs -=,/ e -/55 iÀŨiÁèŊ{ŕåāǊg "/.5+-4	
 # " Ɛ{ƢIxțĒ hƴYuJhȚ-=,/ {¤³¹¥hæRcȚĂ¹lïwĽcxțïwĽcvy^ -=,/ {Vvh !% i # hïwĽcxț-=,/ ÂhćpyxĂ -/55 iǟƼ{ <2:/+. hïwĽcȚ#! dÁèhĦǓYxțĂ -/55 iƘƼȁjĄºdH
x^rȚǘŦ¹i !% {ƢI^ôƞƫgğǛƄÁèäơNŲŁdOxț	 !% ișIƘƼŊǊ{VvhļOåY^rhjȚƘƼiïwĽciqdjgP #! li¹ÔǃNȒĵhǿǙegxț!% i¬­²jȋİƂǷhg`cLwȚ#& !" 	 jĂ´MváűVycIxțáű¬­²iħȁjĬVINȚ¬­²}´·jȒĵhưIțºŨȚ% $ ! "  	  jȚħȁNğOI£¥¬­²dHwȚ
¬­²}´·jȄIțŰğȈháű¬­²{ƑƢWȚğĖ¬­²liôƞƫg}
{ǓJgfȚTyviÀŨi¬­²{ǼçhëƢYxTed !% iŊǊ{ļOåYTeNdOxț	 ħȁiĬVgáű¬­²{ôƞƫhëƢYx^rhȚĒ  hƴYuJhȚáű¬­²¼h²·£|{ƂƽYxț·³ǟƼhëƢVyx -/55 {ķȓùÏd²·£|hÙĢYxTehu`cȚğĖ¬­²li}Ŧ{íƕYx_RdgPȚȈvy^áű¬­²iħȁ{ôƞƫhëƢYxTeNāǊhgxț	
 
	
 

	
 
	
 
Ē 	
  !% ±ğǛƄǟƼ«iLRxǟƼïĽ	 	 — 22 —

SENAC Vol. 45, No. 3（2012.7）

	
 
	
 
Ē 	
  ²·£|{ƢI^ôƞƫgáű¬­²iƑƢ	
 
	
 
	
 

Ē 	
   ­³ Ý -/55Ē 	  ƠÒ­³  » -/55	
 
	
 

	
  1D8F=!"%(  4AG.	
 Ǖ hƴYğǛƄǟƼ«¼dȚ hux ƇÞ­³ĉwiƒÒǝŸ{ĦǓWcȚ\iĦôƘƼŊǊ{ǢÖW^ț ƇÞ­³hjĒ  hƴY  ­³eĒ  hƴYƠÒ­³{ƢI^ț ­³jǘȐdğǛƄg­³¹{ŌĥWcLwȚƾ Ý -/55 iŽġMvgxțƠÒ­³jƋǭƫĬǛƄg­³¹{ŌĥWcLwȚƾ  » -/55 iŽġM
vgxț	
 	
 
Ē  h  ­³{ƢI^  huxƒÒª¯´¹°·iĦôŊǊ{ƴYțTiĒuwȚ#'NÈi ±ĕğǛƄǟƼ«hƋmșIĦôŊǊ{ǻŎWcIxiNæMxț·³ǟƼj¹ǬǴH^wiƘƼNĭgI^rȚĦô¬­²·ĶN  iĦôŊǊhŀȔYxț#' jȚșIơǣ¬­²·ĶhòKȚ {ôƞƫhëƢYxTehuwȚĦô¬­²·Ķ{șrxTeNdOxțTyhuwȚ#' NÈi ±ĕğǛƄǟƼ«hƋmȚșI
ĦôŊǊ{ǻŎYxTeNdO^eǉKvyxț	 ' iơǣ¬­²·ĶN /2+5/6	
 ! t /2+5/6	
 ' iơǣ¬­²·ĶuwsșIhs
ȆzvZȚ' iĦôŊǊj /2+5/6	
 ! t /2+5/6	
 ' hƋmÐPg`cIxțTyjȚ'iĦô¬­²·ĶN /2+5/6	
 ! t /2+5/6	
 ' iĦô¬­²·ĶuwsÐI^rdHxț
Ħô¬­²·Ķ{ƖĥYx^ri§·©¹£dHx #$" §·©¹{ĦǓW^ǂźeȚ/2+5/6	
 ! t /2+5/6	
 ' j\y]y ;Ț ; i¬­²·Ķ{ǻŎWcIxhsMMzvZȚ' j ; eĦô¬­²·ĶNÐITeNæMxțTi^rȚ/2+5/6	
 ! t /2+5/6	
 ' iĦôŊǊN ' iĦôŊǊ{¼ď`^ț	 — 23 —

大規模計算システムにおける BCM の性能評価

Ē  hƠÒ­³{ƢI^  huxƒÒª¯´¹°·iĦôŊǊ{ƴYțƠÒ­³iǂźhj !% ±huxǂźsćpycIxțTiǂź{ǚxeȚ!% iğĖ¬­²iħȁNȈvyx^r  ­³iuJgğOg­³hīWcjĦǓdOgINȚƠÒ­³iuJg­³hLIcjȚ!% ±iŊǊN #' enoĄƻȚ ±ĕğǛƄǟƼ«uws
șITeNæMxțTyjĞŦi #! hôƞƫhƘƼ{ïwĽcxTedȚșI¹ÁèäơǊ
ñ{ƨšdO^^rdHxțp^Țáű¬­²{ôƞƫhëƢYxTehu`cȚ ±¥µhƋmșIĦô¬­²·Ķ{ļOåYTeNdO^TesǙĐi adHxțsJ aiǙĐeWcjȚƠÒ­³i¹NĬVI^rȚ#' tÈi ±ĕğǛƄǟƼ«hLIcjøægŊǊ{ļOåYTeNdOgITeNŘSvyxțĒ  hƴY  ­³MvŃvy^ĦôŊǊeƋǭYxeȚƠÒ­³MvŃvy^ĦôŊǊNÐPg`cIxiNæMxț	
 
	
 

	
 
	
 
Ē 	
   ­³{ƢI^ęăi  iĦôŊǊ	
 
	
 

	
 
	
 
Ē 	
  ƠÒ­³{ƢI^ęăi  iĦôŊǊ	 	 — 24 —

SENAC Vol. 45, No. 3（2012.7）

!% huxƒÒª¯´¹°·hLIcjȚēñęiǟƼŭȅiğǽæN¹ǬǴdûr
vyxțTyjȚ!% iƑƢhu`cƘƼŭȅNưǅVy^NȚ¹âi !% e !% tÈi¹ei¹ǬǴhŭȅNMMx^rdHxț	
 !% ±{ƢI^VvgxșǶö{ĦƟYx^rhjȚƘƼÂh¹{ǬǴW¹ǬǴŭȅ{ȎǒYxgfiĲĠNņǙegxț	 Ē  eĒ  hLIcȚơǣŊǊhīYxĦôŊǊiƋƞdHxĦǓôƞ{ǚxeȚ#' NƾeÈiğǛƄǟƼ«i  G  eƋmȒĵhșITeNæMxțTyjșIĦô¬­²·Ķ{ĦƟYxTehu`cȚ§³¥µNôƞƫh§³äơ{ǓJTeN
dO^^rdHxț	 ĒhƴVycIx  ­³hLRx¹±¡²~{qxeȚYmciğǛƄǟƼ«hLIcșI¹±¡²~NĦƟdOcIxiNæMxțTyjȚ ­³iÁèĺN
șI^rȚøægÁèäơāǊgǟƼ{ïwĽcxTeNdO^TeeȚ¹ȅ{agQ¶¹i·ĶNøædH`^^r_eǉKvyxțĒ
hƴYƠÒ­³hLRx¹±¡²~j  ­³i¹±¡²~eƋmÐIț!% ±hLIcjȚ¹ǬǴi¹¹¦NǙĐd¹±¡²~NÐ½W^eǉKvyxțÈiğǛƄǟƼ«hLIcjȚƠÒ­³djÁèāǊgäơN¾ǪW^^rȚ¹±¡²~iÐ½Nǚvyxț	
 

	
 
Ē

	
 
	
   ­³hLRx  i¹±¡²~	
 

	
 
Ē

	
 
	
  ƠÒ­³hLRx  i¹±¡²~	
 大規模計算システムにおける BCM の性能評価— 25 —

	
  >E	 ŴĘĈdjȚ ±ĕ¸§³ĕ¸}±´¹ĕiğǛƄǟƼ«{ǉōW^ iĦǖeŰǼö{ǳmȚ\iŊǊǢÖ{ǵXcĦôŊǊ{ǦǣW^ț\y]yiğǛƄǟƼ«iŊǊ{ļOåY^rhȚğǛƄǟƼ«hŢǮVycIx¥µi}¹®t«ƂŎ{ǉōWc  iĦǖ{Ǔ`^țƛhȚ\y]yiğǛƄǟƼ«hLRx¥µe\i·¥¬­²{ôƞƫhëƢYx^riŰǼö{Ǔ`^ț#'	
 /2+5/6	
 ! ±Ț/2+5/6	 ' ±Ț' 	
 #" 	  	 !% ±{ƢIcŊǊǢÖ{Ǔ`^ǂźȚĦô¬­²·ĶN  iŊǊhğOgŀȔ{üoWcIxTeNŪvMhg`^țTyhuwȚ#' iuJgș¬­²·ĶiğǛƄǟƼ«N  huxƒÒª¯´¹°·ișǶöhǼWcIxTeNæM`^ț	
 

H I 	
 
	
  ŴƱƸ{ǹrxhH^w '	 ÂƅČúúĜȚȂƏĲƀğģ	 ÑFųğǯǥĴȚŶÇǰĲğ
ģğģȉ	 șƅØóťȚ	 ţÑŬǗúĜȚŶ÷ğģ¹··¹Ȇ×ĂÏh
jğĝűƬgUóǞ{I^_I^țp^ȚŴƱƸjȚ÷ƓǺğģŋĘėƭ·¹ȚŶ÷ğģ¹··¹ȚąĀįğģŋĘėƭ·¹Ț	 ¯³ğģ "# i¹ ¹·¢¯¹{ëƢYxTedĦƟYxTeNdO^țp^ȚŴƱƸi
ºǽjȚŧǽƶģƯƶƱǩƱƸ# eŧǽƶģƯƶƱǩǏŒƱƸ  eƶģœǔřǍƆƂ#$ŐƥƫðǷƱƸŝǹÅƀ"#$ióŎ{ÿRcIxț	 / @ 5 9 	 [1] Nakahashi, K., “High-density mesh flow computations with pre-/post-data compressions,”
AIAA paper, pp. 2005–4876, 2005.
[2] Takahashi, S., Ishida, T., Nakahashi, K., Kobayashi, H., Okabe, K., Shimomura, Y., Soga,
T., Musa, A., “Study of high resolution incompressible flow simulation based on cartesianmesh,” AIAA paper 47th AIAA Aerospace Sciences Meeting, pp. 2009–563, 2009.
[3] Takashi, S., “Study of large scale simulation for unsteady flows,” Ph.D. thesis, Tohoku
University, 2009.
[4] Ishida, T., Takahashi, S., Nakahashi, K., “Efficient and robust cartesian mesh generation
for building-cube method,” Journal of Computational Science and Technology 2(4), pp. 435–
445, 2008.
[5] Kim, J., Moin, P., “Application of a fractional-step method to incompressible navier-stokes
equation,” Journal of Computational Physics 59, pp. 308–323, 1985.
[6] Perot, J.B., “An analysis of the fractional step method,” Journal of Computational Physics
108, pp. 1–58, 1993.
[7] Dukowicz, J.K., “Approximate factorization as a high order splitting for the implicit
incompressible flow equations,” Journal of Computational Physics 102, pp. 336–347, 1992.

— 26 —

SENAC Vol. 45, No. 3（2012.7）

— 27 —

SENAC Vol. 45, No. 3（2012.7）

������� �����������	 J ȠʿŇ ŏǋȋy¿Ñ¤ÍÆ}ǅ^Ƽ JȄĵ āƂƲĮŗŠȀŴŠʕʬǥʬŝŴŠȖ
åŇ\ˁŇzoruʼƶĈɢȦ¦Ò¼ÊÔ®©ÅÊÐÔ©ÌÒȍȋwgo :=?=,9 zɢȦǛ¿Ñ¤ÍÆøƞǪɭƿgiʾǇʁ}ŗŠz[bɢȦǛ}ɰɃv~  ɡɫvƵZwd]œZu^u :=?=,9 ~ƈ]ɒ`yruXi]ʼ¦Ò¼ÊÔ®©ÅÊÐÔ©ÌÒ}ė
ʙv~ :=?=,9 }Ƽ]ɋ`úuXiʾd~ʼ:=?=,9 ]ȖŠƣɖɢȦȃɡɫwguȉŰ
gu^o}vʼƶĈɢȦzÿĝyǅƀ]ŖƶƭȃfuX\viʾûZʼəȰƶɢȦɕęɢȦyx~ƸǪzȵʀuX}vȪįzǅ`dw]v^iʾ
:=?=,9 ~ʼƳǺʘ|uʼƶĈɢȦȃwgu\yʋpɡɫzyruX}vi]ʼǠĸ}ʝXɡɫvWoʼĶX¹ÔªÌÒw}âưƖĂsozɎŸȾXƸǪõȬzyruXiʾûZʼ³½Ï´v~ŔƶŦɡgy`u\yXoʼŔƶľǅ^ʠʐZow^zȉɛi}]ʫg`ʼƕ{ÍÔƁ^ɷdiķɈƖ]Wiʾd\¿Ñ¤ÍÅÒ¤Ŝyʼd}WoɆƜgoǅ^ƼɞZ^viʾmm¦Ò¼ÊÔ®~ɢȦiǛǓzi_kʾm}ĩø~ďuƟS¿Ñ¤ÍÄÔ]ɵîruƨţgybyyX}viʾʅzɡZʼ¦Ò¼ÊÔ®}ĒʕǖʉȀɠgu¿Ñ¤ÍÆǅbʼĨǽ]±¿guʼʷʈzɢȦfkdw]v^iʾǋțv~ʼ¦Ò¼ÊÔ®}Ēʕǖʉ}ɧãZy]ʼĨǽ]ɋ`uÍÔɛsbiXʼ
L«ÄÔ´yM:=?=,9 ¿Ñ¤ÍÆ}ǅ^ƼɭƿgiʾƐjgǋț}ɭƿʇzǅ`Ɛɚ~yXʕėWi]ʼmYXroʕė~¿Ñ¤ÍÆ]ʝ`yzsuƍĝȌ]Ǿ}vʼ
ǙȐkjzǅ`dw[Īgiʾ��	  ������ ������� ��	
 :=?=,9 ~ ʼ ɢ Ȧ Ǜ } Ǡ ĸ v X Z  ʼ m } Ě ǉ z ʟ ȉ f  o ȅ ȼ W  ɡ ɫ v ʼL $%8@7,
'%#>7,?4:9M]ɫǲviʾƆĚ\ƶĈɢȦȃɡɫwguʟȉfu[ʼȡɇ]ɢȦǛĝȃgŜo  źġz~ʼƶĈɢȦiwXZʼ wx] :=?=,9 pro}viʾg\gʼʅzd}dw] :=?=,9ʁt^z`X}zgoYviʾylyʼƶĈɢȦzǻīiwX
Ydw~ËÔ¨Ô}ūʞėʙ]ʤwXYdwvWʼm}ȷǏ¦ÒºÍ}ĈǢ]WØ]jʼǥɽzúYdw]v^y\ro\viʾº­¦Ò}ĖǾwwzǂĲgo  ɡɫ~ʼɪȂǁǵ\Ǥɾȋšþzüȸfʼd]ż`úuXȀȅ}Õsviʾ ɡɫ~mm
 $& ɣʃiozʟȉfoɡɫy}vɢȦǛ}¸Ôµũ}ǅƀ]Ŗ`ʼƐjgĚƏɇĿ^}ɡɫpw~ƕZyX}vi]ʼ¿Ñ¤ÍÅÒ¤}ūʞŧ\i :=?=,9   ɡɫŗguŔyX}vʼšXƼz©½´go}~WƙłƌyXdwpwƕXiʾ:=?=,9 ~  źzȤţfo :=?=,9 Œzŗ^`Ŕɳggo)*ʾʖęǴȦyx}ƻ
gXǛɈŬĎiwĽǁzʼʟȉƆĚ}ɢȦǛȁŒzğȭƁ^jruXoǅƀ]ȾŅfuǾéȋyǅƀvǅbYzygoʾûZʼmv~ʿɕz  ƸŞvg\ǅby
Xw\ʼǤɾɣĺwgu}L˅ML˃M]úZy\rogo}vi]ʼ:=?=,9 \  ɕzöƸŞǅXuɋ`yrogʼŗŭɣĺúZYzygoʾ:=?=,9 ~m}ƊƳǺ
ʘ|ʼǾŋ}ǇƻǺ~ :=?=,9  y}vi]ʼƶĈɢȦpbyǻzƻgXƸǪ~ƐɚyX}vʼǋțv~ :=?=,9 ÐÀÏ}ƸǪvɭƿgiʾfuʼ:=?=,9 ]úXi`yro}wǁǉĽh`guʼǶƹ} $& vW !49@C  =00&— 28 —

SENAC Vol. 45, No. 3（2012.7）]ǂĲgŜʼd} $& zǈƑ]ʟȉgoǶƹ} :=?=,9ʹ2ʼ21:=?=,9 yxʺ]èűiYzygoʾd}oʼ!49@C yxÒ«´ÔÏiʼº­¦Òv :=?=,9]Ƕƹvú
Ziʾd}½ÎÔ} :=?=,9 ~ (49/:B>  ",.$& ×vĩøi}øuXuʼÒ®Ô·±´\¯ÒÑÔµguúYdw]v^iʾƶĈɢȦ¿Ñ¤ÍÆǅ`z~ :=?=,9}Ƽ
]ǅ^iXgʼŢƞgo¿Ñ¤ÍÆm}ŗōɢȦǛvʷʈzťɕfkdwķɈviʾ
ddv~ʼ:=?=,9 vǅXo¿Ñ¤ÍÆ 21:=?=,9 úruº­¦Ò×vťɕfkƼǪzsXuȳægiʾjʼ:=?=,9 ¿Ñ¤ÍÆøƞiǁ~ʼ½Ïľ}ǇƊzL 1 MwXYƦƄŝèbiʾsʼLƸŞę 1 MwXYľġzgiʾøƞgo¿Ñ¤ÍÆ½ÏɢȦǛvťɕfkz~ʼ¦Ò¼ÊÔ®]ȎƮɠʗv^ǛǓɫ}Ʌɤʹ¦ÒºÏʺwÍ
¾ÍÎ¿Ñ¤ÍÆw}ȷļʹÎÒ£ʺwXYás}ʍș]Ɛɚvi]ʼdťɕi}]21:=?=,9 ¦ÄÒµviʾ21:=?=,9 v¿Ñ¤ÍÆ¦ÒºÏiőļʼrwįȯz~ʼ21:=?=,9¿ Ñ ¤ Í Æ ½   Ï ľ wĎĤgiʹǇĚ}LM~¦ÄÒµ¿ÑÒ¿´y}vĎĤ~ÙɚviʺʾûZʼ?0>? 1
wXY½Ïľ}¿Ñ¤ÍÆ¦ÒºÏiz~ʼ21:=?=,9?0>? 1 wĎĤgiʾd}ǁʼ¦ÒºÏǁzƸǪÍÔyx]ɛs\wÍÔÇ±¬ÔªĖĤguȴßgiʾ21:=?=,9 ¦ÄÒµ~ʼ¦ÒºÏ]ƞĥiwƁ^ȺXuÎÒ£ɕXʼÎÒ£zƞĥiwʼL, :@?MwXYľġ}½ÏĖĤgiʾd]º­¦Òv¿Ñ¤ÍÆĩøfkdw]v^LťɕƇƀ½ÏMviʾÎÒ£zřƴiwʼ~ÍÔÇ±¬ÔªĖĤguȴßgi]ʼd}ǁ, :@?~øƞfkʾťɕƇƀ½Ï~ 21:=?=,9 wĽhÐÀÏ}¦ÄÒµvWʼ¿ÑÒ¿´}Ɗzʼ, :@?

}Yz½Ïƨţidwv¿Ñ¤ÍÆzǅ\oĩøĒŨ¦Ò¼ÊÔ®vťɕfk
dw]v^iʾë×] 21:=?=,9 ȃXorwįȯy¿Ñ¤ÍÆťɕv}Ǭvi]ʼ×ɣ}Yyįȯyńêv~ʼxy¿Ñ¤ÍÆ¦ÒºÏgu, :@?wXYĽhľġ}ťɕƇƀ½ÏzyrugXiʾoʼ:=?=,9¿Ñ¤ÍÆ~ɢȦʈž]ʘɚvi\ʼǇʒīgo¦ÒºÏɕruv^pbʷʈzťɕiƼ]ɋXvgYʾfzʼɢȦȫžɆZĆȫžťƶvɢȦi^y}vʼɉĩĆȫžī¿©ÌÒèĦidw[Īgiʾd}oʼ21:=?=,9 v¿Ñ¤ÍÆ¦ÒºÏÓÎÒ£iǁ~ǇôʤʼëØ}ØȽʕ}Yy¿©ÌÒèbdw[Īgiʾ21:=?=,9 $ 1/01,@7? =0,7 ?0>? 1  :=@9?0>?
ddvʼ
L $M
ʹŗƸŞ}Ôʺ]Ǉʒī}¿©ÌÒʼ
L 1/01,@7? =0,7 M]ɉĩĆȫžī}
¿©ÌÒviʾoʼL :MʹŭƸŞ}Ôʺ}¿©ÌÒ}ǝ}ƸŞęʹd}ûv~ =@9?0>?ʺ
]ʼťɕƇƀ½Ïľ}ƨţviʾd}ûv~ʼ¦ÒºÏwÎÒ£]ǟŷzȴßiwʼ
L=@9?0>?MwXYťɕƇƀ½Ï]øƞfiʾruʼ¿Ñ¤ÍÆ}ťɕ~ʼ=@9?0>?

wyiʾ

1§¹Ô§Ò«¬Ò®Ô}¦ÒºÍ f95, sxf90 v~¦ÒºÏ¿©ÌÒ]Ȉyiʾʹ¬Ò®Ô¾§´ıǸʺFortran スマートプログラミング —第１回

基本的なプログラムの書き方—— 29 —

��メインプログラムの開始と終了	
 ¿Ñ¤ÍÆw~¦Ò¼ÊÔ®}ĩøƨȓʹńêʺɣʃgoƸ}ʩviʾťɕƇƀ¦ÄÒµĎĤiwʼ¦Ò¼ÊÔ®~ʼ ťɕʟŜ O ¿Ñ¤ÍÆzɣʃfońêʱzťɕ O ťɕȴß
wXY«²±¿vĩøgiʾťɕʟŜgoǁzǇĚzťɕiʕėLÇÒ¿Ñ¤ÍÆM
wXXiʾɡ¿Ñ¤ÍÆ}ǋõviʾ¿Ñ¤ÍÆz~ʼç}¿Ñ¤ÍÆ}Ý\ťɕʟŜƨȓgum}ǛɈĝȃiL§¾ÏÔ°ÒM]Wi]ʼdzsXu~ǝŇɭƿgiʾ:=?=,9 v~ǻĜyơȺ^kjz¿Ñ¤ÍÆǅ`wm]ÇÒ¿Ñ¤ÍÆwìţfiʾg\gʼmv~§¾ÏÔ°ÒwĬĜgz`X}vʼ;=:2=,8 ƸȃXuǇĚz¿Ñ¤ÍÆ}ľġǅ^iʾ
;=:2=,8¿ Ñ ¤ Í Æ ľ ÇÒ¿Ñ¤ÍÆ}ȴß~ 09/;=:2=,8 Ƹvƨţgiʾd}oʼÇÒ¿Ñ¤ÍÆ~ǝ}Yyǖʉzyiʾ;=:2=,8.:/0+9,80






09/;=:2=,8.:/0+9,80
d}û}Yz¿Ñ¤ÍÆľz~Ò¯Ô«¦ʹ+ʺúZ}vʼd«ÁÔ«}é
zúZįɫsyXpʝX¿Ñ¤ÍÆľèbdwv^iʾ;=:2=,8 Ƹw 09/;=:2=,8 Ƹ}ʠz :=?=,9 }ƸǪzƋroƸÜuĩøfkoXɢȦơʱɣʃgiʾĩøơʱɣʃiƸLťɕƸMwXXiʾg\gʼ¿Ñ¤ÍÆzɣʃi}~ťɕƸpbv~WkʾɢȦʆÝvƐɚwyŔƶʲŎȒĂio}ŦɡƸǅ\|ykʾd}YyɢȦĩøzȎƮƱyXƸLʭťɕƸMwXXiʾ:=?=,9v~ʼʭťɕƸ¿Ñ¤ÍÆ}ǇĚzʩȭguʼťɕƸ~m}Ɗzǅ^iʾd}oʼĩø}ʟŜ~ ;=:2=,8 Ƹ}ǝ}Ƹv~y`ʼǇĚ}ťɕƸzyiʾŢȷgoÇÒ¿Ñ¤ÍÆ}Õûȓgiʾ;=:2=,8?0>?+.:/0
48;74.4?9:90
=0,7C D EC
D 
ECD ;=49? C D;=49? KEK E
09/;=:2=,8?0>?+.:/0d}¿Ñ¤ÍÆz[bťɕƸÓʭťɕƸ}ĬėwʼĩøʟŜ\ȴßv}ťɕ}ǬŉʿzȓgiʾťɕƇƀ}¦ÄÒµĎĤiwʼǇĚ}ťɕƸ\ĩøʟŜgʼ×\ʱzÕɕjsťɕfʼ09/;=:2=,8 ƸzĞʏgoǢʧv¿Ñ¤ÍÆ}ĩø]ȴßgiʾƊvʃ/: Ƹúroɀʂgʼ41 Ƹzǌíėųyxʼĩøƨţzru~Ơţ}óɁz¹±£goʼǌízƓhuťɕi\xY\}ʓƥ]v^i]ʼmvmn}Ƹ]ȴßgoƊ
zǝ}Ƹ]ťɕfwXYŏǋȋĩø~Ŕkʾd~ɢȦǛ]ÕŇzÕs}ĩøg\v^yXoviʾ¿Ñ¤ÍÆďõɛǰguťɕi}v~y`ʼÕɕÕɕʱzťɕguX`}vʼ¹±£iYyĩøƨţgyXʤʼØƼ

— 30 —

SENAC Vol. 45, No. 3（2012.7）

zǅXoťɕƸ~×ƼzƈʯĲgkʾ¿Ñ¤ÍÆ~d}dwŷzƔʳzɁXuǅ\ybykʾ

メインプログラム

実行開始

プログラム領域

実行の流れ
実行終了

program test_code
implicit none
real x,y,z
x = 5
y = 100z = x + y*100
print *,x,y
print *,’z =’,z
end program test_code

非実行文
実行文


ŉʿʾ¿Ñ¤ÍÆʟŜ\ȴßv}Ǭy[ʼ Ȩvʃ 41 ƸúruʼǌízruʆÝv¿Ñ¤ÍÆȴßiw^ʼǝŇ[ɧgi§¾ÏÔ°ÒĒv¿Ñ¤ÍÆȴßiw^z~ >?:; ƸȃXiʾ>?:; Ƹťɕiwʼm}ǁǵv¿Ñ¤ÍÆ]ȴßgiʾûZʼ;=:2=,817@4/+.:/0
48;74.4?9:90
=0,7C D
49?020=8 9
418 >?:;

09/;=:2=,817@4/+.:/0wǅbʼ8˃ }ǁz¿Ñ¤ÍÆ~ȴßgʼmëʣ~ťɕgkʾ2.	
 基本的なプログラム文	 2.�	  � � 文 � � � � � � 	 ťɕƸz~ʼ>?:; Ƹ}YzŷzĽhĩøƨȓiƸwʼX`s\}LƶĈMñruʼm}ƶĈzƓhoĩøƨȓiƸw]Wiʾ¿Ñ¤ÍÆÝvLƶĈMÚZƼǪ~ˁȚʵWiʾ  w\   }YyƶŞȎƮǅ`LţƶMʼC w\ D=E }YyįɫvȓgoLŔ
ƶMʼ[múru C  >49D }YyɢȦơʱɗgoLɢȦƀMviʾɢȦƀzǅ\uXơʱɢȦǛ}ĩøy}vi]ʼ¿Ñ¤ÍÆz[Xu}ɢȦƀ~ʼm}ɢȦȷǏĩøńêzÚZLƶĈMwguóɁtbuXiʾd}oʼɢȦƀǅXopbv~
ťɕƸzykʾ¿Ñ¤ÍÆvǇɋ`úYťɕƸ~LéĎƸMviʾd~ʼŔ ƶ ɢ Ȧ ƀ wXYƇguXiʾɢȦƀ}ézʼţƶŔƶǅ`dwv^iʾ¿Ñ¤ÍÆz[bLŔƶMw~¦Ò¼ÊÔ®}ÇÈÎʲŎ}dwvʼƶĈĎȧpwɆXXvgYʾéĎƸ~Ĺɿ}LƶĈMŵɿvȓgoŔƶÇÈÎzǑȮiĩøɗgiʾruʼɢ Ȧ ƀ ɢ Ȧ ƀ    d  ~  Í Ô wXYƇ~úZkʾ:=?=,9 z[XuL˄MwXYɣĺ~ʼLŵɿwĹɿ]ȢgXMwXYƙ
łv~yX\viʾûZʼFortran スマートプログラミング —第１回

基本的なプログラムの書き方—— 31 —C
D C
DD
}Yy¿Ñ¤ÍÆɆZugYʾ¿Ñ¤ÍÆ~×\ʱzťɕf}vʼj  }ȷǏvW  ]Ŕƶ C zéĎfiʾǝzʼ \Ŕƶ C zĂşfuXƶĈƁXoĈ]Ŕƶ D zéĎf}vʼD z~  ]éĎfiʾǇƊ}Ƹ~ƶŠ}ȢƀwɛŔvi]ʼ
¦ÔÏ]LéĎiMĩøpwȀɠv^ǻzÙƕɲyƸv~WkʾD ~m}ġ}Ƹ
v  ]éĎfuXi\ʼǇƊ}ƸzruŔƶ D z D }ȷǏvW  ]éĎfiʾ
:=?=,9 z[bŏǋǴȦ}ǅ^ƼwúXƼɗʿzȓgiʾǴȦɣĺɗʿʾǴȦɣĺ}ǅ^ƼwúXƼǴȦ}ƙł
úȃû
úȃû}ƙł



ɺgȦ

CD

CʻD



Ɓ^Ȧ

C D

CʽD



ƬbȦ

CD

CGD



ģȦ

C D

CHD



^Þ

CD

C D


Ä¶«ɣĺʹ ʺ~ C }YzįʰǴȦwguúZiʾd}ǴȦz~ëØ}YyĊČʱó]WʼĊČʱó}ʷXƼ]ôXƼČzɢȦfiʾ ^ Þ ˅  Ƭ b Ȧ  o ~ ģ  Ȧ  ˅  ɺ g Ȧ  o ~ Ɓ ^ Ȧ ƬbȦwģȦ}YyĽÐÀÏ}ǴȦ~ŵ\ʱzɢȦfiʾfzʼ\rdúZ\rd}Ý]ĊČȋzɢȦfiʾ2.2	  � � � � 	 ¦Ò¼ÊÔ®wXYǛǓ]ĴƢYƶĈ~  ʋƶvɗfuXuʼŏǋȋz~ƷƶviʾûZʼ-D?0 }ƶ~ʼ-4?ʼs \  }xq\ʓƥv^ƶ]  ąÜp}y}vʼʋƶv~ ˉ ʹʺv}Ʒƶɗidw]v^iʾ:=?=,9 v~ŭƶǵ}yXƶŞʼw\  yx}ƶŞLƷƶōMwXXiʾ:=?=,9 }Ʒƶōƶ~ -D?0ʹ-4?ʺvɗǾfuXuʼ V  }ƷƶĈƢYdw]v^iʾ
g\gʼƶĈɢȦ©ÅÊÐÔ©ÌÒiőļz~ʼ  }YzŭƶǵëØŁpʼG  w\ʼ G  w\XroǗSy«¥ÔÏ}ƶĈĴƢYoʼƷƶōpbv~Ùÿ
viʾǻzʼƷƶōƶ~ŭƶǵëØ}ɗǾ]v^yX}vʼģȦiwďuĘƫuzyiʾdƒu¿Ñ¤ÍÆǅ`wʼ`ʠʐXɷdgiʾûZʼC 
DC ? DCwǅ`wʼCʼDʼE ~X`szywƕXi\ˆȣZ~ CʼDʼ? viʾd~Ʒƶ}ģ
Ȧ]Ęƫuzyoʼ Oʼ Oʼ O zy\viʾ
mdvʼƷƶō}çzʼ  }YyŮƶǵëØŁpʼ G  }YyʼAG B w
XYƇƀ}ƶĈĴƢYdw]v^iʾdLťƶōMwXXʼA }ʕėLìƶʕMʼB}ʕėLƨƶʕMwXXiʾʇŷʼƶĈɢȦ~ťƶōvɢȦgybykʾťƶōz~ǈĨƶŞ}ʐY  Țʵ]ȃƙfuXiʾįȫžťƶwĆȫžťƶviʾįȫžťƶw~ -D?0 vɗfťƶ}dwvʼìƶʕ}ǈĨƶŞ~  ǒșžviʾdzŪgʼĆȫžťƶw~ -D?0-4?vɗfťƶ}dwvʼìƶʕ}ǈĨƶŞ~  ǒșžviʾ ǒWņʴyXwƕ\gk]ʼöȊÖą}ƶŞ}ļɢɢȦgoʼǝƶ}ʷX

— 32 —

SENAC Vol. 45, No. 3（2012.7）

Ŗʰƀ}ɢȦiw^yxv~ʼɢȦŇƶ}œĦzsuǈĨǒƶ]ǯŮidwɆƜgybykʾd}oʼʇŷ~ĆȫžťƶvɢȦgiʾ:=?=,9 z[bŏǋȋyťƶō~įȫžvWʼĆȫžťƶōúȃiǁz~mƙɱgoǅƀvǅ\ybyyX}vi]ʼ21:=?=,9 }ɭƿvȓgoYzǇʁ}¦ÒºÍ~¿©ÌÒƨţi³½Ï´}ťƶĆȫžziLɉĩĆȫžīǛɈMƧruX}vʼǋțv~įȫžťƶwĆȫžťƶúXėbǅƀ}ɭƿ~ȏȆgʼįzLťƶōMwɗǾgiʾruʼǻzįȫžvɢȦiƐɚ]ybʼ¦ÒºÏǁzɉĩĆȫžī¿©ÌÒèĦguĆȫžvɢȦguØfXʾŖ`}ɢȦǛ~ĆȫžťƶɢȦʷʈvɕZ¸ÔµĒɑguX}vʼĆȫžɢȦguf xťɕʈž~Ø]kʾ¿Ñ¤ÍÆ×vʼƷƶō}ţƶwťƶō}ţƶ~ŭƶǵ}ǈǶvĬĜgiʾûZʼw\ʼ  wǅbƷƶōvi]ʼ
w\ʼ  w\ʼ w\ǅbťƶōzyiʾoʼ G ĎĤgoXǁz~ʼ 0 wǅ^iʾiyqʼAG B ~ A0B wǅ^
iʾB ]ɴ}őļv  0  }Yz 0 }ƊzȺbuǅ^iʾoʼ0 }Yz 0B èĦgoőļz~ŭƶǵ]Ƕ`uťƶōzyiʾûZʼ a = 3.141592 r2 + 3 x5 + 6.5×10−5 x −105 wXYƀ¿Ñ¤ÍÆvǅbëØ}Yzyiʾ, =

C 0 C 0

d}û}Yzʼ= w\ C }YzƷƶ^Þ}ƨƶ w\ z~ƷƶōúXiʾČ xƷƶōúroǉƉx[}ȷǏ]ĖyXûƩcgo]ʼëØ}YzťƶōúZǟgXȷǏ]ƌiʾ
C 
DC
 
D
 DC:=?=,9 }ÿĝyǛɈ}Õs~ʼəȰƶ]úZdwviʾəȰƶzįȫžəȰƶōwĆȫ
žəȰƶō]Wi]ʼdɉĩĆȫžīǛɈúZĽǁzŔǄv^}vʼǋțv~įzLəȰƶōMwɗǾgiʾəȰƶō}ţƶ~ʼ 0   0 }Yzʼ ą}ťƶ¦ÒÄvsyXvʼ\rdvňiʾġĭ]ťʕʼƊĭ]ɔʕviʾ
i ɗgoəȰƶōţƶviʾsd}û~ʼmnʼiʼ   G iʼ  y[ʼddvɮwƷƶō~Ɛɚ]yXwƕ\gk]ʼmYv~WkʾƊvɭƿiʖęɚȰƨţiƶ~ƷƶōvybyyXgʼ/: ƸvȃX Ò®ŔƶÒÓ½ɗipb}ŔƶyxLʱȇMLĬĜMȓiw^~ƷƶōȃXiʾoťƶ}ƷƶʕĴĖgoXw^ʼĢ÷ʹWʺɢȦiw^ƷƶōĝȃgiʾƶĈɢȦ¿Ñ¤ÍÆ}ÝvƷƶō}úXʎ~ŖX}viʾɢȦƀÝzȈyƶĈō]ǭŋgoǁ~ʼȫž}ʷXƼ}ōzļkuɢȦgʼm}ō}Ĉ]ȷǏzyiʾûZʼťƶōwƷƶō}ɢȦ~ƷƶōťƶōzŔưguťƶōwťƶō}ɢȦɕXʼťƶō}ȷǏzyiʾəȰƶōwťƶō}ɢȦ}őļz~m}ťƶōťʕwgoəȰƶōzguɢȦgʼȷǏ~əȰƶōzyiʾopgʼƬbȦwģȦ}ɢȦ~ŵ\ʱzɕY}vǫƙ]ƐɚviʾǇĚ}ƷƶōúroɢȦûvʼ? DC]zy}~ʼǇĚzɢȦf}]   wXYƷƶōHƷƶōp\viʾdʼFortran スマートプログラミング —第１回

基本的なプログラムの書き方—— 33 —?DC wǅbʼĘƫu~ɷdkʾ

2.3	  � � � � � 	 ǝzʼƶƀ}ɢȦȷǏĂşiŔƶ}úXƼɭƿgiʾŔƶ}ľġ~ʼʳƸŞ] ,ˉE}x\vWʼƊ~ ,ˉEʼ ˉ x}ǗyʱŽvÜo}vúZiʾûZʼ,-. w\ 6 CD Ȣviʾ:=?=,9 v~ŗƸŞwŭƸŞĬĜgyXoʼ,-. w  ~ĽhŔƶzyiʾŔƶzō]WʼɢȦȷǏzƓhoō}ŔƶúybǟȒzĂşidw]v^kʾd}Ŕƶ}ōǨƸLŦɡƸMwXXiʾōǨwĽǁzʼŔƶ}ÇÈÎʲŎȒĂgiʾd}oʼɢȦzȃXŔƶ~ďuŦɡgybykʾŦɡ~Õžg\v^jʼ¿Ñ¤ÍÆ}ťɕǁzŔǄidw~v^kʾŦɡƸ~ʭťɕƸviʾwd] :=?=,9 z~Lǃʸ}ŦɡM]Wʼʇŷ~Ŧɡgy`uƸǪȋyʠʐXzyyX}vʼ®¿Å«yxvƕ{ÍÔ]ȉȂiķɈƖ]Wiʾdʢaoʼ¿Ñ¤ÍÆ}ˀɕȍʼiyq ;=:2=,8 Ƹ}ǝ}ɕzƐjëØ} 48;74.4? ƸǅXu[^iʾ
48;74.4?9:90
d}Ƹ]WʼŦɡkjzúȃgoŔƶ]Ww¦ÒºÏÍÔzyʼ®¿Å«}°±£]v^iʾƶĈɢȦ~ŏǋȋzťƶvɕXi]ʼťƶōŔƶ~ǝ}YzŦɡgiʾ=0,7Ŕ ƶ ľ ʼ Ŕ ƶ ľ ʼdzŪgʼƷƶō}Ŕƶ~ʼǝ}YzŦɡgiʾ
49?020=Ŕ ƶ ľ ʼ Ŕ ƶ ľ ʼŦɡƸ~ʭťɕƸy}vʼďu}ťɕƸġzǅ\ybykʾ;=:2=,8?0>?
48;74.4?9:90
=0,7C D E :802, B,A0 ,=0,
49?020=4 6 9 4849 48,C 68,C
=0,7  49?020= Ȣ}ōŦɡƸ~öɕǅXuɋXgʼʱȇǶʡĀviʾ
:=?=,9 }ǃʸŦɡv~ʼŔƶľ}ʳƸŞ] ,ˉ3 w :ˉE }Ŕƶ~ťƶōvʼ4ˉ9 }Ŕƶ~Ʒƶōvgoʾd}oʼƷƶōŔƶ}ʳƸŞ 4ˉ9 ziɄƛ]WiʾďuŦɡië×ʼŏǋȋzŔƶľ}èbƼzğʤ~yX}vi]ʼƷƶō~ȃʆ]ʤuX}vʼʳƸŞʤţiƼ]ɋXwƕXiʾťƶōƶ}ľġ~WʳƸŞzdpƐɚ~Wk]ʼİĠwguƷƶōÇÔªi 4 5 6 7 8 9 }  ƸŞŔƶ~úyXƼ]ǶʫviʾəȰƶōŔƶ}ŦɡƸ~ʼ
.:8;70CŔ ƶ ľ ʼ Ŕ ƶ ľ ʼviʾəȰƶōȃʆ]ʤţfuX}vľġ}èbƼzɜĠsbƼ]ɋXvgYʾəȰƶōŔƶľ~ʼʳƸŞ . \ E zidw]ŖXYviʾ¿Ñ¤ÍÆz[XuʼƶĈŔƶzĂşiƙɃ~ŗĜguásWiʾÕs~¿Ñ¤ÍÆďŎzoruđʇgum}ĈĝȃiovWʼYÕs~ǼXȩňvɢȦȷǏÕǁȋzĂşioviʾd}ás~ƙɱguúXėbYzgiʾǻzʼġɇ}ŗŎȋzĝȃ
iŔƶz~ʝvƙł}Wľġèb^viʾd~ʼʿƸŞ}YyȑXŔƶľúYw¿Ñ¤ÍÆ]ʝ`yzsuxdvm}ŔƶúruX\ǔȱi}]ʫg`y\
viʾ
ŔƶzƶĈéĎiǁ~ʼĹɿ}ɢȦȷǏŵɿ}Ŕƶ}ōzŔưguéĎgiʾd}o— 34 —

SENAC Vol. 45, No. 3（2012.7）

ʼťƶ}ɢȦȷǏƷƶō}ŔƶzéĎiwŭƶǵëØ~ĘƫuiʾûZʼ=0,7C
49?020=9
C 9C
}ȷǏʼ9 zéĎfĈ~  viʾoʼəȰƶō}ɢȦȷǏťƶō}ŔƶzéĎiwʼm}əȰƶ}ťʕ]éĎfiʾûZʼ=0,7C.:8;70C.
.
 
C.
wiwʼC zyiʾʅzʼəȰƶō}Ŕƶzťƶō}ƶĈéĎiwʼťʕzȷǏ]éĎfʼɔʕ~ zyiʾûZʼ=0,7C.:8;70C.
C.C
wiwʼ.zyiʾ2.4	  � � � � 	 ƶĈɢȦ×`úYʡƶ~W\hȃƙfuXiʾdLȵʀʡƶMwXX
iʾéɗȋyƶŠʡƶɗˀzȓgiʾȵʀʡƶ~ōŦɡiƐɚ]WkʾoʼƁƶ}ōzƓhoȫžvɢȦiLȻȗľMǛɈ]W}vʼƁƶ C ]əȰƶōvúZiʾ
ɗˀ}ƐɚǌíwʡƶĈ}ȩň~Ɓƶ]ťƶō}őļviʾd}ƐɚǌíǱofyXťƶōƶ
ÚZwÍÔzyiʾg\gəȰƶōÚZoőļz~ƐjgÍÔzykʾȵʀʡƶɗˀʾƶŠʡƶ}ǅ^ƼwúXƼľ ȗƶŠȋɗǾ
Ɛɚǌí

ʡƶĈ f }ȩň><=?C

ŹƼǐ

x

CQ 



,->C

ȹŪĈ

x





>49C

ǟƃʡƶ

sin x





.:>C

÷ƃʡƶ

cos x 

?,9C

ǟƮʡƶ

tan x 

,>49Cʅǟƃʡƶ

sin−1 x 

PCP

I Pf PI ,.:>Cʅ÷ƃʡƶ

cos−1 x 

PCP

Pf PI,?,9CʅǟƮʡƶ

tan

−1

x



I Pf PI ,?,9D CʅǟƮʡƶ

−1( y x) I˃f PI0C;C

ƨƶʡƶ

7:2C
7:2 C

tan





ɉǷŪƶ

ex 
log e x 

C˅ 



ŷȃŪƶ

log10 x C˅ ʡƶ}Ɓƶz~ɢȦƀÚZdwķɈviʾd}ǁ~ʼɢȦƀ}ȷǏƁƶwgoʡƶĈzyiʾûZʼFortran スマートプログラミング —第１回

基本的なプログラムの書き方—— 35 —.>49 C ?,9 7:2C
}Yzǅ`dw]v^iʾLM~y[ʼ 2 ɢȦgo`uʼ><=?wǅ`w¦ÒºÏÍÔzyiʾylyʼƷƶō}ţƶvWʼƷƶōƶ}ŹƼǐ~ȃƙfuXyX\viʾƐj ><=? }Yzťƶōǅ\ybykʾ

2.5	  ����� � � � � � � � � 	 ƶĈɢȦȍȋwgo¿Ñ¤ÍÆv~ʼƌoɢȦȷǏʒŤɗȓgybykʾĎĖĤ}ɨȲzsXu~ǝŇɭƿgi]ʼǇôʤʼǘǳ½ÔÄ±´} ;=49? ƸúroƶĈ
ĖĤ~ɞZu[`Ɛɚ]Wiʾ;=49? Ƹ}ÕûëØzȓgiʾ
49?020=9
9
;=49?  9 9 9 d}Yzʼ
L;=49? MzȺXuŔƶɢȦƀ¦ÒÄvĬĘruʊ|wʼm}ɢȦȷǏ]ǙzÜvĖĤfiʾ×û}őļz~ʼ }ȷǏvW  \ 9  }ȷǏvW v]ëØ}YzĖĤfiʾ y[ʼL;=49? M}LM~ʼĖĤ½ÔÄ±´]ǘǳƇƀvWdwƙłguX}vi]ʼ
wWZj~Ƈƀȋzǅ`}pwɞZuØfXʾəƶ}ƶĈĖĤiw^zƶŞpbĖĤiwʼx]x}ƶĈ\ė\y`yķɈƖ]Wiʾd}Yyőļ~ʼƸŞęùȃguŔƶ}ƙłĽǁzĖĤgiʾ:=?=,9 z[bLƸŞęMw~ʼˀą}Ã«´Ñ½TUv~fpƸŞ}Ü}dwvʼ;=49? ƸÝ
vúZʼm}ƸŞ}Ü]m}ĖĤfiʾûZʼ=0,7CC
;=49? C C C C
wXY¿Ñ¤ÍÆ}ĖĤ~ʼ
C

C



wyiʾ

3. 配列	 3.�	  配 列 � � 	 ddvĖu^oŔƶ~ōzƓho  ą}ƶĈɣƝidwg\v^kvgoʾg\gʼƶĈɢȦ©ÅÊÐÔ©ÌÒv~ʼƶÖą}³Ô®ĂşgumnǌízƓhuŔīfk
uX`ʼyuXY}]Ɔoġ}YzɕiʾmdvʼƶŠv a1, a2, ... , an }YzŔƶzǮŞèbuĬĜiYzʼƶŞvĬĜgoŔƶødw]v^iʾdLʖęM
wXXiʾ
ʖę~Ŕƶ}ÕȚy}vʼōŦɡƸúruŦɡgu[\|ykʾįÕŔƶwȈy}~ʼŦɡǁzǮŞ}ȩňȓiƷƶĈèĦidwviʾûZʼǝ}YzŦɡgiʾ=0,7,  -
.:8;70C.49?
49?020=9:/0

 
 


ddvʼƶŞ]  ą}ʖę  ǝċʖęʼ ą}ʖę  ǝċʖęwXXiʾ ǝċë×}ʖ

— 36 —

SENAC Vol. 45, No. 3（2012.7）ęødwv^iʾʖę}ľġ}èbƼʼʳƸŞ}ʓƥyx}İĠ~įÕŔƶľ}èbƼ
wĽhzgiʾŦɡgoʖę}Ļʕ}ľȗ~ǝ}ʇviʾûZʼ=0,7, wŦɡgoʿǝċʖęzsXuʼ, ~ʖęďõɗiLʖęľMʼ,wǅ`wmn}ÇÈÎȓiLʖęɚȰMʼ\rdĒ}ƶŞ~LɚȰȇĺMw\LǮŞMviʾ
ʖęŦɡvƨţgoƶĈ~ɚȰȇĺ}ǇŗĈɗgʼɚȰȇĺ}úȃķɈȩň~  \ƨţgoǇŗĈvviʾûZ , }Ŧɡv~ ,\ , v}  ą}ʖęɚȰ]úȃķɈzyiʾoʼˀǝċë×}ʖę}őļz~Ļǝċew}ǇŗĈƨţguX}vʼ-  }Ŧɡv~ďʕv  G ˄ ą}ʖęɚȰ]úȃķɈzyiʾņʴzru~ʼɚȰȇĺwgu ɴƶúXoXǁ]Wiʾd}Yyǁz~LMʠzĎuʼúȃķɈyɚȰȇĺ}ǇŭĈwǇŗĈĽǁzƨţgiʾûZʼ=0,7,.  -.  wŦɡiwʼʿǝċʖę ,. ~ʼ,. \ ,.v}  ą]úȃķɈvWʼˀǝċʖę -.
~ʼ-. \ -.  v} GG ˄ ą]úȃķɈviʾ

3.2	
  � � � � � � � � � � � 	 ʖę~¦Ò¼ÊÔ®Ēʕz[XuʊȺgoÇÈÎʲŎvťǾfuXiʾûZʼ=0,7, wŦɡfoʖę~ʼŉˀŵ}Yzʼ, ,, }ʱvÜpťƶō}ÇÈÎviʾ

a

101:
102:
103:
104:
105:
106:
107:
108:
109:
110:

real a(10)real ac(-3:5)

内部メモリ

内部メモリ

a( 1)
a( 2)
a( 3)
a( 4)
a( 5)
a( 6)
a( 7)
a( 8)
a( 9)
a(10)

ac

....

201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
....

ac(-3)
ac(-2)
ac(-1)
ac( 0)
ac( 1)
ac( 2)
ac( 3)
ac( 4)
ac( 5)

ŉˀʾ ǝċʖę}ÇÈÎÜ
ŉ\ė\Yzʼ,w~ ,\ƶZu  ȇȍ}ÇÈÎ}dwviʾoʼ,}Yzȩňŕ}ɚȰȇĺƨţiwàǉk{ÍÔƁ^ɷdidw\iʾ, }Ŧ
ɡ~  ąg\ÇÈÎȒĂguXyX}vi\ʼȇȍ}ɚȰ ,]x}ÇÈÎȓi}\ÙƿpgʼmmşŋiwXYĂɥfZWkʾ
:=?=,9 v}ʖęľ~ʖęéɗiľȗvWwĽǁzʼʖę}ČʳÇÈÎȓgiʾowZʼʖęľ , ~ŉˀŵ}Yz ,ȓgiʾoʼ,. }YzǇŭĈƨţguŦɡgoőļz~ʼŉˀĹ}YzÜvXuʼʖęľ ,. ~ ,. ȓgiʾʖęľ]ČʳɚȰȓidw~ʖę§¾ÏÔ°Ò}ƁƶwguÚZǁzƙɱiƐɚ]Wiʾˀǝċë×}ʖę}őļ~ʼŵ}Ƽ}ɚȰȇĺ\ČzʋYzÇÈÎ×vÜvXiʾûZʼ
=0,7- wŦɡgoőļʼÇÈÎ×v}Ü~ŉˁ}Yzyiʾˀǝċë×}ʖęʖęľ~ČʳɚȰȓguXiʾFortran スマートプログラミング —第１回

基本的なプログラムの書き方—— 37 —

real b(3,2)
内部メモリ
b

301:
302:
303:
304:
305:
306:
307:
....

b(1,1)b(2,1)b(3,1)b(1,2)b(2,2)b(3,2)

ŉˁʾ ǝċʖę}ÇÈÎÜˀǝċwˁǝċ}ʖę}ÜƼƀvɗkʼ =0,7-8 9}ʖęŦɡv -4 5~Čʳ\ƶZu 485 ȇȍ =0,7-N 8 9}ʖęŦɡv -4 5 6~Čʳ\ƶZu 4N5 86 ȇȍ
wyiʾxq}ĐƀÕȇĹĉ}ɚȰƶ 9 zýşguXkʾÕɊȋzʼxyǝċ}ʖę}ĐƀÕȇĹĉ}ɚȰƶz~ýşgyX}viʾ

4. 手順の繰り返し −— do 文	 ťɕƸ~ŏǋȋz×\Øʱzťɕfi]ʼmpbv~ʵògoơʱɀʂiǁzʼƐɚyŇƶpbĽhƸǅ\|ykʾmdvʼWȩň}ơʱƐɚyŇƶpbɀʂgɕkơǢwgu /: Ƹ]Wiʾ/: ƸúYǁ}ŏǋƇ~ʼ/:Ʒ ƶ ō Ŕ ƶ Ě ǉ Ĉ ȴ ß Ĉ 




09//:
viʾǇĚ} /: }ɕ] /: Ƹvʼ/: ƸwǇƊ} 09//: ƸvȩňƨţfoÕʊ}ťɕƸ]ɀ
ʂgťɕfiʾd}ȩňL/: ¾Ñ±£MwXXiʾoʼ¿Ñ¤ÍÆ}Ǭ]ƎȁiwXYƙłvL/: ÏÔ¿MwXXiʾ/: Ƹ}ƷƶōŔƶL Ò®ŔƶMwŃiʾ/:¾Ñ±£}ɀʂg~ʼ Ò®ŔƶzLĚǉĈMéĎidw\ʟŜgʼ/: ¾Ñ±£Ē}ơʱÕŇťɕiewz Ò®Ŕƶ  œĦgiʾmguʼ Ò®Ŕƶ]LȴßĈMŗ^`yroǁǵvɀʂg~ȴßgʼ09//: Ƹ}ǝ}Ƹzťɕ]ȘiʾûZʼ/:8  ,88
09//:
wǅbʼ,ˉ, v}ʖęɚȰzʼˉ v}ƶĈ]mnéĎfiʾ/: Ƹz[bʼL Ò®Ŕƶ˅ȴßĈM}ěţ~ /: ¾Ñ±£}ʟŜǁzɕYoʼĚǉĈ]ȴßĈŗ^Xőļz~¾Ñ±£Ēʕ]Õžťɕfjz 09//: Ƹ}ǝzťɕ]Șiʾǝ} /: Ƹ}YzʼƷƶĈYÕsʄĦidwvœĦʚƨţidwv^iʾ/:Ʒ ƶ ō Ŕ ƶ Ě ǉ Ĉ ȴ ß Ĉ œ ė Ĉ 




09//:
d}w^

Ò®Ŕƶ~ĚǉĈ\ʟŜguʼLœėĈMjsœĦgy] /: ¾Ñ±£Ē}ơʱ— 38 —

SENAC Vol. 45, No. 3（2012.7）

ɀʂgʼL Ò®Ŕƶ˅ȴßĈM}ǁǵvȴßgiʾûZʼ8 ]  ëØ}Śƶ}ǁ}ɢȦgoXǁ~ʼ/:8 




09//:

wǅ^iʾd}ǁ}ȴßĈ~  vi]ʼ ~Śƶv~yX}vɢȦgkʾ
œėĈ~ɴƶƨţidwv^iʾɴƶ}ǁz~ Ò®Ŕƶ]ǯŮguX`}vʼ
LÒ®Ŕƶ˃ȴßĈMzyroǁǵvȴßgiʾûZʼ \ʱzØru  vɀʂi
ǁz~ëØ}Yzǅ^iʾ/:8  

09//:
œėĈ]ɴƶ}ǁz~ʼLĚǉĈ˃ȴßĈMy /: ¾Ñ±£Ēʕ~Õžťɕfkʾ/: Ƹ} Ò®ŔƶœĦi®ÅÒ¤~ʼ09//: Ƹ}ťɕǁviʾûZʼ/:8 ,88
09//:
wXYƸ~ʼ
8
ˇ 8˅  } ě ţ  i  ʾ Ǳ ɺ g y X } v ʼ /: ¾ Ñ ± £  ť ɕ ˈ ,88
88
ˇ 8˅  } ě ţ  i  ʾ Ǳ ɺ g y X } v ʼ /: ¾ Ñ ± £  ť ɕ ˈ ,88
88
ˇ 8˅  } ě ţ  i  ʾ Ǳ ɺ g y X } v ʼ /: ¾ Ñ ± £  ť ɕ ˈ ,88
88
ˇ8˅  } ě ţ  i  ʾ Ǳ ɺ i  } v ʼ /: ¾ Ñ ± £  ȴ ß ˈ wXYĩøzyiʾd}Űʟ\\Yzʼ/: ¾Ñ±£ȴßgoǁǵvʼ Ò®Ŕƶz~ȴßĈŗ^XĈ]éĎfuXiʾ×ûv~ʼ/: ¾Ñ±£ȴßƊʼ8˄ viʾ/:¾Ñ±£ȴßǁ} 8 }Ĉĝȃiǁ~ʼd}dwɆƜgybykʾǝ}Yzʼ/: ¾Ñ±£}ÝzĜ} /: ¾Ñ±£Ďdwv^iʾopgʼ Ò®
Ŕƶ~Ȉy}úybykʾ/:6  ,66/:8  -8 68,6
.8 6-8 686
09//:
/6,6. 6
09//:


Fortran スマートプログラミング —第１回

基本的なプログラムの書き方—— 39 —

`úY}vɞZu[`wÿĝy}]ʼļɢɢȦi /: ƸviʾûZʼ9 ɚȰ}Õǝċʖęʼ, , ,9}ÝzƶĈ³Ô®]ĎruXőļʼd}ļɢǧz~ /:ƸúruëØ}Yzǅ^iʾ
>@8 /:8 9
>@8>@8,8
09//:
d}Ƹ]ļɢɢȦguXdwȀɠiz~ʼ~ëØ}YzơĩŰʟguwɋX
vgYʾ
>@8 8
>@8>@8,8
88
>@8>@8,8
88
>@8>@8,8
88
ddvěţƸ~ȏȆggoʾd}¿Ñ¤ÍÆvʘɚydw~ʼ/: ¾Ñ±£}ġvŔƶ >@8 zéĎguXdwviʾd]yXwǟgXȷǏ]ƌyXdw]Wiʾd}Yy¿Ñ¤ÍÆyv~}ǅ^Ƽ~º®ÔÒwguɞZu[`wɋXwƕXiʾ

5. 条件分岐 −— if 文	 ǌízƓhuȈyơʱɕkdwLǌíėųMwXXʼ41 Ƹúruƨţgiʾ
rwįȯzʼÕs}ǌízƓhuÕs}Ƹťɕi\gyX\Ǩpb}ǁ~įȯ 41ƸúXiʾįȯ 41 Ƹ~ëØ}Ƈƀviʾ
41ǌ í ť ɕ Ƹ 
įȯ 41 Ƹ~\rdĒ}LǌíM]Ǳɺfʼm}Ĺ}LťɕƸMťɕgʼǌí]Ǳɺf
ybögyXvǝ}ƸťɕgiʾûZʼ,
414 , -,
wǅ`wʼ4˃ }őļz~ , wyʼmëŕ~ , }y}vʼmzƓhu - zéĎfĈ]Ȉyiʾ
g\gįȯ 41 Ƹz~ťɕƸ]Õsg\ǅbyX}vʼťɕgoXƸ]əƶWw^z~úZkʾoʼǌízļroǁ}ĩøƨţg\v^yX}vʼļy\roǁ}ĩøĜzƨţg
oXǁz~Ùÿviʾ
mdvʼʇŷ~įȯ 41 Ƹv~y`ʼ¾Ñ±£ 41 ƸúXiʾ¾Ñ±£ 41 Ƹw~ʼ41 Ƹ}LťɕƸM}wd ?309 zgoƸ}dwvʼëØ}Yz¾Ñ±£ 41 Ƹw 09/41 ƸvÕʊ}ťɕƸ}ȩňƨţgiʾ41ǌ í ?309




09/41

— 40 —

SENAC Vol. 45, No. 3（2012.7）d}ƨţfoȩň 41 ¾Ñ±£wXXʼ¾Ñ±£ 41 Ƹzǅ\oǌíǱɺgoǁ}ʼ41¾Ñ±£Ē}ťɕƸ]ťɕfiʾûZʼ,
-
414 ?309
, 
-
09/41
.,-wǅ`wʼ4˃ }őļz~ , ʼ- }éĎƸťɕgu\ .,- ɢȦgi]ʼmëŕʼiyq 4Q }őļz~ 41 ¾Ñ±£ĒťɕgyX}vʼ,  - Ŕīkjʼ,ʼ- }v .,- ɢȦgiʾfuʼd}ûv~ʼ4˃ wXYǌíǱɺgyXw^z~ʼW\h ,ʼ- wXYéĎ
iƐɚ]Wkʾd}YzLǌíǱɺgyXw^MzĜ}ĩøfkoXw^z~
41 ¾Ñ±£Ēz 07>0 ƸƪĎgiʾ07>0 ƸƪĎiwʼ¾Ñ±£ 41 ƸvƨţgoǌíǱɺgyXőļzʼ07>0 Ƹ\ 09/41 Ƹv}ťɕƸ]ťɕfiʾûZ×ɣ}¿Ñ¤ÍÆ~ʼ
414 ?309
, 
-
07>0
,
-
09/41
.,-wǅ`dw]v^iʾd}őļʼ4˃ }őļz~ , ʼ- ťɕgʼLmëŕ}őļMz
~ ,ʼ- ťɕgiʾoʼǌíǱɺgyXőļzʼfzĜ}ǌíƨţgoXw^z~ 07>041 ƸúXiʾ
07>041 Ƹǌí~\rdvƨţgʼm}Ɗz ?309 ǅ^iʾ414 ?309
, 
-
07>0414?309
,
-
07>0
,
-
09/41
.,-
d}őļʼ4˃ }őļz~ , ʼ- ťɕʼ P4˃ }őļz~ ,ʼ- ťɕgʼmëŕ
ʹ4Qʺ}őļ~ ,ʼ- ťɕʼwyiʾ07>041 Ƹzƻoyǌí~ 41 ¾Ñ±£ĒzX`sĎu\Xkʾm}őļ~ʼ
Lm} 07>041 Ƹëġ}ǌíďuǱɺgyX
őļzʼm}ǌíǱɺiMwXYƙłzyiʾdzŪgʼ07>0 Ƹ~ǇƊ}ÕŇg\úZkʾ
ƶĈɢȦv`úYéɗȋyǤɾǌí}ǅ^ƼɗˁzȓgiʾFortran スマートプログラミング —第１回

基本的なプログラムの書き方— 41 ——

ɗˁʾǤɾǌí}ǅ^ƼǤɾǌíɣĺúȃûɣĺ}ƙł

C ŵɿwĹɿ]ȢgXw^ŵɿwĹɿ]Ȣg`yXw^C  D ŵɿ]Ĺɿŗ^Xw^Cŵɿ]Ĺɿë×}w^

C, ŵɿ]ĹɿŭfXw^>49C ŵɿ]ĹɿëØ}w^

?,9C7:2Dúȃû}YzʼǤɾǌíƨţiőļz~ÛɿxqzɢȦƀǅ`dw]ķɈviʾfzɗ˂}ɯȀǴȦɣĺúZʼd}ǌíɯȀȋzsyXpǌíʼŀţgoǌí
ÚZdwv^iʾɗ˂ʾɯȀƀ}ǅ^ƼɯȀǴȦɣĺǴȦ}ƙł

úȃû

LǌíʿM ,9/ LǌíˀM

LǌíʿM\sLǌíˀM}w^C  ,9/ C 

LǌíʿM := LǌíˀM LǌíʿMo~LǌíˀM}w^
9:? LǌíMûZʼ

LǌíMǱɺgyXw^C  := D 
9:? C  ,9/ D 

414  ,9/ 4?309
,

07>0
,

09/41
wǅ`wʼ4 ] ŗ^`L\sM ëØ}ǁʼiyqʼ ˃4P }w^z , ʼmëŕ~, wyiʾy[ʼǙȐgud} 41 Ƹʼ41 4?309d  ~  Í Ô wǅ`dw~v^yX}vǫƙggYʾ

6. 無条件ジャンプ −— goto 文，exit 文，cycle 文	 ¿Ñ¤ÍÆwXY}~ŏǋȋz×\ʱȇzťɕguX`}viʾ/: ƸúZʼ/: ¾Ñ±£vƨţgoȩň}ťɕƸƠţ}Ňƶɀʂidw]v^i]ʼɀʂiȩň~ŊţfuXgʼɀʂgȴßiǌí~ Ò®Ŕƶ}œĦvǨiʾdzŪgʼÕɊȋz¿Ñ¤ÍÆ}ǬŔZoXǁʼûZʆÝvɢȦÝƺgu¿Ñ¤ÍÆ}ǇĚ\Ȏiʼw\ʼǇƊ}ƸzÕǥzȘĩguȴßiʼw\XYǁz~ 2:?:ƸúXiʾ2:?: ƸúZƨţgoɕƅğȋzȘĩidw]v^iʾɢȦǛȋz~ʼdLªÉÒ¿iMwXXiʾ2:?: Ƹw~ëØ}Yyʼ2:?: }ƊzƷƶĈƨţgoƇ
}Ƹviʾ
2:?:Ʒ ƶ Ĉ d} 2:?: }Ɗ}ƷƶĈ]x}ɕzªÉÒ¿i\ƨţio}ƶĈvʼLƸȇĺMwŃuXiʾƸȇĺ~ªÉÒ¿Č}ɕzǅ\oťɕƸ}ġzʼ«ÁÔ«  ąë×ȝbuǅ^iʾûZʼ

— 42 —

SENAC Vol. 45, No. 3（2012.7）./ 
2:?:
./ ,- 
45
,-wǅ^iʾǇƊ}ɕv ,-}ġ}  ]Ƹȇĺviʾd}ûv~ʼǇĚ} ./ }ťɕƊʼ./ \ 45 v}Ƹ~ťɕfjʼȎqz ,-]ťɕfiʾiyqʼ./ ʼ,- 
45 }Ƹ~ǅXuXyX}wȢþviʾd}YzǈǶXfjªÉÒ¿idwLǶǌíªÉÒ¿MwXXiʾ
2:?: Ƹv¹±£idwķɈviʾd}őļʼƨţgoƸȇĺ}ɕw 2:?: Ƹ}ʠ}ĩøɀʂgťɕgiʾ./ ,- ././,- 0101 
2:?:
45
rwʼd}ûv~Xsvoru 2:?: Ƹ}ǝ} 45 ~ťɕfkʾdYXY}~LǶʤÏÔ¿MwŃʼ¿Ñ¤ÍÆÍÔ}ÕsviʾɢȦȷǏzƓhuǌíėųgʼ2:?: ƸØ}ɕªÉÒ¿iĜ} 2:?: Ƹʼ¿Ñ¤ÍÆɉõȴßfk >?:; ƸƪĎgybʼ¿Ñ¤ÍÆ~Ǧʑzȴßgkʾ
Ƹȇĺ~ɕ}ƨţzúYpby}vʼʘəfZgybx}ɕzxyƶĈèbuɋX}vi]ʼy`Øzɕ` xŗ^`yYzƶĈʓiʾoʼƸȇĺǻţ}ťɕƸzèbwʼŔǄiǁzèbǆZ]ʮćpwƕYǁz~ .:9?49@0 ƸƪĎgiʾ.:9?49@0
Ƹzĩø~Ƕ`ʼƸȇĺvóɁƨţiopbzȃXiʾûZʼ×ɣ}¿Ñ¤ÍÆ~ʼ./ .:9?49@0,- ././,- 0101 
2:?:
45
wȢþviʾ
2:?: Ƹ~ʼŖȃiw¿Ñ¤ÍÆ}Ǭ]\z``ygʼǶʤÏÔ¿zʦķɈƖW}vúȃ~v^pbʔb^viʾŏǋȋyɀʂgǌízƓhoªÉÒ¿~ /: ¾Ñ±£w 41 ¾Ñ±£v wxiuǅ`dw]v^iʾ/: ¾Ñ±£úruɀʂgɢȦiǁʼǌízruʆÝvɀʂgȴßgoXőļ]Wiʾd}őļʼİȀȋz~ 2:?: Ƹúybyk]ʼ2:?: Ƹ}úȃǕĤʔbwXYƼʛ\ 0C4? Ƹ]ȃƙfuXiʾûZʼ/:8 9
>@8>@8,8
41>@8 0C4?
09//:
>@8>@8 9}YzǅXo¿Ñ¤ÍÆ~ʼǝ} 2:?: Ƹúro¿Ñ¤ÍÆwĽhviʾFortran スマートプログラミング —第１回

基本的なプログラムの書き方—— 43 —/:8 9
>@8>@8,8
41>@8 2:?: 
09//:
 >@8>@8 9
iyqʼ0C4? Ƹťɕiw /: ¾Ñ±£}ŕzʶĖgu 09//: Ƹ}ȎƊ\ťɕʟŜgiʾy[ʼ/: ¾Ñ±£}Ý\ŕ}ªÉÒ¿~v^i]ʼŕ\ÝzĎªÉÒ¿~ȕǞfuXiʾ
opgʼ×ɣ}¿Ñ¤ÍÆŔǄguʼëØ}Yz 9 v~y`ʼ/: ¾Ñ±£ȴßgoǁǵ
} 8 vŹŌɢȦiǁz~ǫƙ]Ɛɚviʾ/:8 9
>@8>@8,8
41>@8 0C4?
09//:
>@8>@8 8ylyʼ8˄9 v /: ¾Ñ±£ťɕÝzʼ>@8˅ }ǌíǱɺgu /: ¾Ñ±£}ŕzĖoǁ
~ 8˄9 }vi]ʼǌíÕŇǱɺkjz /: ¾Ñ±£ȴßgoǁz~ 8˄9 zy\viʾƊɇ}őļɆƜgo¿Ñ¤ÍÆziz~ʼ/: ¾Ñ±£ȴßgoǁǵv 8˅9 \xY\ěţgʼƐɚzƓhu 8 Ąǟgybykʾ/: ¾Ñ±£}ʆÝvťɕÝƺgʼǡ}ʕė«¡±¿gu Ò®Ŕƶʋǁz~.D.70 ƸúXiʾûZʼ/:8 9
>@8>@8,8
41>@8 .D.70
>@8>@8
09//:
}YzǅXo¿Ñ¤ÍÆ~ʼǝ} 2:?: Ƹúro}wĽhviʾ/:8 9
>@8>@8,8
41>@8 2:?: 
>@8>@8 09//:
iyqʼ.D.70 Ƹťɕi}~ 09//: ƸzªÉÒ¿i}wȢþviʾ09//: ƸzªÉÒ¿iʼ Ò®Ŕƶ 8 œĦguʼ8˅9 \xY\°±£goƊʼǌíǱɺgybĔ/: ¾Ñ±£ǇĚ\ťɕidwzyiʾopgʼ.D.70 Ƹ~ /: ¾Ñ±£Ēʕ}ğƍy}vǝ}Yz 41 ¾Ñ±£úruĽhĩøfkdw]v^iʾ/:8 9
>@8>@8,8
41>@8 ?309
>@8>@809/41
09//:
d}Ƽ]ʼǌízƓhoĩøƿȓguXǵvɋXvgYʾ2:?: ƸŖȃgyXƼ]XʼwXYƙłļXwĽhvʼ.D.70 ƸúYw¿Ñ¤ÍÆ]\z``y}vWúyX

— 44 —

SENAC Vol. 45, No. 3（2012.7）

Ƽ]ɋXwƕXiʾy[ʼ/: ¾Ñ±£zɀʂg}ȴßʼ¾Ñ±£Ēʕ}ǌíėųpbvɕYőļz~Ò®Ŕƶǅ\yX /: ƸúYdw]v^iʾûZʼ/:
>@8>@8C41>@8 0C4?
C C 
09//:
wǅ`wʼ>@8 ]  ɸZvɢȦȺbiʾ Ò®Ŕƶyg} /: ¾Ñ±£~ǶʤÏÔ¿zybviʾǶʤÏÔ¿vi\ʼö\}ǌíėųzŕzĖɣʃ]yXwǦʑzǞyX}vǫƙguØfXʾ

7. プログラムのチューンアップ	 ɢȦʍș]əʪzyroŗʚ}³Ô®ĕȀiYzywʼƶƀįȯz¿Ñ¤ÍÆz
Ɂ^\Z}v~y`ʼɢȦǛ}ǻƖɆƜgo¿Ñ¤ÍÆzidwvɢȦĨǽȫžʷdw]v^iʾddv~ʼd}YyL«ÄÔ´yǅ^ƼMX`s\ȳægiʾ7.1	  � � の � � � � � � 	 ¦Ò¼ÊÔ®}ɢȦĩø~ ,- }YyĦȦ]ŏǋviʾ, - }YyǯȦ~ - ɴƶzŔưguĦȦipby}vĦȦwm xťɕǁʠ~Ŕk]ʼ,- }YyÞȦ~ĦȦ}ɀʂgĩøvi\ʼĦǯȦ\yʌXviʾ, - }YyʥȦzXoru~ʼǯȦ}ɀ
ʂgǌíè^vɕY}vʼfzǁʠ]\\iʾd}ǴȦʈž}Ǥɾǅbǝ}YzyiʾĦ ǯ Ȧ  R  Þ Ȧ  RR  ʥ Ȧ d}oʼģȦ]v^pbŮy`yYyɢȦơʱzgiʾûZʼC, - .wǅ`ʼ
C, -.
wǅ`Ƽ]ʈ`yiʾǇʁ}ɢȦǛ~\yʷʈzɢȦidw]v^}vʼƶŇ}ɢȦpbyd}Yyǅ^ưZ~Wƙł]Wk]ʼ/: ¾Ñ±£ĒvŗʚzĕȀiǁz~þĈ]Wiʾoʼ/: ¾Ñ±£ĒvöžĽhģȦiw^z~ʼʅƶƬbYzǅ^ưZwʈ
`yiʾûZʼ/:4 ,4-4 .
C4,4 
09//:
wǅ`ʼ
/./:4 ,4-4/C4,4 
09//:



Fortran スマートプログラミング —第１回

基本的なプログラムの書き方—— 45 —

wǅ`Ƽ]ʈ`yiʾrwʼ¿Ñ¤ÍÆ]\z``ywXYǜǵW}vʼģ
Ȧ}ȥƠ]Ůy`ʼɀʂgŇƶ]f xŖ`yXǁz~m xȔȶɶzŔƇiƐɚ~yXvgYʾ
^ÞȦ~rwʌX}vʼ Þ  Þșž}w^~ƬbȦziƼ]ʈ`yiʾûZʼC,-wǅ`ʼ
C,,---wǅ`Ƽ]ʈ`yiʾopgʼƨƶ]ŗ^Xw^z~ƙł]yXgʼ¿Ñ¤ÍÆ\z``y}vˁÞșžvvɋXwƕXiʾ^Þ}Ývʼ  Þzʡgu~ʼȵʀʡƶ ><=? ĝȃiƼ]ʈXviʾûZʼ
DC ED wǅ`ʼ
D><=?C
ED><=?Dwǅ`Ƽ]ʈ`yiʾ7.2	  � � � � � � � � � � 	 ŖʰƀɢȦiw^~ʼƬbȦ}Ňƶ]v^pbŮy`yYzɆZiʾÕɊȋzʼÕȇɋXɢȦơǪ~ 3:=90= ǪviʾûZʼy = a0 + a1 x + a2 x2 + a3 x3 + a4 x4 ʼÞȦƿȓgu¿Ñ¤ÍÆziwʼ
D, ,C,CC,CCC,CCCC}Yzyʼ Ň}ÞȦ]Ɛɚviʾwd]ʼdŔƇguʼD, ,,,,CCCCwǅbʼ Ň}ÞȦvɢȦv^iʾd] 3:=90= ǪviʾÕɊȋzʼ3:=90= Ǫ~ŮyXŖʰƀ}ɢȦzǈĨviʾg n ǝ}Ŗʰƀʼ}Āƶ]y = a0 + a1 x + a2 x2 ++ an x n 
z[XuʼĀƶ a0, a1, a2, ..., an ]ʼ,  , ,ǝ}Yy /: ƸúruɢȦidw]v^iʾ,9wXYʖęzĎruXőļz~ʼ

D,9/:49    
D,4CD
09//:

7.3	
  � � � � � � � � � � � 	
 /: ¾Ñ±£ĒʕvĽhɢȦɀʂiǁz~ʼW\hɢȦgu[^iʾûZʼ/:4 ,4-4.1
-4>49C,4
09//:

— 46 —

SENAC Vol. 45, No. 3（2012.7）

wǅ`wʼɀʂgewz .1  >49CɢȦidwzyi]ʼd~ /: ¾Ñ±£Ē
ʕv~ŔīgyX}vi\ʼW\hɢȦgu[`wʈ`yiʾûZʼ.1.1
>C>49C/:4 ,4-4.1
-4>C,4
09//:
}Yzǅ^ưZwʈ`yiʾ7.4	  �� � � � � � � � � � � � � 	 ʖęúroɀʂgɢȦiw^~ʼÇÈÎv^pbʊȺȋzɮǅ^iƼ]ʈ`yiʾd}oʼˀǝċë×}ʖęɢȦiw^z~ŵ}ɚȰ\ʱzʋYzg
iʾûZʼ
=0,7-  
49?020=8 9/:9  /:8  -8 989
09//:
09//:
}Yzʼˀǝċʖę -8 9zɢȦȷǏéĎiw^~ʼŵĉ}ɚȰ 8 zʡi /: ¾Ñ±£
Ĺĉ}ɚȰ 9 } /: ¾Ñ±£}ĒĉzƧru`Ƽ]ʷʈviʾd~ʼĒĉ} /: ¾Ñ±£}Ò®Ŕƶ]Čzʋ}vʼ-  -  - …}YzʼÇÈÎ}ÜvXʱzǑȮguX`\viʾdʼ=0,7-  
49?020=8 9/:8  /:9  -8 989
09//:
09//:
}Yzǅ`wʼ-  -  - …}YzʶʶzǑȮguX`}vĨǽ]Ɨ`yʼ«¼Ôµ¯Ògiʾ

7.5	  � � � � � � � � � 	 ťƶōƶ}ǈĨƶŞ~Ćȫžv  ǒșžviʾruʼĈ}Ʈʁgo  ą}ťƶ}Ɓ^Ȧ
iw^~ǥèbybykʾûZʼ


 





vi]ʼɢȦȷǏ ~ċ}  wǤwǈĨƶŞ]  ǒŮy`yruXiʾdLǒɐqMwXXiʾǒɐqiYyƁ^Ȧ~v^pbʔb|ykʾûZʼˀǝƼșƀ axbxc }ʿǐ~ 

x1 =−b + b2 − 4ac2avi]ʼb˅ \s bRFacF}ǁz~ʼb w b2 − 4ac ]Ȣg`y}vʼ−b + b2 − 4ac }Fortran スマートプログラミング —第１回

基本的なプログラムの書き方—— 47 —

ɢȦiwǒɐqiķɈƖ]Wiʾmdvd}ǐɢȦiǁ~ʼėŝ}ǈȀīgiʾiyqʼėǣėŝz −b− b2 − 4ac Ƭbwʼ

(−b + b − 4ac )(−b− b − 4ac ) =2cx =−b− b − 4ac2a(−b− b − 4ac )
2

1

2

2

2

wyi]ʼǇƊ}ĐƀúZǒɐqiƏʖ]Wkʾ ǐwɢȦiǁz~ʼ
ǐ}Ȝ] c/a vWdwĝȃguʼjǒɐqgyXƼ}ǐ x ɢȦgoƊvʼYÕƼ}ǐ c axvɢȦiwɋXvgYʾŗ^yƶzŭfXƶĦZwʼŭfXƶ]ǒɐqguƘŐ]řķɈƖ]WiʾûZʼʿǝċʖę ,4}ļɢ > ɢȦi¿Ñ¤ÍÆ~ʼ> 
/:4 9
 >>,4
09//:
vɋX}vi]ʼ,4]ďuǟƶvʼ9 ]ʭŷzŗ^Xőļz~ʼļɢ > ]ppŗ^`yruʼƊ}ƼvĦZo ,4}ƘŐ]řķɈƖ]WiʾĆȫžťƶúYdwƯśguXȀȅ}Õs]dviʾd}ǒɐqʢaz~ʼûZʼ ąjsĦZumĜ}ʖęzĎʼm}ƊmĽǗz  ąjsĦZuXruʼ wi}]ɋX}vi]ʼ¿Ñ¤ÍÆ]əʪzyrugXiʾws}ǤɾȋȪįyɠǨǪ~ʼɘħŔƶ = úruʼɬŶĜzɦþgu[`ƼǪvi)*ʾ
> 
= 
/:4 9
==,4
?>
>>=?> ?
== ?
09//:
d}ƼǪv~ʼǒɐqėŔƶ = zĂşguĜʆĦZ}vʼɢȦȫž]×]iʾĆȫžɢȦguXƐjgd}ƼǪziƐɚ~Wk]ʼȫž}ɋXļɢɢȦ]Ɛɚzyr
oǁ}ozɞZu[`wɋXƼǪviʾǒɐqgmYyƁ^Ȧ~ķɈyʤʔbYzgiʾûZʼŭfXǟƶ} /?4wXYʿǝċʖę]ÚZuXuʼd\ʼ?
/:4 9
?4?4 /?4
09//:
z ?4wXYʿǝċʖęørowgiʾd} ?4úru ?4 ?4 ?4 ?4 }Ĉ]Ɛɚyǁz~ʼ/?4Ăşgu[Xu /?4 /?4/?4 úruɦþi^viʾ

— 48 —

SENAC Vol. 45, No. 3（2012.7）

8. 読みやすいプログラムを書くには	 ddv~¿Ñ¤ÍÆɮi`io}»Ò´X`s\ȳægiʾ¿Ñ¤ÍÆ~ʼʿƸŞǅ^ʠʐZopbvȷǏ]ď`Ȉydw]Wʼǅ`dwɬ]yXdw°±£iƼ]ŗŔviʾLɮiX¿Ñ¤ÍÆMwXY}~ʼ°±£]giX¿Ñ¤ÍÆ}dwviʾɮi`ǅ`YzƏ]buXʼǅ^ʠʐXguǥ]s^iXgʼťɕǁzÍÔ]ĖuƾǉzʠʐruXȥƠȉɛidw]v^iʾëØ}»Ò´~¿Ñ¤ÍÅÒ¤}ĚƏɇz~m}ʘɚƖ]\jʼ
LȲ\Xdwp\ǶɝguXXMwƚh\gkʾg\gʼɮiX¿Ñ¤ÍÆzidw~ʼ¿Ñ¤ÍÆ]ʝ`y xƙɃ]
Ėigʼƛm x}ơʠv~Wkʾʮć]jzƏ]bgYʾ

8.1	
  � � � � � を � � � � � 	
 :=?=,9v~LM}ƊzȺ`ƸŞę~ďuǶɝfiʾiyqöǅXuťɕw~ǶʡĀviʾd¦ÇÒ´ƸwXXiʾ¦ÇÒ´ƸǛðWewz¿Ñ¤ÍÆÝzĎuʼǅ\uXĒŨɗȓiYzƏ]bgYʾfy`ʼ¿Ñ¤ÍÆ]ʝ`yzsuʼɉėvöǅXo}\ƒugXiʾûZʼ
,=0,:1.4=.70>
>;4==
}Yzʼʿęȍzǅbʼm}ɕ~¦ÇÒ´ɕwyiʾoʼ>;4==ē } ʮ Ȝ A;4=== ǿ } õ Ȝ }YzʼťɕƸ}Ǌůzǅ^ʀdwv^gʼƽǋɫǅ`dwv^iʾopgʼƽǋɫȁŒzru~ǟg`ɩɱv^jzƸŞībidw]W}vʼķɊƖɆƜiyÑÔÄŞstvɋX\ĭɟɏƶŞpbv¦ÇÒ´ǅXoƼ]Ƕʫviʾ

8.2	
  � ロ � � を � � に す � � � に � � � す � 	 åv}ûvȓguXi]ʼ/:  41 yx}¾Ñ±£Ýv~ŞØcʹÒ³Ò´ʺg
gYʾd~ʼ¾Ñ±£}ȩň]Õȍv\\viʾûZʼ41 ¾Ñ±£ʼ
419 ?309
C

07>0419 ?309
C 
07>0
C

09/41
 /: ¾Ñ±£ʼ/:4 9
-4,4
.4,4>49-C
09//:
}Yzʼ¾Ñ±£Ēʕ}Ƹ«ÁÔ«Ďujku[`w¾Ñ±£}ȩň]Õȍvěƺv
^iʾʇŷʼˉ ą}«ÁÔ«șžvɋXwƕXiʾ
Ǉʁ}³®z~ʼÔ´Ò³Ò´wXruʼƳɕiwm}ġ}ɕwČʳ]mYYz Ô­Ï]ȘĩiǛɈ]W}vʼÒ³Ò´i}~m x}ơʠv~WkʾFortran スマートプログラミング —第１回

基本的なプログラムの書き方—— 49 —

8.3	
  � � � � � � � � � � � � � 	 ƸÝ}ƸŞʠ~ʒƆzȝbo Y]ɮi`yiʾȡɇ~LMwLM}ÛĉzƐj«ÁÔ«ĎdwzguXiʾoʼéĎƸ]öɕȺ`w^z~LM×ØzmZw
ɮi`yiʾǻzʼĽhº®ÔÒvŮgjsĒŨ]ʐYƸÜw^z~ʼº®ÔÒ]ÜYz«ÁÔ«Ďdw[ĪgiʾëØ~ʼȡɇ}©ÅÊÐÔ©ÌÒ¿Ñ¤ÍÆ}ʿʕviʾB8 8 /C /D /E
B8 8/C /D /E
B8 8 /C/D /E
B8 8/C/D /E
B8 8 /C /D/E
B8 8/C /D/E
B8 8 /C/D/E
B8 8/C/D/Ed«ÁÔ«Ƥ^vǅ`wʼëØ}YzyiʾB8 8 /C /D /E
B8 8/C /D /E
B8 8 /C/D /E
B8 8/C/D /E
B8 8 /C /D/E
B8 8/C /D/E
B8 8 /C/D/E
B8 8/C/D/E
d}ás~ď`Ľhdw]ǅXuW}vi\ď`ĽhȷǏĖgiʾg\gʼº®ÔÒmZoġɇ~įyɂȋɹłv«ÁÔ«Ďo}v~Wkʾd}ûv~ʼxd\ÕȥƠʼûZ /C  /D zǅ^ʠʐZopbvǟgXȷǏ]ƌkʾg\ʼ/C w /D ǅ^ʠʐZuƸǪȋyÅ«z~yjʼĖĤȷǏɛuʠʐXzǥt\yXķɈƖ]W
iʾruʼv^pb¿Ñ¤ÍÆǅXuXǢʧvÅ«ĴʥXu[\|ykʾd}ǁʼġɇ}Yzº®ÔÒmZu[bʼǙƼĿzÕɕÕɕ°±£ipbvy`
ȿƼĿzǤɾgy]°±£idw]v^iʾɌSyɟž\°±£idwvʼÅ«}yX¿Ñ¤ÍÆzidw]v^}viʾ
d}çʼƸwƸ}ʠzʒƆy¦ÇÒ´ƸʼöǅXuXyXɕƪĎiʼ¿Ñ¤ÍÆ}ǬzĬĘ]v^u\i`yiʾd~ƸȟǢɐzėbYzʼ¿Ñ¤ÍÆĬėbiwɆZXXvgYʾ

8.4	
  � � � � � � � � � � � � � � � � � 	 ƶŠȋzǨruXįȯyţƶʹ Ćiw\ʼ ĦZw\ʼ Þiw\ʺ}őļëŕ~ʼv^pbţƶ}úȃʚǯi Y]XXwƕXiʾ¿Ñ¤ÍÆǅXuXǁz~ȀɠguXuǁʠ]ȶru\ɮpǁzƙł]ė\y`yķɈƖ]W\viʾûZʼʬŝ}ɶʚ meʹ  G 62ʺwč}ʈž cʹ G 8 >ʺúruɢȦi mec2  G ʹ ʺvi]ʼdįówi·Ï¢Ôʼenergy/mec2
ɢȦi¿Ñ¤ÍÆʼ090090=2D  0 wǅ`wʼƊv  0  wXYƶŞ]xd\Ǎo}\ė\y`yķɈƖ]W
iʾdYXYǁz~ŖŮʮćvʼ

— 50 —

SENAC Vol. 45, No. 3（2012.7）80  0 .7 0
8.80.7
090090=2D 8.wgu[bʼ\iXg¿Ñ¤ÍÆĒŨ}ɣʜzyiʾoʼ/: ¾Ñ±£  Ňɀʂiʼw\ʼ ŇewzĖĤiʼw\XYğƍƶʼŔƶzgu[bƶĈ}ƙł]ƿȓfgʼŔǄgi`yiʾûZʼ/:4  
 ,4-4
09//:
>@8 /:4  
 >@8>@8,4
09//:
wXY /: ¾Ñ±£z[XuʼYzŔƶzgiʾwXYƶ~ʖęɚȰƶzýşiđʇ}ƶĈvi\ʼëØ}48,C /:4 48,C ,4-4
09//:
>@8 /:4 48,C
 >@8>@8,4
09//:
dYgu[bƙł]~r^igʼ   zŔǄgoXǁz~ŔǄǵ]ÕȥƠviiʾd}YyŔƶī~¿Ñ¤ÍÆ]ʝ`y xʘɚƖ]œgiʾ

まとめと次回の予告	 åŇ~ʼŏǋȋy¿Ñ¤ÍÆ}ǅ^Ƽwʼǅ`ǁ}LdsMzsXuɭƿggoʾåŇɭƿgoŏǋȋƸǪúYpbvʼǗSyƶĈɢȦ¿Ñ¤ÍÆǅ`dw]v^iʾǀ\LɄYƛMwXXiʾɼʁyº­¦ÒĝȃguɌSyɢȦguuØfXʾ
ǝŇ~ʼ§¾ÏÔ°ÒzsXuɭƿgiʾ§¾ÏÔ°ÒúZʼÕʊ}ɢȦơʱ¾Í±£Â±£«īgum}ǛɈpbúroʼŗ^y¿Ñ¤ÍÆėģguÇÒ²¶Ò«}giX¿Ñ¤ÍÆzidw]v^iʾoʼƶĈĖĤiʨ}ĖĤƇƀƨţiƼǪʼ³Ô®½ÏzĂşgo½Ï\ɮʀpiƼǪyxʼĎĖĤƸ}ɨȲzsXuɭƿgiʾ

参考文献)*Ďʞ :=?=,9 ťɻ¿Ñ¤ÍÅÒ¤ʼǎȄŻǚÓŲǋɍäÓǹǩĳăʼ­½´¹Ò£ʼ ź)*ƶĈɢȦ}ŷɱʼïȀǟŘÓɓʙŅſʼđȞĖǺ  ź

— 51 —

SENAC Vol. 45, No. 3（2012.7）［利用相談室便り］[利用相談室便り]

利用相談について今年度も 5 月よりサイバーサイエンスセンター本館利用相談室、弘前大学、秋田大学、山形大学で利用相談を行っています。日程等詳細は次頁をご覧ください。相談内容によってはメーカ等に問い合わせる場合や、時間を要する場合もありますが、利用者の問題解決にむけて努めております。直接面談のほかに、メールや電話での相談も受けておりますのでお気軽にご相談ください。
・プログラムを高速化するにはどうしたらいいの？
・プログラムを並列化してもっと速く計算したい！
・スパコンでプログラムを動かしても速さがPCと変わらないんだけど、どうして？
・研究室のコンピュータではメモリが足りない！
・研究室の電気代高騰で困っている。
・コンピュータの管理は面倒。研究に専念したい。
・サービスしているアプリケーションを研究室から利用するにはどうすればいいの？
このような、スーパーコンピュータ利用に関する疑問や問題をお持ちの方、これから利用してみたいとお考えの方、一度相談してみてはいかがでしょうか。
また、サイバーサイエンスセンター本館相談室には、各種マニュアル、書籍も多数揃えています。相談室での閲覧、貸し出し（一部の書籍､マニュアルを除く）も可能ですので是非ご活用ください。

《サイバーサイエンスセンター本館利用相談室》
Tel.022-795-6153

相談用メールアドレス sodan05@isc.tohoku.ac.jp

サイバーサイエンスセンター本館

本館利用相談室— 52 —

SENAC Vol. 45, No. 3（2012.7）

ᖹᡂ  ᖺᗘ฼⏝┦ㄯ᪥⛬࡜୺࡞ᢸᙜศ㔝㸦ᮏ㤋㸧              
曜日・時間

ﾃｸﾆｶﾙｱｼｽﾀﾝﾄ

主な担当分野月

２－４時

佐々木大輔（情報基盤課共同研究支援係）

火

２－４時

沢田
山下

水

３－５時

山崎

木

３－５時

坂本

金

２－４時

小松
森谷

・スーパーコンピュータ
・大判プリンタ・並列コンピュータ
雅洋（理学研究科）
・スーパーコンピュータ
毅 （情報基盤課共同利用支援係）
・アプリケーション全般
・アプリケーション（Gaussian）
馨 （理学研究科）
・並列コンピュータ
・アプリケーション（MATLAB）
修一（電気通信研究所）
・C/C++
一彦（サイバーサイエンスセンター） ・並列コンピュータ
友映（情報基盤課共同研究支援係） ・スーパーコンピュータ*上記以外の時間帯に面談・電話での相談を希望の方は、共同利用支援係（1 階窓口）まで
相談内容をお申し出ください。センター内担当者に取り次ぎます。

ᖹᡂ  ᖺᗘ฼⏝┦ㄯ᪥⛬࡜ᢸᙜศ㔝㸦௚ᶵ㛵㸧          
大学名相談場所・日時

弘前大学

理工学部 1 号館
322 号室
在室中随時

弘前大学

理工学部 2 号館
0404 室月曜 16:00-18:00

秋田大学

工学資源学部 1 号館
337 室
在室中随時

山形大学

ﾃｸﾆｶﾙｱｼｽﾀﾝﾄ
佐藤

裕之

宮本

量

相談分野
ｽｰﾊﾟｰｺﾝﾋﾟｭｰﾀ，端末ﾛｸﾞｲﾝ,ﾌｧｲﾙ,
Fortran，ﾍﾞｸﾄﾙ化，ASL

端末ﾛｸﾞｲﾝ，ﾌｧｲﾙ，Fortran，C/C++，
Gaussian
ｽｰﾊﾟｰｺﾝﾋﾟｭｰﾀ，端末･ﾛｸﾞｲﾝ，ﾌｧｲﾙ，ｼﾞｮﾌﾞ操作，Fortran，C/C++，
MATLAB，利用申請，
ﾒｰﾙ

田中

元志

学術情報基盤センター 板垣（小白川キャンパス）金曜 10:00-12:00

幸由

端末･ﾛｸﾞｲﾝ，ﾌｧｲﾙ，
ﾒｰﾙ，ｳｨﾙｽ対策ｿﾌﾄ，ｻｰﾊﾞ証明書

勝美

端末･ﾛｸﾞｲﾝ，ﾌｧｲﾙ，Fortran，
MATLAB

工学部 7 号館
245 号室火曜 14:30-16:30

高野

工学部学術情報基盤セ
鈴木
ンター
在室中随時

勝人

端末･ﾛｸﾞｲﾝ，Fortran，
TOPIC/ｲﾝﾀｰﾈｯﾄ(組織間接続)，
ﾒｰﾙ，ｳｨﾙｽ対策ｿﾌﾄ

— 53 —

SENAC Vol. 45, No. 3（2012.7）

新テクニカルアシスタント自己紹介《サイバーサイエンスセンター本館利用相談室》
小松一彦（こまつかずひこ）

東北大学サイバーサイエンスセンタースーパーコンピュータ研究部

助教

本年度よりサイバーサイエンスセンター利用者相談室で利用相談員を担当させていただくことになりました。金曜日 14〜16 時の担当で、担当分野はスーパーコンピュータ(SX-9)、並列コンピ
ュータ(Express 5800)の利用方法全般、およびアプリケーションの高速化全般になります。
計算機アーキテクチャ・大規模並列計算を専門として研究に従事しており、様々な大規模計算環境におけるアプリケーションの最適化を通じて、次世代大規模計算機の要素技術を研究しております。このため、大規模計算機の計算機アーキテクチャやネットワークシステム構成などを考慮したアプリケーションの最適化・高速化をサポートさせて頂こうと考えております。利用相談員として、微力ながらみなさまのお力になれればと思います。よろしくお願いいたします。
森谷

友映（もりやともあき）

東北大学情報部情報基盤課共同研究支援係

技術一般職員

平成24年度から東北大学の技術職員として採用され、サイバーサイエンスセンター利用者相談
室で金曜日(14～16時)の利用相談員を担当させて頂くことになりました、森谷と申します。
これまで民間企業で5年間働いてきましたが、以前からスーパコンピュータに興味があり、今年からスーパコンピュータ関連の仕事に従事するようになりました。1つ1つ仕事を学びながら、質の高いサービスを提供できるように心がけています。
サイバーサイエンスセンターでは、A0サイズ対応の大判カラープリンタの利用、各言語のプロ
グラミング本、各種マニュアル、資料の閲覧も可能です。また、科学的、工学的分野に特化した様々なアプリケーションソフトの提供もしており、利用相談などを通じて、是非有効活用して、研究に役立てて欲しいと思っております。
利用相談員として、まだまだ未熟な部分もあり、ご迷惑もお掛けするかと思いますが、少しでもみなさまのお力になれればと思っています。よろしくお願いいたします。

*前年度以前よりテクニカルアシスタントをご担当頂いている皆様の自己紹介は、SENAC
Vol.44,No.3 p.62-p.65(2011.7)をご覧ください。

— 54 —

SENAC Vol. 45, No. 3（2012.7）[展示室便り⑤]���� ����
今回は、日本電気（株）製の ACOS シリーズです。センターで使用した計算機は、このシリーズの 700,900,1000,2020,3900(1976 年〜1997 年)でした。オペレーティング・シス
テム（OS）は ACOS-6 です。図 1 はこれらの計算機、約 20 年間の演算処理能力と主記憶容量を表したものです。20 年間で演算性能、メモリ容量ともに 250 倍となりました。
300
300
200

演算性能
演算性能
MIPS
MIPS

200
100
0
100

メモリ容
メモリ容量
量MB
MB

0

図 1 演算性能とメモリ容量

展示品 1 ACOS3900 の筐体

展示品 2 1CPU(表と裏)

展示品 3 メモリボード

展示品 1 は ACOS3900 の筐体の一部です。センターに設置していたときは全長 10m くら
いありました。展示品は CPU、主記憶装置、信号ケーブル、電源ケーブル、CPU を冷やす
水冷ケーブル、フレームなどから構成されています。展示品２は、ACOS3900 の１つの CPUです。この CPU は約 30×30cm の大きさで、水による冷却を行なっていました。裏面には水冷ケーブルの受け口があります。展示品３は、ACOS3900 の主記憶装置で CPU とほぼ同じ大きさです。このボード一つで 32MBを構成しています。現在センターで提供している並列コンピュータ Express5800
では、1 ボードあたり 64GB です。今皆さんご使用のノート PC でも数 GB は装備していると思われます。展示品 4 は「ACOS900 の LSI 技術」です。LSI チップから LSI 高密度パッケージを作る過展示品 4 ACOS900 の LSI 技術程が示されています。

— 55 —ACOS シリーズ

展示品 5 「TSS の使い方」説明書、ポータブルプリンタ、モデム装置

展示品 5 は左から「TSS の使い方」説明書、ポータブルプリンタ、モデム装置です。
「TSSの使い方」はセンター教職員と利用者の協同により ACOS での TSS（タイムシェアリングシステム）の使い方について、初心者を対象に分かり易く書かれた説明書です。利用者から好評を得た説明書の一つでした。ACOS-6（OS）の TSS は非常に使い勝手がよく、また、
そこで提供されていたテキストエディタの評判もよいものでした。中央はポータブルプリ
ンタです。蓋をかぶせるとアタッシュケースのような型となり持ち運びができます。利用者はこの端末で研究室、あるいは自宅からも TSS を利用することができました。電話の受話器を端末の受け口（右側の黒いところ）にセット、電話機からセンターに設置してある
モデムの電話番号を回し、電話回線経由で端末とモデム装置を接続します。右側のモデム
装置（変調復調装置）はセンター側に設置されていたもので、電話回線からのアナログ信号をデジタル信号に変換し ACOS に送信するものです。ポータブルプリンタから ACOS 利
用のイメージは、図 2 のようになります。

電話局

図 2 ポータブルプリンタから ACOS 利用

— 56 —

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

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

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

����������������� ��������

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

機

能

kakin

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

skakin

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

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

— 57 —

SENAC Vol. 45, No. 3（2012.7）

� ����� ���� ����������������
次のような内容の投稿のうち、当センターで適当と判定したものを掲載します。その際に原稿の修正をお願いすることもありますのであらかじめご了承ください。
・一般利用者の方々が関心をもたれる事項に関する論説・センターの計算機を利用して行った研究論文の概要
・プログラミングの実例と解説・センターに対する意見、要望
・利用者相互の情報交換������������������
(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

— 58 —

SENAC Vol. 45, No. 3（2012.7）

編 集 後 記SENAC の本号の編集中に、スーパーコンピュータの世界ランキングで有名な TOP500 の最新版
(June 2012)が発表になり、理化学研究所と富士通のスパコン「京」が第 2 位を獲得したというニュースが届きました。
「京」は昨年 11 月のランキングでは第 1 位で、今回連勝を逃したとは言え、世界の熾烈なスパコン開発競争の中で半年後にまだ 2 位に位置しているのは、大変立派な成果でしょう。
ところで、このようにずば抜けた演算性能を有するスパコンがあっても、やはりそれを使って得られる成果こそが、真に重要なものであると言えます。私たちのセンターにある SX-9 システム
は、「京」と比較するとはるかに小さなものですが、それでも研究室とは比較にならない圧倒的な演算能力と巨大なメモリを利用することができ、国際的に競争力のある研究に大いに役立っています。SENAC では定期的に利用者の研究成果を紹介しておりますが、本号では 2 件の共同研究成果報告をお届けします。スパコンを利用した研究成果がどのように我々の社会や科学技術の進歩に役立っているのか、時々SENAC を手にとって、それらを感じ取っていただけると幸いです。
（後藤英昭）
センターで提供しているスーパーコンピュータ、並列コンピュータは、防災･減災に関する研究
分野、気象･地球シミレーションに関する研究分野、医療に関する研究分野、ものづくりなど様々な研究分野で活用されています。また、センターで実行されているこれらのシミュレーションプ
ログラムのソースコードを見ますと、まだまだ圧倒的に Fortran プログラムが多い状況となっております。利用者からの質問、講習会のテキストなども、Fortran ベースのものが多い状況です。
今回発行の SENAC より、「Fortran スマートプログラミング」と題しまして、
3 回にわたり Fortranプログラムの基本的な書き方を紹介していく予定でおります。すでに Fortran プログラムをご利用の方は、昔を懐かしみ復習の意味を込めて、またこれから新たにプログラムを作成される方は、プログラム開発の第一歩として今号の SENAC を手にとって頂ければうれしく思います。ぜひ、研究のツールとしてセンターのスーパーコンピュータをお役立てください。（S.O）

SENAC 編集部会
小林広明 曽根秀昭 水木敬明 後藤英昭
江川隆輔 早坂哲夫 大泉健治 小野 敏
斉藤くみ子

編集・発行

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

平成 24 年 7 月発行
東北大学
サイバーサイエンスセンター
仙台市青葉区荒巻字青葉 6-3
郵便番号 980-8578
東北大学生活協同組合
プリントコープࢩࢫࢸ୍࣒ぴィ⟬ᶵࢩࢫࢸ࣒

࣍ࢫࢺྡ

ᶵ ✀

ࢫ࣮ࣃ࣮ࢥࣥࣆ࣮ࣗࢱVXSHULVFWRKRNXDFMS

6;

୪ิࢥࣥࣆ࣮ࣗࢱ

JHQLVFWRKRNXDFMS

([SUHVV

ࢧ࣮ࣅࢫ᫬㛫฼⏝ࢩࢫࢸ࣒ྡ

฼⏝᫬㛫ᖏ

ࢫ࣮ࣃ࣮ࢥࣥࣆ࣮ࣗࢱ

㐃

⥆

㐠

㌿

୪ิࢥࣥࣆ࣮ࣗࢱ

㐃

⥆

㐠

㌿

᭶᭙᪥㹼㔠᭙᪥ࡣ 㹼ࠊᅵ࣭᪥࣭⚃᪥ࡣ㛢㤋㤋ෆ฼⏝ࢪࣙࣈࢡࣛࢫ࡜ไ㝈್ィ⟬ᶵࢩࢫࢸ࣒

ࢫ࣮ࣃ࣮ࢥࣥࣆ࣮ࣗࢱฎ ⌮ࢪࣙࣈࢡࣛࢫ

㹁㹎㹓᫬㛫

఍ヰᆺ

  FSX 

 ᫬㛫



*%

 VV 㸦FSX㸧

 ᫬㛫



*%

 V 㸦FSX㸧

↓ไ㝈



*%

 S FSX ࠌ

*%

 S FSX ࠌ*% S FSX ࠌ*%

S FSX ࠌ*%

  ୪ิ 

᫬㛫



*%

 DV 㠀୪ิ 

↓ไ㝈



*%

 DP㸦0DUF ᑓ⏝㸧

ࠌ



*%

DP㸦0DUF ᑓ⏝㸧ࠌ

*%

 D   ୪ิ ࠌ

*%

 D  ୪ิ ࠌ

*%

 D  ୪ิ ࠌ

*%

ࣂࢵࢳ
ฎ⌮

఍ヰᆺ

୪ิ
ࢥࣥࣆ࣮ࣗࢱ

ࣂࢵࢳฎ⌮࣓ࣔࣜᐜ㔞