当前位置 :
fortranlog的表示问题运行错误意思是说没有alog这个数组fortran里不是自定义了这个函数?real::tw(0:n)湿球温度估算值序列real::etireal::etw饱和水汽压real,parameter::a=8.15*10**(-4)real::ej(0:n)水汽压的
6人问答
更新时间:2024-04-28 04:34:09
问题描述:

fortranlog的表示问题运行错误意思是说没有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合理的湿球温度

dowhile(.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

endif

e=eti*u

算出误差序列

tw(0)=t-15

doi=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

endif

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

enddo

算出最合适的湿球温度

errmin=err(0)

doi=1,n

if(err(i)

方光伟回答:
  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)是一个函数返回值.   等号右边是一个表达式.   你不能让一个函数返回值等于一个表达式.这从逻辑上就是说不通的.   你是想解方程么?
李艳红回答:
  恩就是通过这个表达式算出eti不知道标准的fortran语句怎么通过这个公式算出或者表示出eti下面的计算要用到这个值。
方光伟回答:
  如果你要算eti,那么应该写成:eti=...这样的形式。直接写一个方程在哪里,编译器不会帮你解方程。任何编译器都不可能。为什么?f1(x)=f2(y,z)你说解x,为什么不是解y呢?为什么不是解z呢?编译器凭什么认为是在解eti?而不是解出t0t1??如果你需要解方程,那么自己推算公式,最后写成显式的式子: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就是这个方程在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)
李艳红回答:
  行,感谢。
最新更新
PC端 | 移动端
掌乐学(zhanglexue.com)汇总了汉语字典,新华字典,成语字典,组词,词语,在线查字典,中文字典,英汉字典,在线字典,康熙字典等等,是学生查询学习资料的好帮手,是老师教学的好助手。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
Copyright©2009-2021 掌乐学 zhanglexue.com 版权所有 闽ICP备2020019185号-1