24 SUBROUTINE calc_grbdry(IJK1, IJK2, FCELL, COM, M, L, Gw, Hw, Cw)
52 INTEGER,
INTENT(IN) :: IJK1, IJK2
54 CHARACTER,
INTENT(IN) :: FCELL
58 INTEGER,
INTENT(IN) :: M
60 INTEGER,
INTENT(IN) :: L
63 DOUBLE PRECISION,
INTENT(INOUT) :: Gw
65 DOUBLE PRECISION,
INTENT(INOUT) :: Hw
67 DOUBLE PRECISION,
INTENT(INOUT) :: Cw
72 INTEGER :: IJK2E, IPJK2, IPJKM2, IPJKP2, IPJMK2, IPJPK2
73 INTEGER :: IJK2N, IJPK2, IJPKM2, IJPKP2, IMJPK2
74 INTEGER :: IJK2T, IJKP2, IJMKP2, IMJKP2
78 DOUBLE PRECISION :: smallTheta
80 DOUBLE PRECISION :: EPg_avg, Mu_g_avg, RO_g_avg
82 DOUBLE PRECISION :: ep_star_avg
88 DOUBLE PRECISION :: K_12_avg, Tau_12_avg, Tau_1_avg
91 DOUBLE PRECISION :: USCM, VSCM,WSCM
92 DOUBLE PRECISION :: USCM1,USCM2,VSCM1,VSCM2,WSCM1,WSCM2
94 DOUBLE PRECISION :: UGC, VGC, WGC
95 DOUBLE PRECISION :: WGC1, WGC2, VGC1, VGC2, UGC1, UGC2
97 DOUBLE PRECISION :: WVELS
98 DOUBLE PRECISION :: VELS
100 DOUBLE PRECISION :: DEL_DOT_U
102 DOUBLE PRECISION :: S_DDOT_S
104 DOUBLE PRECISION :: S_dd
106 DOUBLE PRECISION :: VREL
108 DOUBLE PRECISION :: VSLIP
112 DOUBLE PRECISION :: g0EPs_avg
114 CHARACTER(LEN=80) :: LINE
124 IF (com .EQ.
'U')
THEN 126 ijk2e = east_of(ijk2)
137 IF(kt_type_enum == simonin_1996 .OR. &
138 kt_type_enum == ahmadi_1995)
THEN 147 g0(mm) =
g_0avg(ijk2, ijk2e,
'X',
i_of(ijk2), m, mm)
148 eps_avg(mm) = avg_x(
ep_s(ijk2, mm),
ep_s(ijk2e, mm),
i_of(ijk2))
149 dp_avg(mm) = avg_x(
d_p(ijk2,mm),
d_p(ijk2e,mm),
i_of(ijk2))
150 g0eps_avg = g0eps_avg +
g_0avg(ijk2, ijk2e,
'X',
i_of(ijk2), m, mm) &
152 ros_avg(mm) = avg_x(
ro_s(ijk2, mm),
ro_s(ijk2e, mm),
i_of(ijk2))
155 IF(th_avg(mm) <
zero) th_avg(mm) = smalltheta
161 IF(fcell .EQ.
'N')
THEN 162 ipjmk2 = jm_of(ipjk2)
168 IF(avgx1 <
zero .AND. avgx2 >
zero) avgx1 = avgx2
169 IF(avgx2 <
zero .AND. avgx1 >
zero) avgx2 = avgx1
170 IF(avgx1 <
zero .AND. avgx2 <
zero)
THEN 171 th_avg(mm) = smalltheta
173 th_avg(mm) = avg_y(avgx1, avgx2,
j_of(ijk1))
179 vgc = avg_x(
v_g(ijk1),
v_g(ipjmk2),
i_of(ijk1))
180 wgc1 = avg_x(avg_z_t(
w_g(km_of(ijk2)),
w_g(ijk2)),&
181 avg_z_t(
w_g(km_of(ipjk2)),
w_g(ipjk2)),&
183 wgc2 = avg_x(avg_z_t(
w_g(km_of(ijk1)),
w_g(ijk1)),&
184 avg_z_t(
w_g(km_of(ipjmk2)),
w_g(ipjmk2)),&
186 wgc = avg_y(wgc2, wgc1,
j_of(ijk1))
187 uscm = avg_y(
u_s(ijk1,m),
u_s(ijk2,m),
j_of(ijk1))
188 vscm = avg_x(
v_s(ijk1,m),
v_s(ipjmk2,m),
i_of(ijk1))
189 wscm1= avg_x(avg_z_t(
w_s(km_of(ijk2),m),
w_s(ijk2,m)),&
190 avg_z_t(
w_s(km_of(ipjk2),m),
w_s(ipjk2,m)),&
192 wscm2= avg_x(avg_z_t(
w_s(km_of(ijk1),m),
w_s(ijk1,m)),&
193 avg_z_t(
w_s(km_of(ipjmk2),m),
w_s(ipjmk2,m)),&
195 wscm = avg_y(wscm2, wscm1,
j_of(ijk1))
198 ELSEIF(fcell .EQ.
'S')
THEN 205 IF(avgx1 <
zero .AND. avgx2 >
zero) avgx1 = avgx2
206 IF(avgx2 <
zero .AND. avgx1 >
zero) avgx2 = avgx1
207 IF(avgx1 <
zero .AND. avgx2 <
zero)
THEN 208 th_avg(mm) = smalltheta
210 th_avg(mm) = avg_y(avgx1, avgx2,
j_of(ijk2))
218 wgc1 = avg_x(avg_z_t(
w_g(km_of(ijk2)),
w_g(ijk2)),&
219 avg_z_t(
w_g(km_of(ipjk2)),
w_g(ipjk2)),&
221 wgc2 = avg_x(avg_z_t(
w_g(km_of(ijk1)),
w_g(ijk1)),&
222 avg_z_t(
w_g(km_of(ipjpk2)),
w_g(ipjpk2)),&
224 wgc = avg_y(wgc1, wgc2,
j_of(ijk2))
225 uscm = avg_y(
u_s(ijk2, m),
u_s(ijk1, m),
j_of(ijk2))
226 vscm = avg_x(
v_s(ijk2, m),
v_s(ipjk2, m),
i_of(ijk2))
227 wscm1= avg_x(avg_z_t(
w_s(km_of(ijk2),m),
w_s(ijk2,m)),&
228 avg_z_t(
w_s(km_of(ipjk2),m),
w_s(ipjk2,m)),&
230 wscm2= avg_x(avg_z_t(
w_s(km_of(ijk1),m),
w_s(ijk1,m)),&
231 avg_z_t(
w_s(km_of(ipjpk2),m),
w_s(ipjpk2,m)),&
233 wscm = avg_y(wscm1, wscm2,
j_of(ijk2))
236 ELSEIF(fcell .EQ.
'T')
THEN 243 IF(avgx1 <
zero .AND. avgx2 >
zero) avgx1 = avgx2
244 IF(avgx2 <
zero .AND. avgx1 >
zero) avgx2 = avgx1
245 IF(avgx1 <
zero .AND. avgx2 <
zero)
THEN 246 th_avg(mm) = smalltheta
248 th_avg(mm) = avg_z(avgx1, avgx2,
k_of(ijk1))
254 vgc1 = avg_x(avg_y_n(
v_g(jm_of(ijk2)),
v_g(ijk2)),&
255 avg_y_n(
v_g(jm_of(ipjk2)),
v_g(ipjk2)),&
257 vgc2 = avg_x(avg_y_n(
v_g(jm_of(ijk1)),
v_g(ijk1)),&
258 avg_y_n(
v_g(jm_of(ipjkm2)),
v_g(ipjkm2)),&
260 vgc = avg_z(vgc2,vgc1,
k_of(ijk1))
261 wgc = avg_x(
w_g(ijk1),
w_g(ipjkm2),
i_of(ijk1))
262 uscm = avg_z(
u_s(ijk1,m),
u_s(ijk2,m),
k_of(ijk1))
263 vscm1= avg_x(avg_y_n(
v_s(jm_of(ijk2),m),
v_s(ijk2,m)),&
264 avg_y_n(
v_s(jm_of(ipjk2),m),
v_s(ipjk2,m)),&
266 vscm2= avg_x(avg_y_n(
v_s(jm_of(ijk1),m),
v_s(ijk1,m)),&
267 avg_y_n(
v_s(jm_of(ipjkm2),m),
v_s(ipjkm2,m)),&
269 vscm = avg_z(vscm2,vscm1,
k_of(ijk1))
270 wscm = avg_x(
w_s(ijk1,m),
w_s(ipjkm2,m),
i_of(ijk1))
273 ELSEIF(fcell .EQ.
'B')
THEN 280 IF(avgx1 <
zero .AND. avgx2 >
zero) avgx1 = avgx2
281 IF(avgx2 <
zero .AND. avgx1 >
zero) avgx2 = avgx1
282 IF(avgx1 <
zero .AND. avgx2 <
zero)
THEN 283 th_avg(mm) = smalltheta
285 th_avg(mm) = avg_z(avgx1, avgx2,
k_of(ijk2))
291 vgc1 = avg_x(avg_y_n(
v_g(jm_of(ijk2)),
v_g(ijk2)),&
292 avg_y_n(
v_g(jm_of(ipjk2)),
v_g(ipjk2)),&
294 vgc2 = avg_x(avg_y_n(
v_g(jm_of(ijk1)),
v_g(ijk1)),&
295 avg_y_n(
v_g(jm_of(ipjkp2)),
v_g(ipjkp2)),&
297 vgc = avg_z(vgc1, vgc2,
k_of(ijk2))
299 uscm = avg_z(
u_s(ijk2, m),
u_s(ijk1, m),
k_of(ijk2))
300 vscm1= avg_x(avg_y_n(
v_s(jm_of(ijk2),m),
v_s(ijk2,m)),&
301 avg_y_n(
v_s(jm_of(ipjk2),m),
v_s(ipjk2,m)),&
303 vscm2= avg_x(avg_y_n(
v_s(jm_of(ijk1),m),
v_s(ijk1,m)),&
304 avg_y_n(
v_s(jm_of(ipjkp2),m),
v_s(ipjkp2,m)),&
306 vscm = avg_z(vscm1, vscm2,
k_of(ijk2))
307 wscm = avg_x(
w_s(ijk2, m),
w_s(ipjk2, m),
i_of(ijk2))
311 WRITE(line,
'(A, A)')
'Error: Unknown FCELL' 318 ELSEIF (com .EQ.
'V')
THEN 320 ijk2n = north_of(ijk2)
331 IF(kt_type_enum == simonin_1996 .OR. &
332 kt_type_enum == ahmadi_1995)
THEN 342 g0(mm) =
g_0avg(ijk2, ijk2n,
'Y',
j_of(ijk2), m, mm)
343 eps_avg(mm) = avg_y(
ep_s(ijk2, mm),
ep_s(ijk2n, mm),
j_of(ijk2))
344 dp_avg(mm) = avg_y(
d_p(ijk2,mm),
d_p(ijk2n,mm),
j_of(ijk2))
345 g0eps_avg = g0eps_avg +
g_0avg(ijk2, ijk2n,
'Y',
j_of(ijk2), m, mm) &
347 ros_avg(mm) = avg_y(
ro_s(ijk2, mm),
ro_s(ijk2n, mm),
j_of(ijk2))
349 IF(th_avg(mm) <
zero) th_avg(mm) = smalltheta
354 IF(fcell .EQ.
'T')
THEN 355 ijpkm2 = km_of(ijpk2)
360 IF(avgx1 <
zero .AND. avgx2 >
zero) avgx1 = avgx2
361 IF(avgx2 <
zero .AND. avgx1 >
zero) avgx2 = avgx1
362 IF(avgx1 <
zero .AND. avgx2 <
zero)
THEN 363 th_avg(mm) = smalltheta
365 th_avg(mm) = avg_y(avgx1, avgx2,
j_of(ijk1))
371 avg_y(
u_g(im_of(ijk1)),
u_g(im_of(ijpkm2)),&
376 avg_y(
u_g(im_of(ijk2)),
u_g(im_of(ijpk2)),&
380 ugc = avg_z(ugc1, ugc2,
k_of(ijk1))
382 wgc = avg_y(
w_g(ijk1),
w_g(ijpkm2),
j_of(ijk1))
384 avg_y(
u_s(im_of(ijk1),m),
u_s(im_of(ijpkm2),m),&
386 avg_y(
u_s(ijk1,m),
u_s(ijpkm2,m),
j_of(ijk1)),&
389 avg_y(
u_s(im_of(ijk2),m),
u_s(im_of(ijpk2),m),&
393 uscm = avg_z(uscm1, uscm2,
k_of(ijk1))
394 vscm = avg_z(
v_s(ijk1,m),
v_s(ijk2,m),
k_of(ijk1))
395 wscm = avg_y(
w_s(ijk1,m),
w_s(ijpkm2,m),
j_of(ijk1))
398 ELSEIF(fcell .EQ.
'B')
THEN 399 ijpkp2 = kp_of(ijpk2)
404 IF(avgx1 <
zero .AND. avgx2 >
zero) avgx1 = avgx2
405 IF(avgx2 <
zero .AND. avgx1 >
zero) avgx2 = avgx1
406 IF(avgx1 <
zero .AND. avgx2 <
zero)
THEN 407 th_avg(mm) = smalltheta
409 th_avg(mm) = avg_y(avgx1, avgx2,
j_of(ijk2))
415 avg_y(
u_g(im_of(ijk1)),
u_g(im_of(ijpkp2)),&
420 avg_y(
u_g(im_of(ijk2)),
u_g(im_of(ijpk2)),&
424 ugc = avg_z(ugc2, ugc1,
k_of(ijk2))
426 wgc = avg_y(
w_g(ijk2),
w_g(ijpk2),
j_of(ijk2))
428 avg_y(
u_s(im_of(ijk1),m),
u_s(im_of(ijpkp2),m),&
430 avg_y(
u_s(ijk1,m),
u_s(ijpkp2,m),
j_of(ijk1)),&
433 avg_y(
u_s(im_of(ijk2),m),
u_s(im_of(ijpk2),m),&
437 uscm = avg_z(uscm2, uscm1,
k_of(ijk2))
438 vscm = avg_z(
v_s(ijk2,m),
v_s(ijk1,m),
k_of(ijk2))
439 wscm = avg_y(
w_s(ijk2,m),
w_s(ijpk2,m),
j_of(ijk2))
442 ELSEIF(fcell .EQ.
'E')
THEN 448 IF(avgx1 <
zero .AND. avgx2 >
zero) avgx1 = avgx2
449 IF(avgx2 <
zero .AND. avgx1 >
zero) avgx2 = avgx1
450 IF(avgx1 <
zero .AND. avgx2 <
zero)
THEN 451 th_avg(mm) = smalltheta
453 th_avg(mm) = avg_y(avgx1, avgx2,
j_of(ijk1))
458 ugc = avg_y(
u_g(ijk1),
u_g(imjpk2),
j_of(ijk1))
460 wgc1 = avg_y(avg_z_t(
w_g(km_of(ijk1)),
w_g(ijk1)),&
461 avg_z_t(
w_g(km_of(imjpk2)),
w_g(imjpk2)),&
463 wgc2 = avg_y(avg_z_t(
w_g(km_of(ijk2)),
w_g(ijk2)),&
464 avg_z_t(
w_g(km_of(ijpk2)),
w_g(ijpk2)),&
466 wgc = avg_x(wgc1, wgc2,
i_of(ijk1))
467 uscm = avg_y(
u_s(ijk1,m),
u_s(imjpk2,m),
j_of(ijk1))
468 vscm = avg_x(
v_s(ijk1, m),
v_s(ijk2, m),
i_of(ijk1))
469 wscm1= avg_y(avg_z_t(
w_s(km_of(ijk1),m),
w_s(ijk1,m)),&
470 avg_z_t(
w_s(km_of(imjpk2),m),
w_s(imjpk2,m)),&
472 wscm2 = avg_y(avg_z_t(
w_s(km_of(ijk2),m),
w_s(ijk2,m)),&
473 avg_z_t(
w_s(km_of(ijpk2),m),
w_s(ijpk2,m)),&
475 wscm = avg_x(wscm1, wscm2,
i_of(ijk1))
478 ELSEIF(fcell .EQ.
'W')
THEN 484 IF(avgx1 <
zero .AND. avgx2 >
zero) avgx1 = avgx2
485 IF(avgx2 <
zero .AND. avgx1 >
zero) avgx2 = avgx1
486 IF(avgx1 <
zero .AND. avgx2 <
zero)
THEN 487 th_avg(mm) = smalltheta
489 th_avg(mm) = avg_y(avgx1, avgx2,
j_of(ijk2))
494 ugc = avg_y(
u_g(ijk2),
u_g(ijpk2),
j_of(ijk2))
496 wgc1 = avg_y(avg_z_t(
w_g(km_of(ijk1)),
w_g(ijk1)),&
497 avg_z_t(
w_g(km_of(ipjpk2)),
w_g(ipjpk2)),&
499 wgc2 = avg_y(avg_z_t(
w_g(km_of(ijk2)),
w_g(ijk2)),&
500 avg_z_t(
w_g(km_of(ijpk2)),
w_g(ijpk2)),&
502 wgc = avg_x(wgc2, wgc1,
i_of(ijk2))
503 uscm = avg_y(
u_s(ijk2,m),
u_s(ijpk2,m),
j_of(ijk2))
504 vscm = avg_x(
v_s(ijk2, m),
v_s(ijk1, m),
i_of(ijk2))
505 wscm1= avg_y(avg_z_t(
w_s(km_of(ijk1),m),
w_s(ijk1,m)),&
506 avg_z_t(
w_s(km_of(ipjpk2),m),
w_s(ipjpk2,m)),&
508 wscm2 = avg_y(avg_z_t(
w_s(km_of(ijk2),m),
w_s(ijk2,m)),&
509 avg_z_t(
w_s(km_of(ijpk2),m),
w_s(ijpk2,m)),&
511 wscm = avg_x(wscm2, wscm1,
i_of(ijk2))
515 WRITE(line,
'(A, A)')
'Error: Unknown FCELL' 523 ELSEIF (com .EQ.
'W')
THEN 535 IF(kt_type_enum == simonin_1996 .OR. &
536 kt_type_enum == ahmadi_1995)
THEN 545 g0(mm) =
g_0avg(ijk2, ijk2t,
'Z',
k_of(ijk2), m, mm)
546 eps_avg(mm) = avg_z(
ep_s(ijk2,mm),
ep_s(ijk2t,mm),
k_of(ijk2))
547 dp_avg(mm) = avg_z(
d_p(ijk2,mm),
d_p(ijk2t,mm),
k_of(ijk2))
548 g0eps_avg = g0eps_avg +
g_0avg(ijk2, ijk2t,
'Z',
k_of(ijk2), m, mm) &
550 ros_avg(mm) = avg_z(
ro_s(ijk2,mm),
ro_s(ijk2t,mm),
k_of(ijk2))
552 IF(th_avg(mm) <
zero) th_avg(mm) = smalltheta
557 IF(fcell .EQ.
'N')
THEN 558 ijmkp2 = jm_of(ijkp2)
563 IF(avgx1 <
zero .AND. avgx2 >
zero) avgx1 = avgx2
564 IF(avgx2 <
zero .AND. avgx1 >
zero) avgx2 = avgx1
565 IF(avgx1 <
zero .AND. avgx2 <
zero)
THEN 566 th_avg(mm) = smalltheta
568 th_avg(mm) = avg_y(avgx1, avgx2,
j_of(ijk1))
574 avg_z(
u_g(im_of(ijk1)),
u_g(im_of(ijmkp2)),&
575 k_of(im_of(ijk1)) ),&
579 avg_z(
u_g(im_of(ijk2)),
u_g(im_of(ijkp2)),&
583 ugc = avg_y(ugc1, ugc2,
j_of(ijk1))
584 vgc = avg_z(
v_g(ijk1),
v_g(ijmkp2),
k_of(ijk1))
587 avg_z(
u_s(im_of(ijk1),m),
u_s(im_of(ijmkp2),m),&
589 avg_z(
u_s(ijk1,m),
u_s(ijmkp2,m),
k_of(ijk1)),&
592 avg_z(
u_s(im_of(ijk2),m),
u_s(im_of(ijkp2),m),&
596 uscm = avg_y(uscm1, uscm2,
j_of(ijk1))
597 vscm = avg_z(
v_s(ijk1,m),
v_s(ijmkp2,m),
k_of(ijk1))
598 wscm = avg_y(
w_s(ijk1,m),
w_s(ijk2,m),
j_of(ijk1))
601 ELSEIF(fcell .EQ.
'S')
THEN 602 ijpkp2 = jp_of(ijkp2)
607 IF(avgx1 <
zero .AND. avgx2 >
zero) avgx1 = avgx2
608 IF(avgx2 <
zero .AND. avgx1 >
zero) avgx2 = avgx1
609 IF(avgx1 <
zero .AND. avgx2 <
zero)
THEN 610 th_avg(mm) = smalltheta
612 th_avg(mm) = avg_y(avgx1, avgx2,
j_of(ijk2))
618 avg_z(
u_g(im_of(ijk1)),
u_g(im_of(ijpkp2)),&
623 avg_z(
u_g(im_of(ijk2)),
u_g(im_of(ijkp2)),&
627 ugc = avg_y(ugc2, ugc1,
j_of(ijk2))
631 avg_z(
u_s(im_of(ijk1),m),
u_s(im_of(ijpkp2),m),&
633 avg_z(
u_s(ijk1,m),
u_s(ijpkp2,m),
k_of(ijk1)),&
636 avg_z(
u_s(im_of(ijk2),m),
u_s(im_of(ijkp2),m),&
640 uscm = avg_y(uscm2, uscm1,
j_of(ijk2))
641 vscm = avg_z(
v_s(ijk2,m),
v_s(ijkp2,m),
k_of(ijk2))
642 wscm = avg_y(
w_s(ijk2,m),
w_s(ijk1,m),
j_of(ijk2))
645 ELSEIF(fcell .EQ.
'E')
THEN 646 imjkp2 = im_of(ijkp2)
651 IF(avgx1 <
zero .AND. avgx2 >
zero) avgx1 = avgx2
652 IF(avgx2 <
zero .AND. avgx1 >
zero) avgx2 = avgx1
653 IF(avgx1 <
zero .AND. avgx2 <
zero)
THEN 654 th_avg(mm) = smalltheta
656 th_avg(mm) = avg_z(avgx1, avgx2,
k_of(ijk1))
661 ugc = avg_z(
u_g(ijk1),
u_g(imjkp2),
k_of(ijk1))
662 vgc1 = avg_z(avg_y_n(
v_g(jm_of(ijk1)),
v_g(ijk1)),&
663 avg_y_n(
v_g(jm_of(imjkp2)),
v_g(imjkp2)),&
665 vgc2 = avg_z(avg_y_n(
v_g(jm_of(ijk2)),
v_g(ijk2)),&
666 avg_y_n(
v_g(jm_of(ijkp2)),
v_g(ijkp2)),&
668 vgc = avg_x(vgc1,vgc2,
i_of(ijk1))
670 uscm = avg_z(
u_s(ijk1,m),
u_s(imjkp2,m),
k_of(ijk1))
671 vscm1= avg_z(avg_y_n(
v_s(jm_of(ijk1),m),
v_s(ijk1,m)),&
672 avg_y_n(
v_s(jm_of(imjkp2),m),
v_s(imjkp2,m)),&
674 vscm2= avg_z(avg_y_n(
v_s(jm_of(ijk2),m),
v_s(ijk2,m)),&
675 avg_y_n(
v_s(jm_of(ijkp2),m),
v_s(ijkp2,m)),&
677 vscm = avg_x(vscm1,vscm2,
i_of(ijk1))
678 wscm = avg_x(
w_s(ijk1,m),
w_s(ijk2,m),
i_of(ijk1))
681 ELSEIF(fcell .EQ.
'W')
THEN 687 IF(avgx1 <
zero .AND. avgx2 >
zero) avgx1 = avgx2
688 IF(avgx2 <
zero .AND. avgx1 >
zero) avgx2 = avgx1
689 IF(avgx1 <
zero .AND. avgx2 <
zero)
THEN 690 th_avg(mm) = smalltheta
692 th_avg(mm) = avg_z(avgx1, avgx2,
k_of(ijk2))
697 ugc = avg_z(
u_g(ijk2),
u_g(ijkp2),
k_of(ijk2))
698 vgc1 = avg_z(avg_y_n(
v_g(jm_of(ijk1)),
v_g(ijk1)),&
699 avg_y_n(
v_g(jm_of(ipjkp2)),
v_g(ipjkp2)),&
701 vgc2 = avg_z(avg_y_n(
v_g(jm_of(ijk2)),
v_g(ijk2)),&
702 avg_y_n(
v_g(jm_of(ijkp2)),
v_g(ijkp2)),&
704 vgc = avg_x(vgc2,vgc1,
i_of(ijk2))
706 uscm = avg_z(
u_s(ijk2,m),
u_s(ijkp2,m),
k_of(ijk2))
707 vscm1= avg_z(avg_y_n(
v_s(jm_of(ijk1),m),
v_s(ijk1,m)),&
708 avg_y_n(
v_s(jm_of(ipjkp2),m),
v_s(ipjkp2,m)),&
710 vscm2= avg_z(avg_y_n(
v_s(jm_of(ijk2),m),
v_s(ijk2,m)),&
711 avg_y_n(
v_s(jm_of(ijkp2),m),
v_s(ijkp2,m)),&
713 vscm = avg_x(vscm2,vscm1,
i_of(ijk2))
714 wscm = avg_x(
w_s(ijk2,m),
w_s(ijk1,m),
i_of(ijk2))
718 WRITE(line,
'(A, A)')
'Error: Unknown FCELL' 725 WRITE(line,
'(A, A)')
'Error: Unknown COM' 732 dsqrt( (ugc - uscm)**2 + (vgc - vscm)**2 + (wgc - wscm)**2 )
742 CALL calc_gw_hw_cw(g0(m), eps_avg(m), epg_avg, ep_star_avg, &
743 g0eps_avg, th_avg(m), mu_g_avg, ro_g_avg, ros_avg(m), &
744 dp_avg(m), k_12_avg, tau_12_avg, tau_1_avg, vrel, vslip,&
745 del_dot_u, s_ddot_s, s_dd, vels, wvels, m, gw, hw, cw)
748 hw =
f_hw(g0, eps_avg, epg_avg, ep_star_avg, &
749 g0eps_avg, th_avg, mu_g_avg, ro_g_avg, ros_avg, &
750 dp_avg, k_12_avg, tau_12_avg, tau_1_avg, vrel, vslip, m)
790 DOUBLE PRECISION FUNCTION f_hw(g0,EPS,EPG, ep_star_avg, &
791 g0eps_avg,th,mu_g_avg,ro_g_avg,ros_avg, &
792 dp_avg,k_12_avg, tau_12_avg, tau_1_avg, &
816 DOUBLE PRECISION,
INTENT(IN) :: EPG, ep_star_avg
818 DOUBLE PRECISION,
INTENT(INOUT) :: g0EPs_avg
820 DOUBLE PRECISION,
INTENT(INOUT) :: TH (
dimension_m)
822 DOUBLE PRECISION,
INTENT(IN) :: Mu_g_avg
824 DOUBLE PRECISION,
INTENT(IN) :: RO_g_avg
826 DOUBLE PRECISION,
INTENT(IN) :: ROS_avg(
dimension_m)
828 DOUBLE PRECISION,
INTENT(IN) :: DP_avg(
dimension_m)
830 DOUBLE PRECISION,
INTENT(IN) :: K_12_avg, Tau_12_avg, Tau_1_avg
832 DOUBLE PRECISION,
INTENT(IN) :: VREL
834 DOUBLE PRECISION,
INTENT(IN) :: VSLIP
836 INTEGER,
INTENT(IN) :: M
843 DOUBLE PRECISION :: F_2
845 DOUBLE PRECISION :: Mu_s
847 DOUBLE PRECISION :: Mu
849 DOUBLE PRECISION :: Mu_b
851 DOUBLE PRECISION :: Mu_star
853 DOUBLE PRECISION :: Ps
855 DOUBLE PRECISION :: Re_g
857 DOUBLE PRECISION :: C_d
859 DOUBLE PRECISION :: Beta, DgA
861 DOUBLE PRECISION :: Sigma_c, Tau_2_c, Tau_12_st, Nu_t
862 DOUBLE PRECISION :: Tau_2, zeta_c_2, MU_2_T_Kin, Mu_2_Col
863 DOUBLE PRECISION :: Tmp_Ahmadi_Const
865 DOUBLE PRECISION :: MU_sM_sum, MU_s_MM, MU_s_LM, MU_sM_ip, MU_common_term,&
867 DOUBLE PRECISION :: M_PM, M_PL, MPSUM, NU_PL, NU_PM, D_PM, D_PL, DPSUMo2
868 DOUBLE PRECISION :: Ap_lm, Dp_lm, R1p_lm, Bp_lm
870 DOUBLE PRECISION :: c_star, zeta0_star, nu_eta_star, press_star, &
871 gamma_star, eta_k_star, eta_star, eta0
873 DOUBLE PRECISION :: Chi, RdissP, Re_T, Rdiss, GamaAvg, A2_gtshW, &
874 zeta_star, nu0, nuN, NuK, EDT_s, zeta_avg, etaK, &
875 Mu_b_avg, mu2_0, mu4_0, mu4_1
880 DOUBLE PRECISION :: PHIP_JJ
885 IF(th(m) .LE.
zero)
THEN 887 IF (mype.eq.pe_io)
THEN 889 'Warning: Negative granular temp at wall set to 1e-8' 897 m_pm = (
pi/6.d0)*(d_pm**3)*ros_avg(m)
898 nu_pm = (eps(m)*ros_avg(m))/m_pm
901 re_g = epg*ro_g_avg*d_pm*vrel/mu_g_avg
902 IF (re_g .lt. 1000.d0)
THEN 907 dga = 0.75d0*c_d*ro_g_avg*epg*vrel/(d_pm*epg**(2.65d0))
915 SELECT CASE (kt_type_enum)
917 mu = (5d0*dsqrt(
pi*th(m))*dp_avg(m)*ros_avg(m))/96d0
918 mu_b = (256d0*mu*eps(m)*g0eps_avg)/(5d0*
pi)
925 mu_star = ros_avg(m)*eps(m)* g0(m)*th(m)* mu/ &
926 (ros_avg(m)*g0eps_avg*th(m) + 2.0d0*dga/ros_avg(m)* mu)
929 mu_s = ((2d0+
alpha)/3d0)*((mu_star/(
eta*(2d0-
eta)*&
930 g0(m)))*(
one+1.6d0*
eta*g0eps_avg)*&
932 g0eps_avg)+(0.6d0*mu_b*
eta))
935 ps = ros_avg(m)*eps(m)*th(m)*(
one+4.d0*
eta*g0eps_avg)
943 tau_2_c = dp_avg(m)/(6.d0*eps(m)*g0(m)*dsqrt(16.d0*(th(m)+
small_number)/
pi))
945 nu_t = tau_12_avg/tau_12_st
946 tau_2 =
one/(2.d0/tau_12_st+sigma_c/tau_2_c)
947 mu_2_t_kin = (2.0d0/3.0d0*k_12_avg*nu_t + th(m) * &
948 (
one+ zeta_c_2*eps(m)*g0(m)))*tau_2
949 mu_2_col = 8.d0/5.d0*eps(m)*g0(m)*
eta* (mu_2_t_kin+ &
950 dp_avg(m)*dsqrt(th(m)/
pi))
951 mu_s = eps(m)*ros_avg(m)*(mu_2_t_kin + mu_2_col)
954 ps = ros_avg(m)*eps(m)*th(m)*(
one+4.d0*
eta*g0eps_avg)
961 IF(eps(m) < (
one-ep_star_avg))
THEN 962 tmp_ahmadi_const =
one/&
963 (
one+ tau_1_avg/tau_12_st * (
one-eps(m)/(
one-ep_star_avg))**3)
965 tmp_ahmadi_const =
one 967 mu_s = tmp_ahmadi_const &
968 *0.1045d0*(
one/g0(m)+3.2d0*eps(m)+12.1824d0*g0(m)*eps(m)*eps(m)) &
969 *dp_avg(m)*ros_avg(m)* dsqrt(th(m))
972 ps = ros_avg(m)*eps(m)*th(m)*&
978 IF(.NOT.
switch_ia) g0eps_avg = eps(m)*ros_avg(m)
980 mu = (5.d0/96.d0)*d_pm* ros_avg(m)*dsqrt(
pi*th(m)/m_pm)
987 mu_star = mu*eps(m)*g0(m)/ (g0eps_avg+ 2.0d0*dga*mu / &
988 (ros_avg(m)**2 *(th(m)/m_pm)))
991 mu_s_mm = (mu_star/g0(m))*(1.d0+(4.d0/5.d0)*(1.d0+
c_e)*g0eps_avg)**2
996 m_pl = (
pi/6.d0)*(d_pl**3.)*ros_avg(ll)
998 dpsumo2 = (d_pm+d_pl)/2.d0
999 nu_pl = (eps(ll)*ros_avg(ll))/m_pl
1001 IF ( ll .eq. m)
THEN 1002 ap_lm = mpsum/(2.d0)
1003 dp_lm = m_pl*m_pm/(2.d0*mpsum)
1004 r1p_lm =
one/( ap_lm**1.5 * dp_lm**3 )
1005 mu_s_lm = dsqrt(
pi)*(dpsumo2**4 / (48.d0*5.d0))*&
1006 g0(ll)*(m_pl*m_pm/mpsum)*(m_pl*m_pm/&
1007 mpsum)*((m_pl*m_pm)**1.5)*nu_pm*nu_pl*&
1008 (1.d0+
c_e)*r1p_lm*dsqrt(th(m))
1012 mu_sm_ip = (mu_s_mm + mu_s_lm)
1015 ap_lm = (m_pm*th(ll)+m_pl*th(m))/&
1017 bp_lm = (m_pm*m_pl*(th(ll)-th(m) ))/&
1019 dp_lm = (m_pl*m_pm*(m_pm*th(m)+m_pl*th(ll) ))/&
1021 r1p_lm = (
one/( ap_lm**1.5 * dp_lm**3 ) ) + &
1022 ( (9.d0*bp_lm*bp_lm)/( ap_lm**2.5 * dp_lm**4 ) )+&
1023 ( (30.d0*bp_lm**4)/( 2.d0*ap_lm**3.5 * dp_lm**5 ) )
1024 mu_common_term = dsqrt(
pi)*(dpsumo2**4 / (48.d0*5.d0))*&
1025 g0(ll)*(m_pl*m_pm/mpsum)*(m_pl*m_pm/&
1026 mpsum)*((m_pl*m_pm)**1.5)*nu_pm*nu_pl*&
1028 mu_sm_lm = mu_common_term*(th(m)*th(m)*th(ll)*th(ll)*th(ll) )
1035 mu_sm_sum = mu_sm_sum + mu_sm_ip
1049 press_star = 1.d0 + 2.d0*(1.d0+
c_e)*eps(m)*g0(m)
1052 c_star = 32.0d0*(1.0d0 -
c_e)*(1.d0 - 2.0d0*
c_e*
c_e) &
1055 zeta0_star = (5.d0/12.d0)*g0(m)*(1.d0 -
c_e*
c_e) &
1056 * (1.d0 + (3.d0/32.d0)*c_star)
1058 nu_eta_star = g0(m)*(1.d0 - 0.25d0*(1.d0-
c_e)*(1.d0-
c_e)) &
1059 * (1.d0-(c_star/64.d0))
1061 gamma_star = (4.d0/5.d0)*(32.d0/
pi)*eps(m)*eps(m) &
1062 * g0(m)*(1.d0+
c_e) * (1.d0 - (c_star/32.d0))
1064 eta_k_star = (1.d0 - (2.d0/5.d0)*(1.d0+
c_e)*(1.d0-3.d0*
c_e) &
1065 * eps(m)*g0(m) ) / (nu_eta_star - 0.5d0*zeta0_star)
1067 eta_star = eta_k_star*(1.d0 + (4.d0/5.d0)*eps(m)*g0(m) &
1068 * (1.d0+
c_e) ) + (3.d0/5.d0)*gamma_star
1070 eta0 = 5.0d0*m_pm*dsqrt(th(m)/
pi) / (16.d0*d_pm*d_pm)
1078 mu_star = ros_avg(m)*eps(m)*g0(m)*th(m)*eta0 / &
1079 ( ros_avg(m)*eps(m)*g0(m)*th(m) + &
1080 (2.d0*dga*eta0/ros_avg(m)) )
1084 mu_s = mu_star * eta_star
1087 ps = ros_avg(m)*eps(m)*th(m)*(
one+2.d0*(
one+
c_e)*g0eps_avg)
1096 one + 3d0*dsqrt(eps(m)/2d0) + 135d0/64d0*eps(m)*dlog(eps(m)) + &
1097 11.26d0*eps(m)*(
one-5.1d0*eps(m)+16.57d0*eps(m)**2-21.77d0* &
1098 eps(m)**3) - eps(m)*chi*dlog(
epm)
1100 re_t = ro_g_avg*d_pm*dsqrt(th(m)) / mu_g_avg
1101 re_g = epg*ro_g_avg*d_pm*vrel/mu_g_avg
1102 rdiss = rdissp + re_t *
k_phi(eps(m))
1103 gamaavg = 3d0*
pi*mu_g_avg*d_pm*rdiss
1104 mu2_0 = dsqrt(2d0*
pi) * chi * (
one-
c_e**2)
1105 mu4_0 = (4.5d0+
c_e**2) * mu2_0
1106 mu4_1 = (6.46875d0+0.9375d0*
c_e**2)*mu2_0 + 2d0*dsqrt(2d0*
pi)* &
1111 zeta_star = 4.5d0*dsqrt(2d0*
pi)*(ro_g_avg/ros_avg(m))**2*re_g**2 * &
1112 s_star(eps(m),chi) / (eps(m)*(
one-eps(m))**2 * re_t**4)
1113 a2_gtshw = (5d0*mu2_0 - mu4_0) / (mu4_1 - 5d0* &
1114 (19d0/16d0*mu2_0 - 1.5d0*zeta_star))
1117 eta0 = 0.3125d0/(dsqrt(
pi)*d_pm**2)*m_pm*dsqrt(th(m))
1118 nu0 = (96.d0/5.d0)*(eps(m)/d_pm)*dsqrt(th(m)/
pi)
1119 nun = 0.25d0*nu0*chi*(3d0-
c_e)*(
one+
c_e) * &
1120 (
one+0.7375d0*a2_gtshw)
1122 ((947d0-579*
c_e)/256d0*a2_gtshw) )
1123 edt_s = 4d0/3d0*dsqrt(
pi)*(
one-
c_e**2)*chi* &
1124 (
one+0.1875d0*a2_gtshw)*nu_pm*d_pm**2*dsqrt(th(m))
1127 zeta_avg =
one/6d0*d_pm*vrel**2*(3d0*
pi*mu_g_avg*d_pm/&
1128 m_pm)**2 / dsqrt(th(m)) *
s_star(eps(m), chi)
1129 etak = ros_avg(m)*eps(m)*th(m) / (nun-0.5d0*( &
1130 edt_s-zeta_avg/th(m) - 2d0*gamaavg/m_pm)) * &
1136 mu_b_avg = 25.6d0/
pi * eps(m)**2 * chi *(
one+
c_e) * &
1137 (
one - a2_gtshw/16d0)*eta0
1139 mu_s = etak*(
one+0.8d0*eps(m)*chi*(
one+
c_e)) + &
1143 ps = ros_avg(m)*eps(m)*th(m)*(
one+2.d0*(
one+
c_e)*g0eps_avg)
1147 WRITE (*,
'(A)')
'CALC_GRBDRY => F_HW ' 1148 WRITE (*,
'(A,A)')
'Unknown KT_TYPE: ', kt_type
1154 SELECT CASE (kt_type_enum)
1156 CASE (lun_1984, simonin_1996, ahmadi_1995, gd_1999, gtsh_2012)
1164 IF (vslip ==
zero)
THEN 1178 f_2 = (
phip*dsqrt(3d0*th(m))*
pi*ros_avg(m)*eps(m)*&
1179 g0(m))/(6d0*(
one-ep_star_avg))
1181 f_2 = (phip_jj(vslip,th(m))*dsqrt(3d0*th(m))*
pi*&
1182 ros_avg(m)*eps(m)*g0(m))/(6d0*(
one-ep_star_avg))
1191 f_2 = (
phip*dsqrt(3.d0*th(m)/m_pm)*
pi*ros_avg(m)*eps(m)*&
1192 g0(m))/(6.d0*(
one-ep_star_avg))
1194 f_2 = (phip_jj(vslip,th(m))*dsqrt(3.d0*th(m)/m_pm)*
pi*&
1195 ros_avg(m)*eps(m)*g0(m))/(6.d0*(
one-ep_star_avg))
1201 WRITE (*,
'(A)')
'CALC_GRBDRY => F_HW ' 1202 WRITE (*,
'(A,A)')
'Unknown KT_TYPE: ', kt_type
1246 INTEGER,
INTENT(IN) :: IJK
1248 CHARACTER (LEN=*) :: TYPE_OF_CELL
1250 INTEGER,
INTENT(IN) :: M
1252 INTEGER,
INTENT(IN) :: L
1254 DOUBLE PRECISION :: F_2
1262 INTEGER IJK2E, IPJK2, IPJMK2
1264 DOUBLE PRECISION :: smallTheta
1266 DOUBLE PRECISION EPg_avg, Mu_g_avg, RO_g_avg
1268 DOUBLE PRECISION ep_star_avg
1275 DOUBLE PRECISION K_12_avg, Tau_12_avg, Tau_1_avg
1277 DOUBLE PRECISION WGC1, WGC2
1281 DOUBLE PRECISION USCM, VSCM,WSCM
1282 DOUBLE PRECISION WSCM1,WSCM2
1284 DOUBLE PRECISION UGC, VGC, WGC
1286 DOUBLE PRECISION VREL
1288 DOUBLE PRECISION VSLIP
1292 DOUBLE PRECISION g0EPs_avg
1301 SELECT CASE (type_of_cell)
1306 ijk2e = east_of(ijk2)
1316 IF(kt_type_enum == simonin_1996 .OR.&
1317 kt_type_enum == ahmadi_1995)
THEN 1325 g0(mm) =
g_0avg(ijk, ijk,
'X',
i_of(ijk), m, mm)
1327 dp_avg(mm) = (
vol(ijk)*
d_p(ijk, mm) +
vol(ijk2)*
d_p(ijk2, mm))/(
vol(ijk) +
vol(ijk2))
1328 g0eps_avg = g0eps_avg +
g_0avg(ijk, ijk,
'X',
i_of(ijk), m, mm) &
1333 IF(th_avg(mm) <
zero) th_avg(mm) = smalltheta
1339 vgc = avg_x(
v_g(ijk1),
v_g(ipjmk2),
i_of(ijk1))
1340 wgc1 = avg_x(avg_z_t(
w_g(km_of(ijk2)),
w_g(ijk2)),&
1341 avg_z_t(
w_g(km_of(ipjk2)),
w_g(ipjk2)),&
1343 wgc2 = avg_x(avg_z_t(
w_g(km_of(ijk1)),
w_g(ijk1)),&
1344 avg_z_t(
w_g(km_of(ipjmk2)),
w_g(ipjmk2)),&
1346 wgc = avg_y(wgc2, wgc1,
j_of(ijk1))
1347 uscm = avg_y(
u_s(ijk1,m),
u_s(ijk2,m),
j_of(ijk1))
1348 vscm = avg_x(
v_s(ijk1,m),
v_s(ipjmk2,m),
i_of(ijk1))
1349 wscm1= avg_x(avg_z_t(
w_s(km_of(ijk2),m),
w_s(ijk2,m)),&
1350 avg_z_t(
w_s(km_of(ipjk2),m),
w_s(ipjk2,m)),&
1352 wscm2= avg_x(avg_z_t(
w_s(km_of(ijk1),m),
w_s(ijk1,m)),&
1353 avg_z_t(
w_s(km_of(ipjmk2),m),
w_s(ipjmk2,m)),&
1355 wscm = avg_y(wscm2, wscm1,
j_of(ijk1))
1358 vrel = dsqrt( (ugc - uscm)**2 + (vgc - vscm)**2 + &
1365 CALL get_cg_f2(g0, eps_avg, epg_avg, ep_star_avg, &
1366 g0eps_avg, th_avg, mu_g_avg, ro_g_avg, ros_avg,&
1367 dp_avg, k_12_avg, tau_12_avg, tau_1_avg, &
1373 ijk2 = north_of(ijk)
1383 IF(kt_type_enum == simonin_1996 .OR.&
1384 kt_type_enum == ahmadi_1995)
THEN 1393 g0(mm) =
g_0avg(ijk, ijk,
'X',
i_of(ijk), m, mm)
1395 dp_avg(mm) = (
vol(ijk)*
d_p(ijk, mm) +
vol(ijk2)*
d_p(ijk2, mm))/(
vol(ijk) +
vol(ijk2))
1396 g0eps_avg = g0eps_avg +
g_0avg(ijk, ijk,
'X',
i_of(ijk), m, mm) &
1400 IF(th_avg(mm) <
zero) th_avg(mm) = smalltheta
1405 vgc = avg_x(
v_g(ijk1),
v_g(ipjmk2),
i_of(ijk1))
1406 wgc1 = avg_x(avg_z_t(
w_g(km_of(ijk2)),
w_g(ijk2)),&
1407 avg_z_t(
w_g(km_of(ipjk2)),
w_g(ipjk2)),&
1409 wgc2 = avg_x(avg_z_t(
w_g(km_of(ijk1)),
w_g(ijk1)),&
1410 avg_z_t(
w_g(km_of(ipjmk2)),
w_g(ipjmk2)),&
1412 wgc = avg_y(wgc2, wgc1,
j_of(ijk1))
1413 uscm = avg_y(
u_s(ijk1,m),
u_s(ijk2,m),
j_of(ijk1))
1414 vscm = avg_x(
v_s(ijk1,m),
v_s(ipjmk2,m),
i_of(ijk1))
1415 wscm1= avg_x(avg_z_t(
w_s(km_of(ijk2),m),
w_s(ijk2,m)),&
1416 avg_z_t(
w_s(km_of(ipjk2),m),
w_s(ipjk2,m)),&
1418 wscm2= avg_x(avg_z_t(
w_s(km_of(ijk1),m),
w_s(ijk1,m)),&
1419 avg_z_t(
w_s(km_of(ipjmk2),m),
w_s(ipjmk2,m)),&
1421 wscm = avg_y(wscm2, wscm1,
j_of(ijk1))
1425 vrel = dsqrt( (ugc - uscm)**2 + (vgc - vscm)**2 + &
1433 CALL get_cg_f2(g0, eps_avg, epg_avg, ep_star_avg, &
1434 g0eps_avg, th_avg, mu_g_avg, ro_g_avg, ros_avg,&
1435 dp_avg, k_12_avg, tau_12_avg, tau_1_avg, &
1451 IF(kt_type_enum == simonin_1996 .OR.&
1452 kt_type_enum == ahmadi_1995)
THEN 1461 g0(mm) =
g_0avg(ijk, ijk,
'X',
i_of(ijk), m, mm)
1463 dp_avg(mm) = (
vol(ijk)*
d_p(ijk, mm) +
vol(ijk2)*
d_p(ijk2, mm))/(
vol(ijk) +
vol(ijk2))
1465 g0eps_avg = g0eps_avg +
g_0avg(ijk, ijk,
'X',
i_of(ijk), m, mm) &
1469 IF(th_avg(mm) <
zero) th_avg(mm) = smalltheta
1474 vgc = avg_x(
v_g(ijk1),
v_g(ipjmk2),
i_of(ijk1))
1475 wgc1 = avg_x(avg_z_t(
w_g(km_of(ijk2)),
w_g(ijk2)),&
1476 avg_z_t(
w_g(km_of(ipjk2)),
w_g(ipjk2)),&
1478 wgc2 = avg_x(avg_z_t(
w_g(km_of(ijk1)),
w_g(ijk1)),&
1479 avg_z_t(
w_g(km_of(ipjmk2)),
w_g(ipjmk2)),&
1481 wgc = avg_y(wgc2, wgc1,
j_of(ijk1))
1482 uscm = avg_y(
u_s(ijk1,m),
u_s(ijk2,m),
j_of(ijk1))
1483 vscm = avg_x(
v_s(ijk1,m),
v_s(ipjmk2,m),
i_of(ijk1))
1484 wscm1= avg_x(avg_z_t(
w_s(km_of(ijk2),m),
w_s(ijk2,m)),&
1485 avg_z_t(
w_s(km_of(ipjk2),m),
w_s(ipjk2,m)),&
1487 wscm2= avg_x(avg_z_t(
w_s(km_of(ijk1),m),
w_s(ijk1,m)),&
1488 avg_z_t(
w_s(km_of(ipjmk2),m),
w_s(ipjmk2,m)),&
1490 wscm = avg_y(wscm2, wscm1,
j_of(ijk1))
1493 vrel = dsqrt( (ugc - uscm)**2 + (vgc - vscm)**2 + &
1502 CALL get_cg_f2(g0, eps_avg, epg_avg, ep_star_avg, &
1503 g0eps_avg, th_avg, mu_g_avg, ro_g_avg, ros_avg,&
1504 dp_avg, k_12_avg, tau_12_avg, tau_1_avg, &
1509 WRITE(*,*)
'CG_CALC_GRBDRY' 1510 WRITE(*,*)
'UNKNOWN TYPE OF CELL:',type_of_cell
1511 WRITE(*,*)
'ACCEPTABLE TYPES ARE:' 1512 WRITE(*,*)
'U_MOMENTUM' 1513 WRITE(*,*)
'V_MOMENTUM' 1514 WRITE(*,*)
'W_MOMENTUM' 1531 SUBROUTINE get_cg_f2(g0,EPS,EPG, ep_star_avg, &
1532 g0eps_avg,th,mu_g_avg,ro_g_avg,ros_avg, &
1533 dp_avg,k_12_avg, tau_12_avg, tau_1_avg, &
1557 DOUBLE PRECISION,
INTENT(IN) :: EPG, ep_star_avg
1559 DOUBLE PRECISION,
INTENT(INOUT) :: g0EPs_avg
1561 DOUBLE PRECISION,
INTENT(INOUT) :: TH (
dimension_m)
1563 DOUBLE PRECISION,
INTENT(IN) :: Mu_g_avg
1565 DOUBLE PRECISION,
INTENT(IN) :: RO_g_avg
1567 DOUBLE PRECISION,
INTENT(IN) :: ROS_avg(
dimension_m)
1569 DOUBLE PRECISION,
INTENT(IN) :: DP_avg(
dimension_m)
1571 DOUBLE PRECISION,
INTENT(IN) :: K_12_avg, Tau_12_avg, Tau_1_avg
1573 DOUBLE PRECISION,
INTENT(IN) :: VREL
1575 DOUBLE PRECISION,
INTENT(IN) :: VSLIP
1577 INTEGER,
INTENT(IN) :: M
1582 DOUBLE PRECISION :: Ps
1583 DOUBLE PRECISION :: F_2
1584 DOUBLE PRECISION :: D_PM, M_PM
1589 DOUBLE PRECISION :: PHIP_JJ
1594 IF(th(m) .LE.
zero)
THEN 1596 IF (mype.eq.pe_io)
THEN 1598 'Warning: Negative granular temp at wall set to 1e-8' 1605 m_pm = (
pi/6.d0)*(d_pm**3)*ros_avg(m)
1610 SELECT CASE (kt_type_enum)
1613 ps = ros_avg(m)*eps(m)*th(m)*(
one+4.d0*
eta*g0eps_avg)
1618 ps = ros_avg(m)*eps(m)*th(m)*(
one+4.d0*
eta*g0eps_avg)
1623 ps = ros_avg(m)*eps(m)*th(m)*&
1634 ps = ros_avg(m)*eps(m)*th(m)*(
one+2.d0*(
one+
c_e)*g0eps_avg)
1640 ps = ros_avg(m)*eps(m)*th(m)*(
one+2.d0*(
one+
c_e)*g0eps_avg)
1645 WRITE (*,
'(A)')
'CG_CALC_GRBDRY => GET_CG_F2 ' 1646 WRITE (*,
'(A,A)')
'Unknown KT_TYPE: ', kt_type
1653 SELECT CASE (kt_type_enum)
1655 CASE (lun_1984, simonin_1996, ahmadi_1995, gd_1999, gtsh_2012)
1663 IF (vslip ==
zero)
THEN 1677 f_2 = (
phip*dsqrt(3d0*th(m))*
pi*ros_avg(m)*eps(m)*&
1678 g0(m))/(6d0*(
one-ep_star_avg))
1680 f_2 = (phip_jj(vslip,th(m))*dsqrt(3d0*th(m))*
pi*&
1681 ros_avg(m)*eps(m)*g0(m))/(6d0*(
one-ep_star_avg))
1689 f_2 = (
phip*dsqrt(3.d0*th(m)/m_pm)*
pi*ros_avg(m)*&
1690 eps(m)*g0(m))/(6.d0*(
one-ep_star_avg))
1692 f_2 = (phip_jj(vslip,th(m))*dsqrt(3.d0*th(m)/m_pm)*&
1693 pi*ros_avg(m)*eps(m)*g0(m))/(6.d0*(
one-ep_star_avg))
1699 WRITE (*,
'(A)')
'CALC_GRBDRY => F_HW ' 1700 WRITE (*,
'(A,A)')
'Unknown KT_TYPE: ', kt_type
double precision, dimension(dimension_bc, dim_m) bc_ww_s
double precision, dimension(:,:), allocatable v_s
double precision, dimension(:), allocatable tau_1
integer, dimension(:), allocatable i_of
double precision, dimension(dimension_bc, dim_m) bc_uw_s
double precision, dimension(:), allocatable ep_g
double precision, parameter one
subroutine write_error(NAME, LINE, LMAX)
double precision, dimension(:,:), allocatable w_s
double precision, parameter switch
double precision function f_hw(g0, EPS, EPG, ep_star_avg, g0EPs_avg, TH, Mu_g_avg, RO_g_avg, ROs_avg, DP_avg, K_12_avg, Tau_12_avg, Tau_1_avg, VREL, VSLIP, M)
double precision, dimension(:), allocatable k_12
double precision function s_star(phi, Chi)
double precision, dimension(:), allocatable tau_12
double precision, dimension(:,:), allocatable u_s
subroutine calc_gw_hw_cw(g0, EPS, EPG, ep_star_avg, g0EP_avg, TH, Mu_g_avg, RO_g_avg, ROs_avg, DP_avg, K_12_avg, Tau_12_avg, Tau_1_avg, VREL, VSLIP, DEL_U, S_S, S_dd, VEL, W_VEL, M, gw, hw, cw)
double precision, dimension(:), allocatable ep_star_array
integer, dimension(:), allocatable k_of
subroutine calc_grbdry(IJK1, IJK2, FCELL, COM, M, L, Gw, Hw, Cw)
double precision, dimension(:,:), allocatable d_p
double precision, parameter alpha
subroutine calc_s_ddot_s(IJK1, IJK2, FCELL, COM, M, DEL_DOT_U, S_DDOT_S,
subroutine mfix_exit(myID, normal_termination)
integer, dimension(:), allocatable j_of
double precision, parameter small_number
double precision, parameter zero_ep_s
double precision, dimension(:,:), allocatable theta_m
double precision eps_f_min
double precision, dimension(:), allocatable v_g
double precision, dimension(:), allocatable w_g
double precision, parameter half
double precision, parameter large_number
double precision, dimension(:,:), allocatable ro_s
double precision function k_phi(phi)
double precision, dimension(:), allocatable mu_g
double precision, parameter epm
double precision, dimension(:), allocatable u_g
double precision function ep_s(IJK, xxM)
double precision tan_phi_w
subroutine get_cg_f2(g0, EPS, EPG, ep_star_avg, g0EPs_avg, TH, Mu_g_avg, RO_g_avg, Ros_avg, DP_avg, K_12_avg, Tau_12_avg, Tau_1_avg, VREL, VSLIP, M, F_2)
double precision, parameter pi
double precision, dimension(:), allocatable vol
double precision, dimension(dimension_bc, dim_m) bc_vw_s
subroutine cg_calc_grbdry(IJK, TYPE_OF_CELL, M, L, F_2)
double precision, dimension(:), allocatable ro_g
double precision function g_0avg(IJK1, IJK2, DIR, L, M1, M2)
double precision, parameter zero
logical, parameter switch_ia