Helper function for reading data from NetCDF file into a provided FAB.
257 ns1 = nc_arrays[iv].get_vshape()[1];
263 ns2 = nc_arrays[iv].get_vshape()[1];
264 ns3 = nc_arrays[iv].get_vshape()[2];
267 ns1 = nc_arrays[iv].get_vshape()[1];
268 ns2 = nc_arrays[iv].get_vshape()[2];
269 ns3 = nc_arrays[iv].get_vshape()[3];
272 ns1 = nc_arrays[iv].get_vshape()[1];
273 ns2 = nc_arrays[iv].get_vshape()[2];
274 ns3 = nc_arrays[iv].get_vshape()[3];
277 ns1 = nc_arrays[iv].get_vshape()[1];
283 amrex::Abort(
"Dont know this NC_Data_Dims_Type");
290 int khi = std::min(domain.bigEnd(2), ns1-1);
293 amrex::Box in_box(amrex::IntVect(0,0,0), amrex::IntVect(ns3-1,ns2-1,ns1-1));
294 amrex::Box my_box(amrex::IntVect(0,0,0), amrex::IntVect(ns3-1,ns2-1,
khi));
296 if (var_name ==
"PH" || var_name ==
"PHB") {
297 my_box.setType(amrex::IndexType(amrex::IntVect(0,0,1)));
298 my_box.setBig(2,
khi+1);
300 else if (var_name ==
"U" || var_name ==
"UU" || var_name ==
"MAPFAC_U") {
301 my_box.setType(amrex::IndexType(amrex::IntVect(1,0,0)));
303 else if (var_name ==
"V" || var_name ==
"VV" || var_name ==
"MAPFAC_V") {
304 my_box.setType(amrex::IndexType(amrex::IntVect(0,1,0)));
306 else if (var_name ==
"W" || var_name ==
"WW") {
307 my_box.setType(amrex::IndexType(amrex::IntVect(0,0,1)));
308 my_box.setBig(2,
khi+1);
310 else if (var_name ==
"TSLB" || var_name ==
"SMOIS" || var_name ==
"SH2O" || var_name ==
"ZS" || var_name ==
"DZS") {
312 my_box.setType(amrex::IndexType(amrex::IntVect(0,0,1)));
315 amrex::Arena*
Arena_Used = amrex::The_Arena();
321 amrex::Array4<DType> fab_arr = temp.array();
323 int ioff = temp.box().smallEnd()[0];
324 int joff = temp.box().smallEnd()[1];
325 int kmax = temp.box().bigEnd()[2];
328 auto num_pts = in_box.numPts();
330 for (
int n(0); n < num_pts; ++n) {
331 int k = n / (ns2*ns3);
332 if (k > kmax)
continue;
333 int j = (n - k*(ns2*ns3)) / ns3 + joff;
334 int i = n - k*(ns2*ns3) - (j-joff) * ns3 + ioff;
335 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