Track reverse mapping into WI/depth tables in 'cwells'. Update

allocation sizes accordingly.
This commit is contained in:
Bård Skaflestad 2010-09-16 06:37:23 +00:00
parent d96229619e
commit 790d6f4b8b

9
well.c
View File

@ -27,8 +27,8 @@ allocate_cell_wells(int nc, well_t *W, int **cwpos, int **cwells)
totwconn = W->well_connpos[W->number_of_wells]; totwconn = W->well_connpos[W->number_of_wells];
*cwpos = calloc(nc + 1 , sizeof **cwpos ); *cwpos = calloc(nc + 1 , sizeof **cwpos );
*cwells = malloc(totwconn * sizeof **cwells); *cwells = malloc(2 * totwconn * sizeof **cwells);
if ((*cwpos == NULL) || (*cwells == NULL)) { if ((*cwpos == NULL) || (*cwells == NULL)) {
deallocate_cell_wells(*cwpos, *cwells); deallocate_cell_wells(*cwpos, *cwells);
@ -69,7 +69,10 @@ derive_cell_wells(int nc, well_t *W, int *cwpos, int *cwells)
c = W->well_cells; c = W->well_cells;
for (w = 0; w < W->number_of_wells; w++) { for (w = 0; w < W->number_of_wells; w++) {
for (; c != W->well_cells + connpos[w + 1]; c++) { for (; c != W->well_cells + connpos[w + 1]; c++) {
cwells[ cwpos[*c + 1] ++ ] = w; cwells[ 2*cwpos[*c + 1] + 0 ] = w;
cwells[ 2*cwpos[*c + 1] + 1 ] = c - W->well_cells;
cwpos[*c + 1] += 1;
} }
} }
} }