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

Re: 20031009:read a 2.4 GB file ncdump: Invalid argument



>To: address@hidden
>cc: address@hidden,
>cc: address@hidden,
>cc: address@hidden
>From: Mary Haley <address@hidden>
>Subject: Re: NETCDF error
>Organization: UCAR/Unidata
>Keywords: 200310091415.h99EFLOb021926

Hi Sherrie,

Mary Haley <address@hidden> wrote:

> >   I am trying to read a 2.4 GB file that is on dave in /ptmp/sherrie/temp.
> > The file is called Morris_20020614_12.nc.  When I try to do an ncdump
> > to read any of the variables on the file I get the following 
> > 
> > ncdump -vPB -bf Morris_20020614_12.nc
> > 
> > gives 
> > data:
> > 
> >  PB =
> >   // PB(1-1020 ,1,1,1)
> >     ncdump: Invalid argument
> > 
> > I assume that file may be too large to read with normal netcdf routines.
> > Is there a special netcdf that can read larger files?  This is of course
> > a model output file.
> > 
> >                        Thanks,
> >                        Sherrie Fredrick
> 
> Hi Sherrie,
> 
> I think the problem with trying to grab the "PB" variable off the file
> is due to the fact that the storage location of PB in the file *could
> be* more than 2 Gb into the file. I noticed that the first variable in
> the file that I start seeing this error message on is THZ0.  I am able
> to read "TKE__MYJ" just fine.
> 
> "ncdump" on dave has large file support built in, but there are still
> some limitations on this.  There's an FAQ on this on the netCDF
> website:
> 
>    http://www.unidata.ucar.edu/packages/netcdf/faq.html#lfs
> 
> This pertains to writing > 2 Gb files, but it seems that the information
> could also apply to reading them.
> 
> I'm CC-ing address@hidden on this question to see what kind
> of limitations there are on reading these files.  I've included an
> "ncdump -h" of your file in case it helps.

The ncdump utility should be able to read any file that a program
using netCDF can write, but to read files larger than 2^31 bytes
(2.147 Gbytes), ncdump would have to have been compiled using the
"Large File Support" flags 

  -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE

and linked with a netCDF library compiled with the same flags.

If the ncdump you used was compiled and linked with large file support
and gets an error trying to read this file, then it sounds like you
have discovered a bug in ncdump.  In that case, could you make the
file that demonstrates the bug available to us, so we could fix it?

Thanks!

--Russ

> netcdf Morris_20020614_12 {
> dimensions:
>       Time = UNLIMITED ; // (1 currently)
>       DateStrLen = 19 ;
>       west_east_stag = 1021 ;
>       south_north = 918 ;
>       bottom_top = 34 ;
>       west_east = 1020 ;
>       south_north_stag = 919 ;
>       bottom_top_stag = 35 ;
>       soil_layers_stag = 4 ;
>       ext_scalar = 1 ;
> variables:
>       char Times(Time, DateStrLen) ;
>       float U(Time, bottom_top, south_north, west_east_stag) ;
>               U:FieldType = 104 ;
>               U:MemoryOrder = "XYZ" ;
>               U:description = "x-wind component" ;
>               U:units = "m s{-1}" ;
>               U:stagger = "X" ;
>       float V(Time, bottom_top, south_north_stag, west_east) ;
>               V:FieldType = 104 ;
>               V:MemoryOrder = "XYZ" ;
>               V:description = "y-wind component" ;
>               V:units = "m s{-1}" ;
>               V:stagger = "Y" ;
>       float W(Time, bottom_top_stag, south_north, west_east) ;
>               W:FieldType = 104 ;
>               W:MemoryOrder = "XYZ" ;
>               W:description = "z-wind component" ;
>               W:units = "m s{-1}" ;
>               W:stagger = "Z" ;
>       float WW(Time, bottom_top_stag, south_north, west_east) ;
>               WW:FieldType = 104 ;
>               WW:MemoryOrder = "XYZ" ;
>               WW:description = "eta-dot" ;
>               WW:units = "Pa s{-1}" ;
>               WW:stagger = "Z" ;
>       float PH(Time, bottom_top_stag, south_north, west_east) ;
>               PH:FieldType = 104 ;
>               PH:MemoryOrder = "XYZ" ;
>               PH:description = "perturbation geopotential" ;
>               PH:units = "m{2} s{-2}" ;
>               PH:stagger = "Z" ;
>       float PHB(Time, bottom_top_stag, south_north, west_east) ;
>               PHB:FieldType = 104 ;
>               PHB:MemoryOrder = "XYZ" ;
>               PHB:description = "base-state geopotential" ;
>               PHB:units = "m{2} s{-2}" ;
>               PHB:stagger = "Z" ;
>       float T(Time, bottom_top, south_north, west_east) ;
>               T:FieldType = 104 ;
>               T:MemoryOrder = "XYZ" ;
>               T:description = "perturbation potential temperature (theta-t0)" 
> ;
>               T:units = "K" ;
>               T:stagger = "" ;
>       float MU(Time, south_north, west_east) ;
>               MU:FieldType = 104 ;
>               MU:MemoryOrder = "XY " ;
>               MU:description = "perturbation dry air mass in column" ;
>               MU:units = "pascals" ;
>               MU:stagger = "" ;
>       float MUB(Time, south_north, west_east) ;
>               MUB:FieldType = 104 ;
>               MUB:MemoryOrder = "XY " ;
>               MUB:description = "base state dry air mass in column" ;
>               MUB:units = "pascals" ;
>               MUB:stagger = "" ;
>       float MU0(Time, south_north, west_east) ;
>               MU0:FieldType = 104 ;
>               MU0:MemoryOrder = "XY " ;
>               MU0:description = "initial dry mass in column" ;
>               MU0:units = "pascals" ;
>               MU0:stagger = "" ;
>       float TKE(Time, bottom_top, south_north, west_east) ;
>               TKE:FieldType = 104 ;
>               TKE:MemoryOrder = "XYZ" ;
>               TKE:description = "TURBULENCE KINETIC ENERGY" ;
>               TKE:units = "m{2} s{-2}" ;
>               TKE:stagger = "" ;
>       float P(Time, bottom_top, south_north, west_east) ;
>               P:FieldType = 104 ;
>               P:MemoryOrder = "XYZ" ;
>               P:description = "pressure" ;
>               P:units = "pascals" ;
>               P:stagger = "" ;
>       float QVAPOR(Time, bottom_top, south_north, west_east) ;
>               QVAPOR:FieldType = 104 ;
>               QVAPOR:MemoryOrder = "XYZ" ;
>               QVAPOR:description = "-" ;
>               QVAPOR:units = "-" ;
>               QVAPOR:stagger = "" ;
>       float QCLOUD(Time, bottom_top, south_north, west_east) ;
>               QCLOUD:FieldType = 104 ;
>               QCLOUD:MemoryOrder = "XYZ" ;
>               QCLOUD:description = "-" ;
>               QCLOUD:units = "-" ;
>               QCLOUD:stagger = "" ;
>       float QRAIN(Time, bottom_top, south_north, west_east) ;
>               QRAIN:FieldType = 104 ;
>               QRAIN:MemoryOrder = "XYZ" ;
>               QRAIN:description = "-" ;
>               QRAIN:units = "-" ;
>               QRAIN:stagger = "" ;
>       float QICE(Time, bottom_top, south_north, west_east) ;
>               QICE:FieldType = 104 ;
>               QICE:MemoryOrder = "XYZ" ;
>               QICE:description = "-" ;
>               QICE:units = "-" ;
>               QICE:stagger = "" ;
>       float QSNOW(Time, bottom_top, south_north, west_east) ;
>               QSNOW:FieldType = 104 ;
>               QSNOW:MemoryOrder = "XYZ" ;
>               QSNOW:description = "-" ;
>               QSNOW:units = "-" ;
>               QSNOW:stagger = "" ;
>       float QGRAUP(Time, bottom_top, south_north, west_east) ;
>               QGRAUP:FieldType = 104 ;
>               QGRAUP:MemoryOrder = "XYZ" ;
>               QGRAUP:description = "-" ;
>               QGRAUP:units = "-" ;
>               QGRAUP:stagger = "" ;
>       float TSLB(Time, soil_layers_stag, south_north, west_east) ;
>               TSLB:FieldType = 104 ;
>               TSLB:MemoryOrder = "XYZ" ;
>               TSLB:description = "SOIL TEMPERATURE" ;
>               TSLB:units = "K" ;
>               TSLB:stagger = "Z" ;
>       float Q2(Time, south_north, west_east) ;
>               Q2:FieldType = 104 ;
>               Q2:MemoryOrder = "XY " ;
>               Q2:description = "QV at 2 M" ;
>               Q2:units = "kg/kg" ;
>               Q2:stagger = "" ;
>       float T2(Time, south_north, west_east) ;
>               T2:FieldType = 104 ;
>               T2:MemoryOrder = "XY " ;
>               T2:description = "TEMP at 2 M" ;
>               T2:units = "K" ;
>               T2:stagger = "" ;
>       float TH2(Time, south_north, west_east) ;
>               TH2:FieldType = 104 ;
>               TH2:MemoryOrder = "XY " ;
>               TH2:description = "POT TEMP at 2 M" ;
>               TH2:units = "K" ;
>               TH2:stagger = "" ;
>       float U10(Time, south_north, west_east) ;
>               U10:FieldType = 104 ;
>               U10:MemoryOrder = "XY " ;
>               U10:description = "U at 10 M" ;
>               U10:units = "m/s" ;
>               U10:stagger = "" ;
>       float V10(Time, south_north, west_east) ;
>               V10:FieldType = 104 ;
>               V10:MemoryOrder = "XY " ;
>               V10:description = "V at 10 M" ;
>               V10:units = "m/s" ;
>               V10:stagger = "" ;
>       float SMOIS(Time, soil_layers_stag, south_north, west_east) ;
>               SMOIS:FieldType = 104 ;
>               SMOIS:MemoryOrder = "XYZ" ;
>               SMOIS:description = "SOIL MOISTURE" ;
>               SMOIS:units = "" ;
>               SMOIS:stagger = "Z" ;
>       float SMSTAV(Time, south_north, west_east) ;
>               SMSTAV:FieldType = 104 ;
>               SMSTAV:MemoryOrder = "XY " ;
>               SMSTAV:description = "MOISTURE VARIBILITY" ;
>               SMSTAV:units = "" ;
>               SMSTAV:stagger = "" ;
>       float SFROFF(Time, south_north, west_east) ;
>               SFROFF:FieldType = 104 ;
>               SFROFF:MemoryOrder = "XY " ;
>               SFROFF:description = "SURFACE RUNOFF" ;
>               SFROFF:units = "" ;
>               SFROFF:stagger = "" ;
>       float UDROFF(Time, south_north, west_east) ;
>               UDROFF:FieldType = 104 ;
>               UDROFF:MemoryOrder = "XY " ;
>               UDROFF:description = "UNDERGROUND RUNOFF" ;
>               UDROFF:units = "" ;
>               UDROFF:stagger = "" ;
>       int IVGTYP(Time, south_north, west_east) ;
>               IVGTYP:FieldType = 106 ;
>               IVGTYP:MemoryOrder = "XY " ;
>               IVGTYP:description = "VEGETATION TYPE" ;
>               IVGTYP:units = "" ;
>               IVGTYP:stagger = "" ;
>       int ISLTYP(Time, south_north, west_east) ;
>               ISLTYP:FieldType = 106 ;
>               ISLTYP:MemoryOrder = "XY " ;
>               ISLTYP:description = "SOIL TYPE" ;
>               ISLTYP:units = "" ;
>               ISLTYP:stagger = "" ;
>       float VEGFRA(Time, south_north, west_east) ;
>               VEGFRA:FieldType = 104 ;
>               VEGFRA:MemoryOrder = "XY " ;
>               VEGFRA:description = "VEGETATION FRACTION" ;
>               VEGFRA:units = "" ;
>               VEGFRA:stagger = "" ;
>       float ACSNOW(Time, south_north, west_east) ;
>               ACSNOW:FieldType = 104 ;
>               ACSNOW:MemoryOrder = "XY " ;
>               ACSNOW:description = "ACCUMULATED SNOW" ;
>               ACSNOW:units = "" ;
>               ACSNOW:stagger = "" ;
>       float ACSNOM(Time, south_north, west_east) ;
>               ACSNOM:FieldType = 104 ;
>               ACSNOM:MemoryOrder = "XY " ;
>               ACSNOM:description = "ACCUMULATED MELTED SNOW" ;
>               ACSNOM:units = "" ;
>               ACSNOM:stagger = "" ;
>       float SNOW(Time, south_north, west_east) ;
>               SNOW:FieldType = 104 ;
>               SNOW:MemoryOrder = "XY " ;
>               SNOW:description = "SNOW WATER EQUIVALENT" ;
>               SNOW:units = "" ;
>               SNOW:stagger = "" ;
>       float CANWAT(Time, south_north, west_east) ;
>               CANWAT:FieldType = 104 ;
>               CANWAT:MemoryOrder = "XY " ;
>               CANWAT:description = "CANOPY WATER" ;
>               CANWAT:units = "" ;
>               CANWAT:stagger = "" ;
>       float SST(Time, south_north, west_east) ;
>               SST:FieldType = 104 ;
>               SST:MemoryOrder = "XY " ;
>               SST:description = "SEA SURFACE TEMPERATURE" ;
>               SST:units = "K" ;
>               SST:stagger = "" ;
>       float WEASD(Time, south_north, west_east) ;
>               WEASD:FieldType = 104 ;
>               WEASD:MemoryOrder = "XY " ;
>               WEASD:description = "WATER EQUIVALENT OF ACCUMULATED SNOW" ;
>               WEASD:units = "" ;
>               WEASD:stagger = "" ;
>       float TKE_MYJ(Time, bottom_top, south_north, west_east) ;
>               TKE_MYJ:FieldType = 104 ;
>               TKE_MYJ:MemoryOrder = "XYZ" ;
>               TKE_MYJ:description = "TKE FROM MELLOR-YAMADA-JANJIC" ;
>               TKE_MYJ:units = "s{-2}" ;
>               TKE_MYJ:stagger = "" ;
>       float THZ0(Time, south_north, west_east) ;
>               THZ0:FieldType = 104 ;
>               THZ0:MemoryOrder = "XY " ;
>               THZ0:description = "POTENTIAL TEMPERATURE AT ZNT" ;
>               THZ0:units = "K" ;
>               THZ0:stagger = "" ;
>       float QZ0(Time, south_north, west_east) ;
>               QZ0:FieldType = 104 ;
>               QZ0:MemoryOrder = "XY " ;
>               QZ0:description = "SPECIFIC HUMIDITY AT ZNT" ;
>               QZ0:units = "kg kg{-1}" ;
>               QZ0:stagger = "" ;
>       float UZ0(Time, south_north, west_east) ;
>               UZ0:FieldType = 104 ;
>               UZ0:MemoryOrder = "XY " ;
>               UZ0:description = "U WIND COMPONENT AT ZNT" ;
>               UZ0:units = "m s{-1}" ;
>               UZ0:stagger = "" ;
>       float VZ0(Time, south_north, west_east) ;
>               VZ0:FieldType = 104 ;
>               VZ0:MemoryOrder = "XY " ;
>               VZ0:description = "V WIND COMPONENT AT ZNT" ;
>               VZ0:units = "m s{-1}" ;
>               VZ0:stagger = "" ;
>       float QSFC(Time, south_north, west_east) ;
>               QSFC:FieldType = 104 ;
>               QSFC:MemoryOrder = "XY " ;
>               QSFC:description = "SPECIFIC HUMIDITY AT LOWER BOUNDARY" ;
>               QSFC:units = "kg kg{-1}" ;
>               QSFC:stagger = "" ;
>       float AKHS(Time, south_north, west_east) ;
>               AKHS:FieldType = 104 ;
>               AKHS:MemoryOrder = "XY " ;
>               AKHS:description = "SFC EXCH COEFF FOR HEAT" ;
>               AKHS:units = "m s{-1}" ;
>               AKHS:stagger = "" ;
>       float AKMS(Time, south_north, west_east) ;
>               AKMS:FieldType = 104 ;
>               AKMS:MemoryOrder = "XY " ;
>               AKMS:description = "SFC EXCH COEFF FOR MOMENTUM" ;
>               AKMS:units = "m s{-1}" ;
>               AKMS:stagger = "" ;
>       float PB(Time, bottom_top, south_north, west_east) ;
>               PB:FieldType = 104 ;
>               PB:MemoryOrder = "XYZ" ;
>               PB:description = "BASE STATE PRESSURE AT HALF LEVELS" ;
>               PB:units = "Pa" ;
>               PB:stagger = "" ;
>       float MAPFAC_M(Time, south_north, west_east) ;
>               MAPFAC_M:FieldType = 104 ;
>               MAPFAC_M:MemoryOrder = "XY " ;
>               MAPFAC_M:description = "Map scale factor on mass grid" ;
>               MAPFAC_M:units = "dimensionless" ;
>               MAPFAC_M:stagger = "" ;
>       float F(Time, south_north, west_east) ;
>               F:FieldType = 104 ;
>               F:MemoryOrder = "XY " ;
>               F:description = "Coriolis sine latitude term" ;
>               F:units = "" ;
>               F:stagger = "" ;
>       float E(Time, south_north, west_east) ;
>               E:FieldType = 104 ;
>               E:MemoryOrder = "XY " ;
>               E:description = "Coriolis cosine latitude term" ;
>               E:units = "" ;
>               E:stagger = "" ;
>       float HGT(Time, south_north, west_east) ;
>               HGT:FieldType = 104 ;
>               HGT:MemoryOrder = "XY " ;
>               HGT:description = "Terrain Height" ;
>               HGT:units = "m" ;
>               HGT:stagger = "" ;
>       float TSK(Time, south_north, west_east) ;
>               TSK:FieldType = 104 ;
>               TSK:MemoryOrder = "XY " ;
>               TSK:description = "SURFACE SKIN TEMPERATURE" ;
>               TSK:units = "K" ;
>               TSK:stagger = "" ;
>       float P_TOP(Time, ext_scalar) ;
>               P_TOP:FieldType = 104 ;
>               P_TOP:MemoryOrder = "0  " ;
>               P_TOP:description = "" ;
>               P_TOP:units = "-" ;
>               P_TOP:stagger = "" ;
>       float FNM(Time, bottom_top) ;
>               FNM:FieldType = 104 ;
>               FNM:MemoryOrder = "Z  " ;
>               FNM:description = "upper wieght for vertical stretching" ;
>               FNM:units = "dimensionless" ;
>               FNM:stagger = "" ;
>       float FNP(Time, bottom_top) ;
>               FNP:FieldType = 104 ;
>               FNP:MemoryOrder = "Z  " ;
>               FNP:description = "lower weight for vertical stretching" ;
>               FNP:units = "dimensionless" ;
>               FNP:stagger = "" ;
>       float RDNW(Time, bottom_top) ;
>               RDNW:FieldType = 104 ;
>               RDNW:MemoryOrder = "Z  " ;
>               RDNW:description = "inverse dn values on full (w) levels" ;
>               RDNW:units = "dimensionless" ;
>               RDNW:stagger = "" ;
>       float RDN(Time, bottom_top) ;
>               RDN:FieldType = 104 ;
>               RDN:MemoryOrder = "Z  " ;
>               RDN:description = "dn values on half (mass) levels" ;
>               RDN:units = "dimensionless" ;
>               RDN:stagger = "" ;
>       float DNW(Time, bottom_top) ;
>               DNW:FieldType = 104 ;
>               DNW:MemoryOrder = "Z  " ;
>               DNW:description = "dn values on full (w) levels" ;
>               DNW:units = "dimensionless" ;
>               DNW:stagger = "" ;
>       float DN(Time, bottom_top) ;
>               DN:FieldType = 104 ;
>               DN:MemoryOrder = "Z  " ;
>               DN:description = "dn values on half (mass) levels" ;
>               DN:units = "dimensionless" ;
>               DN:stagger = "" ;
>       float ZNU(Time, bottom_top) ;
>               ZNU:FieldType = 104 ;
>               ZNU:MemoryOrder = "Z  " ;
>               ZNU:description = "eta values on half (mass) levels" ;
>               ZNU:units = "dimensionless" ;
>               ZNU:stagger = "" ;
>       float ZNW(Time, bottom_top_stag) ;
>               ZNW:FieldType = 104 ;
>               ZNW:MemoryOrder = "Z  " ;
>               ZNW:description = "eta values on full (w) levels" ;
>               ZNW:units = "dimensionless" ;
>               ZNW:stagger = "Z" ;
>       float RAINC(Time, south_north, west_east) ;
>               RAINC:FieldType = 104 ;
>               RAINC:MemoryOrder = "XY " ;
>               RAINC:description = "ACCUMULATED TOTAL CUMULUS PRECIPITATION" ;
>               RAINC:units = "MM" ;
>               RAINC:stagger = "" ;
>       float RAINNC(Time, south_north, west_east) ;
>               RAINNC:FieldType = 104 ;
>               RAINNC:MemoryOrder = "XY " ;
>               RAINNC:description = "ACCUMULATED TOTAL GRID SCALE 
> PRECIPITATION" ;
>               RAINNC:units = "MM" ;
>               RAINNC:stagger = "" ;
>       float RAINCV(Time, south_north, west_east) ;
>               RAINCV:FieldType = 104 ;
>               RAINCV:MemoryOrder = "XY " ;
>               RAINCV:description = "TIME-STEP CUMULUS PRECIPITATION" ;
>               RAINCV:units = "MM" ;
>               RAINCV:stagger = "" ;
>       float RAINBL(Time, south_north, west_east) ;
>               RAINBL:FieldType = 104 ;
>               RAINBL:MemoryOrder = "XY " ;
>               RAINBL:description = "PBL TIME-STEP TOTAL PRECIPITATION" ;
>               RAINBL:units = "MM" ;
>               RAINBL:stagger = "" ;
>       float GSW(Time, south_north, west_east) ;
>               GSW:FieldType = 104 ;
>               GSW:MemoryOrder = "XY " ;
>               GSW:description = "DOWNWARD SHORT WAVE FLUX AT GROUND SURFACE" ;
>               GSW:units = "W m{-2}" ;
>               GSW:stagger = "" ;
>       float GLW(Time, south_north, west_east) ;
>               GLW:FieldType = 104 ;
>               GLW:MemoryOrder = "XY " ;
>               GLW:description = "DOWNWARD LONG WAVE FLUX AT GROUND SURFACE" ;
>               GLW:units = "W m{-2}" ;
>               GLW:stagger = "" ;
>       float XLAT(Time, south_north, west_east) ;
>               XLAT:FieldType = 104 ;
>               XLAT:MemoryOrder = "XY " ;
>               XLAT:description = "LATITUDE, SOUTH IS NEGATIVE" ;
>               XLAT:units = "degree" ;
>               XLAT:stagger = "" ;
>       float XLONG(Time, south_north, west_east) ;
>               XLONG:FieldType = 104 ;
>               XLONG:MemoryOrder = "XY " ;
>               XLONG:description = "LONGITUDE, WEST IS NEGATIVE" ;
>               XLONG:units = "degree" ;
>               XLONG:stagger = "" ;
>       float LU_INDEX(Time, south_north, west_east) ;
>               LU_INDEX:FieldType = 104 ;
>               LU_INDEX:MemoryOrder = "XY " ;
>               LU_INDEX:description = "LAND USE CATEGORY" ;
>               LU_INDEX:units = "" ;
>               LU_INDEX:stagger = "" ;
>       float TMN(Time, south_north, west_east) ;
>               TMN:FieldType = 104 ;
>               TMN:MemoryOrder = "XY " ;
>               TMN:description = "SOIL TEMPERATURE AT LOWER BOUNDARY" ;
>               TMN:units = "K" ;
>               TMN:stagger = "" ;
>       float XLAND(Time, south_north, west_east) ;
>               XLAND:FieldType = 104 ;
>               XLAND:MemoryOrder = "XY " ;
>               XLAND:description = "LAND MASK (1 FOR LAND, 2 FOR WATER)" ;
>               XLAND:units = "NA" ;
>               XLAND:stagger = "" ;
>       float HFX(Time, south_north, west_east) ;
>               HFX:FieldType = 104 ;
>               HFX:MemoryOrder = "XY " ;
>               HFX:description = "UPWARD HEAT FLUX AT THE SURFACE" ;
>               HFX:units = "W m{-2}" ;
>               HFX:stagger = "" ;
>       float QFX(Time, south_north, west_east) ;
>               QFX:FieldType = 104 ;
>               QFX:MemoryOrder = "XY " ;
>               QFX:description = "UPWARD MOISTURE FLUX AT THE SURFACE" ;
>               QFX:units = "kg m{-2} s{-1}" ;
>               QFX:stagger = "" ;
>       float SNOWC(Time, south_north, west_east) ;
>               SNOWC:FieldType = 104 ;
>               SNOWC:MemoryOrder = "XY " ;
>               SNOWC:description = "FLAG INDICATING SNOW COVERAGE (1 FOR SNOW 
> COVER)" ;
>               SNOWC:units = "NA" ;
>               SNOWC:stagger = "" ;
>       float ZETATOP(Time, ext_scalar) ;
>               ZETATOP:FieldType = 104 ;
>               ZETATOP:MemoryOrder = "0  " ;
>               ZETATOP:description = "ZETA AT MODEL TOP" ;
>               ZETATOP:units = "" ;
>               ZETATOP:stagger = "" ;
>       int ITIMESTEP(Time, ext_scalar) ;
>               ITIMESTEP:FieldType = 106 ;
>               ITIMESTEP:MemoryOrder = "0  " ;
>               ITIMESTEP:description = "" ;
>               ITIMESTEP:units = "" ;
>               ITIMESTEP:stagger = "" ;
> 
> // global attributes:
>               :TITLE = " OUTPUT FROM WRF V1.3 MODEL" ;
>               :START_DATE = "2002-06-15_12:00:00" ;
>               :WEST-EAST_GRID_DIMENSION = 1021 ;
>               :SOUTH-NORTH_GRID_DIMENSION = 919 ;
>               :BOTTOM-TOP_GRID_DIMENSION = 34 ;
>               :DYN_OPT = 2 ;
>               :DIFF_OPT = 2 ;
>               :KM_OPT = 2 ;
>               :DAMP_OPT = 0 ;
>               :KHDIF = 0.f ;
>               :KVDIF = 0.f ;
>               :MP_PHYSICS = 2 ;
>               :RA_LW_PHYSICS = 1 ;
>               :RA_SW_PHYSICS = 1 ;
>               :BL_SFCLAY_PHYSICS = 1 ;
>               :BL_SURFACE_PHYSICS = 2 ;
>               :BL_PBL_PHYSICS = 1 ;
>               :CU_PHYSICS = 0 ;
>               :WEST-EAST_PATCH_START_UNSTAG = 1 ;
>               :WEST-EAST_PATCH_END_UNSTAG = 41 ;
>               :WEST-EAST_PATCH_START_STAG = 1 ;
>               :WEST-EAST_PATCH_END_STAG = 41 ;
>               :SOUTH-NORTH_PATCH_START_UNSTAG = 1 ;
>               :SOUTH-NORTH_PATCH_END_UNSTAG = 23 ;
>               :SOUTH-NORTH_PATCH_START_STAG = 1 ;
>               :SOUTH-NORTH_PATCH_END_STAG = 23 ;
>               :BOTTOM-TOP_PATCH_START_UNSTAG = 1 ;
>               :BOTTOM-TOP_PATCH_END_UNSTAG = 34 ;
>               :BOTTOM-TOP_PATCH_START_STAG = 1 ;
>               :BOTTOM-TOP_PATCH_END_STAG = 35 ;
>               :DX = 1000.f ;
>               :DY = 1000.f ;
>               :DT = 5.f ;
>               :CEN_LAT = 36.f ;
>               :CEN_LON = -98.f ;
>               :TRUELAT1 = 25.f ;
>               :TRUELAT2 = 55.f ;
>               :GMT = 12.f ;
>               :JULYR = 2002 ;
>               :JULDAY = 166 ;
>               :ISWATER = 16 ;
>               :MAP_PROJ = 1 ;
>               :MMINLU = "USGS" ;
> }