_pyfunc_ptr = func1; /* store func1 for use in _pycall */ /* allocate help array for creating a double pointer: */ app = (double **) malloc(nx*sizeof(double*)); ap = (double *) a->data; for (i = 0; i < nx; i++) { app[i] = &(ap[i*ny]); } xp = (double *) xcoor->data; yp = (double *) ycoor->data; gridloop1_C(app, xp, yp, nx, ny, _pycall); free(app); return Py_BuildValue(""); /* return None */ }