89 SUBROUTINE alareq( PATH, NMATS, DOTYPE, NTYPES, NIN, NOUT )
97 INTEGER NIN, NMATS, NOUT, NTYPES
110 INTEGER I, I1, IC, J, K, LENP, NT
119 DATA intstr /
'0123456789' /
123 IF( nmats.GE.ntypes )
THEN
132 dotype( i ) = .false.
138 IF( nmats.GT.0 )
THEN
139 READ( nin, fmt =
'(A80)',
END = 90 )line
148 IF( j.EQ.nmats .AND. i1.GT.0 )
THEN
151 WRITE( nout, fmt = 9995 )line
152 WRITE( nout, fmt = 9994 )nmats
156 IF( line( i: i ).NE.
' ' .AND. line( i: i ).NE.
',' )
THEN
163 IF( c1.EQ.intstr( k: k ) )
THEN
168 WRITE( nout, fmt = 9996 )i, line
169 WRITE( nout, fmt = 9994 )nmats
172 nreq( j ) = 10*nreq( j ) + ic
174 ELSE IF( i1.GT.0 )
THEN
183 IF( nt.GT.0 .AND. nt.LE.ntypes )
THEN
186 $
WRITE( nout, fmt = * )
188 WRITE( nout, fmt = 9997 )nt, path
190 dotype( nt ) = .true.
192 WRITE( nout, fmt = 9999 )path, nt, ntypes
193 9999
FORMAT(
' *** Invalid type request for ', a3,
', type ',
194 $ i4, ': must satisfy 1 <=
type <=
', I2 )
202 WRITE( NOUT, FMT = 9998 )PATH
203 9998 FORMAT( /' *** end of file reached when trying to
read matrix
',
204 $ 'types
for ', A3, /' *** check that you are requesting
the',
205 $ ' right number of types
for each path
', / )
206 9997 FORMAT( ' *** warning: duplicate request of matrix
type ', I2,
208 9996 FORMAT( //' *** invalid
integer value in column
', I2,
209 $ ' of input
', ' line:
', /A79 )
210 9995 FORMAT( //' *** Not enough matrix types on input line
', /A79 )
211 9994 FORMAT( ' ==> specify
', I4, ' matrix types on this line or
',
212 $ 'adjust ntypes on previous line
' )
213 WRITE( NOUT, FMT = * )
subroutine alareq(path, nmats, dotype, ntypes, nin, nout)
ALAREQ