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.
Files changed (81) hide show
  1. PyFishPack/__init__.py +86 -0
  2. PyFishPack/__pycache__/__init__.cpython-313.pyc +0 -0
  3. PyFishPack/__pycache__/apps.cpython-313.pyc +0 -0
  4. PyFishPack/_dummy.c +23 -0
  5. PyFishPack/_dummy.cp313-win_amd64.pyd +0 -0
  6. PyFishPack/apps.py +3640 -0
  7. PyFishPack/fishpack.cp313-win_amd64.dll.a +0 -0
  8. PyFishPack/fishpack.cp313-win_amd64.pyd +0 -0
  9. PyFishPack/meson.build +213 -0
  10. PyFishPack/src/archive/f77/Makefile +19 -0
  11. PyFishPack/src/archive/f77/blktri.f +1404 -0
  12. PyFishPack/src/archive/f77/cblktri.f +1414 -0
  13. PyFishPack/src/archive/f77/cmgnbn.f +1592 -0
  14. PyFishPack/src/archive/f77/comf.f +186 -0
  15. PyFishPack/src/archive/f77/fftpack.f +2968 -0
  16. PyFishPack/src/archive/f77/genbun.f +1335 -0
  17. PyFishPack/src/archive/f77/gnbnaux.f +314 -0
  18. PyFishPack/src/archive/f77/hstcrt.f +443 -0
  19. PyFishPack/src/archive/f77/hstcsp.f +683 -0
  20. PyFishPack/src/archive/f77/hstcyl.f +485 -0
  21. PyFishPack/src/archive/f77/hstplr.f +538 -0
  22. PyFishPack/src/archive/f77/hstssp.f +634 -0
  23. PyFishPack/src/archive/f77/hw3crt.f +687 -0
  24. PyFishPack/src/archive/f77/hwscrt.f +512 -0
  25. PyFishPack/src/archive/f77/hwscsp.f +728 -0
  26. PyFishPack/src/archive/f77/hwscyl.f +538 -0
  27. PyFishPack/src/archive/f77/hwsplr.f +602 -0
  28. PyFishPack/src/archive/f77/hwsssp.f +780 -0
  29. PyFishPack/src/archive/f77/pois3d.f +550 -0
  30. PyFishPack/src/archive/f77/poistg.f +875 -0
  31. PyFishPack/src/archive/f77/sepaux.f +361 -0
  32. PyFishPack/src/archive/f77/sepeli.f +1029 -0
  33. PyFishPack/src/archive/f77/sepx4.f +958 -0
  34. PyFishPack/src/centered_axisymmetric_spherical_solver.f90 +1002 -0
  35. PyFishPack/src/centered_cartesian_helmholtz_solver_3d.f90 +819 -0
  36. PyFishPack/src/centered_cartesian_solver.f90 +583 -0
  37. PyFishPack/src/centered_cylindrical_solver.f90 +634 -0
  38. PyFishPack/src/centered_helmholtz_solvers.f90 +156 -0
  39. PyFishPack/src/centered_polar_solver.f90 +746 -0
  40. PyFishPack/src/centered_real_linear_systems_solver.f90 +280 -0
  41. PyFishPack/src/centered_spherical_solver.f90 +928 -0
  42. PyFishPack/src/complex_block_tridiagonal_linear_systems_solver.f90 +1947 -0
  43. PyFishPack/src/complex_linear_systems_solver.f90 +1787 -0
  44. PyFishPack/src/fftpack_c_api.f90 +86 -0
  45. PyFishPack/src/fishpack.f90 +191 -0
  46. PyFishPack/src/fishpack.pyf +504 -0
  47. PyFishPack/src/fishpack_c_api.f90 +365 -0
  48. PyFishPack/src/fishpack_original.pyf +2119 -0
  49. PyFishPack/src/fishpack_precision.f90 +53 -0
  50. PyFishPack/src/general_linear_systems_solver_3d.f90 +296 -0
  51. PyFishPack/src/iterative_solvers.f90 +969 -0
  52. PyFishPack/src/main.f90 +10 -0
  53. PyFishPack/src/pyfishpack_module.c +1302 -0
  54. PyFishPack/src/real_block_tridiagonal_linear_systems_solver.f90 +319 -0
  55. PyFishPack/src/sepeli.f90 +1454 -0
  56. PyFishPack/src/sepx4.f90 +1338 -0
  57. PyFishPack/src/staggered_axisymmetric_spherical_solver.f90 +908 -0
  58. PyFishPack/src/staggered_cartesian_solver.f90 +553 -0
  59. PyFishPack/src/staggered_cylindrical_solver.f90 +630 -0
  60. PyFishPack/src/staggered_helmholtz_solvers.f90 +172 -0
  61. PyFishPack/src/staggered_polar_solver.f90 +651 -0
  62. PyFishPack/src/staggered_real_linear_systems_solver.f90 +258 -0
  63. PyFishPack/src/staggered_spherical_solver.f90 +758 -0
  64. PyFishPack/src/three_dimensional_solvers.f90 +602 -0
  65. PyFishPack/src/type_CenteredCyclicReductionUtility.f90 +1714 -0
  66. PyFishPack/src/type_CyclicReductionUtility.f90 +472 -0
  67. PyFishPack/src/type_FishpackWorkspace.f90 +290 -0
  68. PyFishPack/src/type_GeneralizedCyclicReductionUtility.f90 +1980 -0
  69. PyFishPack/src/type_PeriodicFastFourierTransform.f90 +3789 -0
  70. PyFishPack/src/type_SepAux.f90 +586 -0
  71. PyFishPack/src/type_StaggeredCyclicReductionUtility.f90 +893 -0
  72. pyfishpack-0.1.0.dist-info/DELVEWHEEL +2 -0
  73. pyfishpack-0.1.0.dist-info/METADATA +81 -0
  74. pyfishpack-0.1.0.dist-info/RECORD +81 -0
  75. pyfishpack-0.1.0.dist-info/WHEEL +5 -0
  76. pyfishpack-0.1.0.dist-info/licenses/LICENSE +21 -0
  77. pyfishpack-0.1.0.dist-info/top_level.txt +1 -0
  78. pyfishpack.libs/libgcc_s_seh-1-25d59ccffa1a9009644065b069829e07.dll +0 -0
  79. pyfishpack.libs/libgfortran-5-08f2195cfa0d823e13371c5c3186a82a.dll +0 -0
  80. pyfishpack.libs/libquadmath-0-c5abb9113f1ee64b87a889958e4b7418.dll +0 -0
  81. 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