主题:为什么我输出的数组不按顺序排列呢?
我从avd.dat文件中读入数据,第一、二、三、四列分别为时间,加速度,速度和位移,然后通过编程,用速度和位移求出应力时程,并把应力时程输出到文件avdf.dat中,可是输出后的数据乱七八糟的,一点顺序都没有,希望高手指点
program main
implicit none
integer I
real::sc(1001,4),FT(1001,2)
open(unit = 5, file="avd.dat",status='old')
read(unit = 5, fmt = *) sc
do I=1,1001
FT(I,1)=sc(I,1)
FT(I,2)=19.05*(6.945E3*sc(I,4)+7.56E3*sc(I,3))
end do
open(unit=10, file="avdf.dat",status='new')
Do I=1,1001
write(unit=10, fmt =100)FT(I,1:2)
end do
100 format(1X,F6.3,2X,F10.3)
close(5)
stop
end program main
这是部分时间,加速度,速度和位移数据(全部数据在附件中)
0.000 0.000 0.000 0.000
0.010 0.003 0.015 0.000
0.020 -0.005 0.004 0.000
0.030 -0.013 -0.085 -0.000
0.040 -0.015 -0.224 -0.000
0.050 -0.002 -0.310 -0.000
0.060 0.011 -0.268 -0.000
0.070 0.024 -0.099 -0.000
0.080 0.024 0.136 -0.000
0.090 0.014 0.320 -0.000
这是输出的部分时间、应力数据
0.000 **********
0.000 984804.812
0.000 721794.812
0.000 **********
0.010 **********
0.003 986271.812
0.015 735274.438
0.000 **********
0.020 **********
-0.005 987738.875
0.004 731951.750
0.000 **********
0.030 **********
-0.013 989205.875
-0.085 728496.750
program main
implicit none
integer I
real::sc(1001,4),FT(1001,2)
open(unit = 5, file="avd.dat",status='old')
read(unit = 5, fmt = *) sc
do I=1,1001
FT(I,1)=sc(I,1)
FT(I,2)=19.05*(6.945E3*sc(I,4)+7.56E3*sc(I,3))
end do
open(unit=10, file="avdf.dat",status='new')
Do I=1,1001
write(unit=10, fmt =100)FT(I,1:2)
end do
100 format(1X,F6.3,2X,F10.3)
close(5)
stop
end program main
这是部分时间,加速度,速度和位移数据(全部数据在附件中)
0.000 0.000 0.000 0.000
0.010 0.003 0.015 0.000
0.020 -0.005 0.004 0.000
0.030 -0.013 -0.085 -0.000
0.040 -0.015 -0.224 -0.000
0.050 -0.002 -0.310 -0.000
0.060 0.011 -0.268 -0.000
0.070 0.024 -0.099 -0.000
0.080 0.024 0.136 -0.000
0.090 0.014 0.320 -0.000
这是输出的部分时间、应力数据
0.000 **********
0.000 984804.812
0.000 721794.812
0.000 **********
0.010 **********
0.003 986271.812
0.015 735274.438
0.000 **********
0.020 **********
-0.005 987738.875
0.004 731951.750
0.000 **********
0.030 **********
-0.013 989205.875
-0.085 728496.750