Inform me () when using this script or encorporating it in a library.

Source code of max_val.pro:
;+
; NAME:
;       MAX_VAL
; PURPOSE:
;       Get the maximum value of each row in the input 2D matrix as a
;       value in the return array
; CALLING SEQUENCE:
;       max_val, x[,idx=idx]
; EXAMPLES:
;       a = randomn(0,10)
;       b = randomn(10,10)
;       result = max_val(transpose(a),transpose(b))
;           returns an array with the maximum values of a and b
; KEYWORDS:
;       x = input 2 dimensional array
;       idx = the index of column of the maximum value
; MODIFICATION HISTORY:
;       09/09/2004 Written by Eduard Westra
;-
FUNCTION max_val, x, idx=idx, help=help
IF (KEYWORD_SET(HELP)) THEN BEGIN & doc_library,'max_val' & RETURN, 0 & ENDIF
IF (N_ELEMENTS(x) EQ 0) THEN BEGIN & doc_library,'max_val' & RETURN, 0 & ENDIF
IF (size(x, /n_dimensions) GT 2) THEN BEGIN & MESSAGE,/inform, 'Input is not a 2D array' & RETURN, x & ENDIF

n_el = N_ELEMENTS(x)
IF (size(x, /n_dimensions) EQ 1) THEN BEGIN
    IF (n_el MOD 2 EQ 0) THEN BEGIN
        MESSAGE, /inform, 'Input array is 1D, splitting it in two'
        xx = TRANSPOSE(REFORM(x, n_el/2, 2))
    ENDIF ELSE BEGIN
        MESSAGE, /inform, 'Input array is 1D, but odd size. Cannot split!' & RETURN, x
    ENDELSE
ENDIF ELSE BEGIN
    xx = x
ENDELSE

size = SIZE(xx)
ncols = size[1]
nrows = size[2]
type  = size[3]
result = MAKE_ARRAY(nrows, type=type)
result = transpose(xx[0,*])
idx = INTARR(nrows)
FOR i=0, ncols-2 DO BEGIN
    result = result > transpose(xx[i+1,*])
    idx = idx > (i+1)*(result EQ transpose(xx[i+1,*]))
ENDFOR
RETURN, result
END