mathlib-fishpack.c
1 //! @file mathlib-fishpack.c
2 //
3 //! @section copyright
4 //
5 // This file is part of VIF - vintage fortran compiler.
6 // Copyright 2020-2025 J. Marcel van der Veer <algol68g@xs4all.nl>.
7 //
8 //! @section license
9 //
10 // This program is free software; you can redistribute it and/or modify it
11 // under the terms of the gnu general public license as published by the
12 // free software foundation; either version 3 of the license, or
13 // (at your option) any later version.
14 //
15 // This program is distributed in the hope that it will be useful, but
16 // without any warranty; without even the implied warranty of merchantability
17 // or fitness for a particular purpose. See the GNU general public license for
18 // more details. you should have received a copy of the GNU general public
19 // license along with this program. If not, see <http://www.gnu.org/licenses/>.
20 //
21 //! @Synopsis
22 //
23 //! 19 subprograms from FISHPACK
24
25 // Compiled from Fortran source code by VIF.
26 // Selected subprograms are:
27 //
28 // BLKTRI CMGNBN HSTCRT HSTCYL HSTSSP HWSCRT HWSCYL HWSSSP POISTG SEPX4
29 // CBLKTR GENBUN HSTCSP HSTPLR HW3CRT HWSCSP HWSPLR POIS3D SEPELI
30
31 // FISHPACK routines from SLATEC.
32 //
33 // Source: netlib.org/slatec/
34
35 // The license for FISHPACK Fortran source code is:
36 //
37 // The SLATEC Common Mathematical Library was developed at
38 // US government research laboratories and is in the public domain.
39 //
40 // Repository: http://www.netlib.org/slatec/
41 //
42 // The SLATEC common mathematical library is issued by the following
43 //
44 // Air Force Weapons Laboratory, Albuquerque
45 // Lawrence Livermore National Laboratory, Livermore
46 // Los Alamos National Laboratory, Los Alamos
47 // National Institute of Standards and Technology, Washington
48 // National Energy Research Supercomputer Center, Livermore
49 // Oak Ridge National Laboratory, Oak Ridge
50 // Sandia National Laboratories, Albuquerque
51 // Sandia National Laboratories, Livermore
52 //
53 // All questions concerning the distribution of the library should be
54 // directed to the NATIONAL ENERGY SOFTWARE CENTER, 9700 Cass Ave.,
55 // Argonne, Illinois 60439, and not to the authors of the subprograms.
56 //
57 // * * * * * Notice * * * * *
58 //
59 // This material was prepared as an account of work sponsored by the
60 // United States Government. Neither the United States, nor the
61 // Department of Energy, nor the Department of Defense, nor any of
62 // their employees, nor any of their contractors, subcontractors, or
63 // their employees, makes any warranty, expressed or implied, or
64 // assumes any legal liability or responsibility for the accuracy,
65 // completeness, or usefulness of any information, apparatus, product,
66 // or process disclosed, or represents that its use would not infringe
67 // upon privately owned rights.
68
69 /*
70 Generated by VIF - experimental VIntage Fortran compiler.
71 VIF release 1.2.12
72 */
77 static CALLS __calls[__ncalls] = {
78 {"blktri", 0}, // subroutine
79 {"cblktr", 0}, // subroutine
80 {"cmgnbn", 0}, // subroutine
81 {"genbun", 0}, // subroutine
82 {"hstcrt", 0}, // subroutine
83 {"hstcsp", 0}, // subroutine
84 {"hstcyl", 0}, // subroutine
85 {"hstplr", 0}, // subroutine
86 {"hstssp", 0}, // subroutine
87 {"hw3crt", 0}, // subroutine
88 {"hwscrt", 0}, // subroutine
89 {"hwscsp", 0}, // subroutine
90 {"hwscyl", 0}, // subroutine
91 {"hwsplr", 0}, // subroutine
92 {"hwsssp", 0}, // subroutine
93 {"pois3d", 0}, // subroutine
94 {"poistg", 0}, // subroutine
95 {"sepeli", 0}, // subroutine
96 {"sepx4", 0}, // subroutine
97 {NULL, 0}
98 };
99
100 static struct {
101 int_4 npp_, k_, nm_, ncmplx_, ik_;
102 real_4 eps_, cnv_;
103 } cblkt_;
104 static struct {
105 int_4 npp_, k_, nm_, ncmplx_, ik_;
106 real_4 eps_, cnv_;
107 } ccblk_;
109 int_4 _p_ mp_, int_4 _p_ m_, real_4 _p_ am_, real_4 _p_ bm_, real_4 _p_ cm_, int_4 _p_ idimy_, real_4 _p_ y_, int_4 _p_
110 ierror_, real_4 _p_ w_);
112 int_4 _p_ mp_, int_4 _p_ m_, complex_8 _p_ am_, complex_8 _p_ bm_, complex_8 _p_ cm_, int_4 _p_ idimy_, complex_8 _p_
113 y_, int_4 _p_ ierror_, real_4 _p_ w_);
115 _p_ b_, complex_8 _p_ c_, int_4 _p_ idimy_, complex_8 _p_ y_, int_4 _p_ ierror_, complex_8 _p_ w_);
117 , real_4 _p_ c_, int_4 _p_ idimy_, real_4 _p_ y_, int_4 _p_ ierror_, real_4 _p_ w_);
119 bdb_, real_4 _p_ c_, real_4 _p_ d_, int_4 _p_ n_, int_4 _p_ nbdcnd_, real_4 _p_ bdc_, real_4 _p_ bdd_, real_4 _p_
120 elmbda_, real_4 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_);
122 bda_, real_4 _p_ bdb_, real_4 _p_ c_, real_4 _p_ d_, int_4 _p_ n_, int_4 _p_ nbdcnd_, real_4 _p_ bdc_, real_4 _p_ bdd_,
123 real_4 _p_ elmbda_, real_4 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_);
125 bdb_, real_4 _p_ c_, real_4 _p_ d_, int_4 _p_ n_, int_4 _p_ nbdcnd_, real_4 _p_ bdc_, real_4 _p_ bdd_, real_4 _p_
126 elmbda_, real_4 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_);
128 bdb_, real_4 _p_ c_, real_4 _p_ d_, int_4 _p_ n_, int_4 _p_ nbdcnd_, real_4 _p_ bdc_, real_4 _p_ bdd_, real_4 _p_
129 elmbda_, real_4 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_);
131 bdb_, real_4 _p_ c_, real_4 _p_ d_, int_4 _p_ n_, int_4 _p_ nbdcnd_, real_4 _p_ bdc_, real_4 _p_ bdd_, real_4 _p_
132 elmbda_, real_4 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_);
134 bdxf_, real_4 _p_ ys_, real_4 _p_ yf_, int_4 _p_ m_, int_4 _p_ mbdcnd_, real_4 _p_ bdys_, real_4 _p_ bdyf_, real_4 _p_
135 zs_, real_4 _p_ zf_, int_4 _p_ n_, int_4 _p_ nbdcnd_, real_4 _p_ bdzs_, real_4 _p_ bdzf_, real_4 _p_ elmbda_, int_4 _p_
136 ldimf_, int_4 _p_ mdimf_, real_4 _p_ f_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_);
138 bdb_, real_4 _p_ c_, real_4 _p_ d_, int_4 _p_ n_, int_4 _p_ nbdcnd_, real_4 _p_ bdc_, real_4 _p_ bdd_, real_4 _p_
139 elmbda_, real_4 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_);
141 bdts_, real_4 _p_ bdtf_, real_4 _p_ rs_, real_4 _p_ rf_, int_4 _p_ n_, int_4 _p_ nbdcnd_, real_4 _p_ bdrs_, real_4 _p_
142 bdrf_, real_4 _p_ elmbda_, real_4 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_);
144 bdb_, real_4 _p_ c_, real_4 _p_ d_, int_4 _p_ n_, int_4 _p_ nbdcnd_, real_4 _p_ bdc_, real_4 _p_ bdd_, real_4 _p_
145 elmbda_, real_4 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_);
147 bdb_, real_4 _p_ c_, real_4 _p_ d_, int_4 _p_ n_, int_4 _p_ nbdcnd_, real_4 _p_ bdc_, real_4 _p_ bdd_, real_4 _p_
148 elmbda_, real_4 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_);
150 bdtf_, real_4 _p_ ps_, real_4 _p_ pf_, int_4 _p_ n_, int_4 _p_ nbdcnd_, real_4 _p_ bdps_, real_4 _p_ bdpf_, real_4 _p_
151 elmbda_, real_4 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_);
153 c2_, int_4 _p_ nperod_, int_4 _p_ n_, real_4 _p_ a_, real_4 _p_ b_, real_4 _p_ c_, int_4 _p_ ldimf_, int_4 _p_ mdimf_,
154 real_4 _p_ f_, int_4 _p_ ierror_, real_4 _p_ w_);
156 , real_4 _p_ c_, int_4 _p_ idimy_, real_4 _p_ y_, int_4 _p_ ierror_, real_4 _p_ w_);
158 mbdcnd_, real_4 _p_ bda_, real_4 _p_ alpha_, real_4 _p_ bdb_, real_4 _p_ beta_, real_4 _p_ c_, real_4 _p_ d_, int_4 _p_
159 n_, int_4 _p_ nbdcnd_, real_4 _p_ bdc_, real_4 _p_ gama_, real_4 _p_ bdd_, real_4 _p_ xnu_, real_4 (*_cofx)(), real_4
160 (*_cofy)(), real_4 _p_ grhs_, real_4 _p_ usol_, int_4 _p_ idmn_, real_4 _p_ w_, real_4 _p_ pertrb_, int_4 _p_ ierror_);
162 bda_, real_4 _p_ alpha_, real_4 _p_ bdb_, real_4 _p_ beta_, real_4 _p_ c_, real_4 _p_ d_, int_4 _p_ n_, int_4 _p_
163 nbdcnd_, real_4 _p_ bdc_, real_4 _p_ bdd_, real_4 (*_cofx)(), real_4 _p_ grhs_, real_4 _p_ usol_, int_4 _p_ idmn_,
164 real_4 _p_ w_, real_4 _p_ pertrb_, int_4 _p_ ierror_);
165 int_4 _blktri (int_4 _p_ iflg_, int_4 _p_ np_, int_4 _p_ n_, real_4 _p_ an_, real_4 _p_ bn_, real_4 _p_ cn_, int_4 _p_
166 mp_, int_4 _p_ m_, real_4 _p_ am_, real_4 _p_ bm_, real_4 _p_ cm_, int_4 _p_ idimy_, real_4 _p_ y_, int_4 _p_ ierror_,
167 real_4 _p_ w_)
168 { // ** body not listed **
307 }
308
309 int_4 _cblktr (int_4 _p_ iflg_, int_4 _p_ np_, int_4 _p_ n_, real_4 _p_ an_, real_4 _p_ bn_, real_4 _p_ cn_, int_4 _p_
310 mp_, int_4 _p_ m_, complex_8 _p_ am_, complex_8 _p_ bm_, complex_8 _p_ cm_, int_4 _p_ idimy_, complex_8 _p_ y_, int_4
311 _p_ ierror_, real_4 _p_ w_)
312 { // ** body not listed **
452 }
453
454 int_4 _cmgnbn (int_4 _p_ nperod_, int_4 _p_ n_, int_4 _p_ mperod_, int_4 _p_ m_, complex_8 _p_ a_, complex_8 _p_ b_,
455 complex_8 _p_ c_, int_4 _p_ idimy_, complex_8 _p_ y_, int_4 _p_ ierror_, complex_8 _p_ w_)
456 { // ** body not listed **
658 }
659
660 int_4 _genbun (int_4 _p_ nperod_, int_4 _p_ n_, int_4 _p_ mperod_, int_4 _p_ m_, real_4 _p_ a_, real_4 _p_ b_, real_4
661 _p_ c_, int_4 _p_ idimy_, real_4 _p_ y_, int_4 _p_ ierror_, real_4 _p_ w_)
662 { // ** body not listed **
865 }
866
867 int_4 _hstcrt (real_4 _p_ a_, real_4 _p_ b_, int_4 _p_ m_, int_4 _p_ mbdcnd_, real_4 _p_ bda_, real_4 _p_ bdb_, real_4
868 _p_ c_, real_4 _p_ d_, int_4 _p_ n_, int_4 _p_ nbdcnd_, real_4 _p_ bdc_, real_4 _p_ bdd_, real_4 _p_ elmbda_, real_4
869 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_)
870 { // ** body not listed **
1071 }
1072
1073 int_4 _hstcsp (int_4 _p_ intl_, real_4 _p_ a_, real_4 _p_ b_, int_4 _p_ m_, int_4 _p_ mbdcnd_, real_4 _p_ bda_, real_4
1074 _p_ bdb_, real_4 _p_ c_, real_4 _p_ d_, int_4 _p_ n_, int_4 _p_ nbdcnd_, real_4 _p_ bdc_, real_4 _p_ bdd_, real_4 _p_
1075 elmbda_, real_4 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_)
1076 { // ** body not listed **
1151 }
1152
1153 int_4 _hstcyl (real_4 _p_ a_, real_4 _p_ b_, int_4 _p_ m_, int_4 _p_ mbdcnd_, real_4 _p_ bda_, real_4 _p_ bdb_, real_4
1154 _p_ c_, real_4 _p_ d_, int_4 _p_ n_, int_4 _p_ nbdcnd_, real_4 _p_ bdc_, real_4 _p_ bdd_, real_4 _p_ elmbda_, real_4
1155 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_)
1156 { // ** body not listed **
1372 }
1373
1374 int_4 _hstplr (real_4 _p_ a_, real_4 _p_ b_, int_4 _p_ m_, int_4 _p_ mbdcnd_, real_4 _p_ bda_, real_4 _p_ bdb_, real_4
1375 _p_ c_, real_4 _p_ d_, int_4 _p_ n_, int_4 _p_ nbdcnd_, real_4 _p_ bdc_, real_4 _p_ bdd_, real_4 _p_ elmbda_, real_4
1376 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_)
1377 { // ** body not listed **
1634 }
1635
1636 int_4 _hstssp (real_4 _p_ a_, real_4 _p_ b_, int_4 _p_ m_, int_4 _p_ mbdcnd_, real_4 _p_ bda_, real_4 _p_ bdb_, real_4
1637 _p_ c_, real_4 _p_ d_, int_4 _p_ n_, int_4 _p_ nbdcnd_, real_4 _p_ bdc_, real_4 _p_ bdd_, real_4 _p_ elmbda_, real_4
1638 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_)
1639 { // ** body not listed **
1972 }
1973
1974 int_4 _hw3crt (real_4 _p_ xs_, real_4 _p_ xf_, int_4 _p_ l_, int_4 _p_ lbdcnd_, real_4 _p_ bdxs_, real_4 _p_ bdxf_,
1975 real_4 _p_ ys_, real_4 _p_ yf_, int_4 _p_ m_, int_4 _p_ mbdcnd_, real_4 _p_ bdys_, real_4 _p_ bdyf_, real_4 _p_ zs_,
1976 real_4 _p_ zf_, int_4 _p_ n_, int_4 _p_ nbdcnd_, real_4 _p_ bdzs_, real_4 _p_ bdzf_, real_4 _p_ elmbda_, int_4 _p_
1977 ldimf_, int_4 _p_ mdimf_, real_4 _p_ f_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_)
1978 { // ** body not listed **
2436 }
2437
2438 int_4 _hwscrt (real_4 _p_ a_, real_4 _p_ b_, int_4 _p_ m_, int_4 _p_ mbdcnd_, real_4 _p_ bda_, real_4 _p_ bdb_, real_4
2439 _p_ c_, real_4 _p_ d_, int_4 _p_ n_, int_4 _p_ nbdcnd_, real_4 _p_ bdc_, real_4 _p_ bdd_, real_4 _p_ elmbda_, real_4
2440 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_)
2441 { // ** body not listed **
2706 }
2707
2708 int_4 _hwscsp (int_4 _p_ intl_, real_4 _p_ ts_, real_4 _p_ tf_, int_4 _p_ m_, int_4 _p_ mbdcnd_, real_4 _p_ bdts_,
2709 real_4 _p_ bdtf_, real_4 _p_ rs_, real_4 _p_ rf_, int_4 _p_ n_, int_4 _p_ nbdcnd_, real_4 _p_ bdrs_, real_4 _p_ bdrf_,
2710 real_4 _p_ elmbda_, real_4 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_)
2711 { // ** body not listed **
2825 }
2826
2827 int_4 _hwscyl (real_4 _p_ a_, real_4 _p_ b_, int_4 _p_ m_, int_4 _p_ mbdcnd_, real_4 _p_ bda_, real_4 _p_ bdb_, real_4
2828 _p_ c_, real_4 _p_ d_, int_4 _p_ n_, int_4 _p_ nbdcnd_, real_4 _p_ bdc_, real_4 _p_ bdd_, real_4 _p_ elmbda_, real_4
2829 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_)
2830 { // ** body not listed **
3146 }
3147
3148 int_4 _hwsplr (real_4 _p_ a_, real_4 _p_ b_, int_4 _p_ m_, int_4 _p_ mbdcnd_, real_4 _p_ bda_, real_4 _p_ bdb_, real_4
3149 _p_ c_, real_4 _p_ d_, int_4 _p_ n_, int_4 _p_ nbdcnd_, real_4 _p_ bdc_, real_4 _p_ bdd_, real_4 _p_ elmbda_, real_4
3150 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_)
3151 { // ** body not listed **
3523 }
3524
3525 int_4 _hwsssp (real_4 _p_ ts_, real_4 _p_ tf_, int_4 _p_ m_, int_4 _p_ mbdcnd_, real_4 _p_ bdts_, real_4 _p_ bdtf_,
3526 real_4 _p_ ps_, real_4 _p_ pf_, int_4 _p_ n_, int_4 _p_ nbdcnd_, real_4 _p_ bdps_, real_4 _p_ bdpf_, real_4 _p_ elmbda_
3527 , real_4 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_)
3528 { // ** body not listed **
3589 }
3590
3591 int_4 _pois3d (int_4 _p_ lperod_, int_4 _p_ l_, real_4 _p_ c1_, int_4 _p_ mperod_, int_4 _p_ m_, real_4 _p_ c2_, int_4
3592 _p_ nperod_, int_4 _p_ n_, real_4 _p_ a_, real_4 _p_ b_, real_4 _p_ c_, int_4 _p_ ldimf_, int_4 _p_ mdimf_, real_4 _p_
3593 f_, int_4 _p_ ierror_, real_4 _p_ w_)
3594 { // ** body not listed **
3755 }
3756
3757 int_4 _poistg (int_4 _p_ nperod_, int_4 _p_ n_, int_4 _p_ mperod_, int_4 _p_ m_, real_4 _p_ a_, real_4 _p_ b_, real_4
3758 _p_ c_, int_4 _p_ idimy_, real_4 _p_ y_, int_4 _p_ ierror_, real_4 _p_ w_)
3759 { // ** body not listed **
3946 }
3947
3948 int_4 _sepeli (int_4 _p_ intl_, int_4 _p_ iorder_, real_4 _p_ a_, real_4 _p_ b_, int_4 _p_ m_, int_4 _p_ mbdcnd_,
3949 real_4 _p_ bda_, real_4 _p_ alpha_, real_4 _p_ bdb_, real_4 _p_ beta_, real_4 _p_ c_, real_4 _p_ d_, int_4 _p_ n_,
3950 int_4 _p_ nbdcnd_, real_4 _p_ bdc_, real_4 _p_ gama_, real_4 _p_ bdd_, real_4 _p_ xnu_, real_4 (*_cofx)(), real_4
3951 (*_cofy)(), real_4 _p_ grhs_, real_4 _p_ usol_, int_4 _p_ idmn_, real_4 _p_ w_, real_4 _p_ pertrb_, int_4 _p_ ierror_)
3952 { // ** body not listed **
4000 }
4001
4002 int_4 _sepx4 (int_4 _p_ iorder_, real_4 _p_ a_, real_4 _p_ b_, int_4 _p_ m_, int_4 _p_ mbdcnd_, real_4 _p_ bda_, real_4
4003 _p_ alpha_, real_4 _p_ bdb_, real_4 _p_ beta_, real_4 _p_ c_, real_4 _p_ d_, int_4 _p_ n_, int_4 _p_ nbdcnd_, real_4
4004 _p_ bdc_, real_4 _p_ bdd_, real_4 (*_cofx)(), real_4 _p_ grhs_, real_4 _p_ usol_, int_4 _p_ idmn_, real_4 _p_ w_,
4005 real_4 _p_ pertrb_, int_4 _p_ ierror_)
4006 { // ** body not listed **
4049 }
4050
© 2002-2025 J.M. van der Veer (jmvdveer@xs4all.nl)
|