
i00
ii0
120
140
5
PROGRAM PROGI9
THIS PROGRAM SOLVES A SYSTEM OF N FIRST ORDER DIFFENTIAL
EQUATIONS BY THE RUNGE-KUTTA FOURTH ORDER METHOD.
THE EQUATIONS ARE OF THE FORM DXl/DT = FI(X,T)
DX2/DT=F2(X,T), DX3/DT=F3(X,T), ETC.
DERIVS = A SUBROUTINE THAT CALCULATES VALUES OF THE
N DERIVATIVES. IT IS INVOKED BY THE STATEMENT
CALL DERIVS (X, T, F, N)
TO = INITIAL VALUE OF THE INDEPENDENT VARIABLE.
H = THE STEP SIZE, THE INCREMENT TO TO.
X0 = THE ARRAY THAT HOLDS THE INITIAL VALUES OF THE
FUNCTIONS.
XEND = AN ARRAY THAT RETURNS THE FINAL VALUES OF THE
FUNCTIONS.
XWRK = AN ARRAY USED TO HOLD INTERMEDIATE VALUES DURING
CALCULATION. IT MUST BE DIMENSIONED OF SIZE
4 X N IN THE MAIN PROGRAM.
N = THE NUMBER OF EQUATIONS IN THE PROGRAM.
F = AN ARRAY THAT HOLDS VALUES OF THE DERIVATIVES.
TF = FINAL VALUE OF THE INDEPENDENT VARIABLE.
EXTERNAL DERIVS
DIMENSION X0(I:4),F(I:4),XEND(I:4),XWRK(I:4,1:4)
REAL KI, K2, K3, K4, K5
COMMON/DATAI/X0
COMMON/DATA2/KI,K2,K3,K4,K5
COMMON/DATA3/TF
DATA N,TF/4, i0.0/
OPEN (UNIT=I, FILE='PRN ' )
WRITE (i, i00)
FORMAT (15X, 'RUNGE-KUTTA FOURTH ORDER METHOD FOR A SYSTEM OF')
WRITE (i, ii0)
FORMAT (25X, 'ORDINARY DIFFERENTIAL EQUATIONS',/,5X, 74(IH*),//)
WRITE (i, 120)
FORMAT (18X,'TIME',3X,'CONC. CA',3X,'CONC. CB',3X,'CONC.
CC',
3X,'CONC. CD',/5X, 74(IH-),/)
TO = 0.0
H = 0.5
WRITE (i, 140) TO, (X0(I), I = i, N)
FORMAT (14X, F8.2, 5X, 4(F6.2, 5X))
CALL RKSYST (DERIVS, T0, H, X0, XEND, XWRK, F, N)
TO = TO + H
DO I = i, N
X0(I) = XEND(I)
END DO
100