fortran log的表示问题 运行错误 意思是说 没有alog这个数组 fortran里不是自定义了这个函数?

fortran log的表示问题 运行错误 意思是说 没有alog这个数组 fortran里不是自定义了这个函数?
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 合理的湿球温度
do while(.true.)
输入变量
write(*,*)"相对湿度为"
read(*,*)u
write(*,*)"干球温度为"
ead(*,*)t
write(*,*)"本站气压为"
read(*,*)p
计算水汽压 t0=273.15+t
if(t>0)then
alog10(eti)=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
alog10(eti)=-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 i=0,n
if(tw(i)>0)then
alog10(etw)=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
alog10(etw)=-9.09685)*(t1/t0-1)-3.56654*alog10(t1/t0)+0.87682*(1-t0/t1)+0.78614
end if
ej(i)=etw-a*p*(t-tw(i)) 算出水汽压的计算值
err(i)=abs(e-ej(i))
if(i==n) exit
tw(i+1)=tw(i)+0.01
end do
算出最合适的湿球温度
errmin=err(0)
do i=1,n
if(err(i)
mengqiyun 1年前 已收到1个回答 举报

秃头将军 幼苗

共回答了14个问题采纳率:92.9% 举报

alog10(eti)=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
这句你想做什么?
等号左边是alog10(eti) 是一个函数返回值.
等号右边是一个表达式.
你不能让一个函数返回值等于一个表达式.这从逻辑上就是说不通的.
你是想解方程么?

1年前 追问

4

mengqiyun 举报

恩 就是通过这个表达式 算出 eti 不知道标准的fortran语句怎么通过这个公式算出或者表示出eti 下面的计算要用到这个值。

举报 秃头将军

如果你要算 eti,那么应该写成: eti = ... 这样的形式。 直接写一个方程在哪里,编译器不会帮你解方程。任何编译器都不可能。 为什么? f1(x) = f2(y,z) 你说解 x,为什么不是解 y 呢?为什么不是解 z 呢? 编译器凭什么认为是在解 eti ?而不是解出 t0 t1 ?? 如果你需要解方程,那么自己推算公式,最后写成显式的式子: eti = 某个表达式

mengqiyun 举报

log(eti)=10.79574*(1-t1/t0)-5.02800*log(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 就是这个方程 在fortran里面 能表示出 eti吗?

举报 秃头将军

我怎么感觉给你说了半天都白说了。 能,但是编译器自己不会给你算。 你需要自己推导公式。 最终写成 eti = ... 这样的形式。 log(eti)=10.79574*(1-t1/t0)-5.02800*log(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 这样没有任何人知道是什么意思。它可以是关于 eti 的方程,也可以是关于 t0 的方程,还可能是关于 t1 的方程。 不过我可以简单的告诉你: log10(eti) = y 则 eti = 10 ** (y)

mengqiyun 举报

行,感谢。
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.041 s. - webmaster@yulucn.com