PyFishPack 0.1.0__cp313-cp313-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- PyFishPack/__init__.py +86 -0
- PyFishPack/__pycache__/__init__.cpython-313.pyc +0 -0
- PyFishPack/__pycache__/apps.cpython-313.pyc +0 -0
- PyFishPack/_dummy.c +23 -0
- PyFishPack/_dummy.cp313-win_amd64.pyd +0 -0
- PyFishPack/apps.py +3640 -0
- PyFishPack/fishpack.cp313-win_amd64.dll.a +0 -0
- PyFishPack/fishpack.cp313-win_amd64.pyd +0 -0
- PyFishPack/meson.build +213 -0
- PyFishPack/src/archive/f77/Makefile +19 -0
- PyFishPack/src/archive/f77/blktri.f +1404 -0
- PyFishPack/src/archive/f77/cblktri.f +1414 -0
- PyFishPack/src/archive/f77/cmgnbn.f +1592 -0
- PyFishPack/src/archive/f77/comf.f +186 -0
- PyFishPack/src/archive/f77/fftpack.f +2968 -0
- PyFishPack/src/archive/f77/genbun.f +1335 -0
- PyFishPack/src/archive/f77/gnbnaux.f +314 -0
- PyFishPack/src/archive/f77/hstcrt.f +443 -0
- PyFishPack/src/archive/f77/hstcsp.f +683 -0
- PyFishPack/src/archive/f77/hstcyl.f +485 -0
- PyFishPack/src/archive/f77/hstplr.f +538 -0
- PyFishPack/src/archive/f77/hstssp.f +634 -0
- PyFishPack/src/archive/f77/hw3crt.f +687 -0
- PyFishPack/src/archive/f77/hwscrt.f +512 -0
- PyFishPack/src/archive/f77/hwscsp.f +728 -0
- PyFishPack/src/archive/f77/hwscyl.f +538 -0
- PyFishPack/src/archive/f77/hwsplr.f +602 -0
- PyFishPack/src/archive/f77/hwsssp.f +780 -0
- PyFishPack/src/archive/f77/pois3d.f +550 -0
- PyFishPack/src/archive/f77/poistg.f +875 -0
- PyFishPack/src/archive/f77/sepaux.f +361 -0
- PyFishPack/src/archive/f77/sepeli.f +1029 -0
- PyFishPack/src/archive/f77/sepx4.f +958 -0
- PyFishPack/src/centered_axisymmetric_spherical_solver.f90 +1002 -0
- PyFishPack/src/centered_cartesian_helmholtz_solver_3d.f90 +819 -0
- PyFishPack/src/centered_cartesian_solver.f90 +583 -0
- PyFishPack/src/centered_cylindrical_solver.f90 +634 -0
- PyFishPack/src/centered_helmholtz_solvers.f90 +156 -0
- PyFishPack/src/centered_polar_solver.f90 +746 -0
- PyFishPack/src/centered_real_linear_systems_solver.f90 +280 -0
- PyFishPack/src/centered_spherical_solver.f90 +928 -0
- PyFishPack/src/complex_block_tridiagonal_linear_systems_solver.f90 +1947 -0
- PyFishPack/src/complex_linear_systems_solver.f90 +1787 -0
- PyFishPack/src/fftpack_c_api.f90 +86 -0
- PyFishPack/src/fishpack.f90 +191 -0
- PyFishPack/src/fishpack.pyf +504 -0
- PyFishPack/src/fishpack_c_api.f90 +365 -0
- PyFishPack/src/fishpack_original.pyf +2119 -0
- PyFishPack/src/fishpack_precision.f90 +53 -0
- PyFishPack/src/general_linear_systems_solver_3d.f90 +296 -0
- PyFishPack/src/iterative_solvers.f90 +969 -0
- PyFishPack/src/main.f90 +10 -0
- PyFishPack/src/pyfishpack_module.c +1302 -0
- PyFishPack/src/real_block_tridiagonal_linear_systems_solver.f90 +319 -0
- PyFishPack/src/sepeli.f90 +1454 -0
- PyFishPack/src/sepx4.f90 +1338 -0
- PyFishPack/src/staggered_axisymmetric_spherical_solver.f90 +908 -0
- PyFishPack/src/staggered_cartesian_solver.f90 +553 -0
- PyFishPack/src/staggered_cylindrical_solver.f90 +630 -0
- PyFishPack/src/staggered_helmholtz_solvers.f90 +172 -0
- PyFishPack/src/staggered_polar_solver.f90 +651 -0
- PyFishPack/src/staggered_real_linear_systems_solver.f90 +258 -0
- PyFishPack/src/staggered_spherical_solver.f90 +758 -0
- PyFishPack/src/three_dimensional_solvers.f90 +602 -0
- PyFishPack/src/type_CenteredCyclicReductionUtility.f90 +1714 -0
- PyFishPack/src/type_CyclicReductionUtility.f90 +472 -0
- PyFishPack/src/type_FishpackWorkspace.f90 +290 -0
- PyFishPack/src/type_GeneralizedCyclicReductionUtility.f90 +1980 -0
- PyFishPack/src/type_PeriodicFastFourierTransform.f90 +3789 -0
- PyFishPack/src/type_SepAux.f90 +586 -0
- PyFishPack/src/type_StaggeredCyclicReductionUtility.f90 +893 -0
- pyfishpack-0.1.0.dist-info/DELVEWHEEL +2 -0
- pyfishpack-0.1.0.dist-info/METADATA +81 -0
- pyfishpack-0.1.0.dist-info/RECORD +81 -0
- pyfishpack-0.1.0.dist-info/WHEEL +5 -0
- pyfishpack-0.1.0.dist-info/licenses/LICENSE +21 -0
- pyfishpack-0.1.0.dist-info/top_level.txt +1 -0
- pyfishpack.libs/libgcc_s_seh-1-25d59ccffa1a9009644065b069829e07.dll +0 -0
- pyfishpack.libs/libgfortran-5-08f2195cfa0d823e13371c5c3186a82a.dll +0 -0
- pyfishpack.libs/libquadmath-0-c5abb9113f1ee64b87a889958e4b7418.dll +0 -0
- pyfishpack.libs/libwinpthread-1-83908d14abfafb8b3bfa38cf51ecee56.dll +0 -0
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
C
|
|
2
|
+
C file sepaux.f
|
|
3
|
+
C
|
|
4
|
+
C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
5
|
+
C * *
|
|
6
|
+
C * copyright (c) 1999 by UCAR *
|
|
7
|
+
C * *
|
|
8
|
+
C * UNIVERSITY CORPORATION for ATMOSPHERIC RESEARCH *
|
|
9
|
+
C * *
|
|
10
|
+
C * all rights reserved *
|
|
11
|
+
C * *
|
|
12
|
+
C * FISHPACK version 4.1 *
|
|
13
|
+
C * *
|
|
14
|
+
C * A PACKAGE OF FORTRAN SUBPROGRAMS FOR THE SOLUTION OF *
|
|
15
|
+
C * *
|
|
16
|
+
C * SEPARABLE ELLIPTIC PARTIAL DIFFERENTIAL EQUATIONS *
|
|
17
|
+
C * *
|
|
18
|
+
C * BY *
|
|
19
|
+
C * *
|
|
20
|
+
C * JOHN ADAMS, PAUL SWARZTRAUBER AND ROLAND SWEET *
|
|
21
|
+
C * *
|
|
22
|
+
C * OF *
|
|
23
|
+
C * *
|
|
24
|
+
C * THE NATIONAL CENTER FOR ATMOSPHERIC RESEARCH *
|
|
25
|
+
C * *
|
|
26
|
+
C * BOULDER, COLORADO (80307) U.S.A. *
|
|
27
|
+
C * *
|
|
28
|
+
C * WHICH IS SPONSORED BY *
|
|
29
|
+
C * *
|
|
30
|
+
C * THE NATIONAL SCIENCE FOUNDATION *
|
|
31
|
+
C * *
|
|
32
|
+
C * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
|
33
|
+
C
|
|
34
|
+
C
|
|
35
|
+
C PACKAGE SEPAUX CONTAINS NO USER ENTRY POINTS.
|
|
36
|
+
C
|
|
37
|
+
C LATEST REVISION NOVEMBER 1988
|
|
38
|
+
C
|
|
39
|
+
C PURPOSE THIS PACKAGE CONTAINS AUXILIARY ROUTINES FOR
|
|
40
|
+
C NCAR PUBLIC SOFTWARE PACKAGES SUCH AS SEPELI
|
|
41
|
+
C AND SEPX4.
|
|
42
|
+
C
|
|
43
|
+
C USAGE SINCE THIS PACKAGE CONTAINS NO USER ENTRIES,
|
|
44
|
+
C NO USAGE INSTRUCTIONS OR ARGUMENT DESCRIPTIONS
|
|
45
|
+
C ARE GIVEN HERE.
|
|
46
|
+
C
|
|
47
|
+
C SPECIAL CONDITIONS NONE
|
|
48
|
+
C
|
|
49
|
+
C I/O NONE
|
|
50
|
+
C
|
|
51
|
+
C PRECISION SINGLE
|
|
52
|
+
C
|
|
53
|
+
C REQUIRED LIBRARY NONE
|
|
54
|
+
C FILES
|
|
55
|
+
C
|
|
56
|
+
C LANGUAGE FORTRAN
|
|
57
|
+
C
|
|
58
|
+
C HISTORY DEVELOPED IN THE LATE 1970'S BY JOHN C. ADAMS
|
|
59
|
+
C OF NCAR'S SCIENTTIFIC COMPUTING DIVISION.
|
|
60
|
+
C
|
|
61
|
+
C PORTABILITY FORTRAN 77
|
|
62
|
+
C **********************************************************************
|
|
63
|
+
SUBROUTINE SEPORT (USOL,IDMN,ZN,ZM,PERTRB)
|
|
64
|
+
C
|
|
65
|
+
C THIS SUBROUTINE ORTHOGONALIZES THE ARRAY USOL WITH RESPECT TO
|
|
66
|
+
C THE CONSTANT ARRAY IN A WEIGHTED LEAST SQUARES NORM
|
|
67
|
+
C
|
|
68
|
+
COMMON /SPLP/ KSWX ,KSWY ,K ,L ,
|
|
69
|
+
1 AIT ,BIT ,CIT ,DIT ,
|
|
70
|
+
2 MIT ,NIT ,IS ,MS ,
|
|
71
|
+
3 JS ,NS ,DLX ,DLY ,
|
|
72
|
+
4 TDLX3 ,TDLY3 ,DLX4 ,DLY4
|
|
73
|
+
DIMENSION USOL(IDMN,1) ,ZN(*) ,ZM(*)
|
|
74
|
+
ISTR = IS
|
|
75
|
+
IFNL = MS
|
|
76
|
+
JSTR = JS
|
|
77
|
+
JFNL = NS
|
|
78
|
+
C
|
|
79
|
+
C COMPUTE WEIGHTED INNER PRODUCTS
|
|
80
|
+
C
|
|
81
|
+
UTE = 0.0
|
|
82
|
+
ETE = 0.0
|
|
83
|
+
DO 20 I=IS,MS
|
|
84
|
+
II = I-IS+1
|
|
85
|
+
DO 10 J=JS,NS
|
|
86
|
+
JJ = J-JS+1
|
|
87
|
+
ETE = ETE+ZM(II)*ZN(JJ)
|
|
88
|
+
UTE = UTE+USOL(I,J)*ZM(II)*ZN(JJ)
|
|
89
|
+
10 CONTINUE
|
|
90
|
+
20 CONTINUE
|
|
91
|
+
C
|
|
92
|
+
C SET PERTURBATION PARAMETER
|
|
93
|
+
C
|
|
94
|
+
PERTRB = UTE/ETE
|
|
95
|
+
C
|
|
96
|
+
C SUBTRACT OFF CONSTANT PERTRB
|
|
97
|
+
C
|
|
98
|
+
DO 40 I=ISTR,IFNL
|
|
99
|
+
DO 30 J=JSTR,JFNL
|
|
100
|
+
USOL(I,J) = USOL(I,J)-PERTRB
|
|
101
|
+
30 CONTINUE
|
|
102
|
+
40 CONTINUE
|
|
103
|
+
RETURN
|
|
104
|
+
END
|
|
105
|
+
SUBROUTINE SEPMIN (USOL,IDMN,ZN,ZM,PERTB)
|
|
106
|
+
C
|
|
107
|
+
C THIS SUBROUTINE ORHTOGONALIZES THE ARRAY USOL WITH RESPECT TO
|
|
108
|
+
C THE CONSTANT ARRAY IN A WEIGHTED LEAST SQUARES NORM
|
|
109
|
+
C
|
|
110
|
+
COMMON /SPLP/ KSWX ,KSWY ,K ,L ,
|
|
111
|
+
1 AIT ,BIT ,CIT ,DIT ,
|
|
112
|
+
2 MIT ,NIT ,IS ,MS ,
|
|
113
|
+
3 JS ,NS ,DLX ,DLY ,
|
|
114
|
+
4 TDLX3 ,TDLY3 ,DLX4 ,DLY4
|
|
115
|
+
DIMENSION USOL(IDMN,1) ,ZN(*) ,ZM(*)
|
|
116
|
+
C
|
|
117
|
+
C ENTRY AT SEPMIN OCCURRS WHEN THE FINAL SOLUTION IS
|
|
118
|
+
C TO BE MINIMIZED WITH RESPECT TO THE WEIGHTED
|
|
119
|
+
C LEAST SQUARES NORM
|
|
120
|
+
C
|
|
121
|
+
ISTR = 1
|
|
122
|
+
IFNL = K
|
|
123
|
+
JSTR = 1
|
|
124
|
+
JFNL = L
|
|
125
|
+
C
|
|
126
|
+
C COMPUTE WEIGHTED INNER PRODUCTS
|
|
127
|
+
C
|
|
128
|
+
UTE = 0.0
|
|
129
|
+
ETE = 0.0
|
|
130
|
+
DO 20 I=IS,MS
|
|
131
|
+
II = I-IS+1
|
|
132
|
+
DO 10 J=JS,NS
|
|
133
|
+
JJ = J-JS+1
|
|
134
|
+
ETE = ETE+ZM(II)*ZN(JJ)
|
|
135
|
+
UTE = UTE+USOL(I,J)*ZM(II)*ZN(JJ)
|
|
136
|
+
10 CONTINUE
|
|
137
|
+
20 CONTINUE
|
|
138
|
+
C
|
|
139
|
+
C SET PERTURBATION PARAMETER
|
|
140
|
+
C
|
|
141
|
+
PERTRB = UTE/ETE
|
|
142
|
+
C
|
|
143
|
+
C SUBTRACT OFF CONSTANT PERTRB
|
|
144
|
+
C
|
|
145
|
+
DO 40 I=ISTR,IFNL
|
|
146
|
+
DO 30 J=JSTR,JFNL
|
|
147
|
+
USOL(I,J) = USOL(I,J)-PERTRB
|
|
148
|
+
30 CONTINUE
|
|
149
|
+
40 CONTINUE
|
|
150
|
+
RETURN
|
|
151
|
+
END
|
|
152
|
+
SUBROUTINE SEPTRI (N,A,B,C,D,U,Z)
|
|
153
|
+
C
|
|
154
|
+
C THIS SUBROUTINE SOLVES FOR A NON-ZERO EIGENVECTOR CORRESPONDING
|
|
155
|
+
C TO THE ZERO EIGENVALUE OF THE TRANSPOSE OF THE RANK
|
|
156
|
+
C DEFICIENT ONE MATRIX WITH SUBDIAGONAL A, DIAGONAL B, AND
|
|
157
|
+
C SUPERDIAGONAL C , WITH A(1) IN THE (1,N) POSITION, WITH
|
|
158
|
+
C C(N) IN THE (N,1) POSITION, AND ALL OTHER ELEMENTS ZERO.
|
|
159
|
+
C
|
|
160
|
+
DIMENSION A(N) ,B(N) ,C(N) ,D(N) ,
|
|
161
|
+
1 U(N) ,Z(N)
|
|
162
|
+
BN = B(N)
|
|
163
|
+
D(1) = A(2)/B(1)
|
|
164
|
+
V = A(1)
|
|
165
|
+
U(1) = C(N)/B(1)
|
|
166
|
+
NM2 = N-2
|
|
167
|
+
DO 10 J=2,NM2
|
|
168
|
+
DEN = B(J)-C(J-1)*D(J-1)
|
|
169
|
+
D(J) = A(J+1)/DEN
|
|
170
|
+
U(J) = -C(J-1)*U(J-1)/DEN
|
|
171
|
+
BN = BN-V*U(J-1)
|
|
172
|
+
V = -V*D(J-1)
|
|
173
|
+
10 CONTINUE
|
|
174
|
+
DEN = B(N-1)-C(N-2)*D(N-2)
|
|
175
|
+
D(N-1) = (A(N)-C(N-2)*U(N-2))/DEN
|
|
176
|
+
AN = C(N-1)-V*D(N-2)
|
|
177
|
+
BN = BN-V*U(N-2)
|
|
178
|
+
DEN = BN-AN*D(N-1)
|
|
179
|
+
C
|
|
180
|
+
C SET LAST COMPONENT EQUAL TO ONE
|
|
181
|
+
C
|
|
182
|
+
Z(N) = 1.0
|
|
183
|
+
Z(N-1) = -D(N-1)
|
|
184
|
+
NM1 = N-1
|
|
185
|
+
DO 20 J=2,NM1
|
|
186
|
+
K = N-J
|
|
187
|
+
Z(K) = -D(K)*Z(K+1)-U(K)*Z(N)
|
|
188
|
+
20 CONTINUE
|
|
189
|
+
RETURN
|
|
190
|
+
END
|
|
191
|
+
SUBROUTINE SEPDX (U,IDMN,I,J,UXXX,UXXXX)
|
|
192
|
+
C
|
|
193
|
+
C THIS PROGRAM COMPUTES SECOND ORDER FINITE DIFFERENCE
|
|
194
|
+
C APPROXIMATIONS TO THE THIRD AND FOURTH X
|
|
195
|
+
C PARTIAL DERIVATIVES OF U AT THE (I,J) MESH POINT
|
|
196
|
+
C
|
|
197
|
+
COMMON /SPLP/ KSWX ,KSWY ,K ,L ,
|
|
198
|
+
1 AIT ,BIT ,CIT ,DIT ,
|
|
199
|
+
2 MIT ,NIT ,IS ,MS ,
|
|
200
|
+
3 JS ,NS ,DLX ,DLY ,
|
|
201
|
+
4 TDLX3 ,TDLY3 ,DLX4 ,DLY4
|
|
202
|
+
DIMENSION U(IDMN,1)
|
|
203
|
+
IF (I.GT.2 .AND. I.LT.(K-1)) GO TO 50
|
|
204
|
+
IF (I .EQ. 1) GO TO 10
|
|
205
|
+
IF (I .EQ. 2) GO TO 30
|
|
206
|
+
IF (I .EQ. K-1) GO TO 60
|
|
207
|
+
IF (I .EQ. K) GO TO 80
|
|
208
|
+
C
|
|
209
|
+
C COMPUTE PARTIAL DERIVATIVE APPROXIMATIONS AT X=A
|
|
210
|
+
C
|
|
211
|
+
10 IF (KSWX .EQ. 1) GO TO 20
|
|
212
|
+
UXXX = (-5.0*U(1,J)+18.0*U(2,J)-24.0*U(3,J)+14.0*U(4,J)-
|
|
213
|
+
1 3.0*U(5,J))/(TDLX3)
|
|
214
|
+
UXXXX = (3.0*U(1,J)-14.0*U(2,J)+26.0*U(3,J)-24.0*U(4,J)+
|
|
215
|
+
1 11.0*U(5,J)-2.0*U(6,J))/DLX4
|
|
216
|
+
RETURN
|
|
217
|
+
C
|
|
218
|
+
C PERIODIC AT X=A
|
|
219
|
+
C
|
|
220
|
+
20 UXXX = (-U(K-2,J)+2.0*U(K-1,J)-2.0*U(2,J)+U(3,J))/(TDLX3)
|
|
221
|
+
UXXXX = (U(K-2,J)-4.0*U(K-1,J)+6.0*U(1,J)-4.0*U(2,J)+U(3,J))/DLX4
|
|
222
|
+
RETURN
|
|
223
|
+
C
|
|
224
|
+
C COMPUTE PARTIAL DERIVATIVE APPROXIMATIONS AT X=A+DLX
|
|
225
|
+
C
|
|
226
|
+
30 IF (KSWX .EQ. 1) GO TO 40
|
|
227
|
+
UXXX = (-3.0*U(1,J)+10.0*U(2,J)-12.0*U(3,J)+6.0*U(4,J)-U(5,J))/
|
|
228
|
+
1 TDLX3
|
|
229
|
+
UXXXX = (2.0*U(1,J)-9.0*U(2,J)+16.0*U(3,J)-14.0*U(4,J)+6.0*U(5,J)-
|
|
230
|
+
1 U(6,J))/DLX4
|
|
231
|
+
RETURN
|
|
232
|
+
C
|
|
233
|
+
C PERIODIC AT X=A+DLX
|
|
234
|
+
C
|
|
235
|
+
40 UXXX = (-U(K-1,J)+2.0*U(1,J)-2.0*U(3,J)+U(4,J))/(TDLX3)
|
|
236
|
+
UXXXX = (U(K-1,J)-4.0*U(1,J)+6.0*U(2,J)-4.0*U(3,J)+U(4,J))/DLX4
|
|
237
|
+
RETURN
|
|
238
|
+
C
|
|
239
|
+
C COMPUTE PARTIAL DERIVATIVE APPROXIMATIONS ON THE INTERIOR
|
|
240
|
+
C
|
|
241
|
+
50 CONTINUE
|
|
242
|
+
UXXX = (-U(I-2,J)+2.0*U(I-1,J)-2.0*U(I+1,J)+U(I+2,J))/TDLX3
|
|
243
|
+
UXXXX = (U(I-2,J)-4.0*U(I-1,J)+6.0*U(I,J)-4.0*U(I+1,J)+U(I+2,J))/
|
|
244
|
+
1 DLX4
|
|
245
|
+
RETURN
|
|
246
|
+
C
|
|
247
|
+
C COMPUTE PARTIAL DERIVATIVE APPROXIMATIONS AT X=B-DLX
|
|
248
|
+
C
|
|
249
|
+
60 IF (KSWX .EQ. 1) GO TO 70
|
|
250
|
+
UXXX = (U(K-4,J)-6.0*U(K-3,J)+12.0*U(K-2,J)-10.0*U(K-1,J)+
|
|
251
|
+
1 3.0*U(K,J))/TDLX3
|
|
252
|
+
UXXXX = (-U(K-5,J)+6.0*U(K-4,J)-14.0*U(K-3,J)+16.0*U(K-2,J)-
|
|
253
|
+
1 9.0*U(K-1,J)+2.0*U(K,J))/DLX4
|
|
254
|
+
RETURN
|
|
255
|
+
C
|
|
256
|
+
C PERIODIC AT X=B-DLX
|
|
257
|
+
C
|
|
258
|
+
70 UXXX = (-U(K-3,J)+2.0*U(K-2,J)-2.0*U(1,J)+U(2,J))/TDLX3
|
|
259
|
+
UXXXX = (U(K-3,J)-4.0*U(K-2,J)+6.0*U(K-1,J)-4.0*U(1,J)+U(2,J))/
|
|
260
|
+
1 DLX4
|
|
261
|
+
RETURN
|
|
262
|
+
C
|
|
263
|
+
C COMPUTE PARTIAL DERIVATIVE APPROXIMATIONS AT X=B
|
|
264
|
+
C
|
|
265
|
+
80 UXXX = -(3.0*U(K-4,J)-14.0*U(K-3,J)+24.0*U(K-2,J)-18.0*U(K-1,J)+
|
|
266
|
+
1 5.0*U(K,J))/TDLX3
|
|
267
|
+
UXXXX = (-2.0*U(K-5,J)+11.0*U(K-4,J)-24.0*U(K-3,J)+26.0*U(K-2,J)-
|
|
268
|
+
1 14.0*U(K-1,J)+3.0*U(K,J))/DLX4
|
|
269
|
+
RETURN
|
|
270
|
+
END
|
|
271
|
+
SUBROUTINE SEPDY (U,IDMN,I,J,UYYY,UYYYY)
|
|
272
|
+
C
|
|
273
|
+
C THIS PROGRAM COMPUTES SECOND ORDER FINITE DIFFERENCE
|
|
274
|
+
C APPROXIMATIONS TO THE THIRD AND FOURTH Y
|
|
275
|
+
C PARTIAL DERIVATIVES OF U AT THE (I,J) MESH POINT
|
|
276
|
+
C
|
|
277
|
+
COMMON /SPLP/ KSWX ,KSWY ,K ,L ,
|
|
278
|
+
1 AIT ,BIT ,CIT ,DIT ,
|
|
279
|
+
2 MIT ,NIT ,IS ,MS ,
|
|
280
|
+
3 JS ,NS ,DLX ,DLY ,
|
|
281
|
+
4 TDLX3 ,TDLY3 ,DLX4 ,DLY4
|
|
282
|
+
DIMENSION U(IDMN,*)
|
|
283
|
+
IF (J.GT.2 .AND. J.LT.(L-1)) GO TO 50
|
|
284
|
+
IF (J .EQ. 1) GO TO 10
|
|
285
|
+
IF (J .EQ. 2) GO TO 30
|
|
286
|
+
IF (J .EQ. L-1) GO TO 60
|
|
287
|
+
IF (J .EQ. L) GO TO 80
|
|
288
|
+
C
|
|
289
|
+
C COMPUTE PARTIAL DERIVATIVE APPROXIMATIONS AT Y=C
|
|
290
|
+
C
|
|
291
|
+
10 IF (KSWY .EQ. 1) GO TO 20
|
|
292
|
+
UYYY = (-5.0*U(I,1)+18.0*U(I,2)-24.0*U(I,3)+14.0*U(I,4)-
|
|
293
|
+
1 3.0*U(I,5))/TDLY3
|
|
294
|
+
UYYYY = (3.0*U(I,1)-14.0*U(I,2)+26.0*U(I,3)-24.0*U(I,4)+
|
|
295
|
+
1 11.0*U(I,5)-2.0*U(I,6))/DLY4
|
|
296
|
+
RETURN
|
|
297
|
+
C
|
|
298
|
+
C PERIODIC AT X=A
|
|
299
|
+
C
|
|
300
|
+
20 UYYY = (-U(I,L-2)+2.0*U(I,L-1)-2.0*U(I,2)+U(I,3))/TDLY3
|
|
301
|
+
UYYYY = (U(I,L-2)-4.0*U(I,L-1)+6.0*U(I,1)-4.0*U(I,2)+U(I,3))/DLY4
|
|
302
|
+
RETURN
|
|
303
|
+
C
|
|
304
|
+
C COMPUTE PARTIAL DERIVATIVE APPROXIMATIONS AT Y=C+DLY
|
|
305
|
+
C
|
|
306
|
+
30 IF (KSWY .EQ. 1) GO TO 40
|
|
307
|
+
UYYY = (-3.0*U(I,1)+10.0*U(I,2)-12.0*U(I,3)+6.0*U(I,4)-U(I,5))/
|
|
308
|
+
1 TDLY3
|
|
309
|
+
UYYYY = (2.0*U(I,1)-9.0*U(I,2)+16.0*U(I,3)-14.0*U(I,4)+6.0*U(I,5)-
|
|
310
|
+
1 U(I,6))/DLY4
|
|
311
|
+
RETURN
|
|
312
|
+
C
|
|
313
|
+
C PERIODIC AT Y=C+DLY
|
|
314
|
+
C
|
|
315
|
+
40 UYYY = (-U(I,L-1)+2.0*U(I,1)-2.0*U(I,3)+U(I,4))/TDLY3
|
|
316
|
+
UYYYY = (U(I,L-1)-4.0*U(I,1)+6.0*U(I,2)-4.0*U(I,3)+U(I,4))/DLY4
|
|
317
|
+
RETURN
|
|
318
|
+
C
|
|
319
|
+
C COMPUTE PARTIAL DERIVATIVE APPROXIMATIONS ON THE INTERIOR
|
|
320
|
+
C
|
|
321
|
+
50 CONTINUE
|
|
322
|
+
UYYY = (-U(I,J-2)+2.0*U(I,J-1)-2.0*U(I,J+1)+U(I,J+2))/TDLY3
|
|
323
|
+
UYYYY = (U(I,J-2)-4.0*U(I,J-1)+6.0*U(I,J)-4.0*U(I,J+1)+U(I,J+2))/
|
|
324
|
+
1 DLY4
|
|
325
|
+
RETURN
|
|
326
|
+
C
|
|
327
|
+
C COMPUTE PARTIAL DERIVATIVE APPROXIMATIONS AT Y=D-DLY
|
|
328
|
+
C
|
|
329
|
+
60 IF (KSWY .EQ. 1) GO TO 70
|
|
330
|
+
UYYY = (U(I,L-4)-6.0*U(I,L-3)+12.0*U(I,L-2)-10.0*U(I,L-1)+
|
|
331
|
+
1 3.0*U(I,L))/TDLY3
|
|
332
|
+
UYYYY = (-U(I,L-5)+6.0*U(I,L-4)-14.0*U(I,L-3)+16.0*U(I,L-2)-
|
|
333
|
+
1 9.0*U(I,L-1)+2.0*U(I,L))/DLY4
|
|
334
|
+
RETURN
|
|
335
|
+
C
|
|
336
|
+
C PERIODIC AT Y=D-DLY
|
|
337
|
+
C
|
|
338
|
+
70 CONTINUE
|
|
339
|
+
UYYY = (-U(I,L-3)+2.0*U(I,L-2)-2.0*U(I,1)+U(I,2))/TDLY3
|
|
340
|
+
UYYYY = (U(I,L-3)-4.0*U(I,L-2)+6.0*U(I,L-1)-4.0*U(I,1)+U(I,2))/
|
|
341
|
+
1 DLY4
|
|
342
|
+
RETURN
|
|
343
|
+
C
|
|
344
|
+
C COMPUTE PARTIAL DERIVATIVE APPROXIMATIONS AT Y=D
|
|
345
|
+
C
|
|
346
|
+
80 UYYY = -(3.0*U(I,L-4)-14.0*U(I,L-3)+24.0*U(I,L-2)-18.0*U(I,L-1)+
|
|
347
|
+
1 5.0*U(I,L))/TDLY3
|
|
348
|
+
UYYYY = (-2.0*U(I,L-5)+11.0*U(I,L-4)-24.0*U(I,L-3)+26.0*U(I,L-2)-
|
|
349
|
+
1 14.0*U(I,L-1)+3.0*U(I,L))/DLY4
|
|
350
|
+
RETURN
|
|
351
|
+
C
|
|
352
|
+
C REVISION HISTORY---
|
|
353
|
+
C
|
|
354
|
+
C SEPTEMBER 1973 VERSION 1
|
|
355
|
+
C APRIL 1976 VERSION 2
|
|
356
|
+
C JANUARY 1978 VERSION 3
|
|
357
|
+
C DECEMBER 1979 VERSION 3.1
|
|
358
|
+
C FEBRUARY 1985 DOCUMENTATION UPGRADE
|
|
359
|
+
C NOVEMBER 1988 VERSION 3.2, FORTRAN 77 CHANGES
|
|
360
|
+
C-----------------------------------------------------------------------
|
|
361
|
+
END
|