Extended IDL Help

This page was created by the IDL library routine mk_html_help. For more information on this routine, refer to the IDL Online Help Navigator or type:

     ? mk_html_help

at the IDL command line prompt.

Last modified: Tue Jan 18 02:08:43 2000.


List of Routines


Routine Descriptions

CW_PICKVALUES

[Next Routine] [List of Routines]
 NAME:
       cw_pickvalues
 PURPOSE:
       pick values from a list of strings
 CATEGORY:
	JPBLib Library Compound widget.
 CALLING SEQUENCE:
	w=cw_pickvalues(parent,uvalue=uvalue,value=value,already_selected=already_selected)
 INPUTS:
     parent           : The ID of the parent widget.
 KEYWORD PARAMETERS:
     uvalue           : User value for the widget
     value            : list of selectable strings
     already_selected : list of already selected strings
 OUTPUTS:
      w               : The ID of the created widget is returned.
 COMMON BLOCKS:
	None.
 SIDE EFFECTS:
    None
 PROCEDURE:
	WIDGET_CONTROL, id, SET_VALUE=value  sets value
	WIDGET_CONTROL, id, GET_VALUE=var    retrieves the selected strings.
 MODIFICATION HISTORY:
    Created by J.P. Bernard on 16/01/00

(See MacintoshHD:IDL Libraries:JPBlib:General:cw_pickvalues.pro)


ERR_BAR

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       err_bar
 CALLING SEQUENCE:
       err_bar,x,y
 PURPOSE:
	overplot x and/or y error bars od size dx and dy
 INPUTS:
       x,y         =points where errors must be plotted
 OPTIONAL INPUT:
    xrms,yrms   = errors (will plot x+-xrms/2., y+-yrms/2.)
	linestyle   = line style for error bars (default=0)
	xbar,ybar   = size of the little bars (% of range)
 OUTPUTS:
    None
 PROCEDURE AND SUBROUTINE USED
	Straightforwrd
 SIDE EFFECTS:
    None
 MODIFICATION HISTORY:
    written JPB Jan-94

(See MacintoshHD:IDL Libraries:JPBlib:General:err_bar.pro)


FIND_IND

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
     find_ind
 PURPOSE:
       finds start and end index of what in etat
 CATEGORY:
       SPM
 CALLING SEQUENCE: 
       deb_fin=find_ind(etat,what[,mask=mask])
 INPUTS:
       etat = input vector (4 bands) (1 or 2 D array)
	what = value to be identified (1 value or 2 elemt set)
 OPTIONAL INPUT PARAMETERS:
 OUTPUTS:
	deb_fin = set indicating begin and end of each section found
	what = is set to indef if what is not found
 OPTIONAL OUTPUT PARAMETERS:
       mask = 1 at begining of connex regions and -1 just after
 COMMON BLOCKS:
 SIDE EFFECTS:
 RESTRICTIONS:
 PROCEDURE:
    
 MODIFICATION HISTORY:
      03-Sep-94, Written by M. Giard and J.P. Bernard

(See MacintoshHD:IDL Libraries:JPBlib:General:find_ind.pro)


GET_TAG_TYPE

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
	get_tag_type
 PURPOSE:
    returns the type of tags in an IDL structure
 CATEGORY:
    JPBLib
 CALLING SEQUENCE: 
	res=get_tag_type(struct,tag_names=tag_names,tag_size=tag_size)
 INPUTS:
    struct  = input structure
 OPTIONAL INPUT PARAMETERS:
 OUTPUTS:
	res        = type of tags
 OPTIONAL OUTPUT PARAMETERS:
    tag_names  = tag names
    tag_size   = tag size
 ACCEPTED KEY-WORDS:
 COMMON BLOCKS:
 SIDE EFFECTS:
 RESTRICTIONS:
 PROCEDURE:

 Uses :
 MODIFICATION HISTORY:
	Written Jan 31 1995 J.P. Bernard, IPAC.

(See MacintoshHD:IDL Libraries:JPBlib:General:get_tag_type.pro)


IJ2INDEX

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       ij2index
 CALLING SEQUENCE:
       index=ij2index(ij,sizes)
 PURPOSE:
       returns the index in a 2D or 3D array of coo
 INPUTS:
       ij    = pixel values for which the index is needed
	   sizes = array dimensions
 OPTIONAL INPUT:
	   None
 OUTPUTS:
	   index
 PROCEDURE AND SUBROUTINE USED
 SIDE EFFECTS:
 MODIFICATION HISTORY:
       written by Jean-Philippe Bernard 09-92
 EXAMPLE:
       a=fltarr(12,15,17)
       a(10,10,5)=1 & a(11,5,16)=1
       ind=where(a NE 0,count)
       ij=index2ij(ind,[12,15,17])
       help,ij
       print,ij
       ind2=ij2index(ij,[12,15,17])
       print,ind,ind2

(See MacintoshHD:IDL Libraries:JPBlib:General:ij2index.pro)


INDEX2IJ

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       index2ij
 CALLING SEQUENCE:
       coor=index2ij(ind,sizes)
 PURPOSE:
       returns the pixel postion of index ind in an array
 INPUTS:
       index = the index for which coordinates are needed (value or 1D)
	   sizes = Array dimensions
 OPTIONAL INPUT:
	   None
 OUTPUTS:
	   coordinates corresponding to the index
 PROCEDURE AND SUBROUTINE USED
       
 SIDE EFFECTS:
 MODIFICATION HISTORY:
       written by Jean-Philippe Bernard 09-92
	   modified JPB 11-Sep-92 for 2D arrays
	   modified JPB to allow complete indexes to be handled
       modified JPB 21-June-94 for large sets of indexes
 EXAMPLE:
       a=fltarr(12,15,17)
       a(10,10,5)=1 & a(11,5,16)=1
       ind=where(a NE 0,count)
       ij=index2ij(ind,[12,15,17])
       help,ij
       print,ij
       ind2=ij2index(ij,[12,15,17])
       print,ind,ind2

(See MacintoshHD:IDL Libraries:JPBlib:General:index2ij.pro)


INTEGRAL

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    integral
 CALLING SEQUENCE:
    res=integral(tab_1,tab_2,v1,v2)
 PURPOSE:
    integrate into tab3(tab2) from v1 to v2
 INPUTS:
    tab_1 = array (1D) of x values
    tab_2 = array (1D) of y values
    v1 = inf value of the integral
    v2 = sup value of the integral
 OPTIONAL INPUT:
	silent = if set routine behaves silently
 OUTPUTS:
    result of the integral
 PROCEDURE AND SUBROUTINE USED
 SIDE EFFECTS:
    None 
 MODIFICATION HISTORY:
    written JPB 09-08-92
    modified July 22nd 1994 to handle intervals < point separations

(See MacintoshHD:IDL Libraries:JPBlib:General:integral.pro)


JPB_PLOTSYM

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
	JPB_PLOTSYM
 PURPOSE:
	Define useful plotting symbols not in the standard !PSYM definitions.
 EXPLANATION:
	After symbol has been defined with PLOTSYM, a plotting command should
	follow with either PSYM = 8 or !P.PSYM = 8 (see USERSYM)

 CALLING SEQUENCE:
	JPB_PLOTSYM, symbol,[ size, /FILL]

 INPUTS:
    symbol = character string giving type of symbol:
        circle, arrow, star, triangle, square
	Arrows are defined such that their base begins at their origin.

 OPTIONAL INPUTS:
	size   = Size of the plotting symbol in multiples of the default size
		    (default PSIZE=1).  Does not need to be an integer

 OPTIONAL INPUT KEYWORD:
	fill     = Generate filled symbols, if set (default=0)
    rotation = rotation angle around the center.
 OUTPUTS:
	None

 EXAMPLES:
    jpb_plotsym,'triangle',2,/fill,rotation=45.
	plot,[0,1,2],[0,1,2],PSYM=8
 METHOD:
	Appropriate X,Y vectors are used to define the symbol and passed to the
	usersym.pro
     Uses usersym.pro
 REVISION HISTORY
    written J.Ph. Bernard Aug 31 1998 (from plotsym, by W. Landsman)

(See MacintoshHD:IDL Libraries:JPBlib:General:jpb_plotsym.pro)


LA_ADD

[Previous Routine] [Next Routine] [List of Routines]
 NAME: LA_ADD
 PURPOSE:
          add two cubes, or a scalar to every element of a cube, or
          an "image" to every "image" of a cube or every element of a vector
          to every "image" of a cube taking into
          account undefined values (undef+undef=undef, undef+def=undef)
          same function as ICCRED2 add_cube_cube, add_cube_constant and
          add_cube_image and add_cube_vector, with possibility of a 4D cube
 CATEGORY: I-5-b
 CALLING SEQUENCE: 
   var_out = LA_ADD(var1, var2)
 INPUTS: 
   var1,   -- array of arithmetical type (byte, int, long, float or double)
   var2,   -- either scalar or array with compatible dimension
 OPTIONAL INPUT PARAMETERS:
   none 
 KEYED INPUTS:
   none 
 OUTPUTS:
   var_out -- array of same dimension than var1 with most precise type
 OPTIONAL OUTPUT PARAMETERS:
   none 
 EXAMPLE:
   ICE> print, la_add([1, 0, 2, 1], 6)
          7       6       8       7
   ICE> print, la_add([1, 0, 2, 1], [6,0,0,0])
          7       0       2       1
   ICE> print, la_add([[1, 0, 0],[ 2, 1, 0]], [6,0])
          7       6      6
          2       1      0
   ICE> print, la_add([[1, 0, 0],[ 2, 1, 0]], [6,0,0])
          7       6       6
          2       1       0
 ALGORITHM:
   check var2 size
   if var1 and var2 have same size and dimensions then add arrays value by
      value
   if var2 is a scalar then add var2 to every value of var1
   if var2 is a vector of n elements and var1 an array with n elements in
      most internal dimension, then add var2(i) to every "plane" of var1
   if var2 has one dimension less than var1, then add var2 to every "plane" of
      var1 
 DEPENDENCIES:
   none 
 COMMON BLOCKS: 
   SESSION_BLOCK, SESSION_MODE, ERROR_CURRENT, STATUS_BOOL 
 SIDE EFFECTS:
   none 
 RESTRICTIONS:
   no overflow check
 CALLED PROCEDURES AND FUNCTIONS:
   LA_UNDEF
 MODIFICATION HISTORY: 
    6-Jul-1994  written with template_gen        FV IAS
    3-Oct-1994  V.1.0 for configuration control  FV IAS

(See MacintoshHD:IDL Libraries:JPBlib:General:la_add.pro)


LA_MEAN

[Previous Routine] [Next Routine] [List of Routines]
 NAME: LA_MEAN
 PURPOSE: 
       Return the mean value of the defined values of var1.
       If mask given, used only non masked values
       Mask should be standard SCD mask (good values are pointed by 0)
 CATEGORY: I-5-c
 CALLING SEQUENCE: 
   output=LA_MEAN(var1, dim=dim, mask=mask)
 INPUTS: 
   var1      -- array
 OPTIONAL INPUT PARAMETERS:
   none
 KEYED INPUTS:
   dim       -- dimension of required result \\
                0 : return mean of every elementary defined values (default)\\
                1 : return vector with mean values of every "planes". (with as
                many elements as in the last dimension) \\
               -1 : return mean "plane" (one dimension less than var1)
                (ICCRED2 function mean_cube for a 3D var1)
   mask      -- byte array : dimensions should be
                if dim eq 0 : same as var1
                if dim eq 1 : same as var1 but possibly 1 on last one
                if dim eq -1 : same as var1 or vector
                should follow SCD mask conventions : good values are 0 masked
                values.
 OUTPUTS: 
    output   -- float (or double) : mean 
 OPTIONAL OUTPUT PARAMETERS:
    none 
 EXAMPLE:
   ICE> print, la_mean([[1, 2], [0, 3]])
          1.50000
   ICE> print, la_mean([[1, 2], [0, 3]], /dim)
          1.50000      1.50000
   ICE> print, la_mean([[1, 2], [0, 3]], dim=-1)
          0.500000      2.50000
 ALGORITHM:
   straightforward 
 DEPENDENCIES:
   none 
 COMMON BLOCKS: 
    SESSION_BLOCK, SESSION_MODE, ERROR_CURRENT, STATUS_BOOL 
 SIDE EFFECTS:
   none 
 RESTRICTIONS:
      WARNING: Overflow not checked 
 CALLED PROCEDURES AND FUNCTIONS:
      LA_UNDEF 
 MODIFICATION HISTORY: 
    8-Jul-1994  written with template_gen                  FV IAS
    3-Oct-1994  V.1.0 for configuration control            FV IAS
   13-Feb-1994  add KEY mask                       FV IAS

(See MacintoshHD:IDL Libraries:JPBlib:General:la_mean.pro)


LA_MEDIAN

[Previous Routine] [Next Routine] [List of Routines]
 NAME: LA_MEDIAN
 PURPOSE:
   compute median value without taking into account undefined value
   If mask given extract median only inside good values of mask  
 CATEGORY: I-5-c
 CALLING SEQUENCE: 
   output=LA_MEDIAN(var1, dim=dim, mask=mask)
 INPUTS: 
   var1
 OPTIONAL INPUT PARAMETERS:
   none 
 KEYED INPUTS: 
   dim     -- dimension of the result 
                0 : return median of every elementary defined values (default)
                1 : return vector with median values of every "planes". (with
                    as many elements as in the last dimension)
               -1 : return median "plane" (one dimension less than var1)
   mask    -- byte array : dimensions should be
                if dim eq 0 : same as var1
                if dim eq 1 : same as var1 but possibly 1 on last one
                if dim eq -1 : same as var1 or vector 
              should follow SCD mask conventions : good values are 0 masked
              values.
 OUTPUTS: 
  output   -- median value 
 OPTIONAL OUTPUT PARAMETERS:
  none 
 EXAMPLE:
  ICE> print, la_median([[1, 2], [0, 3]])
         3
  ICE> print, la_median([[1, 2], [0, 3]], dim=1)
             2           3
  ICE> print, la_median([[1, 2], [0, 3]], dim=-1)
             1           3
 ALGORITHM:
   straightforward 
 DEPENDENCIES:
   none 
 COMMON BLOCKS: 
    SESSION_BLOCK, SESSION_MODE, ERROR_CURRENT, STATUS_BOOL 
 SIDE EFFECTS:
   none 
 RESTRICTIONS: 
   the routine la_undef should be up to date
 CALLED PROCEDURES AND FUNCTIONS: 
    LA_UNDEF
 MODIFICATION HISTORY: 
    1-Aug-1994  written with template_gen          FV IAS
    3-Oct-1994  V.1.0 for configuration control    FV IAS
   13-Feb-1994  add KEY mask                       FV IAS

(See MacintoshHD:IDL Libraries:JPBlib:General:la_median.pro)


LA_TOT

[Previous Routine] [Next Routine] [List of Routines]
 NAME: LA_TOT
 PURPOSE: 
       Return  sum of defined values of var1.
       If mask given, used only non masked values
       Mask should be standard SCD mask (good values are pointed by 0)
       (like IDL function total)
 CATEGORY: I-5-c
 CALLING SEQUENCE: 
   output=LA_TOT(var1, dim=dim, mask=mask)
 INPUTS: 
   var1      -- array
 OPTIONAL INPUT PARAMETERS:
   none
 KEYED INPUTS:
   dim       -- dimension of required result \\
                0 : return sum of every elementary defined values (default)\\
                1 : return vector with sum of every "planes". (with as
                many elements as in the last dimension) \\
               -1 : return sum "plane" (one dimension less than var1)
                (ICCRED2 function mean_cube for a 3D var1)
   mask      -- byte array : dimensions should be
                if dim eq 0 : same as var1
                if dim eq 1 : same as var1 but possibly 1 on last one
                if dim eq -1 : same as var1 or vector
                should follow SCD mask conventions : good values are 0 masked
                values.
 OUTPUTS: 
    output   -- real : total 
 OPTIONAL OUTPUT PARAMETERS:
    none 
 EXAMPLE:
   ICE> print, la_tot([[1, 2], [0, 3]])
          6.
   ICE> print, la_tot([[1, 2], [0, 3]], /dim)
          3.            3.
   ICE> print, la_tot([[1, 2], [0, 3]], dim=-1)
          1.            5.
 ALGORITHM:
   straightforward 
 DEPENDENCIES:
   none 
 COMMON BLOCKS: 
    SESSION_BLOCK, SESSION_MODE, ERROR_CURRENT, STATUS_BOOL 
 SIDE EFFECTS:
   none 
 RESTRICTIONS:
      WARNING: Overflow not checked 
 CALLED PROCEDURES AND FUNCTIONS:
      LA_UNDEF 
 MODIFICATION HISTORY: 
   7-Jul-1995  written from LA_MEAN                 FV IAS

(See MacintoshHD:IDL Libraries:JPBlib:General:la_tot.pro)


LA_UNDEF

[Previous Routine] [Next Routine] [List of Routines]
 NAME: LA_UNDEF
 PURPOSE:
   return value considered as undefined for a given type   
   if type is outside the range 1-5, return the empty string 
 CATEGORY: I-5-a
 CALLING SEQUENCE: 
   output=LA_UNDEF(type)
 MANDATORY INPUTS:
   none 
 OPTIONAL INPUT PARAMETERS:
   type         -- integer with IDL scalar type (1 to 5), default is 2
 KEYED INPUTS:
   none 
 OUTPUTS: 
   output       -- undefined value
 OPTIONAL OUTPUT PARAMETERS:
   none 
 EXAMPLE:
   ICE> help, la_undef()
       INT       =   -32768
 ALGORITHM:
   straightforward 
 DEPENDENCIES:
   none 
 COMMON BLOCKS: 
    SESSION_BLOCK, SESSION_MODE, ERROR_CURRENT, STATUS_BOOL           
 SIDE EFFECTS:
   none 
 RESTRICTIONS:
   do not accept IDL types : complex and structure (6 and 8)
 CALLED PROCEDURES AND FUNCTIONS:
   none 
 MODIFICATION HISTORY: 
    18-Apr-1994  written with template_gen         FV IAS
     5-Oct-1994  V.1.0 for configuration control   FV IAS

(See MacintoshHD:IDL Libraries:JPBlib:General:la_undef.pro)


MJD2SAMPLENUM

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    mjd2samplenum
 CATEGORY:
    Archeops Data Processing
 PURPOSE:
    transforms archeops reduced julian dates into sample numbers
 CALLING SEQUENCE:
    samplenum=mjd2samplenum(mjd[,tu=])
 INPUT:
    mjd          : Julian day(s)
 OUTPUT:
    samplenum    : sample number(s)
 OPTIONAL INPUT:
    None
 INPUT KEYWORDS:
    None
 OUTPUT KEYWORDS:
    tu           : UT(s)
 SIDE EFFECTS:
    None
 EXAMPLES:
    samplenum=mjd2samplenum(mjd,tu=)
 RESTRICTIONS:
    Valid For Trapani Flight only
 PROCEDURES CALLED:
    None
 REVISION HISTORY:
    Created by Bernard Jean-Philippe 13/Nov/1999 @ 23:42:04
    Modified by *Name*  *date*  *purpose*

(See MacintoshHD:IDL Libraries:JPBlib:General:mjd2samplenum.pro)


MY_CREATE_STRUCT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
	MY_CREATE_STRUCT
 PURPOSE:
	Create an IDL structure from a list of tag names and dimensions
 EXPLANATION:
	Dynamically create an IDL structure variable from list of tag names 
	and data types of arbitrary dimensions.   Useful when the type of
	structure needed is not known until run time.

 CALLING SEQUENCE:
	MY_CREATE_STRUCT, STRUCT, strname, tagnames, tag_descript, [ DIMEN = ,
				/CHATTER, /NODELETE ]

 INPUTS:
	STRNAME -   name to be associated with structure (string)
		Must be unique for each structure created.   Set
		STRNAME = '' to create an anonymous structure

	TAGNAMES -  tag names for structure elements
		(string or string array)

	TAG_DESCRIPT -	String descriptor for the structure, containing the
		tag type and dimensions.  For example, 'A(2),F(3),I', would
		be the descriptor for a structure with 3 tags, strarr(2), 
		fltarr(3) and Integer scalar, respectively.
		Allowed types are 'A' for strings, 'B' or 'L' for unsigned byte 
		integers, 'I' for integers, 'J' for longword integers, 
		'F' or 'E' for floating point, 'D' for double precision
		'C' for complex, and 'M' for double complex
		Uninterpretable characters in a format field are ignored.

		For vectors, the tag description can also be specified by
		a repeat count.  For example, '16E,2J' would specify a 
		structure with two tags, fltarr(16), and lonarr(2)

 OPTIONAL KEYWORD INPUTS:
	DIMEN -	   number of dimensions of structure array (default is 1)

       CHATTER -  If /CHATTER is set, then CREATE_STRUCT will display
                  the dimensions of the structure to be created, and prompt
                  the user whether to continue.  Default is no prompt.

       NODELETE - If /NODELETE is set, then the temporary file created
                  CREATE_STRUCT will not be deleted upon exiting.   See below

 OUTPUTS:
	STRUCT -   IDL structure, created according to specifications 

 EXAMPLES: 

       IDL> my_create_struct, new, 'name',['tag1','tag2','tag3'], 'D(2),F,A(1)'

       will create a structure variable new, with structure name NAME

       To see the structure of new:

       IDL> help,new,/struc
       ** Structure NAME, 3 tags, 20 length:
          TAG1            DOUBLE         Array(2)
          TAG2            FLOAT          0.0
          TAG3            STRING         Array(1)

 PROCEDURE:
	Generates a temporary procedure file using input information with
       the desired structure data types and dimensions hard-coded.
       This file is then executed with CALL_PROCEDURE.

 NOTES:
	A temporary .pro file is created to define structure in the default
	directory, so writing privileges are required.   

	At present, can fail if a tag_name cannot be used as a proper
	structure component definition, e.g., '0.10' will not
	work, but a typical string like 'RA' or 'DEC' will.
	A partial workaround checks for characters '\' and '/'
	and '.' and converts them to '_'. in a tag_name.

       Note that 'L' now specifies a LOGICAL (byte) data type and not a
       a LONG data type for consistency with FITS binary tables

 RESTRICTIONS:
	The name of the structure must be unique, for each structure created.
	Otherwise, the new variable will have the same structure as the 
	previous definition (because the temporary procedure will not be
	recompiled).  ** No error message will be generated  ***

 SUBROUTINES CALLED:
	GETTOK(), OS_FAMILY(), REPCHR() 

 MODIFICATION HISTORY:
	Version 1.0 RAS January 1992
       Modified 26 Feb 1992 for Rosat IDL Library (GAR)
	Modified Jun 1992 to accept arrays for tag elements -- KLV, Hughes STX
	Accept anonymous structures W. Landsman  HSTX    Sep. 92
	Accept 'E' and 'J' format specifications   W. Landsman Jan 93
	'L' format now stands for logical and not long array
	Accept repeat format for vectors        W. Landsman Feb 93
	Accept complex and double complex (for V4.0)   W. Landsman Jul 95
	Work for long structure definitions  W. Landsman Aug 97
    Modified 27/12/98 JPhB to use resolve_routine.

(See MacintoshHD:IDL Libraries:JPBlib:General:my_create_struct.pro)


MY_CURVEFIT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
	my_curvefit

 PURPOSE:
	Non-linear least squares fit to a function of an arbitrary 
	number of parameters.  The function may be any non-linear 
	function where the partial derivatives are known or can be 
	approximated.

 CATEGORY:
	E2 - Curve and Surface Fitting.

 CALLING SEQUENCE:
	Result = my_curvefit(X, Y, W, A, SIGMAA,fail, FUNCTION_NAME = name
		niter=,/plot_it,chisqr=,/silent,to_be_fit=)

 INPUTS:
	X = row vector of independent variables.

	Y = row vector of dependent variable, the same length as x.

	W = row vector of weights, the same length as x and y.
		For no weighting,
		w(i) = 1.0.
		For instrumental weighting,
		w(i) = 1.0/y(i), etc.

	A = vector, with as many elements as the number of terms, that 
	    contains the initial estimate for each parameter.  If A is double-
	    precision, calculations are performed in double precision, 
	    otherwise they are performed in single precision.

 KEYWORDS:
	function_name = Name of the function (actually, a procedure) to 
	                fit. default "FUNCT".
			It must be written as described under RESTRICTIONS.
	niter = Max number of iterations. Default 20
	chisqr = chisqr to be reached. Default 1E-3
	to_be_fit = parameters to be optimized if to_be_fit(i)=1. Default all
	plot_it = to plot the data, fit, weigth, ... and the fit in the params
	silent = to make the routine silent

 OUTPUTS:
	fail = 1 if failed, 0 if succedded (ie reached chisqr before Niter)
	       Achieved values are returned even if fail=1
	A =    vector of parameters containing fit.
	result = The fit over X values

 OPTIONAL OUTPUT PARAMETERS:
	Sigmaa =  Vector of standard deviations for the parameters in A.
	
 COMMON BLOCKS:
	NONE.

 SIDE EFFECTS:
	None.

 RESTRICTIONS:
	The function to be fit must be defined and called FUNCT,
	unless the FUNCTION_NAME keyword is supplied.  This function,
	(actually written as a procedure) must accept values of
	X (the independent variable), and A (the fitted function's
	parameter values), and return F (the function's value at
	X), and PDER (a 2D array of partial derivatives).
	For an example, see FUNCT in the IDL User's Libaray.
	A call to FUNCT is entered as:
	FUNCT, X, A, F, PDER
 where:
	X = Vector of NPOINT independent variables, input.
	A = Vector of NTERMS function parameters, input.
	F = Vector of NPOINT values of function, y(i) = funct(x(i)), output.
	PDER = Array, (NPOINT, NTERMS), of partial derivatives of funct.
		PDER(I,J) = Derivative of function at ith point with
		respect to jth parameter.  Optional output parameter.
		PDER should not be calculated if the parameter is not
		supplied in call.

 PROCEDURE:
	Copied from "CURFIT", least squares fit to a non-linear
	function, pages 237-239, Bevington, Data Reduction and Error
	Analysis for the Physical Sciences.

	"This method is the Gradient-expansion algorithm which
	combines the best features of the gradient search with
	the method of linearizing the fitting function."

	Iterations are performed until the chi square changes by
	only 0.01% or until Niter iterations have been performed.

	The initial guess of the parameter values should be
	as close to the actual values as possible or the solution
	may not converge.

	Undefined values (indef=-32768.) in Y are not taken into account

 MODIFICATION HISTORY:
	Written, DMS, RSI, September, 1982.
	Does not iterate if the first guess is good.  DMS, Oct, 1990.
	Added CALL_PROCEDURE to make the function's name a parameter.
		(Nov 1990)
	12/14/92 - modified to reflect the changes in the 1991
		   edition of Bevington (eq. II-27) (jiy-suggested by CreaSo)
	Adapted by JPB, to output a failure parameter, input a goal chisqr,
	restrict fit to certain parameters

(See MacintoshHD:IDL Libraries:JPBlib:General:my_curvefit.pro)


READ_CATALOG

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       read_catalog
 CALLING SEQUENCE:
       list=read_catalog(filename)
 PURPOSE:
       read an IPAC ASCII format table.
       The content of the table is put the result into an IDL structure.
       The name and types of the structure tags corresponds to that of the columns
 INPUTS:
       filename = file name
 OPTIONAL INPUT:
       silent   = If set, behaves silently.
 OUTPUTS:
	   list = output structure.
 OPTIONAL OUTPUT:
       tagnames = structure tagnames
 PROCEDURE AND SUBROUTINE USED
       my_create_struct, remove_tmp_files
	   round
 SIDE EFFECTS:
       ?
 MODIFICATION HISTORY:
       written by Jean-Philippe Bernard 23-Jul-93 @ IPAC
       Modified JPB 30-Jul-98 to include /silent and missing free_lun
 EXAMPLE:
       file=!jpblib_example_dir+'xcat_example.xcat'
       st=read_xcat(file)
       help,st,/str
       file_out=!jpblib_example_dir+'xcat_output.xcat'
       write_xcat,st,file_out

(See MacintoshHD:IDL Libraries:JPBlib:General:read_catalog.pro)


READ_XCAT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       read_xcat
 CALLING SEQUENCE:
       list=read_xcat(filename)
 PURPOSE:
       read an IPAC ASCII format table.
       The content of the table is put the result into an IDL structure.
       The name and types of the structure tags corresponds to that of the columns
 INPUTS:
       filename = file name
 OPTIONAL INPUT:
       silent   = If set, behaves silently.
 OUTPUTS:
	   list = output structure.
 OPTIONAL OUTPUT:
       tagnames = structure tagnames
 PROCEDURE AND SUBROUTINE USED
       my_create_struct, remove_tmp_files
	   round
 SIDE EFFECTS:
       ?
 EXAMPLE:
       file=!jpblib_example_dir+'xcat_example.xcat'
       st=read_xcat(file)
       help,st,/str
       file_out=!jpblib_example_dir+'xcat_output.xcat'
       write_xcat,st,file_out
 MODIFICATION HISTORY:
       written by Jean-Philippe Bernard 23-Jul-93 @ IPAC
       Modified JPB 30-Jul-98 to include /silent and missing free_lun
       Modified JPB 02-Dec-98 to get number of lignes right
       Modified JPB 27/12/98 to remove random name.
       Modified JPB 16/06/99 to disregard lines starting with '\' or ';'

(See MacintoshHD:IDL Libraries:JPBlib:General:read_xcat.pro)


SAMPLENUM2MJD

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
    samplenum2mjd
 CATEGORY:
    Archeops Data Processing
 PURPOSE:
    transforms archeops samplenumber into reduced julian dates
 CALLING SEQUENCE:
    mjd=samplenum2mjd(samplenum[,tu=])
 INPUT:
    samplenum    : samplenumber(s)
 OUTPUT:
    mjd          : Julian day(s)
 OPTIONAL INPUT:
    None
 INPUT KEYWORDS:
    None
 OUTPUT KEYWORDS:
    tu           : UT(s)
 SIDE EFFECTS:
    None
 EXAMPLES:
    mjd=samplenum2mjd(samplenum,tu=tu)
 RESTRICTIONS:
    Valid For Trapani Flight only
 PROCEDURES CALLED:
    None
 REVISION HISTORY:
    Created by Bernard Jean-Philippe 13/Nov/1999 @ 23:42:04
    Modified by *Name*  *date*  *purpose*

(See MacintoshHD:IDL Libraries:JPBlib:General:samplenum2mjd.pro)


SELECT_FROM_LIST

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       select_from_list
 CALLING SEQUENCE:
       res=select_from_list(list,already_selected=already_selected)
 PURPOSE:
       returns the user selection from a list of strings (widget)
 INPUTS:
       list    = input list to choose from
 OPTIONAL INPUT:
	   already_selected = list of already selected strings
 OUTPUTS:
	   res       = list of selected strings
 PROCEDURE AND SUBROUTINE USED
 SIDE EFFECTS:
 EXAMPLE:
 MODIFICATION HISTORY:
       written by Jean-Philippe Bernard 17/01/00

(See MacintoshHD:IDL Libraries:JPBlib:General:select_from_list.pro)


STRPOSMULTI

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   STRPOSMULTI
 PURPOSE: 
   extract substring successive positions within a string, using strpos
 CATEGORY: I-4-a
 CALLING SEQUENCE: 
   index=STRPOSMULTI(s, subs [, cpt] )
 INPUTS: 
   s      -- string : initial string
   subs   -- string : substring, if '', return 0 and cpt eq 1
 OPTIONAL INPUT PARAMETERS: 
   none
 KEYED INPUTS: 
   none
 OUTPUTS: 
   index  -- long array : positions (if none -1)
 OPTIONAL OUTPUT PARAMETERS: 
   cpt    -- long : number of psoitions
 EXAMPLE: 
 ALGORITHM: 
   straightforward loop using strpos
 DEPENDENCIES: 
   none
 COMMON BLOCKS: 
 SIDE EFFECTS: 
   none
 RESTRICTIONS: 
 CALLED PROCEDURES AND FUNCTIONS: 
   none
 MODIFICATION HISTORY: 
    2-Nov-1995  written with template_gen                  FV IAS
    2-Oct-1997  Adapted by JPB to work outside ICE !       JPB IAS

(See MacintoshHD:IDL Libraries:JPBlib:General:strposmulti.pro)


STR_DMS

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       str_dms
 CALLING SEQUENCE:
       res=str_dms(val[,/hours][,/dms])
 PURPOSE:
       output val in hh:mm:ss or dd:'':"" format
 INPUTS:
       val = value to be converted
 OPTIONAL INPUT:
	   /hours    : hh:mm:ss format
	   /dms       : dd:'':"" format
 OUTPUTS:
	   converted string
 PROCEDURE AND SUBROUTINE USED
       
 SIDE EFFECTS:
 EXAMPLE:
 MODIFICATION HISTORY:
       written by Jean-Philippe Bernard (?) 09-92

(See MacintoshHD:IDL Libraries:JPBlib:General:str_dms.pro)


STR_FORM

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       str_form
 CALLING SEQUENCE:
       res=str_dms(val[,/hours][,/dms])
 PURPOSE:
       Inverse of str_sep of user the idl user library.
 INPUTS:
       arr = array of strings
       char= character to be inserted in the result
 OPTIONAL INPUT:
	   None
 OUTPUTS:
	   res = converted string
 PROCEDURE AND SUBROUTINE USED
       
 SIDE EFFECTS:
 EXAMPLE:
 MODIFICATION HISTORY:
       written by Jean-Philippe Bernard (?) 09-92

(See MacintoshHD:IDL Libraries:JPBlib:General:str_form.pro)


STR_HMS

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       str_hms
 CALLING SEQUENCE:
       res=str_hms(val[,/degrees])
 PURPOSE:
       output val in hh:mm:ss or dd:'':"" format
 INPUTS:
       val = value to be converted
 OPTIONAL INPUT:
	   /degrees       : for dd:'':"" format
 OUTPUTS:
	   converted string
 PROCEDURE AND SUBROUTINE USED
       
 SIDE EFFECTS:
 EXAMPLE:
 MODIFICATION HISTORY:
       written by Jean-Philippe Bernard (?) 09-92

(See MacintoshHD:IDL Libraries:JPBlib:General:str_hms.pro)


WHICH_PRO

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
   which_pro
 PURPOSE:
       prints which routine(s) is compiled in the !path
 CATEGORY:
       JPBlib
 CALLING SEQUENCE: 
       str=which_pro(routine_name)
 INPUTS:
       routine_name = name of an IDL routine
 OPTIONAL INPUT PARAMETERS:
 OUTPUTS:
	   str = string giving the full path toward the routine(s)
 OPTIONAL OUTPUT PARAMETERS:
 COMMON BLOCKS:
 SIDE EFFECTS:
 RESTRICTIONS:
 PROCEDURE:
    
 MODIFICATION HISTORY:
      Written by J.P. Bernard, 17/00/00

(See MacintoshHD:IDL Libraries:JPBlib:General:which_pro.pro)


WRITE_XCAT

[Previous Routine] [Next Routine] [List of Routines]
 NAME:
       write_xcat
 CALLING SEQUENCE:
       write_xcat,struct,filename
 PURPOSE:
       write an IDL structure into an ASCII IPAC format file
 INPUTS:
       filename = file name
       struct   = IDL structure
 OPTIONAL INPUT:
       None
 OUTPUTS:
	   None
 PROCEDURE AND SUBROUTINE USED

 SIDE EFFECTS:
       The file is created
 MODIFICATION HISTORY:
       written by Jean-Philippe Bernard 16-May-97 @ IAS
 EXAMPLE:
       file=!jpblib_example_dir+'xcat_example.xcat'
       st=read_xcat(file)
       help,st,/str
       file_out=!jpblib_example_dir+'xcat_output.xcat'
       write_xcat,st,file_out

(See MacintoshHD:IDL Libraries:JPBlib:General:write_xcat.pro)


XHI2_ERROR

[Previous Routine] [List of Routines]
 NAME:
	xhi2_error
 PURPOSE:
    
 CATEGORY:
    JPBLib
 CALLING SEQUENCE: 
	xhi2_error,xhi2,values,errors,Ndata,conf_lev=conf_lev,itmax=itmax,dxhi=dxhi
 INPUTS:
    xhi2 = array of xhi2 values
    Ndata = Number of independant data points
 OPTIONAL INPUT PARAMETERS:
    conf_lev = confidence level requiered (default 68.3 %)
    it_max   = 
 OUTPUTS:
    values  = values corresponding to min of xhi2
    errors  = error on the values
 OPTIONAL OUTPUT PARAMETERS:
    dxhi    = xhi increase corresponding to the requested confidence level
 ACCEPTED KEY-WORDS:
 COMMON BLOCKS:
 SIDE EFFECTS:
 RESTRICTIONS:
 PROCEDURE:
 MODIFICATION HISTORY:
	Written Jan 31 1995 J.P. Bernard, IPAC.

(See MacintoshHD:IDL Libraries:JPBlib:General:xhi2_error.pro)