@@ -447,6 +447,7 @@ void IOPForcing::run_impl (const double dt)
447
447
const auto u_mean_h = Kokkos::create_mirror_view (u_mean);
448
448
const auto v_mean_h = Kokkos::create_mirror_view (v_mean);
449
449
450
+ const auto num_global_cols = m_grid->get_num_global_dofs ();
450
451
for (int k=0 ; k<m_num_levs; ++k) {
451
452
if (iop_nudge_tq){
452
453
Real& qv_mean_k = qv_mean_h (k/Pack::n)[k%Pack::n];
@@ -461,8 +462,8 @@ void IOPForcing::run_impl (const double dt)
461
462
m_comm.all_reduce (&qv_mean_k, 1 , MPI_SUM);
462
463
m_comm.all_reduce (&t_mean_k, 1 , MPI_SUM);
463
464
464
- qv_mean_k /= m_num_cols ;
465
- t_mean_k /= m_num_cols ;
465
+ qv_mean_k /= num_global_cols ;
466
+ t_mean_k /= num_global_cols ;
466
467
}
467
468
if (iop_nudge_uv){
468
469
Real& u_mean_k = u_mean_h (k/Pack::n)[k%Pack::n];
@@ -477,10 +478,11 @@ void IOPForcing::run_impl (const double dt)
477
478
m_comm.all_reduce (&u_mean_k, 1 , MPI_SUM);
478
479
m_comm.all_reduce (&v_mean_k, 1 , MPI_SUM);
479
480
480
- u_mean_k /= m_num_cols ;
481
- v_mean_k /= m_num_cols ;
481
+ u_mean_k /= num_global_cols ;
482
+ v_mean_k /= num_global_cols ;
482
483
}
483
484
}
485
+
484
486
Kokkos::deep_copy (qv_mean, qv_mean_h);
485
487
Kokkos::deep_copy (t_mean, t_mean_h);
486
488
Kokkos::deep_copy (u_mean, u_mean_h);
0 commit comments