; docformat = 'rst'
;+
; Return an integer specifying how verbose the debugging messages
; should be.
;
; 0 none, 1 basics, 2 verbose, 3 ridiculous
; :Returns:
; The returned value is stored in a common block (unless debug is specified)
; :Params:
; debug : in, optional
; If debug is specified, this overrides (but does not change)
; the shared value
; :Keywords:
; set_global : in, optional
; New global debug value
; :History:
; 3 Apr 2008 Written, Anthony Smith
;-
FUNCTION ajs_debug, debug, set_global=set_global
compile_opt idl2
COMMON debug_block, debug_shared
IF n_elements(debug_shared) EQ 0 THEN $
debug_shared = 0
;; Set global value
IF n_elements(set_global) GT 0 THEN $
debug_shared = set_global
;; Override with input value
IF n_elements(debug) EQ 0 THEN $
debug = debug_shared
return, debug
END