Upload
ngodan
View
215
Download
1
Embed Size (px)
Citation preview
-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' '... ' -.''" •-".--- --- ,-- -•-•-- - - - - - - - - - -, - -.---." • ." , -., --..- . ..' .".".. .'. ."".. . .,....... . . . . .... . . . .-..................
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-
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.
-J
U
3
C
-J
ILU
C,, UaE
9
S K~iI9
0- 39
- A01
I
-41-
.*~***%~*.*.*.~...**.*%~ ~. ...........1 * - S *q~h*.b.. .--..
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 ' ", " "" "' -"
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: .-- , : -:* .. -.. ' ,
uii
LL
-o
- II wI I
a
-C2
-48-
'4 1 •
ii e w"0 9
° • , °° °o.- ° °,. ° . °.°° "° ". " . "° ". ". ' " . " " , -° . ,