爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 9202|回复: 10

ncl调用Fortran程序,生成.so文件出错

[复制链接]

新浪微博达人勋

发表于 2014-12-21 12:50:52 | 显示全部楼层 |阅读模式

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

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

x
本人想用ncl调用fortran 程序,进展到生成.so文件时出错,错误信息为:A syntax error occurred while parsing:。根据官网说明,进行了dos2unix wind.f90操作后,依然不能生成.so文件,错误信息还是如上所述。望各位大神指点:
Fortran子程序如下:
   subroutine wind(xx,yy,u,v,ss)
   implicit none
   integer,intent(in)::  xx,yy
   real, intent(in) ::  u(xx,yy),v(xx,yy)  
   real, intent(out) ::  ss(xx,yy)
     do i=1,xx
     do j=1,yy
         ss(i,j)=sqrt(u(i,j)**2+v(i,j)**2)
     end do
     end do
   return
   end

wind.stub"的文本:
C NCLFORTSTART
   subroutine wind(xx,yy,u,v,ss)
   integer xx,yy

   dimension u(xx,yy),v(xx,yy),ss(xx,yy)
C NCLEND


生成.so时,错误信息如下:
$ WRAPIT wind.stub wind.f90

WRAPIT Version: 120209
A syntax error occurred while parsing:
COMPILING wind.f90
LINKING
END WRAPIT
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-12-21 13:12:36 | 显示全部楼层
我就加了一句:

integer::i, j

可以生成so,没有遇到你提到的错误。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-12-21 13:24:55 | 显示全部楼层
longlivehj 发表于 2014-12-21 13:12
我就加了一句:

integer::i, j

多谢你回复,我在Fortran程序和stub文件中加入integer ::i,j后,依然提示
$ WRAPIT wind.stub wind.f90
WRAPIT Version: 120209
A syntax error occurred while parsing:
COMPILING wind.f90
LINKING
大神,麻烦你指点一下。
END WRAPIT
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-12-21 13:45:54 | 显示全部楼层
tiantianyixin 发表于 2014-12-21 13:24
多谢你回复,我在Fortran程序和stub文件中加入integer ::i,j后,依然提示
$ WRAPIT wind.stub wind.f90
...

wind.stub有没有用dos2unix处理?如果没有,处理后再试一下。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-12-21 13:53:39 | 显示全部楼层
longlivehj 发表于 2014-12-21 13:45
wind.stub有没有用dos2unix处理?如果没有,处理后再试一下。

嗯,确实是这个问题,谢谢大神
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-12-21 16:02:06 | 显示全部楼层
longlivehj 发表于 2014-12-21 13:45
wind.stub有没有用dos2unix处理?如果没有,处理后再试一下。

好厉害
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2015-12-10 10:51:52 | 显示全部楼层

我也遇到了这样的问题,用dos2unix处理了也还是报错,错误和楼主之前的一样,不知道怎么解决啊,求高手指点啊
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-5-20 16:59:35 | 显示全部楼层
后来解决了吗
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-5-20 17:45:31 | 显示全部楼层

解决了,根据大神的回复成功解决
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2019-2-13 15:54:36 | 显示全部楼层
我也是stub文件和f90文件都执行了dos2unix,但依旧报错:
我用的是官网的例子
cquad.f90文件:
subroutine cquad(a,b,c,nq,x,quad)
implicit none
integer    ::nq
real       ::a,b,c,x(nq),quad(nq)
integer    ::i
quad = a*x**2+b*x+c
return
end subroutine cquad

cquad.stub文件:
C NCLFORTSTART
   subroutine cquad(a,b,c,nq,x,quad)
   real a,b,c
   integer nq
   dimension x(nq),quad(nq)
C NCLEND
报错如下:
$ WRAPIT cquad.stub cquad.f90

WRAPIT Version: 120209
In file included from /nuist/p/public/app/ncl/6.3.0/intel/18.0.0/include/ncarg/hlu/hlu.h:28:0,
                 from WRAPIT.c:9:
/nuist/p/public/app/intel/compilers_and_libraries_2018.0.128/linux/compiler/include/limits.h:36:54: error: missing binary operator before token "("
     defined(__has_include_next) && __has_include_next(<limits.h>)
                                                      ^
COMPILING cquad.f90
LINKING
gcc: error: WRAPIT.o: No such file or directory
rm: cannot remove ‘WRAPIT.o’: No such file or directory
END WRAPIT
请问怎么解决???
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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