fortran编程 出现 list-directed I/O syntax error,unit 10 求解答

程序如下programmian!声明变量real::u!相对湿度real::t!干球温度real::p!本站气压real::e!水汽压real,parameter::t1... 程序如下
program mian
!声明变量real::u !相对湿度
real::t !干球温度
real::p !本站气压
real::e !水汽压
real,parameter::t1=273.16
real::t0
integer,parameter::n=1500
real::tw(0:n) !湿球温度估算值序列
real::eti !干球温度对应的饱和水汽压
real::etw !湿球温度对应的饱和水汽压
real,parameter::a=8.15*10**(-4)
real::ej(0:n) !水汽压的计算值
real::err(0:n) !计算误差
real::ermin !计算误差的最小值
real::twmin !合理的湿球温度
real,parameter::fileid=10
real,parameter::count=52608
character(len=80)::tempstr
integer num,day,time
open(fileid,file="temp.txt",status="old",iostat=error)if(error/=0)then
write(fileid,*)"打开文件失败"
stop
end if
read(fileid,"(A80)")tempstr
do i=1,count read(fileid,*)num,day,time,t,u
!计算水汽压 t0=273.15+t
if(t>0)then
eti=10**(10.79574*(1-t1/t0)-5.02800*alog10(t0/t1)+1.50475*10**(-4)*(1-10**((-8.2969*(t0/t1-1))))+0.42873*10**(-3)*(10**(4.76955*(1-t1/t0))-1)+0.78614)
else
eti=10**((-9.09685)*(t1/t0-1)-3.56654*alog10(t1/t0)+0.87682*(1-t0/t1)+0.78614)
end if
e=eti*u
!算出误差序列 tw(0)=t-15
do j=0,n
if(tw(j)>0)then
etw=10**(10.79574*(1-t1/t0)-5.02800*alog10(t0/t1)+1.50475*10**(-4)*(1-10**((-8.2969*(t0/t1-1))))+0.42873*10**(-3)*(10**(4.76955*(1-t1/t0))-1)+0.78614)
else
etw=10**((-9.09685)*(t1/t0-1)-3.56654*alog10(t1/t0)+0.87682*(1-t0/t1)+0.78614)
end if
ej(j)=etw-a*p*(t-tw(j)) !算出水汽压的计算值
err(j)=abs(e-ej(j))
if(j==n) exit
tw(j+1)=tw(j)+0.01
end do
!算出最合适的湿球温度 errmin=err(0)
do j=1,n
if(err(j)<err(j-1))then
errmin=err(j)
k=j
end if
twmin=tw(k)
end do
end do
write(*,"(7A7)")"站号","日期","小时","干球温度","相对湿度","湿球温度"
do i=1,count write(*,*)t,u,twmin
end do
stop end

结果:
展开
 我来答
天河流纹石
2013-03-22 · TA获得超过1.3万个赞
知道大有可为答主
回答量:7624
采纳率:76%
帮助的人:4052万
展开全部
这通常是由于文件中出现了非数字的字符引起的。

比如(我是说比如,因为我没有你的temp.txt文件,所以没法知道具体的):

read(fileid,*)num,day,time,t,u

而文件中出现的是:
3.0 3.4 abc 3.4 6.7
而 time 是整数。abc 是字符,程序没法把 abc 读取为整数。

当然了,其他的字符也可能,比如特殊字符。比如 Unicode 编码的文本文件。

总之,是你的 temp.txt 不符合程序的要求。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式