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 展开
=x,Y,disx,dispy",/,"f=fepoint,n=1881,e=1700,et=quadrilateral")end 展开
1个回答
展开全部
我没有你的数据文件,无法给你测试,无法帮你找到具体的错误所在。
但你图上的错误,end during reading 的意思是:正在读取数据,但遇到了文件尾端。
可能性有:
1.文件 data1 的行数不够。比如文件只有1700行,而你的代码里要求读1800行。
2.循环控制不对。比如你想读1800行,但代码写得不合适,读了1801行。
这两种可能性其实是相对而言的。其实就是文件的行数,低于代码需要的行数。要么是文件错了,要么是代码错了。
但你图上的错误,end during reading 的意思是:正在读取数据,但遇到了文件尾端。
可能性有:
1.文件 data1 的行数不够。比如文件只有1700行,而你的代码里要求读1800行。
2.循环控制不对。比如你想读1800行,但代码写得不合适,读了1801行。
这两种可能性其实是相对而言的。其实就是文件的行数,低于代码需要的行数。要么是文件错了,要么是代码错了。
追问
大神,我改了部分代码,不过还是同样问题,能加您qq吗,我把文件直接发给您,或者发您邮箱。我qq810826810
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询