List routines by category:
Atmospheric Sciences |
Benchmarking |
Color |
Date/Time |
Doc |
File & I/O |
BPCH Format |
Scientific Data Formats |
GAMAP Examples |
GAMAP Internals |
GAMAP Utilities |
GAMAP Data Manipulation |
GAMAP Models &
Grids |
GAMAP Plotting |
General |
Graphics |
Math & Units |
Plotting |
Regridding |
Strings |
Structures |
Time Series
List routines by alphabetical order:
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z
NAME: SCALEFOSS2BPCH PURPOSE: Converts fossil fuel scale factor files from the obsolete binary format to binary punch format (so that they can be read by GAMAP). CATEGORY: File & I/O, BPCH Format CALLING SEQUENCE: SCALEFOSS2BPCH, [ Keywords ] INPUTS: None KEYWORD PARAMETERS: INFILENAME -> Name of the input file containing fossil fuel scale factors. If omitted, SCALEFOSS2BPCH will prompt the user for a filename via a dialog box. OUTFILENAME -> Name of the binary punch file containing fossil fuel scale factors. Default is to add a ".bpch" extension to INFILENAME. OUTPUTS: None SUBROUTINES: External Subroutines Required ================================================== CTM_TYPE (function) CTM_GRID (function) NYMD2TAU (function) CTM_MAKE_DATAINFO (function) CTM_WRITEBPCH EXTRACT_FILENAME (function) REQUIREMENTS: None NOTES: None EXAMPLE: SCALEFOSS2BPCH, INFILENAME='scalefoss.liq.2x25.1998', $ OUTFILENAME='scalefoss.liq.2x25.1998.bpch' ; Converts scalefoss files to BPCH format. MODIFICATION HISTORY: bmy, 15 Jan 2003: VERSION 1.00 bmy, 23 Dec 2003: VERSION 1.01 - rewritten for GAMAP v2-01 bmy, 27 Jun 2006: VERSION 1.02 - Use more robust algorithm for getting the year out of the file name bmy & phs, 13 Jul 2007: GAMAP VERSION 2.10 bmy, 02 Apr 2008: GAMAP VERSION 2.12 - Now read input file as big-endian
(See /n/home09/ryantosca/IDL/gamap2/file_io/scalefoss2bpch.pro)
NAME: SCHMIDT PURPOSE: Computes the SCHMIDT number for a given species. CATEGORY: Atmospheric Sciences CALLING SEQUENCE: RESULT = SCHMIDT( TEMPERATURE, XMV, SEAWATER ) INPUTS: TEMPERATURE -> Temperature in Kelvin. XMV -> Molar volume of species SEAWATER -> set =1 if it is seawater, set =0 otherwise KEYWORD PARAMETERS: None OUTPUTS: RESULT -> The Schmidt number SUBROUTINES: None REQUIREMENTS: None NOTES: None EXAMPLE: PRINT, SCHMIDT( 278, 0.75, 1 ) 165.55126 ; Compute Schmidt # for seawater MODIFICATION HISTORY: pip & bmy, 27 Jun 2003: VERSION 1.00 - Written by Paul Palmer bmy & phs, 13 Jul 2007: GAMAP VERSION 2.10
(See /n/home09/ryantosca/IDL/gamap2/atm_sci/schmidt.pro)
NAME: SCREEN2BMP PURPOSE: Captures an image from the X-window or Z-buffer device and saves the image to a BMP file. Handles 8-bit and TRUE COLOR displays correctly. CATEGORY: Graphics CALLING SEQUENCE: SCREEN2BMP, FILENAME [ , Keywords ] INPUTS: FILENAME -> Name of the BMP file that will be created. FILENAME may be omitted if you wish to only return the image (via the THISFRAME keyword). KEYWORD PARAMETERS: THISFRAME -> If FILENAME is not specified, then the byte image returned from the screen capture will be passed back to the calling program via THISFRAME. OUTPUTS: None SUBROUTINES: External Subroutines Required: ============================== TVREAD (function) REQUIREMENTS: None NOTES: (1) Should work for Unix/Linux, Macintosh, and Windows. (2) SCREEN2TIFF is just a convenience wrapper for TVREAD. EXAMPLES: PLOT, X, Y SCREEN2TIFF, 'myplot.bmp' ; Creates a simple plot and writes it to a TIFF file ; via capture from the screen (X-window device). PLOT, X, Y SCREEN2TIFF, THISFRAME=THISFRAME ; Creates a simple plot and saves the screen ; capture image to the byte array THISFRAME. OPEN_DEVICE, /Z PLOT, X, Y SCREEN2TIFF, 'myplot.bmp' CLOSE_DEVICE ; Creates a simple plot and writes it to a TIFF file ; via capture from the Z-buffer device. MODIFICATION HISTORY: bmy & phs, 13 Jul 2007: GAMAP VERSION 2.10 - adapted from SCREEN2GIF phs, 3 Feb 2009: GAMAP VERSION 2.13 - Use the NoDialog keyword in call to TVREAD
(See /n/home09/ryantosca/IDL/gamap2/graphics/screen2bmp.pro)
NAME: SCREEN2GIF PURPOSE: Captures an image from the X-window or Z-buffer device and saves the image to a GIF file. Handles 8-bit and TRUE COLOR displays correctly. CATEGORY: Graphics CALLING SEQUENCE: SCREEN2GIF, FILENAME [ , Keywords ] INPUTS: FILENAME -> Name of the GIF file that will be created. FILENAME may be omitted if you wish to only return the image (via the THISFRAME keyword). KEYWORD PARAMETERS: THISFRAME -> Returns to the calling program the byte image captured from the screen. OUTPUTS: None SUBROUTINES: External Subroutines Required: =============================== TVREAD (function) REQUIREMENTS: Requires routines from the TOOLS package. NOTES: (1) Should work for Unix/Linux, Macintosh, and Windows. (2) SCREEN2GIF is now a wrapper for TVREAD. David Fanning's TVREAD function does the screen capture better than the algorithm in the old SCREEN2GIF. EXAMPLES: PLOT, X, Y SCREEN2GIF, 'myplot.gif' ; Creates a simple plot and writes it to a GIF file ; via capture from the screen (X-window device). PLOT, X, Y SCREEN2GIF, THISFRAME=THISFRAME ; Creates a simple plot and saves the screen ; capture image to the byte array THISFRAME. OPEN_DEVICE, /Z PLOT, X, Y SCREEN2GIF, 'myplot.gif' CLOSE_DEVICE ; Creates a simple plot and writes it to a GIF file ; via capture from the Z-buffer device. MODIFICATION HISTORY: bmy, 24 Jul 2001: TOOLS VERSION 1.49 bmy, 02 Dec 2002: TOOLS VERSION 1.52 - now uses TVREAD function from D. Fanning which works on both PC's & Unix terminals bmy, 30 Apr 2003: TOOLS VERSION 1.53 - Bug fix in passing file name to TVREAD bmy & phs, 13 Jul 2007: GAMAP VERSION 2.10 - now pass _EXTRA=e to TVREAD - now call TVREAD correctly if we omit FILENAME - updated comments phs, 3 Feb 2009: GAMAP VERSION 2.13 - Use the NoDialog keyword in call to TVREAD
(See /n/home09/ryantosca/IDL/gamap2/graphics/screen2gif.pro)
NAME: SCREEN2JPG PURPOSE: Captures an image from the X-window or Z-buffer device and saves the image to a JPEG file. Handles 8-bit and TRUE COLOR displays correctly. CATEGORY: Graphics CALLING SEQUENCE: SCREEN2JPG, FILENAME [ , Keywords ] INPUTS: FILENAME -> Name of the JPEG file that will be created. FILENAME may be omitted if you wish to only return the image (via the THISFRAME keyword). KEYWORD PARAMETERS: THISFRAME -> If FILENAME is not specified, then the byte image returned from the screen capture will be passed back to the calling program via THISFRAME. OUTPUTS: None SUBROUTINES: External Subroutines Required: ============================== TVREAD (function) REQUIREMENTS: Requires routines from the TOOLS package. NOTES: (1) Should work for Unix/Linux, Macintosh, and Windows. (2) SCREEN2JPG is just a convenience wrapper for TVREAD. EXAMPLES: PLOT, X, Y SCREEN2JPG, 'myplot.jpg' ; Creates a simple plot and writes it to a JPG file ; via capture from the screen (X-window device). PLOT, X, Y SCREEN2JPG, THISFRAME=THISFRAME ; Creates a simple plot and saves the screen ; capture image to the byte array THISFRAME. OPEN_DEVICE, /Z PLOT, X, Y SCREEN2JPG, 'myplot.jpg' CLOSE_DEVICE ; Creates a simple plot and writes it to a JPG file ; via capture from the Z-buffer device. MODIFICATION HISTORY: bmy, 25 Sep 2003: TOOLS VERSION 1.53 - Bug fix in passing file name to TVREAD bmy & phs, 13 Jul 2007: GAMAP VERSION 2.10 - now pass _EXTRA=e to TVREAD - updated comments phs, 3 Feb 2009: GAMAP VERSION 2.13 - Use the NoDialog keyword in call to TVREAD
(See /n/home09/ryantosca/IDL/gamap2/graphics/screen2jpg.pro)
NAME: SCREEN2PNG PURPOSE: Captures an image from the X-window or Z-buffer device and saves the image to a PNG file. Handles 8-bit and TRUE COLOR displays correctly. CATEGORY: Graphics CALLING SEQUENCE: SCREEN2PNG, FILENAME [ , Keywords ] INPUTS: FILENAME -> Name of the PNG file that will be created. FILENAME may be omitted if you wish to only return the image (via the THISFRAME keyword). KEYWORD PARAMETERS: THISFRAME -> Returns to the calling program the byte image captured from the screen. OUTPUTS: None SUBROUTINES: External Subroutines Required: ============================== TVREAD (function) REQUIREMENTS: None NOTES: (1) Should work for Unix/Linux, Macintosh, and Windows. (2) SCREEN2PNG is just a convenience wrapper for TVREAD. EXAMPLES: PLOT, X, Y SCREEN2PNG, 'myplot.png' ; Creates a simple plot and writes it to a PNG file ; via capture from the screen (X-window device). PLOT, X, Y SCREEN2PNG, THISFRAME=THISFRAME ; Creates a simple plot and saves the screen ; capture image to the byte array THISFRAME. OPEN_DEVICE, /Z PLOT, X, Y SCREEN2PNG, 'myplot.png' CLOSE_DEVICE ; Creates a simple plot and writes it to a PNG file ; via capture from the Z-buffer device. MODIFICATION HISTORY: bmy, 25 Sep 2003: TOOLS VERSION 1.53 - Bug fix in passing file name to TVREAD bmy & phs, 13 Jul 2007: GAMAP VERSION 2.10 - now pass _EXTRA=e to TVREAD - updated comments phs, 3 Feb 2009: GAMAP VERSION 2.13 - Use the NoDialog keyword in call to TVREAD
(See /n/home09/ryantosca/IDL/gamap2/graphics/screen2png.pro)
NAME: SCREEN2TIFF PURPOSE: Captures an image from the X-window or Z-buffer device and saves the image to a TIFF file. Handles 8-bit and TRUE COLOR displays correctly. CATEGORY: Graphics CALLING SEQUENCE: SCREEN2TIFF, FILENAME [ , Keywords ] INPUTS: FILENAME -> Name of the TIFF file that will be created. FILENAME may be omitted if you wish to only return the image (via the THISFRAME keyword). KEYWORD PARAMETERS: THISFRAME -> If FILENAME is not specified, then the byte image returned from the screen capture will be passed back to the calling program via THISFRAME. OUTPUTS: None SUBROUTINES: External Subroutines Required: ============================== TVREAD (function) REQUIREMENTS: None NOTES: (1) Should work for Unix/Linux, Macintosh, and Windows. (2) SCREEN2TIFF is just a convenience wrapper for TVREAD. EXAMPLES: PLOT, X, Y SCREEN2TIFF, 'myplot.tif' ; Creates a simple plot and writes it to a TIFF file ; via capture from the screen (X-window device). PLOT, X, Y SCREEN2TIFF, THISFRAME=THISFRAME ; Creates a simple plot and saves the screen ; capture image to the byte array THISFRAME. OPEN_DEVICE, /Z PLOT, X, Y SCREEN2TIFF, 'myplot.tif' CLOSE_DEVICE ; Creates a simple plot and writes it to a TIFF file ; via capture from the Z-buffer device. MODIFICATION HISTORY: bmy, 25 Sep 2003: TOOLS VERSION 1.53 - Bug fix in passing file name to TVREAD bmy & phs, 13 Jul 2007: GAMAP VERSION 2.10 - now pass _EXTRA=e to TVREAD - updated comments phs, 3 Feb 2009: GAMAP VERSION 2.13 - Use the NoDialog keyword in call to TVREAD
(See /n/home09/ryantosca/IDL/gamap2/graphics/screen2tiff.pro)
NAME: SEARCH (function) PURPOSE: Perform a binary search for the data point closest to a given value. Data must be sorted. CATEGORY: Math & Units CALLING SEQUENCE: INDEX = SEARCH( DATA, VALUE ) INPUTS: DATA -> a sorted data vector VALUE -> the value to look for KEYWORD PARAMETERS: None OUTPUTS: INDEX -> The function returns the index of the nearest data point. SUBROUTINES: None REQUIREMENTS: None NOTES: This routine is much faster than WHERE or MIN for large arrays. It was written in response to a newsgroup request by K.P. Bowman. EXAMPLE: TEST = FINDGEN(10000) PRINT, SEARCH( TEST, 532.3 ) ; prints 532 MODIFICATION HISTORY: mgs, 21 Sep 1998: VERSION 1.00 bmy, 24 May 2007: TOOLS VERSION 2.06 - updated comments, cosmetic changes bmy & phs, 13 Jul 2007: GAMAP VERSION 2.10
(See /n/home09/ryantosca/IDL/gamap2/math_units/search.pro)
NAME: SELECT_MODEL PURPOSE: Primitive function to select a model. Calls CTM_TYPE and returns the MODELINFO structure. CATEGORY: GAMAP Internals CALLING SEQUENCE: MODELINFO = SELECT_MODEL( [ Keywords ] ) INPUTS: None KEYWORD PARAMETERS: DEFAULT -> String containing the default model name, resolution, and number of levels. OUTPUTS: Returns the MODELINFO structure (from CTM_TYPE) as the value of the function. SUBROUTINES: External subroutines required: ------------------------------ CTM_TYPE (function) REQUIREMENTS: References routines from GAMAP and TOOLS packages. NOTES: Add new model selections as is necessary. Also be sure to update routines "ctm_type", "ctm_grid", and "getsigma". %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% NOTE: THIS ROUTINE IS MOSTLY OBSOLETE NOW BECAUSE %%% %%% MOST DATA FILES NOW CONTAIN THE MODEL NAME AND %%% %%% RESOLUTION INFORMATION. %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EXAMPLE: MODELINFO = SELECT_MODEL( DEFAULT='GISS_II_PRIME 4x5 (23L)' ) ; Will return the modelinfo structure for the 23-layer ; GISS-II-PRIME model. We need to specify the number ; of layers here since there is also a 9-layer version ; of the GISS-II-PRIME model. MODIFICATION HISTORY: mgs, 13 Aug 1998: VERSION 1.00 mgs, 21 Dec 1998: - added GEOS_STRAT 2x2.5 mgs, 25 Mar 1999: - changed FSU to 4x5 and added 'generic' bmy, 27 Jul 1999: GAMAP VERSION 1.42 - now add the number of layers to the menu choices - added GISS-II-PRIME 23-layer model as a choice - more sophisticated testing for default model - a few cosmetic changes bmy, 03 Jan 2000: GAMAP VERSION 1.44 - added GEOS-2 as a model selection - added standard comment header bmy, 16 May 2000: GAMAP VERSION 1.45 - now use GEOS-2 47-layer grid bmy, 28 Jul 2000: GAMAP VERSION 1.46 - added GEOS-3 48-layer grids for 1 x 1, 2 x 2.5, and 4 x 5 horizontal resolution bmy, 26 Jul 2001: GAMAP VERSION 1.48 - added GEOS-3 30-layer grids for 2 x 2.5 and 4 x 5 horizontal resolution bmy, 24 Aug 2001: - deleted GEOS-3 30-layer grids, since we won't be using these soon bmy, 06 Nov 2001: GAMAP VERSION 1.49 - added GEOS-4/fvDAS grids at 1 x 1.25, 2 x 2.5, and 4 x 5 resolution clh & bmy, 18 Oct 2002: GAMAP VERSION 1.52 - added MOPITT 7L grid bmy, 11 Dec 2002 - deleted GEOS-2 47L grid, nobody uses this bmy, 18 May 2007: GAMAP VERSION 2.06 - added GEOS-4 30L grid - added GEOS-5 47L and 72L grids - added quit option bmy, 11 May 2012: GAMAP VERSION 2.16 - Added MERRA, GEOS-5.7 options
(See /n/home09/ryantosca/IDL/gamap2/internals/select_model.pro)
NAME: SIGN PURPOSE: Return the mathematical sign of the argument. CATEGORY: Math & Units CALLING SEQUENCE: s = sign(x) INPUTS: x = value of array of values. KEYWORD PARAMETERS: OUTPUTS: s = sign of value(s). COMMON BLOCKS: None NOTES: Note: s = -1 for x < 0 s = 0 for x = 0 s = 1 for x > 0 MODIFICATION HISTORY: R. Sterner, 7 May, 1986. Johns Hopkins University Applied Physics Laboratory. RES 15 Sep, 1989 --- converted to SUN. RES 23 Sep, 1991 --- rewrote, reducing 11 lines of code to 1.
(See /n/home09/ryantosca/IDL/gamap2/math_units/sign.pro)
NAME: SORT_STRU PURPOSE: Returns an sort index array a structure data field. CATEGORY: Structures CALLING SEQUENCE: INDEX = SORT_STRU( STRU, SORT_TAG ) INPUTS: STRU -> The structure containing the data to be sorted. SORT_TAG -> A string containing the name of the structure tag for which to compute the sort index array. KEYWORD PARAMETERS: /REVERSE_SORT -> Set this switch to return an sort index array in reverse order. OUTPUTS: None SUBROUTINES: None REQUIREMENTS: None NOTES: None EXAMPLES: (1) STRU = { DATA : [5,3,2,1,4] } IND = SORT_STRU( STRU, 'DATA' ) PRINT, STRU.DATA[IND] 1 2 3 4 5 ; Returns an sort index array for the DATA ; tag of the structure STRU. STRU.DATA[IND] ; will be in ascending order. (2) STRU = { DATA : [5,3,2,1,4] } IND = SORT_STRU( STRU, 'DATA', /REVERSE_SORT ); PRINT, STRU.DATA[IND] 5 4 3 2 1 ; Returns an sort index array for the DATA ; tag of the structure STRU. STRU.DATA[IND] ; will be in descending order. MODIFICATION HISTORY: bmy & phs, 13 Jul 2007: GAMAP VERSION 2.10
(See /n/home09/ryantosca/IDL/gamap2/structures/sort_stru.pro)
NAME: STR2BYTE (function) PURPOSE: Convert a string into a byte vector of a given length for output in binary data files. CATEGORY: Strings CALLING SEQUENCE: BSTR = STR2BYTE( STRING [, LENGTH ] ) INPUTS: STRING -> The string to be converted LENGTH -> Length of the byte vector. Default is to use the length of the string. If LENGTH is shorter, the string will be truncated, if it is longer, it will be filled with blanks (32B). KEYWORD PARAMETERS: None OUTPUTS: BSTR -> A byte vector of the specified length SUBROUTINES: None REQUIREMENTS: None NOTES: None EXAMPLE: OPENW, LUN, 'TEST.DAT', /F77_UNFORMATTED, /GET_LUN WRITEU, LUN, STR2BYTE( 'Test string', 80 ) FREE_LUN, LUN ; write a 80 character string into a binary file MODIFICATION HISTORY: mgs, 24 Aug 1998: VERSION 1.00 bmy & phs, 13 Jul 2007: GAMAP VERSION 2.10 - Updated comments
(See /n/home09/ryantosca/IDL/gamap2/strings/str2byte.pro)
NAME: STRAT PURPOSE: Creates zonal-mean curtain plots of GEOS-Chem tracers between 100hPa and 0.01 hPa from the GEOS-Chem 1-month benchmark simulations. CATEGORY: Benchmarking CALLING SEQUENCE: STRAT, FILE, LONS, TAUS, TRACERS, VERSION, [, Keywords ] INPUTS: FILE -> The name of the file containing data to be plotted. LONS -> Longitudes to plot TAU -> The TAU value (hours GMT from /1/1985) corresponding to the data to be plotted. TRACERS -> The list of transported tracers (i.e. diagnostic category "IJ-AVG-$"). VERSION -> The model version number corresponding to the data to be plotted. KEYWORD PARAMETERS: /DO_FULLCHEM -> Set this switch to plot the chemically produced OH in addition to the advected tracers. /PS -> Set this switch to generate PostScript output. OUTFILENAME -> If /PS is set, will write PostScript output to a file whose name is specified by this keyword. Default is "tracer_ratio.pro". OUTPUTS: None SUBROUTINES: Internal Subroutines Provided: ================================================== PlotStrat External Subroutines Required: ================================================== CLOSE_DEVICE COLORBAR_NDIV (function) CTM_GET_DATA EXTRACT_FILENAME (function) GETMODELANDGRIDINFO MULTIPANEL MYCT OPEN_DEVICE TVMAP CHKSTRU (function) UNDEFINE REQUIREMENTS: References routines from the GAMAP package. NOTES: (1) Meant to be called from BENCHMARK_1MON. EXAMPLES: FILE = 'ctm.bpch.v7-04-11' LEVELS = [ 1, 1, 13, 13 ] TAUS = NYMD2TAU( 20010701 ) TRACERS = INDGEN( 43 ) + 1 VERSIONS = 'v7-04-11' STRAT, FILE, LONS, TAU, TRACERS, VERSION, $ /DO_FULLCHEM, /PS, OUTFILENAME='myplot.ps' MODIFICATION HISTORY: mps, 11 Sep 2015: - Initial version, based on zonal.pro
(See /n/home09/ryantosca/IDL/gamap2/benchmark/strat.pro)
NAME: STRAT_DIFF PURPOSE: Creates zonal mean absolute and percent difference plots of tracers between 100hPa and 0.01 hPa from the GEOS-Chem 1-month benchmark simulations. CATEGORY: Benchmarking CALLING SEQUENCE: STRAT_DIFF, FILES, TAUS, TRACERS, VERSIONS, [, Keywords ] INPUTS: FILES -> A 2-element vector containing the names of files from the "old" and "new" GEOS-Chem model versions that are to be compared. TAUS -> A 2-element vector contaning TAU values (hours GMT from /1/1985) corresponding to the "old" and "new" GEOS-Chem model versions. TRACERS -> The list of transported tracers (i.e. diagnostic category "IJ-AVG-$"). VERSIONS -> A 2-element vector containing the version numbers for the "old" and "new" GEOS-Chem model versions. KEYWORD PARAMETERS: /DO_FULLCHEM -> Set this switch to plot the chemically produced OH in addition to the advected tracers. /DYNRANGE -> Set this switch to create plots using the whole dynamic range of the data. Default is to restrict the plot range to predetermined values as returned by routine GET_DIFF_RANGE. /PS -> Set this switch to generate PostScript output. OUTFILENAME -> If /PS is set, will write PostScript output to a file whose name is specified by this keyword. Default is "tracer_ratio.pro". ZDFORMAT -> This keyword passes a colorbar format string (Fortran-style) to the COLORBAR routine (via TVPLOT). This keyword is purposely not named CBFORMAT, in order to avoid passing this quantity to other routines. OUTPUTS: None SUBROUTINES: Internal Subroutines Included: ================================================== PlotStratAbsDiff PlotStratPctDiff External Subroutines Required: ================================================== CLOSE_DEVICE COLORBAR_NDIV (function) CTM_GET_DATA GET_DIFF_RANGE (function) GETMODELANDGRIDINFO EXTRACT_FILENAME (function) MULTIPANEL CHKSTRU (function) MYCT OPEN_DEVICE TVPLOT UNDEFINE REQUIREMENTS: References routines from the GAMAP package. NOTES: (1) Meant to be called from BENCHMARK_1MON. EXAMPLE: FILES = [ 'ctm.bpch.v9-01-01', 'ctm.bpch.v9-01-02a' ] TAUS = [ NYMD2TAU( 20050701 ), NYMD2TAU( 20050701 ) ] TRACERS = INDGEN( 43 ) + 1 VERSIONS = [ 'v9-01-01', 'v9-01-02a' ] STRAT_DIFF, FILES, ALTRANGE, TAUS, TRACERS, VERSIONS, $ /DO_FULLCHEM, /PS, OUTFILENAME='myplot.ps' ; Creates zonal mean difference plots of two GEOS-Chem ; versions; (in this case v9-01-01 / v9-01-01a) for ; July 2001. Output is sent to the PostScript file ; "myplot.ps". The min and max of the data on each plot ; panel is restricted to pre-defined values returned by ; function GET_DIFF_RANGE. STRAT_DIFF, FILES, ALTRANGE, TAUS, TRACERS, VERSIONS, $ /DYNRANGE, /PS, OUTFILENAME='myplot.ps' ; Same as the above example, but the min & max of ; each plot panel corresponds to the dynamic range ; of the data (centered around zero). MODIFICATION HISTORY: mps, 11 Sep 2015: - Initial version, based on zonal_diff.pro mps, 04 Jan 2016: - Include MERRA2 in the check for equivalent vertical grids
(See /n/home09/ryantosca/IDL/gamap2/benchmark/strat_diff.pro)
NAME: STRBREAK PURPOSE: Wrapper for routines STRSPLIT and STR_SEP. Needed for backwards compatibility for GAMAP users who are running versions of IDL prior to 5.2. CATEGORY: Strings CALLING SEQUENCE: RESULT = STRBREAK( STR, SEPARATOR, _EXTRA=e ) INPUTS: STR -> The string to be separated. SEPARATOR -> The separating character. KEYWORD PARAMETERS: None OUTPUTS: RESULT = Array of sub-strings, separated by the character passed as SEPARATOR SUBROUTINES: None REQUIREMENTS: None NOTES: None EXAMPLE: (1) Str = 'Hello , My , Name , is , Slim , Shady ' NewStr = StrBreak( Str, ',' ) ; Separates the string using the comma as the separator. MODIFICATION HISTORY: bmy, 17 Jan 2002: TOOLS VERSION 1.50 bmy, 17 Jan 2003: TOOLS VERSION 1.52 - now use CALL_FUNCTION to call both STRSPLIT and STR_SEP functions for backwards compatibility bmy, 14 Oct 2003: TOOLS VERSION 1.53 - deleted obsolete code bmy & phs, 13 Jul 2007: GAMAP VERSION 2.10
(See /n/home09/ryantosca/IDL/gamap2/strings/strbreak.pro)
NAME: STRCHEM (function) PURPOSE: Superscripts or subscripts numbers and special characters ('x', 'y') found in strings containing names of chemical species. CATEGORY: Strings CALLING SEQUENCE: RESULT = STRCHEM( STR [,keywords] ) INPUTS: STR -> The input string containing the name of the chemical species (e.g. 'NOx', 'H2O', CxO2, etc, ) KEYWORD PARAMETERS: /SUB -> Will cause numbers and special characters to be subscripted. This is the default. /SUPER -> Will cause numbers and special characters to be superscripted. SPECIALCHARS -> a string with characters that shall be sub- or superscripted. Defaults are '0123456789xyXY' for /SUB and '+-0123456789' for /SUPER PROTECT -> internal keyword used to protect certain characters from being super or subscripted. May be useful to circumvent troubles. See example below. /TRIM -> perform a strtrim( ,2) on the result OUTPUTS: RESULT -> String with formatting characters included SUBROUTINES: None REQUIREMENTS: None NOTES: None EXAMPLE: (1) PRINT, STRCHEM( 'C2H5O2 [pptv]' ) C!l2!nH!l5!nO!l2!n [pptv]" (2) PRINT, STRCHEM( STRCHEM('NH4+',/sub), /SUPER, SPECIAL='+-' ) NH!l4!n!u+!n. (3) S0 = '(H2O2)2' ; supposed to be H2O2 squared PROTECT = STRLEN( s0 )-1 ; protect last character S1 = STRCHEM(S0,PROTECT=PROTECT) S2 = STRCHEM(S1,/SUPER,PROTECT=PROTECT) PRINT, S1, '->', S2 (H!l2!nO!l2!n)2->(H!l2!nO!l2!n)!u2!n ; without protect the "square" would have been subscripted MODIFICATION HISTORY: bmy, 01 Jun 1998: VERSION 1.00 mgs, 02 Jun 1998: VERSION 1.10 - rewritten mgs, 11 Jun 1998: - removed IS_ION keyword - changed default specialchars for SUPER mgs, 22 Sep 1998: - added TRIM keyword bmy & phs, 13 Jul 2007: GAMAP VERSION 2.10 - Updated comments, cosmetic changes
(See /n/home09/ryantosca/IDL/gamap2/strings/strchem.pro)
NAME: STRDATE (function) PURPOSE: Format a "standard form" date string CATEGORY: Date & Time, Strings CALLING SEQUENCE: RESULT = STRDATE( [ DATE ] [, Keywords ] ) INPUTS: DATE -> (OPTIONAL) Either a up to 6 element array containing year, month, day, hour, minute, and secs (i.e. the format returned from BIN_DATE) or a structure containing year, month, day, hour, minute, seconds (as returned from TAU2YYMMDD) or a date string in "standard" format as returned by SYSTIME(0). If DATE is omitted, STRDATE will automatically return the current system time. KEYWORD PARAMETERS: /SHORT -> omit the time value, return only date /SORTABLE -> will return 'YYYY/MM/DD HH:MM' /EUROPEAN -> will return 'DD.MM.YYYY HH:MM' IS_STRING -> Indicates that DATE is a date string rather than an integer array. This keyword is now obsolete but kept for compatibility. OUTPUTS: RESULT -> A date string formatted as 'MM/DD/YYYY HH:MM'. If SHORT flag is set, the format will be 'MM/DD/YYYY' SUBROUTINES: External Subroutines Required: ============================== DATATYPE (function) REQUIREMENTS: None NOTES: (1) /EUROPEAN and /SORTABLE will have effect of /SORTABLE but with dots as date Seperators. EXAMPLES: (1) PRINT, STRDATE( [ 2001, 01, 01, 12, 30, 00 ] ) 01/01/2001 12:30 ; Date string for 2001/01/01 12:30 in USA format (2) PRINT, STRDATE( [ 2001, 01, 01, 12, 30, 00 ], /EUROPEAN ) 01.01.2001 12:30 ; Date string for 2001/01/01 12:30 in European format (3) PRINT, STRDATE( [ 2001, 01, 01, 12, 30, 00 ], /SORTABLE ) 2001/01/01 12:30 ; Date string for 2001/01/01 12:30 in YYYY/MM/DD format (4) PRINT, STRDATE( [ 2001, 01, 01, 12, 30, 00 ], /SORTABLE, /SHORT ) 2001/01/01 ; Date string for 2001/01/01 w/o hours and minutes (5) RESULT = TAU2YYMMDD( 144600D ) PRINT, STRDATE( RESULT, /SORTABLE ) 2001/07/01 00:00 ; Use TAU2YYMMDD to convert a TAU value (in this case ; for July 1, 2001) to a structure. Then pass the ; structure to STRDATE to make a string. MODIFICATION HISTORY: mgs, 11 Nov 1997: VERSION 1.00 mgs, 26 Mar 1998: VERSION 1.10 - examines type of DATE parameter and accepts structure input. bmy & phs, 13 Jul 2007: GAMAP VERSION 2.10 - Renamed /GERMAN to /EUROPEAN - Updated comments, cosmetic changes - Now uses function DATATYPE
(See /n/home09/ryantosca/IDL/gamap2/date_time/strdate.pro)
NAME: STRPAD PURPOSE: This function returns the source string padded with leading and/or trailing white-space characters. CATEGORY: Strings CALLING SEQUENCE: Result = STRPAD( Source, Length [, Pos] ) INPUTS: Source: A string or number you want padded with white-space characters. Length: The total length of the returned padded string. OPTIONAL INPUTS: Pos: Position of the Source string within the returned padded string. [0=Default] OUTPUTS: The source parameter is returned as a string with leading and/or trailing white-space characters. RESTRICTIONS: The Length and Pos parameters must be in the range [0-255]. EXAMPLE: Let's say you want 'bob' to have a length of 10 characters with spaces padded after 'bob': bob10 = STRPAD( 'bob', 10 ) Or if you want 'bob' to be at the end: bobend= STRPAD( 'bob', 10, 7 ) MODIFICATION HISTORY: Written by: Han Wen, December 1994.
(See /n/home09/ryantosca/IDL/gamap2/strings/strpad.pro)
NAME: STRREPL (function) PURPOSE: Replace all occurences of one character in a string with another character. The character to be replaced can either be given as string of length 1 or as an index array containing the character positions (see strwhere). This function also works for string arrays. CATEGORY: Strings CALLING SEQUENCE: RESULT = STRREPL( STR, FROMCHAR, TOCHAR [,/IGNORECASE] ) INPUTS: STR -> the string to be changed FROMCHAR -> either: a string of length 1 (the character to be replaced) or: an index array with the character positions TOCHAR -> replacement character KEYWORD PARAMETERS: IGNORECASE -> if set, fromchar will be treated case-insensitive (only if fromchar is a character) FOLD_CASE -> same thing but following IDL naming (e.g. StrMatch) OUTPUTS: RESULT -> A string of same length as the input string with the text replaced SUBROUTINES: REQUIREMENTS: NOTES: Uses SIZE(/TYPE) available since IDL 5.2 EXAMPLES: (1) UFILE = '/usr/local/idl/lib/test.pro' WFILE = 'c:' + strrepl(ufile,'/','\') PRINT, WFILE ; c:\usr\local\idl\lib\test.pro ; Convert a Unix filename to Windows (2) A = 'abcdabcdabcd' INDEX = [ strwhere(a,'a'), strwhere(a,'b') ] > 0 PRINT, STRREPL( a, index, '#' ) ##cd##cd##cd ; Use with index (uses strwhere function) MODIFICATION HISTORY: mgs, 02 Jun 1998: VERSION 1.00 mgs, 24 Feb 2000: - rewritten - now accepts character argument - added IGNORECASE keyword mgs, 26 Aug 2000: - changed copyright to open source - added FOLD_CASE keyword bmy, 28 Oct 2003: VERSION 1.01 - Need to test if FROMCHAR is a character or a byte type. This will allow STRREPL to replace non-printable ASCII characters such as Horizontal TAB ( BYTE(9B) ). bmy & phs, 13 Jul 2007: GAMAP VERSION 2.10 - Updated comments
(See /n/home09/ryantosca/IDL/gamap2/strings/strrepl.pro)
NAME: STRRIGHT PURPOSE: Return right subportion from a string CATEGORY: Strings CALLING SEQUENCE: RESULT = STRRIGHT( STRING [,nlast] ) INPUTS: STRING -> the string to be searched NLAST -> the number of characters to be returned. Default is 1. If NLAST is ge strlen(STRING), the complete string is returned. KEYWORD PARAMETERS: None OUTPUTS: RESULT -> The portion of NLAST characters of STRING counted from the back. SUBROUTINES: None REQUIREMENTS: None NOTES: None EXAMPLE: IF ( STRRIGHT( PATH ) NE '/' ) THEN PATH = PATH + '/' ; Add a slash to a directory name if necessary MODIFICATION HISTORY: mgs, 19 Nov 1997: VERSION 1.00 bmy & phs, 13 Jul 2007: GAMAP VERSION 2.10 - Updated comments
(See /n/home09/ryantosca/IDL/gamap2/strings/strright.pro)
NAME: STRSCI (function) PURPOSE: Given a number, returns a string of that number in scientific notation format ( e.g. A x 10 ) CATEGORY: Strings CALLING SEQUENCE: RESULT = STRSCI( DATA [, Keywords ] ) INPUTS: DATA -> A floating point or integer number to be converted into a power of 10. KEYWORD PARAMETERS: FORMAT -> The format specification used in the string conversion for the mantissa (i.e. the "A" of "A x 10^B"). Default is '(f12.2)'. /POT_ONLY -> Will return only the "power of 10" part of the string (i.e. the "10^B"). Default is to return the entire string (e.g. "A x 10^B" ) /MANTISSA_ONLY -> return only mantissa of the string /SHORT -> return 10^0 as '1' and 10^1 as '10' /TRIM -> don't insert blanks (i.e. return Ax10^B) OUTPUTS: None SUBROUTINES: None REQUIREMENTS: None NOTES: This function does not "evaluate" the format statement thoroughly which can result in somewhat quirky strings. Example: print,strsci(-9.999) results in -10.0x10^0 instead of -1.0x10^1. Need a better symbol than the 'x' for the multiplier... EXAMPLE: Result = STRSCI( 2000000, format='(i1)' ) print, result ; 6 ; prints 2 x 10!u6!n, which gets plotted as 2 x 10 Result = STRSCI( -0.0001 ) print, result ; 4 ; prints -1.00 x 10!u-4!n, which gets plotted as 1.00 x 10 Result = STRSCI( 0d0, format='(f13.8)' ) print, result ; ; prints, 0.00000000 MODIFICATION HISTORY: bmy, 28 May 1998: INITIAL VERSION - now returns string of the form A x 10 mgs, 29 May 1998: - bug fix: now allows negative numbers - keyword MANTISSA_ONLY added - default format changed to f12.2 bmy, 02 Jun 1998: - renamed to STRSCI ("STRing SCIentific notation") mgs, 03 Jun 1998: - added TRIM keyword mgs, 22 Sep 1998: - added SHORT keyword - modified handling of TRIM keyword mgs, 24 Sep 1998: - bug fix with SHORT flag bmy & mgs, 02 Jun 1999: - now can handle DATA=0.0 correctly - updated comments mgs, 03 Jun 1999: - can now also handle values lt 1 ;-) - and doesn't choke on arrays bmy & phs, 13 Jul 2007: GAMAP VERSION 2.10 - updated comments
(See /n/home09/ryantosca/IDL/gamap2/strings/strsci.pro)
NAME: STRSIZE PURPOSE: Given a string argument and the character size, returns the # of characters that can fit w/in the horizontal or vertical extent of a plot window. CATEGORY: Plotting, Strings CALLING SEQUENCE: RESULT = STRSIZE( STRARG, CHARSIZE [, Keywords ] ) INPUTS: STRARG -> A string of characters. CHARSIZE -> The size of each character. 1.0 is normal size, 2.0 is double size, etc. KEYWORD PARAMETERS: /Y -> Set this switch to compute the number of characters that can fit along the vertical extent of the plot. OUTPUTS: None SUBROUTINES: None REQUIREMENTS: None NOTES: None EXAMPLE: OPEN_DEVICE, WINPARAM=[ 0, 800, 600 ] PRINT, STRSIZE( 'Hello', 3 ) 80.0000 ; Computes the # of characters of size 3 ; that can fit in the plot window MODIFICATION HISTORY: bmy, 10 Oct 2006: VERSION 1.00 bmy & phs, 13 Jul 2007: GAMAP VERSION 2.10
(See /n/home09/ryantosca/IDL/gamap2/plotting/strsize.pro)
NAME: STRUADDVAR (function) PURPOSE: Add additional variables (tags) to an exisiting structure. The new variables will be inserted after the old ones, '__' tags will be appended at the end. The function renames new tags if they would cause duplicate names by adding a '_A'. CATEGORY: Structures CALLING SEQUENCE: NEWSTRU = STRUADDVAR( OLDSTRU, NEWVAR [, NEWNAME, Keywords ] ) INPUTS: OLDSTRU -> the exisiting structure. This must be a structure, otherwise the program will complain and exit. NEWVAR -> A new variable (any type) or a new structure that shall be incorporated into OLDSTRU. If NEWVAR is *not* a structure, then NEWNAME must be present. If you want to add an array with several named columns, use Arr2Stru first. NEWNAME -> The name of the new variable. Only used if NEWVAR is no structure. KEYWORD PARAMETERS: /WARNNELEMENTS -> If this flag is set, the program will print out a warning if the number of elements in the new variable does not match the number of elements in the last variable of the old structure. OUTPUTS: NEWSTRU -> A structure that combines the information from OLDSTRU and NEWVAR. SUBROUTINES: External Subroutines Required: ============================== CHKSTRU (function) REQUIREMENTS: None NOTES: (1) NEWNAME (or the tag names from NEWVAR) will be added to the __NAMES__ tag if present. __EXTRA__ entries will be combined only if tags within __EXTRA__ structures are different. If __EXTRA__ contains a non-structure variable it will be converted to a structure with tag name 'EXTRA_N' where N is a number from 1-9, A-Z (the first tag is just 'EXTRA'). EXAMPLES: (1) NSTRU = STRUADDVAR( STRU, FINDGEN(100), 'DUMMY' ) ; Adds a 100 element floating-point array ; to structure STRU under the tag name "DUMMY" ; and returns the result as NSTRU. (2) X = { A :0L, B:STRARR(10), $ C : FINDGEN(100), __EXTRA__:'TEST' } OSTRU = STRUADDVAR( NSTRU, X ) ; Adds the structure X (with tag names A, B, C, and ; __EXTRA__) to the structure NSTRU and returns ; the result as OSTRU. MODIFICATION HISTORY: mgs, 03 May 1999: VERSION 1.00 bmy & phs, 13 Jul 2007: GAMAP VERSION 2.10
(See /n/home09/ryantosca/IDL/gamap2/structures/struaddvar.pro)
NAME: STRUINFO (function) PURPOSE: Return information about structures. This routine is designed to help handling variable structures of mixed type. CATEGORY: Structures CALLING SEQUENCE: INFO = STRUINFO( STRU, [, Keywords ] ) INPUTS: STRU -> a structure KEYWORD PARAMETERS: NAMES -> return variable names as spelled in structure tags ORIGINAL_NAMES -> return variable names as stored in __NAMES__ tag EXTRA -> return information stored in __EXTRA__ tag. This information is always returned as a structure NVARS -> return number of variables, i.e. tags that do not begin with '__' HOMOGENEOUS -> return tag indices of tags with identical ' number of elements (only those can be combined to an array with Stru2Arr). This keyword honors the RefIndex keyword. NUMERIC -> return tag indices of numeric structure tags TYPE -> return variable type of structure tags. For non-variable tags (whose name begin with '__') a -1 is returned REFINDEX -> indicates the tag index to compare the number of elements to (default is the first variable index). OUTPUTS: The desired information (hopefully) SUBROUTINES: External Subroutines Required: ================================ CHKSTRU (function) REQUIREMENTS: None NOTES: None EXAMPLE: PRINT, STRUINFO( !p, /names ) BACKGROUND CHARSIZE CHARTHICK CLIP COLOR FONT LINESTYLE MULTI NOCLIP NOERASE NSUM POSITION PSYM REGION SUBTITLE SYMSIZE T T3D THICK TITLE TICKLEN CHANNEL ; Print the names from the !P system variable structure MODIFICATION HISTORY: mgs, 03 May 1999: VERSION 1.00 bmy & phs, 13 Jul 2007: GAMAP VERSION 2.10 - Updated comments
(See /n/home09/ryantosca/IDL/gamap2/structures/struinfo.pro)
NAME: STRWHERE (function) PURPOSE: return position *array* for occurence of a character in a string CATEGORY: Strings CALLING SEQUENCE: POS = STRWHERE( STR, SCHAR [,COUNT] ) INPUTS: STR -> the string SCHAR -> the character to look for KEYWORD PARAMETERS: none. OUTPUTS: COUNT -> (optional) The number of matches that were found POS -> The function returns an index array similar to the result of the where function SUBROUTINES: None REQUIREMENTS: None NOTES: None EXAMPLE: IND = STRWHERE( 'abcabcabc', 'a' ) ; returns [ 0, 3, 6 ] MODIFICATION HISTORY: mgs, 02 Jun 1998: VERSION 1.00 bmy, 30 Jun 1998: - now returns COUNT, the number of matches that are found (this is analogous to the WHERE command) bmy & phs, 13 Jul 2007: GAMAP VERSION 2.10
(See /n/home09/ryantosca/IDL/gamap2/strings/strwhere.pro)
NAME: STR_SIZE PURPOSE: The purpose of this function is to return the proper character size to make a specified string a specifed width in a window. The width is specified in normalized coordinates. The function is extremely useful for sizing strings and labels in resizeable graphics windows. CATEGORY: Strings, Graphics CALLING SEQUENCE: thisCharSize = STR_SIZE(thisSting, targetWidth) INPUTS: thisString: This is the string that you want to make a specifed target size or width. OPTIONAL INPUTS: targetWidth: This is the target width of the string in normalized coordinates in the current graphics window. The character size of the string (returned as thisCharSize) will be calculated to get the string width as close as possible to the target width. The default is 0.25. KEYWORD PARAMETERS: INITSIZE: This is the initial size of the string. Default is 1.0. STEP: This is the amount the string size will change in each step of the interative process of calculating the string size. The default value is 0.05. OUTPUTS: thisCharSize: This is the size the specified string should be set to if you want to produce output of the specified target width. The value is in standard character size units where 1.0 is the standard character size. EXAMPLE: To make the string "Happy Holidays" take up 30% of the width of the current graphics window, type this: XYOUTS, 0.5, 0.5, ALIGN=0.5, "Happy Holidays", $ CHARSIZE=STR_SIZE("Happy Holidays", 0.3) MODIFICATION HISTORY: Written by: David Fanning, 17 DEC 96. Added a scaling factor to take into account the aspect ratio of the window in determing the character size. 28 Oct 97. DWF
(See /n/home09/ryantosca/IDL/gamap2/strings/str_size.pro)
NAME: SYM PURPOSE: Define a standard sequence of plotting symbols that can be used in conjunction with the PLOT command. CATEGORY: Plotting CALLING SEQUENCE: RESULT = SYM( NUMBER) or also PLOT, X, Y, PSYM=SYM( NUMBER ) INPUTS: NUMBER -> symbol number 0 : dot 1 : filled circle 2 : filled upward triangle 3 : filled downward triangle 4 : filled diamond 5 : filled square 6 : open circle 7 : open upward triangle 8 : open downward triangle 9 : open diamond 10 : open square 11 : plus 12 : X 13 : star 14 : filled rightfacing triangle 15 : filled leftfacing triangle 16 : open rightfacing triangle 17 : open leftfacing triangle 18 : greater-than symbol ">" 19 : less-than symbol "<" KEYWORD PARAMETERS: None OUTPUTS: RESULT -> Function returns the symbol number to be used with PSYM= in the PLOT command. SUBROUTINES: None REQUIREMENTS: None NOTES: This function produces a side effect in that the USERSYM procedure is used to create a symbol definition. It's meant for usage within the PLOT, OPLOT, etc. command EXAMPLE: PLOT, X, Y, PSYM=SYM(0), SYMSIZE=3 ; Produces a plot with dots (standard symbol 3) FOR I = 0, 17 DO OPLOT, X+1, Y, PSYM=SYM(I), COLOR=I ; overplots 17 curves each with its own symbol MODIFICATION HISTORY: mgs, 22 Aug 1997: VERSION 1.00 bmy & phs, 13 Jul 2007: GAMAP VERSION 2.10 bmy, 11 Dec 2009: GAMAP VERSION 2.14 - Added ">" as symbol #18 - Added "<" as symbol #19 cdh & bmy, 16 Mar 2011: GAMAP VERSION 2.15 - Now use 13 vertices for circle symbols so that the PostScript output files will become smaller
(See /n/home09/ryantosca/IDL/gamap2/plotting/sym.pro)