Anyone Have Script for ageostrophic wind components
Rick Danielson
Rick.Danielson at PHYS.OCEAN.DAL.CA
Thu Feb 12 20:55:50 EST 2009
Hi Ron,
The attached script should get you started, at least.
Regards,
Rick
> Hi
>
> Just wondering if anybody has a script for the ageostrophic wind already
> coded-up. Mostly just interested in isallobaric wind and
> inertial-advective wind. If not, I guess I have to do a bit of work to
> do.
>
> tks
>
> ron
"I'd put my money on the sun During 1956-1965, "the world was
and solar energy. What a consuming 4 billion barrels of oil per
source of power! I hope we year and the average discovery was
don't have to wait until oil around 30 billion. Today we consume
and coal run out before we 30 billion barrels per year and the
tackle that." - Edison to Ford discovery rate is now approaching 4
and Firestone in 1931 (from billion barrels of crude oil per year."
"Uncommon Friends" by J.Newton) - Kjell Aleklett of Uppsala University
-------------- next part --------------
* This script computes one of various diagnostic quantities using
* basic NCEP Reanalysis grids stored in a template netcdf file.
* An assumption is that the calculation domain of interest has been
* specified - RD, Feb `99
function keb()
* query file for dimensions of current viewing domain
"q dims"
rec = sublin(result,5)
if (subwrd(rec,3) = "varying")
tmin = subwrd(rec,11)
tmax = subwrd(rec,13)
tvar = "varying"
else
tval = subwrd(rec,9)
tvar = "fixed"
endif
rec = sublin(result,4)
if (subwrd(rec,3) = "varying")
zmin = subwrd(rec,11)
zmax = subwrd(rec,13)
zvar = "varying"
else
zval = subwrd(rec,9)
zvar = "fixed"
endif
rec = sublin(result,3)
if (subwrd(rec,3) = "varying")
ymin = subwrd(rec,11)
ymax = subwrd(rec,13)
yvar = "varying"
else
yval = subwrd(rec,9)
yvar = "fixed"
endif
rec = sublin(result,2)
if (subwrd(rec,3) = "varying")
xmin = subwrd(rec,11)
xmax = subwrd(rec,13)
xvar = "varying"
else
xval = subwrd(rec,9)
xvar = "fixed"
endif
* query file for dimensions of calculation domain
"d timemin"
rec = sublin(result,1)
timemin = subwrd(rec,4)
"d timemax"
rec = sublin(result,1)
timemax = subwrd(rec,4)
"d levmin"
rec = sublin(result,1)
levmin = subwrd(rec,4)
"d levmax"
rec = sublin(result,1)
levmax = subwrd(rec,4)
"d moistmax"
rec = sublin(result,1)
moistmax = subwrd(rec,4)
"d latmin"
rec = sublin(result,1)
latmin = subwrd(rec,4)
"d latmax"
rec = sublin(result,1)
latmax = subwrd(rec,4)
"d lonmin"
rec = sublin(result,1)
lonmin = subwrd(rec,4)
"d lonmax"
rec = sublin(result,1)
lonmax = subwrd(rec,4)
say ""
say "calculating quasi geostrophic terms, pointwise"
say ""
say "using the following calculation domain:"
say "time from "timemin" to "timemax
say "level from "levmin" to "levmax
say "lat from "latmin" to "latmax
say "lon from "lonmin" to "lonmax
say ""
say "defining temporary variables" ; say ""
defa = "EARTH = 6.371e6"
say " "defa
"define "defa
defa = "D2R = 3.141592654 / 180.0"
say " "defa
"define "defa
defa = "OMEG = 7.292e-5"
say " "defa
"define "defa
defa = "GRAV = 9.8"
say " "defa
"define "defa
say ""
say "computing over lat and lon:" ; say ""
"set t 1"
"set z 1"
"set lat "latmin" "latmax
"set lon "lonmin" "lonmax
defa = "delx = EARTH * cdiff(lon,x) * D2R * cos(lat*D2R)"
say " "defa ; say ""
"define "defa
defa = "dely = EARTH * cdiff(lat,y) * D2R"
say " "defa ; say ""
"define "defa
defa = "coriol = 2.0 * OMEG * sin(lat*D2R)"
say " "defa ; say ""
"define "defa
say "computing over time, level, lat, and lon:" ; say ""
"set t "timemin" "timemax
"set lev "levmin" "levmax
"set lat "latmin" "latmax
"set lon "lonmin" "lonmax
defa = "geou = -GRAV / coriol * cdiff(hgt,y) / dely"
say " "defa ; say ""
"define "defa
defa = "geov = GRAV / coriol * cdiff(hgt,x) / delx"
say " "defa ; say ""
"define "defa
defa = "newu = -GRAV / coriol * cdiff(hgt,y) / dely * (uwnd * -GRAV / coriol * cdiff(hgt,y) / dely + "
defb = "vwnd * GRAV / coriol * cdiff(hgt,x) / delx) / "
defc = "(-GRAV / coriol * cdiff(hgt,y) / dely * -GRAV / coriol * cdiff(hgt,y) / dely + "
defd = "GRAV / coriol * cdiff(hgt,x) / delx * GRAV / coriol * cdiff(hgt,x) / delx)"
say " "defa" "defb" "defc" "defd ; say ""
"define "defa" "defb" "defc" "defd
defa = "nevu = GRAV / coriol * cdiff(hgt,x) / delx * (uwnd * -GRAV / coriol * cdiff(hgt,y) / dely + "
defb = "vwnd * GRAV / coriol * cdiff(hgt,x) / delx) / "
defc = "(-GRAV / coriol * cdiff(hgt,y) / dely * -GRAV / coriol * cdiff(hgt,y) / dely + "
defd = "GRAV / coriol * cdiff(hgt,x) / delx * GRAV / coriol * cdiff(hgt,x) / delx)"
say " "defa" "defb" "defc" "defd ; say ""
"define "defa" "defb" "defc" "defd
say "undefining temporary variables" ; say ""
"undefine EARTH"
"undefine D2R"
"undefine OMEG"
"undefine GRAV"
say "resetting the original viewing domain" ; say ""
if (tvar = "varying")
"set t "tmin" "tmax
else
"set t "tval
endif
if (zvar = "varying")
"set z "zmin" "zmax
else
"set z "zval
endif
if (yvar = "varying")
"set y "ymin" "ymax
else
"set y "yval
endif
if (xvar = "varying")
"set x "xmin" "xmax
else
"set x "xval
endif
say "re-creating the display script" ; say ""
"run gui_list"
More information about the gradsusr
mailing list