1 SUBROUTINE alareq( PATH, NMATS, DOTYPE, NTYPES, NIN, NOUT )
9 INTEGER nin, nmats, nout, ntypes
57 INTEGER i, i1, ic, j, k, lenp, nt
66 DATA intstr /
'0123456789' /
70 IF( nmats.GE.ntypes )
THEN
86 READ( nin, fmt =
'(A80)',
END = 90 )line
95 IF( j.EQ.nmats .AND. i1.GT.0 )
THEN
98 WRITE( nout, fmt = 9995 )line
99 WRITE( nout, fmt = 9994 )nmats
103 IF( line( i: i ).NE.
' ' .AND. line( i: i ).NE.
',' )
THEN
110 IF( c1.EQ.intstr( k: k ) )
THEN
115 WRITE( nout, fmt = 9996 )i, line
116 WRITE( nout, fmt = 9994 )nmats
119 nreq( j ) = 10*nreq( j ) + ic
121 ELSE IF( i1.GT.0 )
THEN
130 IF( nt.GT.0 .AND. nt.LE.ntypes )
THEN
131 IF( dotype( nt ) )
THEN
133 $
WRITE( nout, fmt = * )
135 WRITE( nout, fmt = 9997 )nt, path
137 dotype( nt ) = .true.
139 WRITE( nout, fmt = 9999 )path, nt, ntypes
140 9999
format(
' *** Invalid type request for ', a3,
', type ',
141 $ i4,
': must satisfy 1 <= type <= ', i2 )
149 WRITE( nout, fmt = 9998 )path
150 9998
format( /
' *** End of file reached when trying to read matrix ',
151 $
'types for ', a3, /
' *** Check that you are requesting the',
152 $
' right number of types for each path', / )
153 9997
format(
' *** Warning: duplicate request of matrix type ', i2,
155 9996
format( //
' *** Invalid integer value in column ', i2,
156 $
' of input',
' line:', /a79 )
157 9995
format( //
' *** Not enough matrix types on input line', /a79 )
158 9994
format(
' ==> Specify ', i4,
' matrix types on this line or ',
159 $
'adjust NTYPES on previous line' )
160 WRITE( nout, fmt = * )