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: "John H. E. Clark" <address@hidden> >Organization: . >Keywords: 199902041927.MAA21272 >Steve, > >Thank-you for replying to my question about using GDDIAG. I have a few >questions in response to your reply: > >1) I am not sure what a variable is called after running GDDIAG. In your >example is it actually named >LEVL1 LEVL2 VCORD PARM > 500 700 PRES LAPSE > >This seems like an awkward name for a variable. Where is the variable >created in GDDIAG stored? > As I mentioned, This was only a demonstration of how to control the naming of the grid. If you don't like the name LAPSE for the variable, call it something else such as DT. I tried to show how to use the GRDNAM variable to define the grid name, as well as the resulting level/layer values that would be defined in glevel. I discussed that if you didn't want to have the resulting grid defined as a layer quantity between 500 and 700 mb, then you could define it to be the value at a specific level- such as 600 mb. The output of the grid will be written to the file named in GDOUTF. >2) When I call the variable created in GDDIAG for use in, say, GDPLOT, do I >call it > LEVL1 LEVL2 VCORD PARM > 500 700 PRES LAPSE In this case, the values you need are: gvcord = PRES gfunc = LAPSE glevel = 500:700 The above output is how programs like gdinfo list the information for grids. You typically have 6 columns of output. These columns show the values for TIME1, TIME2, LEVL1, LEVL2, VCORD, and PARM. In the example I showed you, I omitted the TIME columns since they were irrelevant for the calculation at hand. The six columns listed relate to the variables you need to refer to a grid diagnostic as: gvcord = VCORD glevel = LEVL1:LEVL2 gfunc = PARM gdattime = TIME1:TIME2 Since many parameters are defined at a single LEVEL and TIME, eg 500mb height, you refer to those with glevel = LEVL1 and gdattim = TIME1. For grids defined over a layer such as the difference of temperature over a layer, or where 2 times are involved such as 24hr height change, two values are used (sepatated by the : character). I showed that you could define your grid output at a single level, such as 600mb rather than as a lavel 500:700 mb if that is how you needed to refer to a variable. The tutorial shows how to use inline modifiers to override the GLEVEL, GVCORD and GDATTIM variables when your calculations involve parameters defined on different coordinate systems, levels or times. > >3) I tried running GDDIAG today and I always get the diagnostic 'data file >not open' Make sure you have your input and output files in your duirectory or are where they are accessible from the path name. Also, make sure you have space available in the output file to write the data- eg use gdinfo to see how many grids are in the data file, and the maximum number of grids which will be allowed in the grid file. > >John Clark > > Steve Chiswell