[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[netCDF #RKG-690285]: nf90_get_var hangs without return


> 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.

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

Steve Emmerson

Ticket Details
Ticket ID: RKG-690285
Department: Support netCDF
Priority: High
Status: Closed