[gradsusr] Lifted Index Formula
Mike Manning
michael at bsch.au.com
Fri Mar 2 08:23:40 EST 2012
Cool will keep this in mind as well - I had been making good progress
with everything until I hit the function for LiftWet. On plotskew.gs
(http://moe.met.fsu.edu/~rhart/software/plotskew.gs) everything there is
taken for a single point on a chart - I guess because I'm trying to use
an entire chart section, it's why I'm having dramas?
I've got all other functions working perfectly.. here's one for example:
function Templcl(temp,dewp)
*------------------------------------------------------
* Calculate the temp at the LCL given temp & dewp in C
*------------------------------------------------------
'tempk='temp'+273.15'
'dewpk='dewp'+273.15'
'Parta=1/(dewpk-56)'
'Partb=log(tempk/dewpk)/800'
'Tlcl=(1/(Parta+Partb)+56)-273.15'
return(Tlcl)
This is the function I am having trouble with, it basically gets stuck
in the loop and never exits :(
function LiftWet(startt,startp,endp)
*--------------------------------------------------------------------
* Lift a parcel moist adiabatically from startp to endp.
* Init temp is startt in C. If you wish to see the parcel's
* path plotted, display should be 1. Returns temp of parcel at endp.
*--------------------------------------------------------------------
'temp='startt
'pres='startp
'delp=10'
While (pres >= endp)
'temp=temp-100*delp*'gammaw('temp','pres-delp/2',100)
'pres=pres-delp'
EndWhile
return(temp)
I call it by 'define PclTemp='LiftWet('TLcl','PLcl',500) where TLcl and
PLcl work perfectly when I plot those 2 variables by themselves so I
know they are all good. I just have a funny feeling now that I have hit
a brick wall that I cannot get around - which probably explains why no
one else has created a Lifted Index chart. I do hope I am wrong though
Cheers, Mike
On 2/03/2012 11:24 AM, Arlindo da Silva wrote:
>
>
> On Thu, Mar 1, 2012 at 11:25 AM, Jeff Duda <jeffduda319 at gmail.com
> <mailto:jeffduda319 at gmail.com>> wrote:
>
> You've confused the different uses of scripting functions vs.
> Grads prompt functions. You can only display a variable that you
> have defined using the 'define ...' command (note the use of the
> quotes signaling that it was defined as if you typed it in at the
> Grads prompt). Your use of variable = satvap(...) with satvap
> being a script function only is causing Grads to assume variable
> is a script variable only, not one that can be displayed. The
> reason you get the other error when you put the other line in
> quotes is because math_exp is strictly a script version of the exp
> function that you would use in the Grads command prompt. Thus,
> you would want to change that line to
>
> 'es = 6.112*exp(17.67*temp/(temp+243.5))'
>
> in order to display es or define any other variables that would
> depend on it.
>
>
>
> This is generally true but if you are using opengrads you can make the
> script function satvap() available to the display command, say
>
> ga-> d satvap(t1000)
> by putting it in its own file "satvap.gsf" and loading the
> corresponding UDXT as described in the gsUDF documentation
> <http://opengrads.org/doc/udxt/gsudf/>. Actually, you could in
> principle implemented the lifted index as a gsUDF function.
>
> Arlindo
>
>
> Jeff Duda
>
>
> On Thu, Mar 1, 2012 at 7:06 AM, Mike Manning <michael at bsch.au.com
> <mailto:michael at bsch.au.com>> wrote:
>
> Hi everyone,
>
> I'm using data from the FNMOC model and am trying to make a
> function
> that calculates Lifted Index. I'm using bits of the code from the
> plotskew.gs <http://plotskew.gs> code. So far I've got the
> temperature (celsius) and
> dewpoint (celsius) worked out for each level. Now I'm
> calculating the
> parcel details.. I've pulled some of the functions and have
> just been
> testing to make sure I'm on the right track. If I have this
> code for
> example:
>
> 'c'
> 'reinit'
> 'open gfs.00z.ctl'
> 'set t 7'
> 'set lon 135 155'
> 'set lat -31 -10'
>
> 'set lev 1000'
> 't1000mb = TMPprs-273.14'
> 'define dp1000mb =
> t1000mb-((14.55+0.114*t1000mb)*(1-0.01*RHprs)+pow((2.5+0.007*t1000mb)*(1-0.01*RHprs),3)+(15.9+0.117*t1000mb)*pow((1-0.01*RHprs),14))'
>
> variable = satvap2(t1000mb)
>
> 'd variable'
>
> function satvap2(temp)
>
> *---------------------------------------------------------------
> * Given temp in Celsius, returns saturation vapor pressure in mb
> *---------------------------------------------------------------
>
> es=6.112*math_exp(17.67*temp/(temp+243.5))
>
> return(es)
> 'quit'
>
>
>
> it complains about an error? If I put the code in the satvap2
> function
> in single quotes it then says "math_exp" is not a variable or
> function"?
> I'm a little lost on how to fix this one up if it's possible.
>
> Cheers, Mike
> _______________________________________________
> gradsusr mailing list
> gradsusr at gradsusr.org <mailto:gradsusr at gradsusr.org>
> http://gradsusr.org/mailman/listinfo/gradsusr
>
>
>
>
> --
> Jeff Duda
> Graduate research assistant
> University of Oklahoma School of Meteorology
> Center for Analysis and Prediction of Storms
>
>
> _______________________________________________
> gradsusr mailing list
> gradsusr at gradsusr.org <mailto:gradsusr at gradsusr.org>
> http://gradsusr.org/mailman/listinfo/gradsusr
>
>
>
>
> --
> Arlindo da Silva
> dasilva at alum.mit.edu <mailto:dasilva at alum.mit.edu>
>
>
> _______________________________________________
> gradsusr mailing list
> gradsusr at gradsusr.org
> http://gradsusr.org/mailman/listinfo/gradsusr
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://gradsusr.org/pipermail/gradsusr/attachments/20120302/accc9699/attachment-0003.html
More information about the gradsusr
mailing list