DAO_VALUE $SSW/gen/idl_libs/astron/idlphot/dao_value.pro
[Previous] [Next]
 NAME:
	DAO_VALUE
 PURPOSE:
	Returns the value of a DAOPHOT point-spread function at a set of points.
 EXPLANATION:
	The value of the point-spread function is the sum of a
	two-dimensional integral under a bivariate Gaussian function, and 
	a value obtained by interpolation in a look-up table.  DAO_VALUE will
	optionally compute the derivatives wrt X and Y

 CALLING SEQUENCE:
	Result = DAO_VALUE( xx, yy, gauss, psf, [ dvdx, dvdy ] )

 INPUTS:
	XX,YY   - the real coordinates of the desired point relative 
		to the centroid of the point-spread function.
	GAUSS  -  5 element vector describing the bivariate Gaussian
	GAUSS(0)- the peak height of the best-fitting Gaussian profile.
	GAUSS(1,2) - x and y offsets from the centroid of the point-spread 
		function to the center of the best-fitting Gaussian.
	GAUSS(3,4) - the x and y sigmas of the best-fitting Gaussian.
	PSF  -  a NPSF by NPSF array containing the look-up table.

 OUTPUTS:
    RESULT - the computed value of the point-spread function at
             a position XX, YY relative to its centroid (which 
             coincides with the center of the central pixel of the
             look-up table).

 OPTIONAL OUTPUTS:
       DVDX,DVDY - the first derivatives of the composite point-spread
             function with respect to x and y.

 NOTES
 	although the arguments XX,YY of the function DAO_VALUE
	are relative to the centroid of the PSF, the function RINTER which
	DAO_VALUE calls requires coordinates relative to the corner of the 
	array (see code).

 PROCEDURES CALLED:
	DAOERF, RINTER()
 REVISON HISTORY:
	Adapted to IDL by B. Pfarr, STX, 11/17/87 from 1986 STSDAS version
	of DAOPHOT
	Converted to IDL V5.0   W. Landsman   September 1997
 CALLS:
 CALLED BY
	NSTAR, PKFIT [1], PKFIT [2], RDPSF, SUBSTAR


DAOERF $SSW/gen/idl_libs/astron/idlphot/daoerf.pro
[Previous] [Next]
 NAME:
	DAOERF
 PURPOSE:         
	Calulates the intensity, and derivatives, of a 2-d Gaussian PSF
 EXPLANATION:
	Corrects for the finite size of a pixel by integrating the Gaussian
	over the size of the pixel.    Used in the IDL-DAOPHOT sequence.   

 CALLING SEQUENCE:
	DAOERF, XIN, YIN, A, F, [ PDER ] 

 INPUTS:
	XIN - input scalar, vector or array, giving X coordinate values
	YIN - input scalar, vector or array, giving Y coordinate values, must 
		have same number of elements as XIN.
	A - 5 element parameter array describing the Gaussian
		A(0) - peak intensity
		A(1) - X position of peak intensity (centroid)
		A(2) - Y position of peak intensity (centroid)
		A(3) - X sigma of the gaussian (=FWHM/2.345)         
		A(4) - Y sigma of gaussian

 OUTPUTS:
	F - array containing value of the function at each (XIN,YIN) 
	    The number of output elements in F and PDER is identical with
		the number of elements in X and Y

 OPTIONAL OUTPUTS:
	PDER - 2 dimensional array of size (NPTS,5) giving the analytic
		derivative at each value of F with respect to each parameter A.

 REVISION HISTORY:
	Written: W. Landsman                October, 1987
	Converted to IDL V5.0   W. Landsman   September 1997
 CALLED BY
	DAO_VALUE, GETPSF


darklimb_correct $SSW/gen/idl/solar/darklimb_correct.pro
[Previous] [Next]
       NAME: darklimb_correct

       PURPOSE: Calculate limb darkening function for specified wavelength
                or wavelength range and use to remove limb darkening effects
                from input image.

       CALLING SEQUENCE:
               darklimb_correct, imgin, imgout, lambda=lambda
               darklimb_correct, imgin, imgout, lambda=lambda, limbxyr=[x,y,r]
               darklimb_correct,imgin,imgout, lambda=lambda,bandpass=bandpass

       INPUT:
               imgin - img to be corrected 
		lambda - wavelength of image in Angstroms

       OUTPUT:
		imgout - corrected image

       OPTIONAL INPUT:
               limbxyr  - limb centroid, 3 element array [x,y,r] 
                          (if not passed,it will attempt to find it) 
              	bandpass - input bandpass if image is integrated over a range
   			   of wavelengths.  If this is set the program takes
                          averages the limb darkening coefficients over a
		 	   wavelength range: lambda +/- bandpass/2

       OPTIONAL OUTPUT:
               limbfilt - an image of the limb darkening function

       NOTES and WARNINGS:
		The limb darkening function uses a 5th order polynomial fitting
		to the limb darkening constants obtained from Astrophysical 
		Quantities.  

		!!! THIS ONLY WORKS IN THE WAVELENGTH RANGE 4000<LAMBDA<15000 ANGSTROMS. !!!

	ROUTINES CALLED:
		DARKLIMB_U, DARKLIMB_V, DARKLIMB_R
 CALLS: ***
	DARKLIMB_R, DARKLIMB_U, DARKLIMB_V, DIST_CIRCLE, TARGET [1], target [2]
 CALLED BY:
	MDI__DEFINE, wrt_sci160k_img
       HISTORY:
              14-oct-96 - D. Alexander, Written w/SLF
               5-feb-97 - S.L.Freeland - Changed names / SSW compatibility
                                         Allow imgout via positional param
                                         Missing Lambda protection
                                        


DAT2GIF $SSW/gen/idl/image/dat2gif.pro
[Previous] [Next]
 Project     : SOHO-CDS

 Name        : DAT2GIF

 Purpose     : Write 2-d data to GIF file

 Category    : imaging

 Explanation : 

 Syntax      : IDL> dat2gif,data,file

 CALLS: ***
	CONGRID [1], CONGRID [2], CONGRID [3], DATATYPE [1], DATATYPE [2], DATATYPE [3]
	EXIST, LOADCT, SELECT_WINDOWS, SSW_WRITE_GIF
 Examples    :

 Inputs      : DATA = 2-d data
               FILE = output file

 Opt. Inputs : None

 Outputs     : None

 Opt. Outputs: None

 Keywords    : XSIZE,YSIZE = new sizes to CONGRID images
               INTERP= smooth images

 History     : Written 22 March 1997, D. Zarro, ARC/GSFC
               Version 2, 13-Aug-2003, William Thompson
                       Use SSW_WRITE_GIF instead of WRITE_GIF

 Contact     : dzarro@solar.stanford.edu


data2files $SSW/gen/idl/http/data2files.pro
[Previous] [Next]
   Name: data2files

   Purpose: convert data (2D or 3D) -> file or file sequence

   Input Parameters:
      data - 2D or 3D data
      r,g,b - optional color table

   Keyword Parameters:
      filenames - optional output file names
      times     - image times in any ssw format - used in place of filenames
                  names will be: [PREFIX]yyyymmdd_hhmmss.[EXTENSION]
      prefix    - if set and TIMES supplie, prepended to output file name
                   [PREFIX]yyyymmdd_hhmmss.[EXTENSION]
      autoname  - (switch) if set, just name files:
                  d2f001.[EXTENSION], d2f002.[EXTENSION]...d2fnnn.[EXTENSION]

      OTHERS - see zbuff2file for others, including ,/gif,/jpeg,/tiff,/quality

   Calling Sequence:
      IDL> data2files, data [,r,g,b] [,/gif] [/jpeg] [/tiff]

   Method:
      Call zbuff2file for each image in <data>. Uses keyword inheritance

 CALLED BY:
	EIT_MKMOVIE, image2movie, mk_lasteit_movie
   History:
      Circa 1-Jan-1996 - single front end for data -> common WWW formats
      3-June-1998 - S.L.Freeland - made OUTDIR explicit
      11-April-2000 - S.L.Freeland - endif->endcase (required by 5.3)

 CALLS: ***
	BOX_MESSAGE, BREAK_FILE [1], BREAK_FILE [2], BREAK_FILE [3], CONCAT_DIR [1]
	CONCAT_DIR [2], CONCAT_DIR [3], LOADCT, WDEF [1], WDEF [2], anytim [1], anytim [2]
	anytim [3], anytim [4], anytim [5], break_file [4], concat_dir [4], data_chk [1]
	data_chk [2], str_replace [1], str_replace [2], zbuff2file [1], zbuff2file [2]
   Restrictions:
     You need to supply either FILNAMES or TIMES arrays
     Temporary version (for simple data -> image2movie interface)
     TODO - move rebinning, labeling, and rgb options to this routine
            in addition to image2movie.


data_chk [1] $SSW/gen/idl/util/data_chk.pro
[Previous] [Next]

   Purpose: checks input data for type, ndimension, etc
	     (uses IDL size function results)

   Keyword Parameters:
      type -   if set, return idl data type  from size function
		type		data type
		  0		 ???
		  1		 byte
		  2		 integer
		  3		 longword
		  4		 floating point
		  5		 double precision
		  6		 ???
		  7		 string
		  8		 structure
      ndimen - if set, return number dimensions (size(0))
      nimages - if set, return #images (1->2D, NI->3D, else 0)
      xsize - if set, return X size (size(data))(1)
      nx    - synonym for xsize
      ysize - if set, return Y size (size(data))(2)
      ny    - synonym for ysize
      string/struct/undefined - if set, return true if type matches 
      scalar, vector - if set, true if data of specified variety
            
   Calling Examples:
      if (data_chk(p1,/type) eq data_chk(p2,/type)) then...
      case data_chk(data,/type) of...
      if data_chk(data,/string,/scalar) then ...
      if data_chk(data,/string,/struct,/undef,/orr)
      case data_chk(maybe_cube,/nimages) of...

 CALLED BY:
	CALC_LOI_ROLL, CLEAN [1], CLEAN_GIF, CUM_SUM, DROT_XY, FILE_STAT [1], FILE_STAT [2]
	FIND_FID, FIX_OLD_ATT [1], FIX_OLD_ATT [2], GETV4TYPE, GET_MAP_PROP, GET_MAP_SUB
	GOES_TEK [1], GRS_EXTRACT, INDEX2OMAP, ISNUM, Load_Main [1], Load_Main [2], MK_24BIT
	MK_8BIT, MK_EIT_MAP, MK_MPEG, PIX2V4, PLOT_MAP
	PLOT_MAP2 WARNINGTEMPORARY FIX ONLY FOR 16 bit ZBuffer support
	READ_ANALIST, REBIN_FID, RESTORE_LOW8 [1], RESTORE_LOW8 [3], SOHO_XY, SSW_HOT_PIX
	STEPPER2 [1], STEPPER2 [2], STEPPER2_s1 [1], STEPPER2_s1 [2], SUB_MAP, TIFF2GIF
	TRACE_COPY, TRACE_PREP, V4OK, V4PRINT, V4XFORM, V4XS2SC, VALID_GIF, XPOPUP
	XYPLOT__DEFINE, ace_files, ada2str, align_cube_correl, align_label, anahead2struct
	arr_diff, cdrom_files [2], centroid, check_compile [1], check_compile [2]
	check_log [1], check_log [2], confac, configure_http, cosmic_stat, cube_edit
	daily_forecast [2], data2files, decode_gev, difference_movie, dir_since
	doc_summ [1], doc_summ [2], eit_catrd [3], eit_file2path, eit_files, eit_fill_cube
	eit_fulldisk, eit_fulldiskdb, eit_gt_corner, eit_gt_filter, eit_gt_wave
	eit_proton_summary, eitoversxt, esegment, event_movie [1], event_movie [2]
	evt_grid, extract_fids, fid2mo, file_purge_sizes, file_stat [3], files2data
	files_since [1], files_since [2], fitshead2struct, fl_goesplot [1]
	fl_goesplot [2], fl_goesplot [3], fl_suntoday [1], fl_suntoday [2]
	fl_suntoday [3], ftp_list_since, genx2html [1], genx2html [2], get_acedata
	get_bcs, get_correl_offsets, get_eit_info, get_gevloc_data, get_history, get_infox
	get_leak_image [1], get_leak_image [2], get_leak_image [3], get_newsoon
	get_solar_indices, get_ssc_best, get_utevent [1], get_utevent [2]
	get_ydbhelp [1], get_ydbhelp [2], go_batch [1], go_batch [2], go_ssw_batch
	go_sxt_sss2secondary, go_yo_prod_batch, goes_plot [1], goes_plot [2]
	goes_plot [3], goes_plot [4], goes_plot [5], goes_value2class, gt2exe [1]
	gt2exe [2], gt_tagval [1], gt_tagval [2], gt_yo_station, gtt_info, gtt_mnem
	html_basics, html_doc, html_form_addtime [1], html_form_addtime [2]
	html_form_addtime [3], html_get_files, html_highlight, html_linklist
	html_remove_template, http_names, hxt_impulsivness, idl_server_command
	idl_server_control, image2movie, is_bestnode [1], is_bestnode [2], is_member [1]
	is_member [2], keyword_db, killold [1], killold [2], lapalma_cat, lapalma_files
	last_lc, last_nelem, laststat [1], laststat [2], later, lcur_image, les_archive_info
	low_res, low_res_1d, low_res_2d, make_grid_sphere, make_mirror, map2index
	map_env2dir, mdi_files, mdi_write_genxcat, merge_genxcat, mk_formt_html [1]
	mk_formt_html [2], mk_formt_html [3], mk_lasteit_movie, mk_nar [1], mk_nar [2]
	mk_pix [1], mk_pix [2], mk_sff_pair [1], mk_sff_pair [2], mk_ssc [1], mk_ssc [2]
	mk_ssc_batch [1], mk_ssc_batch [2], mk_sxh, mk_week_file [1], mk_week_file [2]
	mkthumb, mo_check, mo_patch, mreadfits, mreadfits_header, mreadfits_sxig12
	mreadfits_urls, mtcmd [1], mtcmd [2], multi_hda2hxi, mwritefits, mxf_decomp_data
	mxf_dset_map, mxf_read_data, mxfdset_map, netscape_control, normalize_cube
	password_info, plot_ace, plot_goesp, plot_gsn, pr_status [1], pr_status [2]
	pr_visible, prcols [1], prcols [2], prcols [3], pref_super, rd_sxg, rd_sxtgoes
	read_eits, read_genxcat, read_lapalma, read_soon, read_sooncheck, read_sxt
	read_trace, region_mark, reltime [1], reltime [2], rep_logenv, required_tags
	res_freq, restgenx, roll_xy, rotate_3d, safe_log10, save_idl_routines, savegenx
	search [1], search [2], search_obs, secchi_time2files, set_logenv [1]
	set_logenv [2], set_logvms, sfd_comp, show_pix [1], show_pix [2]
	show_pix_event [1], show_pix_event [2], show_pix_event [3], sobel_scale
	soon_search [1], soon_search [3], soon_search_www, soon_table, sooncat_cadence
	spartan_roll, special_movie, ssc_files [1], ssc_files [2], ssc_files [3]
	ssw_apkpbar, ssw_build_trace, ssw_check_contrib, ssw_colors, ssw_composite
	ssw_conflicts, ssw_contrib_info, ssw_contrib_monitor, ssw_ct2rgb
	ssw_expand_times, ssw_fill_cube, ssw_find_transit, ssw_findstuff2html
	ssw_findstuff_struct, ssw_flare_locator, ssw_fov_context, ssw_fs_maskdbase
	ssw_getapplet, ssw_getdst, ssw_imapcoord2html, ssw_install_explinkages
	ssw_javamovie, ssw_jsulr2data, ssw_jsurl2imagelist, ssw_move, ssw_nar2armurl
	ssw_packages, ssw_pos2zenith, ssw_post_query, ssw_required_path
	ssw_sec_aktxt2struct, ssw_set_instr, ssw_start_rpcserver, ssw_strfind
	ssw_strsplit, ssw_subimage, ssw_swmap_bestof, ssw_swmap_uniqinfo
	ssw_time2filelist, ssw_time2paths, ssw_track_demo, ssw_track_fov
	ssw_unspike_cube, ssw_upgrade [1], ssw_upgrade [2], ssw_upgrade_backup
	ssw_url2data, sswdb_files, sswdb_info, sswdb_upgrade, sswloc, sswstruct_fill [1]
	str2cols [1], str2cols [2], str2html_anchor, str_subset, str_taginfo
	str_tagval [1], str_tagval [2], strarrinsert, strcapitalize [1]
	strcapitalize [2], strjustify, strmids [1], strmids [2], strnocomment
	strpair2struct, strspecial [1], strspecial [2], strsplit, struct2fitshead
	struct2ms [1], struct2ms [2], struct2ssw, struct_where, sun_today [1]
	sun_today [2], sun_today [3], sxt2eit, sxt2file, sxt_cba2os1 [1], sxt_cba2os1 [2]
	sxt_deleak [1], sxt_deleak [2], sxt_dstreek, sxt_his_info [2], sxt_html, sxt_plan
	sxt_prep [1], sxt_prep [2], sxt_prep [3], sxt_sff_composite [1]
	sxt_sff_composite [2], sxt_ssc2file, sxt_ssc2sss, sxt_ssc_rationalize
	sxt_suture [1], sxt_suture [2], sxt_xsaa, table2struct, tace_time2level1
	thumbnail_table_html, time_window, timeavg [1], timeavg [2], timegrid
	tr_head_info, tr_wrt_fits_i1 [2], trace_bin_struct, trace_build_mosaic3
	trace_cat, trace_cat2cosmic, trace_comsmic_norm, trace_dph2struct [1]
	trace_files, trace_get_vignette, trace_index2macrofov, trace_jpeg_dbase
	trace_last_movie [1], trace_last_movie [3], trace_last_movie_queue
	trace_make_tma, trace_make_tmr [2], trace_make_vignette, trace_movie_context
	trace_movie_index [1], trace_movie_index [2], trace_movies_prioritize [1]
	trace_movies_prioritize [2], trace_prioritize_um, trace_request_summary
	trace_scale, trace_special_movie [1], trace_special_movie [2]
	trace_special_movie [3], trace_special_movie2, trace_struct2filename
	trace_sub2point, trace_success_file, trace_uniq_movies, trace_unspike_time
	trace_wave2point, trace_wavename2num, trace_write_genxcat, ucon_path
	update_history, url_encode, v4canon, weeks_in_year [1], weeks_in_year [2]
	write_genxcat, write_trace, write_trace_bin, wrt_str [1], wrt_str [2]
	wwwidl_server_check, xspr [1], xspr [2], xy_lwa, yo_file_check [1]
	yo_file_check [2], yo_index2path, yo_xda2legacy, yoh_orb_interp [1]
	yoh_orb_interp [2], yohkoh_legacy_files [1], yohkoh_legacy_files [2]
	yopos [1], yopos [2], ys_file_check [1], ys_file_check [2], zcheck_hdr, zintervals
	zmovie, zmovify, zstr2utc [1], zstr2utc [2]
   History:
      27-Apr-1993 (SLF)
      21-Mar-1994 (SLF) documentation header
      10-oct-1996 (SLF) add SCALAR (synonym for the historical mispell SCALER)
       2-oct-1997 (SLF) add NIMAGES
      15-nov-1997 (SLF) add XSIZE and YSIZE keyword and function
      20-oct-2002 (LWA) added list of data types to header
       2-jan-2007 (SLF) removed vestigal references to ORR (not supported)

   Restrictions:
      some keywords are mutually exclusive - for self-documenting code 
      and reduction of code duplicataion 
      ORR not supported (place holder never realized - you'll have to
      do your own 'ands' and 'ors' external (could write data_chks.pro
      driver with keyword inherit via _extra to This routine...)


data_compress [1] $SSW/gen/idl/genutil/data_compress.pro
[Previous] [Next]
NAME:
	data_compress

PURPOSE:
	Compress and decompress data using UNIX compress or gzip by
	writing a temporary file.
INPUT:
	data	  - uncompressed data (unless /DECOMP is set in which
		    case it is the compressed data)
 CALLS: ***
	CONCAT_DIR [1], CONCAT_DIR [2], CONCAT_DIR [3], FILE_STAT [1], FILE_STAT [2]
	GET_NBYTES, concat_dir [4], curdir [1], curdir [2], diskfree [1], diskfree [2]
	file_compress [1], file_compress [2], file_stat [3], file_uncompress [1]
	file_uncompress [2], get_logenv [1], get_logenv [2], rdwrt [1], rdwrt [2]
	rdwrt [3], write_access [1], write_access [2]
 CALLED BY:
	RD_SDA_DATA [1], RD_SDA_DATA [2], sav_sda [1], sav_sda [2], sav_sda [3]
OPTIONAL KEYWORD INPUT:
	decomp	  - If set, then the input is compressed data and decompression
		    is supposed to be performed.
       type_comp - Indicates type of compression.    1=>gzip, 2=>Unix Compress
          t_comp - indicates type of decompression.  1=>gzip, 2=>Unix Compress

METHOD:
	A file must be created in a temporary directory to be decompressed/
	compressed.  The following logic is used to figure out which 
	directory to use:
		1. If $DIR_GEN_DECOMP is defined and has enough space
		2. If $DIR_GBO_TEMP is defined and has enough space
		3. If $HOME has enough space
		4. The current default directory
		5. If /tmp has enough space
HISTORY:
	Written 7-Mar-95 by M.Morrison 
       t_comp, type_comp added 11-Dec-97 by PGS      


DATA_PATHS $SSW/gen/idl/fund_lib/yohkoh/data_paths.pro
[Previous] [Next]
 Project     : YOHKOH     
                   
 Name        : DATA_PATHS
               
 Purpose     : check for directories/subdirectories pointed to by
               environmentals named yd* where * is an integer (e.g. yd1)
               
 Category    : utility
               
 Explanation : Used by Yohkoh software such as YODAT and WBDA
               
 Syntax      : IDL> paths=data_paths()
    
 CALLED BY:
	BCS_24HR_PLOT [1], BCS_24HR_PLOT [3], BCS_CAT, BCS_COMPARE, BCS_CREATE_CAT
	BCS_FREE_DATA, FIND_CAL [1], FIND_CAL [2], FIND_SEU, GET_SUBARR2, HXT_AUTOIMG
	HXT_CAL_FIX [1], HXT_CAL_FIX [2], LASTSFD_DIFF, SEL_AR, SORT_FILES, WBDA [1]
	WBDA [2], bcs_unpack, fort2hxi [1], fort2hxi [2], go_hxt_hk_temps
	go_lasdisk golaserdisk, go_lasdisk2 golaserdisk, mk_mapfile [1]
	mk_mapfile [2], mk_sdm, new_dpath [1], new_dpath [2], rd_sxs_pha [1]
	rd_sxs_pha [2], rd_xda_same, search_file [1], search_file [2], stt_plot
	tim2file [1], tim2file [2]
 Examples    : 

 Inputs      : None.
               
 Opt. Inputs : SELECT = index to select 
               (e.g. path=data_paths(0) for first path element)
               
 Outputs     : paths = list of directories under yd*

 Opt. Outputs: None.
               
 Keywords    : RESET = nulls last search results
               QUIET = turn off messages

 CALLS: ***
	CHK_DIR [1], CHK_DIR [2], DATATYPE [1], DATATYPE [2], DATATYPE [3], DELVARX [1]
	DELVARX [2], DELVARX [3], DELVARX [4], ESPAWN, TRIM, UNIQ [1], UNIQ [2], UNIQ [3]
	delvarx [5], get_subdirs [1], get_subdirs [2], is_number [1], is_number [2]
	rd_tfile [1], rd_tfile [2]
 Common      : DATA_PATHS = stores last search results.
               
 Restrictions: None.
               
 Side effects: None.
               
 History     : 1-Dec-93, D. Zarro (ARC) - written (based on Yohkoh version)
               28-Dec-97, Zarro (SAC) - modified for SSW compatibility
               5-Jan-98, Zarro (SAC) - modified for SSW (again)

 Contact     : DZARRO@SOLAR.STANFORD.EDU


data_quality $SSW/gen/idl/util/data_quality.pro
[Previous] [Next]

   Name: data_quality

   Purpose: determine empirical data quality

   Input Parameters:
      images - 2D image or 3D image cube

   Output Parameters:
      function returns %GOOD OR Boolean (true=good)
                 floating vector w/length = #images
            -OR- boolean vector  w/length = #images if QUALITY_THRESH supplied

   Keyword Parameters:
      rows     - switch - if set, quality in terms of good rows      
      columns  - switch - if set, quality in terms of good columns  
      badvalue - user supplied value defining BAD (default is minimum(image))
      hist     - switch - if set, BAD value is highest frequency value
      minimum  - switch - if set, BAD value is minimum(image) [DEFAULT]
      maximum  - switch - if set, BAD value is maximum(image)

   Calling Sequence:
      quality=data_quality(images [,/row, /col, /min, /max, /hist, badval=nn])

   Calling Examples:
      quality=data_quality(cube)                 ; %pixels NE minimum(image)
      good=data_quality(cube, quality=90)        ; boolean quality GE 90
      quality=data_quality(cube, bad=0, /rows)   ; %rows with some data

 CALLED BY:
	eit_fulldisk, lasteit, quality_filter
   History:
       2-Oct-1996 - S.L.Freeland


data_sum2fits $SSW/gen/idl/fits/data_sum2fits.pro
[Previous] [Next]
   Name: data_sum2fits

   Purpose: add data summary fields to fits header (data not effected)

   Input Parameters:
      fitsfiles - list of FITS files to read & optionally update

   Keyword Parameters:
      satthresh - top cutoff level (ex: saturated pix level) - default=4090
      minthresh - low cutoff level (ex: missing data)        - default=0
      outfiles  - optional output file names (DEFAULT UPDATES INPUT FILE LIST)

   FITS FIELDS CALCULATED AND ADDED:
      IMG_AVG 	- Image Average
      STD_DEV  - Standard Deviation
      SAT_VAL  - hi cutoff level (ex: saturated pixels)
      SAT_PIX  - Number Pixels >= SAT_VAL
      MIN_VAL  - lo cutoff level (ex: missing data)
      MIN_PIX  - Number Pixels <= MIN_VAL

   Calling Sequence:
      data_sum2fits, fitsfiles [/img_avg, /std_dev, satthresh=NN, $
				    outfiles=outfiles
   
   History:
      3-Apr-1996 - S.L.Freeland

 CALLS: ***
	FILE_EXIST [2], FXADDPAR [1], FXADDPAR [2], READFITS [1], READFITS [2]
	READFITS [3], STDEV, WRITEFITS [1], WRITEFITS [2], file_exist [1], file_exist [3]
   Side Effects:
      if OUTFILES not specified, the input FITS files are updated


data_type [1] $SSW/gen/idl/genutil/data_type.pro
[Previous] [Next]
       NAME: data_type

       PURPOSE: Return the data type code from SIZE

       CALLING SEQUENCE: type=data_type(data)

 CALLED BY:
	CUT_IMG, READ_PS [1], READ_PS2, RESTORE_LOW8 [1], RESTORE_LOW8 [3], RFITS2 [1]
	RFITS2 [2], STEPPER [1], STEPPER [2], STEPPER [3], STEPPER [4], STEPPER [5]
	STEPPER2 [1], STEPPER2 [2], STEPPER_LP, cam_run_sum, ccd_hdr_info, check_dumps [1]
	check_ff_load, check_sci5k_trunc, command_laser, disp_sci160k [1]
	disp_sci160k [2], disp_sci5k, do_tr_reformat, dpc_img_summary
	exp_scale min_exp max_exp [1], focus_trace [1], focus_trace [2]
	get1hk_info [1], get1hk_info [2], get_gbo_pfi, get_linearity sig e_min e_max
	go_lasdisk2 golaserdisk, gtt_info, gtt_mnem, hkplot_info, in_fov, ip_que_dmpver
	iperr_sea, leak_sub [1], leak_sub [2], leak_sub [3], list_nrt_times, ltc
	mk_ascii_list, mk_dpc_image, mk_fits_head [1], mk_fits_head [2], mk_mdi_fits
	mk_mdi_iap, mk_obs_str, mnr_frm_fix, monitor_center [1], new_disp_sci5k [1]
	new_disp_sci5k [2], obs_summary, perf_vwbin, pfi_loc, plot_fem, plot_fft
	plot_img_cadence, plot_lcur [1], plot_lcur [2], plot_pzt_corr, plot_shutter_perf
	plott_bda, plott_hda, plott_wda, pr_gsn [1], pr_gsn [2], pr_mdihk_trans [1]
	pr_mdihk_trans [2], pr_therm_rs232, quick_hkplot [1], quick_hkplot [2], rd_fdss
	rd_hk [1], rd_hk [2], rd_pkt_head [1], rd_pkt_head [2], rd_rdb [1], rd_rdb [2]
	rd_sci5k, rd_station_plan, rd_therm_rs232, rd_trace_i0 [1], rd_trace_i0 [2]
	rd_week_file [2], read_ltc file, read_mdi, read_mdi16, read_trace, redo_disploi
	redo_mon_sci5k, seq_frame_info, seq_run_sum [1], seq_run_sum [2], sxpar2 [1]
	sxpar2 [2], sxt_prep [1], sxt_prep [2], sxt_prep [3], tfr_summary, tfr_summary2
	timeline, topsdb [1], topsdb [2], tr_build_img [1], tr_decode_head [1]
	tr_decode_head [2], tr_head_info, tr_summary_head, tr_wrt_fits
	tr_wrt_fits_i1 [1], tr_wrt_fits_i1 [2], trace_rd_jpeg, web_seq, weekid [2]
	wrt_fits [1], wrt_fits [2], wrt_fits_bin_exten [1], wrt_fits_bin_exten [2]
	wrt_sci160k_img, xanal_emi, xdisp_trace2, xdisp_trace3, xhkplot, xrd_trace
	xset_chain [1], xset_chain [2], xy_raster [1], xy_raster [2], xy_raster [3]
	ydb_exist [1], ydb_exist [2], ydb_exist [3], ydb_exist [4]
       HISTORY: Drafted by A.McAllister, 8-jul-93.


DATE $SSW/gen/idl_libs/astron/astro/date.pro
[Previous] [Next]
 NAME:
	DATE
 PURPOSE:
	Convert day-of-year to a DD-MMM-YYYY string

 CALLING SEQUENCE:
	D_String = DATE(Year, day )

 INPUTS:
	Year - Integer scalar specifying the year.   If the year contains only
		two digits, then it is assumed to indicate the number of 
		years after 1900. 

	Day - Integer scalar giving number of days after Jan 0 of the 
		specified year.    Can be larger than 366     

 OUTPUTS:
	D_String - String giving date in format '13-MAR-1986'

 RESTRICTIONS:
	Will not work for years before 100 AD 
 EXAMPLE:
	IDL> print, date(1997,279)
		'6-Oct-1997'

 MODIFICATION HISTORY:
       D.M. fecit  24 October,1983
	Work for years outside of the 19th century  W. Landsman  September 1997
	Converted to IDL V5.0   W. Landsman   September 1997


Date2DOY [1] $SSW/gen/idl/genutil/date2doy.pro
[Previous] [Next]
	NAME: 
		Date2DOY
	PURPOSE:
		Convert yymmdd into DOY (day of the year).  Input can
		be either string or integer.  The year is an Optional 
		return parameter.
	CALLING SEQUENCE:
		Date2DOY, idate, DOY [, yr]
	INPUT:
		idate	input format for the date: yymmdd.
			Data-type can be either string or integer.
	OUTPUT:
		DOY	integer with the day of the year.
	Output/Optional:
		yr	year of the returned DOY.
 CALLED BY:
	FndDur, FndIDs, dsn_input, mk_hst_summary, timeline
	Note:	If input data-type is string the returned values are
		string-type and if input-type is longword the returned
		parameters (DOY and yr) are integers.
	HISTORY:
		written by GAL 18-Sep-91


DATE2MJD [1] $SSW/gen/idl/time/date2mjd.pro
[Previous] [Next]
 Project     :	SOHO - CDS

 Name        :	DATE2MJD()

 Purpose     :	Convert calendar dates to Modified Julian Days.

 Explanation :	This procedure calculates the Modified Julian Day number from
		the year, month and day, or from the year, day-of-year.

 Use         :	Result = DATE2MJD(YEAR, MONTH, DAY)
		Result = DATE2MJD(YEAR, DOY)

 Inputs      :	YEAR	= Calendar year, e.g. 1989.  All four digits are
			  required.

 Opt. Inputs :	MONTH	= Calendar month, from 1-12.
		DAY	= Calendar day, from 1-31, depending on the month.

				or

		DOY	= Day-of-year, from 1-365 or 1-366, depending on the
			  year.

		Either MONTH and DAY, or DOY must be passed.

 Outputs     :	The result of the function is the Modified Julian Day number
		for the date in question.  It is an integral number--fractional
		days are not considered.

 Opt. Outputs:	None.

 Keywords    :	ERRMSG  =  If defined and passed, then any error messages 
                          will be returned to the user in this parameter 
                          rather than being handled by the IDL MESSAGE 
                          utility.  If no errors are encountered, then a null
                          string is returned.  In order to use this feature,
                          the string ERRMSG must be defined first, e.g.,

                            ERRMSG = ''
                            MJD = DATE2MJD ( YEAR, MONTH, DAY, ERRMSG=ERRMSG )
                            IF ERRMSG NE '' THEN ...

 Calls       : ***
	DATATYPE [1], DATATYPE [2], DATATYPE [3]
 CALLED BY:
	LST, STR2UTC [1], STR2UTC [2], STR2UTC [3], UTC2DOY, UTC2INT [1], UTC2INT [2]
	UTC2INT [3], get_ovsa_log
 Common      :	None.

 Restrictions:	None.

 Side effects:	If number of parameters sent is invalid, ERRMSG is returned as
               a string array of 2 elements if the keyword ERRMSG is set.
		Also, the result returned has a value of -1.

 Category    :	Utilities, Time.

 Prev. Hist. :	None.  However, part of the logic of this routine is based on
		JDCNV by B. Pfarr, GSFC.

 Written     :	William Thompson, GSFC, 13 September 1993.

 Modified    :	Version 1, William Thompson, GSFC, 13 September 1993.
		Version 2, Donald G. Luttermoser, GSFC/ARC, 20 December 1994.
			Added the keyword ERRMSG.  Added test for month to 
			make sure a string is not passed.  Note that there are
			no internal procedures called that use the ERRMSG
			keyword.
		Version 3, Donald G. Luttermoser, GSFC/ARC, 30 January 1995.
			Made the error handling routine more robust.  Note 
			this routine can handle both vector and scalar input.

 Version     :	Version 3, 30 January 1995.


DATE_CODE $SSW/gen/idl/time/date_code.pro
[Previous] [Next]
 PROJECT:
       SOHO - SUMER

 NAME:	
       DATE_CODE()

 PURPOSE:
       Convert any date/time value into YYYYMMDD format.

 EXPLANATION:
       
 CALLING SEQUENCE: 
       Result = DATE_CODE(time)

 INPUTS:
       TIME - The date/time in any of the standard CDS time formats

 OPTIONAL INPUTS: 
       None.

 OUTPUTS:
       Result - A string with 'YYYYMMDD' format. If error occurs, a null
                string is returned.

 OPTIONAL OUTPUTS:
       None.

 KEYWORD PARAMETERS: 
       None.

 CALLS: ***
	ANYTIM2UTC [1], ANYTIM2UTC [2]
 CALLED BY:
	FIND_FID, FIND_KAP_FILE, FTP_BBSO, FTP_KISF, FTP_MLSO_IMAGES, FTP_MWSO, FTP_NOBE
	GET_LATEST_IAP, GET_LATEST_KAP, GET_NOAA, GET_RECENT_EIT, ITOOL_GETFILE
	ITOOL_PICKFILE, MK_SOHO, PLOT_CDS_POINT [1], PLOT_CDS_POINT [2], UPDATE_KAP
	XGET_SYNOPTIC, eis_get_events_filename [2], eis_get_events_filename [4]
	eis_mk_plan_gui [1], eis_mk_plan_gui [2], get_ovsa_log, todays_targets
 COMMON BLOCKS:
       None.

 RESTRICTIONS: 
       None.

 SIDE EFFECTS:
       None.

 CATEGORY:
       
 PREVIOUS HISTORY:
       Written April 24, 1995, Liyun Wang, GSFC/ARC

 MODIFICATION HISTORY:
       Version 1, Liyun Wang, GSFC/ARC, April 24, 1995
       Version 2, August 21, 1995, Liyun Wang, GSFC/ARC
          Added ERROR keyword

 VERSION:
       Version 2, August 21, 1995


DATE_CONV $SSW/gen/idl_libs/astron/astro/date_conv.pro
[Previous] [Next]
 NAME:
     DATE_CONV
 PURPOSE:
     Procedure to perform conversion of dates to one of three possible formats.

 EXPLANATION:
     The following date formats are allowed

       format 1: real*8 scalar encoded as:
               year*1000 + day + hour/24. + min/24./60 + sec/24./60/60
               where day is the day of year (1 to 366)
       format 2: Vector encoded as:
               date[0] = year (eg. 2005)
               date[1] = day of year (1 to 366)
               date[2] = hour
               date[3] = minute
               date[4] = second
       format 3: string (ascii text) encoded as
               DD-MON-YEAR HH:MM:SS.SS
               (eg.  14-JUL-2005 15:25:44.23)
            OR
               YYYY-MM-DD HH:MM:SS.SS  (ISO standard)
               (eg.  1987-07-14 15:25:44.23 or 1987-07-14T15:25:44.23)
                   
       format 4: three element vector giving spacecraft time words
       from a Hubble Space Telescope (HST) telemetry packet.   Based on
       total number of secs since midnight, JAN. 1, 1979

 CALLING SEQUENCE
       results = DATE_CONV( DATE, TYPE )

 INPUTS:
       DATE - input date in one of the three possible formats.
       TYPE - type of output format desired.  If not supplied then
               format 3 (real*8 scalar) is used.
                       valid values:
                       'REAL'  - format 1
                       'VECTOR' - format 2
                       'STRING' - format 3
                       'FITS' - YYYY-MM-DDTHH:MM:SS.SS'
               TYPE can be abbreviated to the single character strings 'R',
               'V', 'S' and 'F'.
               Nobody wants to convert TO spacecraft time (I hope!)
 OUTPUTS:
       The converted date is returned as the function value.

 CALLS: ***
	GETTOK [1], GETTOK [2], GETTOK [3], GETTOK [4]
 CALLED BY:
	DBFPARSE [1], DBFPARSE [2], DBFPARSE [3]
 EXAMPLES:
       IDL> print,date_conv('2006-03-13 19:58:00.00'),f='(f15.5)' 
             2006072.83194 
       IDL> print,date_conv( 2006072.8319444d,'F')
             2006-03-13T19:58:00.00
       IDL> print,date_conv( 2006072.8319444d,'V')
             2006.00      72.0000      19.0000      57.0000      59.9962

 HISTORY:
      version 1  D. Lindler  July, 1987
      adapted for IDL version 2  J. Isensee  May, 1990
      Made year 2000 compliant; allow ISO format input  jls/acc Oct 1998
      DJL/ACC Jan 1998, Modified to work with dates such as 6-JAN-1996 where
               day of month has only one digit.
      DJL, Nov. 2000, Added input/output format YYYY-MM-DDTHH:MM:SS.SS
      Replace spaces with '0' in output FITS format  W.Landsman April 2006


DATPLOT $SSW/gen/idl/display/datplot.pro
[Previous] [Next]
 PROJECT:
       SDAC
 Name:
	DATPLOT

 CALLING SEQUENCE:
	datplot,xl,xh,y [,xnew,ynew , STAIRS=STAIRS, color=color [,/OUTPLOT] ]

	or
	datplot,dummy1, dummy2, xs=xs, y [, xnew,ynew , $
	STAIRS=STAIRS, color=color [,/OUTPLOT] ]

 PURPOSE:
	This procedure is used to OVERplot histograms between channel edges.
 CATEGORY:
	1-D Graphics.
 INPUTS:
	xl - Low edges of abscissae
	xh - High edges of abscissae
	y  - Ordinates

 Optional Inputs:
	xs - xl and xhi are packed into xs(0,*) and xs(1,*)
	if xs is passed, then y is still the third argument,
	  the first two arguments are not used but required

 Optional Outputs:
	xnew - If /stairs, then array used for abscissae bins
	ynew - If /stairs, then ordinate array

 KEYWORDS:
	OUTPLOT - if set, interpret abscissae as time values for OUTPLOT
		If the abscissae is datatype structure, it is interpreted
		using Anytim().  Xnew  will have Utbase removed.

	/stairs - connect all the bins together, looks like stairs
	/nolegs - leave the ends floating under stairs option
	color   - plotting color to use, as with linecolors
	psym  - symbol to plot at center of horizontal bar, def=no effect
	sysmsize - size of symbol, def=0.1
	All remaining keywords available to OPLOT
 CALLS: ***
	CHECKVAR [1], CRANGE, FCHECK, GETUTBASE [1], GETUTBASE [2], anytim [1], anytim [2]
	anytim [3], anytim [4], anytim [5], checkvar [2]
 CALLED BY:
	CAL_SHER, ROUTINE_NAME [1], SPEX_THISTORY [1], SPEX_THISTORY [2], XYPLOT__DEFINE
	countsmod_plot [1], countsmod_plot [2], get_slider, out_spectra_4_designer
	set_field, spec_plot [1], spec_plot [2], spec_plot [3], spec_plot [4]
	spex_spec_plot [1], spex_spec_plot [2], spex_spec_plot [3], spex_spec_plot [4]
 RESTRICTIONS:
       Initial call to plot must be made to establish scaling. For
	overplotting only.

 MODIFICATION HISTORY:
	91/12/06, FOR VERSION2
       	18-oct-93, ras, nolegs and color
	19-may-94, ras, indicate gaps between intervals using stairs
	Version 4, RAS, 17-Jun-1997, protect case of a single data interval to plot.
	Version 5, RAS, 29-mar-2001, direct support for Utplot through OUTPLOT
   Kim, 17-Apr-2001, Add keyword nsum so nsum will not be in oplotextra, and can
     be excluded from call to oplot.  Changed default for psym to !p.psym, and don't
     oplot the symbols if psym=0 OR psym=10.  Also use abs(psym).
 CONTACT:
	richard.schwartz@gsfc.nasa.gov


DAYCNV [1] $SSW/gen/idl/genutil/daycnv.pro
[Previous] [Next]
 NAME:
       DAYCNV
 PURPOSE:
       Converts Julian dates to Gregorian calendar dates

 CALLING SEQUENCE:
       DAYCNV, XJD, YR, MN, DAY, HR

 INPUTS:
       XJD = Julian date, positive double precision scalar or vector

 OUTPUTS:
       YR = Year (Integer)
       MN = Month (Integer)
       DAY = Day (Integer)
       HR = Hours and fractional hours (Real).   If XJD is a vector,
               then YR,MN,DAY and HR will be vectors of the same length.

 CALLED BY:
	BARYVEL, GET_DATE [1], GET_DATE [2], Int2Ex [1], Int2Ex [2], UT_2_YYDOY [1]
	ut_2_yydoy [2]
 EXAMPLE:
       IDL> DAYCNV, 2440000.D, yr, mn, day, hr    

       yields yr = 1968, mn =5, day = 23, hr =12.   

 WARNING:
       Be sure that the Julian date is specified as double precision to
       maintain accuracy at the fractional hour level.

 METHOD:
       Uses the algorithm of Fliegel and Van Flandern (1968) as reported in
       the "Explanatory Supplement to the Astronomical Almanac" (1992), p. 604
       Works for all Gregorian calendar dates with XJD > 0, i.e., dates after
       -4713 November 23.
 REVISION HISTORY:
       Converted to IDL from Yeoman's Comet Ephemeris Generator, 
       B. Pfarr, STX, 6/16/88
       Converted to IDL V5.0   W. Landsman   September 1997


DAYCNV [2] $SSW/gen/idl_libs/astron/astro/daycnv.pro
[Previous] [Next]
 NAME:
       DAYCNV
 PURPOSE:
       Converts Julian dates to Gregorian calendar dates

 CALLING SEQUENCE:
       DAYCNV, XJD, YR, MN, DAY, HR

 INPUTS:
       XJD = Julian date, positive double precision scalar or vector

 OUTPUTS:
       YR = Year (Integer)
       MN = Month (Integer)
       DAY = Day (Integer)
       HR = Hours and fractional hours (Real).   If XJD is a vector,
               then YR,MN,DAY and HR will be vectors of the same length.

 CALLED BY:
	BARYVEL, GET_DATE [1], GET_DATE [2], Int2Ex [1], Int2Ex [2], UT_2_YYDOY [1]
	ut_2_yydoy [2]
 EXAMPLE:
       IDL> DAYCNV, 2440000.D, yr, mn, day, hr    

       yields yr = 1968, mn =5, day = 23, hr =12.   

 WARNING:
       Be sure that the Julian date is specified as double precision to
       maintain accuracy at the fractional hour level.

 METHOD:
       Uses the algorithm of Fliegel and Van Flandern (1968) as reported in
       the "Explanatory Supplement to the Astronomical Almanac" (1992), p. 604
       Works for all Gregorian calendar dates with XJD > 0, i.e., dates after
       -4713 November 23.
 REVISION HISTORY:
       Converted to IDL from Yeoman's Comet Ephemeris Generator, 
       B. Pfarr, STX, 6/16/88
       Converted to IDL V5.0   W. Landsman   September 1997


DB_CHECK $SSW/gen/idl/database/db_check.pro
[Previous] [Next]
 Project     : HESSI     
                   
 Name        : DB_CHECK
               
 Purpose     : check input search string for syntax errors
               
 Category    : Database
               
 Syntax      : IDL> db_check,field,in_search,out_search

 Example     : db_check,['tstart,tend,xcen,ycen'],'xcen<1,ycen>2'
    
 Inputs      : FIELD = valid searchable fields in database
               IN_SEARCH = search string
               
 Opt. Inputs : None
               
 Outputs     : OUT_SEARCH = corrected search string

 Opt. Outputs: None
               
 Keywords    : STATUS = 1 if corrected string is ok, 0 otherwise
               SYNTAX = 1 if syntax error found
               (STATUS can be 0 even if SYNTAX=0. This can occur
               if input string does not contain at least one valid
               searchable field name).

 Restrictions: None
               
 CALLS: ***
	ARR2STR [1], Arr2Str [2], DATATYPE [1], DATATYPE [2], DATATYPE [3], DPRINT, EXIST
	PR_SYNTAX, STR2ARR [1], STR2ARR [2], TRIM, WHERE_VECTOR
 Side effects: None.
               
 History     : Version 1,  13-May-1999,  D M Zarro (SM&A/GSFC)  Written
     
 Contact     : dzarro@solar.stanford.edu


DB_ENT2EXT [1] $SSW/gen/idl/database/db_ent2ext.pro
[Previous] [Next]
 NAME:
	DB_ENT2EXT
 PURPOSE:
	Convert a database entry to external (IEEE) data format
 EXPLANATION: 
	Converts a database entry to external (IEEE) data format prior to
	writing it.  Called from DBWRT.

 CALLING SEQUENCE:
	DB_ENT2EXT, ENTRY

 INPUTS:
	ENTRY	= Byte array containing a single record to be written to the
		  database file.

 OUTPUTS:
	ENTRY	= The converted array is returned in place of the input array.

 CALLS: ***
	DBXPUT [1], DBXPUT [2], DBXPUT [3], DBXVAL [1], DBXVAL [2], DBXVAL [3], DB_INFO [1]
	DB_INFO [2], DB_INFO [3], HOST_TO_IEEE [1], HOST_TO_IEEE [2], HOST_TO_IEEE [3]
	HOST_TO_IEEE [4]
 CALLED BY:
	DBREPAIR, DBWRT [1], DBWRT [2], DBWRT [3]
 COMMON BLOCKS:
	DB_COM

 HISTORY:
	Version 1, William Thompson, GSFC/CDS (ARC), 1 June 1994
	Version 2, William Thompson, GSFC/CDS (ARC), 15 September 1995
			Fixed bug where only the first element in a
			multidimensional array was converted.
	Converted to IDL V5.0   W. Landsman   September 1997


DB_ENT2EXT [2] $SSW/gen/idl_libs/astron/database/db_ent2ext.pro
[Previous] [Next]
 NAME:
	DB_ENT2EXT
 PURPOSE:
	Convert a database entry to external (IEEE) data format
 EXPLANATION: 
	Converts a database entry to external (IEEE) data format prior to
	writing it.  Called from DBWRT.

 CALLING SEQUENCE:
	DB_ENT2EXT, ENTRY

 INPUTS:
	ENTRY	= Byte array containing a single record to be written to the
		  database file.

 OUTPUTS:
	ENTRY	= The converted array is returned in place of the input array.

 CALLS: ***
	DBXPUT [1], DBXPUT [2], DBXPUT [3], DBXVAL [1], DBXVAL [2], DBXVAL [3], DB_INFO [1]
	DB_INFO [2], DB_INFO [3], HOST_TO_IEEE [1], HOST_TO_IEEE [2], HOST_TO_IEEE [3]
	HOST_TO_IEEE [4]
 CALLED BY:
	DBREPAIR, DBWRT [1], DBWRT [2], DBWRT [3]
 COMMON BLOCKS:
	DB_COM

 HISTORY:
	Version 1, William Thompson, GSFC/CDS (ARC), 1 June 1994
	Version 2, William Thompson, GSFC/CDS (ARC), 15 September 1995
			Fixed bug where only the first element in a
			multidimensional array was converted.
	Converted to IDL V5.0   W. Landsman   September 1997


DB_ENT2HOST [1] $SSW/gen/idl/database/db_ent2host.pro
[Previous] [Next]
 NAME:
	DB_ENT2HOST
 PURPOSE:
	Converts a database entry from external data format to host format.
 EXPLANATION:
	All items are extracted from the entry, and then converted to host 
	format, and placed back into the entry.  Called from DBRD and DBEXT_DBF.

 CALLING SEQUENCE:
	DB_ENT2HOST, ENTRY, DBNO

 INPUTS:
	ENTRY	= Byte array containing a single record read from the
		  database file.
	DBNO	= Number of the opened database file.

 OUTPUTS:
	ENTRY	= The converted array is returned in place of the input array.

 CALLS: ***
	DBXPUT [1], DBXPUT [2], DBXPUT [3], DBXVAL [1], DBXVAL [2], DBXVAL [3], DB_INFO [1]
	DB_INFO [2], DB_INFO [3], IEEE_TO_HOST [1], IEEE_TO_HOST [2], IEEE_TO_HOST [3]
	IEEE_TO_HOST [4]
 CALLED BY:
	DBEXT_DBF [1], DBEXT_DBF [2], DBEXT_DBF [3], DBRD [1], DBRD [2], DBRD [3], DBREPAIR
 COMMON BLOCKS:
	DB_COM

 HISTORY:
	Version 1, William Thompson, GSFC/CDS (ARC), 1 June 1994
	Version 2, William Thompson, GSFC/CDS (ARC), 15 September 1995
			Fixed bug where only the first element in a
			multidimensional array was converted.
	Version 3, Richard Schwartz, GSFC/SDAC, 23 August 1996
		Allow 2 dimensional byte arrays for entries to facilitate 
		multiple entry processing.    Pass IDLTYPE onto IEEE_TO_HOST
	Converted to IDL V5.0   W. Landsman   September 1997
       Version 4, 2 May 2003, W. Thompson
               Use BSWAP keyword to DBXVAL instead of calling IEEE_TO_HOST.


DB_ENT2HOST [2] $SSW/gen/idl_libs/astron/database/db_ent2host.pro
[Previous] [Next]
 NAME:
	DB_ENT2HOST
 PURPOSE:
	Converts a database entry from external data format to host format.
 EXPLANATION:
	All items are extracted from the entry, and then converted to host 
	format, and placed back into the entry.  Called from DBRD and DBEXT_DBF.

 CALLING SEQUENCE:
	DB_ENT2HOST, ENTRY, DBNO

 INPUTS:
	ENTRY	= Byte array containing a single record read from the
		  database file.
	DBNO	= Number of the opened database file.

 OUTPUTS:
	ENTRY	= The converted array is returned in place of the input array.

 CALLS: ***
	DBXPUT [1], DBXPUT [2], DBXPUT [3], DBXVAL [1], DBXVAL [2], DBXVAL [3], DB_INFO [1]
	DB_INFO [2], DB_INFO [3], IEEE_TO_HOST [1], IEEE_TO_HOST [2], IEEE_TO_HOST [3]
	IEEE_TO_HOST [4]
 CALLED BY:
	DBEXT_DBF [1], DBEXT_DBF [2], DBEXT_DBF [3], DBRD [1], DBRD [2], DBRD [3], DBREPAIR
 COMMON BLOCKS:
	DB_COM

 HISTORY:
	Version 1, William Thompson, GSFC/CDS (ARC), 1 June 1994
	Version 2, William Thompson, GSFC/CDS (ARC), 15 September 1995
			Fixed bug where only the first element in a
			multidimensional array was converted.
	Version 3, Richard Schwartz, GSFC/SDAC, 23 August 1996
		Allow 2 dimensional byte arrays for entries to facilitate 
		multiple entry processing.    Pass IDLTYPE onto IEEE_TO_HOST
	Converted to IDL V5.0   W. Landsman   September 1997
       Version 4, 2 May 2003, W. Thompson
               Use BSWAP keyword to DBXVAL instead of calling IEEE_TO_HOST.


db_gbo $SSW/gen/idl/synoptic/db_gbo.pro
[Previous] [Next]
 Project     : HESSI

 Name        : db_gbo

 Purpose     : IDL database for Max Millennium Campaign

 Category    : Database

 Inputs      : See component routines

 Outputs     : Database save file in $GBO_DB

 Keywords    : See component routines

 CALLS: ***
	ADD_GBO, ANYTIM2TAI, ANYTIM2UTC [1], ANYTIM2UTC [2], APPEND_ARR, APPLY_LOCK
	ARR2STR [1], Arr2Str [2], BREAK_FILE [1], BREAK_FILE [2], BREAK_FILE [3]
	BSORT [1], BSORT [2], BSORT [3], BSORT [4], CACHE_GBO, CAT_GBO, CHECK_GBO, CHECK_LOCK
	CHKLOG [1], CHKLOG [2], CHMOD, CLEAR_GBO, CLEAR_STRUCT, CLOSE_LUN, COM_GBO
	CONCAT_DIR [1], CONCAT_DIR [2], CONCAT_DIR [3], COPY_STRUCT [1], COPY_STRUCT [2]
	COPY_STRUCT [3], DATATYPE [1], DATATYPE [2], DATATYPE [3], DEF_GBO, DELVARX [1]
	DELVARX [2], DELVARX [3], DELVARX [4], DISPLAY_GBO, ERR_STATE, ESPAWN, EXIST
	GBO_LOCKED, GBO_LOCK_FILE, GBO_PNG, GBO_SERVER, GBO_TIME, GET_CALLER, GET_GBO, GET_GEV
	GET_UTC, GREP, HELP_GBO, IDL_RELEASE, IS_BLANK, IS_STRING, LIST_FILE, LIST_GBO, LIST_NAR
	LOAD_GBO, LOCK_GBO, LOC_FILE [1], LOC_FILE [2], LOC_FILE [3], LOGS_GBO, MATCH_STRUCT
	MERGE_GBO, MKLOG, NEXT_GBO, NUM2STR, OBS_GBO, OUTPUT_GBO, PLOT_GBO, PRINTF_GBO
	PRINT_CONTENT, PRINT_GBO, PRINT_HTML, PRINT_SEARCH, PURGE_GBO, RD_ASCII [1]
	RD_ASCII [2], RD_GEV, REMDUP_GBO, RESTORE_GBO, RM_LOCK, SAVE_GBO, SEARCH_GBO, SET_GBO
	SET_LINE_COLOR, SHOW_GBO, STR2ARR [1], STR2ARR [2], STR2LINES, STR_FORMAT
	TAG_EXIST [1], TAG_EXIST [2], TEST_DIR, TRIM, TRIM2, UNIQ [1], UNIQ [2], UNIQ [3]
	UNLOCK_GBO, UPDATE_GBO, USE_GBO, UTPLOT [1], UTPLOT [2], UTPLOT [3], UTPLOT [4]
	UTPLOT [5], UTPLOT [6], VALID_GBO, VALID_TIME, anytim [1], anytim [2], anytim [3]
	anytim [4], anytim [5], break_file [4], concat_dir [4], delvarx [5], get_uniq
	gt_day [1], gt_day [2], gt_time [1], gt_time [2], is_number [1], is_number [2]
	is_struct, stc_compress, stc_uniq, stc_where, str_cut, str_replace [1]
	str_replace [2], where_arr [1], where_arr [2]
 History     : 2-Aug-1999,  D.M. Zarro.  Written

 Contact     : DZARRO@SOLAR.STANFORD.EDU


DB_INFO [1] $SSW/gen/idl/database/db_info.pro
[Previous] [Next]
 NAME:
	DB_INFO
 PURPOSE:
	Function to obtain information on opened data base file(s)

 CALLING SEQUENCES:
	1)  result = db_info(request)
	2)  result = db_info(request,dbname)
 INPUTS (calling sequence 1):

	request - string specifying requested value(s)
		value of request	  value returned in result
			'open'		Flag set to 1 if data base(s) are opened
			'number'	Number of data base files opened
			'items'		Total number of items (all db's opened)
			'update'	update flag (1 if opened for update)
			'unit_dbf'	Unit number of the .dbf files
			'unit_dbx'	Unit number of the .dbx files
			'entries'	Number of entries in the db's
			'length'	Record lengths for the db's
			'external'	True if the db's are in external format

 INPUTS (calling sequence 2):

	request - string specifying requested value(s)
		   value of request	  value returned in result
			'name'		Name of the data base
			'number'	Sequential number of the db
			'items'		Number of items for this db
			'item1'		Position of item1 for this db
					in item list for all db's
			'item2'		Position of last item for this db.
			'pointer'	Number of the item which points
					to this db. 0 for first or primary
					db.  -1 if link file pointers.
			'length'	Record length for this db.
			'title'		Title of the data base
			'unit_dbf'	Unit number of the .dbf file
			'unit_dbx'	Unit number of the .dbx file
	    		'entries'	Number of entries in the db
			'seqnum'	Last sequence number used
			'alloc'		Allocated space (# entries)
			'update'	1 if data base opened for update
			'external'	True if data base in external format

	dbname - data base name or number
 OUTPUTS:
	Requested value(s) are returned as the function value.

 CALLED BY:
	ADD_ANOMALY, ADD_DATAWIN, ADD_EXPER, ADD_EXP_COMM, ADD_F_RASTER, ADD_F_STUDY
	ADD_GSET, ADD_LINELIST, ADD_PROGRAM, ADD_RAW, ADD_RES_TYPE, ADD_T_STUDY, ADD_V_STUDY
	CHECK_INTEG, CP_GET_HISTORY, CP_GET_MNEMONIC, DBBUILD [1], DBBUILD [2]
	DBBUILD [3], DBCIRCLE [1], DBCIRCLE [2], DBCLOSE [1], DBCLOSE [2], DBCLOSE [3]
	DBCOMPARE [1], DBCOMPARE [2], DBCOMPRESS, DBDELETE [1], DBDELETE [2], DBDELETE [3]
	DBEDIT [1], DBEDIT [2], DBEDIT [3], DBEDIT_BASIC [1], DBEDIT_BASIC [2]
	DBEDIT_BASIC [3], DBEXT [1], DBEXT [2], DBEXT [3], DBEXT [4], DBEXT_DBF [1]
	DBEXT_DBF [2], DBEXT_DBF [3], DBEXT_IND [1], DBEXT_IND [2], DBEXT_IND [3]
	DBFIND [1], DBFIND [2], DBFIND [3], DBFIND_SORT [1], DBFIND_SORT [2]
	DBFIND_SORT [3], DBGET [1], DBGET [2], DBGET [3], DBHELP [1], DBHELP [2], DBHELP [3]
	DBINDEX [1], DBINDEX [2], DBINDEX [3], DBMATCH [1], DBMATCH [2], DBMATCH [3]
	DBOPEN [1], DBOPEN [2], DBOPEN [3], DBPRINT [1], DBPRINT [2], DBPRINT [3], DBRD [1]
	DBRD [2], DBRD [3], DBREPAIR, DBUPDATE [1], DBUPDATE [2], DBUPDATE [3], DBUPDATE [4]
	DBWRT [1], DBWRT [2], DBWRT [3], DB_ENT2EXT [1], DB_ENT2EXT [2], DB_ENT2EXT [3]
	DB_ENT2HOST [1], DB_ENT2HOST [2], DB_ENT2HOST [3], DB_ITEM [1], DB_ITEM [2]
	DB_ITEM [3], FLUSH_CATALOG, GET_CDHS_DEXWIN, GET_CDHS_RASTER, GET_CDHS_SERIES
	GET_CDHS_VDSWIN, GET_INSTRUMENT, LIST_F_RASTER, LIST_F_STUDY, LIST_LINELIST
	LIST_OBJECT, LIST_PROGRAM, WHAT_CDHS_STUDY, db_read_linelist_all [1]
	db_read_linelist_all [2], db_read_raster_all [1], db_read_raster_all [2]
	db_read_study_all [1], db_read_study_all [2], eis_import_study_gui
	eis_save_imported_linelist, eis_save_imported_raster
 HISTORY:
	version 1  D. Lindler    Oct. 1987
       changed type from 1 to 7 for IDLV2, J. Isensee, Nov., 1990
	William Thompson, GSFC/CDS (ARC), 30 May 1994
		Added EXTERNAL request type.
	Converted to IDL V5.0   W. Landsman   September 1997


DB_INFO [2] $SSW/gen/idl_libs/astron/database/db_info.pro
[Previous] [Next]
 NAME:
	DB_INFO
 PURPOSE:
	Function to obtain information on opened data base file(s)

 CALLING SEQUENCES:
	1)  result = db_info(request)
	2)  result = db_info(request,dbname)
 INPUTS (calling sequence 1):

	request - string specifying requested value(s)
		value of request	  value returned in result
			'open'		Flag set to 1 if data base(s) are opened
			'number'	Number of data base files opened
			'items'		Total number of items (all db's opened)
			'update'	update flag (1 if opened for update)
			'unit_dbf'	Unit number of the .dbf files
			'unit_dbx'	Unit number of the .dbx files
			'entries'	Number of entries in the db's
			'length'	Record lengths for the db's
			'external'	True if the db's are in external format

 INPUTS (calling sequence 2):

	request - string specifying requested value(s)
		   value of request	  value returned in result
			'name'		Name of the data base
			'number'	Sequential number of the db
			'items'		Number of items for this db
			'item1'		Position of item1 for this db
					in item list for all db's
			'item2'		Position of last item for this db.
			'pointer'	Number of the item which points
					to this db. 0 for first or primary
					db.  -1 if link file pointers.
			'length'	Record length for this db.
			'title'		Title of the data base
			'unit_dbf'	Unit number of the .dbf file
			'unit_dbx'	Unit number of the .dbx file
	    		'entries'	Number of entries in the db
			'seqnum'	Last sequence number used
			'alloc'		Allocated space (# entries)
			'update'	1 if data base opened for update
			'external'	True if data base in external format

	dbname - data base name or number
 OUTPUTS:
	Requested value(s) are returned as the function value.

 CALLED BY:
	ADD_ANOMALY, ADD_DATAWIN, ADD_EXPER, ADD_EXP_COMM, ADD_F_RASTER, ADD_F_STUDY
	ADD_GSET, ADD_LINELIST, ADD_PROGRAM, ADD_RAW, ADD_RES_TYPE, ADD_T_STUDY, ADD_V_STUDY
	CHECK_INTEG, CP_GET_HISTORY, CP_GET_MNEMONIC, DBBUILD [1], DBBUILD [2]
	DBBUILD [3], DBCIRCLE [1], DBCIRCLE [2], DBCLOSE [1], DBCLOSE [2], DBCLOSE [3]
	DBCOMPARE [1], DBCOMPARE [2], DBCOMPRESS, DBDELETE [1], DBDELETE [2], DBDELETE [3]
	DBEDIT [1], DBEDIT [2], DBEDIT [3], DBEDIT_BASIC [1], DBEDIT_BASIC [2]
	DBEDIT_BASIC [3], DBEXT [1], DBEXT [2], DBEXT [3], DBEXT [4], DBEXT_DBF [1]
	DBEXT_DBF [2], DBEXT_DBF [3], DBEXT_IND [1], DBEXT_IND [2], DBEXT_IND [3]
	DBFIND [1], DBFIND [2], DBFIND [3], DBFIND_SORT [1], DBFIND_SORT [2]
	DBFIND_SORT [3], DBGET [1], DBGET [2], DBGET [3], DBHELP [1], DBHELP [2], DBHELP [3]
	DBINDEX [1], DBINDEX [2], DBINDEX [3], DBMATCH [1], DBMATCH [2], DBMATCH [3]
	DBOPEN [1], DBOPEN [2], DBOPEN [3], DBPRINT [1], DBPRINT [2], DBPRINT [3], DBRD [1]
	DBRD [2], DBRD [3], DBREPAIR, DBUPDATE [1], DBUPDATE [2], DBUPDATE [3], DBUPDATE [4]
	DBWRT [1], DBWRT [2], DBWRT [3], DB_ENT2EXT [1], DB_ENT2EXT [2], DB_ENT2EXT [3]
	DB_ENT2HOST [1], DB_ENT2HOST [2], DB_ENT2HOST [3], DB_ITEM [1], DB_ITEM [2]
	DB_ITEM [3], FLUSH_CATALOG, GET_CDHS_DEXWIN, GET_CDHS_RASTER, GET_CDHS_SERIES
	GET_CDHS_VDSWIN, GET_INSTRUMENT, LIST_F_RASTER, LIST_F_STUDY, LIST_LINELIST
	LIST_OBJECT, LIST_PROGRAM, WHAT_CDHS_STUDY, db_read_linelist_all [1]
	db_read_linelist_all [2], db_read_raster_all [1], db_read_raster_all [2]
	db_read_study_all [1], db_read_study_all [2], eis_import_study_gui
	eis_save_imported_linelist, eis_save_imported_raster
 HISTORY:
	version 1  D. Lindler    Oct. 1987
       changed type from 1 to 7 for IDLV2, J. Isensee, Nov., 1990
	William Thompson, GSFC/CDS (ARC), 30 May 1994
		Added EXTERNAL request type.
	Converted to IDL V5.0   W. Landsman   September 1997


DB_ITEM [1] $SSW/gen/idl/database/db_item.pro
[Previous] [Next]
 NAME: 
       DB_ITEM
 PURPOSE:      
       Returns the item numbers and other info. for an item name.
 EXPLANATION:  
       Procedure to return the item numbers and other information
       of a specified item name

 CALLING SEQUENCE:     
       db_item, items, itnum, ivalnum, idltype, sbyte, numvals, nbytes

 INPUTS:       
       items - item name or number
               form 1  scalar string giving item(s) as list of names
                       separated by commas
               form 2  string array giving list of item names
               form 3  string of form '$filename' giving name
                       of text file containing items (one item per
                       line)
               form 4  integer scalar giving single item number or
                         integer vector list of item numbers
               form 5  Null string specifying interactive selection
                       Upon return items will contain selected items
                       in form 1
               form 6  '*'     select all items

 OUTPUTS:      
       itnum - item number
       ivalnum - value(s) number from multiple valued item
       idltype - data type(s) (1=string,2=byte,4=i*4,...)
       sbyte - starting byte(s) in entry
       numvals - number of data values for item(s)
               It is the full length of a vector item unless
               a subscript was supplied
       nbytes - number of bytes for each value
    All outputs are vectors even if a single item is requested

 OPTIONAL INPUT KEYWORDS:      
       ERRMSG   = If defined and passed, then any error messages will
               be returned to the user in this parameter rather than depending
               on the MESSAGE routine in IDL.  If no errors are encountered, 
               then a null string is returned.  In order to use this feature, 
               ERRMSG must be defined first, e.g.

                               ERRMSG = ''
                               DB_ITEM, ERRMSG=ERRMSG, ...
                               IF ERRMSG NE '' THEN ...

 PROCEDURE CALLS:
       DB_INFO, GETTOK, SCREEN_SELECT

 REVISION HISTORY:
       Written:   D. Lindler, GSFC/HRS, October 1987
       Version 2, William Thompson, GSFC, 17-Mar-1997
                       Added keyword ERRMSG
       Converted to IDL V5.0   W. Landsman   October 1997
       Use STRSPLIT instead of GETTOK to parse form 1, W. Landsman July 2002
       Assume since V5.4 use FILE_EXPAND_PATH() instead of SPEC_DIR()
               W. Landsman April 2006
 CALLS:
 CALLED BY
	DBBUILD [1], DBBUILD [2], DBBUILD [3], DBCOMPARE [1], DBCOMPARE [2], DBEDIT [1]
	DBEDIT [2], DBEDIT [3], DBEDIT_BASIC [1], DBEDIT_BASIC [2], DBEDIT_BASIC [3]
	DBEXT [1], DBEXT [2], DBEXT [3], DBEXT [4], DBEXT_IND [1], DBEXT_IND [2]
	DBEXT_IND [3], DBFIND [1], DBFIND [2], DBFIND [3], DBGET [1], DBGET [2], DBGET [3]
	DBHELP [1], DBHELP [2], DBHELP [3], DBINDEX [1], DBINDEX [2], DBINDEX [3]
	DBMATCH [1], DBMATCH [2], DBMATCH [3], DBPRINT [1], DBPRINT [2], DBPRINT [3]
	DBPUT [1], DBPUT [2], DBPUT [3], DBRD [1], DBRD [2], DBRD [3], DBSORT [1], DBSORT [2]
	DBSORT [3], DBUPDATE [1], DBUPDATE [2], DBUPDATE [3], DBUPDATE [4], DBVAL [1]
	DBVAL [2], DBVAL [3], DBWRT [1], DBWRT [2], DBWRT [3], IMDBASE
	eis_get_as_string_arry [1], eis_get_as_string_arry [2]


DB_ITEM [2] $SSW/gen/idl_libs/astron/database/db_item.pro
[Previous] [Next]
 NAME: 
       DB_ITEM
 PURPOSE:      
       Returns the item numbers and other info. for an item name.
 EXPLANATION:  
       Procedure to return the item numbers and other information
       of a specified item name

 CALLING SEQUENCE:     
       db_item, items, itnum, ivalnum, idltype, sbyte, numvals, nbytes

 INPUTS:       
       items - item name or number
               form 1  scalar string giving item(s) as list of names
                       separated by commas
               form 2  string array giving list of item names
               form 3  string of form '$filename' giving name
                       of text file containing items (one item per
                       line)
               form 4  integer scalar giving single item number or
                         integer vector list of item numbers
               form 5  Null string specifying interactive selection
                       Upon return items will contain selected items
                       in form 1
               form 6  '*'     select all items

 OUTPUTS:      
       itnum - item number
       ivalnum - value(s) number from multiple valued item
       idltype - data type(s) (1=string,2=byte,4=i*4,...)
       sbyte - starting byte(s) in entry
       numvals - number of data values for item(s)
               It is the full length of a vector item unless
               a subscript was supplied
       nbytes - number of bytes for each value
    All outputs are vectors even if a single item is requested

 OPTIONAL INPUT KEYWORDS:      
       ERRMSG   = If defined and passed, then any error messages will
               be returned to the user in this parameter rather than depending
               on the MESSAGE routine in IDL.  If no errors are encountered, 
               then a null string is returned.  In order to use this feature, 
               ERRMSG must be defined first, e.g.

                               ERRMSG = ''
                               DB_ITEM, ERRMSG=ERRMSG, ...
                               IF ERRMSG NE '' THEN ...

 PROCEDURE CALLS:
       DB_INFO, GETTOK, SCREEN_SELECT

 REVISION HISTORY:
       Written:   D. Lindler, GSFC/HRS, October 1987
       Version 2, William Thompson, GSFC, 17-Mar-1997
                       Added keyword ERRMSG
       Converted to IDL V5.0   W. Landsman   October 1997
       Use STRSPLIT instead of GETTOK to parse form 1, W. Landsman July 2002
       Assume since V5.4 use FILE_EXPAND_PATH() instead of SPEC_DIR()
               W. Landsman April 2006
 CALLS:
 CALLED BY
	DBBUILD [1], DBBUILD [2], DBBUILD [3], DBCOMPARE [1], DBCOMPARE [2], DBEDIT [1]
	DBEDIT [2], DBEDIT [3], DBEDIT_BASIC [1], DBEDIT_BASIC [2], DBEDIT_BASIC [3]
	DBEXT [1], DBEXT [2], DBEXT [3], DBEXT [4], DBEXT_IND [1], DBEXT_IND [2]
	DBEXT_IND [3], DBFIND [1], DBFIND [2], DBFIND [3], DBGET [1], DBGET [2], DBGET [3]
	DBHELP [1], DBHELP [2], DBHELP [3], DBINDEX [1], DBINDEX [2], DBINDEX [3]
	DBMATCH [1], DBMATCH [2], DBMATCH [3], DBPRINT [1], DBPRINT [2], DBPRINT [3]
	DBPUT [1], DBPUT [2], DBPUT [3], DBRD [1], DBRD [2], DBRD [3], DBSORT [1], DBSORT [2]
	DBSORT [3], DBUPDATE [1], DBUPDATE [2], DBUPDATE [3], DBUPDATE [4], DBVAL [1]
	DBVAL [2], DBVAL [3], DBWRT [1], DBWRT [2], DBWRT [3], IMDBASE
	eis_get_as_string_arry [1], eis_get_as_string_arry [2]


DB_ITEM_INFO [1] $SSW/gen/idl/database/db_item_info.pro
[Previous] [Next]
 NAME:
	DB_ITEM_INFO
 PURPOSE:
	routine to return information on selected item(s) in the opened
	data bases.

 CALLING SEQUENCE:
	result = db_item_info( request, itnums)
 INPUTS:
	request - string giving the requested information.
		'name'		- item names
		'idltype'	- IDL data type (integers)
				  see documentation of intrinsic SIZE funtion
		'nvalues'	- vector item length (1 for scalar)
		'sbyte'		- starting byte in .dbf record (use bytepos
				  to get starting byte in record returned by
				  dbrd)
		'nbytes'	- bytes per data value
		'index'		- index types
		'description'	- description of the item
		'pflag'		- pointer item flags
		'pointer'	- data bases the items point to
		'format'	- print formats
		'flen'		- print field length
		'headers'	- print headers
		'bytepos'	- starting byte in dbrd record for the items
		'dbnumber'	- number of the opened data base
		'pnumber'	- number of db it points to (if the db is
					opened)
		'itemnumber'	- item number in the file

	itnums -(optional) Item numbers.  If not supplied info on all items
		are returned.
 OUTPUT:
	Requested information is returned as a vector.  Its type depends
	on the item requested.
 CALLED BY:
	DBBUILD [1], DBBUILD [2], DBBUILD [3], DBCOMPARE [1], DBCOMPARE [2], DBEDIT [1]
	DBEDIT [2], DBEDIT [3], DBEDIT_BASIC [1], DBEDIT_BASIC [2], DBEDIT_BASIC [3]
	DBEXT [1], DBEXT [2], DBEXT [3], DBEXT [4], DBEXT_IND [1], DBEXT_IND [2]
	DBEXT_IND [3], DBFIND [1], DBFIND [2], DBFIND [3], DBFIND_SORT [1]
	DBFIND_SORT [2], DBFIND_SORT [3], DBGET [1], DBGET [2], DBGET [3], DBHELP [1]
	DBHELP [2], DBHELP [3], DBINDEX [1], DBINDEX [2], DBINDEX [3], DBMATCH [1]
	DBMATCH [2], DBMATCH [3], DBPRINT [1], DBPRINT [2], DBPRINT [3], DBREPAIR
	DBUPDATE [1], DBUPDATE [2], DBUPDATE [3], DBUPDATE [4], DBWRT [1], DBWRT [2]
	DBWRT [3], IMDBASE
 HISTORY:
	version 1  D. Lindler  Nov. 1987
	Converted to IDL V5.0   W. Landsman   September 1997


DB_ITEM_INFO [2] $SSW/gen/idl_libs/astron/database/db_item_info.pro
[Previous] [Next]
 NAME:
	DB_ITEM_INFO
 PURPOSE:
	routine to return information on selected item(s) in the opened
	data bases.

 CALLING SEQUENCE:
	result = db_item_info( request, itnums)
 INPUTS:
	request - string giving the requested information.
		'name'		- item names
		'idltype'	- IDL data type (integers)
				  see documentation of intrinsic SIZE funtion
		'nvalues'	- vector item length (1 for scalar)
		'sbyte'		- starting byte in .dbf record (use bytepos
				  to get starting byte in record returned by
				  dbrd)
		'nbytes'	- bytes per data value
		'index'		- index types
		'description'	- description of the item
		'pflag'		- pointer item flags
		'pointer'	- data bases the items point to
		'format'	- print formats
		'flen'		- print field length
		'headers'	- print headers
		'bytepos'	- starting byte in dbrd record for the items
		'dbnumber'	- number of the opened data base
		'pnumber'	- number of db it points to (if the db is
					opened)
		'itemnumber'	- item number in the file

	itnums -(optional) Item numbers.  If not supplied info on all items
		are returned.
 OUTPUT:
	Requested information is returned as a vector.  Its type depends
	on the item requested.
 CALLED BY:
	DBBUILD [1], DBBUILD [2], DBBUILD [3], DBCOMPARE [1], DBCOMPARE [2], DBEDIT [1]
	DBEDIT [2], DBEDIT [3], DBEDIT_BASIC [1], DBEDIT_BASIC [2], DBEDIT_BASIC [3]
	DBEXT [1], DBEXT [2], DBEXT [3], DBEXT [4], DBEXT_IND [1], DBEXT_IND [2]
	DBEXT_IND [3], DBFIND [1], DBFIND [2], DBFIND [3], DBFIND_SORT [1]
	DBFIND_SORT [2], DBFIND_SORT [3], DBGET [1], DBGET [2], DBGET [3], DBHELP [1]
	DBHELP [2], DBHELP [3], DBINDEX [1], DBINDEX [2], DBINDEX [3], DBMATCH [1]
	DBMATCH [2], DBMATCH [3], DBPRINT [1], DBPRINT [2], DBPRINT [3], DBREPAIR
	DBUPDATE [1], DBUPDATE [2], DBUPDATE [3], DBUPDATE [4], DBWRT [1], DBWRT [2]
	DBWRT [3], IMDBASE
 HISTORY:
	version 1  D. Lindler  Nov. 1987
	Converted to IDL V5.0   W. Landsman   September 1997


DB_OR [1] $SSW/gen/idl/database/db_or.pro
[Previous] [Next]
 NAME:
	DB_OR
 PURPOSE:
	Combine two vectors of entry numbers, removing duplicate values.
 EXPLANATION:
	DB_OR can also be used to remove duplicate values from any longword 
	vector

 CALLING SEQUENCE:
	LIST = DB_OR( LIST1 )          ;Remove duplicate values from LIST1
		or
	LIST = DB_OR( LIST1, LIST2 )   ;Concatenate LIST1 and LIST2, remove dups

 INPUTS:
	LIST1, LIST2 - Vectors containing entry numbers, must be non-negative
			integers or longwords.
 OUTPUT:
	LIST - Vector containing entry numbers in either LIST1 or LIST2
  
 METHOD
	DB_OR returns where the histogram of the entry vectors is non-zero

 PROCEDURE CALLS
	ZPARCHECK - checks parameters  
 REVISION HISTORY:
	Written,     W. Landsman             February, 1989
	Check for degenerate values  W.L.    February, 1993
	Converted to IDL V5.0   W. Landsman   September 1997
 CALLS:


DB_OR [2] $SSW/gen/idl_libs/astron/database/db_or.pro
[Previous] [Next]
 NAME:
	DB_OR
 PURPOSE:
	Combine two vectors of entry numbers, removing duplicate values.
 EXPLANATION:
	DB_OR can also be used to remove duplicate values from any longword 
	vector

 CALLING SEQUENCE:
	LIST = DB_OR( LIST1 )          ;Remove duplicate values from LIST1
		or
	LIST = DB_OR( LIST1, LIST2 )   ;Concatenate LIST1 and LIST2, remove dups

 INPUTS:
	LIST1, LIST2 - Vectors containing entry numbers, must be non-negative
			integers or longwords.
 OUTPUT:
	LIST - Vector containing entry numbers in either LIST1 or LIST2
  
 METHOD
	DB_OR returns where the histogram of the entry vectors is non-zero

 PROCEDURE CALLS
	ZPARCHECK - checks parameters  
 REVISION HISTORY:
	Written,     W. Landsman             February, 1989
	Check for degenerate values  W.L.    February, 1993
	Converted to IDL V5.0   W. Landsman   September 1997
 CALLS:


DB_TITLES [1] $SSW/gen/idl/database/db_titles.pro
[Previous] [Next]
 NAME:
	DB_TITLES

 PURPOSE:
	Print database name and title.  Called by DBHELP

 CALLING SEQUENCE:
	db_titles, fnames, titles

 INPUT:
	fnames - string array of data base names

 SIDE EFFECT:
	Database name is printed along with the description in the .dbh file

 CALLS: ***
	FIND_WITH_DEF [1], FIND_WITH_DEF [2], FIND_WITH_DEF [3]
 HISTORY:
	version 2  W. Landsman May, 1989
	modified to work under Unix, D. Neill, ACC, Feb 1991.
	William Thompson, GSFC/CDS (ARC), 1 June 1994
		Added support for external (IEEE) representation.
	William Thompson, GSFC, 3 November 1994
			Modified to allow ZDBASE to be a path string.
	Converted to IDL V5.0   W. Landsman   September 1997
       Assume since V5.5,      W. Landsman   September 2006


DB_TITLES [2] $SSW/gen/idl_libs/astron/database/db_titles.pro
[Previous] [Next]
 NAME:
	DB_TITLES

 PURPOSE:
	Print database name and title.  Called by DBHELP

 CALLING SEQUENCE:
	db_titles, fnames, titles

 INPUT:
	fnames - string array of data base names

 SIDE EFFECT:
	Database name is printed along with the description in the .dbh file

 CALLS: ***
	FIND_WITH_DEF [1], FIND_WITH_DEF [2], FIND_WITH_DEF [3]
 HISTORY:
	version 2  W. Landsman May, 1989
	modified to work under Unix, D. Neill, ACC, Feb 1991.
	William Thompson, GSFC/CDS (ARC), 1 June 1994
		Added support for external (IEEE) representation.
	William Thompson, GSFC, 3 November 1994
			Modified to allow ZDBASE to be a path string.
	Converted to IDL V5.0   W. Landsman   September 1997
       Assume since V5.5,      W. Landsman   September 2006


DBBUILD [1] $SSW/gen/idl/database/dbbuild.pro
[Previous] [Next]
 NAME:
	DBBUILD
 PURPOSE:
	Build a database by appending new values for every item.  
 EXPLANATION:
	The database must be opened for update (with DBOPEN) before calling 
	DBBUILD.

       Users with IDL V6.1 or later might which to use the version of 
       DBBUILD in http://idlastro.gsfc.nasa.gov/ftp/v61/ which does not
       use the EXECUTE() function and accepts up to 50 items.

 CALLING SEQUENCE:
	DBBUILD, [ v1, v2, v3, v4......v30, /NOINDEX, /SILENT, STATUS =  ]

 INPUTS:
	v1,v2....v30 - vectors containing values for all items in the database.
         V1 contains values for the first item, V2 for the second, etc.
         The number of vectors supplied must equal the number of items
         (excluding entry number) in the database.  The number of elements 
         in each vector should be the same.   A multiple valued item
         should be dimensioned NVALUE by NENTRY, where NVALUE is the number
         of values, and NENTRY is the number of entries.

 OPTIONAL INPUT KEYWORDS:
	/NOINDEX - If this keyword is supplied and non-zero then DBBUILD will
             *not* create an indexed file.    Useful to save time if
             DBBUILD is to be called several times and the indexed file need
             only be created on the last call

	/SILENT  - If the keyword SILENT is set and non-zero, then DBBUILD
	      will not print a message when the index files are generated

 OPTIONAL OUTPUT KEYWORD:
	STATUS - Returns a status code denoting whether the operation was
	      successful (1) or unsuccessful (0).  Useful when DBBUILD is
	      called from within other applications.

 CALLS: ***
	DBCLOSE [1], DBCLOSE [2], DBCLOSE [3], DBINDEX [1], DBINDEX [2], DBINDEX [3]
	DBWRT [1], DBWRT [2], DBWRT [3], DBXPUT [1], DBXPUT [2], DBXPUT [3], DB_INFO [1]
	DB_INFO [2], DB_INFO [3], DB_ITEM [1], DB_ITEM [2], DB_ITEM [3], DB_ITEM_INFO [1]
	DB_ITEM_INFO [2], DB_ITEM_INFO [3], S
 CALLED BY:
	ADD_ALT, ADD_ANOMALY, ADD_CAMPAIGN, ADD_CDS_POINT, ADD_DATAWIN, ADD_DETAIL
	ADD_EFFICIENCY, ADD_EFF_AREA, ADD_EXPER, ADD_EXP_COMM, ADD_FLAG, ADD_F_RASTER
	ADD_F_STUDY, ADD_GSET, ADD_INST_DLYD, ADD_LINELIST, ADD_MAIN, ADD_MIRSHIFT
	ADD_NRT_RES, ADD_OTHER_OBS, ADD_PLAN, ADD_PROGRAM, ADD_RAW, ADD_RESOURCE
	ADD_RES_TYPE, ADD_TEL_MODE, ADD_TEL_SUBMODE, ADD_TILTCAL, ADD_T_STUDY
	ADD_V_RASTER, ADD_V_STUDY, ADD_WAVECAL, ADD_WAVE_EFF, FLUSH_CATALOG, MOD_CAMPAIGN
	REG_CDROM, SET_KAP_VERS, UPD_PLAN, UPD_SOHO_DET
	db_save_linelist_entry_create [1], db_save_linelist_entry_create [2]
	db_save_raster_entry_create [1], db_save_raster_entry_create [2]
	db_save_study_entry_create [1], db_save_study_entry_create [2]
	db_save_study_entry_create [3], db_save_study_entry_create [4]
	eis_write_science_component_database_table [1]
	eis_write_science_component_database_table [2]
	eis_write_time_component_database_table [1]
	eis_write_time_component_database_table [2]
 EXAMPLE:
	Suppose a database named STARS contains the four items NAME,RA,DEC, and 
	FLUX.   Assume that one already has the four vectors containing the
	values, and that the database definition (.DBD) file already exists.

	IDL> !PRIV=2                  ;Writing to database requires !PRIV=2
	IDL> dbcreate,'stars',1,1   ;Create database (.DBF) & index (.DBX) file
	IDL> dbopen,'stars',1         ;Open database for update
	IDL> dbbuild,name,ra,dec,flux ;Write 4 vectors into the database

 NOTES:
	Do not call DBCREATE before DBBUILD if you want to append entries to
	an existing database

	DBBUILD checks that each value vector matches the idl type given in the
	database definition (..dbd) file, and that character strings are the 
	proper length. 
 REVISION HISTORY:
	Written          W. Landsman           March, 1989
	Added /NOINDEX keyword           W. Landsman        November, 1992
	User no longer need supply all items   W. Landsman  December, 1992 
	Added STATUS keyword, William Thompson, GSFC, 1 April 1994
	Added /SILENT keyword, William Thompson, GSFC, October 1995
	Allow up to 30 items, fix problem if first item was multiple value
				  W. Landsman    GSFC, July 1996
	Faster build of external databases on big endian machines 
				  W. Landsman    GSFC, November 1997  
	Converted to IDL V5.0   W. Landsman 24-Nov-1997
       Use SIZE(/TNAME) for error mesage display  W.Landsman   July 2001
       Fix message display error introduced July 2001  W. Landsman   Oct. 2001 
       Make sure error message appears even if !QUIET is set W.L November 2006


DBBUILD [2] $SSW/gen/idl_libs/astron/database/dbbuild.pro
[Previous] [Next]
 NAME:
	DBBUILD
 PURPOSE:
	Build a database by appending new values for every item.  
 EXPLANATION:
	The database must be opened for update (with DBOPEN) before calling 
	DBBUILD.

       Users with IDL V6.1 or later might which to use the version of 
       DBBUILD in http://idlastro.gsfc.nasa.gov/ftp/v61/ which does not
       use the EXECUTE() function and accepts up to 50 items.

 CALLING SEQUENCE:
	DBBUILD, [ v1, v2, v3, v4......v30, /NOINDEX, /SILENT, STATUS =  ]

 INPUTS:
	v1,v2....v30 - vectors containing values for all items in the database.
         V1 contains values for the first item, V2 for the second, etc.
         The number of vectors supplied must equal the number of items
         (excluding entry number) in the database.  The number of elements 
         in each vector should be the same.   A multiple valued item
         should be dimensioned NVALUE by NENTRY, where NVALUE is the number
         of values, and NENTRY is the number of entries.

 OPTIONAL INPUT KEYWORDS:
	/NOINDEX - If this keyword is supplied and non-zero then DBBUILD will
             *not* create an indexed file.    Useful to save time if
             DBBUILD is to be called several times and the indexed file need
             only be created on the last call

	/SILENT  - If the keyword SILENT is set and non-zero, then DBBUILD
	      will not print a message when the index files are generated

 OPTIONAL OUTPUT KEYWORD:
	STATUS - Returns a status code denoting whether the operation was
	      successful (1) or unsuccessful (0).  Useful when DBBUILD is
	      called from within other applications.

 CALLS: ***
	DBCLOSE [1], DBCLOSE [2], DBCLOSE [3], DBINDEX [1], DBINDEX [2], DBINDEX [3]
	DBWRT [1], DBWRT [2], DBWRT [3], DBXPUT [1], DBXPUT [2], DBXPUT [3], DB_INFO [1]
	DB_INFO [2], DB_INFO [3], DB_ITEM [1], DB_ITEM [2], DB_ITEM [3], DB_ITEM_INFO [1]
	DB_ITEM_INFO [2], DB_ITEM_INFO [3], S
 CALLED BY:
	ADD_ALT, ADD_ANOMALY, ADD_CAMPAIGN, ADD_CDS_POINT, ADD_DATAWIN, ADD_DETAIL
	ADD_EFFICIENCY, ADD_EFF_AREA, ADD_EXPER, ADD_EXP_COMM, ADD_FLAG, ADD_F_RASTER
	ADD_F_STUDY, ADD_GSET, ADD_INST_DLYD, ADD_LINELIST, ADD_MAIN, ADD_MIRSHIFT
	ADD_NRT_RES, ADD_OTHER_OBS, ADD_PLAN, ADD_PROGRAM, ADD_RAW, ADD_RESOURCE
	ADD_RES_TYPE, ADD_TEL_MODE, ADD_TEL_SUBMODE, ADD_TILTCAL, ADD_T_STUDY
	ADD_V_RASTER, ADD_V_STUDY, ADD_WAVECAL, ADD_WAVE_EFF, FLUSH_CATALOG, MOD_CAMPAIGN
	REG_CDROM, SET_KAP_VERS, UPD_PLAN, UPD_SOHO_DET
	db_save_linelist_entry_create [1], db_save_linelist_entry_create [2]
	db_save_raster_entry_create [1], db_save_raster_entry_create [2]
	db_save_study_entry_create [1], db_save_study_entry_create [2]
	db_save_study_entry_create [3], db_save_study_entry_create [4]
	eis_write_science_component_database_table [1]
	eis_write_science_component_database_table [2]
	eis_write_time_component_database_table [1]
	eis_write_time_component_database_table [2]
 EXAMPLE:
	Suppose a database named STARS contains the four items NAME,RA,DEC, and 
	FLUX.   Assume that one already has the four vectors containing the
	values, and that the database definition (.DBD) file already exists.

	IDL> !PRIV=2                  ;Writing to database requires !PRIV=2
	IDL> dbcreate,'stars',1,1   ;Create database (.DBF) & index (.DBX) file
	IDL> dbopen,'stars',1         ;Open database for update
	IDL> dbbuild,name,ra,dec,flux ;Write 4 vectors into the database

 NOTES:
	Do not call DBCREATE before DBBUILD if you want to append entries to
	an existing database

	DBBUILD checks that each value vector matches the idl type given in the
	database definition (..dbd) file, and that character strings are the 
	proper length. 
 REVISION HISTORY:
	Written          W. Landsman           March, 1989
	Added /NOINDEX keyword           W. Landsman        November, 1992
	User no longer need supply all items   W. Landsman  December, 1992 
	Added STATUS keyword, William Thompson, GSFC, 1 April 1994
	Added /SILENT keyword, William Thompson, GSFC, October 1995
	Allow up to 30 items, fix problem if first item was multiple value
				  W. Landsman    GSFC, July 1996
	Faster build of external databases on big endian machines 
				  W. Landsman    GSFC, November 1997  
	Converted to IDL V5.0   W. Landsman 24-Nov-1997
       Use SIZE(/TNAME) for error mesage display  W.Landsman   July 2001
       Fix message display error introduced July 2001  W. Landsman   Oct. 2001 
       Make sure error message appears even if !QUIET is set W.L November 2006


DBCIRCLE [1] $SSW/gen/idl/database/dbcircle.pro
[Previous] [Next]
 NAME:
      DBCIRCLE
 PURPOSE:
      Find sources in a database within specified radius of specified center
 EXPLANATION:
      Database must include items named 'RA' (in hours) and 'DEC' (in degrees)
      and must have previously been opened with DBOPEN

 CALLING SEQUENCE:
     list = DBCIRCLE( ra_cen, dec_cen, [radius, dis, sublist, /SILENT, 
                                          TO_B1950, /TO_J2000 ] )   

 INPUTS:
       RA_CEN - Right ascension of the search center in decimal HOURS, scalar
       DEC_CEN - Declination of the search center in decimal DEGREES, scalar
               RA_CEN and DEC_CEN should be in the same equinox as the 
               currently opened catalog.

 OPTIONAL INPUT:
       RADIUS - Radius of the search field in arc minutes, scalar.
               DBCIRCLE prompts for RADIUS if not supplied.
       SUBLIST - Vector giving entry numbers in currently opened database
               to be searched.  Default is to search all entries

 OUTPUTS:
     LIST - Vector giving entry numbers in the currently opened catalog
            which have positions within the specified search circle
            LIST is set to -1 if no sources fall within the search circle
            !ERR is set to the number sources found.

 OPTIONAL OUTPUT
       DIS -  The distance in arcminutes of each entry specified by LIST
               to the search center (given by RA_CEN and DEC_CEN)

 CALLS: ***
	BPRECESS, DBEXT [1], DBEXT [2], DBEXT [3], DBEXT [4], DBFIND [1], DBFIND [2]
	DBFIND [3], DB_INFO [1], DB_INFO [2], DB_INFO [3], GCIRC, JPRECESS
 CALLED BY:
	DBTARGET [1], DBTARGET [2]
 OPTIONAL KEYWORD INPUT:
       /SILENT - If this keyword is set, then DBCIRCLE will not print the 
               number of entries found at the terminal
       /TO_J2000 - If this keyword is set, then the entered coordinates are
               assumed to be in equinox B1950, and will be converted to
               J2000 before searching the database
       /TO_B1950 - If this keyword is set, then the entered coordinates are
               assumed to be in equinox J2000, and will be converted to
               B1950 before searching the database
               NOTE: The user must determine on his own whether the database
               is in B1950 or J2000 coordinates.

 METHOD:
       A DBFIND search is first performed on a square area of given radius.
       The list is the restricted to a circular area by using GCIRC to 
       compute the distance of each object to the field center.

 EXAMPLE:
       Find all Hipparcos stars within 40' of the nucleus of M33
       (at J2000 1h 33m 50.9s 30d 39' 36.7'')

       IDL> dbopen,'hipparcos'
       IDL> list = dbcircle( ten(1,33,50.9), ten(3,39,36.7), 40)

 PROCEDURE CALLS:
       BPRECESS, DBFIND(), DBEXT, DB_INFO(), GCIRC, JPRECESS
 REVISION HISTORY:
      Written W. Landsman     STX           January 1990
      Fixed search when crossing 0h         July 1990
      Spiffed up code a bit     October, 1991
      Converted to IDL V5.0   W. Landsman   September 1997
      Leave DIS vector unchanged if no entries found W. Landsman July 1999
      Use maximum declination, rather than declination at field center to
      correct RA for latitude effect    W. Landsman   September 1999


DBCIRCLE [2] $SSW/gen/idl_libs/astron/database/dbcircle.pro
[Previous] [Next]
 NAME:
      DBCIRCLE
 PURPOSE:
      Find sources in a database within specified radius of specified center
 EXPLANATION:
      Database must include items named 'RA' (in hours) and 'DEC' (in degrees)
      and must have previously been opened with DBOPEN

 CALLING SEQUENCE:
     list = DBCIRCLE( ra_cen, dec_cen, [radius, dis, sublist, /SILENT, 
                                          TO_B1950, /TO_J2000 ] )   

 INPUTS:
       RA_CEN - Right ascension of the search center in decimal HOURS, scalar
       DEC_CEN - Declination of the search center in decimal DEGREES, scalar
               RA_CEN and DEC_CEN should be in the same equinox as the 
               currently opened catalog.

 OPTIONAL INPUT:
       RADIUS - Radius of the search field in arc minutes, scalar.
               DBCIRCLE prompts for RADIUS if not supplied.
       SUBLIST - Vector giving entry numbers in currently opened database
               to be searched.  Default is to search all entries

 OUTPUTS:
     LIST - Vector giving entry numbers in the currently opened catalog
            which have positions within the specified search circle
            LIST is set to -1 if no sources fall within the search circle
            !ERR is set to the number sources found.

 OPTIONAL OUTPUT
       DIS -  The distance in arcminutes of each entry specified by LIST
               to the search center (given by RA_CEN and DEC_CEN)

 CALLS: ***
	BPRECESS, DBEXT [1], DBEXT [2], DBEXT [3], DBEXT [4], DBFIND [1], DBFIND [2]
	DBFIND [3], DB_INFO [1], DB_INFO [2], DB_INFO [3], GCIRC, JPRECESS
 CALLED BY:
	DBTARGET [1], DBTARGET [2]
 OPTIONAL KEYWORD INPUT:
       /SILENT - If this keyword is set, then DBCIRCLE will not print the 
               number of entries found at the terminal
       /TO_J2000 - If this keyword is set, then the entered coordinates are
               assumed to be in equinox B1950, and will be converted to
               J2000 before searching the database
       /TO_B1950 - If this keyword is set, then the entered coordinates are
               assumed to be in equinox J2000, and will be converted to
               B1950 before searching the database
               NOTE: The user must determine on his own whether the database
               is in B1950 or J2000 coordinates.

 METHOD:
       A DBFIND search is first performed on a square area of given radius.
       The list is the restricted to a circular area by using GCIRC to 
       compute the distance of each object to the field center.

 EXAMPLE:
       Find all Hipparcos stars within 40' of the nucleus of M33
       (at J2000 1h 33m 50.9s 30d 39' 36.7'')

       IDL> dbopen,'hipparcos'
       IDL> list = dbcircle( ten(1,33,50.9), ten(3,39,36.7), 40)

 PROCEDURE CALLS:
       BPRECESS, DBFIND(), DBEXT, DB_INFO(), GCIRC, JPRECESS
 REVISION HISTORY:
      Written W. Landsman     STX           January 1990
      Fixed search when crossing 0h         July 1990
      Spiffed up code a bit     October, 1991
      Converted to IDL V5.0   W. Landsman   September 1997
      Leave DIS vector unchanged if no entries found W. Landsman July 1999
      Use maximum declination, rather than declination at field center to
      correct RA for latitude effect    W. Landsman   September 1999


DBCLOSE [1] $SSW/gen/idl/database/dbclose.pro
[Previous] [Next]
 NAME:
       DBCLOSE
 PURPOSE:
       procedure to close a data base file

 CALLING SEQUENCE:  
       dbclose

 INPUTS:
       None

 OUTPUTS
       None

 CALLS: ***
	DB_INFO [1], DB_INFO [2], DB_INFO [3], HOST_TO_IEEE [1], HOST_TO_IEEE [2]
	HOST_TO_IEEE [3], HOST_TO_IEEE [4]
 CALLED BY:
	ADD_ALT, ADD_ANOMALY, ADD_CAMPAIGN, ADD_CDS_POINT, ADD_DATAWIN, ADD_DETAIL
	ADD_EFFICIENCY, ADD_EFF_AREA, ADD_EXPER, ADD_EXP_COMM, ADD_FLAG, ADD_F_RASTER
	ADD_F_STUDY, ADD_GSET, ADD_INST_DLYD, ADD_LINELIST, ADD_MAIN, ADD_MIRSHIFT
	ADD_NRT_RES, ADD_OTHER_OBS, ADD_PLAN, ADD_PROGRAM, ADD_RAW, ADD_RESOURCE
	ADD_RES_TYPE, ADD_TEL_MODE, ADD_TEL_SUBMODE, ADD_TILTCAL, ADD_T_STUDY
	ADD_V_RASTER, ADD_V_STUDY, ADD_WAVECAL, ADD_WAVE_EFF, CHECK_INTEG, CHK_T_STUDY
	CHK_V_STUDY, CLR_INST_DLYD, CLR_NRT_RES, CLR_OTHER_OBS, CLR_RESOURCE, CLR_TEL_MODE
	CLR_TEL_SUBMODE, CP_GET_HISTORY, CP_GET_MNEMONIC, DBBUILD [1], DBBUILD [2]
	DBBUILD [3], DBDELETE [1], DBDELETE [2], DBDELETE [3], DBOPEN [1], DBOPEN [2]
	DBOPEN [3], DBREPAIR, DEL_ALT, DEL_ANOMALY, DEL_DETAIL, DEL_FLAG, DEL_PLAN
	DEL_SOHO_DET, FIND_CDS_STUDIES, FIX_MAIN_TIMES, FLUSH_CATALOG, GET_ALT
	GET_ANOMALY, GET_CAMPAIGN, GET_CDHS_DEXWIN, GET_CDHS_RASTER, GET_CDHS_SERIES
	GET_CDHS_VDSWIN, GET_CDS_PNTCAL, GET_COMPRESS, GET_DATAWIN, GET_DETAIL
	GET_EFFICIENCY, GET_EFF_AREA, GET_EXPER, GET_FLAG, GET_F_RASTER, GET_F_STUDY
	GET_GSET, GET_INSTRUMENT, GET_LINELIST, GET_MAIN, GET_MIRSHIFT, GET_PLAN
	GET_PROGRAM, GET_RASTER, GET_RAW, GET_RAW_FIL, GET_SOHO_DET, GET_STUDY, GET_TILTCAL
	GET_WAVECAL, GET_WAVE_EFF, LAST_KAP_VERS, LIST_ALT, LIST_ANOMALY, LIST_CAMPAIGN
	LIST_CDROM, LIST_COM_TIMES, LIST_DATAWIN, LIST_DETAIL, LIST_DLYD_TIMES, LIST_DSN
	LIST_EXPER, LIST_EXP_COMM, LIST_FLAG, LIST_F_RASTER, LIST_F_STUDY, LIST_GSET
	LIST_INST_DLYD, LIST_LINELIST, LIST_MAIN, LIST_MDI_M, LIST_NRT_RES, LIST_OBJECT
	LIST_OTHER_OBS, LIST_OTHER_RES, LIST_PLAN, LIST_PROGRAM, LIST_RAW, LIST_RES_TYPE
	LIST_SOHO_DET, LIST_V_RASTER, LIST_V_STUDY, MOD_CAMPAIGN, MOD_EXPER, MOD_GSET
	MOD_LINELIST, MOD_MAIN, MOD_V_RASTER, MOD_V_STUDY, PRG_ALT, PRG_ANOMALY, PRG_DETAIL
	PRG_FLAG, PRG_PLAN, PRG_SOHO_DET, PURGE_CDHSSTATE, REG_CDROM, SEARCH_HXRBS_DB
	SET_KAP_VERS, TP_DISP_RAST, UPD_PLAN, UPD_SOHO_DET, WHAT_CDHS_STUDY, WHAT_USES
	db_read_linelist_all [1], db_read_linelist_all [2]
	db_read_linelist_entry [1], db_read_linelist_entry [2]
	db_read_raster_all [1], db_read_raster_all [2], db_read_raster_entry [1]
	db_read_raster_entry [2], db_read_study_all [1], db_read_study_all [2]
	db_save_linelist_entry_create [1], db_save_linelist_entry_create [2]
	db_save_linelist_entry_update [1], db_save_linelist_entry_update [2]
	db_save_raster_entry_create [1], db_save_raster_entry_create [2]
	db_save_raster_entry_update [1], db_save_raster_entry_update [2]
	db_save_study_entry_create [1], db_save_study_entry_create [2]
	db_save_study_entry_create [3], db_save_study_entry_create [4]
	db_save_study_entry_update [1], db_save_study_entry_update [2]
	eis_get_esdb_details [1], eis_get_esdb_details [2]
	eis_get_science_details [1], eis_get_science_details [2]
	eis_get_science_details [3], eis_get_science_details [4]
	eis_get_science_entry [1], eis_get_science_entry [2]
	eis_get_science_raster_entry [1], eis_get_science_raster_entry [2]
	eis_get_study_raster_entry [1], eis_get_study_raster_entry [2]
	eis_get_technical_study_rasters [1], eis_get_technical_study_rasters [2]
	eis_get_timeline_details [1], eis_get_timeline_details [2]
	eis_linelist_gui [1], eis_linelist_gui [2], eis_raster_gui [1]
	eis_raster_gui [2], eis_study_gui [1], eis_study_gui [2]
	eis_update_timeline_science_entry [1]
	eis_update_timeline_science_entry [2]
	eis_write_science_component_database_table [1]
	eis_write_science_component_database_table [2]
	eis_write_time_component_database_table [1]
	eis_write_time_component_database_table [2]
 SIDE EFFECTS:
       the data base files currently opened are closed

 PROCEDURE CALLS:
       DB_INFO(), HOST_TO_IEEE
 HISTORY:
       version 2  D. Lindler  Oct. 1987
       For IDL version 2      August 1990
       William Thompson, GSFC/CDS (ARC), 30 May 1994
                Added support for external (IEEE) data format
       Converted to IDL V5.0   W. Landsman   September 1997


DBCLOSE [2] $SSW/gen/idl_libs/astron/database/dbclose.pro
[Previous] [Next]
 NAME:
       DBCLOSE
 PURPOSE:
       procedure to close a data base file

 CALLING SEQUENCE:  
       dbclose

 INPUTS:
       None

 OUTPUTS
       None

 CALLS: ***
	DB_INFO [1], DB_INFO [2], DB_INFO [3], HOST_TO_IEEE [1], HOST_TO_IEEE [2]
	HOST_TO_IEEE [3], HOST_TO_IEEE [4]
 CALLED BY:
	ADD_ALT, ADD_ANOMALY, ADD_CAMPAIGN, ADD_CDS_POINT, ADD_DATAWIN, ADD_DETAIL
	ADD_EFFICIENCY, ADD_EFF_AREA, ADD_EXPER, ADD_EXP_COMM, ADD_FLAG, ADD_F_RASTER
	ADD_F_STUDY, ADD_GSET, ADD_INST_DLYD, ADD_LINELIST, ADD_MAIN, ADD_MIRSHIFT
	ADD_NRT_RES, ADD_OTHER_OBS, ADD_PLAN, ADD_PROGRAM, ADD_RAW, ADD_RESOURCE
	ADD_RES_TYPE, ADD_TEL_MODE, ADD_TEL_SUBMODE, ADD_TILTCAL, ADD_T_STUDY
	ADD_V_RASTER, ADD_V_STUDY, ADD_WAVECAL, ADD_WAVE_EFF, CHECK_INTEG, CHK_T_STUDY
	CHK_V_STUDY, CLR_INST_DLYD, CLR_NRT_RES, CLR_OTHER_OBS, CLR_RESOURCE, CLR_TEL_MODE
	CLR_TEL_SUBMODE, CP_GET_HISTORY, CP_GET_MNEMONIC, DBBUILD [1], DBBUILD [2]
	DBBUILD [3], DBDELETE [1], DBDELETE [2], DBDELETE [3], DBOPEN [1], DBOPEN [2]
	DBOPEN [3], DBREPAIR, DEL_ALT, DEL_ANOMALY, DEL_DETAIL, DEL_FLAG, DEL_PLAN
	DEL_SOHO_DET, FIND_CDS_STUDIES, FIX_MAIN_TIMES, FLUSH_CATALOG, GET_ALT
	GET_ANOMALY, GET_CAMPAIGN, GET_CDHS_DEXWIN, GET_CDHS_RASTER, GET_CDHS_SERIES
	GET_CDHS_VDSWIN, GET_CDS_PNTCAL, GET_COMPRESS, GET_DATAWIN, GET_DETAIL
	GET_EFFICIENCY, GET_EFF_AREA, GET_EXPER, GET_FLAG, GET_F_RASTER, GET_F_STUDY
	GET_GSET, GET_INSTRUMENT, GET_LINELIST, GET_MAIN, GET_MIRSHIFT, GET_PLAN
	GET_PROGRAM, GET_RASTER, GET_RAW, GET_RAW_FIL, GET_SOHO_DET, GET_STUDY, GET_TILTCAL
	GET_WAVECAL, GET_WAVE_EFF, LAST_KAP_VERS, LIST_ALT, LIST_ANOMALY, LIST_CAMPAIGN
	LIST_CDROM, LIST_COM_TIMES, LIST_DATAWIN, LIST_DETAIL, LIST_DLYD_TIMES, LIST_DSN
	LIST_EXPER, LIST_EXP_COMM, LIST_FLAG, LIST_F_RASTER, LIST_F_STUDY, LIST_GSET
	LIST_INST_DLYD, LIST_LINELIST, LIST_MAIN, LIST_MDI_M, LIST_NRT_RES, LIST_OBJECT
	LIST_OTHER_OBS, LIST_OTHER_RES, LIST_PLAN, LIST_PROGRAM, LIST_RAW, LIST_RES_TYPE
	LIST_SOHO_DET, LIST_V_RASTER, LIST_V_STUDY, MOD_CAMPAIGN, MOD_EXPER, MOD_GSET
	MOD_LINELIST, MOD_MAIN, MOD_V_RASTER, MOD_V_STUDY, PRG_ALT, PRG_ANOMALY, PRG_DETAIL
	PRG_FLAG, PRG_PLAN, PRG_SOHO_DET, PURGE_CDHSSTATE, REG_CDROM, SEARCH_HXRBS_DB
	SET_KAP_VERS, TP_DISP_RAST, UPD_PLAN, UPD_SOHO_DET, WHAT_CDHS_STUDY, WHAT_USES
	db_read_linelist_all [1], db_read_linelist_all [2]
	db_read_linelist_entry [1], db_read_linelist_entry [2]
	db_read_raster_all [1], db_read_raster_all [2], db_read_raster_entry [1]
	db_read_raster_entry [2], db_read_study_all [1], db_read_study_all [2]
	db_save_linelist_entry_create [1], db_save_linelist_entry_create [2]
	db_save_linelist_entry_update [1], db_save_linelist_entry_update [2]
	db_save_raster_entry_create [1], db_save_raster_entry_create [2]
	db_save_raster_entry_update [1], db_save_raster_entry_update [2]
	db_save_study_entry_create [1], db_save_study_entry_create [2]
	db_save_study_entry_create [3], db_save_study_entry_create [4]
	db_save_study_entry_update [1], db_save_study_entry_update [2]
	eis_get_esdb_details [1], eis_get_esdb_details [2]
	eis_get_science_details [1], eis_get_science_details [2]
	eis_get_science_details [3], eis_get_science_details [4]
	eis_get_science_entry [1], eis_get_science_entry [2]
	eis_get_science_raster_entry [1], eis_get_science_raster_entry [2]
	eis_get_study_raster_entry [1], eis_get_study_raster_entry [2]
	eis_get_technical_study_rasters [1], eis_get_technical_study_rasters [2]
	eis_get_timeline_details [1], eis_get_timeline_details [2]
	eis_linelist_gui [1], eis_linelist_gui [2], eis_raster_gui [1]
	eis_raster_gui [2], eis_study_gui [1], eis_study_gui [2]
	eis_update_timeline_science_entry [1]
	eis_update_timeline_science_entry [2]
	eis_write_science_component_database_table [1]
	eis_write_science_component_database_table [2]
	eis_write_time_component_database_table [1]
	eis_write_time_component_database_table [2]
 SIDE EFFECTS:
       the data base files currently opened are closed

 PROCEDURE CALLS:
       DB_INFO(), HOST_TO_IEEE
 HISTORY:
       version 2  D. Lindler  Oct. 1987
       For IDL version 2      August 1990
       William Thompson, GSFC/CDS (ARC), 30 May 1994
                Added support for external (IEEE) data format
       Converted to IDL V5.0   W. Landsman   September 1997


DBCOMPARE [1] $SSW/gen/idl/database/dbcompare.pro
[Previous] [Next]
 NAME:
     DBCOMPARE
 PURPOSE:
     Display two entries in an IDL database side by side in a column format

 CALLING SEQUENCE:     
     dbcompare, list1, list2, [items, TEXTOUT= , /DIFF]  

 INPUTS:
     list1 - Integer scalar giving first entry number to be compared.
     list2 - Integer scalar giving second entry number to be compared.

 OPTIONAL INPUT-OUTPUT:
     items - items to be compared, if not supplied then all items will be
          compared.    The items can be specified in any of the following ways:

             form 1  scalar string giving item(s) as list of names
                     separated by commas
             form 2  string array giving list of item names
             form 3  string of form '$filename' giving name
                     of text file containing items (one item per line)                      line)
             form 4  integer scalar giving single item number or
                     integer vector list of item numbers
             form 5  Null string specifying interactive selection.   This
                     is the default if 'items' is not supplied
             form 6  '*'     select all items (= default)

            If items was undefined or a null string on input, then
            on output it will contain the items interactively selected.

 OPTIONAL INPUT KEYWORDS:
     /DIFF - If this keyword is set and non-zero, then only the items 
             in the database that differ will be printed

     TEXTOUT -  Scalar Integer (1-7) Used to determine output device.   See
               TEXTOPEN for more info.

 SYSTEM VARIABLES:
     Output device controlled by non-standard system variable !TEXTOUT, if 
     TEXTOUT keyword is not used.    

 CALLS: ***
	DBRD [1], DBRD [2], DBRD [3], DBXVAL [1], DBXVAL [2], DBXVAL [3], DB_INFO [1]
	DB_INFO [2], DB_INFO [3], DB_ITEM [1], DB_ITEM [2], DB_ITEM [3], DB_ITEM_INFO [1]
	DB_ITEM_INFO [2], DB_ITEM_INFO [3], TEXTCLOSE [1], TEXTCLOSE [2], TEXTCLOSE [3]
	TEXTOPEN [1], TEXTOPEN [2], TEXTOPEN [3]
 EXAMPLE:
     Display entries 3624 and 3625 in column form showing only the items
     that differ.
               IDL> dbcompare,3624,3625,/diff

 PROCEDURES USED:
     DB_INFO(), DB_ITEM, DB_ITEM_INFO(), DBRD, DBXVAL()
     TEXTOPEN, TEXTCLOSE
 HISTORY:
     Written,  W. Landsman            July 1996
     Fix documentation, add Syntax display    W. Landsman   November 1998   
     Replace DATATYPE() with size(/TNAME)   W. Landsman    November 2001
     Assume since V5.5, remove VMS call  W. Landsman       September 2006


DBCOMPARE [2] $SSW/gen/idl_libs/astron/database/dbcompare.pro
[Previous] [Next]
 NAME:
     DBCOMPARE
 PURPOSE:
     Display two entries in an IDL database side by side in a column format

 CALLING SEQUENCE:     
     dbcompare, list1, list2, [items, TEXTOUT= , /DIFF]  

 INPUTS:
     list1 - Integer scalar giving first entry number to be compared.
     list2 - Integer scalar giving second entry number to be compared.

 OPTIONAL INPUT-OUTPUT:
     items - items to be compared, if not supplied then all items will be
          compared.    The items can be specified in any of the following ways:

             form 1  scalar string giving item(s) as list of names
                     separated by commas
             form 2  string array giving list of item names
             form 3  string of form '$filename' giving name
                     of text file containing items (one item per line)                      line)
             form 4  integer scalar giving single item number or
                     integer vector list of item numbers
             form 5  Null string specifying interactive selection.   This
                     is the default if 'items' is not supplied
             form 6  '*'     select all items (= default)

            If items was undefined or a null string on input, then
            on output it will contain the items interactively selected.

 OPTIONAL INPUT KEYWORDS:
     /DIFF - If this keyword is set and non-zero, then only the items 
             in the database that differ will be printed

     TEXTOUT -  Scalar Integer (1-7) Used to determine output device.   See
               TEXTOPEN for more info.

 SYSTEM VARIABLES:
     Output device controlled by non-standard system variable !TEXTOUT, if 
     TEXTOUT keyword is not used.    

 CALLS: ***
	DBRD [1], DBRD [2], DBRD [3], DBXVAL [1], DBXVAL [2], DBXVAL [3], DB_INFO [1]
	DB_INFO [2], DB_INFO [3], DB_ITEM [1], DB_ITEM [2], DB_ITEM [3], DB_ITEM_INFO [1]
	DB_ITEM_INFO [2], DB_ITEM_INFO [3], TEXTCLOSE [1], TEXTCLOSE [2], TEXTCLOSE [3]
	TEXTOPEN [1], TEXTOPEN [2], TEXTOPEN [3]
 EXAMPLE:
     Display entries 3624 and 3625 in column form showing only the items
     that differ.
               IDL> dbcompare,3624,3625,/diff

 PROCEDURES USED:
     DB_INFO(), DB_ITEM, DB_ITEM_INFO(), DBRD, DBXVAL()
     TEXTOPEN, TEXTCLOSE
 HISTORY:
     Written,  W. Landsman            July 1996
     Fix documentation, add Syntax display    W. Landsman   November 1998   
     Replace DATATYPE() with size(/TNAME)   W. Landsman    November 2001
     Assume since V5.5, remove VMS call  W. Landsman       September 2006


DBCOMPRESS $SSW/gen/idl/database/dbcompress.pro
[Previous] [Next]
 NAME:
       DBCOMPRESS
 PURPOSE:
       Compress a .dbf database file after a call to DBDELETE
 EXPLANATION:
       The procedure DBDELETE will remove specified entries from a database
       but it will not free the unused space.     DBCOMPRESS will compress
       the .dbf file so that it only contains valid entries.   
 CALLING SEQUENCE:
       DBCOMPRESS, dbname
 INPUT PARAMETERS: 
       dbname - Name of the database to be compressed, scalar string
 NOTES:
       (1) Will not compress the index (.dbx) file.   The size of the .dbx file
       is controlled by the MaxEntries value in the database definition 
       (.dbd) file
       (2) The updated .dbf file is written in the current directory.
       This may need to be moved into the ZDBASE directory.
 PROCEDURE CALLS:
       DBOPEN, DB_INFO(), FIND_WITH_DEF()
 REVISION HISTORY:
       Written, W. Landsman      Raytheon STX        May 1998 
       Converted to IDL V5.0 June 1998
 CALLS:
 CALLED BY
	FLUSH_CATALOG, PRG_DETAIL, PRG_PLAN


DBCREATE [1] $SSW/gen/idl/database/dbcreate.pro
[Previous] [Next]
 NAME: 
       DBCREATE
 PURPOSE:      
       Create a new data base (.dbf), index (.dbx) or description (.dbh) file
 EXPLANATION:
       A database definition (.dbd) file must already exist.
       The default directory must be a ZDBASE: directory.

 CALLING SEQUENCE:     
       dbcreate, name,[ newindex, newdb, maxitems]  [,/EXTERNAL, MAXENTRY=]  

 INPUTS:       
       name- name of the data base (with no qualifier), scalar string. 
               The description will be read from the file "NAME".dbd 

 OPTIONAL INPUTS:      
       newindex - if non-zero then a new index file is created,
               otherwise it is assumed that changes do not affect the
               index file. (default=0)
       newdb - if non-zero then a new data base file (.dbf) will
               be created. Otherwise changes are assumed not to affect
               the file's present format.
       maxitems - maximum number of items in data base.
               If not supplied then the number of items is
               limited to 200.

 OUTPUTS:
       NONE.

 OPTIONAL INPUT KEYWORDS:       

       external - If set, then the database is written with an external data
               representation.  This allows the database files to be used on
               any computer platform, e.g. through NFS mounts, but some
               overhead is added to reading the files.  The default is to
               write the data in the native format of the computer being used.

               This keyword is only paid attention to if NEWDB or NEWINDEX
               are nonzero.  Otherwise, the database is opened to find
               out if it uses external representation or not.

               Extreme caution should be used if this keyword is used with
               only NEWINDEX set to a nonzero value.  This mode is allowed so
               that databases written on machines which already use the
               external data representation format, e.g. Sun workstations, to
               be marked external so that other machines can read them.


       MAXENTRY - positive integer giving the maximum number of entries in the
               database (needed to adjust the size of the index file).   This
               keyword can be used to supercede the  #maxentries line in the 
               .dbd file (the larger of the two numbers will be used).
 PROCEDURE CALLS:      
       GETTOK(), FIND_WITH_DEF(), HOST_TO_IEEE, ZPARCHECK

 CALLED BY:
	FLUSH_CATALOG, PRG_DETAIL, PRG_PLAN
 RESTRICTIONS: 
       If newdb=0 is not specified, the changes to the .dbd file can
       not alter the length of the records in the data base file.
       and may not alter positions of current fields in the file.
       permissible changes are:
               1) utilization of spares to create a item or field
               2) change in field name(s)
               3) respecification of index items
               4) changes in default print formats
               5) change in data base title
               6) changes in pointer specification to other data
                       data bases

       !priv must be 2 or greater to execute this routine.

 CALLS: ***
	FIND_WITH_DEF [1], FIND_WITH_DEF [2], FIND_WITH_DEF [3], GETTOK [1], GETTOK [2]
	GETTOK [3], GETTOK [4], HOST_TO_IEEE [1], HOST_TO_IEEE [2], HOST_TO_IEEE [3]
	HOST_TO_IEEE [4], ZPARCHECK [1], ZPARCHECK [2], ZPARCHECK [3]
 SIDE EFFECTS:  
       data base description file ZDBASE:name.dbh is created
       and optionally ZDBASE:name.dbf (data file) and
       ZDBASE.dbx (index file) if it is a new data base.

 REVISION HISTORY:     
       D. Lindler, GSFC/HRS, October 1987
       Modified:  Version 1, William Thompson, GSFC, 29 March 1994
                  Version 2, William Thompson, GSFC/CDS (ARC), 28 May 1994
                  Added EXTERNAL keyword.
       Version 4, William Thompson, GSFC, 3 November 1994
                       Modified to allow ZDBASE to be a path string.
       8/14/95  JKF/ACC - allow EXTERNAL data for newindex OR newdb modes.
       Make sure all databases closed before starting W. Landsman June 1997
       Added new unsigned and 64 bit integer datatypes W. Landsman July 2001
       Make sure to use lowercase filenames on Unix W. Landsman May 2006
       Added MAXENTRY keyword   W. Landsman July 2006
       Assume since V5.5, remove obsolete keywords to OPEN W. Landsman Sep2006


DBCREATE [2] $SSW/gen/idl_libs/astron/database/dbcreate.pro
[Previous] [Next]
 NAME: 
       DBCREATE
 PURPOSE:      
       Create a new data base (.dbf), index (.dbx) or description (.dbh) file
 EXPLANATION:
       A database definition (.dbd) file must already exist.
       The default directory must be a ZDBASE: directory.

 CALLING SEQUENCE:     
       dbcreate, name,[ newindex, newdb, maxitems]  [,/EXTERNAL, MAXENTRY=]  

 INPUTS:       
       name- name of the data base (with no qualifier), scalar string. 
               The description will be read from the file "NAME".dbd 

 OPTIONAL INPUTS:      
       newindex - if non-zero then a new index file is created,
               otherwise it is assumed that changes do not affect the
               index file. (default=0)
       newdb - if non-zero then a new data base file (.dbf) will
               be created. Otherwise changes are assumed not to affect
               the file's present format.
       maxitems - maximum number of items in data base.
               If not supplied then the number of items is
               limited to 200.

 OUTPUTS:
       NONE.

 OPTIONAL INPUT KEYWORDS:       

       external - If set, then the database is written with an external data
               representation.  This allows the database files to be used on
               any computer platform, e.g. through NFS mounts, but some
               overhead is added to reading the files.  The default is to
               write the data in the native format of the computer being used.

               This keyword is only paid attention to if NEWDB or NEWINDEX
               are nonzero.  Otherwise, the database is opened to find
               out if it uses external representation or not.

               Extreme caution should be used if this keyword is used with
               only NEWINDEX set to a nonzero value.  This mode is allowed so
               that databases written on machines which already use the
               external data representation format, e.g. Sun workstations, to
               be marked external so that other machines can read them.


       MAXENTRY - positive integer giving the maximum number of entries in the
               database (needed to adjust the size of the index file).   This
               keyword can be used to supercede the  #maxentries line in the 
               .dbd file (the larger of the two numbers will be used).
 PROCEDURE CALLS:      
       GETTOK(), FIND_WITH_DEF(), HOST_TO_IEEE, ZPARCHECK

 CALLED BY:
	FLUSH_CATALOG, PRG_DETAIL, PRG_PLAN
 RESTRICTIONS: 
       If newdb=0 is not specified, the changes to the .dbd file can
       not alter the length of the records in the data base file.
       and may not alter positions of current fields in the file.
       permissible changes are:
               1) utilization of spares to create a item or field
               2) change in field name(s)
               3) respecification of index items
               4) changes in default print formats
               5) change in data base title
               6) changes in pointer specification to other data
                       data bases

       !priv must be 2 or greater to execute this routine.

 CALLS: ***
	FIND_WITH_DEF [1], FIND_WITH_DEF [2], FIND_WITH_DEF [3], GETTOK [1], GETTOK [2]
	GETTOK [3], GETTOK [4], HOST_TO_IEEE [1], HOST_TO_IEEE [2], HOST_TO_IEEE [3]
	HOST_TO_IEEE [4], ZPARCHECK [1], ZPARCHECK [2], ZPARCHECK [3]
 SIDE EFFECTS:  
       data base description file ZDBASE:name.dbh is created
       and optionally ZDBASE:name.dbf (data file) and
       ZDBASE.dbx (index file) if it is a new data base.

 REVISION HISTORY:     
       D. Lindler, GSFC/HRS, October 1987
       Modified:  Version 1, William Thompson, GSFC, 29 March 1994
                  Version 2, William Thompson, GSFC/CDS (ARC), 28 May 1994
                  Added EXTERNAL keyword.
       Version 4, William Thompson, GSFC, 3 November 1994
                       Modified to allow ZDBASE to be a path string.
       8/14/95  JKF/ACC - allow EXTERNAL data for newindex OR newdb modes.
       Make sure all databases closed before starting W. Landsman June 1997
       Added new unsigned and 64 bit integer datatypes W. Landsman July 2001
       Make sure to use lowercase filenames on Unix W. Landsman May 2006
       Added MAXENTRY keyword   W. Landsman July 2006
       Assume since V5.5, remove obsolete keywords to OPEN W. Landsman Sep2006


DBDELETE [1] $SSW/gen/idl/database/dbdelete.pro
[Previous] [Next]
 NAME:
       DBDELETE
 PURPOSE:
       Deletes specified entries from data base

 CALLING SEQUENCE:
       DBDELETE, list, [ name, /DEBUG ]   

 INPUTS:
       list - list of entries to be deleted, scalar or vector
       name - optional name of data base, scalar string.  If not specified
               then the data base file must be previously opened for update 
               by DBOPEN.

 OPERATIONAL NOTES:
       !PRIV must be at least 3 to execute.

 CALLED BY:
	ADD_DATAWIN, ADD_EXPER, ADD_F_STUDY, ADD_LINELIST, ADD_V_STUDY, CLR_INST_DLYD
	CLR_NRT_RES, CLR_OTHER_OBS, CLR_RESOURCE, CLR_TEL_MODE, CLR_TEL_SUBMODE
	FLUSH_CATALOG, MOD_CAMPAIGN, PRG_ALT, PRG_ANOMALY, PRG_DETAIL, PRG_FLAG, PRG_PLAN
	PRG_SOHO_DET, PURGE_CDHSSTATE
 SIDE EFFECTS:
       The data base file (ZDBASE:name.dbf) is modified by removing the
       specified entries and reordering the remaining entry numbers
       accordingly (ie. if you delete entry 100, it will be replaced
       by entry 101 and the database will contain 1 less entry.

 EXAMPLE:
        Delete entries in a database STARS where RA=DEC = 0.0

        IDL> !PRIV= 3                           ;Set privileges
        IDL> dbopen,'STARS',1                   ;Open for update
        IDL> list = dbfind('ra=0.0,dec=0.0')    ;Obtain LIST vector
        IDL> dbdelete, list             ;Delete specified entries from db

 NOTES:
       The procedure is rather slow because the entire database is re-
       created with the specified entries deleted.
 CALLS: ***
	DBCLOSE [1], DBCLOSE [2], DBCLOSE [3], DBINDEX [1], DBINDEX [2], DBINDEX [3]
	DBOPEN [1], DBOPEN [2], DBOPEN [3], DBPUT [1], DBPUT [2], DBPUT [3], DB_INFO [1]
	DB_INFO [2], DB_INFO [3], ZPARCHECK [1], ZPARCHECK [2], ZPARCHECK [3]
 OPTIONAL KEYWORD INPUT:
        DEBUG - if this keyword is set and non-zero, then additional 
               diagnostics will be printed as each entry is deleted.
 COMMON BLOCKS:
       DBCOM
 PROCEDURE CALLS:
       DBINDEX, DB_INFO(), DBOPEN, DBPUT, ZPARCHECK
 HISTORY
       Version 2  D. Lindler  July, 1989
       Updated documentation   W. Landsman    December 1992
       William Thompson, GSFC, 28 February 1995
                       Fixed bug when external representation used.
       Fixed for case where second parameter supplied W. Landsman April 1996
       Use keyword DEBUG rather than !DEBUG   W. Landsman    May 1997
       Don't call DBINDEX if no indexed items  W. Landsman May 2006  
       Use TRUNCATE_LUN if V5.6 or later W. Landsman   Sep 2006 
       


DBDELETE [2] $SSW/gen/idl_libs/astron/database/dbdelete.pro
[Previous] [Next]
 NAME:
       DBDELETE
 PURPOSE:
       Deletes specified entries from data base

 CALLING SEQUENCE:
       DBDELETE, list, [ name, /DEBUG ]   

 INPUTS:
       list - list of entries to be deleted, scalar or vector
       name - optional name of data base, scalar string.  If not specified
               then the data base file must be previously opened for update 
               by DBOPEN.

 OPERATIONAL NOTES:
       !PRIV must be at least 3 to execute.

 CALLED BY:
	ADD_DATAWIN, ADD_EXPER, ADD_F_STUDY, ADD_LINELIST, ADD_V_STUDY, CLR_INST_DLYD
	CLR_NRT_RES, CLR_OTHER_OBS, CLR_RESOURCE, CLR_TEL_MODE, CLR_TEL_SUBMODE
	FLUSH_CATALOG, MOD_CAMPAIGN, PRG_ALT, PRG_ANOMALY, PRG_DETAIL, PRG_FLAG, PRG_PLAN
	PRG_SOHO_DET, PURGE_CDHSSTATE
 SIDE EFFECTS:
       The data base file (ZDBASE:name.dbf) is modified by removing the
       specified entries and reordering the remaining entry numbers
       accordingly (ie. if you delete entry 100, it will be replaced
       by entry 101 and the database will contain 1 less entry.

 EXAMPLE:
        Delete entries in a database STARS where RA=DEC = 0.0

        IDL> !PRIV= 3                           ;Set privileges
        IDL> dbopen,'STARS',1                   ;Open for update
        IDL> list = dbfind('ra=0.0,dec=0.0')    ;Obtain LIST vector
        IDL> dbdelete, list             ;Delete specified entries from db

 NOTES:
       The procedure is rather slow because the entire database is re-
       created with the specified entries deleted.
 CALLS: ***
	DBCLOSE [1], DBCLOSE [2], DBCLOSE [3], DBINDEX [1], DBINDEX [2], DBINDEX [3]
	DBOPEN [1], DBOPEN [2], DBOPEN [3], DBPUT [1], DBPUT [2], DBPUT [3], DB_INFO [1]
	DB_INFO [2], DB_INFO [3], ZPARCHECK [1], ZPARCHECK [2], ZPARCHECK [3]
 OPTIONAL KEYWORD INPUT:
        DEBUG - if this keyword is set and non-zero, then additional 
               diagnostics will be printed as each entry is deleted.
 COMMON BLOCKS:
       DBCOM
 PROCEDURE CALLS:
       DBINDEX, DB_INFO(), DBOPEN, DBPUT, ZPARCHECK
 HISTORY
       Version 2  D. Lindler  July, 1989
       Updated documentation   W. Landsman    December 1992
       William Thompson, GSFC, 28 February 1995
                       Fixed bug when external representation used.
       Fixed for case where second parameter supplied W. Landsman April 1996
       Use keyword DEBUG rather than !DEBUG   W. Landsman    May 1997
       Don't call DBINDEX if no indexed items  W. Landsman May 2006  
       Use TRUNCATE_LUN if V5.6 or later W. Landsman   Sep 2006 
       


DBEDIT [1] $SSW/gen/idl/database/dbedit.pro
[Previous] [Next]
 NAME:
      DBEDIT

 PURPOSE:
       Interactively edit specified fields in an IDL database. 
 EXPLANATION:
       The value of each field is displayed, and the user has the option
       of changing or keeping the value.  Widgets will be used if they
       are available.

 CALLING SEQUENCE:
       dbedit, list, [ items ]

 INPUTS:
       list - scalar or vector of database entry numbers.  Set list = 0 to 
       interactively add a new entry to a database.  Set list = -1 to edit 
       all entries.

 OPTIONAL INPUTS:
       items - list of items to be edited.  If omitted, all fields can be 
               edited.      

 KEYWORDS:
       BYTENUM = If set, treat byte variables as numbers instead of
                 characters.

 CALLS: ***
	ACKNOW_EVENT, DATATYPE [1], DATATYPE [2], DATATYPE [3], DBEDIT_BASIC [1]
	DBEDIT_BASIC [2], DBEDIT_BASIC [3], DBINDEX [1], DBINDEX [2], DBINDEX [3]
	DBOPEN [1], DBOPEN [2], DBOPEN [3], DBRD [1], DBRD [2], DBRD [3], DBWRT [1], DBWRT [2]
	DBWRT [3], DBXPUT [1], DBXPUT [2], DBXPUT [3], DBXVAL [1], DBXVAL [2], DBXVAL [3]
	DB_INFO [1], DB_INFO [2], DB_INFO [3], DB_ITEM [1], DB_ITEM [2], DB_ITEM [3]
	DB_ITEM_INFO [1], DB_ITEM_INFO [2], DB_ITEM_INFO [3], WIDEDIT, WIDGETEDIT_EVENT
	XMANAGER, ZPARCHECK [1], ZPARCHECK [2], ZPARCHECK [3]
 COMMON BLOCKS:
       DB_COM -- contains information about the opened database.
       DBW_C -- contains information intrinsic to this program.

 SIDE EFFECTS:
       Will update the database files.

 RESTRICTIIONS:
       Database must be opened for update prior to running
       this program.  User must be running DBEDIT from an 
       account that has write privileges to the databases.  

       If one is editing an indexed item, then after all edits are complete,
       DBINDEX will be called to reindex the entire item.    This may
       be time consuming.

       Cannot be used to edit items with multiple values

 EXAMPLE:
       Suppose one had new parallaxes for all stars fainter than 5th magnitude
       in the Yale Bright Star Catalog and wanted to update the PRLAX and
       PRLAX_CODE fields with these new numbers

       IDL> !priv=2                    
       IDL> dbopen, 'yale_bs', 1            ;Open catalog for update
       IDL> list = dbfind( 'v>5')     ;Find fainter than 5th magnitude
       IDL> dbedit, list, 'prlax, prlax_code'   ;Manual entry of new values

 PROCEDURE:
       (1) Use the cursor and point to the value you want to edit.   
       (2) Type the new field value over the old field value.
       (3) When you are done changing all of the field values for each entry
       save the entry to the databases by pressing 'SAVE ENTRY TO DATABASES'.
       Here all of the values will be checked to see if they are the correct
       data type.  If a field value is not of the correct data type, it will
       not be saved.  

       Use the buttons "PREV ENTRY" and "NEXT ENTRY" to move between entry 
       numbers.  You must save each entry before going on to another entry in 
       order for your changes to be saved.

       Pressing "RESET THIS ENTRY" will remove any unsaved changes to the 
       current entry.

REVISION HISTORY:
       Adapted from Landsman's DBEDIT
       added widgets,  Melissa Marsh, HSTX, August 1993
       do not need to press return after entering each entry,
                       fixed layout problem on SUN,
                       Melissa Marsh, HSTX, January 1994
       Only updates the fields which are changed. Joel Offenberg, HSTX, Mar 94
       Corrected test for changed fields  Wayne Landsman  HSTX, Mar 94
       Removed a couple of redundant statements W. Landsman HSTX Jan 96
       Converted to IDL V5.0   W. Landsman   September 1997
       Replace DATAYPE() with size(/TNAME)   W. Landsman   November 2001
       Work for entry numbers > 32767     W. Landsman   December 2001
       Added /BYTENUM  William Thompson        13-Mar-2006
       Use DIALOG_MESSAGE for error messages  W. Landsman  April 2006
       Assume since V5.5, remove VMS support  W. Landsman  Sep 2006


DBEDIT [2] $SSW/gen/idl_libs/astron/database/dbedit.pro
[Previous] [Next]
 NAME:
      DBEDIT

 PURPOSE:
       Interactively edit specified fields in an IDL database. 
 EXPLANATION:
       The value of each field is displayed, and the user has the option
       of changing or keeping the value.  Widgets will be used if they
       are available.

 CALLING SEQUENCE:
       dbedit, list, [ items ]

 INPUTS:
       list - scalar or vector of database entry numbers.  Set list = 0 to 
       interactively add a new entry to a database.  Set list = -1 to edit 
       all entries.

 OPTIONAL INPUTS:
       items - list of items to be edited.  If omitted, all fields can be 
               edited.      

 KEYWORDS:
       BYTENUM = If set, treat byte variables as numbers instead of
                 characters.

 CALLS: ***
	ACKNOW_EVENT, DATATYPE [1], DATATYPE [2], DATATYPE [3], DBEDIT_BASIC [1]
	DBEDIT_BASIC [2], DBEDIT_BASIC [3], DBINDEX [1], DBINDEX [2], DBINDEX [3]
	DBOPEN [1], DBOPEN [2], DBOPEN [3], DBRD [1], DBRD [2], DBRD [3], DBWRT [1], DBWRT [2]
	DBWRT [3], DBXPUT [1], DBXPUT [2], DBXPUT [3], DBXVAL [1], DBXVAL [2], DBXVAL [3]
	DB_INFO [1], DB_INFO [2], DB_INFO [3], DB_ITEM [1], DB_ITEM [2], DB_ITEM [3]
	DB_ITEM_INFO [1], DB_ITEM_INFO [2], DB_ITEM_INFO [3], WIDEDIT, WIDGETEDIT_EVENT
	XMANAGER, ZPARCHECK [1], ZPARCHECK [2], ZPARCHECK [3]
 COMMON BLOCKS:
       DB_COM -- contains information about the opened database.
       DBW_C -- contains information intrinsic to this program.

 SIDE EFFECTS:
       Will update the database files.

 RESTRICTIIONS:
       Database must be opened for update prior to running
       this program.  User must be running DBEDIT from an 
       account that has write privileges to the databases.  

       If one is editing an indexed item, then after all edits are complete,
       DBINDEX will be called to reindex the entire item.    This may
       be time consuming.

       Cannot be used to edit items with multiple values

 EXAMPLE:
       Suppose one had new parallaxes for all stars fainter than 5th magnitude
       in the Yale Bright Star Catalog and wanted to update the PRLAX and
       PRLAX_CODE fields with these new numbers

       IDL> !priv=2                    
       IDL> dbopen, 'yale_bs', 1            ;Open catalog for update
       IDL> list = dbfind( 'v>5')     ;Find fainter than 5th magnitude
       IDL> dbedit, list, 'prlax, prlax_code'   ;Manual entry of new values

 PROCEDURE:
       (1) Use the cursor and point to the value you want to edit.   
       (2) Type the new field value over the old field value.
       (3) When you are done changing all of the field values for each entry
       save the entry to the databases by pressing 'SAVE ENTRY TO DATABASES'.
       Here all of the values will be checked to see if they are the correct
       data type.  If a field value is not of the correct data type, it will
       not be saved.  

       Use the buttons "PREV ENTRY" and "NEXT ENTRY" to move between entry 
       numbers.  You must save each entry before going on to another entry in 
       order for your changes to be saved.

       Pressing "RESET THIS ENTRY" will remove any unsaved changes to the 
       current entry.

REVISION HISTORY:
       Adapted from Landsman's DBEDIT
       added widgets,  Melissa Marsh, HSTX, August 1993
       do not need to press return after entering each entry,
                       fixed layout problem on SUN,
                       Melissa Marsh, HSTX, January 1994
       Only updates the fields which are changed. Joel Offenberg, HSTX, Mar 94
       Corrected test for changed fields  Wayne Landsman  HSTX, Mar 94
       Removed a couple of redundant statements W. Landsman HSTX Jan 96
       Converted to IDL V5.0   W. Landsman   September 1997
       Replace DATAYPE() with size(/TNAME)   W. Landsman   November 2001
       Work for entry numbers > 32767     W. Landsman   December 2001
       Added /BYTENUM  William Thompson        13-Mar-2006
       Use DIALOG_MESSAGE for error messages  W. Landsman  April 2006
       Assume since V5.5, remove VMS support  W. Landsman  Sep 2006


DBEDIT_BASIC [1] $SSW/gen/idl/database/dbedit_basic.pro
[Previous] [Next]
 NAME:
       DBEDIT_BASIC
 PURPOSE:
       Subroutine of DBEDIT_BASIC to edit a database on a dumb terminal.
 EXPLANATION:
       Interactively edit specified fields in a database.  The
       value of each field is displayed, and the user has the option
       of changing or keeping the value.

 CALLING SEQUENCE:
       dbedit_basic, list, [ items ]

 INPUTS:
       list - scalar or vector of database entry numbers.  Set LIST=0
               to interactively add a new entry to a database.

 OPTIONAL INPUTS
       items - list of items to be edited.  If not supplied, then the
               value of every field will be displayed.

 NOTES:
       (1) Database must be opened for update (dbopen,<dbname>,1) before
       calling DBEDIT_BASIC.  User must have write privileges on the database
       files.
       (2) User gets a second chance to look at edited values, before
       they are actually written to the database

 PROMPTS:
       The item values for each entry to be edited are first displayed
       User is the asked "EDIT VALUES IN THIS ENTRY (Y(es), N(o), or Q(uit))?
       If user answers 'Y' or hits RETURN, then each item is displayed
       with its current value, which the user can update.  If user answered
       'N' then DBEDIT_BASIC skips to the next  entry.   If user answers 'Q'
       then DBEDIT will exit, saving all previous changes.

 CALLS: ***
	DATATYPE [1], DATATYPE [2], DATATYPE [3], DBINDEX [1], DBINDEX [2], DBINDEX [3]
	DBOPEN [1], DBOPEN [2], DBOPEN [3], DBPRINT [1], DBPRINT [2], DBPRINT [3], DBRD [1]
	DBRD [2], DBRD [3], DBWRT [1], DBWRT [2], DBWRT [3], DBXPUT [1], DBXPUT [2]
	DBXPUT [3], DBXVAL [1], DBXVAL [2], DBXVAL [3], DB_INFO [1], DB_INFO [2]
	DB_INFO [3], DB_ITEM [1], DB_ITEM [2], DB_ITEM [3], DB_ITEM_INFO [1]
	DB_ITEM_INFO [2], DB_ITEM_INFO [3], ZPARCHECK [1], ZPARCHECK [2], ZPARCHECK [3]
 CALLED BY:
	DBEDIT [1], DBEDIT [2], DBEDIT [3]
 EXAMPLE:
       Suppose V magnitudes (V_MAG) in a database STARS with unknown values 
       were assigned a value of 99.9.  Once the true values become known, the
       database can be edited

       IDL> !PRIV=2 & dbopen,'STARS',1         ;Open database for update
       IDL> list =  dbfind('V_MAG=99.9')       ;Get list of bad V_MAG values
       IDL> dbedit,list,'V_MAG'       ;Interactively insert good V_MAG values

 REVISION HISTORY:
       Written  W. Landsman     STX        April, 1989
       Rename DBEDIT_BASIC from DBEDIT            July, 1993
       Converted to IDL V5.0   W. Landsman   September 1997
       Change DATATYPE() to size(/TNAME)  W. Landsman   November 2001


DBEDIT_BASIC [2] $SSW/gen/idl_libs/astron/database/dbedit_basic.pro
[Previous] [Next]
 NAME:
       DBEDIT_BASIC
 PURPOSE:
       Subroutine of DBEDIT_BASIC to edit a database on a dumb terminal.
 EXPLANATION:
       Interactively edit specified fields in a database.  The
       value of each field is displayed, and the user has the option
       of changing or keeping the value.

 CALLING SEQUENCE:
       dbedit_basic, list, [ items ]

 INPUTS:
       list - scalar or vector of database entry numbers.  Set LIST=0
               to interactively add a new entry to a database.

 OPTIONAL INPUTS
       items - list of items to be edited.  If not supplied, then the
               value of every field will be displayed.

 NOTES:
       (1) Database must be opened for update (dbopen,<dbname>,1) before
       calling DBEDIT_BASIC.  User must have write privileges on the database
       files.
       (2) User gets a second chance to look at edited values, before
       they are actually written to the database

 PROMPTS:
       The item values for each entry to be edited are first displayed
       User is the asked "EDIT VALUES IN THIS ENTRY (Y(es), N(o), or Q(uit))?
       If user answers 'Y' or hits RETURN, then each item is displayed
       with its current value, which the user can update.  If user answered
       'N' then DBEDIT_BASIC skips to the next  entry.   If user answers 'Q'
       then DBEDIT will exit, saving all previous changes.

 CALLS: ***
	DATATYPE [1], DATATYPE [2], DATATYPE [3], DBINDEX [1], DBINDEX [2], DBINDEX [3]
	DBOPEN [1], DBOPEN [2], DBOPEN [3], DBPRINT [1], DBPRINT [2], DBPRINT [3], DBRD [1]
	DBRD [2], DBRD [3], DBWRT [1], DBWRT [2], DBWRT [3], DBXPUT [1], DBXPUT [2]
	DBXPUT [3], DBXVAL [1], DBXVAL [2], DBXVAL [3], DB_INFO [1], DB_INFO [2]
	DB_INFO [3], DB_ITEM [1], DB_ITEM [2], DB_ITEM [3], DB_ITEM_INFO [1]
	DB_ITEM_INFO [2], DB_ITEM_INFO [3], ZPARCHECK [1], ZPARCHECK [2], ZPARCHECK [3]
 CALLED BY:
	DBEDIT [1], DBEDIT [2], DBEDIT [3]
 EXAMPLE:
       Suppose V magnitudes (V_MAG) in a database STARS with unknown values 
       were assigned a value of 99.9.  Once the true values become known, the
       database can be edited

       IDL> !PRIV=2 & dbopen,'STARS',1         ;Open database for update
       IDL> list =  dbfind('V_MAG=99.9')       ;Get list of bad V_MAG values
       IDL> dbedit,list,'V_MAG'       ;Interactively insert good V_MAG values

 REVISION HISTORY:
       Written  W. Landsman     STX        April, 1989
       Rename DBEDIT_BASIC from DBEDIT            July, 1993
       Converted to IDL V5.0   W. Landsman   September 1997
       Change DATATYPE() to size(/TNAME)  W. Landsman   November 2001


DBEXT [1] $SSW/gen/idl/database/dbext.pro
[Previous] [Next]
 NAME:
       DBEXT
 PURPOSE:
       Extract values of up to 12 items from an IDL database 
 EXPLANATION:
       Procedure to extract values of up to 12 items from
       data base file, and place into IDL variables

 CALLING SEQUENCE:
       dbext,list,items,v1,[v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12]

 INPUTS:
       list - list of entry numbers to be printed, vector or scalar
               If list = -1, then all entries will be extracted.
               list may be converted to a vector by DBEXT 
       items - standard item list specification.  See DBPRINT for 
               the 6 different ways that items may be specified. 

 OUTPUTS:
       v1...v12 - the vectors of values for up to 12 items.

 CALLS: ***
	DBEXT_DBF [1], DBEXT_DBF [2], DBEXT_DBF [3], DB_INFO [1], DB_INFO [2], DB_INFO [3]
	DB_ITEM [1], DB_ITEM [2], DB_ITEM [3], DB_ITEM_INFO [1], DB_ITEM_INFO [2]
	DB_ITEM_INFO [3], ZPARCHECK [1], ZPARCHECK [2], ZPARCHECK [3]
 CALLED BY:
	ADD_ALT, ADD_ANOMALY, ADD_DATAWIN, ADD_DETAIL, ADD_EXP_COMM, ADD_FLAG, ADD_F_RASTER
	ADD_F_STUDY, ADD_GSET, ADD_LINELIST, ADD_PLAN, ADD_PROGRAM, ADD_RAW, ADD_RES_TYPE
	ADD_T_STUDY, ADD_V_RASTER, ADD_V_STUDY, CHECK_INTEG, CHK_DATAWIN, CHK_F_RASTER
	CHK_F_STUDY, CHK_LINELIST, CHK_V_RASTER, CHK_V_STUDY, CLR_INST_DLYD, CLR_NRT_RES
	CLR_OTHER_OBS, CLR_RESOURCE, CLR_TEL_MODE, CLR_TEL_SUBMODE, CP_GET_HISTORY
	CP_GET_MNEMONIC, DBCIRCLE [1], DBCIRCLE [2], DBFIND [1], DBFIND [2], DBFIND [3]
	DBGET [1], DBGET [2], DBGET [3], DBMATCH [1], DBMATCH [2], DBMATCH [3], DBREPAIR
	DBSORT [1], DBSORT [2], DBSORT [3], DBUPDATE [1], FIND_CDS_STUDIES, FIX_MAIN_TIMES
	FIX_OBS_SEQ, FLUSH_CATALOG, GET_ALT, GET_CAMPAIGN, GET_CDHS_DEXWIN
	GET_CDHS_RASTER, GET_CDHS_SERIES, GET_CDHS_VDSWIN, GET_CDS_PNTCAL, GET_COMPRESS
	GET_DATAWIN, GET_DETAIL, GET_EFFICIENCY, GET_EFF_AREA, GET_EXPER, GET_FLAG
	GET_F_RASTER, GET_F_STUDY, GET_GSET, GET_INSTRUMENT, GET_LINELIST, GET_MAIN
	GET_MIRSHIFT, GET_PLAN, GET_PROGRAM, GET_RASTER, GET_RAW, GET_RAW_FIL, GET_SOHO_DET
	GET_STUDY, GET_TILTCAL, GET_WAVECAL, GET_WAVE_EFF, IMDBASE, LAST_KAP_VERS, LIST_ALT
	LIST_CAMPAIGN, LIST_CDROM, LIST_COM_TIMES, LIST_DATAWIN, LIST_DETAIL
	LIST_DLYD_TIMES, LIST_DSN, LIST_EXPER, LIST_EXP_COMM, LIST_FLAG, LIST_F_RASTER
	LIST_F_STUDY, LIST_GSET, LIST_INST_DLYD, LIST_LINELIST, LIST_MAIN, LIST_MDI_M
	LIST_NRT_RES, LIST_OBJECT, LIST_OTHER_OBS, LIST_OTHER_RES, LIST_PLAN, LIST_PROGRAM
	LIST_RAW, LIST_RES_TYPE, LIST_SOHO_DET, LIST_V_RASTER, LIST_V_STUDY, MOD_EXPER
	PRG_DETAIL, PRG_PLAN, PURGE_CDHSSTATE, SEARCH_HXRBS_DB, UPD_PLAN, UPD_SOHO_DET
	WHAT_USES, eis_get_timeline_details [1], eis_get_timeline_details [2]
 EXAMPLE:
       Extract all RA and DEC values from the currently opened database, and
       place into the IDL vectors, IDLRA and IDLDEC.

               IDL> DBEXT,-1,'RA,DEC',idlra,idldec

 HISTORY
       version 2  D. Lindler  NOV. 1987
       check for INDEXED items   W. Landsman   Feb. 1989
       Converted to IDL V5.0   W. Landsman   September 1997
       Avoid EXECUTE() call for V6.1 or later  W. Landsman   December 2006


DBEXT [2] $SSW/gen/idl/database/dbfix.pro
[Previous] [Next]
 Project     :	SOHO - CDS

 Name        :	
	DBEXT
 Purpose     :	
	Extract values of up to 12 items from data base file.
 Explanation :	
	Procedure to extract values of up to 12 items from
	data base file, and place into IDL variables

 Use         :	
	dbext,list,items,v1,[v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12]

 CALLED BY:
	ADD_ALT, ADD_ANOMALY, ADD_DATAWIN, ADD_DETAIL, ADD_EXP_COMM, ADD_FLAG, ADD_F_RASTER
	ADD_F_STUDY, ADD_GSET, ADD_LINELIST, ADD_PLAN, ADD_PROGRAM, ADD_RAW, ADD_RES_TYPE
	ADD_T_STUDY, ADD_V_RASTER, ADD_V_STUDY, CHECK_INTEG, CHK_DATAWIN, CHK_F_RASTER
	CHK_F_STUDY, CHK_LINELIST, CHK_V_RASTER, CHK_V_STUDY, CLR_INST_DLYD, CLR_NRT_RES
	CLR_OTHER_OBS, CLR_RESOURCE, CLR_TEL_MODE, CLR_TEL_SUBMODE, CP_GET_HISTORY
	CP_GET_MNEMONIC, DBCIRCLE [1], DBCIRCLE [2], DBFIND [1], DBFIND [2], DBFIND [3]
	DBGET [1], DBGET [2], DBGET [3], DBMATCH [1], DBMATCH [2], DBMATCH [3], DBREPAIR
	DBSORT [1], DBSORT [2], DBSORT [3], DBUPDATE [1], FIND_CDS_STUDIES, FIX_MAIN_TIMES
	FIX_OBS_SEQ, FLUSH_CATALOG, GET_ALT, GET_CAMPAIGN, GET_CDHS_DEXWIN
	GET_CDHS_RASTER, GET_CDHS_SERIES, GET_CDHS_VDSWIN, GET_CDS_PNTCAL, GET_COMPRESS
	GET_DATAWIN, GET_DETAIL, GET_EFFICIENCY, GET_EFF_AREA, GET_EXPER, GET_FLAG
	GET_F_RASTER, GET_F_STUDY, GET_GSET, GET_INSTRUMENT, GET_LINELIST, GET_MAIN
	GET_MIRSHIFT, GET_PLAN, GET_PROGRAM, GET_RASTER, GET_RAW, GET_RAW_FIL, GET_SOHO_DET
	GET_STUDY, GET_TILTCAL, GET_WAVECAL, GET_WAVE_EFF, IMDBASE, LAST_KAP_VERS, LIST_ALT
	LIST_CAMPAIGN, LIST_CDROM, LIST_COM_TIMES, LIST_DATAWIN, LIST_DETAIL
	LIST_DLYD_TIMES, LIST_DSN, LIST_EXPER, LIST_EXP_COMM, LIST_FLAG, LIST_F_RASTER
	LIST_F_STUDY, LIST_GSET, LIST_INST_DLYD, LIST_LINELIST, LIST_MAIN, LIST_MDI_M
	LIST_NRT_RES, LIST_OBJECT, LIST_OTHER_OBS, LIST_OTHER_RES, LIST_PLAN, LIST_PROGRAM
	LIST_RAW, LIST_RES_TYPE, LIST_SOHO_DET, LIST_V_RASTER, LIST_V_STUDY, MOD_EXPER
	PRG_DETAIL, PRG_PLAN, PURGE_CDHSSTATE, SEARCH_HXRBS_DB, UPD_PLAN, UPD_SOHO_DET
	WHAT_USES, eis_get_timeline_details [1], eis_get_timeline_details [2]
	EXAMPLE: Extract all RA and DEC values from the currently opened
	database, and place into the IDL vectors, IDLRA and IDLDEC.

		IDL> DBEXT,-1,'RA,DEC',idlra,idldec

 Inputs      :	
	list - list of entry numbers to be printed, vector or scalar
		If list = -1, then all entries will be extracted.
		list may be converted to a vector by DBEXT 
	items - standard item list specification.  See DBPRINT for 
		the 6 different ways that items may be specified. 

 Opt. Inputs :	None.

 Outputs     :	
	v1...v12 - the vectors of values for up to 12 items.

 Opt. Outputs:	None.

 Keywords    :	None.

 Calls       : ***
	DBEXT_DBF [1], DBEXT_DBF [2], DBEXT_DBF [3], DBFIX, DBINDEX [1], DBINDEX [2]
	DBINDEX [3], DBRD [1], DBRD [2], DBRD [3], DBUPDATE [1], DBUPDATE [2], DBUPDATE [3]
	DBUPDATE [4], DBWRT [1], DBWRT [2], DBWRT [3], DBXPUT [1], DBXPUT [2], DBXPUT [3]
	DB_INFO [1], DB_INFO [2], DB_INFO [3], DB_ITEM [1], DB_ITEM [2], DB_ITEM [3]
	DB_ITEM_INFO [1], DB_ITEM_INFO [2], DB_ITEM_INFO [3], DPRINT, IS_IEEE_BIG [1]
	IS_IEEE_BIG [2], TRIM, ZPARCHECK [1], ZPARCHECK [2], ZPARCHECK [3]
 Common      :	None.

 Restrictions:	None.

 Side effects:	None.

 Category    :	Utilities, Database

 Prev. Hist. :	
	version 2  D. Lindler  NOV. 1987
	check for INDEXED items   W. Landsman   Feb. 1989

 Written     :	D. Lindler, GSFC/HRS, November 1987

 Modified    :	Version 1, William Thompson, GSFC, 29 March 1994
			Incorporated into CDS library

 Version     :	Version 1, 29 March 1994
               Version 2, 17 Oct 2001 - added check for duplicate entries


DBEXT [3] $SSW/gen/idl_libs/astron/database/dbext.pro
[Previous] [Next]
 NAME:
       DBEXT
 PURPOSE:
       Extract values of up to 12 items from an IDL database 
 EXPLANATION:
       Procedure to extract values of up to 12 items from
       data base file, and place into IDL variables

 CALLING SEQUENCE:
       dbext,list,items,v1,[v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12]

 INPUTS:
       list - list of entry numbers to be printed, vector or scalar
               If list = -1, then all entries will be extracted.
               list may be converted to a vector by DBEXT 
       items - standard item list specification.  See DBPRINT for 
               the 6 different ways that items may be specified. 

 OUTPUTS:
       v1...v12 - the vectors of values for up to 12 items.

 CALLS: ***
	DBEXT_DBF [1], DBEXT_DBF [2], DBEXT_DBF [3], DB_INFO [1], DB_INFO [2], DB_INFO [3]
	DB_ITEM [1], DB_ITEM [2], DB_ITEM [3], DB_ITEM_INFO [1], DB_ITEM_INFO [2]
	DB_ITEM_INFO [3], ZPARCHECK [1], ZPARCHECK [2], ZPARCHECK [3]
 CALLED BY:
	ADD_ALT, ADD_ANOMALY, ADD_DATAWIN, ADD_DETAIL, ADD_EXP_COMM, ADD_FLAG, ADD_F_RASTER
	ADD_F_STUDY, ADD_GSET, ADD_LINELIST, ADD_PLAN, ADD_PROGRAM, ADD_RAW, ADD_RES_TYPE
	ADD_T_STUDY, ADD_V_RASTER, ADD_V_STUDY, CHECK_INTEG, CHK_DATAWIN, CHK_F_RASTER
	CHK_F_STUDY, CHK_LINELIST, CHK_V_RASTER, CHK_V_STUDY, CLR_INST_DLYD, CLR_NRT_RES
	CLR_OTHER_OBS, CLR_RESOURCE, CLR_TEL_MODE, CLR_TEL_SUBMODE, CP_GET_HISTORY
	CP_GET_MNEMONIC, DBCIRCLE [1], DBCIRCLE [2], DBFIND [1], DBFIND [2], DBFIND [3]
	DBGET [1], DBGET [2], DBGET [3], DBMATCH [1], DBMATCH [2], DBMATCH [3], DBREPAIR
	DBSORT [1], DBSORT [2], DBSORT [3], DBUPDATE [1], FIND_CDS_STUDIES, FIX_MAIN_TIMES
	FIX_OBS_SEQ, FLUSH_CATALOG, GET_ALT, GET_CAMPAIGN, GET_CDHS_DEXWIN
	GET_CDHS_RASTER, GET_CDHS_SERIES, GET_CDHS_VDSWIN, GET_CDS_PNTCAL, GET_COMPRESS
	GET_DATAWIN, GET_DETAIL, GET_EFFICIENCY, GET_EFF_AREA, GET_EXPER, GET_FLAG
	GET_F_RASTER, GET_F_STUDY, GET_GSET, GET_INSTRUMENT, GET_LINELIST, GET_MAIN
	GET_MIRSHIFT, GET_PLAN, GET_PROGRAM, GET_RASTER, GET_RAW, GET_RAW_FIL, GET_SOHO_DET
	GET_STUDY, GET_TILTCAL, GET_WAVECAL, GET_WAVE_EFF, IMDBASE, LAST_KAP_VERS, LIST_ALT
	LIST_CAMPAIGN, LIST_CDROM, LIST_COM_TIMES, LIST_DATAWIN, LIST_DETAIL
	LIST_DLYD_TIMES, LIST_DSN, LIST_EXPER, LIST_EXP_COMM, LIST_FLAG, LIST_F_RASTER
	LIST_F_STUDY, LIST_GSET, LIST_INST_DLYD, LIST_LINELIST, LIST_MAIN, LIST_MDI_M
	LIST_NRT_RES, LIST_OBJECT, LIST_OTHER_OBS, LIST_OTHER_RES, LIST_PLAN, LIST_PROGRAM
	LIST_RAW, LIST_RES_TYPE, LIST_SOHO_DET, LIST_V_RASTER, LIST_V_STUDY, MOD_EXPER
	PRG_DETAIL, PRG_PLAN, PURGE_CDHSSTATE, SEARCH_HXRBS_DB, UPD_PLAN, UPD_SOHO_DET
	WHAT_USES, eis_get_timeline_details [1], eis_get_timeline_details [2]
 EXAMPLE:
       Extract all RA and DEC values from the currently opened database, and
       place into the IDL vectors, IDLRA and IDLDEC.

               IDL> DBEXT,-1,'RA,DEC',idlra,idldec

 HISTORY
       version 2  D. Lindler  NOV. 1987
       check for INDEXED items   W. Landsman   Feb. 1989
       Converted to IDL V5.0   W. Landsman   September 1997
       Avoid EXECUTE() call for V6.1 or later  W. Landsman   December 2006


DBEXT_DBF [1] $SSW/gen/idl/database/dbext_dbf.pro
[Previous] [Next]
 NAME:
       DBEXT_DBF
 PURPOSE:
       Subroutine of DBEXT to extract values of up to 18 items from a database 
 EXPLANATION:
       This is a subroutine of DBEXT, which is the routine a user should 
       normally use.

 CALLING SEQUENCE:
       dbext_dbf,list,dbno,sbyte,nbytes,idltype,nval,v1,[ v2,v3,v4,v5,v6,v7,
                  v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,v18 ITEM_DBNO = ]

 INPUTS:
       list - list of entry numbers to extract desired items.   It is the 
               entry numbers in the primary data base unless dbno is greater 
               than or equal to -1.  In that case it is the entry number in 
               the specified data base.
       dbno - number of the opened db file
               if set to -1 then all data bases are included
       sbyte - starting byte in the entry.  If single data base then it must 
               be the starting byte for that data base only and not the 
               concatenation of db records 
       nbytes - number of bytes in the entry
       idltype - idl data type of each item to be extracted
       nval - number of values per entry of each item to be extracted

 OUTPUTS:
       v1...v18 - the vectors of values for up to 18 items

 OPTIONAL INPUT KEYWORD:
       item_dbno - A vector of the individual database numbers for each item.
               Simplifies the code for linked databases
 PROCEDURE CALLS:
       DB_INFO(), DB_ITEM_INFO(), DBRD, DBXVAL(), IS_IEEE_BIG(), IEEE_TO_HOST
 HISTORY
       version 1  D. Lindler  Nov. 1987
       Extract multiple valued entries    W. Landsman   May 1989
       William Thompson, GSFC/CDS (ARC), 1 June 1994
               Added support for external (IEEE) representation.
       Work with multiple element string items  W. Landsman  August 1995
       Increase speed for external databases on IEEE machines WBL August 1996
       IEEE conversion implemented on blocks of entries using BIG
       Added keyword ITEM_DBNO     R. Schwartz, GSFC/SDAC, August 1996
       Return a vector even if only 1 value W. Thompson  October 1996
       Change variable name of BYTESWAP to BSWAP  W. Thompson Mar 1997
       Use /OVERWRITE with reform   W. Landsman   May 1997
       Converted to IDL V5.0   W. Landsman   September 1997
       Increase maximum number of items to 18  W. Landsman  November 1999
       2 May 2003, W. Thompson, Use DBXVAL with BSWAP instead of IEEE_TO_HOST.
       Avoid EXECUTE() for V6.1 or later  W. Landsman Jan 2007 
 CALLS:
 CALLED BY
	DBEXT [1], DBEXT [2], DBEXT [3], DBEXT [4], DBINDEX [1], DBINDEX [2], DBINDEX [3]
	DBUPDATE [1]


DBEXT_DBF [2] $SSW/gen/idl_libs/astron/database/dbext_dbf.pro
[Previous] [Next]
 NAME:
       DBEXT_DBF
 PURPOSE:
       Subroutine of DBEXT to extract values of up to 18 items from a database 
 EXPLANATION:
       This is a subroutine of DBEXT, which is the routine a user should 
       normally use.

 CALLING SEQUENCE:
       dbext_dbf,list,dbno,sbyte,nbytes,idltype,nval,v1,[ v2,v3,v4,v5,v6,v7,
                  v8,v9,v10,v11,v12,v13,v14,v15,v16,v17,v18 ITEM_DBNO = ]

 INPUTS:
       list - list of entry numbers to extract desired items.   It is the 
               entry numbers in the primary data base unless dbno is greater 
               than or equal to -1.  In that case it is the entry number in 
               the specified data base.
       dbno - number of the opened db file
               if set to -1 then all data bases are included
       sbyte - starting byte in the entry.  If single data base then it must 
               be the starting byte for that data base only and not the 
               concatenation of db records 
       nbytes - number of bytes in the entry
       idltype - idl data type of each item to be extracted
       nval - number of values per entry of each item to be extracted

 OUTPUTS:
       v1...v18 - the vectors of values for up to 18 items

 OPTIONAL INPUT KEYWORD:
       item_dbno - A vector of the individual database numbers for each item.
               Simplifies the code for linked databases
 PROCEDURE CALLS:
       DB_INFO(), DB_ITEM_INFO(), DBRD, DBXVAL(), IS_IEEE_BIG(), IEEE_TO_HOST
 HISTORY
       version 1  D. Lindler  Nov. 1987
       Extract multiple valued entries    W. Landsman   May 1989
       William Thompson, GSFC/CDS (ARC), 1 June 1994
               Added support for external (IEEE) representation.
       Work with multiple element string items  W. Landsman  August 1995
       Increase speed for external databases on IEEE machines WBL August 1996
       IEEE conversion implemented on blocks of entries using BIG
       Added keyword ITEM_DBNO     R. Schwartz, GSFC/SDAC, August 1996
       Return a vector even if only 1 value W. Thompson  October 1996
       Change variable name of BYTESWAP to BSWAP  W. Thompson Mar 1997
       Use /OVERWRITE with reform   W. Landsman   May 1997
       Converted to IDL V5.0   W. Landsman   September 1997
       Increase maximum number of items to 18  W. Landsman  November 1999
       2 May 2003, W. Thompson, Use DBXVAL with BSWAP instead of IEEE_TO_HOST.
       Avoid EXECUTE() for V6.1 or later  W. Landsman Jan 2007 
 CALLS:
 CALLED BY
	DBEXT [1], DBEXT [2], DBEXT [3], DBEXT [4], DBINDEX [1], DBINDEX [2], DBINDEX [3]
	DBUPDATE [1]


DBEXT_IND [1] $SSW/gen/idl/database/dbext_ind.pro
[Previous] [Next]
 NAME:
       DBEXT_IND
 PURPOSE:
       routine to read a indexed item values from index file

 CALLING SEQUENCE:  
       dbext_ind,list,item,dbno,values

 INPUTS:
       list - list of entry numbers to extract values for
               (if it is a scalar, values for all entries are extracted)
       item - item to extract
       dbno - number of the opened data base

 OUTPUT:
       values - vector of values returned as function value
 CALLS: ***
	DB_INFO [1], DB_INFO [2], DB_INFO [3], DB_ITEM [1], DB_ITEM [2], DB_ITEM [3]
	DB_ITEM_INFO [1], DB_ITEM_INFO [2], DB_ITEM_INFO [3], IEEE_TO_HOST [1]
	IEEE_TO_HOST [2], IEEE_TO_HOST [3], IEEE_TO_HOST [4]
 CALLED BY:
	DBFIND [1], DBFIND [2], DBFIND [3]
 HISTORY:
       version 1  D. Lindler  Feb 88
       Faster processing of string values    W. Landsman   April, 1992
       William Thompson, GSFC/CDS (ARC), 30 May 1994
               Added support for external (IEEE) data format
       Converted to IDL V5.0   W. Landsman   September 1997
       Allow multiple valued (nonstring) index items W. Landsman  November 2000      
       Use 64bit integer index for large databases W. Landsman  February 2001
       Fix sublisting of multiple valued index items W. Landsamn  March 2001


DBEXT_IND [2] $SSW/gen/idl_libs/astron/database/dbext_ind.pro
[Previous] [Next]
 NAME:
       DBEXT_IND
 PURPOSE:
       routine to read a indexed item values from index file

 CALLING SEQUENCE:  
       dbext_ind,list,item,dbno,values

 INPUTS:
       list - list of entry numbers to extract values for
               (if it is a scalar, values for all entries are extracted)
       item - item to extract
       dbno - number of the opened data base

 OUTPUT:
       values - vector of values returned as function value
 CALLS: ***
	DB_INFO [1], DB_INFO [2], DB_INFO [3], DB_ITEM [1], DB_ITEM [2], DB_ITEM [3]
	DB_ITEM_INFO [1], DB_ITEM_INFO [2], DB_ITEM_INFO [3], IEEE_TO_HOST [1]
	IEEE_TO_HOST [2], IEEE_TO_HOST [3], IEEE_TO_HOST [4]
 CALLED BY:
	DBFIND [1], DBFIND [2], DBFIND [3]
 HISTORY:
       version 1  D. Lindler  Feb 88
       Faster processing of string values    W. Landsman   April, 1992
       William Thompson, GSFC/CDS (ARC), 30 May 1994
               Added support for external (IEEE) data format
       Converted to IDL V5.0   W. Landsman   September 1997
       Allow multiple valued (nonstring) index items W. Landsman  November 2000      
       Use 64bit integer index for large databases W. Landsman  February 2001
       Fix sublisting of multiple valued index items W. Landsamn  March 2001


DBFIND [1] $SSW/gen/idl/database/dbfind.pro
[Previous] [Next]
 NAME: 
    DBFIND()
 PURPOSE:      
     Search data base for entries with specified characteristics
 EXPLANATION:  
     Function to search data base for entries with specified
     search characteristics.

 CALLING SEQUENCE:     
     result = dbfind(spar,[ listin, /SILENT, /FULLSTRING, ERRMSG=, Count = ])

 INPUTS:       
     spar - search_parameters (string)...each search parameter 
               is of the form:

               option 1) min_val < item_name < max_val
               option 2) item_name = value
               option 3) item_name = [value_1, value_10]
 CALLED BY:
	ADD_ALT, ADD_ANOMALY, ADD_DATAWIN, ADD_DETAIL, ADD_EXPER, ADD_FLAG, ADD_F_RASTER
	ADD_F_STUDY, ADD_LINELIST, ADD_PLAN, ADD_T_STUDY, ADD_V_RASTER, ADD_V_STUDY
	CHECK_INTEG, CHK_DATAWIN, CHK_F_RASTER, CHK_F_STUDY, CHK_LINELIST, CHK_T_STUDY
	CHK_V_RASTER, CHK_V_STUDY, CLR_INST_DLYD, CLR_NRT_RES, CLR_OTHER_OBS, CLR_RESOURCE
	CLR_TEL_MODE, CLR_TEL_SUBMODE, CP_GET_HISTORY, CP_GET_MNEMONIC, DBCIRCLE [1]
	DBCIRCLE [2], DEL_ALT, DEL_ANOMALY, DEL_DETAIL, DEL_FLAG, DEL_PLAN, DEL_SOHO_DET
	FIND_CDS_STUDIES, GET_ALT, GET_ANOMALY, GET_CAMPAIGN, GET_CDHS_DEXWIN
	GET_CDHS_RASTER, GET_CDHS_SERIES, GET_CDHS_VDSWIN, GET_CDS_PNTCAL, GET_COMPRESS
	GET_DATAWIN, GET_DETAIL, GET_EFFICIENCY, GET_EFF_AREA, GET_EXPER, GET_FLAG
	GET_F_RASTER, GET_F_STUDY, GET_GSET, GET_LINELIST, GET_MAIN, GET_MIRSHIFT, GET_PLAN
	GET_PROGRAM, GET_RASTER, GET_RAW, GET_RAW_FIL, GET_SOHO_DET, GET_STUDY, GET_TILTCAL
	GET_WAVECAL, GET_WAVE_EFF, IMDBASE, LAST_KAP_VERS, LIST_ALT, LIST_ANOMALY
	LIST_CAMPAIGN, LIST_CDROM, LIST_COM_TIMES, LIST_DATAWIN, LIST_DETAIL
	LIST_DLYD_TIMES, LIST_DSN, LIST_EXPER, LIST_EXP_COMM, LIST_FLAG, LIST_F_RASTER
	LIST_F_STUDY, LIST_GSET, LIST_INST_DLYD, LIST_LINELIST, LIST_MAIN, LIST_MDI_M
	LIST_NRT_RES, LIST_OTHER_OBS, LIST_OTHER_RES, LIST_PLAN, LIST_RAW, LIST_SOHO_DET
	LIST_V_RASTER, LIST_V_STUDY, MOD_CAMPAIGN, MOD_DETAIL, MOD_EXPER, MOD_GSET
	MOD_LINELIST, MOD_MAIN, MOD_V_RASTER, MOD_V_STUDY, PRG_ALT, PRG_ANOMALY, PRG_DETAIL
	PRG_FLAG, PRG_PLAN, PRG_SOHO_DET, REG_CDROM, SEARCH_HXRBS_DB, SET_KAP_VERS
	TP_DISP_RAST, UPD_PLAN, UPD_SOHO_DET, WHAT_USES, db_save_study_entry_update [1]
	db_save_study_entry_update [2], eis_get_engineering_state_list [1]
	eis_get_engineering_state_list [2], eis_get_science_entry [1]
	eis_get_science_entry [2], eis_get_science_raster_entry [1]
	eis_get_science_raster_entry [2], eis_get_study_raster_entry [1]
	eis_get_study_raster_entry [2], eis_get_timeline_entries [1]
	eis_get_timeline_entries [2], eis_linelist_gui [1], eis_linelist_gui [2]
	eis_raster_gui [1], eis_raster_gui [2], eis_study_gui [1], eis_study_gui [2]
	eis_update_timeline_science_entry [1]
	eis_update_timeline_science_entry [2]
                       Note: option 3 is also the slowest.
               option 4) item_name > value
               option 5) item_name < value
               option 6) item_name = value(tolerance) ;eg. temp=25.0(5.2)
               option 7) item_name                     ;must be non-zero

               Multiple search parameters are separated by a comma.
               eg.     'cam_no=2,14<ra<20'

               Note: < is interpreted as less than or equal.
                     > is interpreted as greater than or equal.
       
               RA and DEC keyfields are stored as floating point numbers 
               in the data base may be entered as HH:MM:SEC and
               DEG:MIN:SEC. Where:

                       HH:MM:SEC   equals  HH + MM/60.0  + SEC/3600.
                       DEG:MIN:SEC equals DEG + MIN/60.0 + SEC/3600.
                       
               For example:
                       40:34:10.5 < dec < 43:25:19 , 8:22:1.0 < ra < 8:23:23.0

               Specially encoded date/time in the data base may
               be entered by  CCYY/DAY:hr:min:sec which is
               interpreted as  
                       CCYY*1000+DAY+hr/24.0+min/24.0/60.+sec/24.0/3600.
               If a two digit year is supplied and YY GE 40 then it is 
               understood to refer to year 1900 +YY;  if YY LT 40 then it is 
               understood to refer to year 2000 +YY

               For example
                       1985/201:10:35:30<date_time<1985/302:10:33:33.4
               would specify all entries between:
                       year 1985 day 201 at 10:35:30 to
                       day 302 at 10:33:33.4
               The date/time may also be encoded as:
                       DD-MMM-YEAR HH::MM:SS.SS        
                       eg.  12-JUL-86 10:23:33.45
               (this is the format of system variable !stime)

               Multiple search parameters may be stored in a string
               array (one parameter per array element) instead of
               concatenating them with commas in a single string.
               Example:
                       input_array = strarr(2)
                       input_array[0] = '14<ra<16'   ; 14-16 hrs of ra.
                       input_array[1] = '8<dec<20'   ; + 8-20 deg. decl.

 OPTIONAL INPUT:       
       listin - gives list of entries to be searched.  If not supplied or 
               set to -1 then all entries are searched.

 OUTPUT:       
       List of ENTRY numbers satisfying search characteristics
               is returned as the function value.

 OPTIONAL INPUT KEYWORDS:      
       /SILENT  - If the keyword SILENT is set and non-zero, then DBFIND
               will not print the number of entries found.

       /FULLSTRING - By default, one has a match if a search string is 
               included in any part of a database value (substring match).   
               But if /FULLSTRING is set, then all characters in the database
               value must match the search string (excluding leading and 
               trailing blanks).    Both types of string searches are case
               insensitive.

       ERRMSG   = If defined and passed, then any error messages will
                  be returned to the user in this parameter rather
                  than depending on the MESSAGE routine in IDL.  If no
                  errors are encountered, then a null string is
                  returned.  In order to use this feature, ERRMSG must
                  be defined first, e.g.

                       ERRMSG = ''
                       DB_ITEM, ERRMSG=ERRMSG, ...
                       IF ERRMSG NE '' THEN ...;

 OPTIONAL OUTPUT KEYWORD:
       COUNT - Integer scalar giving the number of valid matches
 PROCEDURE CALLS:
       DB_INFO, DB_ITEM, DB_ITEM_INFO, DBEXT, DBEXT_IND, DBFIND_ENTRY,
       DBFIND_SORT, DBFPARSE, DBRD, DBSEARCH, ZPARCHECK,IS_IEEE_BIG

 RESTRICTIONS: 
       The data base must be previously opened with DBOPEN.

 CALLS: ***
	DBEXT [1], DBEXT [2], DBEXT [3], DBEXT [4], DBEXT_IND [1], DBEXT_IND [2]
	DBEXT_IND [3], DBFIND_ENTRY [1], DBFIND_ENTRY [2], DBFIND_ENTRY [3]
	DBFIND_SORT [1], DBFIND_SORT [2], DBFIND_SORT [3], DBFPARSE [1], DBFPARSE [2]
	DBFPARSE [3], DBRD [1], DBRD [2], DBRD [3], DBSEARCH [1], DBSEARCH [2], DBSEARCH [3]
	DB_INFO [1], DB_INFO [2], DB_INFO [3], DB_ITEM [1], DB_ITEM [2], DB_ITEM [3]
	DB_ITEM_INFO [1], DB_ITEM_INFO [2], DB_ITEM_INFO [3], ZPARCHECK [1]
	ZPARCHECK [2], ZPARCHECK [3]
 SIDE EFFECTS: 
       The obsolete system variable !ERR is set to number of entries found

 REVISION HISTORY:
       Written     :   D. Lindler, GSFC/HRS, November 1987
       Version 2, Wayne Landsman, GSFC/UIT (STX), 1 April 1994
                       Added FULLSTRING keyword.
       Version 3, William Thompson, GSFC, 1 April 1994
                       Added check for empty database
       Version 4, William Thompson, GSFC, 5 April 1994
                       Changed so that !ERR is zero when database is empty,
                       and LISTIN is returned, based on discussion with Wayne
                       Landsman.
       Version 5, Wayne Landsman, GSFC/UIT (STX), 26 May 1994
                       Added error message when database is empty.
       Version 6, William Thompson, GSFC, 14 March 1995
                       Added FULLSTRING keyword to DBFIND_SORT call
       Version 7, Richard Schwartz, GSFC/SDAC 23 August 1996
                       Move external to host conversion from DBRD to
                       operation on extracted values only.
       Version 8, William Thompson, GSFC, 3 December 1996
                       Renamed BYTESWAP variable to BSWAP--appeared to be
                       conflicting with function of same name.
       Version 9, William Thompson, GSFC, 17-Mar-1997
                       Added keyword ERRMSG
       Version 10, July, 1997  W. Landsman, added CATCH errors
       Converted to IDL V5.0   W. Landsman   October 1997
       Update documentation for new Y2K compliant DBFPARSE W. Landsman Nov 1998
       Suppress empty database message with /SILENT, W. Landsman Jan 1999
       Added COUNT keyword, deprecate !ERR        W. Landsman March 2000
       Added new unsigned & 64bit datatypes       W. Landsman July 2001


DBFIND [2] $SSW/gen/idl_libs/astron/database/dbfind.pro
[Previous] [Next]
 NAME: 
    DBFIND()
 PURPOSE:      
     Search data base for entries with specified characteristics
 EXPLANATION:  
     Function to search data base for entries with specified
     search characteristics.

 CALLING SEQUENCE:     
     result = dbfind(spar,[ listin, /SILENT, /FULLSTRING, ERRMSG=, Count = ])

 INPUTS:       
     spar - search_parameters (string)...each search parameter 
               is of the form:

               option 1) min_val < item_name < max_val
               option 2) item_name = value
               option 3) item_name = [value_1, value_10]
 CALLED BY:
	ADD_ALT, ADD_ANOMALY, ADD_DATAWIN, ADD_DETAIL, ADD_EXPER, ADD_FLAG, ADD_F_RASTER
	ADD_F_STUDY, ADD_LINELIST, ADD_PLAN, ADD_T_STUDY, ADD_V_RASTER, ADD_V_STUDY
	CHECK_INTEG, CHK_DATAWIN, CHK_F_RASTER, CHK_F_STUDY, CHK_LINELIST, CHK_T_STUDY
	CHK_V_RASTER, CHK_V_STUDY, CLR_INST_DLYD, CLR_NRT_RES, CLR_OTHER_OBS, CLR_RESOURCE
	CLR_TEL_MODE, CLR_TEL_SUBMODE, CP_GET_HISTORY, CP_GET_MNEMONIC, DBCIRCLE [1]
	DBCIRCLE [2], DEL_ALT, DEL_ANOMALY, DEL_DETAIL, DEL_FLAG, DEL_PLAN, DEL_SOHO_DET
	FIND_CDS_STUDIES, GET_ALT, GET_ANOMALY, GET_CAMPAIGN, GET_CDHS_DEXWIN
	GET_CDHS_RASTER, GET_CDHS_SERIES, GET_CDHS_VDSWIN, GET_CDS_PNTCAL, GET_COMPRESS
	GET_DATAWIN, GET_DETAIL, GET_EFFICIENCY, GET_EFF_AREA, GET_EXPER, GET_FLAG
	GET_F_RASTER, GET_F_STUDY, GET_GSET, GET_LINELIST, GET_MAIN, GET_MIRSHIFT, GET_PLAN
	GET_PROGRAM, GET_RASTER, GET_RAW, GET_RAW_FIL, GET_SOHO_DET, GET_STUDY, GET_TILTCAL
	GET_WAVECAL, GET_WAVE_EFF, IMDBASE, LAST_KAP_VERS, LIST_ALT, LIST_ANOMALY
	LIST_CAMPAIGN, LIST_CDROM, LIST_COM_TIMES, LIST_DATAWIN, LIST_DETAIL
	LIST_DLYD_TIMES, LIST_DSN, LIST_EXPER, LIST_EXP_COMM, LIST_FLAG, LIST_F_RASTER
	LIST_F_STUDY, LIST_GSET, LIST_INST_DLYD, LIST_LINELIST, LIST_MAIN, LIST_MDI_M
	LIST_NRT_RES, LIST_OTHER_OBS, LIST_OTHER_RES, LIST_PLAN, LIST_RAW, LIST_SOHO_DET
	LIST_V_RASTER, LIST_V_STUDY, MOD_CAMPAIGN, MOD_DETAIL, MOD_EXPER, MOD_GSET
	MOD_LINELIST, MOD_MAIN, MOD_V_RASTER, MOD_V_STUDY, PRG_ALT, PRG_ANOMALY, PRG_DETAIL
	PRG_FLAG, PRG_PLAN, PRG_SOHO_DET, REG_CDROM, SEARCH_HXRBS_DB, SET_KAP_VERS
	TP_DISP_RAST, UPD_PLAN, UPD_SOHO_DET, WHAT_USES, db_save_study_entry_update [1]
	db_save_study_entry_update [2], eis_get_engineering_state_list [1]
	eis_get_engineering_state_list [2], eis_get_science_entry [1]
	eis_get_science_entry [2], eis_get_science_raster_entry [1]
	eis_get_science_raster_entry [2], eis_get_study_raster_entry [1]
	eis_get_study_raster_entry [2], eis_get_timeline_entries [1]
	eis_get_timeline_entries [2], eis_linelist_gui [1], eis_linelist_gui [2]
	eis_raster_gui [1], eis_raster_gui [2], eis_study_gui [1], eis_study_gui [2]
	eis_update_timeline_science_entry [1]
	eis_update_timeline_science_entry [2]
                       Note: option 3 is also the slowest.
               option 4) item_name > value
               option 5) item_name < value
               option 6) item_name = value(tolerance) ;eg. temp=25.0(5.2)
               option 7) item_name                     ;must be non-zero

               Multiple search parameters are separated by a comma.
               eg.     'cam_no=2,14<ra<20'

               Note: < is interpreted as less than or equal.
                     > is interpreted as greater than or equal.
       
               RA and DEC keyfields are stored as floating point numbers 
               in the data base may be entered as HH:MM:SEC and
               DEG:MIN:SEC. Where:

                       HH:MM:SEC   equals  HH + MM/60.0  + SEC/3600.
                       DEG:MIN:SEC equals DEG + MIN/60.0 + SEC/3600.
                       
               For example:
                       40:34:10.5 < dec < 43:25:19 , 8:22:1.0 < ra < 8:23:23.0

               Specially encoded date/time in the data base may
               be entered by  CCYY/DAY:hr:min:sec which is
               interpreted as  
                       CCYY*1000+DAY+hr/24.0+min/24.0/60.+sec/24.0/3600.
               If a two digit year is supplied and YY GE 40 then it is 
               understood to refer to year 1900 +YY;  if YY LT 40 then it is 
               understood to refer to year 2000 +YY

               For example
                       1985/201:10:35:30<date_time<1985/302:10:33:33.4
               would specify all entries between:
                       year 1985 day 201 at 10:35:30 to
                       day 302 at 10:33:33.4
               The date/time may also be encoded as:
                       DD-MMM-YEAR HH::MM:SS.SS        
                       eg.  12-JUL-86 10:23:33.45
               (this is the format of system variable !stime)

               Multiple search parameters may be stored in a string
               array (one parameter per array element) instead of
               concatenating them with commas in a single string.
               Example:
                       input_array = strarr(2)
                       input_array[0] = '14<ra<16'   ; 14-16 hrs of ra.
                       input_array[1] = '8<dec<20'   ; + 8-20 deg. decl.

 OPTIONAL INPUT:       
       listin - gives list of entries to be searched.  If not supplied or 
               set to -1 then all entries are searched.

 OUTPUT:       
       List of ENTRY numbers satisfying search characteristics
               is returned as the function value.

 OPTIONAL INPUT KEYWORDS:      
       /SILENT  - If the keyword SILENT is set and non-zero, then DBFIND
               will not print the number of entries found.

       /FULLSTRING - By default, one has a match if a search string is 
               included in any part of a database value (substring match).   
               But if /FULLSTRING is set, then all characters in the database
               value must match the search string (excluding leading and 
               trailing blanks).    Both types of string searches are case
               insensitive.

       ERRMSG   = If defined and passed, then any error messages will
                  be returned to the user in this parameter rather
                  than depending on the MESSAGE routine in IDL.  If no
                  errors are encountered, then a null string is
                  returned.  In order to use this feature, ERRMSG must
                  be defined first, e.g.

                       ERRMSG = ''
                       DB_ITEM, ERRMSG=ERRMSG, ...
                       IF ERRMSG NE '' THEN ...;

 OPTIONAL OUTPUT KEYWORD:
       COUNT - Integer scalar giving the number of valid matches
 PROCEDURE CALLS:
       DB_INFO, DB_ITEM, DB_ITEM_INFO, DBEXT, DBEXT_IND, DBFIND_ENTRY,
       DBFIND_SORT, DBFPARSE, DBRD, DBSEARCH, ZPARCHECK,IS_IEEE_BIG

 RESTRICTIONS: 
       The data base must be previously opened with DBOPEN.

 CALLS: ***
	DBEXT [1], DBEXT [2], DBEXT [3], DBEXT [4], DBEXT_IND [1], DBEXT_IND [2]
	DBEXT_IND [3], DBFIND_ENTRY [1], DBFIND_ENTRY [2], DBFIND_ENTRY [3]
	DBFIND_SORT [1], DBFIND_SORT [2], DBFIND_SORT [3], DBFPARSE [1], DBFPARSE [2]
	DBFPARSE [3], DBRD [1], DBRD [2], DBRD [3], DBSEARCH [1], DBSEARCH [2], DBSEARCH [3]
	DB_INFO [1], DB_INFO [2], DB_INFO [3], DB_ITEM [1], DB_ITEM [2], DB_ITEM [3]
	DB_ITEM_INFO [1], DB_ITEM_INFO [2], DB_ITEM_INFO [3], ZPARCHECK [1]
	ZPARCHECK [2], ZPARCHECK [3]
 SIDE EFFECTS: 
       The obsolete system variable !ERR is set to number of entries found

 REVISION HISTORY:
       Written     :   D. Lindler, GSFC/HRS, November 1987
       Version 2, Wayne Landsman, GSFC/UIT (STX), 1 April 1994
                       Added FULLSTRING keyword.
       Version 3, William Thompson, GSFC, 1 April 1994
                       Added check for empty database
       Version 4, William Thompson, GSFC, 5 April 1994
                       Changed so that !ERR is zero when database is empty,
                       and LISTIN is returned, based on discussion with Wayne
                       Landsman.
       Version 5, Wayne Landsman, GSFC/UIT (STX), 26 May 1994
                       Added error message when database is empty.
       Version 6, William Thompson, GSFC, 14 March 1995
                       Added FULLSTRING keyword to DBFIND_SORT call
       Version 7, Richard Schwartz, GSFC/SDAC 23 August 1996
                       Move external to host conversion from DBRD to
                       operation on extracted values only.
       Version 8, William Thompson, GSFC, 3 December 1996
                       Renamed BYTESWAP variable to BSWAP--appeared to be
                       conflicting with function of same name.
       Version 9, William Thompson, GSFC, 17-Mar-1997
                       Added keyword ERRMSG
       Version 10, July, 1997  W. Landsman, added CATCH errors
       Converted to IDL V5.0   W. Landsman   October 1997
       Update documentation for new Y2K compliant DBFPARSE W. Landsman Nov 1998
       Suppress empty database message with /SILENT, W. Landsman Jan 1999
       Added COUNT keyword, deprecate !ERR        W. Landsman March 2000
       Added new unsigned & 64bit datatypes       W. Landsman July 2001


DBFIND_ENTRY [1] $SSW/gen/idl/database/dbfind_entry.pro
[Previous] [Next]
 NAME:
       DBFIND_ENTRY
 PURPOSE:
       Subroutine of DBFIND to perform an entry number search 
 EXPLANATION:
       This is a subroutine of dbfind and is not a standalone procedure
       It performs a entry number search.

 CALLING SEQUENCE:
       dbfind_entry, type, svals, nentries, values, [COUNT = ]

 INPUTS: 
       type - type of search (output from dbfparse)
       svals - search values (output from dbfparse)
       values - array of values to search
 OUTPUT:
       good - indices of good values
 OPTIONAL OUTPUT KEYWORD:
       Count - integer scalar giving the number of valid matches
 SIDE EFFECTS"
       The obsolete system variable !err is set to number of good values

 REVISION HISTORY:
       D. Lindler  July,1987
       Fixed test for final entry number  W. Landsman    Sept. 95       
       Converted to IDL V5.0   W. Landsman   September 1997
       Added COUNT keyword, deprecate !ERR  W. Landsman   March 2000
       Better checking of out of range values  W. Landsman February 2002
 CALLED BY
	DBFIND [1], DBFIND [2], DBFIND [3]


DBFIND_ENTRY [2] $SSW/gen/idl_libs/astron/database/dbfind_entry.pro
[Previous] [Next]
 NAME:
       DBFIND_ENTRY
 PURPOSE:
       Subroutine of DBFIND to perform an entry number search 
 EXPLANATION:
       This is a subroutine of dbfind and is not a standalone procedure
       It performs a entry number search.

 CALLING SEQUENCE:
       dbfind_entry, type, svals, nentries, values, [COUNT = ]

 INPUTS: 
       type - type of search (output from dbfparse)
       svals - search values (output from dbfparse)
       values - array of values to search
 OUTPUT:
       good - indices of good values
 OPTIONAL OUTPUT KEYWORD:
       Count - integer scalar giving the number of valid matches
 SIDE EFFECTS"
       The obsolete system variable !err is set to number of good values

 REVISION HISTORY:
       D. Lindler  July,1987
       Fixed test for final entry number  W. Landsman    Sept. 95       
       Converted to IDL V5.0   W. Landsman   September 1997
       Added COUNT keyword, deprecate !ERR  W. Landsman   March 2000
       Better checking of out of range values  W. Landsman February 2002
 CALLED BY
	DBFIND [1], DBFIND [2], DBFIND [3]


DBFIND_SORT [1] $SSW/gen/idl/database/dbfind_sort.pro
[Previous] [Next]
 NAME:
       DBFIND_SORT   
 PURPOSE:
       Subroutine of DBFIND to perform a search using sorted values 
 EXPLANATION:
       This is a subroutine of dbfind and is not a standalone procedure
       It is used to limit the search using sorted values  V5.2 or later!

 CALLING SEQUENCE:
       dbfind_sort, it, type, svals, list, [/FULLSTRING, COUNT = ]

 INPUT: 
       it - item number, scalar
       type - type of search (output from dbfparse)
       svals - search values (output from dbfparse)

 INPUT/OUTPUT:
       list - found entries

 OPTIONAL INPUT KEYWORD:
       /FULLSTRING - By default, one has a match if a search string is 
               included in any part of a database value (substring match).   
               But if /FULLSTRING is set, then all characters in the database
               value must match the search string (excluding leading and 
               trailing blanks).    Both types of string searches are case
               insensitive.
 OPTIONAL OUTPUT KEYWORD
       Count - Integer scalar giving the number of matches found
 SYSTEM VARIABLES:
       The obsolete system variable !err is set to number of good values
       !ERR = -2 for an invalid search
 REVISION HISTORY:
       D. Lindler  July,1987
       William Thompson, GSFC/CDS (ARC), 30 May 1994
               Added support for external (IEEE) data format
       William Thompson, GSFC, 14 March 1995 Added keyword FULLSTRING
       Converted to IDL V5.0   W. Landsman   September 1997
       Minimize use of obsolete !ERR variable   W. Landsman  February 2000
       Added COUNT keyword, deprecate !ERR W. Landsman  March 2000
       Use 64 bit integers V5.2 or later
       Include new IDL unsigned & 64 bit integer datatypes W.Landsman July 2001
       Make sure returned list vector is LONG  W. Landsman August 2001
 CALLS:
 CALLED BY
	DBFIND [1], DBFIND [2], DBFIND [3], DBGET [1], DBGET [2], DBGET [3], DBMATCH [1]
	DBMATCH [2], DBMATCH [3]


DBFIND_SORT [2] $SSW/gen/idl_libs/astron/database/dbfind_sort.pro
[Previous] [Next]
 NAME:
       DBFIND_SORT   
 PURPOSE:
       Subroutine of DBFIND to perform a search using sorted values 
 EXPLANATION:
       This is a subroutine of dbfind and is not a standalone procedure
       It is used to limit the search using sorted values  V5.2 or later!

 CALLING SEQUENCE:
       dbfind_sort, it, type, svals, list, [/FULLSTRING, COUNT = ]

 INPUT: 
       it - item number, scalar
       type - type of search (output from dbfparse)
       svals - search values (output from dbfparse)

 INPUT/OUTPUT:
       list - found entries

 OPTIONAL INPUT KEYWORD:
       /FULLSTRING - By default, one has a match if a search string is 
               included in any part of a database value (substring match).   
               But if /FULLSTRING is set, then all characters in the database
               value must match the search string (excluding leading and 
               trailing blanks).    Both types of string searches are case
               insensitive.
 OPTIONAL OUTPUT KEYWORD
       Count - Integer scalar giving the number of matches found
 SYSTEM VARIABLES:
       The obsolete system variable !err is set to number of good values
       !ERR = -2 for an invalid search
 REVISION HISTORY:
       D. Lindler  July,1987
       William Thompson, GSFC/CDS (ARC), 30 May 1994
               Added support for external (IEEE) data format
       William Thompson, GSFC, 14 March 1995 Added keyword FULLSTRING
       Converted to IDL V5.0   W. Landsman   September 1997
       Minimize use of obsolete !ERR variable   W. Landsman  February 2000
       Added COUNT keyword, deprecate !ERR W. Landsman  March 2000
       Use 64 bit integers V5.2 or later
       Include new IDL unsigned & 64 bit integer datatypes W.Landsman July 2001
       Make sure returned list vector is LONG  W. Landsman August 2001
 CALLS:
 CALLED BY
	DBFIND [1], DBFIND [2], DBFIND [3], DBGET [1], DBGET [2], DBGET [3], DBMATCH [1]
	DBMATCH [2], DBMATCH [3]


DBFPARSE [1] $SSW/gen/idl/database/dbfparse.pro
[Previous] [Next]
 NAME:
     DBFPARSE
 PURPOSE:
     Parse the search string supplied to DBFIND.   Not a standalone routine

 CALLING SEQUENCE:
     DBFPARSE, [ spar, items, stype, values ]

 INPUTS:
     spar - search parameter specification, scalar string

 OUTPUTS:
     items - list of items to search on
     stype - search type, numeric scalar
               0    item=values(j,0)
               -1   item>values(j,0)
               -2   item<values(j,1)
               -3   values(j,0)<item<values(j,1)
               -4   item is non zero
               -5   item=values(j,0) within tolerance values(j,1)
               0<   items in list values(j,i) for i=0,stype-1
     values - search values, 20 x 10 string array, can parse a string
               with up to 20 items specifications, each item can have 10
               values

 REVISION HISTORY:  
     D. Lindler NOV, 1987
     Check for valid numeric values before assuming a date string
     W. Landsman                    July, 1993
     Accept four digit years when in ccyy/doy format W. Landsman   October 1998
     Don't do DATE/Time test for string items  W. Landsman   July 2006
 CALLS:
 CALLED BY
	DBFIND [1], DBFIND [2], DBFIND [3]


DBFPARSE [2] $SSW/gen/idl_libs/astron/database/dbfparse.pro
[Previous] [Next]
 NAME:
     DBFPARSE
 PURPOSE:
     Parse the search string supplied to DBFIND.   Not a standalone routine

 CALLING SEQUENCE:
     DBFPARSE, [ spar, items, stype, values ]

 INPUTS:
     spar - search parameter specification, scalar string

 OUTPUTS:
     items - list of items to search on
     stype - search type, numeric scalar
               0    item=values(j,0)
               -1   item>values(j,0)
               -2   item<values(j,1)
               -3   values(j,0)<item<values(j,1)
               -4   item is non zero
               -5   item=values(j,0) within tolerance values(j,1)
               0<   items in list values(j,i) for i=0,stype-1
     values - search values, 20 x 10 string array, can parse a string
               with up to 20 items specifications, each item can have 10
               values

 REVISION HISTORY:  
     D. Lindler NOV, 1987
     Check for valid numeric values before assuming a date string
     W. Landsman                    July, 1993
     Accept four digit years when in ccyy/doy format W. Landsman   October 1998
     Don't do DATE/Time test for string items  W. Landsman   July 2006
 CALLS:
 CALLED BY
	DBFIND [1], DBFIND [2], DBFIND [3]


DBGET [1] $SSW/gen/idl/database/dbget.pro
[Previous] [Next]
 NAME:
       DBGET
 PURPOSE:
       Find entry numbers which contain specified values of a given item.
 EXPLANATION:
       DBGET() is useful as an alternative to DBFIND() when the desired 
       search values are not easily expressed as a string.  

 CALLING SEQUENCE:
       list = dbget( item, values, [ listin ], /SILENT, /FULLSTRING )

 INPUTS:
       item - Item name or number
       values -  scalar or vector containing item values to search for.

 OPTIONAL INPUTS:
       listin - list of entries to be searched.  If not supplied, or
               set to -1, then all entries are searched

 OUTPUT:
       list - vector giving the entry number of entries containing desired
               item values.  The number of elements in  LIST may be different 
               from that of VALUE, since a value might be located zero, once, 
               or many times in the database.  Use the function DBMATCH if a 
               one to one correspondence is desired between VALUES and LIST. 
 OPTIONAL INPUT KEYWORDS:
       /SILENT - If this keyword is set, then DBGET will not display
               the number of entries found
       /FULLSTRING - By default, one has a match if a search string is 
               included in any part of a database value (substring match).   
               But if /FULLSTRING is set, then all characters in the database
               value must match the search string (excluding leading and 
               trailing blanks).    Both types of string searches are case
               insensitive.
 OPTIONAL OUTPUT KEYWORD:
       COUNT - Integer scalar giving the number of valid matches

 CALLS: ***
	DBEXT [1], DBEXT [2], DBEXT [3], DBEXT [4], DBFIND_SORT [1], DBFIND_SORT [2]
	DBFIND_SORT [3], DBSEARCH [1], DBSEARCH [2], DBSEARCH [3], DB_INFO [1]
	DB_INFO [2], DB_INFO [3], DB_ITEM [1], DB_ITEM [2], DB_ITEM [3], DB_ITEM_INFO [1]
	DB_ITEM_INFO [2], DB_ITEM_INFO [3]
 RESTRICTIONS:
       When linked databases are opened together, DBGET can only be used to
       search on items in the primary database.
 EXAMPLE:
       Get info on selected HD stars in Bright Star catalogue

       IDL> dbopen, 'YALE_BS' 
       IDL> hdno = [1141,2363,3574,4128,6192,6314,6668]    ;Desired HD numbers
       IDL> list = dbget( 'HD', hdno )        ;Get corresponding entry numbers

 SYSTEM VARIABLES:
       The obsolete system variable !ERR is set to number of entries found
 REVISION HISTORY:
       Written,    W. Landsman      STX     February, 1989
       William Thompson, GSFC, 14 March 1995 Added keyword FULLSTRING
       Converted to IDL V5.0   W. Landsman   September 1997
       Added COUNT keyword, deprecate !ERR        W. Landsman March 2000
       Fix bug introduced March 2000              W. Landsman November 2000


DBGET [2] $SSW/gen/idl_libs/astron/database/dbget.pro
[Previous] [Next]
 NAME:
       DBGET
 PURPOSE:
       Find entry numbers which contain specified values of a given item.
 EXPLANATION:
       DBGET() is useful as an alternative to DBFIND() when the desired 
       search values are not easily expressed as a string.  

 CALLING SEQUENCE:
       list = dbget( item, values, [ listin ], /SILENT, /FULLSTRING )

 INPUTS:
       item - Item name or number
       values -  scalar or vector containing item values to search for.

 OPTIONAL INPUTS:
       listin - list of entries to be searched.  If not supplied, or
               set to -1, then all entries are searched

 OUTPUT:
       list - vector giving the entry number of entries containing desired
               item values.  The number of elements in  LIST may be different 
               from that of VALUE, since a value might be located zero, once, 
               or many times in the database.  Use the function DBMATCH if a 
               one to one correspondence is desired between VALUES and LIST. 
 OPTIONAL INPUT KEYWORDS:
       /SILENT - If this keyword is set, then DBGET will not display
               the number of entries found
       /FULLSTRING - By default, one has a match if a search string is 
               included in any part of a database value (substring match).   
               But if /FULLSTRING is set, then all characters in the database
               value must match the search string (excluding leading and 
               trailing blanks).    Both types of string searches are case
               insensitive.
 OPTIONAL OUTPUT KEYWORD:
       COUNT - Integer scalar giving the number of valid matches

 CALLS: ***
	DBEXT [1], DBEXT [2], DBEXT [3], DBEXT [4], DBFIND_SORT [1], DBFIND_SORT [2]
	DBFIND_SORT [3], DBSEARCH [1], DBSEARCH [2], DBSEARCH [3], DB_INFO [1]
	DB_INFO [2], DB_INFO [3], DB_ITEM [1], DB_ITEM [2], DB_ITEM [3], DB_ITEM_INFO [1]
	DB_ITEM_INFO [2], DB_ITEM_INFO [3]
 RESTRICTIONS:
       When linked databases are opened together, DBGET can only be used to
       search on items in the primary database.
 EXAMPLE:
       Get info on selected HD stars in Bright Star catalogue

       IDL> dbopen, 'YALE_BS' 
       IDL> hdno = [1141,2363,3574,4128,6192,6314,6668]    ;Desired HD numbers
       IDL> list = dbget( 'HD', hdno )        ;Get corresponding entry numbers

 SYSTEM VARIABLES:
       The obsolete system variable !ERR is set to number of entries found
 REVISION HISTORY:
       Written,    W. Landsman      STX     February, 1989
       William Thompson, GSFC, 14 March 1995 Added keyword FULLSTRING
       Converted to IDL V5.0   W. Landsman   September 1997
       Added COUNT keyword, deprecate !ERR        W. Landsman March 2000
       Fix bug introduced March 2000              W. Landsman November 2000


DBHELP [1] $SSW/gen/idl/database/dbhelp.pro
[Previous] [Next]
 NAME:
     DBHELP
 PURPOSE:
     List available databases or items in the currently open database
 EXPLANATION:
     Procedure to either list available databases (if no database is 
     currently open) or the items in the currently open database.

 CALLING SEQUENCE:  
     dbhelp, [ flag , TEXTOUT=, /SORT ]

 INPUT:
     flag - (optional) if set to nonzero then item or database
             descriptions are also printed
             default=0
             If flag is a string, then it is interpreted as the
             name of a data base (if no data base is opened) or a name 
             of an item in the opened data base.   In this case, help
             is displayed only for the particular item or database

 OUTPUTS:
      None
 OPTIONAL INPUT KEYWORDS:
      TEXTOUT  - Used to determine output device.  If not present, the
                value of !TEXTOUT system variable is used (see TEXTOPEN )

               textout=0       Nowhere
               textout=1       if a TTY then TERMINAL using /more option
                                   otherwise standard (Unit=-1) output
               textout=2       if a TTY then TERMINAL without /more option
                                   otherwise standard (Unit=-1) output
               textout=3       <program>.prt
               textout=4       laser.tmp
               textout=5      user must open file
               textout=7      same as 3 but text is appended to <program>.prt
                               file if it already exists.
               textout = filename (default extension of .prt)

        /SORT - If set and non-zero, then the help items will be displayed
               sorted alphabetically.    If more than one database is open,
               then this keyword does nothing.
 METHOD:
       If no data base is opened then a list of data bases are
       printed, otherwise the items in the open data base are printed.

       If a string is supplied for flag and a data base is opened
       flag is assumed to be an item name.  The information for that
       item is printed along with contents in a optional file
       zdbase:dbname_itemname.hlp
       if a string is supplied for flag and no data base is opened,
       then string is assumed to be the name of a data base file.
       only information for that file is printed along with an
       optional file zdbase:dbname.hlp.
 PROCEDURES USED:
       DB_INFO(),DB_ITEM_INFO(),FIND_WITH_DEF(), TEXTOPEN, TEXTCLOSE, UNIQ()
 IDL VERSION:
       V5.3 or later (uses vectorized FDECOMP)
 CALLS: ***
	DB_INFO [1], DB_INFO [2], DB_INFO [3], DB_ITEM [1], DB_ITEM [2], DB_ITEM [3]
	DB_ITEM_INFO [1], DB_ITEM_INFO [2], DB_ITEM_INFO [3], FDECOMP [1], FDECOMP [2]
	FDECOMP [3], FIND_WITH_DEF [1], FIND_WITH_DEF [2], FIND_WITH_DEF [3]
	LIST_WITH_PATH [1], LIST_WITH_PATH [2], LIST_WITH_PATH [3], REM_DUP [1]
	REM_DUP [2], REM_DUP [3], TEXTCLOSE [1], TEXTCLOSE [2], TEXTCLOSE [3]
	TEXTOPEN [1], TEXTOPEN [2], TEXTOPEN [3]
 HISTORY:
       Version 2  D. Lindler  Nov 1987 (new db format)
       Faster printing of title desc. W. Landsman  May 1989 
       Keyword textout added, J. Isensee, July, 1990
       Modified to work on Unix, D. Neill, ACC, Feb 1991.
       William Thompson, GSFC/CDS (ARC), 1 June 1994
               Added support for external (IEEE) representation.
       William Thompson, GSFC, 3 November 1994
               Modified to allow ZDBASE to be a path string.
       Remove duplicate database names  Wayne Landsman    December 1994
       8/17/95 jkf/acc - force lowercase filenames for .hlp files.
       Added /SORT keyword  J. Sandoval/W. Landsman     October 1998
       V5.3 version use vectorized FDECOMP   W. Landsman   February 2001
       Recognize 64 bit, unsigned integer datatypes W. Landsman September 2001
       Fix display of number of bytes with /SORT W. Landsman February 2002
       Assume since V5.2                 W. Landsman February 2002  
       Assume since V5.5                 W. Landsman   


DBHELP [2] $SSW/gen/idl_libs/astron/database/dbhelp.pro
[Previous] [Next]
 NAME:
     DBHELP
 PURPOSE:
     List available databases or items in the currently open database
 EXPLANATION:
     Procedure to either list available databases (if no database is 
     currently open) or the items in the currently open database.

 CALLING SEQUENCE:  
     dbhelp, [ flag , TEXTOUT=, /SORT ]

 INPUT:
     flag - (optional) if set to nonzero then item or database
             descriptions are also printed
             default=0
             If flag is a string, then it is interpreted as the
             name of a data base (if no data base is opened) or a name 
             of an item in the opened data base.   In this case, help
             is displayed only for the particular item or database

 OUTPUTS:
      None
 OPTIONAL INPUT KEYWORDS:
      TEXTOUT  - Used to determine output device.  If not present, the
                value of !TEXTOUT system variable is used (see TEXTOPEN )

               textout=0       Nowhere
               textout=1       if a TTY then TERMINAL using /more option
                                   otherwise standard (Unit=-1) output
               textout=2       if a TTY then TERMINAL without /more option
                                   otherwise standard (Unit=-1) output
               textout=3       <program>.prt
               textout=4       laser.tmp
               textout=5      user must open file
               textout=7      same as 3 but text is appended to <program>.prt
                               file if it already exists.
               textout = filename (default extension of .prt)

        /SORT - If set and non-zero, then the help items will be displayed
               sorted alphabetically.    If more than one database is open,
               then this keyword does nothing.
 METHOD:
       If no data base is opened then a list of data bases are
       printed, otherwise the items in the open data base are printed.

       If a string is supplied for flag and a data base is opened
       flag is assumed to be an item name.  The information for that
       item is printed along with contents in a optional file
       zdbase:dbname_itemname.hlp
       if a string is supplied for flag and no data base is opened,
       then string is assumed to be the name of a data base file.
       only information for that file is printed along with an
       optional file zdbase:dbname.hlp.
 PROCEDURES USED:
       DB_INFO(),DB_ITEM_INFO(),FIND_WITH_DEF(), TEXTOPEN, TEXTCLOSE, UNIQ()
 IDL VERSION:
       V5.3 or later (uses vectorized FDECOMP)
 CALLS: ***
	DB_INFO [1], DB_INFO [2], DB_INFO [3], DB_ITEM [1], DB_ITEM [2], DB_ITEM [3]
	DB_ITEM_INFO [1], DB_ITEM_INFO [2], DB_ITEM_INFO [3], FDECOMP [1], FDECOMP [2]
	FDECOMP [3], FIND_WITH_DEF [1], FIND_WITH_DEF [2], FIND_WITH_DEF [3]
	LIST_WITH_PATH [1], LIST_WITH_PATH [2], LIST_WITH_PATH [3], REM_DUP [1]
	REM_DUP [2], REM_DUP [3], TEXTCLOSE [1], TEXTCLOSE [2], TEXTCLOSE [3]
	TEXTOPEN [1], TEXTOPEN [2], TEXTOPEN [3]
 HISTORY:
       Version 2  D. Lindler  Nov 1987 (new db format)
       Faster printing of title desc. W. Landsman  May 1989 
       Keyword textout added, J. Isensee, July, 1990
       Modified to work on Unix, D. Neill, ACC, Feb 1991.
       William Thompson, GSFC/CDS (ARC), 1 June 1994
               Added support for external (IEEE) representation.
       William Thompson, GSFC, 3 November 1994
               Modified to allow ZDBASE to be a path string.
       Remove duplicate database names  Wayne Landsman    December 1994
       8/17/95 jkf/acc - force lowercase filenames for .hlp files.
       Added /SORT keyword  J. Sandoval/W. Landsman     October 1998
       V5.3 version use vectorized FDECOMP   W. Landsman   February 2001
       Recognize 64 bit, unsigned integer datatypes W. Landsman September 2001
       Fix display of number of bytes with /SORT W. Landsman February 2002
       Assume since V5.2                 W. Landsman February 2002  
       Assume since V5.5                 W. Landsman   


DBINDEX [1] $SSW/gen/idl/database/dbindex.pro
[Previous] [Next]
 NAME:
       DBINDEX
 PURPOSE:
       Procedure to create index file for data base 

 CALLING SEQUENCE:     
       dbindex, [ items ]

 OPTIONAL INPUT:
       items - names or numbers of items to be index -- if not supplied,
               then all indexed fields will be processed.  

 OUTPUT:
       Index file <name>.dbx is created on disk location ZDBASE:

 OPERATIONAL NOTES:
       (1) Data base must have been previously opened for update
       by DBOPEN 

       (2) Only 18 items can be indexed at one time.   If the database has
       more than 18 items, then two separate calls to DBINDEX are needed.
 PROCEDURES CALLED:
       DBINDEX_BLK, DB_INFO(), DB_ITEM, DB_ITEM_INFO(), IEEE_TO_HOST, 
       IS_IEEE_BIG()
 CALLS: ***
	BSORT [1], BSORT [2], BSORT [3], BSORT [4], DBEXT_DBF [1], DBEXT_DBF [2]
	DBEXT_DBF [3], DBINDEX_BLK [1], DBINDEX_BLK [2], DBINDEX_BLK [3], DB_INFO [1]
	DB_INFO [2], DB_INFO [3], DB_ITEM [1], DB_ITEM [2], DB_ITEM [3], DB_ITEM_INFO [1]
	DB_ITEM_INFO [2], DB_ITEM_INFO [3], HOST_TO_IEEE [1], HOST_TO_IEEE [2]
	HOST_TO_IEEE [3], HOST_TO_IEEE [4], IEEE_TO_HOST [1], IEEE_TO_HOST [2]
	IEEE_TO_HOST [3], IEEE_TO_HOST [4]
 CALLED BY:
	DBBUILD [1], DBBUILD [2], DBBUILD [3], DBDELETE [1], DBDELETE [2], DBDELETE [3]
	DBEDIT [1], DBEDIT [2], DBEDIT [3], DBEDIT_BASIC [1], DBEDIT_BASIC [2]
	DBEDIT_BASIC [3], DBEXT [2], DBUPDATE [1], DBUPDATE [2], DBUPDATE [3]
	DBUPDATE [4], FLUSH_CATALOG, PRG_DETAIL, PRG_PLAN
 HISTORY:
       version 2  D. Lindler  Nov 1987 (new db format)
       W. Landsman    added optional items parameter Feb 1989 
       William Thompson, GSFC/CDS (ARC), 30 May 1994
               Added support for external (IEEE) data format
       Test if machine is bigendian  W. Landsman     May, 1996
       Change variable name of BYTESWAP to BSWAP  W. Thompson  Mar, 1997
       Increased number of fields to 15   W. Landsman   June, 1997
       Increase number of items to 18     W. Landsman  November 1999
       Allow multiple valued (nonstring) index items W. Landsman November 2000
       Use 64 bit integers for V5.2 or later  W. Landsman February 2001
       Do not use EXECUTE() for V6.1 or later, improve efficiency 
                W. Landsman   December 2006
       Automatically enlarge .dbx file if needed, fix major bug in last
             update    W. Landsman Dec 2006


DBINDEX [2] $SSW/gen/idl_libs/astron/database/dbindex.pro
[Previous] [Next]
 NAME:
       DBINDEX
 PURPOSE:
       Procedure to create index file for data base 

 CALLING SEQUENCE:     
       dbindex, [ items ]

 OPTIONAL INPUT:
       items - names or numbers of items to be index -- if not supplied,
               then all indexed fields will be processed.  

 OUTPUT:
       Index file <name>.dbx is created on disk location ZDBASE:

 OPERATIONAL NOTES:
       (1) Data base must have been previously opened for update
       by DBOPEN 

       (2) Only 18 items can be indexed at one time.   If the database has
       more than 18 items, then two separate calls to DBINDEX are needed.
 PROCEDURES CALLED:
       DBINDEX_BLK, DB_INFO(), DB_ITEM, DB_ITEM_INFO(), IEEE_TO_HOST, 
       IS_IEEE_BIG()
 CALLS: ***
	BSORT [1], BSORT [2], BSORT [3], BSORT [4], DBEXT_DBF [1], DBEXT_DBF [2]
	DBEXT_DBF [3], DBINDEX_BLK [1], DBINDEX_BLK [2], DBINDEX_BLK [3], DB_INFO [1]
	DB_INFO [2], DB_INFO [3], DB_ITEM [1], DB_ITEM [2], DB_ITEM [3], DB_ITEM_INFO [1]
	DB_ITEM_INFO [2], DB_ITEM_INFO [3], HOST_TO_IEEE [1], HOST_TO_IEEE [2]
	HOST_TO_IEEE [3], HOST_TO_IEEE [4], IEEE_TO_HOST [1], IEEE_TO_HOST [2]
	IEEE_TO_HOST [3], IEEE_TO_HOST [4]
 CALLED BY:
	DBBUILD [1], DBBUILD [2], DBBUILD [3], DBDELETE [1], DBDELETE [2], DBDELETE [3]
	DBEDIT [1], DBEDIT [2], DBEDIT [3], DBEDIT_BASIC [1], DBEDIT_BASIC [2]
	DBEDIT_BASIC [3], DBEXT [2], DBUPDATE [1], DBUPDATE [2], DBUPDATE [3]
	DBUPDATE [4], FLUSH_CATALOG, PRG_DETAIL, PRG_PLAN
 HISTORY:
       version 2  D. Lindler  Nov 1987 (new db format)
       W. Landsman    added optional items parameter Feb 1989 
       William Thompson, GSFC/CDS (ARC), 30 May 1994
               Added support for external (IEEE) data format
       Test if machine is bigendian  W. Landsman     May, 1996
       Change variable name of BYTESWAP to BSWAP  W. Thompson  Mar, 1997
       Increased number of fields to 15   W. Landsman   June, 1997
       Increase number of items to 18     W. Landsman  November 1999
       Allow multiple valued (nonstring) index items W. Landsman November 2000
       Use 64 bit integers for V5.2 or later  W. Landsman February 2001
       Do not use EXECUTE() for V6.1 or later, improve efficiency 
                W. Landsman   December 2006
       Automatically enlarge .dbx file if needed, fix major bug in last
             update    W. Landsman Dec 2006


DBINDEX_BLK [1] $SSW/gen/idl/database/dbindex_blk.pro
[Previous] [Next]
 NAME:
       DBINDEX_BLK
 PURPOSE:
       Subroutine of DBINDEX to create associated variable of correct datatype
 EXPLANATION:
       DBINDEX_BLK will offset into the file by a specified amount in 
       preparation for writing to the file.   V5.2 or later

 CALLING SEQUENCE:
       res = dbindex_blk(unit, nb, bsz, ofb, dtype)

 INPUTS:
       unit   The unit number assigned to the file.
       nb     The number of blocks to offset into the file.
       bsz    The size of each block, in bytes, to offset into the file.
       ofb    The offset into the block, in bytes.
       dtype  The IDL datatype as defined in the SIZE function

 OUTPUTS:
       res    The returned variable.  This is an associated variable.

 CALLED BY:
	DBINDEX [1], DBINDEX [2], DBINDEX [3], DBWRT [1], DBWRT [2], DBWRT [3]
 RESTRICTIONS:
       The file must have been previously opened.

 MODIFICATION HISTORY:
       Written by Michael R. Greason, STX, 14 June 1990.
       Converted to IDL V5.0   W. Landsman   September 1997
       Use 64 bit integer for very large databases  W. Landsman February 2001
       Added new unsigned & 64bit integer datatypes    W. Landsman July 2001


DBINDEX_BLK [2] $SSW/gen/idl_libs/astron/database/dbindex_blk.pro
[Previous] [Next]
 NAME:
       DBINDEX_BLK
 PURPOSE:
       Subroutine of DBINDEX to create associated variable of correct datatype
 EXPLANATION:
       DBINDEX_BLK will offset into the file by a specified amount in 
       preparation for writing to the file.   V5.2 or later

 CALLING SEQUENCE:
       res = dbindex_blk(unit, nb, bsz, ofb, dtype)

 INPUTS:
       unit   The unit number assigned to the file.
       nb     The number of blocks to offset into the file.
       bsz    The size of each block, in bytes, to offset into the file.
       ofb    The offset into the block, in bytes.
       dtype  The IDL datatype as defined in the SIZE function

 OUTPUTS:
       res    The returned variable.  This is an associated variable.

 CALLED BY:
	DBINDEX [1], DBINDEX [2], DBINDEX [3], DBWRT [1], DBWRT [2], DBWRT [3]
 RESTRICTIONS:
       The file must have been previously opened.

 MODIFICATION HISTORY:
       Written by Michael R. Greason, STX, 14 June 1990.
       Converted to IDL V5.0   W. Landsman   September 1997
       Use 64 bit integer for very large databases  W. Landsman February 2001
       Added new unsigned & 64bit integer datatypes    W. Landsman July 2001


DBL2ARRAY $SSW/gen/idl/fund_lib/sdac/dbl2array.pro
[Previous] [Next]

 NAME: 
	DBL2ARRAY

 PURPOSE:
	Convert a 64 bit flag word to a byte array of 1's and 0's.  

 CATEGORY:
	SMM Catalog

 CALLING SEQUENCE:
	result = DBL2ARRAY(DBL=DBL)

 CALLED BY:
	SMMCAT

 CALLS TO:
	none

 INPUTS:
       DBL 	Double precision word array containing 64 bit flags to convert

 OPTIONAL INPUTS:
	none

 OUTPUTS:
       Returns a byte array (64 x n_elements(dbl)) containing 1s or 0s
	corresponding to the bits of DBL. 

 OPTIONAL OUTPUTS:
	none

 COMMON BLOCKS:
	none

 SIDE EFFECTS:
	none

 RESTRICTIONS:
	none

 PROCEDURE:
	Convert double values into 2 by n long array, and identify which
	bits are set.

 MODIFICATION HISTORY:
	Mar 15, 1994 - Kim Tolbert (HSTX)
	May '94      - Elaine Einfalt (HSTX) - Changed procedure into function
					     - Added array input
					     - Removed ONFLAGS return variable


DBMATCH [1] $SSW/gen/idl/database/dbmatch.pro
[Previous] [Next]
 NAME:
       DBMATCH
 PURPOSE:
       Find the entry number in a database for each element of item values
 EXPLANATION:
       DBMATCH() is especially useful for finding a one-to-one 
       correspondence between entries in different databases, and thus to 
       create the vector needed for database pointers.

 CALLING SEQUENCE:
       list = DBMATCH( item, values, [ listin, /FULLSTRING ] )

 INPUTS:
       ITEM - Item name or number, scalar
       VALUES -  scalar or vector containing item values to search for.

 OPTIONAL INPUTS:
       LISTIN - list of entries to be searched.  If not supplied, or
               set to -1, then all entries are searched
 OUTPUT:
       LIST - vector of entry numbers with the same number of elements as 
               VALUES.  Contains a value of 0 wherever the corresponding item
               value was not found.

 OPTIONAL INPUT:
       /FULLSTRING - By default, one has a match if a search string is 
               included in any part of a database value (substring match).   
               But if /FULLSTRING is set, then all characters in the database
               value must match the search string (excluding leading and 
               trailing blanks).    Both types of string searches are case
               insensitive.

 NOTES:
       DBMATCH is meant to be used for items which do not have duplicate values
       in a database (e.g. catalog numbers).  If more than one entry is found
       for a particular item value, then only the first one is stored in LIST.

       When linked databases are opened together, DBMATCH can only be 
       used to search on items in the primary database.

 CALLS: ***
	DATATYPE [1], DATATYPE [2], DATATYPE [3], DBEXT [1], DBEXT [2], DBEXT [3], DBEXT [4]
	DBFIND_SORT [1], DBFIND_SORT [2], DBFIND_SORT [3], DB_INFO [1], DB_INFO [2]
	DB_INFO [3], DB_ITEM [1], DB_ITEM [2], DB_ITEM [3], DB_ITEM_INFO [1]
	DB_ITEM_INFO [2], DB_ITEM_INFO [3]
 CALLED BY:
	ADD_DATAWIN, ADD_F_RASTER, ADD_LINELIST, ADD_RES_TYPE, ADD_V_RASTER, ADD_V_STUDY
	CHK_T_STUDY
 EXAMPLE:
       Make a vector which points from entries in the Yale Bright Star catalog
       to those in the Hipparcos catalog, using the HD number

       IDL> dbopen, 'yale_bs'            ;Open the Yale Bright star catalog
       IDL> dbext, -1, 'HD', hd          ;Get the HD numbers
       IDL> dbopen, 'hipparcos'          ;Open the Hipparcos catalog
       IDL> list = dbmatch( 'HD', HD)    ;Get entries in Hipparcos catalog 
                                         ;corresponding to each HD number.
 PROCEDURE CALLS:
       DB_ITEM, DB_ITEM_INFO(), DBEXT, DBFIND_SORT()
 REVISION HISTORY:
       Written,    W. Landsman      STX     February, 1990
       Fixed error when list in parameter used May, 1992
       Faster algorithm with sorted item when listin parameter supplied 
       Added keyword FULLSTRING,check for empty database, William Thompson, 
               GSFC, 15 March 1995
       Work for more than 32767 values, added CATCH W. Landsman   July 1997
       Converted to IDL V5.0   W. Landsman 25-Nov-1997
       Change some loop variables to type LONG,  W. Landsman  July 1999
       Remove loop for substring searches (faster)  W. landsman August 1999
       Replace DATATYPE() with size(/TNAME)  W. Landsman  November 2001
       Fixed typo when search on sorted items W. Landsman February 2002


DBMATCH [2] $SSW/gen/idl_libs/astron/database/dbmatch.pro
[Previous] [Next]
 NAME:
       DBMATCH
 PURPOSE:
       Find the entry number in a database for each element of item values
 EXPLANATION:
       DBMATCH() is especially useful for finding a one-to-one 
       correspondence between entries in different databases, and thus to 
       create the vector needed for database pointers.

 CALLING SEQUENCE:
       list = DBMATCH( item, values, [ listin, /FULLSTRING ] )

 INPUTS:
       ITEM - Item name or number, scalar
       VALUES -  scalar or vector containing item values to search for.

 OPTIONAL INPUTS:
       LISTIN - list of entries to be searched.  If not supplied, or
               set to -1, then all entries are searched
 OUTPUT:
       LIST - vector of entry numbers with the same number of elements as 
               VALUES.  Contains a value of 0 wherever the corresponding item
               value was not found.

 OPTIONAL INPUT:
       /FULLSTRING - By default, one has a match if a search string is 
               included in any part of a database value (substring match).   
               But if /FULLSTRING is set, then all characters in the database
               value must match the search string (excluding leading and 
               trailing blanks).    Both types of string searches are case
               insensitive.

 NOTES:
       DBMATCH is meant to be used for items which do not have duplicate values
       in a database (e.g. catalog numbers).  If more than one entry is found
       for a particular item value, then only the first one is stored in LIST.

       When linked databases are opened together, DBMATCH can only be 
       used to search on items in the primary database.

 CALLS: ***
	DATATYPE [1], DATATYPE [2], DATATYPE [3], DBEXT [1], DBEXT [2], DBEXT [3], DBEXT [4]
	DBFIND_SORT [1], DBFIND_SORT [2], DBFIND_SORT [3], DB_INFO [1], DB_INFO [2]
	DB_INFO [3], DB_ITEM [1], DB_ITEM [2], DB_ITEM [3], DB_ITEM_INFO [1]
	DB_ITEM_INFO [2], DB_ITEM_INFO [3]
 CALLED BY:
	ADD_DATAWIN, ADD_F_RASTER, ADD_LINELIST, ADD_RES_TYPE, ADD_V_RASTER, ADD_V_STUDY
	CHK_T_STUDY
 EXAMPLE:
       Make a vector which points from entries in the Yale Bright Star catalog
       to those in the Hipparcos catalog, using the HD number

       IDL> dbopen, 'yale_bs'            ;Open the Yale Bright star catalog
       IDL> dbext, -1, 'HD', hd          ;Get the HD numbers
       IDL> dbopen, 'hipparcos'          ;Open the Hipparcos catalog
       IDL> list = dbmatch( 'HD', HD)    ;Get entries in Hipparcos catalog 
                                         ;corresponding to each HD number.
 PROCEDURE CALLS:
       DB_ITEM, DB_ITEM_INFO(), DBEXT, DBFIND_SORT()
 REVISION HISTORY:
       Written,    W. Landsman      STX     February, 1990
       Fixed error when list in parameter used May, 1992
       Faster algorithm with sorted item when listin parameter supplied 
       Added keyword FULLSTRING,check for empty database, William Thompson, 
               GSFC, 15 March 1995
       Work for more than 32767 values, added CATCH W. Landsman   July 1997
       Converted to IDL V5.0   W. Landsman 25-Nov-1997
       Change some loop variables to type LONG,  W. Landsman  July 1999
       Remove loop for substring searches (faster)  W. landsman August 1999
       Replace DATATYPE() with size(/TNAME)  W. Landsman  November 2001
       Fixed typo when search on sorted items W. Landsman February 2002


DBOPEN [1] $SSW/gen/idl/database/dbopen.pro
[Previous] [Next]
 NAME:
       DBOPEN
 PURPOSE:
       Routine to open an IDL database

 CALLING SEQUENCE:
       dbopen, name, update

 INPUTS:
       name - (Optional) name or names of the data base files to open.
               It has one of the following forms:

               'name'          -open single data base file
               'name1,name2,...,nameN' - open N files which are
                               connected via pointers.
               'name,*'        -Open the data base with all data
                               bases connected via pointers
               ''              -Interactively allow selection of
                               the data base files.

               If not supplied then '' is assumed.
               name may optionally be a string array with one name
               per element.

       update - (Optional) Integer flag specifing openning for update.
               0       - Open for read only
               1       - Open for update
               2       - Open index file for update only
               !PRIV must be 2 or greater to open a file for update.
               If a file is opened for update only a single data base
               can be specified.

 OUTPUTS:
       none

 KEYWORDS:
       UNAVAIL - If present, a "database doesn't exit" flag is returned
                 through it.  0 = the database exists and was opened (if
                 no other errors arose).  1 = the database doesn't exist.
                 Also if present, the error message for non-existent databases
                 is suppressed.  The action, however, remains the same.  
 CALLS: ***
	DBCLOSE [1], DBCLOSE [2], DBCLOSE [3], DB_INFO [1], DB_INFO [2], DB_INFO [3]
	FDECOMP [1], FDECOMP [2], FDECOMP [3], FIND_WITH_DEF [1], FIND_WITH_DEF [2]
	FIND_WITH_DEF [3], GETTOK [1], GETTOK [2], GETTOK [3], GETTOK [4]
	IEEE_TO_HOST [1], IEEE_TO_HOST [2], IEEE_TO_HOST [3], IEEE_TO_HOST [4]
	LIST_WITH_PATH [1], LIST_WITH_PATH [2], LIST_WITH_PATH [3], SCREEN_SELECT [1]
	SCREEN_SELECT [2], SCREEN_SELECT [3], ZPARCHECK [1], ZPARCHECK [2]
	ZPARCHECK [3]
 CALLED BY:
	ADD_ALT, ADD_ANOMALY, ADD_CAMPAIGN, ADD_CDS_POINT, ADD_DATAWIN, ADD_DETAIL
	ADD_EFFICIENCY, ADD_EFF_AREA, ADD_EXPER, ADD_EXP_COMM, ADD_FLAG, ADD_F_RASTER
	ADD_F_STUDY, ADD_GSET, ADD_INST_DLYD, ADD_LINELIST, ADD_MAIN, ADD_MIRSHIFT
	ADD_NRT_RES, ADD_OTHER_OBS, ADD_PLAN, ADD_PROGRAM, ADD_RAW, ADD_RESOURCE
	ADD_RES_TYPE, ADD_TEL_MODE, ADD_TEL_SUBMODE, ADD_TILTCAL, ADD_T_STUDY
	ADD_V_RASTER, ADD_V_STUDY, ADD_WAVECAL, ADD_WAVE_EFF, CHECK_INTEG, CHK_DATAWIN
	CHK_F_RASTER, CHK_F_STUDY, CHK_LINELIST, CHK_T_STUDY, CHK_V_RASTER, CHK_V_STUDY
	CLR_INST_DLYD, CLR_NRT_RES, CLR_OTHER_OBS, CLR_RESOURCE, CLR_TEL_MODE
	CLR_TEL_SUBMODE, CP_GET_HISTORY, CP_GET_MNEMONIC, DBCOMPRESS, DBDELETE [1]
	DBDELETE [2], DBDELETE [3], DBEDIT [1], DBEDIT [2], DBEDIT [3], DBEDIT_BASIC [1]
	DBEDIT_BASIC [2], DBEDIT_BASIC [3], DBREPAIR, DEL_ALT, DEL_ANOMALY, DEL_DETAIL
	DEL_FLAG, DEL_PLAN, DEL_SOHO_DET, EIS_LIST_EXPER [1], EIS_LIST_EXPER [2]
	EIS_LIST_MAIN [1], EIS_LIST_MAIN [2], FIND_CDS_STUDIES, FIX_MAIN_TIMES
	FIX_OBS_SEQ, FLUSH_CATALOG, GET_ALT, GET_ANOMALY, GET_CAMPAIGN, GET_CDHS_DEXWIN
	GET_CDHS_RASTER, GET_CDHS_SERIES, GET_CDHS_VDSWIN, GET_CDS_PNTCAL, GET_COMPRESS
	GET_DATAWIN, GET_DETAIL, GET_EFFICIENCY, GET_EFF_AREA, GET_EXPER, GET_FLAG
	GET_F_RASTER, GET_F_STUDY, GET_GSET, GET_INSTRUMENT, GET_LINELIST, GET_MAIN
	GET_MIRSHIFT, GET_PLAN, GET_PROGRAM, GET_RASTER, GET_RAW, GET_RAW_FIL, GET_SOHO_DET
	GET_STUDY, GET_TILTCAL, GET_WAVECAL, GET_WAVE_EFF, IMDBASE, LAST_KAP_VERS, LIST_ALT
	LIST_ANOMALY, LIST_CAMPAIGN, LIST_CDROM, LIST_COM_TIMES, LIST_DATAWIN, LIST_DETAIL
	LIST_DLYD_TIMES, LIST_DSN, LIST_EXPER, LIST_EXP_COMM, LIST_FLAG, LIST_F_RASTER
	LIST_F_STUDY, LIST_GSET, LIST_INST_DLYD, LIST_LINELIST, LIST_MAIN, LIST_MDI_M
	LIST_NRT_RES, LIST_OBJECT, LIST_OTHER_OBS, LIST_OTHER_RES, LIST_PLAN, LIST_PROGRAM
	LIST_RAW, LIST_RES_TYPE, LIST_SOHO_DET, LIST_V_RASTER, LIST_V_STUDY, MOD_CAMPAIGN
	MOD_DETAIL, MOD_EXPER, MOD_GSET, MOD_LINELIST, MOD_MAIN, MOD_V_RASTER, MOD_V_STUDY
	PRG_ALT, PRG_ANOMALY, PRG_DETAIL, PRG_FLAG, PRG_PLAN, PRG_SOHO_DET, PURGE_CDHSSTATE
	REG_CDROM, SEARCH_HXRBS_DB, SET_KAP_VERS, TP_DISP_RAST, UPD_PLAN, UPD_SOHO_DET
	WHAT_CDHS_STUDY, WHAT_USES, db_read_linelist_all [1], db_read_linelist_all [2]
	db_read_linelist_entry [1], db_read_linelist_entry [2]
	db_read_raster_all [1], db_read_raster_all [2], db_read_raster_entry [1]
	db_read_raster_entry [2], db_read_study_all [1], db_read_study_all [2]
	db_save_linelist_entry_create [1], db_save_linelist_entry_create [2]
	db_save_linelist_entry_update [1], db_save_linelist_entry_update [2]
	db_save_raster_entry_create [1], db_save_raster_entry_create [2]
	db_save_raster_entry_update [1], db_save_raster_entry_update [2]
	db_save_study_entry_create [1], db_save_study_entry_create [2]
	db_save_study_entry_create [3], db_save_study_entry_create [4]
	db_save_study_entry_update [1], db_save_study_entry_update [2]
	eis_delete_timeline_entry [1], eis_delete_timeline_entry [2]
	eis_get_timeline_entries [1], eis_get_timeline_entries [2]
	eis_import_study_gui, eis_linelist_gui [1], eis_linelist_gui [2]
	eis_open_db [1], eis_open_db [2], eis_raster_gui [1], eis_raster_gui [2]
	eis_save_imported_linelist, eis_save_imported_raster, eis_study_gui [1]
	eis_study_gui [2], eis_update_timeline_entry [1]
	eis_update_timeline_entry [2], eis_update_timeline_science_entry [1]
	eis_update_timeline_science_entry [2]
	eis_write_science_component_database_table [1]
	eis_write_science_component_database_table [2]
 SIDE EFFECTS:
       The .DBF and .dbx files are opened using unit numbers obtained by
       GET_LUN.  Descriptions of the files are placed in the common block
       DB_COM.

 HISTORY:
       For IDL Version 2  W. Landsman May 1990 -- Will require further 
           modfication once SCREEN_SELECT is working
       Modified to work under Unix, D. Neill, ACC, Feb 1991.
       UNAVAIL keyword added.  M. Greason, Hughes STX, Feb 1993.
       William Thompson, GSFC/CDS (ARC), 1 June 1994
               Added support for external (IEEE) representation.
       William Thompson, GSFC, 3 November 1994
                       Modified to allow ZDBASE to be a path string.
       8/29/95 JKF/ACC - forces lowercase for input database names.
       W. Landsman, Use CATCH to catch errors    July, 1997
       W. Landsman Use vector call to FDECOMP, STRSPLIT()    Sep 2006
       W. Landsman Remove obsolete keywords to OPEN   Sep 2006


DBOPEN [2] $SSW/gen/idl_libs/astron/database/dbopen.pro
[Previous] [Next]
 NAME:
       DBOPEN
 PURPOSE:
       Routine to open an IDL database

 CALLING SEQUENCE:
       dbopen, name, update

 INPUTS:
       name - (Optional) name or names of the data base files to open.
               It has one of the following forms:

               'name'          -open single data base file
               'name1,name2,...,nameN' - open N files which are
                               connected via pointers.
               'name,*'        -Open the data base with all data
                               bases connected via pointers
               ''              -Interactively allow selection of
                               the data base files.

               If not supplied then '' is assumed.
               name may optionally be a string array with one name
               per element.

       update - (Optional) Integer flag specifing openning for update.
               0       - Open for read only
               1       - Open for update
               2       - Open index file for update only
               !PRIV must be 2 or greater to open a file for update.
               If a file is opened for update only a single data base
               can be specified.

 OUTPUTS:
       none

 KEYWORDS:
       UNAVAIL - If present, a "database doesn't exit" flag is returned
                 through it.  0 = the database exists and was opened (if
                 no other errors arose).  1 = the database doesn't exist.
                 Also if present, the error message for non-existent databases
                 is suppressed.  The action, however, remains the same.  
 CALLS: ***
	DBCLOSE [1], DBCLOSE [2], DBCLOSE [3], DB_INFO [1], DB_INFO [2], DB_INFO [3]
	FDECOMP [1], FDECOMP [2], FDECOMP [3], FIND_WITH_DEF [1], FIND_WITH_DEF [2]
	FIND_WITH_DEF [3], GETTOK [1], GETTOK [2], GETTOK [3], GETTOK [4]
	IEEE_TO_HOST [1], IEEE_TO_HOST [2], IEEE_TO_HOST [3], IEEE_TO_HOST [4]
	LIST_WITH_PATH [1], LIST_WITH_PATH [2], LIST_WITH_PATH [3], SCREEN_SELECT [1]
	SCREEN_SELECT [2], SCREEN_SELECT [3], ZPARCHECK [1], ZPARCHECK [2]
	ZPARCHECK [3]
 CALLED BY:
	ADD_ALT, ADD_ANOMALY, ADD_CAMPAIGN, ADD_CDS_POINT, ADD_DATAWIN, ADD_DETAIL
	ADD_EFFICIENCY, ADD_EFF_AREA, ADD_EXPER, ADD_EXP_COMM, ADD_FLAG, ADD_F_RASTER
	ADD_F_STUDY, ADD_GSET, ADD_INST_DLYD, ADD_LINELIST, ADD_MAIN, ADD_MIRSHIFT
	ADD_NRT_RES, ADD_OTHER_OBS, ADD_PLAN, ADD_PROGRAM, ADD_RAW, ADD_RESOURCE
	ADD_RES_TYPE, ADD_TEL_MODE, ADD_TEL_SUBMODE, ADD_TILTCAL, ADD_T_STUDY
	ADD_V_RASTER, ADD_V_STUDY, ADD_WAVECAL, ADD_WAVE_EFF, CHECK_INTEG, CHK_DATAWIN
	CHK_F_RASTER, CHK_F_STUDY, CHK_LINELIST, CHK_T_STUDY, CHK_V_RASTER, CHK_V_STUDY
	CLR_INST_DLYD, CLR_NRT_RES, CLR_OTHER_OBS, CLR_RESOURCE, CLR_TEL_MODE
	CLR_TEL_SUBMODE, CP_GET_HISTORY, CP_GET_MNEMONIC, DBCOMPRESS, DBDELETE [1]
	DBDELETE [2], DBDELETE [3], DBEDIT [1], DBEDIT [2], DBEDIT [3], DBEDIT_BASIC [1]
	DBEDIT_BASIC [2], DBEDIT_BASIC [3], DBREPAIR, DEL_ALT, DEL_ANOMALY, DEL_DETAIL
	DEL_FLAG, DEL_PLAN, DEL_SOHO_DET, EIS_LIST_EXPER [1], EIS_LIST_EXPER [2]
	EIS_LIST_MAIN [1], EIS_LIST_MAIN [2], FIND_CDS_STUDIES, FIX_MAIN_TIMES
	FIX_OBS_SEQ, FLUSH_CATALOG, GET_ALT, GET_ANOMALY, GET_CAMPAIGN, GET_CDHS_DEXWIN
	GET_CDHS_RASTER, GET_CDHS_SERIES, GET_CDHS_VDSWIN, GET_CDS_PNTCAL, GET_COMPRESS
	GET_DATAWIN, GET_DETAIL, GET_EFFICIENCY, GET_EFF_AREA, GET_EXPER, GET_FLAG
	GET_F_RASTER, GET_F_STUDY, GET_GSET, GET_INSTRUMENT, GET_LINELIST, GET_MAIN
	GET_MIRSHIFT, GET_PLAN, GET_PROGRAM, GET_RASTER, GET_RAW, GET_RAW_FIL, GET_SOHO_DET
	GET_STUDY, GET_TILTCAL, GET_WAVECAL, GET_WAVE_EFF, IMDBASE, LAST_KAP_VERS, LIST_ALT
	LIST_ANOMALY, LIST_CAMPAIGN, LIST_CDROM, LIST_COM_TIMES, LIST_DATAWIN, LIST_DETAIL
	LIST_DLYD_TIMES, LIST_DSN, LIST_EXPER, LIST_EXP_COMM, LIST_FLAG, LIST_F_RASTER
	LIST_F_STUDY, LIST_GSET, LIST_INST_DLYD, LIST_LINELIST, LIST_MAIN, LIST_MDI_M
	LIST_NRT_RES, LIST_OBJECT, LIST_OTHER_OBS, LIST_OTHER_RES, LIST_PLAN, LIST_PROGRAM
	LIST_RAW, LIST_RES_TYPE, LIST_SOHO_DET, LIST_V_RASTER, LIST_V_STUDY, MOD_CAMPAIGN
	MOD_DETAIL, MOD_EXPER, MOD_GSET, MOD_LINELIST, MOD_MAIN, MOD_V_RASTER, MOD_V_STUDY
	PRG_ALT, PRG_ANOMALY, PRG_DETAIL, PRG_FLAG, PRG_PLAN, PRG_SOHO_DET, PURGE_CDHSSTATE
	REG_CDROM, SEARCH_HXRBS_DB, SET_KAP_VERS, TP_DISP_RAST, UPD_PLAN, UPD_SOHO_DET
	WHAT_CDHS_STUDY, WHAT_USES, db_read_linelist_all [1], db_read_linelist_all [2]
	db_read_linelist_entry [1], db_read_linelist_entry [2]
	db_read_raster_all [1], db_read_raster_all [2], db_read_raster_entry [1]
	db_read_raster_entry [2], db_read_study_all [1], db_read_study_all [2]
	db_save_linelist_entry_create [1], db_save_linelist_entry_create [2]
	db_save_linelist_entry_update [1], db_save_linelist_entry_update [2]
	db_save_raster_entry_create [1], db_save_raster_entry_create [2]
	db_save_raster_entry_update [1], db_save_raster_entry_update [2]
	db_save_study_entry_create [1], db_save_study_entry_create [2]
	db_save_study_entry_create [3], db_save_study_entry_create [4]
	db_save_study_entry_update [1], db_save_study_entry_update [2]
	eis_delete_timeline_entry [1], eis_delete_timeline_entry [2]
	eis_get_timeline_entries [1], eis_get_timeline_entries [2]
	eis_import_study_gui, eis_linelist_gui [1], eis_linelist_gui [2]
	eis_open_db [1], eis_open_db [2], eis_raster_gui [1], eis_raster_gui [2]
	eis_save_imported_linelist, eis_save_imported_raster, eis_study_gui [1]
	eis_study_gui [2], eis_update_timeline_entry [1]
	eis_update_timeline_entry [2], eis_update_timeline_science_entry [1]
	eis_update_timeline_science_entry [2]
	eis_write_science_component_database_table [1]
	eis_write_science_component_database_table [2]
 SIDE EFFECTS:
       The .DBF and .dbx files are opened using unit numbers obtained by
       GET_LUN.  Descriptions of the files are placed in the common block
       DB_COM.

 HISTORY:
       For IDL Version 2  W. Landsman May 1990 -- Will require further 
           modfication once SCREEN_SELECT is working
       Modified to work under Unix, D. Neill, ACC, Feb 1991.
       UNAVAIL keyword added.  M. Greason, Hughes STX, Feb 1993.
       William Thompson, GSFC/CDS (ARC), 1 June 1994
               Added support for external (IEEE) representation.
       William Thompson, GSFC, 3 November 1994
                       Modified to allow ZDBASE to be a path string.
       8/29/95 JKF/ACC - forces lowercase for input database names.
       W. Landsman, Use CATCH to catch errors    July, 1997
       W. Landsman Use vector call to FDECOMP, STRSPLIT()    Sep 2006
       W. Landsman Remove obsolete keywords to OPEN   Sep 2006


DBPRINT [1] $SSW/gen/idl/database/dbprint.pro
[Previous] [Next]
 NAME:
     DBPRINT
 PURPOSE:
     Procedure to print specified items from a list of database entries

 CALLING SEQUENCE:     
     dbprint, list, [items, FORMS= , TEXTOUT= , /AdjustFormat, /NoHeader]  

 INPUTS:
     list  - list of entry numbers to be printed, vector or scalar 
               if list = -1, then all entries will be printed.
               An error message is returned if any entry number is larger
               than the number of entries in the database

 OPTIONAL INPUT-OUTPUT:
     items - items to be printed, specified in any of the following ways:

               form 1  scalar string giving item(s) as list of names
                       separated by commas
               form 2  string array giving list of item names
               form 3  string of form '$filename' giving name
                       of text file containing items (one item per
                       line)
               form 4  integer scalar giving single item number or
                         integer vector list of item numbers
               form 5  Null string specifying interactive selection.   This
                       is the default if 'items' is not supplied
               form 6  '*'     select all items, printout will be in
                       table format. 

            If items was undefined or a null string on input, then
            on output it will contain the items interactively selected.

 OPTIONAL INPUT KEYWORDS:
       /ADJUSTFORMAT -  If set, then the format length for string items will
               be adjusted to the maximum length for the entries to be printed.
               This option will slow down DBPRINT because it requires the 
               string items be extracted and their maximum length determined 
               prior to any printing.   However, it enables the display of
               string items without any truncation or wasted space. 

       FORMS - The number of printed lines per page. If forms is not 
               present, output assumed to be in PORTRAIT form, and 
               a heading and 47 lines are printed on each page, with
               a page eject between each page.  For LANDSCAPE form with
               headings on each page, and a page eject between pages, set 
               forms = 34.  For a heading only on the first page, and no
               page eject, set forms = 0.   This is the default for output
               to the terminal.

       TEXTOUT - Integer (0-7) or string used to determine output device (see 
               TEXTOPEN for more info).  If not present, the !TEXTOUT system 
               variable is used.
               textout=0       Nowhere
               textout=1       if a TTY then TERMINAL using /more option
                                   otherwise standard (Unit=-1) output
               textout=2       if a TTY then TERMINAL without /more option
                                   otherwise standard (Unit=-1) output
               textout=3       dbprint.prt (file)
               textout=4       laser.tmp
               textout=5       user must open file
               textout=7      same as 3 but text is appended to <program>.prt
               textout = filename   (default extension of .prt)

       /NOHEADER - If this keyword is set, then the column headers will not
               be printed

 CALLS: ***
	DATATYPE [1], DATATYPE [2], DATATYPE [3], DBRD [1], DBRD [2], DBRD [3], DBTITLE [1]
	DBTITLE [2], DBTITLE [3], DBXVAL [1], DBXVAL [2], DBXVAL [3], DB_INFO [1]
	DB_INFO [2], DB_INFO [3], DB_ITEM [1], DB_ITEM [2], DB_ITEM [3], DB_ITEM_INFO [1]
	DB_ITEM_INFO [2], DB_ITEM_INFO [3], FIND_WITH_DEF [1], FIND_WITH_DEF [2]
	FIND_WITH_DEF [3], TEXTCLOSE [1], TEXTCLOSE [2], TEXTCLOSE [3], TEXTOPEN [1]
	TEXTOPEN [2], TEXTOPEN [3], ZPARCHECK [1], ZPARCHECK [2], ZPARCHECK [3]
 CALLED BY:
	DBEDIT_BASIC [1], DBEDIT_BASIC [2], DBEDIT_BASIC [3], IMDBASE
 EXAMPLE:
       The following example shows how a multiple valued item DATAMAX can be 
       printed as separate columns.   In the WFPC2 target database, DATAMAX
       is an item with 4 values, one for each of the 4 chips

       IDL> dbopen,'wflog'
       IDL> dbprint,list,'entry,datamax(0),datamax(1),datamax(2),datamax(3)'

 SYSTEM VARIABLES:
       Output device controlled by non-standard system varaible !TEXTOUT, if 
       TEXTOUT keyword is not used.    

 NOTES:
       Users may want to adjust the default lines_per_page value given at
       the beginning of the program for their own particular printer.
 PROCEDURE CALLS:
       db_info(), db_item_info(), dbtitle(), dbxval(), textopen, textclose
       zparcheck
 HISTORY:
       version 2  D. Lindler  Nov. 1987 (new db format)
       Test if user pressed 'Q' in response to /MORE W. Landsman  Sep 1991
       Apply STRTRIM to free form (table) output    W. Landsman   Dec 1992
       Test for string value of TEXTOUT         W. Landsman   Feb 1994
       William Thompson, GSFC, 3 November 1994
                       Modified to allow ZDBASE to be a path string.
       W. Landsman, GSFC, July, 1997, Use CATCH to catch errors
       Removed STRTRIM in table format output to handle byte values April 1999
       Fixed occasional problem when /NOHEADER is supplied   Sep. 1999
       Only byteswap when necessary for improved performance  Feb. 2000
       Change loop index for table listing to type LONG  W. Landsman Aug 2000
       Entry vector can be any integer type   W. Landsman Aug. 2001
       Replace DATATYPE() with size(/TNAME)   W. Landsman  Nov. 2001
       No page eject for TEXTOUT =5           W. Landsman  Nov. 2001
       No initial page eject                  W. Landsman  Jan. 2002
       Added AdjustFormat keyword             W. Landsman  Sep. 2002
       Assume since V5.3 (STRJOIN)            W. Landsman Feb. 2004
       Fix display on GUI terminals           W. Landsman March 2006
       Remove VMS statements                  W. Landsman Sep 2006
       Remove EXECUTE statement               W. Landsman Jan 2007


DBPRINT [2] $SSW/gen/idl_libs/astron/database/dbprint.pro
[Previous] [Next]
 NAME:
     DBPRINT
 PURPOSE:
     Procedure to print specified items from a list of database entries

 CALLING SEQUENCE:     
     dbprint, list, [items, FORMS= , TEXTOUT= , /AdjustFormat, /NoHeader]  

 INPUTS:
     list  - list of entry numbers to be printed, vector or scalar 
               if list = -1, then all entries will be printed.
               An error message is returned if any entry number is larger
               than the number of entries in the database

 OPTIONAL INPUT-OUTPUT:
     items - items to be printed, specified in any of the following ways:

               form 1  scalar string giving item(s) as list of names
                       separated by commas
               form 2  string array giving list of item names
               form 3  string of form '$filename' giving name
                       of text file containing items (one item per
                       line)
               form 4  integer scalar giving single item number or
                         integer vector list of item numbers
               form 5  Null string specifying interactive selection.   This
                       is the default if 'items' is not supplied
               form 6  '*'     select all items, printout will be in
                       table format. 

            If items was undefined or a null string on input, then
            on output it will contain the items interactively selected.

 OPTIONAL INPUT KEYWORDS:
       /ADJUSTFORMAT -  If set, then the format length for string items will
               be adjusted to the maximum length for the entries to be printed.
               This option will slow down DBPRINT because it requires the 
               string items be extracted and their maximum length determined 
               prior to any printing.   However, it enables the display of
               string items without any truncation or wasted space. 

       FORMS - The number of printed lines per page. If forms is not 
               present, output assumed to be in PORTRAIT form, and 
               a heading and 47 lines are printed on each page, with
               a page eject between each page.  For LANDSCAPE form with
               headings on each page, and a page eject between pages, set 
               forms = 34.  For a heading only on the first page, and no
               page eject, set forms = 0.   This is the default for output
               to the terminal.

       TEXTOUT - Integer (0-7) or string used to determine output device (see 
               TEXTOPEN for more info).  If not present, the !TEXTOUT system 
               variable is used.
               textout=0       Nowhere
               textout=1       if a TTY then TERMINAL using /more option
                                   otherwise standard (Unit=-1) output
               textout=2       if a TTY then TERMINAL without /more option
                                   otherwise standard (Unit=-1) output
               textout=3       dbprint.prt (file)
               textout=4       laser.tmp
               textout=5       user must open file
               textout=7      same as 3 but text is appended to <program>.prt
               textout = filename   (default extension of .prt)

       /NOHEADER - If this keyword is set, then the column headers will not
               be printed

 CALLS: ***
	DATATYPE [1], DATATYPE [2], DATATYPE [3], DBRD [1], DBRD [2], DBRD [3], DBTITLE [1]
	DBTITLE [2], DBTITLE [3], DBXVAL [1], DBXVAL [2], DBXVAL [3], DB_INFO [1]
	DB_INFO [2], DB_INFO [3], DB_ITEM [1], DB_ITEM [2], DB_ITEM [3], DB_ITEM_INFO [1]
	DB_ITEM_INFO [2], DB_ITEM_INFO [3], FIND_WITH_DEF [1], FIND_WITH_DEF [2]
	FIND_WITH_DEF [3], TEXTCLOSE [1], TEXTCLOSE [2], TEXTCLOSE [3], TEXTOPEN [1]
	TEXTOPEN [2], TEXTOPEN [3], ZPARCHECK [1], ZPARCHECK [2], ZPARCHECK [3]
 CALLED BY:
	DBEDIT_BASIC [1], DBEDIT_BASIC [2], DBEDIT_BASIC [3], IMDBASE
 EXAMPLE:
       The following example shows how a multiple valued item DATAMAX can be 
       printed as separate columns.   In the WFPC2 target database, DATAMAX
       is an item with 4 values, one for each of the 4 chips

       IDL> dbopen,'wflog'
       IDL> dbprint,list,'entry,datamax(0),datamax(1),datamax(2),datamax(3)'

 SYSTEM VARIABLES:
       Output device controlled by non-standard system varaible !TEXTOUT, if 
       TEXTOUT keyword is not used.    

 NOTES:
       Users may want to adjust the default lines_per_page value given at
       the beginning of the program for their own particular printer.
 PROCEDURE CALLS:
       db_info(), db_item_info(), dbtitle(), dbxval(), textopen, textclose
       zparcheck
 HISTORY:
       version 2  D. Lindler  Nov. 1987 (new db format)
       Test if user pressed 'Q' in response to /MORE W. Landsman  Sep 1991
       Apply STRTRIM to free form (table) output    W. Landsman   Dec 1992
       Test for string value of TEXTOUT         W. Landsman   Feb 1994
       William Thompson, GSFC, 3 November 1994
                       Modified to allow ZDBASE to be a path string.
       W. Landsman, GSFC, July, 1997, Use CATCH to catch errors
       Removed STRTRIM in table format output to handle byte values April 1999
       Fixed occasional problem when /NOHEADER is supplied   Sep. 1999
       Only byteswap when necessary for improved performance  Feb. 2000
       Change loop index for table listing to type LONG  W. Landsman Aug 2000
       Entry vector can be any integer type   W. Landsman Aug. 2001
       Replace DATATYPE() with size(/TNAME)   W. Landsman  Nov. 2001
       No page eject for TEXTOUT =5           W. Landsman  Nov. 2001
       No initial page eject                  W. Landsman  Jan. 2002
       Added AdjustFormat keyword             W. Landsman  Sep. 2002
       Assume since V5.3 (STRJOIN)            W. Landsman Feb. 2004
       Fix display on GUI terminals           W. Landsman March 2006
       Remove VMS statements                  W. Landsman Sep 2006
       Remove EXECUTE statement               W. Landsman Jan 2007


DBPUT [1] $SSW/gen/idl/database/dbput.pro
[Previous] [Next]
 NAME:
	DBPUT
 PURPOSE:
	Procedure to place a new value for a specified item into
	a data base file entry.  

 CALLING SEQUENCE:	
	dbput, item, val, entry

 INPUTS:
	item - item name or number
	val - item value(s)

 INPUT/OUTPUT:
	entry - entry (byte array) or scalar entry number.
	        if entry is a scalar entry number then the data
	        base file will be updated.  Otherwise the change
	        will be only made to the entry array which must
	        be written latter using DBWRT.

 OPERATIONAL NOTES:
	If entry is a scalar entry number or the input file name
	is supplied, the entry in the data base will be updated
	instead of a supplied entry variable.  In this case, !priv
	must be greater than 1.
 CALLS: ***
	DBRD [1], DBRD [2], DBRD [3], DBWRT [1], DBWRT [2], DBWRT [3], DBXPUT [1], DBXPUT [2]
	DBXPUT [3], DB_ITEM [1], DB_ITEM [2], DB_ITEM [3]
 CALLED BY:
	DBDELETE [1], DBDELETE [2], DBDELETE [3], db_save_linelist_entry_update [1]
	db_save_linelist_entry_update [2], db_save_raster_entry_update [1]
	db_save_raster_entry_update [2], db_save_study_entry_update [1]
	db_save_study_entry_update [2], eis_delete_timeline_entry [1]
	eis_delete_timeline_entry [2], eis_update_timeline_entry [1]
	eis_update_timeline_entry [2], eis_update_timeline_science_entry [1]
	eis_update_timeline_science_entry [2]
 EXAMPLE:
       IDL> dbput,'WAVELEN',1215.6,entry
 PROCEDURES USED:
       DB_ITEM, DBRD, DBXPUT, DBWRT
 HISTORY:
	version 2  D. Lindler  Feb 1988 (new db formats)
	modified to convert blanks into zeros correctly D. Neill Jan 1991
	Converted to IDL V5.0   W. Landsman   September 1997
       V5.2 version support unsigned, 64bit integers W. Landsman  Sep. 2001


DBPUT [2] $SSW/gen/idl_libs/astron/database/dbput.pro
[Previous] [Next]
 NAME:
	DBPUT
 PURPOSE:
	Procedure to place a new value for a specified item into
	a data base file entry.  

 CALLING SEQUENCE:	
	dbput, item, val, entry

 INPUTS:
	item - item name or number
	val - item value(s)

 INPUT/OUTPUT:
	entry - entry (byte array) or scalar entry number.
	        if entry is a scalar entry number then the data
	        base file will be updated.  Otherwise the change
	        will be only made to the entry array which must
	        be written latter using DBWRT.

 OPERATIONAL NOTES:
	If entry is a scalar entry number or the input file name
	is supplied, the entry in the data base will be updated
	instead of a supplied entry variable.  In this case, !priv
	must be greater than 1.
 CALLS: ***
	DBRD [1], DBRD [2], DBRD [3], DBWRT [1], DBWRT [2], DBWRT [3], DBXPUT [1], DBXPUT [2]
	DBXPUT [3], DB_ITEM [1], DB_ITEM [2], DB_ITEM [3]
 CALLED BY:
	DBDELETE [1], DBDELETE [2], DBDELETE [3], db_save_linelist_entry_update [1]
	db_save_linelist_entry_update [2], db_save_raster_entry_update [1]
	db_save_raster_entry_update [2], db_save_study_entry_update [1]
	db_save_study_entry_update [2], eis_delete_timeline_entry [1]
	eis_delete_timeline_entry [2], eis_update_timeline_entry [1]
	eis_update_timeline_entry [2], eis_update_timeline_science_entry [1]
	eis_update_timeline_science_entry [2]
 EXAMPLE:
       IDL> dbput,'WAVELEN',1215.6,entry
 PROCEDURES USED:
       DB_ITEM, DBRD, DBXPUT, DBWRT
 HISTORY:
	version 2  D. Lindler  Feb 1988 (new db formats)
	modified to convert blanks into zeros correctly D. Neill Jan 1991
	Converted to IDL V5.0   W. Landsman   September 1997
       V5.2 version support unsigned, 64bit integers W. Landsman  Sep. 2001


DBRD [1] $SSW/gen/idl/database/dbrd.pro
[Previous] [Next]
 NAME:
	DBRD
 PURPOSE:
	procedure to read an entry from a data base file or from
	linked multiple databases.

 CALLING SEQUENCE:
	dbrd, enum, entry, [available, dbno, /NoConvert]

 INPUTS:
	enum - entry number to read, integer scalar

 OUTPUT:
	entry - byte array containing the entry

 OPTIONAL OUTPUT:
	available - byte array with length equal to number of data
		bases opened.  available(i) eq 1 if an entry (pointed
		to) is available.  It always equals 1 for the first 
		data base, otherwise it is an error condition.

 OPTIONAL  INPUT:
	dbno - specification of the data base number to return.  If
		supplied, only the record for the requested data base
		number is returned in entry.  Normally this input should
		not be supplied.  dbno is numbered for 0 to n-1 and gives
		the number of the data base opened.  The data bases are 
		numbered in the order supplied to dbopen.  If dbno is supplied 
		then the entry number refers to that data base and not the
		primary or first data base. If set to -1, then it means all
		data bases opened (same as not supplying it)
 OPTIONAL INPUT KEYWORD:
	noconvert - if set then don't convert external to host format.
		Assumes that calling program will take care of this
		requirement.
 OPERATIONAL NOTES:
	If multiple data base files are opened, the records are
	concatenated with each other
 HISTORY
	version 2  D. Lindler  Nov. 1987
	William Thompson, GSFC/CDS (ARC), 1 June 1994
		Added support for external (IEEE) representation.
	Version 3, Richard Schwartz, GSFC/SDAC, 23-Aug-1996
			Add noconvert keyword

	Converted to IDL V5.0   W. Landsman   September 1997
       Version 4, 2 May 2003, W. Thompson
               Use BSWAP keyword to DBXVAL instead of calling IEEE_TO_HOST.
 CALLS:
 CALLED BY
	DBCOMPARE [1], DBCOMPARE [2], DBEDIT [1], DBEDIT [2], DBEDIT [3], DBEDIT_BASIC [1]
	DBEDIT_BASIC [2], DBEDIT_BASIC [3], DBEXT [2], DBEXT_DBF [1], DBEXT_DBF [2]
	DBEXT_DBF [3], DBFIND [1], DBFIND [2], DBFIND [3], DBPRINT [1], DBPRINT [2]
	DBPRINT [3], DBPUT [1], DBPUT [2], DBPUT [3], DBUPDATE [1], DBUPDATE [2]
	DBUPDATE [3], DBUPDATE [4], DBVAL [1], DBVAL [2], DBVAL [3]
	eis_get_as_string_arry [1], eis_get_as_string_arry [2]


DBRD [2] $SSW/gen/idl_libs/astron/database/dbrd.pro
[Previous] [Next]
 NAME:
	DBRD
 PURPOSE:
	procedure to read an entry from a data base file or from
	linked multiple databases.

 CALLING SEQUENCE:
	dbrd, enum, entry, [available, dbno, /NoConvert]

 INPUTS:
	enum - entry number to read, integer scalar

 OUTPUT:
	entry - byte array containing the entry

 OPTIONAL OUTPUT:
	available - byte array with length equal to number of data
		bases opened.  available(i) eq 1 if an entry (pointed
		to) is available.  It always equals 1 for the first 
		data base, otherwise it is an error condition.

 OPTIONAL  INPUT:
	dbno - specification of the data base number to return.  If
		supplied, only the record for the requested data base
		number is returned in entry.  Normally this input should
		not be supplied.  dbno is numbered for 0 to n-1 and gives
		the number of the data base opened.  The data bases are 
		numbered in the order supplied to dbopen.  If dbno is supplied 
		then the entry number refers to that data base and not the
		primary or first data base. If set to -1, then it means all
		data bases opened (same as not supplying it)
 OPTIONAL INPUT KEYWORD:
	noconvert - if set then don't convert external to host format.
		Assumes that calling program will take care of this
		requirement.
 OPERATIONAL NOTES:
	If multiple data base files are opened, the records are
	concatenated with each other
 HISTORY
	version 2  D. Lindler  Nov. 1987
	William Thompson, GSFC/CDS (ARC), 1 June 1994
		Added support for external (IEEE) representation.
	Version 3, Richard Schwartz, GSFC/SDAC, 23-Aug-1996
			Add noconvert keyword

	Converted to IDL V5.0   W. Landsman   September 1997
       Version 4, 2 May 2003, W. Thompson
               Use BSWAP keyword to DBXVAL instead of calling IEEE_TO_HOST.
 CALLS:
 CALLED BY
	DBCOMPARE [1], DBCOMPARE [2], DBEDIT [1], DBEDIT [2], DBEDIT [3], DBEDIT_BASIC [1]
	DBEDIT_BASIC [2], DBEDIT_BASIC [3], DBEXT [2], DBEXT_DBF [1], DBEXT_DBF [2]
	DBEXT_DBF [3], DBFIND [1], DBFIND [2], DBFIND [3], DBPRINT [1], DBPRINT [2]
	DBPRINT [3], DBPUT [1], DBPUT [2], DBPUT [3], DBUPDATE [1], DBUPDATE [2]
	DBUPDATE [3], DBUPDATE [4], DBVAL [1], DBVAL [2], DBVAL [3]
	eis_get_as_string_arry [1], eis_get_as_string_arry [2]


DBREPAIR $SSW/gen/idl/database/dbrepair.pro
[Previous] [Next]
 Project     :	SOHO - CDS

 Name        :	DBREPAIR

 Purpose     :	Repairs problem with IEEE format databases.

 Category    :	Utilities, database

 Explanation : Version 1 of DB_ENT2EXT contained a bug where only the first
		element in an array was converted from IEEE to host format.
		DB_ENT2EXT contained the same bug, so that the problem only
		manifested itself when one tried to read data on one machine
		that was written on another one with a different native format.

		This procedure reads in a database which had been written
		incorrectly, and repairs it.  The following conditions must be
		met for a database file to require repair:

		1.  The database must have been created with the /EXTERNAL
		    switch set in the call to DBCREATE.

		2.  The database must have been written on a machine who's
		    native format is either not IEEE or uses a different byte
		    order.  For example, the native format on Sun workstations
		    is the same as the external format, so databases created on
		    Sun's are okay.  However, DEC Alpha/OSF workstations use
		    IEEE format, but the bytes are reversed, so data files
		    written on Alphas need to be repaired.

		3.  At least one of the items in the database must be an array.
		    The problem only manifests itself with arrays.  For
		    example, a line in the .dbd file like

			WIN_DEF(4)	I*2	Window definition

		    is an array, because of the (4).  Byte and string arrays
		    are not affected, and do not exhibit this problem.

 Syntax      :	DBREPAIR, DBNAME

 Examples    :	!PRIV = 4
		DBREPAIR, 'datawin2'

 Inputs      :	DBNAME = Name of the data base file to repair.

 Opt. Inputs :	None.

 Outputs     :	None.

 Opt. Outputs:	None.

 Keywords    :	None.

 Calls       : ***
	DBCLOSE [1], DBCLOSE [2], DBCLOSE [3], DBEXT [1], DBEXT [2], DBEXT [3], DBEXT [4]
	DBOPEN [1], DBOPEN [2], DBOPEN [3], DB_ENT2EXT [1], DB_ENT2EXT [2], DB_ENT2EXT [3]
	DB_ENT2HOST [1], DB_ENT2HOST [2], DB_ENT2HOST [3], DB_INFO [1], DB_INFO [2]
	DB_INFO [3], DB_ITEM_INFO [1], DB_ITEM_INFO [2], DB_ITEM_INFO [3]
 Common      :	DB_COM

 Restrictions:	This routine must only be applied to databases requiring
		repair.  Using it on a correctly formatted database will damage
		it.  To work properly, this routine must be used on the same
		kind of computer that was used to originally write the data.

		Because of the dangers of corrupting a database, it is strongly
		suggested that this routine be run against a copy of the
		database, rather than the original.  Change to the directory
		containing the copy, and run IDL from there.

		!PRIV must be 4 or greater to repair a file.

 Side effects:	None.

 Prev. Hist. :	None.

 History     :	Version 1, 15-Sep-1995, William Thompson, GSFC

 Contact     :	WTHOMPSON


DBSEARCH [1] $SSW/gen/idl/database/dbsearch.pro
[Previous] [Next]
 NAME:
	DBSEARCH
 PURPOSE:
	Subroutine of DBFIND() to search a vector for specified values

 CALLING SEQUENCE:
	dbsearch, type, svals, values, good, [ /FULLSTRING, COUNT = ] 

 INPUT: 
	type - type of search (output from dbfparse)
	svals - search values (output from dbfparse)
	values - array of values to search

 OUTPUT:
	good - indices of good values

 OPTIONAL INPUT KEYWORD:
	/FULLSTRING - By default, one has a match if a search string is 
		included in any part of a database value (substring match).   
		But if /FULLSTRING is set, then all characters in the database
		value must match the search string (excluding leading and 
		trailing blanks).    Both types of string searches are case
		insensitive.
 OPTIONAL OUTPUT KEYWORD:
       COUNT  - Integer scalar giving the number of valid matches
 CALLED BY:
	DBFIND [1], DBFIND [2], DBFIND [3], DBFIND_SORT [1], DBFIND_SORT [2]
	DBFIND_SORT [3], DBGET [1], DBGET [2], DBGET [3]
  SIDE EFFECTS:
	The obsolete system variable !ERR is set to number of good values
 REVISION HISTORY:
	D. Lindler  July,1987
	Converted to IDL V5.0   W. Landsman   September 1997
       Added COUNT keyword, deprecate !ERR   W. Landsman   March 2000


DBSEARCH [2] $SSW/gen/idl_libs/astron/database/dbsearch.pro
[Previous] [Next]
 NAME:
	DBSEARCH
 PURPOSE:
	Subroutine of DBFIND() to search a vector for specified values

 CALLING SEQUENCE:
	dbsearch, type, svals, values, good, [ /FULLSTRING, COUNT = ] 

 INPUT: 
	type - type of search (output from dbfparse)
	svals - search values (output from dbfparse)
	values - array of values to search

 OUTPUT:
	good - indices of good values

 OPTIONAL INPUT KEYWORD:
	/FULLSTRING - By default, one has a match if a search string is 
		included in any part of a database value (substring match).   
		But if /FULLSTRING is set, then all characters in the database
		value must match the search string (excluding leading and 
		trailing blanks).    Both types of string searches are case
		insensitive.
 OPTIONAL OUTPUT KEYWORD:
       COUNT  - Integer scalar giving the number of valid matches
 CALLED BY:
	DBFIND [1], DBFIND [2], DBFIND [3], DBFIND_SORT [1], DBFIND_SORT [2]
	DBFIND_SORT [3], DBGET [1], DBGET [2], DBGET [3]
  SIDE EFFECTS:
	The obsolete system variable !ERR is set to number of good values
 REVISION HISTORY:
	D. Lindler  July,1987
	Converted to IDL V5.0   W. Landsman   September 1997
       Added COUNT keyword, deprecate !ERR   W. Landsman   March 2000


DBSORT [1] $SSW/gen/idl/database/dbsort.pro
[Previous] [Next]
 NAME:
       DBSORT
 PURPOSE:
       Routine to sort list of entries in data base

 CALLING SEQUENCE: 
       result = dbsort( list, items , [ REVERSE = ])

 INPUTS:
       list - list of entry numbers to sort
               -1 to sort all entries
       items - list of items to sort (up to 9 items)

 OUTPUT:
       result - numeric vector giving input list sorted by items

 CALLS: ***
	BSORT [1], BSORT [2], BSORT [3], BSORT [4], DBEXT [1], DBEXT [2], DBEXT [3], DBEXT [4]
	DB_ITEM [1], DB_ITEM [2], DB_ITEM [3], ZPARCHECK [1], ZPARCHECK [2], ZPARCHECK [3]
 CALLED BY:
	GET_CAMPAIGN, GET_CDS_PNTCAL, GET_EFFICIENCY, GET_EFF_AREA, GET_MIRSHIFT
	GET_TILTCAL, GET_WAVECAL, GET_WAVE_EFF, LIST_ALT, LIST_ANOMALY, LIST_CAMPAIGN
	LIST_CDROM, LIST_COM_TIMES, LIST_DETAIL, LIST_DLYD_TIMES, LIST_DSN, LIST_EXPER
	LIST_FLAG, LIST_INST_DLYD, LIST_MAIN, LIST_MDI_M, LIST_NRT_RES, LIST_OTHER_OBS
	LIST_OTHER_RES, LIST_PLAN, LIST_SOHO_DET, MOD_CAMPAIGN, PURGE_CDHSSTATE
 OPTIONAL KEYWORD INPUT:
       REVERSE - scalar or vector with the same number of elements as the
         the number of items to sort.  If the corresponding element of REVERSE 
         is non-zero then that item is sorted in descending rather than 
         ascending order.

 EXAMPLE:
       Sort an astronomical catalog with RA as primary sort, and declination
       as secondary sort (used when RA values are equal)

          IDL> NEWLIST = DBSORT( -1, 'RA,DEC' )

       If for some reason, one wanted the DEC sorted in descending order, but
       the RA in ascending order

          IDL> NEWLIST = DBSORT( -1, 'RA,DEC', REV = [ 0, 1 ] )

 METHOD:
       The list is sorted such that each item is sorted into
       asscending order starting with the last item.
 COMMON BLOCKS:
       DBCOM
 PROCEDURES USED:
       ZPARCHECK, BSORT, DBEXT, DB_ITEM
 HISTORY
       VERSION 1  D. Lindler  Oct. 86
       Added REVERSE keyword   W. Landsman        August, 1991
       Avoid use of EXECUTE() for V6.1 or later   W. Landsman Dec 2006


DBSORT [2] $SSW/gen/idl_libs/astron/database/dbsort.pro
[Previous] [Next]
 NAME:
       DBSORT
 PURPOSE:
       Routine to sort list of entries in data base

 CALLING SEQUENCE: 
       result = dbsort( list, items , [ REVERSE = ])

 INPUTS:
       list - list of entry numbers to sort
               -1 to sort all entries
       items - list of items to sort (up to 9 items)

 OUTPUT:
       result - numeric vector giving input list sorted by items

 CALLS: ***
	BSORT [1], BSORT [2], BSORT [3], BSORT [4], DBEXT [1], DBEXT [2], DBEXT [3], DBEXT [4]
	DB_ITEM [1], DB_ITEM [2], DB_ITEM [3], ZPARCHECK [1], ZPARCHECK [2], ZPARCHECK [3]
 CALLED BY:
	GET_CAMPAIGN, GET_CDS_PNTCAL, GET_EFFICIENCY, GET_EFF_AREA, GET_MIRSHIFT
	GET_TILTCAL, GET_WAVECAL, GET_WAVE_EFF, LIST_ALT, LIST_ANOMALY, LIST_CAMPAIGN
	LIST_CDROM, LIST_COM_TIMES, LIST_DETAIL, LIST_DLYD_TIMES, LIST_DSN, LIST_EXPER
	LIST_FLAG, LIST_INST_DLYD, LIST_MAIN, LIST_MDI_M, LIST_NRT_RES, LIST_OTHER_OBS
	LIST_OTHER_RES, LIST_PLAN, LIST_SOHO_DET, MOD_CAMPAIGN, PURGE_CDHSSTATE
 OPTIONAL KEYWORD INPUT:
       REVERSE - scalar or vector with the same number of elements as the
         the number of items to sort.  If the corresponding element of REVERSE 
         is non-zero then that item is sorted in descending rather than 
         ascending order.

 EXAMPLE:
       Sort an astronomical catalog with RA as primary sort, and declination
       as secondary sort (used when RA values are equal)

          IDL> NEWLIST = DBSORT( -1, 'RA,DEC' )

       If for some reason, one wanted the DEC sorted in descending order, but
       the RA in ascending order

          IDL> NEWLIST = DBSORT( -1, 'RA,DEC', REV = [ 0, 1 ] )

 METHOD:
       The list is sorted such that each item is sorted into
       asscending order starting with the last item.
 COMMON BLOCKS:
       DBCOM
 PROCEDURES USED:
       ZPARCHECK, BSORT, DBEXT, DB_ITEM
 HISTORY
       VERSION 1  D. Lindler  Oct. 86
       Added REVERSE keyword   W. Landsman        August, 1991
       Avoid use of EXECUTE() for V6.1 or later   W. Landsman Dec 2006


DBTARGET [1] $SSW/gen/idl/database/dbtarget.pro
[Previous] [Next]
 NAME:
      DBTARGET
 PURPOSE:
      Find sources in a database within specified radius of specified target
 EXPLANATION:
      Uses QuerySimbad to translate target name to RA and Dec, and then uses
      DBCIRCLE() to find any entries within specified radius.   Database must 
      include items named 'RA' (in hours) and 'DEC' (in degrees) and must 
      have previously been opened with DBOPEN

      Requires IDL V5.4 or later, Unix and Windows only
 CALLING SEQUENCE:
     list = DBTARGET(target, [radius, sublist, /SILENT, DIS= ,/TO_B1950 ] )   

 INPUTS:
      TARGET - A scalar string giving an astronomical target name, which 
          will be  translated into J2000 celestial coordinates by QuerySimbad 

 OPTIONAL INPUT:
       RADIUS - Radius of the search field in arc minutes, scalar.
                Default is 5 arc minutes
       SUBLIST - Vector giving entry numbers in currently opened database
               to be searched.  Default is to search all entries

 OUTPUTS:
     LIST - Vector giving entry numbers in the currently opened catalog
            which have positions within the specified search circle
            LIST is set to -1 if no sources fall within the search circle
            !ERR is set to the number sources found.

 OPTIONAL OUTPUT
       DIS -  The distance in arcminutes of each entry specified by LIST
               to the search center specified by the target.

 CALLS: ***
	DBCIRCLE [1], DBCIRCLE [2], QUERYSIMBAD
 OPTIONAL KEYWORD INPUT:
       /SILENT - If this keyword is set, then DBTARGET will not print the 
               number of entries found at the terminal
       /TO_B1950 - If this keyword is set, then the SIMBAD J2000 coordinates 
               are converted to B1950 before searching the database
               NOTE: The user must determine on his own whether the database
               is in B1950 or J2000 coordinates.

 EXAMPLE:
       (1) Use the HST_CATALOG database to find all  HST observations within 
           5' (the default) of M33

       IDL> dbopen,'hst_catalog'
       IDL> list = dbtarget('M33')

      (2) As above but restrict targets within 2' of the nucleus using the
          WFPC2 camara

       IDL> dbopen,'hst_catalog'
       IDL> sublist = dbfind('config=WFPC2')
       IDL> list = dbtarget('M33',2,sublist)


 PROCEDURE CALLS:
       QuerySimbad, DBCIRCLE()
 REVISION HISTORY:
      Written W. Landsman     SSAI          September 2002


DBTARGET [2] $SSW/gen/idl_libs/astron/database/dbtarget.pro
[Previous] [Next]
 NAME:
      DBTARGET
 PURPOSE:
      Find sources in a database within specified radius of specified target
 EXPLANATION:
      Uses QuerySimbad to translate target name to RA and Dec, and then uses
      DBCIRCLE() to find any entries within specified radius.   Database must 
      include items named 'RA' (in hours) and 'DEC' (in degrees) and must 
      have previously been opened with DBOPEN

      Requires IDL V5.4 or later, Unix and Windows only
 CALLING SEQUENCE:
     list = DBTARGET(target, [radius, sublist, /SILENT, DIS= ,/TO_B1950 ] )   

 INPUTS:
      TARGET - A scalar string giving an astronomical target name, which 
          will be  translated into J2000 celestial coordinates by QuerySimbad 

 OPTIONAL INPUT:
       RADIUS - Radius of the search field in arc minutes, scalar.
                Default is 5 arc minutes
       SUBLIST - Vector giving entry numbers in currently opened database
               to be searched.  Default is to search all entries

 OUTPUTS:
     LIST - Vector giving entry numbers in the currently opened catalog
            which have positions within the specified search circle
            LIST is set to -1 if no sources fall within the search circle
            !ERR is set to the number sources found.

 OPTIONAL OUTPUT
       DIS -  The distance in arcminutes of each entry specified by LIST
               to the search center specified by the target.

 CALLS: ***
	DBCIRCLE [1], DBCIRCLE [2], QUERYSIMBAD
 OPTIONAL KEYWORD INPUT:
       /SILENT - If this keyword is set, then DBTARGET will not print the 
               number of entries found at the terminal
       /TO_B1950 - If this keyword is set, then the SIMBAD J2000 coordinates 
               are converted to B1950 before searching the database
               NOTE: The user must determine on his own whether the database
               is in B1950 or J2000 coordinates.

 EXAMPLE:
       (1) Use the HST_CATALOG database to find all  HST observations within 
           5' (the default) of M33

       IDL> dbopen,'hst_catalog'
       IDL> list = dbtarget('M33')

      (2) As above but restrict targets within 2' of the nucleus using the
          WFPC2 camara

       IDL> dbopen,'hst_catalog'
       IDL> sublist = dbfind('config=WFPC2')
       IDL> list = dbtarget('M33',2,sublist)


 PROCEDURE CALLS:
       QuerySimbad, DBCIRCLE()
 REVISION HISTORY:
      Written W. Landsman     SSAI          September 2002


DBTITLE [1] $SSW/gen/idl/database/dbtitle.pro
[Previous] [Next]
 NAME:
	DBTITLE
 PURPOSE:
	function to create title line for routine dbprint

 CALLING SEQUENCE:
	result = dbtitle( c, f )

 INPUTS:
	c = string array of titles for each item
	f = field length of each item

 OUTPUT:
	header string returned as function value

 OPERATIONAL NOTES:
	this is a subroutine of DBPRINT.

 CALLED BY:
	DBPRINT [1], DBPRINT [2], DBPRINT [3]
 HISTORY:
	version 1  D. Lindler  Sept 86
	Converted to IDL V5.0   W. Landsman   September 1997


DBTITLE [2] $SSW/gen/idl_libs/astron/database/dbtitle.pro
[Previous] [Next]
 NAME:
	DBTITLE
 PURPOSE:
	function to create title line for routine dbprint

 CALLING SEQUENCE:
	result = dbtitle( c, f )

 INPUTS:
	c = string array of titles for each item
	f = field length of each item

 OUTPUT:
	header string returned as function value

 OPERATIONAL NOTES:
	this is a subroutine of DBPRINT.

 CALLED BY:
	DBPRINT [1], DBPRINT [2], DBPRINT [3]
 HISTORY:
	version 1  D. Lindler  Sept 86
	Converted to IDL V5.0   W. Landsman   September 1997


DBUPDATE [1] $SSW/gen/idl/database/dbfix.pro
[Previous] [Next]
 NAME:
	DBUPDATE
 PURPOSE:
	Update columns of data in a database  -- inverse of DBEXT
 EXPLANATION:
	Database must be open for update before calling DBUPDATE

 CALLING SEQUENCE:
	dbupdate, list, items, v1, [ v2, v3, v4......v14 ]

 INPUTS:
	list - entries in database to be updated, scalar or vector
		If list=-1 then all entries will be updated
	items -standard list of items that will be updated.  
	v1,v2....v14 - vectors containing values for specified items.  The
		number of vectors supplied must equal the number of items
		specified.   The number of elements in each vector should be
		the same.

 CALLS: ***
	DBEXT [1], DBEXT [2], DBEXT [3], DBEXT [4], DBEXT_DBF [1], DBEXT_DBF [2]
	DBEXT_DBF [3], DBFIX, DBINDEX [1], DBINDEX [2], DBINDEX [3], DBRD [1], DBRD [2]
	DBRD [3], DBWRT [1], DBWRT [2], DBWRT [3], DBXPUT [1], DBXPUT [2], DBXPUT [3]
	DB_INFO [1], DB_INFO [2], DB_INFO [3], DB_ITEM [1], DB_ITEM [2], DB_ITEM [3]
	DB_ITEM_INFO [1], DB_ITEM_INFO [2], DB_ITEM_INFO [3], DPRINT, IS_IEEE_BIG [1]
	IS_IEEE_BIG [2], TRIM, ZPARCHECK [1], ZPARCHECK [2], ZPARCHECK [3]
 CALLED BY:
	ADD_ANOMALY, DBEXT [2], DEL_ALT, DEL_ANOMALY, DEL_DETAIL, DEL_FLAG, DEL_PLAN
	DEL_SOHO_DET, MOD_CAMPAIGN, MOD_DETAIL, MOD_EXPER, MOD_GSET, MOD_LINELIST, MOD_MAIN
	MOD_V_RASTER, MOD_V_STUDY, SET_KAP_VERS, TP_DISP_RAST, UPD_PLAN, UPD_SOHO_DET
 EXAMPLES:
	A database STAR contains RA and DEC in radians, convert to degrees

	IDL> !PRIV=2 & dbopen,'STAR',1          ;Open database for update
	IDL> dbext,-1,'RA,DEC',ra,dec          ;Extract RA and DEC, all entries 
	IDL> ra = ra*!RADEG & dec=dec*!RADEG    ;Convert to degrees
	IDL> dbupdate,-1,'RA,DEC',ra,dec        ;Update database with new values

 NOTES:
	It is quicker to update several items simultaneously rather than use
	repeated calls to DBUPDATE.  
 
	It is possible to update multiple valued items.  In this case, the
	input vector should be of dimension (NVAL,NLIST) where NVAL is the
	number of values per item, and NLIST is the number of entries to be
	updated.  This vector will be temporarily transposed by DBUPDATE but
	will be restored before DBUPDATE exits.

 REVISION HISTORY
	Written W. Landsman      STX       March, 1989
	Work for multiple valued items     May, 1991
	String arrays no longer need to be fixed length      December 1992
	Transpose multiple array items back on output        December 1993
       Added check for corrupted database entries, Zarro, GSFC, 9 September 1996                       
	Faster update of external databases on big endian machines November 1997


DBUPDATE [2] $SSW/gen/idl/database/dbupdate.pro
[Previous] [Next]
 NAME:
	DBUPDATE
 PURPOSE:
	Update columns of data in a database  -- inverse of DBEXT
 EXPLANATION:
	Database must be open for update before calling DBUPDATE

 CALLING SEQUENCE:
	dbupdate, list, items, v1, [ v2, v3, v4......v14 ]

 INPUTS:
	list - entries in database to be updated, scalar or vector
		If list=-1 then all entries will be updated
	items -standard list of items that will be updated.  
	v1,v2....v14 - vectors containing values for specified items.  The
		number of vectors supplied must equal the number of items
		specified.   The number of elements in each vector should be
		the same.

 CALLS: ***
	DBINDEX [1], DBINDEX [2], DBINDEX [3], DBRD [1], DBRD [2], DBRD [3], DBWRT [1]
	DBWRT [2], DBWRT [3], DBXPUT [1], DBXPUT [2], DBXPUT [3], DB_INFO [1], DB_INFO [2]
	DB_INFO [3], DB_ITEM [1], DB_ITEM [2], DB_ITEM [3], DB_ITEM_INFO [1]
	DB_ITEM_INFO [2], DB_ITEM_INFO [3], S
 CALLED BY:
	ADD_ANOMALY, DBEXT [2], DEL_ALT, DEL_ANOMALY, DEL_DETAIL, DEL_FLAG, DEL_PLAN
	DEL_SOHO_DET, MOD_CAMPAIGN, MOD_DETAIL, MOD_EXPER, MOD_GSET, MOD_LINELIST, MOD_MAIN
	MOD_V_RASTER, MOD_V_STUDY, SET_KAP_VERS, TP_DISP_RAST, UPD_PLAN, UPD_SOHO_DET
 OPTIONAL KEYWORD INPUT:
       /NOINDEX - If set, then DBUPDATE will not update the index file.   This
               keyword is useful to save if additional updates will occur,
               and the index file need only be updated on the last call.
            
 EXAMPLES:
	A database STAR contains RA and DEC in radians, convert to degrees

	IDL> !PRIV=2 & dbopen,'STAR',1          ;Open database for update
	IDL> dbext,-1,'RA,DEC',ra,dec          ;Extract RA and DEC, all entries 
	IDL> ra = ra*!RADEG & dec=dec*!RADEG    ;Convert to degrees
	IDL> dbupdate,-1,'RA,DEC',ra,dec        ;Update database with new values

 NOTES:
	It is quicker to update several items simultaneously rather than use
	repeated calls to DBUPDATE.  
 
	It is possible to update multiple valued items.  In this case, the
	input vector should be of dimension (NVAL,NLIST) where NVAL is the
	number of values per item, and NLIST is the number of entries to be
	updated.  This vector will be temporarily transposed by DBUPDATE but
	will be restored before DBUPDATE exits.

 REVISION HISTORY
	Written W. Landsman      STX       March, 1989
	Work for multiple valued items     May, 1991
	String arrays no longer need to be fixed length      December 1992
	Transpose multiple array items back on output        December 1993
	Faster update of external databases on big endian machines November 1997
	Converted to IDL V5.0   W. Landsman 24-Nov-1997
       Added /NOINDEX keyword  W. Landsman  July 2001


DBUPDATE [3] $SSW/gen/idl_libs/astron/database/dbupdate.pro
[Previous] [Next]
 NAME:
	DBUPDATE
 PURPOSE:
	Update columns of data in a database  -- inverse of DBEXT
 EXPLANATION:
	Database must be open for update before calling DBUPDATE

 CALLING SEQUENCE:
	dbupdate, list, items, v1, [ v2, v3, v4......v14 ]

 INPUTS:
	list - entries in database to be updated, scalar or vector
		If list=-1 then all entries will be updated
	items -standard list of items that will be updated.  
	v1,v2....v14 - vectors containing values for specified items.  The
		number of vectors supplied must equal the number of items
		specified.   The number of elements in each vector should be
		the same.

 CALLS: ***
	DBINDEX [1], DBINDEX [2], DBINDEX [3], DBRD [1], DBRD [2], DBRD [3], DBWRT [1]
	DBWRT [2], DBWRT [3], DBXPUT [1], DBXPUT [2], DBXPUT [3], DB_INFO [1], DB_INFO [2]
	DB_INFO [3], DB_ITEM [1], DB_ITEM [2], DB_ITEM [3], DB_ITEM_INFO [1]
	DB_ITEM_INFO [2], DB_ITEM_INFO [3], S
 CALLED BY:
	ADD_ANOMALY, DBEXT [2], DEL_ALT, DEL_ANOMALY, DEL_DETAIL, DEL_FLAG, DEL_PLAN
	DEL_SOHO_DET, MOD_CAMPAIGN, MOD_DETAIL, MOD_EXPER, MOD_GSET, MOD_LINELIST, MOD_MAIN
	MOD_V_RASTER, MOD_V_STUDY, SET_KAP_VERS, TP_DISP_RAST, UPD_PLAN, UPD_SOHO_DET
 OPTIONAL KEYWORD INPUT:
       /NOINDEX - If set, then DBUPDATE will not update the index file.   This
               keyword is useful to save if additional updates will occur,
               and the index file need only be updated on the last call.
            
 EXAMPLES:
	A database STAR contains RA and DEC in radians, convert to degrees

	IDL> !PRIV=2 & dbopen,'STAR',1          ;Open database for update
	IDL> dbext,-1,'RA,DEC',ra,dec          ;Extract RA and DEC, all entries 
	IDL> ra = ra*!RADEG & dec=dec*!RADEG    ;Convert to degrees
	IDL> dbupdate,-1,'RA,DEC',ra,dec        ;Update database with new values

 NOTES:
	It is quicker to update several items simultaneously rather than use
	repeated calls to DBUPDATE.  
 
	It is possible to update multiple valued items.  In this case, the
	input vector should be of dimension (NVAL,NLIST) where NVAL is the
	number of values per item, and NLIST is the number of entries to be
	updated.  This vector will be temporarily transposed by DBUPDATE but
	will be restored before DBUPDATE exits.

 REVISION HISTORY
	Written W. Landsman      STX       March, 1989
	Work for multiple valued items     May, 1991
	String arrays no longer need to be fixed length      December 1992
	Transpose multiple array items back on output        December 1993
	Faster update of external databases on big endian machines November 1997
	Converted to IDL V5.0   W. Landsman 24-Nov-1997
       Added /NOINDEX keyword  W. Landsman  July 2001


DBVAL [1] $SSW/gen/idl/database/dbval.pro
[Previous] [Next]
 NAME:
	DBVAL
 PURPOSE:
	procedure to extract value(s) of the specified item from
	a data base file entry.

 CALLING SEQUENCE:
	result = dbval( entry, item )

 INPUTS:
	entry - byte array containing the entry, or a scalar entry number
	item - name (string) or number (integer) of the item

 OUTPUT:
	the value(s) will be returned as the function value

 CALLS: ***
	DBRD [1], DBRD [2], DBRD [3], DBXVAL [1], DBXVAL [2], DBXVAL [3], DB_ITEM [1]
	DB_ITEM [2], DB_ITEM [3]
 CALLED BY:
	db_read_linelist_all [1], db_read_linelist_all [2]
	db_read_linelist_entry [1], db_read_linelist_entry [2]
	db_read_raster_all [1], db_read_raster_all [2], db_read_raster_entry [1]
	db_read_raster_entry [2], db_read_study_all [1], db_read_study_all [2]
	eis_get_esdb_details [1], eis_get_esdb_details [2]
	eis_get_science_details [1], eis_get_science_details [2]
	eis_get_science_details [3], eis_get_science_details [4]
	eis_get_technical_study_rasters [1], eis_get_technical_study_rasters [2]
 EXAMPLE:
	Extract a flux vector from entry 28 of the database FARUV
	==> flux = dbval(28,'FLUX')

 HISTORY:
   version 2  D. Lindler Nov, 1987	(new db format)
	Converted to IDL V5.0   W. Landsman   September 1997


DBVAL [2] $SSW/gen/idl_libs/astron/database/dbval.pro
[Previous] [Next]
 NAME:
	DBVAL
 PURPOSE:
	procedure to extract value(s) of the specified item from
	a data base file entry.

 CALLING SEQUENCE:
	result = dbval( entry, item )

 INPUTS:
	entry - byte array containing the entry, or a scalar entry number
	item - name (string) or number (integer) of the item

 OUTPUT:
	the value(s) will be returned as the function value

 CALLS: ***
	DBRD [1], DBRD [2], DBRD [3], DBXVAL [1], DBXVAL [2], DBXVAL [3], DB_ITEM [1]
	DB_ITEM [2], DB_ITEM [3]
 CALLED BY:
	db_read_linelist_all [1], db_read_linelist_all [2]
	db_read_linelist_entry [1], db_read_linelist_entry [2]
	db_read_raster_all [1], db_read_raster_all [2], db_read_raster_entry [1]
	db_read_raster_entry [2], db_read_study_all [1], db_read_study_all [2]
	eis_get_esdb_details [1], eis_get_esdb_details [2]
	eis_get_science_details [1], eis_get_science_details [2]
	eis_get_science_details [3], eis_get_science_details [4]
	eis_get_technical_study_rasters [1], eis_get_technical_study_rasters [2]
 EXAMPLE:
	Extract a flux vector from entry 28 of the database FARUV
	==> flux = dbval(28,'FLUX')

 HISTORY:
   version 2  D. Lindler Nov, 1987	(new db format)
	Converted to IDL V5.0   W. Landsman   September 1997


DBWRT [1] $SSW/gen/idl/database/dbwrt.pro
[Previous] [Next]
 NAME:
	DBWRT
 PURPOSE:
	procedure to update or add a new entry to a data base

 CALLING SEQUENCE:
	dbwrt, entry, [ index, append, /NoConvert ]

 INPUTS:
	entry - entry record to be updated or added if first
		item (entry number=0)

 OPTIONAL INPUTS:
	index - optional integer flag,  if set to non zero then index
		file is  updated. (default=0, do not update index file)
		(Updating the index file is time-consuming, and should
		normally be done after all changes have been made.
	append - optional integer flag, if set to non-zero the record
		is appended as a new entry, regardless of what the
		entry number in the record is.  The entry number will
		be reset to the next entry number in the file.
 OUTPUTS:
	data base file is updated.                    
	If index is non-zero then the index file is updated.
 OPTIONAL INPUT KEYWORD:
	NoConvert - If set then don't convert to host format with an external
		database.    Useful when the calling program decides that
		conversion isn't needed (i.e. on a big-endian machine), or 
		takes care of the conversion itself.
 OPERATIONAL NOTES:
	!PRIV must be greater than 1 to execute
 CALLS: ***
	BSORT [1], BSORT [2], BSORT [3], BSORT [4], DBINDEX_BLK [1], DBINDEX_BLK [2]
	DBINDEX_BLK [3], DBXPUT [1], DBXPUT [2], DBXPUT [3], DBXVAL [1], DBXVAL [2]
	DBXVAL [3], DB_ENT2EXT [1], DB_ENT2EXT [2], DB_ENT2EXT [3], DB_INFO [1]
	DB_INFO [2], DB_INFO [3], DB_ITEM [1], DB_ITEM [2], DB_ITEM [3], DB_ITEM_INFO [1]
	DB_ITEM_INFO [2], DB_ITEM_INFO [3], HOST_TO_IEEE [1], HOST_TO_IEEE [2]
	HOST_TO_IEEE [3], HOST_TO_IEEE [4], IEEE_TO_HOST [1], IEEE_TO_HOST [2]
	IEEE_TO_HOST [3], IEEE_TO_HOST [4]
 CALLED BY:
	DBBUILD [1], DBBUILD [2], DBBUILD [3], DBEDIT [1], DBEDIT [2], DBEDIT [3]
	DBEDIT_BASIC [1], DBEDIT_BASIC [2], DBEDIT_BASIC [3], DBEXT [2], DBPUT [1]
	DBPUT [2], DBPUT [3], DBUPDATE [1], DBUPDATE [2], DBUPDATE [3], DBUPDATE [4]
 HISTORY:
	version 2  D. Lindler  Feb. 1988 (new db format)
	converted to IDL Version 2.  M. Greason, STX, June 1990.
	William Thompson, GSFC/CDS (ARC), 28 May 1994
		Added support for external (IEEE) representation.
	Converted to IDL V5.0   W. Landsman 24-Nov-1997


DBWRT [2] $SSW/gen/idl_libs/astron/database/dbwrt.pro
[Previous] [Next]
 NAME:
	DBWRT
 PURPOSE:
	procedure to update or add a new entry to a data base

 CALLING SEQUENCE:
	dbwrt, entry, [ index, append, /NoConvert ]

 INPUTS:
	entry - entry record to be updated or added if first
		item (entry number=0)

 OPTIONAL INPUTS:
	index - optional integer flag,  if set to non zero then index
		file is  updated. (default=0, do not update index file)
		(Updating the index file is time-consuming, and should
		normally be done after all changes have been made.
	append - optional integer flag, if set to non-zero the record
		is appended as a new entry, regardless of what the
		entry number in the record is.  The entry number will
		be reset to the next entry number in the file.
 OUTPUTS:
	data base file is updated.                    
	If index is non-zero then the index file is updated.
 OPTIONAL INPUT KEYWORD:
	NoConvert - If set then don't convert to host format with an external
		database.    Useful when the calling program decides that
		conversion isn't needed (i.e. on a big-endian machine), or 
		takes care of the conversion itself.
 OPERATIONAL NOTES:
	!PRIV must be greater than 1 to execute
 CALLS: ***
	BSORT [1], BSORT [2], BSORT [3], BSORT [4], DBINDEX_BLK [1], DBINDEX_BLK [2]
	DBINDEX_BLK [3], DBXPUT [1], DBXPUT [2], DBXPUT [3], DBXVAL [1], DBXVAL [2]
	DBXVAL [3], DB_ENT2EXT [1], DB_ENT2EXT [2], DB_ENT2EXT [3], DB_INFO [1]
	DB_INFO [2], DB_INFO [3], DB_ITEM [1], DB_ITEM [2], DB_ITEM [3], DB_ITEM_INFO [1]
	DB_ITEM_INFO [2], DB_ITEM_INFO [3], HOST_TO_IEEE [1], HOST_TO_IEEE [2]
	HOST_TO_IEEE [3], HOST_TO_IEEE [4], IEEE_TO_HOST [1], IEEE_TO_HOST [2]
	IEEE_TO_HOST [3], IEEE_TO_HOST [4]
 CALLED BY:
	DBBUILD [1], DBBUILD [2], DBBUILD [3], DBEDIT [1], DBEDIT [2], DBEDIT [3]
	DBEDIT_BASIC [1], DBEDIT_BASIC [2], DBEDIT_BASIC [3], DBEXT [2], DBPUT [1]
	DBPUT [2], DBPUT [3], DBUPDATE [1], DBUPDATE [2], DBUPDATE [3], DBUPDATE [4]
 HISTORY:
	version 2  D. Lindler  Feb. 1988 (new db format)
	converted to IDL Version 2.  M. Greason, STX, June 1990.
	William Thompson, GSFC/CDS (ARC), 28 May 1994
		Added support for external (IEEE) representation.
	Converted to IDL V5.0   W. Landsman 24-Nov-1997


DBXPUT [1] $SSW/gen/idl/database/dbxput.pro
[Previous] [Next]
 NAME:
	DBXPUT
 PURPOSE:
	routine to replace value of an item in a data base entry

 CALLING SEQUENCE:	
	dbxput, val, entry, idltype, sbyte, nbytes

 INPUT:
	val - value(s) to be placed into entry, string values might be
		truncated to fit number of allowed bytes in item
	entry - entry or entries to be updated
	idltype - idl data type for item (1-7)
	sbyte - starting byte in record
	nbytes - total number of bytes in value added

 OUTPUT:
	entry - (updated)

 OPERATIONAL NOTES:
	This routine assumes that the calling procedure or user knows what he 
	or she is doing.  String items are truncated or padded to the fixed 
	size specified by the database but otherwise no validity checks are 
	made.

 CALLED BY:
	DBBUILD [1], DBBUILD [2], DBBUILD [3], DBEDIT [1], DBEDIT [2], DBEDIT [3]
	DBEDIT_BASIC [1], DBEDIT_BASIC [2], DBEDIT_BASIC [3], DBEXT [2], DBPUT [1]
	DBPUT [2], DBPUT [3], DBUPDATE [1], DBUPDATE [2], DBUPDATE [3], DBUPDATE [4]
	DBWRT [1], DBWRT [2], DBWRT [3], DB_ENT2EXT [1], DB_ENT2EXT [2], DB_ENT2EXT [3]
	DB_ENT2HOST [1], DB_ENT2HOST [2], DB_ENT2HOST [3]
 HISTORY:
	version 1, D. Lindler   Aug, 1986
	converted to IDL Version 2.  M. Greason, STX, June 1990.
	Work with multiple element string items   W. Landsman  August 1995
	Really work with multiple element string items   
			R. Bergman/W. Landsman  July 1996
	Work with multiple entries, R. Schwartz, GSFC/SDAC August 1996
	Use /overwrite with REFORM() W. Landsman May 1997
	Converted to IDL V5.0   W. Landsman   September 1997


DBXPUT [2] $SSW/gen/idl_libs/astron/database/dbxput.pro
[Previous] [Next]
 NAME:
	DBXPUT
 PURPOSE:
	routine to replace value of an item in a data base entry

 CALLING SEQUENCE:	
	dbxput, val, entry, idltype, sbyte, nbytes

 INPUT:
	val - value(s) to be placed into entry, string values might be
		truncated to fit number of allowed bytes in item
	entry - entry or entries to be updated
	idltype - idl data type for item (1-7)
	sbyte - starting byte in record
	nbytes - total number of bytes in value added

 OUTPUT:
	entry - (updated)

 OPERATIONAL NOTES:
	This routine assumes that the calling procedure or user knows what he 
	or she is doing.  String items are truncated or padded to the fixed 
	size specified by the database but otherwise no validity checks are 
	made.

 CALLED BY:
	DBBUILD [1], DBBUILD [2], DBBUILD [3], DBEDIT [1], DBEDIT [2], DBEDIT [3]
	DBEDIT_BASIC [1], DBEDIT_BASIC [2], DBEDIT_BASIC [3], DBEXT [2], DBPUT [1]
	DBPUT [2], DBPUT [3], DBUPDATE [1], DBUPDATE [2], DBUPDATE [3], DBUPDATE [4]
	DBWRT [1], DBWRT [2], DBWRT [3], DB_ENT2EXT [1], DB_ENT2EXT [2], DB_ENT2EXT [3]
	DB_ENT2HOST [1], DB_ENT2HOST [2], DB_ENT2HOST [3]
 HISTORY:
	version 1, D. Lindler   Aug, 1986
	converted to IDL Version 2.  M. Greason, STX, June 1990.
	Work with multiple element string items   W. Landsman  August 1995
	Really work with multiple element string items   
			R. Bergman/W. Landsman  July 1996
	Work with multiple entries, R. Schwartz, GSFC/SDAC August 1996
	Use /overwrite with REFORM() W. Landsman May 1997
	Converted to IDL V5.0   W. Landsman   September 1997


DBXVAL [1] $SSW/gen/idl/database/dbxval.pro
[Previous] [Next]
 NAME: 
       DBXVAL

 PURPOSE:      
       Quickly return a value of the specified item number     
 EXPLANATION:
       Procedure to quickly return a value of the specified item number
       from the entry.

 CALLING SEQUENCE:     
       result = dbxval( entry, idltype, nvalues, sbyte, nbytes )

 INPUTS        
       entry - entry or entries from data base (bytarr) 
       idltype - idl data type (obtained with db_item_info)
       nvalues - number of values to return (obtained with db_item)
       sbyte - starting byte in the entry (obtained with db_item)
       nbytes - number of bytes (needed only for string type)
                       (obtained with db_item)

 OUTPUTS:      
       function value is value of the specified item in entry

 KEYWORDS:
       bswap - If set, then IEEE_TO_HOST is called.

 CALLED BY:
	DBCOMPARE [1], DBCOMPARE [2], DBEDIT [1], DBEDIT [2], DBEDIT [3], DBEDIT_BASIC [1]
	DBEDIT_BASIC [2], DBEDIT_BASIC [3], DBPRINT [1], DBPRINT [2], DBPRINT [3]
	DBRD [1], DBRD [2], DBRD [3], DBVAL [1], DBVAL [2], DBVAL [3], DBWRT [1], DBWRT [2]
	DBWRT [3], DB_ENT2EXT [1], DB_ENT2EXT [2], DB_ENT2EXT [3], DB_ENT2HOST [1]
	DB_ENT2HOST [2], DB_ENT2HOST [3]
 RESTRICTIONS: 
       To increase speed the routine assumes that entry and item are
       valid and that the data base is already opened using dbopen.

 REVISION HISTORY:     
       version 0  D. Lindler Nov. 1987  (for new db format)
       Version 1, William Thompson, GSFC, 28 March 1994.
                       Incorporated into CDS library.
       Version 2, Richard Schwartz, GSFC/SDAC, 23 August 1996
                       Allowed Entry to have 2 dimensions
       Version 2.1, 22 Feb 1997, JK Feggans, 
                               avoid reform for strings arrays.
       Version 2.2     Use overwrite with REFORM(),  W. Landsman,  May 1997
       Converted to IDL V5.0   W. Landsman   September 1997
       Work for multiple-valued strings   W. Landsman   October 2000
       Add new 64bit & unsigned integer datatypes W.Landsman   July 2001
       Version 3, 2-May-2003, JK Feggans/Sigma, W.T. Thompson
           Added BSWAP keyword to avoid floating errors on some platforms.


DBXVAL [2] $SSW/gen/idl_libs/astron/database/dbxval.pro
[Previous] [Next]
 NAME: 
       DBXVAL

 PURPOSE:      
       Quickly return a value of the specified item number     
 EXPLANATION:
       Procedure to quickly return a value of the specified item number
       from the entry.

 CALLING SEQUENCE:     
       result = dbxval( entry, idltype, nvalues, sbyte, nbytes )

 INPUTS        
       entry - entry or entries from data base (bytarr) 
       idltype - idl data type (obtained with db_item_info)
       nvalues - number of values to return (obtained with db_item)
       sbyte - starting byte in the entry (obtained with db_item)
       nbytes - number of bytes (needed only for string type)
                       (obtained with db_item)

 OUTPUTS:      
       function value is value of the specified item in entry

 KEYWORDS:
       bswap - If set, then IEEE_TO_HOST is called.

 CALLED BY:
	DBCOMPARE [1], DBCOMPARE [2], DBEDIT [1], DBEDIT [2], DBEDIT [3], DBEDIT_BASIC [1]
	DBEDIT_BASIC [2], DBEDIT_BASIC [3], DBPRINT [1], DBPRINT [2], DBPRINT [3]
	DBRD [1], DBRD [2], DBRD [3], DBVAL [1], DBVAL [2], DBVAL [3], DBWRT [1], DBWRT [2]
	DBWRT [3], DB_ENT2EXT [1], DB_ENT2EXT [2], DB_ENT2EXT [3], DB_ENT2HOST [1]
	DB_ENT2HOST [2], DB_ENT2HOST [3]
 RESTRICTIONS: 
       To increase speed the routine assumes that entry and item are
       valid and that the data base is already opened using dbopen.

 REVISION HISTORY:     
       version 0  D. Lindler Nov. 1987  (for new db format)
       Version 1, William Thompson, GSFC, 28 March 1994.
                       Incorporated into CDS library.
       Version 2, Richard Schwartz, GSFC/SDAC, 23 August 1996
                       Allowed Entry to have 2 dimensions
       Version 2.1, 22 Feb 1997, JK Feggans, 
                               avoid reform for strings arrays.
       Version 2.2     Use overwrite with REFORM(),  W. Landsman,  May 1997
       Converted to IDL V5.0   W. Landsman   September 1997
       Work for multiple-valued strings   W. Landsman   October 2000
       Add new 64bit & unsigned integer datatypes W.Landsman   July 2001
       Version 3, 2-May-2003, JK Feggans/Sigma, W.T. Thompson
           Added BSWAP keyword to avoid floating errors on some platforms.


DD $SSW/gen/idl/system/dd.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS

 NAME:
       DD

 PURPOSE: 
       Display directory stack used by PD and PPD

 EXPLANATION:
       
 CALLING SEQUENCE: 
       DD

 INPUTS:
       None.

 OPTIONAL INPUTS: 
       None.

 OUTPUTS:
       None.

 OPTIONAL OUTPUTS:
       None.

 KEYWORD PARAMETERS: 
       None.

 CALLS: ***
	CDD
 COMMON BLOCKS:
	DIR_STACK:  Contains the directory stack.
       CDD:        Common block used by CDD.

 RESTRICTIONS: 
       None.

 SIDE EFFECTS:
       None.

 CATEGORY:
       
 PREVIOUS HISTORY:
       Written January 10, 1995, Liyun Wang, GSFC/ARC

 MODIFICATION HISTORY:
       Version 2, Liyun Wang, GSFC/ARC, February 3, 1995
          Renamed from SD to DD

 VERSION:
       Version 2, February 3, 1995


DEC2BIN $SSW/gen/idl/util/dec2bin.pro
[Previous] [Next]
 Project     : SOHO - CDS     
                   
 Name        : DEC2BIN
               
 Purpose     : Convert integer decimal number to binary representation.
               
 Explanation : The binary representation of a decimal number is calculated
               and can be displayed or returned or both or neither.
               
 Use         : IDL> dec2bin, decimal [, binary, /quiet]
    
 Inputs      : decimal - the number to convert
               
 Opt. Inputs : None
               
 Outputs     : See below
               
 Opt. Outputs: binary - the binary representation of the input.
               
 Keywords    : quiet - unless given the binary number is printed to the
                       terminal

 Calls       : ***
	DATATYPE [1], DATATYPE [2], DATATYPE [3]
 CALLED BY:
	HEX2BIN, OPEN_CALFITS, WRITE_CALFITS
 Restrictions: Input must be of byte, int or long type.
               
 Side effects: When the input variable DECIMAL is an array, then the output
		variable BINARY is also an array with the dimensions
		(32,N_ELEMENTS(DECIMAL)) no matter what the dimensions of
		DECIMAL are.
               
 Category    : Utils, Numerical
               
 Prev. Hist. : None

 Written     : C D Pike, RAL, 7-Oct-93
               
 Modified    : Version 1, C D Pike, RAL, 7-Oct-93
		Version 2, William Thompson, GSFC, 23 December 1994
			Modified to work with arrays.
               Version 3, William Thompson, GSFC, 24 June 2005
                       Change to use [] array notation

 Version     : Version 3, 24 June 2005


DEC2HEX $SSW/gen/idl/util/dec2hex.pro
[Previous] [Next]
 Project     : SOHO - CDS     
                   
 Name        : DEC2HEX
               
 Purpose     : Convert a non-negative decimal integer to a hex string.
               
 Explanation : 
               
 Use         : IDL> dec2hex,decimal [,hex, nchar=nchar, /quiet, /upper]
    
 Inputs      : decimal - non-negative decimal integer, scalar.  All leading 
                         blanks are removed.
               
 Opt. Inputs : None
               
 Outputs     : See below
               
 Opt. Outputs: hex - the hexadecimal representation of the number.
               
 Keywords    : quiet - if not present, the hex form will be output to the
                       terminal.
               nchar - number of characters in the output hexadecimal string.
                       If not supplied, then the hex string will contain no 
                       leading zeros.

               upper - converts hex letters to uppercase for output

 Calls       : None
 CALLED BY:
	BIN2HEX, UNPACK_LZ_SCIENCE, WHAT_CDHS_STUDY
 Restrictions: Input can only be non-negative integer number.
               
 Side effects: None
               
 Category    : Util, numerical
               
 Prev. Hist. : Written by W. Landsman, November, 1990 

 Written     : CDS version by C D Pike, RAL, 7-Oct-93
               
 Modified    : Added /upper keyword, CDP, 20-Dec-1993
               Trap negatives, CDP, 19-May-94

 Version     : Version 3, 19-May-94


dec2sun [1] $SSW/gen/idl/genutil/dec2sun.pro
[Previous] [Next]
NAME:
	dec2sun
PURPOSE:
	Converts data written on a DEC machine to SUN format by swapping
	bytes appropriately for the type of the input data.  The data
       on the DEC machine is assumed to be IEEE format with the byte
       order reversed: this is *not* VAX format!  The routine converts
       between data from a DECStation and a Sun.  Since both use IEEE
       format, dec2sun will also convert from sun format to DEC format.
CATEGORY:
	Byte-swapping
CALLING SEQUENCE:
	dec2sun,a
INPUTS:
	a = input variable which is to have its bytes swapped
OPTIONAL INPUT PARAMETERS:
	none
KEYWORD PARAMETERS
	none
OUTPUTS:
	a = reformatted variable is passed back in the original variable
 CALLED BY:
	BFITS, F1, RFITS [1], RFITS [2], RFITS [3], ccd_hdr_info, gtt_mnem, jitter_gif_xyimg
	list_tfi, make_into_bytarr, mdifocus2, mk_bad_pix_map_load, mk_list_image, mk_tfi
	mk_trace_i0, nimg_in_tfr fnam [1], raw_list2pixmap, rd_ccdh_fil, rd_goes_fits
	rd_hist_dbase [1], rd_hist_dbase [2], rd_hk [1], rd_hk [2], rd_soup, rdtfr
	rdwrt [1], rdwrt [2], rdwrt [3], tfr_summary, tfr_summary2, timeline, topsdb [1]
	topsdb [2], tr_build_img [1], tr_decode_head [1], tr_decode_head [2]
	tr_wrt_fits_i1 [2], web_seq, wrt_fits [1], wrt_fits [2], yoh_ieee2vax [1]
	yoh_ieee2vax [2], yoh_vax2ieee [1], yoh_vax2ieee [2]
COMMON BLOCKS:
	None
SIDE EFFECTS:
	None
RESTRICTIONS:
	None
PROCEDURE:
	Determines the type of the variable and swaps the bytes depending
	on the type.  If the variable is a structure, the tags are 
	recursively searched so that the bytes are swapped throughout
	the structure.
MODIFICATION HISTORY:
	T. Metcalf 5/20/91  Version 1.0

       T. Metcalf Aug 1991: Added complex floating point  Version 1.1
       T. Metcalf Nov 1991: Converted vax2sun to dec2sun
	29-Jun-94 (MDM) - Modified to preserve the dimensions when
			  working on double precision data
	14-Nov-95 (MDM) - Modified to allow double precision array in
			  an structure array.


decode_gev $SSW/gen/idl/solar/decode_gev.pro
[Previous] [Next]
   Name: decode_gev

   Purpose: decode gev structures (return event times in desired format)

   Input Parameters:
      gev - Goes Event (GEV) structure(s) (output of rd_gev, get_gev...)
  
   Output Parameters:
      gev_start - event start time list 
      gev_stop  - event stop time list
      gev_peak  - event peak time list

   Keyword Parameters:
      above  - if set, only return subset >= this GOES class
      fstart - keyword synonym for gev_start  
      fstop  - keyword synonym for gev_stop
      fpeak  - keyword synonym for gev_peak
      class  - (output) GOES XRay Class (string, such as C2.5, X9.1...)
      noaa_ar - (output) return NOAA active region - string 'xxxxxx'
      location - (output) heliographic location - string {N,S}nsdeg{E,W}ewdeg
      found  - (output flag) - true if at least one event returned
      ss     - (output) - SubScripts of decoded events (reflects 
                         events matching ABOVE criteria if set)

      out_style - desired SSW time format for output - default=CCSDS
                  [see anytim.pro for options, inc 'ecs','vms','ints'...
      _extra - switch synonyms for OUT_STYLE - supports anytim.pro 
               format switches such as [/vms] [/ints] [/utc_ints] [/ecs]...

   Calling Examples:
                       IN     OUT     OUT    OUT
      IDL> decode_gev, gevin, fstart, fstop, fpeak
      IDL> decode_gev, gevin, fstart, fstop, fpeak, [,/ecs][,/ccsds][,/int]

      SSWIDL Context Example:
      Read goes events for desired time range, check/decode events
           greater than specified level - plot lightcurve around
           1st event window and read the corresponding trace catalog
          
      gev=get_gev(time0, time1)            
      decode_gev,gev,fstart,fstop, fpeak, above='C1', found=found, ss=ss,/int
      if found then begin                     ;(at least 1 event > C1)
         fdur=ssw_deltat(fstop,ref=fstart,/minute)       ; T(start->end)
         start2peak=ssw_deltat(fpeak,ref=fstart,/minute) ; T(start->peak)
         peak2end=ssw_deltat(fstop,ref=fpeak,/minute)    ; T( peak->end)
         time_window,[fstart(0),fstop(0)],t0,t1,min=30   ; event +/- 30 min
         plot_goes,t0,t1                                 ; plot event window
         trace_cat,fstart(0),fstop(0),tcat               ; goes -> trace
         [---- etc.... other event actions... ----]
      endif

 CALLS: ***
	BOX_MESSAGE, anytim [1], anytim [2], anytim [3], anytim [4], anytim [5]
	anytim2ints [1], anytim2ints [2], data_chk [1], data_chk [2], is_member [1]
	is_member [2], required_tags
 CALLED BY:
	EIT_COPY, EIT_GBO, FILT_EVENTS, SXI_GBO, TRACE_COPY, TRACE_GBO, UPDATE_MM, flare_hist
	ssw_gxd_remove_flares
   History:
      26-June-2000 - S.L.Freeland - simplify GEV:SSWDB cross reference
      27-oct-2004  - S.L.Freeland - add NOAA_AR and LOCATION output keywords
       3-dec-2004  - S.L.Freeland - fix typo in doc-header context example
      15-aug-2005  - S.L.Freeland - fixup old ngdc derived (only integer classes avail)


DEF_DIRLIST $SSW/gen/idl/system/def_dirlist.pro
[Previous] [Next]
 NAME:	
       DEF_DIRLIST

 PURPOSE:
       Define directory list using setenv or setlog

 EXPLANATION:	
       Environment variables which point to a list of directories can
       end up to be very long.  In VMS this can be a problem, because logical 
       names cannot be longer than 256 characters.  However, it is possible to
       get around this in VMS by assigning multiple values to a single logical
       name--a facility that does not exist in Unix.

       This routine will define the environment variable as either a delimited
       string, or as a series of values, whichever is most appropriate.

 CALLING SEQUENCE:	
       DEF_DIRLIST, EVAR, VALUE
 INPUTD:	
       EVAR = The name of the environment variable to define.
       VALUE = The value to give to EVAR.  This can be either a single, 
               delimited string, or it can be an array of directory names.
               The routine will choose for itself how to use this to define the 
               environment variable.

 CALLS: ***
	SETLOG, strsplit
 CALLED BY:
	SET_CDS_SDB
 EXAMPLES:	
       DIRS = FIND_ALL_DIR('+/data/fits')
       DEF_DIRLIST, 'FITS_DATA', DIRS

 PROCEDURE CALLS:
       SETENV, STR_SEP()
	Note: The intrinsic SETENV command is available under Unix & Windows
	only.   However, it is available as a Library procedure for VMS.

 REVISION HISTORY:	
	Version 1, 06-Aug-1996, William Thompson, GSFC
       Converted to IDL V5.0   June 1998    W. Landsman
       Use STRSPLIT instead of STR_SEP if V5.3 or later W.L.  July 2002


def_font [1] $SSW/gen/idl/genutil/def_font.pro
[Previous] [Next]
   Name: def_font

   Purpose: return system dependent default fonts using system variable

   Keyword Parameters:
      init - switch, if set, return machine dependent defaults
      button,label,slider,text, - widget type specific values
      default - default (for all types)
       
   slf, 19-june-92 (eventually should use defsysv for this)
   slf, 22-oct-92   add case
   slf, 30-apr-93  use system variable, added keywords, alpha case
   slf, 23-feb-96  remove system variable references (SSW integration)
   Zarro (ADNET/GSFC) 25-July-06 - made default font a blank string

 CALLED BY:
	xstepper [1], xstepper [2]
   Restrictions:


DEF_MAP $SSW/gen/idl/mapping/def_map.pro
[Previous] [Next]
 Project     : SOHO-CDS

 Name        : DEF_MAP

 Purpose     : Define a basic 2x2 element image map 

 Category    : imaging

 Explanation : 

 Syntax      : def_map,map

 Examples    :

 Inputs      : None

 Opt. Inputs : None


 Outputs     : MAP = {data:data,xp:xp,yp:yp,time:time,id:id} (old format)
                 or  {data:data,xc:xc,yc:yc,dx:dx,dy:dy,time:time,id:id}
               where,
               DATA  = 2x2 image array
               XP,YP = 2x2 cartesian coordinate arrays
               XC,YC = image center coordinates
               DX,DY = image pixel scales
               ID    = blank ID label
               TIME  = blank start time of image

 Opt. Outputs: None

 Keywords    : OLD = use old format
               DIM = data dimensions [nx,ny]

 Common      : None

 Restrictions: None

 Side effects: None

 History     : Written 22 October 1997, D. Zarro, SAC/GSFC

 Contact     : dzarro@solar.stanford.edu


def_yssysv [1] $SSW/gen/idl/fund_lib/yohkoh/def_yssysv.pro
[Previous] [Next]
   Name: def_yssysv

   Purpose: define system variables for Yohkoh SW 
	     values are assigned elsewhere

   Category:
      swmaint, system, gen

   Calling Sequence:
	def_yssysv [,/loud] 	(generally part of idl startup)

 CALLS: ***
	anytim2ints [1], anytim2ints [2], str_copy_tags [1], str_copy_tags [2]
	str_copy_tags [3], str_copy_tags [4]
 CALLED BY:
	restsys [1], restsys [2], savesys [1], savesys [2], ssw_setup_windows
   Common Blocks:
      def_yssysv_blk	- private to track first call

   History: slf, 21-dec-1992
            slf, 23-feb-1993 	; anonomous to make_str for compatibility
				; with older idl versions
            slf,  9-mar-1993   ; back to named structures - will control
				; compatibilty with restore files within
				; this routine
	     slf, 30-mar-1993   ; add some new vars, error return to caller
	     slf, 21-apr-1993   ; add !ys_idlsys_temp/!ys_idlsys_init
	     slf, 22-apr-1993   ; removed !more tag from 21-apr (old idl prob)
	     slf, 12-Jan-1993   ; add !ys_deftape
	     slf, 20-Jan-1993   ; add !ys_sxt_ef
            slf,  5-oct-1994   ; sxt pixel size
            rdb, 23-Apr-1996   ; removed callss to anytim2ints
            slf,  6-Aug-1997   ; added /LOUD keyword (default=quiet)


DEFAULT $SSW/gen/idl/util/default.pro
[Previous] [Next]
 Project     : SOHO - CDS     
                   
 Name        : DEFAULT
               
 Purpose     : Supply default values for variables
               
 Explanation : If the first parameter is not defined, it is
		set to the value of the second parameter.
               
 Use         : DEFAULT,VARIABLE,DEFAULT_VALUE
    
 Inputs      : VARIABLE : The variable that could take on the default value

		DEFAULT_VALUE : The default value.
               
 Opt. Inputs : None.
               
 Outputs     : None.
               
 Opt. Outputs: None.
               
 Keywords    : None.

 Calls       : None.
 CALLED BY:
	APPLY_CDS_ADEF, Array_Despike, CDS_CORR_GRADIENT, CDS_LINEFIT_WRAP
	CDS_REPAIR_TOP, CFIT, CFITSLIST, CFIT_BLOCK, CFIT_ERRDEMO, CLEAN_EXPOSURE
	CWF_COMPONENT, CWF_FIT, CWF_STATUS, CWQ_CUBE, CWQ_DSPWAV [1], CWQ_IMAGE [1]
	CWQ_SPECTR [1], CWQ_WINSEL [1], CW_CHECKBOX, CW_CUBEVEIW, CW_ENTERB, CW_FLIPSWITCH
	CW_LOADCT, CW_MOUSE, CW_PLOTZ [1], CW_PSELECT, CW_PZOOM [1], DSPEXP, DSP_AUX, DSP_CUBE
	DSP_MOVIE, DSP_POINT, DSP_WAV, Energy_res [2], F_MULTI_THERM, GT_SCANP, GT_SCANT
	GT_SCANX, GT_SCANY, GT_SPECTRUM, GT_WINDATA, HANDLE_KILLER_HOOKUP
	HESSI FRAMEWORK TEMPLATE CLASS [2], HESSI FRAMEWORK TEMPLATE CLASS [3]
	HSI_ANNSEC_BPROJ [1], HSI_ANNSEC_BPROJ [3], HSI_ANNSEC_BPROJ_WEIGHT [1]
	HSI_ANNSEC_BPROJ_WEIGHT [2], HSI_ANNSEC_BPROJ_WEIGHT_MAP [1]
	HSI_ANNSEC_BPROJ_WEIGHT_MAP [2], HSI_ANNSEC_PROFILE [1]
	HSI_ANNSEC_PROFILE [2], HSI_DECIM_CORRECTION [1], HSI_DECIM_CORRECTION [2]
	HSI_DRM_MOD CLASS, HSI_DRM_MOD_CONTROL__DEFINE, HSI_GSMOOTH
	HSI_SPECTROGRAMCHAN_OVERLAP_FIX, HSI_SPECTROGRAM_DECIM_CORRECT
	HSI_SPECTROGRAM_DECIM_TABLE, HSI_SPECTRUM__DEFINE, HSI_VIS_GEN, MK_ANALYSIS
	MK_CDS_ANALYSIS, MK_COMPONENT_STC, MK_CONTIGUOUS, NUCLEAR_TABLE_LOAD, PARCHECK
	PICKFITS, PILECOEF, Pileup_countrate_Build_Piler
	Pileup_countrate_PULSE_CONVOLVE, RD_ASCII [1], READCDSFITS, RESTORE_ANALYSIS
	RESTORE_CDS_ADEF, SAVE_ANALYSIS, SAVE_CDS_ADEF, SAVE_QLDS, SET_UTAXIS, SFITSLIST
	SOXS_DRM, SPECTROGRAM CLASS DEFINITION, SPECTRUM CLASS DEFINITION
	SPEX_RUN_CURVEFIT [1], SPEX_RUN_CURVEFIT [2], SSW_REBIN, ST_WINDATA
	XCDS_ANALYSIS, XCDS_COSMIC, XCFIT, XCFIT_BLOCK, XCROP_CUBE, XCR_REMOVE, XDIFF
	XPLOTSCALE, XRECORDER, XR_RD_ABUNDANCE, XSM_PREP, XSM_VALID, XTEXTEDIT, XTVSCALE
	XWIDUMP, chianti_kev, cw_plotz [2], cw_pzoom [2], cwq_dspwav [2], cwq_image [2]
	cwq_spectr [2], cwq_winsel [2], dsp_menu, edge_products, hsi_bproj2size
	hsi_phz_stacker, hsi_regularized_inversion, hsi_spectrogramACCBIN [2]
	hsi_spectrogram__define [1], hsi_spectrogram__define [2]
	hsi_spectrogram__define [3], hsi_spectrogram__get_obs [1]
	hsi_spectrogram__livetime [1], hsi_vis_fwdfit, hsi_vis_usershell
	hsi_visibility_fit, hsi_xyoffset__define, mk_comp_bgauss, mk_comp_gauss
	mk_comp_poly, mk_comp_ppoly, mk_comp_voigt, read_xsm_4_ospex, remove_w_c
	soxs_czt_photopeak, soxs_photopeak, ssw_rebin_assign, ssw_rebinner
	xr_mk_abun_file
 Common      : None.
               
 Restrictions: None.
               
 Side effects: None.
               
 Category    : Utility, Misc.
               
 Prev. Hist. : Taken from my private library.

 Written     : Stein Vidar Hagfors Haugan
               
 Modified    : Never

 Version     : 1, 4-Sept-1995


default_rate_header $SSW/gen/idl/fits/default_rate_header.pro
[Previous] [Next]
 Name: default_rate_header

 Category: HESSI, UTIL

 Purpose: Creates a header specific to a RATE FITS file and fills it up with default values.

 Calling sequence:  default_rate_header, rate_struct

 Inputs:

 Outputs:
   rate_struct  - Structure containing RATE header related information

 Calls: ***
	anytim [1], anytim [2], anytim [3], anytim [4], anytim [5]
 CALLED BY:
	wrt_rate_ext
 Modification History:


DEFAULTS $SSW/gen/idl/fund_lib/sdac/defaults.pro
[Previous] [Next]
 NAME:
	 DEFAULTS

 PURPOSE: 
	Supply default volume, directory, and extension parts of a file name 
	when not supplied.   

 CATEGORY:
	GEN

 CALLING SEQUENCE:
	DEFAULTS,Filenm,Volume,Dir,Ext  

 INPUTS:
   	Filenm:	File name (also an output parameter)
   	Volume:	Default volume to insert in FILENM (include colon).  If either 
            	a colon or a right bracket appears in FILENM, then the volume 
            	and directory information in FILENM are left alone.  
            	Otherwise, VOLUME and DIR are inserted in FILENM. 
   	Dir:	Default directory to insert in FILENM.  See above.
   	Ext:	Default extension (include period).  If FILENM has no 
            	extension, EXT is appended. Set to ' ' to indicate no default.

 OUTPUTS:
   	Filenm:	Complete file name with volume, directory, filename, 
		and extension.
 CALLED BY:
	DCFREAD, DEFAULTS_2, MAILPLOT, SC4HREAD, SC4READ, SC4TREAD, TEK_PRINT [1]
	TEK_PRINT [2]
 EXAMPLE:
    	FILENM = 'HXR1000'
    	DEFAULTS,FILENM,'HXRBS$DATA:','','.SC4' 
    	FILENM is now set to 'HXRBS$DATA:HXR1000.SC4'
 CALLS: ***
	BREAK_FILE [1], BREAK_FILE [2], BREAK_FILE [3], CONCAT_DIR [1], CONCAT_DIR [2]
	CONCAT_DIR [3], FCHECK, break_file [4], concat_dir [4]
 RESTRICTIONS:
	Designed for VMS, considered obsolete, unsure of UNIX support.
	Modified to use break_file and concat_dir
 MODIFICATION HISTORY:
       Mod. 12/16/88.
	Mod. 04/26/89.
	Mod. 05/06/96 by RCJ. Added documentation.
	Version 4, ras, 23-may-1996, using break_file and concat_dir


DEFAULTS_2 $SSW/gen/idl/fund_lib/sdac/defaults_2.pro
[Previous] [Next]
 NAME: 
	DEFAULTS_2

 PURPOSE: 
	Supply default volume, directory, and extension parts of a file name 
	when not supplied.

 	See DEFAULTS for positional parameters.

 CATEGORY:
	GEN

 CALLING SEQUENCE:
 	DEFAULTS_2,filenm=Filemn,volume=Volume,directory=Dir,extension=Ext

 CALLS: ***
	CHECKVAR [1], DEFAULTS, checkvar [2]
 INPUTS:
   	Filenm:	File name (also an output parameter)
   	Volume:	Default volume to insert in FILENM (include colon).  If either 
            	a colon or a right bracket appears in FILENM, then the volume 
            	and directory information in FILENM are left alone.  
            	Otherwise, VOLUME and DIR are inserted in FILENM. 
   	Dir:	Default directory to insert in FILENM.  See above.
   	Ext:	Default extension (include period).  If FILENM has no 
            	extension, EXT is appended.

 OUTPUTS:
       Filenm:	Complete file name with volume, directory, filename,
               and extension.

 CALLED BY:
	HXR_SPEC, SAVE_DCDATA, TEK_INIT [1], TEK_INIT [2]
 EXAMPLE:
    	FILENM = 'HXR1000'
    	DEFAULTS,FILE=FILENM,DIR='HXRBS$DATA:',EXT='.SC4' 
    	FILENM is now set to 'HXRBS$DATA:HXR1000.SC4'

 MODIFICATION HISTORY:
       Mod. 02/12/91.
	Mod. 05/06/96 by RCJ. Added documentation.


DEFROI [1] $SSW/gen/idl_fix/soft/bugfix/defroi.pro
[Previous] [Next]
 NAME:			DEFROI
 PURPOSE:	Define an irregular region of interest of an image
		using the image display system and the cursor/mouse.
 CATEGORY:	Image processing.
 CALLING SEQUENCE:
	R = Defroi(Sx, Sy, X0, Y0)
 INPUTS:
	Sx, Sy = Size of image, in pixels.
 Optional Inputs:
	X0, Y0 = Coordinate of Lower left corner of image on display.
	If omitted, (0,0) is assumed.  Screen device coordinates.
	ZOOM = zoom factor, if omitted, 1 is assumed.
 OUTPUTS:
	Function result = vector of subscripts of pixels inside the region.
	Side effect: The lowest bit in which the write mask is enabled
	is changed.
 OPTIONAL OUTPUTS:
	Xverts, Yverts = Optional output parameters which will contain
		the vertices enclosing the region.
 KEYWORD Parameters:
	NOREGION = Setting NOREGION inhibits the return of the
		pixel subscripts.
	NOFILL = if set, inhibits filling of irregular region on completion.
	RESTORE = if set, original image on display is restored to its
		original state on completion. 
 CALLED BY:
	BORN_AGAIN, C3_CME, C3_CME_FRONT, CH_BOUNDARY [2], CME_MASS, CME_MASSIMG2TOTAL
	MOVIE_MAKER, REMOVE_CR, cr_rem_array, cr_rem_file, cur_teemcursor Te and EM
	lwa_plot_arc, plot_arc [1], plot_arc [2], plot_arc [3], sxt_defroi, wdefroi [1]
	wdefroi [2]
 COMMON BLOCKS:
	None.
 SIDE EFFECTS:
	Display is changed if RESTORE is not set.
 RESTRICTIONS:
	Only works for interactive, pixel oriented devices with a
		cursor and an exclusive or writing mode.
	A region may have at most 1000 vertices.  If this is not enough
		edit the line setting MAXPNTS.
 PROCEDURE:
	The exclusive or drawing mode is used to allow drawing and
	erasing objects over the original object.

	The operator marks the vertices of the region, either by
		dragging the mouse with the left button depressed or by
		marking vertices of an irregular polygon by clicking the
		left mouse button, or with a combination of both.
	The center button removes the most recently drawn points.
	Press the right mouse button when finished.
	When the operator is finished, the region is filled using 
		the polyfill function, and the polyfillv function is used
		to compute the subscripts within the region.

 MODIFICATION HISTORY:  DMS, March, 1987.
 	Revised for SunView, DMS, Nov, 1987.
       Added additional argument checking, SNG April, 1991
	Modified for devices without write masks: DMS, March, 1992.
		Uses exclusive or mode rather than write masks.
	20-Oct-93 (MDM) - Changed call to CURSOR to use the WAIT=3 option
			  (instead of WAIT=1) since it is reading the same
			  data value many times.
			- WAIT=3 didn't work - adding a 0.2 sec wait


del_blank_lines $SSW/gen/idl/genutil/del_blank_lines.pro
[Previous] [Next]
 Project      : HESSI

 Name         : del_blank_lines

 Purpose      : Read in a file, delete the blanklines, and write to an output file.

 Explanation  : This is a sub-routine for xdiff.pro. When comparing two files
                sometimes you want to ignore blanklines.

 Use          : del_blank_lines,'<infile>', '<outfile>', '<error>'

 Inputs       : '<infile>'  : the name of the input file
              : '<outfile>' : the name of the output file
              : '<error>'   : error flag

 Opt. Inputs  : None

 Outputs      : None.

 Opt. Outputs : None.

 Keywords     : None.

 Calls        : ***
	RD_ASCII [1], RD_ASCII [2]
 CALLED BY:
	XDIFF
 Common       : None.

 Restrictions : None.

 Side effects : Creates temporary files.

 Category     : Utility

 Written      : Xiaolin Li, 30 August 2002

 Version      : 1, 30 August 2002


del_comment_lines $SSW/gen/idl/genutil/del_comment_lines.pro
[Previous] [Next]
 Project      : HESSI

 Name         : del_comment_lines

 Purpose      : Read in a file, delete the lines that begin with a semicolon, and write to an output file.

 Explanation  : This is a sub-routine for xdiff.pro. When comparing two files
               sometimes you want to ignore comment lines.

 Use          : del_comment_lines,'<infile>', '<outfile>',  '<error>'

 Inputs       : '<infile>'  : the name of the input file
              : '<outfile>' : the name of the output file
              : '<error>'      : error flag

 Opt. Inputs  : None

 Outputs      : None.

 Opt. Outputs : None.

 Keyword      : None.

 Calls        : ***
	RD_ASCII [1], RD_ASCII [2]
 CALLED BY:
	XDIFF
 Common       : None.

 Restrictions : None.

 Side effects : Creates temporary files.

 Category     : Utility

 Written      : Xiaolin Li, 30 August 2002

 Version      : 1, 30 August 2002


DELETE_ANALYSIS $SSW/gen/idl/fitting/delete_analysis.pro
[Previous] [Next]
 Project     : SOHO - CDS     
                   
 Name        : DELETE_ANALYSIS
               
 Purpose     : Delete a CFIT ANALYSIS structure, freeing the handles.
               
 Explanation : See Purpose.
               
 Use         : DELETE_ANALYSIS,ANALYSIS
    
 Inputs      : ANALYSIS : A CFIT ANALYSIS structure.
 
 Opt. Inputs : None
               
 Outputs     : None
               
 Opt. Outputs: None
               
 Keywords    : None

 Calls       : ***
	DELVARX [1], DELVARX [2], DELVARX [3], DELVARX [4], EXIST, delvarx [5]
 CALLED BY:
	APPLY_CDS_ADEF, XCDS_ANALYSIS, XCFIT_BLOCK
 Common      : None
               
 Restrictions: ...
               
 Side effects: None known
               
 Category    : Line fitting
               
 Prev. Hist. : None

 Written     : SVH Haugan, UiO, 25 September 1997
               
 Modified    : Not yet.

 Version     : 1,  25 September 1997


DELETE_FILE [1] $SSW/gen/idl/system/delete_file.pro
[Previous] [Next]
 Project     : SOHO - CDS     
                   
 Name        : DELETE_FILE()
               
 Purpose     : Delete a named file.
               
 Explanation : Spawn the OS appropriate delete command.
               
 Use         : IDL> status = delete_file(filename [,report=report])
    
 Inputs      : filename   - file to be deleted, must include path
               
 Opt. Inputs : None
               
 Outputs     : Function value = 1 for success = 0 for failure
               
 Opt. Outputs: Report   -  the os response to the delete command
               
 Keywords    : NOCONFIRM  - suppress any delete confirmation requests

 Calls       : ***
	Bell
 CALLED BY:
	FIND_DURATION, LIST_DURATION, MK_CDS_PLAN, MK_STUDY, PRINT_STR, SHOW_CDHS
	SHOW_DATAWIN, SHOW_EVARS, SHOW_FITS_HDR, SHOW_LINELIST, SHOW_PLAN, SHOW_RASTER
	SHOW_STUDY
 Restrictions: VMS and Unix only
               
 Side effects: None
               
 Category    : Util, Operating_system
               
 Prev. Hist. : None

 Written     : C D Pike, RAL, 13-May-93
               
 Modified    : Added NOCONFIRM keyword.  CDP, 26-Apr-95

 Version     : Version 2, 26-Apr-95


DELVARX [1] $SSW/gen/idl/util/delvarx.pro
[Previous] [Next]
 NAME: 
	DELVARX
 PURPOSE: 
 	Delete variables for memory management (can call from routines) 
 EXPLANATION:
	Like intrinsic DELVAR function, but can be used from any calling level

 CALLING SEQUENCE:
 	DELVARX,  a [,b,c,d,e,f,g,h,i,j, /FREE_MEM]

 INPUTS: 
	p0, p1...p9 - variables to delete

 OPTIONAL KEYWORD:
       /FREE_MEM - If set, then free memory associated with pointers 
                   and objects (automatically handled by HEAP_FREE)
       OLD - use old DELVARX
 CALLED BY:
	ADD_TAG [2], ARCMIN2HEL2, ATV, BOOST_TAG, CACHE_DATA, CDS_ASRUN_POINT, CDS_ENG_N1
	CDS_ENG_N4, CDS_PLAN_POINT, CDS_SLIT6_BURNIN, CDS_STACK, CFIT_APIXLIST, CFIT_BLOCK
	CFIT_BLOCK_ERROR, CF_GIS1A, CF_GIS1B, CF_GIS1C, CF_GIS2A [1], CF_GIS4A, CF_GIS4B
	CF_GIS4C, CHECK_KAP, CHIANTI_NE, CHIANTI_TE, CLEAN_GOES, CLEAN_PATH, CONCAT_STRUCT
	CROSS_HAIR, DATA_PATHS, DEF_INST_PLAN, DEF_STUDY, DELETE_ANALYSIS, DELETE_CDS_ADEF
	DELETE_QLDS, DISPLAY_CDS_BURNIN, DROT_MAP, EIS_IMAGE_TOOL [1]
	EIS_IMAGE_TOOL [2], EIS_IMAGE_TOOL_EVENT [1], EIS_IMAGE_TOOL_EVENT [2]
	EIS_ITOOL_PTOOL [1], EIS_ITOOL_PTOOL [2], EIS_ITOOL_ZOOMINOUT [1]
	EIS_ITOOL_ZOOMINOUT [2], EIS_LIST_EXPER [1], EIS_LIST_EXPER [2]
	EIS_LIST_MAIN [1], EIS_LIST_MAIN [2], EIS_LOAD_IMAGE [1], EIS_LOAD_IMAGE [2]
	EIT_CATRD [1], EIT_PREP, ESPAWN, FILE2FID, FIND_CAMPAIGN, FIND_CDS_STUDIES
	FIND_CDS_STUDY, FIND_FID, FIT2GIF, FITS2MAP [1], FITS2MAP [2], FITSHEAD2WCS
	FIX_ZDBASE, FREE_VAR, FTP_BBSO, FTP_KISF, FTP_MLSO_IMAGES, FTP_MWSO, FTP_NOBE
	GEN__DEFINE, GET_CDS_RASTER, GET_CDS_STUDY, GET_LATEST_IAP, GET_MAP_REGION
	GET_NAR, GET_SC_POINT, GET_SID, GET_SOHO_ROLL, GET_SUMER_FILES, GET_SUMER_POINT
	GET_SYNOPTIC, GET_TEMP_DIR, GET_WIDTH_CORR, GE_WINDOW_SIM, GIS_UTPLOT, GOES_TF
	GOES_TF_COEFF, GOES__DEFINE, GSSSADXY, GT_SOLAR_XY, HANDLE_KILLER_HOOKUP
	HAVE_NETWORK, HAVE_PROC, HAVE_TAG, HFITS__DEFINE, HSI_BTOT, HSI_CLOCK_DRIFT
	HSI_MODEL_TO_SCORE, HSI_PIXON_IMAGE [1], HSI_PIXON_IMAGE [2]
	HSI_SEQ_CNT_CORRECT, HSI_SIM11, HSI_VCFILE_PACKET_RATE, HTTP__DEFINE
	Hsi_contact2fits [1], Hsi_contact2fits [2], IAP2STC, IDL_ROUTINE, IHY_READ
	IMAGE_TOOL, IMAGE_TOOL_EVENT, INDEX2MAP, ITOOL_CROSS_HAIR, ITOOL_DRAW
	ITOOL_DRAW_DRAG, ITOOL_DRAW_ICON, ITOOL_LIMBFITTER, ITOOL_LOAD_IMAGE
	ITOOL_OVERLAYER, ITOOL_PICKFILE, ITOOL_PTOOL, ITOOL_ZOOMINOUT, LATEST_IMAGE
	LIST_ANOMALY, LIST_CACHE__DEFINE, LIST_RESOURCE, LIST_SUPPORT, LOCATE_FFCAL
	MAKE_AUTO_FIT, MAKE_CHIANTI_SPEC, MAKE_MANUAL_FIT, MAP_DISCLA2CONT, MEAN_MAP
	MK_CDS_GIF, MK_CDS_PLAN, MK_EIT_MAP, MK_LIMBFIT_BS, MK_MDI_MAP_EARTH
	MK_PLAN_CHANGE, MK_PLAN_LOAD, MK_PLAN_PRIV, MK_PLAN_RECAL, MK_PLAN_RECOVER
	MK_PLAN_REM, MK_PLAN_RESET, MK_PLAN_SHIFT, MK_PLAN_UNLOAD, MK_PLAN_WRITE
	MK_POINT_BASE, MK_SOHO, MK_SOHO_EXTPLAN, MK_SOHO_MAP_EARTH, MK_SOHO_SETUP
	MK_STUDY, MK_SUMER_DBASE, NIS_ROTATE, NL_MRQMIN, OPLOT_NAR [1], PLAN_XCAT_SUMM
	PLOTSPEC, PLOT_MAP
	PLOT_MAP2 WARNINGTEMPORARY FIX ONLY FOR 16 bit ZBuffer support
	PLOT_SPEC [1], PPD, PTR_EMPTY, RATIO_PLOTTER [1], RDWRT_BUFF, RD_CDS_POINT, RD_GOES
	RD_PLAN, RD_RESOURCE, RD_RSTN, READ_KAP, READ_NIMCP_CAL, READ_TTS_FITS, REBIN_FID
	REM_ANON_TAG, REM_DUP_TAG, REM_TAG [2], RESET_NETWORK, RESOLVE_ALL, RM_FILE
	RM_PATH [1], RM_PATH [2], ROLL_PLOT, ROT_CDS_XY, ROT_MAP, SCANPATH, SEL_BSC
	SID__DEFINE, SMART_FTP, SMART_WINDOW, SOCK_FITS, SOCK_LIST, SOCK_OPEN, SOHO_XY
	SPLIT_TAGS, STOKESFIT, STR_INDEX [1], STR_INDEX [2], STR_SPACE, ST_SUMER, SUB_MAP
	SUMER_TOOL_PD_EVENT, SUPPRESS_MESSAGE, SXT_IMAGE_DECONVOLVE, SXT_TEEM1 [1]
	SXT_TEEM1 [2], SXT_TEEM1 [3], SXT_TEEM2 [1], SXT_TEEM2 [2], SXT_TEEM2 [3]
	Sxt_goes_teem, TKI_UDPSLIT, TRACE_CUBE_POINTING, TRACE_MDI_ALIGN, UPDATE_FITLIMB
	UTPLOT__DEFINE, WBSC_SPC_EV [1], WBSC_SPC_EV [2], WCS_FIND_PIXEL_LIST, WTITLE
	XCAT, XCDS_BOOK, XCFIT_BLOCK, XCRON, XGET_SYNOPTIC, XLIST, XRECORDER, XSPECT, XSTRUCT
	XSTUDY, XYPLOT__DEFINE, accum_counts [1], accum_counts [2], avsig_1 [4]
	box_sxthxt_fsp, bsc_spec_plot [1], bsc_spec_plot [2], ch_ss, collexc [1]
	collexc [2], cube_edit, daily_forecast [2], db_gbo, dem_models, difference_movie
	disp_sci160k [1], disp_sci160k [2], drexc [1], drexc [2], eit_fulldisk
	eit_proton_summary, event_movie [2], evt_grid, extract_fids, fit_bsc, fit_bsc_as
	ftp_copy_new, get_elemabun [1], get_elemabun [2], get_ksc_holiday, goes_log
	gtt_info, help_merge [1], help_merge [2], his_suncen, hsi_badpak_test
	hsi_clk_delta_read, hsi_obs_summ_allrates [1], hsi_obs_summ_soc__define
	hsi_ok_intv [1], hsi_ok_intv [2], hsi_pixon_smooth_patterns
	hsi_sim_dummy_livetime, html_get_files, hxt_chsums, ihy_db, interpu_2d [2]
	is_open, leak_sub [1], leak_sub [2], leak_sub [3], local_mag_extrap
	make_goes_chianti_response [1], make_goes_chianti_response [2]
	make_goes_chianti_response [3], make_goes_chianti_response [4], mdi_display
	mdi_write_genxcat, merc_lwa, merc_pix, mewe_spec  mewe_spec_lwa, mewe_spec [1]
	mewe_spec [2], mk_sdcs, mk_spd, mk_ssc [1], mk_ssc [2], mkthumb, mon_sci5k
	mreadfits_header, mreadfits_urls, mxf_read_data, oneline [1], oneline [2]
	oneline_event [1], oneline_event [2], op_get_special, op_term_score, op_times
	plot_ace, quick_hkplot [1], quick_hkplot [2], ratio_plotter [2], rd_fdss, rd_rasm
	rd_sda_flare, rd_therm_rs232, read_eit, read_genxcat, read_trace, redo_disploi
	redo_mon_sci5k, save_idl_routines, set_new_db, sobel_scale, spectro_plot
	spex_delete [1], spex_delete [2], spex_hold [1], spex_hold [2], spex_merge [1]
	spex_merge [2], spex_source [1], spex_source [2], split_colortab
	ssw_fov_context, ssw_getcme_cdaw, ssw_getdst, ssw_sec_aktxt2struct
	ssw_time2paths, sswstruct_fill [1], sxt_off_axis, sxt_patch_att, sxt_psf
	sxt_uvf_info [1], sxt_uvf_info [3], sxtbox_fsp, temp_redo_catalog, timeline
	trace_get_vignette, trace_jpeg_decomp, trace_make_tma, trace_make_tmr [1]
	trace_rd_jpeg, trace_success_file, tv2 [1], tv2 [2], uncompress, unpack_trace
	web_seq, write_trace_bin, xanal_emi, yo_mkos1_dbase, yo_xda2legacy, yopos [1]
	yopos [2], zdeheliographinize, zhelio2xy, zheliographinize, zradialize
 RESTRICTIONS: 
      None

 METHOD: 
	Uses EXECUTE and TEMPORARY function (not anymore)   

 REVISION HISTORY:
	Copied from the Solar library, written by slf, 25-Feb-1993
	Added to Astronomy Library,  September 1995
	Converted to IDL V5.0   W. Landsman   September 1997
       Modified, 26-Mar-2003, Zarro (EER/GSFC) 
       - added FREE_MEM to free pointer/objects
       Modified, 25-Apr-2006, Zarro (L-3Com/GSFC)
       - removed EXECUTE for compliance with IDL VM
       - used SCOPE_VARFETCH to dynamically extract value from argument name
       - used HEAP_FREE for improved memory management 
       Modified 26-Jan-2006, Zarro (ADNET/GSFC)
       - added call to old DELVARX (in DELVARX2) for backwards compatibility


DELVARX [2] $SSW/gen/idl/util/delvarx2.pro
[Previous] [Next]
 NAME: 
	DELVARX
 PURPOSE: 
 	Delete variables for memory management (can call from routines) 
 EXPLANATION:
	Like intrinsic DELVAR function, but can be used from any calling level

 CALLING SEQUENCE:
 	DELVARX,  a [,b,c,d,e,f,g,h,i,j, /FREE_MEM]

 INPUTS: 
	p0, p1...p9 - variables to delete

 OPTIONAL KEYWORD:
       /FREE_MEM - If set, then free memory associated with pointers 
                   and objects.   
 CALLS: ***
	DELVARX2
 CALLED BY:
	ADD_TAG [2], ARCMIN2HEL2, ATV, BOOST_TAG, CACHE_DATA, CDS_ASRUN_POINT, CDS_ENG_N1
	CDS_ENG_N4, CDS_PLAN_POINT, CDS_SLIT6_BURNIN, CDS_STACK, CFIT_APIXLIST, CFIT_BLOCK
	CFIT_BLOCK_ERROR, CF_GIS1A, CF_GIS1B, CF_GIS1C, CF_GIS2A [1], CF_GIS4A, CF_GIS4B
	CF_GIS4C, CHECK_KAP, CHIANTI_NE, CHIANTI_TE, CLEAN_GOES, CLEAN_PATH, CONCAT_STRUCT
	CROSS_HAIR, DATA_PATHS, DEF_INST_PLAN, DEF_STUDY, DELETE_ANALYSIS, DELETE_CDS_ADEF
	DELETE_QLDS, DISPLAY_CDS_BURNIN, DROT_MAP, EIS_IMAGE_TOOL [1]
	EIS_IMAGE_TOOL [2], EIS_IMAGE_TOOL_EVENT [1], EIS_IMAGE_TOOL_EVENT [2]
	EIS_ITOOL_PTOOL [1], EIS_ITOOL_PTOOL [2], EIS_ITOOL_ZOOMINOUT [1]
	EIS_ITOOL_ZOOMINOUT [2], EIS_LIST_EXPER [1], EIS_LIST_EXPER [2]
	EIS_LIST_MAIN [1], EIS_LIST_MAIN [2], EIS_LOAD_IMAGE [1], EIS_LOAD_IMAGE [2]
	EIT_CATRD [1], EIT_PREP, ESPAWN, FILE2FID, FIND_CAMPAIGN, FIND_CDS_STUDIES
	FIND_CDS_STUDY, FIND_FID, FIT2GIF, FITS2MAP [1], FITS2MAP [2], FITSHEAD2WCS
	FIX_ZDBASE, FREE_VAR, FTP_BBSO, FTP_KISF, FTP_MLSO_IMAGES, FTP_MWSO, FTP_NOBE
	GEN__DEFINE, GET_CDS_RASTER, GET_CDS_STUDY, GET_LATEST_IAP, GET_MAP_REGION
	GET_NAR, GET_SC_POINT, GET_SID, GET_SOHO_ROLL, GET_SUMER_FILES, GET_SUMER_POINT
	GET_SYNOPTIC, GET_TEMP_DIR, GET_WIDTH_CORR, GE_WINDOW_SIM, GIS_UTPLOT, GOES_TF
	GOES_TF_COEFF, GOES__DEFINE, GSSSADXY, GT_SOLAR_XY, HANDLE_KILLER_HOOKUP
	HAVE_NETWORK, HAVE_PROC, HAVE_TAG, HFITS__DEFINE, HSI_BTOT, HSI_CLOCK_DRIFT
	HSI_MODEL_TO_SCORE, HSI_PIXON_IMAGE [1], HSI_PIXON_IMAGE [2]
	HSI_SEQ_CNT_CORRECT, HSI_SIM11, HSI_VCFILE_PACKET_RATE, HTTP__DEFINE
	Hsi_contact2fits [1], Hsi_contact2fits [2], IAP2STC, IDL_ROUTINE, IHY_READ
	IMAGE_TOOL, IMAGE_TOOL_EVENT, INDEX2MAP, ITOOL_CROSS_HAIR, ITOOL_DRAW
	ITOOL_DRAW_DRAG, ITOOL_DRAW_ICON, ITOOL_LIMBFITTER, ITOOL_LOAD_IMAGE
	ITOOL_OVERLAYER, ITOOL_PICKFILE, ITOOL_PTOOL, ITOOL_ZOOMINOUT, LATEST_IMAGE
	LIST_ANOMALY, LIST_CACHE__DEFINE, LIST_RESOURCE, LIST_SUPPORT, LOCATE_FFCAL
	MAKE_AUTO_FIT, MAKE_CHIANTI_SPEC, MAKE_MANUAL_FIT, MAP_DISCLA2CONT, MEAN_MAP
	MK_CDS_GIF, MK_CDS_PLAN, MK_EIT_MAP, MK_LIMBFIT_BS, MK_MDI_MAP_EARTH
	MK_PLAN_CHANGE, MK_PLAN_LOAD, MK_PLAN_PRIV, MK_PLAN_RECAL, MK_PLAN_RECOVER
	MK_PLAN_REM, MK_PLAN_RESET, MK_PLAN_SHIFT, MK_PLAN_UNLOAD, MK_PLAN_WRITE
	MK_POINT_BASE, MK_SOHO, MK_SOHO_EXTPLAN, MK_SOHO_MAP_EARTH, MK_SOHO_SETUP
	MK_STUDY, MK_SUMER_DBASE, NIS_ROTATE, NL_MRQMIN, OPLOT_NAR [1], PLAN_XCAT_SUMM
	PLOTSPEC, PLOT_MAP
	PLOT_MAP2 WARNINGTEMPORARY FIX ONLY FOR 16 bit ZBuffer support
	PLOT_SPEC [1], PPD, PTR_EMPTY, RATIO_PLOTTER [1], RDWRT_BUFF, RD_CDS_POINT, RD_GOES
	RD_PLAN, RD_RESOURCE, RD_RSTN, READ_KAP, READ_NIMCP_CAL, READ_TTS_FITS, REBIN_FID
	REM_ANON_TAG, REM_DUP_TAG, REM_TAG [2], RESET_NETWORK, RESOLVE_ALL, RM_FILE
	RM_PATH [1], RM_PATH [2], ROLL_PLOT, ROT_CDS_XY, ROT_MAP, SCANPATH, SEL_BSC
	SID__DEFINE, SMART_FTP, SMART_WINDOW, SOCK_FITS, SOCK_LIST, SOCK_OPEN, SOHO_XY
	SPLIT_TAGS, STOKESFIT, STR_INDEX [1], STR_INDEX [2], STR_SPACE, ST_SUMER, SUB_MAP
	SUMER_TOOL_PD_EVENT, SUPPRESS_MESSAGE, SXT_IMAGE_DECONVOLVE, SXT_TEEM1 [1]
	SXT_TEEM1 [2], SXT_TEEM1 [3], SXT_TEEM2 [1], SXT_TEEM2 [2], SXT_TEEM2 [3]
	Sxt_goes_teem, TKI_UDPSLIT, TRACE_CUBE_POINTING, TRACE_MDI_ALIGN, UPDATE_FITLIMB
	UTPLOT__DEFINE, WBSC_SPC_EV [1], WBSC_SPC_EV [2], WCS_FIND_PIXEL_LIST, WTITLE
	XCAT, XCDS_BOOK, XCFIT_BLOCK, XCRON, XGET_SYNOPTIC, XLIST, XRECORDER, XSPECT, XSTRUCT
	XSTUDY, XYPLOT__DEFINE, accum_counts [1], accum_counts [2], avsig_1 [4]
	box_sxthxt_fsp, bsc_spec_plot [1], bsc_spec_plot [2], ch_ss, collexc [1]
	collexc [2], cube_edit, daily_forecast [2], db_gbo, dem_models, difference_movie
	disp_sci160k [1], disp_sci160k [2], drexc [1], drexc [2], eit_fulldisk
	eit_proton_summary, event_movie [2], evt_grid, extract_fids, fit_bsc, fit_bsc_as
	ftp_copy_new, get_elemabun [1], get_elemabun [2], get_ksc_holiday, goes_log
	gtt_info, help_merge [1], help_merge [2], his_suncen, hsi_badpak_test
	hsi_clk_delta_read, hsi_obs_summ_allrates [1], hsi_obs_summ_soc__define
	hsi_ok_intv [1], hsi_ok_intv [2], hsi_pixon_smooth_patterns
	hsi_sim_dummy_livetime, html_get_files, hxt_chsums, ihy_db, interpu_2d [2]
	is_open, leak_sub [1], leak_sub [2], leak_sub [3], local_mag_extrap
	make_goes_chianti_response [1], make_goes_chianti_response [2]
	make_goes_chianti_response [3], make_goes_chianti_response [4], mdi_display
	mdi_write_genxcat, merc_lwa, merc_pix, mewe_spec  mewe_spec_lwa, mewe_spec [1]
	mewe_spec [2], mk_sdcs, mk_spd, mk_ssc [1], mk_ssc [2], mkthumb, mon_sci5k
	mreadfits_header, mreadfits_urls, mxf_read_data, oneline [1], oneline [2]
	oneline_event [1], oneline_event [2], op_get_special, op_term_score, op_times
	plot_ace, quick_hkplot [1], quick_hkplot [2], ratio_plotter [2], rd_fdss, rd_rasm
	rd_sda_flare, rd_therm_rs232, read_eit, read_genxcat, read_trace, redo_disploi
	redo_mon_sci5k, save_idl_routines, set_new_db, sobel_scale, spectro_plot
	spex_delete [1], spex_delete [2], spex_hold [1], spex_hold [2], spex_merge [1]
	spex_merge [2], spex_source [1], spex_source [2], split_colortab
	ssw_fov_context, ssw_getcme_cdaw, ssw_getdst, ssw_sec_aktxt2struct
	ssw_time2paths, sswstruct_fill [1], sxt_off_axis, sxt_patch_att, sxt_psf
	sxt_uvf_info [1], sxt_uvf_info [3], sxtbox_fsp, temp_redo_catalog, timeline
	trace_get_vignette, trace_jpeg_decomp, trace_make_tma, trace_make_tmr [1]
	trace_rd_jpeg, trace_success_file, tv2 [1], tv2 [2], uncompress, unpack_trace
	web_seq, write_trace_bin, xanal_emi, yo_mkos1_dbase, yo_xda2legacy, yopos [1]
	yopos [2], zdeheliographinize, zhelio2xy, zheliographinize, zradialize
 RESTRICTIONS: 
	Can't use recursively due to EXECUTE function

 METHOD: 
	Uses EXECUTE and TEMPORARY function   

 REVISION HISTORY:
	Copied from the Solar library, written by slf, 25-Feb-1993
	Added to Astronomy Library,  September 1995
	Converted to IDL V5.0   W. Landsman   September 1997
       Modified, 26-Mar-2003, Zarro (EER/GSFC) 26-Mar-2003
       - added FREE_MEM to free pointer/objects
       26-Jan-2007, Zarro (ADNET/GSFC) 
       - deprecated and renamed. See DELVARX.PRO for newer version.


DELVARX [3] $SSW/gen/idl_libs/astron/misc/delvarx.pro
[Previous] [Next]
 NAME: 
	DELVARX
 PURPOSE: 
 	Delete variables for memory management (can call from routines) 
 EXPLANATION:
	Like intrinsic DELVAR function, but can be used from any calling level

 CALLING SEQUENCE:
 	DELVARX,  a [,b,c,d,e,f,g,h,i,j, /FREE_MEM]

 INPUTS: 
	p0, p1...p9 - variables to delete

 OPTIONAL KEYWORD:
       /FREE_MEM - If set, then free memory associated with pointers 
                   and objects.   
 CALLED BY:
	ADD_TAG [2], ARCMIN2HEL2, ATV, BOOST_TAG, CACHE_DATA, CDS_ASRUN_POINT, CDS_ENG_N1
	CDS_ENG_N4, CDS_PLAN_POINT, CDS_SLIT6_BURNIN, CDS_STACK, CFIT_APIXLIST, CFIT_BLOCK
	CFIT_BLOCK_ERROR, CF_GIS1A, CF_GIS1B, CF_GIS1C, CF_GIS2A [1], CF_GIS4A, CF_GIS4B
	CF_GIS4C, CHECK_KAP, CHIANTI_NE, CHIANTI_TE, CLEAN_GOES, CLEAN_PATH, CONCAT_STRUCT
	CROSS_HAIR, DATA_PATHS, DEF_INST_PLAN, DEF_STUDY, DELETE_ANALYSIS, DELETE_CDS_ADEF
	DELETE_QLDS, DISPLAY_CDS_BURNIN, DROT_MAP, EIS_IMAGE_TOOL [1]
	EIS_IMAGE_TOOL [2], EIS_IMAGE_TOOL_EVENT [1], EIS_IMAGE_TOOL_EVENT [2]
	EIS_ITOOL_PTOOL [1], EIS_ITOOL_PTOOL [2], EIS_ITOOL_ZOOMINOUT [1]
	EIS_ITOOL_ZOOMINOUT [2], EIS_LIST_EXPER [1], EIS_LIST_EXPER [2]
	EIS_LIST_MAIN [1], EIS_LIST_MAIN [2], EIS_LOAD_IMAGE [1], EIS_LOAD_IMAGE [2]
	EIT_CATRD [1], EIT_PREP, ESPAWN, FILE2FID, FIND_CAMPAIGN, FIND_CDS_STUDIES
	FIND_CDS_STUDY, FIND_FID, FIT2GIF, FITS2MAP [1], FITS2MAP [2], FITSHEAD2WCS
	FIX_ZDBASE, FREE_VAR, FTP_BBSO, FTP_KISF, FTP_MLSO_IMAGES, FTP_MWSO, FTP_NOBE
	GEN__DEFINE, GET_CDS_RASTER, GET_CDS_STUDY, GET_LATEST_IAP, GET_MAP_REGION
	GET_NAR, GET_SC_POINT, GET_SID, GET_SOHO_ROLL, GET_SUMER_FILES, GET_SUMER_POINT
	GET_SYNOPTIC, GET_TEMP_DIR, GET_WIDTH_CORR, GE_WINDOW_SIM, GIS_UTPLOT, GOES_TF
	GOES_TF_COEFF, GOES__DEFINE, GSSSADXY, GT_SOLAR_XY, HANDLE_KILLER_HOOKUP
	HAVE_NETWORK, HAVE_PROC, HAVE_TAG, HFITS__DEFINE, HSI_BTOT, HSI_CLOCK_DRIFT
	HSI_MODEL_TO_SCORE, HSI_PIXON_IMAGE [1], HSI_PIXON_IMAGE [2]
	HSI_SEQ_CNT_CORRECT, HSI_SIM11, HSI_VCFILE_PACKET_RATE, HTTP__DEFINE
	Hsi_contact2fits [1], Hsi_contact2fits [2], IAP2STC, IDL_ROUTINE, IHY_READ
	IMAGE_TOOL, IMAGE_TOOL_EVENT, INDEX2MAP, ITOOL_CROSS_HAIR, ITOOL_DRAW
	ITOOL_DRAW_DRAG, ITOOL_DRAW_ICON, ITOOL_LIMBFITTER, ITOOL_LOAD_IMAGE
	ITOOL_OVERLAYER, ITOOL_PICKFILE, ITOOL_PTOOL, ITOOL_ZOOMINOUT, LATEST_IMAGE
	LIST_ANOMALY, LIST_CACHE__DEFINE, LIST_RESOURCE, LIST_SUPPORT, LOCATE_FFCAL
	MAKE_AUTO_FIT, MAKE_CHIANTI_SPEC, MAKE_MANUAL_FIT, MAP_DISCLA2CONT, MEAN_MAP
	MK_CDS_GIF, MK_CDS_PLAN, MK_EIT_MAP, MK_LIMBFIT_BS, MK_MDI_MAP_EARTH
	MK_PLAN_CHANGE, MK_PLAN_LOAD, MK_PLAN_PRIV, MK_PLAN_RECAL, MK_PLAN_RECOVER
	MK_PLAN_REM, MK_PLAN_RESET, MK_PLAN_SHIFT, MK_PLAN_UNLOAD, MK_PLAN_WRITE
	MK_POINT_BASE, MK_SOHO, MK_SOHO_EXTPLAN, MK_SOHO_MAP_EARTH, MK_SOHO_SETUP
	MK_STUDY, MK_SUMER_DBASE, NIS_ROTATE, NL_MRQMIN, OPLOT_NAR [1], PLAN_XCAT_SUMM
	PLOTSPEC, PLOT_MAP
	PLOT_MAP2 WARNINGTEMPORARY FIX ONLY FOR 16 bit ZBuffer support
	PLOT_SPEC [1], PPD, PTR_EMPTY, RATIO_PLOTTER [1], RDWRT_BUFF, RD_CDS_POINT, RD_GOES
	RD_PLAN, RD_RESOURCE, RD_RSTN, READ_KAP, READ_NIMCP_CAL, READ_TTS_FITS, REBIN_FID
	REM_ANON_TAG, REM_DUP_TAG, REM_TAG [2], RESET_NETWORK, RESOLVE_ALL, RM_FILE
	RM_PATH [1], RM_PATH [2], ROLL_PLOT, ROT_CDS_XY, ROT_MAP, SCANPATH, SEL_BSC
	SID__DEFINE, SMART_FTP, SMART_WINDOW, SOCK_FITS, SOCK_LIST, SOCK_OPEN, SOHO_XY
	SPLIT_TAGS, STOKESFIT, STR_INDEX [1], STR_INDEX [2], STR_SPACE, ST_SUMER, SUB_MAP
	SUMER_TOOL_PD_EVENT, SUPPRESS_MESSAGE, SXT_IMAGE_DECONVOLVE, SXT_TEEM1 [1]
	SXT_TEEM1 [2], SXT_TEEM1 [3], SXT_TEEM2 [1], SXT_TEEM2 [2], SXT_TEEM2 [3]
	Sxt_goes_teem, TKI_UDPSLIT, TRACE_CUBE_POINTING, TRACE_MDI_ALIGN, UPDATE_FITLIMB
	UTPLOT__DEFINE, WBSC_SPC_EV [1], WBSC_SPC_EV [2], WCS_FIND_PIXEL_LIST, WTITLE
	XCAT, XCDS_BOOK, XCFIT_BLOCK, XCRON, XGET_SYNOPTIC, XLIST, XRECORDER, XSPECT, XSTRUCT
	XSTUDY, XYPLOT__DEFINE, accum_counts [1], accum_counts [2], avsig_1 [4]
	box_sxthxt_fsp, bsc_spec_plot [1], bsc_spec_plot [2], ch_ss, collexc [1]
	collexc [2], cube_edit, daily_forecast [2], db_gbo, dem_models, difference_movie
	disp_sci160k [1], disp_sci160k [2], drexc [1], drexc [2], eit_fulldisk
	eit_proton_summary, event_movie [2], evt_grid, extract_fids, fit_bsc, fit_bsc_as
	ftp_copy_new, get_elemabun [1], get_elemabun [2], get_ksc_holiday, goes_log
	gtt_info, help_merge [1], help_merge [2], his_suncen, hsi_badpak_test
	hsi_clk_delta_read, hsi_obs_summ_allrates [1], hsi_obs_summ_soc__define
	hsi_ok_intv [1], hsi_ok_intv [2], hsi_pixon_smooth_patterns
	hsi_sim_dummy_livetime, html_get_files, hxt_chsums, ihy_db, interpu_2d [2]
	is_open, leak_sub [1], leak_sub [2], leak_sub [3], local_mag_extrap
	make_goes_chianti_response [1], make_goes_chianti_response [2]
	make_goes_chianti_response [3], make_goes_chianti_response [4], mdi_display
	mdi_write_genxcat, merc_lwa, merc_pix, mewe_spec  mewe_spec_lwa, mewe_spec [1]
	mewe_spec [2], mk_sdcs, mk_spd, mk_ssc [1], mk_ssc [2], mkthumb, mon_sci5k
	mreadfits_header, mreadfits_urls, mxf_read_data, oneline [1], oneline [2]
	oneline_event [1], oneline_event [2], op_get_special, op_term_score, op_times
	plot_ace, quick_hkplot [1], quick_hkplot [2], ratio_plotter [2], rd_fdss, rd_rasm
	rd_sda_flare, rd_therm_rs232, read_eit, read_genxcat, read_trace, redo_disploi
	redo_mon_sci5k, save_idl_routines, set_new_db, sobel_scale, spectro_plot
	spex_delete [1], spex_delete [2], spex_hold [1], spex_hold [2], spex_merge [1]
	spex_merge [2], spex_source [1], spex_source [2], split_colortab
	ssw_fov_context, ssw_getcme_cdaw, ssw_getdst, ssw_sec_aktxt2struct
	ssw_time2paths, sswstruct_fill [1], sxt_off_axis, sxt_patch_att, sxt_psf
	sxt_uvf_info [1], sxt_uvf_info [3], sxtbox_fsp, temp_redo_catalog, timeline
	trace_get_vignette, trace_jpeg_decomp, trace_make_tma, trace_make_tmr [1]
	trace_rd_jpeg, trace_success_file, tv2 [1], tv2 [2], uncompress, unpack_trace
	web_seq, write_trace_bin, xanal_emi, yo_mkos1_dbase, yo_xda2legacy, yopos [1]
	yopos [2], zdeheliographinize, zhelio2xy, zheliographinize, zradialize
 RESTRICTIONS: 
	Can't use recursively due to EXECUTE function

 METHOD: 
	Uses EXECUTE and TEMPORARY function   

 REVISION HISTORY:
	Copied from the Solar library, written by slf, 25-Feb-1993
	Added to Astronomy Library,  September 1995
	Converted to IDL V5.0   W. Landsman   September 1997
       Modified, 26-Mar-2003, Zarro (EER/GSFC) 26-Mar-2003
       - added FREE_MEM to free pointer/objects


DEREDD $SSW/gen/idl_libs/astron/astro/deredd.pro
[Previous] [Next]
 NAME:
     DEREDD

 PURPOSE:
     Deredden stellar Stromgren parameters given for a value of E(b-y)
 EXPLANATION:
     See the procedure UVBYBETA for more info.

  CALLING SEQUENCE:
     deredd, eby, by, m1, c1, ub, by0, m0, c0, ub0, /UPDATE

  INPUTS:
     Eby - color index E(b-y),scalar  (E(b-y) = 0.73*E(B-V) )
     by - b-y color (observed)
     m1 - Stromgren line blanketing parameter (observed)
     c1 - Stromgren Balmer discontinuity parameter (observed)
     ub - u-b color (observed)

     These input values are unaltered unless the /UPDATE keyword is set
  OUTPUTS:
     by0 - b-y color (dereddened)
     m0 - Line blanketing index (dereddened)
     c0 - Balmer discontinuity parameter (dereddened)
     ub0 - u-b color (dereddened)

  OPTIONAL INPUT KEYWORDS:
     /UPDATE - If set, then input parameters are updated with the dereddened
           values (and output parameters are not used).
  REVISION HISTORY:
     Adapted from FORTRAN routine DEREDD by T.T. Moon 
     W. Landsman          STX Co.        April, 1988
     Converted to IDL V5.0   W. Landsman   September 1997
 CALLED BY
	UVBYBETA


deriv_arr [1] $SSW/gen/idl/util/deriv_arr.pro
[Previous] [Next]
NAME:
	deriv_arr
PURPOSE:
	Procedure to return the rate of change of the
	input array
INPUT:
	inarr	- the vector to find the derivative of
OUTPUT:
	returns	- If the input is "n" elements, the
		  output is "n-1" elements.
 CALLED BY:
	STR2ARR [1], STR2ARR [2], avoid_spikes [1], avoid_spikes [2], cal_fig_mich
	calc_mtm_therm, check_ql_after_lz, check_sci5k_trunc, cnvtimstr, contact_num [1]
	contact_num [2], eit_proton_summary, find_contig [1], find_contig [2], get_pks
	goes2str, goes_plot [1], goes_plot [2], goes_plot [3], goes_plot [4]
	goes_plot [5], histscale [1], histscale [2], img_summary [1], img_summary [2]
	ip_que_dmpver, lwa_plot_arc, mdi_comp_eff, mk_orbit [1], mk_orbit [2]
	mk_timarr [1], mk_timarr [2], mk_trace_i0, multi_hda2hxi, nobeyama_update
	oplot_nts, plot_arc [1], plot_arc [2], plot_arc [3], plot_fft, plot_img_cadence
	plot_sxl [1], plot_sxl [2], pr_uniq_hk, rd_ssl, rd_ydbtap, show_pix [1]
	show_pix [2], sobel_scale, soon_catstat, sort_index [1], sort_index [2]
	ssw_deltat, str2cols [1], str2cols [2], str2html [1], str2html [2], str2html [3]
	strlist2html [1], strlist2html [2], sumvec, sxt_uniq [1], telem_sum, tim2tfss
	timeavg [1], timeavg [2], timeline, totvect, tr_build_img [1], tr_rd_inventory
	trace_goodobs, where_change [1], where_change [2], xso_butevents [1]
	xso_butevents [2]
HISTORY:
	Written 1988 by M.Morrison
	17-Apr-92 (MDM) - Changed to be a "lindgen" 
	 8-Sep-93 (MDM) - Return value as scalar if only one value


deriv_lud $SSW/gen/idl/genutil/deriv_lud.pro
[Previous] [Next]

 
                     NUMERICAL DIFFERENTIATION: 

   This subroutine calculates the derivative of a tabulated function
   by converting an integral representation of the derivative to a 
   matrix equation and solving this by the method of regularization 
   (see Craig and Brown, Inverse Problems in Astronomy).

 ***************************************************************************
 *                                                                         *
 * pro deriv_lud, x, y, dydx, midpoints=mid, reg_param=alpha, yerror=error,* 
 *            monte_carlo=MONTE                                            *
 *                                                                         *
 ***************************************************************************

   Input:   Double Arrays x[n] = x coordinate values
                          y[n] = y coordinate values
                      error[n] = error on y values 
             Double      alpha = Regularization Parameter

   Output:  Double Array dydx[n-1] = derivative of y at the MIDPOINTs of the
                                     x coordiantes supplied (dimension n-1).
                         mid[n-1]  = midpoints where dydx supplied
                        error[n-1] = error on dydx[]

 CALLS: ***
	FIND_H, F_DIV, GEO, GET_ERROR, GET_KERNEL, GET_SIGN, RESIDUAL2, SOLVE, rescale
 CALLED BY:
	STOKESFIT, fit_limb
   Note: on output, error is replaced by the error on dydx.

   If error is undefined, no error estimation is done.  This can take 
   alot of CPU time, but gives a good estimate of the errors by 
   solving the matrix equation MONTE times and recording the 
   rms deviation of the solutions.  The default value for MONTE is 0
   so you need to set it to something like 1000 for the error
   estimation. 

   The regularization parameter (alpha) must be adjusted using the
   error estimate.  The two numbers printed out are roughly equal 
   when an appropriate value of the parameter has been selected.
   Note that alpha=0 implies no smoothing.  If alpha is not input,
   the routine will guess a value equal to the square of the mean
   grid point spacing times the number of grid points.  If yerror is
   set, the default regularization parameter is compute from the
   error estimate on y.

       T. Metcalf   February 1990
       T. Metcalf   August 2001, Made some changes to get better
                                 statistics to figure out the best
                                 regularization parameter.
       T. Metcalf   April 19, 2005 Make /quiet really quiet.  Use
                                   svdc instead of the obsolete svd
                                   routine.
       T. Metcalf   April 20, 2005 Made a better estimate of the
                                   regularization parameter when
                                   yerror is specified. 
       T. Metcalf   April 25, 2005 Slight mod to reg parameter
                                   computation.  Error is no longer
                                   fractional, it is the error on the
                                   y values.


DETABIFY [1] $SSW/gen/idl/string/detabify.pro
[Previous] [Next]
 NAME:
	DETABIFY
 PURPOSE:
	Replaces tabs in character strings with appropriate number of spaces
 EXPLANATION:
	The number of space characters inserted is calculated to space
	out to the next effective tab stop, each of which is eight characters
	apart.

 CALLING SEQUENCE:
	Result = DETABIFY( CHAR_STR )

 INPUT PARAMETERS:
	CHAR_STR = Character string variable (or array) to remove tabs from.

 OUTPUT:
	Result of function is CHAR_STR with tabs replaced by spaces.

 CALLED BY:
	FXADDPAR [1], FXADDPAR [2], XDIFF, XMESSAGE, XTEXT, mees_log_read
 RESTRICTIONS:
	CHAR_STR must be a character string variable.

 MODIFICATION HISTORY:
	William Thompson, Feb. 1992.
	Converted to IDL V5.0   W. Landsman   September 1997


DETABIFY [2] $SSW/gen/idl_libs/astron/misc/detabify.pro
[Previous] [Next]
 NAME:
	DETABIFY
 PURPOSE:
	Replaces tabs in character strings with appropriate number of spaces
 EXPLANATION:
	The number of space characters inserted is calculated to space
	out to the next effective tab stop, each of which is eight characters
	apart.

 CALLING SEQUENCE:
	Result = DETABIFY( CHAR_STR )

 INPUT PARAMETERS:
	CHAR_STR = Character string variable (or array) to remove tabs from.

 OUTPUT:
	Result of function is CHAR_STR with tabs replaced by spaces.

 CALLED BY:
	FXADDPAR [1], FXADDPAR [2], XDIFF, XMESSAGE, XTEXT, mees_log_read
 RESTRICTIONS:
	CHAR_STR must be a character string variable.

 MODIFICATION HISTORY:
	William Thompson, Feb. 1992.
	Converted to IDL V5.0   W. Landsman   September 1997


detrend $SSW/gen/idl/genutil/detrend.pro
[Previous] [Next]
NAME:
       detrend
PURPOSE:
	Removes linear or higher order polynomial trends from 1-D data
	vectors.

SAMPLE CALLING SEQUENCE:
	coeff = DETREND(trended_data, detrended_data): remove linear trend.
	coeff = DETREND(trended_data, detrended_data, ORDER=2):remove parabolic trend.

INPUT:
	Y = 1-D data vector, any type; length = NPTS.

 CALLS: ***
	POLY_FIT
OPTIONAL KEYWORD INPUT:
	ORDER = the order of the fit to the data to be removed.

RETURNS:
	COEFF = 1-D array of coefficients to the trend fit.

OUTPUT OUTPUT:
	YD = 1-D float array of detrended data; length = NPTS.

HISTORY:
       12-Dec-96: T. Berger.


DEVICE2 $SSW/gen/idl/system/device2.pro
[Previous] [Next]
 Project     : HESSI
                  
 Name        : DEVICE2
               
 Purpose     : wrapper around DEVICE that uses 'CATCH' since DEVICE
               seems to crash on some Linux systems.
                             
 Category    : system utility
               
 Syntax      : IDL> device2,keywords=value

 Outputs     : See keywords

 Keywords    : Inherits all DEVICE keywords
                   
 CALLED BY:
	XCAT
 History     : 24 Aug 2005, Zarro (L-3Com/GSFC)

 Contact     : dzarro@solar.stanford.edu


DEVICELIB [1] $SSW/gen/idl/system/devicelib.pro
[Previous] [Next]
 Project     : SOHO - CDS

 Name        : 
	DEVICELIB
 Purpose     : 
	Definitions needed for the SERTS graphics device library.
 Explanation : 
	Defines variables and common blocks needed for the SERTS graphics
	device library.  Adds system variables !BCOLOR and !ASPECT.
 Use         : 
	DEVICELIB
 Inputs      : 
	None.
 Opt. Inputs : 
	None.
 Outputs     : 
	None.
 Opt. Outputs: 
	None.
 Keywords    : 
	None.
 Calls       : 
	None.
 CALLED BY:
	ADD_PSYS, EIT_DISPLAY, EIT_POSTAGE, USE_CHIANTI, eit_ratio, plotman
	ssw_setup_windows
 Common      : 
	None.
 Restrictions: 
	This routine should be called only once, preferably in the startup
	procedure.
 Side effects: 
	System variables may be changed to their default values.
 Category    : 
	Utilities,
 Prev. Hist. : 
	William Thompson, 10 November 1992.
 Written     : 
	William Thompson, GSFC, 10 November 1992.
 Modified    : 
	Version 1, William Thompson, GSFC, 23 June 1993.
		Incorporated into CDS library.
 Version     : 
	Version 1, 23 June 1993.


DHELP $SSW/gen/idl/help/dhelp.pro
[Previous] [Next]
 PROJECT:
       SOHO - SUMER

 NAME:
       DHELP

 PURPOSE: 
       Diagnostic HELP (activated only when DEBUG reaches DLEVEL)

 EXPLANATION:
       This routine acts similarly to the HELP command, except that
       it is activated only when the environment variable DEBUG is
       set to be equal to or greater than the debugging level set by
       DLEVEL (default to 1).  It is useful for debugging.  
       
 CALLING SEQUENCE: 
       DHELP, [,/structure] v1 [, v2, ...] [,dlevel=dlevel]

 INPUTS:
       V1, V2, ... - List of variables to be passed to the HELP command

 OPTIONAL INPUTS: 
       None.

 OUTPUTS:
       All input variables are printed out on the screen

 OPTIONAL OUTPUTS:
       None.

 KEYWORD PARAMETERS: 
       STRUCTURE - Set this keyword to show strcuture
       DLEVEL    - An integer indicating the debugging level; defaults to 1

 CALLS:
	None.
 CALLED BY:
	EIS_ITOOL_PTOOL [1], EIS_ITOOL_PTOOL [2], GET_CDS_POINT, ITOOL_PTOOL
	MK_POINT_BASE
 COMMON BLOCKS:
       None.

 RESTRICTIONS: 
       Can be activated only when the environment variable DEBUG (indicating 
          the debugging level) is set to an integer which is equal to
          or greater than DLEVEL
       Can print out a maximum of 20 variables (depending on how many
          is listed in the code)

 SIDE EFFECTS:
       None.

 CATEGORY:
       
 PREVIOUS HISTORY:
       Written March 20, 1995, Liyun Wang, GSFC/ARC

 MODIFICATION HISTORY:
       Version 1, Liyun Wang, GSFC/ARC, March 20, 1995

 VERSION:
       Version 1, March 20, 1995


DIFF_MAP $SSW/gen/idl/mapping/diff_map.pro
[Previous] [Next]
 Project     : SOHO-CDS

 Name        : DIFF_MAP

 Purpose     : Difference two maps

 Category    : imaging

 Syntax      : diff=diff_map(map1,map2)

 Inputs      : MAP1,MAP2 = image maps

 Outputs     : DIFF = MAP1-MAP2 or MAP1/MAP2

 Keywords    : RUNNING = if MAP2 is an array, then produce
               a running difference (map(i)=map(i+1)-map(i), etc)
               ROTATE  = rotate maps to common time before rotating
               RATIO = do ratio instead
               MISSING = value for zero divide points

 CALLS: ***
	ADD_PROP, DROT_MAP, EXIST, GET_MAP_TIME, PR_SYNTAX, VALID_MAP
 Restrictions: RUNNING is not yet implemented

 History     : Written 1 April 1998, D. Zarro, SAC/GSFC
               Modified 13 Dec 2002, S. Hill, NOAA/SEC
                 Corrected syntactical errors (brackets vs. parens.)
                 and minor bug with ratio option

 Contact     : dzarro@solar.stanford.edu


DIFF_ROT [1] $SSW/gen/idl/solar/diff_rot.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS

 NAME:	
       DIFF_ROT()

 PURPOSE:
     Computes the differential rotation of the sun
       
 CALLING SEQUENCE: 
       Result = DIFF_ROT(ddays,latitude)

 INPUTS:
       DDAYS    --  number of days to rotate
       LATITUDE --  latitude in DEGREES
       
 OUTPUTS:
       Result -- Change in longitude over ddays days in DEGREES

 KEYWORD PARAMETERS: 
       ALLEN    -- use values from Allen, Astrophysical Quantities (DEFAULT)
       HOWARD   -- use values for small magnetic features from Howard et al.
       SIDEREAL -- use sidereal rotation rate (DEFAULT)
       SYNODIC  -- use synodic rotation rate
       RIGID    -- rotate as rigid body
       RATE     -- user specified rotation rate in degrees per day
                   (only used if /RIGID)

 PREVIOUS HISTORY:
       Written T. Metcalf  June 1992

 CALLED BY:
	ALIGN1BIGGRAM, ALIGN_AR, DROT_MAP, EIS_ITOOL_PTOOL [1], EIS_ITOOL_PTOOL [2]
	EIT_SUB_UTIL_ROT, ITOOL_DISP_ROT, ITOOL_PTOOL, LAY1GKM, LIMB2DISK, MK_POINT_BASE
	RD_AR, ROTATE_LIMB, ROT_SUBIMAGE, ROT_XY, SEL_AR, SXT_QLOOK, TRACE_ALIGN_CUBE
	TRACE_CUBE_POINTING, TRACE_MDI_ALIGN, V4DIFF_ROT, get_survey, mplot_nar
	plot_ar_pfi, plot_nar [1], plot_nar [2], sleazy_rot, sol_rot [1], sol_rot [2]
	ssw_track_fov, track_h2a [1], track_h2a [2], track_h2a [3], zdiff_rot, zhelio2xy
	ztrack
 MODIFICATION HISTORY:
       Version 1, Liyun Wang, GSFC/ARC, November 17, 1994
          Incorporated into the CDS library
       Version 2, Zarro, GSFC, 1 July 1997 - made Howard the default
       Version 3, Zarro, GSFC, 19 Sept 1997 - corrected Howard coeff's
       Version 4, Zarro (EER/GSFC) 22 Feb 2003 - added /RIGID
       Version 5, Zarro (EER/GSFC) 29 Mar 2003 - added /RATE


diff_str [1] $SSW/gen/idl/struct/str_diff.pro
[Previous] [Next]
	NAME: diff_str

	PURPOSE: Boolean function returns true (1) when differences
		are found between the two input structures.  IF no
		differences are found returns false (0).
	
	INPUT:
		str1		1st structure for comparison
		str2		2nd structure for comparison

 CALLS: ***
	STR_DIFF, str_is [1], str_is [2], tag_index [1], tag_index [2]
       Optional Keyword Input:
		diff   - if set, only checks tags (
		tnames - vector of tagnames to check
		tnums  - vector of tnums to check

       Optional Keyword Output:
		dtnames - vector of tagnames which differ
		dtnums  - vector of tagnumbers which differ

	RETURNED:
		0	no differences found
		1	differences found and listed in dtags

	HISTORY: written 20-Feb-92, slf/gal
	
       Restrictions - not yet recursive (no nested tags)


difference_movie $SSW/gen/idl/ssw_util/difference_movie.pro
[Previous] [Next]
   Name: difference_movie

   Purpose: difference a data cube and provide some statistics

   Input Parameters:
      index - structure vector of input
      data  - associated 3D cube

   Output Parameters:
      oindex - output structure vector (n_elements(index)-1)
      odata  - the difference movie (nimages=nimages(data)-1)

 CALLS: ***
	BOX_MESSAGE, DELVARX [1], DELVARX [2], DELVARX [3], DELVARX [4], anytim [1]
	anytim [2], anytim [3], anytim [4], anytim [5], data_chk [1], data_chk [2]
	delvarx [5], update_history
 CALLED BY:
	ssw_flare_locator
   History:
      10-Nov-1998 - S.L.Freeland
      23-Nov-1998 - call <update_history> to update OINDEX
  


DIJ $SSW/gen/idl/image/dij.pro
[Previous] [Next]
 NAME:
	DIJ
 PURPOSE:
	Calculate the 'distance' of each pixel within an image,
	or each index within an array, from a given pixel,
	specified by indices i and j (x and y).
 CALL:
	distance_array = dij(input_array, i, j)
 INPUTS:
	A   - Input array
	i,j - xy indices of pixel relative to which distances are calculated
 OPTIONAL INPUT:
 OUTPUTS:
	Array of distances
 OPTIONAL OUTPUT:
 METHOD:
	Define x and y coordinate arrays corresponding to input matrix,
	then use these to calculate matrix of distances relative to
	reference coordinates by means of Theorem of Pythagoras.
 CALLS: ***
	BOX_MESSAGE
 CALLED BY:
	moment2d
 HISTORY:
	10-Aug-2001 - Written by GLS.
        4-Sep-2001 - S.L.Freeland - common block to avoid recalculation
                                    if last = current


DIMREBIN $SSW/gen/idl/util/dimrebin.pro
[Previous] [Next]
 Project     : SOHO - CDS     
                   
 Name        : DIMREBIN
               
 Purpose     : As REBIN, but dimensions supplied as an array
               
 Explanation : With REBIN, the number of dimensions is hardcoded into the
               function call.  This function takes an array with the sizes of
               the dimensions of the result, and performs a REBIN call with
               the correct number of dimensions.
               
 Use         : array = DIMREBIN(ARRAY,DIMENSIONS)
    
 Inputs      : ARRAY : the array to be rebinned.

               DIMENSIONS : The dimensions of the result. As with rebin, the
                            number of elements in the result must be the same
                            as the number of elements in the input array.
               
 Opt. Inputs : None.
               
 Outputs     : Returns rebined array
               
 Opt. Outputs: None.
               
 Keywords    : SAMPLE : As in REBIN

 Calls       : None.
 CALLED BY:
	APPLY_CDS_ADEF, CDS_TILT_COR, CFIT_BLOCK, MK_CDS_ANALYSIS, XCFIT_BLOCK
 Common      : None.
               
 Restrictions: Assumes sensible inputs
               
 Side effects: None.
               
 Category    : Array utility
               
 Prev. Hist. : None.

 Written     : S. V. H. Haugan, UiO, 10 January 1997
               
 Modified    : Not yet

 Version     : 1, 10 January 1997


DIMREFORM $SSW/gen/idl/util/dimreform.pro
[Previous] [Next]
 Project     : SOHO - CDS     
                   
 Name        : DIMREFORM
               
 Purpose     : As reform, but dimensions supplied as an array
               
 Explanation : With REFORM, the number of dimensions is hardcoded into the
               function call.  This function takes an array with the sizes of
               the dimensions of the result, and performs a REFORM call with
               the correct number of dimensions.
               
 Use         : array = DIMREFORM(ARRAY,DIMENSIONS)
    
 Inputs      : ARRAY : the array to be reformed.

               DIMENSIONS : The dimensions of the result. As with reform, the
                            number of elements in the result must be the same
                            as the number of elements in the input array.
               
 Opt. Inputs : None.
               
 Outputs     : Returns reformed array
               
 Opt. Outputs: None.
               
 Keywords    : OVERWRITE : As in REFORM

 Calls       : None.
 CALLED BY:
	APPLY_CDS_ADEF, CDS_CORR_GRADIENT, CFIT_BLOCK, MK_CDS_ANALYSIS, XCFIT_BLOCK
 Common      : None.
               
 Restrictions: Assumes sensible input
               
 Side effects: None.
               
 Category    : Array utility
               
 Prev. Hist. : None.

 Written     : S. V. H. Haugan, UiO, 10 January 1997
               
 Modified    : Not yet

 Version     : 1, 10 January 1997


dir_exist [1] $SSW/gen/idl/system/dir_exist.pro
[Previous] [Next]
   Name: dir_exist

   Purpose: check if elements of input list are existing directories

   Input Parameters:
      dirlist - string/string array of directories to check

   Output:
      function returns boolean (0 - not directory, 1-directory)

   Calling Sequence:
      dirs=dir_exist(dirlist)

 CALLS: ***
	str_replace [1], str_replace [2]
 CALLED BY:
	MAKE_CHIANTI_SPEC, USE_CHIANTI, ch_ss
   History:
      2-Aug-93 (SLF)
      29-Jun-2000 - RDB - Added Windows case


dir_since $SSW/gen/idl/system/dir_since.pro
[Previous] [Next]
   Name: dir_since

   Purpose: directory listing for spcified age files

   Input Parameters:
      indir  - directory(ies) or files to search
      infage - file age to consider  (days)
               If positive, OLDER than this number of days
               If negative, NEWER than this number of days

   keyword Parameters:
      PATTERN  - file pattern to include (def=all)
      NOFOLLOW - if set, do not follow symbolic links (default=follow)
      VERBOSE - if set, echo commands
      FILES   - set this if 1st parameter is FILELIST (instead of directories)
                (in this case, PATTERN is ignored)
  
   Calling Sequence:
      Two modes of operation -
      Default uses directory list and optional file PATTERN to search
         IDL>oldfiles=dir_since(directories, days>0 [,pattern=pattern] )
         IDL>newfiles=dir_since(directories, days<0 [,pattern=pattern] )
      Use /FILES switch if input is explicit file list instead of directories
         IDL>oldfiles=dir_since(filelist, days>0 , /files )
         IDL>newfiles=dir_since(filelist, days<0 , /files )
      This second mode can be used to 'weed out' old or new files from
         and existing filelist vector  

 CALLED BY:
	monitor_scratch [1], monitor_scratch [2], ssw_contrib_monitor, xsw2tree
	xsw2tree_event, xswlist [2]
   History: 
      2-Nov-1993 (SLF)
     26-Feb-1999 (SLF) - follow symbolic links, add PATTERN keyword
                         document, add /FILES (permit filtering filelist)  
     26-aug-2005 (SLF) - fix prob when '//' present in file names

 CALLS: ***
	BOX_MESSAGE, BREAK_FILE [1], BREAK_FILE [2], BREAK_FILE [3], OS_FAMILY
	STR_LASTPOS [1], break_file [4], curdir [1], curdir [2], data_chk [1]
	data_chk [2], rem_elem [1], rem_elem [2], str_lastpos [2], str_replace [1]
	str_replace [2]
   Restrictions:
     UNIX only   


disk_hog [1] $SSW/gen/idl/system/disk_hog.pro
[Previous] [Next]
   Name: disk_hog

   Purpose: show disk usage, order by size

   Input Parameters:
      path - if set, path for summary search (default is local user area)

   Calling Sequence:
      disk_hog [,path] [/hc]

 CALLS: ***
	POPD, PUSHD, REVERSE, curdir [1], curdir [2], get_host [1], get_host [2]
	get_logenv [1], get_logenv [2], is_member [1], is_member [2], prstr [1], prstr [2]
	rd_tfile [1], rd_tfile [2], ssw_strsplit, strjustify, ut_time [1], ut_time [2]
 CALLED BY:
	ydb_use
   History:
      Circa 1-jan-1995 (SLF)
      20-dec-1995 (SLF) fix KB option for OSF
      09-May-2003, William Thompson - Use ssw_strsplit instead of strsplit


diskfree [1] $SSW/gen/idl/genutil/diskfree.pro
[Previous] [Next]
NAME:
	diskfree
PURPOSE:
	To return the number of free bytes available on the disk in megabytes.
	Also returns total and used bytes and file system and mount names.
CALLING SEQUENCE:
	d = diskfree('/yd0')
	d = diskfree('/yd0', tot=tot, used=used, filesys=filesys, mount=mount)
INPUT:
	disk
OUTPUT:
	Returns the number of free bytes in units of megabytes
OPTIONAL KEYWORD OUTPUT:
	tot	- Total # bytes on the disk (in megabytes)
	used	- # of bytes used
	filesys	- the file system name
	mount	- the mount name
 CALLS: ***
	STR2ARR [1], STR2ARR [2], is_member [1], is_member [2]
 CALLED BY:
	NET_DIR_DIFF, data_compress [1], data_compress [2], data_compress [3]
	dbase2disk, delete_week [1], delete_week [2], disk_monitor [1], disk_monitor [2]
	flares2disk, mo_check, mo_prep
HISTORY:
	Written 14-Mar-92 by M.Morrison
	19-Mar-92 (MDM) - Modified to return results as scalars if only
			  only called for one disk
	24-Mar-92 (MDM) - Modified to work on sun machines - there is 
			  only one header line
	14-Dec-92 (MDM) - Modified calculation for number of lines for
			  header to use 1 for all machines except 
			  DEC/Ultrix which has 2 lines of header.
			  Confirmed 1 line of header for Sun, Mips, SGI
			- Also modified to work on SGI
		
	 8-Jun-1994 (SLF) - Return -1 if cannot stat disk (avoid crash)
        3-Dec-1994 (SLF) - handle long disk names(caused split entries&crash!)
        7-Mar-1995 (SLF) - add OSF, flag vms
       21-aug-2001 (SLF) - no header protection (SunOS/ultra-10?)
       


DISMOUNT [1] $SSW/gen/idl/system/dismount.pro
[Previous] [Next]
 Project     :	SOHO - CDS

 Name        :	DISMOUNT

 Purpose     :	Emulates the VMS DISMOUNT function in Unix.

 Explanation :	Emulates the VMS DISMOUNT function in the Unix environment.
		Although this is not a standard IDL function, it is available
		as a separate LINKIMAGE routine for VMS.

		The main purpose of this procedure is to close the file unit
		open on the tape device, and optionally to unload the tape.
		Errors can result if the tape is unloaded manually rather than
		using this routine.

		**Unix only**

 Use         :	DISMOUNT, UNIT

 Inputs      :	UNIT = Tape unit number.  Tape drives are selected via the UNIX
		       environment variables "MT1", "MT2", etc.  The desired
		       tape drive is thus specified by numbers, as in VMS.
		       Must be from 0 to 9.

 Opt. Inputs :	None.

 Outputs     :	None.

 Opt. Outputs:	None.

 Keywords    :	NOUNLOAD = If set, then the tape is simply rewound, not taken
			   off line.

 Calls       : ***
	CHECK_TAPE_DRV [1], CHECK_TAPE_DRV [2]
 Common      :	CHCK_TAPE_DRVS contains array TAPE_LUN, containing logical unit
		numbers for each tape device, and TAPE_OPEN, which tells
		whether each device is open or not.

 Restrictions:	The environment variable "MTn", where n corresponds to the
		variable UNIT, must be defined.  E.g.,

			setenv MT0 /dev/nrst0

		Requires IDL v3.1 or later.

 Side effects:	The device file is opened.

 Category    :	Utilities, I/O, Tape.

 Prev. Hist. :	None.

 Written     :	William Thompson, GSFC, 21 December 1993.

 Modified    :	Version 1, William Thompson, GSFC, 21 December 1993.

 Version     :	Version 1, 21 December 1993.


disp_gen [1] $SSW/gen/idl/display/disp_gen.pro
[Previous] [Next]
NAME:
	disp_gen
PURPOSE:
	To use the "TV2" and "XYOUTS2" options to display images and
	data.  Useful for making pretty prints.
SAMPLE CALLING SEQUENCE:
	disp_gen
	disp_gen, 0, bytscl(img, top=!d.n_colors-1), 'MDI Dopplergram', $
				'16-JAN-96 12:49:09 UT', foot1='SOI/MDI'
	disp_gen, 0, bimg, tit1, subtit1, /std_foot
	disp_gen,10,dist(200),'main tit1',/std_foot,img2=dist(200),smin=[0,0],smax=[141,100], $
		tit1='image 1 tit',tit2='image 2 tit',subtit1='subtitle for image 1',/date,mask=indgen(2000)
	disp_gen,20,dist(200),xarr=indgen(100),yarr=findgen(100)^3.,xtit='x-title',ytit='y-title',mtit='plot title'
	disp_gen,40,img1,img2=img2,img3=img3,img4=img4,smin=[0,0,-10,20],smax=[100,200,400,400]
	disp_gen, code0, img1, mtit, msubtit, $
		tit1=tit1, subtit1=subtit1, $
		img2=img2, tit2=tit2, subtit2=subtit2, $
		smin=smin, smax=smax, sigma=sigma, $
		foot1=foot1, foot2=foot2, date=date, $
		xsize=xsize, ysize=ysize, $
		color=color, hc=hc, fix_font=fix_font, $
		loadct=loadct, mask_ss=mask_ss, $
		nlab=nlab, fmt=fmt, axis1=axis1, $
		avg=avg, log_hist=log_hist, $
		std_foot=std_foot, outfil=outfil, $
		xarr=xarr, yarr=yarr, xrange=xrange, yrange=yrange, xtit=xtit, ytit=ytit
	disp_gen, 1, img, cmds='disp_mdi_hr_fov, 0, 100, scale=0.5'
	disp_gen, 100, img, msubtit, msubtit2, titn=titn, subtitn=subtitn
	disp_gen,100,indgen(20,20,9),titn=sindgen(9),'main tit', 'sub tit',subtitn='subtit'
CAUTION:
	Use the LOADCT keyword option to be sure that the colors are all reset
	and that the color table is correct.  The capability to inherit
	the modified table (by xloadct or something else) should work, but
	is limited by a bug with IDL (applies only to 8 bit color displays?)
INPUT:
	code	- =0 for just a single image with titles
		  =1 for a single image with a color bar
		  =10 for single image shown twice with 3 plots
		  =11 for two separate images being passed in, with 3 plots
		  =12 for two separate images being passed in, no plots
		  =20 for single image with plot
		  =40 for four image display with color bar
		  =100 for NxN images (put in images as data cube)
		  =104 for 2x2 images (put in images as img1,img2,img3,img4)
	img1	- the image to display
	mtit	- Main title
	msubtit	- Main subtitle
	tit1	- Title to go over image 1 (only code 10 and 11)
	subtit1	- subtitle over image 1 (only code 10 and 11)
	img2	- the second image to display (only code 11)
	tit2	- Title to go over image 2 (only code 10 and 11)
	subtit2	- subtitle over image 2 (only code 10 and 11)
	smin	- the scaling minimum for display (two element array for code 11)
	smax	- the scaling minimum for display (two element array for code 11)
	sigma	- the scaling range for code 10 option (defaults to +/- 1 sigma)
		  Set the range for code 0 and 1 options
	foot1	- footnote for lower left corner
	foot2	- footnote for lower right corner
	std_foot- if set, use foot1='SOI/MDI' and foot2='Stanford Lockheed 
		  institute for Space Research'
	date	- if set, display the date at the bottom of the plot
	hc	- if set, set device to PS and send to the printer (hardcopy)
	color	- if set, use color option on hard copy and send to the color
		  printer on /HC option
	fix_font -if set, set the default font so the X display character sizes
		  are closer to matching the printouts
	loadct	- the color table to establish
	nlab	- number of labels for the color bars (optionally two elements)
	fmt	- format statement for the color bar labels and avg/min/max option
	avg	- if set, plot all line/column average instead of center line/column
		  (only code 10 and 11)
	log_hist- if set, display the histogram in log (only code 10 and 11)
	mask_ss	- the mask for the values to display min/max/avg/dev/histogram
		  (only code 10 and 11)
	outfil	- the output file name if device is PS (or /hc is used)
	xarr	- x-array to plot (code 20 only)
	yarr	- y-array to plot (code 20 only)
	xrange	- x-range to plot (code 20 only)
	yrange	- y-range to plot (code 20 only)
	xtit	- x-title (code 20 only)
	ytit	- y-title (code 20 only)
	compass - If set, then draw a little N/S, E/W compass in lower left
	gif	- If set, redirect to the Z buffer and then read into a GIF file
	cmds	- If set, EXECUTE the command strings (allows the execution
		  of subroutines to do secondary displaying)
	footnotes- A string array of items to display under the image (only
		   good for code 0 and code 1.
	ppinch	- Pixels per inch value to use with TV2
			Sample:  X = 7.0 inch max for 600 pixel = 85.7 ppinch
				 Y = 9.5 inch max for 800 pixel = 84.2 ppinch
		  When adjusting sizes with XSIZE and YSIZE, it will take the largest ppinch
		  to make sure the other dimension fits.
		  For LPARL, the codonics color printer wants ppinch = 90 to fix
		  (because of reduced page size)
	gamma	- Adjust the color table by this value if passed
 CALLS: ***
	CONGRID [1], CONGRID [2], CONGRID [3], DISP1GEN, GAMMA_CT, LOADCT, SETPS, STDEV
	get_xfont [1], get_xfont [2], mk_refbar [1], mk_refbar [2], plots2, pprint [1]
	pprint [2], tv2 [1], tv2 [2], ut_time [1], ut_time [2], xyouts2 [1], xyouts2 [2]
	zbuff2file [1], zbuff2file [2]
 CALLED BY:
	check_ff_load, xdisp_fits, xdisp_trace [1], xdisp_trace [2], xdisp_trace2
	xdisp_trace3
HISTORY:
	Written 22-Apr-96 by M.Morrison
	23-Apr-96 (MDM) - Added AXIS2 option and enabled labeling the bar for code 12
	15-May-96 (MDM) - Added msubtit2
	15-May-96 (MDM) - Added option 40
	 1-Aug-96 (MDM) - Added COMPASS and GIF options
	21-Oct-96 (MDM) - Expanded SIGMA option to codes 0 and 1
	24-Oct-96 (MDM) - Added WINDOW option
			- Modified so that SMIN/SMAX were not defined
			  and passed out (when not passed in)
	 6-Nov-96 (MDM) - Put 24-Oct mods online
			- Replaced "set_plot,'ps'" with setps
	21-Nov-96 (MDM) - Added FOOTNOTES
	10-Jun-97 (MDM) - Added code 100
	13-Jun-97 (MDM) - Added code 104 and keywords xcorner,ycorner,land
	25-Jun-97 (MDM) - Added ppinch and gamma
        9-Nov-06 S.L.Freeland - elevate->ssw-gen for xdisp_fits.pro 


DISPLAY_OK $SSW/gen/idl/genutil/display_ok.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS/SUMER

 NAME:
       DISPLAY_OK()

 PURPOSE: 
       Detect if device display has been set properly

 CATEGORY:
       
 
 EXPLANATION:
       
 SYNTAX: 
       Result = display_ok()

 EXAMPLES:
       
 INPUTS:
       

 OPTIONAL INPUTS: 
       None.

 OUTPUTS:
       None.

 OPTIONAL OUTPUTS:
       None.

 KEYWORDS: 
       None.

 COMMON:
       None.

 RESTRICTIONS: 
       None.

 SIDE EFFECTS:
       None.

 HISTORY:
       Version 1, December 1, 1996, Liyun Wang, NASA/GSFC. Written

 CONTACT:
       Liyun Wang, NASA/GSFC (Liyun.Wang.1@gsfc.nasa.gov)


DIST_CIRCLE $SSW/gen/idl_libs/astron/image/dist_circle.pro
[Previous] [Next]
 NAME: 
      DIST_CIRCLE
 PURPOSE:      
      Form a square array where each value is its distance to a given center.
 EXPLANATION:
      Returns a square array in which the value of each element is its 
      distance to a specified center. Useful for circular aperture photometry.

 CALLING SEQUENCE:
      DIST_CIRCLE, IM, N, [ XCEN, YCEN,  /DOUBLE ]

 INPUTS:
      N = either  a scalar specifying the size of the N x N square output
               array, or a 2 element vector specifying the size of the
               N x M rectangular output array.

 OPTIONAL INPUTS:
      XCEN,YCEN = Scalars designating the X,Y pixel center.  These need
               not be integers, and need not be located within the
               output image.   If not supplied then the center of the output
               image is used (XCEN = YCEN = (N-1)/2.).

 OUTPUTS:
       IM  - N by N (or M x N) floating array in which the value of each 
               pixel is equal to its distance to XCEN,YCEN

 OPTIONAL INPUT KEYWORD:
       /DOUBLE - If this keyword is set and nonzero, the output array will
               be of type DOUBLE rather than floating point.

 CALLED BY:
	SKY, darklimb_correct, eit_ring_flux
 EXAMPLE:
       Total the flux in a circular aperture within 3' of a specified RA
       and DEC on an 512 x 512 image IM, with a header H.

       IDL> adxy, H, RA, DEC, x, y       ;Convert RA and DEC to X,Y
       IDL> getrot, H, rot, cdelt        ;CDELT gives plate scale deg/pixel
       IDL> cdelt = cdelt*3600.          ;Convert to arc sec/pixel
       IDL> dist_circle, circle, 512, x, y  ;Create a distance circle image
       IDL> circle = circle*abs(cdelt[0])   ;Distances now given in arcseconds
       IDL> good = where(circle LT 180)  ;Within 3 arc minutes
       IDL> print,total( IM[good] )      ;Total pixel values within 3'

 RESTRICTIONS:
       The speed of DIST_CIRCLE decreases and the the demands on virtual
       increase as the square of the output dimensions.   Users should
       dimension the output array as small as possible, and re-use the
       array rather than re-calling DIST_CIRCLE

 MODIFICATION HISTORY:
       Adapted from DIST    W. Landsman            March 1991
       Allow a rectangular output array   W. Landsman     June 1994
       Converted to IDL V5.0   W. Landsman   September 1997
       Add /DOUBLE keyword, make XCEN,YCEN optional  W. Landsman Jun 1998


DIST_ELLIPSE $SSW/gen/idl_libs/astron/image/dist_ellipse.pro
[Previous] [Next]
 NAME:
       DIST_ELLIPSE
 PURPOSE:
       Create a mask array useful for elliptical aperture photemetry
 EXPLANATION:
       Form an array in which the value of each element is equal to the
       semi-major axis of the ellipse of specified center, axial ratio, and 
       position  angle, which passes through that element.  Useful for 
       elliptical aperture photometry.

 CALLING SEQUENCE:
       DIST_ELLIPSE, IM, N, XC, YC, RATIO, POS_ANG, /DOUBLE

 INPUTS:
       N = either  a scalar specifying the size of the N x N square output
               array, or a 2 element vector specifying the size of the
               M x N rectangular output array.
       XC,YC - Scalars giving the position of the ellipse center.   This does
               not necessarily have to be within the image
       RATIO - Scalar giving the ratio of the major to minor axis.   This 
               should be greater than 1 for postion angle to have its 
               standard meaning.

 OPTIONAL INPUTS:
       POS_ANG - Position angle of the major axis, measured counter-clockwise
               from the Y axis.  For an image in standard orientation 
               (North up, East left) this is the astronomical position angle.

 OPTIONAL INPUT KEYWORD:
       /DOUBLE - If this keyword is set and nonzero, the output array will
               be of type DOUBLE rather than floating point.

 OUTPUT:
       IM - REAL*4 elliptical mask array, of size M x N.  THe value of each 
               pixel is equal to the semi-major axis of the ellipse of center
                XC,YC, axial ratio RATIO, and position angle POS_ANG, which 
               passes through the pixel.

 EXAMPLE:
       Total the flux in a elliptical aperture with a major axis of 3', an
       axial ratio of 2.3, and a position angle of 25 degrees centered on 
       a specified RA and DEC.   The image array, IM is 200 x 200, and has 
       an associated FITS header H.

       ADXY, H, ra, dec, x, y       ;Get X and Y corresponding to RA and Dec
       GETROT, H, rot, cdelt        ;CDELT gives plate scale degrees/pixel
       cdelt = abs( cdelt)*3600.    ;CDELT now in arc seconds/pixel
       DIST_ELLIPSE, ell, 200, x, y, 2.3, 25  ;Create a elliptical image mask
       ell = ell*cdelt(0)           ;Distances now given in arcseconds
       good = where( ell lt 180 )   ;Within 3 arc minutes
       print,total( im(good) )      ;Total pixel values within 3'

 RESTRICTIONS:
       The speed of DIST_ELLIPSE decreases and the the demands on virtual
       increase as the square of the output dimensions.   Users should
       dimension the output array as small as possible, and re-use the
       array rather than re-calling DIST_ELLIPSE

 REVISION HISTORY:
       Written    W. Landsman             April, 1991
       Somewhat faster algorithm          August, 1992
       Allow rectangular output array     June, 1994
       Converted to IDL V5.0   W. Landsman   September 1997
       Added /DOUBLE keyword   W. Landsman   July 2000


DMY2YMD $SSW/gen/idl/time/dmy2ymd.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS

 NAME:	
       DMY2YMD()

 PURPOSE:
       To convert date string DD-MM-YY format to YY/MM/DD format.
 EXPLANATION:
       
 CALLING SEQUENCE: 
       Result = DMY2YMD(date)

 INPUTS:
       DATE -- A string scalar in DD-MM-YY or DD/MM/YY format.

 OPTIONAL INPUTS: 
       None.

 OUTPUTS:
       Result -- A string scalar in 19YY/MM/DD format.

 OPTIONAL OUTPUTS:
       None.

 KEYWORD PARAMETERS: 
       None.

 CALLS: ***
	STR_SEP
 CALLED BY:
	GET_OBS_DATE, ITOOL_GET_TIME
 COMMON BLOCKS:
       None.

 RESTRICTIONS: 
       None.

 SIDE EFFECTS:
       None.

 CATEGORY:
       
 PREVIOUS HISTORY:
       Written September 26, 1994, by Liyun Wang, GSFC/ARC

 MODIFICATION HISTORY:
       
 VERSION:
       Version 1, September 26, 1994


do_demo [1] $SSW/gen/idl/genutil/do_demo.pro
[Previous] [Next]
   Name: do_demo

   Purpose: run an idl demo program (format can be IDL main routine)

   Input Parameters:
      demofile - name of file to demo (execute) - if none, menu select from
                 files in $DIR_GEN_DOC with names: XXXdemo.pro

   Keyword Parameters:
      pause - if set, pause after IDL statement execution until user <CR>s
      wait  - if set, number of seconds to wait between each line

   Calling Sequence:
      do_demo [,demofile]

   Non comment lines in demofile are displayed with highlights to terminal
   and then executed - comment lines are echoed

   History:
      10-Jan-1995 (SLF)

 CALLS: ***
	FILE_EXIST [2], file_exist [1], file_exist [3], file_list [1], file_list [2]
	prstr [1], prstr [2], rd_tfile [1], rd_tfile [2], strjustify, tbeep [1], tbeep [2]
	tbeep [3], wmenu_sel [1], wmenu_sel [2]
   Restrictions:
      single line IDL commands for now


do_disp_month $SSW/gen/idl/fund_lib/soho/do_disp_month.pro
[Previous] [Next]
NAME:
	do_disp_month
PURPOSE:
	A driver program to make the monthly MDI magnetogram GIF file
SAMPLE CALLING SEQUENCE:
	do_disp_month, '199611'
	do_disp_month, inpre='smdi_maglc_re_', outpre='hr_mag_'
	do_disp_month, year='1997'
	for i=1991,1997 do do_disp_month, year=strtrim(i,2), /sxt
	do_disp_month, eit='171'
 CALLS: ***
	CONCAT_DIR [1], CONCAT_DIR [2], CONCAT_DIR [3], concat_dir [4], eit_colors
	file_list [1], file_list [2], fits_disp_month [1], fits_disp_month [2]
	prstr [1], prstr [2]
HISTORY:
	Written 17-Nov-96 by M.Morrison
	19-May-97 (MDM) - Expanded to allow different prefix on the
			  input and output
			- Added /hr option
	20-May-97 (MDM) - Added MAPFILE option
	22-May-97 (MDM) - Made indir/outdir keywords to allow SXT
			  to use the driver
			- Added /sxt keyword
	30-May-97 (MDM) - Renamed from "go_disp_month" to "do_disp_month"
			- Added EIT
	15-Oct-97 (MDM) - Changed to use sub_dirs for MDI
	12-May-99 (MDM) - Replaced /hosts/pore1/usr/local/etc/httpd/htdocs
			  with /www
	 3-Aug-99 (MDM) - Replaced "space.lockheed.com" with "lmsal.com"


DO_EIT_MAP $SSW/gen/idl/mapping/do_eit_map.pro
[Previous] [Next]
 Project     : SOHO-CDS

 Name        : DO_EIT_MAP

 Purpose     : make EIT maps 

 Category    : planning

 Explanation : wrapper around mk_eit_map that works within SSW and CDS-SOFT

 Syntax      : emap=do_eit_map(data,header,index=index)

 Inputs      : DATA = data array
               HEADER = FITS header (if not entered check INDEX)
 Opt. Inputs : 

 Outputs     : DATA = scale EIT image

 Keywords    : INDEX = index structure (used if HEADER not entered)
               OUTSIZE = output image size

 CALLS: ***
	EXIST, GET_SOHO_ROLL, IS_STRING, MK_EIT_MAP, PR_SYNTAX, ROT_FITS_HEAD
	fitshead2struct, is_struct
 CALLED BY:
	PLOT_CDS_POINT [1], PLOT_CDS_POINT [2]
 History     : Written 1 June, 1998 Zarro (SAC/GSFC)
               Modified 9 July, 2003 Zarro (EER/GSFC) - check SOHO orientation
               Modified 9 Feb, 2004 Zarro (L-3Com/GSFC) - improved ROLL correction

 Contact     : dzarro@solar.stanford.edu


DO_EIT_SCALING $SSW/gen/idl/image_tool/do_eit_scaling.pro
[Previous] [Next]

 Name        : DO_EIT_SCALING

 Purpose     : scale EIT images (degrid, take log, etc) 

 Category    : planning

 Syntax      : data=do_eit_scaling(data,header,index=index)

 Inputs      : DATA = data array
               HEADER = FITS header (if not entered check INDEX)

 Opt. Outputs: DATA = scaled EIT data array

 Keywords    : INDEX = index structure (used if HEADER not entered)
               NO_COPY = input data is destroyed to conserve memory
               LOG = log10 scale image
               NORMALIZE = normalize images by exposure time
               NO_PREP = don't explicitly call EIT_PREP 
               FLIPPED = flag input image was flipped

 CALLS: ***
	ADD_PATH [1], ADD_PATH [2], COPY_VAR, DATATYPE [1], DATATYPE [2], DATATYPE [3]
	DPRINT, EXIST, HAVE_PROC, IS_DIR, ITOOL_EIT_DEGRID, MK_EIT_ENV, PR_SYNTAX, STRUP
	fitshead2struct
 CALLED BY:
	ITOOL_EIT_SCALE, PLOT_CDS_POINT [1], PLOT_CDS_POINT [2], lasteit
	ssw_fov_context
 History     : Written 1 June 1998 D. Zarro, SAC/GSFC
               1 September 2000 J. Newmark, add response correction for
                                eit_prep
               15-Nov-2001, Zarro (EITI/GSFC) - added check for SSW EIT_PREP
               10-Dec-2001, Zarro (EITI/GSFC) - added check for Astro libs
               12-Dec-2006, Zarro (L-3Com/GSFC) - added check for prep'ed data

 Contact     : dzarro@solar.stanford.edu


DO_FITSFILES $SSW/gen/idl/goes/do_fitsfiles.pro
[Previous] [Next]

 NAME:
	DO_FITSFILES

 PURPOSE:
	Create FITS format files for all days between firstday and lastday 
	for GOES 6, GOES 7, GOES 8, GOES 9, and GOES 10.

 CATEGORY:
       GOES

 CALLING SEQUENCE:
       DO_FITSFILES, Firstday, Lastday

 CALLS: ***
	ATIME [1], ATIME [2], GFITS_W, UTIME [1], UTIME [2]
 INPUTS:
       Firstday:	First day passed as ASCII times - 'yy/mm/dd'
	Lastday:	Last day passed as ASCII times - 'yy/mm/dd'

 OUTPUTS:
       None explicit. Gfits_w crates fits file on disk.

 PROCEDURE:
       Call utime atime to turn 'yy/mm/dd' into number of seconds past
	79/1/1,000 ; call atime to turn the firstday into 
	'dd-Mon-yy hh:mm:ss.xxx' and call gfits_w to write fits files for 
	all days between firstday and lastday.

 MODIFICATION HISTORY:
	Written by Kim Tolbert, 07/93
	Mod. 05/95 by AES. Added call for GOES 8.
	Mod. 08/12/96 by RCJ. Added documentation.
	Mod. 10/07/96 by AES. Removed calls for GOES 6 & 7,
		since that data has stopped coming in.
       Mod. 7/21/98 by AES.  Added call for GOES 10.
	Mod. 1/19/98 by AES.  Added y2k keyword so FITS headers will
	        be y2k compliant. Removed call for GOES 9, no longer funct.


do_reg_backup $SSW/gen/idl/system/do_reg_backup.pro
[Previous] [Next]
NAME:
	do_reg_backup
PURPOSE:
	To make a regular backup of a directory tree
SAMPLE CALLING SEQUENCE:
	do_reg_backup
	do_reg_backup, type, bdir_in, bdir_out
	do_reg_backup, 'month', '/mdisw', '/data0/backups', levels=0
	do_reg_backup, 'month'
METHOD:
	The desire is to make a weekly and monthly backup with 
	archives of the last few weeks/months.  This routine
	will cycle through N weeks/months and keep reusing the
	directory.  The routine can be run daily with the
	/check switch and then it will only make the weekly
	backups on Sunday and monthly's on the first of the month.
	
	For the command:
	   IDL> do_reg_backup, 'month', '/mdisw', '/data0/backups'
	and assuming 14-Apr-97, it will backup
	   /mdisw/idl, /mdisw/*/idl, /mdisw/*/*/idl
	   /mdisw/setup, /mdisw/*/setup, /mdisw/*/*/setup
	and put it into
	   /data0/backups/week2

	A file /data0/backups/week2_970414.2024 is also created
	so that the date/time of the backup can be easily found.
OPTIONAL INPUT:
	type	- The type of backup ("week" or "month")
	bdir_in	- The base directory to use as input
	bdir_out- The base directory to use as output
 CALLS: ***
	ARR2STR [1], Arr2Str [2], CONCAT_DIR [1], CONCAT_DIR [2], CONCAT_DIR [3]
	FILE_EXIST [2], anytim2ex [1], anytim2ex [2], anytim2weeks [1], anytim2weeks [2]
	concat_dir [4], ex2dow [1], ex2dow [2], ex2fid [1], ex2fid [2], file_exist [1]
	file_exist [3]
OPTIONAL KEYWORD INPUT:
	qdebug	- If set, don't do the spawning
	nweeks	- Number of weeks to save (4 max, default=3)
	nmonths	- Number of months to save (12 max, default=3)
	subdirs	- The list of directories to backup. 
		  (Default is "idl" and "setup")
	levels	- How many levels down to look for "subdirs"
		  (Default=2)
	check	- If set, then check that it is Sunday (for
		  weekly backup) or the 1st of the month (for
		  monthly backups)
HISTORY:
	Written 14-Apr-97 by M.Morrison


doc_head [1] $SSW/gen/idl/genutil/doc_head.pro
[Previous] [Next]
   Name: doc_head

   Purpose: return idl documentation header from source file

   Input Paramters:
      source - file name containing idl source code and header
      
   Output Paramters:
      header - all text between  ;+ and ;-
      definition - procedure/function definition

 CALLS: ***
	rd_tfile [1], rd_tfile [2], remtab [1], remtab [2], wc_where [1], wc_where [2]
 CALLED BY:
	break_doc [1], break_doc [2], break_doc [3], fastdoc [1], fastdoc [2]
   History: slf, 8-feb-1993
   	     slf, 15-mar-1993	; add case check for definition
	     slf, 25-Jan-1993   ; allow comments = ;-----------------
            slf, 30-Mar-1994   ; case where 2 headers in one file, protect
	     MDM,  8-Mar-1995	; Fixed problem case
            slf,  9-mar-1995   ; definition termination criteria


DOC_LIB_UNIX [1] $SSW/gen/idl/genutil/doc_lib_unix.pro
[Previous] [Next]
 NAME:
	DOC_LIB_UNIX
 PURPOSE:
	Extract the documentation template of one or more procedures.
 CATEGORY:
	Help, documentation.
 CALLING SEQUENCE:
	doc_lib_unix	;For prompting.
	doc_lib_unix, Name ;Extract documentation for procedure Name using
			the current !PATH.
 INPUTS:
	Name = string containing the name of the procedure or "*" for all.
	
 OPTIONAL INPUT PARAMETERS:
	PRINT = keyword parameter which, if set to 1, sends output
		of doc_lib_unix to lpr.  If PRINT is a string, it is a shell
		command used for output with its standard input the
		documentation.  I.e. PRINT="cat > junk"
	DIRECTORY = directory to search.  If omitted, use  current directory
		and !PATH.
	MULTI = flag to allow printing of more than one file if the module
		exists in more than one directory in the path + the current
		directory.
 OUTPUTS:
	No explicit outputs.  Documentation is piped through more unless
	/PRINT is specified.
 CALLED BY:
	XDL [1], XDL [2]
 COMMON BLOCKS:
	None.
 SIDE EFFECTS:
	output is produced on terminal or printer.
 RESTRICTIONS:
	??
 PROCEDURE:
	Straightforward.
 MODIFICATION HISTORY:
	DMS, Feb, 1988.


DOC_LIB_VMS [1] $SSW/gen/idl/genutil/doc_lib_vms.pro
[Previous] [Next]
 NAME:
	DOC_LIB_VMS

 PURPOSE:
	Extract the documentation template of one or more procedures.

 CATEGORY:
	Help, documentation.

 CALLING SEQUENCE:
	DOC_LIB_VMS		;For prompting.
	DOC_LIB_VMS, Name 	;Extract documentation for procedure Name using
				the current !PATH.

 INPUTS:
	Name:	A string containing the name of the procedure.

 KEYWORDS:
	FILE:	If this keyword is set, the output is sent to the file
		"userlib.doc", in the current directory.

	PRINT:	If set, this keyword sends the  output of DOC_LIB_VMS to lpr.

	PATH:	An optional directory/library search path.  This keyword uses
		the same format	and semantics as !PATH.  If omitted, !PATH is
		used.
 OUTPUTS:
	Documentation is output to terminal or printer.

 CALLED BY:
	XDL [1], XDL [2]
 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
	Output is produced on terminal or printer.

 RESTRICTIONS:
	None.

 PROCEDURE:
	Straightforward.

 MODIFICATION HISTORY:
	Written, DMS, Sept, 1982.
	Added library param, Jul 1987.
	Unix version, Feb, 1988.
	Revised for VMS Version 2, 15 December 1989
	Mods by RDB, MSSL, 12-Mar-92:
		i) fix search of long path names by segmenting
		ii) include current directory in search 


doc_library2 [1] $SSW/gen/idl/genutil/doc_library2.pro
[Previous] [Next]
NAME:
	doc_library2
PURPOSE:
	To find a routine and to display the full contents of the file.
	Search in the order of !path.  If a wildcard * is used, then
	all matches in !path are found.
SAMPLE CALLING SEQUENCE:
	doc_library2, 'file_info2'
	doc_library2, 'plot_*'
INPUTS:
	arg	- The input routine name to search for.
OPTIONAL OUTPUT:
	files	- The files found
 CALLS: ***
	MORE [1], MORE [2], PATH_LIB [1], PATH_LIB [2], input [1], input [2], prstr [1]
	prstr [2], rd_tfile [1], rd_tfile [2]
 CALLED BY:
	dlib
HISTORY:
	Written 7-Mar-95 by M.Morrison


DOC_MENU $SSW/gen/idl/help/doc_menu.pro
[Previous] [Next]
 Project     : SOHO - CDS

 Name        : 
	DOC_MENU
 Purpose     : 
	Extract documentation template of one or more procedures.
 Explanation : 
	If NAME is not passed, then this procedure will first display a list of
	the directories in !PATH, and ask for the user to select one.  Then a
	list of procedures in the selected directory are displayed, and the
	user is again asked to select one of them.  Finally, the routine
	DOC_LIB_xxx, where xxx represents the operating system, is called to
	display the documentation in the file between the lines containing the
	characters ";+" and ";-".

	VMS text libraries can also be searched by this routine.

	If a file named "aaareadme.txt" is also found in the selected
	directory, then this can be selected as the topic "*INFO*".

 Use         : 
	DOC_MENU	;For prompting.
	DOC_MENU, NAME	;Extract documentation for procedure NAME using
			the current !PATH.
 Inputs      : 
	None required.
 Opt. Inputs : 
	NAME	= String containing the name of the procedure.  Under Unix,
		  NAME may be "*" for all modules.

	If NAME is not passed, then DOC_MENU will go into an interactive
	mode to prompt the user for the directory or library to search, and
	then for the routine to get information on.
	
 Outputs     : 
	Documentation is sent to the standard output unless /PRINT
	is specified.
 Opt. Outputs: 
	None.
 Keywords    : 
	PRINT = Keyword parameter which, if set to 1, sends output
		of DOC_MENU to the default printer. Under Unix, if PRINT
		is a string, it is a shell command used for output with
		its standard input set to the documentation
		(i.e. PRINT="cat > junk")

 Unix KEYWORDS
	DIRECTORY = directory to search.  If omitted, use  current directory
		and !PATH.
	MULTI = flag to allow printing of more than one file if the module
		exists in more than one directory in the path + the current
		directory.

 VMS KEYWORDS
	FILE - If present and non-zero, the output is left in the file
		userlib.doc, in the current directory.
	PATH = optional directory/library search path.  Same format
		and semantics as !PATH.  If omitted, !PATH is used.

 Calls       : ***
	DL_DOS, DL_UNIX, DL_VMS, FILEPATH, GETTOK [1], GETTOK [2], GETTOK [3], GETTOK [4]
	HAVE_WINDOWS [1], HAVE_WINDOWS [2], LOC_FILE [1], LOC_FILE [2], LOC_FILE [3]
	OS_FAMILY, PATH_EXPAND
 CALLED BY:
	HESSI Create FITS Binary Table, HESSI Packet Read [2], HESSI Packet Write
	HESSI SPECTRUM PLOT, HESSI Score Read, HESSI Score to Light Curve [2]
	HESSI Search Lookup Table Index, HESSI Spectrum [2], HESSI Spectrum [4]
	HESSI Write lookup table, HESSI packet file close, HESSI score file close
	HSI_CWTOOLS_LINESET, HSI_CW_LIGHTCURVE_DRAW [1], HSI_CW_LIGHTCURVE_DRAW [2]
	HSI_CW_Profiles, HSI_CW_SPECTRUM, HSI_CW_SPECTRUM_DRAW
	HSI_ENERGYCONTROL__DEFINE, HSI_FILL_FASTRATE_PACKET, HSI_LIGHTCURVEPLOT
	HSI_LIVETIME_PARAMS__DEFINE, HSI_MK_FASTRATE_PACKET
	HSI_PACKET2DETECTOREVENT, HSI_PROFILECONTROL__DEFINE, HSI_PTR_LISTCONCAT
	HSI_PTR_LISTSORT, HSI_SCORE2FASTRATE_SUBPACKET, HSI_SCORE2LIGHTCURVECONTROL
	HSI_SCORE2PROFILECONTROL, HSI_SCORECONCAT, HSI_SOURCE_PACKET__DEFINE [1]
	HSI_SPECTRUMCONTROL__DEFINE [3], HSI_Score2Spectrum, Open Packet File
	Open Score File, Packet Selection, SOURCE_PACKET_WORD__DEFINE [2]
	SOURCE_PACKET_WORD__DEFINE [3], SWAPDISPLAYEDWIDGET
	Search indices to packets matching some selection criteria
	Telemetry To FITS, XDOC, cw_edroplist, cw_energy_range, cw_range, cw_ut_range
	hsi_cw_energy_range, hsi_cw_ut_range, hsi_scoreels2profile, hsi_scorewrite
 Common      : 
	None.
 Restrictions: 
	The DIRECTORY and MULTI keywords are ignored under VMS. The
	FILE and PATH keywords are ignored under Unix.
 Side effects: 
	Output is produced on terminal or printer.
 Category    : 
	Documentation, Online_help.
 Prev. Hist. : 
	Written, DMS, Sept, 1982.
	Added library param, Jul 1987.
	Unix version, DMS, Feb, 1988.
	New VMS version, DMS, Dec. 1989
	Wrapper procedure to call the correct version
		under Unix and VMS, AB, Jan 1990
       Added support for DOS, SNG, Dec, 1990
	Added interactive capabilities, William Thompson, July 1991.
	Renamed to DOC_MENU, William Thompson, 1992.
 Written     : 
	D. Stern, RSI, September 1982.
 Modified    : 
	Version 1, William Thompson, GSFC, 23 April 1993.
		Changed test for windows and incorporated into CDS library.
	Version 2, William Thompson, GSFC, 27 April 1993.
		Restored support for versions of IDL previous to 2.4.0.
	Version 3, William Thompson, GSFC, 7 May 1993.
		Added IDL for Windows compatibility.
	Version 4, William Thompson, GSFC, 24 September 1993.
		Changed EXPAND_PATH to PATH_EXPAND
       Version 5, Liyun Wang, NASA/GSFC, September 18, 1996
               Used CALL_PROCEDURE when calling DOC_LIB_UNIX,
                  DOC_LIB_DOS, and DOC_LIB_VMS for IDL 2.4.0 and earlier
	Version 6, 23-Oct-1997, William Thompson, GSFC
   
 Version     : 
	Version 6, 23-Oct-1997


doc_summ [1] $SSW/gen/idl/genutil/doc_summ.pro
[Previous] [Next]
   Name: doc_summ

   Purpose: 
      Extract portions of documentation headers and present in some
      standardized format

   Input Parameters:
      infiles - list of
   Calling Sequence:
      doc_summ, infiles, outdoc [/hc]
      doc_summ, path,    outdoc [/hc]

 CALLS: ***
	FILE_EXIST [2], break_doc [1], break_doc [2], break_doc [3], data_chk [1]
	data_chk [2], file_exist [1], file_exist [3], file_list [1], file_list [2]
	fmt_doc [1], fmt_doc [2], fmt_doc [3], prstr [1], prstr [2], str_concat [1]
	str_concat [2]
   History:
      30-Mar-1994 (SLF)
   


dont_use_this [1] $SSW/gen/idl/genutil/dont_use_this.pro
[Previous] [Next]
NAME:
	dont_use_this
PURPOSE:
	To print a message to the screen asking that the routine not be
	used and optionally lists the name of the routine that should be
	used
CALLING SEQUENCE:
	dont_use_this, 'YODAT'
	dont_use_this, 'GET_RB0P', 'SUN_R', 'Sample calling sequence: r = get_rb0p(times)'
OPTIONAL INPUT:
	other	- The name of the other routine to use (new routine)
	this	- The name of the routine not be used (Old routine)
	extra	- Extra string array information to print
 CALLS: ***
	prstr [1], prstr [2], tbeep [1], tbeep [2], tbeep [3]
 CALLED BY:
	HEL2PIX, PIX2HEL, RdTap [3], SUN_B0, SUN_P, SUN_R, go_lasdisk2 golaserdisk
	go_rdtap [2], gt_fov_center, sxt_prep2
HISTORY:
	Written 22-Feb-93 by M.Morrison
	18-Jul-93 (MDM) - Added THIS and EXTRA inputs


double_click_detect $SSW/gen/idl/widgets/double_click_detect.pro
[Previous] [Next]
 PROJECT:  HESSI

 NAME: double_click_detect.pro

 PURPOSE:  Detect a double click in a draw widget

 CATEGORY: HESSI WIDGETS

 CALLING SEQUENCE:  double_click_detect, event, continue [, /press, delay=delay]]

 INPUTS:
	event - event structure passed to an event handling routine

 OPTIONAL KEYWORDS:
	press - only handle events where button was pressed.  Default is to handle release events.
	delay - if second click is more than 'delay' seconds after first click, then it's not a double click (default=.4)

 OUTPUTS:
	continue - if =0, then calling program should just return (waiting for timer event or next button event)

 OPTIONAL OUTPUTS:  None

 Calls: ***
	CHECKVAR [1], checkvar [2]
 COMMON BLOCKS: None

 PROCEDURE:  Call double_click_detect from within draw widget's event handling routine.  On first call,
	first_click will be 0.  Save the event structure in info.save_event (see restrictions below), set first_click to 1,
	set the timer, and set continue to 0 so calling program won't do anything with this event. If a timer event
	occurs before another button event, then it was a single click, so restore the saved event and set continue
	to 1 so calling program will handle the event.  If two draw events happen in succession, then it's a double
	click so set event.clicks to 1 and continue to 1.

 	Note:  This routine will get the draw widget's uvalue and rewrite it, so if the calling routine has already
	gotten the uvalue, it should get it again after calling this routine.

 RESTRICTIONS: For draw widgets only.  The draw_widget must have an information structure
	saved in its uvalue which includes the tags first_click (init to 0) and save_event (init to {widget_draw})

 SIDE EFFECTS:  When double click detected, sets event.clicks to 2

 EXAMPLES:
	pro event_handler, event
	double_click_detect, event, continue
	if not continue then return
	w_draw = event.id
	widget_control, w_draw, get_uvalue=info
	if event.clicks eq 2 then print,'double click event detected.'

 HISTORY:
	Kim Tolbert, 12-Sep-2000



doy2date [1] $SSW/gen/idl/genutil/doy2date.pro
[Previous] [Next]
	NAME:
		doy2date
	PURPOSE:
		convert DOY and year to month and day.
	CALLING SEQUENCE:
		DOY2date, DOY, year, month, day [, yymmdd]
	INPUT:
		doy	day of year
		year	year (e.g. 90, 91, 92...)
	OUTPUT:
		month	month number (01,02,03,..)
		day	day of the month
	Optional/Output:
		yymmdd	string with 'yymmdd'
 CALLED BY:
	FndIDs, doytim2ex [1], doytim2ex [2], rd_so_at_ftr, sxt_mauna, timeline2html
	todays_targets, ttim2ex
	HISTORY:
		Extended from Mons Morrison's DOY2Date,
		done 19-Sept-91 by GAL.


doy2ex [1] $SSW/gen/idl/time/doy2ex.pro
[Previous] [Next]
NAME:
	doy2ex
PURPOSE:
	To convert from day of year to internal structure format or string
	format
SAMPLE CALLING SEQUENCE:
	daytim = doy2ex(doy, year)
	print, doy2ex(doy, /string)
INPUT:
	doy	- The day of year
OPTIONAL INPUT:
	year	- The year.  If not passed, it assumes the current year
 CALLS: ***
	anytim2ex [1], anytim2ex [2], anytim2ints [1], anytim2ints [2], gt_day [1]
	gt_day [2]
 CALLED BY:
	TIM2UPOS, eis_ti2utc [1], eis_ti2utc [2], mk_daily_ints, rd_rasm
OPTIONAL KEYWORD INPUT:
	string	- If set, return the answer in a string format
HISTORY:
	Written 15-Dec-93 by M.Morrison


DOY2UTC $SSW/gen/idl/time/doy2utc.pro
[Previous] [Next]
 Project     : SOHO - CDS     
                   
 Name        : DOY2UTC()
               
 Purpose     : Converts day of year to internal CDS time format.
               
 Explanation : Takes day-of-year value and year (default=current) and
               converts to the internal CDS UTC time structure.
               
 Use         : IDL> utc = doy2utc(doy [,year])
    
 Inputs      : doy - integer day-of-year value (can be an array)
               
 Opt. Inputs : year - the applicable year (default is current year)
                      If this is an array it must have the same dimensions
                      as doy.
               
 Outputs     : Function returns a CDS UTC structure.
               
 Opt. Outputs: None
               
 Keywords    :	EXACT	= If set, then the year is considered to be passed
			  exactly, even if it's only 2 or 3 digits.

		ERRMSG  = If defined and passed, then any error messages will
			  be returned to the user in this parameter rather than
			  being handled by the IDL MESSAGE utility.  If no
			  errors are encountered, then a null string is
			  returned.  In order to use this feature, the string
			  ERRMSG must be defined first, e.g.,

				ERRMSG = ''
				RESULT = DOY2UTC( DOY, ERRMSG=ERRMSG )
				IF ERRMSG NE '' THEN ...

 Calls       : ***
	GET_UTC, STR2UTC [1], STR2UTC [2], STR2UTC [3], UTC2STR
 CALLED BY:
	EIT_CATRD [1], EIT_DISPLAY, FTP_MLSO_IMAGES, GENERIC_MOVIE, make_avg_daily_roll
	rd_therm_rs232
 Common      : None
               
 Restrictions: None
               
 Side effects: If an error is encountered and the ERRMSG keyword has been 
		set, the result returned is an integer -1.  If ERRMSG has
		not been set and an error occurs, DOY2UTC returns with a
		null result.
               
 Category    : Util, time
               
 Prev. Hist. : None

 Written     : C D Pike, RAL, 5-Jan-95
               
 Modified    :	Version 1, C.D. Pike, RAL, 5 January 1995
		Version 2, C.D. Pike, RAL, 9 January 1995
			Fix bug if input is single value array.
		Version 3, Donald G. Luttermoser, GSFC/ARC, 1 February 1995
			Added the keyword ERRMSG.  Set ONERROR flag to 2.
			Corrected bug in YEAR calculation.  Note that this
			routine can handle both scalar and vector input.
               Version 4, Changed handling of input year array, as 
                          suggested by S Paswaters.  CDP, 10-Mar-95
		Version 5, 5-Jan-2000, William Thompson, GSFC
			Changed way that two-digit years are interpreted for
			better Y2K compliance.

 Version     : Version 5, 5-Jan-2000


doytim2ex [1] $SSW/gen/idl/genutil/doytim2ex.pro
[Previous] [Next]
  Name:
    doytim2ex

  Purpose:
    Convert a string with day-of-year and time into external format.
    For example,  the string "316 21:45" will be converted to
    [21,45,0,0,12,11,year]

  Calling Sequence:
    timarr = doytim2ex(buf, [doy=doy, year=year] )

  Inputs:
    buf	= A string array with doy of year and time.
		  Example, "316, 21:45"
			   "316  21:45"
			   "316"
			   "342  2145"
 CALLS: ***
	doy2date [1], doy2date [2], timstr2ex [1], timstr2ex [2]
 CALLED BY:
	deciyr2ints, dsn_input, fmt_rasm, rd_goes3sec [1], rd_goes3sec [2]
	rd_raw_station_plan
                 Note: The day of year is required.  It must be first and
		        can be deliminated by space, comma or tab.
  Outputs:
    Returns 7-element array in external format.

  Optional input keywords:
    year	= Year in 199x or 9x format.  If this is not specified,
 		  the current year will be used.

  Optional return keywords:
    doy	= The day of year number.

  Method:
    Calls doy2date and timstr2ex

  History:
    Written, 12-Nov-91, J. Lemen
    Updated, 11-Dec-91, J. Lemen; Allow time to be entered as 1200 for 12:00"


doytim2ints $SSW/gen/idl/genutil/doytim2ints.pro
[Previous] [Next]
NAME:
	doytim2ints
PURPOSE:
	Convert day-of-year and time to the internal time format
SAMPLE CALLING SEQUENCE:
	daytim = doytim2ints(buf, year)
	daytim = doytim2ints('207, 21:45')
RESTRICTION:
	If an array of DOY/Times are passed in, the formats must all
	be identical.  It uses the first item in the array to determine
	the method of decoding
INPUTS:
       buf     = A string array with doy of year and time.
                 Example, "316, 21:45"
                          "316  21:45"
                          "316"
                          "342  2145"
 CALLS: ***
	UNIQ [1], UNIQ [2], UNIQ [3], anytim [1], anytim [2], anytim [3], anytim [4]
	anytim [5], anytim2ints [1], anytim2ints [2]
 CALLED BY:
	rd_fdss_durevt_fil, rd_fdss_grndtrk_fil, rd_fdss_orbevt_fil
	rd_fdss_viewpd_fil, timeline2html
                 Note: The day of year is required.  It must be first and
                       can be deliminated by space, comma or tab.
OPTIONAL INPUT:
	year	= Year in 199x or 9x format.  If this is not specified,
                 the current year will be used.
OUTPUT:
	daytim	= A structure with .TIME and .DAY tags
HISTORY:
	Written 26-Feb-98 by M.Morrison 
		(taking J.Lemen's doytim2ex as the starting point and 
		 allowing a vector of inputs to be passed in and to use 
		 ANYTIM to speed things up considerably).  It's about
		 10 times faster than doy2utc and can handle input times


DPRINT $SSW/gen/idl/help/dprint.pro
[Previous] [Next]
 PROJECT:
       SOHO - CDS/SUMER

 NAME:
       DPRINT

 PURPOSE: 
       Diagnostic PRINT (activated only when DEBUG reaches DLEVEL)

 EXPLANATION:
       This routine acts similarly to the PRINT command, except that
       it is activated only when the environment variable DEBUG is
       set to be equal to or greater than the debugging level set by
       DLEVEL (default to 1).  It is useful for debugging.  

 CALLING SEQUENCE: 
       DPRINT, v1 [,v2 ...] [,format=format] [,dlevel=dlevel]

 INPUTS:
       V1, V2, ... - List of variables to be printed out.

 OPTIONAL INPUTS: 
       None.

 OUTPUTS:
       All input variables are printed out on the screen (or the
       given unit)

 OPTIONAL OUTPUTS:
       FORMAT - Output format to be used
       UNIT   - Output unit through which the variables are printed. If 
                missing, the standard output (i.e., your terminal) is used.

 KEYWORD PARAMETERS: 
       DLEVEL - An integer indicating the debugging level; defaults to 1

 CALLS: ***
	pprint [1], pprint [2]
 CALLED BY:
	CACHE__DATA, CDS_ASRUN_POINT, CDS_STACK, CHECK_FTP, CLEAN_PATH, CONCAT_STRUCT
	DBEXT [2], DBUPDATE [1], DB_CHECK, DO_EIT_SCALING, DROT_MAP, DROT_MAP_FAST, DSCALE
	EIS_IMAGE_TOOL [1], EIS_IMAGE_TOOL [2], EIS_ITOOL_PTOOL [1]
	EIS_ITOOL_PTOOL [2], EIT_COPY, EXPAND_TV, FAKE_POINT_STC, FID2TIME, FID__DEFINE
	FIFO__DEFINE, FIND_COMPRESSED, FITS__DEFINE, FIT_CDS_QL, FTP_BBSO, FTP_KISF
	FTP_MLSO_IMAGES, FTP_MWSO, FTP_NOBE, FTP__DEFINE, GAUSS_FIT, GET_CALLER
	GET_CDS_DELAY, GET_CDS_DUR, GET_CDS_OH, GET_CDS_POINT, GET_CDS_STUDY, GET_DETAIL
	GET_FITS_CEN, GET_GZIP, GET_LATEST_KAP, GET_PLAN_TT, GET_POINTER, GET_RECENT_EIT
	GET_XWIN [1], GOES__DEFINE, HASTA__DEFINE, HAVE_PROC, HFITS__DEFINE, HTTP__DEFINE
	HXRS__DEFINE, IMAGE_TOOL, ITOOL_EIT_SCALE, ITOOL_GETFILE, ITOOL_LOAD_IMAGE
	ITOOL_PICKFILE, ITOOL_PKFILE_BS, ITOOL_PTOOL, ITOOL_RD_FITS, JOIN_STRUCT [2]
	LATEST_IMAGE, LINKEDLIST, LINKED_LIST, LIST_BDA, LIST_CACHE__DEFINE, LIST_FILE
	LIST_PATH, LOC_FILE [2], MAKE_MAP, MAKE_POINTER, MAP2GIF, MAP2JPEG, MAP2L1
	MAP_LIST__DEFINE, MAP__DEFINE, MEMCHK_TIMES, MERGE_MAP, MK_CDS_GIF, MK_CDS_PLAN
	MK_GIF, MK_PLAN_CAMP, MK_PLAN_CHANGE, MK_PLAN_CLONE, MK_PLAN_EXIST, MK_PLAN_ORDER
	MK_PLAN_PLOT, MK_PLAN_READ, MK_PLAN_RECAL, MK_PLAN_RECOVER, MK_PLAN_WRITE
	MK_POINT_BASE, MK_SOHO, MK_SOHO_EXTPLAN, MK_STUDY, MOVIE_MAP, NOBE__DEFINE
	OLIST__DEFINE, PARSE_TIME, PB0R, PLOT_CDS_POINT [1], PLOT_CDS_POINT [2]
	PLOT_HELIO [1], PLOT_HELIO [2], PLOT_MAP
	PLOT_MAP2 WARNINGTEMPORARY FIX ONLY FOR 16 bit ZBuffer support
	PLOT_MAP_DEFINE, PLOT_RESOURCE, RDWRT_BUFF, RD_ASCII_BUFF, RD_CDS_POINT, RD_PLAN
	RD_RESOURCE, READ_KAP, READ_KAP_ITEM, RECOMPILE, REM_TAG [2], ROT_CDS_XY, ROT_MAP
	RSTN__DEFINE, SCANPATH, SEND_PRINT, SET_CDS_SDB, SET_POINTER, SHOW_SYNOP__DEFINE
	SITE__DEFINE, SOCK_COPY, SOHO_XY, SPECPLOT__DEFINE, SUB_MAP, SXT_OBSRPT
	SYNOP_DB__DEFINE, SYNOP_DEFINE, TRACE_COPY, UNIX_SPAWN, UPDATE_CAMPAIGN
	UPDATE_KAP, UPDATE_STUDY_DUR, UTPLOT__DEFINE, WHERE_OFF_LIMB, XACK, XCAMP, XCAT, XCPT
	XMANAGER_RESET, XREPORT, XTEXT, XYPLOT__DEFINE, Y2KFIX, contacts [1], contacts [2]
	get_xwin [2], help_prefix, mobad_summ, obs_summary, pr_evn [2], pr_fem, pr_gbe, pr_gev
	pr_gsn [1], pr_gsn [2], pr_nar, pr_nel, pr_qs_hxi, pr_sxt_term, pr_trav_summ
	pro_list [1], pro_list [2], rd_week_file [2], read_ftp, revchk, scratcf, scratch [1]
	scratch [2], spectro_plot2, sxi_files, sxtpnt_sum, weekid [2], xread_hist
	ydb_exist [2]
 COMMON BLOCKS:
       None.

 RESTRICTIONS: 
       Can be activated only when the environment variable DEBUG (indicating 
          the debugging level) is set to an integer which is equal to
          or greater than DLEVEL
       Can print out a maximum of 20 variables (depending on how many
          is listed in the code)

 SIDE EFFECTS:
       None.

 CATEGORY:
       Utility, miscellaneous

 PREVIOUS HISTORY:
       Written March 18, 1995, Liyun Wang, GSFC/ARC

 MODIFICATION HISTORY:
       Version 1, Liyun Wang, GSFC/ARC, March 18, 1995
       Version 2, Zarro, SM&A, 30 November 1998 - added error checking
       Version 3, Zarro, (EIT/GSFC), 23 Aug 2000 - removed DATATYPE calls


DR_CARR [1] $SSW/gen/idl/solar/dr_carr.pro
[Previous] [Next]
 NAME:
       DR_CARR

 PURPOSE:
	If ARG is a time interval (in decimal days) this routine
	calculates the Carrington differential rotation for the
	latitude specified by LAT (in degrees, default is 0).

	If ARG is an angle (in either degrees or radians), this
	routine calculates the time interval (in decimal days)
	required for Carrington rotation by that angle at a
	latitude specified by LAT.

 CATEGORY:
       Solar astronomy trivia.

 CALLING SEQUENCE:
	OUT = dr_carr([lat,arg,ang2tim=ang2tim,rad=rad])

 INPUTS:
	LAT:		Latitude in degrees
       ARG:		Either a time difference (if ANG2TIM is not
			present or is zero), or a rotation angle in
			degrees or radians (if ANG2TIM is present
			and non-zero).

 OPTIONAL INPUT PARAMETERS:
       None.

 KEYWORDS:
	ANG2TIM:	If present and non-zero then ARG is interpreted
			as a rotation angle, and the time in decimal days
			required for rotation by angle ARG (in either
			degrees or radians) is returned.
	RAD:		If present and non-zero then if ARG is non-zero
			the returned rotation angle is in radians. If ARG
			is absent then the returned rotation rate is in
			microradians per second.  If RAD is zero or absent
			then the returned rotation angle or rate is in
			degrees or degrees per day.
	PERIOD:		If present and non-zero then if ARG is absent
			the rotation period in days at latitude LAT is
			returned.  If PERIOD is zero or absent then if ARG
			is absent the rotation rate in microradians per sec
			is returned.

 OUTPUTS:
	OUT:		Either rotation angle or time in decimal days
			necessary to rotate by angle ARG, depending on the
			value of ANG2TIM.

 CALLED BY:
	BUILD_SSX, DR, GET_SSX_SLICE, MK_SSX, TV_SSX
 COMMON BLOCKS:
       None.

 SIDE EFFECTS:
       None.

 RESTRICTIONS:
       None.

 PROCEDURE:
       The sidereal Carrington rotation rate is 2.666 microradians/sec.
	We have borrowed the higher order coefficients for photospheric
	differential rotaion from Howard and Harvey (1970):

	omega_sidereal =  2.865 - 0.351(+/-0.03)*sin(beta)^2
			  - 0.443(+/-0.05)*sin(beta)^4	microradians/sec

 EXAMPLE:

 MODIFICATION HISTORY:
       Aug, 1992.     Written by GLS, LMSC.


DR_PHOTO [1] $SSW/gen/idl/solar/dr_photo.pro
[Previous] [Next]
 NAME:
       DR_PHOTO

 PURPOSE:
	If ARG is a time interval (in decimal days) this routine
	calculates photosheric differential rotation for the
	latitude specified by LAT (in degrees, default is 0).

	If ARG is an angle (in either degrees or radians), this
	routine calculates the time interval (in decimal days)
	required for photosperic rotation by that angle at a
	latitude specified by LAT.

 CATEGORY:
       Solar astronomy trivia.

 CALLING SEQUENCE:
	OUT = dr_photo([lat,arg,ang2tim=ang2tim,rad=rad])

 INPUTS:
	LAT:		Latitude in degrees
       ARG:		Either a time difference (if ANG2TIM is not
			present or is zero), or a rotation angle in
			degrees or radians (if ANG2TIM is present
			and non-zero).

 OPTIONAL INPUT PARAMETERS:
       None.

 KEYWORDS:
	ANG2TIM:	If present and non-zero then ARG is interpreted
			as a rotation angle, and the time in decimal days
			required for rotation by angle ARG (in either
			degrees or radians) is returned.
	RAD:		If present and non-zero then if ARG is non-zero
			the returned rotation angle is in radians. If ARG
			is absent then the returned rotation rate is in
			microradians per second.  If RAD is zero or absent
			then the returned rotation angle or rate is in
			degrees or degrees per day.
	PERIOD:		If present and non-zero then if ARG is absent
			the rotation period in days at latitude LAT is
			returned.  If PERIOD is zero or absent then if ARG
			is absent the rotation rate in microradians per sec
			is returned.

 OUTPUTS:
	OUT:		Either rotation angle or time in decimal days
			necessary to rotate by angle ARG, depending on the
			value of ANG2TIM.

 CALLED BY:
	DR, GET_TRACUBE, mplot_nar, plot_ar_pfi, plot_nar [1], plot_nar [2], rot_pix2
 COMMON BLOCKS:
       None.

 SIDE EFFECTS:
       None.

 RESTRICTIONS:
       None.

 PROCEDURE:
       The sidereal photospheric rotation equation of
	Howard and Harvey (1970) is used:

	omega_sidereal =  2.78(+/-0.003) - 0.351(+/-0.03)*sin(beta)^2
			  - 0.443(+/-0.05)*sin(beta)^4	microradians/sec

 EXAMPLE:

 MODIFICATION HISTORY:
       May, 1992.     Written by GLS, LMSC.


draw_boxcensiz [1] $SSW/gen/idl/genutil/draw_boxcensiz.pro
[Previous] [Next]
NAME:
       draw_boxcensiz
PURPOSE:
       To draw a box on the screen in either data or device coordinates by
	specifying the center and the size of the box
SAMPLE CALLING SEQUENCE:
       draw_boxcensiz, x0, y0, x1, y1
INPUT:
       x       - The center x coordinate
       y       - The center y coordinate
       xsiz    - The size in the x coordinate
       ysiz    - The size in the y coordinate
OPTIONAL INPUT:
       nxparts - Draw this many x grid marks
       nyparts - Draw this many y grid marks
       nytot   - screen size excluding lines at the bottom to skip
       nyskip  - number of lines to skip a the bottom (for color bar)
       label   - optional label to be put in lower left corner
       lab_siz - size of the label
 CALLED BY:
	SXT_QLOOK, TRACE_SSWHERE [1], pfi_loc, plot_fov [1], plot_gsn, plot_ssw_fov
	sxt_plot_fov, trace_sswhere [2], trace_sswhere [3], trace_sswhere [4]
OPTIONAL KEYWORD INPUT:
       device  - If set, use device coordinates (DEFAULT)
       data    - If set, use data coordinates
       color   - If set, use that color
HISTORY:
       Written Oct-91 by M.Morrison
       18-Jun-93 (MDM) - Added COLOR option and documentation header


draw_boxcorn [1] $SSW/gen/idl/genutil/draw_boxcorn.pro
[Previous] [Next]
NAME:
	draw_boxcorn
PURPOSE:
	To draw a box on the screen in either data or device coordinates
SAMPLE CALLING SEQUENCE:
	draw_boxcorn, x0, y0, x1, y1
INPUT:
	x0	- The lower left x coordinate
	y0	- The lower left y coordinate
	x1	- The upper right x coordinate
	y1	- The upeer right y coordinate
OPTIONAL INPUT:
	nxparts - Draw this many x grid marks
	nyparts	- Draw this many y grid marks
	nytot 	- screen size excluding lines at the bottom to skip
	nyskip  - number of lines to skip a the bottom (for color bar)
	label	- optional label to be put in lower left corner
	lab_siz	- size of the label
	lab_dir	- orientation of the label
	lab_col	- color of the label
 CALLED BY:
	MARKS2BOX, PICK_PIX, READ_TRACE_FOV, SFD_CDS, SPOTTER, TOBAN_BOXES
	TRACE_SSWHERE [1], ar_prep, bgrab Bruner Grab, box1_draw, box_lc_plot, dejitter
	ext_subset [1], ext_subset [2], get_from_plot, obs_coord, obs_coord2, plot_fov [1]
	pr_image, pr_teem, rect_rot, sel_region, sho, sho_max, show_obs2, show_obs3, show_obs4
	soup_obs2, sxt_obs_coord [1], sxt_obs_coord [2], sxt_plot_fov, trace_sswhere [2]
	trace_sswhere [3], trace_sswhere [4]
OPTIONAL KEYWORD INPUT:
	device	- If set, use device coordinates (DEFAULT)
	data	- If set, use data coordinates
	color	- If set, use that color
HISTORY:
	Written Oct-91 by M.Morrison
	18-Jun-93 (MDM) - Added COLOR option and documentation header


draw_circle [1] $SSW/gen/idl/display/draw_circle.pro
[Previous] [Next]
  Name:
    draw_circle
  Purpose:
    Draw a circle.
  Calling Sequence:
    draw_circle, x0, y0, radius [, npts=npts]
  Input Parameters:
    x0 =  Central x coordinate
    y0 =  Central y coordinate
    radius = Radius

  Optional input keywords:
    Npts   = Number of points (default = 10000)
    device = If set, plots will assume device coordinates
    data   = If set, plots will assume data   coordinates
    psym   = Plot symbol
    color  = Color
    linestyle = Line style
    fill   = If set, call poly_fill
    noclip = If noclip=0, circles will be clipped (read the IDL
		manual on plots to find out why its this way).

 CALLED BY:
	MARK_POINT, stretch_circle, todays_targets, xy_lwa
  Modification History:
    Written, 26-feb-92, J. R. Lemen
    2-feb-95, JRL, Added thick keyword
   11-apr-96, S.L.Freeland, Add FILL keyword and function
   25-apr-96, JRL, Added the NOCLIP keyword
   22-Apr-2001, Kim Tolbert.  In theta calculation, divide by npts-1 so 
      circle is closed.


DRAW_GRID [1] $SSW/gen/idl/solar/draw_grid.pro
[Previous] [Next]
 NAME:
       DRAW_GRID
 PURPOSE:
	Draw a Stonyhurst grid
	(Also can draw Carrington grid).
 CATEGORY:
 CALLING SEQUENCE:
	draw_grid
	draw_grid, center, fov
	draw_grid, center, fov, /tv2
 INPUTS:
   center	- [x,y] Center of the Stonyhurst plot in units 
			of solar radius (default = [0,0]).
   fov		- [x,y] Size of Stonyhurst plot in units of
			solar radius (default = [2.5,2.5]).
   item	- Time parameter for Carrington grid
 INPUT KEYWORDS PARAMETERS:
   TV2		- If set, does scaling needed for PS plotting
   img_siz	- [x,y] Size of the image (default=window size)
   img_pos	- [x,y] Location of lower left corner of Stonyhurst
			grid (default = [0,0]).
   roll	- To specify a non-zero roll angle degrees). Positive
		  will roll result grid counter clockwise.
   tilt	- To specify the B-angle (degrees).
   gridsep	- Grid separation (degrees).  Default = 15 degrees.
   nogrid	- To suppress grid (usually used in combination with 
		  the /draw_limb keyword).
   draw_limb	- Draw the limb (usually used in combination with the
		  /nogrid keyword).
   draw_eq	- Draw the equator (usually used in combination with the
		  /nogrid keyword).
   noerase	- If set, do not erase before plotting.
   color	- Specify the color of the grid.
   thick	- Specify the line thickness of the grid.
   latlon	- Array of size [2,N] giving coordinates of latitude 
		  longitude.  Circles will be drawn at the specified
		  coordinates.
   symsize	- Define (arbitrary) size of latlon circles (default = 1.)
   gridtype	- =1 for Stonyhurst (default) and =2 for Carrington grid.
   res		- ????
   mgridsize	- ????
   nosavrest	- If set then DO NOT execute save/restore commands.
 OUTPUTS:
   None.
 CALLS: ***
	MK_GRID_COORDS [1], MK_GRID_COORDS [2], S2C [1], S2C [2], TIM2CLON, restsys [1]
	restsys [2], savesys [1], savesys [2]
 CALLED BY:
	GRID_CURSOR, NORH_GRID [1], NORH_GRID [2], PLOT_CLON, SXT_GRID [1], SXT_GRID [2]
	mplot_nar, plot_ar_pfi, plot_nar [1], plot_nar [2], sun_grid
 COMMON BLOCKS:
	draw_grid_blk, tv2_blk
 SIDE EFFECTS:
 RESTRICTIONS:
 PROCEDURE:
 EXAMPLE:
 MODIFICATION HISTORY:
       July, 1992. - Written by GLS, LMSC.
	14-Jul-93 (MDM) - Added common block to save the xrange, yrange, and
			  position information (to be used by other routines
			  like PLOT_NAR, SXT_GRID, ...
	21-Jan-93 (GLS) - Added ITEM as positional parameter.  This is
			  an index or time parameter, used for Carrington
			  longitude calculation (see next item).
			  Added GRIDTYPE as a keyword parameter.  If it
			  is 1 (default), a heliographic grid is plotted.
			  If 2, Carrington grid is plotted.
	23-Feb-95 (RDB) - Added TV2 keyword and stuff associated with PS
			  plotted (see also ocontour, etc.)
	26-Jan-96 (JRL) - Added save/restore of system plot variables.
	29-Mar-96 (GLS)	- Added nosavrest keyword


DRAWBOX $SSW/gen/idl/display/drawbox.pro
[Previous] [Next]
 Project     : SOHO-CDS

 Name        : DRAWBOX

 Purpose     : Draw a rubber-band box (or circle)

 Category    : imaging

 Explanation : This function draws a rubberband box (or circle) in the 
               window specified by the positional parameter 
                (or the current graphics window, by default). 
               The coordinates of the final box are returned by the
               function. Move the cursor to draw, press the left button
               to drag, and press the right button to exit.


 Syntax      : coord=drawbox()

 CALLED BY:
	GET_SUB_REGION, imspec [10], imspec [11], imspec [12], imspec [13], imspec [14]
	imspec [15], imspec [16], imspec [17], imspec [18], imspec [19], imspec [1]
	imspec [20], imspec [21], imspec [22], imspec [23], imspec [24], imspec [25]
	imspec [26], imspec [27], imspec [28], imspec [29], imspec [2], imspec [30]
	imspec [31], imspec [32], imspec [33], imspec [34], imspec [35], imspec [36]
	imspec [3], imspec [4], imspec [5], imspec [6], imspec [7], imspec [8], imspec [9]
 Examples    :

 Inputs      : WID = window where box is drawn. (!D.Window by default.)
                

 Opt. Inputs : None

 Outputs     : COORD= [xstart,ystart,xend,yend] or
                      [xcenter,ycenter,radius]

 Opt. Outputs: 

 Keywords    : DATA = set for box coordinates returned as DATA coordinates.
               NORMAL = set for box coordinates returned as NORMAL coordinates.
               CIRCLE = set to draw circle instead of box
               SIZE = initial box width and height 
               INITIALXY = initial circle center
               FIXED = set to inhibit resizing, but permit dragging
               RADIUS = initial radius of circle

 Restrictions: None

 CALLS: ***
	BOX_DRAW, CIRCLE_DRAW, EXIST
 Side effects: None

 History     : Written: D. Fanning (Coyote Software)
               Modified: D. Zarro, 28-Oct-98 (SMA/GSC) - added circle option
               Modified: K. Tolbert 29-Oct-98 (RSTX) - added initial location option
               Modified: K. Tolbert 29-Oct-98 (RSTX) -  for circle option, return center and radius

 Contact     : dzarro@solar.stanford.edu


drexc [1] $SSW/gen/idl/spectra/drexc.pro
[Previous] [Next]
  NAME:
    drexc
  PURPOSE:
    Compute effective excitation rate due to dielectronic recombination.
    as a function of electron temperature in units of cm^3 s-1
  CALLING SEQUENCE:
     drexc,ato_data,Te6,wave,stage,exrate

     The line intensity is I (ph cm-3 s-1) = Ne * Nz * exrate where
     Ne (cm-3) and Nz (cm-3) are the electron density and the number density
     of the responsible stage.

  INPUTS:
     ato_data	= Structure containing atomic data (returned from rd_sec3)
     Te6	= Vector of electron temperatures in 1.e6 K
  OUTPUTS:
     wave	= Wavelength (in Ang) of lines
     stage	= Vector describing ion stage as number of electrons (1=H like)
     exrate	= Effective excitation rate (cm+3 s-1)
 CALLS: ***
	DELVARX [1], DELVARX [2], DELVARX [3], DELVARX [4], delvarx [5]
 CALLED BY:
	bcs_line
  HISTORY:
     3-sep-93, J. R. Lemen (LPARL), Written
    27-sep-93, JRL, Fixed minor problem which occured when Te6 is a vector
     5-oct-94, JRL, Fixed the statistical weight of Fe XXIII d.r. lines


DROT_COORD $SSW/gen/idl/mapping/drot_coord.pro
[Previous] [Next]
 Name:

      DROT_COORD

 Purpose:

      Differentially rotate coordinates of a solar raster map

 Category:

      Maps

 Calling sequence:

      new_coord=DROT_COORD(map,t_ref)

 Inputs:

      map : input map (size of data _array: [Nx,Ny])
      t_ref : reference time for rotation

 Keyword parameters:

      XYP = non-rotated coordinates (OUT)
      VERBOSE = issue messages warning about off-limb pixels
      OFFLIMB = indexes of off-limb pixels in each spectrum (OUT)
      N_OFFLIMB = number of off limb pixels in each spectrum (array, OUT)
      SPHERE = keyword passed to ARCMIN2HEL throuth ROT_XY (IN, default: 1; 
               note that the default in ROT_XY is 0)
      KEEP = keep same same P,B0,R values when rotating: use TIME tag as 
             reference epoch for computing these values

 Outputs:

      new_coord : new coordinates: array[Nx,Ny,2]

 CALLED BY:
	DROT_RASTER
 Common blocks:

      None

 Calls: ***
	ANYTIM2CAL, ANYTIM2TAI, ARCMIN2HEL, GET_MAP_XP, GET_MAP_YP, GET_UTC, HEL2ARCMIN [1]
	HEL2ARCMIN [2], PB0R, ROT_XY, SOHO_VIEW, TAG_EXIST [1], TAG_EXIST [2], UNPACK_MAP
	USE_EARTH_VIEW, USE_SOHO_VIEW, VALID_MAP, roll_xy
 Side effects:

      None

 Restrictions:

      - It is assumed that raster exposures are stored in the data array 
      columns (when ROLL=0, that means that rastering is done parallel 
      the E/W direction). 
      - Does not accept array of maps.

 Notes:

      Since it requires multiple calls to ROT_XY, rotating rasters can be 
      much slower than rotating images of the same dimensions. 

 Modification history:

      V. Andretta,   26/Jan/1999 - Written; derived from older DROT_NISMAP. 
      V. Andretta,   28/Feb/1999 - Use ROLL and ROLL_CENTER from map structure;
        added SPHERE and OFFLIMB keywords; tried to fix off-limb pixels; 
        speeded-up rotation of 'ordinary' maps (images, not rasters).
      V. Andretta,   11/Apr/1999 - Added KEEP keyword.
      V. Andretta,   16/Jan/2001 - Improved treatment of points rolled over 
        behind the disk.
      V. Andretta,    5/Dec/2001 - Taken into account changes in UNPACK_MAP 
        regarding tag and keyword names specifying roll properties 
        (ROLL -> ROLL_ANGLE, RCENTER -> ROLL_CENTER).

 Contact:

      andretta@na.astro.it


DROT_MAP $SSW/gen/idl/mapping/drot_map.pro
[Previous] [Next]
 Project     : SOHO-CDS

 Name        : DROT_MAP

 Purpose     : differentially rotate image contained within structure created by MAKE_MAP

 Category    : imaging

 Syntax      : rmap=drot_map(map,duration)

 Inputs      : MAP = map structure
               DURATION = hours to rotate by

 Outputs     : RMAP = map with rotated coordinates

 Keywords    : SECONDS = duration units in seconds
               TIME = time to rotate image to (can be a MAP or INDEX stc)
               NO_REMAP = don't remap image data (just compute rotated coords)
               DAYS = specify duration units in days
               TAG_ID = tag name or index to rotate
               RCENTER = [rxc,ryc] = new rotation center of output image (if rolling)
               TRANS = [xs,ys] = translation of output image [+N, +W]
               SPACE/RESOLUTION = [dx,dy] = spacing of output image
               OUTSIZE  = [nx,ny] = size of output image
               ROLL  = new roll of output image
               NOLIMB = exclude off limb points
               MISSING = values to set unrotatable (e.g. off limb) points
               NCENTER = [xc,yc] = new center of output image coords
               REF_MAP = reference image to map to. 
                         If entered, then TIME, SPACING, ROLL are inherited
               FAST = set when one wants to solely shift the entire FOV 
                      without correcting for the latitudinal dependence of 
                      the solar differential rotation function.
                      USE WITH CARE! - results are only meaningful for small
                      rotation intervals of a few hours for images within
                      10-20 degrees of the equator.
               UNROTATED = indicies of unrotated pixels
               KEEP_CENTER = keep center of output image same as input
                             [def is to solar rotate]
               NO_DROTATE = skip diff. rotation part
               RIGID = rotate as rigid body
               DEGREES = duration is in units of degrees
               TRACK_CENTER = set to track center of the output image to where the 
                         center of the input image is rotated to. 
                         The default is to center the output image on the 
                         center of the rotated field of view.
                         This makes a non-subtle difference for full and 
                         partial FOV images.
               PRESERVE_AREA = set to increase (or decrease) number of 
                         output image pixels to preserve input image 
                         area. Default is to keep original input number
                         of pixels.
              B0 = override solar B-angle at the end of the rotation interval
                   with this value (in degrees)

 CALLS: ***
	ADD_TAG [1], ADD_TAG [2], ANYTIM2UTC [1], ANYTIM2UTC [2], DELVARX [1], DELVARX [2]
	DELVARX [3], DELVARX [4], DIFF_ROT [1], DIFF_ROT [2], DPRINT, DROT_MAP_FAST, EXIST
	GET_DROT_DUR, GET_MAP_PROP, GET_MAP_TIME, GET_MAP_XP, GET_MAP_YP, GRID_XY, HAVE_TAG
	IS_STRING, MERGE_STRUCT, MK_MAP_NEW, MK_MAP_OLD, PB0R, PR_SYNTAX, REPACK_MAP
	REP_TAG_VALUE, ROT_XY, SUB_MAP, TRIM, UNPACK_MAP, VALID_MAP, VALID_RANGE, delvarx [5]
	interp2d [1], interp2d [2], interp2d [3], is_number [1], is_number [2], roll_xy
 CALLED BY:
	COREG_MAP, DIFF_MAP, EIS_IMAGE_TOOL_EVENT [1], EIS_IMAGE_TOOL_EVENT [2]
	IMAGE_TOOL_EVENT, MAP__DEFINE, MERGE_MAP, MOVIE_MAP, ssw_build_trace
	ssw_fov_context
 History     : Written 22 November 1997, D. Zarro, SAC/GSFC
               Modified 27 Sept 1999, Zarro (SM&A/GSFC) -- removed
               SOHO view correction (now handled by MAP2SOHO)
               9-Feb-2000, Zarro (SM&A/GSFC) -- added correction
               for solar rotation of roll center when in fov
               9 Jan 2001, Kim Tolbert - made onx and ony longwords so onx*ony 
                 won't overflow
               20 Aug 2001, Zarro (EITI/GSFC) - added /keep_center and optimized
               memory
               21 Aug 2001, Zarro (EITI/GSFC) - added ability to retain 
               limb pixels for good buddy GLS
               22 Feb 2003, Zarro (EER/GSFC) - added /RIGID
               11 Mar 2003, Zarro (EER/GSFC) - added /DEGREES
               23 Nov 2003, Zarro (L-3/GSFC) - added check for roll values
                less than 1 degree. Treat these as effectively 0 degree roll.
               18 May 2004, Zarro (L-3Com/GSFC) - added /TRACK_CENTER, /PRESERVE_AREA
                8 Jun 2004, Zarro (L-3Com/GSFC) - added XRANGE/YRANGE
                8 Jan 2005, Zarro (L-3Com/GSFC) - added B0
                9 Mar 2005, Zarro (L-3Com/GSFC) - added check for integer data
 Contact     : dzarro@solar.stanford.edu


DROT_MAP_FAST $SSW/gen/idl/mapping/drot_map_fast.pro
[Previous] [Next]
 Project     : SOHO-CDS

 Name        : DROT_MAP_FAST

 Purpose     : fast version of DROT_MAP

 Category    : imaging

 Explanation : Just rotates central coordinates of map

 Syntax      : rmap=drot_map(map,duration,time=time)

 CALLS: ***
	ADD_TAG [1], ADD_TAG [2], ANYTIM2UTC [1], ANYTIM2UTC [2], DPRINT, EXIST
	GET_DROT_DUR, GET_MAP_PROP, GET_MAP_TIME, MERGE_STRUCT, PB0R, PR_SYNTAX, ROT_XY
	SHIFT_MAP, TAG_EXIST [1], TAG_EXIST [2], VALID_MAP, roll_xy
 CALLED BY:
	DROT_MAP, RD_CDS_POINT
 Examples    :

 Inputs      : MAP = map structure
               DURATION = amount to rotate by [hours units]

 Opt. Inputs : None

 Outputs     : RMAP = map with rotated coordinates

 Opt. Outputs: None

 Keywords    : DAYS = duration units in days
             : SECONDS = duration units in seconds
               NO_RTIME = don't add RTIME property


 History     : Written 5 June 1998, D. Zarro, SAC/GSFC
               Modified 22 Feb 2000, Zarro (SM&A/GSFC) - added roll correction

 Contact     : dzarro@solar.stanford.edu


DROT_NAR $SSW/gen/idl/solar/drot_nar.pro
[Previous] [Next]
 Project     : SOHO - CDS

 Name        : DROT_NAR

 Purpose     : Solar rotate NOAA AR pointings to given time

 Category    : planning

 Explanation : 

 Syntax      : IDL> rnar=drot_nar(nar,time,count=count)

 Inputs      : NAR = NOAA AR pointing structure from GET_NAR
               TIME = time to rotate to


 Keywords    : COUNT = # or rotated AR pointings remaining on disk
               ERR = error messages

 CALLS: ***
	ANYTIM2UTC [1], ANYTIM2UTC [2], EXIST, HAVE_TAG, MERGE_STRUCT, PR_SYNTAX, ROT_XY
	anytim [1], anytim [2], anytim [3], anytim [4], anytim [5]
 CALLED BY:
	ssw_fov_context
 History     : Written, 20-NOV-1998,  D.M. Zarro (SM&A)
               Modified, 13 Jan 2005, Zarro (L-3Com/GSFC) - updated NAR
                structure with rotated time.

 Contact     : DZARRO@SOLAR.STANFORD.EDU


DROT_RASTER $SSW/gen/idl/mapping/drot_raster.pro
[Previous] [Next]
 Name:

      DROT_RASTER

 Purpose:

      Differentially rotate solar raster maps

 Category:

      Maps

 Calling sequence:

      map_drot=DROT_RASTER(map [ , t_ref ] [ , REF_MAP=map_ref ] 
                           [ , ROLL=roll_angle , RCENTER=roll_center ]
                           [ , /ADD_RDUR , /VERBOSE , SPHERE=0 , /KEEP ] )

 Inputs:

      map : input map (size of data array: [Nx,Ny])
      t_ref : reference time for rotation (def.: current time)

 Keyword parameters:

      REF_MAP = reference map for rotation and gridding. Its TIME, ROLL 
                ROLL_CENTER values supersede those specified by t_ref, 
                ROLL and RCENTER. Values of FULL_SIZE, SAME_GRID and MEMSAVE 
                (see below) are also ignored. 
      ROLL = final roll angle of the image
      RCENTER = center of rotation (if rolling)
      ADD_RDUR = add to the output map a tag (RDUR) containing an array that 
                 estimates the duration of the rotation interval on a 
                 pixel-by-pixel basis.
      VERBOSE = issue messages warning about off-limb pixels
      SPHERE = keyword passed to ARCMIN2HEL throuth ROT_XY (IN, default: 1; 
               note that the default in ROT_XY is 0)
      KEEP = passed to DROT_COORD: keeps same same P,B0,R values when 
             rotating: use TIME tag as reference epoch for computing these 
             values
      FULL_SIZE = expand image size to fit the entire rotated FOV.
      SAME_GRID = retains old grid (ignored when dealing with an array of maps)
      MEMSAVE = for arrays of maps, do not store the rotated coordinates 
                in a sigle array, but rather regrid images based on estimates 
                of the new positions of the FOV corners. 
      all keywords accepted by INTERP2D, except /REGULAR

 Outputs:

      map_drot : new map (differentially rotated)

 Common blocks:

      None

 Calls: ***
	ADD_PROP, ANYTIM2CAL, ANYTIM2TAI, ARCMIN2HEL, DROT_COORD, GET_ARR_CENTER
	GET_MAP_PROP, GET_MAP_XP, GET_MAP_XRANGE, GET_MAP_YP, GET_MAP_YRANGE, GET_UTC
	HEL2ARCMIN [1], HEL2ARCMIN [2], PB0R, REP_TAG_VALUE, ROT_XY, SOHO_VIEW
	TAG_EXIST [1], TAG_EXIST [2], UNPACK_MAP, USE_EARTH_VIEW, USE_SOHO_VIEW, VALID_MAP
	interp2d [1], interp2d [2], interp2d [3], roll_xy
 Side effects:

      None

 Restrictions:

      - Assumes that rasters are built in the E-W direction or viceversa, 
      not N-S (see DROT_COORD).
      - Mixing maps (including MAP_REF) with both SOHO and EARTH coordinates 
      is not allowed.

 Notes:

      The algorithm employed here (for zero roll angles) is the following:

        1) Differentially rotate coordinates (-> ROT_XY)
        2) Interpolate data on the new (irregular) grid (-> INTERP2D,REGULAR=0)

      On the other hand, the algorithm employed by DROT_MAP (current version 
      as of January 2001) is the following:

        1) Differentially rotate coordinates (-> ROT_XY)
        2) Regrid on a regular grid
        3) Rotate back to initial time (-> ROT_XY)
        4) Interpolate over old grid (-> INTERP2D,REGULAR=1)

      In the latter case, the advantage is the ability of interpolating over 
      a regular grid (faster algorithm); the disadvantage is that two 
      differential rotations are required. Moreover, here Pass 3 cannot be 
      coded in one step, since for rasters there is no unique reference time 
      to rotate back to, and, more important, Pass 2 mixes together pixels 
      taken at different times. 

 Modification history:

      V. Andretta,   26/Jan/1999 - Written
      V. Andretta,   28/Feb/1999 - Added ROLL, RCENTER, REF_MAP, SPHERE 
        keywords
      V. Andretta,   11/Apr/1999 - Added KEEP keyword
      V. Andretta,   20/Apr/1999 - Specified ambiguous keyword "R" in ROT_XY; 
        fixed erroneous definition of ROLL/ROLL_CENTER kwds for arrays of maps
      V. Andretta,   19/Jan/2001 - Informs INTERP2D that after rotation, grid 
        is no longer uniformly spaced (REGULAR=0 was the default in an 
        earlier version of that routine).
        - Fixed a problem with center of grid in the presence of a roll angle.
        - Added SAME_GRID, FULL_SIZE, and MEMSAVE keywords.
        - Set KEEP to 1 by default.
        - Attempts to take round-off errors into account when computing 
          grid parameters.
      V. Andretta,    5/Dec/2001 - Taken into account changes in UNPACK_MAP 
        regarding tag and keyword names specifying roll properties 
        (ROLL -> ROLL_ANGLE, RCENTER -> ROLL_CENTER).

 Contact:

      andretta@na.astro.it


DROT_XY $SSW/gen/idl/mapping/drot_xy.pro
[Previous] [Next]
 Project     : SOHO-CDS

 Name        : DROT_XY

 Purpose     : wrapper around ROT_XY to correct for roll in map

 Category    : imaging

 Explanation : for rolled images, coordinates have to be corrected
               before applying solar rotation correction

 Syntax      : drot_xy,xp,yp,tstart,tend,xr,yr,roll_angle=roll_angle,soho=soho

 Inputs      : XP,YP = input arrays to solar rotate
               TSTART,TEND = start/end time for rotation

 Outputs     : XR,YR = solar rotated coordinate arrays

 Keywords    : ERR = error string
               VERBOSE = print messages
               ROLL_ANGLE = roll angle [+ degrees clockwise]
               ROLL_CENTER = roll center
               VIEW =  set for L1 view
               NO_COPY = don't create new memory copies of xp,yp
               NO_ROLL = don't roll correct

 CALLS: ***
	ANYTIM2TAI, COPY_VAR, EXIST, NUM2STR, PB0R, PR_SYNTAX, ROT_XY, WHERE_OFF_LIMB
	data_chk [1], data_chk [2], roll_xy
 CALLED BY:
	PLOT_MAP, PLOT_MAP2 WARNINGTEMPORARY FIX ONLY FOR 16 bit ZBuffer support
 History     : Written 15 Feb 1999, D. Zarro, SM&A/GSFC

 Contact     : dzarro@solar.stanford.edu


DSCALE $SSW/gen/idl/image/dscale.pro
[Previous] [Next]
 Project     : SOHO - CDS     
                   
 Name        : DSCALE
               
 Purpose     : scale data
               
 Category    : display
               
 Syntax      : IDL> a=dscale(b)

 Inputs      : ARRAY = input array to scale
               
 Outputs     : DARRAY = scaled data

 Keywords    :
               MIN = min data to scale [def=min(array)]
               MAX = max data to scale [def=max(array)]
               MISSING = data to exclude [i.e., set to dmin]
               NO_COPY = destroy input array
               LOG     = use log10 scale
               CRANGE  = actual data range used
               
 CALLS: ***
	DPRINT, EXIST, FILT_DATA, PR_SYNTAX, VALID_RANGE
 CALLED BY:
	CSCALE, PLOT_MAP
 History     : Version 1,  17-Jan-1998,  D M Zarro.  Written
               Modified  24-Nov-1999, Zarro (SM&A/GSFC) - added check
               for unnecessary call to filt_data
               Modified  14-March-2000, Zarro (SM&A/GSFC) - fixed
               bug in use of nmin/nmax
               Modified  30-Oct-2003, Zarro (L-3/GSFC) - fixed
               bug in which values between 0 and 1 were being ignored under
               log scaling

 Contact     : DZARRO@SOLAR.STANFORD.EDU


DSP_STRARR $SSW/gen/idl/widgets/dsp_strarr.pro
[Previous] [Next]
 PROJECT:
      SOHO - CDS

 NAME:
      DSP_STRARR

 PURPOSE:
      To display a string array in a text widget.

 EXPLANATION:

 CALLING SEQUENCE:
      DSP_STRARR, string_array [, font = font, title=title]

 INPUTS:
      strings -- The string array to be displayed.
 OPTIONAL INPUTS:
      None.

 OUTPUTS:
      None.

 OPTIONAL OUTPUTS:
      None.

 KEYWORD PARAMETERS:
      FONT   -- Font to be used for the text widget. Default: fixed
      TITLE  -- Title of the widget window. Default: 'Info Window'
      ONE_COPY -- Set this keyword to let xmanager know that only one copy of
                  this widget is allowed to run at one time.
		XSIZE - x size of widget is max length of text < xsize.  Default is 60.
		YSIZE - y size of widget.  Default is 20.
		NO_BLOCK - 	If set, make widget non-blocking
 CALLS: ***
	DATATYPE [1], DATATYPE [2], DATATYPE [3], DSP_STRARR_EVENT, XMANAGER, XREGISTERED
 CALLED BY:
	text_output
 COMMON BLOCKS:
      None.

 RESTRICTIONS:
      None.

 SIDE EFFECTS:
      None.

 CATEGORY:
      Utilities, widgets

 PREVIOUS HISTORY:

 MODIFICATION HISTORY:
      Written September 2, 1994, by Liyun Wang, NASA/GSFC
		Modified 1-Aug-2000, Kim Tolbert.  Added xsize and ysize keywords.
		Modified 28-Jan-2001, Kim Tolbert.  Added no_block keyword

 VERSION:


DSP_STRUCT $SSW/gen/idl/struct/dsp_struct.pro
[Previous] [Next]
 Project     : SOHO - CDS     
                   
 Name        : DSP_STRUCT
               
 Purpose     : Display contents of a structure as a pulldown menu.
               
 Explanation : A pulldown menu is created representing all the
		levels of "introspection" of the structure variable.

		If a tag in a structure is an array, it's "written out"
		if it's less than SIZE, which by default is set to 30.

		It may be used as a standalone widget or as part of a
		menu. In the latter case, it generates a pulldown button
		that unfolds the structure.
               
 Use         : DSP_STRUCT, DATA_STRUCTURE
    
 Inputs      : DATA_STRUCTURE: Any IDL structure.
               
 Opt. Inputs : None.
               
 Outputs     : None.
               
 Opt. Outputs: None.
               
 Keywords    : TITLE: The title of the menu/button.

		SIZE: Controls the maximum size of arrays to be expanded

		ON_BASE: The base to place the button on if it's supposed
			to be a subpart of another widget hierarchy.
			
		ALONE: Set to make it be a stand-alone widget application.

 Calls       : ***
	DSP_STRUCT_NOOP, DSP_STRUCT_QUIT, XMANAGER, XPL_STRUCT
 CALLED BY:
	QLDS_INVENTORY, SHOW_STRUCT
 Common      : None.
               
 Restrictions: None.
               
 Side effects: 
               
 Category    : CDS, QL, DISPLAY, UTILITY
               
 Prev. Hist. : Requested simultaneously by the Goddard & Rutherford
		people, independent of each other.

 Written     : SVHH, 15 January 1994
               
 Modified    : SVHH, Documentation added March 1994, stand-alone mode added.
		SVHH, 3-May-1995, Version 1.1
			Made arrays unfold the first <SIZE> number
			of elements.
               Version 2, SVHH, 21 November 1996
                       Using XPL_STRUCT for the main job.
 Version     : 2, 21 November 1996


DSPLINE Deluxe SPLINE [1] $SSW/gen/idl/genutil/dspline.pro
[Previous] [Next]
 NAME:
	DSPLINE    (Deluxe SPLINE)

 PURPOSE:
	Perform cubic spline interpolation or linear interpolation

 CATEGORY:
	util, Interpolation - E1.

 CALLING SEQUENCE:
	Result = DSPLINE(X, Y, T [, Sigma])		; Spline
	Result = DSPLINE(X, Y, T [, Sigma],interp=0)	; Linear

 INPUTS:
	X:	Abcissa vector.  The values need not monotonically increase.

	Y:	The vector of ordinate values corresponding to X.

	T:	The vector of abcissae values for which the ordinate is 
		desired.  The values of T need not monotonically increase.

 OPTIONAL INPUT PARAMETERS:
	Sigma:	The amount of "tension" that is applied to the curve.  The 
		default value is 1.0.  If sigma is close to 0, (e.g., .01),
		then effectively there is a cubic spline fit.  If sigma
		is large, (e.g., greater than 10), then the fit will be like
		a polynomial interpolation.
 OPTIONAL INPUT KEYWORDS:
	interp	=0 For linear interpolation
		=1 For spline interpolation (default)

 OUTPUTS:
	DSPLINE returns a vector of interpolated ordinates.
	Result(i) = value of function at T(i).

 CALLS: ***
	DSPLINE, INTERPOL, SPLINE
 COMMON BLOCKS:
	None.

 SIDE EFFECTS:
	None.

 RESTRICTIONS:
	Data must not be string or structure type.

 PROCEDURE:
	Sorts T and abssica and then calls spline or interpol.

 EXAMPLE:
	The commands below show a typical use of DSPLINE:

		X = [2.,3.,4.]  	;X values of original function
		Y = (X-3)^2     	;Make a quadratic
		T = FINDGEN(20)/10.+2 	;Values for interpolated points.
					;twenty values from 2 to 3.9.
		Z = DSPLINE(X,Y,T) 	;Do the interpolation.



 MODIFICATION HISTORY:
	26-Jan-93, J. R. Lemen LPARL, Written
       28-oct-93, JRL, Force T to be a vector when calling sort


DT_TM_MAK [1] $SSW/gen/idl/fund_lib/jhuapl/dt_tm_mak.pro
[Previous] [Next]
 NAME:
       DT_TM_MAK
 PURPOSE:
       Set up a time and date string from reference JD and offset.
 CATEGORY:
 CALLING SEQUENCE:
       s = dt_tm_mak(jd0, [sec])
 INPUTS:
       jd0 = Julian Date of a reference date (0:00 hr).  in
       sec = Seconds since JD0 at 0:00.                  in
 KEYWORD PARAMETERS:
       Keywords:
         FORMAT = format string.  Allows output date to be customized.
         The default format string is 'Y$ n$ d$ h$:m$:s$ w$'
            The following substitutions take place in the format string:
         Y$ = 4 digit year.
         y$ = 2 digit year.
         N$ = full month name.
         n$ = 3 letter month name.
         0n$= month as a 2 digit number.
         d$ = day of month number.
         0d$= 2 digit day of month number.
         doy$= 3 digit day of year.
         W$ = full weekday name.
         w$ = 3 letter week day name.
         h$ = hour.
         m$ = minute.
         s$ = second.
         f$ = fraction of second (see DECIMAL, DENOMINATOR below).
         I$ = time interval in days to 2 decimal places.
         i$ = time interval in days as an integer.
         H$ = time interval in integer hours.
         @  = Carriage Return.
         !  = Line feed.
        DECIMAL=dp  Number of decimal places to use for fraction of
          second (def=3) for f$ in format.  f$ will include dec pt.
        DENOMINATOR=den If given then fraction is listed as nnn/ddd
          ddd is given by den.  Over-rides DECIMAL keyword.  Ex:
          DENOM=1000 might give 087/1000 for f$ in format.
 OUTPUTS:
       S = resulting string.                             out
 CALLS: ***
	JD2YMD [1], JD2YMD [2], JD2YMD [3], MONTHNAMES [1], MONTHNAMES [2], MONTHNAMES [3]
	REPCHR [1], REPCHR [2], REPCHR [3], SECHMS [1], SECHMS [2], SECHMS [3], STRESS [1]
	STRESS [2], STRESS [3], WEEKDAY [1], WEEKDAY [2], WEEKDAY [3], YMD2DN
 CALLED BY:
	TIME_LABEL [1], TIME_LABEL [2], TIME_LABEL [3]
 COMMON BLOCKS:
 NOTES:
       Notes: Some examples: 'h$:m$:s$' -> 09:12:04,
         'd$ n$ Y$' -> 12 Jan 1991, 'd$D h$h' -> 3D 2h, ...
 MODIFICATION HISTORY:
       R. Sterner.  17 Nov, 1988.
       Johns Hopkins University Applied Physics Laboratory.
       RES  20 Apr, 1989 --- 2 digit year.
       R. Sterner, 26 Feb, 1991 --- Renamed from time_date_str.pro
       R. Sterner, 27 Feb, 1991 --- Renamed from tm_dt_str.pro
       R. Sterner, 28 Feb, 1991 --- changed format.
       R. Sterner, 17 Jun, 1992 --- fixed a bug for large sec.
       R. Sterner, 27 Sep, 1993 --- Modified to handle arrays.
       R. Sterner,  2 Dec, 1993 --- Slightly modified def format.
       R. Sterner, 1994 Jun 15 --- Added fraction of second.
       R. Sterner, 1995 Mar  8 --- Added i$ format.
       R. Sterner, 1995 Jul  6 --- Added 0d$ format.
       R. Sterner, 1997 Feb  3 --- Added new keywords 0n$ and doy$ to
       give month as 2 digit number and day of year.
       Matthew Savoie, Systems Technology Associates --- 1997 Feb 5
       fixed a bug by adding floor to: days = long(floor(idays)).
       R. Sterner, 1997 Dec 18 --- Added DDECIMAL=ddec for number of
       decimal places in Day of Year.

 Copyright (C) 1988, Johns Hopkins University/Applied Physics Laboratory
 This software may be used, copied, or redistributed as long as it is not
 sold and this copyright notice is reproduced on each copy made.  This
 routine is provided as is without any express or implied warranties
 whatsoever.  Other limitations apply as described in the file disclaimer.txt.


dummy [1] $SSW/gen/idl/io/dummy.pro
[Previous] [Next]
   Name: dummy

   Purpose: force otherwise empty directory to be included in IDL path
 CALLS:


dummy [2] $SSW/gen/idl/struct/dummy.pro
[Previous] [Next]
   Name: dummy

   Purpose: force otherwise empty directory to be included in IDL path
 CALLS:


dummy [3] $SSW/gen/idl_test/conflicts_resolve/dummy.pro
[Previous] [Next]
   Name: dummy

   Purpose: force otherwise empty directory to be included in IDL path
 CALLS:


dummy [4] $SSW/gen/idl_test/genutil/dummy.pro
[Previous] [Next]
   Name: dummy

   Purpose: force otherwise empty directory to be included in IDL path
 CALLS:


DUMMYPLOTS $SSW/gen/idl/utplot/dummyplots.pro
[Previous] [Next]

 NAME: 
	DUMMYPLOTS

 PURPOSE:
 	This procedure is called by utplot to set up plot system variables without actually drawing
 	a plot.  Used to find out what the exact x limits (x.crange) of the plot will be.


 CATEGORY:
	UTIL, UTPLOT, GRAPHICS, TIME

 CALLING SEQUENCE:
	DUMMYPLOTS, X=X,Y=Y 

 CALLS: ***
	CHECKVAR [1], checkvar [2]
 INPUTS:
       X - array of x values

 OPTIONAL INPUTS:
	Y - array of y values

 OUTPUTS:
       none explicit, only through commons;

 OPTIONAL OUTPUTS:
	none

 KEYWORDS:
	none
 CALLED BY:
	SET_UTPLOT [1], SET_UTPLOT [2]
 COMMON BLOCKS:
	none

 SIDE EFFECTS:
	The !X  structure is changed.

 RESTRICTIONS:
	This procedure is buried deep inside Utplot and should not be called
	independently since it may be changed at any time by the author as unlikely
	as that seems.

 PROCEDURE:
	The plot device is set to 'NULL' and the plot command is given.  The
	!X and !Y variables are changed by the call.  The plot device is set
	back to the input device.

 MODIFICATION HISTORY:
 	Version 1, Written by Richard Schwartz, Feb. 1991
	Version 2, RAS, 14-August-1996, cleaned !p.color problem
	Version 3, richard.schwartz@gsfc.nasa.gov, 14-may-1998, cleared the 
	!p.background problem which was identical to the !p.color problem.


DVOIGT_FIT $SSW/gen/idl/fitting/dvoigt_fit.pro
[Previous] [Next]
 Project:  YOHKOH-BCS

 Name:     DVOIGT_FIT

 Purpose:  Double voigt function fit to line profile

 Syntax:   v=dvoigt_fit(x,y,a,sigmaa,damp=damp)

 Category: Fitting

 Inputs:
       y = data to fit
       x = bin or wavelength

 Outputs:
       background=a(0)+a(1)*x+a(2)*x^2
       a(3) = total intensity (1)
       a(4) = center (1)
       a(5) = doppler width (1)
       a(6) = damping width (1)
       a(7) = intensity (2)
       a(8) = center (2)
       a(9) = width (2)
       a(10) = damping width (2)

 Opt. Outputs:
      sigmaa = sigma errors

 Keywords:
       damp   = damping width
       fixp   = vector of parameters to keep fixed 
                (e.g. fixp=[0,1,3] to fix parameters 1,2 and 4)
       last   = use latest parameter values as new first guesses.
       weights = data weights
       nfree  = number of free parameters
       chi2   = chi^2
       corr   = link matrix

 CALLS: ***
	FUNCT_FIT, GUESS_FIT_PAR
 CALLED BY:
	FIT_SPEC
 Common: None.
               
 Restrictions: None.
               
 Side effects: None.
               
 History:      Version 1,  17-July-1987,  D M Zarro.  Written

 Contact:      DZARRO@SOLAR.STANFORD.EDU