楼主: 416171205
3802 4

[问答] 请问谁能帮忙解决一下R如何调用Fortran程序的问题吗? [推广有奖]

  • 0关注
  • 1粉丝

已卖:1052份资源

硕士生

88%

还不是VIP/贵宾

-

威望
0
论坛币
814 个
通用积分
1.0081
学术水平
7 点
热心指数
9 点
信用等级
4 点
经验
2203 点
帖子
74
精华
0
在线时间
306 小时
注册时间
2008-11-4
最后登录
2023-2-25

楼主
416171205 发表于 2013-1-27 05:16:21 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我写了一段Fortran 90程序,在GUN Fortran中运行了一下没有问题,但是R中无法加载。。。
code_debug.zip (203.99 KB)

问题已经自己解决了,谢谢关注!
在网上找了很多资料,我是这样做的。
首先,用记事本将下面的subrountine程序保存成alg1.f90文件
subroutine alg1(IC_result,k,p,a,w)
  implicit none
  integer,intent(in)::k
  integer I,J,m1,m2,n,q,IC1,IC2,IC3,IC,z,sum1,sum2,col
  integer,intent(out)::IC_result(:,:)
  integer,intent(in)::p(:,:)
  allocatable IC_result
  integer,intent(in)::a(2**k,k)
  integer temp(2**k,k)
  real,intent(in)::w(2**k,k)
  allocate(IC_result(ubound(p,1),1))
  ...
endsubroutine alg1

然后,在Win7 开始 命令行中运行R CMD SHLIB alg1.f90,
有警告如下:
cygwin warning: MS-DOS style path deteched:...
      Preferred POSIX equivalent is:...
但好像都是有关路径的问题,文件夹中已经生成了alg1.dll文件。


之后测试是否能够加载:
setwd("D:\\code_debug")
dyn.load("alg1.dll")

> is.loaded("alg1.dll")
[1] FALSE
加载失败了。。。

但是当我用R调用的时候就会死掉。。
setwd("D:\\code_debug")
dyn.load("alg1.dll")
P<-read.table("P.dat")
W<-read.table("W.txt")
A<-read.table("A.dat")
res<-matrix(0,48,1)
ret <- .Fortran("alg1", IC_result=as.matrix(res),k=3,p=as.matrix(P),a=as.matrix(A),w=as.matrix(W))

到这里R就死了。。。




二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Fortran Fort RAN For equivalent 程序 如何

沙发
416171205 发表于 2013-1-27 11:50:41
我后来用Intel Fortran 测试了一段简单的程序发现R尽管显示没有载入,但是好像依然可以调用,但是我的程序还是无法载入,谁能帮忙看一下为啥吗??谢谢了

藤椅
zggjtsgzcdz 发表于 2013-1-28 18:51:04
谷歌搜索之--
关于R调用Fortran生成dll函数的幽默

板凳
coral90 发表于 2014-1-12 11:36:15
这是个pdf文档吗?找不到啊

报纸
linzhuying 发表于 2014-9-12 10:42:38
楼主知道怎么看R中.Fortran的具体程序吗

地板
xiaoswjp 发表于 2015-1-9 13:00:36
终于看到有人用fortran了,哈哈;R么用过,应该和C或C++ 或MATLAB等调用方法一样吧,做成动态库或静态库就行了(动态库有会生成两个文件.lib(类似头文件,和静态库的.lib不一样) 和.dll),设置好编译器的选项就能掉了(注意:fortran的加接口,函数都是大写来说)
以上是基于windows平台,linux应该类似

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-9 06:22