[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
19990701: stability from model grid
- Subject: 19990701: stability from model grid
- Date: Thu, 01 Jul 1999 16:06:45 -0600
Matt,
I interpreted your previous question as how to calculate a
sfc to 5km stability (eg a single layer).
The problem you have is that the ETA grids have temperature
all the way down to 1000mb, even if that level is below ground.
From your statement below, you only want to see stab(tmpc) values
where the layer is above ground.
Actually, this is something that gdcross does in a cross section,
but since you want to output the values at a singe grid point-
you are presumably using GDPROF which plots a profile at a
single gridpoint/time and outputs the data values it calculates.
This is quite easy with:
gvcord=pres
gfunc = stab(tmpc)
however, the output will extend below the surface level when the model
levels include tmpc below the surface.
GDPROF requires two conditions for not extending below the surface
by following the grid levels all the way down:
1) The surface pressure grid should be available on the same gvcord
as the gfunc is calculated on.
2) The gfunc should not be a layer quantity
What needs to be done is 1) copy the pres@0%none grid to
pres@0%pres, and 2) compute stab(tmpc) and output the grid to
a single level rather than a layer.
Attatched is a quick script that will compute STBC at the midpoint of
each 50mb model level, for each forecast time, and copy the
surface pressure grid. After running the script, you can use
GDPROF like:
GPOINT = den
GDATTIM = f048
GVCORD = pres
GFUNC = stbc
GVECT =
GDFILE = $HDS/1999070112_eta_grid211.gem
LINE = 5
MARKER = 0
BORDER = 1
PTYPE = log
SCALE = 0
XAXIS =
YAXIS = 1000/100
WIND = an6
REFVEC =
WINPOS = 1
FILTER = 0
TITLE = 5/-1
PANEL = 0
CLEAR = y
TEXT = 1/22/1
DEVICE = xw
OUTPUT = t
THTALN =
THTELN =
MIXRLN =
GEMPAK-GDPROF>r
GDPROF PARAMETERS
Grid file: $HDS/1999070112_eta_grid211.gem
Grid function: stbc
Grid vector function:
X,Y grid point: 42.49 32.21
Lat/lon: 39.87 -104.67
Number of levels: 14
Data range: -8.68 -1.49
Scaling factor: 10** 0
Wind display: an6
Enter <cr> to accept parameters or type EXIT:
PROFILE
990703/1200V048 STBC DEN
LATITUDE, LONGITUDE = ( 39.87, -104.67 )
PRES STBC
775.00 -6.944
725.00 -7.588
675.00 -7.652
625.00 -6.594
575.00 -6.560
525.00 -8.220
475.00 -8.401
425.00 -8.681
375.00 -7.787
325.00 -7.250
275.00 -7.777
225.00 -6.437
175.00 -4.356
125.00 -1.485
Parameters requested: GPOINT,GDATTIM,GVCORD,GFUNC,GVECT,GDFILE,LINE,MARKER,
BORDER,PTYPE,SCALE,XAXIS,YAXIS,WIND,REFVEC,WINPOS,FILTER,TITLE,PANEL,CLEAR,
TEXT,DEVICE,OUTPUT,THTALN,THTELN,MIXRLN.
GEMPAK-GDPROF>
In the above run, the surface pressure for DEN is 817 mb, so the first
layer that stability is above the ground level for the ETA model is the
800:750 layer. STBC is output as valid at 775mb, and so on up to the top..
Let me know if you need further assistance.
Steve Chiswell
Unidata User Support
--------------------------------------------------------------
#!/bin/csh -f
# set the eta model file name appropriately!
set GDFILE=$HDS/1999070112_eta_grid211.gem
set FHRS=("f000" "f006" "f012" "f018" "f024" "f030" "f036" "f042" "f048")
# loop for each forecast time
foreach FHR ($FHRS)
# copy the surface pressure grid to gvcord=pres
gddiag << EOF1
GDFILE = $GDFILE
GDOUTF = $GDFILE
GDATTIM = $FHR
gfunc = pres
glevel = 0
gvcord = none
grdnam = pres@0%pres
r
e
EOF1
# compute stab(tmpc) for 1000:950 layer and output to STBC@975
# repeat up through 150:100 mb layer.
set GLEV1=1000
while($GLEV1 > 100)
@ GLEV2 = $GLEV1 - 50
@ GLEVA = $GLEV1 + $GLEV2
@ GLEVA = $GLEVA / 2
gddiag << EOF2
GDFILE = $GDFILE
GDOUTF = $GDFILE
GFUNC = stab(tmpc)
GDATTIM = $FHR
GLEVEL = ${GLEV1}:${GLEV2}
GVCORD = pres
grdnam = stbc@${GLEVA}
r
e
EOF2
@ GLEV1 = $GLEV1 - 50
end # end while GLEV
end # foreach FHR
>From: Matt Fearon <address@hidden>
>Organization: .
>Keywords: 199907010105.TAA27142
>Your previous reply was very helpful, but I think I may not
>of explained my question enough. I am using the eta model.
>I would like to calculate the stability or lapse rate in layer
>sections from the surface up to 500mb. I am looking to
>locate stable and unstable layers from the surface up to 500mb.
>I need these calculations at individual grid points for each
>forecast hour.
>
>Performing a calculation of dT/dZ from the surface to 500mb didn't
>provide me with the ability to locate individual stability regions. Sorry to
>be bothersome. Any advice would be extremely helpful.
>
>Thank you,
>Matt Fearon
>address@hidden
>
>Unidata Support wrote:
>
>> >From: Matt Fearon <address@hidden>
>> >Organization: .
>> >Keywords: 199906302250.QAA24636
>>
>> >I am a fairly new user of gempak software, but I know how to tinker
>> >around
>> >pretty well.
>> >
>> >I am trying to extract stab(tmpc) for layers above ground level to
>> >achieve a temperature lapse rate at individual grid points (from the
>> >surface
>> >to about 5km). I have been using the gdlist program, however the region
>> >I am
>> >concerned with is California. Therefore I have to deal with elevation
>> >issues.
>> >I have been trying to use hagl instead of pres for the vertical
>> >coordinates, but I
>> >have been unsuccessful.
>> >
>> >If someone knows a good method for extracting stab(tmpc) to establish a
>> >lapse rate
>> >at individual grid points considering elevation, I would greatly
>> >appreciate all advice.
>> >
>> >Thank you,
>> >Matt Fearon
>> >address@hidden
>> >
>>
>> Matt,
>>
>> >From your question, you apparently want to calculate:
>>
>> T(~5km) - T(surface)
>> -------------------
>> Z(~5km) - Z(surface)
>>
>> If you are using the ETA 211 grid from the IDD for instance,
>> you have T@2m, T@500mb, Z@surface, Z@500mb.
>>
>> So, assuming that either 500mb or 550mb is adequate in approximating
>> ~5km, you can do:
>>
>> gvcord = pres
>> glevel = 500
>> gfunc = quo(sub(tmpc,tmpc@2%hagl),sub(hght,hght@0%none^f000))
>>
>> The Height grid is only given at F000 (since the ground doesn't advect with
> time),
>> hence the ^f000 specification).
>>
>> Actually, since the above temperature is at 2m, while the height is at 0m HA
> GL,
>> you could add 2m to the height subtraction around the last "sub"
>> to get something like: quo(sub(,),sub(hght,add(hght@0%none^f000,2)))
>>
>> The point is, depending on what model grid you have, you may have to
>> determine if you have temp at 2m , and height at 0m etc.
>> The best way to do this is to use gdinfo to inspect your grids
>> to determine what parameters they give you to work with.
>> Steve Chiswell
>> Unidata User Support
>> ****************************************************************************
>> Unidata User Support UCAR Unidata Program
>> (303)497-8644 P.O. Box 3000
>> address@hidden Boulder, CO 80307
>> ----------------------------------------------------------------------------
>> Unidata WWW Service http://www.unidata.ucar.edu/
>> ****************************************************************************
>