variable name data type IDL routine description
 
aa string array read_s_lagr.pro, read_s_eul.pro list of files (including full pathname)
In read_s_lagr.pro, aa contains the list of Lagrangian output files in the user's chosen data directory
In read_s_eul.pro, aa contains the list of Eulerian output files in the user's chosen data directory
aa_m string array read_dialog.pro list of full pathnames for idl/info files
aa_m_z string array read_dialog.pro list of full pathnames for idl/info.gz files
aa_s string array read_dialog.pro list of full pathnames for SOPALE1_i files
aa_s_z string array read_dialog.pro list of full pathnames for SOPALE1_i.gz files
another integer "first level" routines number of horizontal windows per frame to be plotted (e.g. if "another" = 2, then each frame will be plotted in 2 panels, one for x=horizontal_interval[0] to horizontal_interval[1], the second for x=horizontal_interval[2] to horizontal_interval[3])
bbco integer array lagr_limits.pro, lgrid_l.pro, matcol.pro, radcolor.pro, read_s_depth.pro, zebra.pro array listing the indices of the points (either Lagrangian or Eulerian) which fall within the plotting window
bblue byte array color_set_up.pro Blue values for RGB colour table (see rred and ggreen)
bound_cond integer array read.pro type of boundary condition
c_m integer read_dialog.pro number of idl/info files found in directory
c_m_z integer read_dialog.pro number of idl/info.gz files found in directory
c_s integer read_dialog.pro number of SOPALE1_i files found in directory
c_s_z integer read_dialog.pro number of SOPALE1_i.gz files found in directory
cell_size integer array set in bc_analysis.pro,
used in lagr_box.pro, lagr_limits.pro, lgrid_l.pro, zebra.pro
cell_size[0] = max width (x) of all Eulerian cells in this frame
cell_size[1] = max height (y) of all Eulerian cells in this frame
code string array read.pro type of model ("Microfem" or "Sopale")
col_scale integer array default.pro array containing integers 1 - 10; used for indexing into colormap?
coord double array read_s_lagr.pro Equivalent to x2 and y2 (records 1 and 2) of SOPALE Lagrangian output file. Contains coordinates of nodes in Lagrangian grid for all frames to be processed; units used are kilometres, NOT metres!
coord(n,0,framenum) is value of x coordinate for Lagrangian node n, frame=framenum
coord(n,1,framenum) is value of y coordinate for Lagrangian node n, frame=framenum
conv double array read_p_data.pro Convergence (in km) of Lagrangian grid
conv(ik,it) is convergence for frame number it (ik will usually be 0)
convst_1 long integer array read_s_info.pro,
read_s_eul.pro
Array of timestep numbers for saved Eulerian output (corresponds to array isave_1 in file SOPALE1_i)

convst_2 long integer array read_s_info.pro,
read_s_eul.pro
Array of timestep numbers for saved Lagrangian output (corresponds to array isave_2 in file SOPALE1_i)

convtt double array read_s_eul.pro Timestep numbers of Lagrangian output files
convtt(ik,it) is value for output set ik (usually ik will be 0) and frame number it
data_directories common read.pro, session.pro common data area
data_dirs string array read.pro list of full pathnames for data directories; last entry is the name of the 'description file'
descriptionfile string read.pro last entry in string array pref; name or location of description file
discribe string array read.pro  
exx double array read_s_eul.pro Equivalent to e_fx1 (record 14) in SOPALE Eulerian output file.
Contains horizontal strain rate at Eulerian nodes for all frames to be processed. 
inv2(j,i,frame) is value for node at column j, row i, frame = index of frame
exy double array read_s_eul.pro Equivalent to e_fy1 (record 15) in SOPALE Eulerian output file.
Contains shear strain rate at Eulerian nodes for all frames to be processed.
inv2(j,i,frame) is value for node at column j, row i, frame = index of frame
ezz double array contour_mech.pro field of values to be contoured
frames integer array "first level" routines, e.g. post_LHO-LS.pro Contains a list of frame numbers to be plotted.  For Sergei's original scripts, the numbering of the frames is based on the list of output files in the chosen data directory: 0 is the first file in the list, 1 is the second file in the list, and so on. This may be totally unrelated to the "frame number" in the name of the Sopale output file.
Later scripts by Sergei may have added a feature that allowed the user to specify the frame numbers to be consistent with the Sopale output filename.
ggreen byte array color_set_up.pro Green values for RGB colour table (see rred and bblue)
gray integer array color_set_up.pro Array of indices into the RGB color table (see rred, ggreen, bblue).
Given a gray level, say 70%, gray(70) would give an index n such that the RGB triplet [rred(n),ggreen(n),bblue(n)] would give a 70% gray level.
hint string read_dialog.pro general variable for reading user input (?)
horizontal_intervals real array "first level" routines, e.g. post_LHO-LS.pro Defines x coordinates for plot windows; coordinates are taken in pairs, i.e. first window begins at x=horizontal_intervals[0] and ends at x=horizontal_intervals[1], second window begins at x=horizontal_intervals[2] and ends at x=horizontal_intervals[3], etc.
i2 integer "first level" routines, e.g. post_LHO-LS.pro  frame number (used as index to array frames)
ik integer read.pro index of model that is being processed (initialized to 0 at beginning of read.pro) - but it doesn't look like scripts are set up to loop over ik...
ikon integer "first level" routines, e.g. post_LHO-LS.pro number of elements in array frames (i.e. number of frames to be plotted)
inv2 double array read_s_eul.pro Equivalent to f1_sr (record 13) in SOPALE Eulerian output file.
Contains second invariant of strain rate at Eulerian nodes for all frames to be processed. 
inv2(j,i,frame) is value for node at column j, row i, frame = index of frame
inv2_sig double array read_s_eul.pro Equivalent to f1_sd (record 11) in SOPALE Eulerian output file.
Contains second invariant of deviatoric stress (J2D) at Eulerian nodes for all frames to be processed. 
inv2_sig(j,i,frame) is value for node at column j, row i, frame = index of frame
iqq integer "first level" routines, e.g. post_LHO-LS.pro;
lgrid_l.pro
loop counter; indexes the current plot
isolables real setting_up.pro size of labels on isolines
ke integer read.pro Number of nodes in horizontal dimension of Eulerian grid
kl integer read.pro Number of nodes in horizontal dimension of Lagrangian grid
kx integer read.pro not sure, but is set to same as ke to start with (i.e. number of nodes in horizontal dimension of Eulerian grid)
kz integer read.pro Number of nodes in vertical dimension of Eulerian grid
kzl integer read.pro Number of nodes in vertical dimension of Lagrangian grid
kzt integer read.pro Number of nodes in vertical dimension of Eulerian temperature grid
landscape string "first level" routines, e.g. post_LHO-LS.pro "yes" if the plot is to be in landscape mode
legend_new_panel string "first level" routines, e.g. post_LHO-LS.pro "yes" ; to plot legend as a separate panel
legend_position_x   "first level" routines, e.g. post_LHO-LS.pro  
legend_position_y   "first level" routines, e.g. post_LHO-LS.pro  0 - no legend
>0 - separate panel (need to use legend_new_panel='yes')
<0 append to the bottom panel
legend_resize integer "first level" routines, e.g. post_LHO-LS.pro 1 is normal size
lgrid_stepx integer "first level" routines, e.g. post_LHO-LS.pro;
lgrid_l.pro
grid spacing when plotting vertical grid lines (i.e. lgrid_stepx = 10 would plot every 10th vertical gridline)
lgrid_stepy integer "first level" routines, e.g. post_LHO-LS.pro;
lgrid_l.pro
grid spacing when plotting horizontal grid lines (i.e. lgrid_stepy = 10 would plot every 10th horizontal gridline)
llii string read_dialog.pro  
ltd double array read_s_lagr.pro Lagrangian temperature (in degrees Celsius) and depth (in km)
ltd(n,0,framenum) is temperature for Lagrangian node n, frame=framenum, EXCEPT where the Lagrangian particle has left the Eulerian grid.  In this case, the value of ltd(n,0,framenum) is the number of the last Eulerian cell that the particle occupied before it was lost. [ltd(n,0, framenum) is equivalent to t2 (record 9) of SOPALE Lagrangian output file, except for units used.]
ltd(n,1,framenum) is depth for Lagrangian node n, frame=framenum, EXCEPT where the Lagrangian particle has left the Eulerian grid.  In this case, the value of ltd(n,1,framenum) is either -1 or its depth minus 1, which ever is the most negative.
lveloc double array read_s_lagr.pro Equivalent to vx2 and vy2 (records 3 and 4) of SOPALE Lagrangian output file. Contains x and y components of velocities for nodes in Lagrangian grid for all frames to be processed; units used are cm/yr, NOT m/s.
lveloc(n,0,framenum) is value of x component of velocity for Lagrangian node n, frame=framenum
lveloc(n,1,framenum) is value of y component of velocity for Lagrangian node n, frame=framenum
mat integer array read_s_eul.pro Equivalent to color1 (record 16) in SOPALE Eulerian output file.
Contains mechanical materials of Eulerian elements for all frames to be processed.
mat(j,i,frame) is mechanical material number for element at column j, row i, frame = index of frame
mat_lagr integer array read_s_lagr.pro Equivalent to color2 (record 5) in SOPALE Lagrangian output file.
Contains mechanical materials of Lagrangian nodes for all frames to be processed.
mat_lagr(n,frame) is mechanical material number for node n, frame = index of frame
mat_t integer array read_s_eul.pro Equivalent to color1t (record 17) in SOPALE Eulerian output file.
Contains thermal materials of Eulerian elements for all frames to be processed.
mat_t(j,i,frame) is thermal material number for element at column j, row i, frame = index of frame
material_colors integer "first level" routines, e.g. post_LHO-LS.pro array defining plot colours for materials.
material_colors[i] gives the colour number to use for material (i+1) [since IDL indexes its arrays starting at 0].
The colour number is an index into the colour table defined in color_set_up.pro.  There are some predefined values, so you can set up your colours like this:
material_colors=[red, green, blue, brown]
mec_boxes real array set in read_m_mech_box.pro and read_s_box.pro, used in matcol.pro Coordinates in km for the four corners of the mechanical material boxes
  mec_boxes[n,0] = x1     mec_boxes[n,1] = y1
  mec_boxes[n,2] = x2     mec_boxes[n,3] = y2
  mec_boxes[n,4] = x3     mec_boxes[n,5] = y3
  mec_boxes[n,6] = x4     mec_boxes[n,7] = y4
where n is the number of the mechanical material box.
Sergei says it's "adjusted to S point"
mec_boxes_no integer set in read_m_mech_box.pro and read_s_box.pro, used in matcol.pro Number of mechanical material boxes, as defined in SOPALE1_i
mec_colors integer array set in read_m_mech_box.pro and read_s_box.pro, used in matcol.pro Colours to use for plotting the mechanical material boxes
mec_colors[i] = colour number to use for mechanical box i
model string array read.pro name of model
mu double array read_s_eul.pro Equivalent to vy1r (record 5) in SOPALE Eulerian output file.
Contains Eulerian nodal viscosities for all frames to be processed. 
mu(j,i,frame) is value of viscosity of node for column j, row i, frame = index of frame
multi integer array "first level" routines stores values for setting system variable !P.MULTI
!P.MULTI0] is number of plots remaining on the page
!P.MULTI[1] is number of plot columns per page
!P.MULTI[2] is number of rows of plots per page
!P.MULTI[3] is number of plots stacked in the Z dimension
!P.MULTI[4] is 0 to make plots from left to right (column major), and top to bottom, and is 1 to make plots from top to bottom, left to right (row major).
ncolor22 integer matcol.pro, matbox.pro, lagr_box.pro Number of regions to color
nhe integer array read.pro horizontal dimension for Eulerian grid (nodes in X)
nhl integer array read.pro horizontal dimension for Lagrangian grid (nodes in X)
nst integer conv.pro, read_s_info.pro number of timesteps for microfem output; also the number of frames of Eulerian output saved in Sopale (equivalent to nsave1 in SOPALE1_i)
nst_lagr integer read_s_info.pro number of frames of Lagrangian output saved in Sopale (equivalent to nsave2 in SOPALE1_i)
nt integer read.pro total number of frames to process
ntt integer read.pro total number of frames to process
nt1 integer read.pro total number of frames to process
number integer read_s_eul.pro Frame number of Eulerian output file (used within a loop in read_s_eul.pro)
nve integer array read.pro vertical dimension for Eulerian grid (nodes in Y)
nvl integer array read.pro horizontal dimension for Lagrangian grid (nodes in Y)
nvt integer array read.pro vertical dimension for Eulerian temperature grid (nodes in Y)[Microfem only]
nxe integer conv.pro horizontal dimension for Eulerian grid (nodes in X) for microfem output
nye integer conv.pro vertical dimension for Eulerian grid (nodes in Y) for microfem output
nxl integer conv.pro horizontal dimension forLagrangian grid (nodes in X) for microfem output
nyl integer conv.pro vertical dimension for Lagrangian grid (nodes in Y) for microfem output
nyt integer conv.pro vertical dimension for thermal grid (nodes in Y) for microfem output
ookk string   general variable for reading user input
p double array read_s_eul.pro Equivalent to nodpres (record 6) in SOPALE output file.
Contains Eulerian nodal solid pressure for all frames to be processed. 
p(j,i,frame) is value of solid pressure for node at column j, row i, frame = index of frame
path string array read.pro full path of directory which contains data to be processed
plot string "first level" routines, e.g. post_LHO-LS.pro Defines paper size and orientation for plot:
'big_port'  for 11 x 17 paper, portrait
'big_land'  for 11x17 paper, landscape
'small_land' for 8x11 paper, landscape
'small_port' for 8x11 paper, portrait
plot_n integer "first level" routines, e.g. post_LHO-LS.pro number of plot panels per page
pr string setting_up.pro, print.pro 'y'  = print plot
'e' = save plot as EPS
's' = save plot as Postscript
'v' = view plot in GhostView
'c' = colour print
'l' = print on 11x17 paper
't' = print on transparency
predif integer read.pro number of elements in pref (list of pathnames to search for data), minus 2
pref string array read.pro same as data_dirs (list of directories to search for data files)
processed string read_dialog.pro  'y' if model(ik) has been selected for processing ?
reference string array read.pro  
rred byte array color_set_up.pro Red values for RGB colour table (see ggreen and bblue)
ryad long integer read.pro total number of nodes in Lagrangian grid
spoint double array read.pro position of S-point
stop integer array read.pro number of frames of saved topography data
stope integer array read.pro number of frames of Eulerian field data
strain_e double array read_s_eul.pro Equivalent to strain1 (record 18) in SOPALE Eulerian output file.
Contains second invariant of total strain for Eulerian elements for all frames to be processed.
strain_e(j,i,frame) is value for element at column j, row i, frame = index of frame
strain_l double array read_s_lagr.pro Equivalent to strain2 (record 7) of SOPALE Lagrangian output file. Contains second invariant of total strain for nodes in Lagrangian grid for all frames to be processed.
strain_l(n,0,framenum) is value  for Lagrangian node n, frame=framenum
str_rates_col integer array "first level" routines, e.g. post_LHO-LS.pro array defining plot colours for strain rate plot. str_rates_col[i] gives the colour number to use for the range specified by level[i] ? in e2.pro ?
The colour number is an index into the colour table defined in color_set_up.pro.
string_bc string array read.pro string contained parameters of b.c.
style string contour_mech.pro, "first level" routines, e.g. post_LHO-LS.pro defines style of plotting fields as contours
"fill" means plot filled contours
"true_fill" means plot filled contours using a cell-fill algorithm (is slower than the other algorithm but works better for contours which are not closed)
"contour_dot" means plot contours, using dotted line
"contour_line" means plot contours, using solid line
style_col integer lagr_box.pro, "first level" routines, e.g. post_LHO-LS.pro defines style of plotting material colours [these are Sergei's notes]
0 - set manual horizontal levels for material boundaries; this is not much used now
1 - plot Eulerian coloring; i.e. color each Eulerian cell according to its mechanical material value
20 - plot Lagrangian material boxes based on initial model setup; this method needs the Lagrangian material boxes from the initial model setup and maps those boundaries to the current location of the corresponding Lagrangian particles. Note that this method requires a file containing the initial Lagrangian configuration, and it does not work very well for high deformations.
21 -like style_col 20, but includes only points that are definitely inside the Lagrangian box
22 - like style_col 21 with the addition of one more element around the outside
23 - disk coloring of Lagrangian particles: plot a filled circle at the position of each Lagrangian particle where the color of the circle is based on the material value.
24 - disk coloring using initial Lagrangian boxes; plot Lagrangian points within each Lagrangian box as filled circles.
te double array read_p_data.pro Contains coordinates of surface nodes (top row) of Eulerian grid; units used are kilometres, NOT metres!
te(model,j,0,frame) is X coordinate for surface node at column j, frame = index of frame, model=index of model [usually 0]
te(model,j,1,frame) is Y coordinate for surface node at column j, frame = index of frame, model=index of model [usually 0]
te(model,j,2,frame) is Y coordinate for bottom node at column j, frame=index of frame, model=index of model [usually 0]
tex double array read_s_eul.pro, read_p_data.pro Equivalent to x1 and y1 (records 1 and 2) in SOPALE Eulerian output file.
Contains coordinates of nodes in Eulerian grid for all frames to be processed; units used are kilometres, NOT metres!
tex(j,i,0,frame) is X coordinate value for node at column j, row i, frame = index of frame
tex(j,i,1,frame) is Y coordinate value for node at column j, row i, frame = index of frame
temp double array read_s_eul.pro Equivalent to t1 (record 9) in SOPALE Eulerian output file.
Contains Eulerian nodal temperatures for all frames to be processed. 
temp(j,i,frame) is value of temperature for node at column j, row i, frame = index of frame
timet double array read_s_eul.pro Time (in My) for Sopale output files
timet(ik,it) is value for output set ik (usually ik will be 0) and frame number it
total integer read.pro total number of data sets or models (hardwired to 1 at beginning of read.pro)
tv double array read_s_eul.pro Equivalent to vx1 and vy1 (records 3 and 4) in SOPALE Eulerian output file.
Contains Eulerian velocities for all frames to be processed; units used are cm/yr, NOT m/s. 
tv(j,i,xy,frame) is value of velocity component for node at column j, row i, xy=0 for X component, xy=1 for Y component, frame = index of frame
type string array read.pro  
uu integer   generic file unit number
vconv double array read.pro convergent velocity
vert_margin real array setting_up.pro values for setting system variable !Y.MARGIN
!Y.MARGIN[0] is bottom margin, in units of character size
!Y.MARGIN[1] is top margin, in units of character size
xpr real "first level" routines, e.g. post_LHO-LS.pro width of paper in cm
xrang real array "first level" routines, e.g. post_LHO-LS.pro Defines x coordinates (i.e. min x, max x) for current plot window
xss real setting_up.pro ratio of width/height for the plot device
yaxis string "first level" routines, e.g. post_LHO-LS.pro label for y axis ?
ypr real "first level" routines, e.g. post_LHO-LS.pro length of paper in cm
yrang real array "first level" routines, e.g. post_LHO-LS.pro Defines y coordinates (i.e. min y, max y) for current plot window.
Comment from script:
THE FIRST VALUE IN yrang IS THE DEPTH FROM MODEL SURFACE TO THE BOTTOM X-AXIS
; THE SECOND VALUE IN yrang IS THE DISTANCE FROM THE TOP X-AXIS TO THE SURFACE OFTHE MODEL