首页 理论教育 暂存块变量和头段变量

暂存块变量和头段变量

时间:2022-01-19 理论教育 版权反馈
【摘要】:1.暂存块变量暂存块是SAC2000设计的一个重要功能,方便用户临时存取某些信息。
暂存块变量和头段变量_地震学实习教程

3.5.2 暂存块变量和头段变量

同普通命令和内嵌函数一样,SAC宏文件可以涉及SAC头段变量和暂存块变量的赋值并将它们代入执行命令。

1.暂存块变量

暂存块(Blackboard)是SAC2000设计的一个重要功能,方便用户临时存取某些信息。它由暂存块名称及其值组成。命令SETBB和EVALUATE可以创建一个暂存块,命令GETBB可以得到所建暂存块变量的值。在变量名前冠以百分号(%),用户就可以通过其他命令置换暂存块变量的值,如下所示:

u:SETBB C1 2.45

u:SETBB C2 4.94

u:BANDPASS CORNERS%C1%C2

现在还以最初的例子为例,看看在宏中如何使用暂存块变量。假定只有第一个值是变量,而其他值可以由第一个值计算得到,如下所示:

$KEYS FILES VALUE1

$DEFAULT VALUE1 4

READ$FILES

EVALUATE TO VALUE2$VALUE1*2

EVALUATE TO VALUE3%VALUE2+1

MUL$VALUE1%VALUE2%VALUE3

FFT

BG SGF

PSP AM

接下来,如果第一个值不等于缺省值,在执行该宏时就要输入它:

u:MACRO MYSTUFF VALUE1 6 FILES ABC DEF XYZ

2.头段变量

在指定文件(用文件名或数值表示的文件号)和要赋值的变量后,SAC命令亦可直接对头段变量赋值和替换,处理时用和号(“&”)引用文件,并在文件和变量之间用逗号分开,如下所示:

u:READ ABC

u:EVALUATE TO TEMP1&ABC,A+10

u:EVALUATE TO TEMP2&1,DEPMAX*2

u:CHNHDR T5%TEMP1

u:CHNHDR USER0%TEMP2

上例中,读入一个文件并使用文件本身的头段变量计算出几个临时中间变量。第一个头段用文件名进行引用,第二个头段用文件号进行引用。然后,使用暂存块变量定义新的头段变量。

3.变量名称连接

宏参数、暂存块变量或头段变量前后可以添加另外的字符串,在前面添加只需在字符串后粘连参数或变量,而在其后添加时,必须在参数或变量之后、字符串之前加上原分隔符($、%或&)。以下几个例子清楚地说明了变量名称是如何连接的:

(1)假定宏参数STATION的值是“ABC”,则“$STATION$.Z”将其值变成“ABC.Z”。

(2)假定暂存块变量TEMP的值是“ABC”,则“XYZ%TEMP”将其值变成“XYZABC”,而“%TEMP%XYZ”则将其值变成“ABCXYZ”。

(3)假定文件Z头段变量KA的值是“IPU0”,则“(&Z,KA&)”将其值变成为“(IPU0)”。

4.转义符

有时候,命令中必须使用“$”或“%”,为了防止SAC2000把它们作为输入的宏参数或暂存块变量处理,可以通过在这类特殊符号前冠以另外的特殊符号(称为转义符)“@”实现。需要按此方法处理的特殊符号主要有:

$:宏参数扩展字符。

%:暂存块变量扩展字符。

&:头段变量扩展字符。

@:转义符本身。

(:内嵌函数开始符。

):内嵌函数终止符。

关于更多的内嵌函数分隔符参见下节。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈