91 SUBROUTINE alarqg( PATH, NMATS, DOTYPE, NTYPES, NIN, NOUT )
100 INTEGER nin, nmats, nout, ntypes
113 INTEGER i, i1, ic, j, k, lenp, nt
122 DATA intstr /
'0123456789' /
126 IF( nmats.GE.ntypes )
THEN
135 dotype( i ) = .false.
141 IF( nmats.GT.0 )
THEN
142 READ( nin, fmt =
'(A80)',
END = 90 )line
151 IF( j.EQ.nmats .AND. i1.GT.0 )
THEN
154 WRITE( nout, fmt = 9995 )line
155 WRITE( nout, fmt = 9994 )nmats
159 IF( line( i: i ).NE.
' ' .AND. line( i: i ).NE.
',' )
THEN
166 IF( c1.EQ.intstr( k: k ) )
THEN
171 WRITE( nout, fmt = 9996 )i, line
172 WRITE( nout, fmt = 9994 )nmats
175 nreq( j ) = 10*nreq( j ) + ic
177 ELSE IF( i1.GT.0 )
THEN
186 IF( nt.GT.0 .AND. nt.LE.ntypes )
THEN
187 IF( dotype( nt ) )
THEN
189 $
WRITE( nout, fmt = * )
191 WRITE( nout, fmt = 9997 )nt, path
193 dotype( nt ) = .true.
195 WRITE( nout, fmt = 9999 )path, nt, ntypes
196 9999 format(
' *** Invalid type request for ', a3,
', type ',
197 $ i4,
': must satisfy 1 <= type <= ', i2 )
205 WRITE( nout, fmt = 9998 )path
206 9998 format( /
' *** End of file reached when trying to read matrix ',
207 $
'types for ', a3, /
' *** Check that you are requesting the',
208 $
' right number of types for each path', / )
209 9997 format(
' *** Warning: duplicate request of matrix type ', i2,
211 9996 format( //
' *** Invalid integer value in column ', i2,
212 $
' of input',
' line:', /a79 )
213 9995 format( //
' *** Not enough matrix types on input line', /a79 )
214 9994 format(
' ==> Specify ', i4,
' matrix types on this line or ',
215 $
'adjust NTYPES on previous line' )
216 WRITE( nout, fmt = * )