计算程序
2020-01-19 · 技术研发知识服务融合发展。
c name qs.for,根据稳定流抽水试验资料计算Q-s曲线
c先计算曲度值,再用最小二乘法确定方程系数,N=1:直线型Q=a+bs,1<N<2:幂曲线型lgQ=a+blgs N=2:抛物线型s=aQ+bQ2,N>2:对数曲线型Q=a+blgs N<1:反常曲线
c 变量标识符:s0(10),q0(10)—相当于(1-11-1)至(1-11-5)式中的si、Qi;s(10),q(10)—相当于(1-11-1)至(1-11-5)式中的lgsi、lgQi;ss(10)—相当于(1-11-2)式中的si或(1-11-3)式中的si/Qi
dimension s0(10),q0(10),ss(10),s(10),q(10)
open(1,file=’mqs.txt’)
read(1,*)m
read(1,*)(q0(i),s0(i),i=1,m)
close(1)
an=0
do 100 i=1,m
s(i)=alog10(s0(i))
q(i)=alog10(q0(i))
ss(i)=s0(i)
100 continue
c 以下4行计算曲度值N:
do 10 i=2,m
an=an+(s(i)-s(1))/(q(i)-q(1))
10 continue
an=an/(m-1)
s1=0
q1=0
s2=0
q2=0
qs=0
if(an.ge.1.and.an.le.1.05)goto 190
if(an.gt.1.05.and.an.le.1.95)goto 270
if(an.gt.1.95.and.an.le.2.05)goto 160
if(an.ge.2.05)goto 340
c 当N<1时,为反常情形,停止计算:
if(an.lt.1)goto 440
c 以下10行按(1-11-3)式计算a、b值:
160 do 20 i=1,m
20 ss(i)=s0(i)/q0(i)
c 以下7行按(1-11-2)式计算a、b值:
190 do 30 i=1,m
s1=s1+ss(i)
q1=q1+q0(i)
q2=q2+q0(i)**2
30 continue
b=(m*s1-s1*q1)/(m*q2-q1**2)
a=(s1-b*q1)/m
goto 900
c 以下6行及以下第14、15行按(1-11-4)式计算a、b值:
270 do 40 i=1,m
qs=qs+s(i)*q(i)
q1=q1+q(i)
s1=s1+s(i)
s2=s2+s(i)**2
40 continue
goto 890
c 以下8行按(1-11-5)式计算a、b值:
340 do 50 i=1,m
qs=qs+q0(i)*s(i)
q1=q1+q0(i)
s1=s1+s(i)
s2=s2+s(i)**2
50 continue
890 b=(m*qs-q1*s1)/(m*s2-s1**2)
a=(q1-b*s1)/m
900 write(*,*)’n=’,an,’a=’,a,’b=’,b
open(1,file=’nab.txt’)
write(1,60)an,a,b
close(1)
60 format(’n=’,f10.6,’a=’,f10.6,’b=’,f10.6)
goto 90
440 open(1,file=’nab.txt’)
write(1,80)an
close(1)
80 format(’n=’,f10.6)
90 open(1,file=’qs0.txt’)
write(1,*)’q(m3/d)s(m)’
write(1,*)’──────────’
write(1,70)(q0(i),s0(i),i=1,m)
write(1,*)’──────────’
close(1)
70 format(f10.2,f10.3)
stop
end