回 帖 发 新 帖 刷新版面

主题:求助fortran语法错误。。帮我看下这几句代码

小弟准备写c#调用fortran的程序,结果fortran中出现错误。

SUBROUTINE InvA(A,n)
[color=008000]IMPLICIT NONE !强制类型声明
!DEC$ ATTRIBUTES DLLEXPORT::InvA !例程导出声明
!DEC$ ATTRIBUTES ALIAS:'InvA'::InvA !给例程规定别名
!DEC$ ATTRIBUTES REFERENCE::A!引用传递
!DEC$ ATTRIBUTES REFERENCE::n!引用传递[/color]
INTEGER(4):: n,k,i,j,t
[color=FF00FF]t=int(n*(n+1)/2)[/color]---这儿是不是有错啊?
REAL(8)::A(t),A0(n),a00,ai0
DO  k=1,n
a00=A(1)
……

[color=FF0000][size=4]error #6236: A specification statement cannot appear in the executable section. [/size][/color]   

回复列表 (共11个回复)

沙发

声明放在执行语句之前

板凳

错误提示的清清楚楚
A specification statement cannot appear in the executable section.
说明语句不可出现于可执行的部分。 

3 楼

[quote]声明放在执行语句之前[/quote]
顺序缓过来就行了啊?

4 楼


INTEGER(4):: n,k,i,j,t
REAL(8)::A(t),A0(n),a00,ai0
t=int(n*(n+1)/2)

这样可以吗?

5 楼


INTEGER(4):: n,k,i,j,t
REAL(8)::A(t),A0(n),a00,ai0
t=int(n*(n+1)/2)

这样可以吗?
急求帮助啊

6 楼


试一下啊,有问题再找原因。

7 楼


我的这个t是用来定义数组A 的大小的。。。咋办呢

8 楼

已经解决  将t的表达式直接写到数组声明的语句中就可以了  呵呵
谢谢楼上两位高手

9 楼


◥█▄▃▁ 
...◥█☆█▅▄▃▁▁▁▁▁▁▁▃▄▅00▅▄▁ 
〓▇█████热烈祝贺祖国61华诞!████████████▅▄▃▁▁ 
〓〓〓█████████████◤ 
OO═══∩═══OO

10 楼

t如果事先不知道的话你可以申请动态数组。待t求出后再分配数组的大小。

我来回复

您尚未登录,请登录后再回复。点此登录或注册