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

!程序说明:data1为7行字母,48行数字交替,数字共np行。data2为6行字母,50行数字交替,数字共el行,程序的作用是读入两个文件中的数字,忽略字母,并作适当变... !程序说明:data1为7行字母,48行数字交替,数字共np行。data2为6行字母,50行数字交替,数字共el行,程序的作用是读入两个文件中的数字,忽略字母,并作适当变换program feap2tecplotimplicit noneinteger np,el,i,j,k,minteger,allocatable::b(:,:),bj(:,:)!定义动态数组real,allocatable::ai(:,:),a(:,:)write (*,90)read (*,*)np,elallocate(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=0do while (k<=np)!判断数字是否读完do i=1,7read(10,*)!忽略字母7行enddodo m=1,48k=k+1read(10,*) (a(k,j),j=1,5)end doend dodo i=1,np !数组变换 do j=2,5ai(i,j-1)=a(i,j) end doend do do i=1,np !写入目的文件write(11,*) (ai(i,j),j=1,4) end dok=0do while (k<=el)!判断数字是否读完do i=1,6read(12,*)!忽略字母6行enddodo m=1,50 k=k+1 read(12,*) (b(i,j),j=1,7)end doend dodo i=1,el do j=4,7bj(i,j-3)=b(i,j) end doend dodo i=1,el !写入目的文件write(11,100) (bj(i,j),j=1,4)end do90 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
展开
 我来答
天河流纹石
2013-04-06 · TA获得超过1.3万个赞
知道大有可为答主
回答量:7624
采纳率:76%
帮助的人:4050万
展开全部
我没有你的数据文件,无法给你测试,无法帮你找到具体的错误所在。

但你图上的错误,end during reading 的意思是:正在读取数据,但遇到了文件尾端。

可能性有:
1.文件 data1 的行数不够。比如文件只有1700行,而你的代码里要求读1800行。
2.循环控制不对。比如你想读1800行,但代码写得不合适,读了1801行。

这两种可能性其实是相对而言的。其实就是文件的行数,低于代码需要的行数。要么是文件错了,要么是代码错了。
追问
大神,我改了部分代码,不过还是同样问题,能加您qq吗,我把文件直接发给您,或者发您邮箱。我qq810826810
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式