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