资源描述:
《《cl操作手册》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、NCARCommandLanguage(NCL)一、简介1.1正确安装NCL,windows下的安装可以参考如下地址。http://bbs.lasg.ac.cn/bbs/thread-37043-1-1.html1.2运行方式ncl文件名.nclNCL的函数可以通过以下方式连接load“myfoo.ncl”二、语法2.1符号;后面用以添加注释@创建或引用“属性”!创建或引用“命名的维”&创建或引用“坐标变量”{…}表示坐标的下标$用与封装字符串,当需要输入输出通过“addfile”引用文件的变量时。(/…/)
2、构造数组:用于选择截取的数组的范围
3、用作“命名的维(nameddimensions)”的分隔符。放在句尾,说明下一行和本行是同一个语句。::用做调用外部代码时的分隔符。->用于向外部文件输入输出数据时指定外部文件中的变量。2.2数据类型数值型:double(64位)、float(32位)、long(32或64位),integer(32位),short(16位)、byte(8位)。非数值型:string、character、graphic、file、logical、list。2.3运算符代数运算符+加-减*乘^
4、指数%取余#矩阵相乘>,<大于,小于逻辑运算符.lt.小于.le.小于等于.gt.大于.ne.不等于.eq.等于.and.并且.or.或者.xor.异或.not.非2.4循环don=start,end,optional_stride语句。。。enddo或者dowhile(逻辑表达式)语句。。。enddoBreak:跳出循环Continue:直接进入下次循环2.5声明语句在代码的开始和结尾要添加“begin”和“end”。If语句If(逻辑表达式)then语句endif另:If(逻辑表达式)then语句else语
5、句endif2.6坐标变量变量除了有指定值,还可以有附属的信息叫元数据,有三种元数据,分别为coordinatevariables(坐标变量)、nameddimensions、attributes(属性)。坐标必须是单调递增的或递减的一维数组。坐标变量的名称必须和对应维的名称相同。&运算符用来引用和分配坐标变量。例:T!0="lat"T!1="lon"T&lat=(/-90.,-85.,...,85.,90./)T&lon=fspan(0.,355.,72)“iscoord”可以检测一个给定的string是否是
6、这个变量的坐标变量。2.7维数和下标在NCL中数组的下标有两种:”标准下标”和”坐标下标”。下标值的范围为”0”到”n-1”。“标准下标”有以下的格式开始值:结束值:步进值(可选项)若不写开始值默认为”0”,若不写结束值默认为”n-1”,步进值默认为1。例如:T(:1,45,10,20);T为三维数组(time,lat,lon),则T(:1,45,10,20)代表开始的两个时间坐标,第46个lat,和11-21个lon坐标,为一个(2X1X11)维数组。“坐标下标”例子:pressure!0="lat"pre
7、ssure!1="lon"lat_points=(/-80,-60,-40,-20,0,20,40,60,80/)lon_points=(/-180,-120,-60,0,60,120,180/)pressure&lat=lat_pointspressure&lon=lon_points调用:Pressure({-40:40}:{-180:120})选择的是lat为(-40到40),lon为(-180到120)的坐标对应的pressure值组成的数组。{}表明你用的是”坐标下标”。2.8nameddime
8、nsions可以为数组的各个维赋予名字,格式如下pressure!0="time"pressure!1="latitude"pressure!2="longitude"分别为pressure的1,2,3维起名字"time","latitude","longitude".“isdim”可以检测给定的一个string是否是这个变量的一个维的名字。命名的维只有在对维进行重排序时会用到:reordered_pressure=pressure(longitude
9、:,latitude
10、:,time
11、:)上面将”tim
12、e”和”longitude”的位置进行了交换。“isdim”可以检测给定的一个string是否是这个变量的一个维的名字。2.9属性Attributes:变量的”属性”就是变量的信息。变量的属性用”@“符号创建和调用。属性只能为已存在的变量创建。例:x@min=-50x@max=50.0d;d表示double型数值x@units="meters"x@long_time="Avariabl