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
184 IF( dotype( nt ) )
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