TYCHO  1.3.0
 All Data Structures Files Functions Variables Enumerations Enumerator
/home/kapf/tycho_docu/sweep_y.c
Go to the documentation of this file.
1 /*
2  * sweep_y.c
3  *
4  * Author: Wolfgang Kapferer Wolfgang
5  */
6 
7 #include <stdio.h>
8 #include <stdlib.h>
9 #include <math.h>
10 
11 #ifdef _OPENMP
12 #include <omp.h>
13 #endif
14 
15 #include "variables_global.h"
16 #include "prototypes.h"
17 
21 inline double max_sweep_y(double a, double b) {
22  double tmp;
23 
24  if (a < b) tmp = b;
25  if (a == b)tmp = b;
26  if (a > b) tmp = a;
27 
28  return tmp;
29 }
30 
35 int sweep_y(int x, int y, int z, int flag) {
36  int i, j, k, n, nmin, nmax;
37 
38  // direction setter 0==x, 1==y, 2==z
39  int direction = 1;
40  //1D variables
41  double *rho_1D, *pre_1D, *eng_1D, *vx_1D, *vy_1D, *vz_1D, *marker_1D;
42  //1D variables for viscosity
43  double *rhodown, *rhoup, *rhofront, *rhoback;
44  double *vxdown, *vxup, *vxfront, *vxback;
45  double *vydown, *vyup, *vyfront, *vyback;
46  double *vzdown, *vzup, *vzfront, *vzback;
47  //for pressure calculations on the solid
48  double *pressure_solid_1D;
49  double *xa, *dx;
50  double *dx0, *xa0;
51  double *a_coef, *ai_coef, *b_coef, *bi_coef, *c_coef, *ci_coef;
52  double *d_x;
53  double *diffa;
54  //parabola
55  double *da, *ar;
56  double *pl, *p6, *rl, *r6;
57  double *u6, *ul, *vl, *v6;
58  double *wl, *w6, *el, *e6;
59  double *ql, *q6, *dp, *du;
60  double *dv, *dw, *dq, *de;
61  double *scratch1, *scratch2, *scratch3;
62  double *dr, *deltaa;
63  //for states
64  double *plft, *prgh, *ulft, *urgh, *rlft, *rrgh, *Cdtdx, *fCdtdx;
65  // for flattening
66  double *steep, *flat;
67  double **para;
68  //riemann solver
69  double *clft, *crgh, *plfti, *prghi, *pmid, *pmold, *wlft, *wrgh, *zlft, *zrgh;
70  double *umidl, *umidr, *umid;
71  //evolve
72  double *dm, *dtbdm, *upmid, *xa1, *xa2, *xa3;
73  double *vx_1D_old;
74  double *dvol, *dvol0, *dvol1;
75  //remap
76  double *delta;
77  double *fluxr, *fluxu, *fluxv, *fluxw, *fluxe, *fluxq;
78  double *dm0;
79  double *e_int_1D;
80 
81  dom_state state, state_next;
82 
83 #ifdef _OPENMP
84 #pragma omp parallel default(none) \
85  private(i, j, k, n, nmin, nmax, state, state_next, rho_1D, pre_1D,\
86  eng_1D, vx_1D, vy_1D, vz_1D, marker_1D, \
87  pressure_solid_1D, dx0, xa0, xa, dx, \
88  a_coef, ai_coef, b_coef, bi_coef, c_coef, ci_coef, \
89  d_x, diffa, da, ar, pl, p6, rl, r6, \
90  u6, ul, vl, v6, wl, w6, \
91  el, e6, ql, q6, dp, du, dr, deltaa, \
92  dv, dw, dq, de, scratch1, scratch2, scratch3, \
93  plft, prgh, ulft, urgh, rlft, rrgh, Cdtdx, fCdtdx, \
94  steep, flat, para, clft, crgh, plfti, prghi, pmid, \
95  pmold, wlft, wrgh, zlft, zrgh, umidl, umidr, umid, \
96  dm, dtbdm, upmid, xa1, xa2, xa3, vx_1D_old, \
97  dvol, dvol0, dvol1, delta, fluxr, fluxu, fluxv, \
98  fluxw, fluxe, fluxq, dm0, e_int_1D, rhodown, rhoup, \
99  rhofront, rhoback, vxdown, vxup, vxfront, vxback, \
100  vydown, vyup, vyfront, vyback, vzdown, vzup, vzfront, \
101  vzback) \
102  shared(x, y, z, rho, dom, \
103  pre, vx, vy, vz, marker, zya, zdy, \
104  pressure_on_solid, smallp, smallr, small, Gamma, max_array_length, flag, \
105  direction, obstacle_density, obstacle_temperature, advection, with_obstacles, \
106  viscosity_on_off, bound, inflow_density, inflow_velocity, dimension, \
107  rho_visc, vx_visc, vy_visc, vz_visc)
108  {
109 #endif
110 
111  //==============================================================================
112  init_ppm(&rho_1D, &pre_1D, &eng_1D, &vx_1D, &vy_1D, &vz_1D, &marker_1D, &dx0, &xa0, &xa, &dx,
113  &a_coef, &ai_coef, &b_coef, &bi_coef, &c_coef, &ci_coef, &d_x, &da, &ar,
114  &dp, &dr, &du, &pl, &p6, &rl, &r6, &ul, &u6, &vl, &v6, &wl, &w6, &el, &e6, &ql,
115  &q6, &deltaa, &dv, &dw, &dq, &de, &scratch1, &scratch2, &scratch3, &diffa,
116  &plft, &prgh, &ulft, &urgh, &rlft, &rrgh, &Cdtdx, &fCdtdx, &clft, &crgh,
117  &plfti, &prghi, &pmid, &pmold, &wlft, &wrgh, &zlft, &zrgh, &umidl, &umidr,
118  &umid, &dm, &dtbdm, &upmid, &xa1, &xa2, &xa3, &vx_1D_old, &e_int_1D, &dvol,
119  &dvol0, &dvol1, &delta, &fluxr, &fluxu, &fluxv, &fluxw, &fluxe, &fluxq,
120  &dm0, &steep, &flat, &para, &pressure_solid_1D, &rhodown, &rhoup, &rhofront,
121  &rhoback, &vxdown, &vxup, &vxfront, &vxback, &vydown, &vyup, &vyfront,
122  &vyback, &vzdown, &vzup, &vzfront, &vzback, dimension);
123 
124  //==============================================================================
125 
126  for (k = 0; k < z; k++) {
127 
128 #ifdef _OPENMP
129 #pragma omp for schedule(static)
130 #endif
131 
132  for (i = 0; i < x; i++) {
133 
134  int lefter;
135 
136  nmin = 0;
137  nmax = 0;
138  lefter = 0;
139 
140  for (j = 0; j < y; j++) {
141 
142  n = j + 6 - nmin;
143 
144  xa[n] = zya[j];
145  dx[n] = zdy[j];
146  xa0[n] = zya[j];
147  dx0[n] = zdy[j];
148 
149  // Copy parts of a line from 3D domain into 1D domain
150  if (dom[i][j][k] == 0) {
151  state = DOM_FLUID;
152 
153  rho_1D[n] = rho[i][j][k];
154  pre_1D[n] = pre[i][j][k];
155  vx_1D[n] = vy[i][j][k];
156  vy_1D[n] = vz[i][j][k];
157  vz_1D[n] = vx[i][j][k];
158 
159  if (advection == 1) marker_1D[n] = marker[i][j][k];
160 
161  if (with_obstacles == 1) pressure_solid_1D[n] = pressure_on_solid[i][j][k];
162 
163  pre_1D[n] = max_sweep_y(smallp, pre_1D[n]);
164  eng_1D[n] = pre_1D[n] / (rho_1D[n] * Gamma) + 0.5 * ((pow(vx_1D[n], 2))+(pow(vy_1D[n], 2))+(pow(vz_1D[n], 2)));
165 
166  // if viscosity is set on
167  if (viscosity_on_off == 1) {
168  if (dimension > 1) {
169  //====================================================
170  //first the i-1 case no obstacle
171  if ((i > 0) && (dom[i - 1][j][k] == 0) && (i < x - 1)) {
172  rhodown[n] = rho[i - 1][j][k];
173  vxdown[n] = vy[i - 1][j][k];
174  vydown[n] = vz[i - 1][j][k];
175  vzdown[n] = vx[i - 1][j][k];
176  }
177  if ((i > 0) && (dom[i - 1][j][k] != 0) && (i < x - 1)) {
178  rhodown[n] = 0.0;
179  vxdown[n] = 0.0;
180  vydown[n] = 0.0;
181  vzdown[n] = 0.0;
182  }
183  //at j==0 no obstacle is checked before entering viscosity part
184  if (i == 0) {
185  if (bound.left == 0) rhodown[n] = rho_visc[i][j][k];
186  if (bound.left == 1) rhodown[n] = rho_visc[i][j][k];
187  if (bound.left == 2) rhodown[n] = small;
188  if (bound.left == 3) rhodown[n] = rho_visc[i][j][k];
189  if (bound.left == 4) rhodown[n] = inflow_density;
190  if (bound.left == 5) rhodown[n] = rho_visc[x - 1][j][k];
191 
192  if (bound.left == 0) vxdown[n] = vy_visc[i][j][k];
193  if (bound.left == 1) vxdown[n] = -vy_visc[i][j][k];
194  if (bound.left == 2) vxdown[n] = small;
195  if (bound.left == 3) vxdown[n] = vy_visc[i][j][k];
196  if (bound.left == 4) vxdown[n] = 0.0;
197  if (bound.left == 5) vxdown[n] = vy_visc[x - 1][j][k];
198 
199  if (bound.left == 0) vydown[n] = vz_visc[i][j][k];
200  if (bound.left == 1) vydown[n] = -vz_visc[i][j][k];
201  if (bound.left == 2) vydown[n] = small;
202  if (bound.left == 3) {
203  if (vy_visc[i][j][k] > 0.0) vydown[n] = small;
204  if (vy_visc[i][j][k] <= 0.0) vydown[n] = vz_visc[i][j][k];
205  }
206 
207  if (bound.left == 4) vydown[n] = 0.0;
208  if (bound.left == 5) vydown[n] = vz_visc[x - 1][j][k];
209 
210  if (bound.left == 0) vzdown[n] = vx_visc[i][j][k];
211  if (bound.left == 1) vzdown[n] = -vx_visc[i][j][k];
212  if (bound.left == 2) vzdown[n] = small;
213  if (bound.left == 3) vzdown[n] = vx_visc[i][j][k];
214  if (bound.left == 4) vzdown[n] = inflow_velocity;
215  if (bound.left == 5) vzdown[n] = vz_visc[x - 1][j][k];
216 
217  rhoup[n] = rho_visc[i + 1][j][k];
218  vxup[n] = vx_visc[i + 1][j][k];
219  vyup[n] = vy_visc[i + 1][j][k];
220  vzup[n] = vz_visc[i + 1][j][k];
221  }
222  //====================================================
223 
224  //====================================================
225  //now the case j = y - 1 no obstacle
226  if ((i < x - 1) && (dom[i + 1][j][k] == 0) && (i > 0)) {
227  rhoup[n] = rho_visc[i + 1][j][k];
228  vxup[n] = vy_visc[i + 1][j][k];
229  vyup[n] = vz_visc[i + 1][j][k];
230  vzup[n] = vx_visc[i + 1 ][j][k];
231  }
232  if ((i < x - 1) && (dom[i + 1][j][k] != 0) && (i > 0)) {
233  rhoup[n] = 0.0;
234  vxup[n] = 0.0;
235  vyup[n] = 0.0;
236  vzup[n] = 0.0;
237  }
238  //at j==0 no obstacle is checked before entering viscosity part
239  if (i == x - 1) {
240  if (bound.right == 0) rhoup[n] = rho_visc[i][j][k];
241  if (bound.right == 1) rhoup[n] = rho_visc[i][j][k];
242  if (bound.right == 2) rhoup[n] = small;
243  if (bound.right == 3) rhoup[n] = rho_visc[i][j][k];
244  if (bound.right == 4) rhoup[n] = inflow_density;
245  if (bound.right == 5) rhoup[n] = rho_visc[0][j][k];
246 
247  if (bound.right == 0) vxup[n] = vy_visc[i][j][k];
248  if (bound.right == 1) vxup[n] = -vy_visc[i][j][k];
249  if (bound.right == 2) vxup[n] = small;
250  if (bound.right == 3) vxup[n] = vy_visc[i][j][k];
251  if (bound.right == 4) vxup[n] = 0.0;
252  if (bound.right == 5) vxup[n] = vx_visc[0][j][k];
253 
254  if (bound.right == 0) vyup[n] = vz_visc[i][j][k];
255  if (bound.right == 1) vyup[n] = -vz_visc[i][j][k];
256  if (bound.right == 2) vyup[n] = small;
257  if (bound.right == 3) {
258  if (vy_visc[i][j][k] < 0.0) vyup[n] = small;
259  if (vy_visc[i][j][k] >= 0.0) vyup[n] = vz_visc[i][j][k];
260  }
261  if (bound.right == 4) vyup[n] = 0.0;
262  if (bound.right == 5) vyup[n] = vz_visc[0][j][k];
263 
264  if (bound.right == 0) vzup[n] = vx_visc[i][j][k];
265  if (bound.right == 1) vzup[n] = -vx_visc[i][j][k];
266  if (bound.right == 2) vzup[n] = small;
267  if (bound.right == 3) vzup[n] = vx_visc[i][j][k];
268  if (bound.right == 4) vzup[n] = inflow_velocity;
269  if (bound.right == 5) vzup[n] = vx_visc[0][j][k];
270 
271  rhodown[n] = rho_visc[i - 1][j][k];
272  vxdown[n] = vx_visc[i - 1][j][k];
273  vydown[n] = vy_visc[i - 1][j][k];
274  vzdown[n] = vz_visc[i - 1][j][k];
275  }
276  //====================================================
277  }
278  if (dimension > 2) {
279  //====================================================
280  //now the k > 0 case no obstacle
281  if ((k > 0) && (dom[i][j][k - 1] == 0) && (k < z - 1)) {
282  rhofront[n] = rho_visc[i][j][k - 1];
283  vxfront[n] = vy_visc[i][j][k - 1];
284  vyfront[n] = vz_visc[i][j][k - 1];
285  vzfront[n] = vx_visc[i][j][k - 1];
286  }
287  if ((k > 0) && (dom[i][j][k - 1] != 0) && (k < z - 1)) {
288  rhofront[n] = 0.0;
289  vxfront[n] = 0.0;
290  vyfront[n] = 0.0;
291  vzfront[n] = 0.0;
292  }
293  //at k == 0 no obstacle is check-1ed before entering viscosity part
294  if (k == 0) {
295  if (bound.front == 0) rhofront[n] = rho_visc[i][j][k];
296  if (bound.front == 1) rhofront[n] = rho_visc[i][j][k];
297  if (bound.front == 2) rhofront[n] = small;
298  if (bound.front == 3) rhofront[n] = rho_visc[i][j][k];
299  if (bound.front == 4) rhofront[n] = inflow_density;
300  if (bound.front == 5) rhofront[n] = rho_visc[i][j][z - 1];
301 
302  if (bound.front == 0) vxfront[n] = vy_visc[i][j][k];
303  if (bound.front == 1) vxfront[n] = -vy_visc[i][j][k];
304  if (bound.front == 2) vxfront[n] = small;
305  if (bound.front == 3) vxfront[n] = vy_visc[i][j][k];
306  if (bound.front == 4) vxfront[n] = 0.0;
307  if (bound.front == 5) vxfront[n] = vy_visc[i][j][z - 1];
308 
309  if (bound.front == 0) vyfront[n] = vz_visc[i][j][k];
310  if (bound.front == 1) vyfront[n] = -vz_visc[i][j][k];
311  if (bound.front == 2) vyfront[n] = small;
312  if (bound.front == 3) vyfront[n] = vz_visc[i][j][k];
313  if (bound.front == 4) vyfront[n] = 0.0;
314  if (bound.front == 5) vyfront[n] = vz_visc[i][j][z - 1];
315 
316  if (bound.front == 0) vzfront[n] = vx_visc[i][j][k];
317  if (bound.front == 1) vzfront[n] = -vx_visc[i][j][k];
318  if (bound.front == 2) vzfront[n] = small;
319  if (bound.front == 3) {
320  if (vz_visc[i][j][k] > 0.0) vzfront[n] = small;
321  if (vz_visc[i][j][k] <= 0.0) vzfront[n] = vx_visc[i][j][k];
322  }
323  if (bound.front == 4) vzfront[n] = inflow_velocity;
324  if (bound.front == 5) vzfront[n] = vx_visc[i][j][z - 1];
325 
326  rhoback[n] = rho_visc[i][j][k + 1];
327  vxback[n] = vx_visc[i][j][k + 1];
328  vyback[n] = vy_visc[i][j][k + 1];
329  vzback[n] = vz_visc[i][j][k + 1];
330  }
331  //====================================================
332 
333  //====================================================
334  //now the k < z-1 case no obstacle
335  if ((k < z - 1) && (dom[i][j][k + 1] == 0) && (k > 0)) {
336  rhoback[n] = rho_visc[i][j][k + 1];
337  vxback[n] = vy_visc[i][j][k + 1];
338  vyback[n] = vz_visc[i][j][k + 1];
339  vzback[n] = vx_visc[i][j][k + 1];
340  }
341  if ((k < z - 1) && (dom[i][j][k + 1] != 0) && (k > 0)) {
342  rhoback[n] = 0.0;
343  vxback[n] = 0.0;
344  vyback[n] = 0.0;
345  vzback[n] = 0.0;
346  }
347  //at k == z - 1 no obstacle is check-1ed before entering viscosity part
348  if (k == z - 1) {
349  if (bound.back == 0) rhoback[n] = rho_visc[i][j][k];
350  if (bound.back == 1) rhoback[n] = rho_visc[i][j][k];
351  if (bound.back == 2) rhoback[n] = small;
352  if (bound.back == 3) rhoback[n] = rho_visc[i][j][k];
353  if (bound.back == 4) rhoback[n] = inflow_density;
354  if (bound.back == 5) rhoback[n] = rho_visc[i][j][0];
355 
356  if (bound.back == 0) vxback[n] = vy_visc[i][j][k];
357  if (bound.back == 1) vxback[n] = -vy_visc[i][j][k];
358  if (bound.back == 2) vxback[n] = small;
359  if (bound.back == 3) vxback[n] = vy_visc[i][j][k];
360  if (bound.back == 4) vxback[n] = 0.0;
361  if (bound.back == 5) vxback[n] = vy_visc[i][j][0];
362 
363  if (bound.back == 0) vyback[n] = vz_visc[i][j][k];
364  if (bound.back == 1) vyback[n] = -vz_visc[i][j][k];
365  if (bound.back == 2) vyback[n] = small;
366  if (bound.back == 3) vyback[n] = vz_visc[i][j][k];
367  if (bound.back == 4) vyback[n] = 0.0;
368  if (bound.back == 5) vyback[n] = vz_visc[i][j][0];
369 
370  if (bound.back == 0) vzback[n] = vx_visc[i][j][k];
371  if (bound.back == 1) vzback[n] = -vx_visc[i][j][k];
372  if (bound.back == 2) vzback[n] = small;
373  if (bound.back == 3) {
374  if (vz_visc[i][j][k] < 0.0) vzback[n] = small;
375  if (vz_visc[i][j][k] >= 0.0) vzback[n] = vx_visc[i][j][k];
376  }
377  if (bound.back == 4) vzback[n] = inflow_velocity;
378  if (bound.back == 5) vzback[n] = vx_visc[i][j][0];
379 
380  rhofront[n] = rho_visc[i][j][k - 1];
381  vxfront[n] = vx_visc[i][j][k - 1];
382  vyfront[n] = vy_visc[i][j][k - 1];
383  vzfront[n] = vz_visc[i][j][k - 1];
384  }
385  //====================================================
386  }
387  }
388 
389  } else if (dom[i][j][k] == 1) {
390  state = DOM_SOLID;
391 
392  rho_1D[n] = obstacle_density;
393  pre_1D[n] = obstacle_temperature;
394  vx_1D[n] = 0.0;
395  vy_1D[n] = 0.0;
396  vz_1D[n] = 0.0;
397 
398  if (advection == 1) marker_1D[n] = 0.0;
399 
400  if (with_obstacles == 1) pressure_solid_1D[n] = 0.0;
401 
402  pre_1D[n] = 0.0;
403  eng_1D[n] = 0.0;
404 
405  }
406 
407  if (j < y - 1) {
408  state_next = (dom[i][j + 1][k] == 0) ? DOM_FLUID : DOM_SOLID;
409  } else {
410  state_next = (state == DOM_FLUID) ? DOM_SOLID : DOM_FLUID;
411  }
412 
413  if (state != state_next) {
414  if (state == DOM_FLUID) {
415  //*checks if we are at the most left or most right part of the domain
416  int bound_checker;
417  int jj;
418  int nminy2 = 6;
419  int nmaxy2 = (nmax - nmin) + 6;
420 
421  //if the most left boundary is reached bound_checker is 0
422  //if the most right boundary is reached bound_checker is 0
423  if ((nmin == 0) || (nmax == (y - 1))) {
424  bound_checker = 0;
425  }
426 
427  //Now we consider an obstacle in the row
428  if ((nmax - nmin) != (y - 1)) {
429  bound_checker = 1;
430  //is the left boundary at the edge of the computational domain
431  //lefter = 1
432  if (nmin == 0) lefter = 1;
433  //is the right boundary at the edge of the computational domain
434  //lefter =2;
435  if (nmax == (y - 1)) lefter = 2;
436  //if there is an obstacle left and right than
437  //lefter = 3
438  if ((nmin != 0) && (nmax != (y - 1))) lefter = 3;
439  }
440 
441  ppm_step(i, j, k, direction, flag, nminy2, nmaxy2, a_coef, ai_coef, b_coef, bi_coef, c_coef, ci_coef,
442  d_x, diffa, da, ar, pl, p6, rl, r6, u6, ul, vl, v6, wl, w6, el,
443  e6, ql, q6, dp, du, dr, dv, dw, dq, de, scratch1, scratch2, scratch3,
444  plft, prgh, ulft, urgh, rlft, rrgh, Cdtdx, fCdtdx, steep, flat,
445  para, clft, crgh, plfti, prghi, pmid, pmold, wlft, wrgh, zlft,
446  zrgh, umidl, umidr, umid, dm, dtbdm, upmid, xa1, xa2, xa3,
447  vx_1D_old, dvol, dvol0, dvol1, delta, fluxr, fluxu, fluxv,
448  fluxw, fluxe, fluxq, dm0, e_int_1D, rho_1D, pre_1D, eng_1D,
449  vx_1D, vy_1D, vz_1D, marker_1D, pressure_solid_1D, dx0, xa0,
450  xa, dx, bound_checker, lefter, rhodown, rhoup, rhofront,
451  rhoback, vxdown, vxup, vxfront, vxback, vydown, vyup, vyfront,
452  vyback, vzdown, vzup, vzfront, vzback, viscosity_on_off, dimension);
453 
454  //put the solution back into the 3D arrays
455  for (jj = nmin; jj <= nmax; jj++) {
456  n = jj + 6 - nmin;
457 
458  rho[i][jj][k] = rho_1D[n];
459  pre[i][jj][k] = pre_1D[n];
460  vy[i][jj][k] = vx_1D[n];
461  vz[i][jj][k] = vy_1D[n];
462  vx[i][jj][k] = vz_1D[n];
463 
464  if (advection == 1) marker[i][jj][k] = marker_1D[n];
465 
466  //for the pressure on the obstacle calculation
467  if (with_obstacles == 1) pressure_on_solid[i][jj][k] = pressure_solid_1D[n];
468  }
469 
470  } else if (state == DOM_SOLID) {
471  nmin = nmax + 1;
472  }
473  }
474  nmax++;
475  }
476  }
477  }
478  //free section
479  ppm_free(&rho_1D, &pre_1D, &eng_1D, &vx_1D, &vy_1D, &vz_1D, &marker_1D,
480  &pressure_solid_1D, &dx0, &xa0, &xa, &dx, &a_coef, &ai_coef,
481  &b_coef, &bi_coef, &c_coef, &ci_coef, &d_x, &da, &ar,
482  &dp, &dr, &du, &pl, &p6, &rl, &r6, &ul, &u6, &vl, &v6, &wl, &w6, &el, &e6, &ql,
483  &q6, &deltaa, &dv, &dw, &dq, &de, &scratch1, &scratch2, &scratch3, &diffa,
484  &plft, &prgh, &ulft, &urgh, &rlft, &rrgh, &Cdtdx, &fCdtdx, &clft, &crgh,
485  &plfti, &prghi, &pmid, &pmold, &wlft, &wrgh, &zlft, &zrgh, &umidl, &umidr,
486  &umid, &dm, &dtbdm, &upmid, &xa1, &xa2, &xa3, &vx_1D_old, &e_int_1D, &dvol,
487  &dvol0, &dvol1, &delta, &fluxr, &fluxu, &fluxv, &fluxw, &fluxe, &fluxq,
488  &dm0, &steep, &flat, &para, &rhodown, &rhoup, &rhofront,
489  &rhoback, &vxdown, &vxup, &vxfront, &vxback, &vydown, &vyup, &vyfront,
490  &vyback, &vzdown, &vzup, &vzfront, &vzback, dimension);
491 
492 #ifdef _OPENMP
493  }
494 #endif
495 
496  return 0;
497 }