Вы находитесь на странице: 1из 3

Store geometry elements for the next section

-----------------------------------------------------------WIDTH
= WIDTH1
AREA = AREA1
K
= K1
DKDY = DKDY1
Initialize the start index of forward sweep
-----------------------------------------------------ISTART
=2
ELSE
INITIALIZE E(1) & F(1) FROM D/S B.C.
-----------------------------------------Call usbc (iustyp, X(1), Y(1), Q(1), nbcus, bcus, dbcus, e(1), f(1)
Initialize the start index of forward sweep
-----------------------------------------------------Istart = 1
End if
Forward sweep
============
Ibcdone
Do 200 I = start, nox-1
Compute geometry of the cross-section
--------------------------------------------------Call geometry (x(1+1), (y(i+1), area1, width1, k1, dkdy1)
Chek for internal boundary conditions
------------------------------------------------IF (IBCDONE.GE.NIBC) GOTO 185
DO 180 J = 1, NIBC
Chek the location of the structure
-------------------------------------------IF (I.NE. IIBC (J)) GOTO 180
CALL IBCMANAGER (IBCTYP(J),Y(I), Y(I+1), Q(I), Q(I+1), TIMEM,
QINFLOW, SINFLOW, NINFLOW, SURF, NSURF, FLOORELEV, CGATE,
AGATE, CWEIR, BWEIR, YWEIR, CINTAKE, BINTAKE, YINTAKE, A, B,
C, D, G AA, BB, CC, DD, GG)
IBCDONE = IBCDONE +1
GOTO 190
CONTINUE
Compute influence coefficient
--------------------------------------DX = X(I+1) (i)
CALL UNSTEADYCOEFF (DX, WIDTH, WIDTH1, Y(I), Y(I+1), AERA, AERA1, Q(I),
Q(I+1), K, K1,
DKDY, DKDY1, A, B, C, D, G AA, BB, CC, DD, GG)
CALL INFLUENCECOEFF (A, B, C, D, G AA, BB, CC, DD, GG, E(1), F(1),E(i+1), F(I+1),
L(I), M(I), N(I))
Store geometry elements for the section
----------------------------------------------------Width = width1

Area = area1
K
= k1
DKDY = DKDY1
CONTINUE
Initialize DY & DQ from u/s b.c.
---------------------------------------CALL DSBC (IDSTYP, X(NDX), Y(NDX), Q(NDX), NBCDS, BCDS, DBCDS, E(NDX), F(NDX),
DY, DQ)
RETURN SWEEP
=============
SUMDQ = 0.0
DO 300 I = NDX -1, 1, -1
Y(I+1) = Y(I+1) + DY
Q(I+1) = Q(I+1) + DQ
DY
= L(I)*DY + M(I) * DQ+N(I)
DQ
= E(I)*DY+ F(I)
SUMDQ = SUMDQ + DQ*DQ
CONTINUE
IF (IUSTYP.EQ.4) THEN
Y(1)
= Y(1) + USDGMMA
Q(1)
= Q(1) + DY
SUMDQ = SUMDQ + DY * DY
ELSE
Y(1)
= Y(1) + DY
Q(1)
= Q(1) + DQ
SUMDQ = SUMDQ + DQ * DQ
END IF
Dump to screen
==============
IF(.NOT.FIRST)
WRITE(*,(F8.1,20(A, F10.2)))
TIMEM,( ,Y(J), ,Q(J),J=1, NDX, NDX-1)

Check for steady intial condition


------------------------------------------IF (STEADY) GOTO 900
IF (SQRT(SUMDQ/NDX).GT.EPS.AND. ICOUNT.LE.MAXCOUNT) THEN
ICOUNT = ICOUNT + 1
FIRST = .FALSE.
GOTO 500
ELSE
STEADY = .TRUE.
FIRST = .TRUE,
END IF
Print the output
--------------------IF (FIRST) THEN
WRITE (OUTF,(A, 16, A))
steady state stabilization, ICOUNT, steps

WRITE(OUTF,1500) (--------------------------, I=1, NPRINT)


WRITE(OUTF,(A)) unsteady computation begin:
WRITE (*,(A, 16, A))
steady state stabilization, ICOUNT, steps
WRITE(*,(A)) unsteady computation begin:
WRITE(*,(F8.1,20(A,F10.2)))
TIMEM,( ,Y(J), ,Q(J),J=1,NDX,NDX-1)
FIRST = .FALSE.
END IF
IF (MOD(IT,IFREQ).EQ.0) WRITE(OUTF,(F6.1,20(A,F10.2)))
TIMEM, (TAB,Y(IPRINT(J)), TAB,Q(IPRINT(J)),J=1,NPRINT)
Compute Y MAXIMUM when unsteady computation start
--------------------------------------------------------------------------DO 350 I = 1,NDX
IF (YMAX(I).LT.Y(I))THEN
YMAX = Y(I)
TYMAX = TIMEM
ENDIF
CONTINUE
CONTINUE
Print Y maximum
----------------------WRITE(OUTF,1500)( --------------------------, I=1,NPRINT)

Вам также может понравиться