adif, a fortran iv progam for solving the shallow-water equations

21
ComguterJ & Ggo$cimcts, Vol. 5, pp. 19,-39 00~-3004/'/9/0501-,fl019~1~2,00/0 Perpmon Press Lid., 1979. Printed in Great Britain ADIF, A FORTRAN IV PROGRAM FOR SOLVING THE SHALLOW-WATER EQUATIONS I. M. NAVON National Research Institute for Mathematical Sciences, P.O. Box 395, Pretoria, South Africa (Received 5 May 1978; revised 25 October 1978) Abstract--A computer program is documented,implementing a linear Alternating DirectionImplicit(ADI)method for a limited-area finite difference integration of the shallow-water equations on a ~ plane. Arbitrarily large time-steps can be used with this method, which is stable unconditionallyfor the linearized equations. The method also is efficient computationally, as the difference equations are factored into one-dimensional operators which approximately reproduce the original set of equations, and this obviates the necessityfor solvinga matrix of large bandwidth. A line-p•ter plot contouring the height field is generated as part of the output. Program options include the determination at each time step of two of the intelc"al invariants of the shallow-waterequation. For long-term runs either a dissipative term is provided, or a nonlinear lateral eddy viscositycoefficientof a friction force. Key Words: Algorithm,FORTRAN,ADI. Shallow-waterequations, Geophysics. INTRODUCTION The shallow-water equations system accurately describes wave motion on the surface of a homogeneous fluid when the horizontal wavelength is longer than both the vertical scale of motion and the depth of the fluid. As such the system is used widely in oceanography as a mathematical model for simulating circulation in coastal regions, lakes, etc. (Connor and Brebbia, 1976; Abbott, Donesgaard and Rodenhuis, 1973, Cheng, 1972; Connor and Wang, 1974). In meteorological applications the same system of equations usually is termed 'the primitive barotropic equations' and has been used widely by numerous in- vestigators for testing new numerical procedures prior to applying them to general three-dimensional models of the atmosphere (e.g. Grammeltvedt, 1969; Gustafsson, 1971; Cullen, 1973, 1974; Chen and Miyakoda, 1974; Merilees, 1973; Elvius and Sundstrtm, 1973; Fairweather and Navon, 1977; to cite but a few). As the shallow-water equations constitute a quasilinear system of hyperbolic equations, they are subjected to the Courant, Friedrichs, and Levy (CFL) stability condition when discretized by explicit time-difference ap- proximations. However, in oceanographic and meteorological applications the time discretization error is small compared with the discretization error in space, and the short time-step imposed by the CFL stability condition can be avoided by using implicit time- differencing procedures. Gustafsson (1971) was the first to propose an efficient fully implicit differencing method based on alternating direction techniques for solving the shallow-water equa- tions, but his method requires systems of nonlinear al- gebraic equations to be solved at each time-step. Fairweather and Navon (1977) proposed a linear ADI method for solving the shallow-water equations, the method being based on a perturbation of a linearized Crank-Nicolson type discretization, and requiring at each time-step only the solution of systems of linear algebraic equations. The method was determined to be more efficient computationally than the ADI method proposed by Gustafsson (1971). A review of the linear ADI algorithm applied to the shallow-water equations on a ~-plane for a test problem is presented in the next section, whereas the remainder of the report is devoted to the description of the program ADIF and specifications for its use. A listing of the FORTRAN IV source code of the program ADIF is included in Appendix A. Two variants of ADIF are presented, corresponding to the use of either the dis- sipative term or the nonlinear lateral eddy viscosity term for long-term runs. Typical outputs for 48-hour forecasts are presented in Appendix B, which includes a printer- plotted map of the height field. 19 RIgVIEW OF THE LINEA.q ADII~'I'HOD The shallow- water equations The shallow-water equations can be written (Hough- ton, Kasahara, and Washington, 1966) Ow aw Ow --Ot = A(w) ~-~ + B(w) ~y + C(y)w O<<.s<~L, 0~<y~<D, t>~0. (i) where L and D are the dimensions of a rectangular domain of area ?, = L. D. w is the vector function, w = (u, v, ~)T, (2) u, v are the velocity components in the x and y direc- tions respectively, and -- 2Vgh (3) where h is the depth of the fluid and g is the acceleration of gravity.

Upload: brunohild

Post on 30-Dec-2015

69 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: ADIF, A FORTRAN IV Progam for Solving the Shallow-water Equations

ComguterJ & Ggo$cimcts, Vol. 5, pp. 19,-39 00~-3004/'/9/0501-,fl019~1~2,00/0 Perpmon Press Lid., 1979. Printed in Great Britain

ADIF, A FORTRAN IV PROGRAM FOR SOLVING THE S H A L L O W - W A T E R EQUATIONS

I. M. NAVON National Research Institute for Mathematical Sciences, P.O. Box 395, Pretoria, South Africa

(Received 5 May 1978; revised 25 October 1978)

Abstract--A computer program is documented, implementing a linear Alternating Direction Implicit (ADI) method for a limited-area finite difference integration of the shallow-water equations on a ~ plane. Arbitrarily large time-steps can be used with this method, which is stable unconditionally for the linearized equations. The method also is efficient computationally, as the difference equations are factored into one-dimensional operators which approximately reproduce the original set of equations, and this obviates the necessity for solving a matrix of large bandwidth. A line-p•ter plot contouring the height field is generated as part of the output. Program options include the determination at each time step of two of the intelc"al invariants of the shallow-water equation. For long-term runs either a dissipative term is provided, or a nonlinear lateral eddy viscosity coefficient of a friction force.

Key Words: Algorithm, FORTRAN, ADI. Shallow-water equations, Geophysics.

INTRODUCTION

The shallow-water equations system accurately describes wave motion on the surface of a homogeneous fluid when the horizontal wavelength is longer than both the vertical scale of motion and the depth of the fluid. As such the system is used widely in oceanography as a mathematical model for simulating circulation in coastal regions, lakes, etc. (Connor and Brebbia, 1976; Abbott, Donesgaard and Rodenhuis, 1973, Cheng, 1972; Connor and Wang, 1974).

In meteorological applications the same system of equations usually is termed 'the primitive barotropic equations' and has been used widely by numerous in- vestigators for testing new numerical procedures prior to applying them to general three-dimensional models of the atmosphere (e.g. Grammeltvedt, 1969; Gustafsson, 1971; Cullen, 1973, 1974; Chen and Miyakoda, 1974; Merilees, 1973; Elvius and Sundstrtm, 1973; Fairweather and Navon, 1977; to cite but a few).

As the shallow-water equations constitute a quasilinear system of hyperbolic equations, they are subjected to the Courant, Friedrichs, and Levy (CFL) stability condition when discretized by explicit time-difference ap- proximations. However, in oceanographic and meteorological applications the time discretization error is small compared with the discretization error in space, and the short time-step imposed by the CFL stability condition can be avoided by using implicit time- differencing procedures.

Gustafsson (1971) was the first to propose an efficient fully implicit differencing method based on alternating direction techniques for solving the shallow-water equa- tions, but his method requires systems of nonlinear al- gebraic equations to be solved at each time-step.

Fairweather and Navon (1977) proposed a linear ADI method for solving the shallow-water equations, the method being based on a perturbation of a linearized Crank-Nicolson type discretization, and requiring at each time-step only the solution of systems of linear

algebraic equations. The method was determined to be more efficient computationally than the ADI method proposed by Gustafsson (1971).

A review of the linear ADI algorithm applied to the shallow-water equations on a ~-plane for a test problem is presented in the next section, whereas the remainder of the report is devoted to the description of the program ADIF and specifications for its use. A listing of the FORTRAN IV source code of the program ADIF is included in Appendix A. Two variants of ADIF are presented, corresponding to the use of either the dis- sipative term or the nonlinear lateral eddy viscosity term for long-term runs. Typical outputs for 48-hour forecasts are presented in Appendix B, which includes a printer- plotted map of the height field.

19

RIgVIEW OF THE LINEA.q ADI I~'I'HOD

The shallow- water equations The shallow-water equations can be written (Hough-

ton, Kasahara, and Washington, 1966)

Ow aw Ow --Ot = A(w) ~-~ + B(w) ~y + C(y)w

O<<.s<~L, 0~<y~<D, t>~0. (i)

where L and D are the dimensions of a rectangular domain of area ?, = L. D. w is the vector function,

w = (u, v, ~)T, (2)

u, v are the velocity components in the x and y direc- tions respectively, and

-- 2Vgh (3)

where h is the depth of the fluid and g is the acceleration of gravity.

Page 2: ADIF, A FORTRAN IV Progam for Solving the Shallow-water Equations

20 I . M . Nkvo~

In (!) A, B, and C are matrices given by where

A = - u 0 B = - v 4)12 0 u 4)/2 •

0' ! 1 C = .

0

Where I is the Coriolis term given by

(4)

f = 1 + ~(y - D/~) (5)

wit~ t =~t # corn=is. Periodic boundary conditions am assumed in the x

direction:

(6) w(x, y, t) = w(x +/., y, t),

whereas in the y-direction the boundary condition is

v(x, 0, t) = o(x, D, t) = 0. (7)

W'~b ~ bou~hey comiitio~ and with the in/tiad ¢oml/t/o~ w(x. y, 0) = ~,(x. y) the total energy

I f L [ o ("= + ~= + @~14)~=14~ dx dy (8) E=2Jo Jo

is iedepeadeut of time. A~o, the ava~e value of the heisht of the free

surfsce is couserved, that is,

(9) / ~ . / / / / k d.g dy

A in independent of time.

i_Oo,. 0 o I i0,. ol C. (')= 0 0 C, (=)= 0 0 0 (13) 0 0 0 0 0

and where, due to boundary conditions in the y direction,

Do, for k = l , 2 . . . . . N,_,, D,= D÷, and k=0.

D_, for k=N~. (i4)

The linear AD! alsorithm for the sludlow-water equa- tions (Fairweather and Navon, 1977) is given by

with

and where

(I- P;,*)w~ ÷')* = V; (15-,)

(I- "* "÷' 01, )wj, = 2w~ ÷ " - VT, (tSb)

v ; = ( l+ O; ' )w; (n6)

At p~* = T (A(e,;)DO. + c, ' " i

(17)

O;* = ~ (e(~;)D, + C~ m

. ~ = I/2(3w;, - w;-'), n ;. I (Ilia)

,~. * w~. + (e¢ '+ O~,v~., (lSb)

and ~ w~ ÷')" is m mxilisry solmion. Note that m (18) we now lave to solve eel,/sequagm of

limar s lmm, of .Jedm~ eq, l e m . Al,o, owi~ w eke m m i ~ m oq ~ i o d k boud,ey ¢ m ~ e m in , ~ x dkec~m. ~e ¢ ~ l i m m u k a wMch arise wbme eke , m e aDi ~ i, ,Wlkd .kJm hee/ms~ row,. are either block or scalar cyclic tr idiap~.

T/~//mar AD/=~o~km Let H. sad H, be pod~ve inwl~m and m

AX =/AN., Ay = D/H,. (IO)

m A m W T/,, ta t probi~

The ~ heist Odd co=litim No. t of Ommmelt- vedt (1969) was ,,ted u test problem:

We shall denote by w; an approxi l t f ion to w(JAx, kAy, na t ) where At is the time-step. The bask dithnmce opmtors m

DO.w; = (w;'÷,., - w;'_,.,)l(2a~).

D÷.w; = (w';÷,., - w r t ) l ~ ,

D_ .w; . = (w;. - w';_,.=)lAx

(!!)

emi~veb, , with mimilsr delni~ms fro" D... D.,, and D-,. We aim ekdae the epemtom P ; and O ; b y

P ; = ~ (A(w; ) t :~ + ¢: " , D

Q; = -~ (B(w;)DO + ¢ ~ ,

02)

k(~ y) = H.+ H, utah ( - - ~ ~ )

÷ . . . = ' ( % ~ ; ) ",m (~-~). (19)

The iuifisi velocity fields were dedved from the add u ~ the p m e o ~ i c reiseomhip

= ~'~. (20

'l'ne m esed were

L=44O0km D,,,a~O_ km

/3 = !.5" 1O-" sec-' m-'

I = I0 mmc -a He- 2000m Ha n ~ 0 m H2= J33m. (21)

Page 3: ADIF, A FORTRAN IV Progam for Solving the Shallow-water Equations

ADIF, a FORTRAN 1V program for solving theshallow-water equations

The time and space increments used for short runs (2 days) were

(a) Ax=Ay=200km At=lS00sec

(b) Ax = ~y = 200 km At = 3600 sec.

For long-term integrations (20 days) the time and space increments were

Ax = Ay = 500 km At = 3600 sec. (23)

Dissipation term To avoid nonlinear instabilities in long-term in-

tegrations a dissipation term of the form

EAt3[D+xD-~ + D+,D_,]w~k

was added to the right-hand side of equation (15a) ren- dering our approximation dissipative of order 2 (Kreiss and Oliger, 1973). An optimal value of ~ = 0.020 was determined experimentally (Fairweather and Navon, 1977) and it permitted the conservation of total energy and mean height after 20 days of numerical integration.

Nonlinear eddy diHusion Another method of handling nonlinear instabilities, and

one which is employed frequently in modeling ocean circulations, is to use a nonlinear eddy viscosity term. In the program ADIF, by calling subroutine EDDY (des- cribed here), an option is included which includes a nonlinear eddy viscosity term. The calculation is based upon two-dimensional turbulence theory.

Following Haney and Wright (1975) the eddy viscosity coefficient is written as

u = uo(I + ylVselfAx3)),

where uo and 1' are constants, ~ is the relative vorticity and V is the horizontal del-operator.

To equations (15a) and (15b) are added the terms F. and F,, the x and y components respectively of the friction force due to lateral eddy viscosity, and given by

F, = ~" 0,Vu), F, = V. O, Vv).

In subroutine EDDY the same finite-difference ap- proximation is followed as that of Haney and Wright (1975).

Another expression which also can be used in subrou- tine EDDY for the nonlinear eddy viscosity coefficient was given by Crowley (1970):

z, = ,P/2[V¢[Vx3,

where d is a dimensionless coefficient. Fairweather and Navon (1977) determined that when

nonlinear instabilities are being dealt with, the second- order dissipation term is more efficient.

21

Program operations Explanatory comments are included in the program

listing in Appendix A. We shall first describe the input specifications and then the various subroutines of pro-

(22) gram ADIF. (i) Input specifications. The input to the program con-

sists of two cards, as follows. Card i: FORMAT (6E10.4,215,FI0.0) contains the fol-

lowing nine parameters. FL--the length dimension (L) of the rectangular

domain; D---the width dimension (D) of the rectangular

domain; T--total simulation time (in seconds);

DX--the space increment in the x direction in meters;

DY--the space increment in the y direction in (24) meters;

DT--the time-step in seconds; [PR---a parameter controlling output operations of

the program, that is specifying after how many time steps the forecast fields should be displayed;

MM--a parameter specifying which version of the ADIF program was used;

ADJ--the value of the coefficient of the diffusive term (~).

Card 2 (Called in subroutine SETUP) specifies different parameters relative to the initial field [see equa- tion (19)] using format 6EI0.4, and contain s the following five parameters.

H0--constant for the initial height field; H I---constant for the initial height field; H2---constant for the initial height field;

FI-I AT--.-Coriolis parameter; BETA--df/dy, the Rossby parameter. (ii) Main program and subroutines. The main program

SHALLOW reads the first data card and after some (25) preliminary calculations calls the subroutines SETUP,

LOOK, WSTAR, and UVOUT which perform the initial fields calculations and display the initial fields. After calculating the diffusivity term (or the nonlinear eddy- diffusion term by calling subroutine EDDY) the program loops each time step on the central subroutine AD! which performs the bulk of the linear ADI algorithm calculation and in turn calls the subroutines CYCBLK

(26) and BLKTRID, CYCTRID, and TRIDIAG. These subroutines solve the scalar and block-cyclic tridiagonal systems of linear algebraic equations resulting from the ADI-discretization of the shallow-water equations.

After a predetermined number of time-steps subrou- tine LOOK is called, which calculates the integral in- variants of total energy and mean height and in turn calls subroutines HOUT and MAPPA. These subroutines perform the printing and the line-printer plotting of the

(27) height field respectively. Finally, after the preset simulation time has been

reached, the u and v velocity field components are printed by calling subroutine UVOUT, "~nd the final height and velocity fields written on disk for further use.

Subroutine SETUP (U, V, PHI, H, NX, NY, S, C,

Page 4: ADIF, A FORTRAN IV Progam for Solving the Shallow-water Equations

22 I.M.

LX). This subroutine sets up the initial heilght field H, calculates the variable PHI = ~ = 2~/gk and from it, using equation (20), the components of the ~ velocity field U and V; the subroutine also calculates the Coriofis parameter E The pmmeters NX, NY, and LX are calculated in the main prosmm SHALLOW to be the

effective number of space increments in the x and y directions respectively, whereas LX is the maximal number of space increments in the x direction.

S and C are auxiliary parameters for calculating in- termediate trigonometric variables.

Sabmudne LOOK (U, V, PHI, H, NX, NY, LX). This subroutine culcohtes at each time step the total energy and mean heisht which are invariants of the shallow- water equations, it also prints these values, together with the height-field values, by calling subroutine H o u r , and calls subroutine MAPPA for a line-winter contour plot of the height field. The CPU time for each 12 time steps is also printed.

,.~abroatine MAPPA (FUN, C, NX, NZ, LX). This subroutine provides a visual disphy of the fieklht field by line-printins an isoline contour plot of the heisht field for every 50 meters. The parameter FUN gives the forecast field to be commu~, whereas the parameter C is the inverse of the comoor distance in meters (e.g. if we wish a 50-m contour distance, C = 0.02). The parameter NZ = NY+ I.

~romtime HOUT (H, NX, NY, LX). This subroutine clisitdy prints the heiSht field values in a matrix formal

Sabro.tbee WSTAR (IT, V, PHI, US, VS, PHIS, F, NX, NY, LX). ~ subroutine calculates the starting values for the alq~kation of the ADI algorithm following equation (ISb). it also imposes the conespeedins been- dary ~ . U, V, and PHI stand for the inifial fields whereas US, VS, PHI$ are the calculated fields follow- ins equation (ISb), F is the Coriolis parameter.

, . ~ t l m e UVOUT (W, NX, NY, LX). This subrou- tine disitally prints the values of the velocity field com- portents in a matrix formaL W stands for either the Uor the V component of the velocity field.

,fcdmm~ ADI (U, V, PHI, US, VS, PillS, UBS, VB& PHIBS, ,!:, ,4, B, C, E, W, NX, NY, IX, UN, VN, P/.//N, P, 0, R, S). This subroutine performs the bulk of the work in the use of the linear ADI algorithm to solve the shallow-water equations.

The variable/ND assumes the values 0, I, or 2. The value 0 ~ to the situation when the dissipative term Siven by equation (24) is used. The values ! and 2 are assumed if a nonlinear eddy diffusion term, given by equations (25) or (27) correspondingly, is included in the model.

The arrays A, B, and C describe the entries of the individual 2 x 2 block mtrkes belongin8 to a series of N, + I t t u c k . q , ~ ~ systems obtaimd from the applica/ku of the linear ADI algedthm to the cou- pled vmbbles (a, 4,) foliowin8 equation (15a). The mmix E descrhes the riaht-hand side of the block-cycik ngonul systems. The solution of those systems is obtaiued by ~ subroutine CYCBLK which in turn c,n, sobmm/ue BLKTRID.

Next a series of N, + I scalar cyclic tridialp~ml sys-

NAVON

terns have to be solved for the v field. The vectors P, W, R descn'he the entries of those vectors whereas the vector S describes the riOt-hand sides of the scalar cyclic tridiagoual systems. The solution of those systems is obtained by calling suMoutine CYCTRID which in turn calls subroutine TRIDIAG.

The intermediate fields thus obUtined are renamed VB$, PHIB$, and VB$ and correspond to w~ ÷')* of equation (15a).

In the second part of the AD! algorithm we first solve for the coupled variables (v, ~). The coeff~ient ~ s now are block-tridiqoual and are solved by callinlg the block-trld/alp)md solver, subroutiue BLKTPAD. The arrays A, B, C, and E are overwritten. Then the variable U is determined by solving a series of U'idiasonal coelfieient mtrices by calling subroutine TRIDIAG.

The new ~ variables thus obtained I ; * ' , v ; ÷', 4,~ ÷' are renamed UN, VN, and PHIN respectively.

Next, new sLertiq values US, VS, PHI8 are deter- mined using equation (Ih)0 whereas UN, VN, PHEN now become the current values for a new linear AD! time-step. For a detm'kd descn~ption of the linear ADI algorithm and the algebraic procedure (see Falrweather and Navon, 1977). Sabm~ine CYCBLK (N, P, O, R, 13, W). TI~ is a

cyclic block-tridingonal solver written so as to take full advantage of the fact that the blocks in the codgknt matrices are 2 x 2. The algorithm used (nne Navon,. 1977) is a generalization to block-cyclic lrldiaaomd system of the algorithm given by A h l ~ , Nilson, and Walsh in t967 (the ANW-ahmrithm).

" The definitions Of the aqpunents are as follows: P, W, and R are arrays of dimension 4 . N which contain the eleme~ of the 2 x 2 __M~__.s a k ~ the sub- diagonal, ~ , and superdiaMmal respectively; D is an array dimensioned 2 * N contaiaiq the risht- hand side:. W is a working-area array of dimension not less than 2 . N . 3 .

The solution vectors are stored in array D. N : NX. During the computation all input arrays m overw~..en.

S~mutmue BI..KTRID (N, M, A, B, C, 13, L). This subroutine is a specifie block-tridimjmml solver written for the situation when the ~ bioeh are 2 × 2. In the subroutine use is made of a direct-sohttion method based on block-Ganssinn e ~ without pivotiuS. The parameters A, B, C, D represent the same arrays as P, O, R, D of subroutine CYCBLK.

M takes the value 3 when the subroutine BLKTRID is called from CYCBLK and the value 1 when the subrou- tine BLKTPJD is called from s u l m m ~ ADI, in the second part of the linear ADI al~cithm. L stands for either NX or NY dependinS on whether we are solving equation (15a) or equation (tYo).

Subroutine CYCTRID (N, P, O, R, D, IV). This subroutine solves a scahu" cyclic ~ syatem usin8 the ANW alprithm and is mlkd omb' oaue for n siren matrix. The dehitimm of the mrlmuems are as follows.

P, O, and R are N.elemmt v___e,~vz_ ~ sub. cfingonal, dialNmul, and ~ elements. N = NX.

Page 5: ADIF, A FORTRAN IV Progam for Solving the Shallow-water Equations

ADIF, a FORTRAN IV program for solving the shallow-water equations

W is a working-area array of dimension 2 * N. D is the right-hand side N-elemenl vector. The solu- tion vector finally is overwritten on D. Subroutine TRIDIAG (N, M, A, B, C, D, L). This is a

classical tridiagonal solver. The definitions of the arguments are as follows.

N is either NX-I, when TRIDIAG is called from

23

subroutine CYCTRID, or NY, when TRIDIAG is called from subroutine ADI. M is either 2, when TRIDIAG is called from subrou- tine CYCTRID, or 1, when TRIDIAG is called from subroutine ADI. A, B, and C have the same meaning as the vectors P, Q, R in subroutine CYCTRID.

1 2 3 • S 0 'JP

1 222222222222202222 222222222222+02202 222222202220222202

2 22222+2+20++2+0202 222~222~2222220222 2222022272222022022

3 22220220~2000202022 22222022|2202222022 02+2222222+02002222

• 222222222200+020222 22222222222+202+0+2 2?22222222+0000+0++

S 2222~22012020202022 22|2222202200202020 0222222222200000202

8 2222202222200000002 2222202220222000+02 22222202002++0+000+

T 2222202222000000212 2222022222000202020 1222202202222202212

S 1111021210012000000 2222221221220000020 2 0 2 0 1 2 2 2 2 0 2 1 1 1 0 2 2 2 0

9 12202010+200010211+ 2211720010010210202 1 2 2 1 1 + 2 1 0 0 2 0 2 2 0 0 2 0 0

I0 0 2 2 2 2 2 2 2 0 1 0 2 2 0 0 2 2 1 2 2 1 2 2 2 2 2 2 2 1 2 2 1 1 2 1 2 1 2 1221212220212002121

11 1222122+20++020++02 2222222221222102212 222022001110000+002

12 1 0 2 2 2 2 0 2 1 2 2 2 0 0 0 0 0 2 2 2122200021010222102 122221201100020201

13 02211121220+0++2+0 212222222122022022 222221222202120102

I • 2+12102201++202+00 222220222010222112 222?2+2+1000202+00

IS 2 2 2 2 2 0 ? 2 1 0 0 0 2 0 0 1 0 0 222220121101000200 1 1 2 2 7 0 2 2 2 0 2 0 0 1 2 2 0 2

I1 i11210220002000112 I 2 2 0 2 2 2 0 2 2 0 2 0 2 0 2 0 2 222220222220000022

17 202220222|00000002 022202~00000221202 2 1 0 1 2 2 1 0 1 0 0 2 0 2 0 0 0 0

l e 102120201121101001 21221021202020000+ 22122220202+000120

19 02122210100+002+20 21122022200+20++2 0 0 2 0 0 0 2 2 2 0 0 2 0 0 0 2 2

8 9 10 11 12 13 16 IS 16 I ? 10 19

1111111111 00000 999999 8 0 8 8 0 0 8 • 9 1 8 • • • 0 • 1111111111 • s o o t 99999 8 0 0 0 8 8 0 8 8 0 0 • • 1 0 0

1111111111 00000 99999 1 0 0 8 8 8 • 0 8 • 1 0 8 • 1 8 111111111111 00oo0 99999 • 8 0 0 8 0 • 8 8 0 9 0 0 8 8 | 1111111111111 OOOO 99999 1 1 0 0 0 1 8 0 0 • • 8 8 • 0

1111111111111 00000 99909 o9000000ooo � eeo 11111111111111 0000 99999 81111010101111111

11111111111111 0000 09989 • • 0 0 • 1 1 1 1 1 1 0 1 0 1 111111111111111 0000 9999 1 0 8 • 1 0 1 1 1 1 1 1 0 1 1

111111111111111 OOC 9999 0 0 0 9 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11111111 OOOO 99599 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1

l l l i l l l l l l l l l l OOO0 " 99999 l l l • l l • l J l J l l l l l I 1 1 1 1 1 1 1 1 1 1 1 1 OOO 9199 O 9 8 0 8 1 1 1 1 1 0 8 J l l J

11111111111 000 9999 0•0811001190010 11111111 OOO 9999 o e o 9 o 8 0 8 o 0 1 o 8 0 0

1111111 OOO 9999 l l O l O e e l l e l l l e l I111111 O O O O 9999 1 0 0 0 1 0 1 8 0 1 1 | 0 0 0

111111 OCo 9999 118191011001101 111111 OOO 9999 8 8 8 0 8 0 0 0 8 8 0 8 8 8 0 111111 OOO 9199 181110111110111 111111 O00 9999 1 1 1 1 1 1 9 1 1 1 1 0 1 8 1 111111 OOO 9999 l l l l l l l J l l l l l l l 111111 OOO 9999 l l l l J l l l l l l l l l l

1111111 O O O O 9999 l l l l O l l l J l l l l l l 1111111 000 9999 0 8 0 1 1 1 8 1 1 1 1 1 1 1 0

11111111 O00 9999 J 0 9 1 • J l l j 8 8 1 8 1 1 1 1 1 | 1 1 1 1 1 1 1 000 1999 8 0 8 1 8 0 0 8 8 8 8 0 0 8 0

i 1 1 1 1 1 1 1 1 1 1 1 1 OOO 9999 1 1 0 1 1 9 1 1 1 1 1 1 1 8 0 1 1 1 1 1 1 1 11111111 OOOO 99999 8 8 0 0 0 • 0 0 0 1 1 1 1 1 1 1

I 1 1 1 1 1 1 1 1 1 1 1 1 1 1 OOOO 99199 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1111111 coo v999 1 8 1 1 1 1 J 1 1 1 1 8 1 1 8

I I I 1 1 1 1 1 1 1 1 1 1 1 1 OOOO 9999 0 0 1 1 8 1 1 0 0 1 1 1 1 1 1 11111111111111 OOO0 99999 1 1 1 1 1 0 8 • l l l l l l l

11111111111111 Oooo 99999 81180•0010101811 1111111111111 o0000 99999 8 0 8 0 1 0 8 • 1 1 8 1 9 1 1

1111111111111 s o s • 99999 1 1 1 8 0 0 0 8 • • 9 8 1 1 1 111111111111 00000 99999 8 0 9 0 0 1 8 0 1 1 1 0 1 9 | 1 1111111111 00000 99990 • •ee989999199999

1111111111 00000 99999 9 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1111111111 oeooo 999999 1 0 0 0 0 • 0 • • 0 1 • 8 | 1 1 111111111 SO000 999999 • 0 0 0 • • 0 1 1 0 1 • 1 1 8 0 •

111111111 0 0 0 0 0 0 999999 0 1 0 | 1 1 1 1 0 | 0 | 1 8 1 8 1 11111111 000000 9999999 . I I l I I I I S l J J l I I I I I 11111111 oooeo 99•9199 0 0 0 1 • 8 0 8 1 1 1 1 0 8 8 1 1 1111111 000000 9919999 8 1 S S l I J J l l I I I I I J J J

11111111 SO000 9999999 0 0 J 1 1 • J 1 8 1 • J 1 1 0 1 8 1 11111111 9O0O0 99999199 8 0 0 • 1 1 0 8 1 1 1 0 1 1 1 8 8 0 1111111 00000 9 9 9 9 1 9 9 9 0 0 0 0 • 1 1 0 1 0 • • 1 0 1 • 1 2 1 1111111 o9oo 9 9 9 9 9 9 9 • 1 0 0 1 1 1 1 1 1 J l l l J l ~ J J

11111111 0000 9999990 8 1 0 1 1 J l I I I I I I I I I H I 1111111 oeoo 9 9 9 9 9 9 0 • 1 8 1 1 1 1 1 0 1 | | 1 0 0 2 2 | 1111111 0000 999999 0 1 0 1 • • 1 J 0 0 1 1 1 1 0 1 J 1 0 1111111 019 9 1 9 9 9 9 J s • 0 1 • 1 1 • 8 | J 0 1 0 J J 8 1 1 1111111 oeoo 99199 0 8 • 0 1 • • 1 1 1 1 1 1 J l j 1 1 1 1 1111111 0111 99999 0 • • • 1 1 1 0 8 0 0 0 1 1 1 1 1 0 1 • 1 111111 SO0 1999 0 8 8 0 1 0 1 • 1 1 1 1 1 • 0 1 8 1 0 1 1 1 111111 000 9999 • 1 • 0 1 8 8 • • 0 1 1 1 1 8 1 1 1 ~ • 1 1 1

Z@ 21 22 23

ZO 02220201020202020 222220022|0022121 02222220120202+00

21 22222220220202022 222222202022220++ 202220+0200020000

22 22222000200220020 2222222~20000001Z 222220002+0000100

23 20222220220201100 202222+2200020201 222222+02202010+2

26 200+222+20000020+ 22022222020221202 02+222222221211+2

25 22222222200010102 0222222+22++11211 2 2 2 2 2 2 0 + 2 2 0 0 0 0 1 1 0

21 202222222212120210 222222222100002200 2+2?2+2+22200+0200

27 202220202222000200 222222202210010201 022222222002021220

28 2 2 2 2 2 2 0 2 2 1 2 + 0 2 0 2 0 0 222122222121012221 222222227222000+00

29 2 2 2 2 + 2 2 2 2 0 2 0 1 0 0 2 0 0 20222021200++00111 2 2 2 0 1 2 2 1 0 0 2 0 0 0 0 0 + I

20 2222+2212210020011 2222222222~0010002 220222+22220000120

31 220222222221+02120

1 2 3 + S •

111111 000~ 9919 • 9 0 • 0 • • 1 • • • 0 8 8 0 • 9 • • • 0 1 • 0 • 1111111 0001 1199 0 9 8 9 0 1 0 1 n • • o s o e • • l n l • 8 0 0 0 1111111 OOOO 999V 0 0 0 1 0 • • • 0 8 0 • 1 1 • 0 1 0 0 • 0 9 0 0 1 1 1 1 8 0 1111111 0011 9 9 • s • e o 9 1 1 8 1 9 1 1 5 n o 9 1 1 J J J O j j e j J • 1 0 8 1111111 ooo 999 o � 0 0 0 • | o � e J s o o o e J e • J J J O J • J j J o J j J 1111111 s o s 1999 • o • J s o J • 1 1 • J n l s j j • • • l • J j n j j o o j 8 1111111 s o s t • 9 1 • o 9 1 1 1 1 0 1 o � | o e e • e • • • 8 1 8 • • J l J J e n J 1111111 OOO 1919 J e S • • J e • 0 1 • s o 9 1 1 o 9 9 • J S • 1 9 U • J J e O J 1111111 OOO 1999 e • e e • $ J 1 • o • e e 9 1 • e $ 1 1 n $ J • • a • 9 • • l j 1111111 ooo 9999 o 1 1 • • J j o 9 0 1 0 • • 9 1 • • 1 1 1 0 • J 1 • 0 0 J n j l i 1 1 1 1 1 1 ~00 9999 o e e e • 0 1 1 • 0 1 • 8 • e e • • • e o • o e e • o o o e o o a 1111111 s o s 999 6 0 0 0 • 0 0 0 0 • 0 0 • • 8 • 6 • 8 8 0 0 0 8 8 0 • 0 8 8 0 0 1111111 eooo 999 • e | • 9 | n o � o 1 • • o n • o n u • n j J n • o 1111111 eooo 9199 1 1 0 0 1 0 0 o 9 • • • J 0 • • 1 • 0 o 9 o 9 o 9 • 1 0 • J 1111111 o eo e 9999 8 0 • 0 0 8 0 • • 0 • • • 0 0 • 1 • • • • • 1 0 1 • 9

111111 0000 • 9 9 9 • 8 0 • 0 • • • 0 • 0 8 8 • • • • • 0 • 0 0 • 0 0 111111 000 9909 J O 9 0 1 • 0 • 1 0 • • • J 0 9 • 9 • • • • 1 111111 000 9999 e o � o 9 • • e • o • • • e e o � o 9 • • e 1111111 0001 9 • 9 1 9 0 0 • 1 8 8 • • 0 • 0 0 1 • 0 • 9 0 0 1 1 1111111 o o ee 99999 • • 8 9 1 • 1 1 • 0 9 8 • • • • • • • 1 1111111 oeo t • 1 9 • 9 • • 9 • 1 0 0 0 9 1 9 0 0 • • 0 0 1 1 9 i l i 1 1 1 1 eeoc 9 9 9 9 9 9 0 0 • • 8 8 0 • • 9 0 0 • • 9 9 0 1 • 1111111 oooo 9 9 9 9 9 9 0 • • J 1 • 1 • • 1 J 0 1 1 1 0 J • 1 11111111 0008 1999999 • o e e e e o • e e e e • e l • e • e

1111111 OOOe 9 9 9 9 1 9 9 • 0 0 8 0 • • • • • 0 1 • 1 • 0 0 0 0 1111111 oeeoo 9 9 9 9 9 9 9 9 8 8 0 0 0 0 • • • 8 8 • • • • • 0 9 • 11111111 ooooo 9 9 9 9 9 9 9 9 • 0 0 • 0 8 0 0 • 0 • • • 1 8 • 8 0 1 1 : i 1 1 1 1 ooooo 9199999 0 0 1 0 0 • 1 9 • 1 1 1 1 0 0 0 8 0

1 1 1 | 1 1 1 000000 9999999 0 0 0 8 0 8 • 8 8 0 8 8 0 0 0 • • 0 11111111 O O O O 0 9999999 0 0 0 0 • • • • • 0 • 1 9 • J • 1 11111111 O000OO 9999999 8 0 8 0 8 0 • 8 • 8 • 0 0 8 0 0 1 111111111 OOO00O 999999 o o 0 0 • 0 0 0 • • 0 1 0 • • • 0

111111111 OOOOO 999999 0 0 0 0 • 0 • 6 1 1 • J 1 | 0 | 1 1111111111 00000 899999 • e o • • e s • • e l e o e e e

? • • 10 11 10 10 14 i S 1 • | ? 10 11 00 21 00 03

Figure I. Initial height field contours with space resolution Air = Ay = 200 kin; CI = 50 m.

Page 6: ADIF, A FORTRAN IV Progam for Solving the Shallow-water Equations

24 I. M. N^VON

D stands for the N-component vector S when TRI- DIAG is called from sui~outine AD], or it stands for the workin84r~ ~rray IV, dimensioned 2 * IV, when TRIDIAG is called from subroutine CYCTRID. L stands for either HX or Iv')'. Subroutine EDDY (U, V, F.VX, F.VY, LX, IVX, NY).

This subroutine csk:ulates ~ x and y components of the friction force due to nonlinear latend eddy viscosity, the components bein8 5ere deno~l EVX and EVY respec- tively. The nonlinear eddy viscouty cocO'lent can be calculated foBowin8 eqmdiou (25) or equ86ou (2"/) by set, n8 an index IHD equal to I or 2 respectively.

I I 3 + s • ? • 9 IO 11 11 13 I+ I I 16 | ? 11 l e tO I I I I 13

1 i l l l i l i i l i l l l i i l l l l l i l l l l l i l oono 19991411 I l l l l l l l l l l i l l l l l l l l l 1111111 l o l l 1 l ee l ! II11111111111111111111 ii11111 I I I I t l l l l l

I !11111111111111111111 1111111 I I I i 1 1 t i 111111811111111111111 i11111 I I I I I H t l l l l i l l i l l i l l l l l n l l l l l l l i l l l i I i i t H t

I I l l l l l l l l l l l i l l l l i l l l i l 111111 I I I I 911111 l l i l l i l l l l l l l l i l n l l l l 1111111 l o l l t t 9 e 11111111811111111111111 i111111 i I n 9qqHi

I i l l l l l i l l l U i l l l l l l i l i i111111 i i i i II1111111111111111111111 11111111 I l l l 9~111 l l l l i l l l l i l i i l l l l i l i i l I i11111 I l l l

I l i l B I I i l I I I I I I I I l l i l I l l i l i l i ! 1 1 1 i111 111111111111111111111111111 !i11111 U l l te4pll l l l l I T I I I I l U l l l l l l l i l l t !i11111

t i I I l l I I I I I I I i l l l l l t l l l l l l i i 1111111 I I I I I I I i l l I I i l I T I F I l l l I l l l i i I111111 11111118111111111111111111111 1111111

+ I I l l l l l i l l i i l i l l l l i i l l l l i l l 111111 I F m l l l l l l l i l l i l i l l l l l l l i l l l i111111 i l l I i I i l l l l i i l I I l l l l i l l l n l l l 1111111

i i I I I l l l l l l l l l l l l i l i l i i l l l i l l l I l i l l l l i l I i l l l l l l l i l i l l l l l l l i l l l i n l i1111111 l / l l l l l l l l l i l l I l i l l l 11111111

t I / i l l l l l n i l i i ! ! 111 I l l l i l l i l I l l I I I t l l i l l I I i i l H i l i l I I l l l 11111111 / I H l i l i i i l I ! ! 1 1 I11111111

i l I I I I I I I H l i l l l i l l i l l I l l l i Ii111111 I l l l l l l l i i l ! ! ! i I1111111 I H H H I i i i l i i I l l i i111111

i l i l l l l l l l i l i l l i i l i i I i i11111 I l l l l l i l l l l l i i i l i11111111 I l I I l l l l l l l i i i 1111111111

11 11118111111 " 11111111111 !11111111111 1111111111111 Ii111111111 I1111111111111

I i 1118111111 i11111111111111 I l l l l l l l i i i l l i 11111111111 l l l 111811111 Iii1111111111111111

i i I I I I I I ! ! 11111111111111111111 l l l l l l i l 1111111111111111111 Ii1,11111 Ii1111111111111111

11 i11111 i i ! i l i11111111111 i l l I I I i i !1111111111

i i1111111111111111 16 11111111111111111

i!i11111111111111 I i111111111111111

lY !1 ii11111111111111 I ! 1 I 111111111111111 !11 ! ! i11111111111111

I I I l l ! i l l I i U l I I i i i l i l l U i 1111 !11111111111 I l l l I I ! i l I11111111111

I I I l i l i i n l 1111111111 l i l t I l l l l l l l l i l l i l i I1111 i l l l i l I I I111111

IIIIIIIIIIIOlI01MI01 101101OII01111MII0

U 0 0 0 1 1 O I 0 1 1 0 1 1 1 OlIII011111011111OIII

I l M I I H I M I I I H I M I O M I I I I I I O l l

e e i l l o o l l l l e e l e 8 1 0 M I H 0 1 1 1 1 1 IIII

114141411111111811 I I M I I 0 g l I I M

H M I I S I I I I 111418111111 18141418104111

884188480110 t o i l q~lq~l 8 8 8 1 1 1 8 0 8 0

o0OO l l e e 8 1 1 H I l l O0OO 91199 111OO881811O1811

l o l l 1191 111111+~_'~__'_-~_51 l o l l qMMJ'qP I I I I I 0 1 1 1 1 0 1 O d 0

ViOl egeee OO0O 99qle - - -

l O l l t m H ~

, , , , . . I I I I I 1 ~ l O l l 9qHll • . . . , . , .

Oeeo ,~Dee 8 o 4 1 ~ ~ e o e e 94me9 log e4~lq19

g i l l ogle o~qHl I l l t9ql4~ B I I 4 M M I ~

010O q ~ l l q l ~ l H I 8801NI011111JM~ ooo0 oql~lHJe~J eeoc ~

going 9qlqHHJ9 nOlO eq)gqlqll OOOl0 9qlqq~q

00OIl II991~ I g lOO ~ OOOOO q~lWIt9 OlOOO 9ql4141~

O000O ~gqP I OOOOO ~ql9911

OOOO0 ~qPIJq~ql 0 0 0 g o ~qlqHl~ 00O0 qP I l e~

l o g o 99999 ~ . _ . O |~O0 ql411qHIgq O

l o l l t H 9 1 t I l I I O M I I I I I I 0 1 1 1 1 1 0 1 1

|e i | i i i 2 1 1 i i I | l | l l l l l l | l l | I z 2 1 i l l

I I i l l | l l ~ l l i l I I I ! 1 !111111 I11181 i l ; ! ! i l

I I i i11111111111:1111 I I I I T I I l I i l i i $ : I l l l l l l l l l l i i l i l l : : l l l l

I i I l l l l l i l l i l i i : : l l l l 11111 I I l l l i l l l i l l i l l ~ : l l l i 11111 i l i l i l l l i l i i : ~ l l l l i i111

16 i l l l l l l l l i l i l i : : l l i l l 11111 !!1111111111~ :11111 I i i 1 1 1 i l l l l i l l l l i i i : : i l i i l 11111

I!1 Ii11111111111: : !1111 ! i i1111 I i l l l U l I l I I I l l ~ : l l i i l l i i I 1 i 1 I I I i l I I I I l U I : : i !1111 i i I 1 i 1

I I I!!11111111111: ~ 11111 ! 1111111 I i l l l l l n i l l : : l i i l l 1111111 I i l l l l l l l l i l l i : : l l i l i 1111111

IT I l i l i l l i l : : I l U l 1111111 i l l l l l l I I I i i : : l i i l i 1111111 I l l l l l l l l l l i l i ~ :11111 I I i i 1 1 1

I I l l l l l l i l i l l l i 2 : l l i l i 1111111 ! !11111,1~111:: l !111 I I I I 1 ~ 1 11881111111111; :11111 i111111

i t 11111111181111~ :11111 1111111 I H g l l l H l l t : l l l l l l l l l l l l I H I I I H I I I ~ P l l i l l l 1 1 1 1 1 1 1

31 I I I I I I I I I I I I I I 2 + I I I I I I I I I I : I I I I I l l m l H I i : : l l l l i l 11111 i I H H H I l i i l : : - ~ i l i l i I 111: ! 1

i I l l i l l n ! i l i i ; ~ ~ !1111 1111111

11111111 oee~ 1111111 lOCI

11111111 ec;o teq~9~ 1 1 1 1 1 1 1 n i t e e e g ~ I i i 1 1 1 l o l l eee~Pim41

i l l l l l o eee q ~ e e q ~ J 11111 ooe ee,eeeo

111111 l i e eeeege 11111 g e e e e e e l

01111 4oeqe 0110 e e e e ~

Illlo iiIioo I I0o eqe~

Oil0 qq~q ~ " ego ,eq~e • [ ; O0 qlgqq rT++ Oo elil.lq oo4M O0 9~e

OlllO 9qHle 00 qlqql 000 9qP9 OOO q~qlHP9 OOO eggQ9

OOO IJe44D4 ooo eewleee oleo eegq.lqqqq

ooo eq.e le~eogqp OOOO qMPgalMMIqMMJ 'e O O O O 4~qJ99Q05 ~j B0000 $ IqHIIPlI99t

oooo i 1 ~ IliOn O999qMPqP4J OgOqJ 41Dgq)999 IIO011O 0qlq14ql199

IMIO " - IIII

H l l l l O l O l O O O l l l l l l ~ e IIOII " -

l l e e i l u ~

0 - -

e ~ l i d I l l l l l i l l l O

I I I t l l l l l l l l l l t l l l lm 084100108011OO01111

| Z 3 Q $ • ? o • IO '-'- 18 13 16 | $ 16 17 18 l e z o 111 i l 13

Fqlure 2. Heilhl field conlowrs after ,18hr. Space resolution Ax=Ay=200km;Cl=50m;At=lO00sec.

Page 7: ADIF, A FORTRAN IV Progam for Solving the Shallow-water Equations

ADIF, a FORTRAN IV prngzam for solving the shallow-water equations 27

A--MSTING IN ~ IV OF SOURCE CODE FOIl ADUF

DATA I DATA I I.)ATA I

] FURPAT, FOP'.AT

3 FOPs'AT.

5 FOn~AT 7 FORMAT

PROGRAM SHALLOW(INPUT,OUTPUTeTAPEImINPUTtTAPE3=OUTPUTtTAPE6) CO~MON/CO~ST/FL~DtT~DX~DYtUTtFX~FY~FTtGtTIMEtlPRtADJ~BDJ COMt~O~/EDVORT/GNU~GAH,GDX3~PX~PY~PXSQ~PYSQtPXS2~PYS2~ALPHA~FAC~IND DI~E~ION U(35,25)~v(35~25)tPHI(35t25)~US(35t~S)~VS(35~25)t

) P H I S ( 3 5 t Z S ) t U B S ( 3 5 ~ 2 5 ) t V R S ( 3 5 ~ 2 S ) t P H I B S ( 3 5 t 2 5 ) t U N ( 3 5 t 2 5 ) ~

EQUIVALENCE ( U B S ( ] ) ~ U N ( I ) ~ H ( ] ) ) ~ ( V B S ( 1 ) ~ V N ( I ) ) ~ ( P H I B S ( I ) t P H I N ( I ) ) DATA N~',~E/t'FW~"/ ()ATA ~ / I 0o0 /

APEI / I / A P E ~ / 6 / A P E 3 / 3 / ~EIO,#,21StFIO,O) 'too THIS RUN WITH VERSION "~A3,12) "0 ADJ=" ~ F I I ,8) " NU = "tEIO,3tSX~"GAMMA = " tEIO,3) "0 ALPHA = " 9 E ~ e ~ ) i'O CHA~GE DIHENSIONS OF ARRAYS u t v t t , , , , ~ W

I TP,I~ DATA s E T t " / s x o m ' A N D THE VALUES ASSIGNED TO ~H I : , tn ICATF CE~IAIN A~RAY DIMENSIONS,") FO~AT ( " I INITIAl. U-FIELD") F(~F~..,AT (.' ! I~ITIAL V-FIELD") ~b=O,

A L P ~ = 0 , ~F.A[)(ITAPEIgl)FLgDITt~XtOYtDT~IPRtMMtADJ L~=35 LY=~5 ~X=FL/I)X ~JY=I + IF I X (!)IDY) IF(t,X,GT,L~) Gn TO 45 IF(!.Y,LEoLY) ~b TO 50

~5 .-~wITF(ITAPE3tT) uI) TO ~ 0

~0 ~.T=I/~T IC(IPW,FQ.O) IRP=I

FX=OT/(4,°DX) FYmDT/(A,oDY) FT=O,SODT CALL SETUP(UtVtPHItHtFtNXpNYtAtBoLX) WRITE(ITAPE393) ADJ wRIIE(ITAPE3t4) GNU~GAM ~JRITE(ITAPE315) ALPHA TINE=O, CALL LOOK(U~V~PMItMtFtNXtNYtLX) CALL wSTA~(UtVtPHItU$~VStPHIStFtNXtNYtLX) ~z;~ITE(ITAPE3~8) CALL uVOUT(UtNX~NY~LX) w~ITE(ITAPE3,9) CALL UvOUT(vtNXtNY~LX) IGPT=O INb=O IF(ALPHA,EQ,O,) GO TO 90 IND=2 GO TO I00

90 IF(GNU,E~),O,,AI~D°GA~,EQ,O,) GO TO 95 I~D=I GO TO I00

95 IF (ADJ,~Q,O,) GO TO lO0 EPSOT=A[~J*DI*DTCDT AOJ=EpSr'T/({}Y~DY) ;}OJ=EPSI~T/(DX~DX )

]hO CO'.~T I NUF LO~P FC~R EAC~ TI~E STEP

hU ~ h T = I ~ i T

LX TO ACCOMMODATE

AND LYt WHIC

Page 8: ADIF, A FORTRAN IV Progam for Solving the Shallow-water Equations

26 I. M. N^vom

3 show the neq~t field contours after two days of simedalion us/ng time steps of 1800 and 3600 sec respec- tivdy. The contow imtervsl is 50 m and the disits 8, 9, 0, !, 2 stand for 1800, 1900, 2000, 2100, 2200 meters respec-

tively. Fqpwes 4 and 5 show the height field coutou~s for a long-term integration using a slmce resolution of Ax = Ay = 500 km and a time step of 3600 sec, the dinipmion coeff~ients being e = 0.015 and e = 0.020 respectively.

1 it 3 4 S 6 ? 1 I l l go0 99 • O008

11 OOlO 99• • l i t 111111 OOOOO 999 n i t

it 111111 • C e l l O • 99 • oooo 11111 oooeoeooo 99 • •••ti t 11111 ooooeeooooo 999 •ei t

3 11111 ooeoeeeeeoee 99 l ee 11111 000099000000 99 809

i111 oiteooitoeooeooo 99 eeeit 6 1111 00990090009000 9 • •8it

i l l O0OOOlOOO00OOO • 008 T 111 OO OOeOOOO0000 99 o l i n TT

• 111 0go ooeooeeoooo 99 1O8O8O8O8 T? 111 ego OOOO OOOOO 99 1O8O8O80O8 ?T? 11 oe0 ooo0 ooo 9 O8O8OlHIO8 T??

• i l OOO g i g OOO 9 I t o l o l O n o l o 8 TY? 11 ooe 009 000 t I I I lO•OdDOIII I 7T?? 11 OO9 90 OOO 99 OO•8•lOI4DOlO8 7??Y

? i l OOO O0 OOO 99 O l O l l H i O i t 91 ???? 11 900990 999 9 H l l l l i l i t Oit ??T?

111 0ego0 1 OO 9 0Olo8IOO l • ?T?? e 111 OOOO 1 O0 9 eel•mOO •tO TTTT

i ! 1 1 00 O0 99 0•tOOl OO YTT7 i i l 0O 99 000 1O ??T?

9 111 O0 99 I • Oit 77?7 i l O 999 l i t TTT?

O0 999 • l i t 77777 10 11 O0 999 1010 YTTTT

111 OOO 999• 0 l i t 77777 11111 O0 99999 •80it Y1~?

I1 111111 • e l 0 9 ~ 9 9 n e e TYT? 111111 eoo 1999999 it•tie T77 111111 eO 99~99999 l i t • 1 ??

i t 111111 O00 9999999• o l n T 111111 000 999999 890

I111 gee 99•99 1 l l i t 1~ 111 OOO 999 • 0 l i t

• 9 lO

1 it 3 ~ 9 • ? • 9 lO

l~mm 4. Heilbl ~ contours afire" 20 days. ~ resolution A.r - Ay = 5~Okm; C1 = ~ m; At = 1800 sec;• - 0.013.

I | $ 4 • • ? 0 • 10 i 11111111111 00eitO 9199 O80O800O

111111111111 0Oe00 999• •e~.-2~o8 111111111111 ooo•o 9999 o80oo80o0

| 111111111111 oeooo 9999 o80oooo89 111111111111 o0900 9999 •80000080 111111111111 ooo00 9999 00000808i t

) 111111111111 909900 999• 080o800o8 111111111111 00O099 9999 o80ooleu 111111111111 009900 9999 o8oeoo8o8

* 111111111111 oeeeee •999 •ito8o99o89 111111111111 • • lOl l 9999 • • • 0 • • • 0 • 0 111111111111 oooooo •99• • i t • i t •Hol•

• 111111111111 oeeooe •999 o i t o • • o o o • • 111111111111 oeeooo 9••9 ititit•O041411• 111111111111 ooeeee 9999 i10990088o8

• 111111111111 oeoeoo 9999 808oooooo0 111111111111 oeeeoo •eg• •eo8•Ho8e 111111111111 oeeeoe 9999 o8o8o808o8

? 11111111111 oeeeoo 9•99 0 0 8 0 • 0 0 8 8 0 1111111111 9iteoee 9999 ouo8o8olo 1111111111 ego•co •999 0 8 | 8 0 o 8 o o 8

• 111111111 oooooo 9999 • i t H 0 0 0 • o 0 111111111 el•tOOl •999 o8o8oo8o80 11111111 oeeeoo 9 9 9 9 08O0000000

• 11111111 OHOO •999 008O0OO8O8 11111111 e o e 0 • 9 9 9 0 • 0 8 0 0 0 • 8 11111111 c i t e • 9 9 9 9 • 0 0 0 0 8 0 0 0

1o 11111111 logo 9•99 00008800i t 11111111 oleo 9999 itito8o8o8 11111111 oleo 9999 o8o8o890

11 11111111 oooo 999• olitoo8n 11111111 eoooe 9999 OOOHO00 1 1 1 1 1 1 1 1 1 o e e o o 9 • 9 9 • t o • l o l l •

11 1111111111 9eooo 9999 0 0 8 0 0 0 9 9 1111111111 oeoeo 9999 o8o80o80

11111111111 eoooo 9999 0 0 0 0 8 0 0 0 11 1 1 1 1 1 1 1 1 1 1 1 c o • e l 9 9 9 9 0 0 0 0 9 0 8 9

i it 3 • • • ? 8 9 ).0

PiSUm $. HeisM lidd comoum after 20 days. Spece resolution A x = A y - 50~ k m ; C l = 50 m ; A t = 3600 99c ; e - O.020.

A c k ~ o ~ - - T h u a k s a n due to Mins J. Hewitt of the National Research Institute for Mm/bemmticsI Scinnces of the Council for Scinnl/flc and lndustrinl Research, who did the programming.

RElqmm~TS

Ablx)tl, M. B., D u n e q ~ . A., o8d Rodamhn/L O. S., 1973, System 21 Jupiter (a ~ system for two-dimensional nesrly-ho9zontal flows): Jmu'. Hydraulic Research, v. II, no. I, p. 1-28.

Ahlbe~ll, H. H.. Nils0u, E. N., uad Wnlsh, J. L., 1967, The thnory of qlmm and their ,quMiuatiual, b, Mmhnmeticn in xience u d e ~ e e r i n l , v. 38: Acudmic lhum, New York 209 p.

Chert, H. H., and Miy/oda, K., 1974, A nested Irid c o m ~ for the bum•topic free surface 8tnmphere: Man. Wea. Rev., v. 102, p. 181-190.

C I ~ R. T., 1972, N ~ i a d k ~ S m J ~ of lake c i ~ t t i o u u~md i s l ~b by the Oni~eJan~t me~bod: Imun. Jour. Num~. Msth. in End, v. $. no. I .p . 103-112.

Commr, J. J., and K ~ , C. A., 1976, lrmiL,.4demem techniques for fluid Bow: Newuaes-Bmtmwomlbs Bd., London, 310 p.

Conmx, J. J., and Wuag, J., 1974, lrmile..dmmmt modellm8 of h y ~ cwcuingon, bu Nummical methods in h i d clyuamia: Pentech l~sn, Loud•u, p. 355-387.

Culks, M. J. P., 1973, A simple tMte-element methnd for m e t ~ problems: Jour. Inst. Math. Appi., v. II, p. 15-31.

Culleu, M. J. P., 1974, A fin~.e-eJement method for a initi""'~-value pmbtem: Jour. Inst. Math. Appi., v. 13, p. 235-247.

Crowley, W. P., 1970, A numerical model for viscous, free- surfmce t ~ wind-ds/ven ocean circulations: Jour. Comp. Phys., v. 5, p. 139-168.

Elvius, T., and Suadslr~ua, A., 1973, Conputmtiomdy d k k n t schemes and boundmy ~ for a 0he-mesh berou~p~ model Imsecl on the shah•w-water equations: Tellus, v. 2.5, no. 2, p. 132-156.

Fakwuath~, G., and Nay•n, I. M., 1977, A IbJear al~- cl~rec~ou implicit (ADD method for ~ the shnllow-wWr equa9um: Cound fog Scientilic and lndam/sl Research (CfflR), Sp. Rept. W]SK 269, PretmL South Africa, 20 p.

Grmmeltvedt, A., 1969, A survey of flnite-dmerence schemes for the primitive equations for a b e r o U ~ h id: Mort. Wea. Rev., v. 97, no. 5, p. 384-404.

Gustofnon, B., 1971, An 81terualiS-ulrm;'~"tlon iqp4icit method for solvin8 the slmllow-wmter equations: Jour. Comp. Phys., v. 7, p. 239-2.54.

Hney, R. L., and W~ght, J. M. Jr., 197.% The relat~nJip betw~ ~e Srid nize n d ~e coeMc~ of ~ k m r b~m~/ eddy viscosity in numerical ocean cb~cukfion models: Jour. Comp. Phys., v. 19, p. 2.97-266.

Hoqbtom, D., Kamdmra, A., and WmbinSmn, W., 1~6, l, o q - term intqrmtiou of the I ~ eqmdiam by the Lax- W ~ method: Mou. Wua. I~'v., v. 94, p. 141-1~0.

Kreiss, H. O., and Ol~ur, J., 1973, Methnds for time alR~xinmte solmioe of time.dapendem woblem: Olob,d Amomberic Research Prolnmme (GARP) Publ. Set. No. 10, World Met. Orl., 107p.

Meriluas, P. E., 1973,1"he i ~ 8pproximJoa uplgind to the •ludlow-water equations on a spl~re: Atmosphere. v. I I, p. 15-20.

Nay•n, I. M., 1977, A J ~ for the soluflou of scalar and biock-cycSc ~ sys~m: Cmwi l for Sciuatik 8rid lndustrb] R ~ a r c h (CSIR), Sp. RepL W]SK 20.S, Pretorin, Sooth M r i c a , ~ p.

Page 9: ADIF, A FORTRAN IV Progam for Solving the Shallow-water Equations

ADIF, a FORTRAN IV program for solvinB the shallow-water equations 27

APPENIMX A--BST~G IN FOigTRAN IV OF SOURCE CODg FOR ADIF

PROGRA~ SHALLOW(INPUT,OUTPUT~TAPEI=INPUT~TAPE3mDUTPUT~TAPE6) CO~MON/CONST/FL~D~T~DX~DY,DT~FX~FY~FT~G~TIME,IPR~ADJ~BDJ COM~Ok/EDVORT/GNU~GAH~GDX3~PX~PY~PXSO~PYSQ~PXS2~PYS2~ALPHA~FAC~IND DI~E~SION U ( 3 5 , 2 5 ) , V ( 3 5 , 2 5 ) , P M I ( 3 5 , 2 5 ) ~ U S ( 3 5 ~ 2 5 ) , V S ( 3 5 ~ 2 5 ) ~

1 P M I S ( 3 5 , 2 5 ) ~ U B S ( 3 5 ~ 2 5 ) ~ V R S ( 3 5 ~ 2 5 ) ~ P H I B S ( 3 5 ~ 2 5 ) ~ U N ( 3 5 ~ 2 5 ) ~

EQUIVALFNCE ( U R $ ( I ) ~ U N ( 1 ) . H ( 1 ) ) ~ ( V B S ( 1 ) ~ V N ( I ) ) ~ ( P H I B S ( I ) ~ P H I N ( | ) } DATA NA=..E/"FW4"/ !)ATA 5/.I. O, O/ D~,TA ITAPF. I / I I DATA I T A P E ~ / 4 / r)ATA I T A P E 3 / 3 /

I FORMAT ((~E 1 O, 4 ,2 IStF 10.0 ) ?. FOP'*AT(,,O THIS RUN WITH VERSION " tA3oIZ) 3 FL)P~'AT ("0 A D J = ' t F I I . 8 ) 4 FO~AT(" NLI = "tE10.3o5Xt~'GAMMA = " ,E IO,3 } 5 FOr~AT("O ALPHA = " t E l 2 . 6 ) 7 FOI~MAT(,,O CHA.~GE DIHF_NSIONS OF ARRAYS utVteeeeegW TO ACCOMMODATE

I T~'IS DATA SFTt"/SX,B'AND THE VALUES ASSIGNED TO LX AND LYt WHIC ;~H I;,L.nICATF CEkTAIN ARRAY DIMENSIONS.")

FI FU~;~AT("I INITIAl. d-FIELD") FOf~,-TAT ( ,' 1 I'~ITIAL V-F IELD")

ALP~A=O. ~FAD(ITAPEItl)FLtD,T~[~X,DYtDTtIPRtMMoADJ LK=35 Ly=~ r.) JX=FL/I)X ~JY=] * IF I X (D/DY) IF(I~X,GT.LX) G~. TO 45 IF(!,Y.LE.LY) 50 TO 50

~5 "~ITF(ITAPE3t7)

I~(IPP.FC~.O) IPP=I

FX=OT/(4.eDX) FY=DT/(4.*DY) FT=O.5*DT CALl. SETUP (U. V ~PI'II ~H~ F ~NXtNY~A~B~LX) WRITE (ITAPE3~3) ADJ • 'feI TE (ITAPE3~4) GNU~GAM ~,RITE" (ITAPE3~5) ALPHA T I~E=O. CALL LOOK (U, V. PHI ~M~F ~NX~NY~LX) CALL WSTA~ (U~ V ~PHI ~US~VS,BHIS~F~NX~NY~LX) "~=~I TE ( I TAPE3. 8) CALL UVOUT (LI~NX,NY~LX) wPTTE ( ITAPE3~ 9) CALL UVOUT (V~NX~NY~LX) IOPT=O I~'b=O IF(ALPHA.EQ.O.) GO TO 90 I~D=2 GO TO tO0

90 IF'(G,~U.EO.O.,A,~O.GA~,.EQ.(I.) GO TO 95 I ~D= l GO TO 1 0 0

qS IF (aDO.t:(~.O.) GO TO I00 EPSC, T=ADJ~DT~DT~DT AOj=EPS[,T/( DYiDY ) ~]Dj=EPSI;T/( DX~DX )

].no CO'.~T I ~,UF LOnP FO~ E-AC~ TI~WE STEP

r~t) ? O h T= l~ " iT

Page 10: ADIF, A FORTRAN IV Progam for Solving the Shallow-water Equations

211 I . M . NAVON

C C

]95

l : IPT= /nvT* l PS] CALL ~DI(I.) .VoPHItU~tVStPNIStUSStVSSoPHIRStFoAtBeCtEtWtNXtNYoLXt

U~Jt VhJ. PHIN9 P 9 ~ 9~ I S) 25? TI~E=TI~'F*DT

IF ( IOPT.GE. IP~) GO 10 IeS I F ( | . L T . N T } GO TO 200

u~I~T VALU~ Or ENErgY INTEGRAL AT THIS TIME STEP. ~uI~.T ~EIGHT VALUES AT THIS TI~E STEP. CALL L~K(UgVgPHI tH tF .NXtNYtLX] IOPT=O

?O~ CONTINUE E~=.) OF TIME STEP LOOP

CALL UVOUT(UtNXtNYtLX) CALt. IWOUT(VoNAeNYtLX) ')AYS=T/8~400. ~Ir~T=l P E ~ I ~ , ~ ITAPE~ ~ I I E I I T A P E 3 9 2 ) I4ANEIMN , ~ I T E ( I r A p E ~ ) NAME~NINT~HNtOAYS90T9OX~OY~NXoNY ~ I T E ( I T A P E ~ ) ( ( U ( j t K ) o J = I t N X ) o K = I t N Y ) wPITE(ITAPE~) ( ( V ( J s K I t J = I ~ N X ) o K = | t N Y ) w"ITE(ITAPE~] ( ( P H I ( J t K ) o J = I o N X ) t K = I o N Y ) ~E~IND ITAPE¢

P~O STOP END SURROUTINE ~STAR (UeVtPHIoUStYStPHIStF.NXtNY.LX)

TO ~ET UP IN IT IAL VALUES.0F USt VSt PH]S FOR ALL JoK CO~MON/CONST/FLsD~TIDXoOYtOTgFXoFYeFTtGtTINEtZPRIAOJIBDd

Oe 0 0 0 0 T O~EGA = OMEGA + ( P • Q ) ONEGA t 0 N E G A n ( U o V t P H I )

JgK J t K J t K J t K J t K 0 I M E N ~ I O N U ( L X I N Y ) g V ( L X e N Y ) ~ P H I ( L X t N Y ) I U S ( L X o N Y ) t V S ( L X o N Y ) I

1 P H I S ( L X . N Y ) o F ( N Y ) DATA ITAPE3/3/

DO EO K=19NY FK=F(K) GY=FY KP|=K*I K~ I=K- I IF(KPIeLEeNY) GO TO 10 KPI=NY GO Tn 11

]O IF (KMI ,nE ,1 ) GO TO 12 K ~ ] = I

] I ~Y=FY~FY

J P I = J + I I F ( J P I , G T . ~ X ) d P I z l d ~ l = d - I I F ( J ~ I . L T . I ) J'~.IzNW UKD=U(J= I tK ] - t ) ( JN I tK ) P K P = o H I ( J P l e K ) - P H I ( J ~ I t K ) VJ IJ=V(JgKPl ) -V (J tK~ ] ) PJ r )=PHT(J tKP I ) -PH I [ J tK~ | ) PHI2=P~J(Jgk.) /R, ~S(J~¢ ]=a=(J~K} -FXe(U(J~K)eUKD*PHIEePKD) -V (J tK }e (QYe(U(J tKP I )

V S ( J ~ K ) = V ( J ~ K ) - U ( J . K ) e ( F X e ( V ( J P | e K ) - V ( J H I t K ) ) ~ F K ) 1 -OYe(V(JIK)eVJD$PHI~ePjO) P~I~(J~)=0.Se(PHI(JeK)-FXO(PHI2eU~D$U(JoK)ePKD), -QYe(PHI2eVJO

] 4'V(dt~) ePdn) ) 1:i C : ~r,: T J *.,I-'t -

:)(, ~% J=1,.',,~ vS(,J, l )=Oo

wE T'.J~. TM" F ~F~

Page 11: ADIF, A FORTRAN IV Progam for Solving the Shallow-water Equations

ADIF, a FORTRAN IV program for solving the shallow-water equations 29

.-'.;,JHw(';,l=rl.'.;L " ; ) I (OtVtPHIgtJS~V~PHISttJF~StVHSgP~I~StF,pA,pBoCtEtWtNXtNYt

C;).."~';~./CO!.STIF L ~r)t T ~ L)X ~ Dy 9 DT t rX pFY,FT t Gt I IME ~ II=R~ ADJ~BDj (~ ~. , , . r l r , , /F [)v 01~ T/GNU • (; A'.! ~ bbX 3 ~ PX ~ PY ~ P X S(~ t P YSQ ~ PX-~2 ~ PY S~ ~ ALPHA ~ F AC • I ND

I P~I (; (I. x , " Y ) ~)~F (LX, r"Y) ~ V|4q (L](, NY) ,PH II'~S (LX ~NY) ~F (NY) t A (4~NY) ,~

3 ~)hI'~IL;',~.'Y) ~r'(NY) t('(.~,:Y) ~t.~(Ny) '.~I~:I'.:'';Ir,~.: FVX(36 ,25 } ~ E V Y ( 3 5 ~ 5 ) T;(I-'O,F~.~o0) ~;U 10 ?5 I F" ( I"~r,,~- (~. I } (.:r~ x 3 =G A;,* t)x er')X ~ Dx I r ( I .~r,. K ;.:. 2) F AC=[) ~.eF~ ~{ e[',Xe AL PHAeS(~RT ( I=LPHA ) I F ( T I ' ; F . G T . n . ) GO T(~ ?n PX=0 .~ IhX PY=0 o¢~/F) Y I.'X S(u--k'X eP X Py¢.I, =Pyo¢)y

P X S 2 =~.' ~ ~:,(.~ ÷ P X ..%N

P Y S 2 =;) y ~:;:,) * p y S f) Z0 CALl_ I~!)C,Y(U~V~EVAtEVY~LX~NWtI~,Y)

C l( .r)p F~'=,' EACi-, NL)I.~IZUh, TAL LINE Y(K)~ K = I ~ . . . ~ N Y

F~,=F (K) F !J=FY ~PI=K÷I ~(."~ I =K- l I F ' (KP I . LE .NY) G0 T(} 105 ~,p] -~,y

G,') T~) 110 IO5 I F ( K ~ I . , ; E . I ) (~o TO 11%

~,"1 = 1

C L~.)P F~.')I,~ EACH PgI~4T X ( J ) t J , . I ~ . . . ~ N X ON LINE Y ( K ) e l l ~ O0 120 J = ] ~ ' , ' X

C %FT IJP ELE."~ENTS o r CYCLIC BLOCK (~e;~} TRIDIAGONAL MATRIX~ AND C C.ONC;TA:qT TE~'I"S FOR DETERMINATION OF" UBS AND PHIBS.

J P I = J ÷ I

,J:', I = J" I IF" ( . P ' I . L T . I ) J'~ I,,NX I F (JP I , C.T.~'.~X) J P I = I , ; ( l , J ) = l . .-~(2, J) =0. 4 (3~J) = 0 , • ; ( ~ ' J ) =1 • C ( 1 , J ) = I ' x ~ U S ( J t K ) C ( 2 ~ J ) = F X e P l 4 I S ( J ~ K ) C ( 3 ~ J ) =C (?~ J) C ( 4 , J ) "C ( I tO) ;):) l l R I.=1,~4

118 A ( L , J ) = - C ( L ~ J ) v ( I , j I = I ' ( J , X } ' F U * V S ( J ~ K ) * ( U ( J ~ K P I ) - U ( J ~ K M I ) I ÷ I r K e V ( J t K } ~" (2 , J) =PHI (J~K) -FU~ P H I S ( J t K ) ~ (V ( J ~ K P l ) - V ( J t K M 1 ) ) - V $ ( J ~ K ) * F U e

] (Pt'll ( J , ~ K ~ I ) - P H I ( J t K ~ ' . I ) ) I F ( l ' . ' . h o ~ . 0 ) GO TO 121 ('. ( I '~ J) =F. ( I ~J) ÷EVX (J~K} c,] T") 120

121 F. ( 1 , .)) =F ( I , J) *ItDJ~ (U (JP l , K ) - ; ~ . ~ U ( J t K ) * U ( J ~ I t K ) ) E { 2 , J ) '=F (2~J) ~6DJ* (P~,I ( JP l ~ K ) - 2 . * P H I (J~K) ÷PHI ( J M I t K ) ) ! F ( K , F ; . I , r ) u . K . E ~ . ~ , ~ Y ) 80 TO 120 .r ( I , j ) = F ( I , J ) ÷ A D J ~ ( U ( J ~ K P I ) - 2 , * U ( J t K ) ÷ U ( J ~ K M I ) ) .E ( ~ , J ) =F ( 2 , J ) .AI3. J* (PHI ( J t K P l ) - 2 . e P M I ( J t K ) *PHI (J tKM] . ) )

I P 0 C '.)", T I ',.U[- C~LL CYCBL~ (NX ~ A t B~ Ct E~, w,) .'.~n 125 ,)=I~'~X t ) ~ S ( J , ~ ) = E ( l ~ J )

1~_5 ~ I -~ .c , ( J o K) =E (2 t J ) C Lf~(.~P F(,~ EACM POI,~T X ( J ) ~ J m I i , , , , , t N X ON L I N E Y~I,&),,

I F ( " , , E ( - ; , I ) (~0 TO 136

Page 12: ADIF, A FORTRAN IV Progam for Solving the Shallow-water Equations

I. M. N~voN

SET I~P ¢~LE~.'ENTS OF CYCLIC TRIOIAGONAL MATI~IX~ AND TEq~:s~ FOR OET.F.k~IINATION OF. VBS.

~.a (J ) = 1o~:0 :~ (~) =FX~U$ ( j ~ K) ~ ( j ) -_.l~ ( j )

. % { j ) = v ( j ~ K ) . F u I ~ S ( j t K } t ( V ( j t K p I ) - V ( , J t K . 4 I ) ) . F U I P H I S ( J t K ) • : ( I ) . , ; ( j . Kp] ) .¢~H~ (j~,K~;1) } . r K i U F t S ( j r K )

IF (T : ' , n .F (~ .O) ;30 TO 131 ~ ( J ) = S ( J ) * I r V Y ( J I K ) C;~.) TO 130

1"}] S (J ) =.¢ (J ) * A u J • (V ( J ~ K P l ) - ~ . e V (J~K) ~V ( J i K M l | ) S(J) =5( , I )~ IRL 'J~(V( -JP I~K) -2 ,~V(J~K)*V(JMI~K) )

CAt.L CYCTI~ID TO SOLVE Fn . VALUES OF VHS AT ALL POINTS X ( J } t , J = I , . . , ~ , X ~)", T"IE LINE Y ( K ) ,

C '"t.I. CYCT;," I P (',;X t P ~(J t I~ ~ St W ) r'~,.') 135 j = 1 ,..X

13b V:iS ( J ~ ) =.~ (,)) b..' TO 1 ; 0

l J b ;,;., i.3P j= I~ : . .X 13~ V:~S(J ,K) =0 ,

IF ( I ~ ' l } , ~ o . ~ ) (,0 TO 142 C ~'~L L t' I)I'.Y ( tJbS ~ Vl~St h V}i t EVY ~ L X t ~X t NY)

C i L},.;P F(Ik .kACH VE;TICAL LINE X ( J ) t J " I t , , , ~ N X 1~? ~0 190 J = l ~ .

j p ] = j + ] J ~ l = J - 1 I F ( J ~ ' I , I T , ] ) J~'I=NX I F ( , o l . ~ T . = . . x ) J P l = l

C LCm")P F(,~ EACH POI*:T Y(K) t

FII=FY

~ ' 1 = K - 1 T F ( ~ I . L E . ) ~ Y ) GO TO 145 K~I=~,Y

1~5 I ~ ( ~ ' l . ~ . l ) (~0 TO 155 K ~ I = I

1 ~ FU=F'I'~FI~ C SET UP ELENENTS OF BLOCK C TERMS~ FOR DETERMINATION OF

155 I ~ ( l t K ) ~ l .

H ( 3 t K ) = 0 . C ( I ~ K ) ~ F U I V S ( J I K | C ( 2 t K ) m F U ~ P H I S ( J e K )

C ( ~ K ) m C ( I ~ K ) ~0 1~0 L = I ~

lbO A ( L t K ) = - C ( L t K ) E ( I ~ K ) ~ 2 e ~ V B S ( j e K ) - V ( J t K ) ~ F U

1

1

l ? 0

172

CONSTANT

K = I I . ° . , N Y ON L INE X ( d ) .

( 2 e 2 ) TRIOIAGONAL NATRIXt AND CONSTANT VN AND P H I N .

e V S ( J , K ) e i V ( J t K P I ) - V ( J t K N I ) ) * F U e P H I S ( J , K ) * ( P H I ( J e K P 1 ) - P H I ( J s K N I ) )

E ( 2 , ~ ) = 2 , e P H I P S ( J * K ) - P H I ( J t K ) * F U * P H I S ( J , K ) e ( V ( J , K P I ) - V ( J , K ~ I ) ) * F U o V S ( J , K ) Q ( P H I ( J t K P I ) - P H I ( J w K ~ I ) )

I F ( I ~ U , E Q . 0 ) GO TO 170 E ( 1 , K . ) = E ( I s K ) * E V Y ( J t K ) CONTINUF 00 172 L m l t 4 P ( L , I ) = ~ ( L o l ) I A ( L , I ) H ( L t N Y ) m R ( L o N ¥ ) * C ( L t ~ Y }

CALL ~ L K T ~ I 0 Tb SOLVE FOR VALUES OF VN, PHIN AT ALL POINTS Y ( K ) I ~ = l t . . . . l ~ Y ON TME L INE X i J ) ,

CALL R L ~ T ~ I D ( N Y e l , A t ~ e C o E t N Y ) DO 175 K= l t ,~Y

Page 13: ADIF, A FORTRAN IV Progam for Solving the Shallow-water Equations

ADIF, a FORTRAN IV prowam for solving the shallow-water equations

175 PHT%(J~K)=F (~,~) v ~ ( j , l ) = 0 . V r ; ( J ~ ; , ; Y ) = 0 ,

1755 COt;[ I':UF C L(~CP F'r~# ~aCH POI~,~T Y(K), K=It,,,,NY ON LINE X(J),

SET ~,P ELE~ENTS OF T~IDIAGONAL ~ATRIX, AND CONSTANT ~,E~F~'I~ATIC,~' OF U~.

FU:FY ~Pl=F+] K~I=K-I IF(KPI.LE.NY) GO TO 176 KP]=NY GO TO 177

176 IF(K~I.GE.I] GO TO 178 KMI:]

177 FU=FU~FLI 178 FK=F(K )

' J ( K ) = I . ~ ( K ) = F U e V S ( J , K ) D ( K ) = - P ( K ) 5 ( K ) : ~ e ~ U H S ( J , K ) - U ( J I K ) ~ F U e V S ( J t K ) I ( U ( J t K P I ) - U ( J ~ K M ~ ) )

I -FK°(V(J,K)'VN(Jt K)) IF(IND.EQ.0) GO TO 180 $(K)=S(K)*EVX(JtK)

I~0 CONTINUE

f)(~!y):Q(NY)÷R(HY} P(1)=0. R(NY)=0. CALL T~ll)IA@ TO S(]LVE FOR VALUES OF

K=I , . . . ,NY O~ TME LINE X(J), CALL TRI~IAG(~Ytl,PtQ,RtS,NY) DO i ~ ~=I,~Y

1~5 U~~(J~K)=S(K] i ~ CC~T I ~;Ur

F STAHLIS,~ NE* VALUES OF US, VSe P H I S t ()0 192 - = l t i ' Y DU 19~ j= l ,~X US(J,K):0.5~(3.~UN(J,K)-U(JtK)) VS(J,K):0.5~(3.OVN(Jt~)-V(J,K)) PHIS(.;tK):0.~5~(3,tPMIN(JIK)-PHI(J,K))

V(JtK):V:~(J,K) ; 'HI (J,~)=PHIN(JtK)

E'iD SURROUTINE MAPPA(FUNtCoNXtNZ tLX)

UN AT ALL POINTS Y ( K ) t

192

TERMS,

Ut Vt PHI,

DIMENSION F U N ( L X t N Z ) , A N S ( 4 o l l 6 ) t I A N S ( I 1 6 ) t N U M ( I O ) OATA NU~' / IH19|H2t lH3, |H4, ]H511H6t IHTt lHS~lH9t lHO/

111 F O ; M A T ( 5 X o 2 1 5 ) 1 F O R N A T ( I I 5 X t 2 3 ] 5 / / ) 2 F O R - A T ( I H , I 3 ) 3 F( )~HAT(1H . 7 X . 1 1 6 A 1 ) 4 F U R ~ A T ( 1 H * t 7 X , I I 6 A 1 )

K=3 N=5 FK=K FN=N I=0 f~Y=NZ- I

LE~D=K PRINT l , (J,J=ItNZ) J~=l

10 I = I * l PNI~T 2,1 IPl=I*1 I F ( I P 1 . G T . N x ) I P l : l

FOR

Page 14: ADIF, A FORTRAN IV Progam for Solving the Shallow-water Equations

32

3

b

1. M. NAVON

h 5

DO / ~ J = l t N Z X g I F = ( F U N ( I P l t J } - F U N ( I i J ) ) / F K J X = l ÷~.,e ( j . j H ) A~S ( ] t JX ) ; F U N ( I t J ) l )0 15 L , = 2 , L E N D

15 AtIS (L , JX) =A;~5 ( L - I o JX ) *XDIF IFi DO ~?0 J - - I ,NY

JX- - l *No ( J - JB ) r}o ZO L=I tLEND Y(}IF © (A,'-IS(L~J~.N}-ANS ( L , J X ) ) / F N :v, l=JX. I ' . ~3=JX* ~,,. 1 DO 20 M=M|,r~3

2.~ Ar, S ( L ~ ~) -AI~S (L ~ M- I ) .Yr ) I F ~Er:D=-3

[,;_l 5(, L = I , L K ~ , J 9 i.;C 40 ~=l ,.~![.',ii)

r l (~ ;~s ( l . . , : s , l .G~- .0 , ) GO TO 30 ~,;!"S=-At;S ( L t I~) ,% ~% h,5 = C~ A Ar..S h K,% .,R=2~ (K~: ,S /2) IF(~A.JS.F,..KKA~,S) (;(; 'tO 3 5

75 K A ~.:S =K A,...S/p K A'IS:~'*~-~'I'~ ( KA%S t 10 )

I'~" ( *~ ,~ /~ , r i ' . . ' ,C , ) K A " ¢ S = I O 1 41'..S (.:) :,..(,~. (K~I,S) ';:) I P 40

w," ~ ~S=Ho ( ~ a : . S / 2 )

IF ( : £ A N S . E / ' . I ~ : K A " , S ) GO TO ~.% 35 I;~.,S (;~) - l , ~0 C(;r,,T I,!UF

PPl%~ ~ ' * ( I ~ : 5 ( ~'~)~'**'I*~'END} ('U TI" ~0

IF (T-'~X) 20,55'65

I = I * l

|)0 ~,(, J = l , r , Z , IX= l .+ ' . * ( J-J;~ }

A',,S ( I *.)'X ) --F L'~I ( 1 , J )

I....:~ ~T ] , ( J , J " l , r . . Z ) F.~; TU;;;,

SLJN00LIT IN{-. UVOUT ( W ~ .~X ,~ NY • LX ) 01 ~E" 'S I {~F ,' ~ ( L X I N Y )

L~. A T ..~ I .% ' . , / 0 / I r O='F~AT (.~,~0 , ~ ? I 6 / ) ;; FO, ; . . ,AI ( I X , I a , a Z F 6 , ~ . )

I F ( I ' ~ , ~ T , O ) GO TO 4 I ",?0= 1

,90 3 J = l t ~ ' X ~ J a ( J ) : ~

K=K.,w 1 JF.=O

J ! ; = JE" * 1 JF -.--, I r.'O (:.~X ~. i JF wI.2~ ) - '~ l 3 E ( " O I J T ~, 1 ) ( J A ( J ) , J = J B t J E )

. I F ( J ~ , , G T , I ) ( ;0 TO q OE--J~i-I

Page 15: ADIF, A FORTRAN IV Progam for Solving the Shallow-water Equations

AD]F, a FORTRAN IV program for solving the shallow-water equations 33

"~/!'~ ~ T F ( ~'!;.J ill T ~1P ) KIv 9 ~ ( ~ X * K K ) , (W ( J , K K ) ~ , J = J B , J E )

0 :~ T :) .5 ,.~ j E : j r - ; p

j r;, = j ; , . . i :19 i0 K = l , r : Y ~, ,I-'- K ~(- 1 , , ! ; ITF ( " r " , t l T ~ 2 ) ~ * ( ~ ' ( J * K K i * J m J B * J E I * W I I * K K )

r~J~h',')I.ITTI.~F I'-'OI.!T (H* iqXo"~Y,~L / , ) 01 !,~Er~$ I [?,~ H ( L X t N Y ] : ) I ~ ; f 'NS IC TM' J A ( 3 ~ ) ~)AT~ ',,our~3~ ;).l T,~ I r.,C'./0 /

f) c()~ '~AT(*'O ~F-IGFaT VALUESO° / ]

.3 F ~)~,,t~T ( I X , I ~ , ~ 2 F b , 0 ) I F ( I ' I D , S T , O ) GO TO 4

I ~ L ) = I

O0 3 J=I,.',*X2 J ~ ( J ] = K

~, d~=O J , ~ = J E * 1

~ I T .F ( ~'*OllT , .~] v;~ ~ T~ ( ;~.','hlT ~ 7) ( J A ( J ) e J=J l :J , JE ) KK=r,Y ] F ( J ~ . G ' I . 1 ] GO TO 9 J E = J E ' I I)O 17 K - - I , N Y

~ ; H I T F - ( N ( " U T , R ] K M * ~ ( N , ~ * K K ) t ( H ( J t K K ) ~ J = J B , , J E )

J E = J E * I ,,~0 TO %

9 J E = J E ' 2 j H = , J B - 1

r)o ] 0 K=I~NY K ~ 4 = ~ K - I

. ' :wl TL"(,';C.UTtF~) KM, ( H ( J * K K ) * J = J E * J E ] t H ( I I K K ) ] 0 s, K .~.K ~,

E~(;,

C ~ ( X , V ) =~40**41eTANH ( P ) * H E e . ~ I N ( 0 ) e ( * F C H ( R ) ) e e p , C ~"f~F!~E I ̀~ = 9 * e ( [ ] / ~ - Y ) / ( ~ , q * ~ ) , C .~F,;~ V = T U P I ~ X / F L ~ AhD ~ = ~ e p , C " H T ( J , K) : 2 , ~ S O I ~ T (G~H ( d , K) ) C ' ~ ( J ~ , ) = - ( G / F ( K I ) O ( P A I ~ T I A L I ) E k I V ~ T I V E D~If)Y ~T J ~ K ] C v ( , J , ~ ) = ( ( ~ / F ( K ) I ~ ( P ~ . I ~ T I A L D E * ~ I V ~ T I V E O H / r ) X AT J , K )

CO'"O!'; /CO~'~STIFL *O* T *D~ *DY ~OT *FX *FY , F T ,G~ T I~*E ~ I P R , A D J , B D d U I;"E~:-~ ~ O ''' U ( L A * N Y ) * V ( L X * % Y ) * ~ H I ( L X , ~ Y ] , F (NY) , S ( L X ) ,C ( L X ) , H ( L X , N Y )

~AT~ " * I ; ' / 1 /

I FO°"~,A T ( t~,E ] 0 , ~ ) "3 F O 6 ' : A ' r ( , , 1 S H A L L O W ~AT~,~ [ r ~ U A T I O N S " / ) '~. F:)~:~.~T("O CO"~STANTS: H O = * ' * F S , O , " ~ . °° , IOX,OOFHATg 'O,Eg ,2 ,oo lSEC '*,

; O X * ' * L = " * F g , O * " M ' ** I E X * ' *OX=***F '8 ,0 , " ~':**I|~*.X*'*HI"***F.5,O*** M***IOX* ? ' * ~ E T ~ = * * * ~ ' g , 2 , ' * I S E C I ~ ' * * I O X * * ' D = * * * F g , 0 , " *****************El***** .w.**l 3 l o . .X , "Hi . ?=* '* rS ,0* '* ~ " * 4 0 X * * ' T = * * , P 9 , 0 , " * * * * * * * * X * * * * * = " , * 8 * * * * * S E C " I )

CAOIIO VII. Jo Ne. I-=C

Page 16: ADIF, A FORTRAN IV Progam for Solving the Shallow-water Equations

34 I.M. NAVON

C "c3, ~'1, H~ AI~F. CDNSTA~:TF,. IN TMF. HEXGttT FUNCTION C FHt. T~ ,~FTA AI~E CONSTANTS IN F = FrtAT * H E T A e ( Y - 0 / 2 )

~EAa ("Jl.~,o 1) H0~H1 t H 2 t F H A T i H E T A ;~ I TF ( .~KiU r 13)

"H T TE (,'~oUT ,p 4 ) H0 IFHATt F L t b X t H I ~HETAeDtDYt H2~ TtDT Y [ = g e ~;r) YF=(I, 5'DYF 0?='0/2, XF=TUPI/FL F',,XI=TUPI/FLOAT (rJX)

~_ F J = 0 . !J,'} l{~ J=I~I~X F J = F J + I . TE"IP=F JoF NX I S (d) = S i r : ( T E N P )

If) C (d ) =CO~ (TE'~P) S(~JX)=0 , C {~':X) = I , NYP=NY- 1 FNYMI =9•/FLfIAT (NYM) FKM--O, Y = 0 , DO 20 K---]tNY TE~R=D~-Y F (K) =FHAT-HETAeTEMP GH= G/F (K) YA=6, S-FKMeFNYt~ I YP.'.=O, SeYA 1 NH:TANH (Y6 ) SFI2= 1 =-TNHeTNH C] =H0¢HleTNH C4=-YFeSH2e'HI T~,IH=TANH (YA) SH~=I • -TNHeTNH C~=H?OSM2 I F ( K , F . Q , I ) C~=0 , IF(K,E~,'$Y) C 2 : 0 , C3=C2OXF' C5=~., *C2*yEeTh , H bO 15 d=l,hX TENIP=5(J) h ( J ~ K ] = C I ¢ C ~ . e T E M P PHI ( J t K ) =2oeSURT (GeH ( J t K ) )

14 V (J~K) =GHeC3eC ( J ) U ( J ~ < ) =-;~,H ~ ( C6 + C5 e TE ~to )

l - ~) CO~.TI'-,UF F [F) =F (~) ~FT Y=y~r)Y

20 F K~'I=FKV,+ 1 ,, 24 O0 25 d= l ,~JX

V ( d , l ) = O , 75 V (d~r,,V) = 0 ,

[i~!1 SUBROUTINE L O O K ( U t V ~ P H I t H t F ~ N X ~ N Y ~ L X ) PEAL MSvRT C O M P O N / C O N S T / F L e D t T ~ D X t D Y t D T t F X ~ F Y t F T t Gt T I N E e I P R ~ A O J t B O J D I M E N S I O N U ( L X t N Y ) t V ( L X t N Y ) t P H I ( L X t N Y ) t H ( L X t N Y ) t F ( N Y ) DATA N O U T / 3 / DATA IN[.) /OItNSTEP/O/~TIMEAIO./

3 F O R M A T ( " I T I M E = " ~ F g e 0 e " S E C " ~ I O X o t ' H M E A N i N t F § e ~ t ~ N ~ | 0 X e ~ E N E R ~ Y m t ~ t 1 IPF. I 3 , F t I 0 X t ' * C P U T IME FOR " ~ I 3 ~ " STEPS ~ * * * 0 P F S , 2 t ~ SEC W)

F O P M A T ( ~ X ~ e M E A N SQUARE V O R T I C I T Y = e t | P E I 3 e b ) ~S FOqMAT ( S X t " L O O K " )

T I ~'E~=SF CONO (CPU) OPT ] ~E=,T I ~ E S - t IMEA I F ( I N D . G T . O ) GO TO ~6 l~,V:l , / ( ~ , e G )

Page 17: ADIF, A FORTRAN IV Progam for Solving the Shallow-water Equations

56

5 0

A ~ F , a FORTRAN IV program for solving the shallow-water equatmns

AREA=NX* (NY-I)

5 Sd~E~v)=0. H~EAtJ=O. Z~EA'J=0. EC~.~ST2=DXoDY

'YI=~.y- I FAC=0.S ~?n 40 K=I,NY IF(K.E0.:.IY} FAC=0.5

~EL=0. E~EREL:n. L)O ID J=IQhX D~SI~=PHI(JgK)*PHI(JtK)/4. ~.L:F~FL=~HS()~ (PH~Q÷U { Jt K) °U(J)K) .V (J,K)*V(JoK)) .ENEREL

i 0 C ;)~'!T I ~UE IF(I~i).()T.0) GO TO 20 13() 15 J=),NX

15 r~EL=HEL*H(J,~) 60 TO 30

20 .30 25 J=I,NX

H(J,K)=PMI(J,K)*PHI(J,K)*G~INV 25 ~(EL=HEL.H(J,K) 30 IF(FAC.EQ.I) GO TU 35

HEL:HEL*FAC 35 H~EAN:H~EAN.HE~

SU~ENG=SU~ENG.ENEREL 40 FAC=I.0

DO b0 K=~mNYI F(K)=F(K)/FT DO 56 J=I~NX

JPI=jol JMI=J-I IF(JMI.LT.I ) JMI=NX IF(JPI.GT.NX) JPl=l r 'SV~T=(((V(JPI,K)-V(J~I,K))/(2.~DX)-(U(J~K~I)-U(JmK-I))/(~.~Dy)$

IF(K))~*2)/H(J~K)$MSV~T CONTINUE

Z~EA~'~=Z~EAN*MSVRT CONTINUE H~EA~i=H~.EAN/AREA E,~EmGY=~U~ENG~ECNST Z~EA~=7~IEA~ECNST2

'-RITF(NhLIT.3) TIME,HMEAN,ENERGY,NSTEP,OPTIME ~ I T E ( 3 , ~ ) Z~EAN

~STEP=IP~ CALl.. HOUT(H,NX,NY.LX) ~RITE(NOUT~2) CALL "'APPA(H~0.02,NX~NY~LX) TIvEA=SECO~0(CPU) IF(I~D.=.IE.~} GO TO ~S E~2:E~,E~GY*E~ERGY I ~ D = I GO IF) S0

~5 IF(E'~EP(;Y.GT.EN~} STOP ~~ I TE. (NOUT ~ $5)

50 ~E. T u ~ F~l~

1

SURROUTINE CYCBLK(N,P~O~R~DmW)

35

01r~ENSION P(4oN) mQ(~tN)+R(CoN)+D(2tN)+W(2tNt3)

C CYCRLK SOLVES TtX=D WHERE T IS A DIAGONALLY DOMINANT CYCLIC BLOCK C TRIDIAGGNAL MATPlXt EACH BLOCK BEING 2"2t AND THE ORDER OF T BEING 2ON, C P, U, R, ARE ARRAYS OF DIMENSION 4ONt WHICH CONTAIN THE ELEMENTS OF C THE HLOCKS ALONG THE SUB-DIAGONAL~ DIAGONAL AND SUPER-DIAGONAL C wESPECTIvELY. C [} IS A~ ARPAY DIMENSIOKED 2*Nt CONTAINING TME CONSTANTS,

Page 18: ADIF, A FORTRAN IV Progam for Solving the Shallow-water Equations

I.M. NAvoN

C THE RLOCK IN POSIT ION T ( I t N ) IS STORED IN P( t l ) ~ AND C ThAT IN POSITION T(Ntl ] IS STORED IN R( ~N),

C ARRAY w PRnVIDES WORKING AREA AND MUST BE OF LENGTH 2eNe3 C DU~I~G CO~PUTATION ALL INPUT ARRAYS ARE OVER-WRITTEN,

C THE SOLUTION VECTORS ARE STORED IN ARRAY Dm NM=~-I

~_0

AT LEAST.

D0 I0 I=I~NM

PO 5 d = l t E ~ [ d t I * l ) = l ) ( d t I ) w ( J , I * 2 ) = 0 ,

5 * ( d , l , 3 ) = 0 . 10 C0~TINUE

~ ( l t l t P ) = P ( l t l )

w ( 1 , 1 , 3 ) = P ( 3 ~ l )

CALL ~ L K I ~ I I ~ ( N ~ , 3 ~ P t ~ t ~ , ~ t N ]

V I= ~ ( ¢ ~ : ~ ) - u | .~.IN) e~, ( i ~ 1 t 3 ) - ~ ( 4 I N ) e~ ( 2 t I e 3 ) . p | ~ t N ) eW ( 1 t N N t 3 )

1 *P (~ ~ :-:) 0~- ( ~_ t ~.t-~ t 2 ) ~,~=-C:(3,,.} +w (1 i N ) * * ( 1 , 1 , 3 ) , R ( 3 , N ) e w ( 2 t 1 ~3) * P ( 1 tN)eW (1 tNM~3)

~)lr. =1) ( | i~.~]-~: ( l t , ~ ) ~,, ( | t 1 ~ | ) . ~ (3eN) *W (;).t | ~ l ) . p (1 tN) .W (1 tNMt 1 )

t . ,~t. = ~ ( ~ : ~ ) - ~ ( E ~ ) e ' , , ( I , I ~ I ) . R ( ~ N ) e W ( E t l t l ) . p ( E t N ) e w ( Z ~ N M ~ I )

!)E T=V I * V~,-V~.*V3 T Er ..~- ( v 1 *f.~ ] ~ * ~, 3* [)2~ ) / D E T

L) j. f,.='r [ .,~

i l ( 1 , 1 ) = , - ( l o I t l ) - ~ l ~ l o w ( 1 . I t E ] - D E N O W ( l t l t 3 ) ~(~-, I ) =" ( ~ , I t 1 ) - 0 1 r u i w ( E , I ~2 ) -DENeW(Eo I t 3 } C{.~:;T I ; , , t ' r

:) ( I , ~ ) = n l ~.. r) ( ? l t,,) =r;2r',

F .i.)

StIRI~O'.IT I'VE C Y C T R I O ( N t P t O t R t D t W )

f ) IMENSION P(N) t.~ (N) tR (N) t n (N) tW (Ne2 ]

C SOLVE% THE SET AeXsO OF N ( N , G E , 3 ) LINEAR EQUATIONS WHERE THE C ~ O [ F F I C ] F ~ t T ~ATRIX IS CYCLIC TRID IAGONAL, C VECTORS Pt Ut Ro Ot EACH OF N ELENENTStCONTAIN RESPECTIVELY THE C 5~I~-DIAOONALt OIAGONALt SUP[H-O IAGONAL t AND CONSTANT E L E I ~ E N T S , C ThE ELFMF~T A ( I t N ) IS STORE0 IN P l l ) t C AND A ( N ~ | ] IS STORED IN R ( N ) ,

C ~Q~AY w PRr)VIDES WORKING AREA AND MUST BE OF LENGTH 2eN AT LEAST, C ~)O~ING COMPUTATION ALL INPUT ARRAYS ARE OVER-WRITTEN,

Page 19: ADIF, A FORTRAN IV Progam for Solving the Shallow-water Equations

ADIF, a FORTRAN IV program for solving the shallow-water equations 3"/

C V~ SOLL;TIO~',~ VITCTO,~ IS ST()qED IN VECTOR O. ,,~r., = (.,- '1

, : ( I , I ) = 9 ( I ) I0 ,,(I,P)=O.

~,(I,P)=F~(1)

CALL TPI{)IAG(N~,2~P,Q~P,w,~,)

) ..'.~= (0 (,"J) -" ' ( ~ ) ew ( I ,m ] ) - P (r,l) oW (FIMe I ) ) I (Q (N) - R ( ~ ) eW ( ] ,ira2) - P (N) ,mm, w (NI~, m 2 ) )

2O O0 20 I=I,N(~ D(1)=~(I,I)-XN*W(I,2) I ) ( N ) = X N

~ T ~ I R ~

SUi'R(')UT I (-~F PLKTR I O (N,~,,4, A ~ 8, C, D, L)

C :~L~TKIO SOLVES I *X=D ~HERE T IS A DIAGONALLY DOMINANT C ~LOCK ~AIRIX, EACH BLOCK BEING 2~2~ AND THE ORDER OF C L)c.JKI~,O COr~PIJTATION ALL INPLIT ARRAYS ARE OVER-WRITTEN.

T ~ I D I A G O N A L T B E I N G 2 * N ,

C T~wF %OLHTIO~J VECTORS ~)EPLACE D, THE APRAY OF CONSTANTS.

IF(~.EO.3) (;0 TO 5

~(2,1)=0. C{I,J~-I)=O. C(2,N-I)=O.

vI=B(~I)~TEHP V2=-H(2,1)~TE~P

v~=~(l~1) ~ T E ~ P

I 0

TE~IP= VIOP(ItIwJ)÷V3"D(2,1~J) l ) {2 , l , J )= V2OO(Itl,J)*V4*D(211,J) ~(I,I,J)=TE~iP TE~P=-(VIeC(Itl)~V3~C(2,1})

C(I,I)=TE~'F TE~'=-(VI*C(3,1).V3~C(~,I)) C(~, I }=- (V2~C(3,1) -V~C(~, I ) ) C(3,1)=~E~

De) 20 I=2,N l , i = l - I E~( I , I )=B( I , I )÷A( I , I )oC( I , I~ ) .A(3 ,1}oC(211M) H(2,1I=P(P, I ) .A(2,1)oC(I , IH)-A(4t l ) *C(201M) ~(3,1)=R(3~I) -A( I t l ) *C(3t I~)+A(3~I)QC(4t IM) ~(~ I )=H(~I )+A(2 ,1) *C(3 ,1M)¢A(4 t l )oC(4 t IM) TF~P=l , / (k , ( l , I )OB(4,1) -H(2 ,1)*B(3 t l ) ) Vl=~(wtl) ~TE~P V2=-R(2,1)*TEPP v3=-B(3,1)'TE~P V~=H(I,I) ~TE~P TEr-,H=-(vI*C(I,I)*V3oC(2tl)) C(2 ,1)=- (v2~c( I , I ) .V4*C(2,1) ) C(I,I)©TEFiP TE"R:-(VI*C(3,1)-V3*C(4~I)) C(4,1) : - (V2*C(3t l ) .V4~C(4,1)) C(3,1)=TF~P

Page 20: ADIF, A FORTRAN IV Progam for Solving the Shallow-water Equations

38 I .M . NAVON

15

~0

25

30

O0 15 J= l ,~ 9 ( I , I t J ) = O ( I ~ I ~ J ) - A ( I t I ) ~ D ( I t I ~ J ) - A ( 3 t I ) ~ D ( 2 * I ~ J )

{ ) ( 2 , I , J )= V2~O( I * I , J ) *V4~D(2 t I , J ) IF(-.',F~.I,AHD.I.EQ.(W) TEMP:O. n( I , I ,J)=TE~'P

COI~TI:~lJE K=~ ~0 30 I=2,N

K = ~ - ]

O0 25 J = I t ~ TE~P =D(I ,KtJ)*C(] tK)~D(I~KPtJ)~C(3tK)eD(E~KP,J) t ) ( ~ K , J ) = I ) ( ~ K t J ) + C ( ~ t K ) ~ D ( | ~ K P t J ) . C ( ~ t K ) ~ D ( 2 ~ K P ~ J } I F ( ~ . E ( ~ , I . A ~ D . ~ , E O , 1 ) TE~P=O. D ( I~K~J }=TEPP

C Ot.;T I "'l ~F

RETUP, r,i

SUBROUTINE TR IDIAG (N~;"I~ At 8t C ~D~L)

10

15 ~0

/'5 30

PO

~5

DIUt:NSIO~ A (~w) ~B (r.i), C (N) eD (.L ~M)

DO 10 J = I t M I ) ( I . J ) = D ( I . J ) / B ( I ) C ( I ) = - C ( I ) / B ( I )

DO ~0 I=2tN l ~ = I - 1 B(1)=A(1)*C(I~).B(I) C ( I ) = - C ( I | / H ( I ) O0 15 J = | t M O ( I ~ J ) = ( D ( I t J ) ' A ( I ) ° O ( I M t J ) ) / R ( I ) COh;TINUF

I)O 30 I = 2 * ~ KP=K ~=~-1 DO 25 J = l t P ~ ( K , J ) = ~ ( K t J ) ÷ C ( K ) ° N ( K P t J ) CnIITI:JUF

~ETLPR~

~U~ROUTINE E~DY(UoVtEVXtEVYtLXmNXmNY) COMPON/EDVUPT/GNUtGA~IGOX3tPXtPYmPXSQtPYSQePXS21PYS2tALPHAIFACeIND t)]t, 'ENSION U ( L ~ I N Y ) t V ( L X t N Y ) t E V X ( L X t N Y I t [ V Y ( L X w N Y ) I X S I i 3 5 t Z S I t

I V l S C ( 3 5 t 2 5 ) [)0 25 K= | INY K P I = K * I I F ( K P 1 , G T , N Y ) KPI :NY On ~5 J= loNX

; F ( J P I . G T , N X ) J P I z l X S I ( J g ~ ) = P X e ( V ( J P I o K P l ) - V ( J t K ) * V ( J P I t K ) - V ( J t K P 1 ) )

1 - ~ Y e ( U ( J P I ~ K P I ) - U ( J t K ) * U ( J t K P | ) - U ( J P l t K ) ) COrJTt~UE ~0 30 K= I tNY

I F ( K P l . G T . H Y ) KPlzNY

Page 21: ADIF, A FORTRAN IV Progam for Solving the Shallow-water Equations

ADIF, a FORTRAN IV program for solving the shallow-water equations 39

JPl =J" 1 IF (JPI.I~T.r~X) JP I= I TA=XSI (JPl ,KPI ) -XSI (J ,K) .XSI (JPI ,K) -XSI ( J , K P l ) T5--XSI ( . ' P I , K P l ) - X S I ( J , K } ' X S I ( J , K R I } ' X S I ( J P I ' K ) Sc)=SOWT ( PXSC*T A*TA÷PYSQ*T~]OTB) IF(Ir.,r?.F,~.2) GO TO 28 V 15C ( J , K ) = Gr.,U ~ ( 1 • ',' GI) x 3* SO ) GP, TO 3n

L~p~ v i s e (J,pK) =FAC*SO 30 CO~T I ~!UE

DO 55 K: I ,NY ~ P I : K + I ~;'2=K÷2 I F (KP !-~,~Y) ~0t37935

35 K ~ I :t~Y

z~O ~)0 55 j : I t N X J P l : J ' l JP2:J~?? IF (JPI - " 'X} 5 0 , 4 7 , 4 5

~,5 JP I= I JP2:2 GO TO 50

47 J ~ 2 : l ,.)C} EVX(J ,K) :PXS2* ( (V ISC(JP2 ,PK) "V ISC(JPI ,K ) ) * ( U ( J P 2 , K ) - U ( J P | , K ) ) -

I (V ISC ( JPl I,K) 'i'VISC ( J , K ) ) * (U(JPI ' K ) ' U t J t K ) ) ) ? -I:YS2* ( (VISC (J,KP2) w.V I SC (JeKPl) ) * (U (Jq,~P2) -U ( J,pKPI ) ) - 3 (VISC (J ,KP l } .VISC (J . tK } ) * ( U ( J t ~ P I ) - U ( J t K ) ) )

EVY(J ,K) - -PXS2* ( (v ISC(JP2eK)~VISC(JPI ,K ) ) * ( V t J P t , , , K } - V ( J ~ I t K ) ) - I (V ISC (JPl ,K) ,,,VISC ( J , K ) ) " (V (JPI,pK)-V (J~'K}) ) 2 -PY52*( (v lSC(o.0KP2) w"VISC(JI. KPl) ) '°(V(J.pKP2)-V(J.pKPI) } - 3 (VISC ( J , k P l ) "VISC ( J , K } ) ° (V ( J ' K P l ) - v ( J ' K ) ) )

55 CONTINUE UETU~