MFIX  2016-1
partial_elim_ghd.f
Go to the documentation of this file.
1 !
2 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC
3 ! C
4 ! Module name: PARTIAL_ELIM_GHD_U(Var_g, Var_s, VxF, A_m, B_m, IER) C
5 ! Purpose: Do partial elimination for X vector quantities
6 ! Modified for GHD, just one gas and one solids phase (MMAX)
7 ! C
8 ! C
9 ! Author: M. Syamlal Date: 21-MAY-96 C
10 ! Reviewer: Date: C
11 ! C
12 ! C
13 ! Literature/Document References: C
14 ! C
15 ! Variables referenced: C
16 ! Variables modified: C
17 ! C
18 ! Local variables: C
19 ! C
20 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C
21 !
22  SUBROUTINE partial_elim_ghd_u(VAR_G, VAR_S, VXF, A_M, B_M)
23 !...Translated by Pacific-Sierra Research VAST-90 2.06G5 12:17:31 12/09/98
24 !...Switches: -xf
25 !
26 !-----------------------------------------------
27 ! M o d u l e s
28 !-----------------------------------------------
29  USE param
30  USE param1
31  USE parallel
32  USE geometry
33  USE physprop
34  USE indices
35  USE run
36  USE compar
37  USE drag
38  USE fldvar
39  USE fun_avg
40  USE functions
41  IMPLICIT NONE
42 !-----------------------------------------------
43 ! G l o b a l P a r a m e t e r s
44 !-----------------------------------------------
45 !-----------------------------------------------
46 ! D u m m y A r g u m e n t s
47 !-----------------------------------------------
48 !
49 ! Indices
50  INTEGER IJK, IMJK, IJMK, IJKM, IPJK, IJPK, IJKP,LM,I,IJKE
51 !
52 ! gas phase variable
53  DOUBLE PRECISION Var_g(dimension_3)
54 !
55 ! solids phase variable
56  DOUBLE PRECISION Var_s(dimension_3, dimension_m)
57 !
58 ! Volume x gas-solids transfer coefficient
59  DOUBLE PRECISION VxF(dimension_3, dimension_m)
60 !
61 ! Septadiagonal matrix A_m
62  DOUBLE PRECISION A_m(dimension_3, -3:3, 0:dimension_m)
63 !
64 ! Vector b_m
65  DOUBLE PRECISION B_m(dimension_3, 0:dimension_m)
66 !
67 ! ! ******GERA MODIFICATIONS************
68  DOUBLE PRECISION SUM_A, SUM_B, SUM_A_LPRIME,SUM_B_LPRIME, DEN
69  INTEGER L, M,LP
70 !
71 ! a0, b0 etc.
72  DOUBLE PRECISION a(0:dimension_m), BB(0:dimension_m), F(0:dimension_m,0:dimension_m),&
73  Saxf(0:dimension_m)
74 !-----------------------------------------------
75 
76 !!!$omp parallel do private( IMJK, IJMK, IJKM, IPJK, IJPK, IJKP, &
77 !!!$omp& a, bb,F, Saxf,SUM_A, SUM_B, SUM_A_LPRIME,SUM_B_LPRIME,L, M,LP, den) &
78 !!!$omp& schedule(static)
79  DO ijk = ijkstart3, ijkend3
80  IF (flow_at_e(ijk)) THEN
81  imjk = im_of(ijk)
82  ijmk = jm_of(ijk)
83  ipjk = ip_of(ijk)
84  ijpk = jp_of(ijk)
85  f = zero
86  DO m=0, mmax
87  IF ((m==0 .OR. m==mmax) .AND. momentum_x_eq(m)) THEN
88  a(m) = a_m(ijk,0,m)
89  bb(m)= b_m(ijk,m)
90 
91  if (m .ne. 0) then
92  IF (momentum_x_eq(0)) f(m,0)=-vxf(ijk,m)
93  f(0,m) = f(m,0)
94  end if
95  DO l =1, mmax
96  IF(l==0 .OR. l==mmax) THEN
97  IF ((l .NE. m) .AND. (m .NE. 0) .AND. momentum_x_eq(l)) THEN
98  lm = funlm(l,m)
99  IF (.NOT.ip_at_e(ijk)) THEN
100  i = i_of(ijk)
101  ijke = east_of(ijk)
102 
103  f(m,l) = -avg_x(f_ss(ijk,lm),f_ss(ijke,lm),i)*vol_u(ijk)
104  ENDIF
105  END IF
106  f(l,m)=f(m,l)
107  ENDIF
108  END DO
109 
110  IF (m == 0 ) THEN
111  saxf(m) = -(a_m(ijk,east,m)*var_g(ipjk)+a_m(ijk,west,m)*var_g(imjk&
112  )+a_m(ijk,north,m)*var_g(ijpk)+a_m(ijk,south,m)*var_g(ijmk))
113  ELSE
114  saxf(m) = -(a_m(ijk,east,m)*var_s(ipjk,m)+a_m(ijk,west,m)*var_s(&
115  imjk,m)+a_m(ijk,north,m)*var_s(ijpk,m)+a_m(ijk,south,m)*var_s(&
116  ijmk,m))
117  ENDIF
118 
119  IF (do_k) THEN
120  ijkm = km_of(ijk)
121  ijkp = kp_of(ijk)
122  IF (m ==0) THEN
123  saxf(m) = saxf(m) - (a_m(ijk,top,m)*var_g(ijkp)+a_m(ijk,bottom,m)*&
124  var_g(ijkm))
125  ELSE
126  saxf(m) = saxf(m) - (a_m(ijk,top,m)*var_s(ijkp,m)+a_m(ijk,bottom,m)*&
127  var_s(ijkm,m))
128  ENDIF
129  ENDIF
130  ENDIF
131 
132  END DO
133 
134  Do m=0,mmax
135 
136  IF ((m==0 .OR. m==mmax) .AND. momentum_x_eq(m)) THEN
137  sum_a = zero
138  sum_b = zero
139  do l =0,mmax
140  IF(l==0 .OR. l==mmax) THEN
141  sum_a_lprime = zero
142  sum_b_lprime = zero
143  DO lp=0,mmax
144  IF(lp==0 .OR. lp==mmax) THEN
145  IF ( lp .NE. m) THEN
146  sum_a_lprime=sum_a_lprime+f(l,lp)
147  IF (lp == 0) THEN
148  sum_b_lprime=sum_b_lprime+f(l,lp)*var_g(ijk)
149  ELSE
150  sum_b_lprime=sum_b_lprime+f(l,lp)*var_s(ijk,lp)
151  END IF
152  END IF
153  ENDIF
154  END DO
155  den = a(l) + sum_a_lprime + f(l,m)
156  IF ( den .NE. zero) THEN
157  sum_a = sum_a + ((f(l,m)*(a(l)+sum_a_lprime))/den)
158  sum_b = sum_b + f(l,m)*(saxf(l) + bb(l)+sum_b_lprime &
159  )/den
160  ENDIF
161  ENDIF
162  END DO
163  a_m(ijk,0,m) = sum_a+a(m)
164  b_m(ijk,m) = sum_b+bb(m)
165 
166  DO l = 0, mmax
167  IF(l==0 .OR. l==mmax) THEN
168  IF(.NOT.momentum_x_eq(l))THEN
169  IF( l /= m) THEN
170  IF(l == 0)THEN
171  a_m(ijk,0,m) = a_m(ijk,0,m) - vxf(ijk,m)
172  b_m(ijk,m) = b_m(ijk,m) - vxf(ijk,m) * var_g(ijk)
173  ELSE IF(m .NE. 0) THEN
174  lm = funlm(l,m)
175  IF (.NOT.ip_at_e(ijk)) THEN
176  i = i_of(ijk)
177  ijke = east_of(ijk)
178 
179  f(m,l) = -avg_x(f_ss(ijk,lm),f_ss(ijke,lm),i)*vol_u(ijk)
180  a_m(ijk,0,m) = a_m(ijk,0,m) + f(m,l)
181  b_m(ijk,m) = b_m(ijk,m) + f(m,l) * var_s(ijk, l)
182  ENDIF
183  ENDIF
184  ENDIF
185  ENDIF
186  ENDIF
187  ENDDO
188 
189  ENDIF
190  END DO
191  ENDIF
192  END DO
193 
194  RETURN
195  END SUBROUTINE partial_elim_ghd_u
196 !
197 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC
198 ! C
199 ! Module name: PARTIAL_ELIM_GHD_V(Var_g, Var_s, VxF, A_m, B_m, IER) C
200 ! Purpose: Do partial elimination for Y vector quantities
201 ! C
202 ! C
203 ! Author: M. Syamlal Date: 21-MAY-96 C
204 ! Reviewer: Date: C
205 ! C
206 ! C
207 ! Literature/Document References: C
208 ! C
209 ! Variables referenced: C
210 ! Variables modified: C
211 ! C
212 ! Local variables: C
213 ! C
214 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C
215 !
216  SUBROUTINE partial_elim_ghd_v(VAR_G, VAR_S, VXF, A_M, B_M)
217 !...Translated by Pacific-Sierra Research VAST-90 2.06G5 12:17:31 12/09/98
218 !...Switches: -xf
219 !
220 !-----------------------------------------------
221 ! M o d u l e s
222 !-----------------------------------------------
223  USE param
224  USE param1
225  USE parallel
226  USE geometry
227  USE physprop
228  USE indices
229  USE run
230  USE compar
231  USE drag
232  USE fldvar
233  USE fun_avg
234  USE functions
235  IMPLICIT NONE
236 !-----------------------------------------------
237 ! G l o b a l P a r a m e t e r s
238 !-----------------------------------------------
239 !-----------------------------------------------
240 ! D u m m y A r g u m e n t s
241 !-----------------------------------------------
242 !
243 ! Indices
244  INTEGER IJK, IMJK, IJMK, IJKM, IPJK, IJPK, IJKP, IJKN,J,LM
245 !
246 ! a0, b0 etc.
247 ! DOUBLE PRECISION a(0:DIMENSION_M), BB(0:DIMENSION_M), F(0:DIMENSION_M,0:DIMENSION_M),&
248 ! Saxf(0:DIMENSION_M)
249 !
250 ! gas phase variable
251  DOUBLE PRECISION Var_g(dimension_3)
252 !
253 ! solids phase variable
254  DOUBLE PRECISION Var_s(dimension_3, dimension_m)
255 !
256 ! Volume x gas-solids transfer coefficient
257  DOUBLE PRECISION VxF(dimension_3, dimension_m)
258 !
259 ! Septadiagonal matrix A_m
260  DOUBLE PRECISION A_m(dimension_3, -3:3, 0:dimension_m)
261 !
262 ! Vector b_m
263  DOUBLE PRECISION B_m(dimension_3, 0:dimension_m)
264 !
265 ! ******GERA MODIFICATIONS************
266  DOUBLE PRECISION SUM_A, SUM_B, SUM_A_LPRIME,SUM_B_LPRIME, DEN
267  INTEGER L, M,LP
268 !
269 ! a0, b0 etc.
270  DOUBLE PRECISION a(0:dimension_m), BB(0:dimension_m), F(0:dimension_m,0:dimension_m),&
271  Saxf(0:dimension_m)
272 !
273 !-----------------------------------------------
274 
275 !!!$omp parallel do private( IMJK, IJMK, IJKM, IPJK, IJPK, IJKP, &
276 !!!$omp& a, bb,F, Saxf,SUM_A, SUM_B, SUM_A_LPRIME,SUM_B_LPRIME,L, M,LP, DEN) &
277 !!!$omp& schedule(static)
278 
279  DO ijk = ijkstart3, ijkend3
280  IF (flow_at_n(ijk)) THEN
281  imjk = im_of(ijk)
282  ijmk = jm_of(ijk)
283  ipjk = ip_of(ijk)
284  ijpk = jp_of(ijk)
285  f = zero
286  DO m = 0, mmax
287 
288  IF ((m==0 .OR. m==mmax) .AND. momentum_y_eq(m)) THEN
289  a(m)=a_m(ijk,0,m)
290  bb(m)=b_m(ijk,m)
291 
292  if (m .ne. 0) then
293  IF (momentum_y_eq(0)) f(m,0)=-vxf(ijk,m)
294  f(0,m)=f(m,0)
295  end if
296  DO l =1, mmax
297  IF(l==0 .OR. l==mmax) THEN
298  IF ((l .NE. m) .AND. (m .NE. 0).AND. momentum_y_eq(l)) THEN
299  lm = funlm(l,m)
300  IF (.NOT.ip_at_n(ijk)) THEN
301  j = j_of(ijk)
302  ijkn = north_of(ijk)
303  f(m,l)=-avg_y(f_ss(ijk,lm),f_ss(ijkn,lm),j)*vol_v(ijk)
304  END IF
305  END IF
306  f(l,m)=f(m,l)
307  ENDIF
308  END DO
309 
310  IF (m == 0 ) THEN
311  saxf(m) = -(a_m(ijk,east,m)*var_g(ipjk)+a_m(ijk,west,m)*var_g(imjk&
312  )+a_m(ijk,north,m)*var_g(ijpk)+a_m(ijk,south,m)*var_g(ijmk))
313  ELSE
314  saxf(m) = -(a_m(ijk,east,m)*var_s(ipjk,m)+a_m(ijk,west,m)*var_s(&
315  imjk,m)+a_m(ijk,north,m)*var_s(ijpk,m)+a_m(ijk,south,m)*var_s(&
316  ijmk,m))
317  ENDIF
318 
319  IF (do_k) THEN
320  ijkm = km_of(ijk)
321  ijkp = kp_of(ijk)
322  IF (m == 0) THEN
323  saxf(m) = saxf(m) - (a_m(ijk,top,m)*var_g(ijkp)+a_m(ijk,bottom,m)*&
324  var_g(ijkm))
325  ELSE
326  saxf(m) = saxf(m) - (a_m(ijk,top,m)*var_s(ijkp,m)+a_m(ijk,bottom,m)*&
327  var_s(ijkm,m))
328  ENDIF
329  ENDIF
330  ENDIF
331  END DO
332 
333  Do m=0,mmax
334  IF ((m==0 .OR. m==mmax) .AND. momentum_y_eq(m)) THEN
335  sum_a = zero
336  sum_b = zero
337  do l =0,mmax
338  IF(l==0 .OR. l==mmax) THEN
339  sum_a_lprime = zero
340  sum_b_lprime = zero
341  DO lp=0,mmax
342  IF(lp==0 .OR. lp==mmax) THEN
343  IF ( lp .NE. m) THEN
344  sum_a_lprime=sum_a_lprime+f(l,lp)
345  IF (lp == 0) THEN
346  sum_b_lprime=sum_b_lprime+f(l,lp)*var_g(ijk)
347  ELSE
348  sum_b_lprime=sum_b_lprime+f(l,lp)*var_s(ijk,lp)
349  END IF
350  END IF
351  ENDIF
352  END DO
353  den = a(l) + sum_a_lprime + f(l,m)
354  IF ( den .NE. zero) THEN
355  sum_a = sum_a + ((f(l,m)*(a(l)+sum_a_lprime))/den)
356  sum_b = sum_b + f(l,m)*(saxf(l) + bb(l)+sum_b_lprime &
357  )/den
358  ENDIF
359  ENDIF
360  END DO
361  a_m(ijk,0,m)=sum_a+a(m)
362  b_m(ijk,m) = sum_b+bb(m)
363 
364  DO l = 0, mmax
365  IF(l==0 .OR. l==mmax) THEN
366  IF(.NOT.momentum_y_eq(l))THEN
367  IF( l /= m) THEN
368  IF(l == 0)THEN
369  a_m(ijk,0,m) = a_m(ijk,0,m) - vxf(ijk,m)
370  b_m(ijk,m) = b_m(ijk,m) - vxf(ijk,m) * var_g(ijk)
371  ELSE IF(m .NE. 0) THEN
372  lm = funlm(l,m)
373  IF (.NOT.ip_at_n(ijk)) THEN
374  j = j_of(ijk)
375  ijkn = north_of(ijk)
376  f(m,l)=-avg_y(f_ss(ijk,lm),f_ss(ijkn,lm),j)*vol_v(ijk)
377  a_m(ijk,0,m) = a_m(ijk,0,m) + f(m,l)
378  b_m(ijk,m) = b_m(ijk,m) + f(m,l) * var_s(ijk, l)
379  ENDIF
380  ENDIF
381  ENDIF
382  ENDIF
383  ENDIF
384  ENDDO
385 
386  ENDIF
387  END DO
388  ENDIF
389  END DO
390  RETURN
391  END SUBROUTINE partial_elim_ghd_v
392 !
393 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC
394 ! C
395 ! Module name: PARTIAL_ELIM_GHD_W(Var_g, Var_s, VxF, A_m, B_m, IER) C
396 ! Purpose: Do partial elimination for Z vector quantities
397 ! C
398 ! C
399 ! Author: M. Syamlal Date: 21-MAY-96 C
400 ! Reviewer: Date: C
401 ! C
402 ! C
403 ! Literature/Document References: C
404 ! C
405 ! Variables referenced: C
406 ! Variables modified: C
407 ! C
408 ! Local variables: C
409 ! C
410 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C
411 !
412  SUBROUTINE partial_elim_ghd_w(VAR_G, VAR_S, VXF, A_M, B_M)
413 !...Translated by Pacific-Sierra Research VAST-90 2.06G5 12:17:31 12/09/98
414 !...Switches: -xf
415 !
416 !-----------------------------------------------
417 ! M o d u l e s
418 !-----------------------------------------------
419  USE param
420  USE param1
421  USE parallel
422  USE geometry
423  USE physprop
424  USE indices
425  USE run
426  USE compar
427  USE drag
428  USE fldvar
429  USE fun_avg
430  USE functions
431  IMPLICIT NONE
432 !-----------------------------------------------
433 ! G l o b a l P a r a m e t e r s
434 !-----------------------------------------------
435 !-----------------------------------------------
436 ! D u m m y A r g u m e n t s
437 !-----------------------------------------------
438 !
439 ! Indices
440  INTEGER IJK, IMJK, IJMK, IJKM, IPJK, IJPK, IJKP,LM,K, IJKT
441 !
442 ! gas phase variable
443  DOUBLE PRECISION Var_g(dimension_3)
444 !
445 ! solids phase variable
446  DOUBLE PRECISION Var_s(dimension_3, dimension_m)
447 !
448 ! Volume x gas-solids transfer coefficient
449  DOUBLE PRECISION VxF(dimension_3, dimension_m)
450 !
451 ! Septadiagonal matrix A_m
452  DOUBLE PRECISION A_m(dimension_3, -3:3, 0:dimension_m)
453 !
454 ! Vector b_m
455  DOUBLE PRECISION B_m(dimension_3, 0:dimension_m)
456 ! ! ! ******GERA MODIFICATIONS************
457  DOUBLE PRECISION SUM_A, SUM_B, SUM_A_LPRIME,SUM_B_LPRIME, DEN
458  INTEGER L, M,LP
459 !
460 ! a0, b0 etc.
461  DOUBLE PRECISION a(0:dimension_m), BB(0:dimension_m), F(0:dimension_m,0:dimension_m),&
462  Saxf(0:dimension_m)
463 ! error message
464 !-----------------------------------------------
465 !!!$omp parallel do private( IMJK, IJMK, IJKM, IPJK, IJPK, IJKP, &
466 !!!$omp& a, bb, F, Saxf,SUM_A, SUM_B, SUM_A_LPRIME,SUM_B_LPRIME,L, M,LP, DEN) &
467 !!!$omp& schedule(static)
468  DO ijk = ijkstart3, ijkend3
469  IF (flow_at_t(ijk)) THEN
470  imjk = im_of(ijk)
471  ijmk = jm_of(ijk)
472  ipjk = ip_of(ijk)
473  ijpk = jp_of(ijk)
474 
475  f = zero
476  DO m=0, mmax
477  IF ((m==0 .OR. m==mmax) .AND. momentum_z_eq(m)) THEN
478  a(m)=a_m(ijk,0,m)
479  bb(m)=b_m(ijk,m)
480 
481  if (m .ne. 0) then
482  IF (momentum_z_eq(0))f(m,0)=-vxf(ijk,m)
483  f(0,m)=f(m,0)
484  end if
485  DO l =1, mmax
486  IF(l==0 .OR. l==mmax) THEN
487  IF ((l .NE. m) .AND. (m .NE. 0) .AND. momentum_z_eq(l) ) THEN
488  lm = funlm(l,m)
489  IF (.NOT.ip_at_t(ijk)) THEN
490  k = k_of(ijk)
491  ijkt = top_of(ijk)
492  f(m,l) = -avg_z(f_ss(ijk,lm),f_ss(ijkt,lm),k)*vol_w(ijk)
493  ENDIF
494  END IF
495  f(l,m)=f(m,l)
496  ENDIF
497  END DO
498 
499  IF (m == 0 ) THEN
500  saxf(m) = -(a_m(ijk,east,m)*var_g(ipjk)+a_m(ijk,west,m)*var_g(imjk&
501  )+a_m(ijk,north,m)*var_g(ijpk)+a_m(ijk,south,m)*var_g(ijmk))
502  ELSE
503  saxf(m) = -(a_m(ijk,east,m)*var_s(ipjk,m)+a_m(ijk,west,m)*var_s(&
504  imjk,m)+a_m(ijk,north,m)*var_s(ijpk,m)+a_m(ijk,south,m)*var_s(&
505  ijmk,m))
506  ENDIF
507 
508  IF (do_k) THEN
509  ijkm = km_of(ijk)
510  ijkp = kp_of(ijk)
511  IF (m == 0) THEN
512  saxf(m) = saxf(m) - (a_m(ijk,top,m)*var_g(ijkp)+a_m(ijk,bottom,m)*&
513  var_g(ijkm))
514  ELSE
515  saxf(m) = saxf(m) - (a_m(ijk,top,m)*var_s(ijkp,m)+a_m(ijk,bottom,m)*&
516  var_s(ijkm,m))
517  ENDIF
518  ENDIF
519  ENDIF
520  END DO
521 
522  Do m=0,mmax
523  IF ((m==0 .OR. m==mmax) .AND. momentum_z_eq(m)) THEN
524  sum_a = zero
525  sum_b = zero
526  do l =0,mmax
527  IF(l==0 .OR. l==mmax) THEN
528  sum_a_lprime = zero
529  sum_b_lprime = zero
530  DO lp=0,mmax
531  IF(lp==0 .OR. lp==mmax) THEN
532  IF ( lp .NE. m) THEN
533  sum_a_lprime=sum_a_lprime+f(l,lp)
534  IF (lp == 0) THEN
535  sum_b_lprime=sum_b_lprime+f(l,lp)*var_g(ijk)
536  ELSE
537  sum_b_lprime=sum_b_lprime+f(l,lp)*var_s(ijk,lp)
538  END IF
539  END IF
540  ENDIF
541  END DO
542 
543  den = a(l) + sum_a_lprime + f(l,m)
544  IF ( den .NE. zero) THEN
545  sum_a = sum_a + ((f(l,m)*(a(l)+sum_a_lprime))/den)
546  sum_b = sum_b + f(l,m)*(saxf(l) + bb(l)+sum_b_lprime &
547  )/den
548  ENDIF
549  ENDIF
550  END DO
551  a_m(ijk,0,m)=sum_a+a(m)
552  b_m(ijk,m) = sum_b+bb(m)
553 
554  DO l = 0, mmax
555  IF(l==0 .OR. l==mmax) THEN
556  IF(.NOT.momentum_z_eq(l))THEN
557  IF( l /= m) THEN
558  IF(l == 0)THEN
559  a_m(ijk,0,m) = a_m(ijk,0,m) - vxf(ijk,m)
560  b_m(ijk,m) = b_m(ijk,m) - vxf(ijk,m) * var_g(ijk)
561  ELSE IF(m .NE. 0) THEN
562  lm = funlm(l,m)
563  IF (.NOT.ip_at_t(ijk)) THEN
564  k = k_of(ijk)
565  ijkt = top_of(ijk)
566  f(m,l) = -avg_z(f_ss(ijk,lm),f_ss(ijkt,lm),k)*vol_w(ijk)
567  a_m(ijk,0,m) = a_m(ijk,0,m) + f(m,l)
568  b_m(ijk,m) = b_m(ijk,m) + f(m,l) * var_s(ijk, l)
569  ENDIF
570  ENDIF
571  ENDIF
572  ENDIF
573  ENDIF
574  ENDDO
575 
576  ENDIF
577  END DO
578  ENDIF
579  END DO
580  RETURN
581  END SUBROUTINE partial_elim_ghd_w
582 
583 
logical, dimension(0:dim_m) momentum_y_eq
Definition: run_mod.f:77
subroutine partial_elim_ghd_w(VAR_G, VAR_S, VXF, A_M, B_M)
double precision, dimension(:), allocatable vol_w
Definition: geometry_mod.f:242
integer, dimension(:), allocatable i_of
Definition: indices_mod.f:45
integer ijkend3
Definition: compar_mod.f:80
integer dimension_3
Definition: param_mod.f:11
double precision, dimension(:,:), allocatable f_ss
Definition: drag_mod.f:17
subroutine partial_elim_ghd_v(VAR_G, VAR_S, VXF, A_M, B_M)
logical, dimension(0:dim_m) momentum_x_eq
Definition: run_mod.f:74
Definition: drag_mod.f:11
logical, dimension(0:dim_m) momentum_z_eq
Definition: run_mod.f:80
subroutine partial_elim_ghd_u(VAR_G, VAR_S, VXF, A_M, B_M)
integer east
Definition: param_mod.f:29
integer, dimension(:), allocatable k_of
Definition: indices_mod.f:47
integer mmax
Definition: physprop_mod.f:19
integer, dimension(:), allocatable j_of
Definition: indices_mod.f:46
integer north
Definition: param_mod.f:37
integer south
Definition: param_mod.f:41
Definition: run_mod.f:13
Definition: param_mod.f:2
logical do_k
Definition: geometry_mod.f:30
integer ijkstart3
Definition: compar_mod.f:80
integer west
Definition: param_mod.f:33
integer top
Definition: param_mod.f:45
double precision, dimension(:), allocatable vol_u
Definition: geometry_mod.f:224
integer dimension_m
Definition: param_mod.f:18
integer bottom
Definition: param_mod.f:49
double precision, parameter zero
Definition: param1_mod.f:27
double precision, dimension(:), allocatable vol_v
Definition: geometry_mod.f:233