CALCONLEV $SSW/smm/hxis/hxissetlevel.pro
[Previous] [Next]

 FILE HXISSETLEVEL.PRO -- includes CALCONLEV.PRO, SETLEVEL_EV, HXISSETLEVEL

===========================================================================

 NAME:
	CALCONLEV

 PURPOSE:
	Calculate contour levels

 CATEGORY:
	HXIS display

 CALLING SEQUENCE:
	CALCONLEV

 CALLED BY:
	SETLEVEL_EV

 CALLS TO:
	none

 INPUTS:
       none explicit, only through commons

 OPTIONAL INPUTS:
	none

 OUTPUT:
       none explicit, only through commons

 OPTIONAL OUTPUT:
	none

 CALLS: ***
	HXISSETLEVEL, SETLEVEL_EV, XMANAGER
 CALLED BY:
	HXISSETLEVEL, SETLEVEL_EV
 COMMON BLOCKS:
	HXISSETLEV	to pass contour level variables through XAMANAGER
	HXISWIDGET	for the ID of the comment widget

 SIDE EFFECTS:
	none

 RESTRICTIONS:
	none

 PROCEDURE:
	Depending on the parameter set by the user (in SETLEVEL_EV)
	the conour levels are chosen.

 MODIFICATION HISTORY:
	DEC-92, Elaine Einfalt (HSTX) 


CATWIDHELP_EV $SSW/smm/uvsp/idl/uvsp_catwidhelp.pro
[Previous] [Next]

 NAME: 
  	CATWIDHELP_EV

 PURPOSE:
       Handle events for UVSP_CATWIDHELP

 CATEGORY:
       UVSP Catalog

 CALLING SEQUENCE:
 	XMANAGER, 'UVSPCATHELP', BASE, EVENT_HANDLER='CATWIDHELP_EV'

 CALLED BY:
       UVSP_CATWIDHELP

 CALLS TO:
	none

 INPUTS:
       none explicit, only through the XMANAGER
		the wdidget ID for the text widget is passed in UVALUE

 OPTIONAL INPUTS:
	none

 OUTPUTS:
       none

 OPTIONAL OUTPUTS:
	none

 CALLS: ***
	UVSP_CATWIDHELP [2], XMANAGER, XREGISTERED, uvsp_catwidhelp [1]
 CALLED BY:
	UVSP_CATWIDHELP [2], uvsp_catwidhelp [1]
 COMMON BLOCKS:
	none

 SIDE EFFECTS:
	none

 RESTRICTIONS:
	none

 PROCEDURE:
	Process the event for the user selected item.  If event is a list
	event the display the appropriate help information.

 MODIFICATION HISTORY:
	Oct 93 - Elaine Einfalt (HSTX)


CH2KVT $SSW/smm/hxrbs/idl/ch2kvt.pro
[Previous] [Next]
 NAME:
	CH2KVT

 PURPOSE:
       Return the 16 boundaries of the HXRBS 15-channel phs data in
	kilo-electron volts (keV) as a function of gain state (1-8), time
	in the mission, and lld setting.

 CATEGORY:
       HXRBS

 CALLING SEQUENCE:
	CH2KVT, LLD=LLD, GAIN_STATE=GAIN_STATE, UTIME=UT, EDGES=EDGES

 CALLS: ***
	CH2MV, CHECKVAR [1], INTERPOL, anytim [1], anytim [2], anytim [3], anytim [4]
	anytim [5], checkvar [2]
 INPUTS:
	Lld:		Lower-level discriminator setting 1-4.
	Gain_state:	1-8
	Utime:		Time from 79/01/01 in seconds, scalar value.

 OUTPUTS:
	Edges:		16 edges in keV on 15 HXRBS energy channels.

 CALLED BY:
	CH2KVT_GAIN, HXARCHIVE, hxrbs_response
 PROCEDURE:
       1. Call ch2mv to get mV boundaries.     
       2. Compute G as a function of time. Time is in seconds from 79/01/01.
       3. RKEV(I,J) = (1/G(T)) * (C(I)*MV(J)**2 + A(I)*MV(J) + B(I)  
          where J = lower channel edge (= 1-16) and I = gain state.            

       ELECTRONIC GAIN CALIBRATION:
       RKEV= (1./GainT) * (A0 + A1*RKEV+ A2*RKEV^2)

       Lld, Gain_state and Utime are used as keywords so you don't have 
	to remember their input sequence.

 MODIFICATION HISTORY:
	Mod. 03/06/92 by Richard Schwartz. Converted to IDL from FORTRAN
	Mod. 05/06/96 by RCJ. Added documentation.


CH2KVT_GAIN $SSW/smm/hxrbs/idl/ch2kvt_gain.pro
[Previous] [Next]

 NAME:
	CH2KVT_GAIN

 PURPOSE:
	Procedure to retrieve HXRBS energy edges for a given time when SARS
 	is not available. 

 CATEGORY:
       HXRBS

 CALLING SEQUENCE:
       CH2KVT_GAIN,Ut=Ut,Edges=Edges

 CALLS: ***
	CH2KVT, CHKLOG [1], CHKLOG [2], CONCAT_DIR [1], CONCAT_DIR [2], CONCAT_DIR [3]
	READ_SEQFILE, anytim [1], anytim [2], anytim [3], anytim [4], anytim [5]
	concat_dir [4]
 INPUTS:
      
       Ut:	Time from 79/01/01, scalar value.

 OUTPUTS:
       Edges:	16 edges in keV on 15 HXRBS energy channels.

 CALLED BY:
	HXRFITS_ARCHIVE
 PROCEDURE:
       Looks in a  table (perm$data:gain.chg) to find out what gain level 
	was being used at a given time (this information is normally derived 
	from the SARS word), and then calls ch2kvt to compute energy edges 
	as normal.
       Ut and Edges are used as keywords so you don't have to remember
	their input sequence.

 MODIFICATION HISTORY:
	Written by Kim Tolbert, 08/31/1994.
	Mod. 05/06/96 by RCJ. Added documentation.


CH2MV $SSW/smm/hxrbs/idl/ch2mv.pro
[Previous] [Next]

 NAME:
	CH2MV

 PURPOSE:
       Return the 16 boundaries of the 15-channel phs data in millivolts(mv)
	as a function of phald(sc1).

 CATEGORY:
       HXRBS

 CALLING SEQUENCE:
       CH2MV,Illd,Igain,Rmv

 INPUTS:
       Illd:	Lower level discriminator setting 1-4.
	Igain:  Gain state 1-8.

 OUTPUTS:
       Rmv:	Lower channel edges in millivolts.

 CALLED BY:
	CH2KVT
 PROCEDURE:
       1. Retrieve 16 step canned mv table(FRMV) of boundaries.
       2. Replace upper boundary if gain = 1
       3. Get lower limit from a 4 step table(FLL) as a function of PHALD
	   level # 
       4. Replace RMV(I) with FLL(PHALD) whenever FLL(PHALD) .GT. RMV(I)
          for I = 1,16  

 MODIFICATION HISTORY:
	Mod. 3/6/92 by R. Schwartz. Converted to IDL from FORTRAN
	Mod. 06/96 by RCJ. Added documentation.


ch_scale scale xyoutsxyouts xcorr xcorr $SSW/smm/gen/idl/graphics/ch_scale.pro
[Previous] [Next]
 FUNCTION: ch_scale, scale, xyouts=xyouts, xcorr = xcorr
 scale text in graphics output to that of TEKTRONIX graphics
 also scale to multiplot environment
 SCALE TO Y DISTANCE, XSCALING MUST BE DONE IN SETTING UP DISPLAY.
 XSCALING ALLOWED USING KEYWORD
 Scaling for plot axes is different than for xyouts because of
 the scaling factor of 0.5 applied to plot text when any dimension of
 !p.multi exceeds 2.  This factor is not applied to text labels in
 xyouts!

 INPUTS:
	SCALE	-Normal scaling factor used in TEKTRONIX graphics.
	XYOUTS  -Keyword indicating scale used in XYOUTS call.
	XCORR   -Keyword indicating to use scaling along x axis
 RAS 4/92

 CALLS: ***
	CH_SCALE, FCHECK
 MODIFICATION HISTORY:
        Modified 8/29/94 by Amy Skowronek to check for global variable.
        If variable is set, result multiplied by global.  To scale up
        text in multiple plot.


CHKPOINT $SSW/smm/xrp/idl/fcs/chkpoint.pro
[Previous] [Next]
 NAME:
       CHKPOINT
 PURPOSE:
      check SMM pointing in XRP catalog against the UVSP catalog
 CALLING SEQUENCE:
      chkpoint,img,info
 INPUTS:
       IMG= structure with image parameters
 OUTPUTS:
       info = informational messages
 CALLS: ***
	ATIME [1], ATIME [2], UTIME [1], UTIME [2], anytim [1], anytim [2], anytim [3]
	anytim [4], anytim [5], get_uvexp
 CALLED BY:
	FCS
 MODIFICATION HISTORY:     
      written - DMZ (ARC) April'92


CHOOSE_FL $SSW/smm/hxrbs/idl/choose_fl.pro
[Previous] [Next]

 NAME:
	CHOOSE_FL

 PURPOSE:
       Create a widget that displays a list of HXRBS flares and some
 	parameters of those flares, and allows the user to select a flare from
 	the list. 

 CATEGORY:
       HXRBS

 CALLING SEQUENCE:
       CHOOSE_FL, fldata, numfl, fl_selected

 CALLS: ***
	ATIME [1], ATIME [2], CHECKVAR [1], CHOOSE_FL_EVENT, WIDG_TYPE, XMANAGER
	checkvar [2], get_xfont [1], get_xfont [2]
 INPUTS:
	fldata:	array of structures containing the flares number and 
		associated parameters to list
	numfl:	number of flares to list

 OUTPUTS:
	fl_selected:	selected flare number.

 KEYWORDS:
       group_leader:	Widget ID of the group leader.
	flstring:	String array containing list of events.
	just_reg:       If =1 xmanager will register the widget but
			will not start processing events.
	btitle:		Title for the widget base.
	xoffset:        Offset (in pixels, x-dir) from this widget's parent.
	yoffset:        Offset (in pixels, y-dir) from this widget's parent.
	info:           String containing information on instrument. For now
			we just need to know whether to display BATSE data.

 CALLED BY:
	HFLARE, HXRBS, spex_evnt [1], spex_evnt [2]
 PROCEDURE:
       none

 MODIFICATION HISTORY:
	Written 04/92 by AKT.
	Mod. 08/26/92 by ras. make compatible with BATSE structure tags
 	Mod. 03/25/96 by RCJ. Remove common block, add xoffset, yoffset, 
		modal keywords.
	Mod. 05/15/96 by RCJ. Added documentation.
	Mod. 06/06/96 by RCJ. Made compatible with array of structures input
		(fldata)
	Mod. 02/04/97 by RCJ. Removed format of header_string, added just_reg
		keyword. Modal keyword is set through just_reg.
	Version 7, RAS, 28-Mar-1997, compatible with BATSE, HXRBS, GRS


CNTRATE $SSW/smm/hxrbs/idl/cntrate.pro
[Previous] [Next]

 NAME:
	CNTRATE

 PURPOSE:
       Convert count and livetime data to a counting rate.

 CATEGORY:
       HXRBS

 CALLING SEQUENCE:
	Result = CNTRATE(Phs) 

 CALLS: ***
	CHECKVAR [1], F_DIV, checkvar [2]
 INPUTS:
       Phs:	(n,nchan) where n is the number of time bins
	        nchan is the number of energy channels + 1 live time chan.

 OPTIONAL INPUTS:
       Chan_start:	Optional low channel for sum, default = 0.
			0 is the first channel.

	Chan_end:	Optional high channel for sum, default = Chan_start, 
			or nchan-1 if Chan_start is not passed.

 OUTPUTS:
       Result:	Summed counts from Chan_start to Chan_end divided 
		by the live time.
		i.e. HXRBS data is returned in counts/second.
                      
 KEYWORDS:
	Help:	Show calling sequence.

 SIDE EFFECTS:
       Sample intervals with zero live time are returned with a value 0.0 
	for the counting rate.  The FUNCTION DIV protects against 
	division by zero.

 MODIFICATION HISTORY:
	Mod. 09/27/91 by Richard Schwartz. Last revision.
	Mod. 10/14/94 by RAS.
	Mod. 05/06/96 by RCJ. Added documentation.


COALIGN $SSW/smm/xrp/idl/fcs/coalign.pro
[Previous] [Next]
 NAME: 
      COALIGN
 PURPOSE:  
      Coalign two images
 CALLING SEQUENCE:  
      coalign,img1,img2
 INPUTS:  
      img1,img2 = image structure variables (see ST_IMG)
 KEYWORDS:
      color = color contour of overlaid image
 OUTPUTS:  
      img3  = img1 aligned with img2
 PROCEDURE:  
      Plots images side by side and user picks off features.
      IMG1 is then overlaid as a contour on IMG2
 MODIFICATION HISTORY:      
      DMZ (ARC) Aug'93


COORD_CONV [2] $SSW/smm/gen/idl/graphics/coord_conv.pro
[Previous] [Next]

 NAME: 
	COORD_CONV

 PURPOSE:
	This procedure computes the data, normal, and device coordinates for an input point that
 	is any of the three types, and returns the 3 types in xout and yout in
 	that order.

 CATEGORY:


 CALLING SEQUENCE:
	COORD_CONV, X, Y,  Xout, Yout
 CALLS:
	none
 INPUTS:
 
 Default type for input point is data.  Otherwise specified by keywords DATA,NORMAL, DEVICE.
       x: xaxis coordinate, must be scalar
	y: yaxis coordinate, must be scalar

 OPTIONAL INPUTS:
	none

 OUTPUTS:
       Xout: the input coordinate converted to [DATA, NORMAL, DEVICE ] units as a vector
	Yout: the input coordinate converted to [DATA, NORMAL, DEVICE ] units as a vector

 OPTIONAL OUTPUTS:
	none

 KEYWORDS:
	DATA:   If set, input is in DATA coordinates
	NORMAL: If set, input is in NORMAL coordinates
	DEVICE: If set, input is in DEVICE coordinates
	
 CALLED BY:
	WFSURVEY
 COMMON BLOCKS:
	none

 SIDE EFFECTS:
	none

 RESTRICTIONS:
	none

 PROCEDURE:
	none

 MODIFICATION HISTORY:

 Kim Tolbert 11/26/91


coreg $SSW/smm/xrp/idl/fcs/coreg.pro
[Previous] [Next]
 NAME:
          coreg
 PURPOSE:
          coregister two image structures 
 CATEGORY:
          utility
 CALLING SEQUENCE:
          coreg,s1,s2
 INPUTS:
          s1,s2 = input structures
 OUTPUTS:
          s1,s2 = output structures
 CALLED BY:
	FTEMAP
 PROCEDURE:
          coregister images in s1 and s2 based on coordinate location of each pixel in s1 and s2
 CALLS: ***
	NINT [1], NINT [2], RUST
 RESTRICTIONS:
          s1 and s2 are altered to reflect coregistered data         
          s1 and s2 must have rectangular pixels
 MODIFICATION HISTORY:
          written DEC 1990 (DMZ, ARC) 


cp [1] $SSW/smm/cp/cp.pro
[Previous] [Next]

 FILE CP.PRO  the display program for Coronagraph/Polarimeter data.


 REQUIREMENTS :  IDL Version 2 with widgets, or better.
		  X windows graphics device.
			
   To test to see if widgets are available :

   IDL> if (!D.FLAGS AND 65536) NE 0 THEN PRINT, 'WIDGETS ARE AVAILABLE.'
		

 The CP data must be written from the CP achive media using the IDL
 routine CPTAPE.PRO.  This is a VMS specific procedure and will place
 the data into subdirectories, one per day.  These file can then be copied
 to a UNIX machine, if desired. 

 - The program has two main modes: "Display one image" (single image) mode or 
   "Show a movie" (movie) mode.  
 - The mode is selected from the main options widget, but first select the
   desired option for "Normal display" (not a difference image) and 
   "Make a difference" (difference image).  
 - Once single or movie modes are selected, each will create it's own
   widget menues.
 - These menues are designed to display either normal or difference images
 - The remain option are independant and may be selected interactively 
   during processing.
 CALLS: ***
	CPCOLOR, CPHELP, CPMOVIE, CPONE, CP_EVENT, WINUP [5], XMANAGER, XPDMENU, XREGISTERED
	acknowledge [1], acknowledge [2], acknowledge [3], opsys_lgcl [1]
	opsys_lgcl [2], winup [1], winup [2], winup [3], winup [4]
 CALLED BY:
	CP_EVENT, SDAC
 NOTE: All widget menues are placed at the top left corner of the screen.
	This may result in smaller menues, such as the main options menu,
 	being completely hidden.  Move the offending menu as you would
	any window on your system.


                         /--- CPONE---CPONE_EV*-------------------\
    CP--------CP_EVENT---                                         ---**
    (cpcolor)            \--- CPMOVIE--CPMOVIE_EV*---CPMOVIE_DO---/   

                                                                * returns to 
            **---CPDISPLAY---------------------CPTV---CPSUNCEN    cpone_ev or
                 (cpdisk)   \----CPDIFF---/                       to cpmovie_ev


    Programs for C/P have the naming convention of CP*.PRO :
       CP.PRO, CPCOLOR.PRO, CPDISK.PRO, CPDISPLAY.PRO, CPHOUSE.PRO,
       CPINTERANIMATE.PRO, CPMOVIE.PRO, CPONE.PRO, CPSUNCEN.PRO

    Common block for these programs are named CP*.COMMON :
       CPCOLORS.COMMON, CPDISPFILES.COMMON, CPGET_R_T.COMMON,
       CPKEYWORDS.COMMON, CPLOGIC_ENVRON.COMMON, CPMOVIDISPLAY.COMMON,
       CPMOVIETIME.COMMON, CPMOV_DIR.COMMON, CPNEW_WINDOW.COMMON, 
       CPONE_DIR.COMMON, CPPROLOCAL.COMMON, CPUSERINP.COMMON
       CPWIDGBASES.COMMON

    Required program that don't use the naming convention of CP*.* :
       any widget library routines, ACKNOWLEDGE.PRO, OPSYS_LGCL.PRO,
	PSPLOT.PRO, RESPOND_WIDG.PRO, WINUP.PRO, 
	WINUP_COMMON.PRO, LINECOLORS.PRO



CP [2] $SSW/smm/cp/cp.pro
[Previous] [Next]

 NAME: 
	CP

 PURPOSE:
	Create the main options menu widget

 CATEGORY:  
	CP display

 CALLING SEQUENCE:
	CP, [GROUP_LEADER=GROUP]

 CALLED BY: 
	none

 CALLS TO: 
	CPCOLOR, CP_event (via XMANAGER)

 INPUTS: 
	none

 OPTIONAL INPUTS:
	GROUP :  The widget ID of the parent widget.

 OUTPUTS: 
	none explicit, only through commons

 OPTIONAL OUTPUTS: 
	none

 CALLS: ***
	CPCOLOR, CPHELP, CPMOVIE, CPONE, CP_EVENT, WINUP [5], XMANAGER, XPDMENU, XREGISTERED
	acknowledge [1], acknowledge [2], acknowledge [3], opsys_lgcl [1]
	opsys_lgcl [2], winup [1], winup [2], winup [3], winup [4]
 CALLED BY:
	CP_EVENT, SDAC
 COMMON BLOCKS:
	CPCOLORS     	assigns the CP color tables
	CPKEYWORDS  	assigns the initial values for option conditions
	CPLOGIC_ENVRON	assigns the location of data
	CPNEW_WINMDOW  	assigns initial values for window management
	CPPROLOCAL 	creates the widget IDs of menu buttons
	CPWIDGBASES 	creates the widget IDs of parents and informational 

 SIDE EFFECTS:  
	none

 RESTRICTIONS:  
	none

 PROCEDURE:
	Verifiy data loction and create CP color tables then create the 
	main options menu widget. 

 MODIFICATION HISTORY:
 	1991 - Elaine Einfalt (HSTX)
	MAR 93 - Added radial and azmuthal scan buttons


CP_CAT $SSW/smm/cp/cp_cat.pro
[Previous] [Next]

 file CP_CAT.PRO -

 CP_CAT programs  provides an interface to accept parameters
 checks them for validity (CP_CATPARAM->CP_CATPARSE), 
 displays a condensed version of any valid user input, 
 searches the catalog using input parameters (CP_CATREAD) and
	proceeds to output qualifing experiments (CP_CATPRINT->CP_CATDISPLAY)
 CP_CATRESET allow user to go back to default values


 NAME: 
	CP_CAT.PRO

 PURPOSE:
       Sets up initial conditions for the catalog search program, an directs
	program control to the interface.

 CATEGORY:
	CP Catalog

 CALLING SEQUENCE:
	result = cp_cat( font=font, $
	             reset=reset, widget_handler=widget_handler, $
		     widget_group=widget_group, widget_modal=widget_modal)

 CALLED BY:
	none

 CALLS TO:
	CP_CATRESET, CP_CATWIDGET, CHECKFONT

 INPUTS:
       none 

 OPTIONAL INPUTS:

	FONT	:   The hardware font to be used by the program's widgets,
		    when executing in widget mode.  May be selected during 
		    program execution, for any future widgets created.
		    Wildcards are allowed.  Ignored in screen mode.

	ALPHAFONT : When set select a small font.  Alpha IDL placed big gaps
		    between lines, therfore the widget goes off the bottom.
		    This keyword selects a font size about 12.  This keyword
		    is ignored if the FONT keyword is set.

	NORESET :   By default the default parameters are reset to all possible
		    values.  If set, then your last parameter values are 
		    retained as the current settings.  Note that "SPEC" means 
		    spectra only, so that is set to NO.
		    
	The following only apply to widget mode, and are ignored in screen mode.
	These are meaningful only when this program is called by another widget
	routine.

	WIDGET_HANDLER  :  The name of the event handler to be used to handle
			   the events produced by the "Array" or "Screen" 
			   output selections.  If not present, the only event
			   handled from these widgets is the CANCEL button.

	WIDGET_GROUP	:  The widget ID of a group leader, which, when killed,
			   kills the catalog program's widgets.  
   
	WIDGET_MODAL	:  The MODAL condition to be set for the final output
			   widget listing the qualifing experiments.

 OUTPUTS:
	Returns the result (CP_TEXT). 
	CP_TEXT is null when no experiment qualify to meet the parameter.
	CP_TEXT is a long array of numbers when "NUMBERS" is selected in 
		 screen mode or nothing is select in widget mode.
	CP_TEXT is the calalog output when, output condition "ARRAY"
		 is selected.
	CP_TEXT is null for any other cases. 

 OPTIONAL OUTPUTS:
       none 

 CALLS: ***
	CHECKFONT, CP_CATRESET, cp_catwidget
 COMMON BLOCKS:
	COMMON CPCATTEXT, CP_TEXT   	; The string array of entries,
					;    returned from the event handler.
	COMMON CPCATSTRUC, CP 		; Current parameter settings (CP).
	COMMON MYFONT, MYFONT		; Saves for next time.
	COMMON CPCAT, CPCAT             ; The part of catalog in memory.

 SIDE EFFECTS:
	The entire 22 x 228001 bytarr CP catalog is placed in memory.
	This memory is not returned until you exit IDL or type 
	COMMON CPCAT, CPCAT and then DELVAR, CPCAT.
	
 RESTRICTIONS:
	If this program is executing in widget mode then IDL must be version
	3.0.0 or better, because the widget keyword FONT is used. 

	You must have a enough for the whole CP catalog to be placed in memory.

 PROCEDURE:
	none

 MODIFICATION HISTORY:
	Nov 93 - elaine einfalt (HSTX)
	                          


CP_CATHELP $SSW/smm/cp/cp_cathelp.pro
[Previous] [Next]

 NAME: 
	CP_CATHELP

 PURPOSE:
	The help for the CP catalog search program

 CATEGORY:
	CP Catalog

 CALLING SEQUENCE:
       CP_CATHELP [, group = group]	

 CALLED BY:
 	CP_CATWIDGET

 CALLS TO:
	DPHELP_EV, through the XMANAGER

 INPUTS:
       none

 OPTIONAL INPUTS:
	GROUP	: The widget ID of the parent widget

 OUTPUTS:
       none explicit

 OPTIONAL OUTPUTS:
	none

 CALLS: ***
	CPHELP_EV [1], CPHELP_EV [2], XMANAGER, XREGISTERED
 CALLED BY:
	CPHELP_EV [1], cp_catwidget
 COMMON BLOCKS:
	none

 SIDE EFFECTS:
	Creates a widget

 RESTRICTIONS:
	Requires widget ablity

 PROCEDURE:
	Create a widget and list the help topics.  As topics are selected by
	the user, the help information is displayed.

 MODIFICATION HISTORY:
	Nov 93 - Elaine Einfalt (HSTX)


CP_CATPRINT $SSW/smm/cp/cp_catprint.pro
[Previous] [Next]

 NAME: 
	CP_CATPRINT

 PURPOSE:
	Output the catalog entries.

 CATEGORY:
	CP Catalog

 CALLING SEQUENCE:
	result = cp_catprint, w_cat=w_cat, [ yield=yield, 
				s_page=s_page, p_page=p_page, 
				filename=filename]

 CALLED BY:
       CP_CATREAD

 CALLS TO:
	none 

 INPUTS:
	W_CAT	array of qualifing entries

 OPTIONAL INPUTS:

	YIELD	the bits of this number indicate then processing code(s)
		if BIT 0 is 1 then return the catalog text in a array
		if BIT 1 is 1 then output is sent to a list widget
		if BIT 2 is 1 then output is sent to the printer 
		if BIT 3 is 1 then output is sent to a disk file, 
			 named by default CPCAT.hhmmss (extension is time)
		Default is list widget only (bit 1)
	
	S_PAGE  if present, the number of entries to process before
		reprinting the titles to the screen. 
		Ignored of BIT 1 is not	set. Default is 24.

	P_PAGE  if present, the number of entries to process before issuing
		a form feed and reprinting the titles for printer output.
		Ignored of BIT 2 is not	set. Default is 58.

	FILENAME if present and BIT , a string to be used as the 

 OUTPUTS:
       If BIT 0 is set in variable YIELD, then a string array containing
	the catalog entry text for each experiment in W_CAT is returned.
	Otherwise, a null string is returned.

 OPTIONAL OUTPUTS:
       If BIT 1 is set, (in variable YIELD) then the catalog entry text is
		sent to the terminal screen
       If BIT 2 is set, (in variable YIELD) then the catalog entry text is
		sent to a temporary file, printed and deleted.
       If BIT 3 is set, (in variable YIELD) then the catalog entry text is
		sent to a disk file (titles only present at beginning of file).
	

 CALLS: ***
	CP_CATDISPLAY
 CALLED BY:
	CP_CATREAD
 COMMON BLOCKS:
	Common CPCAT has variable CPCAT a 26x228001 byte array containing the
	26 fields in the CP Catalog for 228001 file entries.

 SIDE EFFECTS:
	none

 RESTRICTIONS:
	none

 PROCEDURE:
	Open the requested output device(s), and output the catalog text
	for each experiment in the W_CAT array.  If the screen mode is 
	legally terminated, prior to the last experiment, then printer
	and disk modes terminate at that experiment as well.

 MODIFICATION HISTORY:
	NOV 1993 - Elaine Einfalt (HSTX)


CP_CATREAD $SSW/smm/cp/cp_catread.pro
[Previous] [Next]

 NAME: 
	CP_CATREAD

 PURPOSE:
       Search the CP catalog using the user's parameters

 CATEGORY:
       CP Catalog

 CALLING SEQUENCE:
	result = CP_CATREAD(CP=CP, [FONT=FONT, $
					YIELD=YIELD, CAT_WIDG=CAT_WIDG])

 CALLED BY:
       CP_CATWIDGET

 CALLS TO:
	CP_CATPRINT

 INPUTS:
       CP : a structure containing the parameters choosen by the user.

 OPTIONAL INPUTS:
	FONT  : A hardware font name to be passed to CP_CATPRINT
	YIELD : Value passed to CP_CATPRINT, representing the output mode.
	CAT_WIDG : Structure to be passed to CP_CATPRINT, containing parent
			widget information, when CP_CAT is not run stand alone.

 OUTPUTS:
       none explicit, only through common

 OPTIONAL OUTPUTS:
	none

 CALLS: ***
	CP_CATPRINT, CP_CATTIME, UT_2_YYDOY [1], anytim [1], anytim [2], anytim [3]
	anytim [4], anytim [5], ut_2_yydoy [2]
 CALLED BY:
	cp_catwidget
 COMMON BLOCKS:
	COMMON CPCAT, CPCAT             ; The part of catalog in memory.
	COMMON CPCATTEXT, CP_TEXT   	; The string array of entries,
					;    returned from the event handler.

 SIDE EFFECTS:
       none

 RESTRICTIONS:
	none
                          
 PROCEDURE:
	Using the user input parameters, determine which CP observations
	meet the criteria.

 MODIFICATION HISTORY:
	Nov 93 - Elaine Einfalt (HSTX)


CP_CATRESET $SSW/smm/cp/cp_catreset.pro
[Previous] [Next]

 NAME: 
	CP_CATRESET

 PURPOSE:
	Define a structure containing the default search parameters.
 	Define a structure to contain the string of where expressions.

 CATEGORY:
       CP Catalog

 CALLING SEQUENCE:
       CP_CATRESET, cp=cp

 CALLED BY:
       CP_CATSCREEN

 CALLS TO:
	none

 INPUTS:
       INPUT : the item to reset

 OPTIONAL INPUTS:
	none

 OUTPUTS:
       cp : a structure of strings, containing the default parameters

 OPTIONAL OUTPUTS:
	none

 CALLS: ***
	anytim [1], anytim [2], anytim [3], anytim [4], anytim [5]
 CALLED BY:
	CP_CAT, cp_catwidget
 COMMON BLOCKS:
	none

 SIDE EFFECTS:
	none

 RESTRICTIONS:
	none

 PROCEDURE:
	Assigns values to the structure "CP" and returns this structure.

 MODIFICATION HISTORY:
	July 1993 - Elaine Einfalt (HSTX)


CP_CATTIME $SSW/smm/cp/cp_cattime.pro
[Previous] [Next]
	
 NAME: 
	CP_CATTIME

 PURPOSE:
	Verify that the user' input times are within CP observation times

 CATEGORY:
       CP Catalog

 CALLING SEQUENCE:
       CPCKECKTIME, TIME=TIME, CP=CP, CAS=CAS

 CALLED BY:
	CP_CATWIDGET, CP_CATREAD

 CALLS TO:
	none

 INPUTS:
       TIME	: The time in form dd-mon-yy hh:mm
	CP	: The structure of cp information
	CAS	: The case of verification:
			0 means verifing a start time
			1 means verifing an end time

 OPTIONAL INPUTS:
	none

 OUTPUTS:
       CP.STIME or CP.ETIME may be modified

 OPTIONAL OUTPUTS:
	none

 CALLS: ***
	anytim [1], anytim [2], anytim [3], anytim [4], anytim [5]
 CALLED BY:
	CP_CATREAD, cp_catwidget
 COMMON BLOCKS:
	none      

 SIDE EFFECTS:
	none

 RESTRICTIONS:
	none

 PROCEDURE:
	Take input time convert to seconds, check against appropriate
	CP observation boundary.  Change CP.STIME and CP.ETIME if needed.

 MODIFICATION HISTORY:
	Nov 93 - Elaine Einfalt (HSTX)


cp_catwidget $SSW/smm/cp/cp_catwidget.pro
[Previous] [Next]

 NAME: 


 PURPOSE:


 CATEGORY:


 CALLING SEQUENCE:


 CALLED BY:


 CALLS TO:
	none

 INPUTS:
       none explicit, only through commons;

 OPTIONAL INPUTS:
	none

 OUTPUTS:
       none explicit, only through commons;

 OPTIONAL OUTPUTS:
	none

 CALLS: ***
	ATIME [1], ATIME [2], CPCAT_EVENT, CP_CATHELP, CP_CATREAD, CP_CATRESET, CP_CATTIME
	PARSE_ATIME [1], TWIDGET, UT_2_YYDOY [1], XFONT, XMANAGER, XPDMENU, XREGISTERED
	YYDOY_2_UT, anytim [1], anytim [2], anytim [3], anytim [4], anytim [5]
	parse_atime [2], ut_2_yydoy [2]
 CALLED BY:
	CP_CAT
 COMMON BLOCKS:
	none

 SIDE EFFECTS:
	none

 RESTRICTIONS:
	none

 PROCEDURE:
	none

 MODIFICATION HISTORY:


CP_EVENT $SSW/smm/cp/cp.pro
[Previous] [Next]

 NAME:  		
	CP_EVENT

 PURPOSE: 
	The event handler for main CP option menu widget

 CATEGORY: 	
	CP display

 CALLING SEQUENCE: 	
	CP_EVENT, EVENT

 CALLED BY: 	
	CP.PRO

 CALLS TO:  		
	WINUP, ACKNOWLEDGE, CPONE, CPMOVIE

 INPUTS:
	EV : the event structure, variable depending on type of item clicked
	also, values in commons

 OPTIONAL INPUTS: 
	none

 OUTPUTS: 
	none explicit, only through commons

 OPTIONAL OUTPUTS: 
	none

 CALLS: ***
	CP [2], CPCOLOR, CPHELP, CPMOVIE, CPONE, WINUP [5], XMANAGER, XPDMENU, XREGISTERED
	acknowledge [1], acknowledge [2], acknowledge [3], cp [1], opsys_lgcl [1]
	opsys_lgcl [2], winup [1], winup [2], winup [3], winup [4]
 CALLED BY:
	CP [2], cp [1]
 COMMON BLOCKS: 	
	CPCOLORS 	to set color tables states
	CPDISPFILES 	to pass printer status
	CPKEYWORDS 	for current options conditions
	CPNEW_WINDOW 	for reuse state
	CPPROLOCAL 	for the widget IDs of option buttons
	CPWIDGBASES 	for the widget IDs of parents and informational 

 SIDE EFFECTS: 		
	none
              	
 RESTRICTIONS: 		
	none

 PROCEDURE: 		
	Process the events from the main options menu widget.  Continue 
	recieving events until "QUIT" is clicked, thus sending 
	return control to calling routine.  Or until "Display one image" or
	"Show a movie" are selected. Each of these will call the appropriate
	routines to contine processing.

 MODIFICATION HISTORY:
	1991 - Elaine Einfalt (HSTX)
	MAR 93 - removed unneccessary comments window, from main widget.
	       - added handlers for radial and azmuthal scans


CPCOLOR $SSW/smm/cp/cpcolor.pro
[Previous] [Next]

 NAME:  
	CPCOLOR

 PURPOSE:   
	Creates arrays for CP black and white and CP differcence color tables

 CATEGORY:
	CP display

 CALLING SEQUENCE:
	CPCOLOR, DIFF_R=DIFF_R, DIFF_G=DIFF_G, DIFF_B=DIFF_B, $
	         NORM_R=NORM_R, NORM_G=NORM_G, NORM_B=NORM_B

 CALLED BY:  
	CP.PRO

 CALLS TO:  
	none

 INPUTS: 
	none

 OPTIONAL INPUTS: 
	none

 OUTPUTS: 
	DIFF_R = red color array for difference images
	DIFF_G = green array for difference images
	DIFF_B = blue  array for difference images
	NORM_R = red color array for normal (not difference) images
	NORM_G = green color array for normal (not difference) images
	NORM_B = blue color array for normal (not difference) images

 OPTIONAL OUTPUTS: 
	none

 CALLED BY:
	CP [2], CP_EVENT, cp [1]
 COMMON BLOCKS: 
	CPLASTPASS 	for values need to reconstruct scale data

 SIDE EFFECTS: 
	Temporarily creates a small IDL window. Users will see it "blip"
	on the screen.  Necessary to obtain a corrrect value in !D.N_COLORS.

 RESTRICTIONS:
	Must have X window system graphic device.

 PROCEDURE:
	Create color array of size !D.N_COLORS. For normal (not difference)
	images, the color table is linear black to white, with cyan, red 
	and white at the top index. For difference images the 
	color table goes from blue to black (mid point 
	index) to red to yellow, with black at lowest index and
	3 indexes of white at top.

 MODIFICATION HISTORY:
	1991 - Elaine Einfalt (HSTX)
	Apr 93 - modified color table


CPCOMPOSITE $SSW/smm/cp/cpcomposite.pro
[Previous] [Next]

 NAME: 
	CPCOMPOSITE

 PURPOSE:
	Display 4 CP images in one window to shown a full corona picture

 CATEGORY:
	CP Display

 CALLING SEQUENCE:
	CPCOMPOSITE, COMPO_FILE

 CALLED BY:
	CPONE

 CALLS TO:
	none

 INPUTS:
       COMPO_FILE	string array containing the filenames to be composite

 OPTIONAL INPUTS:
	none

 OUTPUTS:
       none 

 OPTIONAL OUTPUTS:
	none

 CALLS: ***
	CPDISK, CPSUNCEN, PSPLOT [1], PSPLOT [2], WINUP [5], winup [1], winup [2], winup [3]
	winup [4]
 CALLED BY:
	CPONE, CPONE_EV
 COMMON BLOCKS:
	CPCOLORS to load color tables
	CPNEW_WINDOW  for window display variables

 SIDE EFFECTS:
	none

 RESTRICTIONS:
	none

 PROCEDURE:
	Size each image to be one of the quadrents, place according to 
	each image's sun center. 

 MODIFICATION HISTORY:
	Feb 94 - Elaine Einfalt (HSTX)


CPCURSOR $SSW/smm/cp/cpsuncen.pro
[Previous] [Next]

 NAME: 
	CPCURSOR

 PURPOSE:
 	Draw users requested R and theta
	
 CATEGORY:
	CPDISPLAY

 CALLING SEQUENCE:
	CPCURSOR, XCUR=XCUR, YCUR=YCUR, SC_SIZ=SC_SIZ, SIN_MOV=SIN_MOV, $
			  RULECONDITION=RULECONDITION, RULETIMES=RULETIMES, $
			  RADIUS=RADIUS, THETA=THETA, RD=R, $
			  RADIALMAX=RADIALMAX, COLO=COLO, ROLL=ROLL, $
	            	  xcenter=xcenter, ycenter=ycenter, housekp=housekp

 CALLED BY:
	CPSUNCEN

 CALLS TO:
	CPGET_R_T, CPSCANS

 INPUTS:
	DATA :  the image array
	SC_SIZ : radius of area to be marked as suncenter (pixels)
		 an arbitrary number large enough for cursor click termination
	SIN_MOV  : 0 means current display mode is for single images
	           1 means current display mode is for movies
	RULECONDITION : 0 means draw ruler s/c thru R/theta
			1 means mark R/theta click w/ circle
			2 means don't draw ruler or mark
			3 means plot radial scan
			4 means plot azmuthal scan
	RULETIMES : 0 will never be set if this routine is called
		    1 means pick 1 R/theta
		    2 means pick multiple R/theta
		    3 means enter R/theta
		    4 means use r/theta already in memory
			  
	RADIUS :  radius array for solar disk
	THETA  :  array of all degree in a circle (360) convert to radians
	R : the sun's radius in pixel, (and a terrible variable name)
	RADIALMAX : the largest radial extent for this image
	COLO  : -1 means no hard copy allowed
		 0 means hard copy device is B/W
		 1 means hard copy device is color
	ROLL : the angle of solar north in radians, from "+x" axis
	XCENTER : the x-axis coordinate of sun center (in pixels)
	YCENTER : the y-axis coordinate of sun center (in pixels)

 OPTIONAL INPUTS:
	none

 OUTPUTS:
	none

 OPTIONAL OUTPUTS:
	none

 CALLS: ***
	CPGET_R_T, CPSCANS, CPSUNCEN, CPSUNCEN_EV, CPTVCOPY, PSPLOT [1], PSPLOT [2], XMANAGER
 CALLED BY:
	CPGET_R_T, CPONE, CPONE_EV, CPSUNCEN, CPSUNCEN_EV, CPTVCOPY
 COMMON BLOCKS:
       CPLASTPASS    to initial array for radial or azmuthal scans
	CPUSERINP     for user selected values of r and theta
	CPWIDGBASES   for the widget IDs of the informational windows

 SIDE EFFECTS:
	Common block values in CPLASTPASS are modified.

 RESTRICTIONS:
	none

 PROCEDURE:
	Gets user input cursor click and turns it into R and theta.
	Draw over top of the already displayed image R/Theta using option
	requested by the user.

 MODIFICATION HISTORY:
	1991 - Elaine Einfalt (HSTX)
	Mar 93 - moved initial request for R and theta (xcur and ycur) to 
		    	this routine from CPSUNCEN.  Also moved XCUR and YCUR
			to common block CPUSERINP
                remove the now obsolete common block CPRULE.COMMON
	         added call to CPSCANS, to get radial or azmuthal scans values


CPDIFF $SSW/smm/cp/cpdisplay.pro
[Previous] [Next]

 NAME: 
	CPDIFF

 PURPOSE:
 	Scale the difference images to align with the difference color table.

 CATEGORY:  
	CP diplay

 CALLING SEQUENCE: 
      	CPDIFF, DATA=DATA, POSFAC=POSFAC, NEGFAC=NEGFAC

 CALLED BY:  
	CPDISPLAY

 CALLS TO: 
	none

 INPUTS:
	DATA  : Array of size equal to CP image.  Array values
		range from -255 to +255.

 OPTIONAL INPUTS:  
	none

 OUTPUTS:
	DATA   : Array of size equal to CP image.  Array values
		 range from 1 to the value of !D.N_COLORS-3
	POSFAC : image red color scale factor
	NEGFAC : image blue color scale factor

 OPTIONAL OUTPUTS: 
	none

 CALLS: ***
	CPDISK, CPDISPLAY, CPHOUSE, CPSUNCEN, CPTV, PSPLOT [1], PSPLOT [2], RESPOND_WIDG
	WINUP [5], XINTERANIMATE, winup [1], winup [2], winup [3], winup [4]
 CALLED BY:
	CPDISPLAY, CPMOVIE, CPMOVIE_DO, CPMOVIE_EV, CPTV
 COMMON BLOCKS: 
 	CPLASTPASS	for color table scale information

 SIDE EFFECTS: 
	none

 RESTRICTIONS: 
	none

 PROCEDURE:
	Align data array values to match the difference color table and
	the users (or default) values for scaling the negative and positive
	values resulting from the image subtraction.

 MODIFICATION HISTORY:
	1991 - Elaine Einfalt (HSTX)


CPDISK $SSW/smm/cp/cpdisk.pro
[Previous] [Next]

 NAME: CPDISK

 PURPOSE: 
	Read in a CP data file with housekeeping information and image

 CATEGORY:
	CP display

 CALLING SEQUENCE:
 	CPDISK, DATA=DATA, HK=HOUSKEEP, FILE=FILENAME, OK=OK, $
		IMSIZ=IMSIZ, SIN_MOV=SIN_MOV

 CALLED BY: 
	CPDISPLAY

 CALLS TO: 
	none

 INPUTS:
	FILENAME = Filename of CP data file to be read.
	SIN_MOV  = 0 means current display mode is for single images
	           1 means current display mode is for movies

 OPTIONAL INPUTS: 
	none

 OUTPUTS:
	DATA  = Byte array of size equal to CP image in pixels.
	HK    = Byte array of size equal to one dimension of image array.
	        Contain CP housekeeping information, padded with zeroes
	OK    = 0 means failed to successfully read the input file
	        1 means successfully read the input file
	IMSIZ = Size of one dimension of CP image, CP images are square.  
		 

 OPTIONAL OUTPUTS: 
	none

 CALLED BY:
	CPCOMPOSITE, CPDIFF, CPDISPLAY, CPMOVIE, CPMOVIE_DO, CPMOVIE_EV, CPTV
 COMMON BLOCKS:
	CPWIDGBASES for widget IDs of informational output widgets.

 SIDE EFFECTS:
	none

 RESTRICTIONS: 
	none

 PROCEDURE:
	Locate and open direct access data file. The total size in bytes,
	minus the header, squared is the size of the CP image in pixels.  
	A VMS record length in multiples of 512 was tested for CPTAPE.PRO,
	but not implemented.  Code for that option remains in these routine.

 MODIFICATION HISORY:
	1991 - Elaine Einfalt (HSTX)


CPDISPLAY $SSW/smm/cp/cpdisplay.pro
[Previous] [Next]

 NAME: 
	CPDISPLAY

 PURPOSE:
	Setup image for display

 CATEGORY:  
	CP display

 CALLING SEQUENCE:
 	CPDISPLAY, NORM_DIFF=NORM_DIFF, DONORTH=DONORTH, $
	         DODISK=DODISK, DORADII=DORADII, DORADIAL=DORADIAL,  $
		 RULETIMES=RULETIMES, RULECONDITION=RULECONDITION, $
		 POSFAC=POSFAC, NEGFAC=NEGFAC, SIN_MOV=SIN_MOV, $
		 PROCESSED=PROCESSED, SAVEME=SAVEME, WMOVIE=W, $
		 NFILES=NFILES, OK=OK

 CALLED BY:
	CPONE, CPMOVIE

 CALLS TO: 
	CPDISK, CPDIFF, WINUP, CPTV

 INPUTS:
	NORM_DIFF     : 0 means do a normal image
                       1 means do a difference image
	DONORTH       : just passing through, on it's way to CPTV
 	DODISK        : just passing through, on it's way to CPTV
	DORADII       : just passing through, on it's way to CPTV
	DORADIAL      : just passing through, on it's way to CPTV
	RULETIMES     : just passing through, on it's way to CPTV 
 	RULECONDITION : just passing through, on it's way to CPTV
	POSFAC        : just passing through, on it's way to CPDIFF 
	NEGFAC        : just passing through, on it's way to CPDIFF 
	SIN_MOV       : 0 means current display mode is for single images
	           	1 means current display mode is for movies
	PROCESSED     : just passing through, on it's way to CPTV
	SAVEME 	      : just passing through, on it's way to CPTV
	W 	      : just passing through, on it's way to CPTV
	NFILES        : just passing through, on it's way to CPTV

 OPTIONAL INPUTS: 
	none

 OUTPUTS:
	OK : 0 means failed to successfully read the input file
	     1 means successfully read the input file
	PROCESSED : just passing through, on it's back to CPMOVIE

 OPTIONAL OUTPUTS: 
	none

 CALLS: ***
	CPDIFF, CPDISK, CPHOUSE, CPSUNCEN, CPTV, PSPLOT [1], PSPLOT [2], RESPOND_WIDG, WINUP [5]
	XINTERANIMATE, winup [1], winup [2], winup [3], winup [4]
 CALLED BY:
	CPDIFF, CPMOVIE, CPMOVIE_DO, CPMOVIE_EV, CPONE, CPONE_EV, CPTV
 COMMON BLOCKS :
	CPCOLORS to load color tables
	COLORS to change values in R_CURR, G_CURR, B_CURR to desired table
	CPDISPFILE for files to read and output device color condition
	CPNEW_WINDOW  for window display variables
	CPWIDGBASES for widget IDs to write out informational messages

 SIDE EFFECTS : 
	Changes values in IDL common block COLORS

 RESTRICTIONS: 
	none

 PROCEDURE:
	Read in data file(s) and if a difference image do the subtraction.
	If the data file is the same as last pass then the file is not reread. 
	Scale the data to the appropriate color table and load that table.
	Call to CPTV to output the CP display.

 MODIFICATION HISTORY:
	1991 - Elaine Einfalt (HSTX)
	MAR 1993 - modified to save data array to common.
		   modified the CP window manager to be user friendly.


CPGET_R_T $SSW/smm/cp/cpsuncen.pro
[Previous] [Next]

 NAME: 
	CPGET_R_T

 PURPOSE:
 	Make widget that will allow use input of R and Theta.

 CATEGORY:
	CP display	

 CALLING SEQUENCE:
	CPGET_R_T, SIN_MOV=SIN_MOV

 CALLED BY:
	CPSUNCEN

 CALLS TO:
	CPSUNCEN_EV (via XMANAGER)

 INPUTS:
	SIN_MOV	: 0 when doing a single image
		  1 when doing a movie

 OPTIONAL INPUTS:
	none

 OUTPUTS:
	none explicit, only through commons

 OPTIONAL OUTPUTS:
	none

 CALLS: ***
	CPCURSOR, CPSCANS, CPSUNCEN, CPSUNCEN_EV, CPTVCOPY, PSPLOT [1], PSPLOT [2], XMANAGER
 CALLED BY:
	CPCURSOR, CPONE, CPONE_EV, CPSUNCEN, CPSUNCEN_EV, CPTVCOPY
 COMMON BLOCKS:
	CPGET_R_T   widget IDs for R and Theta manual input and input status

 SIDE EFFECTS:
	none

 RESTRICTIONS:
	none

 PROCEDURE:
	Create the widget which will prompt user to input R and Theta values

 MODIFICATION HISTORY :
	1991 - Elaine Einfalt (HSTX)
	Mar 93 - added widget labels values CURRENT_R and CURRENT_T


CPHELP $SSW/smm/cp/cphelp.pro
[Previous] [Next]

 NAME: 
	CPHELP

 PURPOSE:
       Provide the user helpful information about the C/P display code

 CATEGORY:
       C/P display

 CALLING SEQUENCE:
       CPHELP

 CALLED BY:
       CP

 CALLS TO:
	none

 INPUTS:
       none

 OPTIONAL INPUTS:
	none

 OUTPUTS:
       none

 OPTIONAL OUTPUTS:
	none

 CALLS: ***
	CPHELP1, CPHELP2, CPHELP3, CPHELP_EV [1], CPHELP_EV [2], XMANAGER, XREGISTERED
 CALLED BY:
	CP [2], CPHELP_EV [2], CP_EVENT, cp [1]
 COMMON BLOCKS:
	CPHELPCOM   to pass values to event handler

 SIDE EFFECTS:
	Creates a widget

 RESTRICTIONS:
	Need to have widget capability

	The value passed is the exact wording of the topic as it appears
	in the help widget.  A change to the wording of the help topic
	(when the widget is created - in CPHELP) or to the widget event
	handler case value (in CPHELP_EV) or to the case values in CPHELPn
	(where n is a number) will require the same changes occur in all 3
	locations.

 PROCEDURE:
	Create a widget and call event handler

 MODIFICATION HISTORY:
       May 1993 - Elaine Einfalt (HSTX)


CPHELP1 $SSW/smm/cp/cphelp1.pro
[Previous] [Next]

 NAME: 
	CPHELP1

 PURPOSE:
       Return a string array containing the requested help information.

 CATEGORY:
	CP display

 CALLING SEQUENCE:
       result = CPHELP(VALUE)

 CALLED BY:
       CPHELP

 CALLS TO:
	none

 INPUTS:
       VALUE	:  the string value of the help item requested

 OPTIONAL INPUTS:
	none

 OUTPUTS:
       Return a string array with help information

 OPTIONAL OUTPUTS:
	none

 CALLED BY:
	CPHELP, CPHELP_EV [2]
 COMMON BLOCKS:
	none

 SIDE EFFECTS:
	none

 RESTRICTIONS:
	The value passed is the exact wording of the topic as it appears
	in the help widget.  A change to the wording of the help topic
	(when the widget is created - in CPHELP) or to the widget event
	handler case value (in CPHELP_EV) or to the case values in CPHELPn
	(where n is a number) will require the same changes occur in all 3
	locations.

 PROCEDURE:
	Return the help information associated with the input value.

 MODIFICATION HISTORY:
	Oct 93 - Elaine Einfalt (HSTX)


CPHELP2 $SSW/smm/cp/cphelp2.pro
[Previous] [Next]

 NAME: 
	CPHELP2

 PURPOSE:
       Return a string array containing the requested help information.

 CATEGORY:
	CP display

 CALLING SEQUENCE:
       result = CPHELP(VALUE)

 CALLED BY:
       CPHELP

 CALLS TO:
	none

 INPUTS:
       VALUE	:  the string value of the help item requested

 OPTIONAL INPUTS:
	none

 OUTPUTS:
       Return a string array with help information

 OPTIONAL OUTPUTS:
	none

 CALLED BY:
	CPHELP, CPHELP_EV [2]
 COMMON BLOCKS:
	none

 SIDE EFFECTS:
	none

 RESTRICTIONS:
	The value passed is the exact wording of the topic as it appears
	in the help widget.  A change to the wording of the help topic
	(when the widget is created - in CPHELP) or to the widget event
	handler case value (in CPHELP_EV) or to the case values in CPHELPn
	(where n is a number) will require the same changes occur in all 3
	locations.

 PROCEDURE:
	Return the help information associated with the input value.

 MODIFICATION HISTORY:
	Oct 93 - Elaine Einfalt (HSTX)


CPHELP3 $SSW/smm/cp/cphelp3.pro
[Previous] [Next]

 NAME: 
	CPHELP3

 PURPOSE:
       Return a string array containing the requested help information.

 CATEGORY:
	CP display

 CALLING SEQUENCE:
       result = CPHELP(VALUE)

 CALLED BY:
       CPHELP

 CALLS TO:
	none

 INPUTS:
       VALUE	:  the string value of the help item requested

 OPTIONAL INPUTS:
	none

 OUTPUTS:
       Return a string array with help information

 OPTIONAL OUTPUTS:
	none

 CALLED BY:
	CPHELP, CPHELP_EV [2]
 COMMON BLOCKS:
	none

 SIDE EFFECTS:
	none

 RESTRICTIONS:
	The value passed is the exact wording of the topic as it appears
	in the help widget.  A change to the wording of the help topic
	(when the widget is created - in CPHELP) or to the widget event
	handler case value (in CPHELP_EV) or to the case values in CPHELPn
	(where n is a number) will require the same changes occur in all 3
	locations.

 PROCEDURE:
	Return the help information associated with the input value.

 MODIFICATION HISTORY:
	Oct 93 - Elaine Einfalt (HSTX)


CPHELP_EV [1] $SSW/smm/cp/cp_cathelp.pro
[Previous] [Next]

 NAME: 
	CPHELP_EV

 PURPOSE:
	Event handler for the CP catalog search program help interface.

 CATEGORY:
	CP Catalog

 CALLING SEQUENCE:
	XMANAGER, 'CPCATHELP', base, event_handler='CPHELP_EV', group=group
	

 CALLED BY:
	CP_CATHELP, through the XMANAGER

 CALLS TO:
	none

 INPUTS:
       none 

 OPTIONAL INPUTS:
	none

 OUTPUTS:
       none 

 OPTIONAL OUTPUTS:
	none

 CALLS: ***
	CP_CATHELP, XMANAGER, XREGISTERED
 CALLED BY:
	CPHELP, CP_CATHELP
 COMMON BLOCKS:
	none

 SIDE EFFECTS:
	none

 RESTRICTIONS:
	none

 PROCEDURE:
	Display the help infromation about the topic the user clicked on.

 MODIFICATION HISTORY:
	NOV 93 - Elaine Einfalt (HSTX)


CPHELP_EV [2] $SSW/smm/cp/cphelp.pro
[Previous] [Next]

 NAME: 
	CPHELP_EV

 PURPOSE:
       The event handler for CPHELP

 CATEGORY:
       C/P display

 CALLING SEQUENCE:
       through XMANAGER

 CALLED BY:
       CPHELP (through XMANAGER)

 CALLS TO:
	CPHELP1, CPHELP2, CPHELP3

 INPUTS:
       none

 OPTIONAL INPUTS:
	none

 OUTPUTS:
       none

 OPTIONAL OUTPUTS:
	none

 CALLS: ***
	CPHELP, CPHELP1, CPHELP2, CPHELP3, XMANAGER, XREGISTERED
 CALLED BY:
	CPHELP, CP_CATHELP
 COMMON BLOCKS:
	CPHELPCOM   to pass values to event handler

 SIDE EFFECTS:
	none

 RESTRICTIONS:
	The value passed is the exact wording of the topic as it appears
	in the help widget.  A change to the wording of the help topic
	(when the widget is created - in CPHELP) or to the widget event
	handler case value (in CPHELP_EV) or to the case values in CPHELPn
	(where n is a number) will require the same changes occur in all 3
	locations.

 PROCEDURE:
	Handle events as input and output text about the selected topic.

 MODIFICATION HISTORY:
       May 1993 - Elaine Einfalt (HSTX)


CPHOUSE $SSW/smm/cp/cphouse.pro
[Previous] [Next]

 NAME: 
	CPHOUSE

 PURPOSE:  
	Output housekeeping information.

 CATEGORY: 
	CP diplay

 CALLING SEQUENCE: 
	pro cphouse, hk=hk, ntime=ntime, colo=colo

 CALLED BY:  
	CPTV, CPMOVIE

 CALLS TO:  
	none

 INPUTS:
	HK	: Array of size (224 x N) where N is 1 for single images
		  and 2 for difference images. Contains the housekeeping
		  information for the current image(s)
	NTIME	:  0 means display the house keeping for the normal image 
		     or base image of a difference display
		   1 means use the subtraction image values in HK
	COLO    : -1 means no hard copy allowed
		   0 means hard copy device is B/W
		   1 means hard copy device is color

 OPTIONAL INPUTS: 
	none

 OUTPUTS:  
	none

 OPTIONAL OUTPUTS: 
	none

 CALLED BY:
	CPDIFF, CPDISPLAY, CPMOVIE, CPMOVIE_DO, CPMOVIE_EV, CPTV
 COMMON BLOCKS: 
	none

 SIDE EFFECTS: 
	none

 RESTRICTIONS: 
	none

 PROCEDURE:
	Writes the house keeping information to the output device.
	If a difference image, the base image house keeeping is on the
	left and the subtraction image house keeping is written on the right.

 MODIFICATION HISTORY:
	1991 - Elaine Einfalt (HSTX)


CPMOVIE $SSW/smm/cp/cpmovie.pro
[Previous] [Next]

 NAME:
	CPMOVIE

 PURPOSE:
	Create the movie menu widget

 CATEGORY:  
	CP display

 CALLING SEQUENCE:  
	CPMOVIE, GROUP_LEADER=GROUP

 CALLED BY:  
	CP.PRO
          
 CALLS TO:  
	ACKNOWLEDGE, XPDMENU, XMENU, CPMOVIE_EV (via XMANAGER)
          
 INPUTS:
	GROUP :  The widget ID of the parent widget.
	also, values in commons

 OPTIONAL INPUTS:
	none

 OUTPUTS: 
	none explicit, only through commons

 OPTIONAL OUTPUTS: 
	none

 CALLS: ***
	CPDIFF, CPDISK, CPDISPLAY, CPHOUSE, CPMOVIE_DO, CPMOVIE_EV, CPSUNCEN, CPTV, PSPLOT [1]
	PSPLOT [2], RESPOND_WIDG, WINUP [5], XINTERANIMATE, XLOADCT [1], XLOADCT [2]
	XLOADCT [3], XMANAGER, XMENU [1], XMENU [2], XPALETTE, XPDMENU, XREGISTERED
	acknowledge [1], acknowledge [2], acknowledge [3], winup [1], winup [2], winup [3]
	winup [4]
 CALLED BY:
	CP [2], CPMOVIE_DO, CPMOVIE_EV, CP_EVENT, cp [1]
 COMMON BLOCKS:
	CPMOV_DIR  	for widget ID of save buttons
	CPLOGIC_ENVRON 	for location of data
	CPMOVIDISPLAY 	for movie filenames, etc.
	CPKEYWORDS 	for current options conditions
	CPWIDGBASES 	for the widget IDs of parents and informational 

 SIDE EFFECTS: 
	none

 RESTRICTIONS: 
	none

 PROCEDURE:
	Create the movie menu widget and populate the list widgets
	with subdirectories of CP data.

 MODIFICATION HISTORY:
 	1991 - Elaine Einfalt (HSTX)


CPMOVIE_DO $SSW/smm/cp/cpmovie.pro
[Previous] [Next]
=================================================================

 Filename CPMOVIE.PRO	-  includes CPMOVIE_DO, CPMOVIE_EV, CPMOVIE

=================================================================


 NAME: 
	CPMOVIE_DO

 PURPOSE:
       Use XINTERANIMATE to create the movie.

 CATEGORY:  
	CP display
                 
 CALLING SEQUENCE: 
	CPMOVIE_DO, GROUP_LEADER=GROUP

 CALLED BY: 
	CPMOVIE_EV, CPSUNCEN, CPDISPLAY

 CALLS TO:  
	CPMOVIE_EV (via XMANAGER)

 INPUTS:
	GROUP :  The widget ID of the parent widget.
	also, values in commons
                
 OPTIONAL INPUTS: 
	none

 OUTPUTS: 
	none explicit, only through commons

 OPTIONAL OUTPUTS: 
	none

 CALLS: ***
	CPDIFF, CPDISK, CPDISPLAY, CPHOUSE, CPMOVIE, CPMOVIE_EV, CPSUNCEN, CPTV, PSPLOT [1]
	PSPLOT [2], RESPOND_WIDG, WINUP [5], XINTERANIMATE, XLOADCT [1], XLOADCT [2]
	XLOADCT [3], XMANAGER, XMENU [1], XMENU [2], XPALETTE, XPDMENU, XREGISTERED
	acknowledge [1], acknowledge [2], acknowledge [3], winup [1], winup [2], winup [3]
	winup [4]
 CALLED BY:
	CPMOVIE, CPMOVIE_EV
 COMMON BLOCKS:
	CPMOV_DIR	for widget ID of save buttons
	CPDISPFILES 	to pass current frame filename
	CPKEYWORDS 	for current options conditions
	CPLASTPASS	for access to scans memory 
	CPMOVIDISPLAY 	for movie filenames, etc.
	CPMOVIETIME 	for saving a moving
	CPWIDGBASES 	for the widget IDs of parents and informational 

 SIDE EFFECTS:
	If SAVEME is set then a file is created.

 RESTRICTIONS: 
	none

 PROCEDURE:
	Display movie frames either from a saved movie or a just selected
	list of data files.  A movie file may be saved. And a bunch of 
	testing is done with the selected files to determine what is valid.  
	In general, this routine is a royal pain.

 MODIFICATION HISTORY:
	1991 - Elaine Einfalt (HSTX)
	oct 1993 - e. einfalt - replaced CPINTERANIMATE with XINTERANIMATE 


CPMOVIE_EV $SSW/smm/cp/cpmovie.pro
[Previous] [Next]

 NAME: 
	CPMOVIE_EV

 PURPOSE: 
	The event handler for movie menu widget

 CATEGORY: 
	CP display

 CALLING SEQUENCE:  
	CPMOVIE_EV, EV

 CALLED BY:  
	CPMOVIE (via XMANAGER), CPMOVIE_DO

 CALLS TO:  
	XLOADCT, XPALETTE

 INPUT:
	EV: the event structure, variable depending on type of item selected
	also, values in commons

 OPTIONAL INPUTS:
	none

 OUTPUTS: 
	none explicit, only through commons

 OPTIONAL OUTPUTS: 
	none

 CALLS: ***
	CPDIFF, CPDISK, CPDISPLAY, CPHOUSE, CPMOVIE, CPMOVIE_DO, CPSUNCEN, CPTV, PSPLOT [1]
	PSPLOT [2], RESPOND_WIDG, WINUP [5], XINTERANIMATE, XLOADCT [1], XLOADCT [2]
	XLOADCT [3], XMANAGER, XMENU [1], XMENU [2], XPALETTE, XPDMENU, XREGISTERED
	acknowledge [1], acknowledge [2], acknowledge [3], winup [1], winup [2], winup [3]
	winup [4]
 CALLED BY:
	CPMOVIE, CPMOVIE_DO
 COMMON BLOCKS:
	COLORS 		to change R_CURR, G_CURR, B_CURR to desired table
	CPCOLORS 	to load CP color tables
	CPMOV_DIR 	for widget ID for filename list(s)
	CPKEYWORDS 	for current options conditions
	CPMOVIDISPLAY 	for movie filenames, etc.
	CPMOVIETIME 	for saving a moving
	CPWIDGBASES 	for the widget IDs of parents and informational widgets

 SIDE EFFECTS:
	Changes may be may to the current color table.

 RESTRICTIONS: 
	none
	
 PROCEDURE:
	Process the events from the movie menu widget.  Continue recieving
	events until "Ready" is clicked, thus sending control to CPMOVIE_DO.
	Or until "Cancel" is click, returning control to the main options menu.

 MODIFICATION HISTORY:
	1991 - Elaine Einfalt (HSTX)


CPONE $SSW/smm/cp/cpone.pro
[Previous] [Next]

 NAME: 
	CPONE

 PURPOSE:
	Create the single image menu widget

 CATEGORY:
	CP display

 CALLING SEQUENCE:
	CPONE, GROUP_LEADER=GROUP

 CALLED BY:
	CP.PRO

 CALLS TO:
	ACKNOWLEDGE, XPDMENU, CPONE_EV (via XMANAGER)

 INPUTS:
	GROUP :  The widget ID of the parent widget.
	also, values in commons

 OPTIONAL INPUTS:
	none

 OUTPUTS:
	none explicit, only through commons

 OPTIONAL OUTPUTS:
	none

 CALLS: ***
	CPCOMPOSITE, CPCURSOR, CPDISPLAY, CPGET_R_T, CPONE_EV, CPSCANS, CPSUNCEN, CPSUNCEN_EV
	CPTVCOPY, CPZOOM, PSPLOT [1], PSPLOT [2], XLOADCT [1], XLOADCT [2], XLOADCT [3]
	XMANAGER, XPALETTE, XPDMENU, XREGISTERED, acknowledge [1], acknowledge [2]
	acknowledge [3]
 CALLED BY:
	CP [2], CPONE_EV, CP_EVENT, cp [1]
 COMMON BLOCKS:
	CPONE_DIR	for widget ID for filename list(s)
	CPDISPFILES 	to pass current frame filename
	CPKEYWORDS 	for current options conditions
	CPLOGIC_ENVRON 	for location of data
	CPWIDGBASES 	for the widget IDs of parents and informational 

 SIDE EFFECTS:
	none

 RESTRICTIONS:
	none

 PROCEDURE:
	Create the single image menu widget and populate the list widgets
	with subdirectories of CP data.

 MODIFICATION HISTORY:
 	1991 - Elaine Einfalt (HSTX)
	Apr 93 - Removed the ready button requirement, file selection iniates 
		 processing and redisplay will do it again.


CPONE_EV $SSW/smm/cp/cpone.pro
[Previous] [Next]
=================================================================

 filename CPONE.PRO - includes CPONE_EV, CPONE

=================================================================


 NAME: 
	CPONE_EV

 PURPOSE:
	The event handler for single image menu widget.

 CATEGORY:
	CP diplay

 CALLING SEQUENCE:
	CPONE_EV, EV

 CALLED BY:
	CPONE (via XMANAGER)

 CALLS TO:
	CPTVCOPY, XLOADCT, XPALETTE, CPDISPLAY, CPCOMPOSITE

 INPUTS:
	EV: the event structure, variable depending on type of item clicked
	also, values in commons

 OPTIONAL INPUTS:
	none

 OUTPUTS:
	none explicit, only through commons

 OPTIONAL OUTPUTS:
	none

 CALLS: ***
	CPCOMPOSITE, CPCURSOR, CPDISPLAY, CPGET_R_T, CPONE, CPSCANS, CPSUNCEN, CPSUNCEN_EV
	CPTVCOPY, CPZOOM, PSPLOT [1], PSPLOT [2], XLOADCT [1], XLOADCT [2], XLOADCT [3]
	XMANAGER, XPALETTE, XPDMENU, XREGISTERED, acknowledge [1], acknowledge [2]
	acknowledge [3]
 CALLED BY:
	CPONE
 COMMON BLOCKS:
	COLORS 		to change R_CURR, G_CURR, B_CURR to desired table
	CPCOLORS 	to load CP color tables
	CPDISPFILES 	to pass current filename
	CPKEYWORDS 	for current options conditions
	CPLASTPASS	for file names used last pass
	CPONE_DIR	for widget ID for filename list(s)
	CPWIDGBASES 	for the widget IDs of informational widgets

 SIDE EFFECTS:
	Changes may be may to the current color table.

 RESTRICTIONS:
	none

 PROCEDURE:
	Process the events from the single image menu widget.  Continue 
	recieving events until "Ready" is clicked, thus calling CPDISPLAY
	to output image. Or until "Cancel" is click, returning control to 
	the main options menu.

 MODIFICATION HISTORY:
	1991 - Elaine Einfalt (HSTX)
	Feb 94 - Einfalt - added composite and zoom features


CPSCAN $SSW/smm/cp/cpscans.pro
[Previous] [Next]

 NAME: 
	CPSCAN


 PURPOSE:
	Plot a radial or azmuthal scan.


 CATEGORY:
	CP display


 CALLING SEQUENCE:
 	CPSCANS, RULECONDITION=RULECONDITION, ONERSUN=ONERSUN, $
	         RCUR=RCUR, TCLICK=TCLICK, XCENTER=XCENTER, YCENTER=YCENTER, $
	         ROLL=ROLL, MULTI_PLOT=MULTI_PLOT, SIN_MOV=SIN_MOV, $
	         RADIALMAX=RADIALMAX, LINECOL=LINECOL


 CALLED BY:
	CPCURSOR


 CALLS TO:
	WINUP

 INPUTS:
	RULECONDITION : 3 means plot radial scan
			4 means plot azmuthal scan
	ONERSUN : the sun's radius in pixels
	RCUR 	: the radius of click in pixels
	TCLICK  : the theta of click in radians
	XCENTER : the x-axis coordinate of sun center
	YCENTER : the y-axis coordinate of sun center
	ROLL    : solar north in degrees from "+x" axis
	MULTI_PLOT : the current plot number
	SIN_MOV  : 0 means current display mode is for single images
	           1 means current display mode is for movies
	RADIALMAX : the largest radial extent for this image
	LINECOL	: color table index used for plot
	

 OPTIONAL INPUTS:
	none

 OUTPUTS:
       none explicit, only through commons

 OPTIONAL OUTPUTS:
	none

 CALLS: ***
	CPSCANS
 COMMON BLOCKS:
	CPLASTPASS    to assing value to scan arrays
	CPWIDGBASES   for the widget IDs of the informational windows

 SIDE EFFECTS:
	none

 RESTRICTIONS:
	none

 PROCEDURE:
	Draw radial or azmuthal line on image and save underlying values.

 MODIFICATION HISTORY:
	APR 93 - Elaine Einfalt (HSTX)


CPSUNCEN $SSW/smm/cp/cpsuncen.pro
[Previous] [Next]

 NAME: 
	CPSUNCEN

 PURPOSE:
	Draw solar disk, solar north, and radial grid, as requested by user.

 CATEGORY:
	CP display

 CALLING SEQUENCE:
	CPSUNCEN, IMSIZ=IMSIZ, HK=HK,  DONORTH=DONORTH, DODISK=DODISK, $
		DORADII=DORADII, DORADIAL=DORADIAL, COLO=COLO, $
	  	RULETIMES=RULETIMES, RULECONDITION=RULECONDITION, $
		SIN_MOV=SIN_MOV, NORM_DIFF=NORM_DIFF, $
		XPOS=XPOS, YPOS=YPOS, X_SIZ=X_SIZ, Y_SIZ=Y_SIZ, HOUSEKP=HOUSEKP

 CALLED BY:
 	CPDISPLAY, CPMOVIE 

 CALLS TO:
	CPCURSOR, CPGET_R_T

 INPUTS:
	DATA  : the image array
	IMSIZ : the size of the CP image in pixels
	HK    : Array of size (224 x N) where N is 1 for single images
               and 2 for difference images. Contains the housekeeping
               information for the current image(s)
	DONORTH : 0 means don't draw solar north
		  1 means do draw solar north on image
	DODISK  : 0 means don't draw solar disk
		  1 means do draw solar disk
	DORADII : 0 means don't draw radius lines
		  1 means do draw radius lines
	DORADIAL : 0 means don't draw radial lines
		   1 means do draw radial lines
	COLO  : -1 means no hard copy allowed
		 0 means hard copy device is B/W
		 1 means hard copy device is color
	RULETIMES : 0 means don't do pick any R/theta
		    1 means pick 1 R/theta
		    2 means pick multiple R/theta
		    3 means enter R/theta
		    4 means use r/theta already in memory
	RULECONDITION : 0 means draw ruler s/c thru R/theta
			1 means mark R/theta click w/ circle
			2 means don't draw ruler or mark
			3 means plot radial scan
			4 means plot azmuthal scan
	SIN_MOV  : 0 means current display mode is for single images
	           1 means current display mode is for movies
	NORM_DIFF : 0 means do a normal image
                   1 means do a difference image
	XPOS  : X direction screen coordinate (device pixels), to place window
	YPOS  : Y direction screen coordinate (device pixels), to place window
	X_SIZ : Image X size
	Y_SIZ : Image Y size 
	HOUSEKP : X direction size reserved for house keeping info.

 OPTIONAL INPUTS:
	none

 OUTPUTS:
	none explicit, only through commons

 OPTIONAL OUTPUTS:
	none

 CALLS: ***
	CPCURSOR, CPGET_R_T, CPSCANS, CPSUNCEN_EV, CPTVCOPY, PSPLOT [1], PSPLOT [2], XMANAGER
 CALLED BY:
	CPCOMPOSITE, CPCURSOR, CPDIFF, CPDISPLAY, CPGET_R_T, CPMOVIE, CPMOVIE_DO, CPMOVIE_EV
	CPONE, CPONE_EV, CPSUNCEN_EV, CPTV, CPTVCOPY
 COMMON BLOCKS:
	none

 SIDE EFFECTS:
	none

 RESTRICTIONS:
	none

 PROCEDURE:
	Convert solar and CP parameters for display over an already existing
	CP image.  And solar disk, solar north, and radial grid, as 
	requested by user.

 MODIFICATION HISTORY:
	1991 - Elaine Einfalt (HSTX)
	Mar 93 - removed initial request for user to input R and theta,
		 first requests are now in CPSUNCEN.PRO.  Removed the now 
		 unneeded common blocks CPWIDGBASES.COMMON and CPUSERINP.COMMON
		 and the now obsolete CPRULE.COMMON.
	Apr 93 - modified uses of colors. Remove passing of savpcolor


CPSUNCEN_EV $SSW/smm/cp/cpsuncen.pro
[Previous] [Next]

 NAME: 
	CPSUNCEN_EV 

 PURPOSE :
	The event handler for manual R and Theta input widget

 CATEGORY:
	CP display

 CALLING SEQUENCE:
	CPSUNCEN_EV, EV

 CALLED BY:
	CPGET_R_T (via XMANAGER)

 CALLS TO:
	none

 INPUTS:
	EV: the event structure, variable depending on type of item selected
	also, values in commons

 OPTIONAL INPUTS:
	none

 OUTPUTS:
	none explicit, only through commons

 OPTIONAL OUTPUTS:
	none

 CALLS: ***
	CPCURSOR, CPGET_R_T, CPSCANS, CPSUNCEN, CPTVCOPY, PSPLOT [1], PSPLOT [2], XMANAGER
 CALLED BY:
	CPCURSOR, CPGET_R_T, CPONE, CPONE_EV, CPSUNCEN, CPTVCOPY
 COMMON BLOCKS:
	CPUSERINP	for passing xcur and ycur
	CPGET_R_T   	widget IDs for R/Theta manual input and input status
	CPWIDGBASES 	for the widget IDs of informational widgets
	
 SIDE EFFECTS:
	none

 RESTRICTIONS:
	none

 PROCEDURE:
	Process events representing user input of R and Theta until the 
	buttons "Ready" or "Cancel" are clicked. At that point control is
	passed to CPCURSOR or back to calling routine.

 MODIFICATION HISTORY:
	1991 - Elaine Einfalt (HSTX)
	Mar 93 - removed call to CPCURSOR
		 added output of users last enter R and theta to widget


CPTV $SSW/smm/cp/cpdisplay.pro
[Previous] [Next]
===========================================================================

 file CPDISPLAY.PRO -- includes routines CPTV, CPDIFF, CPDISPLAY

===========================================================================


 NAME:
	CPTV

 PURPOSE:
 	Send a single (not movie) image, housekeeping info and 
	requested drawing option output to screen or printer.

 CATEGORY:  
	CP display

 CALLING SEQUENCE:
	CPTV, DATA=DATA, HK=HK, XPOS=XPOS, YPOS=YPOS, X_SIZ=X_SIZ, 
		Y_SIZ=Y_SIZ, XWINSIZ=XWINSIZ, YWINSIZ=YWINSIZ, COLO=COLO, $
		IMSIZ=IMSIZ, DONORTH=DONORTH, DODISK=DODISK, $
		DORADII=DORADII, DORADIAL=DORADIAL, HOUSEKP=HOUSEKP, $
		RULETIMES=RULETIMES, RULECONDITION=RULECONDITION, $
		SIN_MOV=SIN_MOV, NORM_DIFF=NORM_DIFF, PROCESSED=PROCESSED, $
		FILENAME=FILENAME, DIFFNAME1=DIFFNAME1, DIFFNAME2=DIFFNAME2, $
		SAVEME=SAVEME, WMOVIE=W, NFILES=NFILES

 CALLED BY:
	CPDISPLAY

 CALLS TO:  
	CPHOUSE, CPSUNCEN, PSPLOT, RESPOND_WIDG
         
 INPUTS:
	DATA    : Byte array of size equal to CP image.
	HK	: Array of size (224 x N) where N is 1 for single images
		  and 2 for difference images. Contains the housekeeping
		  information for the current image(s)
	XPOS  : X direction screen coordinate (device pixels), to place window
	YPOS  : Y direction screen coordinate (device pixels), to place window
	X_SIZ : Image X size
	Y_SIZ : Image Y size
	XWINSIZ :  X direction width of window w/ housekeeping
	YWINSIZ :  Y direction width of window 
	COLO  : -1 means no hard copy allowed
		 0 means hard copy device is B/W
		 1 means hard copy device is color
	IMSIZ : Size of one dimension of CP image, CP images are square.  
	DONORTH : 0 means don't draw solar north
		  1 means do draw solar north on image
	DODISK  : 0 means don't draw solar disk
		  1 means do draw solar disk
	DORADII : 0 means don't draw radius lines
		  1 means do draw radius lines
	DORADIAL : 0 means don't draw radial lines
		   1 means do draw radial lines
	HOUSEKP : X direction size reserved for house keeping information
	RULETIMES : 0 means don't do pick any R/theta
		    1 means pick 1 R/theta
		    2 means pick multiple R/theta
		    3 means enter R/theta
		    4 means use r/theta already in memory
	RULECONDITION : 0 means draw ruler s/c thru R/theta
			1 means mark R/theta click w/ circle
			2 means don't draw ruler or mark
	SIN_MOV  : 0 means current display mode is for single images
	           1 means current display mode is for movies
	NORM_DIFF : 0 means do a normal image
                   1 means do a difference image
	PROCESSED : for movies a number indicating the current movie frame
	FILENAME  : string filename normal images	
	DIFFNAME1 : string filename for base image 
	DIFFNAME2 : string filename for subtraction image 
	SAVEME    : for movies 0 means don't save movie to a file
			       1 means do save movie to a file
	W 	: associated record array for file output
	NFILES  : for movies the number of frames in movie

 OPTIONAL INPUTS: 
	none

 OUTPUTS:
	PROCESSED : for movies a number indicating the next movie frame

 OPTIONAL OUTPUTS: 
	none

 CALLS: ***
	CPDIFF, CPDISK, CPDISPLAY, CPHOUSE, CPSUNCEN, PSPLOT [1], PSPLOT [2], RESPOND_WIDG
	WINUP [5], XINTERANIMATE, winup [1], winup [2], winup [3], winup [4]
 CALLED BY:
	CPDIFF, CPDISPLAY, CPMOVIE, CPMOVIE_DO, CPMOVIE_EV
 COMMON BLOCKS:
	CPLASTPASS  for plot scan values 
	CPNEW_WINDOW  for parameters relating to a new window
	CPWIDGBASES for the widget IDs of the informational windows

 SIDE EFFECTS:
	If hardcopy is set, creates postscript fiiles.
	If SAVEME is set then creates a file containing the images and
	housekeeping information of a movie.
	If doing radial or azmuthal scans, a window is created.

 RESTRICTIONS: 
	none

 PROCEDURE:  
	Output image to selected device and call CPSUNCEN to draw line options.
	If doing radial or azmuthal scans, they are plotted now.
	For movies to be saved write necessary arrays to an already opened file.

 MODIFICATION HISTORY:
	1991 - Elaine Einfalt (HSTX)
       Oct 1993 - replaced call to cpinteranimate with XINTERANIMATE


CPTVCOPY $SSW/smm/cp/cpsuncen.pro
[Previous] [Next]
============================================================================

 file CPSUNCEN.PRO - includes CPTVCOPY, CPCURSOR, CPGET_R_T,
			       CPSUNCEN_EV, CPSUNCEN
============================================================================


 NAME: 
	CPTVCOPY

 PURPOSE:
	Output current window to selected printer

 CATEGORY:
	CP display

 CALLING SEQUENCE:
	CPTVCOPY, COLO=COLO, NORM_DIFF=NORM_DIFF

 CALLED BY:
	CPONE

 CALLS TO:
	PSPLOT

 INPUTS:
	COLO : -1 means no hard copy allowed
		0 means hard copy device is B/W
		1 means hard copy device is color
	NORM_DIFF :  0 means do a normal image
                    1 means do a difference image

 OPTIONAL INPUTS:
	none

 OUTPUTS:
	none

 OPTIONAL OUTPUTS:
	none

 CALLS: ***
	CPCURSOR, CPGET_R_T, CPSCANS, CPSUNCEN, CPSUNCEN_EV, PSPLOT [1], PSPLOT [2], XMANAGER
 CALLED BY:
	CPCURSOR, CPGET_R_T, CPONE, CPONE_EV, CPSUNCEN, CPSUNCEN_EV
 COMMON BLOCKS:
	CPWIDGBASES for the widget IDs of the informational windows.

 SIDE EFFECTS: 
	Prints a file.

 RESTRICTIONS:
	none

 PROCEDURE:
	Read (TVRD) a window into an array and print it to the selected device.

 MODIFICATION HISTORY:
 	1991 - Elaine Einfalt (HSTX)


CPZOOM $SSW/smm/cp/cpzoom.pro
[Previous] [Next]

 NAME: 
	CPZOOM

 PURPOSE:
	Create a widget with two draw windows.  A larger window for normal
	size image and smaller window for zoomed image.

 CATEGORY:
	Any image display

 CALLING SEQUENCE:
	CPZOOM, IMAGE, [NORM_SIZE=NORM_SIZE, MAG_SIZE=MAG_SIZE, $
		   TITLE=TITLE, ERASE=ERASE, INTERP=INTERP, GROUP=GROUP]

 CALLED BY:


 CALLS TO:
	CPZOOM_EV   through the XMANAGER

 INPUTS:
       IMAGE		The 2-D array containing the data values

 OPTIONAL INPUTS:
	NORM_SIZE	2 element vector giving the suggested size for the
			   normal image window.  (Widgets may ignore you.)
			   The image array is allowed to be larger than this 
			   window.  By default, the window size will be the
			   size of the image.
	MAG_SIZE	2 element vector giving the suggested size for the 
			   scrolling zoom window, in device units. (Widgets
			   may ignore you.) By default, the window size will
			   be the size 3/4ths of the image.
	TITLE		string (or string array) to be the zoom interface 
			   title (only the first element) and the text printed 
			   with hardcopies.
	ERASE		0 means don't erase betw. scrolls (edges are messy)
			1 means erase betw. scrolls (mag win blinks at you)
			   Defaults to 0.
	INTERP		0 mean pixel replication, 1 means bilinear interp.
			   Defaults to 0.
	GROUP		The widget ID of a parent widget

 OUTPUTS:
       none explicit only through widget's base set_uvalue

 OPTIONAL OUTPUTS:
	none

 CALLS: ***
	CONGRID [1], CONGRID [2], CONGRID [3], CPZOOMIT, CPZOOM_EV, PSPLOT [1], PSPLOT [2]
	XMANAGER, XPDMENU, ZOOMPRNT
 CALLED BY:
	CPONE, CPONE_EV, CPZOOMIT, CPZOOM_EV, ZOOMPRNT
 COMMON BLOCKS:
	COMMON ZOOMMAG, NORMIMG, MAGIMG		; original and mag image 

 SIDE EFFECTS:
	Creates two windows.  

 RESTRICTIONS:
	Widgets are required.

 PROCEDURE:
	Create a widget interface with 2 draw windows and control buttons.

 EXAMPLE:
	cpzoom, bindgen(512,512), norm_size=[400,400], mag_size=[300,300], $
		   title='Scrolling Zoom', erase=0, interp=1
 
 MODIFICATION HISTORY:


CPZOOM_EV $SSW/smm/cp/cpzoom.pro
[Previous] [Next]

 NAME: 
	CPZOOM_EV

 PURPOSE:
	Handles events from the zoom widget interface

 CATEGORY:
	widget display

 CALLING SEQUENCE:
	xmanager, 'CPZOOM', base, event_handler='zoom_ev', group=group

 CALLED BY:
	CPZOOM    through the XMANAGER

 CALLS TO:
	none

 INPUTS:
       By way of a structured stored in the UVALUE of the main base. 
	zoom = {zoomit, $
		erase:erase,    $		; erase between mag scrolls
		fact:1,		$		; zoom by this much
		interp:interp,  $		; bilinear interp or not
		last_x:last_x, 	$		; remember last cursor place
		last_y:last_y, 	$		; remember last cursor place
		nx:siz(1),	$		; original image X size
		ny:siz(2),	$		; original image Y size
		done:1,		$		; moving zoom mode on or off
		draw1:draw1, $			; index of normal window
		draw2:draw2, $			; index of magni. window
               xcoor_id:xcoor_id, $		; widget ID of X pos. label
               ycoor_id:ycoor_id, $		; widget ID of Y pos. label
		mag_lab_1:mag_lab_1, $ 		; widget ID of mag. win. label
		mag_lab_2:mag_lab_2} 		; widget ID of mag. win. label

 OPTIONAL INPUTS:
	none

 OUTPUTS:
       none 

 OPTIONAL OUTPUTS:
	none

 CALLS: ***
	CONGRID [1], CONGRID [2], CONGRID [3], CPZOOM, CPZOOMIT, PSPLOT [1], PSPLOT [2]
	XMANAGER, XPDMENU, ZOOMPRNT
 CALLED BY:
	CPZOOM, CPZOOMIT, ZOOMPRNT
 COMMON BLOCKS:
	COMMON ZOOMMAG, NORMIMG, MAGIMG		; original and mag image 

 SIDE EFFECTS:
	none

 RESTRICTIONS:
	none

 PROCEDURE:
	Process events from the widget_zoom interface and manipulate the 
	magnification image accordingly.

 MODIFICATION HISTORY:


CPZOOMIT $SSW/smm/cp/cpzoom.pro
[Previous] [Next]
 NAME:	
	CPZOOMIT

 PURPOSE:
	Display part of an image (or graphics) from the current window
	enlarged in another window, which is a preexisting draw widget.

	The cursor is used to mark the center of the zoom.

 CATEGORY:
	Image display.

 CALLING SEQUENCE:
	CPZOOMIT, ZOOM

 INPUTS:
       By way of a structured stored in the UVALUE of the main base. 
	zoom = {zoomit, $
		erase:erase, $			; erase between mag scrolls
		fact:1,		$		; zoom by this much
		interp:interp,  $		; bilinear interp or not
		last_x:last_x, 	$		; remember last cursor place
		last_y:last_y, 	$		; remember last cursor place
		nx:siz(1),	$		; original image X size
		ny:siz(2),	$		; original image Y size
		done:1,		$		; moving zoom mode on or off
		draw1:draw1, $			; index of normal window
		draw2:draw2, $			; index of magni. window
               xcoor_id:xcoor_id, $		; widget ID of X pos. label
               ycoor_id:ycoor_id, $		; widget ID of Y pos. label
		mag_lab_1:mag_lab_1, $ 		; widget ID of mag. win. label
		mag_lab_2:mag_lab_2} 		; widget ID of mag. win. label

 KEYWORDS:

 OUTPUTS:
	No explicit outputs.

 CALLS: ***
	CONGRID [1], CONGRID [2], CONGRID [3], CPZOOM, CPZOOM_EV, PSPLOT [1], PSPLOT [2]
	XMANAGER, XPDMENU, ZOOMPRNT
 CALLED BY:
	CPZOOM, CPZOOM_EV, ZOOMPRNT
 COMMON BLOCKS:
	COMMON ZOOMMAG, NORMIMG, MAGIMG		; original image and mag 

 SIDE EFFECTS:
	None.

 RESTRICTIONS:
	ZOOM only works with color systems.

 PROCEDURE:
	Straightforward.
 
 MODIFICATION HISTORY:
	?
       William Thompson, March 1992, added common block ZOOM_WINDOW
                                     and KEEP keyword.
	D.M. fecit, 2 juillet, 1992. Removed common block and replaced
				it with WINDOW keyword. Entire routine
				cribbed from userlib/zoom.pro.
	Feb 94 - Elaine Einfalt (HSTX) - Mod. to run as a draw widget support
				  	 program


CROSSBAR [2] $SSW/smm/gen/idl/graphics/crossbar.pro
[Previous] [Next]
 NAME: 
	CROSSBAR

 PURPOSE: 
	Overplot a crossbar for the procedures point and zoom_coor.

 CATEGORY:
       HXRBS.

 CALLING SEQUENCE:
       CROSSBAR,X,Y

 INPUTS: 
	X:	x argument where crossbar is to be plotted.
	Y:	y argument where crossbar is to be plotted.

 OUTPUTS:
       Crossbar overplotted on graphics window.

 KEYWORDS:
       None.

 CALLED BY:
	MARK_REGION [1], MARK_REGION [2], PEAK_MARK, ZOOM_COOR [1], zoom_coor [2]
 RESTRICTIONS:
	To get a cross bar of equal height and width requires converting 
	the coordinates form data to normalized values make a 2 element 
	array for both x + and - offset and y + and - offset. Convert these 
	2 arrays back to data coordinate values.

 MODIFICATION HISTORY:
       Written by:	Shelby Kennard


CROSSCORR [1] $SSW/smm/gen/idl/math/crosscorr.pro
[Previous] [Next]
 Project     : SDAC
                   
 Name        : CROSSCORR 
               
 Purpose     : This procedure computes a crosscorrelation function between two
		time series.
               
 Category    : MATH
               
 Explanation : 
		using the IDL function R=CORRELATE(xx,yy)
		R=TOTAL(xx*yy)/SQRT(TOTAL(xx^2)*TOTAL(yy^2))
		r0 and r1 are two arrays of equal length 
               
 Use         : CROSSCORR, R0, R1, CC, II, NPIX
		crosscorrelation function CC(R0,R1) with time delay -NPIX<II<NPIX

 Inputs      : R0 - first time series
		R1 - second time series, same length as R0, same time bins
		NPIX - half-width of crosscorrelation interval, in bin units of R0               
 Opt. Inputs : None
               
 Outputs     : CC - Crosscorrelation function vs lag.
		II - lag in units of bins of R0 and R1
 Opt. Outputs: None
               
 Keywords    : 

 Calls       : ***
	CONGRID [1], CONGRID [2], CONGRID [3], LOADCT, RINTER [1], RINTER [2]
 CALLED BY:
	RINTER [2]
 Common      : None
               
 Restrictions: 
               
 Side effects: None.
               
 Prev. Hist  :
		created by M.Aschwanden, March 1995
 Modified    : 
		Version 2, RAS, documented added to SDAC tree 6-jan-1997
		Version 3, RAS, fixed bugs, 26-mar-1997


CRYSTAL_RES $SSW/smm/hxrbs/idl/crystal_res.pro
[Previous] [Next]

 NAME:	
       CRYSTAL_RES

 PURPOSE:
	Function to compute the crystal resolution for HXRBS on a given day 
	from a table of five days/resolutions.

 CATEGORY:
	HXRBS

 CALLING SEQUENCE:
	Result = CRYSTAL_RES(Ut)

 INPUTS:
       Ut:	Time, as accepted by ANYTIM.

 OUTPUTS:
       Result:	Crystal resolution

 CALLS: ***
	INTERPOL, anytim [1], anytim [2], anytim [3], anytim [4], anytim [5]
 MODIFICATION HISTORY:
 	Richard Schwartz  Aug 24, 94
	Mod. 05/06/96 by RCJ. Added documentation.