Helper function for reading data from NetCDF file into a provided FAB.
251 ns1 = nc_arrays[iv].get_vshape()[1];
257 ns2 = nc_arrays[iv].get_vshape()[1];
258 ns3 = nc_arrays[iv].get_vshape()[2];
261 ns1 = nc_arrays[iv].get_vshape()[1];
262 ns2 = nc_arrays[iv].get_vshape()[2];
263 ns3 = nc_arrays[iv].get_vshape()[3];
266 ns1 = nc_arrays[iv].get_vshape()[1];
267 ns2 = nc_arrays[iv].get_vshape()[2];
268 ns3 = nc_arrays[iv].get_vshape()[3];
271 ns1 = nc_arrays[iv].get_vshape()[1];
277 amrex::Abort(
"Dont know this NC_Data_Dims_Type");
284 int khi = std::min(domain.bigEnd(2), ns1-1);
287 amrex::Box in_box(amrex::IntVect(0,0,0), amrex::IntVect(ns3-1,ns2-1,ns1-1));
288 amrex::Box my_box(amrex::IntVect(0,0,0), amrex::IntVect(ns3-1,ns2-1,
khi));
290 if (var_name ==
"PH" || var_name ==
"PHB") {
291 my_box.setType(amrex::IndexType(amrex::IntVect(0,0,1)));
292 my_box.setBig(2,
khi+1);
294 else if (var_name ==
"U" || var_name ==
"UU" || var_name ==
"MAPFAC_U") {
295 my_box.setType(amrex::IndexType(amrex::IntVect(1,0,0)));
297 else if (var_name ==
"V" || var_name ==
"VV" || var_name ==
"MAPFAC_V") {
298 my_box.setType(amrex::IndexType(amrex::IntVect(0,1,0)));
300 else if (var_name ==
"W" || var_name ==
"WW") {
301 my_box.setType(amrex::IndexType(amrex::IntVect(0,0,1)));
302 my_box.setBig(2,
khi+1);
304 else if (var_name ==
"TSLB" || var_name ==
"SMOIS" || var_name ==
"SH2O" || var_name ==
"ZS" || var_name ==
"DZS") {
306 my_box.setType(amrex::IndexType(amrex::IntVect(0,0,1)));
309 amrex::Arena*
Arena_Used = amrex::The_Arena();
315 amrex::Array4<DType> fab_arr = temp.array();
317 int ioff = temp.box().smallEnd()[0];
318 int joff = temp.box().smallEnd()[1];
319 int kmax = temp.box().bigEnd()[2];
322 auto num_pts = in_box.numPts();
324 for (
int n(0); n < num_pts; ++n) {
325 int k = n / (ns2*ns3);
326 if (k > kmax)
continue;
327 int j = (n - k*(ns2*ns3)) / ns3 + joff;
328 int i = n - k*(ns2*ns3) - (j-joff) * ns3 + ioff;
329 fab_arr(i,j,k,0) =
static_cast<DType
>(*(nc_arrays[iv].get_data()+n));
const int khi
Definition: ERF_InitCustomPert_Bubble.H:21
Arena * Arena_Used
Definition: ERF_Morrison_Advance_F.H:23