Pro thm_autoload_support, vname=vname, spinmodel=spinmodel, spinaxis=spinaxis, slp=slp, history_out=history_out, probe_in=probe_in, trange=trange, progobj=progobj, _extra=_extra
if (~keyword_set(vname)) then begin
if (~keyword_set(trange)) then begin
message, 'The trange keyword must be used if no input variable name is supplied.'
endif
if ((keyword_set(spinmodel) || keyword_set(spinaxis)) && ~keyword_set(probe_in)) then begin
message, 'The probe_in keyword must be used if requesting spinmodel or spinaxis data, and no input variable name is supplied.'
endif
endif
If(keyword_set(spinmodel) || keyword_set(spinaxis)) then begin
If(keyword_set(probe_in)) Then probe = probe_in $
Else probe = strmid(vname, 2, 1)
endif
If(~keyword_set(trange)) then begin
get_data,vname,trange=trange
if n_elements(trange) NE 2 then begin
message,'Tplot variable name ' + vname + ' not found.'
endif
endif
slop=120.0D
loadstate = 0b
loadslp = 0b
if (keyword_set(spinmodel)) then begin
smp=spinmodel_get_ptr(probe)
if (~obj_valid(smp)) then loadstate=1b else begin
smp->get_info,start_time=st, end_time=et
st = st-slop
et = et+slop
if ((trange[0] LT st) OR (trange[1] GT et)) then begin
loadstate=1b
endif
endelse
endif
if (keyword_set(spinaxis)) then begin
all_names = tnames()
var1 = 'th'+probe+'_state_spinras'
var2 = 'th'+probe+'_state_spindec'
var3 = 'th'+probe+'_state_spinras_corrected'
var4 = 'th'+probe+'_state_spindec_corrected'
get_data,var1,trange=tr1
get_data,var2,trange=tr2
get_data,var3,trange=tr3
get_data,var4,trange=tr4
if ( (n_elements(tr1) NE 2) OR (n_elements(tr2) NE 2) OR $
(n_elements(tr3) NE 2) OR (n_elements(tr4) NE 2)) then begin
loadstate=1b
endif else begin
tr1 += [-slop,slop]
tr2 += [-slop,slop]
tr3 += [-slop,slop]
tr4 += [-slop,slop]
if ((trange[0] LT tr1[0]) OR (trange[1] GT tr1[1])) then begin
loadstate=1b
endif
if ((trange[0] LT tr2[0]) OR (trange[1] GT tr2[1])) then begin
loadstate=1b
endif
if ((trange[0] LT tr3[0]) OR (trange[1] GT tr3[1])) then begin
loadstate=1b
endif
if ((trange[0] LT tr4[0]) OR (trange[1] GT tr4[1])) then begin
loadstate=1b
endif
endelse
Endif
if (keyword_set(slp)) then begin
all_names = tnames()
var1 = 'slp_lun_att_x'
var2 = 'slp_lun_att_z'
var3 = 'slp_lun_pos'
var4 = 'slp_sun_pos'
get_data,var1,trange=tr1
get_data,var2,trange=tr2
get_data,var3,trange=tr3
get_data,var4,trange=tr4
if ( (n_elements(tr1) NE 2) OR (n_elements(tr2) NE 2) OR $
(n_elements(tr3) NE 2) OR (n_elements(tr4) NE 2)) then begin
loadslp=1b
endif else begin
tr1 += [-slop,slop]
tr2 += [-slop,slop]
tr3 += [-slop,slop]
tr4 += [-slop,slop]
if ((trange[0] LT tr1[0]) OR (trange[1] GT tr1[1])) then begin
loadslp=1b
endif
if ((trange[0] LT tr2[0]) OR (trange[1] GT tr2[1])) then begin
loadslp=1b
endif
if ((trange[0] LT tr3[0]) OR (trange[1] GT tr3[1])) then begin
loadslp=1b
endif
if ((trange[0] LT tr4[0]) OR (trange[1] GT tr4[1])) then begin
loadslp=1b
endif
endelse
endif
If(loadstate) Then Begin
If(obj_valid(progobj)) Then progobj -> update, 0.0, $
text = 'Loading State data for Calibration, Probe: '+probe
thm_load_state, probe = probe, /get_support_data, trange = trange
tj = time_string(trange)
history_out = 'thm_load_state, probe = '+''''+probe+''''+$
', trange = ['+''''+tj[0]+''''+', '+''''+tj[1]+''''+$
'], /get_support_data'
If(obj_valid(progobj)) Then progobj -> update, 100.0, $
text = 'Finished Loading State data for Calibration, Probe: '+probe
Endif Else history_out = ''
If(loadslp) Then Begin
If(obj_valid(progobj)) Then progobj -> update, 0.0, $
text = 'Loading SLP data for Cotrans'
thm_load_slp, trange = trange
tj = time_string(trange)
history_out = 'thm_load_slp, trange = ['+''''+tj[0]+''''+', '+''''+tj[1]+''''+ ']'
If(obj_valid(progobj)) Then progobj -> update, 100.0, $
text = 'Finished Loading SLP data for Cotrans'
Endif Else history_out = ''
Return
End