我对以下来源有一个问题。当它在gfortran中编译时,它不能正常工作,然后出现两条错误消息。我该如何解决这个问题?任何评论都会非常有帮助。提前谢谢。
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)
write(*,*) 'input run id(text)'
read(*,55) driverid55格式(A)
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:
read(var(i),'(i)') b(count-1)
1错误:格式字符串在(1)驱动程序中需要非负宽度。f:53.20:
write(6,'(10i)') (a(i),j=1,b(i))
1错误:格式字符串(%1)中需要非负宽度
发布于 2013-02-26 17:49:03
指定整数的格式时,必须指定字段宽度。如果你想让它更灵活,你可以将它设置为0:
write(6, "(10I0)") ...https://stackoverflow.com/questions/15080190
复制相似问题