1145
1146
1147
1148
1149
1150
1151
1152 LOGICAL TESTSDRV, TESTBSBR, TESTCOMB, TESTAUX
1153 INTEGER NPREC, OUTNUM, VERB
1154
1155
1156 CHARACTER*1 PREC(*)
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199 INTEGER PRECMAX, VERBMAX, IN
1200 parameter( precmax = 5, verbmax = 2, in = 11 )
1201
1202
1203 INTEGER I
1204 CHARACTER*1 CH
1205 LOGICAL READERROR
1206
1207
1208 CHARACTER*80 HEADER, OUTNAME
1209
1210
1211 LOGICAL LSAME
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243 readerror = .false.
1244 OPEN( unit = in, file = 'bt.dat', status = 'OLD' )
1245 READ(in, *) header
1246 READ(in, *) outnum
1247 READ(in, *) outname
1248
1249
1250
1251 IF( outnum.NE.6 .AND. outnum.NE.0 )
1252 $ OPEN( unit = outnum, file = outname, status = 'UNKNOWN' )
1253 WRITE(outnum, *) header
1254
1255
1256
1257 READ(in, *) ch
1258 IF(
lsame(ch,
'T') )
THEN
1259 testsdrv = .true.
1260 ELSE IF(
lsame(ch,
'F') )
THEN
1261 testsdrv = .false.
1262 ELSE
1263 WRITE(outnum, 1000) 'SDRV', ch
1264 readerror = .true.
1265 END IF
1266
1267 READ(in, *) ch
1268 IF(
lsame(ch,
'T') )
THEN
1269 testbsbr = .true.
1270 ELSE IF(
lsame( ch,
'F') )
THEN
1271 testbsbr = .false.
1272 ELSE
1273 WRITE(outnum, 1000) 'BSBR', ch
1274 readerror = .true.
1275 END IF
1276
1277 READ(in, *) ch
1278 IF(
lsame(ch,
'T') )
THEN
1279 testcomb = .true.
1280 ELSE IF(
lsame(ch,
'F') )
THEN
1281 testcomb = .false.
1282 ELSE
1283 WRITE(outnum, 1000) 'COMB', ch
1284 readerror = .true.
1285 END IF
1286
1287 READ(in, *) ch
1288 IF(
lsame(ch,
'T') )
THEN
1289 testaux = .true.
1290 ELSE IF(
lsame(ch,
'F') )
THEN
1291 testaux = .false.
1292 ELSE
1293 WRITE(outnum, 1000) 'AUX ', ch
1294 readerror = .true.
1295 END IF
1296
1297
1298
1299 READ(in, *) nprec
1300 IF( nprec .LT. 0 ) THEN
1301 nprec = 0
1302 ELSE IF( nprec. gt. precmax ) THEN
1303 WRITE(outnum, 2000) nprec, precmax, precmax
1304 nprec = precmax
1305 END IF
1306
1307 READ(in, *) ( prec(i), i = 1, nprec )
1308 DO 100 i = 1, nprec
1309 IF(
lsame(prec(i),
'C') )
THEN
1310 prec(i) = 'C'
1311 ELSE IF(
lsame(prec(i),
'D') )
THEN
1312 prec(i) = 'D'
1313 ELSE IF(
lsame(prec(i),
'I') )
THEN
1314 prec(i) = 'I'
1315 ELSE IF(
lsame(prec(i),
'S') )
THEN
1316 prec(i) = 'S'
1317 ELSE IF(
lsame(prec(i),
'Z') )
THEN
1318 prec(i) = 'Z'
1319 ELSE
1320 WRITE(outnum, 3000) prec(i)
1321 readerror = .true.
1322 END IF
1323 100 CONTINUE
1324
1325 READ(in, *) verb
1326
1327 IF( verb .GT. verbmax ) THEN
1328 WRITE(outnum, 4000) verb, verbmax, verbmax
1329 verb = verbmax
1330 ELSE IF( verb .LT. 0 ) THEN
1331 WRITE(outnum, 5000) verb
1332 verb = 0
1333 END IF
1334
1335
1336
1337 IF( readerror ) THEN
1338 WRITE(outnum, 6000)
1339 IF( outnum .NE. 6 .AND. outnum .NE. 0 ) CLOSE( outnum )
1340 stop
1341 END IF
1342
1343 1000 FORMAT( 'INVALID CHARACTER FOR ',a4,' TESTS ''', a1,
1344 $ ''' (EXPECTED T/F)' )
1345 2000 FORMAT( 'NUMBER OF PRECISIONS ', i6, ' GREATER THAN ', i6,
1346 $ ' - SETTING TO ', i6, '.')
1347 3000 FORMAT( 'UNRECOGNIZABLE PRECISION ENTRY ''', a1,
1348 $ ''' - EXPECTED ''C'', ''D'', ''I'', ''S'', OR ''Z''.')
1349 4000 FORMAT( 'VERBOSITY ', i4, ' GREATER THAN ',i4,
1350 $ ' - SETTING TO ',i4,'.')
1351 5000 FORMAT( 'VERBOSITY ', i4, ' LESS THAN 0 - SETTING TO 0' )
1352 6000 FORMAT( 'FATAL INPUT FILE ERROR - ABORTING RUN.' )
1353
1354 RETURN
1355
1356
1357