[sac-dev] SAC format questions

Arthur Snoke snoke at vt.edu
Wed Feb 22 10:52:04 PST 2006


> - Most SAC reading code out there works with version '6' of the header, 
> how common are other versions of the header, does 6 cover the vast 
> majority?

Brian Savage found the attached file and sent it to me.

The short version is that I do not think we have to think about earlier 
versions
-------------- next part --------------
SAC version history

History: In reverse order
*    821001:  Header version 6 installed.
*    801018:  Header version 5 installed.
*    800809:  Fixed bug with headers of files from Octopus.
*    800510:  Header version 4 installed.
*    800105:  Original Prime version.

Version 1: "Original Prime Version"
* I am assuming this as Version 1 as it was not documented in updhdr.c

Version 2: changed the values in each of the header field types
 *   used to represent an undefined state.  Previously they were all
 *   equivalent to the ascii 'UNDEF'.  Now they are:
 *   - FUNDEF = -12345. for floating point fields.
 *   - NUNDEF = -12345 for integer fields.
 *   - IUNDEF = -12345 for selected value fields.
 *   - KUNDEF = 'UNDEF' for alphanumeric fields.
 *   - no value for undefined logical fields.
 * - Version 1 was never supported on the Prime.

 Version 3:
 *   - added FINI in FHDR(40).
 *   - added SB in FHDR(55).
 *   - added SDELTA in FHDR(56).
 *   - added FMEAN in FHDR(57).
 *   - replaced ICOMP in IHDR(4) and HORZO in FHDR(21)
 *     with CMPAZ in FHDR(58), CMPINC in FHDR(59),
 *     KCMPNM in KHDR(1,6), and LPSPOL in LHDR(2).
 *   - possible values of ICOMP were IRADNV=23, ITANNV=24,
 *     IRADEV=25, ITANEV=26, INORTH=27, IEAST=28,
 *     IHORZA=29, IDOWN=30, and IUP=31.

 Version 4:
 *   - added LOVROK in LHDR(3).
 *   - moved NZHOUR from NHDR(5) to NHDR(4).
 *   - moved NZMIN from NHDR(6) to NHDR(5).
 *   - equivalenced NZDTTM array to NZYEAR in NHDR(2).
 *   - changed entire KHDR array.  Before each entry was 24 characters
 *     in length.  Now they may be any multiple of 8 characters in
 *     length.
 *     KHDR was changed to a 1 dimensional array but the length was
 *     not changed.
 *
 *         variable           old_loc   new_loc   new_len
 *         --------           -------   -------   -------
 *         KSTNM             1         1         1
 *         KEVNM             4         2         2
 *         KHOLE             7         4         3
 *         KZTIME            10        7         2
 *         KZDATE            13        9         3
 *         KCMPNM            16       12         3
 *         KUSER             NEW       13        3

Version 5:
 *   - Changed alphanumeric undefined fields from 'UNDEF' to '-12345'.
 *   - Changed all KHDR fields from dimensioned CHAR*8 variables
 *     to non dimensioned variables of correct character length.
 *   - Decreased size of KHOLE from 24 to 8 characters.
 *   - Changed KUSER of length 24 char. to KUSER0, KUSER1, and KUSER2
 *     each of length 8 char. Moved them from KHDR(13) to KHDR(18).
 *   - Deleted KZDATE, KZTIME and KCMPNM.
 *   - Added 13 new alpha fields: KO, KA, KTn (n=0,9), and KF.
 *   - Current arrangement of KHDR is therefore:
 *           variable            old_loc   new_loc   new_len
 *           --------            -------   -------   -------
 *           KSTNM              1         1         1
 *           KEVNM              2         2         2
 *           KHOLE              4         4         1
 *           KO                NEW       5         1
 *           KA                NEW       6         1
 *           KTn               NEW       7-16      1 each
 *           KF                NEW       17        1
 *           KUSER0             13        18        1
 *           KUSER1             14        19        1
 *           KUSER2             15        20        1
 *           KHDR21             EMPTY     21        1
 *           KHDR22             EMPTY     22        1
 *           KHDR23             EMPTY     23        1
 *           KHDR24             EMPTY     24        1
 *   - Moved NSNPTS from NHDR(10) to NHDR(11).
 *   - Moved NPTS from NHDR(1) to NHDR(10).
 *   - Changed size of NZDTTM array from 4 to 6.
 *   - Moved NZDTTM and NZYEAR from NHDR(2) to NHDR(1).
 *   - Moved NZJDAY from NHDR(3) to NHDR(2).
 *   - Moved NZHOUR from NHDR(4) to NHDR(3).
 *   - Moved NZMIN from NHDR(5) to NHDR(4).
 *   - Converted ZSECS in FHDR(5) to NZSEC in NHDR(5) and
 *     NZMSEC in NHDR(6).
 *   - Moved FINI from FHDR(40) to FHDR(21).
	
Version 6:
 *   (1) Added LCALDA.  If .TRUE. distance/azimuth are always
 *       recomputed each time file is read.



More information about the sac-dev mailing list