function merlin_fits_read, file ; Check for L2.1-only input if (strpos(file, 'L2.1.fits') ne -1) then begin lev21present=file_test(file) lev21file=file lev2present=0 endif else begin lev21file=str_replace(file,'level2hao','level2.1hao') lev21file=str_replace(lev21file,'.fits','_L2.1.fits') lev21present=file_test(lev21file) lev2present=file_test(file) endelse ; Read header from level 2.1 file if it exists, else level 2 if lev21present then begin tmp = mrdfits(lev21file, 0, header) index = fitshead2struct(header) output = add_tag(output, index, 'HEADER') endif else begin tmp = mrdfits(file, 0, header) index = fitshead2struct(header) output = add_tag(output, index, 'HEADER') endelse ; Read extensions from Level 2 file if present if lev2present then begin for i = 1, 42 do begin tmp_data = mrdfits(file, i, tmp_header) name = fxpar(tmp_header, 'EXTNAME') name = strcompress(name, /rem) output = add_tag(output, tmp_data, name) endfor endif ; Add extensions from Level 2.1 file to output if present if lev21present then begin for i = 1, 4 do begin tmp_data = mrdfits(lev21file, i, tmp_header) name = fxpar(tmp_header, 'EXTNAME') name = strcompress(name, /rem) output = add_tag(output, tmp_data, name) endfor endif return, output end