Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/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
Arrays 数组在12个元素之后未编译?_Arrays_Fortran - Fatal编程技术网

Arrays 数组在12个元素之后未编译?

Arrays 数组在12个元素之后未编译?,arrays,fortran,Arrays,Fortran,我试图创建一个数组,但是如果数组中的元素超过12个,我的程序将无法编译。例如: PROGRAM dprime REAL, DIMENSION(12) :: array array = (/50.0,52.0,54.0,56.0,58.0,60.0,62.0,64.0,66.0,68.0,70.0,72.0/) END PROGRAM dprime 现在,如果我将其更改为DIMENSION13,并在72.0之后添加另一个元素,我会得到以下错误: 错误5082:语法错误,应为语句结尾时找到 共:,

我试图创建一个数组,但是如果数组中的元素超过12个,我的程序将无法编译。例如:

PROGRAM dprime
REAL, DIMENSION(12) :: array
array = (/50.0,52.0,54.0,56.0,58.0,60.0,62.0,64.0,66.0,68.0,70.0,72.0/)
END PROGRAM dprime
现在,如果我将其更改为DIMENSION13,并在72.0之后添加另一个元素,我会得到以下错误:

错误5082:语法错误,应为语句结尾时找到 共:,/:/

此代码不会编译:

PROGRAM dprime
REAL, DIMENSION(13) :: array
array =(/50.0,52.0,54.0,56.0,58.0,60.0,62.0,64.0,66.0,68.0,70.0,72.0,74.0/)
END PROGRAM

哪里可能有错误?

您可能超出了允许的行长度

对于gfortran,将选项-ffree line length none添加到命令行

编辑:


最有可能的情况是,只需将文件重命名为*.f90,您就可以使用大多数编译器,包括您正在使用的ifort。此策略有一个限制:超过132个字符时,您必须在字符的结尾处使用续行。

另外:在fortran 90+中,允许的行长度大于132个字符,如果您将文件命名为*.f90,大多数编译器都会自动检测到。我认为原因是正确的,但我不会将此作为第一个或唯一的解决方案。我避免使用此类编译器指令,因为每次遇到新编译器时,它都会迫使您找出指令。特别是如果出于某种原因使用固定格式,请坚持使用标准格式。仅重命名文件仍然是一个奇怪的建议。固定和自由形式是完全不同的!评论呢?还要注意,他的行正好有72个字符。通常,包括前导空格在内的72个字符。我本想把它作为其他许多行太长问题的复制品关闭,但我仍然不知道发生了什么。我在复制粘贴后数了75。我的印象是,大多数编译器将.f90文件标识为自由格式,而.f文件标识为固定格式。那么,为什么这是个坏主意呢?学习如何在Fortran中划分行。它在固定形式和自由形式上是不同的。事实上,很奇怪,您竟然能准确地使用72个字符,因为前6列在固定格式中应该有特殊的含义。源文件的扩展名是什么?你使用哪种编译器?我没有使用源文件,数组在程序本身中。我正在使用“英特尔ifort编译器”。我在问你程序的文本存储在哪里。这称为源文件。它是.f90.f.的还是什么?编译时使用哪些选项?或者如何编译?你是按按钮还是做什么?