在.txt文件中写入复杂输出

时间:2016-11-04 14:26:05

标签: io format fortran

我试图在.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

有人可以解释一下为什么这不起作用,因为它应该有效吗?我尝试使用变量测试并检查它是否应该实际工作,并且在变量检查的情况下它完美地工作。所以我真的不知道我现在犯了什么错误?

0 个答案:

没有答案