流体输配管网习题(龚光彩教材)- 副本 下载本文

管路 8

节点编号 节点2 节点 3 节点 4 节点 5 节点 6 水库 1 水库 7

260 250

表4 各节点计算结果 需水量(l/s) 压力水头 (m) 0.00 0.00 0.00 0.00 150.00 -319.72 19.72

表5 各管路计算结果 40.45 30.96 30.05 29.16 29.82 50.00 30.00

管路编号 管路 1 管路 2 管路 3 管路 4 管路 5 管路 6 管路 7 管路 8 流量(l/s) 319.72 133.59 62.19 19.72 42.47 71.40 186.12 36.12 流速(m/s) 6.52 2.72 1.27 0.40 0.87 1.46 3.79 0.74 单位损失(m/km) 144.71 28.75 6.98 0.83 3.44 9.01 53.13 2.55

9-4 编写教材例9-8解算源程序

PROGRAM FWJS

!INTGER NN,NJ,NF,NK,NZ,MI,E

!NN 分支数 NJ 节点数 NF 风机数 NK 固定风量分支数 !NZ 自然风压标志符 0 无风压 MI最大迭代数 PARAMETER(NN0=100,NJ0=100,NF0=100) PARAMETER(NK0=100,NZ0=100,E0=1.0E-4)

PARAMETER(NN4=4*NN0,NJ2=2*NJ0,NM0=10)

DIMENSION NA(NN4),JC(NJ2),BR(NN0),R(NN0),Q(NN0),RR(NN0),J1(NN0)

DIMENSION ME(NM0),NP(NN0),SP(NM0),DD(NK0+NF0),HH(NN4),NT(NN0) DIMENSION X(3),FX(3),C(NM0,3),FQ(NF0),J2(NN0) INTEGER BR

OPEN(1,FILE='DATA.TXT')

READ(1,*) NN,NJ,NF,NK,NZ,MI,E NM=NN-NJ+1

WRITE(*,*) ' NN NJ NM NF NK NZ MI E' WRITE(*,100) NN,NJ,NM,NF,NK,NZ,MI,E 100 FORMAT(7(I4,1X),E8.2) DO I=1,NN

READ(1,*) J1(I),J2(I),R(I) BR(I)=I RR(I)=R(I) END DO

33

WRITE(*,*) ' J1 J2 R' DO I=1,NN

WRITE(*,'(I8,1X,I8,1X,F8.4)') J1(I),J2(I),R(I) END DO

KF=NK+NF IS=KF+1 IE=NN-1 JE=IE

DO I=IS,IE DO J=IS,JE

IF(RR(J+1)<=RR(J)) GOTO 80 T=RR(J)

RR(J)=RR(J+1) RR(J+1)=T T=BR(J)

BR(J)=BR(J+1) BR(J+1)=T 80 CONTINUE

END DO !END OF J JE=JE-1

END DO !END OF I

DO I=1,NJ JC(I)=0 END DO L=0 N=0

DO I=NN,KF+1,-1

NT(I)=0; K=BR(I); JA=J1(K); IF(JC(JA)==JC(JB)) GOTO 170 IF(JC(JA)>JC(JB)) GOTO 150 IF(JC(JA)==0) GOTO 145

JJ=JC(JB) !BEGIN 195 DO J=1,NJ

IF(JC(J)==JJ) JC(J)=JC(JA) END DO !END OF 195

GOTO 185

145 JC(JA)=JC(JB) GOTO 185

150 IF(JC(JB)==0) GOTO 165

JJ=JC(JB) !BEGIN 195 DO J=1,NJ

JB=J2(K) 34

IF(JC(J)==JJ) JC(J)=JC(JA) END DO !END OF 195 GOTO 185

165 JC(JB)=JC(JA) GOTO 185

170 IF(JC(JA)==0) GOTO 180 NT(I)=1 N=N+1 GOTO 185 180 L=L+1 JC(JA)=L JC(JB)=L

185 CONTINUE END DO

IF(N+NK+NF==NM) GOTO 220 WRITE(*,*) 'N=',N,'KF=',KF STOP

220 IF(KF>0) GOTO 230 GOTO 240 230 DO I=1,KF NT(I)=1 END DO 240 JK=0 JE=0 L=0 DO I=1,NN

IF(NT(I)>0) GOTO 255 GOTO 365 255 K=BR(I) L=L+1 JK=JK+1 NA(JK)=K JA=J1(K) JB=J2(K) N=I+1

260 CONTINUE DO J=N,NN

IF(NT(J)==0) GOTO 270 GOTO 305 270 K=BR(J)

IF(JB==J1(K)) GOTO 290 IF(JB==J2(K)) GOTO 285 GOTO 305 285 JB=J1(K) JK=JK+1 NA(JK)=-K

35

GOTO 295 290 JB=J2(K) JK=JK+1 NA(JK)=K

295 IF(JA==JB) GOTO 315 NT(J)=-1 GOTO 260

305 CONTINUE END DO GOTO 335

315 CONTINUE DO W=N,NN

IF(NT(W)>=0) GOTO 325 NT(W)=0

325 CONTINUE END DO ME(L)=JK JE=JK GOTO 365

335 K=ABS(NA(JK))

IF(NA(JK)>=0) GOTO 350 JB=J2(K) GOTO 352 350 JB=J1(K) 352 JK=JK-1

IF(JK>JE) GOTO 260 K=BR(I)

WRITE(*,*) 'K=',K STOP

365 CONTINUE END DO

ML=ME(NM)

WRITE(*,*) ' MESH BR NA' JE=0

DO I=1,NM JS=JE+1 JE=ME(I) L=JE-JS+1 !WRITE(*,*)

WRITE(*,'(15(I6,1X))') I,L,(NA(J),J=JS,JE) !END DO END DO

WRITE(*,*) 'TOTAL=',ML

IF(NZ==0) GOTO 500 DO I=1,NN NP(I)=0

36