✍️ 朱邓达  •  🗓️ 2025-04-17 (创建时间)

计算静态格林函数

本页文档示例下载

static_gfunc.tar.gz | 解压后进入示例目录,运行 bash run.sh 即可复现本页示例。

Python 中计算静态格林函数的主函数为 static_greenfn(), 命令行中使用 static_greenfn 模块。

建议先阅读完 计算动态格林函数 部分。静态情况与动态情况采取的计算方法一致,只是推导细节会有不同,详见 姚振兴和谢小碧 (2026) 。

不论是动态解还是静态解,在模型、源点深度和场点深度确定的情况下,格林函数仅与震中距相关。 实际建立静态格林函数库时,通常直接指定一维震中距序列;Python 接口中对应 dists,grt 模块中对应 -R。这是静态格林函数建库的常用方式。

示例程序

假设在 milrow 模型中,震源深度2km,接收点位于地表。

grt static greenfn -Mmilrow -D2/0 -R0/10/0.1 -Ostgrn.nc

结果输出为 NetCDF 文件。如下使用 ncdump -h 命令可查看文件的 基本信息。输出文件仍保留 north 和 east 两个水平维度,这是为了兼容。

netcdf stgrn {
dimensions:
	depsrc = 1 ;
	deprcv = 1 ;
	north = 1 ;
	east = 101 ;
	layer = 9 ;
	model_param = 6 ;
variables:
	double model(layer, model_param) ;
	double depsrc(depsrc) ;
	double deprcv(deprcv) ;
	double north(north) ;
	double east(east) ;
	double src_va(depsrc) ;
	double src_vb(depsrc) ;
	double src_rho(depsrc) ;
	double rcv_va(deprcv) ;
	double rcv_vb(deprcv) ;
	double rcv_rho(deprcv) ;
	double EXZ(depsrc, deprcv, north, east) ;
	double EXR(depsrc, deprcv, north, east) ;
	double VFZ(depsrc, deprcv, north, east) ;
	double VFR(depsrc, deprcv, north, east) ;
	double HFZ(depsrc, deprcv, north, east) ;
	double HFR(depsrc, deprcv, north, east) ;
	double HFT(depsrc, deprcv, north, east) ;
	double DDZ(depsrc, deprcv, north, east) ;
	double DDR(depsrc, deprcv, north, east) ;
	double DSZ(depsrc, deprcv, north, east) ;
	double DSR(depsrc, deprcv, north, east) ;
	double DST(depsrc, deprcv, north, east) ;
	double SSZ(depsrc, deprcv, north, east) ;
	double SSR(depsrc, deprcv, north, east) ;
	double SST(depsrc, deprcv, north, east) ;

// global attributes:
		:calc_upar = 0 ;
}