[gradsusr] Specialized Display Question

Jeff Duda jeffduda319 at gmail.com
Wed Nov 23 12:17:20 EST 2011


Mason,
I haven't looked at your script, but here are the answers to your questions.

You got the error from CDIFF when setting lev statically because it needs
the vertical dimension to be varying in order to work.  On the other hand,
typing the expression in manually does not require the vertical dimension
to vary.  To see why this works, look through the top section of the
variables page <http://www.iges.org/grads/gadoc/variable.html#names> on the
Grads site.  Basically, you can use parentheses to tag a field with a
spatiotemporal (and/or ensemble) offset or specification.  For example, 'd
tmpprs(z+1)' tells Grads to plot tmpprs one vertical level away from where
the current vertical dimension is set (this works for both fixed and
varying vertical dimension settings).  So if you have two pressure levels
at 850 and 800 mb, if your lev is set to 850, 'd tmpprs(z+1)' will plot
temperatures at 800 mb.  'd tmpprs(z-1)' plots tmpprs one level down.  You
can specify the level, too.  Say you want to plot 500 mb heights and MSLP.
The following lines of code to do that are equivalent:
'set lev 500'
'd hgtprs'
'set lev 1000'
'd mslmamsl'

OR

'set lev 500'
'd hgtprs'
'd mslmamsl(lev=1000)'

OR
(assume lev is set to something other than 500 or 1000)
'd hgtprs(lev=500)'
'd mslmamsl(lev=1000)'

Thus, this command: 'd (theta(z+1)-theta(z-1)) /
(hgtprs(z+1)-hgtprs(z-1))', tells grads to plot an approximation of the
vertical derivative of theta in the same way that CDIFF would do it.  It's
just that CDIFF requires a varying vertical dimension if you use Z as the
argument, which means you pretty much can't use it to display a vertical
derivative on a single pressure surface in a horizontal cross section
(sorry, that just came to me, so I apologize for the confusion).

To compute potential temperature using the formula you have, use the pow()
function instead of the carrot.  Thus, potprs = tmpprs*pow(1000/lev,2/7)
(with your vertical dimension varying over all the levels you want to have
potential temperature defined) will give you a grid of potential
temperatures.

Here's my suggestion for how to plot the vertical temperature gradient at
850 mb given NARR data (assuming I remember the variable names):

'set x 1 (whatever last index is)'
'set y 1 (whatever last index is)'
'set lev 1000 (however high you want, but make sure it includes the level
above the one you want to view the gradient on)'
'define theta = tmpprs*pow(1000/lev,2/7)'
'set lev 850'
'd (theta(z+1)-theta(z-1)) / (hgtprs(z+1)-hgtprs(z-1))'

Jeff

On Wed, Nov 23, 2011 at 12:44 AM, Rowell, Mason D.
<Mason.D.Rowell-1 at ou.edu>wrote:

>  All,
>
>  Well I appear to still have issues. I can define theta like I discovered
> I can, but then I can't just use this in Jeff's vertical derivative
> expression (the one that will work), given that its value at z+1 and z-1 is
> not defined. I thought I was being clever getting around that, but it
> claims I am not setting lev right, and I don't know why. Script is
> attached. Any ideas?
>
>  Mason
>  ------------------------------
> *From:* gradsusr-bounces at gradsusr.org [gradsusr-bounces at gradsusr.org] on
> behalf of Rowell, Mason D. [Mason.D.Rowell-1 at ou.edu]
> *Sent:* Tuesday, November 22, 2011 11:21 PM
>
> *To:* GrADS Users Forum
> *Subject:* Re: [gradsusr] Specialized Display Question
>
>   Apparently it won't take lev in my potential temp expression, even
> though it is set to the right lev I need, but If I define hgt = 850 for
> example, use that to set lev, then use hgt in my expression, it takes it.
> The issue with defining potential temp. from NARR data is solved then (I
> knew it shouldn't have been challenging). Now I just need to confirm that
> Jeff's second method for cdiff (given it still doesn't take the first
> method provided) does indeed approximate the vertical deriv. for the
> central level, as I would assume it does if I know the method like I think
> I do.
>
> Mason
>  ------------------------------
> *From:* gradsusr-bounces at gradsusr.org [gradsusr-bounces at gradsusr.org] on
> behalf of Rowell, Mason D. [Mason.D.Rowell-1 at ou.edu]
> *Sent:* Tuesday, November 22, 2011 10:58 PM
> *To:* GrADS Users Forum
> *Subject:* Re: [gradsusr] Specialized Display Question
>
>   Jeff,
>
>  Well the expression given second will work with lev set statically
> before entering the command (doesn't make sense to me to enter it after
> given the level about which to compute a central difference would have to
> be known first), but the first expression (w/ lev first set) gives 'Error
> from CDIFF:  Specified dimension non varying', which is what I thought I
> would get out of cdiff given lev is set statically. Though the second
> command may suffice for my purposes. As I said I was able to get it to
> work, after having set lev, so I assume the display is appropriate for the
> lev I choose and no other (I'd imagine it would have to be if the
> expression is working as it appears, that is the central difference about
> the set lev, with this approximation valid for the state of the derivative
> at the center, ie the level about which the central difference is
> computed). The syntax is new to me so it is good to learn. Now I just need
> to get a potential temperature expression to display for me.
>
>  Mason
>  ------------------------------
> *From:* gradsusr-bounces at gradsusr.org [gradsusr-bounces at gradsusr.org] on
> behalf of Jeff Duda [jeffduda319 at gmail.com]
> *Sent:* Tuesday, November 22, 2011 8:41 PM
> *To:* GrADS Users Forum
> *Subject:* Re: [gradsusr] Specialized Display Question
>
>  Mason,
> You can use the cdiff command in the z direction to display variables
> (unfortunately, you can't use it to define variables).  However, you can
> approximate the vertical derivative by copying the method that cdiff uses.
> If you have geopotential height, then you have all you need to compute a
> vertical derivative with respect to height coordinates.  You can display
> the vertical derivative of theta by either of the following:
>
> 'd cdiff(theta,z)'
> 'd (theta(z+1)-theta(z-1)) / (hgtprs(z+1)-hgtprs(z-1))
>
> If you want to just view the gradient on one pressure surface, set the
> level that surface, then enter the command.
>
> Jeff
>
> On Tue, Nov 22, 2011 at 7:54 PM, Rowell, Mason D. <Mason.D.Rowell-1 at ou.edu
> > wrote:
>
>> All,
>>
>> Is it possible to display the vertical derivative of some quantity (like
>> say temp or potential temp) on a pressure surface? I know I have height in
>> my NARR data, but it is specific to a pressure level (i.e. HGTprs). What I
>> would need is the height just above the current pressure level and below it
>> in order to get cdiff of say theta and z. I'm not sure how to set the
>> dimensions to do this...I would be okay with just getting this quantity for
>> display at some level height, it doesn't have to be on a pressure surface.
>>
>> Mason
>> _______________________________________________
>> gradsusr mailing list
>> gradsusr at gradsusr.org
>> http://gradsusr.org/mailman/listinfo/gradsusr
>>
>
>
>
> --
> Jeff Duda
> Grad student - PhD, Meteorology
> University of Oklahoma School of Meteorology - Center for Analysis and
> Prediction of Storms
>
>
> _______________________________________________
> gradsusr mailing list
> gradsusr at gradsusr.org
> http://gradsusr.org/mailman/listinfo/gradsusr
>
>


-- 
Jeff Duda
Grad student - PhD, Meteorology
University of Oklahoma School of Meteorology - Center for Analysis and
Prediction of Storms
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://gradsusr.org/pipermail/gradsusr/attachments/20111123/5301872c/attachment-0003.html 


More information about the gradsusr mailing list