function jbt_tplot_pos, npanels = npanels, xpos = xpos, ypos = ypos, $
enclose = enclose
compile_opt idl2
@tplot_com.pro
chsize = !p.charsize
if chsize eq 0. then chsize=1.
def_opts= {ymargin:[4.,2.],xmargin:[12.,12.],position:fltarr(4), $
title:'',ytitle:'',xtitle:'', $
xrange:dblarr(2),xstyle:1, $
version:3, window:-1, wshow:0, $
charsize:chsize,noerase:0,overplot:0,spec:0}
extract_tags,def_opts,tplot_vars.options
varnames = tnames(/tplot)
nd = n_elements(varnames)
npanels = nd
if nd eq 0 then begin
dprint, 'No vlaid tplot variables in memory. NaN returned.'
return, !values.f_nan
endif
sizes = fltarr(nd)
for i=0,nd-1 do begin
dum = 1.
lim = 0
get_data,tplot_vars.options.varnames[i],alim=lim
str_element,lim,'panel_size',value=dum
sizes[i] = dum
endfor
str_element,def_opts,'ygap',value = ygap
nvlabs = [0.,0.,0.,1.,0.]
str_element,tplot_vars,'options.var_label',var_label
if keyword_set(var_label) then if size(/type,var_label) eq 7 then $
if ndimen(var_label) eq 0 then var_label=tnames(var_label)
if def_opts.version lt 1 or def_opts.version gt 4 then def_opts.version = 3
nvl = n_elements(var_label) + nvlabs[def_opts.version]
def_opts.ymargin = def_opts.ymargin + [nvl,0.]
old_pmulti = !p.multi
!p.multi = 0
pos = plot_positions(ysizes=sizes,options=def_opts,ygap=ygap)
!p.multi = old_pmulti
pos = transpose(pos)
if ~keyword_set(enclose) then begin
xpos = fltarr(npanels, 4)
ypos = fltarr(npanels, 4)
xpos[*, 0] = pos[*, 0]
xpos[*, 1] = pos[*, 0]
xpos[*, 2] = pos[*, 2]
xpos[*, 3] = pos[*, 2]
ypos[*, 0] = pos[*, 1]
ypos[*, 1] = pos[*, 3]
ypos[*, 2] = pos[*, 3]
ypos[*, 3] = pos[*, 1]
endif else begin
xpos = fltarr(npanels, 5)
ypos = fltarr(npanels, 5)
xpos[*, 0] = pos[*, 0]
xpos[*, 1] = pos[*, 0]
xpos[*, 2] = pos[*, 2]
xpos[*, 3] = pos[*, 2]
xpos[*, 4] = pos[*, 0]
ypos[*, 0] = pos[*, 1]
ypos[*, 1] = pos[*, 3]
ypos[*, 2] = pos[*, 3]
ypos[*, 3] = pos[*, 1]
ypos[*, 4] = pos[*, 1]
endelse
return, pos
end