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

20031221: netCDF array dimension limitations on PCs



>From: "linx" <address@hidden>
>Organization: ?
>Keywords: 200312201636.hBKGavp2008288 netCDF Fortran PC

Jordan (?),

>Hi,sorry to bother you for asking a question I met during the process
>of reading  a netcdf file.

No worries.

>I'm a college student in China ,now doing some research in
>climatology.  I have download a NCEP monthly mean height data file
>which is about 400MB in size,containing 671 months in time series
>,144*73 grid in  space,17 level in vertical direction. If I define a
>array with 4 dimension , hgt(144,73,17,671) for example, and using
>Fortran to read this data file. The size of array is beyond the memory
>limit of my PC.(I only use PC to do some data analysis)
>
>I  want to get only one level's data from the total 17 levels'.Can you
>use a smaller array to do so,hgt(144,73,671) for example. Can you give
>me some advice on resolving such a problem?

The netCDF API allows you to read any or all of the data in a netCDF
file.  Depending on what you want to do, you could:

- extract all levels for a single month
- extract one level for all months
- extract a subset of data from a grid on all levels for all months
- or any combination of the above that results in an array that is
  small enough

My experience using Fortran on different systems suggests that the
limitation you are running into may be a limit on the size of a single
array.  If this is the case, you could define multiple arrays that each
hold a part of the entire set of data.

Another possibility is that you are using something like GNU g77 which
does have fairly restrictive limits on array sizes.  You could write
your data input routines in C where you may not run into the same
restrictions and then call those routines from Fortran.

>Thanks a lot!

Best of luck in your research.

>LX

Cheers,

Tom Yoksas