	FUNCTION nlev, key, pos, level=level

	
	slev = 0
	IF (KEYWORD_SET(level)) THEN BEGIN
	  lev = level
	ENDIF ELSE BEGIN
	  lev = 0
	ENDELSE
	j = pos			;initial sea pos

	  l = strpos(key, '[', j)
print,'1st [ ck: ', l
	  IF (l ne -1) THEN BEGIN
	    lev = lev +1
	    slev = lev
	    l2 = strpos(key, '[', l+1)	;next [ pos
print,'2nd [ ck: ', l2
	    IF (l2 ne -1) THEN BEGIN	;found another
	      r = strpos(key, ']', l+1) 
	      IF (r ne -1) THEN BEGIN
		IF (l2 lt r) THEN BEGIN ;found [ before ]
;		  lev = lev + 1
		  slev = lev
		  lev = nlev(key, l+1, level=lev)	; call again?
		  IF (lev gt slev) THEN slev = lev	;save max level
		ENDIF ELSE BEGIN	;found ] before next [
		  IF (lev gt slev) THEN slev = lev	;save max level
		  lev = lev - 1		
		  lev = nlev(key, r+1, level=lev)	; call again?
		  IF (lev gt slev) THEN slev = lev	;save max level
		ENDELSE
	      ENDIF
	    ENDIF 
	  ENDIF

	print, 'lev = ', lev
	
	PRINT, 'max level = ', slev	  

	RETURN, slev
	END
