在函数内如何调用全局变量_如何使用NCL调用Fortran子函数

b76e74e3f5efebcc0f32c46f32fac61c.gif

点击上方蓝字,关注我们

NCL读取netcdf文件并进行绘图十分方便,此外还可以进行循环等计算,但是NCL是解释性的语言,在循环计算等方面的效率十分低。这里介绍如何调用Fortran中的子函数进行计算来提高效率:

1. 步骤:

83a4eaa3509bae82af0a90275acb50e4.png

注:

① 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:

0d5127d59b6a5dcbafc5a6833d913118.png

b) 为F90文件写好变量声明,保存为ex01.stub:

0abb48fc8dc8a68498410b546ec41e10.png

c) 按照步骤的方式,在NCL脚本中加入Fortran函数调用申明并调用子函数:

3e4a3be5c39335a875765aa8adb5987d.png

d) 运行:

① 先产生so文件:WRAPIT ex01.stub  ex01.f90

3bb739c0df45f0887645be5630bc5881.png

② 运行ncl:ncl ex01.ncl

刚开始y是没有值的,由new函数初始化,最后输出到屏幕可以看出试验成功。

96897337947db943ee78ede725394228.png

参考:NCL官网范例

http://www.ncl.ucar.edu/Document/Manuals/

PS. 感谢小婷同学提供的材料

5fec4850574a652ada60e9410be543e9.png
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值