回 帖 发 新 帖 刷新版面

主题:跪求大虾~一个子程序调试出错!

子程序如下:
SUBROUTINE F(T,Y,M,D)
DIMENSION Y(M),D(M)
DOUBLE PRECISION Y,D,T
3394*D(1)=2.17*(Y(3)-Y(1))**1.31+33.3*(Y(2)-Y(1))+(4.6-Y(1))
1316881*D(2)=4.25*(4.6-Y(2))+33.3*(Y(1)-Y(2))+(4.21*10**(-8))*((Y(3)+273)**4-(Y(2)+273)**4)
21250*D(3)=(4.21*10**(-8))((Y(2)+273)**4-(Y(3)+273)**4)+2.17*(Y(1)-Y(3))**1.31+10*(Y(4)-Y(3))
37800*D(4)=10*(Y(3)-Y(4))+46.5*(Y(5)-Y(4))
126960*D(5)=46.5*(Y(4)-Y(5))+25.17*(34.5-Y(5))

RETURN
END
错误如下:
--------------------Configuration: BISHE - Win32 Debug--------------------
Compiling Fortran...
D:\BIYESHEJI\BISHE\ZICHENGXU02.F90
D:\BIYESHEJI\BISHE\ZICHENGXU02.F90(5) : Warning: Illegal statement label field
1316881*D(2)=4.25*(4.6-Y(2))+33.3*(Y(1)-Y(2))+(4.21*10**(-8))*((Y(3)+273)**4-(Y(2)+273)**4)
-------^
D:\BIYESHEJI\BISHE\ZICHENGXU02.F90(4) : Error: Syntax error, found '*' when expecting one of: BLOCK BLOCKDATA PROGRAM TYPE COMPLEX BYTE CHARACTER DOUBLE DOUBLECOMPLEX ...
3394*D(1)=2.17*(Y(3)-Y(1))**1.31+33.3*(Y(2)-Y(1))+(4.6-Y(1))
----^
D:\BIYESHEJI\BISHE\ZICHENGXU02.F90(5) : Error: Syntax error, found '*' when expecting one of: BLOCK BLOCKDATA PROGRAM TYPE COMPLEX BYTE CHARACTER DOUBLE DOUBLECOMPLEX ...
1316881*D(2)=4.25*(4.6-Y(2))+33.3*(Y(1)-Y(2))+(4.21*10**(-8))*((Y(3)+273)**4-(Y(2)+273)**4)
-------^
D:\BIYESHEJI\BISHE\ZICHENGXU02.F90(6) : Error: Syntax error, found '*' when expecting one of: BLOCK BLOCKDATA PROGRAM TYPE COMPLEX BYTE CHARACTER DOUBLE DOUBLECOMPLEX ...
21250*D(3)=(4.21*10**(-8))((Y(2)+273)**4-(Y(3)+273)**4)+2.17*(Y(1)-Y(3))**1.31+10*(Y(4)-Y(3))
-----^
D:\BIYESHEJI\BISHE\ZICHENGXU02.F90(6) : Error: Syntax error, found '(' when expecting one of: * :: , <END-OF-STATEMENT> ; : ) + . - (/ [ ] /) ** / > // .LT. < ...
21250*D(3)=(4.21*10**(-8))((Y(2)+273)**4-(Y(3)+273)**4)+2.17*(Y(1)-Y(3))**1.31+10*(Y(4)-Y(3))
--------------------------^
D:\BIYESHEJI\BISHE\ZICHENGXU02.F90(8) : Warning: Illegal statement label field
126960*D(5)=46.5*(Y(4)-Y(5))+25.17*(34.5-Y(5))
------^
D:\BIYESHEJI\BISHE\ZICHENGXU02.F90(7) : Error: Syntax error, found '*' when expecting one of: BLOCK BLOCKDATA PROGRAM TYPE COMPLEX BYTE CHARACTER DOUBLE DOUBLECOMPLEX ...
37800*D(4)=10*(Y(3)-Y(4))+46.5*(Y(5)-Y(4))
-----^
D:\BIYESHEJI\BISHE\ZICHENGXU02.F90(8) : Error: Syntax error, found '*' when expecting one of: BLOCK BLOCKDATA PROGRAM TYPE COMPLEX BYTE CHARACTER DOUBLE DOUBLECOMPLEX ...
126960*D(5)=46.5*(Y(4)-Y(5))+25.17*(34.5-Y(5))
------^
D:\BIYESHEJI\BISHE\ZICHENGXU02.F90(5) : Error: This label has too many digits; a label has a maximum of a 4 digit integer.   [1316881]
1316881*D(2)=4.25*(4.6-Y(2))+33.3*(Y(1)-Y(2))+(4.21*10**(-8))*((Y(3)+273)**4-(Y(2)+273)**4)
^
D:\BIYESHEJI\BISHE\ZICHENGXU02.F90(8) : Error: This label has too many digits; a label has a maximum of a 4 digit integer.   [126960]
126960*D(5)=46.5*(Y(4)-Y(5))+25.17*(34.5-Y(5))
^
Error executing df.exe.

ZICHENGXU02.OBJ - 8 error(s), 2 warning(s)

跪求大虾 帮忙解决~~因本人是新手,另这是毕业论文,很急的 谢谢各位大虾啦~~

回复列表 (共5个回复)

沙发

调试?不,您这只是 编译错误。
把 3394*D(1)= 之类的 系数(3394)放到等号右边,变成除法就可以了

板凳

这样的代码第一次看到, 这东西能运行吗? 每一行都是语法错误.
你在下载程序的地方问问他们用什么编译器的吧!!
(毕业答辩的季节~)

3 楼


谢谢前2L的回复,我纠正了下~~果然,不过还差一个~~呵呵呵~麻烦您们了!
现在的错误是这样的:
-------------------Configuration: BISHE - Win32 Debug--------------------
Compiling Fortran...
D:\BIYESHEJI\BISHE\ZICHENGXU02.F90
D:\BIYESHEJI\BISHE\ZICHENGXU02.F90(6) : Error: Syntax error, found '(' when expecting one of: * :: , <END-OF-STATEMENT> ; : ) + . - (/ [ ] /) ** / > // .LT. < ...
D(3)=((4.21*10**(-8))((Y(2)+273)**4-(Y(3)+273)**4)+2.17*(Y(1)-Y(3))**1.31+10*(Y(4)-Y(3)))/21250
---------------------^
Error executing df.exe.

ZICHENGXU02.OBJ - 1 error(s), 0 warning(s)
再麻烦各位帮忙看看,谢谢啦~~

4 楼

首先谢谢您抽空回答我的问题,谢谢您啦!
按照您的指示,我改了除号,然后再除错,还有一个问题,具体如下:-------------------Configuration: BISHE - Win32 Debug--------------------
Compiling Fortran...
D:\BIYESHEJI\BISHE\ZICHENGXU02.F90
D:\BIYESHEJI\BISHE\ZICHENGXU02.F90(6) : Error: Syntax error, found '(' when expecting one of: * :: , <END-OF-STATEMENT> ; : ) + . - (/ [ ] /) ** / > // .LT. < ...
D(3)=((4.21*10**(-8))((Y(2)+273)**4-(Y(3)+273)**4)+2.17*(Y(1)-Y(3))**1.31+10*(Y(4)-Y(3)))/21250
---------------------^
Error executing df.exe.

ZICHENGXU02.OBJ - 1 error(s), 0 warning(s)
麻烦您啦!!因为是毕设,用的是FORTRAN6.5

5 楼


D(3)=((4.21*10**(-8))[color=FF0000][][/color]((Y(2)+273)**4-(Y(3)+273)**4)+2.17*(Y(1)-Y(3))**1.31+10*(Y(4)-Y(3)))/21250
这里之间没有运算符

我来回复

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