This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
Jianyu, > I'd like to us nf90_get_var to read a netCDF variable named MU whose > partial dimensions are the transpose of the Fortran 90 array. > > When I call nf90_get_var with optional map, count and start, it just > hangs without return. > > I got the same issues with both of netcdf-3.6.3 and netcdf-4.1.2. > > Here are my codes > > netCDF variable dimensions : > MU(west_east, south_north, time) > > Array dimensions: > MU_Val(south_north, bdy_width, 1) > > ! Just need the 1st time level and > ! read transposed values for the > ! first two-dimensions. > > start_mu = (/1,1,1/) > map_mu = (/west_east, 1/) > cnt_mu = (/bdy_width,south_north,1/) > > status = nf90_get_var(ncid, MU_ID, MU_Val, start=start_mu,count=cnt_mu, > map=map_mu) > > I have no idea where the problem is. > > Appreciated for any help. ASSUMPTIONS: The most rapidly varying dimension of the stored netCDF variable is the east/west dimension; the second most rapidly varying dimension is the north/south dimension. When reading the variable, you want to transpose the east/west and north/south dimensions so that the north/south dimension is the most rapidly varying. You want the first time-step of the variable with all of the north/south elements but only "bdy_width" of the east/west elements. The "count" and "map" arguments should, therefore, be cnt_mu = (/bdy_width, south_north, 1/) map_mu = (/south_north, 1, south_north*bdy_width/) Please tell me if the assumptions are incorrect. > Jianyu Regards, Steve Emmerson Ticket Details =================== Ticket ID: RKG-690285 Department: Support netCDF Priority: High Status: Closed