C TABOPN.FLX C OPEN TABLE FOR RPTTAB. SETS UP COMMON BLOCK /TABDAT/. C C Submitted by: C C R. N. Stillwell C Institute for Lipid Research C Baylor College of Medicine C Houston, Texas 77030 C C (who would be glad to receive comments, suggestions, bug fixes, etc., but C who promises no support whatever). C C Literature reference: C C R. N. Stillwell. A low-overhead laboratory data management system C for the PDP11. Comput. Biomed. Res., 15, 29-38(1982). C C Acknowledgement: C C This software was developed under National Institutes of Health grants C GM-13901 and GM-26611. C C General permission is hereby granted to copy, modify, or distribute this C program, but not for profit. Copyright to this software is and shall C remain in the public domain. C C MOD. 21-JAN-82 TO INCORPORATE OPNTAB IN-LINE AND REMOVE C COMMON BLOCK TABX (C1) C C MOD. 21-JAN-82 TO INITIALIZE IALT C SUBROUTINE TABOPN(NAME,IERR) LOGICAL*1 IERR BYTE NAME(1) C C INCLUDE 'COMMON.FLX' C C Declare common blocks. C COMMON /TABDAT/ NREC,NCOLS,LENREC,OFFSET,IPTRD,TABREC, 1 DATA,IALT,IDUM INTEGER NREC,NCOLS,LENREC,OFFSET,IPTRD(41),TABREC BYTE DATA(1000) LOGICAL*1 IALT,IDUM !1-82 COMMON /LUN/ INLUN,OUTLUN,TILUN,TABLUN,TAILUN,RDFLUN INTEGER INLUN,OUTLUN,TILUN,TABLUN,TAILUN,RDFLUN COMMON /INPUT/ IREC,INPTR,LLINE,INLINE BYTE INLINE(132) DATA MAXIN/132/ COMMON /OUTPUT/ OUTLIN,OUTPTR,OUTEND BYTE OUTLIN (132) INTEGER OUTPTR,OUTEND DATA MAXOUT /132/ COMMON /FILES/ FILNAM,MAXFNM,MODNAM,LFNAM,FLREC, 1 MAXLVL,INLVL,OLDLVL,ULBUF,CARCTL,TERM 1 ,OUTOPN,TBOPEN C C File stack. C BYTE FILNAM(26,5) DATA MAXFNM/26/ REAL*4 MODNAM(5) !9-OCT-81 RAD50 MODULE NAMES INTEGER LFNAM(5) !LENGTHS OF NAMES C !POINTERS TO START OF CURRENT C !OR NEXT RECORD REAL*4 FLREC(5) !9-OCT-81 CHANGED FROM C !RECORD PTR TO BYTE PTR C D INTEGER IFLREC(2,5) D EQUIVALENCE (IFLREC,FLREC) DATA MAXLVL/5/ INTEGER INLVL !CURRENT LEVEL POINTER INTEGER OLDLVL !PREVIOUS LEVEL POINTER INTEGER ULBUF (7) BYTE CARCTL LOGICAL*1 TERM,OUTOPN,TBOPEN C C Scratch memory. Definitions may differ from subroutine to subroutine, C or may use equivalence statements. C COMMON /SCRATC/ SCRATC BYTE SCRATC (576) C C Local declarations. C COMMON/IVAR/ IVAR C INTEGER LEN(40) !LENGTH OF COLUMN (I) (UNUSED) EQUIVALENCE (LEN,SCRATC) C BYTE TABNAM(15) EQUIVALENCE (TABNAM(1),SCRATC(81)) DATA MAXREC /32766/ !NUMBER OF RECORDS FOR DEFINEFILE C IF (IALT) WRITE (TABLUN'TABREC) (DATA(I),I=1,LENREC) !10-81 CALL CLOSE(TABLUN) CALL CLOSE(TAILUN) C IERR = .FALSE. C Set up filename of descriptor file LTNAM = LENGTH(NAME) IF (LTNAM.GT.10.OR.LTNAM.LE.1) IERR = .TRUE. RETURN FIN CALL MVSTR(TABNAM,NAME) CALL MVSTR(TABNAM(LTNAM),'.TAI;1') CALL ASSIGN(TAILUN,TABNAM) REWIND TAILUN READ (TAILUN,ERR=50,END=50) LENREC,NCOLS LENWDS = (LENREC+1)/2 CALL MVSTR(TABNAM(LTNAM),'.TAB;1') CALL ASSIGN(TABLUN,TABNAM) DEFINE FILE TABLUN (MAXREC,LENWDS,U,IVAR) D WRITE (5,9904) NREC,LENREC,NCOLS, IERR D9904 FORMAT (' NREC,LENREC,NCOLS,IERR',3I5,L3) IF (IERR) STOP C C READ INFORMATION FROM SEQUENTIAL FILE (.TAI) C READ (TAILUN,ERR=50,END=50) !IPTRH1,IPTRH2 READ (TAILUN,ERR=50,END=50) !L1TOT,(HEAD1(J),J=1,L1TOT) READ (TAILUN,ERR=50,END=50) !L2TOT,(HEAD2(J),J=1,L2TOT) READ (TAILUN,ERR=50,END=50) !LENTL,(TITLE(J),J=1,LENTL) READ (TAILUN,ERR=50,END=50) !LENSTL,(SUBTL(J),J=1,LENSTL) READ (TAILUN,ERR=50,END=50) LEN,IPTRD READ (TAILUN,ERR=50,END=50) OFFSET !OFFSET,PREF READ (TAILUN,ERR=50,END=50) !ZERO1,ZERO2 READ (TAILUN,ERR=50,END=50) NREC BACKSPACE TAILUN TABREC = 0 IALT = .FALSE. RETURN IF (.FALSE.) 50 IERR = .TRUE. FIN END