我试图在.txt文件中编写带有复杂条目的矩阵,但它不起作用。这是我的代码:
MODULE Derivation
IMPLICIT NONE
TYPE :: DensOp
COMPLEX , DIMENSION(:,:), ALLOCATABLE :: MatrixElem
INTEGER, DIMENSION(2) :: MatrixDim
COMPLEX :: MatTrace, MatDet
END TYPE
SUBROUTINE WriteOnFile(A)
IMPLICIT NONE
TYPE(DensOP), INTENT(IN) :: A
...
...
INTEGER :: ii
OPEN(UNIT=39, ACTION='WRITE', FILE='Output.txt', STATUS='REPLACE')
DO ii=1, A%MatrixDim(1)
WRITE(39,100) A%MatrixElem(ii,:)
100 FORMAT(' ',F5.3, SP, F5.3, "i")
END DO
...
CLOSE(39)
END SUBROUTINE
end module
PROGRAM DerivedTypes
USE Derivation
IMPLICIT NONE
TYPE (DensOp) :: A
COMPLEX :: test
test=0.0e0
WRITE(*,100) test
100 FORMAT(F5.3,SP ,F5.3, "i")
A=initdensop(3,5)
A%MatrixElem=(3.0e0, 5.0e0)
Call WriteOnFile(A)
END PROGRAM DerivedTypes
我获得的输出看起来像这样
3.000*****i
**********i
**********i
**********i
**********i
3.000*****i
**********i
**********i
**********i
**********i
3.000*****i
**********i
**********i
**********i
**********i
有人可以解释一下为什么这不起作用,因为它应该有效吗?我尝试使用变量测试并检查它是否应该实际工作,并且在变量检查的情况下它完美地工作。所以我真的不知道我现在犯了什么错误?