错误的输出值:零或NaN

时间:2016-06-17 19:13:36

标签: arrays fortran output gfortran fortran95

在子程序中完成数学运算后,我想要写入两个变量。我们说X和Y. 由于我的X,Y阵列的大小未知,我分配它。

重点是,如果我告诉fortran在IDE自己的输出终端中编写数组,它可以正常工作。 但是如果我想在.DAT文件中使用它,那么.DAT文件中只有前4行是正确的,这意味着值不为零。 另一侧的所有后续行都是零(大多数)或NaN(少数)。

这是相关的代码:

integer :: i       
type YX
    real :: Y
    real :: X
end type
type(YX),allocatable, dimension(:)  :: yx_array

allocate(yx_array(i))

i=0  !Start
dx=1.E-1
yx_array(i)%Y=Y0     !Y0 and X0 are known
yx_array(i)%X=X0  

do  while (yx_array(i)%Y>1.E-3)  
    i=i+1        
    yx_array(i)%X=X0+i*dx

    yx_array(i)%Y= f( yx_array(i)%X ) ! just some math..
end do

open(UNIT=99,File='Values',status='Replace',position='rewind')

!Since i now defines the size of the array I can't overwrite it by i=0, 
!therefore I start with n=0 and go up to i-1. Not i though, because Y(i=max) !is a negative value which I don't need in my data.

do n=0,i-1
    write(99,100) vektor(n)%Y, vektor(n)%X
    100 format(2(F8.3,2X)
    end do
close(99)

values of Y and X

我无法弄清问题可能是什么。

0 个答案:

没有答案