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
Fortran中call语句中的语法错误_Fortran - Fatal编程技术网

Fortran中call语句中的语法错误

Fortran中call语句中的语法错误,fortran,Fortran,我已经编写了一个简单的测试程序,用Fortran测试子程序和call语句。我正在GNU/Linux中使用gfortran编译器。我已经声明了14个参数,它们在我的代码中相应地编号。当我尝试通过call语句传递其中11个参数时,我的代码工作得非常好,但当我尝试包含第12个参数并尝试通过call语句传递12个参数时,我遇到了一个相当奇怪的“语法错误”。问题可能是什么?我该如何解决?这是我正在谈论的节目 ` 以下是我在“call”语句中包含k12并编译它时遇到的错误: ` ` 我重申,当我在call语

我已经编写了一个简单的测试程序,用Fortran测试子程序和call语句。我正在GNU/Linux中使用gfortran编译器。我已经声明了14个参数,它们在我的代码中相应地编号。当我尝试通过call语句传递其中11个参数时,我的代码工作得非常好,但当我尝试包含第12个参数并尝试通过call语句传递12个参数时,我遇到了一个相当奇怪的“语法错误”。问题可能是什么?我该如何解决?这是我正在谈论的节目

`

以下是我在“call”语句中包含k12并编译它时遇到的错误:

`

`


我重申,当我在call语句中包含参数k1到k11时,我在编译过程中没有遇到任何问题,只是引入了第12个参数,引入了问题。任何帮助都将不胜感激。

按照惯例,扩展名为.for或.f的文件将被视为固定格式源文件。固定格式行上的语句必须位于第7列和第72列之间(包括第7列和第72列)。注意错误消息中的列位置-语句的结尾将被截断

固定格式源代码对空格也不敏感。call语句之前的所有
参数kxxx
赋值语句都不符合您的想法

除非修改现有的旧代码,否则不要使用固定格式源代码


不要使用隐式类型,除非您正在修改现有的遗留代码(或者可能参与一些深奥的泛型编程应用程序)
IMPLICIT NONE
是您最好的朋友。

按照惯例,扩展名为.for或.f的文件被视为固定格式源文件。固定格式行上的语句必须位于第7列和第72列之间(包括第7列和第72列)。注意错误消息中的列位置-语句的结尾将被截断

固定格式源代码对空格也不敏感。call语句之前的所有
参数kxxx
赋值语句都不符合您的想法

除非修改现有的旧代码,否则不要使用固定格式源代码


不要使用隐式类型,除非您正在修改现有的遗留代码(或者可能参与一些深奥的泛型编程应用程序)
IMPLICIT NONE
是您最好的朋友。

假设您使用的是固定格式fortran,您无法通过第72列。您可以使用
-ffree form
作为gfortran的选项,告诉它使用自由格式,而不考虑文件扩展名。假设您使用的是固定格式fortran,您无法通过第72列。您可以使用
-ffree form
作为选项,告诉它使用自由格式,而不考虑文件扩展名。
    program test

         IMPLICIT REAL*4(A-B,D-H,O-Z)
         IMPLICIT COMPLEX(C)
         COMPLEX*16 CQC,CQV

         parameter k1=2   
         parameter k2=2  
         parameter k3=2
         parameter k4=2
         parameter k5=2
         parameter k6=2
         parameter k7=2
         parameter k8=2
         parameter k9=2
         parameter k10=2
         parameter k11=2
         parameter k12=2
         parameter k13=2
         parameter k14=2

         call bins(k1, k2, k3, k4, k5, k6, k7, k8, k9, k10, k11, k12) 

    end program


    subroutine bins(k1, k2, k3, k4, k5, k6, k7, k8, k9, k10, k11, k12)

         integer k1, k2, k3, k4, k5

    end subroutine   `
siddharth@siddharth-VBox:~/Desktop/Codes$ gfortran test6.for -o  test6.out
test6.for:23.72:

             call bins(k1, k2, k3, k4, k5, k6, k7, k8, k9, k10, k11, k12
                                                                    1
Error: Syntax error in argument list at (1)
test6.for:29.72:

        subroutine bins(k1, k2, k3, k4, k5, k6, k7, k8, k9, k10, k11, k1
                                                                    1
Error: Unexpected junk in formal argument list at (1)
test6.for:2.72:

        program test                                                    
                                                                    1
test6.for:31.72:

            integer k1, k2, k3, k4, k5                                 
                                                                    2
Error: Two main PROGRAMs at (1) and (2)