25 IMPLICIT DOUBLE PRECISION(a-
h, o-
z)
29 common/
pydat1/mstu(200),paru(200),mstj(200),parj(200)
31 common/
pydat2/kchg(500,4),pmas(500,4),parf(2000),vckm(4,4)
34 common/pyctag/nct,mct(4000,2)
38 DOUBLE PRECISION mcn(4000,2)
45 IF (
mstp(95).LE.1.OR.
mstp(95).GE.8)
RETURN
46 mstp95=mod(
mstp(95),10)
53 IF (
mint(33).EQ.0)
THEN
64 IF (mct(
i,kcsin-3).EQ.0)
THEN
75 IF (mod(
mstp(95),2).EQ.0)
THEN
78 IF (ka1.LT.100.OR.ka2.LT.100) goto 9999
94 IF (
k(
i,1).EQ.3.AND.mct(
i,1).EQ.ict) ic=
i
95 IF (
k(
i,1).EQ.3.AND.mct(
i,2).EQ.ict) ia=
i
97 IF (ic.NE.0.AND.ia.NE.0)
THEN
100 IF (
pyr(0).LE.pkeep)
THEN
118 IF (
k(
i,1).NE.3) goto 230
121 IF (mci.EQ.0) goto 230
124 IF (
mstp(95).EQ.6.OR.
mstp(95).EQ.7)
THEN
125 IF (mci.EQ.2.AND.mcn(
i,1).EQ.0.AND.mcn(
i,2).EQ.0) goto 230
135 IF (mcn(
i,icl).NE.0) goto 220
136 IF (icl.EQ.1.AND.mci.EQ.-1) goto 220
137 IF (icl.EQ.2.AND.mci.EQ.1) goto 220
141 IF (
k(
j,1).EQ.3.AND.mct(
j,3-icl).EQ.mct(
i,icl)) ifound=1
143 IF (ifound.EQ.0) goto 220
145 IF (
k(
j,1).NE.3.OR.
i.EQ.
j) goto 210
148 IF (
k(
i,3).LE.2.AND.
k(
j,3).LE.2.AND.
k(
i,3).EQ.
k(
j,3))
152 IF (mcj.EQ.0.OR.(mcj.EQ.mci.AND.mci.NE.2)) goto 210
155 IF (mcj.EQ.2.AND.mci.EQ.2)
THEN
157 IF (mcn(
i,icla).EQ.mcn(
j,icl).AND.
mstp(95).LE.3.AND.
158 & mcn(
i,icla).NE.0) mggstr=1
162 IF (mcn(
j,jcl).NE.0) goto 200
163 IF (jcl.EQ.icl) goto 200
164 IF (jcl.EQ.1.AND.mcj.EQ.-1) goto 200
165 IF (jcl.EQ.2.AND.mcj.EQ.1) goto 200
168 DO 190 j2=
max(1,ip),
n
169 IF (
k(j2,1).EQ.3.AND.mct(j2,3-jcl).EQ.mct(
j,jcl))
172 IF (ifound.EQ.0) goto 200
177 IF (rl.LT.rlopt.OR.(rl.EQ.rlopt.AND.
pyr(0).LE.0.5d0)
178 & .OR.(mbropt.EQ.1.AND.mbrstr.EQ.0)
179 & .OR.(mggopt.EQ.1.AND.mggstr.EQ.0))
THEN
193 IF (rlopt.GE.rlmax)
THEN
209 IF (nloop.LE.2*(
n-ip))
THEN
212 CALL
pyerrm(31,
' PYFSCR: infinite loop in color annealing')
220 IF (
k(
i,1).NE.3.OR.mci.NE.2) goto 260
221 IF(mcn(
i,1).EQ.0.AND.mcn(
i,2).EQ.0)
THEN
227 IF (
it.EQ.
i.OR.
k(
it,1).NE.3) goto 240
228 IF (mcn(
it,1).EQ.kct) ic=
it
229 IF (mcn(
it,2).EQ.kct) ia=
it
231 rl=four(ic,
i)*four(ia,
i)
232 IF (rl.LT.rlmax)
THEN
239 mcn(
i,1)=mcn(icmax,1)
246 IF (
k(
i,1).NE.3) goto 270
249 IF (mci.EQ.0) goto 270
250 IF (mcn(
i,1).NE.0) mct(
i,1)=mcn(
i,1)
251 IF (mcn(
i,2).NE.0) mct(
i,2)=mcn(
i,2)