and a / quasi-geostrophic regional.. (u) jaycor alexandria ... · -d-r133 754 elliptic solvers for...

56
-D-R133 754 ELLIPTIC SOLVERS FOR NORDA OCEAN MODELS AND A / QUASI-GEOSTROPHIC REGIONAL.. (U) JAYCOR ALEXANDRIA VA A J WALLCRAFT 12 AUG 83 JAYCOR-J26-83-007,'622i UNCLASSIFIED N8eai4-82-C-8394 F/6 8/j0e N EEmhEmhEEEoiE

Upload: ngodan

Post on 03-May-2018

215 views

Category:

Documents


1 download

TRANSCRIPT

-D-R133 754 ELLIPTIC SOLVERS FOR NORDA OCEAN MODELS AND A /QUASI-GEOSTROPHIC REGIONAL.. (U) JAYCOR ALEXANDRIA VAA J WALLCRAFT 12 AUG 83 JAYCOR-J26-83-007,'622i

UNCLASSIFIED N8eai4-82-C-8394 F/6 8/j0e N

EEmhEmhEEEoiE

1 .01 t& 1321 1.

sm

1 1.25I LA .4 1 .1-11 E11L

MICROCOPY RESOLUTION TEST CHARTNATION4AL BUREAU OF STANtDARDS- 1963-A

-~~~~~~~~~~~~ 7;-- -~ r W ~ ~ -.- w-w--wrw - . . .,

ELLIPTIC SOLVERS FOR NORDA*OCEAN MODELS AND A QUASI-GEOSTROPHIC

REGIONAL EDDY-MEAN ENERGETICS PACKAGE

1% J206-83-007/6221

This '.)Cun-,U -,sb Ip,)oe

83 09 0220 ouhWitn Sre

A'* .. dia Vigii 220

~44MCOR

ELLIPTIC SOLVERS FOR NORDA

OCEAN MODELS AND A QUASI-GEOSTROPHIC

K: REGIONAL EDDY-MEAN ENERGETICS PACKAGE

V J206-83-007/622 1

Final Report

by

Alan J. Walicraft

August 12, 1983

Prepared for:em4 Naval Ocean Research and Development Activity

NSTL Station, MS 39529

Under:

Contract Number N00014-82-C-0394 \ 98 3

)net frift-A

t-,.--.

L1NQ2 AS-'TFTFl..2CURITY C.ASSIFICATION OF THIS PAGE (Whmn Dea Enteeed) __

REPORT DOCUMENTATION PAGE BEFORE COMPLETING FORM

I. REPORT NUMsER . GOVT ACCESSION NO CIP NT*S CATALOG NUMBER

J206-83-007/6221 G,4. TITLE (and Subtitle) . OF REPORT & PERIO0 covEN-0

ELLIPTIC SOLVERS FOR NORDA OCEAN Final Report, 03/15/82 thru• "; 03/14/83

MODELS AND A QUASI-GEOSTROPHIC REGIONAL EDDY-a. PERFORMING ORO. REPORT NUMBER

MEAN ENERGETICS PACKAGE J206-83-007/62217. AUTNOnfa) a. CONTRACT O GRANT NUMUER()j

Alan J. Wallcraft N00014-82-C-394

S. PERFORMING ORGANIZATION NAME AND ADDRESS 10. PROGRAM ELEMENT. PROJECT, TASKJAYCOR AREA A WORK UNIT NUM9UE"S

205 South Whiting Street A002Alexandria, VA 22304

1. CONTROLLING OFFICE NAME AND ADDRESS 12. REPORT DATE

Naval Ocean Research and Development Activity August 12, 1983-IN. INSTL Station, MS 39529 I9 NuNEOPPAGU

49 pages14. MONITORING AGENCY NAME A AOORESS(11 di fferentfern CO"||hl1n Office) IS. SECURITY CLASS. (o t e VpoINet)

UNCLASSIFIED

Soll. OCCLASSI FICATION/ DOWNGRADINGSCNEDUILE

16. DISTRIBUTION STATEMENT (of tia Rspeni)

1 - Scientific OfficerI - Administrative Contracting Officer, Code 6216 - Director, NRL, Code 2627

12 - Defense Technical Information Center

17. DISTRIBUTION STATEMENT (of the 460&0c9 entered in look it 40f106 10 hrn Realp )

I1. SUPPLEMENTARY NOTES

19. KEY WORDS (Comene an reveo ee i*#doit nteooW identify y blaock nmber)

Elliptic solvers, quasi-geostrphic, eddy-mean energetics, Helmholtz equation

20. ASTRACT (Cnts an reva e old@ It nes eoem and Identitl by block n0mb)

--I-.........

d IFOP~ADD 1473 EITI'rO~sN or o46oO I Nov $11 Is OBSOLETE, UNCLASSIFIED -'

SECURITY CLASSIFICATION OF THIS PA09 (lMe Data 0014011)

-i-

TABLE OF CONTENTS

1 . ELLIPTIC SOLVER LIBRARY .. .. ... .......... 1

II. NON-SEPARABLE ELLIPTIC SOLVERS .. .. .. ..... ... 4

III. MODEL COMPARISON .. .. .. ..... .......... 6

REFERENCES. .. .. .. ........ ......... 7

APPENDIX A. .. .. .. ........ ......... 8

APPENDIX B .. .. .. ..... ........ .... 24

*ir;pI

I. ELLIPTIC SOLVER LIBRARY

All two dimensional Helmholtz solvers for rectangles at NORDA

have been placed in one library with standardized naming and argument -

list conventions. Each solver has full internal documentation, test

software for accuracy, timing and error conditions (such as incorrect

dimensions, etc.). The internal documentation for three representative

solvers (SI4NUUH, SMNSUH and SMWSSH) is reproduced.in Appendix A.

To invoke a solver, two routines must be called. The first

(e.g., CMNUUH) tests the correctness of the arguments and produces

constants for use by the solver proper; it need be called only once forV each different Helmholtz operation (i.e., it does not depend on the

right hand side of the equation). The second (e.g., SMNUUH) when called

with the precalculated constants and a right hand side array actually

supplies the solution to Helmholtz's equation, it must obviously be

called once for each solution required./X These rectangular solvers

generally must have the same boundary condition type on the facing

parallel sides and uniform grid versions are generally faster than

stretched grid solvers so the following convention has been adopted. If

the solver is called ABCDEF then:

A - indicates the solver routine type, it can be

C - for the constant setup routine,

S - for the acutal solver routine

B - indicates the boundary condition type on the left and right

sides; it can be

P - for periodic,

D - for Oirichlet,

N - for (staggered grid) Neumann,

5M - for mixed (Dirichlet and/or Neumann).

JQ1

:,. ,-,,- ,. .,-,,'- -_-,,,---- .' ,". ,.".. . -.. ... -... ...-.... . -. . .. ...--.1..-

I

'I

C - indicates the boundary condition type on the top and bottom

boundaries, it can be P, 0, N or M.

0 - indicates the grid type in the x-direction; it can be

U - for uniform grid (constant delta-x),

S - for stretched grid (variable delta-x).

E - indicates the grid type in the y-direction, it can be U or

S.

F - indicates the elliptic operator type; it can be

H - for Helmholtz's equations,

S - for separable elliptic equations,

P - for general positive definite elliptic equations,

G - for general (non-symmetric) elliptic equations.

The solvers currently in the library are:

* SINUUH

e S4DUUH

* SMPUUH

* SN*4SUH

* SMDSUH

• SMPSUH 'A

* SMMSSH.

By adding a driver routine with appropriate transpose operations,

solvers SPMUUH, SNMUSH, SDMUSH and SPMUSH can effectively be created

from this set (the appropriate code is contained in the test program).

The uniform-uniform solvers use the FACR(1) algorithm and

, therefore restrict the active x (or first) dimension to be odd and the y

dimension to be of the form 'p' times 2 to the power 'q' plus 'v', where

'p' is usually 3, 4 or 5 (although 7, 9, 11, etc. are possible), 'q' is

-2-

p " . : . * . . .... .... . ,.. . ,' . ° '.' " ', " q". . T - ' .| "i . " ' " , " ... . . . . . . . . . . . .

--* a positive integer, and 'v' is -1, 0 or I depending on the boundaryconditions. They are the fastest solvers in the library and need the

least storage for constants. The stretched-uniform solvers use theFACR(O) algorithm, which is very similar to FACR(1) but places norestrictions on the x dimension. They are only slightly slower then the

uniform-uniform solvers but require more storage for constants.

Stretched-uniform Helmholtz solvers on a rectangle are equivalent to

uniform-uniform solvers in the surface of a sphere, and therefore finduse in spherical coordinate ocean models. The stretched-stretched

solver uses matrix eigenvalue deposition which has no restrictions on

the rectangle dimensions but takes a long time to generate the

relatively large number of required constants. More importantly, it is

an 0 (n cubed) method rather than the 0 (n squared. log n) performance* of the FACR algorithms, and therefore becomes relatively slower for

larger problems. On the other hand, the method vectorizes exceptionally

well and is very flexible. It is probably the best method available for

very small problems (although this may not be very important).

Stretched-stretched Helmholtz solvers can be applied to any separableelliptic equation so SMMSSH could equally have been called SMMUUS (or

SMMSSS).Most of the computation within the solvers is performed by two

auxiliary packages which might be useful in their own right in some-. applications. The first is a real fast Fourier transform (i.e., fast

sine and cosine transform) package by JAYCOR consultant D. R. Moore.

This standard FORTRAN code is suitable for automatic vectorization or

vector machines and is probably the fastest transportable FFT package

available. It contains all the transforms needed by FACR solvers,

including the non-standard transform required for staggered grid Neumann

boundaries, and is fully documented with its own test routines. The

second package contains routines for solving various sets of constant or

variable coefficient tridiagonal systems of linear equations. It also

is written in standard FORTRAN to allow automatic vectorization and

contains full internal documentation.

-3-

-""..

II. NON-SEPARABLE ELLIPTIC SOLVERS

The existing stablized marching code was found to be the

fastest for the non-separable equations encountered in rigid lid ocean

models with bottom topography. But this method has several

disadvantages:

* The method is very sensitive to the placement of the 'block'

boundaries which artificially divide up the region.

e Storage and time grow with the cube of the dimension of a

side of the rectangle. It is therefore best suited to small

or mid-size (e.g., 75 x 150) problems.a Double precision arithmetic must be used throughout. This

obviously doubles the storage requirement and in many cases

also doubles the CPU time. On the CYBER 205 the highest

vectorizable precision is only accurate to about 14

significant figures, so marching methods are at a large

disadvantage on this machine.

A diagnostic printout capability has been added to the package to

simplify the choice of block boundary positions. The other

disadvantages are intrinisic to the method, but note that despite them

the method is still the fastest available (at least for mid-size

problems).

The best iterative method was found to be 'Black Box' Multigrid

[Dendy, 1982). This method was originally developed for elliptic

problems with discontinuous coefficients; the coefficients in ocean

model cases are smooth but the discontinuous capability allows non-

rectangular problems to be solved by imbedding in a rectangle (with

discontinuities at the region boundary). Always solving in rectangles .*

greatly simplifies the task of vectorization, and defining the region

via the coefficients removes the necessity for the complicated data

structures associated with other non-rectangular multi-grid codes.

-4-

* * r r ; .-- -- -o*

However, the cost of this simplification is that a solution is

calculated over 'land' where it is not needed (increasing solve time),

and additional storage is required because all course grid elliptic

operators are 9-point even though the fine grid operator is 5-point.

The total storage required for constants is 7.4 meshes and one

'iteration' takes about as long as one application of the very fastFACR(O) solver (which only works on rectangular Helmholtz problems) and

reduces the error by a factor of 10 to 50. Only three or four such

iterations are required when used in ocean models so the method is very

fast. Marching methods are faster for small problems but the multigrid

code has the advantage that both storage and solve time increase only

linearly with mesh size. Thus, Black Box multigrid is the method of

choice for large problems, and may even be competitive for solving

Helmholtz equation in non-rectangular regions (despite the existence of

very fast direct Helmholtz solvers).

p-5-

V.. - . °..

* . . .. . * ** * * . . - - .,, * .

- 7Z.

. .W. in-. -4-- "T "r "7 _ 7.

4I

III. MODEL COMPARISON

A regional eddy-man energetics package has been developed for

the quasi-geostrophic ocean model. This was tested on a course grid (25

x 25) version of a single gyre experiment reported on by Holland

[Holland, 1978). Good agreement was found and sample output from the

package is reproduced in Appendix B.

The series of wind driven mesoscale eddy experiments for the

model comparison project were completed and the results presented at the

1982 Fall AGU Meeting. The basic finding was that in a classic double

gyre experiment the mid-latitude Jet develops much more slowly in the

quasi-geostrophic results. There were also significant differences in

the eddy-mean energetics.

&

' " \;' Z ? ": ,:" ; :; ; '4 ' '' ''' ''" . ' '' ; ' ".' '':' '"i'".2" "'" '"""'"""i' """ ''

REFERENCES

Dencly, J. E. (1982). "Black Box Multigrid," J. Comp. Phys. 48, pp 366-386.

Holland, W. R. (1978). NThe Role of ?4esoscale Eddies in the GeneralCirculation of the Ocean -Experiments Using a Wind-DrivenQuasi-Geostrophic Model.," J. Phys. Oceanog. 8, pp 363-392.

-7-

- - - - - -- - - - - .- - --.7... .

APPENDIX A

Sample Internal Documentation from Rectangular Helmholtz Solver Library* CMNUUH and SMNUUHe CMNSUH and SMNSUH* CMMSSH and SMMSSH

-8-

- .-

SUBROUTINE CMNUUH(DAX,DAY,DAC, NDX,NX,NY, OLO, W)INTEGER NDX,NX,NY, LODOUBLE PRECISION DAX(3,1),DAY(3,1),DACDOUBLE PRECISION WDIMENSION Q(LO), W(NY,5)

C

C** INTRODUCTION: *AC** **CA* COMPUTES THE CONSTANTS REQUIRED BY SMNUUH TO SOLVE THE A*C*A FOLLOWING ( MIXED-NEUMANN ) HELMHOLTZ'S EQUATION ON *AC*A AN NXNY MESH. A*C** kAC** FOR I 1, ... , NX AND 3 = 1, ... , NY AA

CA* AN( J) A H(I, J+l) +C*A* AS( J) * H(I, 3-1) +CA* AE(I ) A H(I+1,3 ) +CA* AW(I ) A H(I-1,3 ) + A*CA* AP(I,3) A H(I, 3 ) v S(I,3) **C*AkCA* WHERE A"CA* AN(3) = DAY(3,1) Jml... NY-1, A*Ckk 0 3- NY. A*C*A* AS(3) =0 - 1. A*C** DAY(3,1) 3=2...NY, **C*A AE(I) = DAX(3,1) I-1...NX-1, **C * 0 In NX. A*C** AW(I) 0 In 1. A*C*A DAX(3,1) Iw2...NX, A-CM* AP(I,3) = DAC+DAX(2,1)-(AN(3)+AS(3)+BE(I)+BW(I)) AACA* I1 ... NX, 31 ...NY. A*CA* BE(I) = DAX(3,1) Iu1...NX-1, A*CA* DAX(1,1) In NX. *CA* BW(I) a DAX(1,1) Is 1. A*CA* DAX(3,1) I2 ...NX, *A~~~C** * '

CA* USUALLY DAX(2,1)uO.DO A*CA*CAA FOR DIRICHLET-NEUMANN PROBLEMS DAX(1,1)=DAX(3,1) , *"CA* FOR NEUMANN-NEUMANN PROBLEMS DAX(l,1)=O.DO . A.C** A*

CAA FOR COMPATABILITY WITH OTHER SOLVERS SET DAY(1,1)=O.DO AACA* AND DAY(2,1)=O.DO • A*

C**C*A* ARGUMENT LIST: SEE OTHER COMMENTS FOR DETAILS A*C** *AC** DAX,DAY,DAC - HELMHOLTZ COEFFICIENTS AACA*CA* NDX - 1ST ARRAY DIMENSION OF S AND H IN THE SOLVER A.C*A *ACA* NX,NY - DIMENSIONS OF MESH (NX ODD AND NYwPA2*AL) A*CA** AC*, O(LO) -ARRAY FOR REQUIRED CONSTANTS AAC** A**.C*A LO - SIZE Of 0, MUST BE AT LEAST LGI+LO 2 +5, WHERE: *A

SC*A* LO1 NY + 1OALO3*A2 + 1 AACA* LQ2 a NYA((NX+7)/4) + (NY+3)/2 + 2 *ACAA L03 a 0 IF P a 4,5, OR 6; A A

CAA (P-1)/2 IF P = 7 OR GREATER kCAk ACAA W(NY,5) - DOUBLE PRECISION WORKSPACE ARRAY kC hA A~kkkkkkkAkkkkkkk~kkkkkkkkkkkkkk kk

CAA *CAA SPECIAL FEATURES OR NON-ANSI USAGE k

CAA AN ERROR MESSAGE WILL BE OUTPUT TO CHANNEL 6, AND THE PROGRAM kCAA TERMINATED, IF ANY OF THE FOLLOWING CONDITIONS ARE DETECTED: kC* NX LESS THAN 5 OR EVEN kiCAA NY INCOMPATABLE WITH THE FOURIER PACKAGE kC*A LO TOO SMALLCAA DAX,DAYDAC NOT CONSISTANT WITH HELMHOLTZ'S EQUATION Ak

CAA THE WORKSPACE ARRAY, W, NEED NOT BE DISTINCT FROM THE **C*A WORKSPACE SUPPLIED TO THE SOLVER. HOWEVER THE LATTER MAY *CA* CONSIST OF SINGLE PRECISION ARRAYS. hA -

CAA hACAA FOR MORE DETAILED DOCUMENTATION - SEE SMNUUH. k

C

C END OF CMNUUH.END

-4

-10-"

~ - - . . - - -..

*.-*. IN 7

SUBROUTINE SMNUUH(S,H,NDX,NX,NY, QLQ, W1,W2)INTEGER NDX,NX,NY, LODIMENSION S(NDX,NY),H(NDX,NY)DIMENSION Q(LQ)DIMENSION WI(l), W2(0)

C ..... DIMENSION WI(NX+I,NY),W2(NX,NY)C

CA* DATE: SEPTEMBER 1978 C* AACAk AUTHOR: D.R. MOORE, A.3. WALLCRAFT kACA* *A

* . CA* ARCHIVIST: A.J. WALLCRAFT *A. CA* *A

CA* ADDRESS: NORDA *oC** CODE 322 A*C*A NSTL STATION, MS 39529 A*

Ck* PHONE: 601-688-4835 (COMMERCIAL) A*CA* 494-4835 (FTS)C** 485-4835 (AUTOVON) *A

CA* DATE OF CURRENT SEQUENCE: DECEMBER 1982 A*

CA* AA

C*CA* INTRODUCTION: A

C*A SOLVES FINITE DIFFERENCE HELMHIOLTZ'S EQUATIONS: A*C*M OVER A RECTANGLE IN CARTESIAN COORDINATES, *

C** ON A UNIFORM-UNIFORM MESH, A*CAA WITH (ZERO) NEUMANN BOUNDARY CONDITIONS 1/2 GRID DISTANCE A

*.C*A OUTSIDE TH'.. MESH AT Jul AND J-NY,CAA AND EITHER (ZERO) NEUMANN BOUNDARY CONDITIONS 1/2 GRID A*C** DISTANCE OUTSIDE THE MESH OR (ZERO) DIRICHLET BOUNDARY A*

C*A CONDITIONS 1 GRID DISTANCE OUTSIDE THE MESH AT Im1 AND I=NX. A*

C*A USES THE (UNSTABALISED) FACR(1) METHOD. A*

C-CA* BOTH THE INPUT ARRAY S(NDX,NY) AND THE OUTPUT ARRAY H(NDX,NY) ACA* ARE ASSUMED TO CONTAIN ACTIVE SUBARRAYS FROM 1 TO NX AND *AC** 1 TO NY. THE NON-ACTIVE SUBARRAY, NX.1 TO NDX AND 1 TO NY, ACA* OF S CAN BE ARBITRARY ON INPUT AND THAT OF H IS RETURNED *ACA* INTACT. ACAA AikCA* IN THE CALLING SEQUENCE THE INPUT AND OUTPUT ARRAYS MAY BE THE A*CAA SAME ARRAY. IF THEY ARE NOT THE SAME, THE INPUT ARRAY IS A*CAA RETURNED INTACT BY THE SOLVER. A*CA* ACA* IT IS ASSUMED THAT NECESSARY CONSTANTS HAVE BEEN PRECOMPUTED A*CA* EXTERNALLY AND ARE STORED IN THE ARRAY Q(LQ), WHICH A*C*A IMPLICITLY DEFINES THE HELMHOLTZ COEFFICIENTS (DAX, DAY, DAC) *CAA TO THE SOLVER. A*CA* A*CA A*C*A FOR I a 1, ... , NX AND 3 - 1, ... , NY THE SOLUTION WILL AC** SATISFY: A*CAA AAC*A AN( 3) A H(I, 3.1) + A*C*A AS( 3) A H(I, 3-1) + A*CAA AE(I )AHUI-1,J -*

FA-11-

Ckkkkk kkkkkkkkkkk k -k - **k .- .* . . - .- .k-kk ** * *.k k.,k

C** AW(I ) A H(I-1,3 ) + A*CAA AP(I,J) A H(I, J ) S(I,3)CAA A AC** WHERE A

C*A AN(J) a DAY(3,1) J=l...NY-1, A*C** 0 3= NY.C*A AS(J) = 0 3. 1. AAC*A DAY(3,1) 3=2 ... NY, A*CAA AE(I) = DAX(3,1) I=l...NX-1,CA* 0 In NX. A*CAA AW(I) a 0 In 1. A*C*A DAX(3,1) I=2...NX, AAC*A AP(I,J) a DAC+DAX(2,1)-(AN(J)+AS(J)+BE(I)+BW(I)) AO

CAA IuI...NX, J=l...NY. *•CAA BE(1) a DAX(3,1) I=l...NX-1, A*C*A DAX(1,l) In NX. *CA* BW(I) a DAX(1,1) In 1. A1CA* DAX(3,1) I=2...NX, A*C**C** A*CAAAAAAAA** AAAAAAAA** A AAAAA** AAAAAAAAA*A*AAAAAAA*AAAAA*A*AAA .

% CA* AA-

CAA LIBRARIES REQUIRED: A*CAA A*CAA EAST FOURIER TRANSFORM LIBRARY BY D.R. MOORE ACAA TRIDIAGONAL LINEAR EQUATION SOLVER LIBRARY BY A.J. WALLCRAFT ACAA AA *

. CAAAAAAAAAAAAAAAAAAAA*AAAAAAAAAAA*AAA*AAAAAAAAAAAAAAAAAAAAAAAAAAAA

C*A A*CAA ARGUMENT LIST: SEE OTHER COMMENTS FOR DETAILS hAkCAA A*C*A S(NDX,NY) - INPUT ARRAY A*C*A AC*A H(NDX,NY) - OUTPUT ARRAY A*CAA hC*A NDX,NY - SIZES OF S AND H A*C* A*-CAA NX - ACTIVE SUBDIMENSION OF S AND H AACAA A*CAA Q(LQ) - CONSTANT ARRAY, PRECOMPUTED EXTERNALLY hAcAA hA

CAA LO - DIMENSION OF 0 A*ChA A*CAA W1(NX+1,NY) - WORKSPACE ARRAYS, A*CAA W2(NX, NY) RETURNED AND AVAILABLE AFTER EACH CALL. **C*A AACAAAAAAAAAAAAAAAAAAAAAAAAA*AAAA**AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

CAA A*CAA SPECIAL FEATURES OR NON-ANSI USAGE: ACAA A

* C*A DOUBLE PRECISION LIBRARIES USE THE IMPLICIT STATEMENT A*CAA AACAA TI-ASC ONLY: USE W-OPTION WHEN COMPILING FOURIER PACKAGES AChA A*CAA NX MUST BE ODD AND .GE. 5, A*CAA NY MUST BE OF THE FORM PA2AAL, WITH L = 1, ... , 7. A*CAA USUALLY P=4, 5, OR 6 - ACAA HIGHER VALUES OF P ARE POSSIBLE, BUT ARE LESS EFFICIENT. A*

:7 CAA LO MUST BE AT LEAST LQ1+LQ2+5 (SEE CMNUUH). A*CAA A.CAA PROBLEMS WITH NON-ZERO NEUMANN OR DIRICHLET BOUNDARY CONDITIONS **CAA CAN BE SOLVED BY SUITABLY MODIFYING THE BOUNDARY SOURCE TERMS. ACAA (I.E. MODIFY S(I,3) WHERE I11, OR I=NX, OR J1, OR 3=NY) A*CAA A*

-12-

........................... . . .............. ..... ,............. ...... .... .. :,

CA* MUST CALL CMNUUH FIRST TO SET UP CONSTANTS REQUIRED BY SMNUUH. A*C** IF NONE OF (NX,NYDAX,DAY,DAC) CHANGE, THEN SMNUUH MAY BE A*C*A CALLED REPEATEDLY. IF ANY OF THESE CHANGE, CMNUUH MUST BE **C** CALLED TO RECALCULATE THE REQUIRED CONSTANTS. IF TWO OR MORE A*C** EQUATIONS ARE SOLVED REPEATEDLY, ONE AFTER THE OTHER, THEN ONLY A*C*A ONE CALL TO CMNUUH FOR EACH IS REQUIRED IF THEY ARE ALLOCATED hAC*A DISTINCT CONSTANT ARRAYS, 0. A*

.: CC WORK IS DONE BY SUBROUTINE SMNUUI.C

MXs(NX+1)/2IWNMXANY+CALL SMNUU1(S,HNDX,NXNY, Q,L0, W1,Wl(IW),W2,MX,W2(IW),MX-1)RETURN

C END OF SMNUUH.END

4-

A.

S..

-13- "

* 4 C . h. <% .V -

p06

SUBROUTINE CMNSUH(DAXDAY,DAC, NX,NX,NY, o.LQ, W)INTEGER NDX,NX,NY, LQDOUBLE PRECISION DAX(3,NX),DAY(3,1),DACDOUBLE PRECISION WDIMENSION O(LO), W(NY,5)

~c:A*AA*hAh~k***AAhAhh*AAA*AAAAAAh*A*AA**AAhhhkh*hAhA****hhh*hkkAk*AAA*h

C** kCA* INTRODUCTION:**

CA,CA* COMPUTES THE CONSTANTS REQUIRED BY SMNSUH TO SOLVE THE ,*CAA FOLLOWING ( MIXED-NEUMANN ) HELMHOLTZ'S EQUATION ON AACA* AN NX*NY MESH.CA*C** FOR I 1, ... , NX AND 3 a 1, ... , NY AAC**C** AN( J) * H(I, J+l) + A*C** AS( 3) A H(I, J-1) +CA* AE(I ) A H(I+1,3 ) +* .C* AW(I ) A H(I-1,3 ) +AC** AP(IJ) A H(I, 1 ) J S(I,3) A*C** A*

C** WHERE A*CAA AN(J) = DAY(3,1) Jul...NY-1, h*CAA 0 3 NY. *C** ASCJ) u 0 3- 1.C** DAY(3,1) 32...NY, *ACAA AE(I) a DAX(3,I) I-1...NX-1, **CAA 0 Is NX. k*C** AW(I) = 0 Is 1. *ACA* DAX(1,I) I=2...NX, AACAA AP(I,3) - DAC+DAX(2,1)-(AN(J)+AS(3)+BE(I)+BW(I)) AAC** I=1...NX, Jul...NY. A*C** BE(I) a DAX(3,I) I1...NX. AAC** BW(I) - DAX(1,I) Im1...NX. AA

C*k USUALLY DAX(2,I)=O.DO * AC**CAA FOR DIRICHLET-NEUMANN PROBLEMS DAX(1,1),DAX(3,NX) ARE A"C*A SIMILAR TO OTHER DAX TERMS. *AC** FOR NEUMANN-NEUMANN PROBLEMS DAX(1,1)-DAX(3,NX)=O.DO . A"CA* A.C** FOR COMPATABILITY WITH OTHER SOLVERS SET DAY(I,1)w0.DO **CA* AND DAY(2,1)=O.DO . hoC**

l C** h

OCk ARGUMENT LIST: SEE OTHER COMMENTS FOR DETAILS AASC*k A* 'SC** DAX,DAY,DAC - HELMHOLTZ COEFFICIENTS *A

C** k

CAA NDX - 1ST ARRAY DIMENSION OF S AND H IN THE SOLVER kC*A ACAA NXNY - DIMENSIONS OF MESH (NY=PA2*AL - SEE SMNSUH) *kC** k

Ck* (LO) - ARRAY FOR REQUIRED CONSTANTS *kCA* AkCAA LO - SIZE OF 0, MUST BE AT LEAST LI+L2, WHERE: Ah -

CAA L01 a NY + 1OALO3k*2 + 1 AkC*A LQ2 a NXA(NY+3) A ACAA L03 a 0 IF P a 4,5, OR G; k;CA* (P-1)/2 IF P a 7 OR GREATER Ak

-14-

* -4 * .* ,."" " -* --..- 'i '-' - •:"

+_ " " : _ : ; " '. .i .. ' / .."' !+ . ' ' L .l l l

l - "" + - ' ' - " "-"nl l ll l l ll .+ +- c :, ,*" : - : - .]" . . " " '

aa

CA*C** W(NY,5) - DOUBLE PRECISION WORKSPACE ARRAY A*

C** SPECIAL FEATURES OR NON-ANSI USAGE A*C** A•CA* AN ERROR MESSAGE WILL BE OUTPUT TO CHANNEL 6, AND THE PROGRAM A*CAA TERMINATED, IF ANY OF THE FOLLOWING CONDITIONS ARE DETECTED:CA* NX LESS THAN 3C** NY INCOMPATABLE WITH THE FOURIER PACKAGE AAC*A LQ TOO SMALL *AC** DAXDAY,DAC NOT CONSISTANT WITH HELMHOLTZ'S EQUATION Ak-

- CAA h

-. CA* THE WORKSPACE ARRAY, W, NEED NOT BE DISTINCT FROM THE *A- ~ CA* WORKSPACE SUPPLIED TO THE SOLVER. HOWEVER THE LATTER MAY k

C** CONSIST OF SINGLE PRECISION ARRAYS. kCA* kC** FOR MORE DETAILED DOCUMENTATION - SEE SMNSUH. AkCk*C*AA**AA*AAAAA*k*Ak*AAA*AAkA 't .**AA**AAAC*AA**k*A*kk**AAA**AAAAk*AkkA*A*A*A****kkkkAkAkkAA*AAAkA**kAkAkkAkkkAAk

C

C END OF CMNSUH.S END

CN :

a5"

-15-

,. . .

, , ,,,,,.,.,. ..... ....-....--.--.-..-.:....-..-.......-..-.-......,. .. . --, ,,.: ..... -,... . ... ....... ... ..

SUBROUTINE SMNSUH(S,H,NDX,NX,NY, Q.LQ, W1,W2)INTEGER NDX,NX,NY, LODIMENSION S(NDX,NY),H(NDX,NY)DIMENSION Q(LQ)DIMENSION W1(NDX,NY),W2(NDX,NY)

C

CAA AA

CA* DATE: SEPTEMBER 1978CU.C** AUTHOR: D.R. MOORE, A.J. WALLCRAFTC**C*A ARCHIVIST: A.3. WALLCRAFT **

C** ADDRESS: NORDA A*C** CODE 322 *CM* NSTL STATION, MS 39529C* **C*A PHONE: 601-688-4835 (COMMERCIAL)CM* 494-4835 (FTS) **CA* 485-4835 (AUTOVON) **

CA* DATE OF CURRENT SEQUENCE: DECEMBER 1982 **CA*

C** *

CM* INTRODUCTION: AAc** A**.C** SOLVES FINITE DIFFERENCE HELMHOLTZ'S EQUATIONS: A*C** OVER A RECTANGLE IN CARTESIAN COORDINATES, hAC*A ON A STRETCHED-UNIFORM MESH,C*M WITH (ZERO) NEUMANN BOUNDARY CONDITIONS 1/2 GRID DISTANCE A*C** OUTSIDE THE MESH AT 3=1 AND 3-NY, *AC* AND EITHER (ZERO) NEUMANN BOUNDARY CONDITIONS 1/2 GRID *C** DISTANCE OUTSIDE THE MESH OR (ZERO) DIRICHLET BOUNDARY A*

p C*A CONDITIONS 1 GRID DISTANCE OUTSIDE THE MESH AT 1=1 AND I=NX. h"CAA A"C*A OR ANY EQUIVALENT SET OF EQUATIONS; FOR EXAMPLE: **C** HELMHOLTZ'S EQUATION IN (SOME) NON-CARTESIAN COORDINATE A*CM* SYSTEMS, OR MORE GENERAL (SEPARABLE) ELLIPTIC EQUATIONS. **

C** USES THE FACR(O) METHOD.

C** BOTH THE INPUT ARRAY S(NDX,NY) AND THE OUTPUT ARRAY H(NDX.NY) hAC*A ARE ASSUMED TO CONTAIN ACTIVE SUBARRAYS FROM 1 TO NX AND A*

-C*A 1 TO NY. THE NON-ACTIVE 'SUBARRAY, NX+l TO NDX AND 1 TO NY,C*A OF S CAN BE ARBITRARY ON INPUT AND THAT OF H IS RETURNED **CA* INTACT. A*CA* *C*A IN THE CALLING SEQUENCE THE INPUT AND OUTPUT ARRAYS MAY BE THE hACAA SAME ARRAY. IF THEY ARE NOT THE SAME, THE INPUT ARRAY IS lkCA* RETURNED INTACT BY THE SOLVER. *3C* hA

CkA IT IS ASSUMED THAT NECESSARY CONSTANTS HAVE BEEN PRECOMPUTED AAC*A EXTERNALLY AND ARE STORED IN THE ARRAY Q(LQ), WHICH A*C*A IMPLICITLY DEFINES THE HELMHOLTZ COEFFICIENTS (DAX, DAY, DAC) **C*A TO THE SOLVER. *

C*A *

CAA FOR I a 1, ... , NX AND 3 1 1, ... , NY THE SOLUTION WILL hAC*A SATISFY: A*CA* A*

:. -16-

C*A AN( 3) A H(I, 3+1) + *ACAA AS( 3) A H(I, 3-1) + A*C** AE(I ) A H(I+1,3 ) + *AC** AW(I ) A H(I-1,J ) +CAA AP(I,3) A H(I, 3 ) S(I,3) A*CAA AACA* WHERE A.CA* AN(J) = DAY(3,1) 3=1...NY-1, A*CA 0 3- NY. A*

CA* AS(3) - 0 3- 1.CE* DAY(3,1) 3=2..., **CA* AE() a DAX(3,I) I=1...NX-1,CAA 0 In NX. hACkA AW(I) -0 I- 1. -.CAA DAX(l,I) I=2...NX, hAC** AP(I,3) = DAC+DAX(2,1)-(AN(3)+AS(3)+BE(I)+BW(I)) AAC*A I=l...NX, 3=...NY. hAC*A BE(I) = DAX(3,I) ImI...NX. h"

C* BW(I) = DAX(1,I) I-1...NX. hA

CA* hA

C*A LIBRARIES REQUIRED: hACA **CA* FAST FOURIER TRANSFORM LIBRARY BY D.R. MOORE hACAA TRIDIAGONAL LINEAR EQUATION SOLVER LIBRARY BY A.3. WALLCRAFT A*CAA hA

C*A ARGUMENT LIST: SEE OTHER COMMENTS FOR DETAILS hAC* CAA S(NDX,NY) - INPUT ARRAY *ACAA *C* H(NDX,NY) - OUTPUT ARRAY h"CkA hACA NDXNY - SIZES OF S AND H h'

CAA A*Ck* NX - ACTIVE SUBDIMENSION OF S AND H *.C*A AACA* O(LO) - CONSTANT ARRAY, PRECOMPUTED EXTERNALLY A*

:. CA* h"CAA LO - DIMENSION OF 0 hA

C*A WI(NDX,NY) - WORKSPACE ARRAYS, **CAA W2(NDX,NY) RETURNED AND AVAILABLE AFTER EACH CALL. A*CAA k*

CAA A*CAA SPECIAL FEATURES OR NON-ANSI USAGE: hACA* **CAA DOUBLE PRECISION LIBRARIES USE THE IMPLICIT STATEMENT hACAA A*C*A TI-ASC ONLY: USE W-OPTION WHEN COMPILING FOURIER PACKAGES A*

CAA NX IS ARBITRARY (.GE.3). AACAA NY MUST BE OF THE FORM PA2A*L, WITH L a 1, ... , 7. hA

" C*A USUALLY P.4, 5, OR 6 - *ACAA HIGHER VALUES OF P ARE POSSIBLE, BUT ARE LESS EFFICIENT. A*CkA L0 MUST BE AT LEAST LQ1+LQ2 (SEE CMNSUH). k*CAA hA

CAA PROBLEMS WITH NON-ZERO NEUMANN OR DIRICHLET BOUNDARY CONDITIONS hACAA CAN BE SOLVED BY SUITABLY MODIFYING THE BOUNDARY SOURCE TERMS. hACAA (I.E. MODIFY S(I,3) WHERE 1-1, OR I=NX, OR 31, OR 3mNY)

- -17-

-%. . .. . . .*

CAAC** MUST CALL CMNSUH FIRST TO SET UP CONSTANTS REQUIRED BY SMNSUH. A*C** IF NONE OF (NXNY,DAXDAYt'AC) CHANGE, THEN SMNSUH MAY BE A*C** CALLED REPEATEDLY. IF ANY OF THESE CHANGE, CMNSUH MUST BE **C*A CALLED TO RECALCULATE THE REQUIRED CONSTANTS. IF TWO OR MORE '*

C*A EQUATIONS ARE SOLVED REPEATEDLY, ONE AFTER THE OTHER. THEN ONLY *ACA* ONE CALL TO CMNSUH FOR EACH IS REQUIRED IF THEY ARE ALLOCATED k*C** DISTINCT CONSTANT ARRAYS, Q. ksC**

CC FORWARD EFT.C

CALL COSODD(S,W1, W2,O,NDX,NX,NY)CC SOLVE RESULTING TRIDIAGONAL SYSTEMS.C

IQT=INT(Q(1)+l -IQO=IOT + 3*NXCALL TRANSP(W1, NDX,NX,NY, W2,NY)CALL TGAUSS(W2,W2,NY, NY,NX, O(IQT),0(IQQ))CALL TRANSP(W2, NY, NY,NX, WI,NDX)

CC REVERSE EFT.C ""

DO 11 I=1,NXWI(I,1)=O.5WI(I,1)

11 CONTINUECALL COSODI(WI,H, W2,0,NDX,NX,NY)RETURN

C END OF SMNSUH.END

.- 18

.... - .

SUBROUTINE CMMSSH(DAX,DAY,DAC, NDX,NXNY, QX,LQX,OY,LQY, W)INTEGER NDX,NX,NY, LQX,LQYDOUBLE PRECISION DAX(3,NX),DAY(3,NY),DACDOUBLE PRECISION WDIMENSION OX(NX,NX,2),QY(LQY), W(NX,l)

C DIMENSION W(NX,NY+5)CC***AAA**AAAAAAAAAAAAAA*AAAAAAk*A*AAA AA AAA*A AAAAA

CA* INTRODUCTION:

CA* COMPUTES THE CONSTANTS REQUIRED BY SMMSSH TO SOLVE THE *.C** FOLLOWING ( MIXED-MIXED ) HELMHOLTZ'S EQUATION ON A*C** AN NXkNY MESH. **C**CA* FOR I I, ... ,NX AND 3 1, ... ,NY A*

C** AN( 3) A H(I, 1) + "-C** AS( 3) A H(I, 3-1) + *-C** AE(I ) * H(I+l,3 ) + **C*A AW(I ) * H(I-1,3 ) +C** AP(I,3) A H(I, 3 ) a S(IJ)CAA *CA* WHERE **

* C** AN(J) * DAY(3,3) 3=I...NY-1, A** CA* 0 3- NY. *"

C** AS(3) -0 3- 1. **C** DAY(1,3) 3=2...NY, A*C** AE(I) * DAX(3,I) I-1...NX-1, **CA* 0 In NX. **C** AW(I) -0 I= 1. **C* DAX(1,I) I=2...NX, A*C** AP(I,3) = DAC+DAX(2,1)-(BN(J)+BS(J)+BE(I)+BW(I)) *"C** a I=...NX, J3I...NY. *,C** BN(3) - DAY(3,3) 3=I...NY. A*Ch* BS(3) - DAY(l,3) 3=I...NY. **CA* BE(I) = DAX(3,I) I-l...NX. **C** BW(I) m DAX(1,I) I1=...NX. *"c****

, C** USUALLY DAX(2,I)=O.DO AND DAY(2,3)=O.DO. *'C***

C** FOR DIRICHLET-MIXED PROBLEMS DAX(1,1),DAX(3,NX) ARE *k'C*A SIMILAR TO OTHER DAX TERMS. A*C** FOR NEUMANN-MIXED PROBLEMS DAX(1,1)=DAX(3,NX)=0.DO . "-C*A *CA* FOR MIXED-DIRICHLET PROBLEMS DAY(1,1),DAY(3,NY) ARE A*CA* SIMILAR TO OTHER DAY TERMS. **CA* FOR MIXED-NEUMANN PROBLEMS DAY(1,1)=DAY(3,NY)-O.DO • **

t, C** **C***CAA**A***A*****AA*A*AAAA***A*****A*A*A*

C*A AC*A ARGUMENT LIST: SEE OTHER COMMENTS FOR DETAILS **CA* **C** DAX,DAYDAC - HELMHOLTZ COEFFICIENTS **C*A **CA* NDX - IST ARRAY DIMENSION OF S AND H IN THE SOLVER AACAA **Ch* NX,NY - DIMENSIONS OF MESH **CA* *C*A QX(NX,NX,2) - ARRAY FOR REQUIRED CONSTANTS (SEE 'USAGE' BELOW) *AC*~-19-

* .'mC% .... *.. . , ' . ,, .. ,. ... . *.. .... -. . -, . . • . . , . - . . .. .. .

4;

C*A OY(LOY) - ARRAY FOR REQUIRED CONSTANTS *ACA*C** LOX - SIZE OF OX, MUST BE AT LEAST 2*NX*NX *CA*CAA LOY - SIZE Of QY, MUST BE AT LEAST NYA(NX+3)CA* *-

CA* U(NX,NY+5) - DOUBLE PRECISION WORKSPACE ARRAY A*

CAA kACAk SPECIAL FEATURES OR NON-ANSI USAGE **

C** OX IS USED AS (DOUBLE PRECISION) WORKSPACE IN 'ESYSON'. IT IS *AC*A THEREFORE ADVISABLE TO EQUIVALENCE QX(1,1,1) TO A A*C*A DOUBLE PRECISION VARIABLE.Ck**CA* AN ERROR MESSAGE WILL BE OUTPUT TO CHANNEL 6, AND THE PROGRAM A*C*A TERMINATED, IF ANY OF THE FOLLOWING CONDITIONS ARE DETECTED: A*CA* NX LESS THAN 3 *AC*A NY LESS THAN 4CA* NY LESS THAN NX A*C** LQX,LQY TOO SMALL *CAA DAX,DAY,DAC NOT CONSISTANT WITH HELMHOLTZ'S EQUATION AAC*A*CA* THE WORKSPACE ARRAY, W, NEED NOT BE DISTINCT FROM THE **C** WORKSPACE SUPPLIED TO THE SOLVER. HOWEVER THE LATTER MAY ..C*A CONSIST Of SINGLE PRECISION ARRAYS. *=,C*CA* FOR MORE DETAILED DOCUMENTATION - SEE SMMSSH. AC **-

C -

C END OF CMMSSH.END

-20-.4.

..-. ... 4 ....-. . .. . . . - - . . . . . . . . . . . . . . . . . . °,

. . - °

SUBROUTINE SMMSSH(SH,NDX,NX,NY, QX,LOX,QY,LQY, Wi)INTEGER NDX,NX,HY, LQX,LOYDIMENSION S(NDX,NY),H(NDX,NY)DIMENSION QX(NX,NX,2),QY(LQY)DIMENSION WI(NDX,NY)

C" CAAAAAAAAAA*AAkAkAA*kAAA*AA*AAAAAAAAAAAAAAAAAAAAAAAAA* AAA**AAAAA***k*A

C* **CM* DATE: DECEMBER 1980 A•

CM* AUTHOR: A.3. WALLCRAFT **C** *AC** ARCHIVIST: A.J. WALLCRAFT k

"- C* ADDRESS: NORDA k

C** CODE 322 AkCM* NSTL STATION, MS 39529 AkCM AkC** PHONE: 601-688-4835 (COMMERCIAL) AkCA* 494-4835 (ETS) AkCM* 485-4835 (AUTOVON) A*CA* AkC** DATE OF CURRENT SEQUENCE: DECEMBER 1982 AkCAA k

i CAkAAAAAAA*AAMAAMAAA*A*AAAA*A*A*AAAAAA*AAAAAAAA*k*AAA*AAAAAA*AA~c** *;k:CAA INTRODUCTION: *.CAA AkCkk SOLVES FINITE DIFFERENCE HELMHOLTZ'S EQUATIONS: AkC** OVER A RECTANGLE, kClk ON A STRETCHED-STRETCHED MESH, Ak

CM* WITH EIGTHER (ZERO) NEUMANN BOUNDARY CONDITIONS 1/2 GRID A.C** DISTANCE OUTSIDE THE MESH OR (ZERO) DIRICHLET BOUNDARY AkC** CONDITIONS 1 GRID DISTANCE OUTSIDE THE MESH AT 3=1 AND JaNY, A.CA* AND EIGTHER (ZERO) NEUMANN BOUNDARY CONDITIONS 1/2 GRID *ACAA DISTANCE OUTSIDE THE MESH OR (ZERO) DIRICHLET BOUNDARY *CkA CONDITIONS 1 GRID DISTANCE OUTSIDE THE MESH AT Iml AND I=NX. kCAA A-CA OR ANY EQUIVALENT SET OF EQUATIONS; FOR EXAMPLE: AkC*A HELMHOLTZ'S EQUATION IN (SOME) NON-CARTESIAN COORDINATE Ak

,y C** SYSTEMS, OR MORE GENERAL (SEPARABLE) ELLIPTIC EQUATIONS. A-CAA AkC** USING THE MATRIX EIGENVALUE DECOMPOSITION METHOD. A,CAA AkCM* BOTH THE INPUT ARRAY S(NDX,NY) AND THE OUTPUT ARRAY H(NDX,NY) AkCA* ARE ASSUMED TO CONTAIN ACTIVE SUBARRAYS FROM 1 TO NX AND AfCAA 1 TO NY. THE NON-ACTIVE SUBARRAY, NX+1 TO NDX AND 1 TO NY, AkCA* OF S CAN BE ARBITRARY ON INPUT AND THAT OF H IS RETURNED AfCAA INTACT. **C/CAC* IN THE CALLING SEQUENCE THE INPUT AND OUTPUT ARRAYS MAY BE THE AAC** SAME ARRAY. IF THEY ARE NOT THE SAME, THE INPUT ARRAY IS *tCAA RETURNED INTACT BY THE SOLVER. kC** A/-C** IT IS ASSUMED THAT NECESSARY CONSTANTS HAVE BEEN PRECOMPUTED *kCAk EXTERNALLY AND ARE STORED IN THE ARRAYS OX AND DY, WHICH Af"C** IMPLICITLY DEFINES THE HELMHOLTZ COEFFICIENTS (DAX, DAY, DAC) Af*C/* TO THE SOLVER. A/

. CCA

C OR I a 1,..., NX AND 3 1,..., NY THE SOLUTION WILL AkCA* SATISFY: A*

~~-21- ,_

S. . . . . . . . . .... .. | d k- . S - S

C*A AN( 3) A H(I, J+l) + A-CAA AS( J) A H(I, 3-1) + kCA* AE(I ) A H(I I,3 ) + A* --

CAA AW(I ) A H(I-1,3 ) + AkCAA AP(I,J) A H(I, 3 ) = S(I,J) k

C*A WHERE *Ckk AN(J) = DAY(3,3) 3=n1...NY-1, AkCAA 0 3. NY. **C* AS(J) = 0 3= 1. A*kCAA DAY(1,3) 3=2 ... NY, A*CAA AE(I) = DAX(3,I) 1=1...NX-l, kCAA 0 I= NX. A*CAA AW(I) = 0 I= 1. AkC*A DAX(i,I) I=2...NX, A*CA* AP(I,J) = DAC+DAX(2,1)-(BN(3)+BS(3)+BE(I)+BW(I)) AkC*A I=l.. .NX, 3=1.. .NY. Ak*CAA BN(3) = DAY(3,3) 3=...NY *CAA BS(3) = DAY(1,3) 3=1...NY -".CAA BE(I) = DAX(3,I) I=l...NX. AkCA* BW(I) - DAX(i,I) I=1...NX. *ACA* A*CAAAAAAAAAAAA*AAA*AAAAAAAAAAA*AA**AAAAA*AAA*AAkAAAA*tAAk

C*A A*CAA LIBRARIES REQUIRED: AkCAA AkCAA LINPACK BY kC*A TRIDIAGONAL LINEAR EQUATION SOLVER LIBRARY BY A.J. WALLCRAFT *ACAA ROUTINE HOR2 IS FROM EISPACK A*CAA ACkkAAAAkAAA*AAA*AAAAAAAAAAAAAAAAAAAAAAAAkkAAAAAAAAAA

CAA A"CAA ARGUMENT LIST: SEE OTHER COMMENTS FOR DETAILS AkCAA A*CAA S(NDX,NY) - INPUT ARRAY A*CAA A*C*A H(NDX,NY) - OUTPUT ARRAY A*CA* A*CAA NDX,NY - SIZES OF S AND H A*CA* AkCAA NX - ACTIVE SUBDIMENSION OF S AND H AkC*k A*CAA OX(NX,NX,2) - CONSTANT ARRAY, PRECOMPUTED EXTERNALLY A*CAA *kCAA QY(LOY) - CONSTANT ARRAY, PRECOMPUTED EXTERNALLY AkC** A*CA* LOX - DIMENSION OF OX A.CAA Ak

CAA LOY - DIMENSION OF DY **CA ** ACAA WI(NDX,NY) - WORKSPACE ARRAY, AA -

CAk RETURNED AND AVAILABLE AFTER EACH CALL. A*kCAACAAAAAAAAA~kk*~AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA*A*AAAAAAAA

CAk A* .

CA* SPECIAL FEATURES OR NON-ANSI USAGE: AkC* A*CAA DOUBLE PRECISION LIBRARIES USE THE IMPLICIT STATEMENT AACAA A*CAA REPLACE MATRIX-MATRIX MULTIPLIES (BELOW) WITH FASTEST (MACHINE *CM* CODE) VERSION AVAILABLE FOR TARGET COMPUTER. THIS MAY INVOLVE A*CA* USING THE TRANSPOSE OF OX - IF SO MODIFY CMMSSH APPROPRIATELY. *A

-22-

- . . * ** . *..- -

CA*C** NX IS ARBITRARY (.GE.3) BUT MUST NOT BE GREATER THEN NY. *AC** NY IS ARBITRARY (.GE.4). *AC* LOX MUST BE AT LEAST 2ANX*NX. *ACAA LOY MUST BE AT LEAST NYA(NX+3). *A

C*A PROBLEMS WITH NON-ZERO NEUMANN OR DIRICHLET BOUNDARY CONDITIONS *C*lk CAN BE SOLVED BY SUITABLY MODIFYING THE BOUNDARY SOURCE TERMS. *AC*A (I.E. MODIFY S(I,3) WHERE 1=1, OR I=NX, OR 3=1, OR 3=NY)C**CA* MUST CALL CMMSSH FIRST TO SET UP CONSTANTS REQUIRED BY SMMSSH. *AC** IF NONE OF (NX.NY,DAX,DAY,DAC) CHANGE, THEN SMMSSH MAY BE **CAA CALLED REPEATEDLY. IF ANY OF THESE CHANGE, CMMSSH MUST BE **CAA CALLED TO RECALCULATE THE REQUIRED CONSTANTS. IF TWO OR MORE *AC** EQUATIONS ARE SOLVED REPEATEDLY, ONE AFTER THE OTHER, THEN ONLY *AC*A ONE CALL TO CMMSSH FOR EACH IS REQUIRED IF THEY ARE ALLOCATED *AC** DISTINCT CONSTANT ARRAYS, QX,QY. IF TWO OR MORE EQUATIONSCA* DIEFER ONLY IN (NY,DAY,AC), AND NOT IN (NX,AX). THEN THEY CAN kCA, SHARE A SINGLE QX ARRAY, ONLY DISTINCT QY ARRAYS ARE REQUIRED. **C** **

CC FORWARD TRANSFORM (BY MATRIX-MATRIX MULTIPLY).C

DO 11 3u1,NYDO 11 I=1,NX

Wl(II,3)O.ODO 11 Kul,NXWi(I,3)=WI(I,3) + QX(K,I,2)*S(K,J)

11 CONTINUECC SOLVE RESULTING TRIDIAGONAL SYSTEMS.

* CIQY=3ANY+lCALL TGAUSS(W1,W1,NDX,NX,NY, QY,QY(IOY))

CC REVERSE TRANSFORM (BY MATRIX-MATRIX MULTIPLY).C

DO 21 3=1,NYDO 2 1 Ii,NX

... H(I,3)-O.ODO 21 K=I,NX

H(I,3)uH(I,J) QX(K,I,1)*Wl(K,J)77 21 CONTINUE- RETURN

C END OF SMMSSH.END

-23-

. . .'a '* " ' t' '... ' -.''" •-".--- --- ,-- -•-•-- - - - - - - - - - -, - -.---." • ." , -., --..- . ..' .".".. .'. ."".. . .,....... . . . . .... . . . .-..................

APPENDIX B

Example of Quasi-Geostrophic Regional Energetics Graphical Output

-24-

z L - CD h',-M..I

zeJ inba

U- (DI-

Ln5

-25-

44

4 I~.I

--3 to

4~~~~~~~I f~ L5 .. j .a aIC wlaJt. & u. t oo 0 its0 a - - -

of it If -ofJL L I I if t f o s I t t t I s 11i s t f i f t l l s f lco Occ~ 00 0 2soa cmoo 440

Z~ x

00000 Cao a oc o o oo 0 0 0

* ~ ~ ~ ~ ~ ~ ~ ~ 0 r- *r *D 002 4*S***S*4

00

.4 -26-

77-M 7. TT 7 *77

cc

-AJ-I

U

-27

4N

z ILo

Ej

M0

-A C-,

UJ

4.;

-28--

pc

to

-j

C.Cc

LUJzA

LU

0-Srnor NI AO3N

-29-

LaJ

C33

IL.

LU )

-30

0 4r0

-1-1 Tz

L CD

-!o

-JI v

LU £

-pj

-32

%U %

z

Cc,

C,,

S -LJ

L-

LLJ

C ID

*0 x

-33-

-j I'5-

C,,

LL.

-3

44 rY-

. . . . . . .. . . . . . . . . . . . . . . . . .

* AJ

C,;

-35-1

10,'

LL0zI

LUI

o -

a--

4% -36-

IL: :7

...--- 3

CDcc0

tsU

ujawI

LLb

fro%

Jill

LL - -

00 -O 00

-37-

ItI/ cm---. -

/ / /

", -- I I (I I A % %\ W

VA fill I I

'p It 1I~1iI% I1 4

MW\ %~d 'Jf1AiQ%....\

LLz i I I I I I I I I I I I i i I I i I I I D

I h °

1 6.1

-39-

_ ViI -3-"I.°,o

" .2 "-,:-.'",,,:.':.,2 ?'-'---?.i.-..,-'.,i.2.--..:,v.. . ,.. .. -.-. , .;,.-,..• . .- ,,--.-.-.'..,. .... .. ,-, --- ,-a.

L-.J

LL

141

M I"

z --

U I

fI,% '" . .. \ \ ""'I- '"1" "i """ -

-J

U

3

C

-J

ILU

C,, UaE

9

S K~iI9

0- 39

- A01

I

-41-

.*~***%~*.*.*.~...**.*%~ ~. ...........1 * - S *q~h*.b.. .--..

2 F

-42-

U,, L-, . , V.... r . w . -. ,b . . . -1 . . , . . - - . . . L ". . . " . " ". _ -. ,, . --

- ! I I I i I I I I Ii I i' i I t I I Id*a

.4 1

%-,J

t-%* =

-43-

... . . : 1 ' ", " "" "' -"

-LJ t \-

-44-

Iz

ii

o ~~~~i l I f Ai m I I I I I I I I II I I

2 --w -J

1"

' '' r| f8 )lJ,

! ! i . i a I p I

.1'j

- S . * * * * . ... . - . . .. . . . . - . ... . . . . -.. . .. . . .. • .• ... ..

I "''-g " " -" , : " ' , v .' , , , , : - " -: .' ; : . , , >... ............................................... ... ...................-.. .....-. .-. .-.- -. .. --.. .-I: .-- , : -:* .. -.. ' ,

:Js

cr

cc- Lo I

CO.A RNN

-4-b

gt

pCD

ii

IggIPIL&JD

C.D

47

iLiS

ji .-.%4\

0. -

'N';

-47- "

.

4*~4- ** .. ~. . . . . . . . . . .. ' .'

uii

LL

-o

- II wI I

a

-C2

-48-

'4 1 •

ii e w"0 9

° • , °° °o.- ° °,. ° . °.°° "° ". " . "° ". ". ' " . " " , -° . ,

-LJ

Ilk W*L 0

1146

-49

.44'

0 -l

I,. II* at

r T_ , 4

'1, '4 71

t l F