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.1.7
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 static struct {
100 int_4 npp_, k_, nm_, ncmplx_, ik_;
101 real_4 eps_, cnv_;
102 } cblkt_;
103 static struct {
104 int_4 npp_, k_, nm_, ncmplx_, ik_;
105 real_4 eps_, cnv_;
106 } ccblk_;
108 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_
109 ierror_, real_4 _p_ w_);
111 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_
112 y_, int_4 _p_ ierror_, real_4 _p_ w_);
114 _p_ b_, complex_8 _p_ c_, int_4 _p_ idimy_, complex_8 _p_ y_, int_4 _p_ ierror_, complex_8 _p_ w_);
116 , real_4 _p_ c_, int_4 _p_ idimy_, real_4 _p_ y_, int_4 _p_ ierror_, real_4 _p_ w_);
118 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_
119 elmbda_, real_4 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_);
121 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_,
122 real_4 _p_ elmbda_, real_4 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_);
124 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_
125 elmbda_, real_4 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_);
127 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_
128 elmbda_, real_4 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_);
130 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_
131 elmbda_, real_4 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_);
133 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_
134 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_
135 ldimf_, int_4 _p_ mdimf_, real_4 _p_ f_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_);
137 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_
138 elmbda_, real_4 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_);
140 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_
141 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_);
143 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_
144 elmbda_, real_4 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_);
146 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_
147 elmbda_, real_4 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_);
149 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_
150 elmbda_, real_4 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_);
152 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_,
153 real_4 _p_ f_, int_4 _p_ ierror_, real_4 _p_ w_);
155 , real_4 _p_ c_, int_4 _p_ idimy_, real_4 _p_ y_, int_4 _p_ ierror_, real_4 _p_ w_);
157 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_
158 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
159 (*_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_);
161 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_
162 nbdcnd_, real_4 _p_ bdc_, real_4 _p_ bdd_, real_4 (*_cofx)(), real_4 _p_ grhs_, real_4 _p_ usol_, int_4 _p_ idmn_,
163 real_4 _p_ w_, real_4 _p_ pertrb_, int_4 _p_ ierror_);
164 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_
165 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_,
166 real_4 _p_ w_)
167 { // ** body not listed **
306 }
307 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_
308 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
309 _p_ ierror_, real_4 _p_ w_)
310 { // ** body not listed **
450 }
451 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_,
452 complex_8 _p_ c_, int_4 _p_ idimy_, complex_8 _p_ y_, int_4 _p_ ierror_, complex_8 _p_ w_)
453 { // ** body not listed **
655 }
656 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
657 _p_ c_, int_4 _p_ idimy_, real_4 _p_ y_, int_4 _p_ ierror_, real_4 _p_ w_)
658 { // ** body not listed **
861 }
862 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
863 _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
864 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_)
865 { // ** body not listed **
1066 }
1067 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
1068 _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_
1069 elmbda_, real_4 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_)
1070 { // ** body not listed **
1145 }
1146 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
1147 _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
1148 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_)
1149 { // ** body not listed **
1365 }
1366 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
1367 _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
1368 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_)
1369 { // ** body not listed **
1626 }
1627 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
1628 _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
1629 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_)
1630 { // ** body not listed **
1963 }
1964 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_,
1965 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_,
1966 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_
1967 ldimf_, int_4 _p_ mdimf_, real_4 _p_ f_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_)
1968 { // ** body not listed **
2426 }
2427 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
2428 _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
2429 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_)
2430 { // ** body not listed **
2695 }
2696 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_,
2697 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_,
2698 real_4 _p_ elmbda_, real_4 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_)
2699 { // ** body not listed **
2813 }
2814 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
2815 _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
2816 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_)
2817 { // ** body not listed **
3133 }
3134 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
3135 _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
3136 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_)
3137 { // ** body not listed **
3509 }
3510 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_,
3511 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_
3512 , real_4 _p_ f_, int_4 _p_ idimf_, real_4 _p_ pertrb_, int_4 _p_ ierror_, real_4 _p_ w_)
3513 { // ** body not listed **
3574 }
3575 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
3576 _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_
3577 f_, int_4 _p_ ierror_, real_4 _p_ w_)
3578 { // ** body not listed **
3739 }
3740 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
3741 _p_ c_, int_4 _p_ idimy_, real_4 _p_ y_, int_4 _p_ ierror_, real_4 _p_ w_)
3742 { // ** body not listed **
3929 }
3930 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_,
3931 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_,
3932 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
3933 (*_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_)
3934 { // ** body not listed **
3982 }
3983 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
3984 _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
3985 _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_,
3986 real_4 _p_ pertrb_, int_4 _p_ ierror_)
3987 { // ** body not listed **
4030 }
© 2002-2025 J.M. van der Veer (jmvdveer@xs4all.nl)
|