在fortran中定义单位矩阵?

时间:2018-04-20 22:50:19

标签: fortran

我遇到了这个用于编写单位矩阵的F77程序:

DO 10 I=1, M
DO 10 J=1, N
    IF(I .EQ. J) THEN
        UNITM(I,J)=1.0D0
    ELSE
        UNITM(I,J)=0.0D0
    END IF
CONTINUE

上述程序中10和.0D0的目的是什么?

1 个答案:

答案 0 :(得分:2)

如评论中所述,10是一个行标签,它是do循环的范围。现在我们将有一个enddo声明。你错过了上面的10个。 continue行应如下所示:

 10    CONTINUE

使用现代Fortran,我们将有2个enddo语句。对于行标签,两个do循环都可以在同一行上结束。

当Fortran编译文字数字时,Fortran推测数字类型。 A' 1'被编译为整数。 A' 1.0'被编译为单个精度实数。 Fortran认可科学记谱法,因此' 1.0e3'是1x10 ^ 3但是单精度!

用d代替e,Fortran会将文字编号编译为双精度!不需要有指数吗?为指数放一个0。因此1.0D0将1编译为双精度实数。