text: /* File: specfunmodule.c
   * This file is auto-generated with f2py (version:1.21.2).
   * f2py is a Fortran to Python Interface Generator (FPIG), Second Edition,
   * written by Pearu Peterson <pearu@cens.ioc.ee>.
   * Generation date: Thu Nov  4 16:35:04 2021
   * Do not edit this file directly unless you know what you are doing!!!
   */
  
  #ifdef __cplusplus
  extern "C" {
  #endif
  
  /*********************** See f2py2e/cfuncs.py: includes ***********************/
  #include "Python.h"
  #include <stdarg.h>
  #include "fortranobject.h"
  #include <math.h>
  
  /**************** See f2py2e/rules.py: mod_rules['modulebody'] ****************/
  static PyObject *specfun_error;
  static PyObject *specfun_module;
  
  /*********************** See f2py2e/cfuncs.py: typedefs ***********************/
  typedef struct {double r,i;} complex_double;
  
  /****************** See f2py2e/cfuncs.py: typedefs_generated ******************/
  /*need_typedefs_generated*/
  
  /********************** See f2py2e/cfuncs.py: cppmacros **********************/
  #if defined(PREPEND_FORTRAN)
  #if defined(NO_APPEND_FORTRAN)
  #if defined(UPPERCASE_FORTRAN)
  #define F_FUNC(f,F) _##F
  #else
  #define F_FUNC(f,F) _##f
  #endif
  #else
  #if defined(UPPERCASE_FORTRAN)
  #define F_FUNC(f,F) _##F##_
  #else
  #define F_FUNC(f,F) _##f##_
  #endif
  #endif
  #else
  #if defined(NO_APPEND_FORTRAN)
  #if defined(UPPERCASE_FORTRAN)
  #define F_FUNC(f,F) F
  #else
  #define F_FUNC(f,F) f
  #endif
  #else
  #if defined(UPPERCASE_FORTRAN)
  #define F_FUNC(f,F) F##_
  #else
  #define F_FUNC(f,F) f##_
  #endif
  #endif
  #endif
  #if defined(UNDERSCORE_G77)
  #define F_FUNC_US(f,F) F_FUNC(f##_,F##_)
  #else
  #define F_FUNC_US(f,F) F_FUNC(f,F)
  #endif
  
  #define pyobj_from_complex_double1(v) (PyComplex_FromDoubles(v.r,v.i))
  #define rank(var) var ## _Rank
  #define shape(var,dim) var ## _Dims[dim]
  #define old_rank(var) (PyArray_NDIM((PyArrayObject *)(capi_ ## var ## _tmp)))
  #define old_shape(var,dim) PyArray_DIM(((PyArrayObject *)(capi_ ## var ## _tmp)),dim)
  #define fshape(var,dim) shape(var,rank(var)-dim-1)
  #define len(var) shape(var,0)
  #define flen(var) fshape(var,0)
  #define old_size(var) PyArray_SIZE((PyArrayObject *)(capi_ ## var ## _tmp))
  /* #define index(i) capi_i ## i */
  #define slen(var) capi_ ## var ## _len
  #define size(var, ...) f2py_size((PyArrayObject *)(capi_ ## var ## _tmp), ## __VA_ARGS__, -1)
  
  #define CHECKSCALAR(check,tcheck,name,show,var)\
      if (!(check)) {\
          char errstring[256];\
          sprintf(errstring, "%s: "show, "("tcheck") failed for "name, var);\
          PyErr_SetString(specfun_error,errstring);\
          /*goto capi_fail;*/\
      } else 
  #ifdef DEBUGCFUNCS
  #define CFUNCSMESS(mess) fprintf(stderr,"debug-capi:"mess);
  #define CFUNCSMESSPY(mess,obj) CFUNCSMESS(mess) \
      PyObject_Print((PyObject *)obj,stderr,Py_PRINT_RAW);\
      fprintf(stderr,"\n");
  #else
  #define CFUNCSMESS(mess)
  #define CFUNCSMESSPY(mess,obj)
  #endif
  
  #ifndef max
  #define max(a,b) ((a > b) ? (a) : (b))
  #endif
  #ifndef min
  #define min(a,b) ((a < b) ? (a) : (b))
  #endif
  #ifndef MAX
  #define MAX(a,b) ((a > b) ? (a) : (b))
  #endif
  #ifndef MIN
  #define MIN(a,b) ((a < b) ? (a) : (b))
  #endif
  
  
  /************************ See f2py2e/cfuncs.py: cfuncs ************************/
  static int f2py_size(PyArrayObject* var, ...)
  {
    npy_int sz = 0;
    npy_int dim;
    npy_int rank;
    va_list argp;
    va_start(argp, var);
    dim = va_arg(argp, npy_int);
    if (dim==-1)
      {
        sz = PyArray_SIZE(var);
      }
    else
      {
        rank = PyArray_NDIM(var);
        if (dim>=1 && dim<=rank)
          sz = PyArray_DIM(var, dim-1);
        else
          fprintf(stderr, "f2py_size: 2nd argument value=%d fails to satisfy 1<=value<=%d. Result will be 0.\n", dim, rank);
      }
    va_end(argp);
    return sz;
  }
  
  static int
  int_from_pyobj(int* v, PyObject *obj, const char *errmess)
  {
      PyObject* tmp = NULL;
  
      if (PyLong_Check(obj)) {
          *v = Npy__PyLong_AsInt(obj);
          return !(*v == -1 && PyErr_Occurred());
      }
  
      tmp = PyNumber_Long(obj);
      if (tmp) {
          *v = Npy__PyLong_AsInt(tmp);
          Py_DECREF(tmp);
          return !(*v == -1 && PyErr_Occurred());
      }
  
      if (PyComplex_Check(obj))
          tmp = PyObject_GetAttrString(obj,"real");
      else if (PyBytes_Check(obj) || PyUnicode_Check(obj))
          /*pass*/;
      else if (PySequence_Check(obj))
          tmp = PySequence_GetItem(obj, 0);
      if (tmp) {
          PyErr_Clear();
          if (int_from_pyobj(v, tmp, errmess)) {
              Py_DECREF(tmp);
              return 1;
          }
          Py_DECREF(tmp);
      }
      {
          PyObject* err = PyErr_Occurred();
          if (err == NULL) {
              err = specfun_error;
          }
          PyErr_SetString(err, errmess);
      }
      return 0;
  }
  
  static int
  complex_double_from_pyobj(complex_double* v, PyObject *obj, const char *errmess) {
      Py_complex c;
      if (PyComplex_Check(obj)) {
          c = PyComplex_AsCComplex(obj);
          (*v).r = c.real;
          (*v).i = c.imag;
          return 1;
      }
      if (PyArray_IsScalar(obj, ComplexFloating)) {
          if (PyArray_IsScalar(obj, CFloat)) {
              npy_cfloat new;
              PyArray_ScalarAsCtype(obj, &new);
              (*v).r = (double)new.real;
              (*v).i = (double)new.imag;
          }
          else if (PyArray_IsScalar(obj, CLongDouble)) {
              npy_clongdouble new;
              PyArray_ScalarAsCtype(obj, &new);
              (*v).r = (double)new.real;
              (*v).i = (double)new.imag;
          }
          else { /* if (PyArray_IsScalar(obj, CDouble)) */
              PyArray_ScalarAsCtype(obj, v);
          }
          return 1;
      }
      if (PyArray_CheckScalar(obj)) { /* 0-dim array or still array scalar */
          PyObject *arr;
          if (PyArray_Check(obj)) {
              arr = PyArray_Cast((PyArrayObject *)obj, NPY_CDOUBLE);
          }
          else {
              arr = PyArray_FromScalar(obj, PyArray_DescrFromType(NPY_CDOUBLE));
          }
          if (arr == NULL) {
              return 0;
          }
          (*v).r = ((npy_cdouble *)PyArray_DATA(arr))->real;
          (*v).i = ((npy_cdouble *)PyArray_DATA(arr))->imag;
          Py_DECREF(arr);
          return 1;
      }
      /* Python does not provide PyNumber_Complex function :-( */
      (*v).i = 0.0;
      if (PyFloat_Check(obj)) {
          (*v).r = PyFloat_AsDouble(obj);
          return !((*v).r == -1.0 && PyErr_Occurred());
      }
      if (PyLong_Check(obj)) {
          (*v).r = PyLong_AsDouble(obj);
          return !((*v).r == -1.0 && PyErr_Occurred());
      }
      if (PySequence_Check(obj) && !(PyBytes_Check(obj) || PyUnicode_Check(obj))) {
          PyObject *tmp = PySequence_GetItem(obj,0);
          if (tmp) {
              if (complex_double_from_pyobj(v,tmp,errmess)) {
                  Py_DECREF(tmp);
                  return 1;
              }
              Py_DECREF(tmp);
          }
      }
      {
          PyObject* err = PyErr_Occurred();
          if (err==NULL)
              err = PyExc_TypeError;
          PyErr_SetString(err,errmess);
      }
      return 0;
  }
  
  static int
  double_from_pyobj(double* v, PyObject *obj, const char *errmess)
  {
      PyObject* tmp = NULL;
      if (PyFloat_Check(obj)) {
          *v = PyFloat_AsDouble(obj);
          return !(*v == -1.0 && PyErr_Occurred());
      }
  
      tmp = PyNumber_Float(obj);
      if (tmp) {
          *v = PyFloat_AsDouble(tmp);
          Py_DECREF(tmp);
          return !(*v == -1.0 && PyErr_Occurred());
      }
      if (PyComplex_Check(obj))
          tmp = PyObject_GetAttrString(obj,"real");
      else if (PyBytes_Check(obj) || PyUnicode_Check(obj))
          /*pass*/;
      else if (PySequence_Check(obj))
          tmp = PySequence_GetItem(obj,0);
      if (tmp) {
          PyErr_Clear();
          if (double_from_pyobj(v,tmp,errmess)) {Py_DECREF(tmp); return 1;}
          Py_DECREF(tmp);
      }
      {
          PyObject* err = PyErr_Occurred();
          if (err==NULL) err = specfun_error;
          PyErr_SetString(err,errmess);
      }
      return 0;
  }
  
  
  /********************* See f2py2e/cfuncs.py: userincludes *********************/
  /*need_userincludes*/
  
  /********************* See f2py2e/capi_rules.py: usercode *********************/
  
  
  /* See f2py2e/rules.py */
  extern void F_FUNC(clqmn,CLQMN)(int*,int*,int*,double*,double*,complex_double*,complex_double* );
  extern void F_FUNC(lqmn,LQMN)(int*,int*,int*,double*,double*,double*);
  extern void F_FUNC(clpmn,CLPMN)(int*,int*,int*,double*,double*,int*,complex_double*,complex_double*);
  extern void F_FUNC(jdzo,JDZO)(int*,int*,int*,int*,double*);
  extern void F_FUNC(bernob,BERNOB)(int*,double*);
  extern void F_FUNC(clqn,CLQN)(int*,double*,double*,complex_double*,complex_double* );
  extern void F_FUNC(airyzo,AIRYZO)(int*,int*,double*,double*,double*,double*);
  extern void F_FUNC(eulerb,EULERB)(int*,double*);
  extern void F_FUNC(lqnb,LQNB)(int*,double*,double*,double*);
  extern void F_FUNC(lamv,LAMV)(double*,double*,double*,double*,double*);
  extern void F_FUNC(pbdv,PBDV)(double*,double*,double*,double*,double*,double*);
  extern void F_FUNC(cerzo,CERZO)(int*,complex_double*);
  extern void F_FUNC(lamn,LAMN)(int*,double*,int*,double*,double*);
  extern void F_FUNC(clpn,CLPN)(int*,double*,double*,complex_double*,complex_double* );
  extern void F_FUNC(lpmn,LPMN)(int*,int*,int*,double*,double*,double*);
  extern void F_FUNC(fcszo,FCSZO)(int*,int*,complex_double*);
  extern void F_FUNC(cpbdn,CPBDN)(int*,complex_double*,complex_double*,complex_double*);
  extern void F_FUNC(lpn,LPN)(int*,double*,double*,double*);
  extern void F_FUNC(fcoef,FCOEF)(int*,int*,double*,double*,double*);
  extern void F_FUNC(rcty,RCTY)(int*,double*,int*,double*,double*);
  extern void F_FUNC(cyzo,CYZO)(int*,int*,int*,complex_double*,complex_double*);
  extern void F_FUNC(klvnzo,KLVNZO)(int*,int*,double*);
  extern void F_FUNC(jyzo,JYZO)(int*,int*,double*,double*,double*,double*);
  extern void F_FUNC(rctj,RCTJ)(int*,double*,int*,double*,double*);
  extern void F_FUNC(segv,SEGV)(int*,int*,double*,int*,double*,double*);
  /*eof externroutines*/
  
  /******************** See f2py2e/capi_rules.py: usercode1 ********************/
  
  
  /******************* See f2py2e/cb_rules.py: buildcallback *******************/
  /*need_callbacks*/
  
  /*********************** See f2py2e/rules.py: buildapi ***********************/
  
  /*********************************** clqmn ***********************************/
  static char doc_f2py_rout_specfun_clqmn[] = "\
  cqm,cqd = clqmn(m,n,z)\n\nWrapper for ``clqmn``.\
  \n\nParameters\n----------\n"
  "m : input int\n"
  "n : input int\n"
  "z : input complex\n"
  "\nReturns\n-------\n"
  "cqm : rank-2 array('D') with bounds (mm + 1,n + 1)\n"
  "cqd : rank-2 array('D') with bounds (mm + 1,n + 1)";
  /* extern void F_FUNC(clqmn,CLQMN)(int*,int*,int*,double*,double*,complex_double*,complex_double* ); */
  static PyObject *f2py_rout_specfun_clqmn(const PyObject *capi_self,
                             PyObject *capi_args,
                             PyObject *capi_keywds,
                             void (*f2py_func)(int*,int*,int*,double*,double*,complex_double*,complex_double* )) {
      PyObject * volatile capi_buildvalue = NULL;
      volatile int f2py_success = 1;
  /*decl*/
  
    int mm = 0;
    int m = 0;
    PyObject *m_capi = Py_None;
    int n = 0;
    PyObject *n_capi = Py_None;
    complex_double z;
    PyObject *z_capi = Py_None;
    complex_double *cqm = NULL;
    npy_intp cqm_Dims[2] = {-1, -1};
    const int cqm_Rank = 2;
    PyArrayObject *capi_cqm_tmp = NULL;
    int capi_cqm_intent = 0;
    complex_double *cqd = NULL;
    npy_intp cqd_Dims[2] = {-1, -1};
    const int cqd_Rank = 2;
    PyArrayObject *capi_cqd_tmp = NULL;
    int capi_cqd_intent = 0;
      static char *capi_kwlist[] = {"m","n","z",NULL};
  
  /*routdebugenter*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_clock();
  #endif
      if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
          "OOO|:specfun.clqmn",\
          capi_kwlist,&m_capi,&n_capi,&z_capi))
          return NULL;
  /*frompyobj*/
    /* Processing variable m */
      f2py_success = int_from_pyobj(&m,m_capi,"specfun.clqmn() 1st argument (m) can't be converted to int");
    if (f2py_success) {
    CHECKSCALAR(m>=1,"m>=1","1st argument m","clqmn:m=%d",m) {
    /* Processing variable n */
      f2py_success = int_from_pyobj(&n,n_capi,"specfun.clqmn() 2nd argument (n) can't be converted to int");
    if (f2py_success) {
    CHECKSCALAR(n>=1,"n>=1","2nd argument n","clqmn:n=%d",n) {
    /* Processing variable z */
      f2py_success = complex_double_from_pyobj(&z,z_capi,"specfun.clqmn() 3rd argument (z) can't be converted to complex_double");
    if (f2py_success) {
    /* Processing variable mm */
    mm = m;
    /* Processing variable cqm */
    cqm_Dims[0]=mm + 1,cqm_Dims[1]=n + 1;
    capi_cqm_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_cqm_tmp = array_from_pyobj(NPY_CDOUBLE,cqm_Dims,cqm_Rank,capi_cqm_intent,Py_None);
    if (capi_cqm_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `cqm' of specfun.clqmn to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      cqm = (complex_double *)(PyArray_DATA(capi_cqm_tmp));
  
    /* Processing variable cqd */
    cqd_Dims[0]=mm + 1,cqd_Dims[1]=n + 1;
    capi_cqd_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_cqd_tmp = array_from_pyobj(NPY_CDOUBLE,cqd_Dims,cqd_Rank,capi_cqd_intent,Py_None);
    if (capi_cqd_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `cqd' of specfun.clqmn to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      cqd = (complex_double *)(PyArray_DATA(capi_cqd_tmp));
  
  /*end of frompyobj*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_call_clock();
  #endif
  /*callfortranroutine*/
          (*f2py_func)(&mm,&m,&n,&(z.r),&(z.i),cqm,cqd) ;
          /*(*f2py_func)(&mm,&m,&n,&z,cqm,cqd);*/
  if (PyErr_Occurred())
    f2py_success = 0;
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_call_clock();
  #endif
  /*end of callfortranroutine*/
          if (f2py_success) {
  /*pyobjfrom*/
  /*end of pyobjfrom*/
          CFUNCSMESS("Building return value.\n");
          capi_buildvalue = Py_BuildValue("NN",capi_cqm_tmp,capi_cqd_tmp);
  /*closepyobjfrom*/
  /*end of closepyobjfrom*/
          } /*if (f2py_success) after callfortranroutine*/
  /*cleanupfrompyobj*/
    }  /*if (capi_cqd_tmp == NULL) ... else of cqd*/
    /* End of cleaning variable cqd */
    }  /*if (capi_cqm_tmp == NULL) ... else of cqm*/
    /* End of cleaning variable cqm */
    /* End of cleaning variable mm */
    }  /*if (f2py_success) of z frompyobj*/
    /* End of cleaning variable z */
    } /*CHECKSCALAR(n>=1)*/
    } /*if (f2py_success) of n*/
    /* End of cleaning variable n */
    } /*CHECKSCALAR(m>=1)*/
    } /*if (f2py_success) of m*/
    /* End of cleaning variable m */
  /*end of cleanupfrompyobj*/
      if (capi_buildvalue == NULL) {
  /*routdebugfailure*/
      } else {
  /*routdebugleave*/
      }
      CFUNCSMESS("Freeing memory.\n");
  /*freemem*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_clock();
  #endif
      return capi_buildvalue;
  }
  /******************************** end of clqmn ********************************/
  
  /************************************ lqmn ************************************/
  static char doc_f2py_rout_specfun_lqmn[] = "\
  qm,qd = lqmn(m,n,x)\n\nWrapper for ``lqmn``.\
  \n\nParameters\n----------\n"
  "m : input int\n"
  "n : input int\n"
  "x : input float\n"
  "\nReturns\n-------\n"
  "qm : rank-2 array('d') with bounds (mm + 1,n + 1)\n"
  "qd : rank-2 array('d') with bounds (mm + 1,n + 1)";
  /* extern void F_FUNC(lqmn,LQMN)(int*,int*,int*,double*,double*,double*); */
  static PyObject *f2py_rout_specfun_lqmn(const PyObject *capi_self,
                             PyObject *capi_args,
                             PyObject *capi_keywds,
                             void (*f2py_func)(int*,int*,int*,double*,double*,double*)) {
      PyObject * volatile capi_buildvalue = NULL;
      volatile int f2py_success = 1;
  /*decl*/
  
    int mm = 0;
    int m = 0;
    PyObject *m_capi = Py_None;
    int n = 0;
    PyObject *n_capi = Py_None;
    double x = 0;
    PyObject *x_capi = Py_None;
    double *qm = NULL;
    npy_intp qm_Dims[2] = {-1, -1};
    const int qm_Rank = 2;
    PyArrayObject *capi_qm_tmp = NULL;
    int capi_qm_intent = 0;
    double *qd = NULL;
    npy_intp qd_Dims[2] = {-1, -1};
    const int qd_Rank = 2;
    PyArrayObject *capi_qd_tmp = NULL;
    int capi_qd_intent = 0;
      static char *capi_kwlist[] = {"m","n","x",NULL};
  
  /*routdebugenter*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_clock();
  #endif
      if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
          "OOO|:specfun.lqmn",\
          capi_kwlist,&m_capi,&n_capi,&x_capi))
          return NULL;
  /*frompyobj*/
    /* Processing variable m */
      f2py_success = int_from_pyobj(&m,m_capi,"specfun.lqmn() 1st argument (m) can't be converted to int");
    if (f2py_success) {
    CHECKSCALAR(m>=1,"m>=1","1st argument m","lqmn:m=%d",m) {
    /* Processing variable n */
      f2py_success = int_from_pyobj(&n,n_capi,"specfun.lqmn() 2nd argument (n) can't be converted to int");
    if (f2py_success) {
    CHECKSCALAR(n>=1,"n>=1","2nd argument n","lqmn:n=%d",n) {
    /* Processing variable x */
      f2py_success = double_from_pyobj(&x,x_capi,"specfun.lqmn() 3rd argument (x) can't be converted to double");
    if (f2py_success) {
    /* Processing variable mm */
    mm = m;
    /* Processing variable qm */
    qm_Dims[0]=mm + 1,qm_Dims[1]=n + 1;
    capi_qm_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_qm_tmp = array_from_pyobj(NPY_DOUBLE,qm_Dims,qm_Rank,capi_qm_intent,Py_None);
    if (capi_qm_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `qm' of specfun.lqmn to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      qm = (double *)(PyArray_DATA(capi_qm_tmp));
  
    /* Processing variable qd */
    qd_Dims[0]=mm + 1,qd_Dims[1]=n + 1;
    capi_qd_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_qd_tmp = array_from_pyobj(NPY_DOUBLE,qd_Dims,qd_Rank,capi_qd_intent,Py_None);
    if (capi_qd_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `qd' of specfun.lqmn to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      qd = (double *)(PyArray_DATA(capi_qd_tmp));
  
  /*end of frompyobj*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_call_clock();
  #endif
  /*callfortranroutine*/
          (*f2py_func)(&mm,&m,&n,&x,qm,qd);
  if (PyErr_Occurred())
    f2py_success = 0;
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_call_clock();
  #endif
  /*end of callfortranroutine*/
          if (f2py_success) {
  /*pyobjfrom*/
  /*end of pyobjfrom*/
          CFUNCSMESS("Building return value.\n");
          capi_buildvalue = Py_BuildValue("NN",capi_qm_tmp,capi_qd_tmp);
  /*closepyobjfrom*/
  /*end of closepyobjfrom*/
          } /*if (f2py_success) after callfortranroutine*/
  /*cleanupfrompyobj*/
    }  /*if (capi_qd_tmp == NULL) ... else of qd*/
    /* End of cleaning variable qd */
    }  /*if (capi_qm_tmp == NULL) ... else of qm*/
    /* End of cleaning variable qm */
    /* End of cleaning variable mm */
    } /*if (f2py_success) of x*/
    /* End of cleaning variable x */
    } /*CHECKSCALAR(n>=1)*/
    } /*if (f2py_success) of n*/
    /* End of cleaning variable n */
    } /*CHECKSCALAR(m>=1)*/
    } /*if (f2py_success) of m*/
    /* End of cleaning variable m */
  /*end of cleanupfrompyobj*/
      if (capi_buildvalue == NULL) {
  /*routdebugfailure*/
      } else {
  /*routdebugleave*/
      }
      CFUNCSMESS("Freeing memory.\n");
  /*freemem*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_clock();
  #endif
      return capi_buildvalue;
  }
  /******************************** end of lqmn ********************************/
  
  /*********************************** clpmn ***********************************/
  static char doc_f2py_rout_specfun_clpmn[] = "\
  cpm,cpd = clpmn(m,n,x,y,ntype)\n\nWrapper for ``clpmn``.\
  \n\nParameters\n----------\n"
  "m : input int\n"
  "n : input int\n"
  "x : input float\n"
  "y : input float\n"
  "ntype : input int\n"
  "\nReturns\n-------\n"
  "cpm : rank-2 array('D') with bounds (m + 1,n + 1)\n"
  "cpd : rank-2 array('D') with bounds (m + 1,n + 1)";
  /* extern void F_FUNC(clpmn,CLPMN)(int*,int*,int*,double*,double*,int*,complex_double*,complex_double*); */
  static PyObject *f2py_rout_specfun_clpmn(const PyObject *capi_self,
                             PyObject *capi_args,
                             PyObject *capi_keywds,
                             void (*f2py_func)(int*,int*,int*,double*,double*,int*,complex_double*,complex_double*)) {
      PyObject * volatile capi_buildvalue = NULL;
      volatile int f2py_success = 1;
  /*decl*/
  
    int mm = 0;
    int m = 0;
    PyObject *m_capi = Py_None;
    int n = 0;
    PyObject *n_capi = Py_None;
    double x = 0;
    PyObject *x_capi = Py_None;
    double y = 0;
    PyObject *y_capi = Py_None;
    int ntype = 0;
    PyObject *ntype_capi = Py_None;
    complex_double *cpm = NULL;
    npy_intp cpm_Dims[2] = {-1, -1};
    const int cpm_Rank = 2;
    PyArrayObject *capi_cpm_tmp = NULL;
    int capi_cpm_intent = 0;
    complex_double *cpd = NULL;
    npy_intp cpd_Dims[2] = {-1, -1};
    const int cpd_Rank = 2;
    PyArrayObject *capi_cpd_tmp = NULL;
    int capi_cpd_intent = 0;
      static char *capi_kwlist[] = {"m","n","x","y","ntype",NULL};
  
  /*routdebugenter*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_clock();
  #endif
      if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
          "OOOOO|:specfun.clpmn",\
          capi_kwlist,&m_capi,&n_capi,&x_capi,&y_capi,&ntype_capi))
          return NULL;
  /*frompyobj*/
    /* Processing variable m */
      f2py_success = int_from_pyobj(&m,m_capi,"specfun.clpmn() 1st argument (m) can't be converted to int");
    if (f2py_success) {
    CHECKSCALAR(m>=0,"m>=0","1st argument m","clpmn:m=%d",m) {
    /* Processing variable n */
      f2py_success = int_from_pyobj(&n,n_capi,"specfun.clpmn() 2nd argument (n) can't be converted to int");
    if (f2py_success) {
    CHECKSCALAR(n>=0,"n>=0","2nd argument n","clpmn:n=%d",n) {
    /* Processing variable x */
      f2py_success = double_from_pyobj(&x,x_capi,"specfun.clpmn() 3rd argument (x) can't be converted to double");
    if (f2py_success) {
    /* Processing variable y */
      f2py_success = double_from_pyobj(&y,y_capi,"specfun.clpmn() 4th argument (y) can't be converted to double");
    if (f2py_success) {
    /* Processing variable ntype */
      f2py_success = int_from_pyobj(&ntype,ntype_capi,"specfun.clpmn() 5th argument (ntype) can't be converted to int");
    if (f2py_success) {
    CHECKSCALAR(ntype==2||ntype==3,"ntype==2||ntype==3","5th argument ntype","clpmn:ntype=%d",ntype) {
    /* Processing variable mm */
    mm = m;
    /* Processing variable cpm */
    cpm_Dims[0]=m + 1,cpm_Dims[1]=n + 1;
    capi_cpm_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_cpm_tmp = array_from_pyobj(NPY_CDOUBLE,cpm_Dims,cpm_Rank,capi_cpm_intent,Py_None);
    if (capi_cpm_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `cpm' of specfun.clpmn to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      cpm = (complex_double *)(PyArray_DATA(capi_cpm_tmp));
  
    /* Processing variable cpd */
    cpd_Dims[0]=m + 1,cpd_Dims[1]=n + 1;
    capi_cpd_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_cpd_tmp = array_from_pyobj(NPY_CDOUBLE,cpd_Dims,cpd_Rank,capi_cpd_intent,Py_None);
    if (capi_cpd_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `cpd' of specfun.clpmn to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      cpd = (complex_double *)(PyArray_DATA(capi_cpd_tmp));
  
  /*end of frompyobj*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_call_clock();
  #endif
  /*callfortranroutine*/
          (*f2py_func)(&mm,&m,&n,&x,&y,&ntype,cpm,cpd);
  if (PyErr_Occurred())
    f2py_success = 0;
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_call_clock();
  #endif
  /*end of callfortranroutine*/
          if (f2py_success) {
  /*pyobjfrom*/
  /*end of pyobjfrom*/
          CFUNCSMESS("Building return value.\n");
          capi_buildvalue = Py_BuildValue("NN",capi_cpm_tmp,capi_cpd_tmp);
  /*closepyobjfrom*/
  /*end of closepyobjfrom*/
          } /*if (f2py_success) after callfortranroutine*/
  /*cleanupfrompyobj*/
    }  /*if (capi_cpd_tmp == NULL) ... else of cpd*/
    /* End of cleaning variable cpd */
    }  /*if (capi_cpm_tmp == NULL) ... else of cpm*/
    /* End of cleaning variable cpm */
    /* End of cleaning variable mm */
    } /*CHECKSCALAR(ntype==2||ntype==3)*/
    } /*if (f2py_success) of ntype*/
    /* End of cleaning variable ntype */
    } /*if (f2py_success) of y*/
    /* End of cleaning variable y */
    } /*if (f2py_success) of x*/
    /* End of cleaning variable x */
    } /*CHECKSCALAR(n>=0)*/
    } /*if (f2py_success) of n*/
    /* End of cleaning variable n */
    } /*CHECKSCALAR(m>=0)*/
    } /*if (f2py_success) of m*/
    /* End of cleaning variable m */
  /*end of cleanupfrompyobj*/
      if (capi_buildvalue == NULL) {
  /*routdebugfailure*/
      } else {
  /*routdebugleave*/
      }
      CFUNCSMESS("Freeing memory.\n");
  /*freemem*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_clock();
  #endif
      return capi_buildvalue;
  }
  /******************************** end of clpmn ********************************/
  
  /************************************ jdzo ************************************/
  static char doc_f2py_rout_specfun_jdzo[] = "\
  n,m,pcode,zo = jdzo(nt)\n\nWrapper for ``jdzo``.\
  \n\nParameters\n----------\n"
  "nt : input int\n"
  "\nReturns\n-------\n"
  "n : rank-1 array('i') with bounds (1400)\n"
  "m : rank-1 array('i') with bounds (1400)\n"
  "pcode : rank-1 array('i') with bounds (1400)\n"
  "zo : rank-1 array('d') with bounds (1401)";
  /* extern void F_FUNC(jdzo,JDZO)(int*,int*,int*,int*,double*); */
  static PyObject *f2py_rout_specfun_jdzo(const PyObject *capi_self,
                             PyObject *capi_args,
                             PyObject *capi_keywds,
                             void (*f2py_func)(int*,int*,int*,int*,double*)) {
      PyObject * volatile capi_buildvalue = NULL;
      volatile int f2py_success = 1;
  /*decl*/
  
    int nt = 0;
    PyObject *nt_capi = Py_None;
    int *n = NULL;
    npy_intp n_Dims[1] = {-1};
    const int n_Rank = 1;
    PyArrayObject *capi_n_tmp = NULL;
    int capi_n_intent = 0;
    int *m = NULL;
    npy_intp m_Dims[1] = {-1};
    const int m_Rank = 1;
    PyArrayObject *capi_m_tmp = NULL;
    int capi_m_intent = 0;
    int *pcode = NULL;
    npy_intp pcode_Dims[1] = {-1};
    const int pcode_Rank = 1;
    PyArrayObject *capi_pcode_tmp = NULL;
    int capi_pcode_intent = 0;
    double *zo = NULL;
    npy_intp zo_Dims[1] = {-1};
    const int zo_Rank = 1;
    PyArrayObject *capi_zo_tmp = NULL;
    int capi_zo_intent = 0;
      static char *capi_kwlist[] = {"nt",NULL};
  
  /*routdebugenter*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_clock();
  #endif
      if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
          "O|:specfun.jdzo",\
          capi_kwlist,&nt_capi))
          return NULL;
  /*frompyobj*/
    /* Processing variable nt */
      f2py_success = int_from_pyobj(&nt,nt_capi,"specfun.jdzo() 1st argument (nt) can't be converted to int");
    if (f2py_success) {
    CHECKSCALAR((nt>0)&&(nt<=1200),"(nt>0)&&(nt<=1200)","1st argument nt","jdzo:nt=%d",nt) {
    /* Processing variable n */
    n_Dims[0]=1400;
    capi_n_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_n_tmp = array_from_pyobj(NPY_INT,n_Dims,n_Rank,capi_n_intent,Py_None);
    if (capi_n_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `n' of specfun.jdzo to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      n = (int *)(PyArray_DATA(capi_n_tmp));
  
    /* Processing variable m */
    m_Dims[0]=1400;
    capi_m_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_m_tmp = array_from_pyobj(NPY_INT,m_Dims,m_Rank,capi_m_intent,Py_None);
    if (capi_m_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `m' of specfun.jdzo to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      m = (int *)(PyArray_DATA(capi_m_tmp));
  
    /* Processing variable pcode */
    pcode_Dims[0]=1400;
    capi_pcode_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_pcode_tmp = array_from_pyobj(NPY_INT,pcode_Dims,pcode_Rank,capi_pcode_intent,Py_None);
    if (capi_pcode_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `pcode' of specfun.jdzo to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      pcode = (int *)(PyArray_DATA(capi_pcode_tmp));
  
    /* Processing variable zo */
    zo_Dims[0]=1401;
    capi_zo_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_zo_tmp = array_from_pyobj(NPY_DOUBLE,zo_Dims,zo_Rank,capi_zo_intent,Py_None);
    if (capi_zo_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `zo' of specfun.jdzo to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      zo = (double *)(PyArray_DATA(capi_zo_tmp));
  
  /*end of frompyobj*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_call_clock();
  #endif
  /*callfortranroutine*/
          (*f2py_func)(&nt,n,m,pcode,zo);
  if (PyErr_Occurred())
    f2py_success = 0;
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_call_clock();
  #endif
  /*end of callfortranroutine*/
          if (f2py_success) {
  /*pyobjfrom*/
  /*end of pyobjfrom*/
          CFUNCSMESS("Building return value.\n");
          capi_buildvalue = Py_BuildValue("NNNN",capi_n_tmp,capi_m_tmp,capi_pcode_tmp,capi_zo_tmp);
  /*closepyobjfrom*/
  /*end of closepyobjfrom*/
          } /*if (f2py_success) after callfortranroutine*/
  /*cleanupfrompyobj*/
    }  /*if (capi_zo_tmp == NULL) ... else of zo*/
    /* End of cleaning variable zo */
    }  /*if (capi_pcode_tmp == NULL) ... else of pcode*/
    /* End of cleaning variable pcode */
    }  /*if (capi_m_tmp == NULL) ... else of m*/
    /* End of cleaning variable m */
    }  /*if (capi_n_tmp == NULL) ... else of n*/
    /* End of cleaning variable n */
    } /*CHECKSCALAR((nt>0)&&(nt<=1200))*/
    } /*if (f2py_success) of nt*/
    /* End of cleaning variable nt */
  /*end of cleanupfrompyobj*/
      if (capi_buildvalue == NULL) {
  /*routdebugfailure*/
      } else {
  /*routdebugleave*/
      }
      CFUNCSMESS("Freeing memory.\n");
  /*freemem*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_clock();
  #endif
      return capi_buildvalue;
  }
  /******************************** end of jdzo ********************************/
  
  /*********************************** bernob ***********************************/
  static char doc_f2py_rout_specfun_bernob[] = "\
  bn = bernob(n)\n\nWrapper for ``bernob``.\
  \n\nParameters\n----------\n"
  "n : input int\n"
  "\nReturns\n-------\n"
  "bn : rank-1 array('d') with bounds (n + 1)";
  /* extern void F_FUNC(bernob,BERNOB)(int*,double*); */
  static PyObject *f2py_rout_specfun_bernob(const PyObject *capi_self,
                             PyObject *capi_args,
                             PyObject *capi_keywds,
                             void (*f2py_func)(int*,double*)) {
      PyObject * volatile capi_buildvalue = NULL;
      volatile int f2py_success = 1;
  /*decl*/
  
    int n = 0;
    PyObject *n_capi = Py_None;
    double *bn = NULL;
    npy_intp bn_Dims[1] = {-1};
    const int bn_Rank = 1;
    PyArrayObject *capi_bn_tmp = NULL;
    int capi_bn_intent = 0;
      static char *capi_kwlist[] = {"n",NULL};
  
  /*routdebugenter*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_clock();
  #endif
      if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
          "O|:specfun.bernob",\
          capi_kwlist,&n_capi))
          return NULL;
  /*frompyobj*/
    /* Processing variable n */
      f2py_success = int_from_pyobj(&n,n_capi,"specfun.bernob() 1st argument (n) can't be converted to int");
    if (f2py_success) {
    CHECKSCALAR(n>=2,"n>=2","1st argument n","bernob:n=%d",n) {
    /* Processing variable bn */
    bn_Dims[0]=n + 1;
    capi_bn_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_bn_tmp = array_from_pyobj(NPY_DOUBLE,bn_Dims,bn_Rank,capi_bn_intent,Py_None);
    if (capi_bn_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `bn' of specfun.bernob to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      bn = (double *)(PyArray_DATA(capi_bn_tmp));
  
  /*end of frompyobj*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_call_clock();
  #endif
  /*callfortranroutine*/
          (*f2py_func)(&n,bn);
  if (PyErr_Occurred())
    f2py_success = 0;
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_call_clock();
  #endif
  /*end of callfortranroutine*/
          if (f2py_success) {
  /*pyobjfrom*/
  /*end of pyobjfrom*/
          CFUNCSMESS("Building return value.\n");
          capi_buildvalue = Py_BuildValue("N",capi_bn_tmp);
  /*closepyobjfrom*/
  /*end of closepyobjfrom*/
          } /*if (f2py_success) after callfortranroutine*/
  /*cleanupfrompyobj*/
    }  /*if (capi_bn_tmp == NULL) ... else of bn*/
    /* End of cleaning variable bn */
    } /*CHECKSCALAR(n>=2)*/
    } /*if (f2py_success) of n*/
    /* End of cleaning variable n */
  /*end of cleanupfrompyobj*/
      if (capi_buildvalue == NULL) {
  /*routdebugfailure*/
      } else {
  /*routdebugleave*/
      }
      CFUNCSMESS("Freeing memory.\n");
  /*freemem*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_clock();
  #endif
      return capi_buildvalue;
  }
  /******************************* end of bernob *******************************/
  
  /************************************ clqn ************************************/
  static char doc_f2py_rout_specfun_clqn[] = "\
  cqn,cqd = clqn(n,z)\n\nWrapper for ``clqn``.\
  \n\nParameters\n----------\n"
  "n : input int\n"
  "z : input complex\n"
  "\nReturns\n-------\n"
  "cqn : rank-1 array('D') with bounds (n + 1)\n"
  "cqd : rank-1 array('D') with bounds (n + 1)";
  /* extern void F_FUNC(clqn,CLQN)(int*,double*,double*,complex_double*,complex_double* ); */
  static PyObject *f2py_rout_specfun_clqn(const PyObject *capi_self,
                             PyObject *capi_args,
                             PyObject *capi_keywds,
                             void (*f2py_func)(int*,double*,double*,complex_double*,complex_double* )) {
      PyObject * volatile capi_buildvalue = NULL;
      volatile int f2py_success = 1;
  /*decl*/
  
    int n = 0;
    PyObject *n_capi = Py_None;
    complex_double z;
    PyObject *z_capi = Py_None;
    complex_double *cqn = NULL;
    npy_intp cqn_Dims[1] = {-1};
    const int cqn_Rank = 1;
    PyArrayObject *capi_cqn_tmp = NULL;
    int capi_cqn_intent = 0;
    complex_double *cqd = NULL;
    npy_intp cqd_Dims[1] = {-1};
    const int cqd_Rank = 1;
    PyArrayObject *capi_cqd_tmp = NULL;
    int capi_cqd_intent = 0;
      static char *capi_kwlist[] = {"n","z",NULL};
  
  /*routdebugenter*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_clock();
  #endif
      if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
          "OO|:specfun.clqn",\
          capi_kwlist,&n_capi,&z_capi))
          return NULL;
  /*frompyobj*/
    /* Processing variable n */
      f2py_success = int_from_pyobj(&n,n_capi,"specfun.clqn() 1st argument (n) can't be converted to int");
    if (f2py_success) {
    CHECKSCALAR(n>=1,"n>=1","1st argument n","clqn:n=%d",n) {
    /* Processing variable z */
      f2py_success = complex_double_from_pyobj(&z,z_capi,"specfun.clqn() 2nd argument (z) can't be converted to complex_double");
    if (f2py_success) {
    /* Processing variable cqn */
    cqn_Dims[0]=n + 1;
    capi_cqn_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_cqn_tmp = array_from_pyobj(NPY_CDOUBLE,cqn_Dims,cqn_Rank,capi_cqn_intent,Py_None);
    if (capi_cqn_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `cqn' of specfun.clqn to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      cqn = (complex_double *)(PyArray_DATA(capi_cqn_tmp));
  
    /* Processing variable cqd */
    cqd_Dims[0]=n + 1;
    capi_cqd_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_cqd_tmp = array_from_pyobj(NPY_CDOUBLE,cqd_Dims,cqd_Rank,capi_cqd_intent,Py_None);
    if (capi_cqd_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `cqd' of specfun.clqn to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      cqd = (complex_double *)(PyArray_DATA(capi_cqd_tmp));
  
  /*end of frompyobj*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_call_clock();
  #endif
  /*callfortranroutine*/
          (*f2py_func)(&n,&(z.r),&(z.i),cqn,cqd) ;
          /*(*f2py_func)(&n,&z,cqn,cqd);*/
  if (PyErr_Occurred())
    f2py_success = 0;
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_call_clock();
  #endif
  /*end of callfortranroutine*/
          if (f2py_success) {
  /*pyobjfrom*/
  /*end of pyobjfrom*/
          CFUNCSMESS("Building return value.\n");
          capi_buildvalue = Py_BuildValue("NN",capi_cqn_tmp,capi_cqd_tmp);
  /*closepyobjfrom*/
  /*end of closepyobjfrom*/
          } /*if (f2py_success) after callfortranroutine*/
  /*cleanupfrompyobj*/
    }  /*if (capi_cqd_tmp == NULL) ... else of cqd*/
    /* End of cleaning variable cqd */
    }  /*if (capi_cqn_tmp == NULL) ... else of cqn*/
    /* End of cleaning variable cqn */
    }  /*if (f2py_success) of z frompyobj*/
    /* End of cleaning variable z */
    } /*CHECKSCALAR(n>=1)*/
    } /*if (f2py_success) of n*/
    /* End of cleaning variable n */
  /*end of cleanupfrompyobj*/
      if (capi_buildvalue == NULL) {
  /*routdebugfailure*/
      } else {
  /*routdebugleave*/
      }
      CFUNCSMESS("Freeing memory.\n");
  /*freemem*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_clock();
  #endif
      return capi_buildvalue;
  }
  /******************************** end of clqn ********************************/
  
  /*********************************** airyzo ***********************************/
  static char doc_f2py_rout_specfun_airyzo[] = "\
  xa,xb,xc,xd = airyzo(nt,[kf])\n\nWrapper for ``airyzo``.\
  \n\nParameters\n----------\n"
  "nt : input int\n"
  "\nOther Parameters\n----------------\n"
  "kf : input int, optional\n    Default: 1\n"
  "\nReturns\n-------\n"
  "xa : rank-1 array('d') with bounds (nt)\n"
  "xb : rank-1 array('d') with bounds (nt)\n"
  "xc : rank-1 array('d') with bounds (nt)\n"
  "xd : rank-1 array('d') with bounds (nt)";
  /* extern void F_FUNC(airyzo,AIRYZO)(int*,int*,double*,double*,double*,double*); */
  static PyObject *f2py_rout_specfun_airyzo(const PyObject *capi_self,
                             PyObject *capi_args,
                             PyObject *capi_keywds,
                             void (*f2py_func)(int*,int*,double*,double*,double*,double*)) {
      PyObject * volatile capi_buildvalue = NULL;
      volatile int f2py_success = 1;
  /*decl*/
  
    int nt = 0;
    PyObject *nt_capi = Py_None;
    int kf = 0;
    PyObject *kf_capi = Py_None;
    double *xa = NULL;
    npy_intp xa_Dims[1] = {-1};
    const int xa_Rank = 1;
    PyArrayObject *capi_xa_tmp = NULL;
    int capi_xa_intent = 0;
    double *xb = NULL;
    npy_intp xb_Dims[1] = {-1};
    const int xb_Rank = 1;
    PyArrayObject *capi_xb_tmp = NULL;
    int capi_xb_intent = 0;
    double *xc = NULL;
    npy_intp xc_Dims[1] = {-1};
    const int xc_Rank = 1;
    PyArrayObject *capi_xc_tmp = NULL;
    int capi_xc_intent = 0;
    double *xd = NULL;
    npy_intp xd_Dims[1] = {-1};
    const int xd_Rank = 1;
    PyArrayObject *capi_xd_tmp = NULL;
    int capi_xd_intent = 0;
      static char *capi_kwlist[] = {"nt","kf",NULL};
  
  /*routdebugenter*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_clock();
  #endif
      if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
          "O|O:specfun.airyzo",\
          capi_kwlist,&nt_capi,&kf_capi))
          return NULL;
  /*frompyobj*/
    /* Processing variable nt */
      f2py_success = int_from_pyobj(&nt,nt_capi,"specfun.airyzo() 1st argument (nt) can't be converted to int");
    if (f2py_success) {
    CHECKSCALAR(nt>0,"nt>0","1st argument nt","airyzo:nt=%d",nt) {
    /* Processing variable kf */
    if (kf_capi == Py_None) kf = 1; else
      f2py_success = int_from_pyobj(&kf,kf_capi,"specfun.airyzo() 1st keyword (kf) can't be converted to int");
    if (f2py_success) {
    /* Processing variable xa */
    xa_Dims[0]=nt;
    capi_xa_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_xa_tmp = array_from_pyobj(NPY_DOUBLE,xa_Dims,xa_Rank,capi_xa_intent,Py_None);
    if (capi_xa_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `xa' of specfun.airyzo to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      xa = (double *)(PyArray_DATA(capi_xa_tmp));
  
    /* Processing variable xb */
    xb_Dims[0]=nt;
    capi_xb_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_xb_tmp = array_from_pyobj(NPY_DOUBLE,xb_Dims,xb_Rank,capi_xb_intent,Py_None);
    if (capi_xb_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `xb' of specfun.airyzo to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      xb = (double *)(PyArray_DATA(capi_xb_tmp));
  
    /* Processing variable xc */
    xc_Dims[0]=nt;
    capi_xc_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_xc_tmp = array_from_pyobj(NPY_DOUBLE,xc_Dims,xc_Rank,capi_xc_intent,Py_None);
    if (capi_xc_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `xc' of specfun.airyzo to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      xc = (double *)(PyArray_DATA(capi_xc_tmp));
  
    /* Processing variable xd */
    xd_Dims[0]=nt;
    capi_xd_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_xd_tmp = array_from_pyobj(NPY_DOUBLE,xd_Dims,xd_Rank,capi_xd_intent,Py_None);
    if (capi_xd_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `xd' of specfun.airyzo to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      xd = (double *)(PyArray_DATA(capi_xd_tmp));
  
  /*end of frompyobj*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_call_clock();
  #endif
  /*callfortranroutine*/
          (*f2py_func)(&nt,&kf,xa,xb,xc,xd);
  if (PyErr_Occurred())
    f2py_success = 0;
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_call_clock();
  #endif
  /*end of callfortranroutine*/
          if (f2py_success) {
  /*pyobjfrom*/
  /*end of pyobjfrom*/
          CFUNCSMESS("Building return value.\n");
          capi_buildvalue = Py_BuildValue("NNNN",capi_xa_tmp,capi_xb_tmp,capi_xc_tmp,capi_xd_tmp);
  /*closepyobjfrom*/
  /*end of closepyobjfrom*/
          } /*if (f2py_success) after callfortranroutine*/
  /*cleanupfrompyobj*/
    }  /*if (capi_xd_tmp == NULL) ... else of xd*/
    /* End of cleaning variable xd */
    }  /*if (capi_xc_tmp == NULL) ... else of xc*/
    /* End of cleaning variable xc */
    }  /*if (capi_xb_tmp == NULL) ... else of xb*/
    /* End of cleaning variable xb */
    }  /*if (capi_xa_tmp == NULL) ... else of xa*/
    /* End of cleaning variable xa */
    } /*if (f2py_success) of kf*/
    /* End of cleaning variable kf */
    } /*CHECKSCALAR(nt>0)*/
    } /*if (f2py_success) of nt*/
    /* End of cleaning variable nt */
  /*end of cleanupfrompyobj*/
      if (capi_buildvalue == NULL) {
  /*routdebugfailure*/
      } else {
  /*routdebugleave*/
      }
      CFUNCSMESS("Freeing memory.\n");
  /*freemem*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_clock();
  #endif
      return capi_buildvalue;
  }
  /******************************* end of airyzo *******************************/
  
  /*********************************** eulerb ***********************************/
  static char doc_f2py_rout_specfun_eulerb[] = "\
  en = eulerb(n)\n\nWrapper for ``eulerb``.\
  \n\nParameters\n----------\n"
  "n : input int\n"
  "\nReturns\n-------\n"
  "en : rank-1 array('d') with bounds (n + 1)";
  /* extern void F_FUNC(eulerb,EULERB)(int*,double*); */
  static PyObject *f2py_rout_specfun_eulerb(const PyObject *capi_self,
                             PyObject *capi_args,
                             PyObject *capi_keywds,
                             void (*f2py_func)(int*,double*)) {
      PyObject * volatile capi_buildvalue = NULL;
      volatile int f2py_success = 1;
  /*decl*/
  
    int n = 0;
    PyObject *n_capi = Py_None;
    double *en = NULL;
    npy_intp en_Dims[1] = {-1};
    const int en_Rank = 1;
    PyArrayObject *capi_en_tmp = NULL;
    int capi_en_intent = 0;
      static char *capi_kwlist[] = {"n",NULL};
  
  /*routdebugenter*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_clock();
  #endif
      if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
          "O|:specfun.eulerb",\
          capi_kwlist,&n_capi))
          return NULL;
  /*frompyobj*/
    /* Processing variable n */
      f2py_success = int_from_pyobj(&n,n_capi,"specfun.eulerb() 1st argument (n) can't be converted to int");
    if (f2py_success) {
    CHECKSCALAR(n>=2,"n>=2","1st argument n","eulerb:n=%d",n) {
    /* Processing variable en */
    en_Dims[0]=n + 1;
    capi_en_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_en_tmp = array_from_pyobj(NPY_DOUBLE,en_Dims,en_Rank,capi_en_intent,Py_None);
    if (capi_en_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `en' of specfun.eulerb to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      en = (double *)(PyArray_DATA(capi_en_tmp));
  
  /*end of frompyobj*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_call_clock();
  #endif
  /*callfortranroutine*/
          (*f2py_func)(&n,en);
  if (PyErr_Occurred())
    f2py_success = 0;
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_call_clock();
  #endif
  /*end of callfortranroutine*/
          if (f2py_success) {
  /*pyobjfrom*/
  /*end of pyobjfrom*/
          CFUNCSMESS("Building return value.\n");
          capi_buildvalue = Py_BuildValue("N",capi_en_tmp);
  /*closepyobjfrom*/
  /*end of closepyobjfrom*/
          } /*if (f2py_success) after callfortranroutine*/
  /*cleanupfrompyobj*/
    }  /*if (capi_en_tmp == NULL) ... else of en*/
    /* End of cleaning variable en */
    } /*CHECKSCALAR(n>=2)*/
    } /*if (f2py_success) of n*/
    /* End of cleaning variable n */
  /*end of cleanupfrompyobj*/
      if (capi_buildvalue == NULL) {
  /*routdebugfailure*/
      } else {
  /*routdebugleave*/
      }
      CFUNCSMESS("Freeing memory.\n");
  /*freemem*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_clock();
  #endif
      return capi_buildvalue;
  }
  /******************************* end of eulerb *******************************/
  
  /************************************ lqnb ************************************/
  static char doc_f2py_rout_specfun_lqnb[] = "\
  qn,qd = lqnb(n,x)\n\nWrapper for ``lqnb``.\
  \n\nParameters\n----------\n"
  "n : input int\n"
  "x : input float\n"
  "\nReturns\n-------\n"
  "qn : rank-1 array('d') with bounds (n + 1)\n"
  "qd : rank-1 array('d') with bounds (n + 1)";
  /* extern void F_FUNC(lqnb,LQNB)(int*,double*,double*,double*); */
  static PyObject *f2py_rout_specfun_lqnb(const PyObject *capi_self,
                             PyObject *capi_args,
                             PyObject *capi_keywds,
                             void (*f2py_func)(int*,double*,double*,double*)) {
      PyObject * volatile capi_buildvalue = NULL;
      volatile int f2py_success = 1;
  /*decl*/
  
    int n = 0;
    PyObject *n_capi = Py_None;
    double x = 0;
    PyObject *x_capi = Py_None;
    double *qn = NULL;
    npy_intp qn_Dims[1] = {-1};
    const int qn_Rank = 1;
    PyArrayObject *capi_qn_tmp = NULL;
    int capi_qn_intent = 0;
    double *qd = NULL;
    npy_intp qd_Dims[1] = {-1};
    const int qd_Rank = 1;
    PyArrayObject *capi_qd_tmp = NULL;
    int capi_qd_intent = 0;
      static char *capi_kwlist[] = {"n","x",NULL};
  
  /*routdebugenter*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_clock();
  #endif
      if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
          "OO|:specfun.lqnb",\
          capi_kwlist,&n_capi,&x_capi))
          return NULL;
  /*frompyobj*/
    /* Processing variable n */
      f2py_success = int_from_pyobj(&n,n_capi,"specfun.lqnb() 1st argument (n) can't be converted to int");
    if (f2py_success) {
    CHECKSCALAR(n>=1,"n>=1","1st argument n","lqnb:n=%d",n) {
    /* Processing variable x */
      f2py_success = double_from_pyobj(&x,x_capi,"specfun.lqnb() 2nd argument (x) can't be converted to double");
    if (f2py_success) {
    /* Processing variable qn */
    qn_Dims[0]=n + 1;
    capi_qn_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_qn_tmp = array_from_pyobj(NPY_DOUBLE,qn_Dims,qn_Rank,capi_qn_intent,Py_None);
    if (capi_qn_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `qn' of specfun.lqnb to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      qn = (double *)(PyArray_DATA(capi_qn_tmp));
  
    /* Processing variable qd */
    qd_Dims[0]=n + 1;
    capi_qd_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_qd_tmp = array_from_pyobj(NPY_DOUBLE,qd_Dims,qd_Rank,capi_qd_intent,Py_None);
    if (capi_qd_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `qd' of specfun.lqnb to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      qd = (double *)(PyArray_DATA(capi_qd_tmp));
  
  /*end of frompyobj*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_call_clock();
  #endif
  /*callfortranroutine*/
          (*f2py_func)(&n,&x,qn,qd);
  if (PyErr_Occurred())
    f2py_success = 0;
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_call_clock();
  #endif
  /*end of callfortranroutine*/
          if (f2py_success) {
  /*pyobjfrom*/
  /*end of pyobjfrom*/
          CFUNCSMESS("Building return value.\n");
          capi_buildvalue = Py_BuildValue("NN",capi_qn_tmp,capi_qd_tmp);
  /*closepyobjfrom*/
  /*end of closepyobjfrom*/
          } /*if (f2py_success) after callfortranroutine*/
  /*cleanupfrompyobj*/
    }  /*if (capi_qd_tmp == NULL) ... else of qd*/
    /* End of cleaning variable qd */
    }  /*if (capi_qn_tmp == NULL) ... else of qn*/
    /* End of cleaning variable qn */
    } /*if (f2py_success) of x*/
    /* End of cleaning variable x */
    } /*CHECKSCALAR(n>=1)*/
    } /*if (f2py_success) of n*/
    /* End of cleaning variable n */
  /*end of cleanupfrompyobj*/
      if (capi_buildvalue == NULL) {
  /*routdebugfailure*/
      } else {
  /*routdebugleave*/
      }
      CFUNCSMESS("Freeing memory.\n");
  /*freemem*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_clock();
  #endif
      return capi_buildvalue;
  }
  /******************************** end of lqnb ********************************/
  
  /************************************ lamv ************************************/
  static char doc_f2py_rout_specfun_lamv[] = "\
  vm,vl,dl = lamv(v,x)\n\nWrapper for ``lamv``.\
  \n\nParameters\n----------\n"
  "v : input float\n"
  "x : input float\n"
  "\nReturns\n-------\n"
  "vm : float\n"
  "vl : rank-1 array('d') with bounds ((int)v+1)\n"
  "dl : rank-1 array('d') with bounds ((int)v+1)";
  /* extern void F_FUNC(lamv,LAMV)(double*,double*,double*,double*,double*); */
  static PyObject *f2py_rout_specfun_lamv(const PyObject *capi_self,
                             PyObject *capi_args,
                             PyObject *capi_keywds,
                             void (*f2py_func)(double*,double*,double*,double*,double*)) {
      PyObject * volatile capi_buildvalue = NULL;
      volatile int f2py_success = 1;
  /*decl*/
  
    double v = 0;
    PyObject *v_capi = Py_None;
    double x = 0;
    PyObject *x_capi = Py_None;
    double vm = 0;
    double *vl = NULL;
    npy_intp vl_Dims[1] = {-1};
    const int vl_Rank = 1;
    PyArrayObject *capi_vl_tmp = NULL;
    int capi_vl_intent = 0;
    double *dl = NULL;
    npy_intp dl_Dims[1] = {-1};
    const int dl_Rank = 1;
    PyArrayObject *capi_dl_tmp = NULL;
    int capi_dl_intent = 0;
      static char *capi_kwlist[] = {"v","x",NULL};
  
  /*routdebugenter*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_clock();
  #endif
      if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
          "OO|:specfun.lamv",\
          capi_kwlist,&v_capi,&x_capi))
          return NULL;
  /*frompyobj*/
    /* Processing variable v */
      f2py_success = double_from_pyobj(&v,v_capi,"specfun.lamv() 1st argument (v) can't be converted to double");
    if (f2py_success) {
    CHECKSCALAR(v>=1,"v>=1","1st argument v","lamv:v=%g",v) {
    /* Processing variable x */
      f2py_success = double_from_pyobj(&x,x_capi,"specfun.lamv() 2nd argument (x) can't be converted to double");
    if (f2py_success) {
    /* Processing variable vm */
    /* Processing variable vl */
    vl_Dims[0]=(int)v+1;
    capi_vl_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_vl_tmp = array_from_pyobj(NPY_DOUBLE,vl_Dims,vl_Rank,capi_vl_intent,Py_None);
    if (capi_vl_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `vl' of specfun.lamv to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      vl = (double *)(PyArray_DATA(capi_vl_tmp));
  
    /* Processing variable dl */
    dl_Dims[0]=(int)v+1;
    capi_dl_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_dl_tmp = array_from_pyobj(NPY_DOUBLE,dl_Dims,dl_Rank,capi_dl_intent,Py_None);
    if (capi_dl_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `dl' of specfun.lamv to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      dl = (double *)(PyArray_DATA(capi_dl_tmp));
  
  /*end of frompyobj*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_call_clock();
  #endif
  /*callfortranroutine*/
          (*f2py_func)(&v,&x,&vm,vl,dl);
  if (PyErr_Occurred())
    f2py_success = 0;
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_call_clock();
  #endif
  /*end of callfortranroutine*/
          if (f2py_success) {
  /*pyobjfrom*/
  /*end of pyobjfrom*/
          CFUNCSMESS("Building return value.\n");
          capi_buildvalue = Py_BuildValue("dNN",vm,capi_vl_tmp,capi_dl_tmp);
  /*closepyobjfrom*/
  /*end of closepyobjfrom*/
          } /*if (f2py_success) after callfortranroutine*/
  /*cleanupfrompyobj*/
    }  /*if (capi_dl_tmp == NULL) ... else of dl*/
    /* End of cleaning variable dl */
    }  /*if (capi_vl_tmp == NULL) ... else of vl*/
    /* End of cleaning variable vl */
    /* End of cleaning variable vm */
    } /*if (f2py_success) of x*/
    /* End of cleaning variable x */
    } /*CHECKSCALAR(v>=1)*/
    } /*if (f2py_success) of v*/
    /* End of cleaning variable v */
  /*end of cleanupfrompyobj*/
      if (capi_buildvalue == NULL) {
  /*routdebugfailure*/
      } else {
  /*routdebugleave*/
      }
      CFUNCSMESS("Freeing memory.\n");
  /*freemem*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_clock();
  #endif
      return capi_buildvalue;
  }
  /******************************** end of lamv ********************************/
  
  /************************************ pbdv ************************************/
  static char doc_f2py_rout_specfun_pbdv[] = "\
  dv,dp,pdf,pdd = pbdv(v,x)\n\nWrapper for ``pbdv``.\
  \n\nParameters\n----------\n"
  "v : input float\n"
  "x : input float\n"
  "\nReturns\n-------\n"
  "dv : rank-1 array('d') with bounds (abs((int)v)+2)\n"
  "dp : rank-1 array('d') with bounds (abs((int)v)+2)\n"
  "pdf : float\n"
  "pdd : float";
  /* extern void F_FUNC(pbdv,PBDV)(double*,double*,double*,double*,double*,double*); */
  static PyObject *f2py_rout_specfun_pbdv(const PyObject *capi_self,
                             PyObject *capi_args,
                             PyObject *capi_keywds,
                             void (*f2py_func)(double*,double*,double*,double*,double*,double*)) {
      PyObject * volatile capi_buildvalue = NULL;
      volatile int f2py_success = 1;
  /*decl*/
  
    double v = 0;
    PyObject *v_capi = Py_None;
    double x = 0;
    PyObject *x_capi = Py_None;
    double *dv = NULL;
    npy_intp dv_Dims[1] = {-1};
    const int dv_Rank = 1;
    PyArrayObject *capi_dv_tmp = NULL;
    int capi_dv_intent = 0;
    double *dp = NULL;
    npy_intp dp_Dims[1] = {-1};
    const int dp_Rank = 1;
    PyArrayObject *capi_dp_tmp = NULL;
    int capi_dp_intent = 0;
    double pdf = 0;
    double pdd = 0;
      static char *capi_kwlist[] = {"v","x",NULL};
  
  /*routdebugenter*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_clock();
  #endif
      if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
          "OO|:specfun.pbdv",\
          capi_kwlist,&v_capi,&x_capi))
          return NULL;
  /*frompyobj*/
    /* Processing variable v */
      f2py_success = double_from_pyobj(&v,v_capi,"specfun.pbdv() 1st argument (v) can't be converted to double");
    if (f2py_success) {
    CHECKSCALAR((abs((int)v)+2)>=2,"(abs((int)v)+2)>=2","1st argument v","pbdv:v=%g",v) {
    /* Processing variable x */
      f2py_success = double_from_pyobj(&x,x_capi,"specfun.pbdv() 2nd argument (x) can't be converted to double");
    if (f2py_success) {
    /* Processing variable pdf */
    /* Processing variable pdd */
    /* Processing variable dv */
    dv_Dims[0]=abs((int)v)+2;
    capi_dv_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_dv_tmp = array_from_pyobj(NPY_DOUBLE,dv_Dims,dv_Rank,capi_dv_intent,Py_None);
    if (capi_dv_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `dv' of specfun.pbdv to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      dv = (double *)(PyArray_DATA(capi_dv_tmp));
  
    /* Processing variable dp */
    dp_Dims[0]=abs((int)v)+2;
    capi_dp_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_dp_tmp = array_from_pyobj(NPY_DOUBLE,dp_Dims,dp_Rank,capi_dp_intent,Py_None);
    if (capi_dp_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `dp' of specfun.pbdv to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      dp = (double *)(PyArray_DATA(capi_dp_tmp));
  
  /*end of frompyobj*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_call_clock();
  #endif
  /*callfortranroutine*/
          (*f2py_func)(&v,&x,dv,dp,&pdf,&pdd);
  if (PyErr_Occurred())
    f2py_success = 0;
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_call_clock();
  #endif
  /*end of callfortranroutine*/
          if (f2py_success) {
  /*pyobjfrom*/
  /*end of pyobjfrom*/
          CFUNCSMESS("Building return value.\n");
          capi_buildvalue = Py_BuildValue("NNdd",capi_dv_tmp,capi_dp_tmp,pdf,pdd);
  /*closepyobjfrom*/
  /*end of closepyobjfrom*/
          } /*if (f2py_success) after callfortranroutine*/
  /*cleanupfrompyobj*/
    }  /*if (capi_dp_tmp == NULL) ... else of dp*/
    /* End of cleaning variable dp */
    }  /*if (capi_dv_tmp == NULL) ... else of dv*/
    /* End of cleaning variable dv */
    /* End of cleaning variable pdd */
    /* End of cleaning variable pdf */
    } /*if (f2py_success) of x*/
    /* End of cleaning variable x */
    } /*CHECKSCALAR((abs((int)v)+2)>=2)*/
    } /*if (f2py_success) of v*/
    /* End of cleaning variable v */
  /*end of cleanupfrompyobj*/
      if (capi_buildvalue == NULL) {
  /*routdebugfailure*/
      } else {
  /*routdebugleave*/
      }
      CFUNCSMESS("Freeing memory.\n");
  /*freemem*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_clock();
  #endif
      return capi_buildvalue;
  }
  /******************************** end of pbdv ********************************/
  
  /*********************************** cerzo ***********************************/
  static char doc_f2py_rout_specfun_cerzo[] = "\
  zo = cerzo(nt)\n\nWrapper for ``cerzo``.\
  \n\nParameters\n----------\n"
  "nt : input int\n"
  "\nReturns\n-------\n"
  "zo : rank-1 array('D') with bounds (nt)";
  /* extern void F_FUNC(cerzo,CERZO)(int*,complex_double*); */
  static PyObject *f2py_rout_specfun_cerzo(const PyObject *capi_self,
                             PyObject *capi_args,
                             PyObject *capi_keywds,
                             void (*f2py_func)(int*,complex_double*)) {
      PyObject * volatile capi_buildvalue = NULL;
      volatile int f2py_success = 1;
  /*decl*/
  
    int nt = 0;
    PyObject *nt_capi = Py_None;
    complex_double *zo = NULL;
    npy_intp zo_Dims[1] = {-1};
    const int zo_Rank = 1;
    PyArrayObject *capi_zo_tmp = NULL;
    int capi_zo_intent = 0;
      static char *capi_kwlist[] = {"nt",NULL};
  
  /*routdebugenter*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_clock();
  #endif
      if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
          "O|:specfun.cerzo",\
          capi_kwlist,&nt_capi))
          return NULL;
  /*frompyobj*/
    /* Processing variable nt */
      f2py_success = int_from_pyobj(&nt,nt_capi,"specfun.cerzo() 1st argument (nt) can't be converted to int");
    if (f2py_success) {
    CHECKSCALAR(nt>0,"nt>0","1st argument nt","cerzo:nt=%d",nt) {
    /* Processing variable zo */
    zo_Dims[0]=nt;
    capi_zo_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_zo_tmp = array_from_pyobj(NPY_CDOUBLE,zo_Dims,zo_Rank,capi_zo_intent,Py_None);
    if (capi_zo_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `zo' of specfun.cerzo to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      zo = (complex_double *)(PyArray_DATA(capi_zo_tmp));
  
  /*end of frompyobj*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_call_clock();
  #endif
  /*callfortranroutine*/
          (*f2py_func)(&nt,zo);
  if (PyErr_Occurred())
    f2py_success = 0;
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_call_clock();
  #endif
  /*end of callfortranroutine*/
          if (f2py_success) {
  /*pyobjfrom*/
  /*end of pyobjfrom*/
          CFUNCSMESS("Building return value.\n");
          capi_buildvalue = Py_BuildValue("N",capi_zo_tmp);
  /*closepyobjfrom*/
  /*end of closepyobjfrom*/
          } /*if (f2py_success) after callfortranroutine*/
  /*cleanupfrompyobj*/
    }  /*if (capi_zo_tmp == NULL) ... else of zo*/
    /* End of cleaning variable zo */
    } /*CHECKSCALAR(nt>0)*/
    } /*if (f2py_success) of nt*/
    /* End of cleaning variable nt */
  /*end of cleanupfrompyobj*/
      if (capi_buildvalue == NULL) {
  /*routdebugfailure*/
      } else {
  /*routdebugleave*/
      }
      CFUNCSMESS("Freeing memory.\n");
  /*freemem*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_clock();
  #endif
      return capi_buildvalue;
  }
  /******************************** end of cerzo ********************************/
  
  /************************************ lamn ************************************/
  static char doc_f2py_rout_specfun_lamn[] = "\
  nm,bl,dl = lamn(n,x)\n\nWrapper for ``lamn``.\
  \n\nParameters\n----------\n"
  "n : input int\n"
  "x : input float\n"
  "\nReturns\n-------\n"
  "nm : int\n"
  "bl : rank-1 array('d') with bounds (n + 1)\n"
  "dl : rank-1 array('d') with bounds (n + 1)";
  /* extern void F_FUNC(lamn,LAMN)(int*,double*,int*,double*,double*); */
  static PyObject *f2py_rout_specfun_lamn(const PyObject *capi_self,
                             PyObject *capi_args,
                             PyObject *capi_keywds,
                             void (*f2py_func)(int*,double*,int*,double*,double*)) {
      PyObject * volatile capi_buildvalue = NULL;
      volatile int f2py_success = 1;
  /*decl*/
  
    int n = 0;
    PyObject *n_capi = Py_None;
    double x = 0;
    PyObject *x_capi = Py_None;
    int nm = 0;
    double *bl = NULL;
    npy_intp bl_Dims[1] = {-1};
    const int bl_Rank = 1;
    PyArrayObject *capi_bl_tmp = NULL;
    int capi_bl_intent = 0;
    double *dl = NULL;
    npy_intp dl_Dims[1] = {-1};
    const int dl_Rank = 1;
    PyArrayObject *capi_dl_tmp = NULL;
    int capi_dl_intent = 0;
      static char *capi_kwlist[] = {"n","x",NULL};
  
  /*routdebugenter*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_clock();
  #endif
      if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
          "OO|:specfun.lamn",\
          capi_kwlist,&n_capi,&x_capi))
          return NULL;
  /*frompyobj*/
    /* Processing variable n */
      f2py_success = int_from_pyobj(&n,n_capi,"specfun.lamn() 1st argument (n) can't be converted to int");
    if (f2py_success) {
    CHECKSCALAR(n>=1,"n>=1","1st argument n","lamn:n=%d",n) {
    /* Processing variable x */
      f2py_success = double_from_pyobj(&x,x_capi,"specfun.lamn() 2nd argument (x) can't be converted to double");
    if (f2py_success) {
    /* Processing variable nm */
    /* Processing variable bl */
    bl_Dims[0]=n + 1;
    capi_bl_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_bl_tmp = array_from_pyobj(NPY_DOUBLE,bl_Dims,bl_Rank,capi_bl_intent,Py_None);
    if (capi_bl_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `bl' of specfun.lamn to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      bl = (double *)(PyArray_DATA(capi_bl_tmp));
  
    /* Processing variable dl */
    dl_Dims[0]=n + 1;
    capi_dl_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_dl_tmp = array_from_pyobj(NPY_DOUBLE,dl_Dims,dl_Rank,capi_dl_intent,Py_None);
    if (capi_dl_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `dl' of specfun.lamn to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      dl = (double *)(PyArray_DATA(capi_dl_tmp));
  
  /*end of frompyobj*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_call_clock();
  #endif
  /*callfortranroutine*/
          (*f2py_func)(&n,&x,&nm,bl,dl);
  if (PyErr_Occurred())
    f2py_success = 0;
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_call_clock();
  #endif
  /*end of callfortranroutine*/
          if (f2py_success) {
  /*pyobjfrom*/
  /*end of pyobjfrom*/
          CFUNCSMESS("Building return value.\n");
          capi_buildvalue = Py_BuildValue("iNN",nm,capi_bl_tmp,capi_dl_tmp);
  /*closepyobjfrom*/
  /*end of closepyobjfrom*/
          } /*if (f2py_success) after callfortranroutine*/
  /*cleanupfrompyobj*/
    }  /*if (capi_dl_tmp == NULL) ... else of dl*/
    /* End of cleaning variable dl */
    }  /*if (capi_bl_tmp == NULL) ... else of bl*/
    /* End of cleaning variable bl */
    /* End of cleaning variable nm */
    } /*if (f2py_success) of x*/
    /* End of cleaning variable x */
    } /*CHECKSCALAR(n>=1)*/
    } /*if (f2py_success) of n*/
    /* End of cleaning variable n */
  /*end of cleanupfrompyobj*/
      if (capi_buildvalue == NULL) {
  /*routdebugfailure*/
      } else {
  /*routdebugleave*/
      }
      CFUNCSMESS("Freeing memory.\n");
  /*freemem*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_clock();
  #endif
      return capi_buildvalue;
  }
  /******************************** end of lamn ********************************/
  
  /************************************ clpn ************************************/
  static char doc_f2py_rout_specfun_clpn[] = "\
  cpn,cpd = clpn(n,z)\n\nWrapper for ``clpn``.\
  \n\nParameters\n----------\n"
  "n : input int\n"
  "z : input complex\n"
  "\nReturns\n-------\n"
  "cpn : rank-1 array('D') with bounds (n + 1)\n"
  "cpd : rank-1 array('D') with bounds (n + 1)";
  /* extern void F_FUNC(clpn,CLPN)(int*,double*,double*,complex_double*,complex_double* ); */
  static PyObject *f2py_rout_specfun_clpn(const PyObject *capi_self,
                             PyObject *capi_args,
                             PyObject *capi_keywds,
                             void (*f2py_func)(int*,double*,double*,complex_double*,complex_double* )) {
      PyObject * volatile capi_buildvalue = NULL;
      volatile int f2py_success = 1;
  /*decl*/
  
    int n = 0;
    PyObject *n_capi = Py_None;
    complex_double z;
    PyObject *z_capi = Py_None;
    complex_double *cpn = NULL;
    npy_intp cpn_Dims[1] = {-1};
    const int cpn_Rank = 1;
    PyArrayObject *capi_cpn_tmp = NULL;
    int capi_cpn_intent = 0;
    complex_double *cpd = NULL;
    npy_intp cpd_Dims[1] = {-1};
    const int cpd_Rank = 1;
    PyArrayObject *capi_cpd_tmp = NULL;
    int capi_cpd_intent = 0;
      static char *capi_kwlist[] = {"n","z",NULL};
  
  /*routdebugenter*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_clock();
  #endif
      if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
          "OO|:specfun.clpn",\
          capi_kwlist,&n_capi,&z_capi))
          return NULL;
  /*frompyobj*/
    /* Processing variable n */
      f2py_success = int_from_pyobj(&n,n_capi,"specfun.clpn() 1st argument (n) can't be converted to int");
    if (f2py_success) {
    CHECKSCALAR(n>=1,"n>=1","1st argument n","clpn:n=%d",n) {
    /* Processing variable z */
      f2py_success = complex_double_from_pyobj(&z,z_capi,"specfun.clpn() 2nd argument (z) can't be converted to complex_double");
    if (f2py_success) {
    /* Processing variable cpn */
    cpn_Dims[0]=n + 1;
    capi_cpn_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_cpn_tmp = array_from_pyobj(NPY_CDOUBLE,cpn_Dims,cpn_Rank,capi_cpn_intent,Py_None);
    if (capi_cpn_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `cpn' of specfun.clpn to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      cpn = (complex_double *)(PyArray_DATA(capi_cpn_tmp));
  
    /* Processing variable cpd */
    cpd_Dims[0]=n + 1;
    capi_cpd_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_cpd_tmp = array_from_pyobj(NPY_CDOUBLE,cpd_Dims,cpd_Rank,capi_cpd_intent,Py_None);
    if (capi_cpd_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `cpd' of specfun.clpn to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      cpd = (complex_double *)(PyArray_DATA(capi_cpd_tmp));
  
  /*end of frompyobj*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_call_clock();
  #endif
  /*callfortranroutine*/
          (*f2py_func)(&n,&(z.r),&(z.i),cpn,cpd) ;
          /*(*f2py_func)(&n,&z,cpn,cpd);*/
  if (PyErr_Occurred())
    f2py_success = 0;
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_call_clock();
  #endif
  /*end of callfortranroutine*/
          if (f2py_success) {
  /*pyobjfrom*/
  /*end of pyobjfrom*/
          CFUNCSMESS("Building return value.\n");
          capi_buildvalue = Py_BuildValue("NN",capi_cpn_tmp,capi_cpd_tmp);
  /*closepyobjfrom*/
  /*end of closepyobjfrom*/
          } /*if (f2py_success) after callfortranroutine*/
  /*cleanupfrompyobj*/
    }  /*if (capi_cpd_tmp == NULL) ... else of cpd*/
    /* End of cleaning variable cpd */
    }  /*if (capi_cpn_tmp == NULL) ... else of cpn*/
    /* End of cleaning variable cpn */
    }  /*if (f2py_success) of z frompyobj*/
    /* End of cleaning variable z */
    } /*CHECKSCALAR(n>=1)*/
    } /*if (f2py_success) of n*/
    /* End of cleaning variable n */
  /*end of cleanupfrompyobj*/
      if (capi_buildvalue == NULL) {
  /*routdebugfailure*/
      } else {
  /*routdebugleave*/
      }
      CFUNCSMESS("Freeing memory.\n");
  /*freemem*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_clock();
  #endif
      return capi_buildvalue;
  }
  /******************************** end of clpn ********************************/
  
  /************************************ lpmn ************************************/
  static char doc_f2py_rout_specfun_lpmn[] = "\
  pm,pd = lpmn(m,n,x)\n\nWrapper for ``lpmn``.\
  \n\nParameters\n----------\n"
  "m : input int\n"
  "n : input int\n"
  "x : input float\n"
  "\nReturns\n-------\n"
  "pm : rank-2 array('d') with bounds (m + 1,n + 1)\n"
  "pd : rank-2 array('d') with bounds (m + 1,n + 1)";
  /* extern void F_FUNC(lpmn,LPMN)(int*,int*,int*,double*,double*,double*); */
  static PyObject *f2py_rout_specfun_lpmn(const PyObject *capi_self,
                             PyObject *capi_args,
                             PyObject *capi_keywds,
                             void (*f2py_func)(int*,int*,int*,double*,double*,double*)) {
      PyObject * volatile capi_buildvalue = NULL;
      volatile int f2py_success = 1;
  /*decl*/
  
    int mm = 0;
    int m = 0;
    PyObject *m_capi = Py_None;
    int n = 0;
    PyObject *n_capi = Py_None;
    double x = 0;
    PyObject *x_capi = Py_None;
    double *pm = NULL;
    npy_intp pm_Dims[2] = {-1, -1};
    const int pm_Rank = 2;
    PyArrayObject *capi_pm_tmp = NULL;
    int capi_pm_intent = 0;
    double *pd = NULL;
    npy_intp pd_Dims[2] = {-1, -1};
    const int pd_Rank = 2;
    PyArrayObject *capi_pd_tmp = NULL;
    int capi_pd_intent = 0;
      static char *capi_kwlist[] = {"m","n","x",NULL};
  
  /*routdebugenter*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_clock();
  #endif
      if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
          "OOO|:specfun.lpmn",\
          capi_kwlist,&m_capi,&n_capi,&x_capi))
          return NULL;
  /*frompyobj*/
    /* Processing variable n */
      f2py_success = int_from_pyobj(&n,n_capi,"specfun.lpmn() 2nd argument (n) can't be converted to int");
    if (f2py_success) {
    CHECKSCALAR((n>=0),"(n>=0)","2nd argument n","lpmn:n=%d",n) {
    /* Processing variable x */
      f2py_success = double_from_pyobj(&x,x_capi,"specfun.lpmn() 3rd argument (x) can't be converted to double");
    if (f2py_success) {
    /* Processing variable m */
      f2py_success = int_from_pyobj(&m,m_capi,"specfun.lpmn() 1st argument (m) can't be converted to int");
    if (f2py_success) {
    CHECKSCALAR((m>=0) && (m<=n),"(m>=0) && (m<=n)","1st argument m","lpmn:m=%d",m) {
    /* Processing variable pm */
    pm_Dims[0]=m + 1,pm_Dims[1]=n + 1;
    capi_pm_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_pm_tmp = array_from_pyobj(NPY_DOUBLE,pm_Dims,pm_Rank,capi_pm_intent,Py_None);
    if (capi_pm_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `pm' of specfun.lpmn to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      pm = (double *)(PyArray_DATA(capi_pm_tmp));
  
    /* Processing variable pd */
    pd_Dims[0]=m + 1,pd_Dims[1]=n + 1;
    capi_pd_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_pd_tmp = array_from_pyobj(NPY_DOUBLE,pd_Dims,pd_Rank,capi_pd_intent,Py_None);
    if (capi_pd_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `pd' of specfun.lpmn to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      pd = (double *)(PyArray_DATA(capi_pd_tmp));
  
    /* Processing variable mm */
    mm = m;
  /*end of frompyobj*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_call_clock();
  #endif
  /*callfortranroutine*/
          (*f2py_func)(&mm,&m,&n,&x,pm,pd);
  if (PyErr_Occurred())
    f2py_success = 0;
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_call_clock();
  #endif
  /*end of callfortranroutine*/
          if (f2py_success) {
  /*pyobjfrom*/
  /*end of pyobjfrom*/
          CFUNCSMESS("Building return value.\n");
          capi_buildvalue = Py_BuildValue("NN",capi_pm_tmp,capi_pd_tmp);
  /*closepyobjfrom*/
  /*end of closepyobjfrom*/
          } /*if (f2py_success) after callfortranroutine*/
  /*cleanupfrompyobj*/
    /* End of cleaning variable mm */
    }  /*if (capi_pd_tmp == NULL) ... else of pd*/
    /* End of cleaning variable pd */
    }  /*if (capi_pm_tmp == NULL) ... else of pm*/
    /* End of cleaning variable pm */
    } /*CHECKSCALAR((m>=0) && (m<=n))*/
    } /*if (f2py_success) of m*/
    /* End of cleaning variable m */
    } /*if (f2py_success) of x*/
    /* End of cleaning variable x */
    } /*CHECKSCALAR((n>=0))*/
    } /*if (f2py_success) of n*/
    /* End of cleaning variable n */
  /*end of cleanupfrompyobj*/
      if (capi_buildvalue == NULL) {
  /*routdebugfailure*/
      } else {
  /*routdebugleave*/
      }
      CFUNCSMESS("Freeing memory.\n");
  /*freemem*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_clock();
  #endif
      return capi_buildvalue;
  }
  /******************************** end of lpmn ********************************/
  
  /*********************************** fcszo ***********************************/
  static char doc_f2py_rout_specfun_fcszo[] = "\
  zo = fcszo(kf,nt)\n\nWrapper for ``fcszo``.\
  \n\nParameters\n----------\n"
  "kf : input int\n"
  "nt : input int\n"
  "\nReturns\n-------\n"
  "zo : rank-1 array('D') with bounds (nt)";
  /* extern void F_FUNC(fcszo,FCSZO)(int*,int*,complex_double*); */
  static PyObject *f2py_rout_specfun_fcszo(const PyObject *capi_self,
                             PyObject *capi_args,
                             PyObject *capi_keywds,
                             void (*f2py_func)(int*,int*,complex_double*)) {
      PyObject * volatile capi_buildvalue = NULL;
      volatile int f2py_success = 1;
  /*decl*/
  
    int kf = 0;
    PyObject *kf_capi = Py_None;
    int nt = 0;
    PyObject *nt_capi = Py_None;
    complex_double *zo = NULL;
    npy_intp zo_Dims[1] = {-1};
    const int zo_Rank = 1;
    PyArrayObject *capi_zo_tmp = NULL;
    int capi_zo_intent = 0;
      static char *capi_kwlist[] = {"kf","nt",NULL};
  
  /*routdebugenter*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_clock();
  #endif
      if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
          "OO|:specfun.fcszo",\
          capi_kwlist,&kf_capi,&nt_capi))
          return NULL;
  /*frompyobj*/
    /* Processing variable kf */
      f2py_success = int_from_pyobj(&kf,kf_capi,"specfun.fcszo() 1st argument (kf) can't be converted to int");
    if (f2py_success) {
    CHECKSCALAR((kf==1)||(kf==2),"(kf==1)||(kf==2)","1st argument kf","fcszo:kf=%d",kf) {
    /* Processing variable nt */
      f2py_success = int_from_pyobj(&nt,nt_capi,"specfun.fcszo() 2nd argument (nt) can't be converted to int");
    if (f2py_success) {
    CHECKSCALAR(nt>0,"nt>0","2nd argument nt","fcszo:nt=%d",nt) {
    /* Processing variable zo */
    zo_Dims[0]=nt;
    capi_zo_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_zo_tmp = array_from_pyobj(NPY_CDOUBLE,zo_Dims,zo_Rank,capi_zo_intent,Py_None);
    if (capi_zo_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `zo' of specfun.fcszo to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      zo = (complex_double *)(PyArray_DATA(capi_zo_tmp));
  
  /*end of frompyobj*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_call_clock();
  #endif
  /*callfortranroutine*/
          (*f2py_func)(&kf,&nt,zo);
  if (PyErr_Occurred())
    f2py_success = 0;
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_call_clock();
  #endif
  /*end of callfortranroutine*/
          if (f2py_success) {
  /*pyobjfrom*/
  /*end of pyobjfrom*/
          CFUNCSMESS("Building return value.\n");
          capi_buildvalue = Py_BuildValue("N",capi_zo_tmp);
  /*closepyobjfrom*/
  /*end of closepyobjfrom*/
          } /*if (f2py_success) after callfortranroutine*/
  /*cleanupfrompyobj*/
    }  /*if (capi_zo_tmp == NULL) ... else of zo*/
    /* End of cleaning variable zo */
    } /*CHECKSCALAR(nt>0)*/
    } /*if (f2py_success) of nt*/
    /* End of cleaning variable nt */
    } /*CHECKSCALAR((kf==1)||(kf==2))*/
    } /*if (f2py_success) of kf*/
    /* End of cleaning variable kf */
  /*end of cleanupfrompyobj*/
      if (capi_buildvalue == NULL) {
  /*routdebugfailure*/
      } else {
  /*routdebugleave*/
      }
      CFUNCSMESS("Freeing memory.\n");
  /*freemem*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_clock();
  #endif
      return capi_buildvalue;
  }
  /******************************** end of fcszo ********************************/
  
  /*********************************** cpbdn ***********************************/
  static char doc_f2py_rout_specfun_cpbdn[] = "\
  cpb,cpd = cpbdn(n,z)\n\nWrapper for ``cpbdn``.\
  \n\nParameters\n----------\n"
  "n : input int\n"
  "z : input complex\n"
  "\nReturns\n-------\n"
  "cpb : rank-1 array('D') with bounds (abs(n)+2)\n"
  "cpd : rank-1 array('D') with bounds (abs(n)+2)";
  /* extern void F_FUNC(cpbdn,CPBDN)(int*,complex_double*,complex_double*,complex_double*); */
  static PyObject *f2py_rout_specfun_cpbdn(const PyObject *capi_self,
                             PyObject *capi_args,
                             PyObject *capi_keywds,
                             void (*f2py_func)(int*,complex_double*,complex_double*,complex_double*)) {
      PyObject * volatile capi_buildvalue = NULL;
      volatile int f2py_success = 1;
  /*decl*/
  
    int n = 0;
    PyObject *n_capi = Py_None;
    complex_double z;
    PyObject *z_capi = Py_None;
    complex_double *cpb = NULL;
    npy_intp cpb_Dims[1] = {-1};
    const int cpb_Rank = 1;
    PyArrayObject *capi_cpb_tmp = NULL;
    int capi_cpb_intent = 0;
    complex_double *cpd = NULL;
    npy_intp cpd_Dims[1] = {-1};
    const int cpd_Rank = 1;
    PyArrayObject *capi_cpd_tmp = NULL;
    int capi_cpd_intent = 0;
      static char *capi_kwlist[] = {"n","z",NULL};
  
  /*routdebugenter*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_clock();
  #endif
      if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
          "OO|:specfun.cpbdn",\
          capi_kwlist,&n_capi,&z_capi))
          return NULL;
  /*frompyobj*/
    /* Processing variable n */
      f2py_success = int_from_pyobj(&n,n_capi,"specfun.cpbdn() 1st argument (n) can't be converted to int");
    if (f2py_success) {
    CHECKSCALAR((abs(n)) >= 1,"(abs(n)) >= 1","1st argument n","cpbdn:n=%d",n) {
    /* Processing variable z */
      f2py_success = complex_double_from_pyobj(&z,z_capi,"specfun.cpbdn() 2nd argument (z) can't be converted to complex_double");
    if (f2py_success) {
    /* Processing variable cpb */
    cpb_Dims[0]=abs(n)+2;
    capi_cpb_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_cpb_tmp = array_from_pyobj(NPY_CDOUBLE,cpb_Dims,cpb_Rank,capi_cpb_intent,Py_None);
    if (capi_cpb_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `cpb' of specfun.cpbdn to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      cpb = (complex_double *)(PyArray_DATA(capi_cpb_tmp));
  
    /* Processing variable cpd */
    cpd_Dims[0]=abs(n)+2;
    capi_cpd_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_cpd_tmp = array_from_pyobj(NPY_CDOUBLE,cpd_Dims,cpd_Rank,capi_cpd_intent,Py_None);
    if (capi_cpd_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `cpd' of specfun.cpbdn to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      cpd = (complex_double *)(PyArray_DATA(capi_cpd_tmp));
  
  /*end of frompyobj*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_call_clock();
  #endif
  /*callfortranroutine*/
          (*f2py_func)(&n,&z,cpb,cpd);
  if (PyErr_Occurred())
    f2py_success = 0;
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_call_clock();
  #endif
  /*end of callfortranroutine*/
          if (f2py_success) {
  /*pyobjfrom*/
  /*end of pyobjfrom*/
          CFUNCSMESS("Building return value.\n");
          capi_buildvalue = Py_BuildValue("NN",capi_cpb_tmp,capi_cpd_tmp);
  /*closepyobjfrom*/
  /*end of closepyobjfrom*/
          } /*if (f2py_success) after callfortranroutine*/
  /*cleanupfrompyobj*/
    }  /*if (capi_cpd_tmp == NULL) ... else of cpd*/
    /* End of cleaning variable cpd */
    }  /*if (capi_cpb_tmp == NULL) ... else of cpb*/
    /* End of cleaning variable cpb */
    }  /*if (f2py_success) of z frompyobj*/
    /* End of cleaning variable z */
    } /*CHECKSCALAR((abs(n)) >= 1)*/
    } /*if (f2py_success) of n*/
    /* End of cleaning variable n */
  /*end of cleanupfrompyobj*/
      if (capi_buildvalue == NULL) {
  /*routdebugfailure*/
      } else {
  /*routdebugleave*/
      }
      CFUNCSMESS("Freeing memory.\n");
  /*freemem*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_clock();
  #endif
      return capi_buildvalue;
  }
  /******************************** end of cpbdn ********************************/
  
  /************************************ lpn ************************************/
  static char doc_f2py_rout_specfun_lpn[] = "\
  pn,pd = lpn(n,x)\n\nWrapper for ``lpn``.\
  \n\nParameters\n----------\n"
  "n : input int\n"
  "x : input float\n"
  "\nReturns\n-------\n"
  "pn : rank-1 array('d') with bounds (n + 1)\n"
  "pd : rank-1 array('d') with bounds (n + 1)";
  /* extern void F_FUNC(lpn,LPN)(int*,double*,double*,double*); */
  static PyObject *f2py_rout_specfun_lpn(const PyObject *capi_self,
                             PyObject *capi_args,
                             PyObject *capi_keywds,
                             void (*f2py_func)(int*,double*,double*,double*)) {
      PyObject * volatile capi_buildvalue = NULL;
      volatile int f2py_success = 1;
  /*decl*/
  
    int n = 0;
    PyObject *n_capi = Py_None;
    double x = 0;
    PyObject *x_capi = Py_None;
    double *pn = NULL;
    npy_intp pn_Dims[1] = {-1};
    const int pn_Rank = 1;
    PyArrayObject *capi_pn_tmp = NULL;
    int capi_pn_intent = 0;
    double *pd = NULL;
    npy_intp pd_Dims[1] = {-1};
    const int pd_Rank = 1;
    PyArrayObject *capi_pd_tmp = NULL;
    int capi_pd_intent = 0;
      static char *capi_kwlist[] = {"n","x",NULL};
  
  /*routdebugenter*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_clock();
  #endif
      if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
          "OO|:specfun.lpn",\
          capi_kwlist,&n_capi,&x_capi))
          return NULL;
  /*frompyobj*/
    /* Processing variable n */
      f2py_success = int_from_pyobj(&n,n_capi,"specfun.lpn() 1st argument (n) can't be converted to int");
    if (f2py_success) {
    CHECKSCALAR(n>=1,"n>=1","1st argument n","lpn:n=%d",n) {
    /* Processing variable x */
      f2py_success = double_from_pyobj(&x,x_capi,"specfun.lpn() 2nd argument (x) can't be converted to double");
    if (f2py_success) {
    /* Processing variable pn */
    pn_Dims[0]=n + 1;
    capi_pn_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_pn_tmp = array_from_pyobj(NPY_DOUBLE,pn_Dims,pn_Rank,capi_pn_intent,Py_None);
    if (capi_pn_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `pn' of specfun.lpn to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      pn = (double *)(PyArray_DATA(capi_pn_tmp));
  
    /* Processing variable pd */
    pd_Dims[0]=n + 1;
    capi_pd_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_pd_tmp = array_from_pyobj(NPY_DOUBLE,pd_Dims,pd_Rank,capi_pd_intent,Py_None);
    if (capi_pd_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `pd' of specfun.lpn to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      pd = (double *)(PyArray_DATA(capi_pd_tmp));
  
  /*end of frompyobj*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_call_clock();
  #endif
  /*callfortranroutine*/
          (*f2py_func)(&n,&x,pn,pd);
  if (PyErr_Occurred())
    f2py_success = 0;
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_call_clock();
  #endif
  /*end of callfortranroutine*/
          if (f2py_success) {
  /*pyobjfrom*/
  /*end of pyobjfrom*/
          CFUNCSMESS("Building return value.\n");
          capi_buildvalue = Py_BuildValue("NN",capi_pn_tmp,capi_pd_tmp);
  /*closepyobjfrom*/
  /*end of closepyobjfrom*/
          } /*if (f2py_success) after callfortranroutine*/
  /*cleanupfrompyobj*/
    }  /*if (capi_pd_tmp == NULL) ... else of pd*/
    /* End of cleaning variable pd */
    }  /*if (capi_pn_tmp == NULL) ... else of pn*/
    /* End of cleaning variable pn */
    } /*if (f2py_success) of x*/
    /* End of cleaning variable x */
    } /*CHECKSCALAR(n>=1)*/
    } /*if (f2py_success) of n*/
    /* End of cleaning variable n */
  /*end of cleanupfrompyobj*/
      if (capi_buildvalue == NULL) {
  /*routdebugfailure*/
      } else {
  /*routdebugleave*/
      }
      CFUNCSMESS("Freeing memory.\n");
  /*freemem*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_clock();
  #endif
      return capi_buildvalue;
  }
  /********************************* end of lpn *********************************/
  
  /*********************************** fcoef ***********************************/
  static char doc_f2py_rout_specfun_fcoef[] = "\
  fc = fcoef(kd,m,q,a)\n\nWrapper for ``fcoef``.\
  \n\nParameters\n----------\n"
  "kd : input int\n"
  "m : input int\n"
  "q : input float\n"
  "a : input float\n"
  "\nReturns\n-------\n"
  "fc : rank-1 array('d') with bounds (251)";
  /* extern void F_FUNC(fcoef,FCOEF)(int*,int*,double*,double*,double*); */
  static PyObject *f2py_rout_specfun_fcoef(const PyObject *capi_self,
                             PyObject *capi_args,
                             PyObject *capi_keywds,
                             void (*f2py_func)(int*,int*,double*,double*,double*)) {
      PyObject * volatile capi_buildvalue = NULL;
      volatile int f2py_success = 1;
  /*decl*/
  
    int kd = 0;
    PyObject *kd_capi = Py_None;
    int m = 0;
    PyObject *m_capi = Py_None;
    double q = 0;
    PyObject *q_capi = Py_None;
    double a = 0;
    PyObject *a_capi = Py_None;
    double *fc = NULL;
    npy_intp fc_Dims[1] = {-1};
    const int fc_Rank = 1;
    PyArrayObject *capi_fc_tmp = NULL;
    int capi_fc_intent = 0;
      static char *capi_kwlist[] = {"kd","m","q","a",NULL};
  
  /*routdebugenter*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_clock();
  #endif
      if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
          "OOOO|:specfun.fcoef",\
          capi_kwlist,&kd_capi,&m_capi,&q_capi,&a_capi))
          return NULL;
  /*frompyobj*/
    /* Processing variable kd */
      f2py_success = int_from_pyobj(&kd,kd_capi,"specfun.fcoef() 1st argument (kd) can't be converted to int");
    if (f2py_success) {
    CHECKSCALAR((kd>0) && (kd<5),"(kd>0) && (kd<5)","1st argument kd","fcoef:kd=%d",kd) {
    /* Processing variable m */
      f2py_success = int_from_pyobj(&m,m_capi,"specfun.fcoef() 2nd argument (m) can't be converted to int");
    if (f2py_success) {
    /* Processing variable q */
      f2py_success = double_from_pyobj(&q,q_capi,"specfun.fcoef() 3rd argument (q) can't be converted to double");
    if (f2py_success) {
    CHECKSCALAR(q>=0,"q>=0","3rd argument q","fcoef:q=%g",q) {
    /* Processing variable a */
      f2py_success = double_from_pyobj(&a,a_capi,"specfun.fcoef() 4th argument (a) can't be converted to double");
    if (f2py_success) {
    /* Processing variable fc */
    fc_Dims[0]=251;
    capi_fc_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_fc_tmp = array_from_pyobj(NPY_DOUBLE,fc_Dims,fc_Rank,capi_fc_intent,Py_None);
    if (capi_fc_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `fc' of specfun.fcoef to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      fc = (double *)(PyArray_DATA(capi_fc_tmp));
  
  /*end of frompyobj*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_call_clock();
  #endif
  /*callfortranroutine*/
          (*f2py_func)(&kd,&m,&q,&a,fc);
  if (PyErr_Occurred())
    f2py_success = 0;
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_call_clock();
  #endif
  /*end of callfortranroutine*/
          if (f2py_success) {
  /*pyobjfrom*/
  /*end of pyobjfrom*/
          CFUNCSMESS("Building return value.\n");
          capi_buildvalue = Py_BuildValue("N",capi_fc_tmp);
  /*closepyobjfrom*/
  /*end of closepyobjfrom*/
          } /*if (f2py_success) after callfortranroutine*/
  /*cleanupfrompyobj*/
    }  /*if (capi_fc_tmp == NULL) ... else of fc*/
    /* End of cleaning variable fc */
    } /*if (f2py_success) of a*/
    /* End of cleaning variable a */
    } /*CHECKSCALAR(q>=0)*/
    } /*if (f2py_success) of q*/
    /* End of cleaning variable q */
    } /*if (f2py_success) of m*/
    /* End of cleaning variable m */
    } /*CHECKSCALAR((kd>0) && (kd<5))*/
    } /*if (f2py_success) of kd*/
    /* End of cleaning variable kd */
  /*end of cleanupfrompyobj*/
      if (capi_buildvalue == NULL) {
  /*routdebugfailure*/
      } else {
  /*routdebugleave*/
      }
      CFUNCSMESS("Freeing memory.\n");
  /*freemem*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_clock();
  #endif
      return capi_buildvalue;
  }
  /******************************** end of fcoef ********************************/
  
  /************************************ rcty ************************************/
  static char doc_f2py_rout_specfun_rcty[] = "\
  nm,ry,dy = rcty(n,x)\n\nWrapper for ``rcty``.\
  \n\nParameters\n----------\n"
  "n : input int\n"
  "x : input float\n"
  "\nReturns\n-------\n"
  "nm : int\n"
  "ry : rank-1 array('d') with bounds (n + 1)\n"
  "dy : rank-1 array('d') with bounds (n + 1)";
  /* extern void F_FUNC(rcty,RCTY)(int*,double*,int*,double*,double*); */
  static PyObject *f2py_rout_specfun_rcty(const PyObject *capi_self,
                             PyObject *capi_args,
                             PyObject *capi_keywds,
                             void (*f2py_func)(int*,double*,int*,double*,double*)) {
      PyObject * volatile capi_buildvalue = NULL;
      volatile int f2py_success = 1;
  /*decl*/
  
    int n = 0;
    PyObject *n_capi = Py_None;
    double x = 0;
    PyObject *x_capi = Py_None;
    int nm = 0;
    double *ry = NULL;
    npy_intp ry_Dims[1] = {-1};
    const int ry_Rank = 1;
    PyArrayObject *capi_ry_tmp = NULL;
    int capi_ry_intent = 0;
    double *dy = NULL;
    npy_intp dy_Dims[1] = {-1};
    const int dy_Rank = 1;
    PyArrayObject *capi_dy_tmp = NULL;
    int capi_dy_intent = 0;
      static char *capi_kwlist[] = {"n","x",NULL};
  
  /*routdebugenter*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_clock();
  #endif
      if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
          "OO|:specfun.rcty",\
          capi_kwlist,&n_capi,&x_capi))
          return NULL;
  /*frompyobj*/
    /* Processing variable n */
      f2py_success = int_from_pyobj(&n,n_capi,"specfun.rcty() 1st argument (n) can't be converted to int");
    if (f2py_success) {
    CHECKSCALAR(n>0,"n>0","1st argument n","rcty:n=%d",n) {
    /* Processing variable x */
      f2py_success = double_from_pyobj(&x,x_capi,"specfun.rcty() 2nd argument (x) can't be converted to double");
    if (f2py_success) {
    /* Processing variable nm */
    /* Processing variable ry */
    ry_Dims[0]=n + 1;
    capi_ry_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_ry_tmp = array_from_pyobj(NPY_DOUBLE,ry_Dims,ry_Rank,capi_ry_intent,Py_None);
    if (capi_ry_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `ry' of specfun.rcty to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      ry = (double *)(PyArray_DATA(capi_ry_tmp));
  
    /* Processing variable dy */
    dy_Dims[0]=n + 1;
    capi_dy_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_dy_tmp = array_from_pyobj(NPY_DOUBLE,dy_Dims,dy_Rank,capi_dy_intent,Py_None);
    if (capi_dy_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `dy' of specfun.rcty to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      dy = (double *)(PyArray_DATA(capi_dy_tmp));
  
  /*end of frompyobj*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_call_clock();
  #endif
  /*callfortranroutine*/
          (*f2py_func)(&n,&x,&nm,ry,dy);
  if (PyErr_Occurred())
    f2py_success = 0;
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_call_clock();
  #endif
  /*end of callfortranroutine*/
          if (f2py_success) {
  /*pyobjfrom*/
  /*end of pyobjfrom*/
          CFUNCSMESS("Building return value.\n");
          capi_buildvalue = Py_BuildValue("iNN",nm,capi_ry_tmp,capi_dy_tmp);
  /*closepyobjfrom*/
  /*end of closepyobjfrom*/
          } /*if (f2py_success) after callfortranroutine*/
  /*cleanupfrompyobj*/
    }  /*if (capi_dy_tmp == NULL) ... else of dy*/
    /* End of cleaning variable dy */
    }  /*if (capi_ry_tmp == NULL) ... else of ry*/
    /* End of cleaning variable ry */
    /* End of cleaning variable nm */
    } /*if (f2py_success) of x*/
    /* End of cleaning variable x */
    } /*CHECKSCALAR(n>0)*/
    } /*if (f2py_success) of n*/
    /* End of cleaning variable n */
  /*end of cleanupfrompyobj*/
      if (capi_buildvalue == NULL) {
  /*routdebugfailure*/
      } else {
  /*routdebugleave*/
      }
      CFUNCSMESS("Freeing memory.\n");
  /*freemem*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_clock();
  #endif
      return capi_buildvalue;
  }
  /******************************** end of rcty ********************************/
  
  /************************************ cyzo ************************************/
  static char doc_f2py_rout_specfun_cyzo[] = "\
  zo,zv = cyzo(nt,kf,kc)\n\nWrapper for ``cyzo``.\
  \n\nParameters\n----------\n"
  "nt : input int\n"
  "kf : input int\n"
  "kc : input int\n"
  "\nReturns\n-------\n"
  "zo : rank-1 array('D') with bounds (nt)\n"
  "zv : rank-1 array('D') with bounds (nt)";
  /* extern void F_FUNC(cyzo,CYZO)(int*,int*,int*,complex_double*,complex_double*); */
  static PyObject *f2py_rout_specfun_cyzo(const PyObject *capi_self,
                             PyObject *capi_args,
                             PyObject *capi_keywds,
                             void (*f2py_func)(int*,int*,int*,complex_double*,complex_double*)) {
      PyObject * volatile capi_buildvalue = NULL;
      volatile int f2py_success = 1;
  /*decl*/
  
    int nt = 0;
    PyObject *nt_capi = Py_None;
    int kf = 0;
    PyObject *kf_capi = Py_None;
    int kc = 0;
    PyObject *kc_capi = Py_None;
    complex_double *zo = NULL;
    npy_intp zo_Dims[1] = {-1};
    const int zo_Rank = 1;
    PyArrayObject *capi_zo_tmp = NULL;
    int capi_zo_intent = 0;
    complex_double *zv = NULL;
    npy_intp zv_Dims[1] = {-1};
    const int zv_Rank = 1;
    PyArrayObject *capi_zv_tmp = NULL;
    int capi_zv_intent = 0;
      static char *capi_kwlist[] = {"nt","kf","kc",NULL};
  
  /*routdebugenter*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_clock();
  #endif
      if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
          "OOO|:specfun.cyzo",\
          capi_kwlist,&nt_capi,&kf_capi,&kc_capi))
          return NULL;
  /*frompyobj*/
    /* Processing variable nt */
      f2py_success = int_from_pyobj(&nt,nt_capi,"specfun.cyzo() 1st argument (nt) can't be converted to int");
    if (f2py_success) {
    CHECKSCALAR(nt>0,"nt>0","1st argument nt","cyzo:nt=%d",nt) {
    /* Processing variable kf */
      f2py_success = int_from_pyobj(&kf,kf_capi,"specfun.cyzo() 2nd argument (kf) can't be converted to int");
    if (f2py_success) {
    CHECKSCALAR((kf>=0)&&(kf<=2),"(kf>=0)&&(kf<=2)","2nd argument kf","cyzo:kf=%d",kf) {
    /* Processing variable kc */
      f2py_success = int_from_pyobj(&kc,kc_capi,"specfun.cyzo() 3rd argument (kc) can't be converted to int");
    if (f2py_success) {
    CHECKSCALAR((kc==0)||(kc==1),"(kc==0)||(kc==1)","3rd argument kc","cyzo:kc=%d",kc) {
    /* Processing variable zo */
    zo_Dims[0]=nt;
    capi_zo_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_zo_tmp = array_from_pyobj(NPY_CDOUBLE,zo_Dims,zo_Rank,capi_zo_intent,Py_None);
    if (capi_zo_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `zo' of specfun.cyzo to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      zo = (complex_double *)(PyArray_DATA(capi_zo_tmp));
  
    /* Processing variable zv */
    zv_Dims[0]=nt;
    capi_zv_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_zv_tmp = array_from_pyobj(NPY_CDOUBLE,zv_Dims,zv_Rank,capi_zv_intent,Py_None);
    if (capi_zv_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `zv' of specfun.cyzo to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      zv = (complex_double *)(PyArray_DATA(capi_zv_tmp));
  
  /*end of frompyobj*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_call_clock();
  #endif
  /*callfortranroutine*/
          (*f2py_func)(&nt,&kf,&kc,zo,zv);
  if (PyErr_Occurred())
    f2py_success = 0;
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_call_clock();
  #endif
  /*end of callfortranroutine*/
          if (f2py_success) {
  /*pyobjfrom*/
  /*end of pyobjfrom*/
          CFUNCSMESS("Building return value.\n");
          capi_buildvalue = Py_BuildValue("NN",capi_zo_tmp,capi_zv_tmp);
  /*closepyobjfrom*/
  /*end of closepyobjfrom*/
          } /*if (f2py_success) after callfortranroutine*/
  /*cleanupfrompyobj*/
    }  /*if (capi_zv_tmp == NULL) ... else of zv*/
    /* End of cleaning variable zv */
    }  /*if (capi_zo_tmp == NULL) ... else of zo*/
    /* End of cleaning variable zo */
    } /*CHECKSCALAR((kc==0)||(kc==1))*/
    } /*if (f2py_success) of kc*/
    /* End of cleaning variable kc */
    } /*CHECKSCALAR((kf>=0)&&(kf<=2))*/
    } /*if (f2py_success) of kf*/
    /* End of cleaning variable kf */
    } /*CHECKSCALAR(nt>0)*/
    } /*if (f2py_success) of nt*/
    /* End of cleaning variable nt */
  /*end of cleanupfrompyobj*/
      if (capi_buildvalue == NULL) {
  /*routdebugfailure*/
      } else {
  /*routdebugleave*/
      }
      CFUNCSMESS("Freeing memory.\n");
  /*freemem*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_clock();
  #endif
      return capi_buildvalue;
  }
  /******************************** end of cyzo ********************************/
  
  /*********************************** klvnzo ***********************************/
  static char doc_f2py_rout_specfun_klvnzo[] = "\
  zo = klvnzo(nt,kd)\n\nWrapper for ``klvnzo``.\
  \n\nParameters\n----------\n"
  "nt : input int\n"
  "kd : input int\n"
  "\nReturns\n-------\n"
  "zo : rank-1 array('d') with bounds (nt)";
  /* extern void F_FUNC(klvnzo,KLVNZO)(int*,int*,double*); */
  static PyObject *f2py_rout_specfun_klvnzo(const PyObject *capi_self,
                             PyObject *capi_args,
                             PyObject *capi_keywds,
                             void (*f2py_func)(int*,int*,double*)) {
      PyObject * volatile capi_buildvalue = NULL;
      volatile int f2py_success = 1;
  /*decl*/
  
    int nt = 0;
    PyObject *nt_capi = Py_None;
    int kd = 0;
    PyObject *kd_capi = Py_None;
    double *zo = NULL;
    npy_intp zo_Dims[1] = {-1};
    const int zo_Rank = 1;
    PyArrayObject *capi_zo_tmp = NULL;
    int capi_zo_intent = 0;
      static char *capi_kwlist[] = {"nt","kd",NULL};
  
  /*routdebugenter*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_clock();
  #endif
      if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
          "OO|:specfun.klvnzo",\
          capi_kwlist,&nt_capi,&kd_capi))
          return NULL;
  /*frompyobj*/
    /* Processing variable nt */
      f2py_success = int_from_pyobj(&nt,nt_capi,"specfun.klvnzo() 1st argument (nt) can't be converted to int");
    if (f2py_success) {
    CHECKSCALAR(nt>0,"nt>0","1st argument nt","klvnzo:nt=%d",nt) {
    /* Processing variable kd */
      f2py_success = int_from_pyobj(&kd,kd_capi,"specfun.klvnzo() 2nd argument (kd) can't be converted to int");
    if (f2py_success) {
    CHECKSCALAR((kd>=1)&&(kd<=8),"(kd>=1)&&(kd<=8)","2nd argument kd","klvnzo:kd=%d",kd) {
    /* Processing variable zo */
    zo_Dims[0]=nt;
    capi_zo_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_zo_tmp = array_from_pyobj(NPY_DOUBLE,zo_Dims,zo_Rank,capi_zo_intent,Py_None);
    if (capi_zo_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `zo' of specfun.klvnzo to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      zo = (double *)(PyArray_DATA(capi_zo_tmp));
  
  /*end of frompyobj*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_call_clock();
  #endif
  /*callfortranroutine*/
          (*f2py_func)(&nt,&kd,zo);
  if (PyErr_Occurred())
    f2py_success = 0;
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_call_clock();
  #endif
  /*end of callfortranroutine*/
          if (f2py_success) {
  /*pyobjfrom*/
  /*end of pyobjfrom*/
          CFUNCSMESS("Building return value.\n");
          capi_buildvalue = Py_BuildValue("N",capi_zo_tmp);
  /*closepyobjfrom*/
  /*end of closepyobjfrom*/
          } /*if (f2py_success) after callfortranroutine*/
  /*cleanupfrompyobj*/
    }  /*if (capi_zo_tmp == NULL) ... else of zo*/
    /* End of cleaning variable zo */
    } /*CHECKSCALAR((kd>=1)&&(kd<=8))*/
    } /*if (f2py_success) of kd*/
    /* End of cleaning variable kd */
    } /*CHECKSCALAR(nt>0)*/
    } /*if (f2py_success) of nt*/
    /* End of cleaning variable nt */
  /*end of cleanupfrompyobj*/
      if (capi_buildvalue == NULL) {
  /*routdebugfailure*/
      } else {
  /*routdebugleave*/
      }
      CFUNCSMESS("Freeing memory.\n");
  /*freemem*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_clock();
  #endif
      return capi_buildvalue;
  }
  /******************************* end of klvnzo *******************************/
  
  /************************************ jyzo ************************************/
  static char doc_f2py_rout_specfun_jyzo[] = "\
  rj0,rj1,ry0,ry1 = jyzo(n,nt)\n\nWrapper for ``jyzo``.\
  \n\nParameters\n----------\n"
  "n : input int\n"
  "nt : input int\n"
  "\nReturns\n-------\n"
  "rj0 : rank-1 array('d') with bounds (nt)\n"
  "rj1 : rank-1 array('d') with bounds (nt)\n"
  "ry0 : rank-1 array('d') with bounds (nt)\n"
  "ry1 : rank-1 array('d') with bounds (nt)";
  /* extern void F_FUNC(jyzo,JYZO)(int*,int*,double*,double*,double*,double*); */
  static PyObject *f2py_rout_specfun_jyzo(const PyObject *capi_self,
                             PyObject *capi_args,
                             PyObject *capi_keywds,
                             void (*f2py_func)(int*,int*,double*,double*,double*,double*)) {
      PyObject * volatile capi_buildvalue = NULL;
      volatile int f2py_success = 1;
  /*decl*/
  
    int n = 0;
    PyObject *n_capi = Py_None;
    int nt = 0;
    PyObject *nt_capi = Py_None;
    double *rj0 = NULL;
    npy_intp rj0_Dims[1] = {-1};
    const int rj0_Rank = 1;
    PyArrayObject *capi_rj0_tmp = NULL;
    int capi_rj0_intent = 0;
    double *rj1 = NULL;
    npy_intp rj1_Dims[1] = {-1};
    const int rj1_Rank = 1;
    PyArrayObject *capi_rj1_tmp = NULL;
    int capi_rj1_intent = 0;
    double *ry0 = NULL;
    npy_intp ry0_Dims[1] = {-1};
    const int ry0_Rank = 1;
    PyArrayObject *capi_ry0_tmp = NULL;
    int capi_ry0_intent = 0;
    double *ry1 = NULL;
    npy_intp ry1_Dims[1] = {-1};
    const int ry1_Rank = 1;
    PyArrayObject *capi_ry1_tmp = NULL;
    int capi_ry1_intent = 0;
      static char *capi_kwlist[] = {"n","nt",NULL};
  
  /*routdebugenter*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_clock();
  #endif
      if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
          "OO|:specfun.jyzo",\
          capi_kwlist,&n_capi,&nt_capi))
          return NULL;
  /*frompyobj*/
    /* Processing variable n */
      f2py_success = int_from_pyobj(&n,n_capi,"specfun.jyzo() 1st argument (n) can't be converted to int");
    if (f2py_success) {
    CHECKSCALAR(n>=0,"n>=0","1st argument n","jyzo:n=%d",n) {
    /* Processing variable nt */
      f2py_success = int_from_pyobj(&nt,nt_capi,"specfun.jyzo() 2nd argument (nt) can't be converted to int");
    if (f2py_success) {
    CHECKSCALAR(nt>0,"nt>0","2nd argument nt","jyzo:nt=%d",nt) {
    /* Processing variable rj0 */
    rj0_Dims[0]=nt;
    capi_rj0_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_rj0_tmp = array_from_pyobj(NPY_DOUBLE,rj0_Dims,rj0_Rank,capi_rj0_intent,Py_None);
    if (capi_rj0_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `rj0' of specfun.jyzo to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      rj0 = (double *)(PyArray_DATA(capi_rj0_tmp));
  
    /* Processing variable rj1 */
    rj1_Dims[0]=nt;
    capi_rj1_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_rj1_tmp = array_from_pyobj(NPY_DOUBLE,rj1_Dims,rj1_Rank,capi_rj1_intent,Py_None);
    if (capi_rj1_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `rj1' of specfun.jyzo to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      rj1 = (double *)(PyArray_DATA(capi_rj1_tmp));
  
    /* Processing variable ry0 */
    ry0_Dims[0]=nt;
    capi_ry0_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_ry0_tmp = array_from_pyobj(NPY_DOUBLE,ry0_Dims,ry0_Rank,capi_ry0_intent,Py_None);
    if (capi_ry0_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `ry0' of specfun.jyzo to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      ry0 = (double *)(PyArray_DATA(capi_ry0_tmp));
  
    /* Processing variable ry1 */
    ry1_Dims[0]=nt;
    capi_ry1_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_ry1_tmp = array_from_pyobj(NPY_DOUBLE,ry1_Dims,ry1_Rank,capi_ry1_intent,Py_None);
    if (capi_ry1_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `ry1' of specfun.jyzo to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      ry1 = (double *)(PyArray_DATA(capi_ry1_tmp));
  
  /*end of frompyobj*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_call_clock();
  #endif
  /*callfortranroutine*/
          (*f2py_func)(&n,&nt,rj0,rj1,ry0,ry1);
  if (PyErr_Occurred())
    f2py_success = 0;
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_call_clock();
  #endif
  /*end of callfortranroutine*/
          if (f2py_success) {
  /*pyobjfrom*/
  /*end of pyobjfrom*/
          CFUNCSMESS("Building return value.\n");
          capi_buildvalue = Py_BuildValue("NNNN",capi_rj0_tmp,capi_rj1_tmp,capi_ry0_tmp,capi_ry1_tmp);
  /*closepyobjfrom*/
  /*end of closepyobjfrom*/
          } /*if (f2py_success) after callfortranroutine*/
  /*cleanupfrompyobj*/
    }  /*if (capi_ry1_tmp == NULL) ... else of ry1*/
    /* End of cleaning variable ry1 */
    }  /*if (capi_ry0_tmp == NULL) ... else of ry0*/
    /* End of cleaning variable ry0 */
    }  /*if (capi_rj1_tmp == NULL) ... else of rj1*/
    /* End of cleaning variable rj1 */
    }  /*if (capi_rj0_tmp == NULL) ... else of rj0*/
    /* End of cleaning variable rj0 */
    } /*CHECKSCALAR(nt>0)*/
    } /*if (f2py_success) of nt*/
    /* End of cleaning variable nt */
    } /*CHECKSCALAR(n>=0)*/
    } /*if (f2py_success) of n*/
    /* End of cleaning variable n */
  /*end of cleanupfrompyobj*/
      if (capi_buildvalue == NULL) {
  /*routdebugfailure*/
      } else {
  /*routdebugleave*/
      }
      CFUNCSMESS("Freeing memory.\n");
  /*freemem*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_clock();
  #endif
      return capi_buildvalue;
  }
  /******************************** end of jyzo ********************************/
  
  /************************************ rctj ************************************/
  static char doc_f2py_rout_specfun_rctj[] = "\
  nm,rj,dj = rctj(n,x)\n\nWrapper for ``rctj``.\
  \n\nParameters\n----------\n"
  "n : input int\n"
  "x : input float\n"
  "\nReturns\n-------\n"
  "nm : int\n"
  "rj : rank-1 array('d') with bounds (n + 1)\n"
  "dj : rank-1 array('d') with bounds (n + 1)";
  /* extern void F_FUNC(rctj,RCTJ)(int*,double*,int*,double*,double*); */
  static PyObject *f2py_rout_specfun_rctj(const PyObject *capi_self,
                             PyObject *capi_args,
                             PyObject *capi_keywds,
                             void (*f2py_func)(int*,double*,int*,double*,double*)) {
      PyObject * volatile capi_buildvalue = NULL;
      volatile int f2py_success = 1;
  /*decl*/
  
    int n = 0;
    PyObject *n_capi = Py_None;
    double x = 0;
    PyObject *x_capi = Py_None;
    int nm = 0;
    double *rj = NULL;
    npy_intp rj_Dims[1] = {-1};
    const int rj_Rank = 1;
    PyArrayObject *capi_rj_tmp = NULL;
    int capi_rj_intent = 0;
    double *dj = NULL;
    npy_intp dj_Dims[1] = {-1};
    const int dj_Rank = 1;
    PyArrayObject *capi_dj_tmp = NULL;
    int capi_dj_intent = 0;
      static char *capi_kwlist[] = {"n","x",NULL};
  
  /*routdebugenter*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_clock();
  #endif
      if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
          "OO|:specfun.rctj",\
          capi_kwlist,&n_capi,&x_capi))
          return NULL;
  /*frompyobj*/
    /* Processing variable n */
      f2py_success = int_from_pyobj(&n,n_capi,"specfun.rctj() 1st argument (n) can't be converted to int");
    if (f2py_success) {
    CHECKSCALAR(n>0,"n>0","1st argument n","rctj:n=%d",n) {
    /* Processing variable x */
      f2py_success = double_from_pyobj(&x,x_capi,"specfun.rctj() 2nd argument (x) can't be converted to double");
    if (f2py_success) {
    /* Processing variable nm */
    /* Processing variable rj */
    rj_Dims[0]=n + 1;
    capi_rj_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_rj_tmp = array_from_pyobj(NPY_DOUBLE,rj_Dims,rj_Rank,capi_rj_intent,Py_None);
    if (capi_rj_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `rj' of specfun.rctj to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      rj = (double *)(PyArray_DATA(capi_rj_tmp));
  
    /* Processing variable dj */
    dj_Dims[0]=n + 1;
    capi_dj_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_dj_tmp = array_from_pyobj(NPY_DOUBLE,dj_Dims,dj_Rank,capi_dj_intent,Py_None);
    if (capi_dj_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `dj' of specfun.rctj to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      dj = (double *)(PyArray_DATA(capi_dj_tmp));
  
  /*end of frompyobj*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_call_clock();
  #endif
  /*callfortranroutine*/
          (*f2py_func)(&n,&x,&nm,rj,dj);
  if (PyErr_Occurred())
    f2py_success = 0;
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_call_clock();
  #endif
  /*end of callfortranroutine*/
          if (f2py_success) {
  /*pyobjfrom*/
  /*end of pyobjfrom*/
          CFUNCSMESS("Building return value.\n");
          capi_buildvalue = Py_BuildValue("iNN",nm,capi_rj_tmp,capi_dj_tmp);
  /*closepyobjfrom*/
  /*end of closepyobjfrom*/
          } /*if (f2py_success) after callfortranroutine*/
  /*cleanupfrompyobj*/
    }  /*if (capi_dj_tmp == NULL) ... else of dj*/
    /* End of cleaning variable dj */
    }  /*if (capi_rj_tmp == NULL) ... else of rj*/
    /* End of cleaning variable rj */
    /* End of cleaning variable nm */
    } /*if (f2py_success) of x*/
    /* End of cleaning variable x */
    } /*CHECKSCALAR(n>0)*/
    } /*if (f2py_success) of n*/
    /* End of cleaning variable n */
  /*end of cleanupfrompyobj*/
      if (capi_buildvalue == NULL) {
  /*routdebugfailure*/
      } else {
  /*routdebugleave*/
      }
      CFUNCSMESS("Freeing memory.\n");
  /*freemem*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_clock();
  #endif
      return capi_buildvalue;
  }
  /******************************** end of rctj ********************************/
  
  /************************************ segv ************************************/
  static char doc_f2py_rout_specfun_segv[] = "\
  cv,eg = segv(m,n,c,kd)\n\nWrapper for ``segv``.\
  \n\nParameters\n----------\n"
  "m : input int\n"
  "n : input int\n"
  "c : input float\n"
  "kd : input int\n"
  "\nReturns\n-------\n"
  "cv : float\n"
  "eg : rank-1 array('d') with bounds (n-m+2)";
  /* extern void F_FUNC(segv,SEGV)(int*,int*,double*,int*,double*,double*); */
  static PyObject *f2py_rout_specfun_segv(const PyObject *capi_self,
                             PyObject *capi_args,
                             PyObject *capi_keywds,
                             void (*f2py_func)(int*,int*,double*,int*,double*,double*)) {
      PyObject * volatile capi_buildvalue = NULL;
      volatile int f2py_success = 1;
  /*decl*/
  
    int m = 0;
    PyObject *m_capi = Py_None;
    int n = 0;
    PyObject *n_capi = Py_None;
    double c = 0;
    PyObject *c_capi = Py_None;
    int kd = 0;
    PyObject *kd_capi = Py_None;
    double cv = 0;
    double *eg = NULL;
    npy_intp eg_Dims[1] = {-1};
    const int eg_Rank = 1;
    PyArrayObject *capi_eg_tmp = NULL;
    int capi_eg_intent = 0;
      static char *capi_kwlist[] = {"m","n","c","kd",NULL};
  
  /*routdebugenter*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_clock();
  #endif
      if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
          "OOOO|:specfun.segv",\
          capi_kwlist,&m_capi,&n_capi,&c_capi,&kd_capi))
          return NULL;
  /*frompyobj*/
    /* Processing variable m */
      f2py_success = int_from_pyobj(&m,m_capi,"specfun.segv() 1st argument (m) can't be converted to int");
    if (f2py_success) {
    /* Processing variable c */
      f2py_success = double_from_pyobj(&c,c_capi,"specfun.segv() 3rd argument (c) can't be converted to double");
    if (f2py_success) {
    /* Processing variable kd */
      f2py_success = int_from_pyobj(&kd,kd_capi,"specfun.segv() 4th argument (kd) can't be converted to int");
    if (f2py_success) {
    CHECKSCALAR((kd==-1) || (kd==1),"(kd==-1) || (kd==1)","4th argument kd","segv:kd=%d",kd) {
    /* Processing variable cv */
    /* Processing variable n */
      f2py_success = int_from_pyobj(&n,n_capi,"specfun.segv() 2nd argument (n) can't be converted to int");
    if (f2py_success) {
    CHECKSCALAR((n>=m) && ((n-m)<199),"(n>=m) && ((n-m)<199)","2nd argument n","segv:n=%d",n) {
    /* Processing variable eg */
    eg_Dims[0]=n-m+2;
    capi_eg_intent |= F2PY_INTENT_OUT|F2PY_INTENT_HIDE;
    capi_eg_tmp = array_from_pyobj(NPY_DOUBLE,eg_Dims,eg_Rank,capi_eg_intent,Py_None);
    if (capi_eg_tmp == NULL) {
      PyObject *exc, *val, *tb;
      PyErr_Fetch(&exc, &val, &tb);
      PyErr_SetString(exc ? exc : specfun_error,"failed in converting hidden `eg' of specfun.segv to C/Fortran array" );
      npy_PyErr_ChainExceptionsCause(exc, val, tb);
    } else {
      eg = (double *)(PyArray_DATA(capi_eg_tmp));
  
  /*end of frompyobj*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_call_clock();
  #endif
  /*callfortranroutine*/
          (*f2py_func)(&m,&n,&c,&kd,&cv,eg);
  if (PyErr_Occurred())
    f2py_success = 0;
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_call_clock();
  #endif
  /*end of callfortranroutine*/
          if (f2py_success) {
  /*pyobjfrom*/
  /*end of pyobjfrom*/
          CFUNCSMESS("Building return value.\n");
          capi_buildvalue = Py_BuildValue("dN",cv,capi_eg_tmp);
  /*closepyobjfrom*/
  /*end of closepyobjfrom*/
          } /*if (f2py_success) after callfortranroutine*/
  /*cleanupfrompyobj*/
    }  /*if (capi_eg_tmp == NULL) ... else of eg*/
    /* End of cleaning variable eg */
    } /*CHECKSCALAR((n>=m) && ((n-m)<199))*/
    } /*if (f2py_success) of n*/
    /* End of cleaning variable n */
    /* End of cleaning variable cv */
    } /*CHECKSCALAR((kd==-1) || (kd==1))*/
    } /*if (f2py_success) of kd*/
    /* End of cleaning variable kd */
    } /*if (f2py_success) of c*/
    /* End of cleaning variable c */
    } /*if (f2py_success) of m*/
    /* End of cleaning variable m */
  /*end of cleanupfrompyobj*/
      if (capi_buildvalue == NULL) {
  /*routdebugfailure*/
      } else {
  /*routdebugleave*/
      }
      CFUNCSMESS("Freeing memory.\n");
  /*freemem*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_clock();
  #endif
      return capi_buildvalue;
  }
  /******************************** end of segv ********************************/
  /*eof body*/
  
  /******************* See f2py2e/f90mod_rules.py: buildhooks *******************/
  /*need_f90modhooks*/
  
  /************** See f2py2e/rules.py: module_rules['modulebody'] **************/
  
  /******************* See f2py2e/common_rules.py: buildhooks *******************/
  
  /*need_commonhooks*/
  
  /**************************** See f2py2e/rules.py ****************************/
  
  static FortranDataDef f2py_routine_defs[] = {
    {"clqmn",-1,{{-1}},0,(char *)F_FUNC(clqmn,CLQMN),(f2py_init_func)f2py_rout_specfun_clqmn,doc_f2py_rout_specfun_clqmn},
    {"lqmn",-1,{{-1}},0,(char *)F_FUNC(lqmn,LQMN),(f2py_init_func)f2py_rout_specfun_lqmn,doc_f2py_rout_specfun_lqmn},
    {"clpmn",-1,{{-1}},0,(char *)F_FUNC(clpmn,CLPMN),(f2py_init_func)f2py_rout_specfun_clpmn,doc_f2py_rout_specfun_clpmn},
    {"jdzo",-1,{{-1}},0,(char *)F_FUNC(jdzo,JDZO),(f2py_init_func)f2py_rout_specfun_jdzo,doc_f2py_rout_specfun_jdzo},
    {"bernob",-1,{{-1}},0,(char *)F_FUNC(bernob,BERNOB),(f2py_init_func)f2py_rout_specfun_bernob,doc_f2py_rout_specfun_bernob},
    {"clqn",-1,{{-1}},0,(char *)F_FUNC(clqn,CLQN),(f2py_init_func)f2py_rout_specfun_clqn,doc_f2py_rout_specfun_clqn},
    {"airyzo",-1,{{-1}},0,(char *)F_FUNC(airyzo,AIRYZO),(f2py_init_func)f2py_rout_specfun_airyzo,doc_f2py_rout_specfun_airyzo},
    {"eulerb",-1,{{-1}},0,(char *)F_FUNC(eulerb,EULERB),(f2py_init_func)f2py_rout_specfun_eulerb,doc_f2py_rout_specfun_eulerb},
    {"lqnb",-1,{{-1}},0,(char *)F_FUNC(lqnb,LQNB),(f2py_init_func)f2py_rout_specfun_lqnb,doc_f2py_rout_specfun_lqnb},
    {"lamv",-1,{{-1}},0,(char *)F_FUNC(lamv,LAMV),(f2py_init_func)f2py_rout_specfun_lamv,doc_f2py_rout_specfun_lamv},
    {"pbdv",-1,{{-1}},0,(char *)F_FUNC(pbdv,PBDV),(f2py_init_func)f2py_rout_specfun_pbdv,doc_f2py_rout_specfun_pbdv},
    {"cerzo",-1,{{-1}},0,(char *)F_FUNC(cerzo,CERZO),(f2py_init_func)f2py_rout_specfun_cerzo,doc_f2py_rout_specfun_cerzo},
    {"lamn",-1,{{-1}},0,(char *)F_FUNC(lamn,LAMN),(f2py_init_func)f2py_rout_specfun_lamn,doc_f2py_rout_specfun_lamn},
    {"clpn",-1,{{-1}},0,(char *)F_FUNC(clpn,CLPN),(f2py_init_func)f2py_rout_specfun_clpn,doc_f2py_rout_specfun_clpn},
    {"lpmn",-1,{{-1}},0,(char *)F_FUNC(lpmn,LPMN),(f2py_init_func)f2py_rout_specfun_lpmn,doc_f2py_rout_specfun_lpmn},
    {"fcszo",-1,{{-1}},0,(char *)F_FUNC(fcszo,FCSZO),(f2py_init_func)f2py_rout_specfun_fcszo,doc_f2py_rout_specfun_fcszo},
    {"cpbdn",-1,{{-1}},0,(char *)F_FUNC(cpbdn,CPBDN),(f2py_init_func)f2py_rout_specfun_cpbdn,doc_f2py_rout_specfun_cpbdn},
    {"lpn",-1,{{-1}},0,(char *)F_FUNC(lpn,LPN),(f2py_init_func)f2py_rout_specfun_lpn,doc_f2py_rout_specfun_lpn},
    {"fcoef",-1,{{-1}},0,(char *)F_FUNC(fcoef,FCOEF),(f2py_init_func)f2py_rout_specfun_fcoef,doc_f2py_rout_specfun_fcoef},
    {"rcty",-1,{{-1}},0,(char *)F_FUNC(rcty,RCTY),(f2py_init_func)f2py_rout_specfun_rcty,doc_f2py_rout_specfun_rcty},
    {"cyzo",-1,{{-1}},0,(char *)F_FUNC(cyzo,CYZO),(f2py_init_func)f2py_rout_specfun_cyzo,doc_f2py_rout_specfun_cyzo},
    {"klvnzo",-1,{{-1}},0,(char *)F_FUNC(klvnzo,KLVNZO),(f2py_init_func)f2py_rout_specfun_klvnzo,doc_f2py_rout_specfun_klvnzo},
    {"jyzo",-1,{{-1}},0,(char *)F_FUNC(jyzo,JYZO),(f2py_init_func)f2py_rout_specfun_jyzo,doc_f2py_rout_specfun_jyzo},
    {"rctj",-1,{{-1}},0,(char *)F_FUNC(rctj,RCTJ),(f2py_init_func)f2py_rout_specfun_rctj,doc_f2py_rout_specfun_rctj},
    {"segv",-1,{{-1}},0,(char *)F_FUNC(segv,SEGV),(f2py_init_func)f2py_rout_specfun_segv,doc_f2py_rout_specfun_segv},
  
  /*eof routine_defs*/
    {NULL}
  };
  
  static PyMethodDef f2py_module_methods[] = {
  
    {NULL,NULL}
  };
  
  static struct PyModuleDef moduledef = {
    PyModuleDef_HEAD_INIT,
    "specfun",
    NULL,
    -1,
    f2py_module_methods,
    NULL,
    NULL,
    NULL,
    NULL
  };
  
  PyMODINIT_FUNC PyInit_specfun(void) {
    int i;
    PyObject *m,*d, *s, *tmp;
    m = specfun_module = PyModule_Create(&moduledef);
    Py_SET_TYPE(&PyFortran_Type, &PyType_Type);
    import_array();
    if (PyErr_Occurred())
      {PyErr_SetString(PyExc_ImportError, "can't initialize module specfun (failed to import numpy)"); return m;}
    d = PyModule_GetDict(m);
    s = PyUnicode_FromString("1.21.2");
    PyDict_SetItemString(d, "__version__", s);
    Py_DECREF(s);
    s = PyUnicode_FromString(
      "This module 'specfun' is auto-generated with f2py (version:1.21.2).\nFunctions:\n"
  "  cqm,cqd = clqmn(m,n,z)\n"
  "  qm,qd = lqmn(m,n,x)\n"
  "  cpm,cpd = clpmn(m,n,x,y,ntype)\n"
  "  n,m,pcode,zo = jdzo(nt)\n"
  "  bn = bernob(n)\n"
  "  cqn,cqd = clqn(n,z)\n"
  "  xa,xb,xc,xd = airyzo(nt,kf=1)\n"
  "  en = eulerb(n)\n"
  "  qn,qd = lqnb(n,x)\n"
  "  vm,vl,dl = lamv(v,x)\n"
  "  dv,dp,pdf,pdd = pbdv(v,x)\n"
  "  zo = cerzo(nt)\n"
  "  nm,bl,dl = lamn(n,x)\n"
  "  cpn,cpd = clpn(n,z)\n"
  "  pm,pd = lpmn(m,n,x)\n"
  "  zo = fcszo(kf,nt)\n"
  "  cpb,cpd = cpbdn(n,z)\n"
  "  pn,pd = lpn(n,x)\n"
  "  fc = fcoef(kd,m,q,a)\n"
  "  nm,ry,dy = rcty(n,x)\n"
  "  zo,zv = cyzo(nt,kf,kc)\n"
  "  zo = klvnzo(nt,kd)\n"
  "  rj0,rj1,ry0,ry1 = jyzo(n,nt)\n"
  "  nm,rj,dj = rctj(n,x)\n"
  "  cv,eg = segv(m,n,c,kd)\n"
  ".");
    PyDict_SetItemString(d, "__doc__", s);
    Py_DECREF(s);
    s = PyUnicode_FromString("1.21.2");
    PyDict_SetItemString(d, "__f2py_numpy_version__", s);
    Py_DECREF(s);
    specfun_error = PyErr_NewException ("specfun.error", NULL, NULL);
    /*
     * Store the error object inside the dict, so that it could get deallocated.
     * (in practice, this is a module, so it likely will not and cannot.)
     */
    PyDict_SetItemString(d, "_specfun_error", specfun_error);
    Py_DECREF(specfun_error);
    for(i=0;f2py_routine_defs[i].name!=NULL;i++) {
      tmp = PyFortranObject_NewAsAttr(&f2py_routine_defs[i]);
      PyDict_SetItemString(d, f2py_routine_defs[i].name, tmp);
      Py_DECREF(tmp);
    }
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  /*eof initf2pywraphooks*/
  /*eof initf90modhooks*/
  
  /*eof initcommonhooks*/
  
  
  #ifdef F2PY_REPORT_ATEXIT
    if (! PyErr_Occurred())
      on_exit(f2py_report_on_exit,(void*)"specfun");
  #endif
    return m;
  }
  #ifdef __cplusplus
  }
  #endif
  