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 :: f_x, f_y, f_z, &
472 visc_rho, visc_m_x, visc_m_y, visc_m_z, visc_E
473 integer :: temp_indices(8)
481 call div(rhs_rho_field%x, m_x%x, m_y%x, m_z%x, coef)
487 m_x%x_d, m_y%x_d, m_z%x_d, rho_field%x_d, p%x_d, n)
490 m_x%x_d, m_y%x_d, m_z%x_d, rho_field%x_d, p%x_d, n)
493 m_x%x_d, m_y%x_d, m_z%x_d, rho_field%x_d, p%x_d, n)
495 call div(rhs_m_x%x, f_x%x, f_y%x, f_z%x, coef)
499 m_x%x_d, m_y%x_d, m_z%x_d, &
500 rho_field%x_d, p%x_d, n)
503 m_x%x_d, m_y%x_d, m_z%x_d, &
504 rho_field%x_d, p%x_d, n)
507 m_x%x_d, m_y%x_d, m_z%x_d, &
508 rho_field%x_d, p%x_d, n)
510 call div(rhs_m_y%x, f_x%x, f_y%x, f_z%x, coef)
514 m_x%x_d, m_y%x_d, m_z%x_d, &
515 rho_field%x_d, p%x_d, n)
518 m_x%x_d, m_y%x_d, m_z%x_d, &
519 rho_field%x_d, p%x_d, n)
522 m_x%x_d, m_y%x_d, m_z%x_d, &
523 rho_field%x_d, p%x_d, n)
525 call div(rhs_m_z%x, f_x%x, f_y%x, f_z%x, coef)
530 m_x%x_d, m_y%x_d, m_z%x_d, &
531 rho_field%x_d, p%x_d, e%x_d, n)
533 call euler_res_part_e_flux_cuda(f_x%x_d, f_y%x_d, f_z%x_d, &
534 m_x%x_d, m_y%x_d, m_z%x_d, &
535 rho_field%x_d, p%x_d, e%x_d, n)
537 call euler_res_part_e_flux_opencl(f_x%x_d, f_y%x_d, f_z%x_d, &
538 m_x%x_d, m_y%x_d, m_z%x_d, &
539 rho_field%x_d, p%x_d, e%x_d, n)
541 call div(rhs_e%x, f_x%x, f_y%x, f_z%x, coef)
543 call gs%op(rhs_rho_field, gs_op_add)
544 call rotate_cyc(rhs_m_x%x, rhs_m_y%x, rhs_m_z%x, 1, coef)
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 rotate_cyc(rhs_m_x%x, rhs_m_y%x, rhs_m_z%x, 0, coef)
549 call gs%op(rhs_e, gs_op_add)
553 rhs_m_y%x_d, rhs_m_z%x_d, &
554 rhs_e%x_d, coef%mult_d, n)
557 rhs_m_y%x_d, rhs_m_z%x_d, &
558 rhs_e%x_d, coef%mult_d, n)
561 rhs_m_y%x_d, rhs_m_z%x_d, &
562 rhs_e%x_d, coef%mult_d, n)
572 call ax%compute(visc_rho%x, rho_field%x, coef, p%msh, p%Xh)
573 call ax%compute(visc_m_x%x, m_x%x, coef, p%msh, p%Xh)
574 call ax%compute(visc_m_y%x, m_y%x, coef, p%msh, p%Xh)
575 call ax%compute(visc_m_z%x, m_z%x, coef, p%msh, p%Xh)
576 call ax%compute(visc_e%x, e%x, coef, p%msh, p%Xh)
578 call gs%op(visc_rho, gs_op_add)
579 call rotate_cyc(visc_m_x%x, visc_m_y%x, visc_m_z%x, 1, coef)
580 call gs%op(visc_m_x, gs_op_add)
581 call gs%op(visc_m_y, gs_op_add)
582 call gs%op(visc_m_z, gs_op_add)
583 call rotate_cyc(visc_m_x%x, visc_m_y%x, visc_m_z%x, 0, coef)
584 call gs%op(visc_e, gs_op_add)
588 visc_rho%x_d, h%x_d, c_avisc_low, n)
590 visc_m_x%x_d, h%x_d, c_avisc_low, n)
592 visc_m_y%x_d, h%x_d, c_avisc_low, n)
594 visc_m_z%x_d, h%x_d, c_avisc_low, n)
596 visc_e%x_d, h%x_d, c_avisc_low, n)
599 visc_rho%x_d, h%x_d, c_avisc_low, n)
601 visc_m_x%x_d, h%x_d, c_avisc_low, n)
603 visc_m_y%x_d, h%x_d, c_avisc_low, n)
605 visc_m_z%x_d, h%x_d, c_avisc_low, n)
607 visc_e%x_d, h%x_d, c_avisc_low, n)
610 visc_rho%x_d, h%x_d, c_avisc_low, n)
612 visc_m_x%x_d, h%x_d, c_avisc_low, n)
614 visc_m_y%x_d, h%x_d, c_avisc_low, n)
616 visc_m_z%x_d, h%x_d, c_avisc_low, n)
618 visc_e%x_d, h%x_d, c_avisc_low, n)