爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3646|回复: 1

[求助] fortran subroutine 调用另一个.f中到subroution

[复制链接]

新浪微博达人勋

发表于 2013-12-1 19:19:09 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
大家好。我在网上下载到akima插值算法到fortran源代码包
其中包括多个.f文件,每个.f文件里面都只有一个subroutine
里面有我需要到idbvip.f(里面有SUBROUTINE IDBVIP)其他.f是这个函数要调用到SUBROUTINE

我到目的实在java代码中调用到idbvip。我通过jni(问题1:是不是只能用这个方法,有没有其他方法是不依赖系统的或者更高效到?)来调用。
首先我写了个test.c程序,然后编译成test.o
然后我再一次编译了需要用到.f文件,所以我得到了多个.o文件
接着我在gfortran链接这两个文件。
gfortran idbvip.o test.o -o test111
输入如下:
idbvip.o: In function `idbvip_':
idbvip.f:(.text+0x3bf): undefined reference to `idtang_'
idbvip.f:(.text+0x436): undefined reference to `idcldp_'
idbvip.f:(.text+0x560): undefined reference to `idlctn_'
idbvip.f:(.text+0x5ce): undefined reference to `idpdrv_'
idbvip.f:(.text+0x6f6): undefined reference to `idptli_'
idbvip.f:(.text+0x7f5): undefined reference to `idptip_'
collect2: ld returned 1 exit status

我知道idbvip函数没有成功调用其他subroutine,但因为我对fortran实在不了解,(问题2:)能不能告诉我我缺少那些步骤,idbvip本身也是个subroutine。


(问题3:::::::)我导师是要我去找个idbvip算法到java实现代码,但我找遍了google都找不到。(有的虽然也叫akima,但是算法内容不一样)请问有谁了解这个代码吗。因为找不到,我在思考是自己写一个更快,还是调用fortran更快呢。因为那个项目是通过读取gfs到grib文件,对里面到点进行插值,数据挺大,直接用java运算会不会比较慢呢..

谢谢大家家家家!!!!!!!!!!!!!!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-12-2 09:07:10 | 显示全部楼层
把你的需要加入的源程序,用
include '*****.f'
的格式加入主程序中,每行一个
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表