Fortran 90数据语句不会覆盖数据

hoa*_*ran 2 arrays fortran fortran90

我试图DATA在Fortran 90中使用语句初始化一个数组.代码如下:

PROGRAM dt_state
IMPLICIT NONE
INTEGER :: a(4), b(2:2), c(10)

DATA a/4*0/
WRITE (6,*) a(:)    

DATA a/4,3,2,1/
WRITE (6,*) a(:)
END PROGRAM dt_state
Run Code Online (Sandbox Code Playgroud)

我预计屏幕上的结果将是0 0 0 04 3 2 1.但是,我得到的是0 0 0 00 0 0 0.它意味着DATA语句不会覆盖值a,是吗?

Vla*_*r F 6

变量只能出现在DATA语句中一次.DATA语句用于初始化,在程序启动时只执行一次.

在可执行代码中使用赋值来设置数组值

a = (/ 4, 3, 2, 1 /)
Run Code Online (Sandbox Code Playgroud)

(在Fortran 90中)

要么

a = [ 4, 3, 2, 1 ]
Run Code Online (Sandbox Code Playgroud)

(在Fortran 2003中).

最好也将此语法用于初始化.