320 m_x, m_y, m_z, E, p, u, v, w, Ax, &
321 coef, gs, h, c_avisc_low, rk_scheme, dt)
322 type(
field_t),
intent(inout) :: rho_field, m_x, m_y, m_z, E
323 type(
field_t),
intent(in) :: p, u, v, w, h
324 class(
ax_t),
intent(inout) :: Ax
325 type(
coef_t),
intent(inout) :: coef
326 type(
gs_t),
intent(inout) :: gs
327 real(kind=
rp) :: c_avisc_low
329 real(kind=
rp),
intent(in) :: dt
330 integer :: n, s, i, j, k
331 real(kind=
rp) :: t, c
332 type(
field_t),
pointer :: k_rho_1, k_rho_2, k_rho_3, k_rho_4, &
333 k_m_x_1, k_m_x_2, k_m_x_3, k_m_x_4, &
334 k_m_y_1, k_m_y_2, k_m_y_3, k_m_y_4, &
335 k_m_z_1, k_m_z_2, k_m_z_3, k_m_z_4, &
336 k_e_1, k_e_2, k_e_3, k_e_4, &
337 temp_rho, temp_m_x, temp_m_y, temp_m_z, temp_e
338 integer :: temp_indices(25)
370 call k_rho%assign(1, k_rho_1)
371 call k_rho%assign(2, k_rho_2)
372 call k_rho%assign(3, k_rho_3)
373 call k_rho%assign(4, k_rho_4)
375 call k_m_x%assign(1, k_m_x_1)
376 call k_m_x%assign(2, k_m_x_2)
377 call k_m_x%assign(3, k_m_x_3)
378 call k_m_x%assign(4, k_m_x_4)
380 call k_m_y%assign(1, k_m_y_1)
381 call k_m_y%assign(2, k_m_y_2)
382 call k_m_y%assign(3, k_m_y_3)
383 call k_m_y%assign(4, k_m_y_4)
385 call k_m_z%assign(1, k_m_z_1)
386 call k_m_z%assign(2, k_m_z_2)
387 call k_m_z%assign(3, k_m_z_3)
388 call k_m_z%assign(4, k_m_z_4)
390 call k_e%assign(1, k_e_1)
391 call k_e%assign(2, k_e_2)
392 call k_e%assign(3, k_e_3)
393 call k_e%assign(4, k_e_4)
406 temp_m_z%x_d, temp_e%x_d, &
407 k_rho%items(j)%ptr%x_d, k_m_x%items(j)%ptr%x_d, k_m_y%items(j)%ptr%x_d, &
408 k_m_z%items(j)%ptr%x_d, k_e%items(j)%ptr%x_d, &
409 dt, rk_scheme%coeffs_A(i, j), n)
412 temp_m_z%x_d, temp_e%x_d, &
413 k_rho%items(j)%ptr%x_d, k_m_x%items(j)%ptr%x_d, k_m_y%items(j)%ptr%x_d, &
414 k_m_z%items(j)%ptr%x_d, k_e%items(j)%ptr%x_d, &
415 dt, rk_scheme%coeffs_A(i, j), n)
418 temp_m_z%x_d, temp_e%x_d, &
419 k_rho%items(j)%ptr%x_d, k_m_x%items(j)%ptr%x_d, k_m_y%items(j)%ptr%x_d, &
420 k_m_z%items(j)%ptr%x_d, k_e%items(j)%ptr%x_d, &
421 dt, rk_scheme%coeffs_A(i, j), n)
427 k_m_y%items(i)%ptr, k_m_z%items(i)%ptr, k_e%items(i)%ptr, &
428 temp_rho, temp_m_x, temp_m_y, temp_m_z, temp_e, &
430 coef, gs, h, c_avisc_low)
437 m_x%x_d, m_y%x_d, m_z%x_d, e%x_d, &
438 k_rho%items(i)%ptr%x_d, k_m_x%items(i)%ptr%x_d, k_m_y%items(i)%ptr%x_d, &
439 k_m_z%items(i)%ptr%x_d, k_e%items(i)%ptr%x_d, &
440 dt, rk_scheme%coeffs_b(i), n)
443 m_x%x_d, m_y%x_d, m_z%x_d, e%x_d, &
444 k_rho%items(i)%ptr%x_d, k_m_x%items(i)%ptr%x_d, k_m_y%items(i)%ptr%x_d, &
445 k_m_z%items(i)%ptr%x_d, k_e%items(i)%ptr%x_d, &
446 dt, rk_scheme%coeffs_b(i), n)
449 m_x%x_d, m_y%x_d, m_z%x_d, e%x_d, &
450 k_rho%items(i)%ptr%x_d, k_m_x%items(i)%ptr%x_d, k_m_y%items(i)%ptr%x_d, &
451 k_m_z%items(i)%ptr%x_d, k_e%items(i)%ptr%x_d, &
452 dt, rk_scheme%coeffs_b(i), n)
460 rhs_m_z, rhs_E, rho_field, &
461 m_x, m_y, m_z, E, p, u, v, w, Ax, &
462 coef, gs, h, c_avisc_low)
463 type(
field_t),
intent(inout) :: rhs_rho_field, rhs_m_x, rhs_m_y, rhs_m_z, rhs_E
464 type(
field_t),
intent(inout) :: rho_field, m_x, m_y, m_z, E
465 type(
field_t),
intent(in) :: p, u, v, w, h
466 class(
ax_t),
intent(inout) :: Ax
467 type(
coef_t),
intent(inout) :: coef
468 type(
gs_t),
intent(inout) :: gs
469 real(kind=
rp) :: c_avisc_low
471 type(
field_t),
pointer :: temp, f_x, f_y, f_z, &
472 visc_rho, visc_m_x, visc_m_y, visc_m_z, visc_E
473 integer :: temp_indices(9)
482 call div(rhs_rho_field%x, m_x%x, m_y%x, m_z%x, coef)
488 m_x%x_d, m_y%x_d, m_z%x_d, rho_field%x_d, p%x_d, n)
491 m_x%x_d, m_y%x_d, m_z%x_d, rho_field%x_d, p%x_d, n)
494 m_x%x_d, m_y%x_d, m_z%x_d, rho_field%x_d, p%x_d, n)
496 call div(rhs_m_x%x, f_x%x, f_y%x, f_z%x, coef)
500 m_x%x_d, m_y%x_d, m_z%x_d, &
501 rho_field%x_d, p%x_d, n)
504 m_x%x_d, m_y%x_d, m_z%x_d, &
505 rho_field%x_d, p%x_d, n)
508 m_x%x_d, m_y%x_d, m_z%x_d, &
509 rho_field%x_d, p%x_d, n)
511 call div(rhs_m_y%x, f_x%x, f_y%x, f_z%x, coef)
515 m_x%x_d, m_y%x_d, m_z%x_d, &
516 rho_field%x_d, p%x_d, n)
519 m_x%x_d, m_y%x_d, m_z%x_d, &
520 rho_field%x_d, p%x_d, n)
523 m_x%x_d, m_y%x_d, m_z%x_d, &
524 rho_field%x_d, p%x_d, n)
526 call div(rhs_m_z%x, f_x%x, f_y%x, f_z%x, coef)
531 m_x%x_d, m_y%x_d, m_z%x_d, &
532 rho_field%x_d, p%x_d, e%x_d, n)
534 call euler_res_part_e_flux_cuda(f_x%x_d, f_y%x_d, f_z%x_d, &
535 m_x%x_d, m_y%x_d, m_z%x_d, &
536 rho_field%x_d, p%x_d, e%x_d, n)
538 call euler_res_part_e_flux_opencl(f_x%x_d, f_y%x_d, f_z%x_d, &
539 m_x%x_d, m_y%x_d, m_z%x_d, &
540 rho_field%x_d, p%x_d, e%x_d, n)
542 call div(rhs_e%x, f_x%x, f_y%x, f_z%x, coef)
544 call gs%op(rhs_rho_field, gs_op_add)
545 call gs%op(rhs_m_x, gs_op_add)
546 call gs%op(rhs_m_y, gs_op_add)
547 call gs%op(rhs_m_z, gs_op_add)
548 call gs%op(rhs_e, gs_op_add)
552 rhs_m_y%x_d, rhs_m_z%x_d, &
553 rhs_e%x_d, coef%mult_d, n)
556 rhs_m_y%x_d, rhs_m_z%x_d, &
557 rhs_e%x_d, coef%mult_d, n)
560 rhs_m_y%x_d, rhs_m_z%x_d, &
561 rhs_e%x_d, coef%mult_d, n)
571 call ax%compute(visc_rho%x, rho_field%x, coef, p%msh, p%Xh)
572 call ax%compute(visc_m_x%x, m_x%x, coef, p%msh, p%Xh)
573 call ax%compute(visc_m_y%x, m_y%x, coef, p%msh, p%Xh)
574 call ax%compute(visc_m_z%x, m_z%x, coef, p%msh, p%Xh)
575 call ax%compute(visc_e%x, e%x, coef, p%msh, p%Xh)
577 call gs%op(visc_rho, gs_op_add)
578 call gs%op(visc_m_x, gs_op_add)
579 call gs%op(visc_m_y, gs_op_add)
580 call gs%op(visc_m_z, gs_op_add)
581 call gs%op(visc_e, gs_op_add)
585 visc_rho%x_d, h%x_d, c_avisc_low, n)
587 visc_m_x%x_d, h%x_d, c_avisc_low, n)
589 visc_m_y%x_d, h%x_d, c_avisc_low, n)
591 visc_m_z%x_d, h%x_d, c_avisc_low, n)
593 visc_e%x_d, h%x_d, c_avisc_low, n)
596 visc_rho%x_d, h%x_d, c_avisc_low, n)
598 visc_m_x%x_d, h%x_d, c_avisc_low, n)
600 visc_m_y%x_d, h%x_d, c_avisc_low, n)
602 visc_m_z%x_d, h%x_d, c_avisc_low, n)
604 visc_e%x_d, h%x_d, c_avisc_low, n)
607 visc_rho%x_d, h%x_d, c_avisc_low, n)
609 visc_m_x%x_d, h%x_d, c_avisc_low, n)
611 visc_m_y%x_d, h%x_d, c_avisc_low, n)
613 visc_m_z%x_d, h%x_d, c_avisc_low, n)
615 visc_e%x_d, h%x_d, c_avisc_low, n)