主题:求助fortran语法错误。。帮我看下这几句代码
diy2005
[专家分:0] 发布于 2010-09-30 12:24:00
小弟准备写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]
最后更新于:2010-09-30 12:28:00
回复列表 (共11个回复)
沙发
dongyuanxun [专家分:7180] 发布于 2010-09-30 12:35:00
声明放在执行语句之前
板凳
jstzhurj [专家分:4680] 发布于 2010-09-30 12:44:00
错误提示的清清楚楚
A specification statement cannot appear in the executable section.
说明语句不可出现于可执行的部分。
3 楼
diy2005 [专家分:0] 发布于 2010-09-30 13:58:00
[quote]声明放在执行语句之前[/quote]
顺序缓过来就行了啊?
4 楼
diy2005 [专家分:0] 发布于 2010-09-30 14:00:00
INTEGER(4):: n,k,i,j,t
REAL(8)::A(t),A0(n),a00,ai0
t=int(n*(n+1)/2)
这样可以吗?
5 楼
diy2005 [专家分:0] 发布于 2010-09-30 14:02:00
INTEGER(4):: n,k,i,j,t
REAL(8)::A(t),A0(n),a00,ai0
t=int(n*(n+1)/2)
这样可以吗?
急求帮助啊
6 楼
jstzhurj [专家分:4680] 发布于 2010-09-30 14:06:00
试一下啊,有问题再找原因。
7 楼
diy2005 [专家分:0] 发布于 2010-09-30 14:06:00
我的这个t是用来定义数组A 的大小的。。。咋办呢
8 楼
diy2005 [专家分:0] 发布于 2010-09-30 14:10:00
已经解决 将t的表达式直接写到数组声明的语句中就可以了 呵呵
谢谢楼上两位高手
9 楼
jstzhurj [专家分:4680] 发布于 2010-09-30 14:35:00
◥█▄▃▁
...◥█☆█▅▄▃▁▁▁▁▁▁▁▃▄▅00▅▄▁
〓▇█████热烈祝贺祖国61华诞!████████████▅▄▃▁▁
〓〓〓█████████████◤
OO═══∩═══OO
10 楼
bravox [专家分:0] 发布于 2010-10-17 11:57:00
t如果事先不知道的话你可以申请动态数组。待t求出后再分配数组的大小。
我来回复