fortran程序的作用是读入两个文件中的数字,忽略字母,并作适当变换,构建没有错误,运行错误如图,

fortran程序的作用是读入两个文件中的数字,忽略字母,并作适当变换,构建没有错误,运行错误如图,

程序说明:data1为7行字母,48行数字交替,数字共np行.data2为6行字母,50行数字交替,数字共el行,程序的作用是读入两个文件中的数字,忽略字母,并作适当变换
program feap2tecplot
implicit none
integer np,el,i,j,k,m
integer,allocatable::b(:,:),bj(:,:定义动态数组
real,allocatable::ai(:,:),a(:,:)
write (*,90)
read (*,*)np,el
allocate(bj(el,4),b(el,7),ai(np,4),a(np,5))!动态数组大小
open(11,file='input.dat',status='new')
open(10,file='data1.dat',status='old')
open(12,file='data2.dat',status='old')
write(11,110)
k=0
do while (k<=np)!判断数字是否读完
do i=1,7
read(10,*)!忽略字母7行
enddo
do m=1,48
k=k+1
read(10,*) (a(k,j),j=1,5)
end do
end do
do i=1,np !数组变换
do j=2,5
ai(i,j-1)=a(i,j)
end do
end do
do i=1,np !写入目的文件
write(11,*) (ai(i,j),j=1,4)
end do
k=0
do while (k<=el)!判断数字是否读完
do i=1,6
read(12,*)!忽略字母6行
enddo
do m=1,50
k=k+1
read(12,*) (b(i,j),j=1,7)
end do
end do
do i=1,el
do j=4,7
bj(i,j-3)=b(i,j)
end do
end do
do i=1,el !写入目的文件
write(11,100) (bj(i,j),j=1,4)
end do
90 format('please input np,el:')
100 format(11(i5,1x))
110 format("title=example",/,"variables
=x,Y,disx,dispy",/,"f=fepoint,n=1881,e=1700,et=quadrilateral")
end
阿尔私通上校 1年前 已收到1个回答 举报

喀西莫多 春芽

共回答了20个问题采纳率:100% 举报

我没有你的数据文件,无法给你测试,无法帮你找到具体的错误所在.
但你图上的错误,end during reading 的意思是:正在读取数据,但遇到了文件尾端.
可能性有:
1.文件 data1 的行数不够.比如文件只有1700行,而你的代码里要求读1800行.
2.循环控制不对.比如你想读1800行,但代码写得不合适,读了1801行.
这两种可能性其实是相对而言的.其实就是文件的行数,低于代码需要的行数.要么是文件错了,要么是代码错了.

1年前 追问

2

阿尔私通上校 举报

大神,我改了部分代码,不过还是同样问题,能加您qq吗,我把文件直接发给您,或者发您邮箱。我qq810826810
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.051 s. - webmaster@yulucn.com