Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/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
Fortran调用错误_Fortran - Fatal编程技术网

Fortran调用错误

Fortran调用错误,fortran,Fortran,在我的Fortran代码中,我有以下命令: CALL EXPECTATION(X, 0.5D0*SIGMAZ, Z_EXPECTATION) WRITE(1,*) T, Z_EXPECTATION CALL EXPECTATION(X, 0.5D0*SIGMAY, Y_EXPECTATION) WRITE(4,*) T, Y_EXPECTATION 我得到的错误是: Error: Symbol ‘sigmay’ at (1) has no IMPLICIT type Error: Symb

在我的Fortran代码中,我有以下命令:

CALL EXPECTATION(X, 0.5D0*SIGMAZ, Z_EXPECTATION)
WRITE(1,*) T, Z_EXPECTATION

CALL EXPECTATION(X, 0.5D0*SIGMAY, Y_EXPECTATION)
WRITE(4,*) T, Y_EXPECTATION
我得到的错误是:

Error: Symbol ‘sigmay’ at (1) has no IMPLICIT type

Error: Symbol ‘sigmaz’ at (1) has no IMPLICIT type
但我没有收到类似命令的错误:

CALL EXPECTATION(X, 0.5D0*SIGMAX, X_EXPECTATION)
WRITE(3,*) T, X_EXPECTATION
可能是什么问题?我从同一个子例程调用变量,并将它们定义为

COMPLEX*16, DIMENSION(2,2) :: SIGMAX, SIGMAY SIGMAZ

您在声明中忘记了
SIGMAY
SIGMAZ
之间的逗号。由于Fortran不关心空格,它只创建了两个复杂变量:
SIGMAX
SIGMAYSIGMAZ


只需添加逗号,您的代码就可以正常编译。

请给出一个更完整(但较小)的示例,该示例再现了错误。请参阅。注意,您的声明似乎缺少一个逗号,这只是这里的输入错误,还是源代码中的输入错误?下面是d_1999的评论:您使用的是固定格式的源代码吗?在这里,此声明中的空格将被忽略(因此您将有一个名为
sigmaysigmaz
)的变量。如果注释有助于您解决问题,那么如果您可以提供注释/问题更新来说明这一点,对其他人来说将是有用的。这样,未来的人们就会知道解决方案是什么。我认为“Fortran不关心空格”是不准确的,它适用于固定形式,但不适用于自由形式。参见示例文档主题/example.interest。我应该先测试一下。我仍然认为缺少逗号是错误,但是编译器应该抱怨声明…缺少逗号当然很重要。在自由格式源代码中会有语法问题,但在固定格式中根本没有声明:它是一个注释行。不管怎样,这个问题都不能准确地反映根本问题。