how to make maximum wind plot along with level showing maximum wind for each grid
Charles Seman
Charles.Seman at NOAA.GOV
Mon Nov 30 15:11:29 EST 2009
Hi Phillip,
Nice to hear from you too!
I tried some calculations on a local dataset with fixed vs varying
z-levels... it appears that if GrADS is fixed to one level, then the
result is a 1D (in z) field or line or point, depending on how your
horizontal domain is set... and if you have z-levels set to vary, you
get the same results from the single level calculations at every
vertical level, so that GrADS is duplicating the calculations for every
vertical level...
Give it a try on your dataset...
Hope this helps,
Chuck
Phillip Lin wrote:
> Hi Chuck,
> Thanks much for your ideas.
> But why still need to do |set y 1 ny| and |set z 1|, because we need to
> search the max in each level (from z=1 to nz), and this is defined by the
> function fndlvl already?
> So, I think it maybe only needs to set as follows:
> ------------------------
> set x 1
> set t 1
> set gxout line
> d fndlvl(mag(u,v),max(mag(u,v),z=1,z=nz),z=1,z=nz) * nz = number of
> z-levels
> -------------------------
> but I am not sure it works or not?
> Nice to hear from you again!
> Phillip
>
>
>> Hi Phillip,
>>
>> I think you could use fndlvl... please see
>> http://grads.iges.org/grads/gadoc/gradfuncfndlvl.html
>>
>> from above web site:
>> "Given two gridded variables, |/expr/| and |/expr_to_find/|, this
>> function finds the first vertical level at which the |/expr_to_find/|
>> value occurs in |/expr/|. |/lev1/| and |/lev2/| specify the range of
>> levels over which to search. The result is a grid of pressure values."
>>
>> The "Usage Notes" state that "The dimensions of |/expr/| and
>> |/expr_to_find/| must match.".
>>
>> I'm not clear on what this means... Does anyone else know?
>>
>> there are some nice examples too...
>>
>> try this:
>> set x 1
>> set y 1 ny * ny = number of y-levels
>> set z 1
>> set t 1
>> set gxout line
>> d fndlvl(mag(u,v),max(mag(u,v),z=1,z=nz),z=1,z=nz) * nz = number of
>> z-levels
>>
>> Hope this helps,
>> Chuck
>>
>> Phillip Lin wrote:
>>
>>> Hi Chuck,
>>> Recently, I pay attention to related answering posting you did. They are
>>> quite helpful. Now, I have almost the same problem: I have a 3-D
>>> (namely,
>>> (y,z,t) )gridded data file which contains u, v, pressure, etc.. And I
>>> would like to find the maximum value of the wind speed (say like
>>> mag(u,v))and its location (i.e., (y.z)) at a fixed t. So, may I also
>>> use
>>> the function fndlvl ?
>>> additionally please help give a explanation about fndlvl ?
>>> Thanks!
>>> Phillip
>>>
>>>
>>>
>>>> Sushant,
>>>>
>>>> Sorry about the way the text showed up (I copied the Example 1 command
>>>> from http://grads.iges.org/grads/gadoc/gradfuncfndlvl.html):
>>>>
>>>> Here's another attempt (if you set for a horizontal (x,y) domain, you
>>>> should get a field of pressure levels):
>>>>
>>>> set x ... ...
>>>> set y ... ...
>>>> set lev 1000
>>>> set t ...
>>>> set gxout shaded
>>>> d fndlvl(mag(u,v),max(mag(u,v),lev=700,lev=1000),lev=700,lev=1000)
>>>>
>>>> Hope this helps,
>>>> Chuck
>>>>
>>>> Charles Seman wrote:
>>>>
>>>>
>>>>> Sushant,
>>>>>
>>>>> I'm not sure, but perhaps the "fndlvl" function may help
>>>>> http://grads.iges.org/grads/gadoc/gradfuncfndlvl.html
>>>>>
>>>>> I'd try this (not sure if it would work; based on Example 1 at above
>>>>> web
>>>>> site):
>>>>>
>>>>> |d fndlvl (|mag(u,v)|, |max(mag(u,v)|,lev=700,lev=1000||),
>>>>> lev=700,lev=1000||)|
>>>>>
>>>>> ||
>>>>>
>>>>> |
>>>>> |Hope this helps,
>>>>> Chuck
>>>>>
>>>>> sushant puranik wrote:
>>>>>
>>>>>
>>>>>> Sorry to disturb you again.
>>>>>> I am not able to solve my problem till yet.
>>>>>> Since i want to study the structure of a jet stream.I am trying to
>>>>>> find level of maximum wind.
>>>>>> At present i am able to print maximum wind speed with the help of
>>>>>> d max(mag(u,v),lev=700,lev=1000). (Since my data is arranged in
>>>>>> reverse order)
>>>>>>
>>>>>> But i need alongwith wind speed it should print level to which
>>>>>> maximum
>>>>>> value corresponds.
>>>>>> Because d maxloc(mag(u,v),lev=700,lev=1000) gives location of grid to
>>>>>> which maximum values belongs. But instead of that i need pressure
>>>>>> level.
>>>>>>
>>>>>> how to solve this problem.
>>>>>>
>>>>>> My single file contain data of one month (in netcdf format) and data
>>>>>> is at 6 hour interval.
>>>>>>
>>>>>> If you have any solution please send me, i am trying hard for solving
>>>>>> this particular problem.
>>>>>>
>>>>>> Thanking you
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Wed, Nov 25, 2009 at 11:49 PM, Charles Seman
>>>>>> <Charles.Seman at noaa.gov <mailto:Charles.Seman at noaa.gov>> wrote:
>>>>>>
>>>>>> Sushant,
>>>>>>
>>>>>> Sorry for not explaining further... The script is designed to
>>>>>> plot
>>>>>> time
>>>>>> and zonally-averaged mass fluxes and estimated tropopause heights
>>>>>> for
>>>>>> two of GFDL's models, and uses GrADS ctl files to access datasets
>>>>>> that
>>>>>> you do not have... The datasets that are accessed are quite large
>>>>>> (think
>>>>>> too large to send via email). Maybe the script could be useful
>>>>>> to you
>>>>>> as an example of how to do some calculations in GrADS? What is
>>>>>> the
>>>>>> problem you are trying to solve? Or what diagnostic are you
>>>>>> trying to
>>>>>> calculate? If it is to find the level of maximum wind, the code
>>>>>> (see
>>>>>> earlier email) to find the level of minimum temperature could be
>>>>>> modified to find the level of maximum wind (the code was offered
>>>>>> as an
>>>>>> example of how to use GrADS to do this class of problems and not
>>>>>> to
>>>>>> solve your specific problem...).
>>>>>>
>>>>>>
>>>>>> Hope this helps,
>>>>>> Chuck
>>>>>>
>>>>>> sushant puranik wrote:
>>>>>>
>>>>>> Thank you for immediate reply i am testing those scripts. but
>>>>>> while
>>>>>> running the script it shows error in the information of GrADS
>>>>>> files
>>>>>>
>>>>>> level_dir =
>>>>>> '/net2/cjs/ljd/lima/ch3i1/pp/atmos_level/av/monthly_16yr'
>>>>>> don_dir =
>>>>>> '/net2/cjs/ljd/lima/ch3i1/pp/atmosdon/av/monthly_16yr'
>>>>>> ras_dir =
>>>>>>
>>>>>> '/net2/cjs/lwh/fms/lima/m45_am2p14_ch3i/pp/atmos_level/av/monthly_16yr'
>>>>>>
>>>>>> sdir_months = 'Aug Sep'
>>>>>> month_days = '31 30'
>>>>>>
>>>>>> /home/Sushant/Desktop/level_ctl = 'mc.o_zl.ctl' ; level_var =
>>>>>> 'mc'
>>>>>> don_ctl1 = 'uceml_deep.o_zl.ctl' ; don_var1 = 'uceml_deep'
>>>>>> don_ctl2 = 'umeml_deep.o_zl.ctl' ; don_var2 = 'umeml_deep'
>>>>>> don_ctl3 = 'dmeml_deep.o_zl.ctl' ; don_var3 = 'dmeml_deep'
>>>>>>
>>>>>> ras_ctl = 'mc.o_zl.ctl' ; ras_var = 'mc'
>>>>>>
>>>>>> temp_ctl = 'temp.o_zl.ctl' ; temp_var = 'temp'
>>>>>>
>>>>>> So can you please send me those files.
>>>>>>
>>>>>> Also i am using ECMWF data in the netcdf format. So there is
>>>>>> no need
>>>>>> to use ctl files. It is possible to run the script without
>>>>>> using such
>>>>>> ctl file info.
>>>>>>
>>>>>> Sushant
>>>>>>
>>>>>>
>>>>>> On Wed, Nov 25, 2009 at 1:01 AM, Charles Seman
>>>>>> <Charles.Seman at noaa.gov <mailto:Charles.Seman at noaa.gov>
>>>>>> <mailto:Charles.Seman at noaa.gov
>>>>>> <mailto:Charles.Seman at noaa.gov>>> wrote:
>>>>>>
>>>>>> Hi Phillip,
>>>>>>
>>>>>> Please find attached a script "fig3ab.gs
>>>>>> <http://fig3ab.gs>
>>>>>> <http://fig3ab.gs>" and
>>>>>>
>>>>>> called script functions
>>>>>> "pause.gsf" and "scale_zdef_zlevs.gsf".
>>>>>> "scale_zdef_zlevs.gsf"
>>>>>> makes a
>>>>>> local (temporary) ctl file with scaled vertical levels for
>>>>>> plotting
>>>>>> purposes: here specifically to convert the original zdef
>>>>>> zlevs values
>>>>>> from meters to kilometers (there may be a better way to do
>>>>>> this; maybe
>>>>>> using commands "set ylab off", followed by "set yaxis
>>>>>> ..."). I
>>>>>> hope all
>>>>>> of the scripts needed for the fig3ab.gs <http://fig3ab.gs>
>>>>>> <http://fig3ab.gs> script
>>>>>>
>>>>>> are attached; if not,
>>>>>> please let me know. You may have questions about these
>>>>>> scripts;
>>>>>> please
>>>>>> contact me if you do...
>>>>>>
>>>>>>
>>>>>> Hope this helps,
>>>>>> Chuck
>>>>>>
>>>>>> Phillip Lin wrote:
>>>>>>
>>>>>> Hi Chuck,
>>>>>> Thanks for your dedicated input to this problem we
>>>>>> have.
>>>>>> And could you be kind to send me a script you did
>>>>>> before for
>>>>>> the sane or
>>>>>> similar question? Then, maybe it is much helpful for
>>>>>> me to
>>>>>> solve this
>>>>>> problem!
>>>>>> Thanks much!
>>>>>> Phillip
>>>>>>
>>>>>>
>>>>>> Hi Phillip,
>>>>>>
>>>>>> Sorry I didn't explain further: the code was meant
>>>>>> as an
>>>>>> example of how
>>>>>> to find and plot extrema in a field of data. To
>>>>>> do the
>>>>>> max wind, the
>>>>>> code would have to be modified to search in a wind
>>>>>> speed
>>>>>> field using
>>>>>> "maxloc"... and the exact code would also depend
>>>>>> on the
>>>>>> domain...
>>>>>>
>>>>>> Hope this helps,
>>>>>> Chuck
>>>>>>
>>>>>> Phillip Lin wrote:
>>>>>>
>>>>>> Hi Chuck,
>>>>>> I also met this problem. And there are
>>>>>> something
>>>>>> unclear to me (only to
>>>>>> me!)in your last email, because:
>>>>>> (1) the level that has minimum temp isn't the
>>>>>> same as
>>>>>> the level where
>>>>>> there is maximum zonal wind speed;
>>>>>> (2) what does the meaning of the step (3) you
>>>>>> said;
>>>>>> sorry how can plot
>>>>>> the
>>>>>> values (xloc,j,yloc,j) on a (y,z)plot (this is
>>>>>> the
>>>>>> cross section in the
>>>>>> height-latitude plane?
>>>>>> (3)could you be kind to tell me the basic
>>>>>> ideas
>>>>>> to get
>>>>>> the maximum jet
>>>>>> stream, or... this means the contours of zonal
>>>>>> wind
>>>>>> speed in a specific
>>>>>> level as 250mb or ...?
>>>>>> (4)could you be kind to send me the script to
>>>>>> do this
>>>>>> plotting, and data
>>>>>> file too for a test.
>>>>>> I am quite confused about this! Thank you so
>>>>>> much in
>>>>>> advance!
>>>>>> Phillip
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> Sushant,
>>>>>>
>>>>>> Here's some code that:
>>>>>> 1) finds the height level "zmin" of the
>>>>>> minimum
>>>>>> temperature
>>>>>> (represented
>>>>>> by variable ztav = zonal average of
>>>>>> weighted time
>>>>>> average temperature)
>>>>>> at each horizontal location "j" in a (y,z)
>>>>>> physical domain
>>>>>> 2) uses GrADS function "gr2xy"
>>>>>>
>>>>>> (http://grads.iges.org/grads/gadoc/script.html#commands)
>>>>>> to transform
>>>>>> the grid point location (j,zmin) to plot
>>>>>> location
>>>>>> (xloc.j,yloc.j)
>>>>>> 3) plots the values (xloc.j,yloc.j) on a
>>>>>> (y,z) plot
>>>>>>
>>>>>> say ' find and save location of
>>>>>> minimum
>>>>>> temperature...'
>>>>>>
>>>>>> j=1
>>>>>> while ( j <= ny )
>>>>>> 'set y 'j
>>>>>> 'set gxout print'
>>>>>> 'd minloc(ztav,z=1,z='nz')' ; rec3 =
>>>>>> sublin(result,3) ; zmin =
>>>>>> subwrd(rec3,1)
>>>>>> * say result
>>>>>> say ' ...j, zmin = 'j', 'zmin
>>>>>> 'query gr2xy 'j' 'zmin
>>>>>> rec = sublin(result,1) ; xloc.j =
>>>>>> subwrd(rec,3) ; yloc.j =
>>>>>> subwrd(rec,6)
>>>>>> * say result
>>>>>> say ' xloc, yloc = 'xloc.j',
>>>>>> 'yloc.j
>>>>>> j=j+1
>>>>>> endwhile
>>>>>> ...
>>>>>> if( plot_min_temp = 'yes' )
>>>>>> say ' plot level of minimum
>>>>>> temperature... '
>>>>>> j=1
>>>>>> while ( j <= ny )
>>>>>> 'set y 'j
>>>>>> * say ' xloc, yloc = 'xloc.j',
>>>>>> 'yloc.j
>>>>>> 'set line 1'
>>>>>> 'draw mark 3 'xloc.j' 'yloc.j' 0.03'
>>>>>> j=j+1
>>>>>> endwhile
>>>>>> endif
>>>>>>
>>>>>> Please contact me if you have any
>>>>>> questions
>>>>>> about
>>>>>> this code, or would
>>>>>> like a script that does a plot.
>>>>>>
>>>>>> Hope this helps,
>>>>>> Chuck
>>>>>>
>>>>>>
>>>>>> sushant puranik wrote:
>>>>>>
>>>>>>
>>>>>> Hello Sir
>>>>>> I want to study the structure of a jet
>>>>>> stream
>>>>>> for that purpose i wish
>>>>>> to make a plot showing maximum wind
>>>>>> speed for
>>>>>> each grid box alongwith
>>>>>> the level in which the speed is
>>>>>> maximum. Means
>>>>>> it should print level
>>>>>> with maximum wind speed value. I am
>>>>>> trying to
>>>>>> solve this problem since
>>>>>> last 15 days but i am not able to
>>>>>> solve it.
>>>>>> Does anyone has any idea
>>>>>> how i can make such plot using GrADS.
>>>>>> I am
>>>>>> using ECMWF interim
>>>>>> reanalysis data for this purpose.
>>>>>>
>>>>>> Any suggestion is appreciated
>>>>>>
>>>>>> Thanking you.
>>>>>>
>>>>>> --
>>>>>> Sushant Puranik
>>>>>> Junior Research Fellow
>>>>>> Dept. of Atmospheric & Space Sciences,
>>>>>> University of Pune,
>>>>>> Pune-07,
>>>>>> India.
>>>>>>
>>>>>>
>>>>>> --
>>>>>>
>>>>>> Please note that Charles.Seman at noaa.gov
>>>>>> <mailto:Charles.Seman at noaa.gov>
>>>>>> <mailto:Charles.Seman at noaa.gov
>>>>>> <mailto:Charles.Seman at noaa.gov>> should be
>>>>>>
>>>>>> considered my NOAA
>>>>>> email address, not cjs at gfdl.noaa.gov
>>>>>> <mailto:cjs at gfdl.noaa.gov>
>>>>>> <mailto:cjs at gfdl.noaa.gov
>>>>>> <mailto:cjs at gfdl.noaa.gov>>.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> ********************************************************************
>>>>>> Charles Seman
>>>>>> Charles.Seman at noaa.gov
>>>>>> <mailto:Charles.Seman at noaa.gov>
>>>>>> <mailto:Charles.Seman at noaa.gov
>>>>>> <mailto:Charles.Seman at noaa.gov>>
>>>>>>
>>>>>> U.S. Department of Commerce / NOAA / OAR
>>>>>> Geophysical Fluid Dynamics Laboratory
>>>>>> voice: (609) 452-6547
>>>>>> 201 Forrestal Road
>>>>>> fax: (609) 987-5063
>>>>>> Princeton, NJ 08540-6649
>>>>>> http://www.gfdl.noaa.gov/~cjs/
>>>>>> <http://www.gfdl.noaa.gov/%7Ecjs/>
>>>>>> <http://www.gfdl.noaa.gov/%7Ecjs/>
>>>>>>
>>>>>>
>>>>>>
>>>>>> ********************************************************************
>>>>>>
>>>>>> "The contents of this message are mine
>>>>>> personally
>>>>>> and do not
>>>>>> necessarily
>>>>>> reflect any position of the Government or
>>>>>> NOAA."
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>>
>>>>>> Please note that Charles.Seman at noaa.gov
>>>>>> <mailto:Charles.Seman at noaa.gov>
>>>>>> <mailto:Charles.Seman at noaa.gov
>>>>>> <mailto:Charles.Seman at noaa.gov>> should be considered my NOAA
>>>>>>
>>>>>> email address, not cjs at gfdl.noaa.gov
>>>>>> <mailto:cjs at gfdl.noaa.gov>
>>>>>> <mailto:cjs at gfdl.noaa.gov
>>>>>> <mailto:cjs at gfdl.noaa.gov>>.
>>>>>>
>>>>>>
>>>>>>
>>>>>> ********************************************************************
>>>>>> Charles Seman
>>>>>> Charles.Seman at noaa.gov
>>>>>> <mailto:Charles.Seman at noaa.gov>
>>>>>> <mailto:Charles.Seman at noaa.gov
>>>>>> <mailto:Charles.Seman at noaa.gov>>
>>>>>>
>>>>>> U.S. Department of Commerce / NOAA / OAR
>>>>>> Geophysical Fluid Dynamics Laboratory
>>>>>> voice:
>>>>>> (609) 452-6547
>>>>>> 201 Forrestal Road
>>>>>> fax:
>>>>>> (609) 987-5063
>>>>>> Princeton, NJ 08540-6649
>>>>>> http://www.gfdl.noaa.gov/~cjs/
>>>>>> <http://www.gfdl.noaa.gov/%7Ecjs/>
>>>>>> <http://www.gfdl.noaa.gov/%7Ecjs/>
>>>>>>
>>>>>>
>>>>>>
>>>>>> ********************************************************************
>>>>>>
>>>>>> "The contents of this message are mine personally
>>>>>> and do
>>>>>> not necessarily
>>>>>> reflect any position of the Government or NOAA."
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>>
>>>>>> Please note that Charles.Seman at noaa.gov
>>>>>> <mailto:Charles.Seman at noaa.gov>
>>>>>> <mailto:Charles.Seman at noaa.gov
>>>>>> <mailto:Charles.Seman at noaa.gov>> should be considered my NOAA
>>>>>> email address, not cjs at gfdl.noaa.gov
>>>>>> <mailto:cjs at gfdl.noaa.gov> <mailto:cjs at gfdl.noaa.gov
>>>>>> <mailto:cjs at gfdl.noaa.gov>>.
>>>>>>
>>>>>>
>>>>>>
>>>>>> ********************************************************************
>>>>>> Charles Seman
>>>>>> Charles.Seman at noaa.gov <mailto:Charles.Seman at noaa.gov>
>>>>>> <mailto:Charles.Seman at noaa.gov
>>>>>> <mailto:Charles.Seman at noaa.gov>>
>>>>>>
>>>>>> U.S. Department of Commerce / NOAA / OAR
>>>>>> Geophysical Fluid Dynamics Laboratory voice: (609)
>>>>>> 452-6547
>>>>>> 201 Forrestal Road fax: (609)
>>>>>> 987-5063
>>>>>> Princeton, NJ 08540-6649
>>>>>> http://www.gfdl.noaa.gov/~cjs/
>>>>>> <http://www.gfdl.noaa.gov/%7Ecjs/>
>>>>>> <http://www.gfdl.noaa.gov/%7Ecjs/>
>>>>>>
>>>>>>
>>>>>>
>>>>>> ********************************************************************
>>>>>>
>>>>>> "The contents of this message are mine personally and do
>>>>>> not
>>>>>> necessarily
>>>>>> reflect any position of the Government or NOAA."
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> ************************************************************************
>>>>>> *
>>>>>> * To use: "grads -p"
>>>>>> *
>>>>>> * Script calculates and plots zonally averaged
>>>>>> cross-sections of the
>>>>>> * time averaged height interpolated "mass flux" from the
>>>>>> GrADS files
>>>>>> * specified below (with an option to overlay the level of
>>>>>> minimum
>>>>>> * temperature):
>>>>>> *
>>>>>>
>>>>>>
>>>>>> ************************************************************************
>>>>>> function mass_flux (args)
>>>>>>
>>>>>> 'reinit'
>>>>>>
>>>>>>
>>>>>>
>>>>>> ************************************************************************
>>>>>> * Allow external GrADS functions
>>>>>>
>>>>>>
>>>>>> ************************************************************************
>>>>>>
>>>>>> rc = gsfallow("on")
>>>>>>
>>>>>>
>>>>>>
>>>>>> ************************************************************************
>>>>>> * Pause between plots?
>>>>>>
>>>>>>
>>>>>> ************************************************************************
>>>>>>
>>>>>> do_pause = 'no'
>>>>>>
>>>>>>
>>>>>>
>>>>>> ************************************************************************
>>>>>> * GrADS meta file output?
>>>>>>
>>>>>>
>>>>>> ************************************************************************
>>>>>>
>>>>>> do_print = 'yes'
>>>>>>
>>>>>>
>>>>>>
>>>>>> ************************************************************************
>>>>>> * Information for GrADS files
>>>>>>
>>>>>>
>>>>>> ************************************************************************
>>>>>>
>>>>>> level_dir =
>>>>>> '/net2/cjs/ljd/lima/ch3i1/pp/atmos_level/av/monthly_16yr'
>>>>>> don_dir =
>>>>>> '/net2/cjs/ljd/lima/ch3i1/pp/atmosdon/av/monthly_16yr'
>>>>>> ras_dir =
>>>>>>
>>>>>>
>>>>>> '/net2/cjs/lwh/fms/lima/m45_am2p14_ch3i/pp/atmos_level/av/monthly_16yr'
>>>>>>
>>>>>> sdir_months = 'Aug Sep'
>>>>>> month_days = '31 30'
>>>>>>
>>>>>> level_ctl = 'mc.o_zl.ctl' ; level_var = 'mc'
>>>>>> don_ctl1 = 'uceml_deep.o_zl.ctl' ; don_var1 =
>>>>>> 'uceml_deep'
>>>>>> don_ctl2 = 'umeml_deep.o_zl.ctl' ; don_var2 =
>>>>>> 'umeml_deep'
>>>>>> don_ctl3 = 'dmeml_deep.o_zl.ctl' ; don_var3 =
>>>>>> 'dmeml_deep'
>>>>>>
>>>>>> ras_ctl = 'mc.o_zl.ctl' ; ras_var = 'mc'
>>>>>>
>>>>>> temp_ctl = 'temp.o_zl.ctl' ; temp_var = 'temp'
>>>>>>
>>>>>>
>>>>>>
>>>>>> ************************************************************************
>>>>>> * Information for the plots
>>>>>>
>>>>>>
>>>>>> ************************************************************************
>>>>>>
>>>>>> plot_min_max = 'no'
>>>>>> *
>>>>>> * Mass flux variable scale and units
>>>>>> *
>>>>>> var_scale = 1000
>>>>>> var_units = '(g m`a-2`n s`a-1`n)'
>>>>>> *
>>>>>> * Height levels (scale GrADS ctl file levels from "m" to
>>>>>> "km")
>>>>>> *
>>>>>> zscale = 1./1000.
>>>>>> zlevs = '0 18'
>>>>>> ylabel_int = 2
>>>>>> ylabel = 'Height (km)'
>>>>>> *
>>>>>> * Define the contour levels...
>>>>>> *
>>>>>> *contour_levels = '1 3 5 7 9 11 13'
>>>>>> *contour_levels = '0 2 4 6 8 10 12 14 16'
>>>>>> contour_levels = '0 0.01 0.1 1 3 5 7 10 15'
>>>>>> *
>>>>>> * Plot level of minimum temperature?
>>>>>> *
>>>>>> plot_min_temp = 'yes'
>>>>>>
>>>>>>
>>>>>>
>>>>>> ************************************************************************
>>>>>> * Plot variables' page limits
>>>>>>
>>>>>>
>>>>>> ************************************************************************
>>>>>>
>>>>>> pvar_vpage.1 = '0 8.5 4.8 9.3'
>>>>>> pvar_vpage.2 = '0 8.5 0.3 4.8'
>>>>>> pvar_parea = '1 7.0 0.5 4.0'
>>>>>>
>>>>>> xl_pvar_parea = subwrd(pvar_parea,1)
>>>>>> yt_pvar_parea = subwrd(pvar_parea,4)
>>>>>>
>>>>>>
>>>>>>
>>>>>> ************************************************************************
>>>>>> * Title information for the plots
>>>>>>
>>>>>>
>>>>>> ************************************************************************
>>>>>>
>>>>>> mod_title = 'FMS lima 1983-1998'
>>>>>> var_title = 'Mass Flux 'var_units
>>>>>> avg_title = 'Zonal average of weighted time average'
>>>>>>
>>>>>> figure_panel.1 = '(a)' ; model.1 = 'AM2-D'
>>>>>> figure_panel.2 = '(b)' ; model.2 = 'AM2'
>>>>>> *
>>>>>> * Define names for the "sdir_months" subdirectories...
>>>>>> *
>>>>>> define_months()
>>>>>>
>>>>>>
>>>>>>
>>>>>> ************************************************************************
>>>>>> * GrADS metafile for output
>>>>>>
>>>>>>
>>>>>> ************************************************************************
>>>>>>
>>>>>> if( do_print = 'yes' )
>>>>>> 'enable print fig3ab.gx'
>>>>>> endif
>>>>>>
>>>>>>
>>>>>>
>>>>>> *-----------------------------------------------------------------------
>>>>>> * Determine number of months to average...
>>>>>>
>>>>>>
>>>>>> *-----------------------------------------------------------------------
>>>>>>
>>>>>> n=1
>>>>>> month = subwrd(sdir_months,n)
>>>>>> if( month = '' )
>>>>>> say
>>>>>> say 'No months specified in variable "sdir_months"...'
>>>>>> say 'Exiting script'
>>>>>> say
>>>>>> exit
>>>>>> else
>>>>>> while ( month != '' )
>>>>>> n=n+1
>>>>>> month = subwrd(sdir_months,n)
>>>>>> endwhile
>>>>>> nmonths=n-1
>>>>>> endif
>>>>>>
>>>>>> first = subwrd(sdir_months,1) ; last =
>>>>>> subwrd(sdir_months,nmonths)
>>>>>> months = ''_name.first'-'_name.last''
>>>>>>
>>>>>>
>>>>>>
>>>>>> *-----------------------------------------------------------------------
>>>>>> * Verify height levels...
>>>>>>
>>>>>>
>>>>>> *-----------------------------------------------------------------------
>>>>>>
>>>>>> l=1
>>>>>> zlv.l = subwrd(zlevs,l)
>>>>>> if( zlv.l = '' )
>>>>>> say
>>>>>> say 'No pressure levels specified in variable "zlevs"...'
>>>>>> say 'Exiting script'
>>>>>> say
>>>>>> exit
>>>>>> else
>>>>>> while ( zlv.l != '' )
>>>>>> l=l+1
>>>>>> zlv.l = subwrd(zlevs,l)
>>>>>> endwhile
>>>>>> nl = l-1
>>>>>> if( nl > 2 )
>>>>>> say
>>>>>> say 'More than two height levels ("nl" = 'nl')
>>>>>> specified in
>>>>>> variable "zlevs"...'
>>>>>> say 'Exiting script'
>>>>>> say
>>>>>> exit
>>>>>> else
>>>>>> if( zlv.2 <= zlv.1 )
>>>>>> say
>>>>>> say 'Height level "2" (= 'zlv.2') not greater than
>>>>>> height
>>>>>> level "1" (= 'plv.1')...'
>>>>>> say 'Exiting script'
>>>>>> say
>>>>>> exit
>>>>>> endif
>>>>>> endif
>>>>>> endif
>>>>>>
>>>>>> say
>>>>>> say
>>>>>>
>>>>>>
>>>>>> '------------------------------------------------------------------'
>>>>>> say 'Calculate zonal averages of weighted time average
>>>>>> "mass
>>>>>> fluxes"...'
>>>>>> say
>>>>>>
>>>>>>
>>>>>> '------------------------------------------------------------------'
>>>>>> say
>>>>>> say 'Initialize time sum variables for time average...'
>>>>>> say
>>>>>> *
>>>>>> * Use GrADS ctl files for the first "month" to define
>>>>>> time sum
>>>>>> variables...
>>>>>> *
>>>>>> month1 = subwrd(sdir_months,1)
>>>>>> say
>>>>>> say '--------------------'
>>>>>> say 'Model: 'model.1
>>>>>> say '--------------------'
>>>>>> say
>>>>>>
>>>>>> ctl_file = ''level_dir'/'month1'/'level_ctl
>>>>>> *
>>>>>> * Make local ctl file with scaled vertical levels...
>>>>>> *
>>>>>> ctl_file_scale = 'mass_flux.scale.ctl'
>>>>>> scale_zdef_zlevs(ctl_file,zscale,ctl_file_scale)
>>>>>>
>>>>>> say 'Open GrADS file:'
>>>>>> say '...'ctl_file_scale
>>>>>> 'open 'ctl_file_scale
>>>>>>
>>>>>> 'query file'
>>>>>> rec5 = sublin(result,5)
>>>>>> nx = subwrd(rec5,3) ; ny = subwrd(rec5,6) ; nz =
>>>>>> subwrd(rec5,9)
>>>>>> 'set x 1 'nx
>>>>>> 'set y 1 'ny
>>>>>> 'set z 1 'nz
>>>>>> 'set t 1'
>>>>>> say ' initialize: wtsum1m'
>>>>>> 'define wtsum1m = const('level_var',0,-a)'
>>>>>> 'close 1'
>>>>>> '!rm 'ctl_file_scale
>>>>>>
>>>>>> if( plot_min_temp = 'yes' )
>>>>>> *
>>>>>> * Make local ctl file with scaled vertical levels...
>>>>>> *
>>>>>> ctl_file = ''level_dir'/'month1'/'temp_ctl
>>>>>> ctl_file_scale = 'temp.scale.ctl'
>>>>>> scale_zdef_zlevs(ctl_file,zscale,ctl_file_scale)
>>>>>>
>>>>>> say 'Open GrADS file:'
>>>>>> say '...'ctl_file_scale
>>>>>> 'open 'ctl_file_scale
>>>>>> 'query file'
>>>>>> rec5 = sublin(result,5)
>>>>>> nxt = subwrd(rec5,3) ; nyt = subwrd(rec5,6) ; nzt =
>>>>>> subwrd(rec5,9)
>>>>>> if( nxt != nx )
>>>>>> say '...nxt = 'nxt
>>>>>> say '...nx = 'nx
>>>>>> exit
>>>>>> endif
>>>>>> if( nyt != ny )
>>>>>> say '...nyt = 'nyt
>>>>>> say '...ny = 'ny
>>>>>> exit
>>>>>> endif
>>>>>> if( nzt != nz )
>>>>>> say '...nzt = 'nzt
>>>>>> say '...nz = 'nz
>>>>>> exit
>>>>>> endif
>>>>>> 'set x 1 'nx
>>>>>> 'set y 1 'ny
>>>>>> 'set z 1 'nz
>>>>>> 'set t 1'
>>>>>> say ' initialize: wtsum1t'
>>>>>> 'define wtsum1t = const('temp_var',0,-a)'
>>>>>> 'close 1'
>>>>>> '!rm 'ctl_file_scale
>>>>>> endif
>>>>>>
>>>>>> say
>>>>>> say '--------------------'
>>>>>> say 'Model: 'model.2
>>>>>> say '--------------------'
>>>>>> say
>>>>>>
>>>>>> ctl_file = ''ras_dir'/'month1'/'ras_ctl
>>>>>> *
>>>>>> * Make local ctl file with scaled vertical levels...
>>>>>> *
>>>>>> ctl_file_scale = 'mass_flux.scale.ctl'
>>>>>> scale_zdef_zlevs(ctl_file,zscale,ctl_file_scale)
>>>>>>
>>>>>> say 'Open GrADS file:'
>>>>>> say '...'ctl_file_scale
>>>>>> 'open 'ctl_file_scale
>>>>>> 'query file'
>>>>>> rec5 = sublin(result,5)
>>>>>> nx = subwrd(rec5,3) ; ny = subwrd(rec5,6) ; nz =
>>>>>> subwrd(rec5,9)
>>>>>> 'set x 1 'nx
>>>>>> 'set y 1 'ny
>>>>>> 'set z 1 'nz
>>>>>> 'set t 1'
>>>>>> say ' initialize: wtsum2m'
>>>>>> 'define wtsum2m = const('ras_var',0,-a)'
>>>>>> 'close 1'
>>>>>> '!rm 'ctl_file_scale
>>>>>>
>>>>>> if( plot_min_temp = 'yes' )
>>>>>> *
>>>>>> * Make local ctl file with scaled vertical levels...
>>>>>> *
>>>>>> ctl_file = ''ras_dir'/'month1'/'temp_ctl
>>>>>> ctl_file_scale = 'temp.scale.ctl'
>>>>>> scale_zdef_zlevs(ctl_file,zscale,ctl_file_scale)
>>>>>>
>>>>>> say 'Open GrADS file:'
>>>>>> say '...'ctl_file_scale
>>>>>> 'open 'ctl_file_scale
>>>>>> 'query file'
>>>>>> rec5 = sublin(result,5)
>>>>>> nxt = subwrd(rec5,3) ; nyt = subwrd(rec5,6) ; nzt =
>>>>>> subwrd(rec5,9)
>>>>>> if( nxt != nx )
>>>>>> say '...nxt = 'nxt
>>>>>> say '...nx = 'nx
>>>>>> exit
>>>>>> endif
>>>>>> if( nyt != ny )
>>>>>> say '...nyt = 'nyt
>>>>>> say '...ny = 'ny
>>>>>> exit
>>>>>> endif
>>>>>> if( nzt != nz )
>>>>>> say '...nzt = 'nzt
>>>>>> say '...nz = 'nz
>>>>>> exit
>>>>>> endif
>>>>>> 'set x 1 'nx
>>>>>> 'set y 1 'ny
>>>>>> 'set z 1 'nz
>>>>>> 'set t 1'
>>>>>> say ' initialize: wtsum2t'
>>>>>> 'define wtsum2t = const('temp_var',0,-a)'
>>>>>> 'close 1'
>>>>>> '!rm 'ctl_file_scale
>>>>>> endif
>>>>>>
>>>>>> if( do_pause = 'yes' )
>>>>>> pause()
>>>>>> endif
>>>>>> *
>>>>>> * Calculate running time sum variables for "mass flux"
>>>>>> variable...
>>>>>> *
>>>>>> n=1
>>>>>> ndays=0
>>>>>>
>>>>>>
>>>>>> *-----------------------------------------------------------------------
>>>>>> while ( n <= nmonths )
>>>>>>
>>>>>>
>>>>>> *-----------------------------------------------------------------------
>>>>>> *
>>>>>> * Name of the month...
>>>>>> *
>>>>>> month = subwrd(sdir_months,n)
>>>>>> *
>>>>>> * Days in the month...
>>>>>> *
>>>>>> days = subwrd(month_days,n)
>>>>>>
>>>>>> say
>>>>>> say '------------------------'
>>>>>> say 'Month = 'month', days = 'days
>>>>>> say '------------------------'
>>>>>> say
>>>>>> say
>>>>>> say '--------------------'
>>>>>> say 'Model: 'model.1
>>>>>> say '--------------------'
>>>>>> say
>>>>>>
>>>>>> ctl_file.1 = ''level_dir'/'month'/'level_ctl
>>>>>> ctl_file.2 = ''don_dir'/'month'/'don_ctl1
>>>>>> ctl_file.3 = ''don_dir'/'month'/'don_ctl2
>>>>>> ctl_file.4 = ''don_dir'/'month'/'don_ctl3
>>>>>> *
>>>>>> * Make local ctl files with scaled vertical levels...
>>>>>> *
>>>>>> ctl_file_scale.1 = 'mass_flux.1.scale.ctl'
>>>>>> scale_zdef_zlevs(ctl_file.1,zscale,ctl_file_scale.1)
>>>>>> ctl_file_scale.2 = 'mass_flux.2.scale.ctl'
>>>>>> scale_zdef_zlevs(ctl_file.2,zscale,ctl_file_scale.2)
>>>>>> ctl_file_scale.3 = 'mass_flux.3.scale.ctl'
>>>>>> scale_zdef_zlevs(ctl_file.3,zscale,ctl_file_scale.3)
>>>>>> ctl_file_scale.4 = 'mass_flux.4.scale.ctl'
>>>>>> scale_zdef_zlevs(ctl_file.4,zscale,ctl_file_scale.4)
>>>>>>
>>>>>> say 'Open GrADS file 1:'
>>>>>> say '...'ctl_file_scale.1
>>>>>> 'open 'ctl_file_scale.1
>>>>>> say 'Open GrADS file 2:'
>>>>>> say '...'ctl_file_scale.2
>>>>>> 'open 'ctl_file_scale.2
>>>>>> say 'Open GrADS file 3:'
>>>>>> say '...'ctl_file_scale.3
>>>>>> 'open 'ctl_file_scale.3
>>>>>> say 'Open GrADS file 4:'
>>>>>> say '...'ctl_file_scale.4
>>>>>> 'open 'ctl_file_scale.4
>>>>>> say 'GrADS files ready'
>>>>>>
>>>>>> say
>>>>>> say ' calculate weighted (using days = 'days') "mass
>>>>>> flux" time
>>>>>> sum'
>>>>>> say '
>>>>>> ('level_var'.1+'don_var1'.2+'don_var2'.3+'don_var3'.4)'
>>>>>> say ' for current month and add it to the time sum
>>>>>> variable...'
>>>>>> say
>>>>>> 'set dfile 1'
>>>>>> 'set x 1 'nx
>>>>>> 'set y 1 'ny
>>>>>> 'set z 1 'nz
>>>>>> 'set t 1'
>>>>>> 'define wtsum1m = wtsum1m +
>>>>>>
>>>>>> 'days'*('level_var'.1+'don_var1'.2+'don_var2'.3+'don_var3'.4)'
>>>>>>
>>>>>> 'close 4' ; 'close 3' ; 'close 2' ; 'close 1'
>>>>>> '!rm 'ctl_file_scale.1
>>>>>> '!rm 'ctl_file_scale.2
>>>>>> '!rm 'ctl_file_scale.3
>>>>>> '!rm 'ctl_file_scale.4
>>>>>>
>>>>>> if( plot_min_temp = 'yes' )
>>>>>>
>>>>>> ctl_file = ''level_dir'/'month'/'temp_ctl
>>>>>> *
>>>>>> * Make local ctl file with scaled vertical levels...
>>>>>> *
>>>>>> ctl_file_scale = 'temp.scale.ctl'
>>>>>> scale_zdef_zlevs(ctl_file,zscale,ctl_file_scale)
>>>>>>
>>>>>> say 'Open GrADS file:'
>>>>>> say '...'ctl_file_scale
>>>>>> 'open 'ctl_file_scale
>>>>>> say 'GrADS file ready'
>>>>>> say
>>>>>> say ' calculate weighted (using days = 'days')
>>>>>> temperature
>>>>>> time sum'
>>>>>> say ' for current month and add it to the time sum
>>>>>> variable...'
>>>>>> say
>>>>>>
>>>>>> 'set x 1 'nx
>>>>>> 'set y 1 'ny
>>>>>> 'set z 1 'nz
>>>>>> 'set t 1'
>>>>>> 'define wtsum1t = wtsum1t + 'days'*'temp_var
>>>>>>
>>>>>> 'close 1'
>>>>>> '!rm 'ctl_file_scale
>>>>>>
>>>>>> endif
>>>>>>
>>>>>> say
>>>>>> say '--------------------'
>>>>>> say 'Model: 'model.2
>>>>>> say '--------------------'
>>>>>> say
>>>>>>
>>>>>> ctl_file = ''ras_dir'/'month'/'ras_ctl
>>>>>> *
>>>>>> * Make local ctl file with scaled vertical levels...
>>>>>> *
>>>>>> ctl_file_scale = 'mass_flux.scale.ctl'
>>>>>> scale_zdef_zlevs(ctl_file,zscale,ctl_file_scale)
>>>>>>
>>>>>> say 'Open GrADS file:'
>>>>>> say '...'ctl_file_scale
>>>>>> 'open 'ctl_file_scale
>>>>>> say 'GrADS file ready'
>>>>>>
>>>>>> say
>>>>>> say ' calculate weighted (using days = 'days') "mass
>>>>>> flux" time
>>>>>> sum'
>>>>>> say ' ('ras_var'.1)'
>>>>>> say ' for current month and add it to the time sum
>>>>>> variable...'
>>>>>> say
>>>>>> 'query file'
>>>>>> rec5 = sublin(result,5)
>>>>>> nx = subwrd(rec5,3) ; ny = subwrd(rec5,6) ; nz =
>>>>>> subwrd(rec5,9)
>>>>>> 'set x 1 'nx
>>>>>> 'set y 1 'ny
>>>>>> 'set z 1 'nz
>>>>>> 'set t 1'
>>>>>> 'define wtsum2m = wtsum2m + 'days'*'ras_var
>>>>>>
>>>>>> 'close 1'
>>>>>> '!rm 'ctl_file_scale
>>>>>>
>>>>>> if( plot_min_temp = 'yes' )
>>>>>>
>>>>>> ctl_file = ''ras_dir'/'month'/'temp_ctl
>>>>>> *
>>>>>> * Make local ctl file with scaled vertical levels...
>>>>>> *
>>>>>> ctl_file_scale = 'temp.scale.ctl'
>>>>>> scale_zdef_zlevs(ctl_file,zscale,ctl_file_scale)
>>>>>>
>>>>>> say 'Open GrADS file:'
>>>>>> say '...'ctl_file_scale
>>>>>> 'open 'ctl_file_scale
>>>>>> say 'GrADS file ready'
>>>>>> say
>>>>>> say ' calculate weighted (using days = 'days')
>>>>>> temperature
>>>>>> time sum'
>>>>>> say ' for current month and add it to the time sum
>>>>>> variable...'
>>>>>> say
>>>>>>
>>>>>> 'set x 1 'nx
>>>>>> 'set y 1 'ny
>>>>>> 'set z 1 'nz
>>>>>> 'set t 1'
>>>>>> 'define wtsum2t = wtsum2t + 'days'*'temp_var
>>>>>>
>>>>>> 'close 1'
>>>>>> '!rm 'ctl_file_scale
>>>>>>
>>>>>> endif
>>>>>>
>>>>>> say
>>>>>> say '...finished month'
>>>>>> say
>>>>>>
>>>>>> if( do_pause = 'yes' )
>>>>>> pause()
>>>>>> endif
>>>>>>
>>>>>> n=n+1
>>>>>> ndays=ndays+days
>>>>>>
>>>>>>
>>>>>> *-----------------------------------------------------------------------
>>>>>> endwhile
>>>>>>
>>>>>>
>>>>>> *-----------------------------------------------------------------------
>>>>>> say
>>>>>> say '---------------------------'
>>>>>> say 'Finished weighted time sums'
>>>>>> say '---------------------------'
>>>>>> say
>>>>>> say
>>>>>> say
>>>>>>
>>>>>>
>>>>>> '------------------------------------------------------------------'
>>>>>> say 'Calculate zonal averages of the weighted time
>>>>>> averages'
>>>>>> say 'of the weighted time sums, and plot the data...'
>>>>>> say
>>>>>>
>>>>>>
>>>>>> '------------------------------------------------------------------'
>>>>>> say
>>>>>> say 'Use GrADS ctl files for the first "month" to define
>>>>>> time
>>>>>> averaged variables for plotting...'
>>>>>> *
>>>>>> * Model #1
>>>>>> *
>>>>>> ctl_file.1 = ''level_dir'/'month1'/'level_ctl
>>>>>> ctl_file_temp.1 = ''level_dir'/'month1'/'temp_ctl
>>>>>> *
>>>>>> * Model #2
>>>>>> *
>>>>>> ctl_file.2 = ''ras_dir'/'month1'/'ras_ctl
>>>>>> ctl_file_temp.2 = ''ras_dir'/'month1'/'temp_ctl
>>>>>> *
>>>>>> * Initialize min/max variables...
>>>>>> *
>>>>>> min = 1e6 ; max = -1e6
>>>>>> *
>>>>>> * Start a new frame, and plot a title at top of page...
>>>>>> *
>>>>>> ptitle_top(var_title,avg_title,months,pvar_parea)
>>>>>>
>>>>>> m=1
>>>>>> while ( m <= 2 )
>>>>>>
>>>>>> say
>>>>>> say '--------------------'
>>>>>> say 'Model: 'model.m
>>>>>> say '--------------------'
>>>>>> say
>>>>>>
>>>>>> if( plot_min_temp = 'yes' )
>>>>>> say
>>>>>> say 'Find and save level of minimum temperature for
>>>>>> the'
>>>>>> say 'zonal and weighted time average temperature...'
>>>>>> say
>>>>>> *
>>>>>> * Make local ctl file with scaled vertical levels...
>>>>>> *
>>>>>> ctl_file_scale = 'temp.scale.ctl'
>>>>>> scale_zdef_zlevs(ctl_file_temp.m,zscale,ctl_file_scale)
>>>>>>
>>>>>> say 'Open GrADS file:'
>>>>>> say '...'ctl_file_scale
>>>>>> 'open 'ctl_file_scale
>>>>>> say 'GrADS file ready'
>>>>>> say
>>>>>> 'query file'
>>>>>> rec5 = sublin(result,5)
>>>>>> nx = subwrd(rec5,3) ; ny = subwrd(rec5,6) ; nz =
>>>>>> subwrd(rec5,9)
>>>>>>
>>>>>> say ' calculate weighted time average (using ndays =
>>>>>> 'ndays')...'
>>>>>>
>>>>>> 'set x 1 'nx
>>>>>> 'set y 1 'ny
>>>>>> 'set z 1 'nz
>>>>>> 'set t 1'
>>>>>> 'define tav = wtsum'm't/'ndays
>>>>>>
>>>>>> say ' calculate zonal averages of the weighted time
>>>>>> average...'
>>>>>>
>>>>>> 'set x 1'
>>>>>> 'set y 1 'ny
>>>>>> 'set z 1 'nz
>>>>>> 'set t 1'
>>>>>> 'define ztav = ave(tav,x=1,x='nx')'
>>>>>>
>>>>>> say ' plot zonal average of the weighted time
>>>>>> average...'
>>>>>>
>>>>>> 'set vpage 'pvar_vpage.m
>>>>>> 'set parea 'pvar_parea
>>>>>> 'set grads off'
>>>>>> 'set gxout contour'
>>>>>> 'set clab off'
>>>>>> 'set ccolor 0'
>>>>>> 'set xlab off'
>>>>>> 'set ylab off'
>>>>>> 'd ztav'
>>>>>>
>>>>>> say ' find and save location of minimum
>>>>>> temperature...'
>>>>>>
>>>>>> j=1
>>>>>> while ( j <= ny )
>>>>>> 'set y 'j
>>>>>> 'set gxout print'
>>>>>> 'd minloc(ztav,z=1,z='nz')' ; rec3 = sublin(result,3)
>>>>>> ; zmin
>>>>>> = subwrd(rec3,1)
>>>>>> * say result
>>>>>> say ' ...j, zmin = 'j', 'zmin
>>>>>> 'query gr2xy 'j' 'zmin
>>>>>> rec = sublin(result,1) ; xloc.j = subwrd(rec,3) ;
>>>>>> yloc.j =
>>>>>> subwrd(rec,6)
>>>>>> * say result
>>>>>> say ' xloc, yloc = 'xloc.j', 'yloc.j
>>>>>> j=j+1
>>>>>> endwhile
>>>>>>
>>>>>> 'undefine wtsum'm't' ; 'undefine tav' ; 'undefine ztav'
>>>>>> 'close 1'
>>>>>> '!rm 'ctl_file_scale
>>>>>>
>>>>>> endif
>>>>>>
>>>>>> say
>>>>>> say 'Calculate and plot zonally averaged "mass flux"...'
>>>>>> say
>>>>>> *
>>>>>> * Make local ctl file with scaled vertical levels...
>>>>>> *
>>>>>> ctl_file_scale = 'mass_flux.scale.ctl'
>>>>>> scale_zdef_zlevs(ctl_file.m,zscale,ctl_file_scale)
>>>>>>
>>>>>> say 'Open GrADS file:'
>>>>>> say '...'ctl_file_scale
>>>>>> 'open 'ctl_file_scale
>>>>>> say 'GrADS file ready'
>>>>>> say
>>>>>> say
>>>>>> 'query file'
>>>>>> rec5 = sublin(result,5)
>>>>>> nx = subwrd(rec5,3) ; ny = subwrd(rec5,6) ; nz =
>>>>>> subwrd(rec5,9)
>>>>>>
>>>>>> say ' calculate weighted "mass flux" time average
>>>>>> (using
>>>>>> ndays
>>>>>> = 'ndays')'
>>>>>>
>>>>>> 'set x 1 'nx
>>>>>> 'set y 1 'ny
>>>>>> 'set z 1 'nz
>>>>>> 'set t 1'
>>>>>> 'define tav = wtsum'm'm/'ndays
>>>>>>
>>>>>> say ' calculate zonal averages of the weighted time
>>>>>> average...'
>>>>>>
>>>>>> 'set x 1'
>>>>>> 'set y 1 'ny
>>>>>> 'set z 1 'nz
>>>>>> 'set t 1'
>>>>>> 'define ztav = 'var_scale'*ave(tav,x=1,x='nx')'
>>>>>>
>>>>>> say ' plot zonal averages of time averaged "mass flux"'
>>>>>> 'set vpage 'pvar_vpage.m
>>>>>> 'set parea 'pvar_parea
>>>>>> 'set grads off'
>>>>>> 'set clevs 'contour_levels
>>>>>> 'set gxout shaded'
>>>>>> 'set xlab on'
>>>>>> 'set ylab on'
>>>>>> 'set ylint 'ylabel_int
>>>>>> 'set x 1'
>>>>>> 'set y 1 'ny
>>>>>> 'set lev 'zlevs
>>>>>> 'set t 1'
>>>>>> 'd ztav'
>>>>>> 'run cbar.gs <http://cbar.gs> <http://cbar.gs> 0.7'
>>>>>>
>>>>>> 'draw title \\\ 'model.m
>>>>>> * 'draw xlab Latitude \\\'
>>>>>> 'draw ylab \\\ 'ylabel
>>>>>> xfp = xl_pvar_parea + 0.1
>>>>>> yfp = yt_pvar_parea + 0.2
>>>>>> 'set string 1 l 6'
>>>>>> 'set strsiz 0.13'
>>>>>> 'draw string 'xfp' 'yfp' 'figure_panel.m
>>>>>> 'set gxout stat'
>>>>>> 'd ztav'
>>>>>> min_max = sublin(result,8)
>>>>>> say ' 'min_max
>>>>>> min = subwrd(min_max,4)
>>>>>> max = subwrd(min_max,5)
>>>>>> if( plot_min_max = 'yes' )
>>>>>> xmm = xl_pvar_parea + 0.1
>>>>>> ymm = yt_pvar_parea - 0.1
>>>>>> 'set string 1 l 4'
>>>>>> 'set strsiz 0.08'
>>>>>> 'draw string 'xmm' 'ymm' 'min_max' '
>>>>>> endif
>>>>>>
>>>>>> if( plot_min_temp = 'yes' )
>>>>>> say ' plot level of minimum temperature... '
>>>>>> j=1
>>>>>> while ( j <= ny )
>>>>>> 'set y 'j
>>>>>> * say ' xloc, yloc = 'xloc.j', 'yloc.j
>>>>>> 'set line 1'
>>>>>> 'draw mark 3 'xloc.j' 'yloc.j' 0.03'
>>>>>> j=j+1
>>>>>> endwhile
>>>>>> endif
>>>>>>
>>>>>> 'undefine wtsum'm'm' ; 'undefine tav' ; 'undefine ztav'
>>>>>> 'close 1'
>>>>>> '!rm 'ctl_file_scale
>>>>>>
>>>>>> say
>>>>>> say '...finished plot for: 'model.m
>>>>>> say
>>>>>> m=m+1
>>>>>> endwhile
>>>>>>
>>>>>> say
>>>>>> say '--------------'
>>>>>> say 'Finished plots'
>>>>>> say '--------------'
>>>>>> say
>>>>>>
>>>>>> if( do_print = 'yes' )
>>>>>> 'print'
>>>>>> 'disable print'
>>>>>> endif
>>>>>>
>>>>>> say
>>>>>> say '--------------------------'
>>>>>> say '"Mass flux" min/max values'
>>>>>> say '--------------------------'
>>>>>> say
>>>>>> say 'min = 'min' max = 'max
>>>>>>
>>>>>> say
>>>>>> say '************************************************'
>>>>>> say ' Finished with this script.'
>>>>>> say '************************************************'
>>>>>> say
>>>>>>
>>>>>> if( batch_mode = 'yes' )
>>>>>> quit
>>>>>> endif
>>>>>>
>>>>>> return
>>>>>>
>>>>>>
>>>>>>
>>>>>> ************************************************************************
>>>>>> *
>>>>>> function define_months()
>>>>>> *
>>>>>> * Define "names" for all months...
>>>>>> *
>>>>>> _name.Jan = 'January'
>>>>>> _name.Feb = 'February'
>>>>>> _name.Mar = 'March'
>>>>>> _name.Apr = 'April'
>>>>>> _name.May = 'May'
>>>>>> _name.Jun = 'June'
>>>>>> _name.Jul = 'July'
>>>>>> _name.Aug = 'August'
>>>>>> _name.Sep = 'September'
>>>>>> _name.Oct = 'October'
>>>>>> _name.Nov = 'November'
>>>>>> _name.Dec = 'December'
>>>>>> *
>>>>>> return
>>>>>> *
>>>>>>
>>>>>>
>>>>>> ************************************************************************
>>>>>>
>>>>>>
>>>>>>
>>>>>> ************************************************************************
>>>>>> *
>>>>>> function ptitle_top(title,subtitle,months,plim)
>>>>>> *
>>>>>> * Plots a title at the top of the page
>>>>>> *
>>>>>> x1 = subwrd(plim,1)
>>>>>> x2 = subwrd(plim,2)
>>>>>> xc = x1 + (x2-x1)/2
>>>>>> 'c'
>>>>>> 'set vpage 0 8.5 0 11'
>>>>>> 'set string 1 c 6'
>>>>>> 'set strsiz 0.14'
>>>>>> 'draw string 'xc' 10.2 'title
>>>>>> *'draw string 'xc' 10.2 'subtitle
>>>>>> 'draw string 'xc' 9.8 'months
>>>>>> *
>>>>>> return
>>>>>> *
>>>>>>
>>>>>>
>>>>>> ************************************************************************
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Sushant Puranik
>>>>>> Junior Research Fellow
>>>>>> Dept. of Atmospheric & Space Sciences,
>>>>>> University of Pune,
>>>>>> Pune-07,
>>>>>> India.
>>>>>>
>>>>>>
>>>>>> --
>>>>>>
>>>>>> Please note that Charles.Seman at noaa.gov
>>>>>> <mailto:Charles.Seman at noaa.gov> should be considered my NOAA
>>>>>> email address, not cjs at gfdl.noaa.gov <mailto:cjs at gfdl.noaa.gov>.
>>>>>>
>>>>>> ********************************************************************
>>>>>> Charles Seman
>>>>>> Charles.Seman at noaa.gov <mailto:Charles.Seman at noaa.gov>
>>>>>> U.S. Department of Commerce / NOAA / OAR
>>>>>> Geophysical Fluid Dynamics Laboratory voice: (609)
>>>>>> 452-6547
>>>>>> 201 Forrestal Road fax: (609)
>>>>>> 987-5063
>>>>>> Princeton, NJ 08540-6649
>>>>>> http://www.gfdl.noaa.gov/~cjs/
>>>>>> <http://www.gfdl.noaa.gov/%7Ecjs/>
>>>>>> ********************************************************************
>>>>>>
>>>>>> "The contents of this message are mine personally and do not
>>>>>> necessarily
>>>>>> reflect any position of the Government or NOAA."
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Sushant Puranik
>>>>>> Junior Research Fellow
>>>>>> Dept. of Atmospheric & Space Sciences,
>>>>>> University of Pune,
>>>>>> Pune-07,
>>>>>> India.
>>>>>>
>>>>>>
>>>>> --
>>>>>
>>>>> Please note that Charles.Seman at noaa.gov should be considered my NOAA
>>>>> email address, not cjs at gfdl.noaa.gov.
>>>>>
>>>>> ********************************************************************
>>>>> Charles Seman Charles.Seman at noaa.gov
>>>>> U.S. Department of Commerce / NOAA / OAR
>>>>> Geophysical Fluid Dynamics Laboratory voice: (609) 452-6547
>>>>> 201 Forrestal Road fax: (609) 987-5063
>>>>> Princeton, NJ 08540-6649 http://www.gfdl.noaa.gov/~cjs/
>>>>> ********************************************************************
>>>>>
>>>>> "The contents of this message are mine personally and do not
>>>>> necessarily
>>>>> reflect any position of the Government or NOAA."
>>>>>
>>>>>
>>>> --
>>>>
>>>> Please note that Charles.Seman at noaa.gov should be considered my NOAA
>>>> email address, not cjs at gfdl.noaa.gov.
>>>>
>>>> ********************************************************************
>>>> Charles Seman Charles.Seman at noaa.gov
>>>> U.S. Department of Commerce / NOAA / OAR
>>>> Geophysical Fluid Dynamics Laboratory voice: (609) 452-6547
>>>> 201 Forrestal Road fax: (609) 987-5063
>>>> Princeton, NJ 08540-6649 http://www.gfdl.noaa.gov/~cjs/
>>>> ********************************************************************
>>>>
>>>> "The contents of this message are mine personally and do not
>>>> necessarily
>>>> reflect any position of the Government or NOAA."
>>>>
>>>>
>>>>
>> --
>>
>> Please note that Charles.Seman at noaa.gov should be considered my NOAA
>> email address, not cjs at gfdl.noaa.gov.
>>
>> ********************************************************************
>> Charles Seman Charles.Seman at noaa.gov
>> U.S. Department of Commerce / NOAA / OAR
>> Geophysical Fluid Dynamics Laboratory voice: (609) 452-6547
>> 201 Forrestal Road fax: (609) 987-5063
>> Princeton, NJ 08540-6649 http://www.gfdl.noaa.gov/~cjs/
>> ********************************************************************
>>
>> "The contents of this message are mine personally and do not necessarily
>> reflect any position of the Government or NOAA."
>>
>>
--
Please note that Charles.Seman at noaa.gov should be considered my NOAA
email address, not cjs at gfdl.noaa.gov.
********************************************************************
Charles Seman Charles.Seman at noaa.gov
U.S. Department of Commerce / NOAA / OAR
Geophysical Fluid Dynamics Laboratory voice: (609) 452-6547
201 Forrestal Road fax: (609) 987-5063
Princeton, NJ 08540-6649 http://www.gfdl.noaa.gov/~cjs/
********************************************************************
"The contents of this message are mine personally and do not necessarily
reflect any position of the Government or NOAA."
More information about the gradsusr
mailing list