46 SUBROUTINE getidx(LUGB,LUGI,CINDEX,NLEN,NNUM,IRET)
48 INTEGER,
INTENT(IN) :: LUGB,LUGI
49 INTEGER,
INTENT(OUT) :: NLEN,NNUM,IRET
50 CHARACTER(LEN=1),
POINTER,
DIMENSION(:) :: CINDEX
52 INTEGER,
PARAMETER :: MAXIDX=10000
53 INTEGER,
PARAMETER :: MSK1=32000,msk2=4000
58 character(len=1),
pointer,
dimension(:) :: cbuf
61 TYPE(gindex),
save :: IDXLIST(10000)
67 SUBROUTINE getg2i(LUGI,CBUF,NLEN,NNUM,IRET)
68 CHARACTER(LEN=1),
POINTER,
DIMENSION(:) :: CBUF
69 INTEGER,
INTENT(IN) :: LUGI
70 INTEGER,
INTENT(OUT) :: NLEN,NNUM,IRET
72 SUBROUTINE getg2ir(LUGB,MSK1,MSK2,MNUM,CBUF,NLEN,NNUM,
74 CHARACTER(LEN=1),
POINTER,
DIMENSION(:) :: CBUF
75 INTEGER,
INTENT(IN) :: LUGB,MSK1,MSK2,MNUM
76 INTEGER,
INTENT(OUT) :: NLEN,NNUM,NMESS,IRET
84 IF ( lugb.LE.0 .OR. lugb.GT.9999 )
THEN
86 print *,
' FILE UNIT NUMBER OUT OF RANGE'
87 print *,
' USE UNIT NUMBERS IN RANGE: 0 - 9999 '
92 IF (lugi.EQ.lugb)
THEN
93 IF (
ASSOCIATED( idxlist(lugb)%CBUF ) )
94 &
DEALLOCATE(idxlist(lugb)%CBUF)
95 NULLIFY(idxlist(lugb)%CBUF)
103 IF (
ASSOCIATED( idxlist(lugb)%CBUF ) )
104 &
DEALLOCATE(idxlist(lugb)%CBUF)
105 NULLIFY(idxlist(lugb)%CBUF)
112 IF (
ASSOCIATED( idxlist(lugb)%CBUF ) )
THEN
113 cindex => idxlist(lugb)%CBUF
114 nlen = idxlist(lugb)%NLEN
115 nnum = idxlist(lugb)%NNUM
121 CALL getg2i(lux,idxlist(lugb)%CBUF,nlen,nnum,irgi)
122 ELSEIF(lux.LE.0)
THEN
124 CALL getg2ir(lugb,msk1,msk2,mskp,idxlist(lugb)%CBUF,
125 & nlen,nnum,nmess,irgi)
128 cindex => idxlist(lugb)%CBUF
129 idxlist(lugb)%NLEN = nlen
130 idxlist(lugb)%NNUM = nnum
135 print *,
' ERROR READING INDEX FILE '