TYCHO  1.3.0
 All Data Structures Files Functions Variables Enumerations Enumerator
/home/kapf/tycho_docu/sweep_x.c
Go to the documentation of this file.
1 /*
2  * sweep_x.c
3  *
4  * Author: Wolfgang Kapferer
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_x(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 }
31 
36 int sweep_x(int x, int y, int z, int flag) {
37  int i, j, k, n, nmin, nmax;
38  int direction = 0;
39  //1D variables
40  double *rho_1D, *pre_1D, *eng_1D, *vx_1D, *vy_1D, *vz_1D, *marker_1D;
41  //1D variables for viscosity
42  double *rhodown, *rhoup, *rhofront, *rhoback;
43  double *vxdown, *vxup, *vxfront, *vxback;
44  double *vydown, *vyup, *vyfront, *vyback;
45  double *vzdown, *vzup, *vzfront, *vzback;
46  //for pressure calculations on the solid
47  double *pressure_solid_1D;
48  double *xa, *dx;
49  double *dx0, *xa0;
50  double *a_coef, *ai_coef, *b_coef, *bi_coef, *c_coef, *ci_coef;
51  double *d_x;
52  double *diffa;
53  //parabola
54  double *da, *ar;
55  double *pl, *p6, *rl, *r6;
56  double *u6, *ul, *vl, *v6;
57  double *wl, *w6, *el, *e6;
58  double *ql, *q6, *dp, *du;
59  double *dv, *dw, *dq, *de;
60  double *scratch1, *scratch2, *scratch3;
61  double *dr, *deltaa;
62  //for states
63  double *plft, *prgh, *ulft, *urgh, *rlft, *rrgh, *Cdtdx, *fCdtdx;
64  // for flattening
65  double *steep, *flat;
66  double **para;
67  //riemann solver
68  double *clft, *crgh, *plfti, *prghi, *pmid, *pmold, *wlft, *wrgh, *zlft, *zrgh;
69  double *umidl, *umidr, *umid;
70  //evolve
71  double *dm, *dtbdm, *upmid, *xa1, *xa2, *xa3;
72  double *vx_1D_old;
73  double *dvol, *dvol0, *dvol1;
74  //remap
75  double *delta;
76  double *fluxr, *fluxu, *fluxv, *fluxw, *fluxe, *fluxq;
77  double *dm0;
78  double *e_int_1D;
79 
80  dom_state state, state_next;
81 
82 #ifdef _OPENMP
83 #pragma omp parallel default(none) \
84  private(j, i, k, n, nmin, nmax, state, state_next, rho_1D, pre_1D, \
85  eng_1D, vx_1D, vy_1D, vz_1D, marker_1D, dx0, xa0, xa, dx, \
86  pressure_solid_1D, a_coef, ai_coef, b_coef, bi_coef, c_coef, ci_coef, \
87  d_x, diffa, da, ar, pl, p6, rl, r6, \
88  u6, ul, vl, v6, wl, w6, \
89  el, e6, ql, q6, dp, du, dr, deltaa, \
90  dv, dw, dq, de, scratch1, scratch2, scratch3, \
91  plft, prgh, ulft, urgh, rlft, rrgh, Cdtdx, fCdtdx, \
92  steep, flat, para, clft, crgh, plfti, prghi, pmid, \
93  pmold, wlft, wrgh, zlft, zrgh, umidl, umidr, umid, \
94  dm, dtbdm, upmid, xa1, xa2, xa3, vx_1D_old, \
95  dvol, dvol0, dvol1, delta, fluxr, fluxu, fluxv, \
96  fluxw, fluxe, fluxq, dm0, e_int_1D, rhodown, rhoup, \
97  rhofront, rhoback, vxdown, vxup, vxfront, vxback, \
98  vydown, vyup, vyfront, vyback, vzdown, vzup, vzfront, \
99  vzback) \
100  shared(x, y, z, dom, rho, pre, vx, vy, vz, marker, zxa, zdx, \
101  pressure_on_solid, smallr, small, smallp, Gamma, max_array_length, flag, \
102  direction, obstacle_density, obstacle_temperature, advection, with_obstacles, \
103  viscosity_on_off, bound, inflow_density, inflow_velocity, dimension, \
104  rho_visc, vx_visc, vy_visc, vz_visc)
105  {
106 #endif
107 
108  //==============================================================================
109  //allocate arrays for the 1D sweeps
110  init_ppm(&rho_1D, &pre_1D, &eng_1D, &vx_1D, &vy_1D, &vz_1D, &marker_1D, &dx0, &xa0, &xa, &dx,
111  &a_coef, &ai_coef, &b_coef, &bi_coef, &c_coef, &ci_coef, &d_x, &da, &ar,
112  &dp, &dr, &du, &pl, &p6, &rl, &r6, &ul, &u6, &vl, &v6, &wl, &w6, &el, &e6, &ql,
113  &q6, &deltaa, &dv, &dw, &dq, &de, &scratch1, &scratch2, &scratch3, &diffa,
114  &plft, &prgh, &ulft, &urgh, &rlft, &rrgh, &Cdtdx, &fCdtdx, &clft, &crgh,
115  &plfti, &prghi, &pmid, &pmold, &wlft, &wrgh, &zlft, &zrgh, &umidl, &umidr,
116  &umid, &dm, &dtbdm, &upmid, &xa1, &xa2, &xa3, &vx_1D_old, &e_int_1D, &dvol,
117  &dvol0, &dvol1, &delta, &fluxr, &fluxu, &fluxv, &fluxw, &fluxe, &fluxq,
118  &dm0, &steep, &flat, &para, &pressure_solid_1D, &rhodown, &rhoup, &rhofront,
119  &rhoback, &vxdown, &vxup, &vxfront, &vxback, &vydown, &vyup, &vyfront,
120  &vyback, &vzdown, &vzup, &vzfront, &vzback, dimension);
121  //==============================================================================
122 
123  for (k = 0; k < z; k++) {
124 
125 #ifdef _OPENMP
126 #pragma omp for schedule(static)
127 #endif
128  for (j = 0; j < y; j++) {
129 
130  int lefter;
131 
132  nmin = 0;
133  nmax = 0;
134  lefter = 0;
135 
136  for (i = 0; i < x; i++) {
137 
138  n = i + 6 - nmin;
139 
140  xa0[n] = zxa[i];
141  dx0[n] = zdx[i];
142  xa[n] = zxa[i];
143  dx[n] = zdx[i];
144 
145  // Copy parts of a line from 3D domain into 1D domain
146  if (dom[i][j][k] == 0) {
147  state = DOM_FLUID;
148 
149  rho_1D[n] = rho[i][j][k];
150  pre_1D[n] = pre[i][j][k];
151  vx_1D[n] = vx[i][j][k];
152  vy_1D[n] = vy[i][j][k];
153  vz_1D[n] = vz[i][j][k];
154 
155  if (advection == 1) marker_1D[n] = marker[i][j][k];
156 
157  if (with_obstacles == 1) pressure_solid_1D[n] = pressure_on_solid[i][j][k];
158 
159  pre_1D[n] = max_sweep_x(smallp, pre_1D[n]);
160  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)));
161 
162  // if viscosity is set on
163  if (viscosity_on_off == 1) {
164  if (dimension > 1) {
165  //====================================================
166  //first the j-1 case no obstacle
167  if ((j > 0) && (dom[i][j - 1][k] == 0) && (j < y - 1)) {
168  rhodown[n] = rho_visc[i][j - 1][k];
169  vxdown[n] = vx_visc[i][j - 1][k];
170  vydown[n] = vy_visc[i][j - 1][k];
171  vzdown[n] = vz_visc[i][j - 1][k];
172  }
173  if ((j > 0) && (dom[i][j - 1][k] != 0) && (j < y - 1)) {
174  rhodown[n] = 0.0;
175  vxdown[n] = 0.0;
176  vydown[n] = 0.0;
177  vzdown[n] = 0.0;
178  }
179  //at j==0 no obstacle is checked before entering viscosity part
180  if (j == 0) {
181  if (bound.down == 0) rhodown[n] = rho_visc[i][j][k];
182  if (bound.down == 1) rhodown[n] = rho_visc[i][j][k];
183  if (bound.down == 2) rhodown[n] = small;
184  if (bound.down == 3) rhodown[n] = rho_visc[i][j][k];
185  if (bound.down == 4) rhodown[n] = inflow_density;
186  if (bound.down == 5) rhodown[n] = rho_visc[i][y - 1][k];
187 
188  if (bound.down == 0) vxdown[n] = vx_visc[i][j][k];
189  if (bound.down == 1) vxdown[n] = -vx_visc[i][j][k];
190  if (bound.down == 2) vxdown[n] = small;
191  if (bound.down == 3) vxdown[n] = vx_visc[i][j][k];
192  if (bound.down == 4) vxdown[n] = 0.0;
193  if (bound.down == 5) vxdown[n] = vx_visc[i][y - 1][k];
194 
195  if (bound.down == 0) vydown[n] = vy_visc[i][j][k];
196  if (bound.down == 1) vydown[n] = -vy_visc[i][j][k];
197  if (bound.down == 2) vydown[n] = small;
198  if (bound.down == 3) {
199  if (vy_visc[i][j][k] > 0.0) vydown[n] = small;
200  if (vy_visc[i][j][k] <= 0.0) vydown[n] = vy_visc[i][j][k];
201  }
202 
203  if (bound.down == 4) vydown[n] = inflow_velocity;
204  if (bound.down == 5) vydown[n] = vy_visc[i][y - 1][k];
205 
206  if (bound.down == 0) vzdown[n] = vz_visc[i][j][k];
207  if (bound.down == 1) vzdown[n] = -vz_visc[i][j][k];
208  if (bound.down == 2) vzdown[n] = small;
209  if (bound.down == 3) vzdown[n] = vz_visc[i][j][k];
210  if (bound.down == 4) vzdown[n] = 0.0;
211  if (bound.down == 5) vzdown[n] = vz_visc[i][y - 1][k];
212 
213  rhoup[n] = rho_visc[i][j + 1][k];
214  vxup[n] = vx_visc[i][j + 1][k];
215  vyup[n] = vy_visc[i][j + 1][k];
216  vzup[n] = vz_visc[i][j + 1][k];
217 
218  }
219  //====================================================
220 
221  //====================================================
222  //now the case j = y - 1 no obstacle
223 
224  if ((j < y - 1) && (dom[i][j + 1][k] == 0) && (j > 0)) {
225  rhoup[n] = rho_visc[i][j + 1][k];
226  vxup[n] = vx_visc[i][j + 1][k];
227  vyup[n] = vy_visc[i][j + 1][k];
228  vzup[n] = vz_visc[i][j + 1][k];
229  }
230  if ((j < y - 1) && (dom[i][j + 1][k] != 0) && (j > 0)) {
231  rhoup[n] = 0.0;
232  vxup[n] = 0.0;
233  vyup[n] = 0.0;
234  vzup[n] = 0.0;
235  }
236  //at j==0 no obstacle is checked before entering viscosity part
237  if (j == y - 1) {
238  if (bound.up == 0) rhoup[n] = rho_visc[i][j][k];
239  if (bound.up == 1) rhoup[n] = rho_visc[i][j][k];
240  if (bound.up == 2) rhoup[n] = small;
241  if (bound.up == 3) rhoup[n] = rho_visc[i][j][k];
242  if (bound.up == 4) rhoup[n] = inflow_density;
243  if (bound.up == 5) rhoup[n] = rho_visc[i][0][k];
244 
245  if (bound.up == 0) vxup[n] = vx_visc[i][j][k];
246  if (bound.up == 1) vxup[n] = -vx_visc[i][j][k];
247  if (bound.up == 2) vxup[n] = small;
248  if (bound.up == 3) vxup[n] = vx_visc[i][j][k];
249  if (bound.up == 4) vxup[n] = 0.0;
250  if (bound.up == 5) vxup[n] = vx_visc[i][0][k];
251 
252  if (bound.up == 0) vyup[n] = vy_visc[i][j][k];
253  if (bound.up == 1) vyup[n] = -vy_visc[i][j][k];
254  if (bound.up == 2) vyup[n] = small;
255  if (bound.up == 3) {
256  if (vy_visc[i][j][k] < 0.0) vyup[n] = small;
257  if (vy_visc[i][j][k] >= 0.0) vyup[n] = vy_visc[i][j][k];
258  }
259 
260  if (bound.up == 4) vyup[n] = inflow_velocity;
261  if (bound.up == 5) vyup[n] = vy_visc[i][0][k];
262 
263  if (bound.up == 0) vzup[n] = vz_visc[i][j][k];
264  if (bound.up == 1) vzup[n] = -vz_visc[i][j][k];
265  if (bound.up == 2) vzup[n] = small;
266  if (bound.up == 3) vzup[n] = vz_visc[i][j][k];
267  if (bound.up == 4) vzup[n] = 0.0;
268  if (bound.up == 5) vzup[n] = vz_visc[i][0][k];
269 
270  rhodown[n] = rho_visc[i][j - 1][k];
271  vxdown[n] = vx_visc[i][j - 1][k];
272  vydown[n] = vy_visc[i][j - 1][k];
273  vzdown[n] = vz_visc[i][j - 1][k];
274 
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] = vx_visc[i][j][k - 1];
284  vyfront[n] = vy_visc[i][j][k - 1];
285  vzfront[n] = vz_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] = vx_visc[i][j][k];
303  if (bound.front == 1) vxfront[n] = -vx_visc[i][j][k];
304  if (bound.front == 2) vxfront[n] = small;
305  if (bound.front == 3) vxfront[n] = vx_visc[i][j][k];
306  if (bound.front == 4) vxfront[n] = 0.0;
307  if (bound.front == 5) vxfront[n] = vx_visc[i][j][z - 1];
308 
309  if (bound.front == 0) vyfront[n] = vy_visc[i][j][k];
310  if (bound.front == 1) vyfront[n] = -vy_visc[i][j][k];
311  if (bound.front == 2) vyfront[n] = small;
312  if (bound.front == 3) vyfront[n] = vy_visc[i][j][k];
313  if (bound.front == 4) vyfront[n] = 0.0;
314  if (bound.front == 5) vyfront[n] = vy_visc[i][y][z - 1];
315 
316  if (bound.front == 0) vzfront[n] = vz_visc[i][j][k];
317  if (bound.front == 1) vzfront[n] = -vz_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] = vz_visc[i][j][k];
322  }
323  if (bound.front == 4) vzfront[n] = inflow_velocity;
324  if (bound.front == 5) vzfront[n] = vz_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] = vx_visc[i][j][k + 1];
338  vyback[n] = vy_visc[i][j][k + 1];
339  vzback[n] = vz_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] = vx_visc[i][j][k];
357  if (bound.back == 1) vxback[n] = -vx_visc[i][j][k];
358  if (bound.back == 2) vxback[n] = small;
359  if (bound.back == 3) vxback[n] = vx_visc[i][j][k];
360  if (bound.back == 4) vxback[n] = 0.0;
361  if (bound.back == 5) vxback[n] = vx_visc[i][j][0];
362 
363  if (bound.back == 0) vyback[n] = vy_visc[i][j][k];
364  if (bound.back == 1) vyback[n] = -vy_visc[i][j][k];
365  if (bound.back == 2) vyback[n] = small;
366  if (bound.back == 3) vyback[n] = vy_visc[i][j][k];
367  if (bound.back == 4) vyback[n] = 0.0;
368  if (bound.back == 5) vyback[n] = vy_visc[i][j][0];
369 
370  if (bound.back == 0) vzback[n] = vz_visc[i][j][k];
371  if (bound.back == 1) vzback[n] = -vz_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] = vz_visc[i][j][k];
376  }
377  if (bound.back == 4) vzback[n] = inflow_velocity;
378  if (bound.back == 5) vzback[n] = vz_visc[i][j][01];
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 (i < x - 1) {
408  state_next = (dom[i + 1][j][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 ii;
418  int nminx2 = 6;
419  int nmaxx2 = (nmax - nmin) + 6;
420  //if the most left boundary is reached bound_checker is 0
421  //if the most right boundary is reached bound_checker is 0
422  if ((nmin == 0) || (nmax == (x - 1))) {
423  bound_checker = 0;
424  }
425 
426  //Now we consider an obstacle in the row
427  if ((nmax - nmin) != (x - 1)) {
428  bound_checker = 1;
429  //is the left boundary at the edge of the computational domain
430  //lefter = 1
431  if (nmin == 0) lefter = 1;
432  //is the right boundary at the edge of the computational domain
433  //lefter = 2
434  if (nmax == (x - 1)) lefter = 2;
435  //if there is an obstacle left and right than
436  //lefter = 3
437  if ((nmin != 0) && (nmax != (x - 1))) lefter = 3;
438  }
439 
440  ppm_step(i, j, k, direction, flag, nminx2, nmaxx2, a_coef, ai_coef, b_coef, bi_coef, c_coef, ci_coef,
441  d_x, diffa, da, ar, pl, p6, rl, r6, u6, ul, vl, v6, wl, w6, el,
442  e6, ql, q6, dp, du, dr, dv, dw, dq, de, scratch1, scratch2, scratch3,
443  plft, prgh, ulft, urgh, rlft, rrgh, Cdtdx, fCdtdx, steep, flat,
444  para, clft, crgh, plfti, prghi, pmid, pmold, wlft, wrgh, zlft,
445  zrgh, umidl, umidr, umid, dm, dtbdm, upmid, xa1, xa2, xa3,
446  vx_1D_old, dvol, dvol0, dvol1, delta, fluxr, fluxu, fluxv,
447  fluxw, fluxe, fluxq, dm0, e_int_1D, rho_1D, pre_1D, eng_1D,
448  vx_1D, vy_1D, vz_1D, marker_1D, pressure_solid_1D,
449  dx0, xa0, xa, dx, bound_checker, lefter, rhodown, rhoup, rhofront,
450  rhoback, vxdown, vxup, vxfront, vxback, vydown, vyup, vyfront,
451  vyback, vzdown, vzup, vzfront, vzback, viscosity_on_off, dimension);
452 
453  //put the solution back into the 3D arrays
454  for (ii = nmin; ii <= nmax; ii++) {
455  n = ii + 6 - nmin;
456 
457  rho[ii][j][k] = rho_1D[n];
458  pre[ii][j][k] = pre_1D[n];
459  vx[ii][j][k] = vx_1D[n];
460  vy[ii][j][k] = vy_1D[n];
461  vz[ii][j][k] = vz_1D[n];
462 
463  if (advection == 1) marker[ii][j][k] = marker_1D[n];
464 
465  //for the pressure on the obstacle calculation
466  if (with_obstacles == 1) pressure_on_solid[ii][j][k] = pressure_solid_1D[n];
467 
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 }