EICニュースレターNo.16


首都圏強震動総合ネットワーク計画


阪神大震災以降、国・自治体・公共企業体を中心に、多くの強震計あるいは計測震度計が設置された。しかし、自治体等により設置された計測震度計の場合は、震度情報のみが利用され、強震動波形データについては、あまり活用されていない。このため、既存の自治体等の強震動波形データを収集し強震動予測研究や地震防災研究に活用することを目的として、本センターが中心となって「首都圏強震動総合ネットワーク」計画をスタートした。その概要について紹介する。

本計画では、なるべく人手を煩わせることなく可能な限りオンラインで波形データを収集すること、またできるだけ既存のシステムを活用すること、本来の使用目的(震度情報の早期提供など)やセキュリティの妨げにならないこと、などに注意した。

幸い、補正予算による支持を得て、東京都(区市町村)、東京消防庁、神奈川県(温泉地学研究所)、横浜市などからオンラインで波形データを収集し、共通のデータフォーマットにして格納するシステムが構築される予定である。さらに、千葉県、埼玉県においては、独自にデータを収集し公開する計画が進んでいることから、それをMO等でオフラインで入手し、同じく共通フォーマットにして格納する予定である。

ただし、各自治体等の様々な事情により、観測点からの波形収集には、1日から1週間程度の遅れが予想されている。従って本システムは、大地震発生時のリアルタイム的な利用ではなくて、日常的な観測データの蓄積と、それに基づく詳細な強震動予測研究等への利用が主となる。また、得られた研究成果は、自治体等にフィードバックし広く活用して頂くことを目標としている。

まだ利用方法等の詳細は検討中であるが、より多くの人が、この計画の下に共同研究を推進し、成果を広く還元して頂くことを期待している。



再来大地震の震源過程の比較研究

三陸沖から十勝沖にかけて、M7クラスの地震が繰り返しおこっています。図1は東北地域で起きたM7以上の余震活動から推定された震源域を示し
ています。これらの震源域はお互い重なり合っているように見えますが、本当に同じところが繰り返し地震時にすべっているのでしょうか?

我々はM8クラスの1968年十勝沖地震(Mw8.2)と、そのわずか30年後に起きたM7クラスの1994年三陸はるか沖地震(Mw7.6)について詳細な解析を行いました。


波形解析
 1968年十勝沖地震については、11観測点の気象庁1倍強震計記録とWWSSNの19観測点の記録、1994年三陸はるか沖地震については、11観測点の気象庁強震計記録とIRISの9観測点の記録を用いて解析を行いました。

余震分布の再決定
 それぞれの本震から約6ヶ月以内に発生したM4以上の地震について、気象庁P波・S波の初動読みとり値をデータとして震源再決定を行いました。

結果
図2にこの解析から求められたアスペリティ(大きくすべった領域)と震分布を示します。図中薄いグレーの部分が1968年の、濃いグレーが1994年のアスペリティの位置を示しています。また○が1968年の、△が1994年の余震です。この図から以下のようなことがわかってきました。
@1968年十勝沖地震では2つのアスペリティがすべったが、そのうちの1つが1994年三陸はるか沖地震でも大きくすべった。
Aモーメント解放量からこの領域のサイスミックカップリング率を見積もるとほぼ100パーセントである。
B
両地震とも余震はアスペリティの周辺で発生している。
C
1994年三陸はるか沖地震の破壊は、1968年十勝沖地震ですべり量が少なかった領域で停止している。また、この領域では余震も発生しておらず、活動度も低いことから常時非地震すべりを起こしている可能性がある。

 図3に今回の解析のほか、八木他による日向灘地震の解析結果、菊地他による東南海地震の解析結果を模式的にまとめてみました。どうもアスペリティのサイズと間隔は場所によって違うという地域性が見えてきました。三陸沖:アスペリティ同士が近くにあるため、場合によっては隣り合ったもの同士が同時にすべることがあり、その場合には8クラスの地震にもなりうる。東南海:アスペリティサイズは大きく、ここでは逆に7クラス程度の地震は起こりにくい。日向灘:アスペリティサイズも小さく間隔も離れているため、単独でしか地震が起こらない。 まだ、解析を行った地震数が少ないのではっきりとしたことはいえませんが、日本では1920年ころから強震計が気象庁各観測所に設置されていて、これらのスス書きの記録が数多く残されています。今後これら過去の地震についても同様の解析を行い、アスペリティの分布、連動性について明らかにしていきたいと考えています。

謝辞: 本研究には気象庁の強震計データを使わせていただきました。
        (永井理子・菊地正幸・山中佳子)
図3


前回は,自動並列化するためのオプション-apoを入れてプログラムをコンパイルすると,コンパイラがプログラムを解析して,並列化できる個所にOpenMPとよばれるディレクティブ,を自動的に挿入してくれるというお話をしました.また,-apo keep,または -apo listオプションを入れてコンパイルすると,.mファイル,または.listファイルが出力されるので,プログラムのどこにそのOpenMPディレクティブが入り,どこが並列化されたかを知ることができることもお話しました.

 今回は自動で並列化できない場合でも,ちょっと手を加えることで,並列化ができるようになる話をしましょう.ここでは,前回用いたプログラム1(main.f)を再び使って説明します.このmain.fを,f77 -O3 -apo list -c prog1.f としてコンパイルすれば,プログラム2に示すmain.listファイルが得られます.

dimension a(1000,1000),b(1000,1000), / c(1000,1000)
parameter(n=1000,m=1000)
do 5 j=1,m
do 15 i=1,n
a(i,j)=i+j-1
b(i,j)=i-j+1
15 continue
5 continue
call mul(a,b,c,n,m)
:
4: PARALEL(Auto)__mpdo_MAIN_1
5:Notparallel
                       プログラム1 main.f                   プログラム2  main.mの内容

この例では,do 5ループが並列化していることが示されています.

さて,main.fを少し変え,行列 Aの だけを と定義する場合を考えてみます.その他の各要素は今までと同じ です.

 その場合のプログラムがmain1.fです.アンダーラインした3行が追加されています.これをコンパイルしmain1.listを出力すると,プログラム4のような結果となります.変数sに依存性があるので,もはやdo 5のループは自動並列化されてないことがわかります

dimension a(1000,1000),b(1000,1000),

/ c(1000,1000)
parameter(n=1000,m=1000)
  s=0.0
do 5 j=1,m
do 15 i=1,n
a(i,j)=i+j-1
b(i,j)=i-j+1     
    s=s+a(i,j)+b(i,j)
if(i.eq.500.and.j.eq.500) a(i,j)=s
15 continue
5 continue
call mul(a,b,c,n,m)
:
Parallelization Log for Subprogram MAIN_
5:Notparallel
  Scalar dependence ons.    
6:Notparallel
  Scalar dependence ons.
                  プログラム3  main1.f                プログラム4 main1.list

 たった1個の要素a(500,500)のために,残り999999個の要素の定義で並列化ができないできないというのでは困ります.そこでプログラムを少し変え,プログラム5のようにa(500,500)

dimension a(1000,1000),b(1000,1000),
/ c(1000,1000)
 parameter(n=1000,m=1000)
    s=0.0
 do 5 j=1,m
 do 15 i=1,n
 a(i,j)=i+j-1
 b(i,j)=i-j+1
15 continue
5 continue
   do j=1,500
    do i=1,500
    s=s+a(i,j)+b(i,j)
    end do
    end do
    a(500,500)=s
   call mul(a,b,c,n,m)
    :  
Parallelization Log for Subprogram MAIN_
5:PARALLEL (Auto) _mpdo_MAIN_1
6:Notparallel
  Loop is containde within a parallel construct.
11:PARALLEL(Auto) _mpdo_MAIN_1
12:Notparallel
Loop is contained within a parallel construct.
                  プログラム5 main2.f               プログラム6 main2.list 

の定義を別のループで行うように書き変えてみます.すると,5行目のループはおろか11行目のループでも並列化が行われるようになります.これはコンパイラの自動並列化分析機能に,わかるようにプログラムが書き換えられたため,うまく自動並列化が働いたということです.この例のように,計算過程(アルゴリズム)を少し変えて,コンパイラの自動並列機能をうまく使うことで並列化して行くことができるのです.
 さて皆さんの中には,前回(その2),プログラム2 mul.fで同じような計算
  do k=1,n ; s=s+a(i,k)*b(k,j) ; end do ;
をしているのに,見事に自動並列化ができていた例があったことを覚えている方がおられるかもしれません.このように自動並列化機能だけでは,並列化がうまくできる場合とそうでない場合があるのです.そこで次回は自動並列機能にたよるだけではなく,OpenMPのデレクティブを自分でポジテブに書いて,並列化をするお話をしましょう.
       

新J-array CD-ROM(試作品)の紹介

新J-arrayのCD-ROM(試作品)を作りました。内容は、1999年のMw7.5以上の4つの地震(8.17トルコ地震、9.21台湾地震、10.1メキシコOAXACA地震、11.26バヌアツ諸島地震)について、全国の約250地震観測点の3成分(計約700成分)の地震発生から約2時間の波形記録です。サンプリングは20Hz、データフォーマットはSACです。

まだ試作品で、今後まだ改良していく予定ですが、ご利用してみたいという方にはお送りしますので、送付先を下記までご連絡ください。なお、同じ所属の場合は、まとめていただければ幸いです。

連絡先:eic_staff@eri.u-tokyo.ac.jp (2000年4月末迄受付)

ご利用された場合は、ご感想・ご意見を頂ければ幸いです。