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