[英]Unclassifiable statement at (1) and Unexpected data declaration statement at (1) in Fortran77?
我正在尝试计算Fortran 77中文件的行数(我的文件有两列,均带有数字)
我收到了无法分类的声明和意外的数据声明,我不确定为什么。 这是我的代码:(fortran 77的新功能):
PROGRAM Exercise
C
C John Smith
C
C
C PARAMETERS
C
REAL PRECISION UNUM
PARAMETER (UNUM=15)
C
C LOCAL VARIABLES
C
C
C FUNCTION DECLARATIONS
C
INTEGER*8 PRECISION NUMLIN
C
C COMMON VARIABLES
C
C
C DATA STATEMENTS
C
DATA FILEN /'linecounttester.txt'/
C
C MAIN PROGRAM MODULE
C
OPEN(UNIT=UNUM, FILE = FILEN, STATUS='OLD')
C
C function counts the lines in the file
C
FUNCTION NUMLIN
INTEGER*8 PRECISION NUMLIN
CHARACTER*256 LINE
100 READ(UNUM,*,END=200) LINE
NUMLIN=NUMLIN+1
GOTO 100
200 CONTINUE
RETURN
END
REWIND(UNUM)
CLOSE(UNUM)
这是我的数据文件:(只是一个测试器,所以我可以将行数数为8):1100 2 200 3 300 4 400 5 500 6 600 7 700 8 800
这些是我的错误:
Exercise.for:58.6:
FUNCTION NUMLIN
1
错误:在(1)Exercise.for:59.32处无法分类的陈述:
INTEGER*8 PRECISION NUMLIN
1
错误:(1)处的符号'precisionnumlin'已经具有INTEGER Exercise.for:60.72的基本类型:
CHARACTER*256 LINE
1
错误:在(1)Exercise.for:61.7处发生了意外的数据声明语句:
100 READ(UNUM,*,END=200)
1
错误:(1)Exercise.for:62.6名称中的字符无效:
LINE
1
错误:无法执行(1)练习中的声明:65.7:
200 CONTINUE
1
错误:(1)Exercise.for:41.10中名称中的字符无效:
DATA FILEN /'linecounttester.txt'/
1
错误:(1)处的DATA语句中的类型不兼容; 尝试将CHARACTER(1)转换为REAL(4)Exercise.for:46.16:
OPEN(UNIT=UNUM, FILE = FILEN, STATUS='OLD')
1
错误:(1)处的UNIT标签必须为INTEGER Exercise.for:64.72类型:
GOTO 100
1
错误:从未定义在(1)处引用的标签100 Exercise.for:1.72:
PROGRAM EXERCISE
1
Exercise.for:70.72:
REWIND(UNUM)
2
错误:(1)和(2)处有两个主要程序
谁能帮我吗?
您正在混合名称空间。
你有一个
PROGRAM
声明,需要相应的
END
在开始声明功能之前的声明。
应该可以解决您看到的编译错误。 但是,我看不到您实际在哪里调用创建的函数。 换句话说,您似乎在定义函数而未实际使用它。 我建议您首先编写不带该功能的代码,以确保它能正常工作。 然后将其分离出来,直到您掌握了这个窍门:)
编辑:我也将您的问题下的评论放在第二位,关于您使用的奇怪语法。 尽管我不会劝阻您使用FORTRAN77,但希望您有充分的理由这样做;)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.