21 const Array4<Real >& var,
22 const Array4<Real const>& var_old,
23 const Array4<Real const>& var_clim,
24 const Array4<Real const>& clim_coeff,
25 const Array4<Real const>& Hz,
26 const Array4<Real const>& pm,
27 const Array4<Real const>& pn,
30 ParallelFor(bx, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k)
32 Real cff = 0.5_rt * (clim_coeff(i-ioff,j-joff,k) + clim_coeff(i,j,k));
33 if (ioff==1 || joff==1) {
34 Real om = 2.0_rt / (pm(i-ioff,j-joff,0)+pm(i,j,0));
35 Real on = 2.0_rt / (pn(i-ioff,j-joff,0)+pn(i,j,0));
36 cff *= 0.5_rt * (Hz(i-ioff,j-joff,k) + Hz(i,j,k)) * om * on;
40 var(i,j,k) += cff * (var_clim(i,j,k) - var_old(i,j,k));
void apply_clim_nudg(const amrex::Box &bx, int ioff, int joff, const amrex::Array4< amrex::Real > &var, const amrex::Array4< amrex::Real const > &var_old, const amrex::Array4< amrex::Real const > &var_clim, const amrex::Array4< amrex::Real const > &clim_coeff, const amrex::Array4< amrex::Real const > &Hz, const amrex::Array4< amrex::Real const > &pm, const amrex::Array4< amrex::Real const > &pn, const amrex::Real dt_lev=amrex::Real(0.0))
Apply climatology nudging.