在我的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
答案 0 :(得分:1)
您在SIGMAY
和SIGMAZ
之间的声明中忘记了逗号。 由于Fortran并不关心空格,因此它只创建了两个复杂的变量: SIGMAX
和SIGMAYSIGMAZ
。
只需添加逗号,您的代码就可以正常编译。