Helper function for reading data from NetCDF file into a provided FAB.
247 ns1 = nc_arrays[iv].get_vshape()[1];
253 ns2 = nc_arrays[iv].get_vshape()[1];
254 ns3 = nc_arrays[iv].get_vshape()[2];
257 ns1 = nc_arrays[iv].get_vshape()[1];
258 ns2 = nc_arrays[iv].get_vshape()[2];
259 ns3 = nc_arrays[iv].get_vshape()[3];
262 ns1 = nc_arrays[iv].get_vshape()[1];
263 ns2 = nc_arrays[iv].get_vshape()[2];
264 ns3 = nc_arrays[iv].get_vshape()[3];
267 ns1 = nc_arrays[iv].get_vshape()[1];
273 amrex::Abort(
"Dont know this NC_Data_Dims_Type");
280 int khi = std::min(domain.bigEnd(2), ns1-1);
283 amrex::Box in_box(amrex::IntVect(0,0,0), amrex::IntVect(ns3-1,ns2-1,ns1-1));
284 amrex::Box my_box(amrex::IntVect(0,0,0), amrex::IntVect(ns3-1,ns2-1,
khi));
286 if (var_name ==
"PH" || var_name ==
"PHB") {
287 my_box.setType(amrex::IndexType(amrex::IntVect(0,0,1)));
288 my_box.setBig(2,
khi+1);
290 else if (var_name ==
"U" || var_name ==
"UU" || var_name ==
"MAPFAC_U") {
291 my_box.setType(amrex::IndexType(amrex::IntVect(1,0,0)));
293 else if (var_name ==
"V" || var_name ==
"VV" || var_name ==
"MAPFAC_V") {
294 my_box.setType(amrex::IndexType(amrex::IntVect(0,1,0)));
296 else if (var_name ==
"W" || var_name ==
"WW") {
297 my_box.setType(amrex::IndexType(amrex::IntVect(0,0,1)));
298 my_box.setBig(2,
khi+1);
300 else if (var_name ==
"TSLB" || var_name ==
"SMOIS" || var_name ==
"SH2O" || var_name ==
"ZS" || var_name ==
"DZS") {
302 my_box.setType(amrex::IndexType(amrex::IntVect(0,0,1)));
305 amrex::Arena*
Arena_Used = amrex::The_Arena();
311 amrex::Array4<DType> fab_arr = temp.array();
313 int ioff = temp.box().smallEnd()[0];
314 int joff = temp.box().smallEnd()[1];
315 int kmax = temp.box().bigEnd()[2];
318 auto num_pts = in_box.numPts();
320 for (
int n(0); n < num_pts; ++n) {
321 int k = n / (ns2*ns3);
322 if (k > kmax)
continue;
323 int j = (n - k*(ns2*ns3)) / ns3 + joff;
324 int i = n - k*(ns2*ns3) - (j-joff) * ns3 + ioff;
325 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:17