This file is indexed.

/usr/include/fatmen.car is in libpacklib1-dev 20061220+dfsg3-4.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

   1
   2
   3
   4
   5
   6
   7
   8
   9
  10
  11
  12
  13
  14
  15
  16
  17
  18
  19
  20
  21
  22
  23
  24
  25
  26
  27
  28
  29
  30
  31
  32
  33
  34
  35
  36
  37
  38
  39
  40
  41
  42
  43
  44
  45
  46
  47
  48
  49
  50
  51
  52
  53
  54
  55
  56
  57
  58
  59
  60
  61
  62
  63
  64
  65
  66
  67
  68
  69
  70
  71
  72
  73
  74
  75
  76
  77
  78
  79
  80
  81
  82
  83
  84
  85
  86
  87
  88
  89
  90
  91
  92
  93
  94
  95
  96
  97
  98
  99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 183
 184
 185
 186
 187
 188
 189
 190
 191
 192
 193
 194
 195
 196
 197
 198
 199
 200
 201
 202
 203
 204
 205
 206
 207
 208
 209
 210
 211
 212
 213
 214
 215
 216
 217
 218
 219
 220
 221
 222
 223
 224
 225
 226
 227
 228
 229
 230
 231
 232
 233
 234
 235
 236
 237
 238
 239
 240
 241
 242
 243
 244
 245
 246
 247
 248
 249
 250
 251
 252
 253
 254
 255
 256
 257
 258
 259
 260
 261
 262
 263
 264
 265
 266
 267
 268
 269
 270
 271
 272
 273
 274
 275
 276
 277
 278
 279
 280
 281
 282
 283
 284
 285
 286
 287
 288
 289
 290
 291
 292
 293
 294
 295
 296
 297
 298
 299
 300
 301
 302
 303
 304
 305
 306
 307
 308
 309
 310
 311
 312
 313
 314
 315
 316
 317
 318
 319
 320
 321
 322
 323
 324
 325
 326
 327
 328
 329
 330
 331
 332
 333
 334
 335
 336
 337
 338
 339
 340
 341
 342
 343
 344
 345
 346
 347
 348
 349
 350
 351
 352
 353
 354
 355
 356
 357
 358
 359
 360
 361
 362
 363
 364
 365
 366
 367
 368
 369
 370
 371
 372
 373
 374
 375
 376
 377
 378
 379
 380
 381
 382
 383
 384
 385
 386
 387
 388
 389
 390
 391
 392
 393
 394
 395
 396
 397
 398
 399
 400
 401
 402
 403
 404
 405
 406
 407
 408
 409
 410
 411
 412
 413
 414
 415
 416
 417
 418
 419
 420
 421
 422
 423
 424
 425
 426
 427
 428
 429
 430
 431
 432
 433
 434
 435
 436
 437
 438
 439
 440
 441
 442
 443
 444
 445
 446
 447
 448
 449
 450
 451
 452
 453
 454
 455
 456
 457
 458
 459
 460
 461
 462
 463
 464
 465
 466
 467
 468
 469
 470
 471
 472
 473
 474
 475
 476
 477
 478
 479
 480
 481
 482
 483
 484
 485
 486
 487
 488
 489
 490
 491
 492
 493
 494
 495
 496
 497
 498
 499
 500
 501
 502
 503
 504
 505
 506
 507
 508
 509
 510
 511
 512
 513
 514
 515
 516
 517
 518
 519
 520
 521
 522
 523
 524
 525
 526
 527
 528
 529
 530
 531
 532
 533
 534
 535
 536
 537
 538
 539
 540
 541
 542
 543
 544
 545
 546
 547
 548
 549
 550
 551
 552
 553
 554
 555
 556
 557
 558
 559
 560
 561
 562
 563
 564
 565
 566
 567
 568
 569
 570
 571
 572
 573
 574
 575
 576
 577
 578
 579
 580
 581
 582
 583
 584
 585
 586
 587
 588
 589
 590
 591
 592
 593
 594
 595
 596
 597
 598
 599
 600
 601
 602
 603
 604
 605
 606
 607
 608
 609
 610
 611
 612
 613
 614
 615
 616
 617
 618
 619
 620
 621
 622
 623
 624
 625
 626
 627
 628
 629
 630
 631
 632
 633
 634
 635
 636
 637
 638
 639
 640
 641
 642
 643
 644
 645
 646
 647
 648
 649
 650
 651
 652
 653
 654
 655
 656
 657
 658
 659
 660
 661
 662
 663
 664
 665
 666
 667
 668
 669
 670
 671
 672
 673
 674
 675
 676
 677
 678
 679
 680
 681
 682
 683
 684
 685
 686
 687
 688
 689
 690
 691
 692
 693
 694
 695
 696
 697
 698
 699
 700
 701
 702
 703
 704
 705
 706
 707
 708
 709
 710
 711
 712
 713
 714
 715
 716
 717
 718
 719
 720
 721
 722
 723
 724
 725
 726
 727
 728
 729
 730
 731
 732
 733
 734
 735
 736
 737
 738
 739
 740
 741
 742
 743
 744
 745
 746
 747
 748
 749
 750
 751
 752
 753
 754
 755
 756
 757
 758
 759
 760
 761
 762
 763
 764
 765
 766
 767
 768
 769
 770
 771
 772
 773
 774
 775
 776
 777
 778
 779
 780
 781
 782
 783
 784
 785
 786
 787
 788
 789
 790
 791
 792
 793
 794
 795
 796
 797
 798
 799
 800
 801
 802
 803
 804
 805
 806
 807
 808
 809
 810
 811
 812
 813
 814
 815
 816
 817
 818
 819
 820
 821
 822
 823
 824
 825
 826
 827
 828
 829
 830
 831
 832
 833
 834
 835
 836
 837
 838
 839
 840
 841
 842
 843
 844
 845
 846
 847
 848
 849
 850
 851
 852
 853
 854
 855
 856
 857
 858
 859
 860
 861
 862
 863
 864
 865
 866
 867
 868
 869
 870
 871
 872
 873
 874
 875
 876
 877
 878
 879
 880
 881
 882
 883
 884
 885
 886
 887
 888
 889
 890
 891
 892
 893
 894
 895
 896
 897
 898
 899
 900
 901
 902
 903
 904
 905
 906
 907
 908
 909
 910
 911
 912
 913
 914
 915
 916
 917
 918
 919
 920
 921
 922
 923
 924
 925
 926
 927
 928
 929
 930
 931
 932
 933
 934
 935
 936
 937
 938
 939
 940
 941
 942
 943
 944
 945
 946
 947
 948
 949
 950
 951
 952
 953
 954
 955
 956
 957
 958
 959
 960
 961
 962
 963
 964
 965
 966
 967
 968
 969
 970
 971
 972
 973
 974
 975
 976
 977
 978
 979
 980
 981
 982
 983
 984
 985
 986
 987
 988
 989
 990
 991
 992
 993
 994
 995
 996
 997
 998
 999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
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
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
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
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
+TITLE.
FATMEN   1.92/02 970107 09:30 CERN PROGRAM LIBRARY FATMEN=Q123
+PATCH,REQUIRES,T=DATA,IF=$DOC.
+DECK,BLANKDEK.
 
The FATMEN package requires the following other packages to run:
 
- ZEBRA, KUIP, CSPACK (from CERN Program Library PACKLIB)
 
- KERNLIB
 
- FPACK (if the flag FPACK is +USEd)
 
In addition, the following system specific software is required:
 
VM/CMS systems
--------------
 
HEPVM software (EXECs, tape handling software, Tape Management System IF=TMS)
 
(An interface to VMTAPE and VMBATCH is also provided)
 
VAX/VMS systems
---------------
 
- VAXTAP (CERN Program Library) for tape handling
 
N.B. for server mode staging, a logical name STAGE_QUEUE must be
defined in the system table. This directory must be world writable.
The current recommended practice is:
 
a) Define STAGE_QUEUE to point to the same directory on all nodes
b) Use batch mode staging on all nodes.
   Batch mode staging is used by default if a batch queue STAGE_xxxxS
   exists, e.g. STAGE_8200S
 
Unix systems
------------
 
SHIFT/CORE software for tape handling, IF=SHIFT
 
L3 Apollo tape staging, IF=APOLLO and the file l3stage is found
in the current path.
 
System dependant information
-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 
RS6000:
To compile the CDF file, use the following options on the XLF command:
 
-q ST_SIZE=5000 -q TKQ_SIZE=20000 -q charlen=32000 -q extname
+PATCH,HISTORY.
+DECK,BLANKDEK.
Version 1.92=Make help for MODIFY command correspond to code (-K)
             For import into CVS.
Version 1.91=FMCLOS: add extra debug
             FMLOOP, FMBACK: correct save statement
             FMKADT, FMADDT: safer handling of VID prefixes
             FATCDES: add definitions for DAT120, NTP
             FMOPEN/FMTAPE: IOPTI - disable -G in calls to SHIFT s/w
             Z=FATGET: ISFGET
             FMTAPE: only specify -U for shift stagein if DDNAME looks like
               a Fortran unit
             FATLOG: log files (FATLOG.yymmdd) now written to fatlogs subdir
             FATSEND: only wait if no files were transferred
             FAINQR,FMVERI,FMURL: fix check on URL
             FMTAPE: impose MAXSTG only on IBM (mainframe) systems
             FATUTIL: save DIRNAM variable (problems diagnosed by Olof Barring)
Version 1.90=FATSEND: tidy printout, improve time stamping of log messages
             FMRZIN: print IQUEST(1) in case of RZIN errors
             FMRSTG: tidy retry handling
             FAERAS, FAINQR: initialise LCHNFS
             FMCLOS: fix bug in stageclr
             FMINIT, FMTAPE: call sfget only if in current path
             New versions of FATCHK and FMMEDT from FNAL
             - FATCHK increase width in the FORMAT statement
             - FMMEDT move zeroing of NFMTYP and NUMMTP after check that
               FATMEN.MEDTYPES exists;
             FATSEND: skip remote nodes if protocol is afs
             FMFZO: save FILEN. FATSRV: skip kumac files
             FMSSND, FATSEND: increase nodenames and queues to 80 characters
             FMMEDT: mods from D0 - set also NFMTYP, permit also negative
                media types. (This results in a medium of type iabs(itype)
                being defined but not selected).
             FMMEDT: set media types (definitions of characteristics AND
             selection vector) using fatmen.medtypes file.
             FMPKTM: year 99 was not allowed!
             FMDISK/FMTAPE: print warning message concerning conflicting
               logical names on multiple lines (D0)
             FMFIXF: strip trailing / from pathname (if any)
             FMCLOS: update MSRDFA/MERDFA from FZINO
             FMCLASS: define LDEF, FMURL: add Z=FATPARA.
             FMSREQ: improve handling of bad sysreq.conf config file
             FMSHO2: large directories - use I6 for ksn
             Start support for mss commands (e.g. Lachman interface)
                Files stored in Lachman have a URL like:
                osm://[server-node:][/store-name][/storage-group]/bitfileID
                fatmen.storage-classes:
 
                   path storage-class [store-name] [storage-server]
                                      DELPHI       DELPHI-conservator@domain
                   osm://delphi-conservator@cern.ch/delphi/rawdata/bfid
 
                storage-classes should be experiment independent (e.g. rawdata)
                store-names are experiment specific (e.g. L3DSTS, ALEPHRAW)
 
                mods to: FATCDES,FMDISK,FAINQR,FMVERI,FADARE,FMRZIN
                                 mssget mssinq               ??
                new routines: FMURL, FMCLASS, FMMSS, FMRSLV
Version 1.89=FMUTIL: add FMETOA/FMATOE (from RB's RZHto/frA) for ebcdic/ascii
                conversion
             FMFIXF: handle multiple .. in path name correctly
             FMATCH: handle *pattern correctly
             FMKMOD: zero NMATCH before FMSELK
             Add DLT definitions (as from TMS), include in CERN selection
             Add RWN/CWN as allowable file formats
             Add fatzero script to check for zero length files in /todo
             Add fatdf script to check /fatmen not too full
             FMSREQ: retry on all errors (after existing error handling)
             FMPSTG: split FATOPTS into FATOPT0/1
             FMPSTG: bug fix for VMS, fix typos
             FMEDIA: debug printout added.
             FMPSTG: new routine to prestage files (from suggestion by
                Guenter Duckeck/OPAL)
             FATCDES: new media type definitions for DESY
             FATSEND: include CZDUMM for VMS
             FMQTMS: protect against invalid media type (-TMS option)
             FMINIT: sleep and retry if catalogue not found
             FMOPEN: option Q for disk files - just return (rather than ignore)
Version 1.88=FATSRV: protect against input files with no updates!
             FMSTGQ: protect against tape not staged on VM (answer not
             stacked).
             FMRZIN: correct bug in call to FMSTGC
             FMRZIN: accept tape file if already staged (VMS)
             TMS VOLINFO tag: use SYSTEM tag IF=IN2P3
             FMHOST: declare FMHSTC as integer
             FMCLOS: format error
             FMGET(module): change to FMGET GENAM [KSN] [CHOPT] [FILE]
             FMINIT: define 2 DATs for call to FMSETM
             FMCLOS: Return IRC to user in case of problems with STAGE PUT.
             25/05/94
Version 1.87=FMCLOS: support options C (clear), D (remove links) and
               P (stageput) for new SHIFT stager
             FMINIT: initialise also DAT tapes (2 varieties)
             FATSCAN2: remove existing log file
             FATCAT: correct bug in handling of # RDR files
             FMTAPE: add NOWAIT option for SHIFT
             FMTAPE: don't call FMFGET(sfget) for new SHIFT stager
             FMFGET: print command if idebfa>=1
             FAFILE: open NEW files CARRIAGECONTROL='LIST' on VMS
             Add FMRKEY: replace existing key vector. Used from FMFZI
             to update existing object in place with new loc.code etc.
             FATBACK: create link to latest good backup file
             Drop bank at end of FMTOUC
             SEARCH/SCAN commands: fix bug for date/time ranges when
             only pathname specified.
             FMTAPE: put filename at end of call to stagein script
             SCRIPT: add fatchk to look for servers that are stopped
             Post 94A
Version 1.86=Mods from Torbjorn Moa
             FMLCOP: fix bug - eliminate call to FMGTLG before FMXDSK
             FMRZIN: try DECnet access in case of $env/filename syntax
             and file not found.
             Protection in FMFZCP against FZOUT/FZRUN problems.
             Add P=FATLOOP - example 'fast' listing program
             CONVEX flag (FMOPEN)
             FMOPEN:fix bug introduced by C I/O support on Unix w/o SHIFT
             FMKUIP: add dummies to avoid linking FATMEN module with SHIFT
             VIDQQ identification
             FMPUTC: correct check on JL/JR
             Add FMGETA: get first entry matching specific generic name
             FMSTGP: treat group PUBXX like DELPHI (VXCERN reconfig)
             FMDISK, FMTAPE: delete conflicting logical names from LNM$PROCESS
             FATMDI: use RZCDIR rather than FACDIR
             FMDISK: fix faulty call to FMXDSK, set lognam in JOB table (D0)
             FMRSTG, FMRQUI: bug fixes from D0.
                mod fmrqui and fmrstg to avoid waiting for a job to complete
                when the file is already staged and to avoid running out of
                'lun's (By Steve Glenn)
             Unix systems: exchange mode catalogues only supported
             FMSHOW: show also VOLINFO tag if IOPTQ
             P=FMUTIL,D=FMLTON,FMNTOL, correct filename
             New CMZ file - previous version archived in ADSM
Version 1.85=Correct IRC in P=FATCAT after rename of remote file
             Reorder statements in FATLIB to satisfy FLOPPY check 39
             FMOPEN: CFOPEN also for non-SHIFT Unix machines
             FMQTMS/FMQVOL: add (GENERIC SHIFT) IF=CERN,IF=SHIFT
             FMVERS: add IF=CERN
             Add P=FMUTIL,D=FMLTON,D=FMNTOL to process locations code file
             Extra protection in FATCAT against network problems
             Print user words also in decimal (FMSHOW)
             V93D 20/10/94 16:20
             Fix backslash problem for QMALPH.
Version 1.84=TMS return codes: 312-315 all mean roughly the same
             312 - volume not mountable on system issuing QVOL command
             313 - if an unknown generic system name is given as a QVOL option
             314 - if an unknown specific system name is given as a QVOL option
             315 - if the volume is unmountable on ANY defined operating systems
             FATMEN: reduce PAWC to 1M words
             FMLD: more logical handling of NLEVEL and -R
             FMOPEN: bug fix in options for XYOPEN (Alfonso Lopez)
             FATSEND: protect against NFOUND>MAXFIL
             Check status of LIB$GET_LUNs
             Add STATUS on OPEN in FAFNDF
             Print IOSTAT in FMRZIN if open of TPSERV.CONF file fails
             Rework lib$find_file logic in fatsrv for vms systems
             Add P=FATLOG to process *FATLOG* lines in FATSERV log
             Add P=FATSREQ, to issue SYSREQ command with retry
             Z=FATSYS: add IFMODX to flag exchange mode catalogue
             (mods to FAOPEN, FARINI, FATSRV).
             Add FATBACK to convert RZ file to FZ file.
             ADD FMFIND to issue FIND in one-line. Add FATBACK script
             Add program FATCHK to read all entries from catalogue
             FMFZI: return GENEN correctly also for LOG records
             GENEN is e.g. //CERN/DELPHI/FATLOG (to work with existing names
             files)
             V93C 08/06/93 12:40
Version 1.83=FMXDSK: perform various checks on each element of search
             list as recommended by Keith Chadwick, FNAL
             Add FMLCOD to load location code definitions from user file
             ADD/DISK|TAPE: support user words
             CLIO support: look for 'vmstage' in current path
             (still needs mods to FMTAPE/FMCLOS)
             FATSRV: add FATLOG to write logging records to FZFILE,IF=FATLOG
             FMFZO: lower FZLOGL for journal file
             FMALLO: use ICDECI to interpret density field
             FMPEEK: add option D to drop bank after unpacking
             Add FMPLOG to print log records
             FMFZI: chvsn & chvid = char*8
             FMCOPY: add DSN to STAGE CHANGE command. STAGE CHANGE uses
             dsn STAGEOUT if the input file was staged without specifying
             the dsn.
             Add FMDDIR: delete directories even with entries
             FMCLOS: Correct handling of IOPTP in case of LBANK=0
             Add Z=FAUST for user statistics
             FMTAPE: treat RECFM=U like RECFM=F for Shift
Version 1.82=FATKEOPS: use XZMV to rename request file
             FMKMOD: comment field was never updated.
             FMTMS: bug fixes from Steve O'Neale (FMGVID,FMGETP,FMSREQ)
             FATSRV: names file is in DEFAULT(1:LDEF)
             Protection in FMRQUI against network write errors.
             Display error code in FASTGQ in case of unexpected errors.
             Skip active files in FATSEND
             TMS library SMCF_1 changed to 3495_2
             Modify FATSEND to handle multiple groups; add protection
             against errors.
             Mods to FMLOOK, FMCSTG and FMRSTG from D0 (Krzysztof Genser)
             Protection in FMTAPE against unexpected replies from STAGE Q
             Add NeXT flag in FFATMEN and FMHSTC
             25/02/93 10:20
Version 1.81=FAFNDF: get short/long wait intervals and retry count from
             logical names (FATMEN_SNETWT etc.) Call FAFNDF from FMQSTG.
             FMTAPE: use FAFNDF to look for existing STAGE Q file
             FATSERV.EXEC: exit 99 if timer expires and we are FMFATCAT
             FMSELK, FMRZIN: protect against wild-cards in generic name
             FAFNDF(VAX). Add longwait interval. Add FMWTO
             FMRACK: protect against network problems.
             FMTAPE, FMRZIN: correct problems reported by DESY.
             FMTAPE: write temp file (IOPTY) in /tmp/<user>.fmstage,
             sys$login:, MAXDSK
             FMSEND: change mv to /bin/mv for Aegis users.
             FMLN: warning message if entry for target already exists
             FMINIT: set media type search order to 1,6,2,3,4,5 IF=CERN
             FATCDES: add definitions for 3490s (media type 6).
             FASEAC: FMISET is an integer function
             FMFILL: blank fields prior to filling also for option O
             FMTAPE: correct call to FMBQUE. FATNEW: clear FATNOD
             FMALLO: retry only if there are more tapes in the current
             library.
             FMFZO: correct CHFNFA handling in journal file header
             Fix warnings from Ruby compilation
             Verify CDF options against code
             Correct handling of status code in FMSEND (VAX)
             Bug fixes to FMVINF (TMS VOLINFO tag manipulation)
             wHole input staging on VM/CMS - take size from VOLINFO
             tag or media capacity.
             Bug fixes in FASEAR/FASEAC: check if any user word selection
             has been made
             Save current directory correctly in LD(FMLD)
Version 1.80=FX=FFX in FMOPEN (removed in 1.73 for some unknown reason)
             Add +SELF,IF=CSPACK to FMSEND to avoid pulling in
             TCP/IP code unless CSPACK is selected.
             V93A 15/01/93 13:30
Version 1.78=More mods to CDF for new KUIP (options etc.)
             Add call to INITC in FATMEN
             Modify CDF for use with new KUIP.
             KUIP style -U no longer needed with latest KUIP
             Add KSN parameter to LS command
             14/12/92 13:20
Version 1.77=FMFZO, FMSEND, FMUPDT: handle remote updates via CSPACK.
             Program lifetime: modules over 1 year old will print warning
             Add ABEND routine to FATSRV. ABEND prints server statistics
             and then executes fatabend script/command file/exec
             Counters in FATSRV.
             Try to clear out RDR in FATCAT - don't look on remote system
                if there are more than 10 pending files
             Handle remote catalogues correctly on VMS systems
             Bug fix to FATSRV for zz files on Unix
             Correct call to FAOPEN in FARINI
             Bug fix in FMSREQ for return buffer length handling
             Call lib$find_file_end before waiting in FATSRV.
             Option N in rm command. Don't turn on I automatically for
             option A. Reset reply buffer upon retry in FMSREQ.
             Add STRING parameter to SCAN command - options for RM
             Copy NAMEFD to FMNAMF for CSPACK access to remote files
             Wait option in FMSMCF for FMCOPY. Do not add entry to
             catalogue if FMCLOS fails.
             Remote catalogue access via CSPACK
                - FMLOCC, FMNICK, FMACCT, FMACL (use XZOPEN, XZGETL)
                - FMINIT (not yet for VM) , FAOPEN, FARINI
             01/12/92 12:00
Version 1.76=Use of VOLINFO TMS tag field for multi-file handling
             (routines FMGVOL, FMGVID and FMVINF)
             Bug fix in FMTOVM for new journal file names
             FMFZI: in case of warning from RZDELK, rebuild bit map
             Speed up FMSELK by only comparing required fields and
             only converting matching keys. (FNAME is converted to Z format)
             Remote access to catalogue via CSPACK, e.g. for group L3:
                FML3=/fatmen/fml3        = local/nfs access
                FML3=fatcat:/fatmen/fml3 = CSPACK access
                .netrc file should contain
                machine fatcat login fml3 password xxxxxx
             Update files are written locally and then transferred with
             XZPUTA. Configuration files (FATMEN.NAMES, .ACCOUNTS, .ACL
             and .UPDATES) read using XZGETL.
             ==> Needs CSPACK   1.28/02 921124 10:30
             Performance improvements in FASEAC, FALS (from FASEAR)
             Bug fix in FMFZO for VM - only open LUFZFA if not already open.
             Add command SCAN. Bug fix in FMRM (FMACNT never called).
             Change FMACL to support ACL files (option A) and UPDATE files
             (option U). Allows FMOPEN style updates to be controlled at
             the path/user/node level without recompiling/linking
             Don't check RC from FMLOCC in FMINIT
             Interface to DESY MVS staging system (input only)
Version 1.75=Bug fix in FASEAC/FMFILS for re-entry with non-zero context
             pointer.
             Better protection against errors in FATCAT.
             Bug fix to FMSHOW. Print status in FMSEAR.
             Bug fixes to FMKADD (KUGETS rather than KUGETC), FMRAND and
             FMFGET (length for character strings) for DESY
             Process each update directory in turn on fatcat
             FATCAT: drop /* from XZLS call (avoid problem with globbing)
             Define MINBLK in FATSRV - minimum number of blocks left
             before cleanup is triggered (VMS)
             Correct FAFNDF handling on Unix systems
             Revise update handling in FATSRV for VMS systems
               - RMS$_FNF = wait
               - RMS$_NMF = reset context pointer and loop
               - ZZ*.*    = loop
             Exploit new RZOUT option 'R' in FATSRV
               - use in case bank & keys match and entry already exists
               - if bank matches but not keys, use old method
             !!! N.B. this requires RZ version 2.00/05 or higher !!!
             RZEBRA   2.00/05 921104 17:30   THE ZEBRA RZ PACKAGE
             28/10/92 10:00 <<<<<< Install new RZ with this version >>>>>>
             Bug fixes for IBMMVS (FMRZIN,FMCOPQ,FADARE,FMNICK,FMFPAK,FMOPEN).
             FMUSER for non-HEPVM, non-VMBATCH sites (just use IDENTIFY)
             Use RZVERI (FATSRV) to rebuild bit map of used records
             from the file itself if required
Version 1.74=Blank search strings in FMSEAR before UHTOC calls.
             Fix error return in FMOPEN after reworking of monitoring info.
             Call stageput only for tape datasets
             Prepend CHEOPS error messages with CHEOPS error:
             Save and reset CD in TOUCH. Restore CD also in mv if rm
             failed.
             APOF77 flag: double \ in FMCD, QX_SC selection
             CHEOPSIF: call XYOPEN/CLOS only for disk files.
             Send fatal messages from PROGRAM FATCAT to FATONE
             14/10/92 16:00
Version 1.73=Remove treatment of FX like FFX in FMOPEN
             FMOPEN/FMCLOS etc. for links. New routine FMGETL.
             Extra monitoring information - IHOWFA, ITIMFA & CHFNFA
             Support CSPACK access to FX and FFX files, IF=CSPACK.
             Remote files may reside on VMS or Unix systems
             (VM not currently supported)
             Move FMRCOP from FMKUIP to FMINT. +USE,CSPACK to get
             functional version.
             Protect against SS$_UNREACHABLE in LIB$FIND_FILE calls
             Escape characters in 'ls': % for nicknames,
                $ for environment variables
             Server mode VMS staging - see P=REQUIRES
             Use parameters in unpacking MFQNFA
             Nickname processing via the shell
             Add FMRMLN/'rmln' command to remove/find dangling links
             Add routine FMLN and 'ln' command.
             Add routine FMNICK a la DELPHI
             Add routine FMRANK to rank CHFILES by VID & FSEQ
             Use CFIO (via CHANNEL mode) on VAX/VMS systems for FZ files
             Alpha port, bugs in FMCOPC
Version 1.72=Require at least 2 update tokens left for mv, FMMV
             Support FATMEN.LOCCODES file for location code definitions
             Add SHOW/LOCCODES command
             FMCDF: add R='x,y,z' for all cases of CHOPT for new KUIP
             FMRZIN: check modification date and time of directory
             on entry and exit. If directory has been modified, sleep
             and retry. Add example program using FMPOKE (for SMC)
             FMTAPE: do not issue FMFGET(sfget) in case of IOPTU
             Support for /afs files in FMRZIN
             Ensure LUFZFA is set before calling FMUPDT. Bug fix in FMSTGI/O
             Return stageout return code in FMCLOS chopt=P
             Support UPDATE/FMUPDT on non-VM systems !!! N.B. the server
             must be at level V1.65 or higher !!!
             Extra debug in FMRZIN - print out RZ info for object retrieved
             FMDD2L: handle character lun, e.g. '12'
             Fix bugs in FMCLOS, FMSTGO for CHEOPSIF
             11/09/92 16:00
Version 1.71=FMPUTC: blank padding from LEN(STRIM) up to field width
             Option C in TOUCH: clear comment field
             Set LFMODE in FMSTGO before call to FMCLOS
             Add option A in TOUCH: set account field
             FMVERI: check also MHSNFA for disk files
             FMRZIN, FMDISK, FAINQR: DECnet access
             FMTAPE: permit staging of files > max. media capacity
             STAGE PUT support for Shift & VMS (local only) in FMCLOS
             Extra debug in FATCAT
             Use new journal file names in FMTOVM
             Check stage group in FMSTGC only on first entry
             Time FMOPEN/FMDISK/FMTAPE if IDEBFA>=1
             Add user exit FMUVER to FMVERI.
             FMTAPE: check if batch queue STAGE_xxxxS exists - if so,
             perform stage request in batch. Add routine FMBQUE.
Version 1.70=Improve diagnostics in FMVERI for blanks/unseen characters
             in generic name. Bug fix in FMRMDR in call to FMVERI.
             Bug fix in FMSTGI/O - ensure IRC always returned
             NOWAIT option in FMOPEN - return after call to FMTAPE
             Fix for Cray compiler in FMOPEN (LCHF = 1)
             FMMVC - perform DEL then PUT
             Bug fix in FMOPEN - FX treated as FFX (as in old FMOPEN)
             V92B 20/07/92 10:30
Version 1.69=Last minute fixes for V92B: move maximum recl and blksize
             to Z=FATFORM.
Version 1.68=Fix bug in FMTOUC. Use option U in FACDIR call in FMSELK.
             15/07/92 13:30
             pre-release of V92B(?)
Version 1.67=Fix bug in FATARE for VAX/VMS systems or -TMS
             Rename *CHEOPS -> *CHEOPS2F etc.
             Support tag :queue in FATSEND - queue directory on remote node
             for current server. If not defined, use subdirectory todo.
             Check that RECFM is entirely alphabetic
             Bug fix in FMCOPY - reset IRC after FMCOMP
             MODIFY command : check that media type does not change
             New Shift Disk Pool Manager (DPM) - do not provide shift
             user or pool name. Old behaviour IF=OLDDPM.
             Protection in FMTAPE against STAGE_RC undefined or in invalid
             format. Add LOCCOD to ADD/DISK, ADD/TAPE
             Bug fix in FMRSTG (check on whether file was already staged)
             Check DCB information for output staging (VM)
             Missing FATBUG in FMFGET, IMODE in FMDISK
             Better processing of >MAXFIL files in FALS.
             Fix bugs in HP/UX version
             03/07/92 08:45
Version 1.66=Add location code, media type and copy level to COPY command
             Call FMVERI in FMSTGI/O. Write extra information in FMCOPQ.
             Put density on stage command IF=SHIFT,IF=-TMS
             Add protections in FMCOPY, FMTAPE for CHEOPS
             Add program FATLOOP2 in P=EXAMPLE to FMGETK every entry in the
             catalogue: ZFATAL = problems.
             Permit useful options on shell FIND command.
             Add program FATHEAD to print headers of journal file on unit 1,
             or the file name passed on the command line.
             Add option Y in FMOPEN: write stage command to file on LUN
             but do not execute. Increase size of PAWC in FM shell.
             No check on Zebra e-o-r in VM servers
             Preliminary interface to TAPESYS (UVVM)
Version 1.65=Modify FATSEND & FATSRV/FMSEND to use new naming convention
             Ditto for program FATCAT
             Increase size of Zebra store in FATSRV
             Protection in directory scan routines against RZPAFF problems
             (!!! mods to RZPAFF - ZEBRA/RZ must be reinstalled !!!)
             Mods to FMFIXF to handle directory names beginning /
             Call FMVERI in case of directory add/remove operations
             Add CHEOPSIF patch. Routines to stage in or out.
             Bank information is passed as arguments to the routines to
             simplify C/Fortran interface
             Use command file SETUP_EXE:STAGE to submit stage command
             in FMTAPE. #bytes read (COPY_FILE only) returned in logical
             names STAGE_filename. (Not yet used)
             Change naming convention for journal files:
             zz92061118040500000499024164.user_node
             Renamed to aa... when update complete
             APOLLO: use WHICHF to determine if 'l3stage' exists in
             current path. If so, activate l3stage specific code (was IF=APOL3)
             (!!! requires WHICHF KERNLIB (kernbit) routine !!!)
             19/06/92 09:30
Version 1.64=Mods from KLG for FMRSTG, FMCSTG, STGSERV.
             Bug fix in FATSEND for ICONT/=0
             Modify STGSERV to send jobname ('LOOK')
             Incorporate mods from D0. to FMRSTG, FMCSTG etc.
             FMRSTG/FMCSTG. check before each job inquiry whether file
             is already on disk (and of the correct size - to be done)
             FMCSTG: wait if tape is already in use
             Job inquiry by FMLOOK (from Krzysztof Genser/D0)
             Support usernames up to 12 characters. Look for signal.stop
             files in FATSEND.
             Add option J to FMSHOW. Just the files that are accessible.
             Add MODIFY command
             Extend CP and MV commands to allow keys, fileid, host, vsn,
             vid and fseq to be changed for output file. XVID syntax supported
             Change copy level to data representation. Add new parameter
             offsets. Permit comments in acl/accounts files
             Add option R to LS : show where the data Reside. (need STAGE Q
             for Shift/Cray)
             For disk files: accessible: Y/N method: Y/N
             For tape files: active library: Y/N device: e.g. local staged: Y/N
             Add option E to RM to erase disk file. !! to be tested on SHIFT !!
             Change MV and CP commands to accept input key
             Support search lists in FMRZIN for DFS devices
             11/05/92 13:00
Version 1.63=Fix bug in FALS - don't print blank line in case of option V/W
             and no files found in CWD.
             Don't drop disk of server if mode A. (VM)
             Search list handling in FMLCOP.
             FALS: protection for no files found. Bug fixes from D0.
             Correct calls to VAX RTL routines (irc/istat handling).
             Bug fix in FMPEEK for 'A', 'N' options.
             Modify FMSHOW to accept LBANK=-1 (use LADDBK, e.g. from
             novice i/f).
             Protection in FMFZI - require ZEBRA end of run record in
             input file.
             Fix bug in FMTAPE - FSEQ missing from LABELDEF.
             Add program CHEOPS - read .rqid and .rep files generated
             by CHEOPS server and update FATMEN catalogue(s) accordingly
Version 1.62=Retry 5 times in FMRZIN if keys vector has been given but
             entry not found. (concurrent update problem).
             Add routine FMACCT to check for account aliases.
             Warning messages if SYSREQ is incorrectly installed.
             Use SHIFT RFIO also for tape files (use sfget after stage
             request). Save pathname across FMLDIR calls.
             Add program FATKEOPS, to send updates from VM to
             cheops directory on fatcat.
             CHEOPS interface - routine FMBTOA to write bank in
             ascii format, write update to /fatmen/fmcheops
             or as variable FMCHEOPS. On VM, use gateway machine FMCHEOPS.
             Fix bug in FMCOPC - set media type in keys vector
             Add patch FATRZCHK to protect against corrupt RZ files.
             Add routine FMACL to provide protection on FATMEN paths
             Correct calls to FMCLOS from FMCOPY.
Version 1.61=Use exchange mode and C I/O on DECS, if the RZ file is
             kept in a directory starting /fatmen (e.g. on fatcat)
             Support search lists in FMSTGP.
             Rewrite FMCFGL using CIGET routines (for character data)
             Print host type and OS for disk files in FMSHOW
             Add support for Physical copy in FMCOPY. This is the
             default. (Use cp/COPY/VMIO to perform the copy)
             Split FMOPEN into separate routines: FMDISK/FMTAPE/FMFOPN
             FPACK files are handled in FMFPAK.
Version 1.60=v92a March 1992
             Fix bug in FMSELM when CHOPT=' '
             Bug fix in FMOPEN - save IQUEST(10) & (11) over call
             to FMGET
Version 1.59=Bug fix in FMSTGP. Network retries in FMRSTG.
             Check that SETUP_EXE:TPSERV.CONF exists in FMOPEN, FMRZIN.
             More bug fixes in remote staging.
             Massaging in VAX Stage handling. Add NRFMFA
             Add Motif version, restructuring of CDF file,
             SHOW/CATALOGUES command.
Version 1.58=Print stage log in FMCSTG, FMRSTG.
             Correct tag definitions for FATMEN directories.
             (loc.code and med.type were swapped).
             Default catalogue name is DESY,IF=DESY, FNAL,IF=FNAL in
             FATMEN shell only. Fix bug in FATSRV, FMOPEN for VMS.
             Move FAFNDF,IF=APOLLO to patch UNREF.
             Bug fixes in remote VAX staging.
             Deassign channel in FMQUOT. Use FORTRAN I/O when reading
             SETUP_EXE:TPSERV.CONF
             Add debug printout for remote staging.
Version 1.57=Print dsn, host or vsn,vid,fseq if logl>=1 in FMFZI
             Print user & host of originator of update in FMFZI.
             Protect FMQUOT against disks with quotas disabled.
             Bug fix in FMLDIR for [] support.
             Add routines FMRSTG, FMCSTG, FASTGS, FASTGQ for remote
             VAX staging. (Across or within clusters)
             Bug fix in FMLFIL.
             Add support for remote tapes in VMS:
                tpserv device-group host1 [host2]
             Add support for RMS files (RECFM RMS, /RMS on STAGE command,
             use COPY to copy data)
             Permit creation for exchange mode files, via FATMODE in
             FATNEW (setenv FATMODE X or XC)
Version 1.56=Debug printout in FACOPY.
             Open journal files as recordtype=stream_lf if writing
             over NFS from VMS->Unix.
             Fix bug in FMGLUN.
             Print date and time before going to sleep
             Fix warnings from VSFORT 2.5 compiler (unreachable code
             in routines FMCOPC and FMRZIN. See warnings in these routines)
             Fix bug in FMTAGS (undefined variable)
             Friday, 13th December
             Fix bugs in FMSEND
Version 1.55=mods to FAINQR and FMRZIN for FPACK files
             If host is not local, then search in .netrc file for nodename
                IBMMVS: userid.PER.NETRC
                VAXVMS: netrc.;
                VM/CMS: DOT NETRC A0
                Unix  : $HOME/.netrc
             Update FATNEW for MVS. Resync copy level with FPACK
             FPACK interface: in case of FPACK files, routine FPARM
             is called in FMOPEN & FMCLOS. FPARM handles file open and
             starts server etc as necessary.
             OPEN:  CALL FPARM('OPEN logical-name UNIT=lun FILE="fn"'
             CLOSE: CALL FPARM('CLOSE logical-name')
Version 1.54=Support NFS mounted files (FMRZIN, FAINQR) VAX/VMS, Unix
             Use sequence QFTITLCH to get pam title rather than QFTITLE
             Fix bug in FATSRV for check on /done directory (Unix systems)
             Handle .. characters in FMPAFF and FMFIXF
             Fast match in FALS, FMLOOP (file='*')
             Add ACTION=read/readwrite on OPENs. Modify FMHOST for CMS 7.
             Fix bug in CP command - cwd was not correctly restored.
             Add FATOUCH example program, to touch files or directories.
             Fast count in FMFC, if filename=*. (Uses 1/3 of CP time)
             Changes in FMOPEN for shift - call CFOPEN for
             full shift file name, not fort.n
             Use C I/O and exchange mode for RZ file if
             STREAM_LF (VAX) or in /fatmen (CERN Cray)
             Call FMVERI from FMRM, FMRMC
             Use configuration files to determine device access.
             VAX/VMS,IF=VAXTAP: logical names SETUP_modelS
             IBMVM,  IF=HEPVM : nodename RESOURCE P
             SHIFT            : /etc/shift.conf, /etc/TPCONFIG
             CRAY             : /etc/shift.conf
Version 1.53=Add routine FMQUOT to P=FMVAX - get current disk quota
             information (from SPACE by JJB). Perform cleanup in FATSRV
             Perform automatic cleanup in FATSERV EXEC
             Update return codes in FMATCH. Return location of
             mismatches in IQUEST. Modify FMSCAN to treat wild-carded
             and non-wild-carded pathnames alike.
             Add routine FMHUNT - hunt for (wild-carded) generic name
             Set IQUEST(10) to number of levels in initial path in FMLOOP
             Common version for CERNVM, CERNVMB & LEPICS
Version 1.52=Access to SMCF now based on sequence FASMCF.
             Access enabled, however, for SHIFT, CSF, VXCERN, APOL3
             Fixes for CERNVMB
             More examples in P=EXAMPLE.
             Extra protection in VAX, Unix versions if FM symbols
             not defined.
             Rewrite FMLDIR using FMSCAN
             Add support for [] wild-cards.
             Given the following subdirectories:
                Y91V02
                Y91V03
                Y91V04
                Y90V06
                Y91V05
             ld y(90:91)v> will follow Y90V06, but ld y[90:91]v> will
             follow both Y90V06 and Y91V05.
             Call FMACNT on each entry to FMRMC, in case user has reset acct
             Fix bug in FMPOOL when TO specified
             User meeting of 16/10/91 (ship command not yet implemented)
Version 1.51=Add routine FMSETK - set keys matrix for d/s selection
             Add commands SET/SHOW userwords.
             Add routine FAINQR - inquire with GIME/sfget/env. variable
             expansion.
             Add FMSELM routine - select by keys matrix.
             Add ZOOM command to zoom down directory tree to first
             directory with no subdirectories & at least one file
             FMSCAN now descends specified number of levels below
             wild-carded pathname, and not below path up to last wild-card
             Add option V in FMOPEN - as S but even if file size is ^0
             Fix bugs in FMMANY, FASELP for <> matching.
             Fix bugs in FAT2VM.COM, FMTOVM to not send files back to origin
             Add FACDIR interface routine - reset top directory
             if naming directory is not TOPDIR
             Fix bug in FAEXTR
             Fix bug in FMALLO - use separate buffer for QUERY CONTENTS
             Modify FMLD to use FALD - remove limitations on
             numbers of directories that can be displayed.
Version 1.50=CNL 204 - 12/09/91 09:00
             Add FMLOOP. As for FMSCAN but for file names
             Add FMMODU - modify user fields
             Use FMSCAN from FC, LS commands and routines
             Add routine FMSCAN & FASELP. FMSCAN provides FMLDIR
             like functionality but avoids the use of local arrays
             by calling user exit. <> are also supported.
             Option Q in FMSHOW also shows TMS tags
             Extra protections in FMINIT
             Add options Q, S, T (A) in CD to list RZ quota, statistics,
             dates & times etc. Add command DIR to issue RZLDIR.
             Add option Y in FMLSC - verify bank contents
             Permit reinit if user typed a bad FM group
             Add utility routine FAEXST
             Add command ALLOCATE to add tape file with volume
             allocated from named pool in specified library.
             Add TREE command to print directory tree
             Use FMOPTC rather than UOPTC - checks on CHOPT case insensitive
             Treat <> like * in FMATCH (with warning if LOGL>=3)
             Change flags for routine names (Lowercase, Underscore etc.)
             Fix bug in FATMDI introduced by move to FATLIB.
             Purge CON files in FATSERV on VM
             Fix bugs in FMXDSK. Add warning in FMOPEN if size > MAXSTG
             Add command MEDIA to set/show media attributes
             Command files for VAX servers - scripts for FATCAT
             Add patch FATSEND to send FATMEN updates to remote
             servers, according to NAMES file. Current version
             is for Unix and VMS systems only.
Version 1.49=Interface to VMTAPE (FMOPEN/FMFIND/FMMAKE) & FMALLO
             Interface to VMBATCH (for FMUSER, FMACNT, FMJOB)
             Add routine FMEDIA to set default media attributes.
             Call FMUTMS (user exit) from FMQTMS IF=-TMS to allow
             user to override these values for individual volumes.
             Add option G to RM command, to change protection
             group on a volume. Defaults to *None.
             Add routine FMPROT.
             Add command RMTREE, to delete a complete directory tree.
             Modify FMATCH & FMMANY. Pointer now reset after a *
             by looking for a substring, rather than single character
             Only check TMS information in FMVERI if Q option present.
             Add routine FMTAGS, to get, set or delete TMS tags.
             Change default shift staging pool from PUBLIC to shift1
             Add program FAT2SQL - convert entire RZ file to SQL
             Add routine FMVMIO - user hook routine for FZ D/A
             for binary exchange format files on IBMVM.
             Protect against error opening input file in FMFZI
             Option D in SEARCH (FMSHOW really): write KUMAC file
             to remove matching entries
             Use FORTRAN I/O by default for FX, FXN files.
             This is default for Zebra 3.67 and above, unless Y
             specified on FZFILE.
             Fix bugs in FMOPEN for SHIFT. N.B. must use -lsun for
             XY routines. To get debug from XY routines:
             setenv RFIO_TRACE 3
Version 1.48=Issue QUERY LIBRARY in FMQTMS IF=QVID to determine if
             library is active or not. Libraries beginning with a '*'
             are apparently inactive by definition.
             Issue option X on FZENDx in FMCLOS if C I/O selected in FMOPEN
             Return true RC from SYSREQ in IQUEST(1) (FMQMED)
             312 = volume unavailable only fatal in FMRZIN when key not
             specified.
             Allow staging disks upto 210 MB IF=CERNVM. Default to
             sequential access for FZ files on disk.
             Support date & time ranges in SEARCH
             Mods for DESY.
Version 1.47=Add FATPURGE.COM to delete old files in [.DONE]
             Add FATRL.COM - modified RDRLIST.COM to copy files send to
             VAX via SENDFILE to [.TODO] directory
             Add FAT2VAX exec to send updates via Interlink
             Support MVS in FATSRV.
             Add FMUSER for MVS systems (adapted from KPREFI)
             Add /*DECK, $!DECK lines to REXX/DCL patches
Version 1.46=Fix PREFIX support in FMOPEN, FMFIND, FMMAKE
             Support range of Copy Levels, Media types in FMRZIN, FMLS(C)
Version 1.45=Fix bug in FATCAT - reset IC after call to XZLS
             Fix bug in RM command for freeing volumes
             Permit use of FMGETV/C/I, FMPUTV/C/I from novice interface
             (LBANK=-1)
             Add example pgm using novice interface in patch EXAMPLE.
             Add example installation procedures
             Perform checks on input parameters in FMINIT, FMSTRT
             Set location code to the value given by a call to FMSETL
             (or set/loc) in FMKADD, FMKADT, FMADDD, FMADDT
Version 1.44=Add commands SET/COPYLEVEL, MEDIATYPE and SHOW commands
             FZFILE options: T only if read directly from tape.
             Add command SET/LOC
             Check that location code of each candidate is found
             in location code vector specified by user (FMRZIN)
             Modify for use with ORACLE on FATCAT(IBMRT).
             Oracle RTL compiled without -qextname
             Requires trailing _ on ORACLE interface routines,
             Common/FOFILE/ and CLTOU.
Version 1.43=Check status from stage -o in FMCLOS (APOL3)
             VID prefix support for all calls to FMQTMS.
             Change key allocation in FMALLK: now use maxkey+1
             Change FMACNT to check env variable FMACNT
             FMQTMS, FMGTMS: iquest(1) = -1 if -TMS
             Add routine FMQMED to return media type and mount flag
             Add options AFIU to FMRMC (All,Free,Interactive and Unlock)
             Support search options as for FMSEAR.
             Use C I/O for Zebra FZ if IQUEST(10) = 1
             Look at environmental variable FMHOST (Unix, VAXVMS)
             Use this as nodename, if set.
Version 1.42=Bug fix in FMNODE for VAXclusters
             Fix bugs in FMTMS patch for SYSREQ retry
             Revert to CART for APOL3 - old stage still on LEPICS
             Fix bugs in FMCOPC, FMRCOP.
             Fix bug in FMFZI - return code from VMCMS undefined.
             Add example EXEC/COM/SCRIPT for running pgm FATNEW.
             Fix INQUIRE bug in FMKUIP routines for VM.
             Fix typo in FMOPEN. Add -h in fmld, fmseac, fmlsc, fmfc.
             Support options -V,-W in FMLD
             IBMMVS version. Current implementation assumes that all files
             are catalogued.
Version 1.41=Add stage -o for APOL3 in FMCLOS. Reinstall and test on Apollo
             Support non-CERN catalogues: variable FATSYS (server, pgms),
             INIT //fatsys/group (KUIP)
             Modify FC command to support CHOPT: count #file/dir,
             #subdirs/dir.
             Use FMLFIL in FMLSC, FMSEAC
             Fix bugs in FMLDIR. Restore code for NLEVEL in FMTREE, support
             in LD command. Fix bug in SEARCH for NMATCH=n.
             Change CART to CT1 in FMMAKE (this is now returned by the TMS
             for manual 3480s)
             Retry in FMALLO if first tape from Q CONTENTS has been
             allocated away from under us...
             Add protection in FMOTOZ for bad ORACLE information.
             Fix bugs in FMATCH, FMOTOZ, FMLD.
Version 1.40=CNL201
Version 1.39=Fix bugs in FMLDIR. Add FMLFIL, FMFILS.
             Add return codes for SYSREQ(TCP)
             Use FMSREQ to perform call to sysreq with retry
             Add calls to L3 stage script in FMOPEN, FMFIND, FMMAKE
             Add FMFILC - like FC in FM shell.
             New calling sequences for GETENVF, SLEEPF.
             Fix bugs in SHIFT version
             Add IBM MACROS (needed for MVS version) to FATCDES.
             Add program FATCAT to send updates to FATCAT upon
             arrival in RDR and poll for new updates at wakeup
             interval.
Version 1.38=SHIFT code for sfget (DSN is [pool.user]/unix-dsn)
             Add MVS routines from DESY
             Split FMOPEN, FMFIND, FMMAKE
             Add routine FMFNME to generate extended unique file name -
             not suitable for VM systems.
Version 1.37=Add Patch FATULOK. Example program to unlock FATMEN RZ file.
             Current version will unlock 'CERN.FATRZ' in current directory
             Put large arrays in FMALLK, FMLIST, FMLDIR into commons.
             Add options K (keep) and P (autoput) to FMOPEN
             Modify FMQTMS so that the correct media type (taken from
             bank) is returned if volume unknown or TMS option not
             installed. Media type is passed to FMQTMS via IQUEST(11).
Version 1.36=Add patches DCL, SCRIPT to contain sample command files/
             scripts to start FATMEN server.
             Add variable FMWAKEUP (FATMEN$WAKEUP on VAX) to define
             FATSRV wakeup interval
             Fix all warnings reported by Apollo compiler.
             Return in FMOPEN for Unix systems without tape support
             (currently only Cray, Shift)
             Extra protection in FMINIT if logical name/env. variable
             pointing to FATMEN catalogue is not defined.
             Fix bug in FMLD for bad pathnames
Version 1.35=Fix bug in FMRM if non-existant key is specified
             Use XYOPN in FMOPEN for SHIFT disk files
             Add WRTAPE support in FMCOPY for VAX
             Add option MEDIA in ADD/TAPE and FMADDT. (For NA44)
Version 1.34=Fix bug in FMALLK, extra debug in FMFZI.
             Use stagewrt in FMCOPY for Cray
             Add SHIFT support: use stagein/stageout scripts in FMOPEN.
             All SHIFT files are assumed to be accessed via RFAS routines.
             Current support only for FZ binary files...
             Add routines FMULOK, FMPOOL to unlock (enable write) and
             transfer a tape from one pool to another. Modify FMSHOW
             to display the host on which a disk file resides, rather
             than that from which it was catalogued.
             Add DCB/Generic device support in VAX version
             Move 'fix' for check on robot/manual to FMQTMS
             Add extra print out in FMFZI.
             Fix bug in FMQTMS introduced by VID prefix support.
             Add command SEARCH to allow searches on DSN, HOST, VID and
             USER. Output is piped to FMSHOW.
             Add option Z in FMCOPY - use STAGE OUT for output file
             Add routine FMGBYK (get by key-serial-number).
             Modify FMLS to support options I (sort in Increasing order)
             and 1 (display only one entry per generic name).
             Option W in FMLS - multi-column output
             Modify FMSHOW to call FMSHO2 in case of options B (brief=80 cols.)
             or E (extended=132 cols.) listing. Modify FMOPEN to take
             file size for STAGE request from IQUEST(11) if option O(verride)
             is specified. Fix bug in FMLD for output redirection.
Version 1.33=Add routines FMSETL, M, C, U to set the list of (<100)
             location codes, media types, copy levels and logical units
             for use in FATMEN selection and for use by FMCOPY etc.
             Add routine FMPUSE to print usage information.
             Add routine FMUNIQ to return a unique list of file names
             in specified directory. Selection may be made under normal
             keys mask, as for FMSELK.
             Add routines FMJULI/FMDATE/FMDAYS to provide conversion to
             and from julian date and delta time.
             New entry point FMDCB - provide DCB or take from 'model DCB'
             Add routine FMFZCP to copy an FZ file from LUNI to LUNO.
             Called by FMCOPY. Logical units required by FMCOPY may
             be set in IQUEST(11-12).
             Change size of RZ file to 65000 records (new protection in RZ)
             Fix bug in FMKEYS/FMSELK.
             Close and reopen RZ file in FATSRV on return from FMFZI.
             This ensures that updates are seen by clients.
Version 1.32=FMPEEK/FMPOKE routines - return information from FATMEN bank
             in vector/ copy vector to FATMEN bank with optional catalogue
             update.
             Rename FMADDT/FMADDD to FMKADT, FMKADD. Add routines FMADDT,
             FMADDD in patch FATUOUS. Add routine FMSTRT -
             "Novice" initialisation routine which also initialises Zebra
             Suppress call to RZDELK in FMFZI for MOD operations
             Add option L in FMOPEN - override Label information with
             DCB from catalogue or user-supplied bank
             Add routine FMLDIR - provide <> wild-card support plus
             context pointer.
             Support wild-cards in any location in LD command.
             Add routine FMCOPC - command line copy routine. Permit copy
             to named VID, tape allocated from pool, remote copy (via
             CSPACK) or copy according to two existing catalogue entries.
             Add entry point FMGTMS to obtain FATMEN oriented details from TMS
             Change calling sequence of FATUOUS interface to match CERNLIB
             standard. Fix bug in FMLD for -R option, VID-prefix handling
             in FMADDT.
Version 1.31=Add 2MB to file size on VMSTAGE request, if < 200 MB
             Modify FMPUTC/FMGETC to support VID prefix field
             VMSTAK now also for HPO. Use KERNLIB version of GETENV
             Add ZABEND routine for FATMEN shell - avoid ZPOSTM
             Support VMIO in FMOPEN for DDNAMEs like VM%%F%%%
             Update mode corresponds to FMOPEN option X
             Add pilot patches for CERNVM, LEPICS and FRCPN11 (ugh)
             Add routine FMMANY - match many files, selecting
             according to < or >.
             Add routine FMCHOP - check options against allowed values
             Output to search list on VAX: use disk with most space
             Add routine FMKEYS. As RZKEYS, but with IFIRST,ILAST
             to avoid the use of large arrays.
             Use QUERY VID instead of QVOL (IN2P3 only, temporary!)
             Return immediately after STAGE command in FMOPEN if NOWAIT
             Support output redirection in LS, LD
             Add patch FATUOUS - novice interface
             Add routine FMFILE - as FMOPEN but no LBANK
             Add routine FMPREF to convert VID prefices to/from
             CHARACTER/INTEGER
             Support STRONG TYPING IF=TYPE in PATCHY sequences
             Add call to FMUPRT in FMSHOW, FMUSEL in FMRZIN
             Add PATCH FMTMS for TMS interface routines (FMALLO,
             FMQTMS and FMLOCK)
             Add entry point FMSCAN - FMLIST + FMSORT + FMGET
             Add DA as valid file format: open ACCESS='DIRECT'
             in FMOPEN for format DA or it option X is given.
             Support full wild carding of generic name in FMLS
             Support RZOPEN in FMOPEN, RZEND in FMCLOS
             Provide interface to DUMPTAPE (IBM, Cray)
             Extend FATOPTS to numeric options
Version 1.30=CNL 200
Version 1.25=Fix bug in FMCOPY - close both input & output files
             if an error occurs opening the output file
             Fix bug in tape allocation in FMOPEN
             Free tape unit correctly in FMCLOS for output volumes
             Lift bank in FMADDD/T only on first entry. Add FFX
             as valid file format.
             Use FMBOOK in FMSMCF - save address in link area
             FORTRAN version of FAFNDF based on SZLS from CSPACK.
             Use RZOPEN from FAOPEN
             Extend IFLAG in FOPUT: add only if not already present
Version 1.24=Move FMALLK to patch FATSRV.
             Fix bug in FMCOPY when called from FMSMCF (infinite loop)
             Treat characters following a blank in DSN as a comment.
             Correct FMQTMS, FMALLO for VAX.
             Print DSN stacked in FMOPEN if LOGL >= 0
Version 1.23=Extra protection in FMFZI for file deletion.
             Fix bug in FMCOPY for VBS files. Remove unecessary
             protection in FMSMCF for unknown VIDs.
             Add TESTFAT KUMAC - example test macro in PATCH FATTEST
Version 1.22=Try to reduce size of program. Limit number of directories
             that can be displayed in FMLD to 10000, number of
             copies of a file to 1000 (parameter MAXCOP).
Version 1.21=Ensure that VMOPEN error codes are passed back to user
             Force updating of KEYS vectors from BANKS in FMCOPY
             Option C in FMCOPY - use STAGE CHANGE, option S, using
             STAGE for input file (C implies STAGE for input and output)
             No FORTRAN open in FMOPEN if using IOPACK.
             Add sequence FATPARA in FMEXST.
             Add flag NOSMCF for LEPICS - no TMS or robot access
             Fix bug in FMLIST for call to FMFNMS (no wild cards)
             Increase FORMAT statement for key serial number and loc.code
             Set MAXKEY to 10000. Always put DCB on Cray STAGE
             Use -S sbin option on Cray
Version 1.20=CNL 199
Version 1.18=For input tapes, must use 'EXEC STAGE CLEAR' in FMCLOS
             CTRANS, CSQMCH now in KERNFOR.
             Add parameter lengths of character fields
             Fix conversion of LUN to DDNAME in FMOPEN for IOFILEnn
             Attempt reconnect to ORACLE if IRC=3114 or 6065
             Erase FATMEN RDRFILE after successful processing.
             Fast exit in FATSERV EXEC in case unprocessed file exists
             Increase working space to 200K words in FATSRV.
             Save current directory in FMLS for restore at end
             Add routine VMSTAK. Print shortest/longest record in FMCOPY
Version 1.17=Fix bug in FMSMCF for check on robot/manual.
             Convert TMS density to SETUP/STAGE format
Version 1.16=Check bank address in FMVERI using MZCHLS
             Add routines FMGETV, FMPUTV, FMGETC and FMPUTC to get and
             put information to/from FATMEN bank.
             Add FATSTACK exec for LABELDEF FID ? in FMOPEN.
             Add routine FMFILL to fill FATMEN bank with default
             values according to CHOPT. Old FMFILL renamed to FAFILL.
             Set MNTTYP to 'R' if TMS unavailable and vid = Innnnn
             Add routine FMEXST to check if entry already exists.
             Ensure that Media type is set (keys and bank) in FMFILL,
             FMALLO, FMCOPY.
             Call EXEC FATSTACK to stack FID for FMOPEN option T
             Fix bug in FMFZI for call to FMCOMP, default density
             in FMQTMS=38K (not 38000).
             Use VMCLOS in FMCLOS for DDNAMEs like VM%%F%%%.
             If STAGE fails, retry using larger disk size up to max.
             CP DETACH tape unit (option D in FMCLOS)
             Use new version of SYSREQ (one line per CHARACTER element)
             Protect in FMVERI against blanks, unseen chars in GENAM.
             Update use count in FMOPEN only for input datasets
             Output datasets require U option in FMCLOS
             Add option E to FMOPEN - issue SETUP (END
             Save vaddr of tape unit used in FMOPEN, free in FMCLOS.
             Save and reset current directory in FMCPC, FMMVC.
             Extend FMCOPY - disk-disk, disk-tape, tape-disk, tape-tape
             via VMIO. Fix bug in FMALLO for curious length TMS replies
             Rewrite FMRM. If more than one match is found, key serial
             number must be specified.
Version 1.15=Fix bug in FMFZI in call to FMCOMP.
             Set date/time of cataloging, last access and use count
             in FMSMCF. Add -K option on stagein (Cray)
             Add Apollo version of GETENV (FMGENV)
             RC=3 from TMS, use defaults IF=TMSTEST, ELSE sleep
             for 1 minute and then retry.
             Option G in FMALLO - change control group to *None
             to allow GROUP access to the tape allocated.
             FMLIST calls FMFNMS if PATH contains no wildcards
             Labeltype in lower case on Cray
             Add routine FMSMCF to make automatic copy into SMCF
             (FMOPEN option D, CERN specific routine!)
             Add flag TMSTEST (for CERN until all tapes in TMS)
             Modify FATSERV to support FATOWNERS and FATOPERATORS
             lists from NAMES file. Apollo version with local catalogue
Version 1.14=Add routine FMCOPY - copy dataset from GENAM1 to GENAM2
             using STAGE CHANGE, COPYTAPE, DISKTAPE, TAPEDISK or ZFTP.
             Add option S in FMOPEN - update bank with file size from
             VMSTAGE. Add option N in FMOPEN - do not specify DSN on
             STAGE/LABELDEF command. Stop in FAOPEN if RZ file not found.
Version 1.13=Add shell command MAKE. Add print out to FMCLOS.
             Add DCB to FILEDEF for VM/CMS disk files. Print use count
             in FMLS/FMSHOW (option P).
             Add OPEN to FMOPEN routine, unless option U(seropen)
             Support C(lear), D(rop), E(nd), F(zstat), P(ut), U(pdate)
             options in FMCLOS. Add routines FML2DD, FMDD2L to convert
             FORTRAN logical unit to corresponding DDNAME.
             Add call to FZFILE in FMOPEN, if option F is chosen.
             Add optional parameters RECFM, LRECL, BLOCK, FSIZE in
             FMADDT/D. Add support for 3420s (media type 3) in FMRZIN
             Use mode 4 for VM VBS disk files.
             Support remote non-Bitnet servers. Pull updates over
             using ZFTP based utility. Polling interval defined by
             remote installation.
Version 1.12=Fix bug in FMSHOW for user supplied bank.
             Add flags SETUP and STAGE to allow sites to enforce tape
             processing style.
             Add entry FMOPEN - just options RTUW for now
             Use TMS to allocate tapes in FMALLO
             TMS QUERY CONTENTS LIBRARY <lib> user <pool> slot 1
             TMS GETPOOL VID <vid> FROM <pool>
Version 1.11=Add C routines for Cray to find next file in a directory
             (from Phil Defert). Fix bug in FAT4WARD when no remote
             servers are specified.
             Add exec FAT2CERN to forward updates to CERNVM, unless
             they originated there.
             Activate FAT4WARD if on CERNVM (forward last update to
             remote servers)
             Add routine FMBOOK - create bank with FATMEN format at
             L, LSUP and JBIAS specified by user.
             Fix bug in FMMV - protect bank address in LTDSFA
             Add command VIEW, to edit a local disk file, using KUEDIT.
             Use TMS to determine MNTTYP in FMRZIN. Get labeltype,
             generic device from TMS (FMFIND/MAKE)
             Add interface to TMS (FMLS/FMSHOW) + patchy flag TMS.
             Set warning in FMVERI if VID unknown to TMS.
             Update use count (MUSCFA) and last access date in
             FMFIND/MAKE. Increment in FMFIND, set to 1 in FMMAKE.
             Modify FMTOVM to issue dispose from Cray to CERNVM
             VM:   Nick names    FATSYS, FATGRP, fatgrp
             VMS:  Logical names FATMEN$SYSTEM, FATMEN$GROUP, DISK$fatgrp
             Unix: Variables     FATSYS, FATGRP, fatgrp
             Send logging message to server only on CERNVM
             Add interface to TMS via routine FMQTMS. Use flag TMS
             to allow sites without TMS to continue.
             Use variables for UNIX systems to determine location of
             FATMEN RZ file (FMgroup=/u/mf/fml3, for ex.) and
             group for which this server is running (FATMEN)
             Use count stored in MSYWFA+1(=MUSCFA)
Version 1.10=Enable CONVEX flag. Introduce FFATMEN patch
Version 1.08=Fix bug in FMALLK when directory is empty.
             Allow VAX server to run under any account.
Version 1.07=Fix bug in FMVERI for check on user words.
             Fix bugs in 1.06. Bad +SELF in FATMDI. Fix bugs in VAXVMS
             version. FATMEN logical names now in GROUP table.
             Add patch FATNEW (to create new RZ file)
             Ensure that directory is reset in FMFNDC
Version 1.06=Fix bug in FMVERI - copy level may be 0. Add EXECs to PAM
             Calls to FMONIT in FMFIND/MAKE rather than FMGET
             Add routine FMVERI, return extra information via IQUEST
             in FMLIFT, FMKDIR. Extend FMOPEN/FMCLOS.
             IQUEST(11) = 1 : generic name already exists
             IQUEST(12) = 0 : path name already exists
             IQUEST(12) = 1 : path name does not exist
             Numeric ranges (m:n) supported in FMLIST
Version 1.05=Add routine FMSORT - call SORTCH (modified from SORTZV)
             Fix problem in FMFZI - allocate next key using FMALLK
             In case of MOD or REP operation, re-use old key.
             Add DCB on STAGE OUT /FILEDEF commands (VM only)
             Add routines FMUPTM/FMPKTM - as DBxxx but with return code
             Use mode 6 for RZ files on VM (unless mode=*)
             Fix bugs in FMATCH. Add routine CSQMCH (squeeze multiple
             characters) Add FMSHOW example print out routine.
             Use DEVTYP SMCF for robot, if VID =Innnnn and MMTPFA=2
             Introduce flag DECS for DEC MIPS. Modify C code to
             use +SELF rather than #IFDEF.
             Add journaling of FZ files. Use AUTOPUT option on
             STAGE OUT command. Tidy LOGL.
Version 1.04=Retry connect to ORACLE up to 5 times. Reinit RZ if
             error from RZFILE. Add FMALLO on VM systems
             New versions of SQL/DS compatible FOxxx routines.
             Cleanup pilot patches. Modify for AIX. Default for CD is PWD
             Find KEYS(1) using FMSELK,FMCOMP in FMFZI (for
             remote delete to work).
             Allow NOWAIT option in FMFIND, if CHLUN=NOWAIT
             Add routine FMCOMP to compare banks pointed to
             by two generic names.
             Add routine FMLIST - combine FMTREE with FMFNMS and wild
             card support for directory names.
             Add G option to FMLS - list full generic name
             Support VAXclusters and DFS in FATMEN selection.
             VAXclusters treated as a single node, DFS disk
             taken after local disk but before local tape.
             (DFS logical name must be in LNM$SYSTEM_TABLE).
             New routine FMSELB to allow user to perform select on
             contents of FATMEN bank.
Version 1.03=Fix bug in call to RZIN - don't use 'S' option.
             Server now uses FATLIB.
             Rewrite FMATCH subroutine. Add LOGLEVEL to FMLS
             Bugs fixes and enhancements from DELPHI installation.
             Add debug print to FOPUT. Add patch TAPELOAD.
             Add PROGRAM FATO2F - recover from ORACLE /SQL and send to
             server as FZ file(s).
             Add DSN to STAGE command. Add UPDATE command to CDF.
             Bugs in FMLIFT/FMLINK fixed (IQUEST/IRC uninitialised)
             Fix bug in FMFILL for user-allocated tapes
             Error message in FMRM if key vector cannot be found
             Add routines FMMOD and FMUPDT
             Examine REXX variable FREE_BLOCKS to determine number
             of records to preformat in RZ file (for FATMEN server)
             Modify FMFZI, FMZTOR and FOPUT to support equivalent
             of DISP=NEW, OLD, MOD.
             Add routine FMSELK to allow selection of files on
             basis of keys vector (e.g. media type, copy level etc.)
             Add SIZE qualifier on input STAGE requests. Sizes are
             based on current VMSTAGE disk sizes.
             Selection of best copy (local_disk>robot_tape>manual_tape)
             Improved logging: Level -3 Suppress all log messages
                                     -2 Error messages
                                     -1 Terse logging
                                      0 Normal (FMINIT, FMEND etc.)
                                      1 Log to watch   FM calls
                                      2 Log to monitor FM decisions
                                      3 Debug messages
             Add PATCH FATSTAT, to print statistics on usage
             of FATMEN RZ database. Current version VM only.
Version 1.02=Bugs reported by CHARM2.
             Conform to CERN Program Library convention for flags
             Preformat RZ file before call to RZMAKE by writing
             2500 records (fills 85% of a 20 cylinder disk)
Version 1.01=Coincide with version 1.00 of documentation
             Add IRC to all FM calls, make FMATCH a subroutine
             Use KIPRMT to set KUIP prompt, rather than KUEXEC
Version 1.00=Meddle meeting of 19/10/89
             and CERN Library release of CNL196
File and Tape Management Package
  Requires:
          CERN libraries,
          HEPVM (VM/CMS systems),
          VMS 4.6 or greater (VAX/VMS systems),
          Apollo SR10        (Apollo systems),
          Unicos             (Cray systems).
 
  Enhancements to external packages:
  Requests from LFATMEN list:
          <> wild-card support (Daniel Lellouch) (done, FMLDIR)
          <n1-n2> in FATMEN selection            (fmnext)
          Wild card support in LS, LD            (done)
          Output to disk files for LS, LD        (done)
          COPY command in FM shell               (done for local files)
          Select disk with max. space for output to search lists (VAX) (done)
  To be clarified:
  For FORTRAN 90:
          Hollerith     (FMSTRT, FMINIT, FMVERS)
          UCOPY         (FMMODU)
+PATCH,FATFLAGS,IF=$DOC. EXPLANATION OF SOME OF THE PATCHY FLAGS
+DECK,BLANKDEK.
+USE,TYPE.    To activate 'STRONG TYPING' for patchy sequences
+USE,TMS.     For systems running the HEPVM Tape Management System (TMS)
+USE,TMSTEST. Use defaults for tapes unknown to TMS
+USE,PREFIX.  For systems supporting VID prefices  (FRCPN11)
+USE,QVID.    For systems without the QVOL command (FRCPN11)
+USE,HEPVM.   To activate HEPVM specific code (SETUP, STAGE etc.) (default)
+USE,SETUP.   To force tape access via SETUP
+USE,STAGE.   To force tape access via STAGE
+USE,SQL.     To activate the SQL code (only in server)
+USE,VMBATCH. If you are running VMBATCH from Systems Center
+USE,VMTAPE.  If you are running VMTAPE  from Systems Center
+USE,VMTMC.   If user tapes are catalogue in the VMTAPE TMC
+USE,CERNVM,IF=CERN,IF=IBMVM.
+PATCH,FATDOC,IF=$DOC.
+PATCH,*FATCAT.
+DECK,BLANKDEK.
+USE,IBMRT,FATCAT.
+PATCH,*DSYIBM.
+DECK,BLANKDEK.
+USE,FATASM.
+USE,NEWLIB.
+USE,DSYIBM.
+USE,IBMMVS.
+USE,FPACK.
+USE,CSPACK.
+PATCH,*GSIIBM.
+DECK,BLANKDEK.
+USE,GSI.
+USE,IBMMVS.
+PATCH,*SHIFT.
+DECK,BLANKDEK.
+USE,SHIFT.
+PATCH,*CERNVM.
+DECK,BLANKDEK.
+USE,TMS.
+USE,TMSTEST,T=INHIBIT.
+USE,CERNVM.
+USE,CERN.
+PATCH,*CERNVMB.
+DECK,BLANKDEK.
+USE,TMS.
+USE,CERNVMB.
+PATCH,*FNAL.
+DECK,BLANKDEK.
+USE,FNAL.
+PATCH,*FRCPN11.
+DECK,BLANKDEK.
+USE,TMS.
+USE,QVID.
+USE,PREFIX.
+PATCH,*LEPICS.
+DECK,BLANKDEK.
+USE,TMS.
+USE,LEPICS.
+PATCH,*UVVM.
+DECK,BLANKDEK.
+USE,TAPESYS.
+PATCH,*APOL3.
+DECK,BLANKDEK.
+USE,TMS,T=INHIBIT.
+USE,TMSTEST,T=INHIBIT.
+USE,APOL3.
+PATCH,*VXCERN.
+DECK,BLANKDEK.
+USE,VXCERN.
+PATCH,*FATRZCHK.
+DECK,BLANKDEK.
+USE,P=QCDE.
+USE,P=FATCDES.
+USE,P=FFATMEN.
+USE,P=FATRZCHK.
+PATCH,*FAT2SQL.
+DECK,FAT2SQL.
+USE,FAT2SQL,FFATMEN,FATCDES.
*CMZ :          18/09/91  16.22.40  by  Jamie Shiers
+PATCH,*FATSQL.
+DECK,BLANKDEK.
+USE,*FOGET.
+USE,*FOPUT.
+USE,*FODEL.
+USE,FMLOGI.
+USE,FATCDES.
+USE,SQLINT.
*CMZ :          18/09/91  16.22.40  by  Jamie Shiers
+PATCH,*FATUSER.
+DECK,BLANKDEK.
+USE,QCDE.
+USE,FATCDES.
+USE,FATUSER.
+USE,FFATMEN.
+PATCH,*FATO2Z.
+DECK,BLANKDEK.
+USE,QCDE.
+USE,FATCDES.
+USE,*SQL.
+USE,FATO2Z.
+USE,FMOTOZ.
CUSE,P=FATBODY,D=FATMDI.
+USE,P=FATSRV,D=FMALLK.
+PATCH,*FATO2F.
+DECK,BLANKDEK.
+USE,QCDE.
+USE,P=FATCDES.
+USE,*SQL.
+USE,FATO2F.
+USE,FMOTOZ.
+PATCH,*FATNEW.
+DECK,BLANKDEK.
+USE,FATCDES.
+USE,FFATMEN.
+USE,FATNEW.
+PATCH,*FATSRV.
+DECK,BLANKDEK.
+USE,P=QCDE.
+USE,P=FATCDES.
+USE,P=FATSRV.
+USE,P=FFATMEN.
+PATCH,*FATSEND.
+DECK,FATSEND.
+USE,P=QCDE.
+USE,P=FATCDES.
+USE,P=FFATMEN.
+USE,P=FATSEND.
*CMZ :          18/09/91  16.22.40  by  Jamie Shiers
+PATCH,*FMCDF.
+DECK,BLANKDEK.
+USE,FMCDF.
*CMZ :          18/09/91  16.22.40  by  Jamie Shiers
+PATCH,*FATMEN.
+DECK,BLANKDEK.
+USE,FFATMEN.
+USE,FATCDES.
+USE,FMKUIP.
+USE,FMCDF.
+PATCH,*FMKUIP.
+DECK,BLANKDEK.
+USE,FFATMEN.
+USE,FATCDES.
+USE,FMKUIP.
+USE,FMCDF.
+PATCH,*FATLIB.
+DECK,BLANKDEK.
+USE,FFATMEN.   Flags for FATMEN
+USE,FATCDES.   CDEs for FATMEN
+USE,FMINT.     FATMEN interface
+USE,FATUTIL.   Utility routines - documented
+USE,FMUTIL.    Utility routines - undocumented
+USE,FATUOUS.   Novice user interface
+USE,FMTMS.     FATMEN<->TMS interface routines
+USE,FATBODY.   FATMEN routines for Zebra interface
+USE,FATUSER.   Dummy user selection routines
+USE,L3UTIL.    L3 utility routines - for backward compatibility
+USE,FMVAX,IF=VAXVMS. VAX specific routines (for interface to STAGE)
+PATCH,*FMFIND.
+DECK,blankdek.
+USE,FFATMEN.
+USE,FATCDES.
+USE,FMFIND.
+PATCH,*FMGET.
+DECK,blankdek.
+USE,FFATMEN.
+USE,FATCDES.
+USE,FMGET.
+PATCH,*CHEOPSIF.
+DECK,BLANKDEK.
+USE,FFATMEN.   Flags for FATMEN
+USE,FATCDES.   CDEs for FATMEN
+USE,CHEOPSIF.  Special interface for CHEOPS
+PATCH,*CHEOPS2F.
+DECK,CHEOPS2F.
+USE,P=CHEOPS2F.
+USE,P=FFATMEN.
+USE,P=FATCDES.
*CMZ :          23/04/92  10.45.49  by  Jamie Shiers
+PATCH,*SQL.
+DECK,BLANKDEK.
+USE,SQLCOM.
+USE,FMZTOR.
+USE,FFATMEN.
+PATCH,*FODEL.   PILOT PATCH FOR FODEL
+DECK,BLANKDEK.
+USE, SQLCOM, FODEL.
+PATCH,*FOGET.   PILOT PATCH FOR FOGET
+DECK,BLANKDEK.
+USE, SQLCOM, FOGET.
+PATCH,*FOPUT.   PILOT PATCH FOR FOPUT
+DECK,BLANKDEK.
+USE, SQLCOM, FOPUT.
+PATCH,*FATSCAN2.
+DECK,BLANKDEK.
*CMZ :  1.66/06 27/11/91  09.28.33  by  Jamie Shiers
+USE,P=FFATMEN.
+USE,P=FATCDES.
+USE,P=EXAMPLE,D=FATSCAN2.
+PATCH,*FATCHK.
+DECK,blankdek.
+USE,FFATMEN.
+USE,FATCDES.
+USE,FATCHK.
+PATCH,*FATBACK.
+DECK,blankdek.
+USE,FFATMEN.
+USE,FATCDES.
+USE,FATBACK.
+PATCH,*FATOUCH.
+DECK,BLANKDEK.
+USE,FATCDES,FFATMEN.
+USE,P=EXAMPLE,D=FATOUCH.
+PATCH,*FATPARA.
+DECK,BLANKDEK.
*CMZ :  1.66/06 06/01/92  09.25.51  by  Jamie Shiers
*CMZ :          06/01/92  09.25.51  by  Jamie Shiers
+USE,FATCDES.
+USE,FATPARA.
+PATCH,*FATSREQ.
+DECK,blankdek.
+USE,FFATMEN.
+USE,FATCDES.
+USE,FATSREQ.
+PATCH,*STGSERV.
+DECK,STGSERV.
+USE,STGSERV,IF=VAXVMS.
+PATCH,FFATMEN.
+DECK,BLANKDEK.
+USE, IBM,    IF=IBMMVS,IBMVM.
+USE, UNIX,   IF=ALLIANT,APOLLO,CONVEX,CRAY,IBMAIX,UNISYS.
+USE, UNIX,   IF=DECS,GOULD,HPUX,IBMRT,MACMPW,MIPS,SGI,SUN.
+USE, UNIX,   IF=NEXT,QMVAOS.
+USE, APOL3,  IF=APOLLO.
+USE, FMC,    IF=UNIX,IF=*FATLIB.
+USE, FMH,    IF=UNIX,IF=*FATLIB.
+USE, FATASM, IF=IBMMVS,IF=*FATLIB.
+USE, VAX,    IF=VAXVMS,VAXULX.
+USE, DOUBLE, IF=IBM, VAX, NORD.
+USE, DOUBLE, IF=UNIX, IF=-SINGLE.
+USE, QMIBMXA,IF=IBM.
+USE, VMCENTER,IF=FERMI,IF=IBMVM.
+USE, VMBATCH, VMTAPE,IF=VMCENTER.
+USE, HEPVM,   IF=IBMVM,IF=-VMTAPE,IF=-VMBATCH.
+USE, VAXTAP,  IF=VAXVMS.
+USE, QXCAPT,  IF=CRAY.
+USE, QX_SC,   IF=SUN, SGI, DECS, CONVEX, IBMRT, HPUX, AIX370, APOF77.
+USE, QX_SC,   IF=NEXT,QMVAOS.
+USE, QXNO_SC, IF=APOLLO,IF=-APOF77.
+USE, BSD,     IF=APOLLO, SGI, SUN.
+USE, SYS5,    IF=IBMRT, DECS, HPUX.
+USE, DCL,     IF=VAXVMS,IF=*FATLIB.
+USE, SCRIPT,  IF=UNIX,IF=*FATLIB.
+USE, REXX,    IF=IBMVM,IF=*FATLIB.
+PATCH,FATHEAD,IF=$DOC.
+PATCH,FATCDES.
+DECK,FATCDES.
+KEEP,FATSTAT.
*
*     Count number of server operations:
*        Number of different users, nodes, files, commands,
*        PUTs, MODs, DELs, MKDIRs, RMDIRs, OPENs and CLOSEs.
*        NFMUSR and NMFNOD not currently counted
*     Problems:
*        Number of warnings from RZDELK
*        Number of PUTs for existing entries
*        Number of REPs for non-existing entries
*        Number of DELs for non-existing entries
*        Number of BAD  (unrecognised) commands
*        Number of logging records
*
      COMMON/FATSTAT/NFMUSR,NFMNOD,NFMFIL,NFMCOM,NFMPUT,
     +               NFMMOD,NFMDEL,NFMMDR,NFMRMD,NFMOPN,
     +               NFMCLS,NFMPDK,NFMPRP,NFMPDL,NFMBAD,
     +               NFMLOG
+KEEP,FAUSTO.
      PARAMETER (KOHOLL=0)
      PARAMETER (KLHOLL=70)
 
      PARAMETER (KOREAL=KOHOLL+KLHOLL)
      PARAMETER (KLREAL=20)
 
      PARAMETER (KODATE=KOREAL+KLREAL)
      PARAMETER (KLDATE=10)
 
      PARAMETER (KOCMOD=KODATE+KLDATE)
      PARAMETER (KLCMOD=20)
 
      PARAMETER (KOFILE=KOCMOD+KLCMOD)
      PARAMETER (KLFILE=10)
 
      PARAMETER (KOTMS =KOFILE+KLFILE)
      PARAMETER (KLTMS =20)
 
      PARAMETER (KOCFAT=KOTMS +KLTMS )
      PARAMETER (KLCFAT=20)
 
      PARAMETER (KLINT = KLDATE+KLCMOD+KLFILE+KLTMS+KLCFAT)
*
*     Hollerith block
*
      PARAMETER (KFMSYS=KOHOLL+2)
      PARAMETER (KFMGRP=KOHOLL+7)
      PARAMETER (KFMTIT=KOHOLL+12)
      PARAMETER (KFMUSR=KOHOLL+31)
      PARAMETER (KFMHST=KOHOLL+41)
      PARAMETER (KFMTYP=KOHOLL+51)
      PARAMETER (KFMOS =KOHOLL+61)
*
*     MB counts
*
      PARAMETER (KFMMBR=KOREAL+1)
      PARAMETER (KFMMBW=KOREAL+2)
      PARAMETER (KFZMBR=KOREAL+3)
      PARAMETER (KFZMBW=KOREAL+4)
      PARAMETER (KFMMBC=KOREAL+5)
      PARAMETER (KFMMBN=KOREAL+6)
      PARAMETER (KFMMBQ=KOREAL+7)
*
*     Dates and times
*
      PARAMETER (KFMIDQ=KODATE+1)
      PARAMETER (KFMIDS=KODATE+2)
      PARAMETER (KFMIDE=KODATE+3)
*
*     Catalogue modifications
*
      PARAMETER (KFMADD=KOCMOD+1)
      PARAMETER (KFMADL=KOCMOD+2)
      PARAMETER (KFMADT=KOCMOD+3)
      PARAMETER (KFMMDR=KOCMOD+4)
      PARAMETER (KFMRDR=KOCMOD+5)
      PARAMETER (KFMRLN=KOCMOD+6)
      PARAMETER (KFMRTR=KOCMOD+7)
      PARAMETER (KFMRMF=KOCMOD+8)
      PARAMETER (KFMCPF=KOCMOD+9)
      PARAMETER (KFMMVF=KOCMOD+10)
      PARAMETER (KFMMOD=KOCMOD+11)
      PARAMETER (KFMTCH=KOCMOD+12)
*
*     File accesses (OPENs, CLOSEs, COPYs)
*
      PARAMETER (KFMOPN=KOFILE+1)
      PARAMETER (KFMCLS=KOFILE+2)
      PARAMETER (KFMCPY=KOFILE+3)
      PARAMETER (KFMCPQ=KOFILE+5)
      PARAMETER (KFMCPN=KOFILE+5)
*
*     SYSREQ and TMS operations
*
      PARAMETER (KFMSRQ=KOTMS+1)
      PARAMETER (KFMQVL=KOTMS+2)
      PARAMETER (KFMAVL=KOTMS+3)
      PARAMETER (KFMASP=KOTMS+4)
      PARAMETER (KFMPOL=KOTMS+5)
      PARAMETER (KFMLCK=KOTMS+6)
      PARAMETER (KFMULK=KOTMS+7)
      PARAMETER (KFMDTG=KOTMS+8)
      PARAMETER (KFMGTG=KOTMS+9)
      PARAMETER (KFMSTG=KOTMS+10)
*
*     Catalogue processing
*
      PARAMETER (KFMBNK=KOCFAT+1)
      PARAMETER (KFMGET=KOCFAT+2)
      PARAMETER (KFMGTK=KOCFAT+3)
      PARAMETER (KFMSHW=KOCFAT+4)
      PARAMETER (KFMSCN=KOCFAT+5)
      PARAMETER (KFMLOP=KOCFAT+6)
      PARAMETER (KFMLDR=KOCFAT+7)
      PARAMETER (KFMLFL=KOCFAT+8)
      PARAMETER (KFMSRT=KOCFAT+9)
      PARAMETER (KFMRNK=KOCFAT+10)
      PARAMETER (KFMSLK=KOCFAT+11)
      PARAMETER (KFMMTC=KOCFAT+12)
 
+KEEP,FAUST.
*
*     FATMEN USer STatistics
*
*     Adds, MKDIRS, RMDIRS etc.
*
      INTEGER      NFADDD,NFADDL,NFADDT,NFMDIR,NFRDIR,NFRLNK,NFRTRE,
     +             NFRMFL,NFCPFL,NFMVFL,NFMODI,NFTOUC
*
*     OPENs, CLOSEs, COPYs etc.
*
      INTEGER      NFOPEN,NFCLOS,NFCOPY,NFCOPR,NFCOPQ
*
*     TMS operations
*
      INTEGER      NFSREQ,NFQVOL,NFAVOL,NFASPC,NFPOOL,NFLOCK,NFULOK,
     +             NFDTAG,NFGTAG,NFSTAG
*
*     Catalogue operations
*
      INTEGER      NFBANK,NFGET, NFGETK,NFSHOW,NFSCAN,NFLOOP,NFLDIR,
     +             NFLFIL,NFSORT,NFRANK,NFSELK,NFMTCH
*
*     # MB read/written
*
      REAL         FATMBR,FATMBW,FATMZR,FATMZW,FATMBC,FATMBQ,FATMBN
*
*     Stuff
*
      INTEGER      NFSTAD,NFSTAT
 
      COMMON/FAUST/NFADDD,NFADDL,NFADDT,NFMDIR,NFRDIR,NFRLNK,NFRTRE,
     +             NFRMFL,NFCPFL,NFMVFL,NFMODI,NFTOUC,
     +             NFOPEN,NFCLOS,NFCOPY,NFCOPR,NFCOPQ,
     +             NFSREQ,NFQVOL,NFAVOL,NFASPC,NFPOOL,NFLOCK,NFULOK,
     +             NFDTAG,NFGTAG,NFSTAG,
     +             NFBANK,NFGET, NFGETK,NFSHOW,NFSCAN,NFLOOP,NFLDIR,
     +             NFLFIL,NFSORT,NFRANK,NFSELK,NFMTCH,
     +             NFSTAD,NFSTAT,
     +             FATMBR,FATMBW,FATMZR,FATMZW,FATMBC,FATMBQ,FATMBN
+KEEP,FACARD.
      COMMON/FACARD/IWIDTH,CARD
      CHARACTER*132 CARD
+KEEP,FATMON.
*
*     Fatmen monitoring information
*     IHOWFA: how was file accessed?
*     ITIMFA: elapsed time in FMOPEN (in seconds)
*     CHFNFA: fully qualified file name, except VM
*
      CHARACTER*255 CHFNFA
      COMMON/FATMON/IHOWFA,ITIMFA,CHFNFA
*     Local disk (standard file system)
      PARAMETER (JLOCFA=1)
*     VM shared file system
      PARAMETER (JSFSFA=2)
*     MSCP (VAXcluster)
      PARAMETER (JMSCFA=3)
*     Andrew file system
      PARAMETER (JAFSFA=4)
*     OSF distributed file system
      PARAMETER (JOSFFA=5)
*     DEC DFS
      PARAMETER (JDFSFA=6)
*     Sun NFS
      PARAMETER (JNFSFA=7)
*     DECnet
      PARAMETER (JDECFA=8)
*     CSPACK server
      PARAMETER (JCSPFA=9)
*     FPACK server
      PARAMETER (JFPKFA=10)
*     RFIO
      PARAMETER (JRFIFA=11)
*     Lachman OSM
      PARAMETER (JOSMFA=12)
*     Unitree
      PARAMETER (JUNIFA=13)
*     Adstar ADSM
      PARAMETER (JDSMFA=14)
*     E-MASS
      PARAMETER (JEMSFA=15)
*     Stage required
      PARAMETER (JSTGFA=31)
*     TPMNT (=not staged)
      PARAMETER (JTPMFA=32)
+KEEP,FATDUMMY.
      IF(IDEBFA.GE.2) PRINT *,CHROUT,'dummy user exit called'
+KEEP,FATSHIFT.
*
*     Shift configuration file
*
      COMMON/FMSHIFT/LSHCONF,LTPCONF,SHCONF,TPCONF
      CHARACTER*255  SHCONF,TPCONF
+KEEP,FATAPOL3.
      COMMON/FMAPOL3/IAPOL3
+KEEP,FATCLIO.
      COMMON/FMCLIO/ICLIO
+KEEP,FATMSS.
      COMMON/FATMSS/IFMMSS
+KEEP,FATGET.
      COMMON/FATGET/ISFGET
+KEEP,FATVAXRC.
* sequence FATVAXRC
      IF(.NOT.ISTAT) THEN
         CALL LIB$SIGNAL(%VAL(ISTAT))
         IRC = 42
      ENDIF
+KEEP,FMQUED.
      COMMON/FMQUED/LQUED,CHQUED
      CHARACTER*255 CHQUED
+KEEP,FATSTRUCT,IF=F90.
*
*     Draft F90 derived data type for mapping to FATMEN bank
*
      TYPE FATBANK
*
*     Generic file description
*
         CHARACTER*256 FILE_NAME
         CHARACTER*8   HOST_NAME
         INTEGER       COPY_LEVEL
         INTEGER       MEDIA_TYPE
         INTEGER       LOCATION_CODE
*
*     Disk description
*
         CHARACTER*16  HOST_TYPE
         CHARACTER*12  HOST_SYSTEM
*
*     Tape description
*
         CHARACTER*8   VSN
         CHARACTER*8   VID
         INTEGER       VID_PREFIX
         INTEGER       DENSITY
         INTEGER       VOLUME_SEQUENCE_NUMBER
         INTEGER       FILE_SEQUENCE_NUMBER
*
*     File description
*
         INTEGER       START_RECORD
         INTEGER       END_RECORD
         INTEGER       START_BLOCK
         INTEGER       END_BLOCK
*
*     Physical description
*
         CHARACTER*4   RECORD_FORMAT
         INTEGER       RECORD_LENGTH
         INTEGER       BLOCK_LENGTH
         INTEGER       FILE_SIZE
         INTEGER       USE_COUNT
*
*     Logical description
*
         CHARACTER*4   LOGICAL_FORMAT
         CHARACTER*4   USER_FORMAT
*
*     Dates and times
*
         INTEGER       DATE_CREATED
         INTEGER       DATE_CATALOGUED
         INTEGER       DATE_ACCESSED
*
*     Creation information
*
         CHARACTER*8   CREATED_BY_OWNER
         CHARACTER*8   CREATED_BY_ACCOUNT
         CHARACTER*8   CREATED_ON_NODE
         CHARACTER*8   CREATED_BY_JOB
*
*     File protection
*
         INTEGER       FILE_PROTECTION_MASK
*
*     User words
*
         INTEGER       USER_WORDS(10)
*
*     System words
*
         INTEGER       SYSTEM_WORDS(10)
      END TYPE FATBANK
+SELF.
 
+KEEP,CHEOPS.
*
*     CHEOPS error messages
*
      PARAMETER    (NKEOPS=5)
      CHARACTER*80 MKEOPS(NKEOPS)
      DATA         MKEOPS(1)/'Inquire on dataset failed'/,
     +             MKEOPS(2)/'Dataset not regular'/,
     +             MKEOPS(3)/'Cannot open dataset'/,
     +             MKEOPS(4)/'Cannot close dataset'/,
     +             MKEOPS(5)/'Transaction expired'/
*define CC_OK                   0
*define CC_STATONDATASETFAILS   1
*define CC_DATASETNOTREGULAR    2
*define CC_CANNOTOPENDATASET    3
*define CC_CANNOTCLOSEDATASET   4
*define CC_TRANSACTIONEXPIRED   5
+KEEP,FMSHFT.
      COMMON/FMSHFT/SHFNAM,SHUNAM,SHPOOL,SHUSER
      CHARACTER*255 SHFNAM,SHUNAM
      CHARACTER*16  SHPOOL,SHUSER
 
+KEEP,FATLAB0.
      CHARACTER*6   VAXLAB(3)
      CHARACTER*2   IBMLAB(3)
+KEEP,FATLAB1.
      DATA          IBMLAB(1)/'SL'/,IBMLAB(2)/'NL'/IBMLAB(3)/'AL'/
      DATA          VAXLAB(1)/'EBCDIC'/,
     +              VAXLAB(2)/'NONE  '/,
     +              VAXLAB(3)/'ASCII '/
+KEEP,FATLAB.
+CDE,FATLAB0.
+CDE,FATLAB1.
 
+KEEP,FASPAC.
      COMMON/FASPAC/NPRIFA,NSECFA
+KEEP,FARSTG.
*
*     Wait time for remote job:
*        IWTNET - time to wait if network is down
*        IWTACK - time for acknowledgement
*        IWTPND - time when entry is pending
*        IWTEXE - time when entry is executing
*
      COMMON/FARSTG/IWTNET,IWTACK,IWTPND,IWTEXE,MAXNET,MAXACK
+KEEP,FATRON.
      COMMON/FATRON/LTHR,THRONG
      CHARACTER*8   THRONG
+KEEP,FSTATE.
      COMMON/FSTATE/MFPHAS
+KEEP,FATRAN0.
      PARAMETER     (NTRANS=3)
      COMMON/FATRAN/ITRANS
      CHARACTER*8   CHTRNS(NTRANS),TRANSP(NTRANS)
+KEEP,FATRAN1.
      DATA          CHTRNS/'T*CPIP','D*ECNET','C*HEOPS'/
      DATA          TRANSP/'TCPIP ','DECNET','CHEOPS '/
+KEEP,FATRAN.
+CDE,FATRAN0.
+CDE,FATRAN1.
+KEEP,CZSOCK.
      COMMON/CZSOCK/LUNCZ,IADTCP,LBUF,ISKIN,ISKOUT,IPROT,
     +              JUNIT(99),JSKIN(99),JSKOUT(99),CUNODE,
     +              CHNODE(99),CHUSER(99)
      CHARACTER*12  CHNODE,CUNODE,CHUSER
      PARAMETER (LNODE=12)
      PARAMETER (LUSER=12)
      PARAMETER (MAXSOC=99)
*
*     IPROT: 0 - TCP/IP (TCPAW)
*            1 - DECnet (included in CZ)
*     CHNODE & CHUSER store the node and user names that correspond
*     to JUNIT
*
+KEEP,FATSAT0.
      COMMON/FATSAT/LSRCST,LDSTST,CHSRCE,CHDEST
      CHARACTER*40  CHSRCE,CHDEST
*
*     CHEOPS sites
*
      PARAMETER   (NSITES=5)
      CHARACTER*8 CHSITE(NSITES)
+KEEP,FATSAT1.
      DATA        CHSITE(1)/'CERN    '/,
     +            CHSITE(2)/'HELSINKI'/,
     +            CHSITE(3)/'LISBON  '/,
     +            CHSITE(4)/'SARDINIA'/,
     +            CHSITE(5)/'ATHENS  '/
+KEEP,FATSAT.
+CDE,FATSAT0.
+CDE,FATSAT1.
 
*
+KEEP,ERRNO.
*
*     Extract from /usr/include/sys/errno.h
*             or   sys$library:errno.h
*
*define  ECONNRESET     54    /* Connection reset by peer */
*define  ETIMEDOUT      60    /* Connection timed out */
*define  ECONNREFUSED   61    /* Connection refused */
      IFATRC(1)=54
      IFATRC(2)=60
      IFATRC(3)=61
      IFATRC(4)=3
      IRETRY(1)=60
      IRETRY(2)=5
      IRETRY(3)=5
      IRETRY(4)=60
+KEEP,ERRSGI.
*define  ECONNRESET     120   /* Connection reset by peer */
*define  ETIMEDOUT      126   /* Connection timed out */
*define  ECONNREFUSED   127   /* Connection refused */
      IFATRC(1)=120
      IFATRC(2)=126
      IFATRC(3)=127
      IFATRC(4)=3
      IRETRY(1)=60
      IRETRY(2)=5
      IRETRY(3)=5
      IRETRY(4)=60
+KEEP,ERRCRAY.
*define  ECONNRESET     145   /* Connection reset by peer */
*define  ETIMEDOUT      151   /* Connection timed out */
*define  ECONNREFUSED   152   /* Connection refused */
      IFATRC(1)=145
      IFATRC(2)=151
      IFATRC(3)=152
      IFATRC(4)=3
      IRETRY(1)=60
      IRETRY(2)=5
      IRETRY(3)=5
      IRETRY(4)=60
+KEEP,FATINIT.
      IF(SERNAM(1:4).EQ.'INIT') THEN
         PRINT *,'Error - FATMEN has not been initialised'
         RETURN
      ENDIF
+KEEP,FATDCB.
      COMMON/FATDCB/TYPE,HDSN,DISP,VOL,LABEL,IDCB,
     +              UNIT,ISPACE,IUSED
      INTEGER       TYPE,HDSN(14),DISP(3),VOL(2),LABEL(3),IDCB(4),
     +              UNIT(2),ISPACE(4),IUSED(5)
      COMMON/FATSPA/CHSPAC
      CHARACTER*4   CHSPAC
+KEEP,FATNET.
      PARAMETER (NERRS=4)
      DIMENSION IFATRC(NERRS),IRETRY(NERRS)
+KEEP,SLATE.
      COMMON/SLATE/IS(40)
      INTEGER      IS
+KEEP,SLATEX.
      COMMON/SLATEX_/IS(40)
      INTEGER      IS
+KEEP,FAT.
      PARAMETER (LURCOR=200000)
      COMMON/FAT/IXSTOR,IXDIV,IFENCE(2),LEV,LEVIN,BLVECT(LURCOR)
      DIMENSION    LQ(999),IQ(999),Q(999)
      EQUIVALENCE (IQ(1),Q(1),LQ(9)),(LQ(1),LEV)
+KEEP,FATLNK.
*
      COMMON/FATLNK/LOPNBK,LCLSBK,LCP1BK,LCP2BK
+KEEP,FATUSR.
*
      COMMON /USRLNK/LUSRK1,LUSRBK,LADDBK,LUSRLS
+KEEP,FMAXCOP.
*
*     The following statement limits the maximum number of copies
*     of a file that can exist, i.e. the maximum number of entries
*     with the same generic name
*
      PARAMETER (MAXCOP=100)
+KEEP,FMNKEYS.
      PARAMETER (LKEYFA=10)
+KEEP,FATOUT.
      COMMON/FATOUT/OUTPUT,LPIPE
      CHARACTER*80  OUTPUT
+KEEP,FARNGE.
*     NFRNGE - range count (e.g. [8:10] = 3)
*     IFRNGE - 8,9,10 (in previous example)
      COMMON/FARNGE/NFRNGE(20),IFRNGE(100,20),
     +              IFELEM(100,20),IFVAL(100,20)
+KEEP,FAEXCM. For FMEXTR
      COMMON/FAEXCM/NFILES,NBAD
+CDE,FATOPTD.
+KEEP,FAMUCM. For FMMODU
      COMMON/FAMUCM/IOPT,IWORDS(10),CHUCOM,CHUFRM,CHFILE
      CHARACTER*80 CHUCOM
      CHARACTER*4  CHUFRM
      CHARACTER*20 CHFILE
+CDE,FATOPTD.
+KEEP,FAHUCM. For FMHUNT
+CDE,FMNKEYS.
      COMMON/FAHUCM/KEYH(LKEYFA),CHFILE
      CHARACTER*255 CHFILE
+KEEP,FALNCM. For FMRMLN/FALN
      COMMON/FALNCM/LWRITE,NLINKS,NFILES,IOPTTD,IOPTTF,IOPTTP,IOPTTR
+KEEP,FASECM. For FMSEAC
      COMMON/FASECM/LWRITE,NFILES,NDIRS,NMATCH,IOPT,
     +              LDSN,LHOST,LVID,LUSER,LFORM,LCOMM,LSTR,
     +              DSN,HOST,VID,USER,CHFILE,UFORM,COMM,CHSTR
      CHARACTER*255 CHFILE,CHSTR
      CHARACTER*255 HOST,VID,USER
      CHARACTER*255 DSN,UFORM,COMM
+CDE,FATOPTD.
+KEEP,FALSCM. For FMLS(C)
      COMMON/FALSCM/LWRITE,NFILES,NFILT,NDIRT,IOPT,CHFILE
      CHARACTER*20  CHFILE
+CDE,FATOPTD.
+KEEP,FAFCCM. For FMFC
      COMMON/FAFCCM/LWRITE,IOPTD,IOPTF,IOPTL,IOPTZ,
     +              NFOUND,NMATCH,NDIRT,CHFILE
      CHARACTER*20  CHFILE
+KEEP,FATSEA.
      COMMON/FATSEA/IDCREA,ITCREA,JDCREA,JTCREA,
     +              IDCATA,ITCATA,JDCATA,JTCATA,
     +              IDLAST,ITLAST,JDLAST,JTLAST,
     +              IUSER(2,10)
+KEEP,FATUWD.
      COMMON/FATUWD/IFUSER(2,10)
+KEEP,FATKEY.
      COMMON/FATKEY/NUMKEY,MFMKEY(KMXKEY),CHKEY
      CHARACTER*8   CHKEY
+KEEP,FATLCC.
*
*     Location code definitions (from FATMEN.LOCCODES)
*
      PARAMETER (MXLCFA=99)
      CHARACTER*255 CHLOCF
      COMMON/FATLCC/NKLCFA,NLCCFA(MXLCFA),CHLOCF(MXLCFA)
+KEEP,FATLOC.
      COMMON/FATLOC/NUMLOC,MFMLOC(KMXLOC)
+KEEP,FATCPL.
      COMMON/FATCPL/NUMCPL,MFMCPL(KMXCPL)
+KEEP,FATMTP.
      COMMON/FATMTP/NUMMTP,MFMMTP(KMXMTP)
+KEEP,FATLUN.
      COMMON/FATLUN/NUMLUN,MFMLUN(KMXLUN),MFMLUA(KMXLUN)
+KEEP,FATSEL.
*
*     Common to store ranges for KEYS (for FATMEN selection)
*
      COMMON/FATSEL/MRMTFA(2),MRCLFA(2),MRLCFA(2)
+KEEP,FATINFO.
*
*     Common to store FATMEN information per LUN
*     Access method (disk, stage, setup) and filemode (CMS only)
*     Virtual address for tape drive
*     This information is set by FMOPEN/FIND/MAKE and subsequently
*     used by FMCLOS.
*
*     IFMODE: 0: FZin, 1: FZout, 2: RZ
*     JFMODE: ICFOP from FMOPEN (Fortran, C, package I/O)
*     LFMODE: 1=disk, 2=stage, 3=tape
*
      COMMON/FATINF/IVADDR(99),IDEV(99),  IFMODE(99),
     +              JFMODE(99),LFMODE(99),IFPNTR(99),CHMODE(99)
      CHARACTER*1   CHMODE
+KEEP,FATOSET.
      DO 9999 I=1,36
9999  IOPT(I) = 1
+KEEP,FATOPT0.
      DIMENSION      IOPT(36)
      EQUIVALENCE    (IOPT(1),IOPTA),(IOPT(2),IOPTB),(IOPT(3),IOPTC),
     +               (IOPT(4),IOPTD),(IOPT(5),IOPTE),(IOPT(6),IOPTF),
     +               (IOPT(7),IOPTG),(IOPT(8),IOPTH),(IOPT(9),IOPTI),
     +               (IOPT(10),IOPTJ),(IOPT(11),IOPTK),(IOPT(12),IOPTL),
     +               (IOPT(13),IOPTM),(IOPT(14),IOPTN),(IOPT(15),IOPTO),
     +               (IOPT(16),IOPTP),(IOPT(17),IOPTQ),(IOPT(18),IOPTR),
     +               (IOPT(19),IOPTS),(IOPT(20),IOPTT),(IOPT(21),IOPTU),
     +               (IOPT(22),IOPTV),(IOPT(23),IOPTW),(IOPT(24),IOPTX),
     +               (IOPT(25),IOPTY),(IOPT(26),IOPTZ),(IOPT(27),IOPT1),
     +               (IOPT(28),IOPT2),(IOPT(29),IOPT3),(IOPT(30),IOPT4),
     +               (IOPT(31),IOPT5),(IOPT(32),IOPT6),(IOPT(33),IOPT7),
     +               (IOPT(31),IOPT5),(IOPT(32),IOPT6),(IOPT(33),IOPT7),
     +               (IOPT(34),IOPT8),(IOPT(35),IOPT9),(IOPT(36),IOPT0)
      CHARACTER*36   ALFNUM
+KEEP,FATOPT1.
      DATA           ALFNUM/'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'/
 
+KEEP,FATOPTD.
+CDE,FATOPT0.
+CDE,FATOPT1.
 
+KEEP,FATOPTS.
      CHARACTER*(*)  CHOPT
+CDE,FATOPTD.
      CALL FMOPTC(CHOPT,ALFNUM,IOPT)
*     CALL UOPTC(CHOPT,ALFNUM,IOPT)
+KEEP,FATOPTC.
      CALL FMOPTC(CHOPT,ALFNUM,IOPT)
+KEEP,TMSREP.
      PARAMETER     (LENREP=20)
      CHARACTER*132 TMSREP(LENREP)
+KEEP,TMSDEF0.
      CHARACTER*6  DENS
      CHARACTER*8  LIB
      CHARACTER*4  LABTYP
      CHARACTER*1  MNTTYP
      CHARACTER*8  MODEL
      CHARACTER*7  ROBMAN(2)
+KEEP,TMSDEF1.
      DATA         ROBMAN(1)/'-Robot '/,ROBMAN(2)/'-Manual'/
+KEEP,TMSDEF.
+CDE,TMSDEF0.
+CDE,TMSDEF1.
 
+KEEP,FATVID0.
*
*     Sequence FATVIDP - table of VID prefices
*
      CHARACTER*8 PREVID(6)
      INTEGER     NTMS
      PARAMETER   (NTMS=6)
+KEEP,FATVID1.
      DATA        PREVID(1) /'CERN    '/,PREVID(2) /'IN2P3   '/,
     +            PREVID(3) /'SACLAY  '/,PREVID(4) /'DESY    '/,
     +            PREVID(5) /'RAL     '/,PREVID(6) /'SEFT    '/
 
+KEEP,FATVIDP.
+CDE,FATVID0.
+CDE,FATVID1.
 
+KEEP,FATFORM0.
*
*     Sequence FATFORM. File format (MFLFFA) and record format (MRFMFA)
*     definitions
*
      PARAMETER (NFATFM=21)
      CHARACTER*4 FATFRM(NFATFM)
 
      PARAMETER (NRECFM=8)
      CHARACTER*4 FRCFM(NRECFM)
 
      INTEGER   FMXBLK,FMXREC
 
> *
> *     New tapes support block lengths 8 times ANSI standard
> *
      PARAMETER (FMXBLK=65536)
      PARAMETER (FMXBLK=65536)
*     PARAMETER (FMXREC=8192)
*     PARAMETER (FMXREC=8192)
+KEEP,FATFORM1.
      DATA FATFRM(1)/'FZ  '/,
     +     FATFRM(2)/'FA  ' /,
     +     FATFRM(3)/'FX  ' /,
     +     FATFRM(4)/'FFX ' /,
     +     FATFRM(5)/'RZ  ' /,
     +     FATFRM(6)/'RX  ' /,
     +     FATFRM(7)/'EP  ' /,
     +     FATFRM(8)/'AS  ' /,
     +     FATFRM(9)/'UN  ' /,
     +     FATFRM(10)/'DA  ' /,
     +     FATFRM(11)/'FXN ' /,
     +     FATFRM(12)/'FPT ' /,
     +     FATFRM(13)/'FPS ' /,
     +     FATFRM(14)/'FPD ' /,
     +     FATFRM(15)/'FPK ' /,
     +     FATFRM(16)/'FPO ' /,
     +     FATFRM(17)/'YBB ' /,
     +     FATFRM(18)/'YBD ' /,
     +     FATFRM(19)/'RWN ' /,
     +     FATFRM(20)/'CWN ' /,
     +     FATFRM(21)/'EBCD' /
 
      DATA FRCFM(1)/'F   '/,
     +     FRCFM(2)/'FB  '/,
     +     FRCFM(3)/'V   '/,
     +     FRCFM(4)/'VB  '/,
     +     FRCFM(5)/'VBS '/,
     +     FRCFM(6)/'VS  '/,
     +     FRCFM(7)/'U   '/,
     +     FRCFM(8)/'RMS '/
 
+KEEP,FATFORM.
+CDE,FATFORM0.
+CDE,FATFORM1.
 
+KEEP,FATSTG.
*
*     Sequence FATSTG. Media size and density definitions
*     plus stage path name (first for L3)
*
      COMMON/FATSTG/ISIZSG,STGPTH
      CHARACTER*255 STGPTH
 
+KEEP,FATTYP. Media type definitions
      PARAMETER    (NMTYP=100)
      COMMON/FATTYP/NFMTYP,CHMTYP,CHMGEN,CHMSIZ,
     +              CHMDEN,CHMMNT,CHMLAB,MEDSIZ,
     +              MEDDEN,MEDHWM,MEDMFL,MEDMFS
      INTEGER       NFMTYP
      INTEGER       MEDSIZ(NMTYP),MEDDEN(NMTYP),
     +              MEDHWM(NMTYP),MEDMFL(NMTYP),
     +              MEDMFS(NMTYP)
      CHARACTER*8   CHMTYP(NMTYP),CHMGEN(NMTYP),
     +              CHMSIZ(NMTYP),CHMDEN(NMTYP),
     +              CHMMNT(NMTYP),CHMLAB(NMTYP)
 
+KEEP,FATMED0. Default media attributes
      PARAMETER     (NMEDIA=14)
*
*     FATMEN media type
*
      DIMENSION     MFMMED(NMEDIA)
*
*     Generic device type
*
      CHARACTER*8   MFMGEN(NMEDIA)
*
*     Physical device type
*
      CHARACTER*8   MFMTYP(NMEDIA)
*
*     Default density
*
      CHARACTER*8   MFMDEN(NMEDIA)
*
*     Media size in Megabytes
*
      CHARACTER*8   MFMSIZ(NMEDIA)
*
*     Default mount type
*
      CHARACTER*1   MFMMNT(NMEDIA)
*
*     Default label type
*
      CHARACTER*2   MFMLAB(NMEDIA)
 
+KEEP,FATMED1.
*     SYSREQ TMS Q DEVTYPES
*     TMS Model
      DATA          MFMTYP(1)/'DISK'/,MFMTYP(2)/'3480'/,
     +              MFMTYP(3)/'3420'/,MFMTYP(4)/'8200'/,
     +              MFMTYP(5)/'8500'/,MFMTYP(6)/'3490'/,
     +              MFMTYP(7)/'DAT60'/,MFMTYP(8)/'DAT90'/,
     +              MFMTYP(9)/'3490E'/,MFMTYP(10)/'AMPEX'/,
     +              MFMTYP(11)/'REDWOOD'/,MFMTYP(12)/'DLT2'/,
     +              MFMTYP(13)/'DAT120'/,MFMTYP(14)/'3590'/
 
*     TMS Sort
      DATA          MFMGEN(1)/'DISK'/,MFMGEN(2)/'CT1 '/,
     +              MFMGEN(3)/'TAPE'/,MFMGEN(4)/'8MM '/,
     +              MFMGEN(5)/'8MM '/,MFMGEN(6)/'CT2 '/,
     +              MFMGEN(7)/'DAT '/,MFMGEN(8)/'DAT '/,
     +              MFMGEN(9)/'CT2E'/,MFMGEN(10)/'DD2 '/,
     +              MFMGEN(11)/'DD3 '/,MFMGEN(12)/'DLT '/,
     +              MFMGEN(13)/'DAT '/,MFMGEN(14)/'NTP '/
 
*     TMS density code
      DATA          MFMDEN(1)/'N/A '/,MFMDEN(2)/'38K '/,
     +              MFMDEN(3)/'6250'/,MFMDEN(4)/'43200'/
     +              MFMDEN(5)/'86400'/,MFMDEN(6)/'38KDC'/,
     +              MFMDEN(7)/'DDSC'/,MFMDEN(8)/'DDSC'/,
     +              MFMDEN(9)/'....'/,MFMDEN(10)/'....'/,
     +              MFMDEN(11)/'....'/,MFMDEN(12)/'10GC'/,
     +              MFMDEN(13)/'DDSC'/,MFMDEN(14)/'10GC'/
 
*     Maximum capacity
      DATA          MFMSIZ(1)/'N/A'/, MFMSIZ(2)/'200'/,
     +              MFMSIZ(3)/'200'/, MFMSIZ(4)/'2300'/,
     +              MFMSIZ(5)/'5000'/,MFMSIZ(6)/'1000'/,
     +              MFMSIZ(7)/'2000'/,MFMSIZ(8)/'5000'/,
     +              MFMSIZ(9)/'2000'/,MFMSIZ(10)/'25000'/,
     +              MFMSIZ(11)/'40000'/,MFMSIZ(12)/'10000'/,
     +              MFMSIZ(13)/'4000'/,MFMSIZ(14)/'10000'/
 
*     Default mount type
      DATA          MFMMNT(1)/'M'/,   MFMMNT(2)/'M'/,
     +              MFMMNT(3)/'M'/,   MFMMNT(4)/'M'/,
     +              MFMMNT(5)/'M'/,   MFMMNT(6)/'M'/,
     +              MFMMNT(7)/'M'/,   MFMMNT(8)/'M'/,
     +              MFMMNT(9)/'M'/,   MFMMNT(10)/'M'/,
     +              MFMMNT(11)/'M'/,  MFMMNT(12)/'M'/,
     +              MFMMNT(13)/'M'/,  MFMMNT(14)/'M'/
 
*     Default label type
      DATA          MFMLAB(1)/'  '/,  MFMLAB(2)/'SL'/,
     +              MFMLAB(3)/'SL'/,  MFMLAB(4)/'SL'/,
     +              MFMLAB(5)/'SL'/,  MFMLAB(6)/'SL'/,
     +              MFMLAB(7)/'SL'/,  MFMLAB(8)/'SL'/,
     +              MFMLAB(9)/'SL'/,  MFMLAB(10)/'SL'/,
     +              MFMLAB(11)/'SL'/, MFMLAB(12)/'SL'/,
     +              MFMLAB(13)/'SL'/, MFMLAB(14)/'SL'/
*
*     Number of media types defined
*
      DATA          NFTYPS/14/
*
*     TMS density codes
*
*     Model  Density  Code     P
*     ------ -------- -------- -
*     3420   1600         1600 Y
*     3420   6250         6250 Y
*     3480   38KC           15 Y
*     3480   38KD           20 Y
*     3480   38K         38000 N
*     3480   38000       38000 Y
*     3490   38KCD          10 N
*     3490   38KDC          10 Y
*     8200   8200         8200 Y
*     8200   8500         8500 Y
+KEEP,FATMED.
+CDE,FATMED0.
+CDE,FATMED1.
 
+KEEP,FATSHO.
      COMMON/FATSHO/CWDSHO
      CHARACTER*255 CWDSHO
+KEEP,FATUPD.
      COMMON/FATUPD/MAXDEF,NGRDEF,NUPDT,MAXUPD,NGROUP,MAXVIO,NVIOL
+KEEP,FMPATH.
      CHARACTER*255 PATH,FILE1,FILE2,CDIR
      COMMON/FMKCOM/LCDIR,CDIR
*
+KEEP,FATSYS.
*
*     Common to store name of service machine (IBM)
*     or default directory (VAX, Unix)
*
      COMMON/FATSYS/STRMLF,IFMODX,SERNAM,SERMOD,FATNOD,DEFAULT,
     +              FATTOP,TOPDIR,LOCALQ
*     Mode at which server disk is accessed (VM)
      CHARACTER*1   SERMOD
*     Name of service machine
      CHARACTER*20  SERNAM
      CHARACTER*64  FATTOP
      CHARACTER*16  TOPDIR
      CHARACTER*80  FATNOD
      CHARACTER*132 LOCALQ
      CHARACTER*132 DEFAULT
      LOGICAL       STRMLF
+KEEP,FTTBUG.
      INTEGER         IDEBFA, IDIVFA, IKDRFA, KOFSFA, KOFUFA, LBFXFA
     +              , LSAVFA, LTOPFA, LBBKFA, LBGNFA, LTDSFA, LBDSFA
     +              , LPRTFA, NTOPFA, LUFZFA, IOUPFA, IOBKFA, IODSFA
     +              , LLNLFA, LLNHFA
+KEEP,FATUSE.
+SEQ,FTTBUG,IF=TYPE.
      COMMON /FATUSE/ IDEBFA, IDIVFA, IKDRFA, KOFSFA, KOFUFA, LBFXFA
     +              , LSAVFA, LTOPFA, LBBKFA, LBGNFA, LTDSFA, LBDSFA
     +              , LPRTFA, NTOPFA, LUFZFA, IOUPFA, IOBKFA, IODSFA
     +              , LLNLFA, LLNHFA
+KEEP,FATBUG.
+SEQ,FTTBUG,IF=TYPE.
      COMMON /FATUSE/ IDEBFA, IDIVFA, IKDRFA, KOFSFA, KOFUFA, LBFXFA
     +              , LSAVFA, LTOPFA, LBBKFA, LBGNFA, LTDSFA, LBDSFA
     +              , LPRTFA, NTOPFA, LUFZFA, IOUPFA, IOBKFA, IODSFA
     +              , LLNLFA, LLNHFA
+KEEP,FATBANK.
      COMMON /FABANK/FATFEN(22),LQ(9)
      DIMENSION       IQ(2), Q(2)
      EQUIVALENCE     (IQ(1),Q(1),LQ(9))
*
      COMMON /QUEST/  IQUEST(100)
*
      PARAMETER       (IKTYFA=33, KNSDFA=23, KLSDFA=26, MAXLFA=128)
*     top directory fan-out bank    "UPFA"
      PARAMETER       (MNOPFA=1, MLUNFA=2, MFLGFA=3, MTOTFA=4)
      PARAMETER       (MCRDFA=5, MINPFA=6, MOUTFA=7, MTOPFA=8)
      PARAMETER       (MNCHFA=9, MCHRFA=10, NDUPFA=MCHRFA+31)
      PARAMETER       (NSLUFA=2)
*     Book keeping "BKFA"
      PARAMETER       (KLBKFA=1)
      PARAMETER       (MSTAFA=1,MPNTFA=2,MCGNFA=3)
      PARAMETER       (NWBKFA=3)
*     Generic names bank
      PARAMETER       (KLGNFA=2)
*
      COMMON /FATSTO/ LDIRFA, LBOUT,  LJNKFA
      COMMON /FATUSE/ IDEBFA, IDIVFA, IKDRFA, KOFSFA, KOFUFA, LBFXFA
     +              , LSAVFA, LTOPFA, LBBKFA, LBGNFA, LTDSFA, LBDSFA
     +              , LPRTFA, NTOPFA, LUFZFA, IOUPFA, IOBKFA, IODSFA
     +              , LLNLFA, LLNHFA
      COMMON /FATSER/ LNEWFA, LOLDFA, LCOMP1, LCOMP2, LBANKR
      COMMON /FATBNK/ LBKLUN(99)
*
      PARAMETER       (MXDMFA=100)
*     COMMON /FATKYS/ IOTYFA(MXDMFA), KEYVFA(MXDMFA), NKEYFA, NWKYFA
      COMMON /FATKYS/ IOTYFA(MXDMFA), KEYVFA(MXDMFA), NWKYFA
*
+KEEP, FATBANK%, IF=$DOC.
+SEQ, FATBANK.
 
             fan-out bank offsets
 
    MNOPFA      Number of open files belonging to such "data base"
    MLUNFA      logical unit of the RZ-file
    MFLGFA
    MTOTFA
    MCRDFA
    MINPFA
    MOUTFA
    MTOPFA
    MNCHFA    number of character of the top directory name
    MCHRFA    top directory name
 
    NDUPFA    total number of word in the top directory
 
    NSLUFA    Number of "system links in "UPFA" bank
 
 
                Book-keeping bank   "BKFA"
    KLBKFA    link offset in UPFA
    NWBKFA    number of word for each "file"
 
    MSTAFA    file status
    MPNTFA    pointer in the generic names bank
    MCGNFA    number of characters used by the gen.name
 
                Generic names bank   "GNFA"
    KLGNFA    link offset in UPFA
 
    -5        number of word used
 
 
+KEEP, FTTPARA.
      INTEGER MKSRFA,MKFNFA,MKCLFA,MKMTFA,MKLCFA,MKNBFA,NKDSFA
      INTEGER MFQNFA,MHSNFA,MCPLFA,MMTPFA,MLOCFA,MHSTFA,MHOSFA,
     +        MVSNFA,MVIDFA,MVIPFA,MDENFA,MVSQFA,MFSQFA,MSRDFA,
     +        MERDFA,MSBLFA,MEBLFA,MRFMFA,MRLNFA,MBLNFA,MFLFFA,
     +        MFUTFA,MCRTFA,MCTTFA,MLATFA,MCURFA,MCIDFA,MCNIFA,
     +        MCJIFA,MFPRFA,MSYWFA,MUSWFA,MUCMFA,NWDSFA,MFSZFA,
     +        MUSCFA,MDRPFA,MKDRFA
 
      INTEGER NFQNFA,NHSNFA,NHSTFA,NHOSFA,NVSNFA,NVIDFA,NFLFFA,
     +        NRFMFA,NFUTFA,NCURFA,NCIDFA,NCNIFA,NCJIFA,NUCMFA
 
      INTEGER MFIEEE,MFEEEI,MFIBM, MFCRAY,MFVAX ,MFUNIX,MFULTR
 
      INTEGER KMXLOC,KMXCPL,KMXMTP,KMXLUN
      INTEGER MFMLOC,MFMCPL,MFMMTP,MFMLUN
      INTEGER KMXKEY
 
      INTEGER NCPLFA
      INTEGER NMTPFA
      INTEGER NLOCFA
      INTEGER NVIPFA
      INTEGER NDENFA
      INTEGER NVSQFA
      INTEGER NFSQFA
      INTEGER NSRDFA
      INTEGER NERDFA
      INTEGER NSBLFA
      INTEGER NEBLFA
      INTEGER NRLNFA
      INTEGER NBLNFA
      INTEGER NCRTFA
      INTEGER NCTTFA
      INTEGER NLATFA
      INTEGER NFPRFA
      INTEGER NFSZFA
      INTEGER NUSCFA
      INTEGER NUSWFA
      INTEGER NSYWFA
 
+KEEP,FATPARA.
* Start of FATMEN sequence FATPARA
+SEQ,FTTPARA.
*
** ***     Data set bank mnemonics
*
*          Keys
      PARAMETER ( MKSRFA= 1, MKFNFA= 2, MKCLFA=7, MKMTFA=8
     1           ,MKLCFA= 9, MKNBFA=10, NKDSFA=10,MKDRFA=2)
*
** ***     Bank offsets
*
      PARAMETER ( MFQNFA=  1, MHSNFA= 65, MCPLFA= 67, MDRPFA= 67
     1           ,MMTPFA= 68, MLOCFA= 69, MHSTFA= 70, MHOSFA= 74
     2           ,MVSNFA= 77, MVIDFA= 79, MVIPFA= 81, MDENFA= 82
     3           ,MVSQFA= 83, MFSQFA= 84, MSRDFA= 85, MERDFA= 86
     4           ,MSBLFA= 87, MEBLFA= 88, MRFMFA= 89, MRLNFA= 90
     5           ,MBLNFA= 91, MFLFFA= 92, MFUTFA= 93, MCRTFA= 94
     6           ,MCTTFA= 95, MLATFA= 96, MCURFA= 97, MCIDFA= 99
     7           ,MCNIFA=101, MCJIFA=103, MFPRFA=105, MSYWFA=106
     8           ,MUSWFA=116, MUCMFA=126, NWDSFA=145
     9           ,MFSZFA=MSYWFA,MUSCFA=MSYWFA+1)
 
*
** ***     Lengths of character fields in bytes
*
      PARAMETER ( NFQNFA = (MHSNFA-MFQNFA)*4,
     +            NHSNFA = (MCPLFA-MHSNFA)*4,
     +            NHSTFA = (MHOSFA-MHSTFA)*4,
     +            NHOSFA = (MVSNFA-MHOSFA)*4,
     +            NVSNFA = (MVIDFA-MVSNFA)*4,
     +            NVIDFA = (MVIPFA-MVIDFA)*4,
     +            NRFMFA = (MRLNFA-MRFMFA)*4,
     +            NFLFFA = (MFUTFA-MFLFFA)*4,
     +            NFUTFA = (MCRTFA-MFUTFA)*4,
     +            NCURFA = (MCIDFA-MCURFA)*4,
     +            NCIDFA = (MCNIFA-MCIDFA)*4,
     +            NCNIFA = (MCJIFA-MCNIFA)*4,
     +            NCJIFA = (MFPRFA-MCJIFA)*4,
     +            NUCMFA = (NWDSFA-MUCMFA)*4)
*
** ***     Lengths of integer fields in words
*
      PARAMETER ( NCPLFA = 1  )
      PARAMETER ( NMTPFA = 1  )
      PARAMETER ( NLOCFA = 1  )
      PARAMETER ( NVIPFA = 1  )
      PARAMETER ( NDENFA = 1  )
      PARAMETER ( NVSQFA = 1  )
      PARAMETER ( NFSQFA = 1  )
      PARAMETER ( NSRDFA = 1  )
      PARAMETER ( NERDFA = 1  )
      PARAMETER ( NSBLFA = 1  )
      PARAMETER ( NEBLFA = 1  )
      PARAMETER ( NRLNFA = 1  )
      PARAMETER ( NBLNFA = 1  )
      PARAMETER ( NCRTFA = 1  )
      PARAMETER ( NCTTFA = 1  )
      PARAMETER ( NLATFA = 1  )
      PARAMETER ( NFPRFA = 1  )
      PARAMETER ( NFSZFA = 1  )
      PARAMETER ( NUSCFA = 1  )
      PARAMETER ( NUSWFA = 10 )
      PARAMETER ( NSYWFA = 10 )
*
*     Definitions of 'Copy Level' (i.e. Data representation)
*     These definitions adhere to those used in FPACK
*
*     PARAMETER (MFIEEE= 1, MFEEEI= 5, MFIBM  =2, MFCRAY= 4,
      PARAMETER (MFIEEE= 1, MFEEEI= 4, MFIBM  =2, MFCRAY= 5,
     +           MFVAX = 3)
 
*
*     Maximum # of location codes, copy levels, media types and luns
*
      PARAMETER (KMXLOC=99, KMXCPL=99, KMXMTP=99, KMXLUN=99)
      PARAMETER (KMXKEY=99)
 
      INTEGER     IBTYPE(35)
      INTEGER     IBOFFS(35)
      INTEGER     IBLENG(35)
      CHARACTER*6 CHBANK(35)
* End of FATMEN sequence FATPARA
+KEEP,FMDREP.
      PARAMETER     (NWFFAT=5)
      COMMON/FMDREP/CHDREP
      CHARACTER*30  CHDREP(NWFFAT)
+KEEP,FATCHAR.
*
** ***     Types (1 = integer, 2 = character, 3 = time)
*
      IBTYPE( 1)=2
      IBTYPE( 2)=2
      IBTYPE( 3)=1
      IBTYPE( 4)=1
      IBTYPE( 5)=1
      IBTYPE( 6)=2
      IBTYPE( 7)=2
      IBTYPE( 8)=2
      IBTYPE( 9)=2
      IBTYPE(10)=1
      IBTYPE(11)=1
      IBTYPE(12)=1
      IBTYPE(13)=1
      IBTYPE(14)=1
      IBTYPE(15)=1
      IBTYPE(16)=1
      IBTYPE(17)=1
      IBTYPE(18)=2
      IBTYPE(19)=1
      IBTYPE(20)=1
      IBTYPE(21)=2
      IBTYPE(22)=2
      IBTYPE(23)=3
      IBTYPE(24)=3
      IBTYPE(25)=3
      IBTYPE(26)=2
      IBTYPE(27)=2
      IBTYPE(28)=2
      IBTYPE(29)=2
      IBTYPE(30)=1
      IBTYPE(31)=1
      IBTYPE(32)=1
      IBTYPE(33)=2
      IBTYPE(34)=1
      IBTYPE(35)=1
*
** ***     Offsets
*
      IBOFFS( 1)=MFQNFA
      IBOFFS( 2)=MHSNFA
      IBOFFS( 3)=MCPLFA
      IBOFFS( 4)=MMTPFA
      IBOFFS( 5)=MLOCFA
      IBOFFS( 6)=MHSTFA
      IBOFFS( 7)=MHOSFA
      IBOFFS( 8)=MVSNFA
      IBOFFS( 9)=MVIDFA
      IBOFFS(10)=MVIPFA
      IBOFFS(11)=MDENFA
      IBOFFS(12)=MVSQFA
      IBOFFS(13)=MFSQFA
      IBOFFS(14)=MSRDFA
      IBOFFS(15)=MERDFA
      IBOFFS(16)=MSBLFA
      IBOFFS(17)=MEBLFA
      IBOFFS(18)=MRFMFA
      IBOFFS(19)=MRLNFA
      IBOFFS(20)=MBLNFA
      IBOFFS(21)=MFLFFA
      IBOFFS(22)=MFUTFA
      IBOFFS(23)=MCRTFA
      IBOFFS(24)=MCTTFA
      IBOFFS(25)=MLATFA
      IBOFFS(26)=MCURFA
      IBOFFS(27)=MCIDFA
      IBOFFS(28)=MCNIFA
      IBOFFS(29)=MCJIFA
      IBOFFS(30)=MFPRFA
      IBOFFS(31)=MSYWFA
      IBOFFS(32)=MUSWFA
      IBOFFS(33)=MUCMFA
      IBOFFS(34)=MFSZFA
      IBOFFS(35)=MUSCFA
*
** ***     Lengths
*
      IBLENG( 1)=NFQNFA
      IBLENG( 2)=NHSNFA
      IBLENG( 3)=NCPLFA
      IBLENG( 4)=NMTPFA
      IBLENG( 5)=NLOCFA
      IBLENG( 6)=NHSTFA
      IBLENG( 7)=NHOSFA
      IBLENG( 8)=NVSNFA
      IBLENG( 9)=NVIDFA
      IBLENG(10)=NVIPFA
      IBLENG(11)=NDENFA
      IBLENG(12)=NVSQFA
      IBLENG(13)=NFSQFA
      IBLENG(14)=NSRDFA
      IBLENG(15)=NERDFA
      IBLENG(16)=NSBLFA
      IBLENG(17)=NEBLFA
      IBLENG(18)=NRFMFA
      IBLENG(19)=NRLNFA
      IBLENG(20)=NBLNFA
      IBLENG(21)=NFLFFA
      IBLENG(22)=NFUTFA
      IBLENG(23)=NCRTFA
      IBLENG(24)=NCTTFA
      IBLENG(25)=NLATFA
      IBLENG(26)=NCURFA
      IBLENG(27)=NCIDFA
      IBLENG(28)=NCNIFA
      IBLENG(29)=NCJIFA
      IBLENG(30)=NFPRFA
      IBLENG(31)=NSYWFA
      IBLENG(32)=NUSWFA
      IBLENG(33)=NUCMFA
      IBLENG(34)=NFSZFA
      IBLENG(35)=NUSCFA
*
** ***     Character names of offsets
*
      CHBANK( 1)='MFQNFA'
      CHBANK( 2)='MHSNFA'
      CHBANK( 3)='MCPLFA'
      CHBANK( 4)='MMTPFA'
      CHBANK( 5)='MLOCFA'
      CHBANK( 6)='MHSTFA'
      CHBANK( 7)='MHOSFA'
      CHBANK( 8)='MVSNFA'
      CHBANK( 9)='MVIDFA'
      CHBANK(10)='MVIPFA'
      CHBANK(11)='MDENFA'
      CHBANK(12)='MVSQFA'
      CHBANK(13)='MFSQFA'
      CHBANK(14)='MSRDFA'
      CHBANK(15)='MERDFA'
      CHBANK(16)='MSBLFA'
      CHBANK(17)='MEBLFA'
      CHBANK(18)='MRFMFA'
      CHBANK(19)='MRLNFA'
      CHBANK(20)='MBLNFA'
      CHBANK(21)='MFLFFA'
      CHBANK(22)='MFUTFA'
      CHBANK(23)='MCRTFA'
      CHBANK(24)='MCTTFA'
      CHBANK(25)='MLATFA'
      CHBANK(26)='MCURFA'
      CHBANK(27)='MCIDFA'
      CHBANK(28)='MCNIFA'
      CHBANK(29)='MCJIFA'
      CHBANK(30)='MFPRFA'
      CHBANK(31)='MSYWFA'
      CHBANK(32)='MUSWFA'
      CHBANK(33)='MUCMFA'
      CHBANK(34)='MFSZFA'
      CHBANK(35)='MUSCFA'
+KEEP,FABALQ.
      COMMON/FABALQ/NBLOKS
+KEEP,FATREG,IF=IBMMVS.
         MACRO
         REGISTER
R0       EQU   0
R1       EQU   1
R2       EQU   2
R3       EQU   3
R4       EQU   4
R5       EQU   5
R6       EQU   6
R7       EQU   7
R8       EQU   8
R9       EQU   9
R10      EQU   10
R11      EQU   11
R12      EQU   12
R13      EQU   13
R14      EQU   14
R15      EQU   15
         MEND
+KEEP,FATBEG,IF=IBMMVS.
         MACRO
&NAME    BEG   &ID,&MODE=REUS,&WKSIZE=0,&SP=0,&BASE=12,&RMODE=24
         GBLC  &RMD
&RMD     SETC  '&RMODE'
&NAME    CSECT
         AIF   ('&RMODE' EQ '24').NOT311
&NAME    RMODE ANY
&NAME    AMODE ANY
.NOT311  ENTRY &NAME
         USING *,&BASE
         ANF   &ID,MODE=&MODE,WKSIZE=&WKSIZE,SP=&SP,BASE=&BASE
         MEND
+KEEP,FATANF,IF=IBMMVS.
         MACRO
&NAME    ANF   &ID,&MODE=REUS,&WKSIZE=0,&SP=0,&BASE=12
         GBLC  &DY0ID,&MD
         LCLA  &A,&B,&D
         LCLC  &E,&F
&F       SETC  '&SYSNDX'
&MD      SETC  '&MODE'
* ANF VERSION 2.4 (SUPPORTS PRNT MACRO AND EQUATED WORKSIZE)
.* DIE VORIGE VERSION HEISST ANF8
         AIF   ((T'&WKSIZE NE 'N') AND (T'&WKSIZE NE 'U')).ERROR4
         AIF   (T'&SP NE 'N').ERROR5
         AIF   (&SP GT 255).ERROR6
         AIF   (T'&BASE NE 'N').ERROR7
         AIF   ((&BASE GT 12) OR (&BASE LT 4)).ERROR8
         AIF   ('&MODE' NE 'REUS').RENT
         AIF   ('&ID' EQ '').NULLID
         AIF   ('&ID' EQ '*').SPECID
&D       SETA  K'&ID
         AIF   (&D GT 8).ERROR1
&A       SETA  ((K'&ID+4)/4)*4+80
&E       SETC  '&ID'
         CNOP  0,4
&NAME    B     &A.(0,15)           BRANCH AROUND ID AND SA
         DC    AL1(&D)             LENGTH OF ID
         DC    CL&D'&E'
         AGO   .CONTA
.NULLID  ANOP
         CNOP  0,4
&NAME    B     80(0,15)            BRANCH AROUND SA
         AGO   .CONTA
.SPECID  AIF   ('&NAME' EQ '').CSECTN
&E       SETC  '&NAME'
&A       SETA  1
.CONTB   AIF   ('&E'(1,&A) EQ '&E').CONTC
&A       SETA  &A+1
         AGO   .CONTB
.CONTC   ANOP
         AIF   ('&MODE' EQ 'RENT').CONTE
&B       SETA  ((&A+4)/4)*4+80
         CNOP  0,4
&NAME    B     &B.(0,15)           BRANCH AROUND ID AND SA
         DC    AL1(&A)             LENGTH OF ID
         DC    CL&A'&E'
         AGO   .CONTA
.CSECTN  AIF   ('&SYSECT' EQ '').ERROR2
&E       SETC  '&SYSECT'
&A       SETA  1
         AGO   .CONTB
.ERROR2  MNOTE 12,'CSECT NAME NOT SPECIFIED'
         AGO   .NULLID
.CONTA   ANOP
&DY0ID   SETC  '&SYSNDX'
SAVE&F   DC    19F'0'              SAVE AREA
         STM   14,12,12(13)        SAVE CALLER'S REGISTER
         LR    &BASE,15            LOAD BASE
         LA    3,SAVE&F            ADDRESS OF NEW SAVE AREA
         ST    3,8(13)             FORWARD CHAIN
         L     3,32(13)            RESTORE REG 3
         ST    13,SAVE&F.+4        BACKWARD CHAIN
         LA    13,SAVE&F           LOAD SAVE AREA REG
         MEXIT
.ERROR1  MNOTE 12,'IDENTIFICATION FIELD TOO LONG'
         MEXIT
.RENT    ANOP
         AIF   ('&MODE' NE 'RENT').ERROR3
         AIF   ('&ID' EQ '').RNULL
         AIF   ('&ID' EQ '*').SPECID
&D       SETA  K'&ID
         AIF   (&D GT 8).ERROR1
&A       SETA  ((&D+2)/2)*2+4
&E       SETC  '&ID'
&NAME    B     &A.(0,15)           BRANCH AROUND ID
         DC    AL1(&D)             LENGTH OF ID
         DC    CL&D'&E'
         STM   14,12,12(13)        SAVE CALLER'S REGISTER
         AGO   .CONTD
.RNULL   ANOP
&NAME    STM   14,12,12(13)        SAVE CALLER'S REGISTER
         AGO   .CONTD
.CONTE   ANOP
&B       SETA  ((&A+2)/2)*2+4
&NAME    B     &B.(0,15)           BRANCH AROUND ID
         DC    AL1(&A)             LENGTH OF ID
         DC    CL&A'&E'
         STM   14,12,12(13)        SAVE CALLER'S REGISTER
.CONTD   ANOP
         LR    &BASE,15            LOAD BASE
         CNOP  0,4                 ALIGN ON FULL WORD BOUNDARY
         BAL   1,*+8               BRANCH AROUND SUBPOOL AND LENGTH
         DC    AL1(&SP)            SUBPOOL ID
         DC    AL3(&WKSIZE+88)     LENGTH VALUE
         L     0,0(0,1)            LOAD SP AND LENGTH
         SVC   10                  ISSUE GETMAIN SVC
         XC    0(88,1),0(1)        CLEAR CHAIN FIELDS AND SAVE AREA
         MVI   8(1),X'FF'          INDICATE LAST ON CHAIN
         MVC   12(4,1),*-20        SAVE LENGTH AN SUBPOOL
         MVC   0(4,1),12(13)
         LA    15,FR&F
         ST    15,12(13)
         ST    13,20(1)            BACKWARD CHAIN
         LR    15,13               SAVE OLD SAVE AREA POINTER
         LA    13,16(1)            LOAD NEW SA REGISTER
         ST    13,8(15)            FORWARD CHAIN
         LM    15,1,16(15)         RESTORE ALL REGISTER
         B     FO&F
FR&F     ST    15,16(13)           SAVE RETURN CODE
         LA    0,16                LENGTH OF PREFIX
         L     1,8(13)             SAVE OLD SA POINTER
         SR    1,0                 POINT TO PREFIX
         MVC   12(4,13),0(1)
         L     14,8(1)             LOAD 1-ST CHAIN POINTER
         L     0,12(1)             LOAD 1-ST SUBPOOL AND LENGTH
         BALR  10,0
         B     12(10)
         L     14,0(1)             LOAD CHAIN POINTER
         L     0,4(1)              LOAD SUBPOOL AND LENGTH
         LA    1,0(1)              CLEAR HIGH ORDER BYTE
         SVC   10                  ISSUE FREEMAIN SVC
         LA    1,0(14)             GET CHAIN POINTER
         C     14,36(10)           LAST IN CHAIN
         BNZ   4(10)               NO, BRANCH
         LM    14,12,12(13)        RESTORE REGISTERS AFTER FREEMAIN
         BR    14
         DC    X'FF000000'
FO&F     EQU   *
         MEXIT
.ERROR3  MNOTE 12,'MODE=&MODE INVALID'
         MEXIT
.ERROR4  MNOTE 12,'WKSIZE=&WKSIZE SHOULD BE SELF-DEFINING TERM OR NAME *
               FIELD OF AN ''EQU'''
         MEXIT
.ERROR5  MNOTE 12,'SP=&SP SHOULD BE A SELF DEFINING TERM'
         MEXIT
.ERROR6  MNOTE 12,'SP=&SP GREATER 255 SPECIFIED'
         MEXIT
.ERROR7  MNOTE 12,'BASE=&BASE SHOULD BE A SELF DEFINING TERM'
         MEXIT
.ERROR8  MNOTE 12,'BASE CAN BE ONLY 4 TO 12'
         MEND
+KEEP,FATSCHL,IF=IBMMVS.
         MACRO
&NAME    SCHL  &RET=,&MODE=
&NAME    L     13,4(13)            RELOAD SA-REG
         AIF   ('&RET' NE '').RETCODE
         LM    14,12,12(13)        RELOAD REGISTERS
         BR    14                  RETURN TO CALLER
         MEXIT
.RETCODE AIF   ('&RET'(1,1) EQ '(').REGIST
         AIF   (T'&RET NE 'N').ADDRESS
         LA    15,&RET             LOAD REG 15 WITH RET CODE
         AGO   .FURTHER
.REGIST  AIF   ('&RET(1)' EQ '15').FURTHER
         LR    15,&RET(1)          LOAD REG 15 WITH SPECIF. REGISTER
         AGO   .FURTHER
.ADDRESS L     15,&RET             LOAD REG 15 FROM STORAGE
.FURTHER LM    0,12,20(13)         RESTORE REG 0 TO 12
         L     14,12(13)           RESTORE REG 14
         BR    14                  RETURN TO CALLER
         MEND
+KEEP, FATPARA%, IF=$DOC.
+SEQ, FATPARA.
 
             K E Y S
 
    MKSRFA      Key serial number
    MKFNFA      File name
    MKCLFA      Copy level
    MKMTFA      Medium type
    MKLCFA      Location type
    MKNBFA      Number of bank in the data set linear chain
 
    NKDSFA      Number of keys
 
 
              B A N K
 
words    field          type   length     description
                              (in words)
 
         ---------     generic description  -------------
 
(* = NOT NULL in ORACLE or SQL/DS tables - filled in by FMLIFT)
 
1-64  * fully qual. name H        64      in case of instance the generi
                                          name of the corresponding data
                                          set
                                          dataset name has format
                                          <user.addr>fn.ft on VM,
                                          where '.addr' may be omitted.
65-66 * host name        H         2      in case of tape the nearest
                                          host to its physical
                                          location
                                          (maybe more words to clearly
                                          state the location (lab.
                                          bld. etc) would be needed)
67    * copy level       I         1      0 master 1 duplicate
                                        2 duplicate from a duplicate etc
68    * location code    I         1   to find the nearest  (FATMEN code
69    * medium type      I         1      3=tape, 2=cartridge,
                                          4=exabyte, 1=disk
                                          ...................
                                          0=instance
 
 
 
 
         ---------     disk description     -------------
 
70-73   host type        H         4         only for disk files
74-76   operating syst.  H         3           "
 
         ---------     tape description     -------------
 
77-78 * VSN              H         2         only for tapes
79-80 * VID              H         2           "
81      VID prefix       I         1           "
82      Density          I         1           "
83      vol. seq. numb.  I         1           "
84    * file seq. numb.  I         1           "
 
         ---------     file description     -------------
 
85      start record #   I         1
86      end   record #   I         1
87      start block  #   I         1
88      end   block  #   I         1
 
         ---------  physical description    -------------
 
89      record format    H         1
90      record length    I         1        (in words!)
91      block  length    I         1            "
106     file   size      I         1        (in Megabytes, rounded up
        = SYSWD0                             to next integer)
 
         ---------  logical description     -------------
 
92    * file format      H         1     FATMEN oriented
                                         FZ=zebra native
                                         FA=zebra ascii
                                         FX=zebra exchange
                                         RZ=zebra RZ
                                         EP=EPIO
                                         AS=normal Ascii
                                         UN=unknown to FATMEN
                                         ...............
93      file user type   H         1     user oriented and user defined
 
         ---------    dates and times       -------------
 
94      creation date    I         1
95      catalog. date    I         1
96      last acc.date    I         1
 
         ---------   creator identier       -------------
 
97-98   user name creat. H         2     "creator" user name
99-100  user id.    "    H         2               user id. UUUGG/UUU$GG
                                                            or NFSID
101-102 node id.    "    H         2               node id.
103-104 job id.     "    H         2               job  id.
                                         (user defined)
 
         ---------      protections         -------------
 
105      file protect.   I         1     (maybe just a pointer in a
                                          ACL definition bank)
 
         ---------       user area          -------------
 
106-115  system words    I        10     (reserved)
116-125  user words      I        10     (user defined)
126-145  comment         H        20
 
+PATCH,PAMEND.
*