;+
; PROJECT
;           SolarB EIS
;
; NAME
;           DB_READ_LINELIST_ENTRY
;
; PURPOSE
;           Function to read an EIS linelist database entry, and return an 
;           eis_line_list structure
;
; CATEGORY
;           EIS Technical Planning
;           Database
;
; INPUTS
;           id - line list ID
;
; WRITTEN
;           John A Rainnie, RAL, Dec-2005
;
; HISTORY
;           v0.1 JAR, 15-March-2007
;               Use "eis_open_db" routine instead of doing it manually
;           v0.2 JAR 20-Jun-2007
;               Check entry exists before reading it.
;
;-
;************************************************************************
FUNCTION db_read_linelist_entry , id

; Open database
status = eis_open_db(/LINELIST)

; Check entry exists. If not bail out
constraint = STRJOIN(['ID=',STRCOMPRESS(id,/REMOVE)],/SINGLE)
entry      = dbfind(constraint , /SILENT , count = count)
IF (count NE 1) THEN RETURN , 0


ll                      =         {eis_line_list}
ll.id                   =          dbval(id, 'ID')
ll.write_locked         =          dbval(id, 'WRITE_LOCKED')
ll.acronym              = STRTRIM( dbval(id, 'ACRONYM')     ,2)
ll.title                = STRTRIM( dbval(id, 'TITLE')       ,2)
ll.author               = STRTRIM( dbval(id, 'AUTHOR')      ,2)
ll.date                 = STRTRIM( dbval(id, 'DATE')        ,2)
ll.nLines               =          dbval(id, 'N_LINES')
ll.lines[*].wavelength  =          dbval(id, 'WAVELENGTH')
ll.lines[*].type        =          dbval(id, 'TYPE')
ll.lines[*].split       =          dbval(id, 'SPLIT')
dbclose

;
; OK, now get the line names
;
status = eis_open_db(/LINENAME)

line_names = STRARR(25)

ll.lines[0 ].name       = STRTRIM(dbval(id,'ATOMICNAME_01'),2)
ll.lines[1 ].name       = STRTRIM(dbval(id,'ATOMICNAME_02'),2)
ll.lines[2 ].name       = STRTRIM(dbval(id,'ATOMICNAME_03'),2)
ll.lines[3 ].name       = STRTRIM(dbval(id,'ATOMICNAME_04'),2)
ll.lines[4 ].name       = STRTRIM(dbval(id,'ATOMICNAME_05'),2)
ll.lines[5 ].name       = STRTRIM(dbval(id,'ATOMICNAME_06'),2)
ll.lines[6 ].name       = STRTRIM(dbval(id,'ATOMICNAME_07'),2)
ll.lines[7 ].name       = STRTRIM(dbval(id,'ATOMICNAME_08'),2)
ll.lines[8 ].name       = STRTRIM(dbval(id,'ATOMICNAME_09'),2)
ll.lines[9 ].name       = STRTRIM(dbval(id,'ATOMICNAME_10'),2)
ll.lines[10].name       = STRTRIM(dbval(id,'ATOMICNAME_11'),2)
ll.lines[11].name       = STRTRIM(dbval(id,'ATOMICNAME_12'),2)
ll.lines[12].name       = STRTRIM(dbval(id,'ATOMICNAME_13'),2)
ll.lines[13].name       = STRTRIM(dbval(id,'ATOMICNAME_14'),2)
ll.lines[14].name       = STRTRIM(dbval(id,'ATOMICNAME_15'),2)
ll.lines[15].name       = STRTRIM(dbval(id,'ATOMICNAME_16'),2)
ll.lines[16].name       = STRTRIM(dbval(id,'ATOMICNAME_17'),2)
ll.lines[17].name       = STRTRIM(dbval(id,'ATOMICNAME_18'),2)
ll.lines[18].name       = STRTRIM(dbval(id,'ATOMICNAME_19'),2)
ll.lines[19].name       = STRTRIM(dbval(id,'ATOMICNAME_20'),2)
ll.lines[20].name       = STRTRIM(dbval(id,'ATOMICNAME_21'),2)
ll.lines[21].name       = STRTRIM(dbval(id,'ATOMICNAME_22'),2)
ll.lines[22].name       = STRTRIM(dbval(id,'ATOMICNAME_23'),2)
ll.lines[23].name       = STRTRIM(dbval(id,'ATOMICNAME_24'),2)
ll.lines[24].name       = STRTRIM(dbval(id,'ATOMICNAME_25'),2)
dbclose

RETURN , ll


END
