Fortran 程序接收信号SIGABRT:进程中止信号

Fortran 程序接收信号SIGABRT:进程中止信号,fortran,gfortran,Fortran,Gfortran,我有以下子程序: SUBROUTINE UNITARYEVOLUTION(X,Z) IMPLICIT NONE COMPLEX(KIND = DBL), DIMENSION(DIMMAT,1), INTENT(IN) :: X COMPLEX(KIND = DBL),DIMENSION(DIMMAT,1),INTENT(OUT)::Z COMPLEX(KIND = DBL), DIMENSION(DIMSYS,DIMSYS) :: TEMP1 COMPLEX(KIND = DBL), DIMEN

我有以下子程序:

SUBROUTINE UNITARYEVOLUTION(X,Z)
IMPLICIT NONE
COMPLEX(KIND = DBL), DIMENSION(DIMMAT,1), INTENT(IN) :: X
COMPLEX(KIND = DBL),DIMENSION(DIMMAT,1),INTENT(OUT)::Z
COMPLEX(KIND = DBL), DIMENSION(DIMSYS,DIMSYS) :: TEMP1
COMPLEX(KIND = DBL), DIMENSION(DIMSYS,DIMSYS) :: TEMP2
COMPLEX(KIND = DBL), DIMENSION(DIMSYS,DIMSYS) :: TEMP3
COMPLEX(KIND = DBL), DIMENSION(DIMSYS,DIMSYS) :: TEMP4
COMPLEX(KIND = DBL), DIMENSION(DIMSYS,DIMSYS) :: TEMP5
COMPLEX(KIND = DBL), DIMENSION(DIMSYS,DIMSYS) :: TEMP6
COMPLEX(KIND = DBL), DIMENSION(DIMSYS,DIMSYS) :: TEMP7
COMPLEX(KIND = DBL), DIMENSION(DIMSYS,DIMSYS) :: TEMP8
COMPLEX(KIND = DBL), DIMENSION(DIMSYS,DIMSYS) :: UNITARY
COMPLEX(KIND = DBL), DIMENSION(DIMSYS,DIMSYS) :: UNITARYCONJ
REAL(KIND = DBL) :: T
INTEGER :: E,F,G,H,I,J
REAL(KIND = DBL) :: ALPHA = SQRT(2.0D0**2.0D0 + 2.0D0**2.0D0)
TEMP1 = COS((ALPHA*T)/2)*ID
TEMP2 = SIN((ALPHA*T)/2)*(ENERGYGAP/ALPHA)*SIGMAZ
TEMP3 = SIN((ALPHA*T)/2)*(DELTA/ALPHA)*SIGMAX
TEMP4 = TEMP2 + TEMP3
UNITARY = TEMP1 - IMU*TEMP4
UNITARYCONJ = TEMP1 + IMU*TEMP4
DO E = 1, DIMMAT
CALL INDEXCONVERTER(E,F,G)
TEMP5(F,G) = X(E,1)
END DO
TEMP6 = matmul(UNITARYCONJ,TEMP5)
TEMP7 = matmul(TEMP6,UNITARY)
DO H = 1, DIMSYS
    DO I = 1, DIMSYS
        CALL INVERSE(H,I,J)
        TEMP8(J,1) = TEMP7(H,I)
    END DO
  END DO
  Z = TEMP8
  END SUBROUTINE UNITARYEVOLUTION
当我使用下一个子程序调用它时

CALL    UNITARYEVOLUTION(X,Z)
我得到以下错误:

Program received signal SIGABRT: Process abort signal.

Backtrace for this error:
#0  0xFFFFFFFFFFFFFFFF
#1  0xFFFFFFFFFFFFFFFF
#2  0xFFFFFFFFFFFFFFFF
#3  0xFFFFFFFFFFFFFFFF
#4  0xFFFFFFFFFFFFFFFF
#5  0xFFFFFFFFFFFFFFFF
#6  0xFFFFFFFFFFFFFFFF
#7  0xFFFFFFFFFFFFFFFF
#8  0xFFFFFFFFFFFFFFFF
#9  0xFFFFFFFFFFFFFFFF
#10  0xFFFFFFFFFFFFFFFF
#11  0xFFFFFFFFFFFFFFFF
Aborted (core dumped)
代码编译正确,但当我执行
/a.exe
命令时,会出现这些错误。可能的错误来源

当我删除
调用UNITARYEVOLUTION(X,Z)时,
一切都能正确编译


编辑:

当我使用
-Wall-fcheck=all运行
gfortran
时,
我得到了错误

第(1)[-Wtabs]处的制表符不符合要求


对于代码中的几乎每一行。

第(1)[-Wtabs]处的
不合格制表符指插入代码中的反制表符。Fortran无法将制表符识别为空白。

请尝试使用
-Wtabs
选项进行编译,或者只删除制表符并放入空格。

键入nm代码。我怀疑-Wtabs可能是空白?第7列中是否有空格和代码开头?还是自由形式?我会“rma.out”并重新开始。所有fortran问题都使用tag fortran。你会得到更多的关注。我想OP更关心这次坠机。