10 IMPLICIT DOUBLE PRECISION(a-
h, o-
z)
15 common/
pydat1/mstu(200),paru(200),mstj(200),parj(200)
16 common/
pydat2/kchg(500,4),pmas(500,4),parf(2000),vckm(4,4)
17 common/
pydat3/mdcy(500,3),mdme(8000,2),brat(8000),kfdp(8000,5)
20 common/
pydatr/mrpy(6),rrpy(100)
21 common/
pysubs/msel,mselpd,msub(500),kfin(2,-40:40),ckin(200)
24 common/
pyint2/iset(500),kfpr(500,2),coef(500,20),icol(40,4,2)
25 common/
pyint3/xsfx(2,-40:40),isig(1000,3),sigh(1000)
26 common/
pyint4/mwid(500),wids(500,5)
30 common/
pyint7/sigt(0:6,0:6,0:5)
31 common/
pyint8/xpvmd(-6:6),xpanl(-6:6),xpanh(-6:6),xpbeh(-6:6),
33 common/
pymssm/imss(0:99),rmss(0:99)
34 common/pymsrv/rvlam(3,3,3), rvlamp(3,3,3), rvlamb(3,3,3)
35 common/pytcsm/itcm(0:99),rtcm(0:99)
40 CHARACTER chin*(*),chfix*104,chbit*104,chold*8,chnew*8,chold2*28,
41 &chnew2*28,chnam*6,chvar(54)*6,chalp(2)*26,chind*8,chini*10,
47 DATA chvar/
'N',
'K',
'P',
'V',
'MSTU',
'PARU',
'MSTJ',
'PARJ',
'KCHG',
48 &
'PMAS',
'PARF',
'VCKM',
'MDCY',
'MDME',
'BRAT',
'KFDP',
'CHAF',
'MRPY',
49 &
'RRPY',
'MSEL',
'MSUB',
'KFIN',
'CKIN',
'MSTP',
'PARP',
'MSTI',
'PARI',
50 &
'MINT',
'VINT',
'ISET',
'KFPR',
'COEF',
'ICOL',
'XSFX',
'ISIG',
'SIGH',
51 &
'MWID',
'WIDS',
'NGEN',
'XSEC',
'PROC',
'SIGT',
'XPVMD',
'XPANL',
52 &
'XPANH',
'XPBEH',
'XPDIR',
'IMSS',
'RMSS',
'RVLAM',
'RVLAMP',
'RVLAMB',
54 DATA ((msvar(
i,
j),
j=1,8),
i=1,54)/ 1,7*0, 1,2,1,4000,1,5,2*0,
55 &2,2,1,4000,1,5,2*0, 2,2,1,4000,1,5,2*0, 1,1,1,200,4*0,
56 &2,1,1,200,4*0, 1,1,1,200,4*0, 2,1,1,200,4*0,
57 &1,2,1,500,1,4,2*0, 2,2,1,500,1,4,2*0, 2,1,1,2000,4*0,
58 &2,2,1,4,1,4,2*0, 1,2,1,500,1,3,2*0, 1,2,1,8000,1,2,2*0,
59 &2,1,1,8000,4*0, 1,2,1,8000,1,5,2*0, 3,2,1,500,1,2,2*0,
60 &1,1,1,6,4*0, 2,1,1,100,4*0,
61 &1,7*0, 1,1,1,500,4*0, 1,2,1,2,-40,40,2*0, 2,1,1,200,4*0,
62 &1,1,1,200,4*0, 2,1,1,200,4*0, 1,1,1,200,4*0, 2,1,1,200,4*0,
63 &1,1,1,400,4*0, 2,1,1,400,4*0, 1,1,1,500,4*0,
64 &1,2,1,500,1,2,2*0, 2,2,1,500,1,20,2*0, 1,3,1,40,1,4,1,2,
65 &2,2,1,2,-40,40,2*0, 1,2,1,1000,1,3,2*0, 2,1,1,1000,4*0,
66 &1,1,1,500,4*0, 2,2,1,500,1,5,2*0, 1,2,0,500,1,3,2*0,
67 &2,2,0,500,1,3,2*0, 4,1,0,500,4*0, 2,3,0,6,0,6,0,5,
68 &2,1,-6,6,4*0, 2,1,-6,6,4*0, 2,1,-6,6,4*0,
69 &2,1,-6,6,4*0, 2,1,-6,6,4*0, 1,1,0,99,4*0, 2,1,0,99,4*0,
70 &2,3,1,3,1,3,1,3, 2,3,1,3,1,3,1,3, 2,3,1,3,1,3,1,3,
71 &1,1,0,99,4*0, 2,1,0,99,4*0/
72 DATA chalp/
'abcdefghijklmnopqrstuvwxyz',
73 &
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'/, chdig/
'1234567890'/
76 IF(mstu(12).NE.12345.AND.chin.NE.
'mstu(12)=12345'.AND.
77 &chin.NE.
'MSTU(12)=12345') CALL
pylist(0)
81 IF(chbit(lbit:lbit).EQ.
' ') goto 100
84 IF(chbit(lcom:lcom).EQ.
' ') goto 110
86 chfix(ltot:ltot)=chbit(lcom:lcom)
91 IF(lhig.LE.ltot.AND.chfix(lhig:lhig).NE.
';') goto 130
93 chbit(1:lbit)=chfix(llow+1:lhig-1)
98 IF(chbit(1:1).EQ.chdig(ldig:ldig)) ionof=1
107 DO 140 llow2=lhig2,1,-1
108 IF(chbit(llow2:llow2).EQ.
'!') lbit=llow2-1
115 IF(chbit(lnam:lnam).NE.
'('.AND.chbit(lnam:lnam).NE.
'='.AND.
117 chnam=chbit(1:lnam-1)//
' '
120 IF(chnam(lcom:lcom).EQ.chalp(1)(lalp:lalp)) chnam(lcom:lcom)=
121 & chalp(2)(lalp:lalp)
126 IF(chnam.EQ.chvar(iv)) ivar=iv
129 CALL
pyerrm(18,
'(PYGIVE:) do not recognize variable '//chnam)
131 IF(llow.LT.ltot) goto 120
140 IF(chbit(lnam:lnam).EQ.
'(')
THEN
143 IF(chbit(lind:lind).NE.
')'.AND.chbit(lind:lind).NE.
',') goto 190
145 IF((chbit(lnam+1:lnam+1).EQ.
'C'.OR.chbit(lnam+1:lnam+1).EQ.
'c')
146 & .AND.(ivar.EQ.9.OR.ivar.EQ.10.OR.ivar.EQ.13.OR.ivar.EQ.17.OR.
148 chind(lnam-lind+11:8)=chbit(lnam+2:lind-1)
149 READ(chind,
'(I8)') kf
151 ELSEIF(chbit(lnam+1:lnam+1).EQ.
'C'.OR.chbit(lnam+1:lnam+1).EQ.
153 CALL
pyerrm(18,
'(PYGIVE:) not allowed to use C index for '//
156 IF(llow.LT.ltot) goto 120
159 chind(lnam-lind+10:8)=chbit(lnam+1:lind-1)
160 READ(chind,
'(I8)')
i1
163 IF(chbit(lnam:lnam).EQ.
')') lnam=lnam+1
166 IF(chbit(lnam:lnam).EQ.
',')
THEN
169 IF(chbit(lind:lind).NE.
')'.AND.chbit(lind:lind).NE.
',') goto 200
171 chind(lnam-lind+10:8)=chbit(lnam+1:lind-1)
172 READ(chind,
'(I8)')
i2
174 IF(chbit(lnam:lnam).EQ.
')') lnam=lnam+1
177 IF(chbit(lnam:lnam).EQ.
',')
THEN
180 IF(chbit(lind:lind).NE.
')'.AND.chbit(lind:lind).NE.
',') goto 210
182 chind(lnam-lind+10:8)=chbit(lnam+1:lind-1)
183 READ(chind,
'(I8)')
i3
190 IF(nindx.NE.msvar(ivar,2)) ierr=1
191 IF(nindx.GE.1.AND.(
i1.LT.msvar(ivar,3).OR.
i1.GT.msvar(ivar,4)))
193 IF(nindx.GE.2.AND.(
i2.LT.msvar(ivar,5).OR.
i2.GT.msvar(ivar,6)))
195 IF(nindx.EQ.3.AND.(
i3.LT.msvar(ivar,7).OR.
i3.GT.msvar(ivar,8)))
197 IF(chbit(lnam:lnam).NE.
'=') ierr=5
199 CALL
pyerrm(18,
'(PYGIVE:) unallowed indices for '//
202 IF(llow.LT.ltot) goto 120
209 ELSEIF(ivar.EQ.2)
THEN
211 ELSEIF(ivar.EQ.3)
THEN
213 ELSEIF(ivar.EQ.4)
THEN
215 ELSEIF(ivar.EQ.5)
THEN
217 ELSEIF(ivar.EQ.6)
THEN
219 ELSEIF(ivar.EQ.7)
THEN
221 ELSEIF(ivar.EQ.8)
THEN
223 ELSEIF(ivar.EQ.9)
THEN
225 ELSEIF(ivar.EQ.10)
THEN
227 ELSEIF(ivar.EQ.11)
THEN
229 ELSEIF(ivar.EQ.12)
THEN
231 ELSEIF(ivar.EQ.13)
THEN
233 ELSEIF(ivar.EQ.14)
THEN
235 ELSEIF(ivar.EQ.15)
THEN
237 ELSEIF(ivar.EQ.16)
THEN
239 ELSEIF(ivar.EQ.17)
THEN
240 chold=chaf(
i1,
i2)(1:8)
241 ELSEIF(ivar.EQ.18)
THEN
243 ELSEIF(ivar.EQ.19)
THEN
245 ELSEIF(ivar.EQ.20)
THEN
247 ELSEIF(ivar.EQ.21)
THEN
249 ELSEIF(ivar.EQ.22)
THEN
251 ELSEIF(ivar.EQ.23)
THEN
253 ELSEIF(ivar.EQ.24)
THEN
255 ELSEIF(ivar.EQ.25)
THEN
257 ELSEIF(ivar.EQ.26)
THEN
259 ELSEIF(ivar.EQ.27)
THEN
261 ELSEIF(ivar.EQ.28)
THEN
263 ELSEIF(ivar.EQ.29)
THEN
265 ELSEIF(ivar.EQ.30)
THEN
267 ELSEIF(ivar.EQ.31)
THEN
269 ELSEIF(ivar.EQ.32)
THEN
271 ELSEIF(ivar.EQ.33)
THEN
273 ELSEIF(ivar.EQ.34)
THEN
275 ELSEIF(ivar.EQ.35)
THEN
277 ELSEIF(ivar.EQ.36)
THEN
279 ELSEIF(ivar.EQ.37)
THEN
281 ELSEIF(ivar.EQ.38)
THEN
283 ELSEIF(ivar.EQ.39)
THEN
285 ELSEIF(ivar.EQ.40)
THEN
287 ELSEIF(ivar.EQ.41)
THEN
289 ELSEIF(ivar.EQ.42)
THEN
291 ELSEIF(ivar.EQ.43)
THEN
293 ELSEIF(ivar.EQ.44)
THEN
295 ELSEIF(ivar.EQ.45)
THEN
297 ELSEIF(ivar.EQ.46)
THEN
299 ELSEIF(ivar.EQ.47)
THEN
301 ELSEIF(ivar.EQ.48)
THEN
303 ELSEIF(ivar.EQ.49)
THEN
305 ELSEIF(ivar.EQ.50)
THEN
307 ELSEIF(ivar.EQ.51)
THEN
309 ELSEIF(ivar.EQ.52)
THEN
311 ELSEIF(ivar.EQ.53)
THEN
313 ELSEIF(ivar.EQ.54)
THEN
318 IF(lnam.GE.lbit)
THEN
320 chbit(15:60)=
' has the value '
321 IF(msvar(ivar,1).EQ.1)
THEN
322 WRITE(chbit(51:60),
'(I10)') iold
323 ELSEIF(msvar(ivar,1).EQ.2)
THEN
324 WRITE(chbit(47:60),
'(F14.5)') rold
325 ELSEIF(msvar(ivar,1).EQ.3)
THEN
330 IF(mstu(13).GE.1)
WRITE(mstu(11),5000) chbit(1:60)
332 IF(llow.LT.ltot) goto 120
337 IF(msvar(ivar,1).EQ.1)
THEN
339 chini(lnam-lbit+11:10)=chbit(lnam+1:lbit)
340 READ(chini,
'(I10)') inew
341 ELSEIF(msvar(ivar,1).EQ.2)
THEN
343 chinr(lnam-lbit+17:16)=chbit(lnam+1:lbit)
345 ELSEIF(msvar(ivar,1).EQ.3)
THEN
346 chnew=chbit(lnam+1:lbit)//
' '
348 chnew2=chbit(lnam+1:lbit)//
' '
354 ELSEIF(ivar.EQ.2)
THEN
356 ELSEIF(ivar.EQ.3)
THEN
358 ELSEIF(ivar.EQ.4)
THEN
360 ELSEIF(ivar.EQ.5)
THEN
362 ELSEIF(ivar.EQ.6)
THEN
364 ELSEIF(ivar.EQ.7)
THEN
366 ELSEIF(ivar.EQ.8)
THEN
368 ELSEIF(ivar.EQ.9)
THEN
370 ELSEIF(ivar.EQ.10)
THEN
372 ELSEIF(ivar.EQ.11)
THEN
374 ELSEIF(ivar.EQ.12)
THEN
376 ELSEIF(ivar.EQ.13)
THEN
378 ELSEIF(ivar.EQ.14)
THEN
380 ELSEIF(ivar.EQ.15)
THEN
382 ELSEIF(ivar.EQ.16)
THEN
384 ELSEIF(ivar.EQ.17)
THEN
386 ELSEIF(ivar.EQ.18)
THEN
388 ELSEIF(ivar.EQ.19)
THEN
390 ELSEIF(ivar.EQ.20)
THEN
392 ELSEIF(ivar.EQ.21)
THEN
394 ELSEIF(ivar.EQ.22)
THEN
396 ELSEIF(ivar.EQ.23)
THEN
398 ELSEIF(ivar.EQ.24)
THEN
400 ELSEIF(ivar.EQ.25)
THEN
402 ELSEIF(ivar.EQ.26)
THEN
404 ELSEIF(ivar.EQ.27)
THEN
406 ELSEIF(ivar.EQ.28)
THEN
408 ELSEIF(ivar.EQ.29)
THEN
410 ELSEIF(ivar.EQ.30)
THEN
412 ELSEIF(ivar.EQ.31)
THEN
414 ELSEIF(ivar.EQ.32)
THEN
416 ELSEIF(ivar.EQ.33)
THEN
418 ELSEIF(ivar.EQ.34)
THEN
420 ELSEIF(ivar.EQ.35)
THEN
422 ELSEIF(ivar.EQ.36)
THEN
424 ELSEIF(ivar.EQ.37)
THEN
426 ELSEIF(ivar.EQ.38)
THEN
428 ELSEIF(ivar.EQ.39)
THEN
430 ELSEIF(ivar.EQ.40)
THEN
432 ELSEIF(ivar.EQ.41)
THEN
434 ELSEIF(ivar.EQ.42)
THEN
436 ELSEIF(ivar.EQ.43)
THEN
438 ELSEIF(ivar.EQ.44)
THEN
440 ELSEIF(ivar.EQ.45)
THEN
442 ELSEIF(ivar.EQ.46)
THEN
444 ELSEIF(ivar.EQ.47)
THEN
446 ELSEIF(ivar.EQ.48)
THEN
448 ELSEIF(ivar.EQ.49)
THEN
450 ELSEIF(ivar.EQ.50)
THEN
452 ELSEIF(ivar.EQ.51)
THEN
454 ELSEIF(ivar.EQ.52)
THEN
456 ELSEIF(ivar.EQ.53)
THEN
458 ELSEIF(ivar.EQ.54)
THEN
464 chbit(15:60)=
' changed from to '
465 IF(msvar(ivar,1).EQ.1)
THEN
466 WRITE(chbit(33:42),
'(I10)') iold
467 WRITE(chbit(51:60),
'(I10)') inew
468 IF(mstu(13).GE.1)
WRITE(mstu(11),5000) chbit(1:60)
469 ELSEIF(msvar(ivar,1).EQ.2)
THEN
470 WRITE(chbit(29:42),
'(F14.5)') rold
471 WRITE(chbit(47:60),
'(F14.5)') rnew
472 IF(mstu(13).GE.1)
WRITE(mstu(11),5000) chbit(1:60)
473 ELSEIF(msvar(ivar,1).EQ.3)
THEN
476 IF(mstu(13).GE.1)
WRITE(mstu(11),5000) chbit(1:60)
478 chbit(15:88)=
' changed from '//chold2//
' to '//chnew2
479 IF(mstu(13).GE.1)
WRITE(mstu(11),5100) chbit(1:88)
482 IF(llow.LT.ltot) goto 120