|
|
|
@ -53,8 +53,10 @@ int Py_getvalues(PyObject* args, long* seed, struct grid_mod* grid, struct vario
|
|
|
|
|
if (stat->mean == NULL)
|
|
|
|
|
return 0;
|
|
|
|
|
stat->variance = (double*)malloc(stat->nblock_var * sizeof(double));
|
|
|
|
|
if (stat->variance == NULL)
|
|
|
|
|
if (stat->variance == NULL) {
|
|
|
|
|
free(stat->mean);
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!PyArg_ParseTuple(args, "iiidddlO!ddi", /*"iiidddslO!ddi",*/
|
|
|
|
|
&(grid->NX),
|
|
|
|
@ -68,26 +70,54 @@ int Py_getvalues(PyObject* args, long* seed, struct grid_mod* grid, struct vario
|
|
|
|
|
&PyList_Type, &listvario,
|
|
|
|
|
stat->mean + 0,
|
|
|
|
|
stat->variance + 0,
|
|
|
|
|
&(stat->type)))
|
|
|
|
|
&(stat->type))) {
|
|
|
|
|
free(stat->mean);
|
|
|
|
|
free(stat->variance);
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
variogram->Nvario = PyList_Size(listvario);
|
|
|
|
|
|
|
|
|
|
variogram->var = (double*)malloc(variogram->Nvario * sizeof(double));
|
|
|
|
|
if (variogram->var == NULL)
|
|
|
|
|
if (variogram->var == NULL) {
|
|
|
|
|
free(stat->mean);
|
|
|
|
|
free(stat->variance);
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
variogram->vario = (int*)malloc(variogram->Nvario * sizeof(int));
|
|
|
|
|
if (variogram->vario == NULL)
|
|
|
|
|
if (variogram->vario == NULL) {
|
|
|
|
|
free(stat->mean);
|
|
|
|
|
free(stat->variance);
|
|
|
|
|
free(variogram->var);
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
variogram->alpha = (double*)malloc(variogram->Nvario * sizeof(double));
|
|
|
|
|
if (variogram->alpha == NULL)
|
|
|
|
|
if (variogram->alpha == NULL) {
|
|
|
|
|
free(stat->mean);
|
|
|
|
|
free(stat->variance);
|
|
|
|
|
free(variogram->var);
|
|
|
|
|
free(variogram->vario);
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
variogram->scf = (double*)malloc(3 * variogram->Nvario * sizeof(double));
|
|
|
|
|
if (variogram->var == NULL)
|
|
|
|
|
if (variogram->var == NULL) {
|
|
|
|
|
free(stat->mean);
|
|
|
|
|
free(stat->variance);
|
|
|
|
|
free(variogram->var);
|
|
|
|
|
free(variogram->vario);
|
|
|
|
|
free(variogram->alpha);
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
variogram->ap = (double*)malloc(9 * variogram->Nvario * sizeof(double));
|
|
|
|
|
if (variogram->var == NULL)
|
|
|
|
|
if (variogram->var == NULL) {
|
|
|
|
|
free(stat->mean);
|
|
|
|
|
free(stat->variance);
|
|
|
|
|
free(variogram->var);
|
|
|
|
|
free(variogram->vario);
|
|
|
|
|
free(variogram->alpha);
|
|
|
|
|
free(variogram->scf);
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
for (i = 0; i < variogram->Nvario; i++) {
|
|
|
|
|
vgr = PyList_GetItem(listvario, i);
|
|
|
|
|
if (PyTuple_Size(vgr) != 12)
|
|
|
|
|