CLS
PRINT " COMPUTER PROGRAM USING HARDY CROSS
METHOD FOR PIPE
NETWORK "
PRINT "
***************************** ******************************"
PRINT
REM NP-NO.OF PIPES,NL
-NO.OF LOOPS,MAX-MAX.NO OF ITERATIONS ALLOWED
REM VIS-VISCOSITY OF FLUID
, ERS-ERROR PARAMETER,G2-2*ACCEL OF GRAVITY
REM NUNIT=0 D&E IN INCH,L IN FEED AND QI IN CFS
REM NUNIT=1 D&E IN MILLIMETER,L IN METER AND QI IN L/S
DIM D(50),
K(50), L(50), E(50), QI(50), LP(42, 7), NN(42)
DIM VL(50),
HL(50), HE(50), AR(50), F(50), G(50)
120 READ NP, NL, NUNIT, MAX,
REM II-PIPE NO.,D(II)-DIAMETER
OF PIPE
REM L(II)-LENGTH
OF PIPE,E(II)-WALL POUGHNESS OF PIPE
REM QI(II)-INITIOL
FLOW SATISFYING CONTINUTY EQS.
REM F & G ARE
THE JUNCTION NO. AT TWO ENDS OF EACH PIPE
FOR I = 1 TO NP
READ II
READ D(II),
L(II), E(II), QI(II)
E(II) =
E(II) / D(II)
IF NUNIY = 0 GOTO 230
D(II)
= D(II) / 1000: QI(II) = QI(II) / 100: GOTO 240
230 D(II) = D(II)
/ 12!
240 NEXT I
REM IF G2<.0001 THEN G2=64.4 OR
G2=19.6
ELOG = 18.7 * 43429
FOR I = 1 TO NP
QM = ABS(QI(I))
DEQ = .1 * QM
AR(I) =
.78539392# * D(I) ^ 2
ARL = L(I)
/ (G2 * D(I) * AR(I) ^ 2)
V1 = (QM - DEQ) / AR(I)
V2 = (QM + DEQ) / AR(I)
RE1 = V1 * D(I)
/
RE2 = V2 * D(I)
/
IF RE2 > 2100 GOTO 420
F1 = 64 / RE1
F2 = 64 / RE2
E(I) = 1!
K(I) = (F1
+ F2) / 2! * ARL
GOTO 700
420 MM = 0
F = 1! / (1.14 - .8685889 * LOG(E(I))) ^ 2
PAR = V1 * SQR(.125
* F) * D(I) * E(I) /
IF PAR > 65 GOTO 680
RE = RE1
470 MCT = 0
480 FS = SQR(F)
FZ = .5 / (F * FS)
ARG = E(I)
+ 9.350001 / (RE * FS)
FF = 1! / FS - 1.14 + 2 * .43429 * LOG(ARG)
DF = FZ + ELOG * FZ / (ARG * RE)
DIF = FF / DF
F = F + DIF
MCT = MCT + 1
IF (ABS(DIF)
> .00001) AND (MCT < 15) GOTO 480
IF MM = 1 GOTO 620
MM = 1
RE = RE2
F1 = F
GOTO 470
620 F2 = F
BE = (LOG(F1)
- LOG(F2)) / (LOG(QM + DEQ) - LOG(QM - DEQ))
AE = F1 * (QM - DEQ) ^ BE
E(I) = 2!
- BE
K(I) = AE
* ARL
GOTO 700
680 K(I) = F *
ARL
E(I) = 2
700 NEXT I
PRINT "COEF.K IN EXPONENTIAL
FORMULA"
INPUT "WOULD YOU LIKE TO INPUT COEF.K ?(Y/N)"; A$
IF A$ = "N" THEN 750
FOR I = 1 TO NP
INPUT K(I)
NEXT I
750 FOR I = 1 TO NP
PRINT K(I)
NEXT I
PRINT "EXPONENT N IN EXPOPNENTIAL
FORMULA"
FOR I = 1 TO NP
PRINT E(I)
NEXT I
INPUT A$
REM NNP AREA THE NUMBER OF PIPES AROUND
LOOP .
REM LP(I,J)
AREA THE PIPE NO.AROUND THE
REM IF COUNTER CLOCKWISE THIS NUMBER IS
NEGETIVE.
FOR I = 1 TO NL
READ NNP
FOR J = 1 TO NNP
READ LP(I,
J)
NEXT J
NN(I) =
NNP
NEXT I
NCT = 0
920 SUM = 0
FOR I = 1 TO NL
NNP = NN(I)
SUM1 = 0
SUM2 = 0
FOR J = 1 TO NNP
IJ = LP(I,
J)
IIJ = ABS(IJ)
HL = IJ / IIJ * K(IIJ) * QI(IIJ) ^ E(IIJ)
SUM1 = SUM1 + HL
SUM2 = SUM2 + E(IIJ) * ABS(HL) / QI(IIJ)
NEXT J
DQ = SUM1 / SUM2
SUM = SUM + ABS(DQ)
FOR J = 1 TO NNP
IJ = LP(I,
J)
IIJ = ABS(IJ)
QI(IIJ) =
QI(IIJ) - (IJ / IIJ) * DQ
IF QI(IIJ)
> 0 GOTO 1140
PRINT "THE DIRECTION OF PIPE
NO.("; IIJ; ")IS INCORRECT "
PRINT "PLEASE CORRECT THE
DIRECTION AND RE SUBMIT"
STOP
1140 NEXT J
NEXT I
NCT = NCT + 1
IF (NCT < MAX) AND (SUM > ERS)
GOTO 920
INPUT "PRESS <CR> RO
CONTINUE"; D$
FOR I = 1 TO NP
HE(I) =
K(I) * (ABS(QI(I))) ^ E(I)
NEXT I
FOR I = 1 TO NP: READ F(I), G(I): NEXT I
PRINT CHR$(15);
WIDTH LPRINT 140
PRINT "
--------------------------------------"
FOR I = 1 TO NP: HL(I)
= HE(I) * 1000 / L(I): NEXT I
PRINT " PIPE FLOW RATE
"
IF NUNIT = 0 THEN GOTO 1480
FOR I = 1 TO NP: D(I)
= D(I) * 1000: QI(I) = QI(I) * 1000: NEXT I
PRINT " NO. L/S ": GOTO 1500
1480 FOR I = 1 TO NP: D(I)
= D(I) * 12: NEXT I
PRINT " NO. CFS "
1500 PRINT "
--------------------------------------"
FOR I = 1 TO NP
PRINT USING "
## #######.###### "; I;
QI(I) / 1000
NEXT I
INPUT "WOULD YOU LIKE TO RUN
ANOTHER SET OF DATA?(Y/N)"; A$
IF A$ = "Y" GOTO 120
STOP
END
DATA 5,2,1,10,0.000682,0.01,19.62
DATA 1,800,3000,0.012,500
DATA 2,350,2000,0.012,100
DATA 3,800,3000,0.012,500
DATA 4,600,2000,0.012,300
DATA 5,500,3000,0.012,200
DATA 3,1,2,-3
DATA 3,5,-4,-2
DATA 1,2,2,4,1,4,4,3,2,3