how to make maximum wind plot along with level showing maximum wind for each grid

Phillip Lin naishi at METEO.MCGILL.CA
Mon Nov 30 14:57:45 EST 2009


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."
>



More information about the gradsusr mailing list