如何在fortran90中填充二维数组

时间:2014-11-24 11:07:44

标签: arrays fortran fortran90 montecarlo

我有一个关于在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

0 个答案:

没有答案