第7章 GrADS 描述语言及编程(1)(1)_第1页
第7章 GrADS 描述语言及编程(1)(1)_第2页
第7章 GrADS 描述语言及编程(1)(1)_第3页
第7章 GrADS 描述语言及编程(1)(1)_第4页
第7章 GrADS 描述语言及编程(1)(1)_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第7章章 GrADS 描述描述语言及编程语言及编程 描述语言是描述语言是GrADS软件包中自带的高级语言。通过软件包中自带的高级语言。通过描述语言,如描述语言,如if/else/endif和和while/endwhile语句块,可语句块,可以进行流程控制,实现较为复杂的绘图控制功能。以进行流程控制,实现较为复杂的绘图控制功能。 编写具有复杂功能的编写具有复杂功能的gs命令集(即命令集(即“*.gs”文件),文件),由由“run”命令来编译执行。命令来编译执行。 描述语言是描述语言是GrADS软件包中自带的高级语言。通过软件包中自带的高级语言。通过描述语言,如描述语言,如if/else/end

2、if和和while/endwhile语句块,可语句块,可以进行流程控制,实现较为复杂的绘图控制功能。以进行流程控制,实现较为复杂的绘图控制功能。 编写具有复杂功能的编写具有复杂功能的gs命令集(即命令集(即“*.gs”文件),文件),由由“run”命令来编译执行。命令来编译执行。 新建一个文本文档,编写程序后将其保存为新建一个文本文档,编写程序后将其保存为draw.uv.gsga- run d:draw.uv.gsga- d:draw.uv.gs7.1 7.1 描述语言概述描述语言概述 *.gs文件中可以包括两种类型的语句:文件中可以包括两种类型的语句:l描述语句:不用引号,需要经过编译。描述

3、语句:不用引号,需要经过编译。l指令性语句:指令性语句:GrADS命令,需用引号命令,需用引号括括 起来。起来。注意:描述语言用到指令性语句中要用引号。注意:描述语言用到指令性语句中要用引号。例如:例如: i=1 赋值语句赋值语句(描述语句)描述语句) set t i(或者或者set t i 空格空格) (命令语句)命令语句)注释行:以注释行:以*号开始,不用引号括起来号开始,不用引号括起来7.2 描述语言的构成描述语言的构成 表达式:变量、常量和函数;表达式:变量、常量和函数;语句:赋值语句、选择控制语句、循环语句。语句:赋值语句、选择控制语句、循环语句。 1. 变量变量n变量名:由变量名:

4、由1至至8个字符组成,以字母开头,仅个字符组成,以字母开头,仅包含字母和数字,变量名区分大小写。包含字母和数字,变量名区分大小写。n注意:在注意:在GrADS描述语言中,有两个变量名由描述语言中,有两个变量名由其内部使用:其内部使用:result 和和 rc。不要使用。不要使用这两这两个变量名。个变量名。n变量名变量名=数值数值/字符串字符串/变量名变量名 (描述语言的变量内容都是字符串型的)描述语言的变量内容都是字符串型的) 如果一个变量没有被赋值,那么它的值就是它如果一个变量没有被赋值,那么它的值就是它的名字。的名字。n例如:例如:iyear=1948imo=janta=26tb=31 s

5、et z 1d ave(v,time=taimoiyear,time=tbimoiyear)n在有些运算中,如果一个变量或字符串常数是一在有些运算中,如果一个变量或字符串常数是一个具有正确格式的数字,则其将被解释为数字,个具有正确格式的数字,则其将被解释为数字,可以进行某些数学运算,所得结果也是一个数字可以进行某些数学运算,所得结果也是一个数字字符串。字符串。n复合描述变量:复合描述变量: 可以在描述语言程序中构造数组。复合变量名可可以在描述语言程序中构造数组。复合变量名可以是一个由以是一个由“”分隔的多个变量名的复合体。例分隔的多个变量名的复合体。例如:如: varname.i.j 如果如果

6、i和和j也是变量,那么也是变量,那么i和和j的内容将会被的内容将会被i和和j的的字符串值所替代。字符串值所替代。i = 10j = 3varname.i.j = 343在这个例子中,赋值语句相当于:在这个例子中,赋值语句相当于: varname.10.3 = 343n 在i、j变量被替代前后,复合变量名的整个长度不能超过16个字符。n在GrADS描述语言中不能设置过多的变量,因此,不能利用复合变量产生一个较大的数组,例如:i = 1while (i=10000)var.i = ii=i+1endwhilen显示1-3月的图和标题t.1=Jan;t.2=feb;t.3=mari=1while(i

7、 大于n = 大于等于n 小于n ,=,, =, , = n & n |同优先级的运算,顺序从左到右。 n字符串常数用单或双引号括起来,例如“This is a string”即是一个字符串常数。n数字常数不用引号,但认为是字符串常数。h=1while(h=5) ta=1+5*(h-1)tb=5+5*(h-1)h=h+1endwhile4.函数name(arg,arg,arg.)n函数名:遵循变量名的命名规则,参数函数名:遵循变量名的命名规则,参数arg可以是表达式。可以是表达式。 n描述语言函数总是得到一个单一的字符串描述语言函数总是得到一个单一的字符串结果,但可以有一个或多个字符串自变量。

8、结果,但可以有一个或多个字符串自变量。n它的调用格式为:它的调用格式为: name (arg, arg, arg, )n如果函数没有参数,仍必须写出一对空括如果函数没有参数,仍必须写出一对空括号,例如:号,例如:name()。()。n通过函数子程序的定义语句在你的描述语通过函数子程序的定义语句在你的描述语言程序中构造自己的函数:言程序中构造自己的函数: function name(variable, variable, .)n要回到调用处,使用要回到调用处,使用return语句:语句: return(expression)n函数的结果用函数的结果用 return 命令的命令的 expressi

9、on 表表达式给出的结果。达式给出的结果。GrADS一些常用的自带脚本:一些常用的自带脚本:run *.gs 参数参数n当一个函数被调用时,首先计算实参(函数被调当一个函数被调用时,首先计算实参(函数被调用时的参数)的数值,然后执行函数子程序,将用时的参数)的数值,然后执行函数子程序,将实参的数值传输给函数定义中形参变量(函数被实参的数值传输给函数定义中形参变量(函数被定义时的参数)作为其初始值。定义时的参数)作为其初始值。n如果实参个数少于形参,则其余的形参初始没有如果实参个数少于形参,则其余的形参初始没有值;如果实参个数多于形参,则多余的实参被舍值;如果实参个数多于形参,则多余的实参被舍弃

10、。弃。n函数中的变量一般是局部变量,其值不带出函数,函数中的变量一般是局部变量,其值不带出函数,只有用全局变量(下划线只有用全局变量(下划线“_”_”打头的变量)可将打头的变量)可将其值带出函数之外供全局使用。其值带出函数之外供全局使用。_global = 15. 语句语句n赋值语句赋值语句 赋值语句的格式为:赋值语句的格式为: 变量名变量名=表达式表达式表达式进行运算后,将结果赋予所指定的变量。表达式进行运算后,将结果赋予所指定的变量。 h=2 ta=1+5*(h-1)人机对话语句n“say”语句的格式为:语句的格式为: say 表达式表达式 表示将表达式的结果写到终端屏幕上。表示将表达式的

11、结果写到终端屏幕上。n“pull”语句的格式为: pull 变量名变量名 当程序运行到pull语句时,执行暂停等待用户从键盘输入字符串(直到回车为止),输入的内容将赋值给所指定的变量。 pull dummy 等待打回车,回车后进行其后命令等待打回车,回车后进行其后命令nif语句 IF (表达式) 描述语言语句 描述语言语句 else (可不用) 描述语言语句 描述语言语句 endif (必须使用) 注意:注意:下列语句是下列语句是错误的:错误的: if (i=10) j=20必须写三个语句:必须写三个语句: if (i=10) j = 20 endif 也可以在同一行上写这三个语句:也可以在同

12、一行上写这三个语句: if(i=10);j=20;endif;nwhile语句 while (表达式) 描述语言语句 描述语言语句 endwhile 当表达式结果为真,即:是一个不为当表达式结果为真,即:是一个不为0的字符,循环就继续执行。的字符,循环就继续执行。 lon1=0lon2=357.5lat1=-90lat2=90iyear=1948while(iyear=2002)say iyearpull dummym=1while(m=12)if(m=1)imo=janh=1while(h=5) ta=1+5*(h-1)tb=5+5*(h-1)z=1set z zset lat lat1 l

13、at2set lon lon1 lon2d ave(v,time=taimoiyear,time=tbimoiyear)h=h+1endwhileendifm=m+1endwhileiyear=iyear+1endwhilen另外两个描述语言命令可以改变循环的执行: break可立即终止循环,跳出循环体; continue立即回到循环体的开头,并重新计算表达式的结果。n例如: t = 1while (t10)set t tdisplay zif (rc=0); break; endif;t = t + 1endwhile变量变量“rc”被赋予被赋予 GrADS 命令执行的返回码(总是一个整型数

14、值)命令执行的返回码(总是一个整型数值)open e:grads1.ctlset lat 0 90set lon -180 0set lev 500enable print e:htry.gmfi=1while(i=5)set t id zprintci=i+1endwhiledisable print6.内部函数内部函数nsubstr (string, start, length) 功能:在字符串功能:在字符串string中从位置中从位置start开开始始 截取长度为截取长度为length的子字符串。如的子字符串。如果果 字符串字符串string太短,结果字符串就太短,结果字符串就短短 于于

15、length或得到一个空字符串。或得到一个空字符串。注意:这里,注意:这里,start 和和length必须是整的必须是整的字字 符数目。符数目。 例如:x=substr(how are you,4,7)draw string 5.0 5.0 xn结果在页面指定位置处就会显示所截取的字符串“are you”。nsubwrd (string, word) 功能:从字符串功能:从字符串string中截取第中截取第word个词(词个词(词与与 词之间由空格分隔)。词之间由空格分隔)。 如果字符串如果字符串string太短,结果是一个空字符串。太短,结果是一个空字符串。 word必须是整数。必须是整数。n例如:例如: x

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论