19 #include "grass/N_gwflow.h"
266 double hc_e = 0, hc_w = 0, hc_n = 0, hc_s = 0, hc_t = 0, hc_b = 0;
267 double dx, dy, dz, Ax, Ay, Az;
268 double hc_x, hc_y, hc_z;
269 double hc_xw, hc_yn, hc_zt;
270 double hc_xe, hc_ys, hc_zb;
273 double C, W, E,
N, S, T, B, V;
284 Ay = geom->
dx * geom->
dz;
285 Ax = geom->
dz * geom->
dy;
316 W = -1 * Ax * hc_w / dx;
318 E = -1 * Ax * hc_e / dx;
320 N = -1 * Ay * hc_n / dy;
322 S = -1 * Ay * hc_s / dy;
324 T = -1 * Az * hc_t / dz;
326 B = -1 * Az * hc_b / dz;
332 C = -1 * (W + E + N + S + T + B - Ss / data->
dt * Az);
335 V = (q + hc_start * Ss / data->
dt * Az);
338 if (depth == geom->
depths - 2) {
343 G_debug(5,
"N_callback_gwflow_3d: called [%i][%i][%i]", depth, col, row);
373 double T_e = 0, T_w = 0, T_n = 0, T_s = 0;
374 double z_e = 0, z_w = 0, z_n = 0, z_s = 0;
384 double C, W, E,
N, S, V;
387 double river_vect = 0;
388 double river_mat = 0;
389 double drain_vect = 0;
390 double drain_mat = 0;
443 if (z_w > 0 || z_w < 0 || z_w == 0)
447 if (z_e > 0 || z_e < 0 || z_e == 0)
451 if (z_n > 0 || z_n < 0 || z_n == 0)
455 if (z_s > 0 || z_s < 0 || z_s == 0)
514 W = -1 * T_w * dy / dx;
516 E = -1 * T_e * dy / dx;
518 N = -1 * T_n * dx / dy;
520 S = -1 * T_s * dx / dy;
523 C = -1 * (W + E + N + S - Ss / data->
dt - river_mat * Az -
527 V = (q + hc_start * Ss / data->
dt) + r + river_vect * Az +
530 G_debug(5,
"N_callback_gwflow_2d: called [%i][%i]", row, col);