text: /* File: integration_cmodule.c
   * This file is auto-generated with f2py (version:2).
   * f2py is a Fortran to Python Interface Generator (FPIG), Second Edition,
   * written by Pearu Peterson <pearu@cens.ioc.ee>.
   * See http://cens.ioc.ee/projects/f2py2e/
   * Generation date: Thu Mar 27 23:41:04 2014
   * $Revision:$
   * $Date:$
   * Do not edit this file directly unless you know what you are doing!!!
   */
  #ifdef __cplusplus
  extern "C" {
  #endif
  
  /*********************** See f2py2e/cfuncs.py: includes ***********************/
  #include "Python.h"
  #include <stdarg.h>
  #include "fortranobject.h"
  #include <math.h>
  
  /**************** See f2py2e/rules.py: mod_rules['modulebody'] ****************/
  static PyObject *integration_c_error;
  static PyObject *integration_c_module;
  
  /*********************** See f2py2e/cfuncs.py: typedefs ***********************/
  /*need_typedefs*/
  
  /****************** See f2py2e/cfuncs.py: typedefs_generated ******************/
  /*need_typedefs_generated*/
  
  /********************** See f2py2e/cfuncs.py: cppmacros **********************/
  #define rank(var) var ## _Rank
  #define shape(var,dim) var ## _Dims[dim]
  #define old_rank(var) (((PyArrayObject *)(capi_ ## var ## _tmp))->nd)
  #define old_shape(var,dim) (((PyArrayObject *)(capi_ ## var ## _tmp))->dimensions[dim])
  #define fshape(var,dim) shape(var,rank(var)-dim-1)
  #define len(var) shape(var,0)
  #define flen(var) fshape(var,0)
  #define old_size(var) PyArray_SIZE((PyArrayObject *)(capi_ ## var ## _tmp))
  /* #define index(i) capi_i ## i */
  #define slen(var) capi_ ## var ## _len
  #define size(var, ...) f2py_size((PyArrayObject *)(capi_ ## var ## _tmp), ## __VA_ARGS__, -1)
  
  #ifdef DEBUGCFUNCS
  #define CFUNCSMESS(mess) fprintf(stderr,"debug-capi:"mess);
  #define CFUNCSMESSPY(mess,obj) CFUNCSMESS(mess) \
    PyObject_Print((PyObject *)obj,stderr,Py_PRINT_RAW);\
    fprintf(stderr,"\n");
  #else
  #define CFUNCSMESS(mess)
  #define CFUNCSMESSPY(mess,obj)
  #endif
  
  #ifndef max
  #define max(a,b) ((a > b) ? (a) : (b))
  #endif
  #ifndef min
  #define min(a,b) ((a < b) ? (a) : (b))
  #endif
  #ifndef MAX
  #define MAX(a,b) ((a > b) ? (a) : (b))
  #endif
  #ifndef MIN
  #define MIN(a,b) ((a < b) ? (a) : (b))
  #endif
  
  #if defined(PREPEND_FORTRAN)
  #if defined(NO_APPEND_FORTRAN)
  #if defined(UPPERCASE_FORTRAN)
  #define F_FUNC(f,F) _##F
  #else
  #define F_FUNC(f,F) _##f
  #endif
  #else
  #if defined(UPPERCASE_FORTRAN)
  #define F_FUNC(f,F) _##F##_
  #else
  #define F_FUNC(f,F) _##f##_
  #endif
  #endif
  #else
  #if defined(NO_APPEND_FORTRAN)
  #if defined(UPPERCASE_FORTRAN)
  #define F_FUNC(f,F) F
  #else
  #define F_FUNC(f,F) f
  #endif
  #else
  #if defined(UPPERCASE_FORTRAN)
  #define F_FUNC(f,F) F##_
  #else
  #define F_FUNC(f,F) f##_
  #endif
  #endif
  #endif
  #if defined(UNDERSCORE_G77)
  #define F_FUNC_US(f,F) F_FUNC(f##_,F##_)
  #else
  #define F_FUNC_US(f,F) F_FUNC(f,F)
  #endif
  
  
  /************************ See f2py2e/cfuncs.py: cfuncs ************************/
  static int f2py_size(PyArrayObject* var, ...)
  {
    npy_int sz = 0;
    npy_int dim;
    npy_int rank;
    va_list argp;
    va_start(argp, var);
    dim = va_arg(argp, npy_int);
    if (dim==-1)
      {
        sz = PyArray_SIZE(var);
      }
    else
      {
        rank = PyArray_NDIM(var);
        if (dim>=1 && dim<=rank)
          sz = PyArray_DIM(var, dim-1);
        else
          fprintf(stderr, "f2py_size: 2nd argument value=%d fails to satisfy 1<=value<=%d. Result will be 0.\n", dim, rank);
      }
    va_end(argp);
    return sz;
  }
  
  static int double_from_pyobj(double* v,PyObject *obj,const char *errmess) {
    PyObject* tmp = NULL;
    if (PyFloat_Check(obj)) {
  #ifdef __sgi
      *v = PyFloat_AsDouble(obj);
  #else
      *v = PyFloat_AS_DOUBLE(obj);
  #endif
      return 1;
    }
    tmp = PyNumber_Float(obj);
    if (tmp) {
  #ifdef __sgi
      *v = PyFloat_AsDouble(tmp);
  #else
      *v = PyFloat_AS_DOUBLE(tmp);
  #endif
      Py_DECREF(tmp);
      return 1;
    }
    if (PyComplex_Check(obj))
      tmp = PyObject_GetAttrString(obj,"real");
    else if (PyString_Check(obj) || PyUnicode_Check(obj))
      /*pass*/;
    else if (PySequence_Check(obj))
      tmp = PySequence_GetItem(obj,0);
    if (tmp) {
      PyErr_Clear();
      if (double_from_pyobj(v,tmp,errmess)) {Py_DECREF(tmp); return 1;}
      Py_DECREF(tmp);
    }
    {
      PyObject* err = PyErr_Occurred();
      if (err==NULL) err = integration_c_error;
      PyErr_SetString(err,errmess);
    }
    return 0;
  }
  
  static int int_from_pyobj(int* v,PyObject *obj,const char *errmess) {
    PyObject* tmp = NULL;
    if (PyInt_Check(obj)) {
      *v = (int)PyInt_AS_LONG(obj);
      return 1;
    }
    tmp = PyNumber_Int(obj);
    if (tmp) {
      *v = PyInt_AS_LONG(tmp);
      Py_DECREF(tmp);
      return 1;
    }
    if (PyComplex_Check(obj))
      tmp = PyObject_GetAttrString(obj,"real");
    else if (PyString_Check(obj) || PyUnicode_Check(obj))
      /*pass*/;
    else if (PySequence_Check(obj))
      tmp = PySequence_GetItem(obj,0);
    if (tmp) {
      PyErr_Clear();
      if (int_from_pyobj(v,tmp,errmess)) {Py_DECREF(tmp); return 1;}
      Py_DECREF(tmp);
    }
    {
      PyObject* err = PyErr_Occurred();
      if (err==NULL) err = integration_c_error;
      PyErr_SetString(err,errmess);
    }
    return 0;
  }
  
  
  /********************* See f2py2e/cfuncs.py: userincludes *********************/
  /*need_userincludes*/
  
  /********************* See f2py2e/capi_rules.py: usercode *********************/
  
  
  /* See f2py2e/rules.py */
  extern void implicit_1Dx(double*,double*,double,double,double,double,int,int);
  extern void implicit_2Dx(double*,double*,double*,double,double,double,double,double,int,int,int);
  extern void implicit_2Dy(double*,double*,double*,double,double,double,double,double,int,int,int);
  extern void implicit_precalc_2Dx(double*,double*,double*,double*,double,int,int);
  extern void implicit_precalc_2Dy(double*,double*,double*,double*,double,int,int);
  extern void implicit_3Dx(double*,double*,double*,double*,double,double,double,double,double,double,int,int,int,int);
  extern void implicit_3Dy(double*,double*,double*,double*,double,double,double,double,double,double,int,int,int,int);
  extern void implicit_3Dz(double*,double*,double*,double*,double,double,double,double,double,double,int,int,int,int);
  extern void implicit_precalc_3Dx(double*,double*,double*,double*,double,int,int,int);
  extern void implicit_precalc_3Dy(double*,double*,double*,double*,double,int,int,int);
  extern void implicit_precalc_3Dz(double*,double*,double*,double*,double,int,int,int);
  /*eof externroutines*/
  
  /******************** See f2py2e/capi_rules.py: usercode1 ********************/
  
  
  /******************* See f2py2e/cb_rules.py: buildcallback *******************/
  /*need_callbacks*/
  
  /*********************** See f2py2e/rules.py: buildapi ***********************/
  
  /******************************** implicit_1Dx ********************************/
  static char doc_f2py_rout_integration_c_implicit_1Dx[] = "\
  phi = implicit_1Dx(phi,xx,nu,gamma,h,dt,use_delj_trick)\n\nWrapper for ``implicit_1Dx``.\
  \n\nParameters\n----------\n"
  "phi : input rank-1 array('d') with bounds (L)\n"
  "xx : input rank-1 array('d') with bounds (L)\n"
  "nu : input float\n"
  "gamma : input float\n"
  "h : input float\n"
  "dt : input float\n"
  "use_delj_trick : input int\n"
  "\nReturns\n-------\n"
  "phi : rank-1 array('d') with bounds (L)";
  /* extern void implicit_1Dx(double*,double*,double,double,double,double,int,int); */
  static PyObject *f2py_rout_integration_c_implicit_1Dx(const PyObject *capi_self,
                             PyObject *capi_args,
                             PyObject *capi_keywds,
                             void (*f2py_func)(double*,double*,double,double,double,double,int,int)) {
    PyObject * volatile capi_buildvalue = NULL;
    volatile int f2py_success = 1;
  /*decl*/
  
    double *phi = NULL;
    npy_intp phi_Dims[1] = {-1};
    const int phi_Rank = 1;
    PyArrayObject *capi_phi_tmp = NULL;
    int capi_phi_intent = 0;
    PyObject *phi_capi = Py_None;
    double *xx = NULL;
    npy_intp xx_Dims[1] = {-1};
    const int xx_Rank = 1;
    PyArrayObject *capi_xx_tmp = NULL;
    int capi_xx_intent = 0;
    PyObject *xx_capi = Py_None;
    double nu = 0;
    PyObject *nu_capi = Py_None;
    double gamma = 0;
    PyObject *gamma_capi = Py_None;
    double h = 0;
    PyObject *h_capi = Py_None;
    double dt = 0;
    PyObject *dt_capi = Py_None;
    int L = 0;
    int use_delj_trick = 0;
    PyObject *use_delj_trick_capi = Py_None;
    static char *capi_kwlist[] = {"phi","xx","nu","gamma","h","dt","use_delj_trick",NULL};
  
  /*routdebugenter*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_clock();
  #endif
    if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
      "OOOOOOO:integration_c.implicit_1Dx",\
      capi_kwlist,&phi_capi,&xx_capi,&nu_capi,&gamma_capi,&h_capi,&dt_capi,&use_delj_trick_capi))
      return NULL;
  /*frompyobj*/
    /* Processing variable phi */
    ;
    capi_phi_intent |= F2PY_INTENT_C|F2PY_INTENT_IN|F2PY_INTENT_OUT;
    capi_phi_tmp = array_from_pyobj(NPY_DOUBLE,phi_Dims,phi_Rank,capi_phi_intent,phi_capi);
    if (capi_phi_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 1st argument `phi' of integration_c.implicit_1Dx to C/Fortran array" );
    } else {
      phi = (double *)(capi_phi_tmp->data);
  
    /* Processing variable h */
      f2py_success = double_from_pyobj(&h,h_capi,"integration_c.implicit_1Dx() 5th argument (h) can't be converted to double");
    if (f2py_success) {
    /* Processing variable use_delj_trick */
      f2py_success = int_from_pyobj(&use_delj_trick,use_delj_trick_capi,"integration_c.implicit_1Dx() 7th argument (use_delj_trick) can't be converted to int");
    if (f2py_success) {
    /* Processing variable dt */
      f2py_success = double_from_pyobj(&dt,dt_capi,"integration_c.implicit_1Dx() 6th argument (dt) can't be converted to double");
    if (f2py_success) {
    /* Processing variable nu */
      f2py_success = double_from_pyobj(&nu,nu_capi,"integration_c.implicit_1Dx() 3rd argument (nu) can't be converted to double");
    if (f2py_success) {
    /* Processing variable gamma */
      f2py_success = double_from_pyobj(&gamma,gamma_capi,"integration_c.implicit_1Dx() 4th argument (gamma) can't be converted to double");
    if (f2py_success) {
    /* Processing variable L */
    L = len(phi);
    /* Processing variable xx */
    xx_Dims[0]=L;
    capi_xx_intent |= F2PY_INTENT_C|F2PY_INTENT_IN;
    capi_xx_tmp = array_from_pyobj(NPY_DOUBLE,xx_Dims,xx_Rank,capi_xx_intent,xx_capi);
    if (capi_xx_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 2nd argument `xx' of integration_c.implicit_1Dx to C/Fortran array" );
    } else {
      xx = (double *)(capi_xx_tmp->data);
  
  /*end of frompyobj*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_call_clock();
  #endif
  /*callfortranroutine*/
          (*f2py_func)(phi,xx,nu,gamma,h,dt,L,use_delj_trick);
  if (PyErr_Occurred())
    f2py_success = 0;
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_call_clock();
  #endif
  /*end of callfortranroutine*/
      if (f2py_success) {
  /*pyobjfrom*/
  /*end of pyobjfrom*/
      CFUNCSMESS("Building return value.\n");
      capi_buildvalue = Py_BuildValue("N",capi_phi_tmp);
  /*closepyobjfrom*/
  /*end of closepyobjfrom*/
      } /*if (f2py_success) after callfortranroutine*/
  /*cleanupfrompyobj*/
    if((PyObject *)capi_xx_tmp!=xx_capi) {
      Py_XDECREF(capi_xx_tmp); }
    }  /*if (capi_xx_tmp == NULL) ... else of xx*/
    /* End of cleaning variable xx */
    /* End of cleaning variable L */
    } /*if (f2py_success) of gamma*/
    /* End of cleaning variable gamma */
    } /*if (f2py_success) of nu*/
    /* End of cleaning variable nu */
    } /*if (f2py_success) of dt*/
    /* End of cleaning variable dt */
    } /*if (f2py_success) of use_delj_trick*/
    /* End of cleaning variable use_delj_trick */
    } /*if (f2py_success) of h*/
    /* End of cleaning variable h */
    }  /*if (capi_phi_tmp == NULL) ... else of phi*/
    /* End of cleaning variable phi */
  /*end of cleanupfrompyobj*/
    if (capi_buildvalue == NULL) {
  /*routdebugfailure*/
    } else {
  /*routdebugleave*/
    }
    CFUNCSMESS("Freeing memory.\n");
  /*freemem*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_clock();
  #endif
    return capi_buildvalue;
  }
  /**************************** end of implicit_1Dx ****************************/
  
  /******************************** implicit_2Dx ********************************/
  static char doc_f2py_rout_integration_c_implicit_2Dx[] = "\
  phi = implicit_2Dx(phi,xx,yy,nu1,m12,gamma1,h1,dt,use_delj_trick)\n\nWrapper for ``implicit_2Dx``.\
  \n\nParameters\n----------\n"
  "phi : input rank-2 array('d') with bounds (L,M)\n"
  "xx : input rank-1 array('d') with bounds (L)\n"
  "yy : input rank-1 array('d') with bounds (M)\n"
  "nu1 : input float\n"
  "m12 : input float\n"
  "gamma1 : input float\n"
  "h1 : input float\n"
  "dt : input float\n"
  "use_delj_trick : input int\n"
  "\nReturns\n-------\n"
  "phi : rank-2 array('d') with bounds (L,M)";
  /* extern void implicit_2Dx(double*,double*,double*,double,double,double,double,double,int,int,int); */
  static PyObject *f2py_rout_integration_c_implicit_2Dx(const PyObject *capi_self,
                             PyObject *capi_args,
                             PyObject *capi_keywds,
                             void (*f2py_func)(double*,double*,double*,double,double,double,double,double,int,int,int)) {
    PyObject * volatile capi_buildvalue = NULL;
    volatile int f2py_success = 1;
  /*decl*/
  
    double *phi = NULL;
    npy_intp phi_Dims[2] = {-1, -1};
    const int phi_Rank = 2;
    PyArrayObject *capi_phi_tmp = NULL;
    int capi_phi_intent = 0;
    PyObject *phi_capi = Py_None;
    double *xx = NULL;
    npy_intp xx_Dims[1] = {-1};
    const int xx_Rank = 1;
    PyArrayObject *capi_xx_tmp = NULL;
    int capi_xx_intent = 0;
    PyObject *xx_capi = Py_None;
    double *yy = NULL;
    npy_intp yy_Dims[1] = {-1};
    const int yy_Rank = 1;
    PyArrayObject *capi_yy_tmp = NULL;
    int capi_yy_intent = 0;
    PyObject *yy_capi = Py_None;
    double nu1 = 0;
    PyObject *nu1_capi = Py_None;
    double m12 = 0;
    PyObject *m12_capi = Py_None;
    double gamma1 = 0;
    PyObject *gamma1_capi = Py_None;
    double h1 = 0;
    PyObject *h1_capi = Py_None;
    double dt = 0;
    PyObject *dt_capi = Py_None;
    int L = 0;
    int M = 0;
    int use_delj_trick = 0;
    PyObject *use_delj_trick_capi = Py_None;
    static char *capi_kwlist[] = {"phi","xx","yy","nu1","m12","gamma1","h1","dt","use_delj_trick",NULL};
  
  /*routdebugenter*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_clock();
  #endif
    if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
      "OOOOOOOOO:integration_c.implicit_2Dx",\
      capi_kwlist,&phi_capi,&xx_capi,&yy_capi,&nu1_capi,&m12_capi,&gamma1_capi,&h1_capi,&dt_capi,&use_delj_trick_capi))
      return NULL;
  /*frompyobj*/
    /* Processing variable gamma1 */
      f2py_success = double_from_pyobj(&gamma1,gamma1_capi,"integration_c.implicit_2Dx() 6th argument (gamma1) can't be converted to double");
    if (f2py_success) {
    /* Processing variable h1 */
      f2py_success = double_from_pyobj(&h1,h1_capi,"integration_c.implicit_2Dx() 7th argument (h1) can't be converted to double");
    if (f2py_success) {
    /* Processing variable use_delj_trick */
      f2py_success = int_from_pyobj(&use_delj_trick,use_delj_trick_capi,"integration_c.implicit_2Dx() 9th argument (use_delj_trick) can't be converted to int");
    if (f2py_success) {
    /* Processing variable nu1 */
      f2py_success = double_from_pyobj(&nu1,nu1_capi,"integration_c.implicit_2Dx() 4th argument (nu1) can't be converted to double");
    if (f2py_success) {
    /* Processing variable phi */
    ;
    capi_phi_intent |= F2PY_INTENT_C|F2PY_INTENT_IN|F2PY_INTENT_OUT;
    capi_phi_tmp = array_from_pyobj(NPY_DOUBLE,phi_Dims,phi_Rank,capi_phi_intent,phi_capi);
    if (capi_phi_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 1st argument `phi' of integration_c.implicit_2Dx to C/Fortran array" );
    } else {
      phi = (double *)(capi_phi_tmp->data);
  
    /* Processing variable m12 */
      f2py_success = double_from_pyobj(&m12,m12_capi,"integration_c.implicit_2Dx() 5th argument (m12) can't be converted to double");
    if (f2py_success) {
    /* Processing variable dt */
      f2py_success = double_from_pyobj(&dt,dt_capi,"integration_c.implicit_2Dx() 8th argument (dt) can't be converted to double");
    if (f2py_success) {
    /* Processing variable M */
    M = shape(phi, 1);
    /* Processing variable L */
    L = shape(phi, 0);
    /* Processing variable yy */
    yy_Dims[0]=M;
    capi_yy_intent |= F2PY_INTENT_C|F2PY_INTENT_IN;
    capi_yy_tmp = array_from_pyobj(NPY_DOUBLE,yy_Dims,yy_Rank,capi_yy_intent,yy_capi);
    if (capi_yy_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 3rd argument `yy' of integration_c.implicit_2Dx to C/Fortran array" );
    } else {
      yy = (double *)(capi_yy_tmp->data);
  
    /* Processing variable xx */
    xx_Dims[0]=L;
    capi_xx_intent |= F2PY_INTENT_C|F2PY_INTENT_IN;
    capi_xx_tmp = array_from_pyobj(NPY_DOUBLE,xx_Dims,xx_Rank,capi_xx_intent,xx_capi);
    if (capi_xx_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 2nd argument `xx' of integration_c.implicit_2Dx to C/Fortran array" );
    } else {
      xx = (double *)(capi_xx_tmp->data);
  
  /*end of frompyobj*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_call_clock();
  #endif
  /*callfortranroutine*/
          (*f2py_func)(phi,xx,yy,nu1,m12,gamma1,h1,dt,L,M,use_delj_trick);
  if (PyErr_Occurred())
    f2py_success = 0;
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_call_clock();
  #endif
  /*end of callfortranroutine*/
      if (f2py_success) {
  /*pyobjfrom*/
  /*end of pyobjfrom*/
      CFUNCSMESS("Building return value.\n");
      capi_buildvalue = Py_BuildValue("N",capi_phi_tmp);
  /*closepyobjfrom*/
  /*end of closepyobjfrom*/
      } /*if (f2py_success) after callfortranroutine*/
  /*cleanupfrompyobj*/
    if((PyObject *)capi_xx_tmp!=xx_capi) {
      Py_XDECREF(capi_xx_tmp); }
    }  /*if (capi_xx_tmp == NULL) ... else of xx*/
    /* End of cleaning variable xx */
    if((PyObject *)capi_yy_tmp!=yy_capi) {
      Py_XDECREF(capi_yy_tmp); }
    }  /*if (capi_yy_tmp == NULL) ... else of yy*/
    /* End of cleaning variable yy */
    /* End of cleaning variable L */
    /* End of cleaning variable M */
    } /*if (f2py_success) of dt*/
    /* End of cleaning variable dt */
    } /*if (f2py_success) of m12*/
    /* End of cleaning variable m12 */
    }  /*if (capi_phi_tmp == NULL) ... else of phi*/
    /* End of cleaning variable phi */
    } /*if (f2py_success) of nu1*/
    /* End of cleaning variable nu1 */
    } /*if (f2py_success) of use_delj_trick*/
    /* End of cleaning variable use_delj_trick */
    } /*if (f2py_success) of h1*/
    /* End of cleaning variable h1 */
    } /*if (f2py_success) of gamma1*/
    /* End of cleaning variable gamma1 */
  /*end of cleanupfrompyobj*/
    if (capi_buildvalue == NULL) {
  /*routdebugfailure*/
    } else {
  /*routdebugleave*/
    }
    CFUNCSMESS("Freeing memory.\n");
  /*freemem*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_clock();
  #endif
    return capi_buildvalue;
  }
  /**************************** end of implicit_2Dx ****************************/
  
  /******************************** implicit_2Dy ********************************/
  static char doc_f2py_rout_integration_c_implicit_2Dy[] = "\
  phi = implicit_2Dy(phi,xx,yy,nu2,m21,gamma2,h2,dt,use_delj_trick)\n\nWrapper for ``implicit_2Dy``.\
  \n\nParameters\n----------\n"
  "phi : input rank-2 array('d') with bounds (L,M)\n"
  "xx : input rank-1 array('d') with bounds (L)\n"
  "yy : input rank-1 array('d') with bounds (M)\n"
  "nu2 : input float\n"
  "m21 : input float\n"
  "gamma2 : input float\n"
  "h2 : input float\n"
  "dt : input float\n"
  "use_delj_trick : input int\n"
  "\nReturns\n-------\n"
  "phi : rank-2 array('d') with bounds (L,M)";
  /* extern void implicit_2Dy(double*,double*,double*,double,double,double,double,double,int,int,int); */
  static PyObject *f2py_rout_integration_c_implicit_2Dy(const PyObject *capi_self,
                             PyObject *capi_args,
                             PyObject *capi_keywds,
                             void (*f2py_func)(double*,double*,double*,double,double,double,double,double,int,int,int)) {
    PyObject * volatile capi_buildvalue = NULL;
    volatile int f2py_success = 1;
  /*decl*/
  
    double *phi = NULL;
    npy_intp phi_Dims[2] = {-1, -1};
    const int phi_Rank = 2;
    PyArrayObject *capi_phi_tmp = NULL;
    int capi_phi_intent = 0;
    PyObject *phi_capi = Py_None;
    double *xx = NULL;
    npy_intp xx_Dims[1] = {-1};
    const int xx_Rank = 1;
    PyArrayObject *capi_xx_tmp = NULL;
    int capi_xx_intent = 0;
    PyObject *xx_capi = Py_None;
    double *yy = NULL;
    npy_intp yy_Dims[1] = {-1};
    const int yy_Rank = 1;
    PyArrayObject *capi_yy_tmp = NULL;
    int capi_yy_intent = 0;
    PyObject *yy_capi = Py_None;
    double nu2 = 0;
    PyObject *nu2_capi = Py_None;
    double m21 = 0;
    PyObject *m21_capi = Py_None;
    double gamma2 = 0;
    PyObject *gamma2_capi = Py_None;
    double h2 = 0;
    PyObject *h2_capi = Py_None;
    double dt = 0;
    PyObject *dt_capi = Py_None;
    int L = 0;
    int M = 0;
    int use_delj_trick = 0;
    PyObject *use_delj_trick_capi = Py_None;
    static char *capi_kwlist[] = {"phi","xx","yy","nu2","m21","gamma2","h2","dt","use_delj_trick",NULL};
  
  /*routdebugenter*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_clock();
  #endif
    if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
      "OOOOOOOOO:integration_c.implicit_2Dy",\
      capi_kwlist,&phi_capi,&xx_capi,&yy_capi,&nu2_capi,&m21_capi,&gamma2_capi,&h2_capi,&dt_capi,&use_delj_trick_capi))
      return NULL;
  /*frompyobj*/
    /* Processing variable phi */
    ;
    capi_phi_intent |= F2PY_INTENT_C|F2PY_INTENT_IN|F2PY_INTENT_OUT;
    capi_phi_tmp = array_from_pyobj(NPY_DOUBLE,phi_Dims,phi_Rank,capi_phi_intent,phi_capi);
    if (capi_phi_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 1st argument `phi' of integration_c.implicit_2Dy to C/Fortran array" );
    } else {
      phi = (double *)(capi_phi_tmp->data);
  
    /* Processing variable gamma2 */
      f2py_success = double_from_pyobj(&gamma2,gamma2_capi,"integration_c.implicit_2Dy() 6th argument (gamma2) can't be converted to double");
    if (f2py_success) {
    /* Processing variable h2 */
      f2py_success = double_from_pyobj(&h2,h2_capi,"integration_c.implicit_2Dy() 7th argument (h2) can't be converted to double");
    if (f2py_success) {
    /* Processing variable nu2 */
      f2py_success = double_from_pyobj(&nu2,nu2_capi,"integration_c.implicit_2Dy() 4th argument (nu2) can't be converted to double");
    if (f2py_success) {
    /* Processing variable m21 */
      f2py_success = double_from_pyobj(&m21,m21_capi,"integration_c.implicit_2Dy() 5th argument (m21) can't be converted to double");
    if (f2py_success) {
    /* Processing variable use_delj_trick */
      f2py_success = int_from_pyobj(&use_delj_trick,use_delj_trick_capi,"integration_c.implicit_2Dy() 9th argument (use_delj_trick) can't be converted to int");
    if (f2py_success) {
    /* Processing variable dt */
      f2py_success = double_from_pyobj(&dt,dt_capi,"integration_c.implicit_2Dy() 8th argument (dt) can't be converted to double");
    if (f2py_success) {
    /* Processing variable M */
    M = shape(phi, 1);
    /* Processing variable L */
    L = shape(phi, 0);
    /* Processing variable yy */
    yy_Dims[0]=M;
    capi_yy_intent |= F2PY_INTENT_C|F2PY_INTENT_IN;
    capi_yy_tmp = array_from_pyobj(NPY_DOUBLE,yy_Dims,yy_Rank,capi_yy_intent,yy_capi);
    if (capi_yy_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 3rd argument `yy' of integration_c.implicit_2Dy to C/Fortran array" );
    } else {
      yy = (double *)(capi_yy_tmp->data);
  
    /* Processing variable xx */
    xx_Dims[0]=L;
    capi_xx_intent |= F2PY_INTENT_C|F2PY_INTENT_IN;
    capi_xx_tmp = array_from_pyobj(NPY_DOUBLE,xx_Dims,xx_Rank,capi_xx_intent,xx_capi);
    if (capi_xx_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 2nd argument `xx' of integration_c.implicit_2Dy to C/Fortran array" );
    } else {
      xx = (double *)(capi_xx_tmp->data);
  
  /*end of frompyobj*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_call_clock();
  #endif
  /*callfortranroutine*/
          (*f2py_func)(phi,xx,yy,nu2,m21,gamma2,h2,dt,L,M,use_delj_trick);
  if (PyErr_Occurred())
    f2py_success = 0;
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_call_clock();
  #endif
  /*end of callfortranroutine*/
      if (f2py_success) {
  /*pyobjfrom*/
  /*end of pyobjfrom*/
      CFUNCSMESS("Building return value.\n");
      capi_buildvalue = Py_BuildValue("N",capi_phi_tmp);
  /*closepyobjfrom*/
  /*end of closepyobjfrom*/
      } /*if (f2py_success) after callfortranroutine*/
  /*cleanupfrompyobj*/
    if((PyObject *)capi_xx_tmp!=xx_capi) {
      Py_XDECREF(capi_xx_tmp); }
    }  /*if (capi_xx_tmp == NULL) ... else of xx*/
    /* End of cleaning variable xx */
    if((PyObject *)capi_yy_tmp!=yy_capi) {
      Py_XDECREF(capi_yy_tmp); }
    }  /*if (capi_yy_tmp == NULL) ... else of yy*/
    /* End of cleaning variable yy */
    /* End of cleaning variable L */
    /* End of cleaning variable M */
    } /*if (f2py_success) of dt*/
    /* End of cleaning variable dt */
    } /*if (f2py_success) of use_delj_trick*/
    /* End of cleaning variable use_delj_trick */
    } /*if (f2py_success) of m21*/
    /* End of cleaning variable m21 */
    } /*if (f2py_success) of nu2*/
    /* End of cleaning variable nu2 */
    } /*if (f2py_success) of h2*/
    /* End of cleaning variable h2 */
    } /*if (f2py_success) of gamma2*/
    /* End of cleaning variable gamma2 */
    }  /*if (capi_phi_tmp == NULL) ... else of phi*/
    /* End of cleaning variable phi */
  /*end of cleanupfrompyobj*/
    if (capi_buildvalue == NULL) {
  /*routdebugfailure*/
    } else {
  /*routdebugleave*/
    }
    CFUNCSMESS("Freeing memory.\n");
  /*freemem*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_clock();
  #endif
    return capi_buildvalue;
  }
  /**************************** end of implicit_2Dy ****************************/
  
  /**************************** implicit_precalc_2Dx ****************************/
  static char doc_f2py_rout_integration_c_implicit_precalc_2Dx[] = "\
  phi = implicit_precalc_2Dx(phi,ax,bx,cx,dt)\n\nWrapper for ``implicit_precalc_2Dx``.\
  \n\nParameters\n----------\n"
  "phi : input rank-2 array('d') with bounds (L,M)\n"
  "ax : input rank-2 array('d') with bounds (L,M)\n"
  "bx : input rank-2 array('d') with bounds (L,M)\n"
  "cx : input rank-2 array('d') with bounds (L,M)\n"
  "dt : input float\n"
  "\nReturns\n-------\n"
  "phi : rank-2 array('d') with bounds (L,M)";
  /* extern void implicit_precalc_2Dx(double*,double*,double*,double*,double,int,int); */
  static PyObject *f2py_rout_integration_c_implicit_precalc_2Dx(const PyObject *capi_self,
                             PyObject *capi_args,
                             PyObject *capi_keywds,
                             void (*f2py_func)(double*,double*,double*,double*,double,int,int)) {
    PyObject * volatile capi_buildvalue = NULL;
    volatile int f2py_success = 1;
  /*decl*/
  
    double *phi = NULL;
    npy_intp phi_Dims[2] = {-1, -1};
    const int phi_Rank = 2;
    PyArrayObject *capi_phi_tmp = NULL;
    int capi_phi_intent = 0;
    PyObject *phi_capi = Py_None;
    double *ax = NULL;
    npy_intp ax_Dims[2] = {-1, -1};
    const int ax_Rank = 2;
    PyArrayObject *capi_ax_tmp = NULL;
    int capi_ax_intent = 0;
    PyObject *ax_capi = Py_None;
    double *bx = NULL;
    npy_intp bx_Dims[2] = {-1, -1};
    const int bx_Rank = 2;
    PyArrayObject *capi_bx_tmp = NULL;
    int capi_bx_intent = 0;
    PyObject *bx_capi = Py_None;
    double *cx = NULL;
    npy_intp cx_Dims[2] = {-1, -1};
    const int cx_Rank = 2;
    PyArrayObject *capi_cx_tmp = NULL;
    int capi_cx_intent = 0;
    PyObject *cx_capi = Py_None;
    double dt = 0;
    PyObject *dt_capi = Py_None;
    int L = 0;
    int M = 0;
    static char *capi_kwlist[] = {"phi","ax","bx","cx","dt",NULL};
  
  /*routdebugenter*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_clock();
  #endif
    if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
      "OOOOO:integration_c.implicit_precalc_2Dx",\
      capi_kwlist,&phi_capi,&ax_capi,&bx_capi,&cx_capi,&dt_capi))
      return NULL;
  /*frompyobj*/
    /* Processing variable phi */
    ;
    capi_phi_intent |= F2PY_INTENT_C|F2PY_INTENT_IN|F2PY_INTENT_OUT;
    capi_phi_tmp = array_from_pyobj(NPY_DOUBLE,phi_Dims,phi_Rank,capi_phi_intent,phi_capi);
    if (capi_phi_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 1st argument `phi' of integration_c.implicit_precalc_2Dx to C/Fortran array" );
    } else {
      phi = (double *)(capi_phi_tmp->data);
  
    /* Processing variable dt */
      f2py_success = double_from_pyobj(&dt,dt_capi,"integration_c.implicit_precalc_2Dx() 5th argument (dt) can't be converted to double");
    if (f2py_success) {
    /* Processing variable M */
    M = shape(phi, 1);
    /* Processing variable L */
    L = shape(phi, 0);
    /* Processing variable cx */
    cx_Dims[0]=L,cx_Dims[1]=M;
    capi_cx_intent |= F2PY_INTENT_C|F2PY_INTENT_IN;
    capi_cx_tmp = array_from_pyobj(NPY_DOUBLE,cx_Dims,cx_Rank,capi_cx_intent,cx_capi);
    if (capi_cx_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 4th argument `cx' of integration_c.implicit_precalc_2Dx to C/Fortran array" );
    } else {
      cx = (double *)(capi_cx_tmp->data);
  
    /* Processing variable ax */
    ax_Dims[0]=L,ax_Dims[1]=M;
    capi_ax_intent |= F2PY_INTENT_C|F2PY_INTENT_IN;
    capi_ax_tmp = array_from_pyobj(NPY_DOUBLE,ax_Dims,ax_Rank,capi_ax_intent,ax_capi);
    if (capi_ax_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 2nd argument `ax' of integration_c.implicit_precalc_2Dx to C/Fortran array" );
    } else {
      ax = (double *)(capi_ax_tmp->data);
  
    /* Processing variable bx */
    bx_Dims[0]=L,bx_Dims[1]=M;
    capi_bx_intent |= F2PY_INTENT_C|F2PY_INTENT_IN;
    capi_bx_tmp = array_from_pyobj(NPY_DOUBLE,bx_Dims,bx_Rank,capi_bx_intent,bx_capi);
    if (capi_bx_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 3rd argument `bx' of integration_c.implicit_precalc_2Dx to C/Fortran array" );
    } else {
      bx = (double *)(capi_bx_tmp->data);
  
  /*end of frompyobj*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_call_clock();
  #endif
  /*callfortranroutine*/
          (*f2py_func)(phi,ax,bx,cx,dt,L,M);
  if (PyErr_Occurred())
    f2py_success = 0;
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_call_clock();
  #endif
  /*end of callfortranroutine*/
      if (f2py_success) {
  /*pyobjfrom*/
  /*end of pyobjfrom*/
      CFUNCSMESS("Building return value.\n");
      capi_buildvalue = Py_BuildValue("N",capi_phi_tmp);
  /*closepyobjfrom*/
  /*end of closepyobjfrom*/
      } /*if (f2py_success) after callfortranroutine*/
  /*cleanupfrompyobj*/
    if((PyObject *)capi_bx_tmp!=bx_capi) {
      Py_XDECREF(capi_bx_tmp); }
    }  /*if (capi_bx_tmp == NULL) ... else of bx*/
    /* End of cleaning variable bx */
    if((PyObject *)capi_ax_tmp!=ax_capi) {
      Py_XDECREF(capi_ax_tmp); }
    }  /*if (capi_ax_tmp == NULL) ... else of ax*/
    /* End of cleaning variable ax */
    if((PyObject *)capi_cx_tmp!=cx_capi) {
      Py_XDECREF(capi_cx_tmp); }
    }  /*if (capi_cx_tmp == NULL) ... else of cx*/
    /* End of cleaning variable cx */
    /* End of cleaning variable L */
    /* End of cleaning variable M */
    } /*if (f2py_success) of dt*/
    /* End of cleaning variable dt */
    }  /*if (capi_phi_tmp == NULL) ... else of phi*/
    /* End of cleaning variable phi */
  /*end of cleanupfrompyobj*/
    if (capi_buildvalue == NULL) {
  /*routdebugfailure*/
    } else {
  /*routdebugleave*/
    }
    CFUNCSMESS("Freeing memory.\n");
  /*freemem*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_clock();
  #endif
    return capi_buildvalue;
  }
  /************************ end of implicit_precalc_2Dx ************************/
  
  /**************************** implicit_precalc_2Dy ****************************/
  static char doc_f2py_rout_integration_c_implicit_precalc_2Dy[] = "\
  phi = implicit_precalc_2Dy(phi,ay,by,cy,dt)\n\nWrapper for ``implicit_precalc_2Dy``.\
  \n\nParameters\n----------\n"
  "phi : input rank-2 array('d') with bounds (L,M)\n"
  "ay : input rank-2 array('d') with bounds (L,M)\n"
  "by : input rank-2 array('d') with bounds (L,M)\n"
  "cy : input rank-2 array('d') with bounds (L,M)\n"
  "dt : input float\n"
  "\nReturns\n-------\n"
  "phi : rank-2 array('d') with bounds (L,M)";
  /* extern void implicit_precalc_2Dy(double*,double*,double*,double*,double,int,int); */
  static PyObject *f2py_rout_integration_c_implicit_precalc_2Dy(const PyObject *capi_self,
                             PyObject *capi_args,
                             PyObject *capi_keywds,
                             void (*f2py_func)(double*,double*,double*,double*,double,int,int)) {
    PyObject * volatile capi_buildvalue = NULL;
    volatile int f2py_success = 1;
  /*decl*/
  
    double *phi = NULL;
    npy_intp phi_Dims[2] = {-1, -1};
    const int phi_Rank = 2;
    PyArrayObject *capi_phi_tmp = NULL;
    int capi_phi_intent = 0;
    PyObject *phi_capi = Py_None;
    double *ay = NULL;
    npy_intp ay_Dims[2] = {-1, -1};
    const int ay_Rank = 2;
    PyArrayObject *capi_ay_tmp = NULL;
    int capi_ay_intent = 0;
    PyObject *ay_capi = Py_None;
    double *by = NULL;
    npy_intp by_Dims[2] = {-1, -1};
    const int by_Rank = 2;
    PyArrayObject *capi_by_tmp = NULL;
    int capi_by_intent = 0;
    PyObject *by_capi = Py_None;
    double *cy = NULL;
    npy_intp cy_Dims[2] = {-1, -1};
    const int cy_Rank = 2;
    PyArrayObject *capi_cy_tmp = NULL;
    int capi_cy_intent = 0;
    PyObject *cy_capi = Py_None;
    double dt = 0;
    PyObject *dt_capi = Py_None;
    int L = 0;
    int M = 0;
    static char *capi_kwlist[] = {"phi","ay","by","cy","dt",NULL};
  
  /*routdebugenter*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_clock();
  #endif
    if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
      "OOOOO:integration_c.implicit_precalc_2Dy",\
      capi_kwlist,&phi_capi,&ay_capi,&by_capi,&cy_capi,&dt_capi))
      return NULL;
  /*frompyobj*/
    /* Processing variable phi */
    ;
    capi_phi_intent |= F2PY_INTENT_C|F2PY_INTENT_IN|F2PY_INTENT_OUT;
    capi_phi_tmp = array_from_pyobj(NPY_DOUBLE,phi_Dims,phi_Rank,capi_phi_intent,phi_capi);
    if (capi_phi_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 1st argument `phi' of integration_c.implicit_precalc_2Dy to C/Fortran array" );
    } else {
      phi = (double *)(capi_phi_tmp->data);
  
    /* Processing variable dt */
      f2py_success = double_from_pyobj(&dt,dt_capi,"integration_c.implicit_precalc_2Dy() 5th argument (dt) can't be converted to double");
    if (f2py_success) {
    /* Processing variable M */
    M = shape(phi, 1);
    /* Processing variable L */
    L = shape(phi, 0);
    /* Processing variable cy */
    cy_Dims[0]=L,cy_Dims[1]=M;
    capi_cy_intent |= F2PY_INTENT_C|F2PY_INTENT_IN;
    capi_cy_tmp = array_from_pyobj(NPY_DOUBLE,cy_Dims,cy_Rank,capi_cy_intent,cy_capi);
    if (capi_cy_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 4th argument `cy' of integration_c.implicit_precalc_2Dy to C/Fortran array" );
    } else {
      cy = (double *)(capi_cy_tmp->data);
  
    /* Processing variable ay */
    ay_Dims[0]=L,ay_Dims[1]=M;
    capi_ay_intent |= F2PY_INTENT_C|F2PY_INTENT_IN;
    capi_ay_tmp = array_from_pyobj(NPY_DOUBLE,ay_Dims,ay_Rank,capi_ay_intent,ay_capi);
    if (capi_ay_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 2nd argument `ay' of integration_c.implicit_precalc_2Dy to C/Fortran array" );
    } else {
      ay = (double *)(capi_ay_tmp->data);
  
    /* Processing variable by */
    by_Dims[0]=L,by_Dims[1]=M;
    capi_by_intent |= F2PY_INTENT_C|F2PY_INTENT_IN;
    capi_by_tmp = array_from_pyobj(NPY_DOUBLE,by_Dims,by_Rank,capi_by_intent,by_capi);
    if (capi_by_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 3rd argument `by' of integration_c.implicit_precalc_2Dy to C/Fortran array" );
    } else {
      by = (double *)(capi_by_tmp->data);
  
  /*end of frompyobj*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_call_clock();
  #endif
  /*callfortranroutine*/
          (*f2py_func)(phi,ay,by,cy,dt,L,M);
  if (PyErr_Occurred())
    f2py_success = 0;
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_call_clock();
  #endif
  /*end of callfortranroutine*/
      if (f2py_success) {
  /*pyobjfrom*/
  /*end of pyobjfrom*/
      CFUNCSMESS("Building return value.\n");
      capi_buildvalue = Py_BuildValue("N",capi_phi_tmp);
  /*closepyobjfrom*/
  /*end of closepyobjfrom*/
      } /*if (f2py_success) after callfortranroutine*/
  /*cleanupfrompyobj*/
    if((PyObject *)capi_by_tmp!=by_capi) {
      Py_XDECREF(capi_by_tmp); }
    }  /*if (capi_by_tmp == NULL) ... else of by*/
    /* End of cleaning variable by */
    if((PyObject *)capi_ay_tmp!=ay_capi) {
      Py_XDECREF(capi_ay_tmp); }
    }  /*if (capi_ay_tmp == NULL) ... else of ay*/
    /* End of cleaning variable ay */
    if((PyObject *)capi_cy_tmp!=cy_capi) {
      Py_XDECREF(capi_cy_tmp); }
    }  /*if (capi_cy_tmp == NULL) ... else of cy*/
    /* End of cleaning variable cy */
    /* End of cleaning variable L */
    /* End of cleaning variable M */
    } /*if (f2py_success) of dt*/
    /* End of cleaning variable dt */
    }  /*if (capi_phi_tmp == NULL) ... else of phi*/
    /* End of cleaning variable phi */
  /*end of cleanupfrompyobj*/
    if (capi_buildvalue == NULL) {
  /*routdebugfailure*/
    } else {
  /*routdebugleave*/
    }
    CFUNCSMESS("Freeing memory.\n");
  /*freemem*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_clock();
  #endif
    return capi_buildvalue;
  }
  /************************ end of implicit_precalc_2Dy ************************/
  
  /******************************** implicit_3Dx ********************************/
  static char doc_f2py_rout_integration_c_implicit_3Dx[] = "\
  phi = implicit_3Dx(phi,xx,yy,zz,nu1,m12,m13,gamma1,h1,dt,use_delj_trick)\n\nWrapper for ``implicit_3Dx``.\
  \n\nParameters\n----------\n"
  "phi : input rank-3 array('d') with bounds (L,M,N)\n"
  "xx : input rank-1 array('d') with bounds (L)\n"
  "yy : input rank-1 array('d') with bounds (M)\n"
  "zz : input rank-1 array('d') with bounds (N)\n"
  "nu1 : input float\n"
  "m12 : input float\n"
  "m13 : input float\n"
  "gamma1 : input float\n"
  "h1 : input float\n"
  "dt : input float\n"
  "use_delj_trick : input int\n"
  "\nReturns\n-------\n"
  "phi : rank-3 array('d') with bounds (L,M,N)";
  /* extern void implicit_3Dx(double*,double*,double*,double*,double,double,double,double,double,double,int,int,int,int); */
  static PyObject *f2py_rout_integration_c_implicit_3Dx(const PyObject *capi_self,
                             PyObject *capi_args,
                             PyObject *capi_keywds,
                             void (*f2py_func)(double*,double*,double*,double*,double,double,double,double,double,double,int,int,int,int)) {
    PyObject * volatile capi_buildvalue = NULL;
    volatile int f2py_success = 1;
  /*decl*/
  
    double *phi = NULL;
    npy_intp phi_Dims[3] = {-1, -1, -1};
    const int phi_Rank = 3;
    PyArrayObject *capi_phi_tmp = NULL;
    int capi_phi_intent = 0;
    PyObject *phi_capi = Py_None;
    double *xx = NULL;
    npy_intp xx_Dims[1] = {-1};
    const int xx_Rank = 1;
    PyArrayObject *capi_xx_tmp = NULL;
    int capi_xx_intent = 0;
    PyObject *xx_capi = Py_None;
    double *yy = NULL;
    npy_intp yy_Dims[1] = {-1};
    const int yy_Rank = 1;
    PyArrayObject *capi_yy_tmp = NULL;
    int capi_yy_intent = 0;
    PyObject *yy_capi = Py_None;
    double *zz = NULL;
    npy_intp zz_Dims[1] = {-1};
    const int zz_Rank = 1;
    PyArrayObject *capi_zz_tmp = NULL;
    int capi_zz_intent = 0;
    PyObject *zz_capi = Py_None;
    double nu1 = 0;
    PyObject *nu1_capi = Py_None;
    double m12 = 0;
    PyObject *m12_capi = Py_None;
    double m13 = 0;
    PyObject *m13_capi = Py_None;
    double gamma1 = 0;
    PyObject *gamma1_capi = Py_None;
    double h1 = 0;
    PyObject *h1_capi = Py_None;
    double dt = 0;
    PyObject *dt_capi = Py_None;
    int L = 0;
    int M = 0;
    int N = 0;
    int use_delj_trick = 0;
    PyObject *use_delj_trick_capi = Py_None;
    static char *capi_kwlist[] = {"phi","xx","yy","zz","nu1","m12","m13","gamma1","h1","dt","use_delj_trick",NULL};
  
  /*routdebugenter*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_clock();
  #endif
    if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
      "OOOOOOOOOOO:integration_c.implicit_3Dx",\
      capi_kwlist,&phi_capi,&xx_capi,&yy_capi,&zz_capi,&nu1_capi,&m12_capi,&m13_capi,&gamma1_capi,&h1_capi,&dt_capi,&use_delj_trick_capi))
      return NULL;
  /*frompyobj*/
    /* Processing variable phi */
    ;
    capi_phi_intent |= F2PY_INTENT_C|F2PY_INTENT_IN|F2PY_INTENT_OUT;
    capi_phi_tmp = array_from_pyobj(NPY_DOUBLE,phi_Dims,phi_Rank,capi_phi_intent,phi_capi);
    if (capi_phi_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 1st argument `phi' of integration_c.implicit_3Dx to C/Fortran array" );
    } else {
      phi = (double *)(capi_phi_tmp->data);
  
    /* Processing variable gamma1 */
      f2py_success = double_from_pyobj(&gamma1,gamma1_capi,"integration_c.implicit_3Dx() 8th argument (gamma1) can't be converted to double");
    if (f2py_success) {
    /* Processing variable h1 */
      f2py_success = double_from_pyobj(&h1,h1_capi,"integration_c.implicit_3Dx() 9th argument (h1) can't be converted to double");
    if (f2py_success) {
    /* Processing variable use_delj_trick */
      f2py_success = int_from_pyobj(&use_delj_trick,use_delj_trick_capi,"integration_c.implicit_3Dx() 11st argument (use_delj_trick) can't be converted to int");
    if (f2py_success) {
    /* Processing variable nu1 */
      f2py_success = double_from_pyobj(&nu1,nu1_capi,"integration_c.implicit_3Dx() 5th argument (nu1) can't be converted to double");
    if (f2py_success) {
    /* Processing variable m13 */
      f2py_success = double_from_pyobj(&m13,m13_capi,"integration_c.implicit_3Dx() 7th argument (m13) can't be converted to double");
    if (f2py_success) {
    /* Processing variable m12 */
      f2py_success = double_from_pyobj(&m12,m12_capi,"integration_c.implicit_3Dx() 6th argument (m12) can't be converted to double");
    if (f2py_success) {
    /* Processing variable dt */
      f2py_success = double_from_pyobj(&dt,dt_capi,"integration_c.implicit_3Dx() 10th argument (dt) can't be converted to double");
    if (f2py_success) {
    /* Processing variable M */
    M = shape(phi, 1);
    /* Processing variable yy */
    yy_Dims[0]=M;
    capi_yy_intent |= F2PY_INTENT_C|F2PY_INTENT_IN;
    capi_yy_tmp = array_from_pyobj(NPY_DOUBLE,yy_Dims,yy_Rank,capi_yy_intent,yy_capi);
    if (capi_yy_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 3rd argument `yy' of integration_c.implicit_3Dx to C/Fortran array" );
    } else {
      yy = (double *)(capi_yy_tmp->data);
  
    /* Processing variable N */
    N = shape(phi, 2);
    /* Processing variable L */
    L = shape(phi, 0);
    /* Processing variable zz */
    zz_Dims[0]=N;
    capi_zz_intent |= F2PY_INTENT_C|F2PY_INTENT_IN;
    capi_zz_tmp = array_from_pyobj(NPY_DOUBLE,zz_Dims,zz_Rank,capi_zz_intent,zz_capi);
    if (capi_zz_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 4th argument `zz' of integration_c.implicit_3Dx to C/Fortran array" );
    } else {
      zz = (double *)(capi_zz_tmp->data);
  
    /* Processing variable xx */
    xx_Dims[0]=L;
    capi_xx_intent |= F2PY_INTENT_C|F2PY_INTENT_IN;
    capi_xx_tmp = array_from_pyobj(NPY_DOUBLE,xx_Dims,xx_Rank,capi_xx_intent,xx_capi);
    if (capi_xx_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 2nd argument `xx' of integration_c.implicit_3Dx to C/Fortran array" );
    } else {
      xx = (double *)(capi_xx_tmp->data);
  
  /*end of frompyobj*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_call_clock();
  #endif
  /*callfortranroutine*/
          (*f2py_func)(phi,xx,yy,zz,nu1,m12,m13,gamma1,h1,dt,L,M,N,use_delj_trick);
  if (PyErr_Occurred())
    f2py_success = 0;
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_call_clock();
  #endif
  /*end of callfortranroutine*/
      if (f2py_success) {
  /*pyobjfrom*/
  /*end of pyobjfrom*/
      CFUNCSMESS("Building return value.\n");
      capi_buildvalue = Py_BuildValue("N",capi_phi_tmp);
  /*closepyobjfrom*/
  /*end of closepyobjfrom*/
      } /*if (f2py_success) after callfortranroutine*/
  /*cleanupfrompyobj*/
    if((PyObject *)capi_xx_tmp!=xx_capi) {
      Py_XDECREF(capi_xx_tmp); }
    }  /*if (capi_xx_tmp == NULL) ... else of xx*/
    /* End of cleaning variable xx */
    if((PyObject *)capi_zz_tmp!=zz_capi) {
      Py_XDECREF(capi_zz_tmp); }
    }  /*if (capi_zz_tmp == NULL) ... else of zz*/
    /* End of cleaning variable zz */
    /* End of cleaning variable L */
    /* End of cleaning variable N */
    if((PyObject *)capi_yy_tmp!=yy_capi) {
      Py_XDECREF(capi_yy_tmp); }
    }  /*if (capi_yy_tmp == NULL) ... else of yy*/
    /* End of cleaning variable yy */
    /* End of cleaning variable M */
    } /*if (f2py_success) of dt*/
    /* End of cleaning variable dt */
    } /*if (f2py_success) of m12*/
    /* End of cleaning variable m12 */
    } /*if (f2py_success) of m13*/
    /* End of cleaning variable m13 */
    } /*if (f2py_success) of nu1*/
    /* End of cleaning variable nu1 */
    } /*if (f2py_success) of use_delj_trick*/
    /* End of cleaning variable use_delj_trick */
    } /*if (f2py_success) of h1*/
    /* End of cleaning variable h1 */
    } /*if (f2py_success) of gamma1*/
    /* End of cleaning variable gamma1 */
    }  /*if (capi_phi_tmp == NULL) ... else of phi*/
    /* End of cleaning variable phi */
  /*end of cleanupfrompyobj*/
    if (capi_buildvalue == NULL) {
  /*routdebugfailure*/
    } else {
  /*routdebugleave*/
    }
    CFUNCSMESS("Freeing memory.\n");
  /*freemem*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_clock();
  #endif
    return capi_buildvalue;
  }
  /**************************** end of implicit_3Dx ****************************/
  
  /******************************** implicit_3Dy ********************************/
  static char doc_f2py_rout_integration_c_implicit_3Dy[] = "\
  phi = implicit_3Dy(phi,xx,yy,zz,nu2,m21,m23,gamma2,h2,dt,use_delj_trick)\n\nWrapper for ``implicit_3Dy``.\
  \n\nParameters\n----------\n"
  "phi : input rank-3 array('d') with bounds (L,M,N)\n"
  "xx : input rank-1 array('d') with bounds (L)\n"
  "yy : input rank-1 array('d') with bounds (M)\n"
  "zz : input rank-1 array('d') with bounds (N)\n"
  "nu2 : input float\n"
  "m21 : input float\n"
  "m23 : input float\n"
  "gamma2 : input float\n"
  "h2 : input float\n"
  "dt : input float\n"
  "use_delj_trick : input int\n"
  "\nReturns\n-------\n"
  "phi : rank-3 array('d') with bounds (L,M,N)";
  /* extern void implicit_3Dy(double*,double*,double*,double*,double,double,double,double,double,double,int,int,int,int); */
  static PyObject *f2py_rout_integration_c_implicit_3Dy(const PyObject *capi_self,
                             PyObject *capi_args,
                             PyObject *capi_keywds,
                             void (*f2py_func)(double*,double*,double*,double*,double,double,double,double,double,double,int,int,int,int)) {
    PyObject * volatile capi_buildvalue = NULL;
    volatile int f2py_success = 1;
  /*decl*/
  
    double *phi = NULL;
    npy_intp phi_Dims[3] = {-1, -1, -1};
    const int phi_Rank = 3;
    PyArrayObject *capi_phi_tmp = NULL;
    int capi_phi_intent = 0;
    PyObject *phi_capi = Py_None;
    double *xx = NULL;
    npy_intp xx_Dims[1] = {-1};
    const int xx_Rank = 1;
    PyArrayObject *capi_xx_tmp = NULL;
    int capi_xx_intent = 0;
    PyObject *xx_capi = Py_None;
    double *yy = NULL;
    npy_intp yy_Dims[1] = {-1};
    const int yy_Rank = 1;
    PyArrayObject *capi_yy_tmp = NULL;
    int capi_yy_intent = 0;
    PyObject *yy_capi = Py_None;
    double *zz = NULL;
    npy_intp zz_Dims[1] = {-1};
    const int zz_Rank = 1;
    PyArrayObject *capi_zz_tmp = NULL;
    int capi_zz_intent = 0;
    PyObject *zz_capi = Py_None;
    double nu2 = 0;
    PyObject *nu2_capi = Py_None;
    double m21 = 0;
    PyObject *m21_capi = Py_None;
    double m23 = 0;
    PyObject *m23_capi = Py_None;
    double gamma2 = 0;
    PyObject *gamma2_capi = Py_None;
    double h2 = 0;
    PyObject *h2_capi = Py_None;
    double dt = 0;
    PyObject *dt_capi = Py_None;
    int L = 0;
    int M = 0;
    int N = 0;
    int use_delj_trick = 0;
    PyObject *use_delj_trick_capi = Py_None;
    static char *capi_kwlist[] = {"phi","xx","yy","zz","nu2","m21","m23","gamma2","h2","dt","use_delj_trick",NULL};
  
  /*routdebugenter*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_clock();
  #endif
    if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
      "OOOOOOOOOOO:integration_c.implicit_3Dy",\
      capi_kwlist,&phi_capi,&xx_capi,&yy_capi,&zz_capi,&nu2_capi,&m21_capi,&m23_capi,&gamma2_capi,&h2_capi,&dt_capi,&use_delj_trick_capi))
      return NULL;
  /*frompyobj*/
    /* Processing variable gamma2 */
      f2py_success = double_from_pyobj(&gamma2,gamma2_capi,"integration_c.implicit_3Dy() 8th argument (gamma2) can't be converted to double");
    if (f2py_success) {
    /* Processing variable h2 */
      f2py_success = double_from_pyobj(&h2,h2_capi,"integration_c.implicit_3Dy() 9th argument (h2) can't be converted to double");
    if (f2py_success) {
    /* Processing variable nu2 */
      f2py_success = double_from_pyobj(&nu2,nu2_capi,"integration_c.implicit_3Dy() 5th argument (nu2) can't be converted to double");
    if (f2py_success) {
    /* Processing variable phi */
    ;
    capi_phi_intent |= F2PY_INTENT_C|F2PY_INTENT_IN|F2PY_INTENT_OUT;
    capi_phi_tmp = array_from_pyobj(NPY_DOUBLE,phi_Dims,phi_Rank,capi_phi_intent,phi_capi);
    if (capi_phi_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 1st argument `phi' of integration_c.implicit_3Dy to C/Fortran array" );
    } else {
      phi = (double *)(capi_phi_tmp->data);
  
    /* Processing variable m21 */
      f2py_success = double_from_pyobj(&m21,m21_capi,"integration_c.implicit_3Dy() 6th argument (m21) can't be converted to double");
    if (f2py_success) {
    /* Processing variable use_delj_trick */
      f2py_success = int_from_pyobj(&use_delj_trick,use_delj_trick_capi,"integration_c.implicit_3Dy() 11st argument (use_delj_trick) can't be converted to int");
    if (f2py_success) {
    /* Processing variable dt */
      f2py_success = double_from_pyobj(&dt,dt_capi,"integration_c.implicit_3Dy() 10th argument (dt) can't be converted to double");
    if (f2py_success) {
    /* Processing variable m23 */
      f2py_success = double_from_pyobj(&m23,m23_capi,"integration_c.implicit_3Dy() 7th argument (m23) can't be converted to double");
    if (f2py_success) {
    /* Processing variable M */
    M = shape(phi, 1);
    /* Processing variable yy */
    yy_Dims[0]=M;
    capi_yy_intent |= F2PY_INTENT_C|F2PY_INTENT_IN;
    capi_yy_tmp = array_from_pyobj(NPY_DOUBLE,yy_Dims,yy_Rank,capi_yy_intent,yy_capi);
    if (capi_yy_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 3rd argument `yy' of integration_c.implicit_3Dy to C/Fortran array" );
    } else {
      yy = (double *)(capi_yy_tmp->data);
  
    /* Processing variable N */
    N = shape(phi, 2);
    /* Processing variable L */
    L = shape(phi, 0);
    /* Processing variable xx */
    xx_Dims[0]=L;
    capi_xx_intent |= F2PY_INTENT_C|F2PY_INTENT_IN;
    capi_xx_tmp = array_from_pyobj(NPY_DOUBLE,xx_Dims,xx_Rank,capi_xx_intent,xx_capi);
    if (capi_xx_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 2nd argument `xx' of integration_c.implicit_3Dy to C/Fortran array" );
    } else {
      xx = (double *)(capi_xx_tmp->data);
  
    /* Processing variable zz */
    zz_Dims[0]=N;
    capi_zz_intent |= F2PY_INTENT_C|F2PY_INTENT_IN;
    capi_zz_tmp = array_from_pyobj(NPY_DOUBLE,zz_Dims,zz_Rank,capi_zz_intent,zz_capi);
    if (capi_zz_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 4th argument `zz' of integration_c.implicit_3Dy to C/Fortran array" );
    } else {
      zz = (double *)(capi_zz_tmp->data);
  
  /*end of frompyobj*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_call_clock();
  #endif
  /*callfortranroutine*/
          (*f2py_func)(phi,xx,yy,zz,nu2,m21,m23,gamma2,h2,dt,L,M,N,use_delj_trick);
  if (PyErr_Occurred())
    f2py_success = 0;
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_call_clock();
  #endif
  /*end of callfortranroutine*/
      if (f2py_success) {
  /*pyobjfrom*/
  /*end of pyobjfrom*/
      CFUNCSMESS("Building return value.\n");
      capi_buildvalue = Py_BuildValue("N",capi_phi_tmp);
  /*closepyobjfrom*/
  /*end of closepyobjfrom*/
      } /*if (f2py_success) after callfortranroutine*/
  /*cleanupfrompyobj*/
    if((PyObject *)capi_zz_tmp!=zz_capi) {
      Py_XDECREF(capi_zz_tmp); }
    }  /*if (capi_zz_tmp == NULL) ... else of zz*/
    /* End of cleaning variable zz */
    if((PyObject *)capi_xx_tmp!=xx_capi) {
      Py_XDECREF(capi_xx_tmp); }
    }  /*if (capi_xx_tmp == NULL) ... else of xx*/
    /* End of cleaning variable xx */
    /* End of cleaning variable L */
    /* End of cleaning variable N */
    if((PyObject *)capi_yy_tmp!=yy_capi) {
      Py_XDECREF(capi_yy_tmp); }
    }  /*if (capi_yy_tmp == NULL) ... else of yy*/
    /* End of cleaning variable yy */
    /* End of cleaning variable M */
    } /*if (f2py_success) of m23*/
    /* End of cleaning variable m23 */
    } /*if (f2py_success) of dt*/
    /* End of cleaning variable dt */
    } /*if (f2py_success) of use_delj_trick*/
    /* End of cleaning variable use_delj_trick */
    } /*if (f2py_success) of m21*/
    /* End of cleaning variable m21 */
    }  /*if (capi_phi_tmp == NULL) ... else of phi*/
    /* End of cleaning variable phi */
    } /*if (f2py_success) of nu2*/
    /* End of cleaning variable nu2 */
    } /*if (f2py_success) of h2*/
    /* End of cleaning variable h2 */
    } /*if (f2py_success) of gamma2*/
    /* End of cleaning variable gamma2 */
  /*end of cleanupfrompyobj*/
    if (capi_buildvalue == NULL) {
  /*routdebugfailure*/
    } else {
  /*routdebugleave*/
    }
    CFUNCSMESS("Freeing memory.\n");
  /*freemem*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_clock();
  #endif
    return capi_buildvalue;
  }
  /**************************** end of implicit_3Dy ****************************/
  
  /******************************** implicit_3Dz ********************************/
  static char doc_f2py_rout_integration_c_implicit_3Dz[] = "\
  phi = implicit_3Dz(phi,xx,yy,zz,nu3,m31,m32,gamma3,h3,dt,use_delj_trick)\n\nWrapper for ``implicit_3Dz``.\
  \n\nParameters\n----------\n"
  "phi : input rank-3 array('d') with bounds (L,M,N)\n"
  "xx : input rank-1 array('d') with bounds (L)\n"
  "yy : input rank-1 array('d') with bounds (M)\n"
  "zz : input rank-1 array('d') with bounds (N)\n"
  "nu3 : input float\n"
  "m31 : input float\n"
  "m32 : input float\n"
  "gamma3 : input float\n"
  "h3 : input float\n"
  "dt : input float\n"
  "use_delj_trick : input int\n"
  "\nReturns\n-------\n"
  "phi : rank-3 array('d') with bounds (L,M,N)";
  /* extern void implicit_3Dz(double*,double*,double*,double*,double,double,double,double,double,double,int,int,int,int); */
  static PyObject *f2py_rout_integration_c_implicit_3Dz(const PyObject *capi_self,
                             PyObject *capi_args,
                             PyObject *capi_keywds,
                             void (*f2py_func)(double*,double*,double*,double*,double,double,double,double,double,double,int,int,int,int)) {
    PyObject * volatile capi_buildvalue = NULL;
    volatile int f2py_success = 1;
  /*decl*/
  
    double *phi = NULL;
    npy_intp phi_Dims[3] = {-1, -1, -1};
    const int phi_Rank = 3;
    PyArrayObject *capi_phi_tmp = NULL;
    int capi_phi_intent = 0;
    PyObject *phi_capi = Py_None;
    double *xx = NULL;
    npy_intp xx_Dims[1] = {-1};
    const int xx_Rank = 1;
    PyArrayObject *capi_xx_tmp = NULL;
    int capi_xx_intent = 0;
    PyObject *xx_capi = Py_None;
    double *yy = NULL;
    npy_intp yy_Dims[1] = {-1};
    const int yy_Rank = 1;
    PyArrayObject *capi_yy_tmp = NULL;
    int capi_yy_intent = 0;
    PyObject *yy_capi = Py_None;
    double *zz = NULL;
    npy_intp zz_Dims[1] = {-1};
    const int zz_Rank = 1;
    PyArrayObject *capi_zz_tmp = NULL;
    int capi_zz_intent = 0;
    PyObject *zz_capi = Py_None;
    double nu3 = 0;
    PyObject *nu3_capi = Py_None;
    double m31 = 0;
    PyObject *m31_capi = Py_None;
    double m32 = 0;
    PyObject *m32_capi = Py_None;
    double gamma3 = 0;
    PyObject *gamma3_capi = Py_None;
    double h3 = 0;
    PyObject *h3_capi = Py_None;
    double dt = 0;
    PyObject *dt_capi = Py_None;
    int L = 0;
    int M = 0;
    int N = 0;
    int use_delj_trick = 0;
    PyObject *use_delj_trick_capi = Py_None;
    static char *capi_kwlist[] = {"phi","xx","yy","zz","nu3","m31","m32","gamma3","h3","dt","use_delj_trick",NULL};
  
  /*routdebugenter*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_clock();
  #endif
    if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
      "OOOOOOOOOOO:integration_c.implicit_3Dz",\
      capi_kwlist,&phi_capi,&xx_capi,&yy_capi,&zz_capi,&nu3_capi,&m31_capi,&m32_capi,&gamma3_capi,&h3_capi,&dt_capi,&use_delj_trick_capi))
      return NULL;
  /*frompyobj*/
    /* Processing variable phi */
    ;
    capi_phi_intent |= F2PY_INTENT_C|F2PY_INTENT_IN|F2PY_INTENT_OUT;
    capi_phi_tmp = array_from_pyobj(NPY_DOUBLE,phi_Dims,phi_Rank,capi_phi_intent,phi_capi);
    if (capi_phi_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 1st argument `phi' of integration_c.implicit_3Dz to C/Fortran array" );
    } else {
      phi = (double *)(capi_phi_tmp->data);
  
    /* Processing variable gamma3 */
      f2py_success = double_from_pyobj(&gamma3,gamma3_capi,"integration_c.implicit_3Dz() 8th argument (gamma3) can't be converted to double");
    if (f2py_success) {
    /* Processing variable h3 */
      f2py_success = double_from_pyobj(&h3,h3_capi,"integration_c.implicit_3Dz() 9th argument (h3) can't be converted to double");
    if (f2py_success) {
    /* Processing variable nu3 */
      f2py_success = double_from_pyobj(&nu3,nu3_capi,"integration_c.implicit_3Dz() 5th argument (nu3) can't be converted to double");
    if (f2py_success) {
    /* Processing variable m31 */
      f2py_success = double_from_pyobj(&m31,m31_capi,"integration_c.implicit_3Dz() 6th argument (m31) can't be converted to double");
    if (f2py_success) {
    /* Processing variable m32 */
      f2py_success = double_from_pyobj(&m32,m32_capi,"integration_c.implicit_3Dz() 7th argument (m32) can't be converted to double");
    if (f2py_success) {
    /* Processing variable use_delj_trick */
      f2py_success = int_from_pyobj(&use_delj_trick,use_delj_trick_capi,"integration_c.implicit_3Dz() 11st argument (use_delj_trick) can't be converted to int");
    if (f2py_success) {
    /* Processing variable dt */
      f2py_success = double_from_pyobj(&dt,dt_capi,"integration_c.implicit_3Dz() 10th argument (dt) can't be converted to double");
    if (f2py_success) {
    /* Processing variable M */
    M = shape(phi, 1);
    /* Processing variable yy */
    yy_Dims[0]=M;
    capi_yy_intent |= F2PY_INTENT_C|F2PY_INTENT_IN;
    capi_yy_tmp = array_from_pyobj(NPY_DOUBLE,yy_Dims,yy_Rank,capi_yy_intent,yy_capi);
    if (capi_yy_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 3rd argument `yy' of integration_c.implicit_3Dz to C/Fortran array" );
    } else {
      yy = (double *)(capi_yy_tmp->data);
  
    /* Processing variable N */
    N = shape(phi, 2);
    /* Processing variable L */
    L = shape(phi, 0);
    /* Processing variable xx */
    xx_Dims[0]=L;
    capi_xx_intent |= F2PY_INTENT_C|F2PY_INTENT_IN;
    capi_xx_tmp = array_from_pyobj(NPY_DOUBLE,xx_Dims,xx_Rank,capi_xx_intent,xx_capi);
    if (capi_xx_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 2nd argument `xx' of integration_c.implicit_3Dz to C/Fortran array" );
    } else {
      xx = (double *)(capi_xx_tmp->data);
  
    /* Processing variable zz */
    zz_Dims[0]=N;
    capi_zz_intent |= F2PY_INTENT_C|F2PY_INTENT_IN;
    capi_zz_tmp = array_from_pyobj(NPY_DOUBLE,zz_Dims,zz_Rank,capi_zz_intent,zz_capi);
    if (capi_zz_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 4th argument `zz' of integration_c.implicit_3Dz to C/Fortran array" );
    } else {
      zz = (double *)(capi_zz_tmp->data);
  
  /*end of frompyobj*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_call_clock();
  #endif
  /*callfortranroutine*/
          (*f2py_func)(phi,xx,yy,zz,nu3,m31,m32,gamma3,h3,dt,L,M,N,use_delj_trick);
  if (PyErr_Occurred())
    f2py_success = 0;
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_call_clock();
  #endif
  /*end of callfortranroutine*/
      if (f2py_success) {
  /*pyobjfrom*/
  /*end of pyobjfrom*/
      CFUNCSMESS("Building return value.\n");
      capi_buildvalue = Py_BuildValue("N",capi_phi_tmp);
  /*closepyobjfrom*/
  /*end of closepyobjfrom*/
      } /*if (f2py_success) after callfortranroutine*/
  /*cleanupfrompyobj*/
    if((PyObject *)capi_zz_tmp!=zz_capi) {
      Py_XDECREF(capi_zz_tmp); }
    }  /*if (capi_zz_tmp == NULL) ... else of zz*/
    /* End of cleaning variable zz */
    if((PyObject *)capi_xx_tmp!=xx_capi) {
      Py_XDECREF(capi_xx_tmp); }
    }  /*if (capi_xx_tmp == NULL) ... else of xx*/
    /* End of cleaning variable xx */
    /* End of cleaning variable L */
    /* End of cleaning variable N */
    if((PyObject *)capi_yy_tmp!=yy_capi) {
      Py_XDECREF(capi_yy_tmp); }
    }  /*if (capi_yy_tmp == NULL) ... else of yy*/
    /* End of cleaning variable yy */
    /* End of cleaning variable M */
    } /*if (f2py_success) of dt*/
    /* End of cleaning variable dt */
    } /*if (f2py_success) of use_delj_trick*/
    /* End of cleaning variable use_delj_trick */
    } /*if (f2py_success) of m32*/
    /* End of cleaning variable m32 */
    } /*if (f2py_success) of m31*/
    /* End of cleaning variable m31 */
    } /*if (f2py_success) of nu3*/
    /* End of cleaning variable nu3 */
    } /*if (f2py_success) of h3*/
    /* End of cleaning variable h3 */
    } /*if (f2py_success) of gamma3*/
    /* End of cleaning variable gamma3 */
    }  /*if (capi_phi_tmp == NULL) ... else of phi*/
    /* End of cleaning variable phi */
  /*end of cleanupfrompyobj*/
    if (capi_buildvalue == NULL) {
  /*routdebugfailure*/
    } else {
  /*routdebugleave*/
    }
    CFUNCSMESS("Freeing memory.\n");
  /*freemem*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_clock();
  #endif
    return capi_buildvalue;
  }
  /**************************** end of implicit_3Dz ****************************/
  
  /**************************** implicit_precalc_3Dx ****************************/
  static char doc_f2py_rout_integration_c_implicit_precalc_3Dx[] = "\
  phi = implicit_precalc_3Dx(phi,ax,bx,cx,dt)\n\nWrapper for ``implicit_precalc_3Dx``.\
  \n\nParameters\n----------\n"
  "phi : input rank-3 array('d') with bounds (L,M,N)\n"
  "ax : input rank-3 array('d') with bounds (L,M,N)\n"
  "bx : input rank-3 array('d') with bounds (L,M,N)\n"
  "cx : input rank-3 array('d') with bounds (L,M,N)\n"
  "dt : input float\n"
  "\nReturns\n-------\n"
  "phi : rank-3 array('d') with bounds (L,M,N)";
  /* extern void implicit_precalc_3Dx(double*,double*,double*,double*,double,int,int,int); */
  static PyObject *f2py_rout_integration_c_implicit_precalc_3Dx(const PyObject *capi_self,
                             PyObject *capi_args,
                             PyObject *capi_keywds,
                             void (*f2py_func)(double*,double*,double*,double*,double,int,int,int)) {
    PyObject * volatile capi_buildvalue = NULL;
    volatile int f2py_success = 1;
  /*decl*/
  
    double *phi = NULL;
    npy_intp phi_Dims[3] = {-1, -1, -1};
    const int phi_Rank = 3;
    PyArrayObject *capi_phi_tmp = NULL;
    int capi_phi_intent = 0;
    PyObject *phi_capi = Py_None;
    double *ax = NULL;
    npy_intp ax_Dims[3] = {-1, -1, -1};
    const int ax_Rank = 3;
    PyArrayObject *capi_ax_tmp = NULL;
    int capi_ax_intent = 0;
    PyObject *ax_capi = Py_None;
    double *bx = NULL;
    npy_intp bx_Dims[3] = {-1, -1, -1};
    const int bx_Rank = 3;
    PyArrayObject *capi_bx_tmp = NULL;
    int capi_bx_intent = 0;
    PyObject *bx_capi = Py_None;
    double *cx = NULL;
    npy_intp cx_Dims[3] = {-1, -1, -1};
    const int cx_Rank = 3;
    PyArrayObject *capi_cx_tmp = NULL;
    int capi_cx_intent = 0;
    PyObject *cx_capi = Py_None;
    double dt = 0;
    PyObject *dt_capi = Py_None;
    int L = 0;
    int M = 0;
    int N = 0;
    static char *capi_kwlist[] = {"phi","ax","bx","cx","dt",NULL};
  
  /*routdebugenter*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_clock();
  #endif
    if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
      "OOOOO:integration_c.implicit_precalc_3Dx",\
      capi_kwlist,&phi_capi,&ax_capi,&bx_capi,&cx_capi,&dt_capi))
      return NULL;
  /*frompyobj*/
    /* Processing variable phi */
    ;
    capi_phi_intent |= F2PY_INTENT_C|F2PY_INTENT_IN|F2PY_INTENT_OUT;
    capi_phi_tmp = array_from_pyobj(NPY_DOUBLE,phi_Dims,phi_Rank,capi_phi_intent,phi_capi);
    if (capi_phi_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 1st argument `phi' of integration_c.implicit_precalc_3Dx to C/Fortran array" );
    } else {
      phi = (double *)(capi_phi_tmp->data);
  
    /* Processing variable dt */
      f2py_success = double_from_pyobj(&dt,dt_capi,"integration_c.implicit_precalc_3Dx() 5th argument (dt) can't be converted to double");
    if (f2py_success) {
    /* Processing variable M */
    M = shape(phi, 1);
    /* Processing variable L */
    L = shape(phi, 0);
    /* Processing variable N */
    N = shape(phi, 2);
    /* Processing variable cx */
    cx_Dims[0]=L,cx_Dims[1]=M,cx_Dims[2]=N;
    capi_cx_intent |= F2PY_INTENT_C|F2PY_INTENT_IN;
    capi_cx_tmp = array_from_pyobj(NPY_DOUBLE,cx_Dims,cx_Rank,capi_cx_intent,cx_capi);
    if (capi_cx_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 4th argument `cx' of integration_c.implicit_precalc_3Dx to C/Fortran array" );
    } else {
      cx = (double *)(capi_cx_tmp->data);
  
    /* Processing variable ax */
    ax_Dims[0]=L,ax_Dims[1]=M,ax_Dims[2]=N;
    capi_ax_intent |= F2PY_INTENT_C|F2PY_INTENT_IN;
    capi_ax_tmp = array_from_pyobj(NPY_DOUBLE,ax_Dims,ax_Rank,capi_ax_intent,ax_capi);
    if (capi_ax_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 2nd argument `ax' of integration_c.implicit_precalc_3Dx to C/Fortran array" );
    } else {
      ax = (double *)(capi_ax_tmp->data);
  
    /* Processing variable bx */
    bx_Dims[0]=L,bx_Dims[1]=M,bx_Dims[2]=N;
    capi_bx_intent |= F2PY_INTENT_C|F2PY_INTENT_IN;
    capi_bx_tmp = array_from_pyobj(NPY_DOUBLE,bx_Dims,bx_Rank,capi_bx_intent,bx_capi);
    if (capi_bx_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 3rd argument `bx' of integration_c.implicit_precalc_3Dx to C/Fortran array" );
    } else {
      bx = (double *)(capi_bx_tmp->data);
  
  /*end of frompyobj*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_call_clock();
  #endif
  /*callfortranroutine*/
          (*f2py_func)(phi,ax,bx,cx,dt,L,M,N);
  if (PyErr_Occurred())
    f2py_success = 0;
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_call_clock();
  #endif
  /*end of callfortranroutine*/
      if (f2py_success) {
  /*pyobjfrom*/
  /*end of pyobjfrom*/
      CFUNCSMESS("Building return value.\n");
      capi_buildvalue = Py_BuildValue("N",capi_phi_tmp);
  /*closepyobjfrom*/
  /*end of closepyobjfrom*/
      } /*if (f2py_success) after callfortranroutine*/
  /*cleanupfrompyobj*/
    if((PyObject *)capi_bx_tmp!=bx_capi) {
      Py_XDECREF(capi_bx_tmp); }
    }  /*if (capi_bx_tmp == NULL) ... else of bx*/
    /* End of cleaning variable bx */
    if((PyObject *)capi_ax_tmp!=ax_capi) {
      Py_XDECREF(capi_ax_tmp); }
    }  /*if (capi_ax_tmp == NULL) ... else of ax*/
    /* End of cleaning variable ax */
    if((PyObject *)capi_cx_tmp!=cx_capi) {
      Py_XDECREF(capi_cx_tmp); }
    }  /*if (capi_cx_tmp == NULL) ... else of cx*/
    /* End of cleaning variable cx */
    /* End of cleaning variable N */
    /* End of cleaning variable L */
    /* End of cleaning variable M */
    } /*if (f2py_success) of dt*/
    /* End of cleaning variable dt */
    }  /*if (capi_phi_tmp == NULL) ... else of phi*/
    /* End of cleaning variable phi */
  /*end of cleanupfrompyobj*/
    if (capi_buildvalue == NULL) {
  /*routdebugfailure*/
    } else {
  /*routdebugleave*/
    }
    CFUNCSMESS("Freeing memory.\n");
  /*freemem*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_clock();
  #endif
    return capi_buildvalue;
  }
  /************************ end of implicit_precalc_3Dx ************************/
  
  /**************************** implicit_precalc_3Dy ****************************/
  static char doc_f2py_rout_integration_c_implicit_precalc_3Dy[] = "\
  phi = implicit_precalc_3Dy(phi,ay,by,cy,dt)\n\nWrapper for ``implicit_precalc_3Dy``.\
  \n\nParameters\n----------\n"
  "phi : input rank-3 array('d') with bounds (L,M,N)\n"
  "ay : input rank-3 array('d') with bounds (L,M,N)\n"
  "by : input rank-3 array('d') with bounds (L,M,N)\n"
  "cy : input rank-3 array('d') with bounds (L,M,N)\n"
  "dt : input float\n"
  "\nReturns\n-------\n"
  "phi : rank-3 array('d') with bounds (L,M,N)";
  /* extern void implicit_precalc_3Dy(double*,double*,double*,double*,double,int,int,int); */
  static PyObject *f2py_rout_integration_c_implicit_precalc_3Dy(const PyObject *capi_self,
                             PyObject *capi_args,
                             PyObject *capi_keywds,
                             void (*f2py_func)(double*,double*,double*,double*,double,int,int,int)) {
    PyObject * volatile capi_buildvalue = NULL;
    volatile int f2py_success = 1;
  /*decl*/
  
    double *phi = NULL;
    npy_intp phi_Dims[3] = {-1, -1, -1};
    const int phi_Rank = 3;
    PyArrayObject *capi_phi_tmp = NULL;
    int capi_phi_intent = 0;
    PyObject *phi_capi = Py_None;
    double *ay = NULL;
    npy_intp ay_Dims[3] = {-1, -1, -1};
    const int ay_Rank = 3;
    PyArrayObject *capi_ay_tmp = NULL;
    int capi_ay_intent = 0;
    PyObject *ay_capi = Py_None;
    double *by = NULL;
    npy_intp by_Dims[3] = {-1, -1, -1};
    const int by_Rank = 3;
    PyArrayObject *capi_by_tmp = NULL;
    int capi_by_intent = 0;
    PyObject *by_capi = Py_None;
    double *cy = NULL;
    npy_intp cy_Dims[3] = {-1, -1, -1};
    const int cy_Rank = 3;
    PyArrayObject *capi_cy_tmp = NULL;
    int capi_cy_intent = 0;
    PyObject *cy_capi = Py_None;
    double dt = 0;
    PyObject *dt_capi = Py_None;
    int L = 0;
    int M = 0;
    int N = 0;
    static char *capi_kwlist[] = {"phi","ay","by","cy","dt",NULL};
  
  /*routdebugenter*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_clock();
  #endif
    if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
      "OOOOO:integration_c.implicit_precalc_3Dy",\
      capi_kwlist,&phi_capi,&ay_capi,&by_capi,&cy_capi,&dt_capi))
      return NULL;
  /*frompyobj*/
    /* Processing variable phi */
    ;
    capi_phi_intent |= F2PY_INTENT_C|F2PY_INTENT_IN|F2PY_INTENT_OUT;
    capi_phi_tmp = array_from_pyobj(NPY_DOUBLE,phi_Dims,phi_Rank,capi_phi_intent,phi_capi);
    if (capi_phi_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 1st argument `phi' of integration_c.implicit_precalc_3Dy to C/Fortran array" );
    } else {
      phi = (double *)(capi_phi_tmp->data);
  
    /* Processing variable dt */
      f2py_success = double_from_pyobj(&dt,dt_capi,"integration_c.implicit_precalc_3Dy() 5th argument (dt) can't be converted to double");
    if (f2py_success) {
    /* Processing variable M */
    M = shape(phi, 1);
    /* Processing variable L */
    L = shape(phi, 0);
    /* Processing variable N */
    N = shape(phi, 2);
    /* Processing variable cy */
    cy_Dims[0]=L,cy_Dims[1]=M,cy_Dims[2]=N;
    capi_cy_intent |= F2PY_INTENT_C|F2PY_INTENT_IN;
    capi_cy_tmp = array_from_pyobj(NPY_DOUBLE,cy_Dims,cy_Rank,capi_cy_intent,cy_capi);
    if (capi_cy_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 4th argument `cy' of integration_c.implicit_precalc_3Dy to C/Fortran array" );
    } else {
      cy = (double *)(capi_cy_tmp->data);
  
    /* Processing variable ay */
    ay_Dims[0]=L,ay_Dims[1]=M,ay_Dims[2]=N;
    capi_ay_intent |= F2PY_INTENT_C|F2PY_INTENT_IN;
    capi_ay_tmp = array_from_pyobj(NPY_DOUBLE,ay_Dims,ay_Rank,capi_ay_intent,ay_capi);
    if (capi_ay_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 2nd argument `ay' of integration_c.implicit_precalc_3Dy to C/Fortran array" );
    } else {
      ay = (double *)(capi_ay_tmp->data);
  
    /* Processing variable by */
    by_Dims[0]=L,by_Dims[1]=M,by_Dims[2]=N;
    capi_by_intent |= F2PY_INTENT_C|F2PY_INTENT_IN;
    capi_by_tmp = array_from_pyobj(NPY_DOUBLE,by_Dims,by_Rank,capi_by_intent,by_capi);
    if (capi_by_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 3rd argument `by' of integration_c.implicit_precalc_3Dy to C/Fortran array" );
    } else {
      by = (double *)(capi_by_tmp->data);
  
  /*end of frompyobj*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_call_clock();
  #endif
  /*callfortranroutine*/
          (*f2py_func)(phi,ay,by,cy,dt,L,M,N);
  if (PyErr_Occurred())
    f2py_success = 0;
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_call_clock();
  #endif
  /*end of callfortranroutine*/
      if (f2py_success) {
  /*pyobjfrom*/
  /*end of pyobjfrom*/
      CFUNCSMESS("Building return value.\n");
      capi_buildvalue = Py_BuildValue("N",capi_phi_tmp);
  /*closepyobjfrom*/
  /*end of closepyobjfrom*/
      } /*if (f2py_success) after callfortranroutine*/
  /*cleanupfrompyobj*/
    if((PyObject *)capi_by_tmp!=by_capi) {
      Py_XDECREF(capi_by_tmp); }
    }  /*if (capi_by_tmp == NULL) ... else of by*/
    /* End of cleaning variable by */
    if((PyObject *)capi_ay_tmp!=ay_capi) {
      Py_XDECREF(capi_ay_tmp); }
    }  /*if (capi_ay_tmp == NULL) ... else of ay*/
    /* End of cleaning variable ay */
    if((PyObject *)capi_cy_tmp!=cy_capi) {
      Py_XDECREF(capi_cy_tmp); }
    }  /*if (capi_cy_tmp == NULL) ... else of cy*/
    /* End of cleaning variable cy */
    /* End of cleaning variable N */
    /* End of cleaning variable L */
    /* End of cleaning variable M */
    } /*if (f2py_success) of dt*/
    /* End of cleaning variable dt */
    }  /*if (capi_phi_tmp == NULL) ... else of phi*/
    /* End of cleaning variable phi */
  /*end of cleanupfrompyobj*/
    if (capi_buildvalue == NULL) {
  /*routdebugfailure*/
    } else {
  /*routdebugleave*/
    }
    CFUNCSMESS("Freeing memory.\n");
  /*freemem*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_clock();
  #endif
    return capi_buildvalue;
  }
  /************************ end of implicit_precalc_3Dy ************************/
  
  /**************************** implicit_precalc_3Dz ****************************/
  static char doc_f2py_rout_integration_c_implicit_precalc_3Dz[] = "\
  phi = implicit_precalc_3Dz(phi,az,bz,cz,dt)\n\nWrapper for ``implicit_precalc_3Dz``.\
  \n\nParameters\n----------\n"
  "phi : input rank-3 array('d') with bounds (L,M,N)\n"
  "az : input rank-3 array('d') with bounds (L,M,N)\n"
  "bz : input rank-3 array('d') with bounds (L,M,N)\n"
  "cz : input rank-3 array('d') with bounds (L,M,N)\n"
  "dt : input float\n"
  "\nReturns\n-------\n"
  "phi : rank-3 array('d') with bounds (L,M,N)";
  /* extern void implicit_precalc_3Dz(double*,double*,double*,double*,double,int,int,int); */
  static PyObject *f2py_rout_integration_c_implicit_precalc_3Dz(const PyObject *capi_self,
                             PyObject *capi_args,
                             PyObject *capi_keywds,
                             void (*f2py_func)(double*,double*,double*,double*,double,int,int,int)) {
    PyObject * volatile capi_buildvalue = NULL;
    volatile int f2py_success = 1;
  /*decl*/
  
    double *phi = NULL;
    npy_intp phi_Dims[3] = {-1, -1, -1};
    const int phi_Rank = 3;
    PyArrayObject *capi_phi_tmp = NULL;
    int capi_phi_intent = 0;
    PyObject *phi_capi = Py_None;
    double *az = NULL;
    npy_intp az_Dims[3] = {-1, -1, -1};
    const int az_Rank = 3;
    PyArrayObject *capi_az_tmp = NULL;
    int capi_az_intent = 0;
    PyObject *az_capi = Py_None;
    double *bz = NULL;
    npy_intp bz_Dims[3] = {-1, -1, -1};
    const int bz_Rank = 3;
    PyArrayObject *capi_bz_tmp = NULL;
    int capi_bz_intent = 0;
    PyObject *bz_capi = Py_None;
    double *cz = NULL;
    npy_intp cz_Dims[3] = {-1, -1, -1};
    const int cz_Rank = 3;
    PyArrayObject *capi_cz_tmp = NULL;
    int capi_cz_intent = 0;
    PyObject *cz_capi = Py_None;
    double dt = 0;
    PyObject *dt_capi = Py_None;
    int L = 0;
    int M = 0;
    int N = 0;
    static char *capi_kwlist[] = {"phi","az","bz","cz","dt",NULL};
  
  /*routdebugenter*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_clock();
  #endif
    if (!PyArg_ParseTupleAndKeywords(capi_args,capi_keywds,\
      "OOOOO:integration_c.implicit_precalc_3Dz",\
      capi_kwlist,&phi_capi,&az_capi,&bz_capi,&cz_capi,&dt_capi))
      return NULL;
  /*frompyobj*/
    /* Processing variable phi */
    ;
    capi_phi_intent |= F2PY_INTENT_C|F2PY_INTENT_IN|F2PY_INTENT_OUT;
    capi_phi_tmp = array_from_pyobj(NPY_DOUBLE,phi_Dims,phi_Rank,capi_phi_intent,phi_capi);
    if (capi_phi_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 1st argument `phi' of integration_c.implicit_precalc_3Dz to C/Fortran array" );
    } else {
      phi = (double *)(capi_phi_tmp->data);
  
    /* Processing variable dt */
      f2py_success = double_from_pyobj(&dt,dt_capi,"integration_c.implicit_precalc_3Dz() 5th argument (dt) can't be converted to double");
    if (f2py_success) {
    /* Processing variable M */
    M = shape(phi, 1);
    /* Processing variable L */
    L = shape(phi, 0);
    /* Processing variable N */
    N = shape(phi, 2);
    /* Processing variable cz */
    cz_Dims[0]=L,cz_Dims[1]=M,cz_Dims[2]=N;
    capi_cz_intent |= F2PY_INTENT_C|F2PY_INTENT_IN;
    capi_cz_tmp = array_from_pyobj(NPY_DOUBLE,cz_Dims,cz_Rank,capi_cz_intent,cz_capi);
    if (capi_cz_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 4th argument `cz' of integration_c.implicit_precalc_3Dz to C/Fortran array" );
    } else {
      cz = (double *)(capi_cz_tmp->data);
  
    /* Processing variable az */
    az_Dims[0]=L,az_Dims[1]=M,az_Dims[2]=N;
    capi_az_intent |= F2PY_INTENT_C|F2PY_INTENT_IN;
    capi_az_tmp = array_from_pyobj(NPY_DOUBLE,az_Dims,az_Rank,capi_az_intent,az_capi);
    if (capi_az_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 2nd argument `az' of integration_c.implicit_precalc_3Dz to C/Fortran array" );
    } else {
      az = (double *)(capi_az_tmp->data);
  
    /* Processing variable bz */
    bz_Dims[0]=L,bz_Dims[1]=M,bz_Dims[2]=N;
    capi_bz_intent |= F2PY_INTENT_C|F2PY_INTENT_IN;
    capi_bz_tmp = array_from_pyobj(NPY_DOUBLE,bz_Dims,bz_Rank,capi_bz_intent,bz_capi);
    if (capi_bz_tmp == NULL) {
      if (!PyErr_Occurred())
        PyErr_SetString(integration_c_error,"failed in converting 3rd argument `bz' of integration_c.implicit_precalc_3Dz to C/Fortran array" );
    } else {
      bz = (double *)(capi_bz_tmp->data);
  
  /*end of frompyobj*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_start_call_clock();
  #endif
  /*callfortranroutine*/
          (*f2py_func)(phi,az,bz,cz,dt,L,M,N);
  if (PyErr_Occurred())
    f2py_success = 0;
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_call_clock();
  #endif
  /*end of callfortranroutine*/
      if (f2py_success) {
  /*pyobjfrom*/
  /*end of pyobjfrom*/
      CFUNCSMESS("Building return value.\n");
      capi_buildvalue = Py_BuildValue("N",capi_phi_tmp);
  /*closepyobjfrom*/
  /*end of closepyobjfrom*/
      } /*if (f2py_success) after callfortranroutine*/
  /*cleanupfrompyobj*/
    if((PyObject *)capi_bz_tmp!=bz_capi) {
      Py_XDECREF(capi_bz_tmp); }
    }  /*if (capi_bz_tmp == NULL) ... else of bz*/
    /* End of cleaning variable bz */
    if((PyObject *)capi_az_tmp!=az_capi) {
      Py_XDECREF(capi_az_tmp); }
    }  /*if (capi_az_tmp == NULL) ... else of az*/
    /* End of cleaning variable az */
    if((PyObject *)capi_cz_tmp!=cz_capi) {
      Py_XDECREF(capi_cz_tmp); }
    }  /*if (capi_cz_tmp == NULL) ... else of cz*/
    /* End of cleaning variable cz */
    /* End of cleaning variable N */
    /* End of cleaning variable L */
    /* End of cleaning variable M */
    } /*if (f2py_success) of dt*/
    /* End of cleaning variable dt */
    }  /*if (capi_phi_tmp == NULL) ... else of phi*/
    /* End of cleaning variable phi */
  /*end of cleanupfrompyobj*/
    if (capi_buildvalue == NULL) {
  /*routdebugfailure*/
    } else {
  /*routdebugleave*/
    }
    CFUNCSMESS("Freeing memory.\n");
  /*freemem*/
  #ifdef F2PY_REPORT_ATEXIT
  f2py_stop_clock();
  #endif
    return capi_buildvalue;
  }
  /************************ end of implicit_precalc_3Dz ************************/
  /*eof body*/
  
  /******************* See f2py2e/f90mod_rules.py: buildhooks *******************/
  /*need_f90modhooks*/
  
  /************** See f2py2e/rules.py: module_rules['modulebody'] **************/
  
  /******************* See f2py2e/common_rules.py: buildhooks *******************/
  
  /*need_commonhooks*/
  
  /**************************** See f2py2e/rules.py ****************************/
  
  static FortranDataDef f2py_routine_defs[] = {
    {"implicit_1Dx",-1,{{-1}},0,(char *)implicit_1Dx,(f2py_init_func)f2py_rout_integration_c_implicit_1Dx,doc_f2py_rout_integration_c_implicit_1Dx},
    {"implicit_2Dx",-1,{{-1}},0,(char *)implicit_2Dx,(f2py_init_func)f2py_rout_integration_c_implicit_2Dx,doc_f2py_rout_integration_c_implicit_2Dx},
    {"implicit_2Dy",-1,{{-1}},0,(char *)implicit_2Dy,(f2py_init_func)f2py_rout_integration_c_implicit_2Dy,doc_f2py_rout_integration_c_implicit_2Dy},
    {"implicit_precalc_2Dx",-1,{{-1}},0,(char *)implicit_precalc_2Dx,(f2py_init_func)f2py_rout_integration_c_implicit_precalc_2Dx,doc_f2py_rout_integration_c_implicit_precalc_2Dx},
    {"implicit_precalc_2Dy",-1,{{-1}},0,(char *)implicit_precalc_2Dy,(f2py_init_func)f2py_rout_integration_c_implicit_precalc_2Dy,doc_f2py_rout_integration_c_implicit_precalc_2Dy},
    {"implicit_3Dx",-1,{{-1}},0,(char *)implicit_3Dx,(f2py_init_func)f2py_rout_integration_c_implicit_3Dx,doc_f2py_rout_integration_c_implicit_3Dx},
    {"implicit_3Dy",-1,{{-1}},0,(char *)implicit_3Dy,(f2py_init_func)f2py_rout_integration_c_implicit_3Dy,doc_f2py_rout_integration_c_implicit_3Dy},
    {"implicit_3Dz",-1,{{-1}},0,(char *)implicit_3Dz,(f2py_init_func)f2py_rout_integration_c_implicit_3Dz,doc_f2py_rout_integration_c_implicit_3Dz},
    {"implicit_precalc_3Dx",-1,{{-1}},0,(char *)implicit_precalc_3Dx,(f2py_init_func)f2py_rout_integration_c_implicit_precalc_3Dx,doc_f2py_rout_integration_c_implicit_precalc_3Dx},
    {"implicit_precalc_3Dy",-1,{{-1}},0,(char *)implicit_precalc_3Dy,(f2py_init_func)f2py_rout_integration_c_implicit_precalc_3Dy,doc_f2py_rout_integration_c_implicit_precalc_3Dy},
    {"implicit_precalc_3Dz",-1,{{-1}},0,(char *)implicit_precalc_3Dz,(f2py_init_func)f2py_rout_integration_c_implicit_precalc_3Dz,doc_f2py_rout_integration_c_implicit_precalc_3Dz},
  
  /*eof routine_defs*/
    {NULL}
  };
  
  static PyMethodDef f2py_module_methods[] = {
  
    {NULL,NULL}
  };
  
  #if PY_VERSION_HEX >= 0x03000000
  static struct PyModuleDef moduledef = {
    PyModuleDef_HEAD_INIT,
    "integration_c",
    NULL,
    -1,
    f2py_module_methods,
    NULL,
    NULL,
    NULL,
    NULL
  };
  #endif
  
  #if PY_VERSION_HEX >= 0x03000000
  #define RETVAL m
  PyMODINIT_FUNC PyInit_integration_c(void) {
  #else
  #define RETVAL
  PyMODINIT_FUNC initintegration_c(void) {
  #endif
    int i;
    PyObject *m,*d, *s;
  #if PY_VERSION_HEX >= 0x03000000
    m = integration_c_module = PyModule_Create(&moduledef);
  #else
    m = integration_c_module = Py_InitModule("integration_c", f2py_module_methods);
  #endif
    Py_TYPE(&PyFortran_Type) = &PyType_Type;
    import_array();
    if (PyErr_Occurred())
      {PyErr_SetString(PyExc_ImportError, "can't initialize module integration_c (failed to import numpy)"); return RETVAL;}
    d = PyModule_GetDict(m);
    s = PyString_FromString("$Revision: $");
    PyDict_SetItemString(d, "__version__", s);
  #if PY_VERSION_HEX >= 0x03000000
    s = PyUnicode_FromString(
  #else
    s = PyString_FromString(
  #endif
      "This module 'integration_c' is auto-generated with f2py (version:2).\nFunctions:\n"
  "  phi = implicit_1Dx(phi,xx,nu,gamma,h,dt,use_delj_trick)\n"
  "  phi = implicit_2Dx(phi,xx,yy,nu1,m12,gamma1,h1,dt,use_delj_trick)\n"
  "  phi = implicit_2Dy(phi,xx,yy,nu2,m21,gamma2,h2,dt,use_delj_trick)\n"
  "  phi = implicit_precalc_2Dx(phi,ax,bx,cx,dt)\n"
  "  phi = implicit_precalc_2Dy(phi,ay,by,cy,dt)\n"
  "  phi = implicit_3Dx(phi,xx,yy,zz,nu1,m12,m13,gamma1,h1,dt,use_delj_trick)\n"
  "  phi = implicit_3Dy(phi,xx,yy,zz,nu2,m21,m23,gamma2,h2,dt,use_delj_trick)\n"
  "  phi = implicit_3Dz(phi,xx,yy,zz,nu3,m31,m32,gamma3,h3,dt,use_delj_trick)\n"
  "  phi = implicit_precalc_3Dx(phi,ax,bx,cx,dt)\n"
  "  phi = implicit_precalc_3Dy(phi,ay,by,cy,dt)\n"
  "  phi = implicit_precalc_3Dz(phi,az,bz,cz,dt)\n"
  ".");
    PyDict_SetItemString(d, "__doc__", s);
    integration_c_error = PyErr_NewException ("integration_c.error", NULL, NULL);
    Py_DECREF(s);
    for(i=0;f2py_routine_defs[i].name!=NULL;i++)
      PyDict_SetItemString(d, f2py_routine_defs[i].name,PyFortranObject_NewAsAttr(&f2py_routine_defs[i]));
  
  
  
  
  
  
  
  
  
  
  
  /*eof initf2pywraphooks*/
  /*eof initf90modhooks*/
  
  /*eof initcommonhooks*/
  
  
  #ifdef F2PY_REPORT_ATEXIT
    if (! PyErr_Occurred())
      on_exit(f2py_report_on_exit,(void*)"integration_c");
  #endif
  
    return RETVAL;
  }
  #ifdef __cplusplus
  }
  #endif
  