Mineos安装与使用

参考

Mineos官方文档
Hermann_Mineos安装

Mineos简介

这一部分是官方文档中的第一章,此处进行翻译。

本征函数系统

minos_bran是Mineos软件包的核心程序。通过频率范围(fmin, fmax)和简正振型(nmin,nmax,lmin,lmax),
minos_bran输出的大小取决于fmax,即设定的最高频率,以及输入模型的径向节点数量。如果设定的周期为6s,选择所有离散分支,则计算的本征函数和本征频率数量为:球振振型150,000个、环振振型100,000个。

eigcon程序执行两个主要步骤。首先对本征函数进行重归一化,截断表格数据,只延伸到考虑的最深的地震深度。即输入的max deepth参数。
这种截断大大减小了本征函数文件的大小,加快了格林函数计算速度。此外,eigcon重构了输出的本征函数文件为二进制文件,相比于minos_bran输出的本征函数文件独立于计算机功能结构。

最终的输出基于.eigen关系,指向磁盘中的本征函数文件。详细关系见[Mineos程序参数解释].eigen关系表。

获取.site和.sitechan文件的方式:申请SEED文件,例如IRIS DMC,然后使用rdseed或者antelope(例如sd2de seed2db)转换得到这两个文件。

antelope可以用来查看格林函数。

Mineos局限性

  • 当前版本的Mineos使用与低频应用,而周期为几秒(即0.nHz)情况下不适用。

  • 尝试制作衍射P波合成记录时发现内核振型(尤其是能量积分)不能够被准确计算。不确定在内核中添加节点是否能解决问题。已发表的成功事例表明:通过使用不同方式进行能量积分能够解决这个问题,这种方式不依赖于节点间距。

官方安装包安装

Mineos安装分为如下几步,目前在第二步出现问题,尚未解决。

configure

./configure

直接使用这个命令会出现依赖环境问题。例如:
check g77 … no

使用如下命令可以避免出现这种问题。

./configure F77=gfortran FFLAGS=-O2

make

使用命令:

make

出现错误:

1
2
3
4
5
6
7
8
9
10
make[1]: 进入目录“/home/shizhiyuan/Documents/mineos-1.0.0”
gfortran -O2 -c -o minos_bran.o minos_bran.f
minos_bran.f:254:32:

data tol/1.d-9/,itmax/15/,ichar/' s',' t',' s',' c'/
1
错误: (1)处 DATA 语句中类型不兼容;试图从 CHARACTER(1) 转换到 INTEGER(4)
make[1]: *** [Makefile:456:minos_bran.o] 错误 1
make[1]: 离开目录“/home/shizhiyuan/Documents/mineos-1.0.0”
make: *** [Makefile:253:all] 错误 2

DATA 语句中类型不兼容,目前未知解决方法。

使用Hermann网站提供的修改过minos_bran.f文件的安装包安装更为简便,且能够安装成功。

环境:Centos8

依赖环境

Mineos依赖于:

  • gcc
  • g77
  • f77
  • gfortran

一般安装gcc-gfortran即可。

sudo yum install gcc-gfortran

configure

./configure F77=gfortran FFLAGS=-O2

make

make

成功的输出:

1
2
3
make  all-am
make[1]: 进入目录“/home/shizhiyuan/Documents/hermann/MINEOS/mineos-1.0.0.rbh”
make[1]: 离开目录“/home/shizhiyuan/Documents/hermann/MINEOS/mineos-1.0.0.rbh”

make check

不知道具体含义,运行后没有输出。可能是指检查某项内容。

install

sudo make install

不用sudo可能出现没有权限创建新目录的情况。

运行成功后的输出:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
make[1]: 进入目录“/home/shizhiyuan/Documents/hermann/MINEOS/mineos-1.0.0.rbh”
test -z "/usr/local/bin" || /usr/bin/mkdir -p "/usr/local/bin"
/usr/bin/install -c 'minos_bran' '/usr/local/bin/minos_bran'
/usr/bin/install -c 'syndat' '/usr/local/bin/syndat'
/usr/bin/install -c 'green' '/usr/local/bin/green'
/usr/bin/install -c 'eigcon' '/usr/local/bin/eigcon'
/usr/bin/install -c 'endi' '/usr/local/bin/endi'
/usr/bin/install -c 'eigen2asc' '/usr/local/bin/eigen2asc'
/usr/bin/install -c 'simpledit' '/usr/local/bin/simpledit'
/usr/bin/install -c 'cucss2sac' '/usr/local/bin/cucss2sac'
test -z "/usr/local/bin" || /usr/bin/mkdir -p "/usr/local/bin"
/usr/bin/install -c 'scripts/creat_origin' '/usr/local/bin/creat_origin'
test -z "/usr/local/share/mineos" || /usr/bin/mkdir -p "/usr/local/share/mineos"
/usr/bin/install -c -m 644 'doc/mineos.pdf' '/usr/local/share/mineos/mineos.pdf'
/usr/bin/install -c -m 644 'DEMO/DEMO.tar.gz' '/usr/local/share/mineos/DEMO.tar.gz'
/usr/bin/install -c -m 644 'DEMO/README' '/usr/local/share/mineos/README'
make[1]: 离开目录“/home/shizhiyuan/Documents/hermann/MINEOS/mineos-1.0.0.rbh”

补充内容

运行.csh文件需要安装csh

sudo yum install csh

test

先将mineos文件内DEMO文件夹中的DEMO压缩包解压。当然更推荐命令操作:

cd DEMO
gunzip -c DEMO.tar.gz | tar xf -  # 这一步使用操作界面完成,就是解压的步骤。

export PATH=$HOME/cig/bin:$PATH # 添加变量?运行后没有输出。
cd DEMO3
./RUN_MINEOS.sh prem_noocean

输出结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
Step 1:  minos_bran runs for S modes .....................
============== Program minos_bran ==================
input model file:
../models/prem_noocean.txt
output file:
prem_noocean_S
eigenfunction file (output):
eprem_noocean_S
enter eps and wgrav
1.0000000000000000E-010 1.0000000000000000
enter jcom (1=rad;2=tor;3=sph;4=ictor)
3
enter lmin,lmax,wmin,wmax,nmin,nmax
2 8000 0.0000000000000000 200.00000000000000 0 0

real 0m1.441s
user 0m1.433s
sys 0m0.006s
Step 2: minos_bran runs for T modes .....................
============== Program minos_bran ==================
input model file:
../models/prem_noocean.txt
output file:
prem_noocean_T
eigenfunction file (output):
eprem_noocean_T
enter eps and wgrav
1.0000000000000000E-010 1.0000000000000000
enter jcom (1=rad;2=tor;3=sph;4=ictor)
2
enter lmin,lmax,wmin,wmax,nmin,nmax
2 8000 0.0000000000000000 200.00000000000000 0 0

real 0m0.245s
user 0m0.242s
sys 0m0.003s
Step 3: eigen for S .....................................
============= Program eigcon ====================
spheroidals (3) or toroidals (2) or radial (1) or
inner core toroidals (4) modes
3
enter name of model file
../models/prem_noocean.txt
enter max depth [km] :
1000.00000
enter name of minos_bran output text file
prem_noocean_S
minos_bran output binary unformatted file name
eprem_noocean_S
enter path/dbase_name or dbase_name to store eigenfunctions:
test_S
====================================================
eigcon: n,nstart,nrad = 185 119 67

real 0m0.053s
user 0m0.046s
sys 0m0.007s
Step 4: eigen for T .....................................
============= Program eigcon ====================
spheroidals (3) or toroidals (2) or radial (1) or
inner core toroidals (4) modes
2
enter name of model file
../models/prem_noocean.txt
enter max depth [km] :
1000.00000
enter name of minos_bran output text file
prem_noocean_T
minos_bran output binary unformatted file name
eprem_noocean_T
enter path/dbase_name or dbase_name to store eigenfunctions:
test_T
====================================================
eigcon: n,nstart,nrad = 185 119 67

real 0m0.025s
user 0m0.024s
sys 0m0.000s
Step 5: green functions evaluation .........................
============= Program green ====================
enter path to db with sta & stachan:
short
enter name of file within list of nmodes db:
db_list
enter input CMT file name:
china_cmt_event
min and max frequencies to be considered (mHz) :
10.0000000 260.000000
enter # pts in greens fns .le. 30000 :
8000
enter Green functions output db file name:
green
====================================================
green: Event: B011400F 2000 14 23:37:10.800 lat = 25.390, lon = 101.400
green: source depth = 33.0 km
green: step = 1.000 sec, nsamples = 8000
green: # sph. modes in band = 2596 must be .le. 300000
green: # tor. modes in band = 2352 must be .le. 300000
green: Input dbname : short
green: Station: ALE 82.5033 -62.3500 , Channels: 3
green: Channel: # 1 ALE LHZ 0.00000000 0.00000000
green: Channel: # 2 ALE LHN 0.00000000 90.0000000
green: Channel: # 3 ALE LHE 90.0000000 90.0000000
green: Epicentral Distance : 72.020
green: Azimuth of Source : 15.433
green: 1 ALE LHZ 2000 14 23:37:10.800 1.000 48000
green: 2 ALE LHN 2000 14 23:37:10.800 1.000 48000
green: 3 ALE LHE 2000 14 23:37:10.800 1.000 48000
green: Station: ANMO 34.9502 -106.4602 , Channels: 3
green: Channel: # 1 ANMO LHZ 0.00000000 0.00000000
green: Channel: # 2 ANMO LH2 10.0000000 90.0000000
green: Channel: # 3 ANMO LH1 280.000000 90.0000000
green: Epicentral Distance : 114.439
green: Azimuth of Source : -27.665
green: 4 ANMO LHZ 2000 14 23:37:10.800 1.000 48000
green: 5 ANMO LH2 2000 14 23:37:10.800 1.000 48000
green: 6 ANMO LH1 2000 14 23:37:10.800 1.000 48000
green: Station: BAK 35.3441 -119.1043 , Channels: 3
green: Channel: # 1 BAK BHZ 0.00000000 0.00000000
green: Channel: # 2 BAK BHN 0.00000000 90.0000000
green: Channel: # 3 BAK BHE 90.0000000 90.0000000
green: Epicentral Distance : 108.462
green: Azimuth of Source : -38.270
green: 7 BAK BHZ 2000 14 23:37:10.800 1.000 48000
green: 8 BAK BHN 2000 14 23:37:10.800 1.000 48000
green: 9 BAK BHE 2000 14 23:37:10.800 1.000 48000
green: Station: BDFB -15.6418 -48.0148 , Channels: 3
green: Channel: # 1 BDFB LHZ 0.00000000 0.00000000
green: Channel: # 2 BDFB LHN 0.00000000 90.0000000
green: Channel: # 3 BDFB LHE 90.0000000 90.0000000
green: Epicentral Distance : 149.822
green: Azimuth of Source : 66.283
green: 10 BDFB LHZ 2000 14 23:37:10.800 1.000 48000
green: 11 BDFB LHN 2000 14 23:37:10.800 1.000 48000
green: 12 BDFB LHE 2000 14 23:37:10.800 1.000 48000
green: Station: BILL 68.0651 166.4524 , Channels: 3
green: Channel: # 1 BILL LHZ 0.00000000 0.00000000
green: Channel: # 2 BILL LHN 0.00000000 90.0000000
green: Channel: # 3 BILL LHE 90.0000000 90.0000000
green: Epicentral Distance : 57.417
green: Azimuth of Source : -103.266
green: 13 BILL LHZ 2000 14 23:37:10.800 1.000 48000
green: 14 BILL LHN 2000 14 23:37:10.800 1.000 48000
green: 15 BILL LHE 2000 14 23:37:10.800 1.000 48000
green: Station: BJT 40.0183 116.1679 , Channels: 3
green: Channel: # 1 BJT LHZ 0.00000000 0.00000000
green: Channel: # 2 BJT LHN 0.00000000 90.0000000
green: Channel: # 3 BJT LHE 90.0000000 90.0000000
green: Epicentral Distance : 19.123
green: Azimuth of Source : -135.267
green: 16 BJT LHZ 2000 14 23:37:10.800 1.000 48000
green: 17 BJT LHN 2000 14 23:37:10.800 1.000 48000
green: 18 BJT LHE 2000 14 23:37:10.800 1.000 48000
green: Station: BRVK 53.0581 70.2828 , Channels: 3
green: Channel: # 1 BRVK LHZ 0.00000000 0.00000000
green: Channel: # 2 BRVK LHN 0.00000000 90.0000000
green: Channel: # 3 BRVK LHE 90.0000000 90.0000000
green: Epicentral Distance : 36.158
green: Azimuth of Source : 127.603
green: 19 BRVK LHZ 2000 14 23:37:10.800 1.000 48000
green: 20 BRVK LHN 2000 14 23:37:10.800 1.000 48000
green: 21 BRVK LHE 2000 14 23:37:10.800 1.000 48000
green: Station: CASY -66.2792 110.5364 , Channels: 3
green: Channel: # 1 CASY LHZ 0.00000000 0.00000000
green: Channel: # 2 CASY LHN 180.000000 90.0000000
green: Channel: # 3 CASY LHE 270.000000 90.0000000
green: Epicentral Distance : 91.644
green: Azimuth of Source : -8.261
green: 22 CASY LHZ 2000 14 23:37:10.800 1.000 48000
green: 23 CASY LHN 2000 14 23:37:10.800 1.000 48000
green: 24 CASY LHE 2000 14 23:37:10.800 1.000 48000
green: Station: CCM 38.0557 -91.2446 , Channels: 3
green: Channel: # 1 CCM LHZ 0.00000000 0.00000000
green: Channel: # 2 CCM LHN 0.00000000 90.0000000
green: Channel: # 3 CCM LHE 90.0000000 90.0000000
green: Epicentral Distance : 115.783
green: Azimuth of Source : -12.703
green: 25 CCM LHZ 2000 14 23:37:10.800 1.000 48000
green: 26 CCM LHN 2000 14 23:37:10.800 1.000 48000
green: 27 CCM LHE 2000 14 23:37:10.800 1.000 48000
green: Station: TLY 51.6807 103.6438 , Channels: 3
green: Channel: # 1 TLY LHZ 0.00000000 0.00000000
green: Channel: # 2 TLY LHN 0.00000000 90.0000000
green: Channel: # 3 TLY LHE 90.0000000 90.0000000
green: Epicentral Distance : 26.308
green: Azimuth of Source : -175.417
green: 28 TLY LHZ 2000 14 23:37:10.800 1.000 48000
green: 29 TLY LHN 2000 14 23:37:10.800 1.000 48000
green: 30 TLY LHE 2000 14 23:37:10.800 1.000 48000

real 0m1.470s
user 0m1.458s
sys 0m0.010s
Step 6: synthetic seismogram construction ..................
============== Program syndat ==================
enter input CMT file name:
china_cmt_event
enter tensor type: 0 - moment, 1 - nodal plane 1, 2 - nodal plane 2
0
enter input dbname
green
enter output dbname
Syndat
Enter output units: 0 [nm/s/s] 1 [nm/s] 2 [nm]
syndat: CMT solution:
syndat: Event: B011400F 2000 14 23: 37: 10.8, lat/lon = 25.39 101.40,
syndat: depth = 33.0 km, step = 1.000 sec, Duration = -2.3 sec,
syndat: M0 = 0.833E+25,
syndat: comp: -0.600E+24 -0.629E+25 0.689E+25 -0.185E+25 0.120E+24 -0.473E+25
syndat: plane1: 27. 78. -6. plane2: 118. 84.-168.
syndat: Selected moment tensor components:
syndat: -0.600E+24 -0.629E+25 0.689E+25 -0.185E+25 0.120E+24 -0.473E+25

syndat: Synthetic waveforms:
syndat: 1 ALE LHZ 1.000 8000
syndat: 2 ALE LHN 1.000 8000
syndat: 3 ALE LHE 1.000 8000
syndat: 4 ANMO LHZ 1.000 8000
syndat: 5 ANMO LH2 1.000 8000
syndat: 6 ANMO LH1 1.000 8000
syndat: 7 BAK BHZ 1.000 8000
syndat: 8 BAK BHN 1.000 8000
syndat: 9 BAK BHE 1.000 8000
syndat: 10 BDFB LHZ 1.000 8000
syndat: 11 BDFB LHN 1.000 8000
syndat: 12 BDFB LHE 1.000 8000
syndat: 13 BILL LHZ 1.000 8000
syndat: 14 BILL LHN 1.000 8000
syndat: 15 BILL LHE 1.000 8000
syndat: 16 BJT LHZ 1.000 8000
syndat: 17 BJT LHN 1.000 8000
syndat: 18 BJT LHE 1.000 8000
syndat: 19 BRVK LHZ 1.000 8000
syndat: 20 BRVK LHN 1.000 8000
syndat: 21 BRVK LHE 1.000 8000
syndat: 22 CASY LHZ 1.000 8000
syndat: 23 CASY LHN 1.000 8000
syndat: 24 CASY LHE 1.000 8000
syndat: 25 CCM LHZ 1.000 8000
syndat: 26 CCM LHN 1.000 8000
syndat: 27 CCM LHE 1.000 8000
syndat: 28 TLY LHZ 1.000 8000
syndat: 29 TLY LHN 1.000 8000
syndat: 30 TLY LHE 1.000 8000

real 0m0.006s
user 0m0.002s
sys 0m0.004s

文件运行初步解析

运行1

cd DEMO3
./RUN_MINEOS.sh prem_noocean

输出如上test

以下为 运行1 运行之后前后对比。

以下进行初步解析。

minos_bran.f文件

Files prem_noocean_S. prem_noocean_T, eprem_noocean_S and eprem_noocean_T are output of the minos_bran program.

minos_bran输出的文件为:prem_noocean_S,prem_noocean_T, eprem_noocean_Seprem_noocean_T

以及

The results are stored in test_S and test_T databases (eigenfunctions); in green database (Green functions); and in Syndat (synthetic seismograms).

test_S.eigen.dattest_T.eigen.dat 是eigenfunctions,即特征函数。但还有两个同名.eigen文件。 green.wfdisc.dat为格林函数,Syndat.wfdisc.dat为理论地震图。

第一步:运行minos_bran。S modes S振型?

输入为:/models/prem_noocean.txt,即prem模型,该模型将海洋处用上地壳填充。

输出为: prem_noocean_S

特征函数文件:eprem_noocean_S

eps: 1e-10 
wgrav: 1 
jcom: 为3,表示为球型振型。
1
2
3
4
5
6
7
输入的参数:
lmin 2
lmax 8000
wmin 0
wmax 200
nmin 0
nmax 0

使用time命令运行minos_bran程序,返回程序运行时间。具体含义可参考Linux系统命令。
注:使用time命令可以直接运行当前目录之外的程序。

1
2
3
real	0m1.450s
user 0m1.441s
sys 0m0.007s

第二步:运行minos_bran Tmodes T振型?

屏幕上的输出大意:

输入同样为/models/prem_noocean.txt

输出为: prem_noocean_T

特征函数文件:eprem_noocean_T

eps: 1e-10
wgrav: 1
jcom: 2

输入的参数:
lmin 2
lmax 8000
wmin 0
wmax 200
nmin 0
nmax 0

输出???
real	0m0.243s
user	0m0.242s
sys	0m0.000s

第三步 S model-eigen

运行的程序为eigcon,它的功能是:

converts eigenfunction files (output from minos_bran) into .eigen relation containing only info about the upper most
dmax km ( 0 < dmax < Rn), where, RO is radius of the free surface in km. This version works for all modes: spheroidal, toroidal, and radial.

将minos_bran的输出文件转换为.eigen,仅包含最上层dmax km ( 0 < dmax < Rn) 的信息。R0是自由界面半径(单位km)。
他能够运行于所有振型,自动读取输入文件的振型。

这一步读取控制参数。

读取了输入文件的jcom。
输入的模型文件名称:``prem_noocean.text``
输入的最大深度(max depth,km):``1000``
minos_bran的输出文件: ``prem_noocean_S``
minos_bran的输出无格式二进制文件:``eprem_noocean_S``

输入路径或名称,存储特征函数。其中,输入方式为两种:路径path/dbase_name或名称dbase_name
创建的文件为:dbase_name.eigen, 创建的文件夹为dbase_name.eigen.dat,文件夹中有二进制文件eigen

在屏幕运行输出仅输出了三个参数:

n 185
nstart 119
nrad 67

结尾有:

real	0m0.046s
user	0m0.043s
sys	0m0.003s

第四步 关于T的eigen,同3。

记录屏幕上输出的内容:

jcom 2
输入的模型文件名称:prem_noocean.text
输入的最大深度(max depth,km):1000
minos_bran的输出文件: prem_noocean_T
minos_bran的输出无格式二进制文件:eprem_noocean_T
路径:test_T

n 185
nstart 119
nrad 67

real	0m0.024s
user	0m0.021s
sys	0m0.003s

输出的test_S.eigentest_S.eigen.dat:

eigen文件格式

示例其中一行:

1
0       20 S       19        347.66000          5.61667          3.99901        241.43201       67    7    7 f4      34272 test_S.eigen.dat     eigen  -1 04/15/24-20:16:12     

分别为:

n, l, 振型类型, eigenfunction id, 本征频率mHz, 相速度, 群速度, 品质因子q,行数nrow, 列数ncol, 参数数no. of parameters, datatype, byte offset, 保存的文件目录,文件名, comment id, 文件创建时间load date

第五步:格林函数估值(evaluation)

运行的程序为:green.f

green program computes for a single event and a given set of stations, the Green functions.
这个程序计算单个事件和一组给定的台站。

输入db的路径,结合sta和stachan:short 这两个文件一开始就有
short是指shrot.site这个文件和short.sitechan文件,‘结合sta,stachan’可能是指这两个文件。

文件内容如下:

输入nmodes列表的文件名 :db_list 这个文件一开始就有

db_list文件内容为:

test_S
test_T

输入CMT文件名: china_cmt_event 这个文件一开始就有

考虑的最小和最大频率(单位mHz):10 260

输入pts

输入格林函数的输出文件名:green。这个程序输出的文件为:green.wfdisc
这个文件内容与屏幕输出不同,但是其包含的内容一致。均为台站、通道、时间等信息。

输出依然存在:

real	0m1.471s
user	0m1.455s
sys	0m0.015s

第六步:构建理论地震图

使用的程序为:syndat.f

syndat program makes synthetic seismograms by convolutions of Green
functions with the seismic moment tensor of the choosen event.

选择的事件的地震矩张量和格林函数的卷积,得到理论地震图。

输入CMT文件名:china_cmt_event
张量类型: 0

输入dbname: green

输出dbname:SYndat

输出单位: 0 [nm/s/s] 1 [nm/s] 2 [nm]
(可能并没有选择输出单位?屏幕输出仅为此。)

该程序最后输出的文件为:syndat.wfdisc

也输出了.origin.site.sitechan文件。

也有Syndat.wfdisc.dat,里面应该是理论地震图。

之后需要运行将理论地震图转换为sac格式的程序。这一步为运行2的内容。

运行2

cucss2sac Syndat Syndat_SAC

将理论地震图转化为sac格式,并保存在Syndat_SAC文件夹中。

运行3

cucss2sac -a Syndat Syndat_ASC

转化为ASC格式,即ASCII文件。

运行4

./RUN_ENDIAN.csh Syndat
./RUN_ENDIAN.csh  green

把这两个文件波形从LOW_ENDIAN bytes转换到BIG_ENDIAN bytes

如果有ANTELOPE软件,可以在SUN‘s平台直接看到结果(格林函数和理论地震图)

dbpick Syndat 
dbpick green

目前还没有找到软件。

运行5

1
eigen2asc 0 0 6 8 test_S test_S_ASC

将eigen文件转化为asc文件。

使用该方法转换的文件在test_S_ASC文件夹中,文件命名为:“S.radial order.angular order.ASC”

第一行为文件信息,示例:

1
0 (n)      20(l) S(mode type)       19 (eigenfunction id)       347.66000(frequency)        5.61667(phase velocity)          3.99901(group velocity)        241.43201(q)       67(行数nrow)    7(列数ncol)

分别为:
n, l, 振型模式, eigenfunction id, 频率(单位mhz), 相速度, 群速度, q,行数nrow, 列数ncol

其中,球型振型中的格式为:
(r, U, U_dr , V, V_dr , P, P_dr )

环型振型为:
(r, W, W_dr )

BASH 运行文件(原DEMO3内RUN_MINEOS.csh,经过了修改)

  • 增加了STEP0,生成.site和.sitechan文件。
  • 增加了STEP7,内容为将Syndat转化为SAC格式。
  • 修改了china_cmt_event为xinjiang_cmt_event。内容为另一个地震事件。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    #!/bin/csh
    #
    # Example of the synthetic seismogram's generation script.
    #
    # Usage: RUN_MINEOS.sh model_name
    #
    # Available model names for DEMO version:
    # prem_noocean prem_ocean CPacific NRussia
    #----------------------------------------------------------
    if( $#argv != 1) then
    echo " Usage: RUN_MIN.csh model_name"
    exit
    endif
    alias cp cp
    alias rm rm
    alias mv mv
    set model=$1 # setup 1-D model name
    # check model name
    set flg=0
    foreach f (CPacific NRussia prem_noocean prem_noocean_na prem_ocean prem_noocean_1ln.txt)
    if($f == $1) set flg=1
    end
    if($flg == 0) then
    echo "Model name $1 is wrong, allowed names are:"
    echo "CPacific NRussia prem_noocean prem_noocean_na prem_ocean prem_noocean_1ln.txt"
    exit
    endif
    #----------------------------------------------------------------
    # Step 0
    # make .site and .sitechan
    time simpledit stations short
    #---------------------------------------------------------------------
    # 1 run minos_bran for S mpde
    # n=0, f 0-200mhz
    echo "Step 1: minos_bran runs for S modes ....................."
    echo "============== Program minos_bran =================="
    if( -f ${model}_S) rm -f ${model}_S # 存在的话移除掉
    if( -f e${model}_S) rm -f e${model}_S
    time minos_bran << EOF
    ../models/$model.txt
    ${model}_S
    e${model}_S
    1.0e-10 1
    3
    2 8000 0.0 200.0 0 0
    EOF
    #=========================================================
    # 2. run minos_bran program for fundamental T mode,
    # where, n=0, 0 < f < 0.2 Hz,
    #
    echo "Step 2: minos_bran runs for T modes ....................."
    echo "============== Program minos_bran =================="
    if( -f ${model}_T) rm -f ${model}_T
    if( -f e${model}_T) rm -f e${model}_T
    time minos_bran << EOF
    ../models/$model.txt
    ${model}_T
    e${model}_T
    1.0e-10 1
    2
    2 8000 0.0 200.0 0 0
    EOF
    #============================================================
    # 3. Convert minos_bran results to .eigen relation (S mode)
    #
    echo "Step 3: eigen for S ....................................."
    if( -f test_S.eigen) rm -rf test_S.*
    time eigcon << EOF
    3
    ../models/$model.txt
    1000
    ${model}_S
    e${model}_S
    test_S
    EOF
    #============================================================
    # 4. Convert minos_bran results to .eigen relation (T mode)
    echo "Step 4: eigen for T ....................................."
    if( -f test_T.eigen) rm -rf test_T.*
    time eigcon << EOF
    2
    ../models/$model.txt
    1000
    ${model}_T
    e${model}_T
    test_T
    EOF
    #=========================================================
    # 5. Evaluate green functions for given sitechan relation
    echo "Step 5: green functions evaluation ........................."
    if( -f green.wfdisc) rm -rf green.*
    time green << EOF
    short
    db_list
    xinjiang_cmt_event
    10 260
    8000
    green
    EOF
    cp -p short.site green.site
    cp -p short.sitechan green.sitechan
    # create origin relation for data base green
    creat_origin xinjiang_cmt_event green
    #============================================================
    # 6. Synthetic data construction
    echo "Step 6: synthetic seismogram construction .................."
    if( -f Syndat.wfdisc) rm -rf Syndat.*
    time syndat << EOF
    xinjiang_cmt_event
    0
    green
    Syndat
    0
    EOF
    # convert Green functions to BIG_ENDIAN binary numerical storage
    # this is ANTELOPE requirement
    # $bin/wfendi 0 0 Syndat Syndat
    # copy .site, .sitechan relations into database Syndat
    cp -p short.site Syndat.site
    cp -p short.sitechan Syndat.sitechan
    creat_origin xinjiang_cmt_event Syndat
    # =====================================================
    #7.MAKE SAC TRANSFORM
    echo "Step 7: SAC transform"
    time cucss2sac Syndat Syndat_SAC
    echo "over"
    exit