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)