点击上方蓝字,关注我们
NCL读取netcdf文件并进行绘图十分方便,此外还可以进行循环等计算,但是NCL是解释性的语言,在循环计算等方面的效率十分低。这里介绍如何调用Fortran中的子函数进行计算来提高效率:
1. 步骤:
注:
① stub声明变量的格式
② so文件可以理解为让NCL可以读懂的媒介
C NCLFORTSTART
subroutine f1 (x, y, z)integer
real
C NCLEND
或者:
C NCLFORTSTARTfunction f2 (x, y, z)integer
real
C NCLEND
③ abc是调用函数的“引子”,告诉NCL我们要调用Fortran啦
2. 示范:
a) 提前准备好要调用的子函数,用Fortran写好,保存为ex01.F90:
b) 为F90文件写好变量声明,保存为ex01.stub:
c) 按照步骤的方式,在NCL脚本中加入Fortran函数调用申明并调用子函数:
d) 运行:
① 先产生so文件:WRAPIT ex01.stub ex01.f90
② 运行ncl:ncl ex01.ncl
刚开始y是没有值的,由new函数初始化,最后输出到屏幕可以看出试验成功。
参考:NCL官网范例
http://www.ncl.ucar.edu/Document/Manuals/
PS. 感谢小婷同学提供的材料