✍️ 朱邓达  •  🗓️ 2026-05-20 (创建时间)

modsum

简介:

基于面波频散结果,使用模态叠加法计算面波格林函数

语法

grt modsum -Cpath -Ddepsrc/deprcv -Rr1/r2/dr|r1,r2,…|file -Ooutdir [ -Ff1/f2 ] [ -N[n1][/n2][/dn] ] [ -Wfac ] [ -E[p]t0[/v0] ] [ -Pnthreads ] [ -Ge|v|h|s ] [ -e ] [ -s ] [ -h ]

描述

基于 eigenv 模块计算的相速度频散结果, 以及其结果文件中保存的模型路径, modsum 模块使用模态叠加法计算不同震源的面波格林函数, 结果的保存方式与 greenfn 模块所实现的完全相同。 modsum 模块要求 eigenv 计算频散时 -F 必须设置等距的频率而非周期 (即 eigenv -F 中不可使用 +p)。

必选选项

-Cpath

eigenv 模块计算的相速度频散结果保存文件路径。

-Ddepsrc/deprcv

震源深度 depsrc (km) 和台站深度 deprcv (km)。 如果是在使用波数积分法求解格林函数,则当二者深度差小于 1 km 时,自动使用快速收敛算法。

-Rr1/r2/dr|r1,r2,…|file

多个震中距 (km)。有三种设置方式:

  • -Rr1/r2/dr - 在 [r1, r2] 范围内设置间隔为 dr 的一系列等距点。

  • -Rr1,r2,… - 逗号分隔的多个震中距

  • -Rfile - 仅含一列震中距数值的文件 file

-Ooutdir

输出目录名,不存在会自动新建。若存在同名保存路径则直接覆盖已有结果。

可选选项

-Ff1/f2

从频散结果中挑选频段 [f1,f2] 进行处理(默认全部)。

-N[n1][/n2][/dn]

从频散结果中挑选特定阶数进行处理(默认仅基阶),0 对应基阶,有以下几种用法:

  • -N - 所有阶

  • -Nn1 - 仅阶数 n1

  • -Nn1/n2 - 选择阶数范围 [n1, n2]

  • -Nn1/n2/dn - 从阶数 n1n2 ,间距 dn 的一系列等距阶数

-Wfac

频率域插值倍数[1]。即在做逆傅里叶变换时,在频域上最高频后补零, 相当于 ntnt * fac , dtdt / fac ,使计算的波形更平滑。 该选项与 greenfn -N+nfac 的含义一致。

-E[p]t0[/v0]

增加时延以调整波形起始时刻。输出的波形默认起始时刻为 0 时刻,即发震时刻。 对于大震中距的记录,P 波初至走时较大,此时可以适当调整波形起始时刻, 使 -N 定义的时窗长度能框住整段波形, 而不必使用 -N 定义从发震时刻开始的超宽时窗,增加不必要的计算量。支持以下用法:

  • -Et0 - 起始时刻调整为 \(t_0\) (secs) , e.g. -E20

  • -Et0/v0 - 每个震中距 \(r\) 的记录起始时刻不同, 调整为 \(t_0 + \frac{r}{v_0}\)v0 为参考速度 (km/s) , e.g. -E-10/9

  • -Ept0 - 每个震中距 \(r\) 的记录起始时刻不同, 调整为 \(t_0 + t_p\) ,其中 \(t_p\) 为每个震中距的初至 P 到时, e.g. -Ep-20

-Pnthreads

多线程数,默认使用全部线程。

-Ge|v|h|s

控制输出的震源类型 [evhs],不会减少计算量。

  • e - 爆炸源

  • v - 垂直力源

  • h - 水平力源

  • s - 剪切源

-e

在计算格林函数的同时,也计算其空间导数 \(\dfrac{\partial (u_z, u_r, u_\theta)}{\partial (z, r)}\) 。 偏导对应在文件名/变量名开头添加了 zr 。 关于 \(\theta\) 的偏导与方向因子有关,这将由 synstatic_syn 模块计算。

不同震源的格林函数空间导数单位为:

  • 爆炸源: \(10^{-25} \, /\text{dyne} \cdot \text{cm}\)

  • 单力源: \(10^{-20} \, /\text{dyne}\)

  • 剪切源: \(10^{-25} \, /\text{dyne} \cdot \text{cm}\)

-s

静默输出,不在终端打印参数和进度条。

-h

打印帮助文档。

示例