]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ISAJET/code/readin.F
EffC++ warnings corrected.
[u/mrichter/AliRoot.git] / ISAJET / code / readin.F
CommitLineData
0795afa3 1#include "isajet/pilot.h"
2 SUBROUTINE READIN(IFL)
3C
4C Read in user data and execute SETTYP if appropriate values
5C are set. IFL return values:
6C IFL = 0 Good parameter set
7C IFL = 1001 Stop
8C IFL > 0 Error. Program will continue reading data but
9C will exit when END or unrecognizable keyword
10C is found.
11C
12#if defined(CERNLIB_IMPNONE)
13 IMPLICIT NONE
14#endif
15#include "isajet/itapes.inc"
16#include "isajet/mbgen.inc"
17#include "isajet/force.inc"
18#include "isajet/dkytab.inc"
19#include "isajet/qcdpar.inc"
20#include "isajet/eepar.inc"
21#include "isajet/idrun.inc"
22#include "isajet/frgpar.inc"
23#include "isajet/keys.inc"
24#include "isajet/kkgrav.inc"
25#include "isajet/prtout.inc"
26#include "isajet/seed.inc"
27#include "isajet/types.inc"
28#include "isajet/primar.inc"
29#include "isajet/jetlim.inc"
30#include "isajet/nodcay.inc"
31#include "isajet/wcon.inc"
32#include "isajet/dylim.inc"
33#include "isajet/qlmass.inc"
34#include "isajet/q1q2.inc"
35#include "isajet/jetpar.inc"
36#include "isajet/isloop.inc"
37#include "isajet/tcpar.inc"
38#include "isajet/xmssm.inc"
39#include "isajet/sugnu.inc"
40#if defined(CERNLIB_PDFLIB)
41#include "isajet/w50510.inc"
42* Ignoring t=pass
43#endif
44#if defined(CERNLIB_PDFLIB)
45#include "isajet/w50517.inc"
46* Ignoring t=pass
47#endif
48#include "isajet/hcon.inc"
49#include "isajet/mglims.inc"
50C
51 LOGICAL SETTYP,DUMY
52 CHARACTER*8 TTL(10),WORD,LSTRUC,BLANK
53 CHARACTER*8 WTYP(4),RDID(2)
54 CHARACTER*40 V,VISAJE
55 INTEGER NLAP(3,17)
56 INTEGER IDANTI,ID,IDB
57 INTEGER IFL,I1,I2,I3,J1,I,IKEY,IJ,J,KK,IDABS
58 INTEGER IDXQKL,IDXQKR
59 INTEGER NSEL,K,KFORCE(5),INDEX,IDG1,IDG2,IDG3,IDG4,IDXLEP
60 REAL AMW,AMZ
61 CHARACTER*8 HTYPE
62 INTEGER JLIM1,JLIM2
63 REAL AMLIM1,AMLIM2
64#if defined(CERNLIB_SINGLE)
65 REAL SEED
66#endif
67#if defined(CERNLIB_DOUBLE)
68 DOUBLE PRECISION SEED
69#endif
70#if defined(CERNLIB_PDFLIB)
71 CHARACTER*20 PDFPAR(20)
72#endif
73#if (defined(CERNLIB_PDFLIB))&&(defined(CERNLIB_SINGLE))
74 REAL PDFVAL(20)
75 REAL DX,DSCALE,DXPDF(-6:6)
76#endif
77#if (defined(CERNLIB_PDFLIB))&&(defined(CERNLIB_DOUBLE))
78 DOUBLE PRECISION PDFVAL(20)
79 DOUBLE PRECISION DX,DSCALE,DXPDF(-6:6)
80#endif
81C
82C Overlapping variable flags.
83 DATA NLAP/1,2,3, 1,2,7 ,1,2,8, 1,3,5, 1,3,6, 1,3,7, 1,3,8, 1,5,7,
84 X 1,5,8, 1,6,7, 1,6,8, 2,3,7, 2,3,8, 3,5,7, 3,6,7, 3,5,8,
85 X 3,6,8/
86 DATA BLANK/' '/
87C
88C Entry
89 IFL=0
90 V=VISAJE()
91 WRITE(ITLIS,10) V
9210 FORMAT('1',//5X,'***** ',A40,' *****')
93 WRITE(ITLIS,11)
94 11 FORMAT(////30X,' COMMANDS READ BY READIN')
95C
96C Read title
97C
98 READ(ITCOM,1) TTL
99 1 FORMAT(10A8)
100 WRITE(ITLIS,2) TTL
101 2 FORMAT(' ',10A8)
102 IF(TTL(1).EQ.'STOP ') THEN
103 IFL=1001
104 RETURN
105 ENDIF
106C
107C Read energy and no. of events
108C
109 READ(ITCOM,*) ECM,NEVENT,NEVPRT,NJUMP
110 WRITE(ITLIS,*) ECM,NEVENT,NEVPRT,NJUMP
111C
112C Reset all variables and set process if title is not 'SAME'
113C
114 IF(TTL(1).NE.'SAME ') THEN
115 DO 20 I=1,10
116 20 TITLE(I)=TTL(I)
117 CALL RESET
118 KEYON=.FALSE.
119C Read reaction
120 READ(ITCOM,3) REAC
121 3 FORMAT(A8)
122 WRITE(ITLIS,4) REAC
123 4 FORMAT(1X,A8)
124 DO 18 I=1,MXKEYS
12518 KEYS(I)=.FALSE.
126 KEYON=.FALSE.
127C Set KEYS and NJET
128 IF(REAC.EQ.'TWOJET ') THEN
129 KEYS(1)=.TRUE.
130 IKEY=1
131 NJET=2
132 ELSEIF(REAC.EQ.'E+E- ') THEN
133 KEYS(2)=.TRUE.
134 IKEY=2
135 NJET=2
136 ELSEIF(REAC.EQ.'DRELLYAN') THEN
137 KEYS(3)=.TRUE.
138 IKEY=3
139 NJET=3
140 ELSEIF(REAC.EQ.'MINBIAS ') THEN
141 KEYS(4)=.TRUE.
142 IKEY=4
143 NJET=0
144 ELSEIF(REAC.EQ.'SUPERSYM'.OR.REAC.EQ.'SUSY ') THEN
145 KEYS(5)=.TRUE.
146 IKEY=5
147 NJET=2
148 ELSEIF(REAC.EQ.'WPAIR ') THEN
149 KEYS(6)=.TRUE.
150 IKEY=6
151 NJET=2
152 ELSEIF(REAC.EQ.'HIGGS ') THEN
153 KEYS(7)=.TRUE.
154 IKEY=7
155 NJET=2
156 ELSEIF(REAC.EQ.'PHOTON ') THEN
157 KEYS(8)=.TRUE.
158 IKEY=8
159 NJET=2
160 ELSEIF(REAC.EQ.'TCOLOR ') THEN
161 KEYS(9)=.TRUE.
162 IKEYS=9
163 NJET=2
164 ELSEIF(REAC.EQ.'WHIGGS ') THEN
165 KEYS(10)=.TRUE.
166 IKEY=10
167 NJET=2
168 ELSEIF(REAC.EQ.'EXTRADIM') THEN
169 KEYS(11)=.TRUE.
170 IKEY=11
171 NJET=3
172 ELSEIF(REAC.EQ.'ZJJ ') THEN
173 KEYS(12)=.TRUE.
174 IKEY=12
175 NJET=3
176 ELSE
177 KEYON=.FALSE.
178 890 WRITE(ITLIS,1999)
179 IFL=9
180 RETURN
181 ENDIF
182 ENDIF
183C
184 SCM=ECM**2
185 HALFE=ECM/2
186 NSEL=0
187C
188C Read keyword. For each recognized keyword read corresponding
189C variables and set LOC flag.
190C
191 NSEL=0
192100 CONTINUE
193 READ(ITCOM,3) WORD
194 WRITE(ITLIS,4) WORD
195 NSEL=NSEL+1
196C
197C Keyword END
198 IF(WORD.EQ.'END ') THEN
199C Check for previous error
200 IF(IFL.NE.0) RETURN
201C Check inconsistent limits
202 IF(LOC(2)*LOC(5).NE.0.OR.LOC(2)*LOC(6).NE.0) THEN
203 WRITE(ITLIS,2001)
204 IFL=11
205 ENDIF
206C Set and check jet types
207 IF(LOC(15).NE.0.OR.LOC(37).NE.0.OR.LOC(46).NE.0) THEN
208 IF(SETTYP(0)) THEN
209 WRITE(ITLIS,2006)
210 IFL=12
211 ENDIF
212 ENDIF
213C Check MSSM/SUGRA conflict
214 IF((LOC(51).NE.0.OR.LOC(52).NE.0.OR.LOC(53).NE.0).AND.
215 $ LOC(55).NE.0) THEN
216 WRITE(ITLIS,2007)
217 IFL=29
218 ENDIF
219C Check overlapping limits
220 DO 120 I=1,17
221 I1=NLAP(1,I)
222 I2=NLAP(2,I)
223 I3=NLAP(3,I)
224 IF(LOC(I1)*LOC(I2)*LOC(I3).NE.0) WRITE(ITLIS,1001)
225 120 CONTINUE
226C Setup PDFLIB
227#if defined(CERNLIB_PDFLIB)
228 IF(ISTRUC.EQ.-999) THEN
229 WRITE(ITLIS,1200)
2301200 FORMAT(//
231 $ '1********************************'/
232 $ ' * *'/
233 $ ' * INITIALIZE PDFLIB FOR ISAJET *'/
234 $ ' * *'/
235 $ ' ********************************'/)
236 N6=ITLIS
237 IFLPRT=2
238 CALL PDFSET(PDFPAR,PDFVAL)
239 CALL PFTOPDG(0.5D0,1.0D2,DXPDF)
240 IFLPRT=0
241 ENDIF
242#endif
243C Check EXTRADIM parameters are set
244 IF(KEYS(11).AND.LOC(72).EQ.0) THEN
245 WRITE(ITLIS,*) 'YOU FORGOT TO SET EXTRAD PARAMETERS'
246 IFL=72
247 ENDIF
248C
249 RETURN
250 ENDIF
251C
252C Keyword P
253 IF(WORD.EQ.'P ') THEN
254 READ(ITCOM,*) (PMIN(K),PMAX(K),K=1,NJET)
255 WRITE(ITLIS,*) (PMIN(K),PMAX(K),K=1,NJET)
256 LOC(1)=NSEL
257 GO TO 100
258 ENDIF
259C
260C Keyword Y
261 IF(WORD.EQ.'Y ') THEN
262 READ(ITCOM,*) (YJMIN(K),YJMAX(K),K=1,NJET)
263 WRITE(ITLIS,*) (YJMIN(K),YJMAX(K),K=1,NJET)
264 LOC(2)=NSEL
265 GO TO 100
266 ENDIF
267C
268C Keyword X
269 IF(WORD.EQ.'X ') THEN
270 READ(ITCOM,*) (XJMIN(K),XJMAX(K),K=1,NJET)
271 WRITE(ITLIS,*) (XJMIN(K),XJMAX(K),K=1,NJET)
272 LOC(3)=NSEL
273 GO TO 100
274 ENDIF
275C
276C Keyword PHI
277 IF(WORD.EQ.'PHI ') THEN
278 READ(ITCOM,*) (PHIMIN(K),PHIMAX(K),K=1,NJET)
279 WRITE(ITLIS,*) (PHIMIN(K),PHIMAX(K),K=1,NJET)
280 LOC(4)=NSEL
281 GO TO 100
282 ENDIF
283C
284C Keyword TH
285 IF(WORD.EQ.'TH '.OR.WORD.EQ.'THETA ') THEN
286 READ(ITCOM,*) (THMIN(K),THMAX(K),K=1,NJET)
287 WRITE(ITLIS,*) (THMIN(K),THMAX(K),K=1,NJET)
288 LOC(5)=NSEL
289 LOC(6)=NSEL
290 GO TO 100
291 ENDIF
292C
293C Keyword PT
294 IF(WORD.EQ.'PT '.OR.WORD.EQ.'PPERP ') THEN
295 READ(ITCOM,*) (PTMIN(K),PTMAX(K),K=1,NJET)
296 WRITE(ITLIS,*) (PTMIN(K),PTMAX(K),K=1,NJET)
297 LOC(7)=NSEL
298 LOC(8)=NSEL
299 GO TO 100
300 ENDIF
301C
302C Keyword NODECAY
303 IF(WORD.EQ.'NODECAY ') THEN
304 READ(ITCOM,571) NODCAY
305571 FORMAT(L1)
306 WRITE(ITLIS,572) NODCAY
307572 FORMAT(' ',L1)
308 LOC(9)=NSEL
309 GO TO 100
310 ENDIF
311C
312C Keyword NOETA
313 IF(WORD.EQ.'NOETA ') THEN
314 READ(ITCOM,571) NOETA
315 WRITE(ITLIS,572) NOETA
316 LOC(10)=NSEL
317 GO TO 100
318 ENDIF
319C
320C Keyword NOPI0
321 IF(WORD.EQ.'NOPI0 ') THEN
322 READ(ITCOM,571) NOPI0
323 WRITE(ITLIS,572) NOPI0
324 LOC(11)=NSEL
325 GO TO 100
326 ENDIF
327C
328C Keyword BEAMS
329 IF(WORD.EQ.'BEAMS ') THEN
330 READ(ITCOM,*) RDID(1),RDID(2)
331 WRITE(ITLIS,*) RDID(1),RDID(2)
332 IDIN(1)=0
333 IDIN(2)=0
334 DO 123 K=1,2
335 IF(RDID(K).EQ.'P ') IDIN(K)=+1120
336 IF(RDID(K).EQ.'AP ') IDIN(K)=-1120
337 IF(RDID(K).EQ.'N ') IDIN(K)=+1220
338 IF(RDID(K).EQ.'AN ') IDIN(K)=-1220
339123 CONTINUE
340 IF(IDIN(1)*IDIN(2).EQ.0) THEN
341 WRITE(ITLIS,2002)
342 IFL=13
343 ENDIF
344 LOC(12)=NSEL
345 GO TO 100
346 ENDIF
347C
348C Keyword FRAGMENT
349 IF(WORD.EQ.'FRAGMENT') THEN
350 READ(ITCOM,*) FRPAR
351 WRITE(ITLIS,*) FRPAR
352 LOC(13)=NSEL
353 GO TO 100
354 ENDIF
355C
356C Keyword SEED
357 IF(WORD.EQ.'SEED ') THEN
358 READ(ITCOM,*) SEED
359 WRITE(ITLIS,*) SEED
360 CALL RANFST(SEED)
361 WRITE(XSEED,'(E24.15)') SEED
362 LOC(14)=NSEL
363 GO TO 100
364 ENDIF
365C
366C Keywords JETTYPE1, JETTYPE2, JETTYPE3, ...
367C (Yes, this is ugly)
368 IF(WORD.EQ.'JETTYPE1'.OR.WORD.EQ.'JETTYPE2'.OR.
369 $WORD.EQ.'JETTYPE3'.OR.WORD.EQ.'JETTYPE4'.OR.
370 $WORD.EQ.'JETTYPE5'.OR.WORD.EQ.'JETTYPE6'.OR.
371 $WORD.EQ.'JETTYPE7'.OR.WORD.EQ.'JETTYPE8') THEN
372 IF(WORD.EQ.'JETTYPE1') IJ=1
373 IF(WORD.EQ.'JETTYPE2') IJ=2
374 IF(WORD.EQ.'JETTYPE3') IJ=3
375 IF(WORD.EQ.'JETTYPE4') IJ=4
376 IF(WORD.EQ.'JETTYPE5') IJ=5
377 IF(WORD.EQ.'JETTYPE6') IJ=6
378 IF(WORD.EQ.'JETTYPE7') IJ=7
379 IF(WORD.EQ.'JETTYPE8') IJ=8
380 DO 151 K=1,30
381 JETYP(K,IJ)=BLANK
382151 CONTINUE
383 READ(ITCOM,*) (JETYP(K,IJ),K=1,30)
384 DO 152 K=1,25
385152 IF(JETYP(K,IJ).NE.BLANK) NJTTYP(IJ)=NJTTYP(IJ)+1
386 WRITE(ITLIS,*) (JETYP(K,IJ),K=1,NJTTYP(IJ))
387 LOC(15)=NSEL
388 GO TO 100
389 ENDIF
390C
391C Keyword SIN2W
392 IF(WORD.EQ.'SIN2W ') THEN
393 READ(ITCOM,*) SIN2W
394 WRITE(ITLIS,*) SIN2W
395 LOC(17)=NSEL
396 GO TO 100
397 ENDIF
398C
399C Keyword TMASS
400 IF(WORD.EQ.'TMASS ') THEN
401 READ(ITCOM,*) AMLEP(6),AMLEP(7),AMLEP(8)
402 WRITE(ITLIS,*) AMLEP(6),AMLEP(7),AMLEP(8)
403 LOC(18)=NSEL
404 GO TO 100
405 ENDIF
406C
407C Keyword QMH
408 IF(WORD.EQ.'QMH ') THEN
409 READ(ITCOM,*) QMIN,QMAX
410 WRITE(ITLIS,*) QMIN,QMAX
411 LOC(19)=NSEL
412 GO TO 100
413 ENDIF
414C
415C Keyword QMW
416 IF(WORD.EQ.'QMW ') THEN
417 READ(ITCOM,*) QMIN,QMAX
418 WRITE(ITLIS,*) QMIN,QMAX
419 LOC(19)=NSEL
420 GO TO 100
421 ENDIF
422C
423C Keyword QTW
424 IF(WORD.EQ.'QTW ') THEN
425 READ(ITCOM,*) QTMIN,QTMAX
426 WRITE(ITLIS,*) QTMIN,QTMAX
427 LOC(20)=NSEL
428 GO TO 100
429 ENDIF
430C
431C Keyword YW
432 IF(WORD.EQ.'YW ') THEN
433 READ(ITCOM,*) YWMIN,YWMAX
434 WRITE(ITLIS,*) YWMIN,YWMAX
435 LOC(21)=NSEL
436 GO TO 100
437 ENDIF
438C
439C Keyword XW
440 IF(WORD.EQ.'XW ') THEN
441 READ(ITCOM,*) XWMIN,XWMAX
442 WRITE(ITLIS,*) XWMIN,XWMAX
443 LOC(22)=NSEL
444 GO TO 100
445 ENDIF
446C
447C Keyword THW
448 IF(WORD.EQ.'THW ') THEN
449 READ(ITCOM,*) THWMIN,THWMAX
450 WRITE(ITLIS,*) THWMIN,THWMAX
451 LOC(23)=NSEL
452 GO TO 100
453 ENDIF
454C
455C Keyword PHIW
456 IF(WORD.EQ.'PHIW ') THEN
457 READ(ITCOM,*) PHWMIN,PHWMAX
458 WRITE(ITLIS,*) PHWMIN,PHWMAX
459 LOC(24)=NSEL
460 GO TO 100
461 ENDIF
462C
463C Keyword NONUNU
464 IF(WORD.EQ.'NONUNU ') THEN
465 READ(ITCOM,571) NONUNU
466 WRITE(ITLIS,572) NONUNU
467 LOC(25)=NSEL
468 GO TO 100
469 ENDIF
470C
471C Keyword WTYPE
472 IF(WORD.EQ.'WTYPE ') THEN
473 DO 261 J=1,4
474 WTYP(J)=BLANK
475 GODY(J)=.FALSE.
476261 CONTINUE
477 READ(ITCOM,*) WTYP
478 WRITE(ITLIS,*) WTYP
479 DO 262 K=1,4
480 IF(WTYP(K).EQ.'GM ') GODY(1)=.TRUE.
481 IF(WTYP(K).EQ.'W+ ') GODY(2)=.TRUE.
482 IF(WTYP(K).EQ.'W- ') GODY(3)=.TRUE.
483 IF(WTYP(K).EQ.'Z0 ') GODY(4)=.TRUE.
484 262 CONTINUE
485 IF(GODY(1)) JWTYP=1
486 IF(GODY(2).OR.GODY(3)) JWTYP=3
487 IF(GODY(4)) JWTYP=4
488 IF((GODY(2).OR.GODY(3)).AND.(GODY(1).OR.GODY(4))) THEN
489 WRITE(ITLIS,2003)
490 IFL=13
491 ENDIF
492 LOC(26)=NSEL
493 GO TO 100
494 ENDIF
495C
496C Keyword LAMBDA
497 IF(WORD.EQ.'LAMBDA ') THEN
498 READ(ITCOM,*) ALAM
499 WRITE(ITLIS,*) ALAM
500 ALAM2=ALAM**2
501 LOC(27)=NSEL
502 GO TO 100
503 ENDIF
504C
505C Keyword NTRIES
506 IF(WORD.EQ.'NTRIES ') THEN
507 READ(ITCOM,*) NTRIES
508 WRITE(ITLIS,*) NTRIES
509 LOC(28)=NSEL
510 GO TO 100
511 ENDIF
512C
513C Keyword CUTOFF
514 IF(WORD.EQ.'CUTOFF ') THEN
515 READ(ITCOM,*) CUTOFF,CUTPOW
516 WRITE(ITLIS,*) CUTOFF,CUTPOW
517 LOC(29)=NSEL
518 GO TO 100
519 ENDIF
520C
521C Keyword XGEN
522 IF(WORD.EQ.'XGEN ') THEN
523 READ(ITCOM,*) XGEN
524 WRITE(ITLIS,*) XGEN
525 LOC(30)=NSEL
526 GO TO 100
527 ENDIF
528C
529C Keyword SIGQT
530 IF(WORD.EQ.'SIGQT ') THEN
531 READ(ITCOM,*) SIGQT
532 WRITE(ITLIS,*) SIGQT
533 LOC(31)=NSEL
534 GO TO 100
535 ENDIF
536C
537C Keyword CUTJET
538 IF(WORD.EQ.'CUTJET ') THEN
539 READ(ITCOM,*) CUTJET
540 WRITE(ITLIS,*) CUTJET
541 LOC(32)=NSEL
542 GO TO 100
543 ENDIF
544C
545C Keyword WFUDGE
546 IF(WORD.EQ.'WFUDGE ') THEN
547 READ(ITCOM,*) WFUDGE
548 WRITE(ITLIS,*) WFUDGE
549 LOC(50)=NSEL
550 GO TO 100
551 ENDIF
552C
553C Keyword STRUC
554 IF(WORD.EQ.'STRUC ') THEN
555 ISTRUC=0
556 READ(ITCOM,*) LSTRUC
557 WRITE(ITLIS,4) LSTRUC
558 IF(LSTRUC.EQ.'OWENS ') ISTRUC=1
559 IF(LSTRUC.EQ.'BAIER ') ISTRUC=2
560 IF(LSTRUC.EQ.'EICHTEN '.OR.LSTRUC.EQ.'EHLQ ') ISTRUC=3
561 IF(LSTRUC.EQ.'DUKE '.OR.LSTRUC.EQ.'DO ') ISTRUC=4
562 IF(LSTRUC.EQ.'CTEQ2L ') ISTRUC=5
563 IF(LSTRUC.EQ.'CTEQ '.OR.LSTRUC.EQ.'CTEQ3L ') ISTRUC=6
564 IF(ISTRUC.EQ.0) THEN
565 WRITE(ITLIS,2002)
566 IFL=13
567 ENDIF
568 LOC(33)=NSEL
569 GO TO 100
570 ENDIF
571C
572C Keyword NPOMERON
573 IF(WORD.EQ.'NPOMERON') THEN
574 READ(ITCOM,*) MNPOM,MXPOM
575 WRITE(ITLIS,*) MNPOM,MXPOM
576 IF(MNPOM.LT.1.OR.MNPOM.GT.MXPOM.OR.MXPOM.GT.LIMPOM) THEN
577 WRITE(ITLIS,2004)
578 IFL=14
579 ENDIF
580 LOC(34)=NSEL
581 GO TO 100
582 ENDIF
583C
584C Keyword FORCE
585 IF(WORD.EQ.'FORCE ') THEN
586 NFORCE=NFORCE+1
587 IF(NFORCE.GT.MXFORC-1) THEN
588 WRITE(ITLIS,2004)
589 IFL=14
590 ENDIF
591 DO 351 K=1,5
592351 KFORCE(K)=0
593 READ(ITCOM,*) IFORCE(NFORCE),(KFORCE(K),K=1,5)
594 CALL ORDER(IFORCE(NFORCE),KFORCE,MFORCE(1,NFORCE),
595 $ MEFORC(NFORCE))
596 WRITE(ITLIS,*) IFORCE(NFORCE),(MFORCE(K,NFORCE),K=1,5)
597 ID=IFORCE(NFORCE)
598 IDABS=IABS(ID)
599 IF(IDABS.LT.6) THEN
600 WRITE(ITLIS,2005)
601 IFL=15
602 ENDIF
603 IDB=IDANTI(ID)
604 IF(IDB.NE.ID) THEN
605 IFORCE(NFORCE+1)=IDB
606 DO 352 K=1,5
607 352 MFORCE(K,NFORCE+1)=IDANTI(MFORCE(K,NFORCE))
608 NFORCE=NFORCE+1
609 ENDIF
610 LOC(35)=NSEL
611 GO TO 100
612 ENDIF
613C
614C Keyword FORCE1
615 IF(WORD.EQ.'FORCE1 ') THEN
616 NFORCE=NFORCE+1
617 IF(NFORCE.GT.MXFORC) THEN
618 WRITE(ITLIS,2004)
619 IFL=14
620 ENDIF
621 DO 353 K=1,5
622353 KFORCE(K)=0
623 READ(ITCOM,*) IFORCE(NFORCE),(KFORCE(K),K=1,5)
624 CALL ORDER(IFORCE(NFORCE),KFORCE,MFORCE(1,NFORCE),
625 $ MEFORC(NFORCE))
626 WRITE(ITLIS,*) IFORCE(NFORCE),(MFORCE(K,NFORCE),K=1,5)
627 IF(IABS(IFORCE(NFORCE)).LT.6) THEN
628 WRITE(ITLIS,2005)
629 IFL=15
630 ENDIF
631 LOC(35)=NSEL
632 GO TO 100
633 ENDIF
634C
635C Keyword HMASSES - also see HMASS
636 IF(WORD.EQ.'HMASSES ') THEN
637 CALL FLAVOR(80,I1,I2,I3,J1,INDEX)
638 READ(ITCOM,*) (AMLEP(INDEX+K),K=1,9)
639 WRITE(ITLIS,*) (AMLEP(INDEX+K),K=1,9)
640 LOC(36)=NSEL
641 GO TO 100
642 ENDIF
643C
644C Keywords WMODE1,WMODE2
645 IF(WORD.EQ.'WMODE1 '.OR.WORD.EQ.'WMODE2 ') THEN
646 IF(WORD.EQ.'WMODE1 ') IJ=1
647 IF(WORD.EQ.'WMODE2 ') IJ=2
648 READ(ITCOM,*) (WWTYP(K,IJ),K=1,25)
649 DO 372 K=1,25
650372 IF(WWTYP(K,IJ).NE.BLANK) NWWTYP(IJ)=NWWTYP(IJ)+1
651 WRITE(ITLIS,*) (WWTYP(K,IJ),K=1,NWWTYP(IJ))
652 LOC(37)=NSEL
653 GO TO 100
654 ENDIF
655C
656C Keyword NOEVOLVE
657 IF(WORD.EQ.'NOEVOLVE') THEN
658 READ (ITCOM,571) NOEVOL
659 WRITE(ITLIS,572) NOEVOL
660 LOC(38)=NSEL
661 GO TO 100
662 ENDIF
663C
664C Keyword NOHADRON
665 IF(WORD.EQ.'NOHADRON') THEN
666 READ (ITCOM,571) NOHADR
667 WRITE(ITLIS,572) NOHADR
668 LOC(39)=NSEL
669 GO TO 100
670 ENDIF
671C
672C Keyword GAUGINO
673 IF(WORD.EQ.'GAUGINO ') THEN
674 CALL FLAVOR(29,I1,I2,I3,J1,IDG1)
675 CALL FLAVOR(30,I1,I2,I3,J1,IDG2)
676 CALL FLAVOR(39,I1,I2,I3,J1,IDG3)
677 CALL FLAVOR(40,I1,I2,I3,J1,IDG4)
678 READ(ITCOM,*) AMLEP(IDG1),AMLEP(IDG2),AMLEP(IDG3),AMLEP(IDG4)
679 WRITE(ITLIS,*) AMLEP(IDG1),AMLEP(IDG2),AMLEP(IDG3),AMLEP(IDG4)
680 LOC(40)=NSEL
681 GO TO 100
682 ENDIF
683C
684C Keyword SQUARK
685 IF(WORD.EQ.'SQUARK ') THEN
686 CALL FLAVOR(21,I1,I2,I3,J1,IDXQKL)
687 READ(ITCOM,*) (AMLEP(IDXQKL+K-1),K=1,6)
688 WRITE(ITLIS,*) (AMLEP(IDXQKL+K-1),K=1,6)
689 CALL FLAVOR(41,I1,I2,I3,J1,IDXQKR)
690 DO 411 K=1,6
691 AMLEP(IDXQKR+K-1)=AMLEP(IDXQKL+K-1)
692411 CONTINUE
693 LOC(41)=NSEL
694 GO TO 100
695 ENDIF
696C
697C Keyword SLEPTON
698 IF(WORD.EQ.'SLEPTON ') THEN
699 CALL FLAVOR(31,I1,I2,I3,J1,IDXLEP)
700 READ(ITCOM,*) (AMLEP(IDXLEP+K-1),K=1,6)
701 WRITE(ITLIS,*) (AMLEP(IDXLEP+K-1),K=1,6)
702 LOC(42)=NSEL
703 GO TO 100
704 ENDIF
705C
706C Keyword NSIGMA
707 IF(WORD.EQ.'NSIGMA ') THEN
708 READ(ITCOM,*) NSIGMA
709 WRITE(ITLIS,*) NSIGMA
710 LOC(43)=NSEL
711 GO TO 100
712 ENDIF
713C
714C Keyword XGENSS
715 IF(WORD.EQ.'XGENSS ') THEN
716 READ(ITCOM,*) XGENSS(9),(XGENSS(KK),KK=1,8)
717 WRITE(ITLIS,*) XGENSS(9),(XGENSS(KK),KK=1,8)
718 LOC(44)=NSEL
719 GO TO 100
720 ENDIF
721C
722C Keyword HMASS - just standard Higgs
723 IF(WORD.EQ.'HMASS ') THEN
724 CALL FLAVOR(81,I1,I2,I3,J1,INDEX)
725 READ(ITCOM,*) AMLEP(INDEX)
726 WRITE(ITLIS,*) AMLEP(INDEX)
727 LOC(45)=NSEL
728 GO TO 100
729 ENDIF
730C
731C Keywords WPMODE, WMMODE, Z0MODE
732 IF(WORD.EQ.'WPMODE '.OR.WORD.EQ.'WMMODE '
733 $.OR.WORD.EQ.'Z0MODE ') THEN
734 IF(WORD.EQ.'WPMODE ') IJ=1
735 IF(WORD.EQ.'WMMODE ') IJ=2
736 IF(WORD.EQ.'Z0MODE ') IJ=3
737 READ(ITCOM,*) (WMODES(K,IJ),K=1,25)
738 DO 463 K=1,25
739463 IF(WMODES(K,IJ).NE.BLANK) NWMODE(IJ)=NWMODE(IJ)+1
740 WRITE(ITLIS,*) (WMODES(K,IJ),K=1,NWMODE(IJ))
741 LOC(46)=NSEL
742 GO TO 100
743 ENDIF
744C
745C Keyword WMASS
746 IF(WORD.EQ.'WMASS ') THEN
747 READ(ITCOM,*) AMW,AMZ
748 WRITE(ITLIS,*) AMW,AMZ
749 WMASS(1)=0.
750 WMASS(2)=AMW
751 WMASS(3)=AMW
752 WMASS(4)=AMZ
753 CALL FLAVOR(80,I1,I2,I3,J,INDEX)
754 AMLEP(INDEX)=AMW
755 CALL FLAVOR(90,I1,I2,I3,J,INDEX)
756 AMLEP(INDEX)=AMZ
757 LOC(47)=NSEL
758 GO TO 100
759 ENDIF
760C
761C Keyword NEVOLVE
762 IF(WORD.EQ.'NEVOLVE ') THEN
763 READ(ITCOM,*) NEVOLV
764 WRITE(ITLIS,*) NEVOLV
765 LOC(48)=NSEL
766 GO TO 100
767 ENDIF
768C
769C Keyword NHADRON
770 IF(WORD.EQ.'NHADRON ') THEN
771 READ(ITCOM,*) NFRGMN
772 WRITE(ITLIS,*) NFRGMN
773 LOC(49)=NSEL
774 GO TO 100
775 ENDIF
776C
777C Keyword TCMASS
778 IF(WORD.EQ.'TCMASS ') THEN
779 READ(ITCOM,*) TCMRHO,TCGRHO
780 WRITE(ITLIS,*) TCMRHO,TCGRHO
781 LOC(50)=NSEL
782 GO TO 100
783 ENDIF
784C
785C Keyword MSSMA: gluino, mu, mha, tanb
786 IF(WORD.EQ.'MSSMA ') THEN
787 READ(ITCOM,*) XGLSS,XMUSS,XHASS,XTBSS
788 WRITE(ITLIS,*) XGLSS,XMUSS,XHASS,XTBSS
789 GOMSSM=.TRUE.
790 LOC(51)=NSEL
791 GO TO 100
792 ENDIF
793C
794C Keyword MSSMB: 1st generation soft terms
795 IF(WORD.EQ.'MSSMB ') THEN
796 READ(ITCOM,*) XQ1SS,XDRSS,XURSS,XL1SS,XERSS
797 WRITE(ITLIS,*) XQ1SS,XDRSS,XURSS,XL1SS,XERSS
798 LOC(52)=NSEL
799 GOMSSM=.TRUE.
800 GO TO 100
801 ENDIF
802C
803C Keyword MSSMC: 3rd generation soft terms
804 IF(WORD.EQ.'MSSMC ') THEN
805 READ(ITCOM,*)XQ3SS,XBRSS,XTRSS,XL3SS,XTARSS,XATSS,XABSS,XATASS
806 WRITE(ITLIS,*)XQ3SS,XBRSS,XTRSS,XL3SS,XTARSS,XATSS,XABSS,XATASS
807 LOC(53)=NSEL
808 GOMSSM=.TRUE.
809 GO TO 100
810 ENDIF
811C
812C Keyword PDFLIB: parameters for PDFLIB
813#if defined(CERNLIB_PDFLIB)
814 IF(WORD.EQ.'PDFLIB ') THEN
815 DO 541 I=1,20
816 PDFPAR(I)=' '
817 PDFVAL(I)=0
818541 CONTINUE
819 READ(ITCOM,*) (PDFPAR(I),PDFVAL(I),I=1,20)
820 DO 542 I=1,20
821 IF(PDFPAR(I).NE.' ') THEN
822 WRITE(ITLIS,*) PDFPAR(I),PDFVAL(I)
823 ENDIF
824542 CONTINUE
825 ISTRUC=-999
826 LOC(54)=NSEL
827 GO TO 100
828 ENDIF
829#endif
830C
831C Keyword SUGRA
832 IF(WORD.EQ.'SUGRA ') THEN
833 READ(ITCOM,*) XM0SU,XMHSU,XA0SU,XTGBSU,XSMUSU
834 WRITE(ITLIS,*) XM0SU,XMHSU,XA0SU,XTGBSU,XSMUSU
835 LOC(55)=NSEL
836 GOMSSM=.TRUE.
837 GOSUG=.TRUE.
838 GO TO 100
839 ENDIF
840C
841C Keyword HTYPE
842 IF(WORD.EQ.'HTYPE ') THEN
843 READ(ITCOM,*) HTYPE
844 WRITE(ITLIS,*) HTYPE
845 LOC(56)=NSEL
846 IHTYPE=0
847 IF(HTYPE.EQ.'HL0 ') IHTYPE=82
848 IF(HTYPE.EQ.'HH0 ') IHTYPE=83
849 IF(HTYPE.EQ.'HA0 ') IHTYPE=84
850 IF(IHTYPE.EQ.0) THEN
851 WRITE(ITLIS,2000) HTYPE
852 IFL=16
853 ENDIF
854 GO TO 100
855 ENDIF
856C
857C Keyword EPOL
858 IF(WORD.EQ.'EPOL ') THEN
859 READ(ITCOM,*) PLEM,PLEP
860 WRITE(ITLIS,*) PLEM,PLEP
861 LOC(57)=NSEL
862 GO TO 100
863 ENDIF
864C
865C Keyword MSSMD: optional 2nd geenration soft terms
866 IF(WORD.EQ.'MSSMD ') THEN
867 READ(ITCOM,*) XQ2SS,XSRSS,XCRSS,XL2SS,XMRSS
868 WRITE(ITLIS,*) XQ2SS,XSRSS,XCRSS,XL2SS,XMRSS
869 LOC(58)=NSEL
870 GO TO 100
871 ENDIF
872C
873C Keyword MSSME: optional U(1) and SU(2) gaugino masses
874 IF(WORD.EQ.'MSSME ') THEN
875 READ(ITCOM,*) XM1SS,XM2SS
876 WRITE(ITLIS,*) XM1SS,XM2SS
877 LOC(59)=NSEL
878 GO TO 100
879 ENDIF
880C
881C Keyword GMSB: gauge-mediated SUSY breaking model
882 IF(WORD.EQ.'GMSB ') THEN
883 READ(ITCOM,*) XLAMGM,XMESGM,XN5GM,XTGBSU,XSMUSU,XCMGV
884 WRITE(ITLIS,*) XLAMGM,XMESGM,XN5GM,XTGBSU,XSMUSU,XCMGV
885 GOMSSM=.TRUE.
886 GOGMSB=.TRUE.
887 LOC(60)=NSEL
888 GO TO 100
889 ENDIF
890C
891C Keyword NUSUG1: optional GUT scale gaugino masses
892 IF(WORD.EQ.'NUSUG1 ') THEN
893 READ(ITCOM,*) XNUSUG(1),XNUSUG(2),XNUSUG(3)
894 WRITE(ITLIS,*) XNUSUG(1),XNUSUG(2),XNUSUG(3)
895 LOC(61)=NSEL
896 GO TO 100
897 ENDIF
898C
899C Keyword NUSUG2: optional GUT scale A terms
900 IF(WORD.EQ.'NUSUG2 ') THEN
901 READ(ITCOM,*) XNUSUG(6),XNUSUG(5),XNUSUG(4)
902 WRITE(ITLIS,*) XNUSUG(6),XNUSUG(5),XNUSUG(4)
903 LOC(62)=NSEL
904 GO TO 100
905 ENDIF
906C
907C Keyword NUSUG3: optional GUT scale Higgs masses
908 IF(WORD.EQ.'NUSUG3 ') THEN
909 READ(ITCOM,*) XNUSUG(7),XNUSUG(8)
910 WRITE(ITLIS,*) XNUSUG(7),XNUSUG(8)
911 LOC(63)=NSEL
912 GO TO 100
913 ENDIF
914C
915C Keyword NUSUG4: optional GUT scale 1st/2nd gen. masses
916 IF(WORD.EQ.'NUSUG4 ') THEN
917 READ(ITCOM,*) XNUSUG(13),XNUSUG(11),XNUSUG(12),XNUSUG(10)
918 $,XNUSUG(9)
919 WRITE(ITLIS,*) XNUSUG(13),XNUSUG(11),XNUSUG(12),XNUSUG(10)
920 $,XNUSUG(9)
921 LOC(64)=NSEL
922 GO TO 100
923 ENDIF
924C
925C Keyword NUSUG5: optional GUT scale 3rd gen. masses
926 IF(WORD.EQ.'NUSUG5 ') THEN
927 READ(ITCOM,*) XNUSUG(18),XNUSUG(16),XNUSUG(17),XNUSUG(15)
928 $,XNUSUG(14)
929 WRITE(ITLIS,*) XNUSUG(18),XNUSUG(16),XNUSUG(17),XNUSUG(15)
930 $,XNUSUG(14)
931 LOC(65)=NSEL
932 GO TO 100
933 ENDIF
934C
935C Keyword NOGRAV: No gravitino decays
936 IF(WORD.EQ.'NOGRAV ') THEN
937 READ(ITCOM,571) NOGRAV
938 WRITE(ITLIS,572) NOGRAV
939 LOC(66)=NSEL
940 GO TO 100
941 ENDIF
942C
943C Keyword MGVTNO: Sets the gravitino mass
944 IF(WORD.EQ.'MGVTNO ') THEN
945 READ(ITCOM,*) XMGVTO
946 WRITE(ITLIS,*) XMGVTO
947 LOC(67)=NSEL
948 GO TO 100
949 ENDIF
950C
951C Keyword AL3UNI: Impose alpha_s unification at M_GUT
952 IF(WORD.EQ.'AL3UNI ') THEN
953 READ(ITCOM,571) AL3UNI
954 WRITE(ITLIS,572) AL3UNI
955 LOC(68)=NSEL
956 GO TO 100
957 ENDIF
958C
959C Keyword GMSB2: additional GMSB parameters
960 IF(WORD.EQ.'GMSB2 ') THEN
961 READ(ITCOM,*) XRSLGM,XDHDGM,XDHUGM,XDYGM,XN51GM,XN52GM,XN53GM
962 WRITE(ITLIS,*) XRSLGM,XDHDGM,XDHUGM,XDYGM,XN51GM,XN52GM,XN53GM
963 LOC(69)=NSEL
964 GO TO 100
965 ENDIF
966C
967C Keyword EEBREM: invoke bremsstrahlung in e+e- reactions
968 IF(WORD.EQ.'EEBREM ') THEN
969 READ(ITCOM,*) RSHMIN,RSHMAX
970 WRITE(ITLIS,*) RSHMIN,RSHMAX
971 IBREM=.TRUE.
972 LOC(70)=NSEL
973 GO TO 100
974 ENDIF
975C
976C Keyword EEBEAM: invoke beamstrahlung in e+e- reactions
977 IF(WORD.EQ.'EEBEAM ') THEN
978 READ(ITCOM,*) RSHMIN,RSHMAX,UPSLON,SIGZ
979 WRITE(ITLIS,*) RSHMIN,RSHMAX,UPSLON,SIGZ
980 IBREM=.TRUE.
981 IBEAM=.TRUE.
982 LOC(71)=NSEL
983 GO TO 100
984 ENDIF
985C
986C Keyword QMKKG (QMW for EXTRADIM)
987 IF(WORD.EQ.'QMKKG ') THEN
988 READ(ITCOM,*) QMIN,QMAX
989 WRITE(ITLIS,*) QMIN,QMAX
990 LOC(19)=NSEL
991 GO TO 100
992 ENDIF
993C
994C Keyword QTKKG (QTW for EXTRADIM)
995 IF(WORD.EQ.'QTKKG ') THEN
996 READ(ITCOM,*) QTMIN,QTMAX
997 WRITE(ITLIS,*) QTMIN,QTMAX
998 LOC(20)=NSEL
999 GO TO 100
1000 ENDIF
1001C
1002C Keyword EXTRAD for EXTRADIM
1003 IF(WORD.EQ.'EXTRAD ') THEN
1004 READ(ITCOM,*) NEXTRAD,MASSD,UVCUT
1005 WRITE(ITLIS,*) NEXTRAD,MASSD,UVCUT
1006 LOC(72)=NSEL
1007 GO TO 100
1008 ENDIF
1009C
1010C Keyword MIJLIM
1011 IF(WORD.EQ.'MIJLIM ') THEN
1012 READ(ITCOM,*) JLIM1,JLIM2,AMLIM1,AMLIM2
1013 WRITE(ITLIS,*) JLIM1,JLIM2,AMLIM1,AMLIM2
1014 IF(JLIM1.EQ.0.AND.JLIM2.EQ.0) THEN
1015 DO 720 I=1,NJET
1016 DO 721 J=1,NJET
1017 AMIJMN(I,J)=AMLIM1
1018 AMIJMX(I,J)=AMLIM2
1019721 CONTINUE
1020720 CONTINUE
1021 ELSEIF(JLIM1.GT.0.AND.JLIM1.LE.NJET.AND.JLIM2.GT.0.AND.
1022 $ JLIM2.LE.NJET) THEN
1023 AMIJMN(JLIM1,JLIM2)=AMLIM1
1024 AMIJMN(JLIM2,JLIM1)=AMLIM1
1025 AMIJMX(JLIM1,JLIM2)=AMLIM2
1026 AMIJMX(JLIM2,JLIM1)=AMLIM2
1027 ELSE
1028 WRITE(ITLIS,2008)
1029 IFL=73
1030 ENDIF
1031 LOC(73)=NSEL
1032 GO TO 100
1033 ENDIF
1034C
1035C Keyword MTOT
1036 IF(WORD.EQ.'MTOT ') THEN
1037 READ(ITCOM,*) EHMGMN,EHMGMX
1038 WRITE(ITLIS,*) EHMGMN,EHMGMX
1039 LOC(74)=NSEL
1040 GO TO 100
1041 ENDIF
1042C
1043C Keyword SUGRHN
1044 IF(WORD.EQ.'SUGRHN ') THEN
1045 READ(ITCOM,*) XMN3NR,XMAJNR,XANSS,XNRSS
1046 WRITE(ITLIS,*) XMN3NR,XMAJNR,XANSS,XNRSS
1047 LOC(75)=NSEL
1048 GO TO 100
1049 ENDIF
1050C
1051C Keyword AMSB
1052 IF(WORD.EQ.'AMSB ') THEN
1053 READ(ITCOM,*) XM0SU,XMHSU,XTGBSU,XSMUSU
1054 WRITE(ITLIS,*) XM0SU,XMHSU,XTGBSU,XSMUSU
1055 LOC(76)=NSEL
1056 GOMSSM=.TRUE.
1057 GOSUG=.TRUE.
1058 GOAMSB=.TRUE.
1059 GO TO 100
1060 ENDIF
1061C
1062C Keyword SSBCSC
1063 IF(WORD.EQ.'SSBCSC ') THEN
1064 READ(ITCOM,*) XSBCS
1065 WRITE(ITLIS,*) XSBCS
1066 LOC(77)=NSEL
1067 GO TO 100
1068 ENDIF
1069C
1070C None of the above
1071C
1072 WRITE(ITLIS,2000) WORD
1073 IFL=10
1074 RETURN
1075C
1076C Error message or warnings
1077C
1078 1001 FORMAT(//2X,'YOU HAVE GIVEN LIMITS FOR AN OVERLAPPING SET',
1079 $ ' OF VARIABLES. SET MINIMIZING PPERP INTERVAL WILL BE USED.')
1080 1999 FORMAT(//' YOU FORGOT TO SELECT A PROCESS FOR GENERATION.'
1081 $ /' AVAILABLE AT PRESENT ARE ',
1082 $ /' TWOJET E+E- DRELLYAN MINBIAS WPAIR SUPERSYM,'
1083 $ /' HIGGS PHOTON TCOLOR')
1084 2000 FORMAT(//2X,A8,' IS NOT A RECOGNIZABLE PARAMETER. JOB TERMINATED')
1085 2001 FORMAT(//2X,' YOU CANNOT GIVE LIMITS FOR BOTH THETA AND Y.',
1086 $ ' MAKE UP YOUR MIND. JOB TERMINATED.')
1087 2002 FORMAT(/' WHAT IS THAT SUPPOSED TO BE')
1088 2003 FORMAT(/' YOU CANNOT RUN WS AND Z0 OR GAMMAS AT THE',
1089 $ ' SAME TIME. JOB TERMINATED')
1090 2004 FORMAT(//' PARAMETER OUT OF RANGE. JOB TERMINATED.')
1091 2005 FORMAT(//' YOU CANNOT FORCE DECAY OF A QUARK, YOU MUST CHOSE '
1092 $,' A PARTICLE')
1093 2006 FORMAT(//2X,' INVALID JETTYPE VALUES. JOB TERMINATED.')
1094 2007 FORMAT(//2X,'YOU CANNOT USE MSSM AND SUGRA SIMULTANEOUSLY')
1095 2008 FORMAT(//2X,'INVALID JET-JET MASS LIMITS. JOB TERMINATED.')
1096C
1097 END