Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File Fortran77中(1)处的不可分类语句和(1)处的意外数据声明语句?_File_Count_Fortran_Gfortran_Fortran77 - Fatal编程技术网

File Fortran77中(1)处的不可分类语句和(1)处的意外数据声明语句?

File Fortran77中(1)处的不可分类语句和(1)处的意外数据声明语句?,file,count,fortran,gfortran,fortran77,File,Count,Fortran,Gfortran,Fortran77,我正在用Fortran 77计算文件中的行数 (我的文件有两列,都有数字) 我得到一个不可分类的声明和意外的数据声明,我不知道为什么。这是我的代码:(fortran 77新增): 这是我的数据文件:(只是一个测试仪,这样我就可以数到8行): 1 100 2 200 3 300 4 400 5 500 6 600 7 700 8800 以下是我的错误: 练习。适用于:58.6: FUNCTION NUMLIN

我正在用Fortran 77计算文件中的行数 (我的文件有两列,都有数字)

我得到一个不可分类的声明和意外的数据声明,我不知道为什么。这是我的代码:(fortran 77新增):

这是我的数据文件:(只是一个测试仪,这样我就可以数到8行): 1 100 2 200 3 300 4 400 5 500 6 600 7 700 8800

以下是我的错误:

练习。适用于:58.6:

  FUNCTION NUMLIN                                                   
  1
错误:位于(1)的不可分类语句 练习。适用于:59.32:

  INTEGER*8 PRECISION NUMLIN                                        
                            1
错误:(1)处的符号“precisionnumlin”已具有整数的基本类型 练习。适用于:60.72:

  CHARACTER*256 LINE                                                
                                                                    1
错误:位于(1)的意外数据声明语句 练习。适用于:61.7:

  100 READ(UNUM,*,END=200)                                          
   1
错误:名称中的无效字符位于(1) 练习。适用于:62.6:

  LINE                                                              
  1
错误:位于(1)的不可分类语句 练习。适用于:65.7:

  200 CONTINUE                                                      
   1
错误:名称中的无效字符位于(1) 练习。适用于:41.10:

  DATA FILEN /'linecounttester.txt'/                                
      1
错误:位于(1)的数据语句中的类型不兼容;试图将字符(1)转换为实数(4) 练习。适用于:46.16:

  OPEN(UNIT=UNUM, FILE = FILEN, STATUS='OLD')                       
            1
错误:(1)处的单位标记必须是整数类型 练习。适用于:64.72:

  GOTO 100                                                          
                                                                    1
错误:从未定义在(1)处引用的标签100 练习。适用于:1.72:

  PROGRAM EXERCISE                                    
                                                                    1
练习。适用于:70.72:

  REWIND(UNUM)                                                      
                                                                    2
错误:两个主程序位于(1)和(2)


有人能帮我吗?

您正在混合名称空间

你有一个

PROGRAM
语句,它需要相应的

END
语句,然后再开始声明函数

这将修复您看到的编译错误。但是,我看不到您实际上在哪里调用您创建的函数。换句话说,您似乎是在定义一个函数而没有实际使用它。我建议您首先编写没有函数的代码,只是为了确保它能正常工作。然后把它分开,直到你掌握了窍门:)


编辑:我也支持你问题下的评论,关于你使用的奇怪语法。虽然我不会劝阻您使用FORTRAN77,但我希望您有很好的理由这么做;)

就我个人而言,我不再帮助人们写FORTRAN77。这相当于帮助人们在没有麻醉的情况下快速截肢。出于同样的原因:有更现代的方法,对所有相关方来说都不那么痛苦。如果我想帮你,我的第一步就是问你为什么要在你发布的代码中没有出现的行(例如
程序号countingexercise
)中报告错误。我会学究式地说,这个源代码不是FORTRAN 77。整数*8是非标准的。而且,“真正精确的UNUM”可能并不意味着你认为它是什么。我同意HPM的观点,即消息似乎与源不匹配。这是不是
精度
可能是某种遗留扩展?当然不是f77。数据类型的真实精度?是的,在标准fortran(任何年份)中都没有这样的数据类型。编译器认为您正在声明一个名为
PRECISIONUNUM
REAL
变量(注意,在fortran中空格并不重要)。
END