如何在NCL(The NCAR Command Language )启动时自动加载自定义的函数和程序

首先任意建立一个目录存放自定义的程序,例如:

$ mkdir ~/MyNCL
然后建立一个环境变量:

export NCL_DEF_SCRIPTS_DIR="~/MyNCL"

然后在MyNCL文件夹里面放入你的ncl文件,文件名不重要,放在该文件夹里面的所有文件都会在程序运行前自动加载。

例如该功能可以用于:

a.简化load

        每次调试代码都要load一大堆代码,可以如果能自动load该有多好!

b.简化输入

        在调试ncl代码时,可以使用print和printVarSummary等,但是print给出的信息太多,而printVarSummary有时对文件变量给出的信息又太少,且输入printVarSummary太繁琐。

这时可以创建一个简化的子程序pvs,方便脚本调试。内容如下:

undef("pvs")
procedure pvs(x)
local i,varnames
begin
	printVarSummary(x)

	if (isfile(x))then
		varnames = getfilevarnames(x)
		if(.not.any(ismissing(varnames))) then
			do i=0,dimsizes(varnames)-1
				printFileVarSummary (x,varnames(i))
			end do
		end if
	end if

end


测试文件变量的信息,也只要简单地输入pvs(f)即可:

ncl 7> f=addfile("Jsst.nc","r")
ncl 8> pvs(f)

Variable: x (parameter)
Type: file
File path:      Jsst.nc
Number of global attributes:     7
Number of dimensions:    1
Number of variables:     3


Variable: time
Type: integer
Total Size: 2208 bytes
            552 values
Number of Dimensions: 1
Dimensions and sizes:   [time | 552]
Coordinates:
            time: [0..551]
Number of Attributes: 3
  long_name :   Months since January 1950
  short_name :  Mo
  units :       Month


Variable: SST
Type: float
Total Size: 2208 bytes
            552 values
Number of Dimensions: 1
Dimensions and sizes:   [time | 552]
Coordinates:
            time: [0..551]
Number of Attributes: 4
  units :       C
  short_name :  sst
  long_name :   SST Anomalies for Nino-3
  _FillValue :  -999

ncl 9>

The NCAR Command Language (NCL),功能确实比grads强多了.当在输入方面没有grads简洁明了,如果在调试的时候,使用pvs就可以避免繁琐的输入。

你可能感兴趣的:(NCL)