@@ -121,6 +121,7 @@ module m_rhs
121121 real(wp), allocatable, dimension(:,:,:,:) :: qL_rsx_vf, qR_rsx_vf
122122 real(wp), allocatable, dimension(:,:,:,:) :: dqL_rsx_vf, dqR_rsx_vf
123123 $:GPU_DECLARE(create=' [blkmod1, blkmod2, alpha1, alpha2, Kterm]' )
124+ logical :: probe_first = .true.
124125 $:GPU_DECLARE(create=' [qL_rsx_vf, qR_rsx_vf]' )
125126 $:GPU_DECLARE(create=' [dqL_rsx_vf, dqR_rsx_vf]' )
126127
@@ -1057,6 +1058,8 @@ contains
10571058 real (wp) :: inv_ds, flux_face1, flux_face2
10581059 real (wp) :: advected_qty_val, pressure_val, velocity_val
10591060 real (wp) :: G1_eff, G2_eff
1061+ real (wp) :: probe_ref
1062+ integer :: probe_nbad
10601063
10611064 G1_eff = 0._wp
10621065 G2_eff = 0._wp
@@ -1096,6 +1099,35 @@ contains
10961099 end do
10971100 end do
10981101 $:END_GPU_PARALLEL_LOOP()
1102+ ! CI probe: the same bulk moduli recomputed on the host from the same fields, on the first call only.
1103+ if (probe_first) then
1104+ probe_first = .false.
1105+ $:GPU_UPDATE(host= ' [blkmod1, blkmod2]' )
1106+ $:GPU_UPDATE(host= ' [q_prim_vf%vf(eqn_idx%E)%sf, q_prim_vf%vf(eqn_idx%adv%beg)%sf, q_prim_vf%vf(eqn_idx%adv%end)%sf]' )
1107+ $:GPU_UPDATE(host= ' [q_prim_vf%vf(eqn_idx%cont%beg)%sf, q_prim_vf%vf(eqn_idx%cont%end)%sf]' )
1108+ probe_nbad = 0
1109+ do q_loop = 0 , p
1110+ do l_loop = 0 , n
1111+ do k_loop = 0 , m
1112+ call s_phase_bulk_modulus(q_prim_vf%vf(eqn_idx%E)%sf(k_loop, l_loop, q_loop), &
1113+ & q_prim_vf%vf(eqn_idx%adv%beg)%sf(k_loop, l_loop, q_loop), &
1114+ & q_prim_vf%vf(eqn_idx%cont%beg)%sf(k_loop, l_loop, q_loop), 1 , probe_ref)
1115+ probe_ref = probe_ref + (4._wp / 3._wp )* G1_eff
1116+ if (.not. abs (blkmod1(k_loop, l_loop, q_loop) - probe_ref) <= 1.e-12_wp * abs (probe_ref)) then
1117+ probe_nbad = probe_nbad + 1
1118+ if (probe_nbad == 1 .and. proc_rank == 0 ) print ' (A, 3I6, 2ES24.15)' , &
1119+ & ' eos probe rhs blkmod1 first bad cell ' , k_loop, l_loop, q_loop, blkmod1(k_loop, l_loop, &
1120+ & q_loop), probe_ref
1121+ end if
1122+ end do
1123+ end do
1124+ end do
1125+ if (proc_rank == 0 ) print ' (A, I8, A, I8)' , ' eos probe rhs blkmod1 mismatches ' , probe_nbad, ' of ' , &
1126+ & (m + 1 )* (n + 1 )* (p + 1 )
1127+ if (proc_rank == 0 ) print ' (A, 4ES24.15)' , ' eos probe rhs fields at cell 0: E adv cont blkmod1 ' , &
1128+ & q_prim_vf%vf(eqn_idx%E)%sf(0 , 0 , 0 ), q_prim_vf%vf(eqn_idx%adv%beg)%sf(0 , 0 , 0 ), &
1129+ & q_prim_vf%vf(eqn_idx%cont%beg)%sf(0 , 0 , 0 ), blkmod1(0 , 0 , 0 )
1130+ end if
10991131 end if
11001132
11011133 select case (idir)
0 commit comments