/usr/share/gnudatalanguage/astrolib/fxbhelp.pro is in gdl-astrolib 2018.02.16+dfsg-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 | PRO FXBHELP,UNIT
;+
; NAME:
; FXBHELP
; Purpose :
; Prints short description of columns in a FITS binary table.
; Explanation :
; Prints a short description of the columns in a FITS binary table to the
; terminal screen.
; Use :
; FXBHELP, UNIT
; Inputs :
; UNIT = Logical unit number of file opened by FXBOPEN.
; Opt. Inputs :
; None.
; Outputs :
; None.
; Opt. Outputs:
; None.
; Keywords :
; None.
; Calls :
; FXBFIND, FXBFINDLUN, FXPAR
; Common :
; Uses common block FXBINTABLE--see "fxbintable.pro" for more
; information.
; Restrictions:
; The file must have been opened with FXBOPEN.
; Side effects:
; Certain fields may be truncated in the display.
; Category :
; Data Handling, I/O, FITS, Generic.
; Prev. Hist. :
; William Thompson, Feb. 1992, from TBHELP by W. Landsman.
; Written :
; William Thompson, GSFC, February 1992.
; Modified :
; Version 1, William Thompson, GSFC, 12 April 1993.
; Incorporated into CDS library.
; Version 2, William Thompson, GSFC, 12 May 1993.
; Modified to not write to a logical unit number assigned to the
; terminal. This makes it compatible with IDL for Windows.
; Version 3, Wayne Landsman GSFC April 2010
; Remove use of obsolete !ERR system variable
; Version :
; Version 3, April 2010.
;-
;
@fxbintable
ON_ERROR,2
COMPILE_OPT IDL2
;
; Check the number of parameters.
;
IF N_PARAMS() LT 1 THEN MESSAGE,'Syntax: FXBHELP, UNIT'
;
; Get the header.
;
ILUN = FXBFINDLUN(UNIT)
HEADER = HEAD[*,ILUN]
;
; Get the extension name.
;
EXTNAME = FXPAR(HEADER,'EXTNAME', COUNT=N_EXTNAME)
IF N_EXTNAME LE 0 THEN EXTNAME = ''
;
; Print the labels.
;
PRINT,' '
PRINT,'FITS Binary Table: ' + EXTNAME
PRINT,'Table contains ' + STRTRIM(TFIELDS[ILUN],2) + $
' columns, by ' + STRTRIM(NAXIS2[ILUN],2) + ' rows'
PRINT,' '
T_FORMAT = 26 ;Starting column for Format/Size
T_UNITS = 46 ;Starting column for Units
T_NULL = 58 ;Starting column for Null
PRINT,FORMAT="('Col',2X,'Name',T" + STRTRIM(T_FORMAT,2) + $
",'Type Size',T" + STRTRIM(T_UNITS,2) + ",'Units',T" + $
STRTRIM(T_NULL,2) + ",6X,'Null')"
PRINT,' '
;
; Get the values of the information to be printed.
;
FXBFIND,HEADER,'TDIM', COL,TDIM0, N_FOUND,''
FXBFIND,HEADER,'TUNIT',COL,TUNIT0,N_FOUND,''
;
FXBFIND,HEADER,'TNULL',COL,TNULL0,N_FOUND
SNULL = STRARR(TFIELDS[ILUN])
IF N_FOUND GT 0 THEN FOR I = 0,N_ELEMENTS(COL)-1 DO $
SNULL[COL[I]-1] = STRTRIM(TNULL0[I],2)
;
; Print the column information.
;
FOR ICOL = 0,TFIELDS[ILUN]-1 DO BEGIN
CASE FORMAT[ICOL,ILUN] OF
'L': TYPE0 = 'Log'
'A': TYPE0 = 'Asc'
'B': TYPE0 = 'Byt'
'I': TYPE0 = 'Int'
'J': TYPE0 = 'Lng'
'E': TYPE0 = 'Flt'
'D': TYPE0 = 'Dbl'
'C': TYPE0 = 'Cmp'
'M': TYPE0 = 'DbC'
'X': TYPE0 = 'Bit'
ENDCASE
IF MAXVAL[ICOL,ILUN] GT 0 THEN BEGIN
ELEM = MAXVAL[ICOL,ILUN]
IF FORMAT[ICOL,ILUN] EQ 'M' THEN ELEM = ELEM/2
ELEM = "< " + STRTRIM(ELEM,2)
END ELSE IF TDIM0[ICOL] NE '' THEN BEGIN
ELEM = TDIM0[ICOL]
END ELSE BEGIN
ELEM = N_ELEM[ICOL,ILUN]
IF FORMAT[ICOL,ILUN] EQ 'M' THEN ELEM = ELEM/2
ELEM = STRTRIM(ELEM,2)
ENDELSE
PRINT,ICOL+1,TTYPE[ICOL,ILUN],TYPE0,ELEM, $
TUNIT0[ICOL],SNULL[ICOL], FORMAT='(I3,2X,A,T' + $
STRTRIM(T_FORMAT-2,2) + ',2X,A3,2X,A,T' + $
STRTRIM(T_UNITS-2,2) + ',2X,A,T' + $
STRTRIM(T_NULL-2,2) + ',2X,A10)'
ENDFOR
PRINT,' '
;
RETURN
END
|