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.
Matt, I looked at your script and things output fine. You should have STBC at sgma levels in your gdinfo like LEVL1 LEVL2 VCORD PARM 9925 SGMA STBC 9875 SGMA STBC 9825 SGMA STBC etc. To answer your question, quo(ldf(A),ldf(B)) is equivalent to dA/dB. When viewing these values in Garp, you should select vertical coordinate SGMA and ensure that the radio button for "level" is selected and "Scalar" is set. Clicking on the "Level 1" button should show you all the SGMA levels to choose from. It sounds like you have gotten this far. After typing in your parameter name STBC in the gfunc bar, you probably need to go to the "more" to set the scale factor to something like "3", or "999" to let Garp pick its own scaling. Comparing dT/dp with dT/dsigma, since your sgma layer depths from 9500 to 9000 would represent pressure values from 950 to 900mb, so you would expect at least dSGMA to be an order of magnitude larger than dPRES, so you will have to increase the scale factor otherwise, the denominator will be so large, your values will apear like 0. (Remember, that Gempak is scaling sigma by 10000 to get the SGMA levels (since GEMPAK has no way of specifying decimal points in GLEVEL values). I had designed the script I sent you to specify GRDNAM using a single level, instead of outputing the computation using LEVEL1:LEVEL2 since it is easier to display levels in gdprof- howver, if you want to use the STBC as a layer quantity, then you can just remove the @GLEVA in the GRDNAM specification. Once STBC is output as a layer rather than a level, then you will have to specify LEVEL1 and LEVEl2 when plotting the function. I has the script calculate GLEVA as the average of the top and bottom level- eg the value in the middle of the 2 levels. Regarding Mixing Depth, I don't know of an easy way to calculate this from the gridded data. Unless you estimate this from the LCL, it requires integrating the grid levels. If you know how you want to estimate this parameter, I can help you try to do the calculation. Steve CHiswell Unidata User Support >From: Matt Fearon <address@hidden> >Organization: Desert Research Institute >Keywords: 199907162317.RAA10915 >Steve, > >I am trying perform stability calculations again.. Only this >time using sgma coordinates. I modified the script you gave >me to calculate stability using pres and staying above ground. >I attached it below. The script seems to run fine with gempak >- gddiag and shows up at calculated levels when viewing the >gdfile in gdinfo,but when I try to view the results of stbc in garp, >I receive values of zero for contours. > >Is quo(ldf(tmpc),ldf(sgma)) equivalent to dT/dsigma? >I have also tried stab(tmpc) using sgma and I always >receive an error. Is stab available w/ sgma? > >I know dT/dsigma is not usually looked at in terms of stability, >but I am trying to determine what sort of values of dT/dsigma >correspond to values of dT/dZ. I would like to do this in layer >sections through the troposphere, e.g. 9950:9900 , 9900:8950 >up to 3500:3000 sgma. > >One last question, do you know of any gempak scripts available >that calculate mixing height for a grid? > >Thank you for all your help, >Matt Fearon >address@hidden > > > >#!/bin/csh > >set GDFILE=/data1/gempak/grids/99061412_eta.gem > > >set GLEV1 = 9950 >while($GLEV1 > 9500) > @ GLEV2 = $GLEV1 - 50 > @ GLEVA = $GLEV1 + $GLEV2 > @ GLEVA = $GLEVA / 2 > > $GEMEXE/gddiag << EOF1 > gdfile = $GDFILE > gdoutf = $GDFILE > gfunc = quo(ldf(tmpc),ldf(sgma)) > gdattim = f00 > glevel = ${GLEV1}:${GLEV2} > gvcord = sgma > grdnam = stbc@${GLEVA} > gpack = > r > > e >EOF1 > @ GLEV1 = $GLEV1 - 50 > >end #end while GLEV >#end #foreach FHR > > >set GLEV1 = 9500 >while($GLEV1 > 3000) > @ GLEV2 = $GLEV1 - 500 > @ GLEVA = $GLEV1 + $GLEV2 > @ GLEVA = $GLEVA / 2 > > $GEMEXE/gddiag << EOF2 > gdfile = $GDFILE > gdoutf = $GDFILE > gfunc = quo(ldf(tmpc),ldf(sgma)) > gdattim = f00 > glevel = ${GLEV1}:${GLEV2} > gvcord = sgma > grdnam = stbc@${GLEVA} > gpack = > r > > e >EOF2 > @ GLEV1 = $GLEV1 - 500 > >end #end while GLEV > >$GEMEXE/gpend >rm *.nts > >