Added check for floating exception in TParticle->Eta() and support for various Eventh...
[u/mrichter/AliRoot.git] / MICROCERN / mtlset.F
1 *
2 * $Id$
3 *
4 #include "gen/pilot.h"
5       SUBROUTINE MTLSET(ERC,NLG,MXM,MXR)
6
7       PARAMETER (KTE = 132)
8       CHARACTER*6 ERC,CODE(KTE)
9       LOGICAL LMF,LRF
10       DIMENSION KNTM(KTE),KNTR(KTE)
11
12       DATA ILG /0/
13
14 C     renumber the data statements after putting new codes in Unix with:
15 C     awk -F'[()]' '{ printf"%s(%s)%s(%s)%s(%s)%s\n",$1,NR,$3,NR,$5,NR,$7 }'
16 C     and modify KTE to the number of lines below
17
18       DATA CODE(1),KNTM(1),KNTR(1) / 'B100.1', 255, 255 /
19       DATA CODE(2),KNTM(2),KNTR(2) / 'B300.1', 255, 255 /
20       DATA CODE(3),KNTM(3),KNTR(3) / 'B300.2', 255, 255 /
21       DATA CODE(4),KNTM(4),KNTR(4) / 'C200.0', 255, 255 /
22       DATA CODE(5),KNTM(5),KNTR(5) / 'C200.1', 255, 255 /
23       DATA CODE(6),KNTM(6),KNTR(6) / 'C200.2', 255, 255 /
24       DATA CODE(7),KNTM(7),KNTR(7) / 'C200.3', 255, 255 /
25       DATA CODE(8),KNTM(8),KNTR(8) / 'C201.0', 255, 255 /
26       DATA CODE(9),KNTM(9),KNTR(9) / 'C202.0', 255, 255 /
27       DATA CODE(10),KNTM(10),KNTR(10) / 'C202.1', 255, 255 /
28       DATA CODE(11),KNTM(11),KNTR(11) / 'C202.2', 255, 255 /
29       DATA CODE(12),KNTM(12),KNTR(12) / 'C205.1', 255, 255 /
30       DATA CODE(13),KNTM(13),KNTR(13) / 'C205.2', 255, 255 /
31       DATA CODE(14),KNTM(14),KNTR(14) / 'C207.0', 255, 255 /
32       DATA CODE(15),KNTM(15),KNTR(15) / 'C208.0', 255, 255 /
33       DATA CODE(16),KNTM(16),KNTR(16) / 'C209.0', 255, 255 /
34       DATA CODE(17),KNTM(17),KNTR(17) / 'C209.1', 255, 255 /
35       DATA CODE(18),KNTM(18),KNTR(18) / 'C209.2', 255, 255 /
36       DATA CODE(19),KNTM(19),KNTR(19) / 'C209.3', 255, 255 /
37       DATA CODE(20),KNTM(20),KNTR(20) / 'C210.1', 255, 255 /
38       DATA CODE(21),KNTM(21),KNTR(21) / 'C302.1', 255, 255 /
39       DATA CODE(22),KNTM(22),KNTR(22) / 'C303.1', 255, 255 /
40       DATA CODE(23),KNTM(23),KNTR(23) / 'C304.1', 255, 255 /
41       DATA CODE(24),KNTM(24),KNTR(24) / 'C305.1', 255, 255 /
42       DATA CODE(25),KNTM(25),KNTR(25) / 'C306.1', 255, 255 /
43       DATA CODE(26),KNTM(26),KNTR(26) / 'C307.1', 255, 255 /
44       DATA CODE(27),KNTM(27),KNTR(27) / 'C312.1', 255, 255 /
45       DATA CODE(28),KNTM(28),KNTR(28) / 'C313.1', 255, 255 /
46       DATA CODE(29),KNTM(29),KNTR(29) / 'C315.1', 255, 255 /
47       DATA CODE(30),KNTM(30),KNTR(30) / 'C316.1', 255, 255 /
48       DATA CODE(31),KNTM(31),KNTR(31) / 'C316.2', 255, 255 /
49       DATA CODE(32),KNTM(32),KNTR(32) / 'C320.1', 255, 255 /
50       DATA CODE(33),KNTM(33),KNTR(33) / 'C321.1', 255, 255 /
51       DATA CODE(34),KNTM(34),KNTR(34) / 'C323.1', 255, 255 /
52       DATA CODE(35),KNTM(35),KNTR(35) / 'C327.1', 255, 255 /
53       DATA CODE(36),KNTM(36),KNTR(36) / 'C328.1', 255, 255 /
54       DATA CODE(37),KNTM(37),KNTR(37) / 'C328.2', 255, 255 /
55       DATA CODE(38),KNTM(38),KNTR(38) / 'C328.3', 255, 255 /
56       DATA CODE(39),KNTM(39),KNTR(39) / 'C330.1', 255, 255 /
57       DATA CODE(40),KNTM(40),KNTR(40) / 'C330.2', 255, 255 /
58       DATA CODE(41),KNTM(41),KNTR(41) / 'C330.3', 255, 255 /
59       DATA CODE(42),KNTM(42),KNTR(42) / 'C331.1', 255, 255 /
60       DATA CODE(43),KNTM(43),KNTR(43) / 'C331.2', 255, 255 /
61       DATA CODE(44),KNTM(44),KNTR(44) / 'C334.1', 255, 255 /
62       DATA CODE(45),KNTM(45),KNTR(45) / 'C334.2', 255, 255 /
63       DATA CODE(46),KNTM(46),KNTR(46) / 'C334.3', 255, 255 /
64       DATA CODE(47),KNTM(47),KNTR(47) / 'C334.4', 255, 255 /
65       DATA CODE(48),KNTM(48),KNTR(48) / 'C334.5', 255, 255 /
66       DATA CODE(49),KNTM(49),KNTR(49) / 'C334.6', 255, 255 /
67       DATA CODE(50),KNTM(50),KNTR(50) / 'C336.1', 255, 255 /
68       DATA CODE(51),KNTM(51),KNTR(51) / 'C337.1', 255, 255 /
69       DATA CODE(52),KNTM(52),KNTR(52) / 'C338.1', 255, 255 /
70       DATA CODE(53),KNTM(53),KNTR(53) / 'C340.1', 255, 255 /
71       DATA CODE(54),KNTM(54),KNTR(54) / 'C343.1', 255, 255 /
72       DATA CODE(55),KNTM(55),KNTR(55) / 'C343.2', 255, 255 /
73       DATA CODE(56),KNTM(56),KNTR(56) / 'C343.3', 255, 255 /
74       DATA CODE(57),KNTM(57),KNTR(57) / 'C343.4', 255, 255 /
75       DATA CODE(58),KNTM(58),KNTR(58) / 'C344.1', 255, 255 /
76       DATA CODE(59),KNTM(59),KNTR(59) / 'C344.2', 255, 255 /
77       DATA CODE(60),KNTM(60),KNTR(60) / 'C344.3', 255, 255 /
78       DATA CODE(61),KNTM(61),KNTR(61) / 'C344.4', 255, 255 /
79       DATA CODE(62),KNTM(62),KNTR(62) / 'C345.1', 255, 255 /
80       DATA CODE(63),KNTM(63),KNTR(63) / 'C346.1', 255, 255 /
81       DATA CODE(64),KNTM(64),KNTR(64) / 'C346.2', 255, 255 /
82       DATA CODE(65),KNTM(65),KNTR(65) / 'C346.3', 255, 255 /
83       DATA CODE(66),KNTM(66),KNTR(66) / 'C347.1', 255, 255 /
84       DATA CODE(67),KNTM(67),KNTR(67) / 'C347.2', 255, 255 /
85       DATA CODE(68),KNTM(68),KNTR(68) / 'C347.3', 255, 255 /
86       DATA CODE(69),KNTM(69),KNTR(69) / 'C347.4', 255, 255 /
87       DATA CODE(70),KNTM(70),KNTR(70) / 'C347.5', 255, 255 /
88       DATA CODE(71),KNTM(71),KNTR(71) / 'C347.6', 255, 255 /
89       DATA CODE(72),KNTM(72),KNTR(72) / 'C348.1', 255, 255 /
90       DATA CODE(73),KNTM(73),KNTR(73) / 'C349.1', 255, 255 /
91       DATA CODE(74),KNTM(74),KNTR(74) / 'C349.2', 255, 255 /
92       DATA CODE(75),KNTM(75),KNTR(75) / 'C349.3', 255, 255 /
93       DATA CODE(76),KNTM(76),KNTR(76) / 'D101.1', 255, 255 /
94       DATA CODE(77),KNTM(77),KNTR(77) / 'D103.1', 255, 255 /
95       DATA CODE(78),KNTM(78),KNTR(78) / 'D104.1', 255, 255 /
96       DATA CODE(79),KNTM(79),KNTR(79) / 'D104.2', 255, 255 /
97       DATA CODE(80),KNTM(80),KNTR(80) / 'D105.1', 255, 255 /
98       DATA CODE(81),KNTM(81),KNTR(81) / 'D105.2', 255, 255 /
99       DATA CODE(82),KNTM(82),KNTR(82) / 'D107.1', 255, 255 /
100       DATA CODE(83),KNTM(83),KNTR(83) / 'D110.0', 255, 255 /
101       DATA CODE(84),KNTM(84),KNTR(84) / 'D110.1', 255, 255 /
102       DATA CODE(85),KNTM(85),KNTR(85) / 'D110.2', 255, 255 /
103       DATA CODE(86),KNTM(86),KNTR(86) / 'D110.3', 255, 255 /
104       DATA CODE(87),KNTM(87),KNTR(87) / 'D110.4', 255, 255 /
105       DATA CODE(88),KNTM(88),KNTR(88) / 'D110.5', 255, 255 /
106       DATA CODE(89),KNTM(89),KNTR(89) / 'D110.6', 255, 255 /
107       DATA CODE(90),KNTM(90),KNTR(90) / 'D113.1', 255, 255 /
108       DATA CODE(91),KNTM(91),KNTR(91) / 'D201.1', 255, 255 /
109       DATA CODE(92),KNTM(92),KNTR(92) / 'D202.1', 255, 255 /
110       DATA CODE(93),KNTM(93),KNTR(93) / 'D401.1', 255, 255 /
111       DATA CODE(94),KNTM(94),KNTR(94) / 'D601.1', 255, 255 /
112       DATA CODE(95),KNTM(95),KNTR(95) / 'E210.1', 255, 255 /
113       DATA CODE(96),KNTM(96),KNTR(96) / 'E210.2', 255, 255 /
114       DATA CODE(97),KNTM(97),KNTR(97) / 'E210.3', 255, 255 /
115       DATA CODE(98),KNTM(98),KNTR(98) / 'E210.4', 255, 255 /
116       DATA CODE(99),KNTM(99),KNTR(99) / 'E210.5', 255, 255 /
117       DATA CODE(100),KNTM(100),KNTR(100) / 'E210.6', 255, 255 /
118       DATA CODE(101),KNTM(101),KNTR(101) / 'E210.7', 255, 255 /
119       DATA CODE(102),KNTM(102),KNTR(102) / 'E211.0', 255, 255 /
120       DATA CODE(103),KNTM(103),KNTR(103) / 'E211.1', 255, 255 /
121       DATA CODE(104),KNTM(104),KNTR(104) / 'E211.2', 255, 255 /
122       DATA CODE(105),KNTM(105),KNTR(105) / 'E211.3', 255, 255 /
123       DATA CODE(106),KNTM(106),KNTR(106) / 'E211.4', 255, 255 /
124       DATA CODE(107),KNTM(107),KNTR(107) / 'E406.0', 255, 255 /
125       DATA CODE(108),KNTM(108),KNTR(108) / 'E406.1', 255, 255 /
126       DATA CODE(109),KNTM(109),KNTR(109) / 'E407.0', 255, 255 /
127       DATA CODE(110),KNTM(110),KNTR(110) / 'E408.0', 255, 255 /
128       DATA CODE(111),KNTM(111),KNTR(111) / 'E408.1', 255, 255 /
129       DATA CODE(112),KNTM(112),KNTR(112) / 'F500.0', 255, 255 /
130       DATA CODE(113),KNTM(113),KNTR(113) / 'F500.1', 255, 255 /
131       DATA CODE(114),KNTM(114),KNTR(114) / 'F500.2', 255, 255 /
132       DATA CODE(115),KNTM(115),KNTR(115) / 'F500.3', 255, 255 /
133       DATA CODE(116),KNTM(116),KNTR(116) / 'G100.1', 255, 255 /
134       DATA CODE(117),KNTM(117),KNTR(117) / 'G100.2', 255, 255 /
135       DATA CODE(118),KNTM(118),KNTR(118) / 'G101.1', 255, 255 /
136       DATA CODE(119),KNTM(119),KNTR(119) / 'G101.2', 255, 255 /
137       DATA CODE(120),KNTM(120),KNTR(120) / 'G105.1', 255, 255 /
138       DATA CODE(121),KNTM(121),KNTR(121) / 'G106.1', 255, 255 /
139       DATA CODE(122),KNTM(122),KNTR(122) / 'G106.2', 255, 255 /
140       DATA CODE(123),KNTM(123),KNTR(123) / 'G116.1', 255, 255 /
141       DATA CODE(124),KNTM(124),KNTR(124) / 'G116.2', 255, 255 /
142       DATA CODE(125),KNTM(125),KNTR(125) / 'H101.0', 255, 255 /
143       DATA CODE(126),KNTM(126),KNTR(126) / 'H101.1', 255, 255 /
144       DATA CODE(127),KNTM(127),KNTR(127) / 'H101.2', 255, 255 /
145       DATA CODE(128),KNTM(128),KNTR(128) / 'H301.1', 255, 255 /
146       DATA CODE(129),KNTM(129),KNTR(129) / 'U501.1', 255, 255 /
147       DATA CODE(130),KNTM(130),KNTR(130) / 'V202.1', 255, 255 /
148       DATA CODE(131),KNTM(131),KNTR(131) / 'V202.2', 255, 255 /
149       DATA CODE(132),KNTM(132),KNTR(132) / 'V202.3', 255, 255 /
150
151 #if defined(CERNLIB_IBMVM)||defined(CERNLIB_IBMMVS)
152       EXTERNAL C302ERR,C304ERR
153
154       LOGICAL LERSET
155       DATA LERSET/.FALSE./
156       SAVE LERSET
157
158       IF(.NOT.LERSET) THEN
159         LERSET=.TRUE.
160 C---  AFB290I: Argument for GAMMA  is out of range
161         CALL ERRSET(290,256,-1,1,C302ERR)
162 C---  AFB291I: Argument for ALGAMA is out of range
163         CALL ERRSET(291,256,-1,1,C304ERR)
164 C---  AFB300I: Argument for DGAMMA is out of range
165         CALL ERRSET(300,256,-1,1,C302ERR)
166 C---  AFB301I: Argument for DLGAMA is out of range
167         CALL ERRSET(301,256,-1,1,C304ERR)
168       ENDIF
169 #endif
170
171       ILG=NLG
172       L=0
173       IF(ERC .NE. ' ') THEN
174        DO 10 L = 1,6
175        IF(ERC(1:L) .EQ. ERC) GOTO 12
176    10  CONTINUE
177    12  CONTINUE
178       ENDIF
179       DO 14 I = 1,KTE
180       IF(L .EQ. 0 .OR. CODE(I)(1:L) .EQ. ERC(1:L)) THEN
181        IF(MXM .GE. 0) KNTM(I)=MXM
182        IF(MXR .GE. 0) KNTR(I)=MXR
183       ENDIF
184    14 CONTINUE
185       RETURN
186
187       ENTRY MTLMTR(ERC,MLG,LMF,LRF)
188
189       MLG=ILG
190       DO 20 I = 1,KTE
191       IF(ERC .EQ. CODE(I))  GOTO 21
192    20 CONTINUE
193       WRITE(*,100) ERC
194       STOP 'in MTLSET'
195       RETURN
196
197    21 LMF=KNTM(I) .GE. 1
198       LRF=KNTR(I) .GE. 1
199       IF(LMF .AND. KNTM(I) .LT. 255)  KNTM(I)=KNTM(I)-1
200       IF(LRF .AND. KNTR(I) .LT. 255)  KNTR(I)=KNTR(I)-1
201       IF(.NOT.LRF) THEN
202        IF(ILG .LT. 1) WRITE(  *,101) CODE(I)
203        IF(ILG .GE. 1) WRITE(ILG,101) CODE(I)
204       ENDIF
205       RETURN
206   100 FORMAT(7X,'***** CERN N002 MTLSET ... ERROR N002: ',
207      1'ERROR CODE ',A6,' NOT RECOGNIZED BY ERROR MONITOR. RUN ABORTED.')
208   101 FORMAT(7X,'***** CERN N002 MTLSET ... ERROR NOO2.1: ',
209      1'RUN TERMINATED BY LIBRARY ERROR CONDITION ',A6)
210       END