question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

f2py (1.20) causes segmentation fault when calling callback function

See original GitHub issue

See also #18335

Reproducing code example:

For the same code as in #18335, when any callback function is actually called, it causes a segmentation fault.

subroutine pyexit(code)

  implicit none
  integer(kind=4), intent(IN):: code

  !f2py    integer intent(in) :: code
  !f2py    intent(callback, hide) :: endkepler(code)
  external endkepler

  call endkepler(code)

end subroutine pyexit
    def endkepler(self, code = None):
        """
        Callback to end KEPLER.
        """
        print(' [endkepler] has been called.')
        self.status = 'terminated'
        # del sys.modules[self._kepler.__name__]
        return code
        # raise KeplerTerminated(code)

...
    def _set_callbacks(self):
        self._kepler.endkepler = self.endkepler

the c code generated is (excerpt, full version in referece)

/******************* See f2py2e/cb_rules.py: buildcallback *******************/

/******************* cb_endkepler_in_pyexit__user__routines *******************/
typedef struct {
    PyObject *capi;
    PyTupleObject *args_capi;
    int nofargs;
    jmp_buf jmpbuf;
} cb_endkepler_in_pyexit__user__routines_t;

#if defined(F2PY_THREAD_LOCAL_DECL) && !defined(F2PY_USE_PYTHON_TLS)

static F2PY_THREAD_LOCAL_DECL cb_endkepler_in_pyexit__user__routines_t *_active_cb_endkepler_in_pyexit__user__routines = NULL;

static cb_endkepler_in_pyexit__user__routines_t *swap_active_cb_endkepler_in_pyexit__user__routines(cb_endkepler_in_pyexit__user__routines_t *ptr) {
    cb_endkepler_in_pyexit__user__routines_t *prev = _active_cb_endkepler_in_pyexit__user__routines;
    _active_cb_endkepler_in_pyexit__user__routines = ptr;
    return prev;
}

static cb_endkepler_in_pyexit__user__routines_t *get_active_cb_endkepler_in_pyexit__user__routines(void) {
    return _active_cb_endkepler_in_pyexit__user__routines;
}

#else

static cb_endkepler_in_pyexit__user__routines_t *swap_active_cb_endkepler_in_pyexit__user__routines(cb_endkepler_in_pyexit__user__routines_t *ptr) {
    char *key = "__f2py_cb_cb_endkepler_in_pyexit__user__routines";
    return (cb_endkepler_in_pyexit__user__routines_t *)F2PySwapThreadLocalCallbackPtr(key, ptr);
}

static cb_endkepler_in_pyexit__user__routines_t *get_active_cb_endkepler_in_pyexit__user__routines(void) {
    char *key = "__f2py_cb_cb_endkepler_in_pyexit__user__routines";
    return (cb_endkepler_in_pyexit__user__routines_t *)F2PyGetThreadLocalCallbackPtr(key);
}

#endif

/*typedef void(*cb_endkepler_in_pyexit__user__routines_typedef)(int *);*/
extern void F_FUNC(endkepler,ENDKEPLER) (int *foo_cb_capi) {
    cb_endkepler_in_pyexit__user__routines_t *cb;
    PyTupleObject *capi_arglist = NULL;
    PyObject *capi_return = NULL;
    PyObject *capi_tmp = NULL;
    PyObject *capi_arglist_list = NULL;
    int capi_j,capi_i = 0;
    int capi_longjmp_ok = 1;
/*decl*/
    int foo=(*foo_cb_capi);
#ifdef F2PY_REPORT_ATEXIT
f2py_cb_start_clock();
#endif
    cb = get_active_cb_endkepler_in_pyexit__user__routines();
    capi_arglist = cb->args_capi;
    CFUNCSMESS("cb:Call-back function cb_endkepler_in_pyexit__user__routines (maxnofargs=1(-0))\n");
    CFUNCSMESSPY("cb:cb_endkepler_in_pyexit__user__routines_capi=",cb->capi);
    if (cb->capi==NULL) {
        capi_longjmp_ok = 0;
        cb->capi = PyObject_GetAttrString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_module,"endkepler");
    }
    if (cb->capi==NULL) {
        PyErr_SetString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_error,"cb: Callback endkepler not defined (as an argument or module _kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz attribute).\n");
        goto capi_fail;
    }
    if (F2PyCapsule_Check(cb->capi)) {
    cb_endkepler_in_pyexit__user__routines_typedef cb_endkepler_in_pyexit__user__routines_cptr;
    cb_endkepler_in_pyexit__user__routines_cptr = F2PyCapsule_AsVoidPtr(cb->capi);
    (*cb_endkepler_in_pyexit__user__routines_cptr)(foo_cb_capi);
    return;
    }
    if (capi_arglist==NULL) {
        capi_longjmp_ok = 0;
        capi_tmp = PyObject_GetAttrString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_module,"endkepler_extra_args");
        if (capi_tmp) {
            capi_arglist = (PyTupleObject *)PySequence_Tuple(capi_tmp);
            if (capi_arglist==NULL) {
                PyErr_SetString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_error,"Failed to convert _kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.endkepler_extra_args to tuple.\n");
                goto capi_fail;
            }
        } else {
            PyErr_Clear();
            capi_arglist = (PyTupleObject *)Py_BuildValue("()");
        }
    }
    if (capi_arglist == NULL) {
        PyErr_SetString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_error,"Callback endkepler argument list is not set.\n");
        goto capi_fail;
    }
/*setdims*/
#ifdef PYPY_VERSION
#define CAPI_ARGLIST_SETITEM(idx, value) PyList_SetItem((PyObject *)capi_arglist_list, idx, value)
    capi_arglist_list = PySequence_List(capi_arglist);
    if (capi_arglist_list == NULL) goto capi_fail;
#else
#define CAPI_ARGLIST_SETITEM(idx, value) PyTuple_SetItem((PyObject *)capi_arglist, idx, value)
#endif
/*pyobjfrom*/
    if (cb->nofargs>capi_i)
        if (CAPI_ARGLIST_SETITEM(capi_i++,pyobj_from_int1(foo)))
            goto capi_fail;
#undef CAPI_ARGLIST_SETITEM
#ifdef PYPY_VERSION
    CFUNCSMESSPY("cb:capi_arglist=",capi_arglist_list);
#else
    CFUNCSMESSPY("cb:capi_arglist=",capi_arglist);
#endif
    CFUNCSMESS("cb:Call-back calling Python function endkepler.\n");
#ifdef F2PY_REPORT_ATEXIT
f2py_cb_start_call_clock();
#endif
#ifdef PYPY_VERSION
    capi_return = PyObject_CallObject(cb->capi,(PyObject *)capi_arglist_list);
    Py_DECREF(capi_arglist_list);
    capi_arglist_list = NULL;
#else
    capi_return = PyObject_CallObject(cb->capi,(PyObject *)capi_arglist);
#endif
#ifdef F2PY_REPORT_ATEXIT
f2py_cb_stop_call_clock();
#endif
    CFUNCSMESSPY("cb:capi_return=",capi_return);
    if (capi_return == NULL) {
        fprintf(stderr,"capi_return is NULL\n");
        goto capi_fail;
    }
    if (capi_return == Py_None) {
        Py_DECREF(capi_return);
        capi_return = Py_BuildValue("()");
    }
    else if (!PyTuple_Check(capi_return)) {
        capi_return = Py_BuildValue("(N)",capi_return);
    }
    capi_j = PyTuple_Size(capi_return);
    capi_i = 0;
/*frompyobj*/
    CFUNCSMESS("cb:cb_endkepler_in_pyexit__user__routines:successful\n");
    Py_DECREF(capi_return);
#ifdef F2PY_REPORT_ATEXIT
f2py_cb_stop_clock();
#endif
    goto capi_return_pt;
capi_fail:
    fprintf(stderr,"Call-back cb_endkepler_in_pyexit__user__routines failed.\n");
    Py_XDECREF(capi_return);
    Py_XDECREF(capi_arglist_list);
    if (capi_longjmp_ok) {
        longjmp(cb->jmpbuf,-1);
    }
capi_return_pt:
    ;
return;
}
/*************** end of cb_endkepler_in_pyexit__user__routines ***************/

Specifically, the seg fault is in line

    capi_arglist = cb->args_capi;

This does work, however, in numpy version 1.19.5. The diff in the generated .c files i huge (due to some other routines in it)

diff 1.21.txt 1.19.5.txt > diff.txt
[main*] ~/python/source/kepler/code>diff 1.21.txt 1.19.5.txt
2c2
<  * This file is auto-generated with f2py (version:1.21.0.dev0+655.g2f466b318).
---
>  * This file is auto-generated with f2py (version:2).
5c5
<  * Generation date: Fri Feb  5 18:15:33 2021
---
>  * Generation date: Fri Feb  5 19:31:10 2021
56c56
< #define pyobj_from_int1(v) (PyLong_FromLong(v))
---
> #define pyobj_from_int1(v) (PyInt_FromLong(v))
67,85d66
< #ifndef F2PY_THREAD_LOCAL_DECL
< #if defined(_MSC_VER)
< #define F2PY_THREAD_LOCAL_DECL __declspec(thread)
< #elif defined(__STDC_VERSION__) \
<       && (__STDC_VERSION__ >= 201112L) \
<       && !defined(__STDC_NO_THREADS__) \
<       && (!defined(__GLIBC__) || __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 12))
< /* __STDC_NO_THREADS__ was first defined in a maintenance release of glibc 2.12,
<    see https://lists.gnu.org/archive/html/commit-hurd/2012-07/msg00180.html,
<    so `!defined(__STDC_NO_THREADS__)` may give false positive for the existence
<    of `threads.h` when using an older release of glibc 2.12 */
< #include <threads.h>
< #define F2PY_THREAD_LOCAL_DECL thread_local
< #elif defined(__GNUC__) \
<       && (__GNUC__ > 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ >= 4)))
< #define F2PY_THREAD_LOCAL_DECL __thread
< #endif
< #endif
< 
194,196c175
< static int
< int_from_pyobj(int* v, PyObject *obj, const char *errmess)
< {
---
> static int int_from_pyobj(int* v,PyObject *obj,const char *errmess) {
198,201c177,179
< 
<     if (PyLong_Check(obj)) {
<         *v = Npy__PyLong_AsInt(obj);
<         return !(*v == -1 && PyErr_Occurred());
---
>     if (PyInt_Check(obj)) {
>         *v = (int)PyInt_AS_LONG(obj);
>         return 1;
203,204c181
< 
<     tmp = PyNumber_Long(obj);
---
>     tmp = PyNumber_Int(obj);
206c183
<         *v = Npy__PyLong_AsInt(tmp);
---
>         *v = PyInt_AS_LONG(tmp);
208c185
<         return !(*v == -1 && PyErr_Occurred());
---
>         return 1;
210d186
< 
213c189
<     else if (PyBytes_Check(obj) || PyUnicode_Check(obj))
---
>     else if (PyString_Check(obj) || PyUnicode_Check(obj))
216c192
<         tmp = PySequence_GetItem(obj, 0);
---
>         tmp = PySequence_GetItem(obj,0);
219,222c195
<         if (int_from_pyobj(v, tmp, errmess)) {
<             Py_DECREF(tmp);
<             return 1;
<         }
---
>         if (int_from_pyobj(v,tmp,errmess)) {Py_DECREF(tmp); return 1;}
227,230c200,201
<         if (err == NULL) {
<             err = _kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_error;
<         }
<         PyErr_SetString(err, errmess);
---
>         if (err==NULL) err = _kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_error;
>         PyErr_SetString(err,errmess);
235,237c206
< static int
< string_from_pyobj(string *str,int *len,const string inistr,PyObject *obj,const char *errmess)
< {
---
> static int string_from_pyobj(string *str,int *len,const string inistr,PyObject *obj,const char *errmess) {
263c232
<     if (PyBytes_Check(obj)) {
---
>     if (PyString_Check(obj)) {
283c252
<         *len = PyBytes_GET_SIZE(tmp);
---
>         *len = PyString_GET_SIZE(tmp);
285c254
<     STRINGCOPYN(*str,PyBytes_AS_STRING(tmp),*len+1);
---
>     STRINGCOPYN(*str,PyString_AS_STRING(tmp),*len+1);
292,295c261,262
<         if (err == NULL) {
<             err = _kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_error;
<         }
<         PyErr_SetString(err, errmess);
---
>         if (err==NULL) err = _kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_error;
>         PyErr_SetString(err,errmess);
300,304c267
< static int
< create_cb_arglist(PyObject* fun, PyTupleObject* xa , const int maxnofargs,
<                   const int nofoptargs, int *nofargs, PyTupleObject **args,
<                   const char *errmess)
< {
---
> static int create_cb_arglist(PyObject* fun,PyTupleObject* xa,const int maxnofargs,const int nofoptargs,int *nofargs,PyTupleObject **args,const char *errmess) {
307c270
<     Py_ssize_t tot, opt, ext, siz, i, di = 0;
---
>     int tot,opt,ext,siz,i,di=0;
356,364c319,322
< 
<     if (tmp_fun == NULL) {
<         fprintf(stderr,
<                 "Call-back argument must be function|instance|instance.__call__|f2py-function "
<                 "but got %s.\n",
<                 ((fun == NULL) ? "NULL" : Py_TYPE(fun)->tp_name));
<         goto capi_fail;
<     }
< 
---
> if (tmp_fun==NULL) {
> fprintf(stderr,"Call-back argument must be function|instance|instance.__call__|f2py-function but got %s.\n",(fun==NULL?"NULL":Py_TYPE(fun)->tp_name));
> goto capi_fail;
> }
372c330
<             tot = PyLong_AsSsize_t(tmp_argcount) - di;
---
>             tot = PyInt_AsLong(tmp_argcount) - di;
388d345
< 
390,393c347
<     fprintf(stderr,
<             "debug-capi:create_cb_arglist:maxnofargs(-nofoptargs),"
<             "tot,opt,ext,siz,nofargs = %d(-%d), %zd, %zd, %zd, %zd, %d\n",
<             maxnofargs, nofoptargs, tot, opt, ext, siz, *nofargs);
---
>     fprintf(stderr,"debug-capi:create_cb_arglist:maxnofargs(-nofoptargs),tot,opt,ext,siz,nofargs=%d(-%d),%d,%d,%d,%d,%d\n",maxnofargs,nofoptargs,tot,opt,ext,siz,*nofargs);
395,401c349,350
< 
<     if (siz < tot-opt) {
<         fprintf(stderr,
<                 "create_cb_arglist: Failed to build argument list "
<                 "(siz) with enough arguments (tot-opt) required by "
<                 "user-supplied function (siz,tot,opt=%zd, %zd, %zd).\n",
<                 siz, tot, opt);
---
>     if (siz<tot-opt) {
>         fprintf(stderr,"create_cb_arglist: Failed to build argument list (siz) with enough arguments (tot-opt) required by user-supplied function (siz,tot,opt=%d,%d,%d).\n",siz,tot,opt);
404d352
< 
420d367
< 
422,423c369,370
<     if (PyErr_Occurred() == NULL)
<         PyErr_SetString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_error, errmess);
---
>     if ((PyErr_Occurred())==NULL)
>         PyErr_SetString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_error,errmess);
428,441c375
< static int try_pyarr_from_string(PyObject *obj,const string str) {
<     PyArrayObject *arr = NULL;
<     if (PyArray_Check(obj) && (!((arr = (PyArrayObject *)obj) == NULL)))
<         { STRINGCOPYN(PyArray_DATA(arr),str,PyArray_NBYTES(arr)); }
<     return 1;
< capi_fail:
<     PRINTPYOBJERR(obj);
<     PyErr_SetString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_error,"try_pyarr_from_string failed");
<     return 0;
< }
< 
< static int
< double_from_pyobj(double* v, PyObject *obj, const char *errmess)
< {
---
> static int double_from_pyobj(double* v,PyObject *obj,const char *errmess) {
443a378
> #ifdef __sgi
445c380,383
<         return !(*v == -1.0 && PyErr_Occurred());
---
> #else
>         *v = PyFloat_AS_DOUBLE(obj);
> #endif
>         return 1;
447d384
< 
449a387
> #ifdef __sgi
450a389,391
> #else
>         *v = PyFloat_AS_DOUBLE(tmp);
> #endif
452c393
<         return !(*v == -1.0 && PyErr_Occurred());
---
>         return 1;
456c397
<     else if (PyBytes_Check(obj) || PyUnicode_Check(obj))
---
>     else if (PyString_Check(obj) || PyUnicode_Check(obj))
504,538c445,448
< typedef struct {
<     PyObject *capi;
<     PyTupleObject *args_capi;
<     int nofargs;
<     jmp_buf jmpbuf;
< } cb_endkepler_in_pyexit__user__routines_t;
< 
< #if defined(F2PY_THREAD_LOCAL_DECL) && !defined(F2PY_USE_PYTHON_TLS)
< 
< static F2PY_THREAD_LOCAL_DECL cb_endkepler_in_pyexit__user__routines_t *_active_cb_endkepler_in_pyexit__user__routines = NULL;
< 
< static cb_endkepler_in_pyexit__user__routines_t *swap_active_cb_endkepler_in_pyexit__user__routines(cb_endkepler_in_pyexit__user__routines_t *ptr) {
<     cb_endkepler_in_pyexit__user__routines_t *prev = _active_cb_endkepler_in_pyexit__user__routines;
<     _active_cb_endkepler_in_pyexit__user__routines = ptr;
<     return prev;
< }
< 
< static cb_endkepler_in_pyexit__user__routines_t *get_active_cb_endkepler_in_pyexit__user__routines(void) {
<     return _active_cb_endkepler_in_pyexit__user__routines;
< }
< 
< #else
< 
< static cb_endkepler_in_pyexit__user__routines_t *swap_active_cb_endkepler_in_pyexit__user__routines(cb_endkepler_in_pyexit__user__routines_t *ptr) {
<     char *key = "__f2py_cb_cb_endkepler_in_pyexit__user__routines";
<     return (cb_endkepler_in_pyexit__user__routines_t *)F2PySwapThreadLocalCallbackPtr(key, ptr);
< }
< 
< static cb_endkepler_in_pyexit__user__routines_t *get_active_cb_endkepler_in_pyexit__user__routines(void) {
<     char *key = "__f2py_cb_cb_endkepler_in_pyexit__user__routines";
<     return (cb_endkepler_in_pyexit__user__routines_t *)F2PyGetThreadLocalCallbackPtr(key);
< }
< 
< #endif
< 
---
> PyObject *cb_endkepler_in_pyexit__user__routines_capi = NULL;/*was Py_None*/
> PyTupleObject *cb_endkepler_in_pyexit__user__routines_args_capi = NULL;
> int cb_endkepler_in_pyexit__user__routines_nofargs = 0;
> jmp_buf cb_endkepler_in_pyexit__user__routines_jmpbuf;
540,547c450,456
< extern void F_FUNC(endkepler,ENDKEPLER) (int *foo_cb_capi) {
<     cb_endkepler_in_pyexit__user__routines_t *cb;
<     PyTupleObject *capi_arglist = NULL;
<     PyObject *capi_return = NULL;
<     PyObject *capi_tmp = NULL;
<     PyObject *capi_arglist_list = NULL;
<     int capi_j,capi_i = 0;
<     int capi_longjmp_ok = 1;
---
> extern void F_FUNC(endkepler,ENDKEPLER) (int *code_cb_capi) {
>   PyTupleObject *capi_arglist = cb_endkepler_in_pyexit__user__routines_args_capi;
>   PyObject *capi_return = NULL;
>   PyObject *capi_tmp = NULL;
>   PyObject *capi_arglist_list = NULL;
>   int capi_j,capi_i = 0;
>   int capi_longjmp_ok = 1;
549c458
<     int foo=(*foo_cb_capi);
---
>   int code=(*code_cb_capi);
553,586c462,484
<     cb = get_active_cb_endkepler_in_pyexit__user__routines();
<     capi_arglist = cb->args_capi;
<     CFUNCSMESS("cb:Call-back function cb_endkepler_in_pyexit__user__routines (maxnofargs=1(-0))\n");
<     CFUNCSMESSPY("cb:cb_endkepler_in_pyexit__user__routines_capi=",cb->capi);
<     if (cb->capi==NULL) {
<         capi_longjmp_ok = 0;
<         cb->capi = PyObject_GetAttrString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_module,"endkepler");
<     }
<     if (cb->capi==NULL) {
<         PyErr_SetString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_error,"cb: Callback endkepler not defined (as an argument or module _kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz attribute).\n");
<         goto capi_fail;
<     }
<     if (F2PyCapsule_Check(cb->capi)) {
<     cb_endkepler_in_pyexit__user__routines_typedef cb_endkepler_in_pyexit__user__routines_cptr;
<     cb_endkepler_in_pyexit__user__routines_cptr = F2PyCapsule_AsVoidPtr(cb->capi);
<     (*cb_endkepler_in_pyexit__user__routines_cptr)(foo_cb_capi);
<     return;
<     }
<     if (capi_arglist==NULL) {
<         capi_longjmp_ok = 0;
<         capi_tmp = PyObject_GetAttrString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_module,"endkepler_extra_args");
<         if (capi_tmp) {
<             capi_arglist = (PyTupleObject *)PySequence_Tuple(capi_tmp);
<             if (capi_arglist==NULL) {
<                 PyErr_SetString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_error,"Failed to convert _kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.endkepler_extra_args to tuple.\n");
<                 goto capi_fail;
<             }
<         } else {
<             PyErr_Clear();
<             capi_arglist = (PyTupleObject *)Py_BuildValue("()");
<         }
<     }
<     if (capi_arglist == NULL) {
<         PyErr_SetString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_error,"Callback endkepler argument list is not set.\n");
---
>   CFUNCSMESS("cb:Call-back function cb_endkepler_in_pyexit__user__routines (maxnofargs=1(-0))\n");
>   CFUNCSMESSPY("cb:cb_endkepler_in_pyexit__user__routines_capi=",cb_endkepler_in_pyexit__user__routines_capi);
>   if (cb_endkepler_in_pyexit__user__routines_capi==NULL) {
>     capi_longjmp_ok = 0;
>     cb_endkepler_in_pyexit__user__routines_capi = PyObject_GetAttrString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_module,"endkepler");
>   }
>   if (cb_endkepler_in_pyexit__user__routines_capi==NULL) {
>     PyErr_SetString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_error,"cb: Callback endkepler not defined (as an argument or module _kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz attribute).\n");
>     goto capi_fail;
>   }
>   if (F2PyCapsule_Check(cb_endkepler_in_pyexit__user__routines_capi)) {
>   cb_endkepler_in_pyexit__user__routines_typedef cb_endkepler_in_pyexit__user__routines_cptr;
>   cb_endkepler_in_pyexit__user__routines_cptr = F2PyCapsule_AsVoidPtr(cb_endkepler_in_pyexit__user__routines_capi);
>   (*cb_endkepler_in_pyexit__user__routines_cptr)(code_cb_capi);
>   return;
>   }
>   if (capi_arglist==NULL) {
>     capi_longjmp_ok = 0;
>     capi_tmp = PyObject_GetAttrString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_module,"endkepler_extra_args");
>     if (capi_tmp) {
>       capi_arglist = (PyTupleObject *)PySequence_Tuple(capi_tmp);
>       if (capi_arglist==NULL) {
>         PyErr_SetString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_error,"Failed to convert _kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.endkepler_extra_args to tuple.\n");
587a486,489
>       }
>     } else {
>       PyErr_Clear();
>       capi_arglist = (PyTupleObject *)Py_BuildValue("()");
588a491,495
>   }
>   if (capi_arglist == NULL) {
>     PyErr_SetString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_error,"Callback endkepler argument list is not set.\n");
>     goto capi_fail;
>   }
592,593c499,500
<     capi_arglist_list = PySequence_List(capi_arglist);
<     if (capi_arglist_list == NULL) goto capi_fail;
---
>   capi_arglist_list = PySequence_List(capi_arglist);
>   if (capi_arglist_list == NULL) goto capi_fail;
598,600c505,507
<     if (cb->nofargs>capi_i)
<         if (CAPI_ARGLIST_SETITEM(capi_i++,pyobj_from_int1(foo)))
<             goto capi_fail;
---
>   if (cb_endkepler_in_pyexit__user__routines_nofargs>capi_i)
>     if (CAPI_ARGLIST_SETITEM(capi_i++,pyobj_from_int1(code)))
>       goto capi_fail;
603c510
<     CFUNCSMESSPY("cb:capi_arglist=",capi_arglist_list);
---
>   CFUNCSMESSPY("cb:capi_arglist=",capi_arglist_list);
605c512
<     CFUNCSMESSPY("cb:capi_arglist=",capi_arglist);
---
>   CFUNCSMESSPY("cb:capi_arglist=",capi_arglist);
607c514
<     CFUNCSMESS("cb:Call-back calling Python function endkepler.\n");
---
>   CFUNCSMESS("cb:Call-back calling Python function endkepler.\n");
612,614c519,521
<     capi_return = PyObject_CallObject(cb->capi,(PyObject *)capi_arglist_list);
<     Py_DECREF(capi_arglist_list);
<     capi_arglist_list = NULL;
---
>   capi_return = PyObject_CallObject(cb_endkepler_in_pyexit__user__routines_capi,(PyObject *)capi_arglist_list);
>   Py_DECREF(capi_arglist_list);
>   capi_arglist_list = NULL;
616c523
<     capi_return = PyObject_CallObject(cb->capi,(PyObject *)capi_arglist);
---
>   capi_return = PyObject_CallObject(cb_endkepler_in_pyexit__user__routines_capi,(PyObject *)capi_arglist);
621,636c528,533
<     CFUNCSMESSPY("cb:capi_return=",capi_return);
<     if (capi_return == NULL) {
<         fprintf(stderr,"capi_return is NULL\n");
<         goto capi_fail;
<     }
<     if (capi_return == Py_None) {
<         Py_DECREF(capi_return);
<         capi_return = Py_BuildValue("()");
<     }
<     else if (!PyTuple_Check(capi_return)) {
<         capi_return = Py_BuildValue("(N)",capi_return);
<     }
<     capi_j = PyTuple_Size(capi_return);
<     capi_i = 0;
< /*frompyobj*/
<     CFUNCSMESS("cb:cb_endkepler_in_pyexit__user__routines:successful\n");
---
>   CFUNCSMESSPY("cb:capi_return=",capi_return);
>   if (capi_return == NULL) {
>     fprintf(stderr,"capi_return is NULL\n");
>     goto capi_fail;
>   }
>   if (capi_return == Py_None) {
637a535,544
>     capi_return = Py_BuildValue("()");
>   }
>   else if (!PyTuple_Check(capi_return)) {
>     capi_return = Py_BuildValue("(N)",capi_return);
>   }
>   capi_j = PyTuple_Size(capi_return);
>   capi_i = 0;
> /*frompyobj*/
>   CFUNCSMESS("cb:cb_endkepler_in_pyexit__user__routines:successful\n");
>   Py_DECREF(capi_return);
641c548
<     goto capi_return_pt;
---
>   goto capi_return_pt;
643,648c550,554
<     fprintf(stderr,"Call-back cb_endkepler_in_pyexit__user__routines failed.\n");
<     Py_XDECREF(capi_return);
<     Py_XDECREF(capi_arglist_list);
<     if (capi_longjmp_ok) {
<         longjmp(cb->jmpbuf,-1);
<     }
---
>   fprintf(stderr,"Call-back cb_endkepler_in_pyexit__user__routines failed.\n");
>   Py_XDECREF(capi_return);
>   Py_XDECREF(capi_arglist_list);
>   if (capi_longjmp_ok)
>     longjmp(cb_endkepler_in_pyexit__user__routines_jmpbuf,-1);
650c556
<     ;
---
>   ;
657,691c563,566
< typedef struct {
<     PyObject *capi;
<     PyTupleObject *args_capi;
<     int nofargs;
<     jmp_buf jmpbuf;
< } cb_plotkepler_in_pyplot__user__routines_t;
< 
< #if defined(F2PY_THREAD_LOCAL_DECL) && !defined(F2PY_USE_PYTHON_TLS)
< 
< static F2PY_THREAD_LOCAL_DECL cb_plotkepler_in_pyplot__user__routines_t *_active_cb_plotkepler_in_pyplot__user__routines = NULL;
< 
< static cb_plotkepler_in_pyplot__user__routines_t *swap_active_cb_plotkepler_in_pyplot__user__routines(cb_plotkepler_in_pyplot__user__routines_t *ptr) {
<     cb_plotkepler_in_pyplot__user__routines_t *prev = _active_cb_plotkepler_in_pyplot__user__routines;
<     _active_cb_plotkepler_in_pyplot__user__routines = ptr;
<     return prev;
< }
< 
< static cb_plotkepler_in_pyplot__user__routines_t *get_active_cb_plotkepler_in_pyplot__user__routines(void) {
<     return _active_cb_plotkepler_in_pyplot__user__routines;
< }
< 
< #else
< 
< static cb_plotkepler_in_pyplot__user__routines_t *swap_active_cb_plotkepler_in_pyplot__user__routines(cb_plotkepler_in_pyplot__user__routines_t *ptr) {
<     char *key = "__f2py_cb_cb_plotkepler_in_pyplot__user__routines";
<     return (cb_plotkepler_in_pyplot__user__routines_t *)F2PySwapThreadLocalCallbackPtr(key, ptr);
< }
< 
< static cb_plotkepler_in_pyplot__user__routines_t *get_active_cb_plotkepler_in_pyplot__user__routines(void) {
<     char *key = "__f2py_cb_cb_plotkepler_in_pyplot__user__routines";
<     return (cb_plotkepler_in_pyplot__user__routines_t *)F2PyGetThreadLocalCallbackPtr(key);
< }
< 
< #endif
< 
---
> PyObject *cb_plotkepler_in_pyplot__user__routines_capi = NULL;/*was Py_None*/
> PyTupleObject *cb_plotkepler_in_pyplot__user__routines_args_capi = NULL;
> int cb_plotkepler_in_pyplot__user__routines_nofargs = 0;
> jmp_buf cb_plotkepler_in_pyplot__user__routines_jmpbuf;
694,700c569,574
<     cb_plotkepler_in_pyplot__user__routines_t *cb;
<     PyTupleObject *capi_arglist = NULL;
<     PyObject *capi_return = NULL;
<     PyObject *capi_tmp = NULL;
<     PyObject *capi_arglist_list = NULL;
<     int capi_j,capi_i = 0;
<     int capi_longjmp_ok = 1;
---
>   PyTupleObject *capi_arglist = cb_plotkepler_in_pyplot__user__routines_args_capi;
>   PyObject *capi_return = NULL;
>   PyObject *capi_tmp = NULL;
>   PyObject *capi_arglist_list = NULL;
>   int capi_j,capi_i = 0;
>   int capi_longjmp_ok = 1;
705,738c579,601
<     cb = get_active_cb_plotkepler_in_pyplot__user__routines();
<     capi_arglist = cb->args_capi;
<     CFUNCSMESS("cb:Call-back function cb_plotkepler_in_pyplot__user__routines (maxnofargs=0(-0))\n");
<     CFUNCSMESSPY("cb:cb_plotkepler_in_pyplot__user__routines_capi=",cb->capi);
<     if (cb->capi==NULL) {
<         capi_longjmp_ok = 0;
<         cb->capi = PyObject_GetAttrString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_module,"plotkepler");
<     }
<     if (cb->capi==NULL) {
<         PyErr_SetString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_error,"cb: Callback plotkepler not defined (as an argument or module _kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz attribute).\n");
<         goto capi_fail;
<     }
<     if (F2PyCapsule_Check(cb->capi)) {
<     cb_plotkepler_in_pyplot__user__routines_typedef cb_plotkepler_in_pyplot__user__routines_cptr;
<     cb_plotkepler_in_pyplot__user__routines_cptr = F2PyCapsule_AsVoidPtr(cb->capi);
<     (*cb_plotkepler_in_pyplot__user__routines_cptr)();
<     return;
<     }
<     if (capi_arglist==NULL) {
<         capi_longjmp_ok = 0;
<         capi_tmp = PyObject_GetAttrString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_module,"plotkepler_extra_args");
<         if (capi_tmp) {
<             capi_arglist = (PyTupleObject *)PySequence_Tuple(capi_tmp);
<             if (capi_arglist==NULL) {
<                 PyErr_SetString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_error,"Failed to convert _kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.plotkepler_extra_args to tuple.\n");
<                 goto capi_fail;
<             }
<         } else {
<             PyErr_Clear();
<             capi_arglist = (PyTupleObject *)Py_BuildValue("()");
<         }
<     }
<     if (capi_arglist == NULL) {
<         PyErr_SetString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_error,"Callback plotkepler argument list is not set.\n");
---
>   CFUNCSMESS("cb:Call-back function cb_plotkepler_in_pyplot__user__routines (maxnofargs=0(-0))\n");
>   CFUNCSMESSPY("cb:cb_plotkepler_in_pyplot__user__routines_capi=",cb_plotkepler_in_pyplot__user__routines_capi);
>   if (cb_plotkepler_in_pyplot__user__routines_capi==NULL) {
>     capi_longjmp_ok = 0;
>     cb_plotkepler_in_pyplot__user__routines_capi = PyObject_GetAttrString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_module,"plotkepler");
>   }
>   if (cb_plotkepler_in_pyplot__user__routines_capi==NULL) {
>     PyErr_SetString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_error,"cb: Callback plotkepler not defined (as an argument or module _kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz attribute).\n");
>     goto capi_fail;
>   }
>   if (F2PyCapsule_Check(cb_plotkepler_in_pyplot__user__routines_capi)) {
>   cb_plotkepler_in_pyplot__user__routines_typedef cb_plotkepler_in_pyplot__user__routines_cptr;
>   cb_plotkepler_in_pyplot__user__routines_cptr = F2PyCapsule_AsVoidPtr(cb_plotkepler_in_pyplot__user__routines_capi);
>   (*cb_plotkepler_in_pyplot__user__routines_cptr)();
>   return;
>   }
>   if (capi_arglist==NULL) {
>     capi_longjmp_ok = 0;
>     capi_tmp = PyObject_GetAttrString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_module,"plotkepler_extra_args");
>     if (capi_tmp) {
>       capi_arglist = (PyTupleObject *)PySequence_Tuple(capi_tmp);
>       if (capi_arglist==NULL) {
>         PyErr_SetString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_error,"Failed to convert _kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.plotkepler_extra_args to tuple.\n");
739a603,606
>       }
>     } else {
>       PyErr_Clear();
>       capi_arglist = (PyTupleObject *)Py_BuildValue("()");
740a608,612
>   }
>   if (capi_arglist == NULL) {
>     PyErr_SetString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_error,"Callback plotkepler argument list is not set.\n");
>     goto capi_fail;
>   }
744,745c616,617
<     capi_arglist_list = PySequence_List(capi_arglist);
<     if (capi_arglist_list == NULL) goto capi_fail;
---
>   capi_arglist_list = PySequence_List(capi_arglist);
>   if (capi_arglist_list == NULL) goto capi_fail;
752c624
<     CFUNCSMESSPY("cb:capi_arglist=",capi_arglist_list);
---
>   CFUNCSMESSPY("cb:capi_arglist=",capi_arglist_list);
754c626
<     CFUNCSMESSPY("cb:capi_arglist=",capi_arglist);
---
>   CFUNCSMESSPY("cb:capi_arglist=",capi_arglist);
756c628
<     CFUNCSMESS("cb:Call-back calling Python function plotkepler.\n");
---
>   CFUNCSMESS("cb:Call-back calling Python function plotkepler.\n");
761,763c633,635
<     capi_return = PyObject_CallObject(cb->capi,(PyObject *)capi_arglist_list);
<     Py_DECREF(capi_arglist_list);
<     capi_arglist_list = NULL;
---
>   capi_return = PyObject_CallObject(cb_plotkepler_in_pyplot__user__routines_capi,(PyObject *)capi_arglist_list);
>   Py_DECREF(capi_arglist_list);
>   capi_arglist_list = NULL;
765c637
<     capi_return = PyObject_CallObject(cb->capi,(PyObject *)capi_arglist);
---
>   capi_return = PyObject_CallObject(cb_plotkepler_in_pyplot__user__routines_capi,(PyObject *)capi_arglist);
770,785c642,647
<     CFUNCSMESSPY("cb:capi_return=",capi_return);
<     if (capi_return == NULL) {
<         fprintf(stderr,"capi_return is NULL\n");
<         goto capi_fail;
<     }
<     if (capi_return == Py_None) {
<         Py_DECREF(capi_return);
<         capi_return = Py_BuildValue("()");
<     }
<     else if (!PyTuple_Check(capi_return)) {
<         capi_return = Py_BuildValue("(N)",capi_return);
<     }
<     capi_j = PyTuple_Size(capi_return);
<     capi_i = 0;
< /*frompyobj*/
<     CFUNCSMESS("cb:cb_plotkepler_in_pyplot__user__routines:successful\n");
---
>   CFUNCSMESSPY("cb:capi_return=",capi_return);
>   if (capi_return == NULL) {
>     fprintf(stderr,"capi_return is NULL\n");
>     goto capi_fail;
>   }
>   if (capi_return == Py_None) {
786a649,658
>     capi_return = Py_BuildValue("()");
>   }
>   else if (!PyTuple_Check(capi_return)) {
>     capi_return = Py_BuildValue("(N)",capi_return);
>   }
>   capi_j = PyTuple_Size(capi_return);
>   capi_i = 0;
> /*frompyobj*/
>   CFUNCSMESS("cb:cb_plotkepler_in_pyplot__user__routines:successful\n");
>   Py_DECREF(capi_return);
790c662
<     goto capi_return_pt;
---
>   goto capi_return_pt;
792,797c664,668
<     fprintf(stderr,"Call-back cb_plotkepler_in_pyplot__user__routines failed.\n");
<     Py_XDECREF(capi_return);
<     Py_XDECREF(capi_arglist_list);
<     if (capi_longjmp_ok) {
<         longjmp(cb->jmpbuf,-1);
<     }
---
>   fprintf(stderr,"Call-back cb_plotkepler_in_pyplot__user__routines failed.\n");
>   Py_XDECREF(capi_return);
>   Py_XDECREF(capi_arglist_list);
>   if (capi_longjmp_ok)
>     longjmp(cb_plotkepler_in_pyplot__user__routines_jmpbuf,-1);
799c670
<     ;
---
>   ;
806,840c677,680
< typedef struct {
<     PyObject *capi;
<     PyTupleObject *args_capi;
<     int nofargs;
<     jmp_buf jmpbuf;
< } cb_ttykepler_in_pygets__user__routines_t;
< 
< #if defined(F2PY_THREAD_LOCAL_DECL) && !defined(F2PY_USE_PYTHON_TLS)
< 
< static F2PY_THREAD_LOCAL_DECL cb_ttykepler_in_pygets__user__routines_t *_active_cb_ttykepler_in_pygets__user__routines = NULL;
< 
< static cb_ttykepler_in_pygets__user__routines_t *swap_active_cb_ttykepler_in_pygets__user__routines(cb_ttykepler_in_pygets__user__routines_t *ptr) {
<     cb_ttykepler_in_pygets__user__routines_t *prev = _active_cb_ttykepler_in_pygets__user__routines;
<     _active_cb_ttykepler_in_pygets__user__routines = ptr;
<     return prev;
< }
< 
< static cb_ttykepler_in_pygets__user__routines_t *get_active_cb_ttykepler_in_pygets__user__routines(void) {
<     return _active_cb_ttykepler_in_pygets__user__routines;
< }
< 
< #else
< 
< static cb_ttykepler_in_pygets__user__routines_t *swap_active_cb_ttykepler_in_pygets__user__routines(cb_ttykepler_in_pygets__user__routines_t *ptr) {
<     char *key = "__f2py_cb_cb_ttykepler_in_pygets__user__routines";
<     return (cb_ttykepler_in_pygets__user__routines_t *)F2PySwapThreadLocalCallbackPtr(key, ptr);
< }
< 
< static cb_ttykepler_in_pygets__user__routines_t *get_active_cb_ttykepler_in_pygets__user__routines(void) {
<     char *key = "__f2py_cb_cb_ttykepler_in_pygets__user__routines";
<     return (cb_ttykepler_in_pygets__user__routines_t *)F2PyGetThreadLocalCallbackPtr(key);
< }
< 
< #endif
< 
---
> PyObject *cb_ttykepler_in_pygets__user__routines_capi = NULL;/*was Py_None*/
> PyTupleObject *cb_ttykepler_in_pygets__user__routines_args_capi = NULL;
> int cb_ttykepler_in_pygets__user__routines_nofargs = 0;
> jmp_buf cb_ttykepler_in_pygets__user__routines_jmpbuf;
843,849c683,688
<     cb_ttykepler_in_pygets__user__routines_t *cb;
<     PyTupleObject *capi_arglist = NULL;
<     PyObject *capi_return = NULL;
<     PyObject *capi_tmp = NULL;
<     PyObject *capi_arglist_list = NULL;
<     int capi_j,capi_i = 0;
<     int capi_longjmp_ok = 1;
---
>   PyTupleObject *capi_arglist = cb_ttykepler_in_pygets__user__routines_args_capi;
>   PyObject *capi_return = NULL;
>   PyObject *capi_tmp = NULL;
>   PyObject *capi_arglist_list = NULL;
>   int capi_j,capi_i = 0;
>   int capi_longjmp_ok = 1;
851c690
<     npy_intp data_Dims[1] = {-1};
---
>   npy_intp data_Dims[1] = {-1};
855,888c694,716
<     cb = get_active_cb_ttykepler_in_pygets__user__routines();
<     capi_arglist = cb->args_capi;
<     CFUNCSMESS("cb:Call-back function cb_ttykepler_in_pygets__user__routines (maxnofargs=1(-0))\n");
<     CFUNCSMESSPY("cb:cb_ttykepler_in_pygets__user__routines_capi=",cb->capi);
<     if (cb->capi==NULL) {
<         capi_longjmp_ok = 0;
<         cb->capi = PyObject_GetAttrString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_module,"ttykepler");
<     }
<     if (cb->capi==NULL) {
<         PyErr_SetString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_error,"cb: Callback ttykepler not defined (as an argument or module _kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz attribute).\n");
<         goto capi_fail;
<     }
<     if (F2PyCapsule_Check(cb->capi)) {
<     cb_ttykepler_in_pygets__user__routines_typedef cb_ttykepler_in_pygets__user__routines_cptr;
<     cb_ttykepler_in_pygets__user__routines_cptr = F2PyCapsule_AsVoidPtr(cb->capi);
<     (*cb_ttykepler_in_pygets__user__routines_cptr)(data);
<     return;
<     }
<     if (capi_arglist==NULL) {
<         capi_longjmp_ok = 0;
<         capi_tmp = PyObject_GetAttrString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_module,"ttykepler_extra_args");
<         if (capi_tmp) {
<             capi_arglist = (PyTupleObject *)PySequence_Tuple(capi_tmp);
<             if (capi_arglist==NULL) {
<                 PyErr_SetString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_error,"Failed to convert _kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.ttykepler_extra_args to tuple.\n");
<                 goto capi_fail;
<             }
<         } else {
<             PyErr_Clear();
<             capi_arglist = (PyTupleObject *)Py_BuildValue("()");
<         }
<     }
<     if (capi_arglist == NULL) {
<         PyErr_SetString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_error,"Callback ttykepler argument list is not set.\n");
---
>   CFUNCSMESS("cb:Call-back function cb_ttykepler_in_pygets__user__routines (maxnofargs=1(-0))\n");
>   CFUNCSMESSPY("cb:cb_ttykepler_in_pygets__user__routines_capi=",cb_ttykepler_in_pygets__user__routines_capi);
>   if (cb_ttykepler_in_pygets__user__routines_capi==NULL) {
>     capi_longjmp_ok = 0;
>     cb_ttykepler_in_pygets__user__routines_capi = PyObject_GetAttrString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_module,"ttykepler");
>   }
>   if (cb_ttykepler_in_pygets__user__routines_capi==NULL) {
>     PyErr_SetString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_error,"cb: Callback ttykepler not defined (as an argument or module _kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz attribute).\n");
>     goto capi_fail;
>   }
>   if (F2PyCapsule_Check(cb_ttykepler_in_pygets__user__routines_capi)) {
>   cb_ttykepler_in_pygets__user__routines_typedef cb_ttykepler_in_pygets__user__routines_cptr;
>   cb_ttykepler_in_pygets__user__routines_cptr = F2PyCapsule_AsVoidPtr(cb_ttykepler_in_pygets__user__routines_capi);
>   (*cb_ttykepler_in_pygets__user__routines_cptr)(data);
>   return;
>   }
>   if (capi_arglist==NULL) {
>     capi_longjmp_ok = 0;
>     capi_tmp = PyObject_GetAttrString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_module,"ttykepler_extra_args");
>     if (capi_tmp) {
>       capi_arglist = (PyTupleObject *)PySequence_Tuple(capi_tmp);
>       if (capi_arglist==NULL) {
>         PyErr_SetString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_error,"Failed to convert _kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.ttykepler_extra_args to tuple.\n");
889a718,721
>       }
>     } else {
>       PyErr_Clear();
>       capi_arglist = (PyTupleObject *)Py_BuildValue("()");
890a723,727
>   }
>   if (capi_arglist == NULL) {
>     PyErr_SetString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_error,"Callback ttykepler argument list is not set.\n");
>     goto capi_fail;
>   }
892c729
<     data_Dims[0]=132;
---
>   data_Dims[0]=132;
895,896c732,733
<     capi_arglist_list = PySequence_List(capi_arglist);
<     if (capi_arglist_list == NULL) goto capi_fail;
---
>   capi_arglist_list = PySequence_List(capi_arglist);
>   if (capi_arglist_list == NULL) goto capi_fail;
901,904c738,741
<     if (cb->nofargs>capi_i) {
<         int itemsize_ = NPY_BYTE == NPY_STRING ? 1 : 0;
<         /*XXX: Hmm, what will destroy this array??? */
<         PyArrayObject *tmp_arr = (PyArrayObject *)PyArray_New(&PyArray_Type,1,data_Dims,NPY_BYTE,NULL,(char*)data,itemsize_,NPY_ARRAY_FARRAY,NULL);
---
>   if (cb_ttykepler_in_pygets__user__routines_nofargs>capi_i) {
>     int itemsize_ = NPY_BYTE == NPY_STRING ? 1 : 0;
>     /*XXX: Hmm, what will destroy this array??? */
>     PyArrayObject *tmp_arr = (PyArrayObject *)PyArray_New(&PyArray_Type,1,data_Dims,NPY_BYTE,NULL,(char*)data,itemsize_,NPY_ARRAY_FARRAY,NULL);
907,910c744,747
<         if (tmp_arr==NULL)
<             goto capi_fail;
<         if (CAPI_ARGLIST_SETITEM(capi_i++,(PyObject *)tmp_arr))
<             goto capi_fail;
---
>     if (tmp_arr==NULL)
>       goto capi_fail;
>     if (CAPI_ARGLIST_SETITEM(capi_i++,(PyObject *)tmp_arr))
>       goto capi_fail;
914c751
<     CFUNCSMESSPY("cb:capi_arglist=",capi_arglist_list);
---
>   CFUNCSMESSPY("cb:capi_arglist=",capi_arglist_list);
916c753
<     CFUNCSMESSPY("cb:capi_arglist=",capi_arglist);
---
>   CFUNCSMESSPY("cb:capi_arglist=",capi_arglist);
918c755
<     CFUNCSMESS("cb:Call-back calling Python function ttykepler.\n");
---
>   CFUNCSMESS("cb:Call-back calling Python function ttykepler.\n");
923,925c760,762
<     capi_return = PyObject_CallObject(cb->capi,(PyObject *)capi_arglist_list);
<     Py_DECREF(capi_arglist_list);
<     capi_arglist_list = NULL;
---
>   capi_return = PyObject_CallObject(cb_ttykepler_in_pygets__user__routines_capi,(PyObject *)capi_arglist_list);
>   Py_DECREF(capi_arglist_list);
>   capi_arglist_list = NULL;
927c764
<     capi_return = PyObject_CallObject(cb->capi,(PyObject *)capi_arglist);
---
>   capi_return = PyObject_CallObject(cb_ttykepler_in_pygets__user__routines_capi,(PyObject *)capi_arglist);
932,947c769,774
<     CFUNCSMESSPY("cb:capi_return=",capi_return);
<     if (capi_return == NULL) {
<         fprintf(stderr,"capi_return is NULL\n");
<         goto capi_fail;
<     }
<     if (capi_return == Py_None) {
<         Py_DECREF(capi_return);
<         capi_return = Py_BuildValue("()");
<     }
<     else if (!PyTuple_Check(capi_return)) {
<         capi_return = Py_BuildValue("(N)",capi_return);
<     }
<     capi_j = PyTuple_Size(capi_return);
<     capi_i = 0;
< /*frompyobj*/
<     CFUNCSMESS("cb:cb_ttykepler_in_pygets__user__routines:successful\n");
---
>   CFUNCSMESSPY("cb:capi_return=",capi_return);
>   if (capi_return == NULL) {
>     fprintf(stderr,"capi_return is NULL\n");
>     goto capi_fail;
>   }
>   if (capi_return == Py_None) {
948a776,785
>     capi_return = Py_BuildValue("()");
>   }
>   else if (!PyTuple_Check(capi_return)) {
>     capi_return = Py_BuildValue("(N)",capi_return);
>   }
>   capi_j = PyTuple_Size(capi_return);
>   capi_i = 0;
> /*frompyobj*/
>   CFUNCSMESS("cb:cb_ttykepler_in_pygets__user__routines:successful\n");
>   Py_DECREF(capi_return);
952c789
<     goto capi_return_pt;
---
>   goto capi_return_pt;
954,959c791,795
<     fprintf(stderr,"Call-back cb_ttykepler_in_pygets__user__routines failed.\n");
<     Py_XDECREF(capi_return);
<     Py_XDECREF(capi_arglist_list);
<     if (capi_longjmp_ok) {
<         longjmp(cb->jmpbuf,-1);
<     }
---
>   fprintf(stderr,"Call-back cb_ttykepler_in_pygets__user__routines failed.\n");
>   Py_XDECREF(capi_return);
>   Py_XDECREF(capi_arglist_list);
>   if (capi_longjmp_ok)
>     longjmp(cb_ttykepler_in_pygets__user__routines_jmpbuf,-1);
961c797
<     ;
---
>   ;
980,981c816,817
<     PyObject * volatile capi_buildvalue = NULL;
<     volatile int f2py_success = 1;
---
>   PyObject * volatile capi_buildvalue = NULL;
>   volatile int f2py_success = 1;
992c828
<     static char *capi_kwlist[] = {"nargs","input",NULL};
---
>   static char *capi_kwlist[] = {"nargs","input",NULL};
998,1001c834,837
<     if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
<         "OO|:_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.start_",\
<         capi_kwlist,&nargs_capi,&input_capi))
<         return NULL;
---
>   if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
>     "OO|:_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.start_",\
>     capi_kwlist,&nargs_capi,&input_capi))
>     return NULL;
1030c866
<         if (f2py_success) {
---
>     if (f2py_success) {
1033,1034c869,870
<         CFUNCSMESS("Building return value.\n");
<         capi_buildvalue = Py_BuildValue("");
---
>     CFUNCSMESS("Building return value.\n");
>     capi_buildvalue = Py_BuildValue("");
1037c873
<         } /*if (f2py_success) after callfortranroutine*/
---
>     } /*if (f2py_success) after callfortranroutine*/
1046c882
<     if (capi_buildvalue == NULL) {
---
>   if (capi_buildvalue == NULL) {
1048c884
<     } else {
---
>   } else {
1050,1051c886,887
<     }
<     CFUNCSMESS("Freeing memory.\n");
---
>   }
>   CFUNCSMESS("Freeing memory.\n");
1056c892
<     return capi_buildvalue;
---
>   return capi_buildvalue;
1071,1072c907,908
<     PyObject * volatile capi_buildvalue = NULL;
<     volatile int f2py_success = 1;
---
>   PyObject * volatile capi_buildvalue = NULL;
>   volatile int f2py_success = 1;
1080c916
<     static char *capi_kwlist[] = {"xcmdline","logitx",NULL};
---
>   static char *capi_kwlist[] = {"xcmdline","logitx",NULL};
1086,1089c922,925
<     if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
<         "OO|:_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.execute_",\
<         capi_kwlist,&xcmdline_capi,&logitx_capi))
<         return NULL;
---
>   if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
>     "OO|:_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.execute_",\
>     capi_kwlist,&xcmdline_capi,&logitx_capi))
>     return NULL;
1110c946
<         if (f2py_success) {
---
>     if (f2py_success) {
1113,1114c949,950
<         CFUNCSMESS("Building return value.\n");
<         capi_buildvalue = Py_BuildValue("");
---
>     CFUNCSMESS("Building return value.\n");
>     capi_buildvalue = Py_BuildValue("");
1117c953
<         } /*if (f2py_success) after callfortranroutine*/
---
>     } /*if (f2py_success) after callfortranroutine*/
1125c961
<     if (capi_buildvalue == NULL) {
---
>   if (capi_buildvalue == NULL) {
1127c963
<     } else {
---
>   } else {
1129,1130c965,966
<     }
<     CFUNCSMESS("Freeing memory.\n");
---
>   }
>   CFUNCSMESS("Freeing memory.\n");
1135c971
<     return capi_buildvalue;
---
>   return capi_buildvalue;
1149,1150c985,986
<     PyObject * volatile capi_buildvalue = NULL;
<     volatile int f2py_success = 1;
---
>   PyObject * volatile capi_buildvalue = NULL;
>   volatile int f2py_success = 1;
1155c991
<     static char *capi_kwlist[] = {"interactive",NULL};
---
>   static char *capi_kwlist[] = {"interactive",NULL};
1161,1164c997,1000
<     if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
<         "O|:_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.cycle_",\
<         capi_kwlist,&interactive_capi))
<         return NULL;
---
>   if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
>     "O|:_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.cycle_",\
>     capi_kwlist,&interactive_capi))
>     return NULL;
1182c1018
<         if (f2py_success) {
---
>     if (f2py_success) {
1185,1186c1021,1022
<         CFUNCSMESS("Building return value.\n");
<         capi_buildvalue = Py_BuildValue("");
---
>     CFUNCSMESS("Building return value.\n");
>     capi_buildvalue = Py_BuildValue("");
1189c1025
<         } /*if (f2py_success) after callfortranroutine*/
---
>     } /*if (f2py_success) after callfortranroutine*/
1194c1030
<     if (capi_buildvalue == NULL) {
---
>   if (capi_buildvalue == NULL) {
1196c1032
<     } else {
---
>   } else {
1198,1199c1034,1035
<     }
<     CFUNCSMESS("Freeing memory.\n");
---
>   }
>   CFUNCSMESS("Freeing memory.\n");
1204c1040
<     return capi_buildvalue;
---
>   return capi_buildvalue;
1218,1219c1054,1055
<     PyObject * volatile capi_buildvalue = NULL;
<     volatile int f2py_success = 1;
---
>   PyObject * volatile capi_buildvalue = NULL;
>   volatile int f2py_success = 1;
1225c1061
<     static char *capi_kwlist[] = {"s",NULL};
---
>   static char *capi_kwlist[] = {"s",NULL};
1231,1234c1067,1070
<     if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
<         "O|:_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.terminate_",\
<         capi_kwlist,&s_capi))
<         return NULL;
---
>   if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
>     "O|:_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.terminate_",\
>     capi_kwlist,&s_capi))
>     return NULL;
1252c1088
<         if (f2py_success) {
---
>     if (f2py_success) {
1255,1256c1091,1092
<         CFUNCSMESS("Building return value.\n");
<         capi_buildvalue = Py_BuildValue("");
---
>     CFUNCSMESS("Building return value.\n");
>     capi_buildvalue = Py_BuildValue("");
1259c1095
<         } /*if (f2py_success) after callfortranroutine*/
---
>     } /*if (f2py_success) after callfortranroutine*/
1265c1101
<     if (capi_buildvalue == NULL) {
---
>   if (capi_buildvalue == NULL) {
1267c1103
<     } else {
---
>   } else {
1269,1270c1105,1106
<     }
<     CFUNCSMESS("Freeing memory.\n");
---
>   }
>   CFUNCSMESS("Freeing memory.\n");
1275c1111
<     return capi_buildvalue;
---
>   return capi_buildvalue;
1295,1296c1131,1132
<     PyObject * volatile capi_buildvalue = NULL;
<     volatile int f2py_success = 1;
---
>   PyObject * volatile capi_buildvalue = NULL;
>   volatile int f2py_success = 1;
1315c1151
<     static char *capi_kwlist[] = {"namedat","jmin","jmax",NULL};
---
>   static char *capi_kwlist[] = {"namedat","jmin","jmax",NULL};
1321,1324c1157,1160
<     if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
<         "OOO|:_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.loadbuf_",\
<         capi_kwlist,&namedat_capi,&jmin_capi,&jmax_capi))
<         return NULL;
---
>   if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
>     "OOO|:_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.loadbuf_",\
>     capi_kwlist,&namedat_capi,&jmin_capi,&jmax_capi))
>     return NULL;
1365c1201
<         if (f2py_success) {
---
>     if (f2py_success) {
1368,1369c1204,1205
<         CFUNCSMESS("Building return value.\n");
<         capi_buildvalue = Py_BuildValue("Nyi",capi_datbuf_tmp,datlabel,ierr);
---
>     CFUNCSMESS("Building return value.\n");
>     capi_buildvalue = Py_BuildValue("Nyi",capi_datbuf_tmp,datlabel,ierr);
1372c1208
<         } /*if (f2py_success) after callfortranroutine*/
---
>     } /*if (f2py_success) after callfortranroutine*/
1388c1224
<     if (capi_buildvalue == NULL) {
---
>   if (capi_buildvalue == NULL) {
1390c1226
<     } else {
---
>   } else {
1392,1393c1228,1229
<     }
<     CFUNCSMESS("Freeing memory.\n");
---
>   }
>   CFUNCSMESS("Freeing memory.\n");
1398c1234
<     return capi_buildvalue;
---
>   return capi_buildvalue;
1404c1240
< pyexit(foo,endkepler,[endkepler_extra_args])\n\nWrapper for ``pyexit``.\
---
> pyexit(code,endkepler,[endkepler_extra_args])\n\nWrapper for ``pyexit``.\
1406c1242
< "foo : input int\n"
---
> "code : input int\n"
1411c1247
< "  def endkepler(foo): return \n\
---
> "  def endkepler(code): return \n\
1413c1249
< "    foo : input int";
---
> "    code : input int";
1419,1420c1255,1256
<     PyObject * volatile capi_buildvalue = NULL;
<     volatile int f2py_success = 1;
---
>   PyObject * volatile capi_buildvalue = NULL;
>   volatile int f2py_success = 1;
1423,1428c1259,1265
<   int foo = 0;
<   PyObject *foo_capi = Py_None;
<     cb_endkepler_in_pyexit__user__routines_t endkepler_cb = { Py_None, NULL, 0 };
<     cb_endkepler_in_pyexit__user__routines_t *endkepler_cb_ptr = &endkepler_cb;
<     PyTupleObject *endkepler_xa_capi = NULL;
<     static char *capi_kwlist[] = {"foo","endkepler","endkepler_extra_args",NULL};
---
>   int code = 0;
>   PyObject *code_capi = Py_None;
>   PyObject *endkepler_capi = Py_None;
>   PyTupleObject *endkepler_xa_capi = NULL;
>   PyTupleObject *endkepler_args_capi = NULL;
>   int endkepler_nofargs_capi = 0;
>   static char *capi_kwlist[] = {"code","endkepler","endkepler_extra_args",NULL};
1434,1437c1271,1274
<     if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
<         "OO|O!:_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.pyexit",\
<         capi_kwlist,&foo_capi,&endkepler_cb.capi,&PyTuple_Type,&endkepler_xa_capi))
<         return NULL;
---
>   if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
>     "OO|O!:_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.pyexit",\
>     capi_kwlist,&code_capi,&endkepler_capi,&PyTuple_Type,&endkepler_xa_capi))
>     return NULL;
1439,1440c1276,1277
<   /* Processing variable foo */
<     f2py_success = int_from_pyobj(&foo,foo_capi,"_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.pyexit() 1st argument (foo) can't be converted to int");
---
>   /* Processing variable code */
>     f2py_success = int_from_pyobj(&code,code_capi,"_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.pyexit() 1st argument (code) can't be converted to int");
1443,1445c1280,1282
< if (endkepler_cb.capi==Py_None) {
<   endkepler_cb.capi = PyObject_GetAttrString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_module,"endkepler");
<   if (endkepler_cb.capi) {
---
> if (endkepler_capi==Py_None) {
>   endkepler_capi = PyObject_GetAttrString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_module,"endkepler");
>   if (endkepler_capi) {
1463c1300
<   if (endkepler_cb.capi==NULL) {
---
>   if (endkepler_capi==NULL) {
1469,1472c1306,1312
<     if (create_cb_arglist(endkepler_cb.capi,endkepler_xa_capi,1,0,&endkepler_cb.nofargs,&endkepler_cb.args_capi,"failed in processing argument list for call-back endkepler.")) {
< 
<         CFUNCSMESS("Saving callback variables for `endkepler`.\n");
<         endkepler_cb_ptr = swap_active_cb_endkepler_in_pyexit__user__routines(endkepler_cb_ptr);
---
>   endkepler_nofargs_capi = cb_endkepler_in_pyexit__user__routines_nofargs;
>   if (create_cb_arglist(endkepler_capi,endkepler_xa_capi,1,0,&cb_endkepler_in_pyexit__user__routines_nofargs,&endkepler_args_capi,"failed in processing argument list for call-back endkepler.")) {
>     jmp_buf endkepler_jmpbuf;
>     CFUNCSMESS("Saving jmpbuf for `endkepler`.\n");
>     SWAP(endkepler_capi,cb_endkepler_in_pyexit__user__routines_capi,PyObject);
>     SWAP(endkepler_args_capi,cb_endkepler_in_pyexit__user__routines_args_capi,PyTupleObject);
>     memcpy(&endkepler_jmpbuf,&cb_endkepler_in_pyexit__user__routines_jmpbuf,sizeof(jmp_buf));
1478c1318
<     if ((setjmp(endkepler_cb.jmpbuf))) {
---
>     if ((setjmp(cb_endkepler_in_pyexit__user__routines_jmpbuf))) {
1481c1321
<         (*f2py_func)(&foo);
---
>         (*f2py_func)(&code);
1489c1329
<         if (f2py_success) {
---
>     if (f2py_success) {
1492,1493c1332,1333
<         CFUNCSMESS("Building return value.\n");
<         capi_buildvalue = Py_BuildValue("");
---
>     CFUNCSMESS("Building return value.\n");
>     capi_buildvalue = Py_BuildValue("");
1496c1336
<         } /*if (f2py_success) after callfortranroutine*/
---
>     } /*if (f2py_success) after callfortranroutine*/
1498,1501c1338,1344
<         CFUNCSMESS("Restoring callback variables for `endkepler`.\n");
<         endkepler_cb_ptr = swap_active_cb_endkepler_in_pyexit__user__routines(endkepler_cb_ptr);
<         Py_DECREF(endkepler_cb.args_capi);
<     }
---
>     CFUNCSMESS("Restoring jmpbuf for `endkepler`.\n");
>     cb_endkepler_in_pyexit__user__routines_capi = endkepler_capi;
>     Py_DECREF(cb_endkepler_in_pyexit__user__routines_args_capi);
>     cb_endkepler_in_pyexit__user__routines_args_capi = endkepler_args_capi;
>     cb_endkepler_in_pyexit__user__routines_nofargs = endkepler_nofargs_capi;
>     memcpy(&cb_endkepler_in_pyexit__user__routines_jmpbuf,&endkepler_jmpbuf,sizeof(jmp_buf));
>   }
1503,1504c1346,1347
<   } /*if (f2py_success) of foo*/
<   /* End of cleaning variable foo */
---
>   } /*if (f2py_success) of code*/
>   /* End of cleaning variable code */
1506c1349
<     if (capi_buildvalue == NULL) {
---
>   if (capi_buildvalue == NULL) {
1508c1351
<     } else {
---
>   } else {
1510,1511c1353,1354
<     }
<     CFUNCSMESS("Freeing memory.\n");
---
>   }
>   CFUNCSMESS("Freeing memory.\n");
1516c1359
<     return capi_buildvalue;
---
>   return capi_buildvalue;
1535,1536c1378,1379
<     PyObject * volatile capi_buildvalue = NULL;
<     volatile int f2py_success = 1;
---
>   PyObject * volatile capi_buildvalue = NULL;
>   volatile int f2py_success = 1;
1539,1542c1382,1386
<     cb_plotkepler_in_pyplot__user__routines_t plotkepler_cb = { Py_None, NULL, 0 };
<     cb_plotkepler_in_pyplot__user__routines_t *plotkepler_cb_ptr = &plotkepler_cb;
<     PyTupleObject *plotkepler_xa_capi = NULL;
<     static char *capi_kwlist[] = {"plotkepler","plotkepler_extra_args",NULL};
---
>   PyObject *plotkepler_capi = Py_None;
>   PyTupleObject *plotkepler_xa_capi = NULL;
>   PyTupleObject *plotkepler_args_capi = NULL;
>   int plotkepler_nofargs_capi = 0;
>   static char *capi_kwlist[] = {"plotkepler","plotkepler_extra_args",NULL};
1548,1551c1392,1395
<     if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
<         "O|O!:_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.pyplot",\
<         capi_kwlist,&plotkepler_cb.capi,&PyTuple_Type,&plotkepler_xa_capi))
<         return NULL;
---
>   if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
>     "O|O!:_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.pyplot",\
>     capi_kwlist,&plotkepler_capi,&PyTuple_Type,&plotkepler_xa_capi))
>     return NULL;
1554,1556c1398,1400
< if (plotkepler_cb.capi==Py_None) {
<   plotkepler_cb.capi = PyObject_GetAttrString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_module,"plotkepler");
<   if (plotkepler_cb.capi) {
---
> if (plotkepler_capi==Py_None) {
>   plotkepler_capi = PyObject_GetAttrString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_module,"plotkepler");
>   if (plotkepler_capi) {
1574c1418
<   if (plotkepler_cb.capi==NULL) {
---
>   if (plotkepler_capi==NULL) {
1580,1583c1424,1430
<     if (create_cb_arglist(plotkepler_cb.capi,plotkepler_xa_capi,0,0,&plotkepler_cb.nofargs,&plotkepler_cb.args_capi,"failed in processing argument list for call-back plotkepler.")) {
< 
<         CFUNCSMESS("Saving callback variables for `plotkepler`.\n");
<         plotkepler_cb_ptr = swap_active_cb_plotkepler_in_pyplot__user__routines(plotkepler_cb_ptr);
---
>   plotkepler_nofargs_capi = cb_plotkepler_in_pyplot__user__routines_nofargs;
>   if (create_cb_arglist(plotkepler_capi,plotkepler_xa_capi,0,0,&cb_plotkepler_in_pyplot__user__routines_nofargs,&plotkepler_args_capi,"failed in processing argument list for call-back plotkepler.")) {
>     jmp_buf plotkepler_jmpbuf;
>     CFUNCSMESS("Saving jmpbuf for `plotkepler`.\n");
>     SWAP(plotkepler_capi,cb_plotkepler_in_pyplot__user__routines_capi,PyObject);
>     SWAP(plotkepler_args_capi,cb_plotkepler_in_pyplot__user__routines_args_capi,PyTupleObject);
>     memcpy(&plotkepler_jmpbuf,&cb_plotkepler_in_pyplot__user__routines_jmpbuf,sizeof(jmp_buf));
1589c1436
<     if ((setjmp(plotkepler_cb.jmpbuf))) {
---
>     if ((setjmp(cb_plotkepler_in_pyplot__user__routines_jmpbuf))) {
1600c1447
<         if (f2py_success) {
---
>     if (f2py_success) {
1603,1604c1450,1451
<         CFUNCSMESS("Building return value.\n");
<         capi_buildvalue = Py_BuildValue("");
---
>     CFUNCSMESS("Building return value.\n");
>     capi_buildvalue = Py_BuildValue("");
1607c1454
<         } /*if (f2py_success) after callfortranroutine*/
---
>     } /*if (f2py_success) after callfortranroutine*/
1609,1612c1456,1462
<         CFUNCSMESS("Restoring callback variables for `plotkepler`.\n");
<         plotkepler_cb_ptr = swap_active_cb_plotkepler_in_pyplot__user__routines(plotkepler_cb_ptr);
<         Py_DECREF(plotkepler_cb.args_capi);
<     }
---
>     CFUNCSMESS("Restoring jmpbuf for `plotkepler`.\n");
>     cb_plotkepler_in_pyplot__user__routines_capi = plotkepler_capi;
>     Py_DECREF(cb_plotkepler_in_pyplot__user__routines_args_capi);
>     cb_plotkepler_in_pyplot__user__routines_args_capi = plotkepler_args_capi;
>     cb_plotkepler_in_pyplot__user__routines_nofargs = plotkepler_nofargs_capi;
>     memcpy(&cb_plotkepler_in_pyplot__user__routines_jmpbuf,&plotkepler_jmpbuf,sizeof(jmp_buf));
>   }
1615c1465
<     if (capi_buildvalue == NULL) {
---
>   if (capi_buildvalue == NULL) {
1617c1467
<     } else {
---
>   } else {
1619,1620c1469,1470
<     }
<     CFUNCSMESS("Freeing memory.\n");
---
>   }
>   CFUNCSMESS("Freeing memory.\n");
1625c1475
<     return capi_buildvalue;
---
>   return capi_buildvalue;
1631c1481
< pygets(ttymsg,ttykepler,[ttykepler_extra_args])\n\nWrapper for ``pygets``.\
---
> ttymsg = pygets(ttykepler,[ttykepler_extra_args])\n\nWrapper for ``pygets``.\
1633d1482
< "ttymsg : in/output rank-0 array(string(len=-1),'c')\n"
1636a1486,1487
> "\nReturns\n-------\n"
> "ttymsg : string(len=-1)\n"
1646,1647c1497,1498
<     PyObject * volatile capi_buildvalue = NULL;
<     volatile int f2py_success = 1;
---
>   PyObject * volatile capi_buildvalue = NULL;
>   volatile int f2py_success = 1;
1653,1656c1504,1508
<     cb_ttykepler_in_pygets__user__routines_t ttykepler_cb = { Py_None, NULL, 0 };
<     cb_ttykepler_in_pygets__user__routines_t *ttykepler_cb_ptr = &ttykepler_cb;
<     PyTupleObject *ttykepler_xa_capi = NULL;
<     static char *capi_kwlist[] = {"ttymsg","ttykepler","ttykepler_extra_args",NULL};
---
>   PyObject *ttykepler_capi = Py_None;
>   PyTupleObject *ttykepler_xa_capi = NULL;
>   PyTupleObject *ttykepler_args_capi = NULL;
>   int ttykepler_nofargs_capi = 0;
>   static char *capi_kwlist[] = {"ttykepler","ttykepler_extra_args",NULL};
1662,1665c1514,1517
<     if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
<         "OO|O!:_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.pygets",\
<         capi_kwlist,&ttymsg_capi,&ttykepler_cb.capi,&PyTuple_Type,&ttykepler_xa_capi))
<         return NULL;
---
>   if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
>     "O|O!:_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.pygets",\
>     capi_kwlist,&ttykepler_capi,&PyTuple_Type,&ttykepler_xa_capi))
>     return NULL;
1669c1521
<   f2py_success = string_from_pyobj(&ttymsg,&slen(ttymsg),"",ttymsg_capi,"string_from_pyobj failed in converting 1st argument `ttymsg' of _kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.pygets to C string");
---
>   f2py_success = string_from_pyobj(&ttymsg,&slen(ttymsg),"",ttymsg_capi,"string_from_pyobj failed in converting hidden `ttymsg' of _kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.pygets to C string");
1672,1674c1524,1526
< if (ttykepler_cb.capi==Py_None) {
<   ttykepler_cb.capi = PyObject_GetAttrString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_module,"ttykepler");
<   if (ttykepler_cb.capi) {
---
> if (ttykepler_capi==Py_None) {
>   ttykepler_capi = PyObject_GetAttrString(_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_module,"ttykepler");
>   if (ttykepler_capi) {
1692c1544
<   if (ttykepler_cb.capi==NULL) {
---
>   if (ttykepler_capi==NULL) {
1698,1701c1550,1556
<     if (create_cb_arglist(ttykepler_cb.capi,ttykepler_xa_capi,1,0,&ttykepler_cb.nofargs,&ttykepler_cb.args_capi,"failed in processing argument list for call-back ttykepler.")) {
< 
<         CFUNCSMESS("Saving callback variables for `ttykepler`.\n");
<         ttykepler_cb_ptr = swap_active_cb_ttykepler_in_pygets__user__routines(ttykepler_cb_ptr);
---
>   ttykepler_nofargs_capi = cb_ttykepler_in_pygets__user__routines_nofargs;
>   if (create_cb_arglist(ttykepler_capi,ttykepler_xa_capi,1,0,&cb_ttykepler_in_pygets__user__routines_nofargs,&ttykepler_args_capi,"failed in processing argument list for call-back ttykepler.")) {
>     jmp_buf ttykepler_jmpbuf;
>     CFUNCSMESS("Saving jmpbuf for `ttykepler`.\n");
>     SWAP(ttykepler_capi,cb_ttykepler_in_pygets__user__routines_capi,PyObject);
>     SWAP(ttykepler_args_capi,cb_ttykepler_in_pygets__user__routines_args_capi,PyTupleObject);
>     memcpy(&ttykepler_jmpbuf,&cb_ttykepler_in_pygets__user__routines_jmpbuf,sizeof(jmp_buf));
1707c1562
<     if ((setjmp(ttykepler_cb.jmpbuf))) {
---
>     if ((setjmp(cb_ttykepler_in_pygets__user__routines_jmpbuf))) {
1718c1573
<         if (f2py_success) {
---
>     if (f2py_success) {
1720,1721d1574
<   f2py_success = try_pyarr_from_string(ttymsg_capi,ttymsg);
<   if (f2py_success) {
1723,1724c1576,1577
<         CFUNCSMESS("Building return value.\n");
<         capi_buildvalue = Py_BuildValue("");
---
>     CFUNCSMESS("Building return value.\n");
>     capi_buildvalue = Py_BuildValue("y",ttymsg);
1726d1578
<   } /*if (f2py_success) of ttymsg pyobjfrom*/
1728c1580
<         } /*if (f2py_success) after callfortranroutine*/
---
>     } /*if (f2py_success) after callfortranroutine*/
1730,1733c1582,1588
<         CFUNCSMESS("Restoring callback variables for `ttykepler`.\n");
<         ttykepler_cb_ptr = swap_active_cb_ttykepler_in_pygets__user__routines(ttykepler_cb_ptr);
<         Py_DECREF(ttykepler_cb.args_capi);
<     }
---
>     CFUNCSMESS("Restoring jmpbuf for `ttykepler`.\n");
>     cb_ttykepler_in_pygets__user__routines_capi = ttykepler_capi;
>     Py_DECREF(cb_ttykepler_in_pygets__user__routines_args_capi);
>     cb_ttykepler_in_pygets__user__routines_args_capi = ttykepler_args_capi;
>     cb_ttykepler_in_pygets__user__routines_nofargs = ttykepler_nofargs_capi;
>     memcpy(&cb_ttykepler_in_pygets__user__routines_jmpbuf,&ttykepler_jmpbuf,sizeof(jmp_buf));
>   }
1739c1594
<     if (capi_buildvalue == NULL) {
---
>   if (capi_buildvalue == NULL) {
1741c1596
<     } else {
---
>   } else {
1743,1744c1598,1599
<     }
<     CFUNCSMESS("Freeing memory.\n");
---
>   }
>   CFUNCSMESS("Freeing memory.\n");
1749c1604
<     return capi_buildvalue;
---
>   return capi_buildvalue;
1766,1767c1621,1622
<     PyObject * volatile capi_buildvalue = NULL;
<     volatile int f2py_success = 1;
---
>   PyObject * volatile capi_buildvalue = NULL;
>   volatile int f2py_success = 1;
1779c1634
<     static char *capi_kwlist[] = {"jmin","jmax",NULL};
---
>   static char *capi_kwlist[] = {"jmin","jmax",NULL};
1785,1788c1640,1643
<     if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
<         "OO|:_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.getentropies_",\
<         capi_kwlist,&jmin_capi,&jmax_capi))
<         return NULL;
---
>   if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
>     "OO|:_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.getentropies_",\
>     capi_kwlist,&jmin_capi,&jmax_capi))
>     return NULL;
1820c1675
<         if (f2py_success) {
---
>     if (f2py_success) {
1823,1824c1678,1679
<         CFUNCSMESS("Building return value.\n");
<         capi_buildvalue = Py_BuildValue("N",capi_datbuf_tmp);
---
>     CFUNCSMESS("Building return value.\n");
>     capi_buildvalue = Py_BuildValue("N",capi_datbuf_tmp);
1827c1682
<         } /*if (f2py_success) after callfortranroutine*/
---
>     } /*if (f2py_success) after callfortranroutine*/
1836c1691
<     if (capi_buildvalue == NULL) {
---
>   if (capi_buildvalue == NULL) {
1838c1693
<     } else {
---
>   } else {
1840,1841c1695,1696
<     }
<     CFUNCSMESS("Freeing memory.\n");
---
>   }
>   CFUNCSMESS("Freeing memory.\n");
1846c1701
<     return capi_buildvalue;
---
>   return capi_buildvalue;
1867,1868c1722,1723
<     PyObject * volatile capi_buildvalue = NULL;
<     volatile int f2py_success = 1;
---
>   PyObject * volatile capi_buildvalue = NULL;
>   volatile int f2py_success = 1;
1903c1758
<     static char *capi_kwlist[] = {"jzone","tem","den","dt","idata","flags",NULL};
---
>   static char *capi_kwlist[] = {"jzone","tem","den","dt","idata","flags",NULL};
1909,1912c1764,1767
<     if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
<         "OOOOOO|:_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.eosedit_",\
<         capi_kwlist,&jzone_capi,&tem_capi,&den_capi,&dt_capi,&idata_capi,&flags_capi))
<         return NULL;
---
>   if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
>     "OOOOOO|:_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.eosedit_",\
>     capi_kwlist,&jzone_capi,&tem_capi,&den_capi,&dt_capi,&idata_capi,&flags_capi))
>     return NULL;
1989c1844
<         if (f2py_success) {
---
>     if (f2py_success) {
1992,1993c1847,1848
<         CFUNCSMESS("Building return value.\n");
<         capi_buildvalue = Py_BuildValue("N",capi_data_tmp);
---
>     CFUNCSMESS("Building return value.\n");
>     capi_buildvalue = Py_BuildValue("N",capi_data_tmp);
1996c1851
<         } /*if (f2py_success) after callfortranroutine*/
---
>     } /*if (f2py_success) after callfortranroutine*/
2022c1877
<     if (capi_buildvalue == NULL) {
---
>   if (capi_buildvalue == NULL) {
2024c1879
<     } else {
---
>   } else {
2026,2027c1881,1882
<     }
<     CFUNCSMESS("Freeing memory.\n");
---
>   }
>   CFUNCSMESS("Freeing memory.\n");
2032c1887
<     return capi_buildvalue;
---
>   return capi_buildvalue;
2065,2066c1920,1921
<     PyObject * volatile capi_buildvalue = NULL;
<     volatile int f2py_success = 1;
---
>   PyObject * volatile capi_buildvalue = NULL;
>   volatile int f2py_success = 1;
2093c1948
<     static char *capi_kwlist[] = {"jzone","tem","den","dt","flags",NULL};
---
>   static char *capi_kwlist[] = {"jzone","tem","den","dt","flags",NULL};
2099,2102c1954,1957
<     if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
<         "OOOOO|:_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.eos_",\
<         capi_kwlist,&jzone_capi,&tem_capi,&den_capi,&dt_capi,&flags_capi))
<         return NULL;
---
>   if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
>     "OOOOO|:_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.eos_",\
>     capi_kwlist,&jzone_capi,&tem_capi,&den_capi,&dt_capi,&flags_capi))
>     return NULL;
2145c2000
<         if (f2py_success) {
---
>     if (f2py_success) {
2148,2149c2003,2004
<         CFUNCSMESS("Building return value.\n");
<         capi_buildvalue = Py_BuildValue("dddddddddddddd",ptot,etot,sig,pt,pd,et,ed,xk,xkt,xkd,xs,xst,xsd,dxmax);
---
>     CFUNCSMESS("Building return value.\n");
>     capi_buildvalue = Py_BuildValue("dddddddddddddd",ptot,etot,sig,pt,pd,et,ed,xk,xkt,xkd,xs,xst,xsd,dxmax);
2152c2007
<         } /*if (f2py_success) after callfortranroutine*/
---
>     } /*if (f2py_success) after callfortranroutine*/
2179c2034
<     if (capi_buildvalue == NULL) {
---
>   if (capi_buildvalue == NULL) {
2181c2036
<     } else {
---
>   } else {
2183,2184c2038,2039
<     }
<     CFUNCSMESS("Freeing memory.\n");
---
>   }
>   CFUNCSMESS("Freeing memory.\n");
2189c2044
<     return capi_buildvalue;
---
>   return capi_buildvalue;
2212,2213c2067,2068
<     PyObject * volatile capi_buildvalue = NULL;
<     volatile int f2py_success = 1;
---
>   PyObject * volatile capi_buildvalue = NULL;
>   volatile int f2py_success = 1;
2229c2084
<     static char *capi_kwlist[] = {"jzone","tem","den","dtup","flags",NULL};
---
>   static char *capi_kwlist[] = {"jzone","tem","den","dtup","flags",NULL};
2235,2238c2090,2093
<     if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
<         "OOOO|O:_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.burnzone_",\
<         capi_kwlist,&jzone_capi,&tem_capi,&den_capi,&dtup_capi,&flags_capi))
<         return NULL;
---
>   if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
>     "OOOO|O:_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.burnzone_",\
>     capi_kwlist,&jzone_capi,&tem_capi,&den_capi,&dtup_capi,&flags_capi))
>     return NULL;
2271c2126
<         if (f2py_success) {
---
>     if (f2py_success) {
2274,2275c2129,2130
<         CFUNCSMESS("Building return value.\n");
<         capi_buildvalue = Py_BuildValue("ddd",xs,xnu,dxmax);
---
>     CFUNCSMESS("Building return value.\n");
>     capi_buildvalue = Py_BuildValue("ddd",xs,xnu,dxmax);
2278c2133
<         } /*if (f2py_success) after callfortranroutine*/
---
>     } /*if (f2py_success) after callfortranroutine*/
2294c2149
<     if (capi_buildvalue == NULL) {
---
>   if (capi_buildvalue == NULL) {
2296c2151
<     } else {
---
>   } else {
2298,2299c2153,2154
<     }
<     CFUNCSMESS("Freeing memory.\n");
---
>   }
>   CFUNCSMESS("Freeing memory.\n");
2304c2159
<     return capi_buildvalue;
---
>   return capi_buildvalue;
2336,2337c2191,2192
<     PyObject * volatile capi_buildvalue = NULL;
<     volatile int f2py_success = 1;
---
>   PyObject * volatile capi_buildvalue = NULL;
>   volatile int f2py_success = 1;
2363c2218
<     static char *capi_kwlist[] = {"jzone","tem","den","dtup","flags",NULL};
---
>   static char *capi_kwlist[] = {"jzone","tem","den","dtup","flags",NULL};
2369,2372c2224,2227
<     if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
<         "OOOOO|:_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.eosburn_",\
<         capi_kwlist,&jzone_capi,&tem_capi,&den_capi,&dtup_capi,&flags_capi))
<         return NULL;
---
>   if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
>     "OOOOO|:_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.eosburn_",\
>     capi_kwlist,&jzone_capi,&tem_capi,&den_capi,&dtup_capi,&flags_capi))
>     return NULL;
2414c2269
<         if (f2py_success) {
---
>     if (f2py_success) {
2417,2418c2272,2273
<         CFUNCSMESS("Building return value.\n");
<         capi_buildvalue = Py_BuildValue("ddddddddddddd",ptot,etot,sig,pt,pd,et,ed,xk,xkt,xkd,xs,xnu,dxmax);
---
>     CFUNCSMESS("Building return value.\n");
>     capi_buildvalue = Py_BuildValue("ddddddddddddd",ptot,etot,sig,pt,pd,et,ed,xk,xkt,xkd,xs,xnu,dxmax);
2421c2276
<         } /*if (f2py_success) after callfortranroutine*/
---
>     } /*if (f2py_success) after callfortranroutine*/
2447c2302
<     if (capi_buildvalue == NULL) {
---
>   if (capi_buildvalue == NULL) {
2449c2304
<     } else {
---
>   } else {
2451,2452c2306,2307
<     }
<     CFUNCSMESS("Freeing memory.\n");
---
>   }
>   CFUNCSMESS("Freeing memory.\n");
2457c2312
<     return capi_buildvalue;
---
>   return capi_buildvalue;
2483,2484c2338,2339
<     PyObject * volatile capi_buildvalue = NULL;
<     volatile int f2py_success = 1;
---
>   PyObject * volatile capi_buildvalue = NULL;
>   volatile int f2py_success = 1;
2502c2357
<     static char *capi_kwlist[] = {"jzone","tem","den",NULL};
---
>   static char *capi_kwlist[] = {"jzone","tem","den",NULL};
2508,2511c2363,2366
<     if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
<         "OOO|:_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.getesk_",\
<         capi_kwlist,&jzone_capi,&tem_capi,&den_capi))
<         return NULL;
---
>   if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
>     "OOO|:_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.getesk_",\
>     capi_kwlist,&jzone_capi,&tem_capi,&den_capi))
>     return NULL;
2543c2398
<         if (f2py_success) {
---
>     if (f2py_success) {
2546,2547c2401,2402
<         CFUNCSMESS("Building return value.\n");
<         capi_buildvalue = Py_BuildValue("ddddddddd",p,e,pt,pd,et,ed,xk,xkt,xkd);
---
>     CFUNCSMESS("Building return value.\n");
>     capi_buildvalue = Py_BuildValue("ddddddddd",p,e,pt,pd,et,ed,xk,xkt,xkd);
2550c2405
<         } /*if (f2py_success) after callfortranroutine*/
---
>     } /*if (f2py_success) after callfortranroutine*/
2568c2423
<     if (capi_buildvalue == NULL) {
---
>   if (capi_buildvalue == NULL) {
2570c2425
<     } else {
---
>   } else {
2572,2573c2427,2428
<     }
<     CFUNCSMESS("Freeing memory.\n");
---
>   }
>   CFUNCSMESS("Freeing memory.\n");
2578c2433
<     return capi_buildvalue;
---
>   return capi_buildvalue;
2601,2602c2456,2457
<     PyObject * volatile capi_buildvalue = NULL;
<     volatile int f2py_success = 1;
---
>   PyObject * volatile capi_buildvalue = NULL;
>   volatile int f2py_success = 1;
2617c2472
<     static char *capi_kwlist[] = {"jzone","tem","den",NULL};
---
>   static char *capi_kwlist[] = {"jzone","tem","den",NULL};
2623,2626c2478,2481
<     if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
<         "OOO|:_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.getes_",\
<         capi_kwlist,&jzone_capi,&tem_capi,&den_capi))
<         return NULL;
---
>   if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
>     "OOO|:_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz.getes_",\
>     capi_kwlist,&jzone_capi,&tem_capi,&den_capi))
>     return NULL;
2655c2510
<         if (f2py_success) {
---
>     if (f2py_success) {
2658,2659c2513,2514
<         CFUNCSMESS("Building return value.\n");
<         capi_buildvalue = Py_BuildValue("dddddd",p,e,pt,pd,et,ed);
---
>     CFUNCSMESS("Building return value.\n");
>     capi_buildvalue = Py_BuildValue("dddddd",p,e,pt,pd,et,ed);
2662c2517
<         } /*if (f2py_success) after callfortranroutine*/
---
>     } /*if (f2py_success) after callfortranroutine*/
2677c2532
<     if (capi_buildvalue == NULL) {
---
>   if (capi_buildvalue == NULL) {
2679c2534
<     } else {
---
>   } else {
2681,2682c2536,2537
<     }
<     CFUNCSMESS("Freeing memory.\n");
---
>   }
>   CFUNCSMESS("Freeing memory.\n");
2687c2542
<     return capi_buildvalue;
---
>   return capi_buildvalue;
5540c5395
<   s = PyUnicode_FromString("1.21.0.dev0+655.g2f466b318");
---
>   s = PyString_FromString("$Revision: $");
5544c5399
<     "This module '_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz' is auto-generated with f2py (version:1.21.0.dev0+655.g2f466b318).\nFunctions:\n"
---
>     "This module '_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz' is auto-generated with f2py (version:2).\nFunctions:\n"
5550c5405
< "  pyexit(foo,endkepler,endkepler_extra_args=())\n"
---
> "  pyexit(code,endkepler,endkepler_extra_args=())\n"
5552c5407
< "  pygets(ttymsg,ttykepler,ttykepler_extra_args=())\n"
---
> "  ttymsg = pygets(ttykepler,ttykepler_extra_args=())\n"
5562,5564d5416
<   Py_DECREF(s);
<   s = PyUnicode_FromString("1.21.0.dev0+655.g2f466b318");
<   PyDict_SetItemString(d, "__f2py_numpy_version__", s);

I also attach the files.

diff.txt 1.19.5.txt 1.21.txt

Error message:

When now from within the Fortran code pyexit is called, a segmentation fault results. I have tried for callbacks that are not methods, and for those w/o parameter - but it always causes a segmentation fault.

Segmentation fault (core dumped)

the full backtrace is

Program terminated with signal SIGSEGV, Segmentation fault.
#0  endkepler_ (code_cb_capi=0x7f352652fd38)
    at /home/alex/python/source/kepler/code/_kepler_build/src.linux-x86_64-3.9/_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHzmodule.c:543
543         capi_arglist = cb->args_capi;
[Current thread is 1 (Thread 0x7f35c1e56740 (LWP 1089561))]
Missing separate debuginfos, use: dnf debuginfo-install systemd-libs-246.7-2.fc33.x86_64
(gdb) bt
#0  endkepler_ (code_cb_capi=0x7f352652fd38)
    at /home/alex/python/source/kepler/code/_kepler_build/src.linux-x86_64-3.9/_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHzmodule.c:543
#1  0x00007f3526368740 in f2py_rout__kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHz_terminate_ (capi_self=<optimized out>, capi_args=<optimized out>, capi_keywds=<optimized out>, f2py_func=0x7f352636e670 <terminate_>)
    at /home/alex/python/source/kepler/code/_kepler_build/src.linux-x86_64-3.9/_kepler_NBURN_8192_JMZ_1983_FULDAT_fuldat1_f_CPU_Intel_R_Xeon_R_W_2145_CPU_3_70GHzmodule.c:1234
#2  0x00007f35c22ae6e0 in _PyObject_MakeTpCall (tstate=0x1df11d0, callable=0x7f35a1086ae0, args=<optimized out>, 
    nargs=<optimized out>, keywords=0x0) at Objects/call.c:191
#3  0x00007f35c226ce53 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=9223372036854775809, args=0x26ae4c8, 
    callable=0x7f35a1086ae0, tstate=<optimized out>) at ./Include/cpython/abstract.h:116
#4  _PyObject_VectorcallTstate (kwnames=0x0, nargsf=9223372036854775809, args=0x26ae4c8, callable=0x7f35a1086ae0, 
    tstate=<optimized out>) at ./Include/cpython/abstract.h:103
#5  PyObject_Vectorcall (kwnames=0x0, nargsf=9223372036854775809, args=0x26ae4c8, callable=0x7f35a1086ae0)
    at ./Include/cpython/abstract.h:127
#6  call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x1df11d0) at Python/ceval.c:5072
#7  _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3487
#8  0x00007f35c2391eac in _PyEval_EvalFrame (throwflag=0, f=0x26ae340, tstate=0x1df11d0)
    at ./Include/internal/pycore_ceval.h:40
#9  _PyEval_EvalCode (tstate=tstate@entry=0x1df11d0, _co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, 
    args=<optimized out>, argcount=1, kwnames=0x0, kwargs=0x7f35a0fb73b8, kwcount=0, kwstep=1, defs=0x7f359a908dd8, 
    defcount=1, kwdefs=0x0, closure=0x0, name=0x7f35b4354230, qualname=0x7f359a904cb0) at Python/ceval.c:4327
#10 0x00007f35c22ae43d in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, 
    kwnames=<optimized out>) at Objects/call.c:395
#11 0x00007f35c22b14e8 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=1, args=0x7f35a0fb73b0, callable=0x7f35a101ed30, 
    tstate=0x1df11d0) at ./Include/cpython/abstract.h:118
#12 method_vectorcall (method=<optimized out>, args=0x7f35a0fb73b8, nargsf=<optimized out>, kwnames=0x0)
    at Objects/classobject.c:53
#13 0x00007f35c226c5f1 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7f35a0fb73b8, 
    callable=0x7f35a07c0100, tstate=0x1df11d0) at ./Include/cpython/abstract.h:118
#14 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7f35a0fb73b8, callable=0x7f35a07c0100)
    at ./Include/cpython/abstract.h:127
#15 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x1df11d0) at Python/ceval.c:5072
#16 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3487
#17 0x00007f35c2391eac in _PyEval_EvalFrame (throwflag=0, f=0x7f35a0fb7240, tstate=0x1df11d0)
    at ./Include/internal/pycore_ceval.h:40
#18 _PyEval_EvalCode (tstate=0x1df11d0, _co=_co@entry=0x7f35a10263a0, globals=globals@entry=0x7f35b2cd5700, 
    locals=locals@entry=0x7f35b2cd5700, args=args@entry=0x0, argcount=argcount@entry=0, kwnames=0x0, kwargs=0x0, kwcount=0, 
    kwstep=2, defs=0x0, defcount=0, kwdefs=0x0, closure=0x0, name=0x0, qualname=0x0) at Python/ceval.c:4327
#19 0x00007f35c23921fe in _PyEval_EvalCodeWithName (_co=_co@entry=0x7f35a10263a0, globals=globals@entry=0x7f35b2cd5700, 
    locals=locals@entry=0x7f35b2cd5700, args=args@entry=0x0, argcount=argcount@entry=0, kwnames=kwnames@entry=0x0, kwargs=0x0, 
    kwcount=0, kwstep=2, defs=0x0, defcount=0, kwdefs=0x0, closure=0x0, name=0x0, qualname=0x0) at Python/ceval.c:4359
#20 0x00007f35c239224e in PyEval_EvalCodeEx (_co=_co@entry=0x7f35a10263a0, globals=globals@entry=0x7f35b2cd5700, 
    locals=locals@entry=0x7f35b2cd5700, args=args@entry=0x0, argcount=argcount@entry=0, kws=kws@entry=0x0, kwcount=0, 
    defs=0x0, defcount=0, kwdefs=0x0, closure=0x0) at Python/ceval.c:4375
#21 0x00007f35c239227b in PyEval_EvalCode (co=co@entry=0x7f35a10263a0, globals=globals@entry=0x7f35b2cd5700, 
    locals=locals@entry=0x7f35b2cd5700) at Python/ceval.c:826
#22 0x00007f35c238cec1 in builtin_exec_impl (module=<optimized out>, locals=0x7f35b2cd5700, globals=0x7f35b2cd5700, 
    source=0x7f35a10263a0) at Python/bltinmodule.c:1035
#23 builtin_exec (module=<optimized out>, args=0x33e9948, nargs=<optimized out>) at Python/clinic/bltinmodule.c.h:396
#24 0x00007f35c22f5434 in cfunction_vectorcall_FASTCALL (func=0x7f35b48b6db0, args=0x33e9948, nargsf=<optimized out>, 
    kwnames=<optimized out>) at Objects/methodobject.c:426
#25 0x00007f35c226b033 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x33e9948, 
    callable=0x7f35b48b6db0, tstate=0x1df11d0) at ./Include/cpython/abstract.h:118
#26 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x33e9948, callable=0x7f35b48b6db0)
    at ./Include/cpython/abstract.h:127
#27 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x1df11d0) at Python/ceval.c:5072
#28 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3518
#29 0x00007f35c22c28cf in _PyEval_EvalFrame (throwflag=0, f=0x33e9770, tstate=0x1df11d0)
    at ./Include/internal/pycore_ceval.h:40
#30 gen_send_ex (gen=0x7f35a2ec1240, arg=<optimized out>, exc=0, closing=<optimized out>) at Objects/genobject.c:215
#31 0x00007f35c226afd8 in _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>)
    at Python/ceval.c:2200
#32 0x00007f35c22c28cf in _PyEval_EvalFrame (throwflag=0, f=0x2b6dea0, tstate=0x1df11d0)
    at ./Include/internal/pycore_ceval.h:40
#33 gen_send_ex (gen=0x7f35ab179bc0, arg=<optimized out>, exc=0, closing=<optimized out>) at Objects/genobject.c:215
#34 0x00007f35c226afd8 in _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>)
    at Python/ceval.c:2200
#35 0x00007f35c22c28cf in _PyEval_EvalFrame (throwflag=0, f=0x2ad88e0, tstate=0x1df11d0)
    at ./Include/internal/pycore_ceval.h:40
#36 gen_send_ex (gen=0x7f35b241f8c0, arg=<optimized out>, exc=0, closing=<optimized out>) at Objects/genobject.c:215
#37 0x00007f35c22b7eb2 in method_vectorcall_O (func=0x7f35b49174f0, args=0x7f35b2431b20, nargsf=<optimized out>, kwnames=0x0)
    at Objects/descrobject.c:462
#38 0x00007f35c226c52c in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7f35b2431b20, 
    callable=0x7f35b49174f0, tstate=0x1df11d0) at ./Include/cpython/abstract.h:118
#39 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7f35b2431b20, callable=0x7f35b49174f0)
    at ./Include/cpython/abstract.h:127
#40 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x1df11d0) at Python/ceval.c:5072
#41 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3504
#42 0x00007f35c2264c1b in _PyEval_EvalFrame (throwflag=0, f=0x7f35b24319a0, tstate=0x1df11d0)
    at ./Include/internal/pycore_ceval.h:40
#43 function_code_fastcall (tstate=0x1df11d0, co=<optimized out>, args=<optimized out>, nargs=1, globals=<optimized out>)
    at Objects/call.c:329
#44 0x00007f35c226b033 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x2b5a070, 
    callable=0x7f35b38c6dc0, tstate=0x1df11d0) at ./Include/cpython/abstract.h:118
#45 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x2b5a070, callable=0x7f35b38c6dc0)
    at ./Include/cpython/abstract.h:127
#46 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x1df11d0) at Python/ceval.c:5072
#47 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3518
#48 0x00007f35c2264c1b in _PyEval_EvalFrame (throwflag=0, f=0x2b59ea0, tstate=0x1df11d0)
    at ./Include/internal/pycore_ceval.h:40
#49 function_code_fastcall (tstate=0x1df11d0, co=<optimized out>, args=<optimized out>, nargs=5, globals=<optimized out>)
    at Objects/call.c:329
#50 0x00007f35c226c52c in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x2b65ee0, 
    callable=0x7f35b38de790, tstate=0x1df11d0) at ./Include/cpython/abstract.h:118
#51 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x2b65ee0, callable=0x7f35b38de790)
    at ./Include/cpython/abstract.h:127
#52 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x1df11d0) at Python/ceval.c:5072
#53 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3504
#54 0x00007f35c2391eac in _PyEval_EvalFrame (throwflag=0, f=0x2b65d40, tstate=0x1df11d0)
    at ./Include/internal/pycore_ceval.h:40
--Type <RET> for more, q to quit, c to continue without paging--bt5~
#55 _PyEval_EvalCode (tstate=tstate@entry=0x1df11d0, _co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, 
    args=<optimized out>, argcount=2, kwnames=0x7f35b3b9db38, kwargs=0x7f35a2c023b0, kwcount=1, kwstep=1, defs=0x7f35b3bce358, 
    defcount=3, kwdefs=0x0, closure=0x0, name=0x7f35b3bc4630, qualname=0x7f35b3bc3a80) at Python/ceval.c:4327
#56 0x00007f35c22ae43d in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, 
    kwnames=<optimized out>) at Objects/call.c:395
#57 0x00007f35c22b14e8 in _PyObject_VectorcallTstate (kwnames=0x7f35b3b9db20, nargsf=2, args=0x7f35a2c023a0, 
    callable=0x7f35b38de700, tstate=0x1df11d0) at ./Include/cpython/abstract.h:118
#58 method_vectorcall (method=<optimized out>, args=0x7f35a2c023a8, nargsf=<optimized out>, kwnames=0x7f35b3b9db20)
    at Objects/classobject.c:53
#59 0x00007f35c226b135 in _PyObject_VectorcallTstate (kwnames=0x7f35b3b9db20, nargsf=<optimized out>, args=<optimized out>, 
    callable=0x7f35aaf20580, tstate=0x1df11d0) at ./Include/cpython/abstract.h:118
#60 PyObject_Vectorcall (kwnames=0x7f35b3b9db20, nargsf=<optimized out>, args=<optimized out>, callable=0x7f35aaf20580)
    at ./Include/cpython/abstract.h:127
#61 call_function (kwnames=0x7f35b3b9db20, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x1df11d0)
    at Python/ceval.c:5072
#62 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3535
#63 0x00007f35c2391eac in _PyEval_EvalFrame (throwflag=0, f=0x7f35a2c02220, tstate=0x1df11d0)
    at ./Include/internal/pycore_ceval.h:40
#64 _PyEval_EvalCode (tstate=tstate@entry=0x1df11d0, _co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, 
    args=<optimized out>, argcount=1, kwnames=0x0, kwargs=0x7f35a8317f60, kwcount=0, kwstep=1, defs=0x7f35b2e76cb8, 
    defcount=1, kwdefs=0x0, closure=0x0, name=0x7f35b42ae2b0, qualname=0x7f35b38ed210) at Python/ceval.c:4327
#65 0x00007f35c22ae43d in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, 
    kwnames=<optimized out>) at Objects/call.c:395
#66 0x00007f35c226c52c in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7f35a8317f58, 
    callable=0x7f35b2e7cdc0, tstate=0x1df11d0) at ./Include/cpython/abstract.h:118
#67 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7f35a8317f58, callable=0x7f35b2e7cdc0)
    at ./Include/cpython/abstract.h:127
#68 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x1df11d0) at Python/ceval.c:5072
#69 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3504
#70 0x00007f35c2391eac in _PyEval_EvalFrame (throwflag=0, f=0x7f35a8317dd0, tstate=0x1df11d0)
    at ./Include/internal/pycore_ceval.h:40
#71 _PyEval_EvalCode (tstate=tstate@entry=0x1df11d0, _co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, 
    args=<optimized out>, argcount=1, kwnames=0x0, kwargs=0x7f35b2d593c0, kwcount=0, kwstep=1, defs=0x7f35b2e76ce8, 
    defcount=1, kwdefs=0x0, closure=0x0, name=0x7f35b41713f0, qualname=0x7f35b38ed2d0) at Python/ceval.c:4327
#72 0x00007f35c22ae43d in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, 
    kwnames=<optimized out>) at Objects/call.c:395
#73 0x00007f35c226c52c in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x7f35b2d593b8, 
    callable=0x7f35b2e7ce50, tstate=0x1df11d0) at ./Include/cpython/abstract.h:118
#74 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x7f35b2d593b8, callable=0x7f35b2e7ce50)
    at ./Include/cpython/abstract.h:127
#75 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x1df11d0) at Python/ceval.c:5072
#76 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3504
#77 0x00007f35c2264c1b in _PyEval_EvalFrame (throwflag=0, f=0x7f35b2d59240, tstate=0x1df11d0)
    at ./Include/internal/pycore_ceval.h:40
#78 function_code_fastcall (tstate=0x1df11d0, co=<optimized out>, args=<optimized out>, nargs=1, globals=<optimized out>)
    at Objects/call.c:329
#79 0x00007f35c226c52c in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x2358b70, 
    callable=0x7f35b2d23e50, tstate=0x1df11d0) at ./Include/cpython/abstract.h:118
#80 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x2358b70, callable=0x7f35b2d23e50)
    at ./Include/cpython/abstract.h:127
#81 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x1df11d0) at Python/ceval.c:5072
#82 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3504
#83 0x00007f35c2391eac in _PyEval_EvalFrame (throwflag=0, f=0x23589e0, tstate=0x1df11d0)
    at ./Include/internal/pycore_ceval.h:40
#84 _PyEval_EvalCode (tstate=tstate@entry=0x1df11d0, _co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, 
    args=<optimized out>, argcount=1, kwnames=0x7f35b48bc508, kwargs=0x7f35b2d040c8, kwcount=1, kwstep=1, defs=0x7f35b4406748, 
    defcount=1, kwdefs=0x0, closure=0x0, name=0x7f35b4409270, qualname=0x7f35b4407d00) at Python/ceval.c:4327
#85 0x00007f35c22ae43d in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, 
    kwnames=<optimized out>) at Objects/call.c:395
#86 0x00007f35c22b14e8 in _PyObject_VectorcallTstate (kwnames=0x7f35b48bc4f0, nargsf=1, args=0x7f35b2d040c0, 
    callable=0x7f35b42fdf70, tstate=0x1df11d0) at ./Include/cpython/abstract.h:118
#87 method_vectorcall (method=<optimized out>, args=0x7f35b2d040c8, nargsf=<optimized out>, kwnames=0x7f35b48bc4f0)
    at Objects/classobject.c:53
#88 0x00007f35c22ae170 in PyVectorcall_Call (callable=0x7f35b2d2bf40, tuple=<optimized out>, kwargs=<optimized out>)
    at Objects/call.c:242
#89 0x00007f35c2269add in do_call_core (kwdict=0x7f35b46a9b40, callargs=0x7f35b48ea040, func=0x7f35b2d2bf40, tstate=0x1df11d0)
    at Python/ceval.c:5120
#90 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3580
#91 0x00007f35c2391eac in _PyEval_EvalFrame (throwflag=0, f=0x2450350, tstate=0x1df11d0)
    at ./Include/internal/pycore_ceval.h:40
#92 _PyEval_EvalCode (tstate=tstate@entry=0x1df11d0, _co=<optimized out>, globals=<optimized out>, locals=locals@entry=0x0, 
    args=<optimized out>, argcount=0, kwnames=0x0, kwargs=0x1e4f990, kwcount=0, kwstep=1, defs=0x7f35b4795d48, defcount=1, 
    kwdefs=0x0, closure=0x0, name=0x7f35b485dc70, qualname=0x7f35b485dc70) at Python/ceval.c:4327
#93 0x00007f35c22ae43d in _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, 
    kwnames=<optimized out>) at Objects/call.c:395
#94 0x00007f35c226b033 in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x1e4f990, 
    callable=0x7f35b2cafaf0, tstate=0x1df11d0) at ./Include/cpython/abstract.h:118
#95 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x1e4f990, callable=0x7f35b2cafaf0)
    at ./Include/cpython/abstract.h:127
#96 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x1df11d0) at Python/ceval.c:5072
#97 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at Python/ceval.c:3518
#98 0x00007f35c2391eac in _PyEval_EvalFrame (throwflag=0, f=0x1e4f810, tstate=0x1df11d0)
    at ./Include/internal/pycore_ceval.h:40
#99 _PyEval_EvalCode (tstate=0x1df11d0, _co=_co@entry=0x7f35b47e69d0, globals=globals@entry=0x7f35b485da80, 
    locals=locals@entry=0x7f35b485da80, args=args@entry=0x0, argcount=argcount@entry=0, kwnames=0x0, kwargs=0x0, kwcount=0, 
    kwstep=2, defs=0x0, defcount=0, kwdefs=0x0, closure=0x0, name=0x0, qualname=0x0) at Python/ceval.c:4327
#100 0x00007f35c23921fe in _PyEval_EvalCodeWithName (_co=_co@entry=0x7f35b47e69d0, globals=globals@entry=0x7f35b485da80, 
    locals=locals@entry=0x7f35b485da80, args=args@entry=0x0, argcount=argcount@entry=0, kwnames=kwnames@entry=0x0, kwargs=0x0, 
    kwcount=0, kwstep=2, defs=0x0, defcount=0, kwdefs=0x0, closure=0x0, name=0x0, qualname=0x0) at Python/ceval.c:4359
#101 0x00007f35c239224e in PyEval_EvalCodeEx (_co=_co@entry=0x7f35b47e69d0, globals=globals@entry=0x7f35b485da80, 
    locals=locals@entry=0x7f35b485da80, args=args@entry=0x0, argcount=argcount@entry=0, kws=kws@entry=0x0, kwcount=0, 
    defs=0x0, defcount=0, kwdefs=0x0, closure=0x0) at Python/ceval.c:4375
#102 0x00007f35c239227b in PyEval_EvalCode (co=co@entry=0x7f35b47e69d0, globals=globals@entry=0x7f35b485da80, 
    locals=locals@entry=0x7f35b485da80) at Python/ceval.c:826
#103 0x00007f35c23d2875 in run_eval_code_obj (locals=0x7f35b485da80, globals=0x7f35b485da80, co=0x7f35b47e69d0, 
    tstate=0x1df11d0) at Python/pythonrun.c:1178
#104 run_mod (mod=mod@entry=0x1eb63f8, filename=filename@entry=0x7f35b46a8e90, globals=globals@entry=0x7f35b485da80, 
    locals=locals@entry=0x7f35b485da80, flags=flags@entry=0x7ffcefc562e8, arena=arena@entry=0x7f35b4886f90)
    at Python/pythonrun.c:1199
#105 0x00007f35c23d419a in PyRun_FileExFlags (fp=fp@entry=0x1dee690, 
    filename_str=filename_str@entry=0x7f35b47f0cd0 "/home/alex/Python/bin/ipython3", start=start@entry=257, 
--Type <RET> for more, q to quit, c to continue without paging--
    globals=globals@entry=0x7f35b485da80, locals=locals@entry=0x7f35b485da80, closeit=closeit@entry=1, flags=0x7ffcefc562e8)
    at Python/pythonrun.c:1116
#106 0x00007f35c23d431b in PyRun_SimpleFileExFlags (fp=fp@entry=0x1dee690, filename=<optimized out>, closeit=closeit@entry=1, 
    flags=flags@entry=0x7ffcefc562e8) at Python/pythonrun.c:438
#107 0x00007f35c23d488c in PyRun_AnyFileExFlags (fp=fp@entry=0x1dee690, filename=<optimized out>, closeit=closeit@entry=1, 
    flags=flags@entry=0x7ffcefc562e8) at Python/pythonrun.c:87
#108 0x00007f35c23f12e8 in pymain_run_file (cf=0x7ffcefc562e8, config=0x1def5b0) at Modules/main.c:373
#109 pymain_run_python (exitcode=0x7ffcefc562e0) at Modules/main.c:598
#110 Py_RunMain () at Modules/main.c:677
#111 0x00007f35c23f1783 in pymain_main (args=0x7ffcefc563d0) at Modules/main.c:707
#112 Py_BytesMain (argc=<optimized out>, argv=<optimized out>) at Modules/main.c:731
#113 0x00007f35c1e811e2 in __libc_start_main (main=0x401040 <main>, argc=2, argv=0x7ffcefc56528, init=<optimized out>, 
    fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffcefc56518) at ../csu/libc-start.c:314
#114 0x000000000040107e in _start ()
(gdb) 

<!-- If you are reporting a segfault please include a GDB traceback, which you
can generate by following
https://github.com/numpy/numpy/blob/master/doc/source/dev/development_environment.rst#debugging -->

NumPy/Python version information:

The problem is present in 1.20+, but not in 1.19.5

1.21.0.dev0+655.g2f466b318 3.9.1 (default, Dec 16 2020, 01:02:01) [GCC 10.2.1 20201125 (Red Hat 10.2.1-9)]

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Comments:42 (42 by maintainers)

github_iconTop GitHub Comments

1reaction
pearucommented, Feb 10, 2021

@2sn, please see https://github.com/numpy/numpy/issues/18385 for a more detailed description of the problem.

1reaction
pearucommented, Feb 9, 2021

@2sn The PR https://github.com/numpy/numpy/pull/18375 should fix your use case. Can you verify?

Read more comments on GitHub >

github_iconTop Results From Across the Web

segfault on f2py callback - python - Stack Overflow
I've got a workaround, but not a complete fix, I'm afraid. The key point seems to be that f2py generates some strange looking,...
Read more >
type() cause segmentation fault in callback function called ...
Create callback function, which may take any object and run type() ... type() is called on object of Internal type segmentation fault occur....
Read more >
How to extend NumPy
Forgetting to place these commands will show itself as an ugly segmentation fault (crash) as soon as any C-API subroutine is actually called....
Read more >
When I run my Fortran program I get a segmentation fault ...
A segmentation fault means that the program referenced a memory address outside of the memory allotted to it. The most common cause of...
Read more >
1773520 – Segfault in python bindings for ... - Red Hat Bugzilla
Description of problem: Segmentation fault when using libguestfs ... Then this callback calls Python code - but the interpreter no longer exists.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found