我有一个关于在Fortran90中填充二维数组的问题。在我的程序中,我提取不同的随机数集,并检查它们作为我的测量ustar和Tstar的不确定性,我得到uerr和terr。现在我想把uerr和terr放在一个二维数组中,因为那时我必须重复这个过程n次以获得不同的数据集(用于估计误差的蒙特卡罗方法)。如何为我的阵列分配uerr和terr?每次运行程序时,如何迭代进程n次?我试着给我的阵列"设置"索引r和c但在编译时我得到:
Warning: Extension: REAL array index at (1)
我从输入文件中读取了ustar和tstar,代码如下:
program stimerr
implicit none
character(len=12) filein,fileout
integer,dimension(1) :: seed = (/4/)
real, dimension(2) :: num
integer :: n,h,i
real, dimension(24,2) :: set
real :: pi = 3.14159
real :: g1,g2,ustar,tstar,uerr,terr
write(*,'(2x,''File di input .......''/)')
read(*,'(a12)') filein
open(unit=120,File=filein)
set = 0.
call init_random_seed ()
do n=1,24
read(120,*) h,ustar,tstar
call random_number(num)
g1 =(sqrt(-2*log(num(1)))*(cos(2*pi*(num(2)))))/10.
g2 =(sqrt(-2*log(num(1)))*(sin(2*pi*(num(2)))))/10.
uerr = ustar + g1
terr = tstar + g2
write(*,*) set(uerr,terr)
enddo
close(120)
end program stimerr