EICニュースレターNo.18


目次
三宅島と周辺の火山・地震活動 (阿部 勝征)
EIC地震学ノート (菊地 正幸・山中 佳子)
「EIC計算機システムの利用法」講習会報告 (鶴岡 弘)
並列計算いろは(その5) (桧山 澄子)


三宅島と周辺の火山・地震活動

●東京都の伊豆諸島・三宅島で,2000年6月26日18時半ごろから小規模の火山性地震が活発化し,島内の傾斜計も変化を示し始めた.噴火の恐れがあるとして,気象庁は19時半に緊急火山情報を出した.これを受けて三宅村は阿古,坪田,三池の3地区に避難を勧告した.今回の火山活動で警報にあたる緊急火山情報が噴火前に出されたのは,3月末に噴火した北海道の有珠山以来2回目である.思い返すに,17年前の三宅島噴火では,貧弱な観測体制のもとで噴火を予知できず,阿古地区の住民が避難を始めたのは噴火が始まってからであった.

●27日午前には島内での地震は起こらなくなり,活動域は島内から西方の海域へ移動した.海域へ出たあたりで,27日に小規模の海底噴火が起こり,海水が変色した.27日3時から5時の間に震源は約2km/時の速度で移動したという興味深い解析がある.これはマグマの移動速度とみなせる.約2km/時は約60cm/秒になる.1983年三宅島噴火の際に割れ目噴火は40cm/秒の速度で成長した.1986年伊豆大島噴火の際の震源の移動速度は50cm/秒であり,割れ目噴火の成長速度は40cm/秒であった.玄武岩質マグマの移動速度は人がゆっくりと歩く速さに近い.

●7月4日より三宅島雄山直下で小規模な群発地震が始まり,8日にM5.1の地震と小規模な山頂噴火が発生した.14日にも噴火があった.これらにより山頂は直径1km,深さ400mの規模でほぼ円形状に陥没した.陥没の体積は約0.2立方キロである.マグマの移動により山頂が陥没したことは,今世紀最大規模の1912年アラスカ・カトマイ火山の噴火を連想させる.60時間の噴火で30立方キロの噴出物を出し,5立方キロのカルデラがカトマイ山の山頂部に生じたのである.このときの噴出物は東京23区を50mの厚さで覆うほどである.後の調査で,意外にも山頂部からは噴出物が放出しておらず,10km離れた西側の火口が噴出源であった.マグマが側方へ移動したためにできた空洞に山頂部が陥没して,直径3km,深さ1kmのカルデラが形成されたのである.この時の地震活動はきわめて活発で,最大の規模はM7.0であった.

●三宅島の活動に加えて,神津島東方の海域に7月6日頃よりマグマが岩脈状に貫入したことにより,新島・神津島近海で群発地震活動が勢いを増した.7月1日には神津島東方でM6.4,9日に神津島東方でM6.1,15日に新島付近でM6.3の地震が発生し,震度6弱をもたらした.政府の地震調査委員会は6月29日の深夜に臨時会,7月2日の日曜日に臨時会,7月12日の午後に定例会,7月21日の夜に臨時会を相次いで開き,地震活動の現状評価を行った.火山活動と同じように,群発地震活動の推移を予測することは難しい.



【阿部勝征,7月24日記す】


EIC地震学ノートより抜粋

最近起こった地震の中からとくに興味ある地震を1つ取り上げます。

EIC地震学ノート No.84+85    Jul.23, 00

◆地震波解析◆
 7月14日三宅島近傍の長周期地震のメカニズム


● 概略・特徴:7月14日午前4時頃に三宅島でやや規模の大きい山頂噴火がありました。これに先立つ2時12分ごろ、三宅島付近を震源とする長周期(約50秒)の地震動が広帯域地震計によって観測されました。その後、振幅は様々ですが、似たような現象が繰り返し見られました。ここではこの一連の地震のメカニズムを取り扱います。
●データ処理:防災科学技術研究所のFREESIA観測点から震央距離約100kmの3点の広帯域地震計記録を集めました。これに周期10-100秒のバンドパスフィルターをかけ、さらに地震計の特性を補正して、地動変位の記録に変換しました。解析にあたっては、2種類の震源モデルを用いました。1つは体積成分を含む全6成分のモーメントテンソル源(モデル1)、もう1つは鉛直方向の力源(モデル2)です。
●結果:紙面の都合でモデル1の結果のみ示します(図1)。メカニズム解は全方位「押し」(体積膨張)を表しています。主な震源パラメータは次のとおりです。
 震源時  02:12:13 JT
 モーメントテンソル   2.5 -0.7 -0.4
          Mij =  -0.7 2.9 1.6
              -0.4 1.6 3.7
               [x10**17Nm]
     i,j=1(North),2(East),3(Down)
 等方成分      I= 3.0x10**17 Nm
 体積膨張     ΔV = I/k = 6x10**6 [m**3]     (体積弾性率 k=50GPa)
 震源継続時間   T = 40 s
 震源の深さ     H = 約 2km

 同様の長周期地震動はこれまで10回以上観測されています。いずれも三宅島島内の傾斜計(防災科技研)のステップ状変化(雄山が上昇するセンス)と時間的に一致します。また、地震波解析から得られたモーメントテンソルの等方成分と傾斜のステップ量とは概ね良い相関を示します(表1参照)。


●解釈その他:ほとんどの震源は体積膨張を主とするモーメントテンソルでかなりよく説明できます。膨張の原因が何かということが問題ですが、我々は「高温部に流れ込んだ地下水が水蒸気となって急激に周りを押し広げる」ことで説明がつくのではないかと考えています(図2)。


また、傾斜計記録が示す変動(急激な山体上昇とその後のゆっくりした緩和変動)は割れ目を伝わって気体が抜けることと水蒸気が水に戻る過程を示しているのではないかと考えています。(文責:菊地・山中)


「EIC計算機システムの利用法」講習会報告

Origin2000を中心としたEIC計算機システムについて,昨年と同様に講習会を実施しました.本年度は,システムに導入されているMATLAB(数値計算),ANSYS(有限要素法)についてもサイバネットシステム社に講師をお願いし実施しました.
ここに講習会の記録を兼ねて報告します.

(1)初心者向けコース
  日時: 5月18日(木) 14:00〜17:00
  内容: EICの使い方,自動並列化の利用法,バッチジョブの投入法,コンパイラ・ライブラリの利用法など
   参加人数: 23名
   講師: 桧山(情報センター),金(SGI SE)

(2)MATLAB(数値計算)コース
  日時: 6月8日(木) 13:30〜17:00
  内容: MATLABの概要,データの入出力方法,Mファイルの作成方法, グラフィックスの出力方法
  参加人数: 34名

(3)ANSYS(有限要素法)コース
  日時: 6月15日 13:300〜17:00
  内容: ANSYSの概要,事例説明,実習
  参加人数: 19名

(4)中級者向けコース
  日時: 7月6日(木) 14:00〜17:00
  内容: 並列化について,OpenMPの基礎的な使い方・書き方,並列化のパフォーマンスの調べ方など
  参加人数: 6名
   講師: 桧山(情報センター), 金(SGI SE)
 初心者向けコースには,予想通り新入生の参加が多く見られた.MATLAB・ANSYSといったアプリケーションの講習会には,これらのアプリケーションを利用したことはないが,これから利用してみたいというユーザの参加が多く見られ,参加者数は我々の予想以上であった.

なお,中級者向けコースへの参加はわずか6名となったが,開催時期が三宅島火山活動・神津島・新島地震活動,技術官研修,地震研究所一般公開の準備時期と重なったためと考えられます.このコースについては,10月位に再度中級者コース,上級者コースと連携して行うことも計画しています.

7月6日に行われた中級者向けコースでのプレゼンテーションは,

  http://wwweic.eri.u-tokyo.ac.jp/computer/

に,講習会で利用した資料(MATLABコースは除く)は,504号室の書棚においておきましたので,ご利用下さい.
なお,
  http://eic.eri.u-tokyo.ac.jp/headstart_manual/index.html


にEIC計算機システム全体の利用法がありますので,適宜参照してください


並列計算いろは(その5)

前回は,簡単でしかも最もよく使われるOpenMP文のparallel doデレクティブの紹介に着手したところで,割り当てページがなくなり,説明が途中で終わってしまいました.前回(その4)を参照しながら以下をお読みください.parallel do の構文は,C$OMP PARALLEL DO [記述子並び]do ループC$OMP END PARALLEL DOでした.さてここで「記述子並び」という耳慣れない言葉が出てきました.これからこの説明をしましょう.「記述子並び」に入るパラメターで,通常良く使われ,しかも重要なものは,
1)PRIVATE(xxx), 2) LASTPRIVATE(xxx), 3) REDUCTION(xxx:yyy), 4) IF(xxx)などです.

 まず1),2)を説明します.例1のようにプログラム中にOpenMP文 C$OMP PARALLEL DOが書かれてあると,コンパイラーはその直後のdoループをいくつかのスレッドに分け並列に計算します.そのときに直後に出てくるdoループの中の変数は,反復変数(i,jなど)以外各スレッドで共通に使う変数とみなされます.例2の計算を2つの計算機で並列化した場合をみてみましょう(図1).

                     図1. 2つのCPUで並列化した場合

もし,図1に示すように変数tが共通に使われますと,スレッド1の計算が先に終わる場合には,t=a(1)ですからb(1)=a(1)となりますが,スレッド2の方が先に計算が終わるは、t=a(5001)になりますからb(1)=a(5001)となってしまいます.このように計算の終わるタイミングによって値が変わる変数に対しては,各スレッドごとに別々の変数を定義するように変更することで,この困難はさけられます.例えばスレッド1か2で,tをt1とすればよいのです.このように,各スレッドで共有すると結果がおかしくなる変数(ローカル変数として,各スレッドにアドレスを確保する必要のある変数)はprivate変数と定義し,Open文の「記述子並び」に列挙して書いて置く必要があります.

 つまり例2のプログラムでは,do i=1,10000の前にC$OMP PARALLEL DO PRIVATE(t)と書く必要があります.こうしておくとtはprivate変数として取り扱われ,各スレッドに別々のアドレスがとられます.それ以外の変数にはデフォルト値が適応されます.a,bは共有変数(shared),変数iはdoの反復変数ですから,これらもデフォルトでprivate変数と見なされます.例1(その4)では,doループ内の変数a,bは共有変数,iはprivate変数として取り扱われますので,全てデフォルト値で済み,C$OMP PARALLEL DOだけ書けば良かったのです.

 これが煩雑だと思われる方は,まずC$OMP PARALLEL DO とだけを書いて,コンパイルしてみて下さい.EIC計算機では,本来private変数として「記述子並び」に入れておかなければならない変数や,あやしい変数をprivate宣言をせずに使うと,ワーニングのメッセージが出ます.それを見て,private変数にするか shared変数のままでよいかを判断することもできます.

 例2のループが終了した後で変数tを参照するような場合(例えばtをprintする)は,PRIVATE(t)でなくLASTRIVATE(t)と書きます.変数が複数個ある場合には,変数をコンマで区切ってC$OMP PARALLEL DO PRIVATE(t,s,x)と書きます.また変数が配列の場合には,配列名だけを書きます.3)以降の「記述子並び」については,次回(その6)で触れることにします.7月6日に行ったEIC計算機利用法中級者編では,この辺はもっと詳しく触れました.その折使いました電子紙芝居がhttp://wwweic.eri.u-tokyo.ac.jp/computer/
にあります.ご参考にしてください.