首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gfortran中.f源代码编译错误;将文本文件读入二维数组

gfortran中.f源代码编译错误;将文本文件读入二维数组
EN

Stack Overflow用户
提问于 2013-02-26 10:12:20
回答 1查看 167关注 0票数 0

我对以下来源有一个问题。当它在gfortran中编译时,它不能正常工作,然后出现两条错误消息。我该如何解决这个问题?任何评论都会非常有帮助。提前谢谢。

代码语言:javascript
复制
  program driver
  integer i,ln,n,e,count,x,a,b,total
  character driverid*12,var*12,ch*12
  parameter (n=720321)

C参数(n=55062)维数var(n),a(n),b(n)

代码语言:javascript
复制
  write(*,*) 'input run id(text)'
  read(*,55) driverid

55格式(A)

代码语言:javascript
复制
  ln=index(driverid,' ')-1
  open(6,file=driverid(1:ln)//'.out',form='formatted'
 +,status='unknown')
  open(1,file=driverid(1:ln)//'.txt',status='old')


  do i=1,2
  read(1,*)
  end do

  read(1,*) (var(i),i=1,n)

  close(1)


  total=0      
  count=1
  do i=1,n
  b(i)=0
  read(var(i),*,iostat=e) x    
  if (e .eq. 0) then
    a(count)=x
    count=count+1
  else
    ln=index(var(i),' ')-1
    if (var(i)(ln-1:ln-1) .eq. 'r') then
     var(i)=var(i)(1:ln-2)
    else
     var(i)=var(i)(1:ln-1)
    end if
    read(var(i),'(i)') b(count-1)
  end if
  end do

  do i=1,count
   total=total+1+b(i)
  end do


  do i=1,total
   write(6,'(10i)') (a(i),j=1,b(i))
  end do

  close(6)

  end 

错误消息如下

$ gfortran driver.f driver.f:43.23:

代码语言:javascript
复制
    read(var(i),'(i)') b(count-1)
                   1

错误:格式字符串在(1)驱动程序中需要非负宽度。f:53.20:

代码语言:javascript
复制
   write(6,'(10i)') (a(i),j=1,b(i))
                1

错误:格式字符串(%1)中需要非负宽度

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-26 17:49:03

指定整数的格式时,必须指定字段宽度。如果你想让它更灵活,你可以将它设置为0:

代码语言:javascript
复制
write(6, "(10I0)") ...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15080190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档