]>
Commit | Line | Data |
---|---|---|
37e4484e | 1 | c 1 2 3 4 5 6 7 8 |
2 | c---------|---------|---------|---------|---------|---------|---------|---------| | |
3 | *-- Author : R.Lednicky 20/01/95 | |
4 | SUBROUTINE FSIW(J,WEIF,WEI,WEIN) | |
5 | ||
6 | C======================================================================= | |
7 | C Calculates final state interaction (FSI) weights | |
8 | C WEIF = weight due to particle - (effective) nucleus FSI (p-N) | |
9 | C WEI = weight due to p-p-N FSI | |
10 | C WEIN = weight due to p-p FSI; note that WEIN=WEI if I3C=0; | |
11 | C note that if I3C=1 the calculation of | |
12 | C WEIN can be skipped by putting J=0 | |
13 | C....................................................................... | |
14 | C Correlation Functions: | |
15 | C CF(p-p-N) = sum(WEI)/sum(WEIF) | |
16 | C CF(p-p) = sum(WEIN)/sum(1); here the nucleus is completely | |
17 | C inactive | |
18 | C CF(p-p-"N") = sum(WEIN*WEIF')/sum(WEIF'), where WEIN and WEIF' | |
19 | C are not correlated (calculated at different emission | |
20 | C points, e.g., for different events); | |
21 | C thus here the nucleus affects one-particle | |
22 | C spectra but not the correlation | |
23 | C....................................................................... | |
24 | C User must supply data file <fn> on unit NUNIT (e.g. =11) specifying | |
25 | C LL : particle pair | |
26 | C NS : approximation used to calculate Bethe-Salpeter amplitude | |
27 | C ITEST: test switch | |
28 | C If ITEST=1 then also following parameters are required | |
29 | C ICH : 1(0) Coulomb interaction between the two particles ON (OFF) | |
30 | C IQS : 1(0) quantum statistics for the two particles ON (OFF) | |
31 | C ISI : 1(0) strong interaction between the two particles ON (OFF) | |
32 | C I3C : 1(0) Coulomb interaction with residual nucleus ON (OFF) | |
33 | C This data file can contain other information useful for the user. | |
34 | C It is read by subroutines READINT4 and READREA8(4) (or READ_FILE). | |
35 | C---------------------------------------------------------------------- | |
36 | C- LL 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
37 | C- part. 1: n p n a pi+ pi0 pi+ n p pi+ pi+ pi+ pi- K+ K+ K+ K- | |
38 | C- part. 2: n p p a pi- pi0 pi+ d d K- K+ p p K- K+ p p | |
39 | C NS=1 y/n: + + + + + - - - - - - - - - - - - | |
40 | C---------------------------------------------------------------------- | |
41 | C- LL 18 19 20 21 22 23 24 25 26 27 28 29 30 | |
42 | C- part. 1: d d t t K0 K0 d p p p n lam p | |
43 | C- part. 2: d a t a K0 K0b t t a lam lam lam pb | |
44 | C NS=1 y/n: - - - - - - - - - + + + - | |
45 | C---------------------------------------------------------------------- | |
46 | C NS=1 Square well potential, | |
47 | C NS=3 not used | |
48 | C NS=4 scattered wave approximated by the spherical wave, | |
49 | C NS=2 same as NS=4 but the approx. of equal emission times in PRF | |
50 | C not required (t=0 approx. used in all other cases). | |
51 | C Note: if NS=2,4, the B-S amplitude diverges at zero distance r* in | |
52 | C the two-particle c.m.s.; user can specify a cutoff AA in | |
53 | C SUBROUTINE FSIINI, for example: | |
54 | C IF(NS.EQ.2.OR.NS.EQ.4)AA=5.D0 !! in 1/GeV --> AA=1. fm | |
55 | C--------------------------------------------------------------------- | |
56 | C ITEST=1 any values of parameters ICH, IQS, ISI, I3C are allowed | |
57 | C and should be given in data file <fn> | |
58 | C ITEST=0 physical values of these parameters are put automatically | |
59 | C in FSIINI (their values are not required in data file) | |
60 | C===================================================================== | |
61 | C At the beginning of calculation user should call FSIINI, | |
62 | C which reads LL, NS, ITEST (and eventually ICH, IQS, ISI, I3C) | |
63 | C and initializes various parameters. | |
64 | C In particular the constants in | |
65 | C COMMON/FSI_CONS/PI,PI2,SPI,DR,W | |
66 | C may be useful for the user: | |
67 | C W=1/.1973D0 ! from fm to 1/GeV | |
68 | C PI=4*DATAN(1.D0) | |
69 | C PI2=2*PI | |
70 | C SPI=DSQRT(PI) | |
71 | C DR=180.D0/PI ! from radian to degree | |
72 | C _______________________________________________________ | |
73 | C !! |Important note: all real quantities are assumed REAL*8 | !! | |
74 | C ------------------------------------------------------- | |
75 | C For each event user should fill in the following information | |
76 | C in COMMONs (all COMMONs in FSI calculation start with FSI_): | |
77 | C ................................................................... | |
78 | C COMMON/FSI_POC/AMN,AM1,AM2,CN,C1,C2,AC1,AC2 | |
79 | C Only | |
80 | C AMN = mass of the effective nucleus [GeV/c**2] | |
81 | C CN = charge of the effective nucleus [elem. charge units] | |
82 | C are required | |
83 | C ................................................................... | |
84 | C COMMON/FSI_MOM/P1X,P1Y,P1Z,E1,P1, !part. momenta in the rest frame | |
85 | C 1 P2X,P2Y,P2Z,E2,P2 !of effective nucleus (NRF) | |
86 | C Only the components | |
87 | C PiX,PiY,PiZ [GeV/c] | |
88 | C in NRF are required. | |
89 | C To make the corresponding Lorentz transformation user can use the | |
90 | C subroutines LTRAN and LTRANB | |
91 | C ................................................................... | |
92 | C COMMON/FSI_COOR/X1,Y1,Z1,T1,R1, ! 4-coord. of emission | |
93 | C 1 X2,Y2,Z2,T2,R2 ! points in NRF | |
94 | C The componets | |
95 | C Xi,Yi,Zi [fm] | |
96 | C and emission times | |
97 | C Ti [fm/c] | |
98 | C should be given in NRF with the origin assumed at the center | |
99 | C of the effective nucleus. If the effect of residual nucleus is | |
100 | C not calculated within FSIW, the NRF can be any fixed frame. | |
101 | C----------------------------------------------------------------------- | |
102 | C Before calling FSIW the user must call | |
103 | C CALL LTRAN12 | |
104 | C Besides Lorentz transformation to pair rest frame: | |
105 | C (p1-p2)/2 --> k* it also transforms 4-coordinates of | |
106 | C emission points from fm to 1/GeV and calculates Ei,Pi and Ri. | |
107 | C Note that |k*|=AK in COMMON/FSI_PRF/ | |
108 | C----------------------------------------------------------------------- | |
109 | C After making some additional filtering using k* (say k* < k*max) | |
110 | C or direction of vector k*, | |
111 | C user can finally call FSIW to calculate the FSI weights | |
112 | C to be used to construct the correlation function | |
113 | C======================================================================= | |
114 | ||
115 | IMPLICIT REAL*8 (A-H,O-Z) | |
116 | COMMON/FSI_JR/JRAT | |
117 | COMMON/FSI_POC/AMN,AM1,AM2,CN,C1,C2,AC1,AC2 | |
118 | COMMON/FSI_MOM/P1X,P1Y,P1Z,E1,P1, ! particle momenta in NRF | |
119 | 1 P2X,P2Y,P2Z,E2,P2 | |
120 | COMMON/FSI_PRF/PPX,PPY,PPZ,AK,AKS, ! k*=(p1-p2)/2 and x1-x2 | |
121 | 1 X,Y,Z,T,RP,RPS ! in pair rest frame (PRF) | |
122 | COMMON/FSI_COOR/X1,Y1,Z1,T1,R1, !4-coord. of emis. points in NRF | |
123 | 1 X2,Y2,Z2,T2,R2 | |
124 | COMMON/FSI_NS/LL,NS,ICH,ISI,IQS,I3C,I3S | |
125 | COMMON/FSI_FFPN/FF12,FF21 | |
126 | COMPLEX*16 FF12,FF21 | |
127 | C------------------------------------------------------------------ | |
128 | C==> AC1,2 = "relativistic" Bohr radii for particle-nucleus systems | |
129 | C1N=C1*CN | |
130 | IF(C1N.NE.0.D0)AC1=137.036D0/(C1N*E1) !m1-->E1 | |
131 | C2N=C2*CN | |
132 | IF(C2N.NE.0.D0)AC2=137.036D0/(C2N*E2) !m2-->E2 | |
133 | ||
134 | C----------------------------------------------------------- | |
135 | CALL FSIPN(WEIF) !weight due to particle-nucleus FSI | |
136 | JRAT=0 | |
137 | call BoostToPrf() | |
138 | CALL FSIWF(WEI) !weight due to particle-particle-nucleus FSI | |
139 | WEIN=WEI | |
140 | IF(I3C*J.NE.0) THEN | |
141 | FF12=DCMPLX(1.D0,0.D0) | |
142 | FF21=DCMPLX(1.D0,0.D0) | |
143 | JRAT=1 | |
144 | CALL VZ(WEIN) ! weight due to particle-particle FSI | |
145 | ENDIF | |
146 | RETURN | |
147 | END | |
148 | C======================================================================= | |
149 | ||
150 | SUBROUTINE LTRAN(P0,P,PS) | |
151 | C==>calculating particle 4-momentum PS={PSX,PSY,PSZ,ES} | |
152 | C in rest frame of a system 0 with 4-momentum P0={P0X,P0Y,P0Z,E0} | |
153 | C from its 4-momentum P={PX,PY,PZ,E} | |
154 | ||
155 | IMPLICIT REAL*8 (A-H,O-Z) | |
156 | DIMENSION P0(4),P(4),PS(4) | |
157 | C----------------------------------------------------------------------- | |
158 | P0S=P0(1)**2+P0(2)**2+P0(3)**2 | |
159 | AM0=DSQRT(P0(4)**2-P0S) | |
160 | EPM=P0(4)+AM0 | |
161 | PP0=P(1)*P0(1)+P(2)*P0(2)+P(3)*P0(3) | |
162 | H=(PP0/EPM-P(4))/AM0 | |
163 | PS(1)=P(1)+P0(1)*H | |
164 | PS(2)=P(2)+P0(2)*H | |
165 | PS(3)=P(3)+P0(3)*H | |
166 | PS(4)=(P0(4)*P(4)-PP0)/AM0 | |
167 | RETURN | |
168 | END | |
169 | ||
170 | SUBROUTINE LTRANB(P0,PS,P) | |
171 | C==>calculating particle 4-momentum P={PX,PY,PZ,E} | |
172 | C from its 4-momentum PS={PSX,PSY,PSZ,ES} | |
173 | C in rest frame of a system 0 with 4-momentum P0={P0X,P0Y,P0Z,E0} | |
174 | ||
175 | IMPLICIT REAL*8 (A-H,O-Z) | |
176 | DIMENSION P0(4),P(4),PS(4) | |
177 | C----------------------------------------------------------------------- | |
178 | P0S=P0(1)**2+P0(2)**2+P0(3)**2 | |
179 | AM0=DSQRT(P0(4)**2-P0S) | |
180 | EPM=P0(4)+AM0 | |
181 | PSP0=PS(1)*P0(1)+PS(2)*P0(2)+PS(3)*P0(3) | |
182 | HS=(PSP0/EPM+PS(4))/AM0 | |
183 | P(1)=PS(1)+P0(1)*HS | |
184 | P(2)=PS(2)+P0(2)*HS | |
185 | P(3)=PS(3)+P0(3)*HS | |
186 | P(4)=(P0(4)*PS(4)+PSP0)/AM0 | |
187 | RETURN | |
188 | END | |
189 | ||
190 | SUBROUTINE LTRAN12 | |
191 | C==>calculating particle momentum in PRF {EE,PPX,PPY,PPZ} from | |
192 | C- the momentum of the first particle {E1,P1X,P1Y,P1Z) in NRF | |
193 | IMPLICIT REAL*8 (A-H,O-Z) | |
194 | COMMON/FSI_MOM/P1X,P1Y,P1Z,E1,P1, !part. momenta in NRF | |
195 | 1 P2X,P2Y,P2Z,E2,P2 | |
196 | COMMON/FSI_PRF/PPX,PPY,PPZ,AK,AKS, | |
197 | 1 X,Y,Z,T,RP,RPS | |
198 | COMMON/FSI_POC/AMN,AM1,AM2,CN,C1,C2,AC1,AC2 | |
199 | COMMON/FSI_P12/P12X,P12Y,P12Z,E12,P12,AM12,EPM | |
200 | COMMON/FSI_COOR/X1,Y1,Z1,T1,R1, !4-coord. of emis. points in NRF | |
201 | 1 X2,Y2,Z2,T2,R2 | |
202 | COMMON/FSI_CONS/PI,PI2,SPI,DR,W | |
203 | ||
204 | C fm --> 1/GeV | |
205 | X1=X1*W | |
206 | Y1=Y1*W | |
207 | Z1=Z1*W | |
208 | T1=T1*W | |
209 | X2=X2*W | |
210 | Y2=Y2*W | |
211 | Z2=Z2*W | |
212 | T2=T2*W | |
213 | C calculating Ri, Pi and Ei | |
214 | R1=DSQRT(X1*X1+Y1*Y1+Z1*Z1) | |
215 | R2=DSQRT(X2*X2+Y2*Y2+Z2*Z2) | |
216 | P1S=P1X*P1X+P1Y*P1Y+P1Z*P1Z | |
217 | P2S=P2X*P2X+P2Y*P2Y+P2Z*P2Z | |
218 | P1=DSQRT(P1S) | |
219 | P2=DSQRT(P2S) | |
220 | E1=DSQRT(AM1*AM1+P1S) | |
221 | E2=DSQRT(AM2*AM2+P2S) | |
222 | C----------------------------------------------------------------------- | |
223 | E12=E1+E2 | |
224 | P12X=P1X+P2X | |
225 | P12Y=P1Y+P2Y | |
226 | P12Z=P1Z+P2Z | |
227 | P12S=P12X**2+P12Y**2+P12Z**2 | |
228 | AM12=DSQRT(E12**2-P12S) | |
229 | EPM=E12+AM12 | |
230 | P12=DSQRT(P12S) | |
231 | P112=P1X*P12X+P1Y*P12Y+P1Z*P12Z | |
232 | H1=(P112/EPM-E1)/AM12 | |
233 | PPX=P1X+P12X*H1 | |
234 | PPY=P1Y+P12Y*H1 | |
235 | PPZ=P1Z+P12Z*H1 | |
236 | EE=(E12*E1-P112)/AM12 | |
237 | AKS=EE**2-AM1**2 | |
238 | AK=DSQRT(AKS) | |
239 | ||
240 | CW WRITE(6,38)'AK ',AK,'K ',PPX,PPY,PPZ,EE | |
241 | 38 FORMAT(A7,E11.4,A7,4E11.4) | |
242 | RETURN | |
243 | END | |
244 | ||
245 | SUBROUTINE FSIPN(WEIF) | |
246 | C calculating particle-nucleus Coulomb Wave functions FFij | |
247 | IMPLICIT REAL*8 (A-H,O-Z) | |
248 | COMMON/FSI_POC/AMN,AM1,AM2,CN,C1,C2,AC1,AC2 | |
249 | COMMON/FSI_MOM/P1X,P1Y,P1Z,E1,P1, !part. momenta in NRF | |
250 | 1 P2X,P2Y,P2Z,E2,P2 | |
251 | COMMON/FSI_COOR/X1,Y1,Z1,T1,R1, ! 4-coord. of emis. points in NRF | |
252 | 1 X2,Y2,Z2,T2,R2 | |
253 | COMMON/FSI_NS/LL,NS,ICH,ISI,IQS,I3C,I3S | |
254 | COMMON/FSI_ACH/HPR,AC,ACH,ACHR,ISPIN,MSPIN | |
255 | COMMON/FSI_ICH1/ICH1 | |
256 | COMMON/FSI_ETA/ETA | |
257 | COMMON/FSI_FFPN/FF12,FF21 | |
258 | COMPLEX*16 FF1,FF12,FF21 | |
259 | FF12=DCMPLX(1.D0,0.D0) | |
260 | FF21=DCMPLX(1.D0,0.D0) | |
261 | C ACH=1.D0 | |
262 | C WEIF=1.D0 | |
263 | IF(I3C.EQ.0)RETURN | |
264 | ICH1=IDINT(C1) | |
265 | IF(ICH1.EQ.0)GOTO 11 | |
266 | XH=AC1*P1 | |
267 | ACH=ACP(XH) | |
268 | ACHR=DSQRT(ACH) | |
269 | ETA=0.D0 | |
270 | IF(XH.NE.0.D0)ETA=1/XH | |
271 | RHOS=P1*R1 | |
272 | HS=X1*P1X+Y1*P1Y+Z1*P1Z | |
273 | FF12=FF12*FF1(RHOS,HS) | |
274 | IF(IQS.EQ.0)GOTO 11 | |
275 | RHOS=P1*R2 | |
276 | HS=X2*P1X+Y2*P1Y+Z2*P1Z | |
277 | FF21=FF21*FF1(RHOS,HS) | |
278 | 11 ICH1=IDINT(C2) | |
279 | IF(ICH1.EQ.0)GOTO 10 | |
280 | XH=AC2*P2 | |
281 | ACH=ACP(XH) | |
282 | ACHR=DSQRT(ACH) | |
283 | ETA=0.D0 | |
284 | IF(XH.NE.0.D0)ETA=1/XH | |
285 | RHOS=P2*R2 | |
286 | HS=X2*P2X+Y2*P2Y+Z2*P2Z | |
287 | FF12=FF12*FF1(RHOS,HS) | |
288 | CW WRITE(6,41)'AC2 ',AC2,'ACH ',ACH,'ETA ',ETA,'RHOS ',RHOS,'HS ',HS | |
289 | 41 FORMAT(5(A5,E11.4)) | |
290 | CW WRITE(6,40)'FF12 ',DREAL(FF12),DIMAG(FF12) | |
291 | IF(IQS.EQ.0)GOTO 10 | |
292 | RHOS=P2*R1 | |
293 | HS=X1*P2X+Y1*P2Y+Z1*P2Z | |
294 | FF21=FF21*FF1(RHOS,HS) | |
295 | CW WRITE(6,41)'AC1 ',AC1,'ACH ',ACH,'ETA ',ETA,'RHOS ',RHOS,'HS ',HS | |
296 | CW WRITE(6,40)'FF21 ',DREAL(FF21),DIMAG(FF21) | |
297 | 40 FORMAT(A7,2E12.4) | |
298 | 10 CONTINUE | |
299 | ||
300 | C WEIF = the weight due to the Coulomb particle-nucleus interaction | |
301 | WEIF=DREAL(FF12)**2+DIMAG(FF12)**2 | |
302 | IF(IQS.EQ.1)WEIF=0.5D0*(WEIF+DREAL(FF21)**2+DIMAG(FF21)**2) | |
303 | RETURN | |
304 | END | |
305 | ||
306 | FUNCTION GPIPI(X,J) | |
307 | C--- GPIPI = k*COTG(DELTA), X=k^2 | |
308 | C-- J=1(2) corresponds to isospin=0(2) | |
309 | IMPLICIT REAL*8 (A-H,O-Z) | |
310 | COMMON/FSI_AAPI/AAPI(20,2) | |
311 | COMMON/FSI_C/HELP(20),AM,AMS,DM | |
312 | OM=DSQRT(X+AMS) | |
313 | XX=X/AMS | |
314 | GPIPI=OM/AAPI(1,J) | |
315 | GPIPI=GPIPI*(1+(AAPI(3,J)-AAPI(1,J)**2)*XX+AAPI(4,J)*XX*XX) | |
316 | GPIPI=GPIPI/(1+(AAPI(3,J)+AAPI(2,J)/AAPI(1,J))*XX) | |
317 | RETURN | |
318 | END | |
319 | ||
320 | FUNCTION GPIN(X,J) | |
321 | C--- GPIN = k*COTG(DELTA), X=k^2 | |
322 | C-- J=1(2) corresponds to piN isospin=1/2(3/2) | |
323 | IMPLICIT REAL*8 (A-H,O-Z) | |
324 | COMMON/FSI_AAPIN/AAPIN(20,2) | |
325 | GPIN=1/AAPIN(1,J)+.5D0*AAPIN(2,J)*X | |
326 | RETURN | |
327 | END | |
328 | ||
329 | FUNCTION GND(X,J) | |
330 | C--- GND = k*COTG(DELTA), X=k^2 | |
331 | C--- J=1(2) corresp. to nd(pd), S=1/2, | |
332 | C--- J=3(4) corresp. to nd(pd), S=3/2 | |
333 | IMPLICIT REAL*8 (A-H,O-Z) | |
334 | COMMON/FSI_AAND/AAND(20,4) | |
335 | XX=X | |
336 | GND=1/AAND(1,J)+.5D0*AAND(2,J)*X | |
337 | DO 1 I=4,4 | |
338 | XX=XX*X | |
339 | 1 GND=GND+AAND(I,J)*XX | |
340 | GND=GND/(1+AAND(3,J)*X) | |
341 | RETURN | |
342 | END | |
343 | FUNCTION GDD(X,J) | |
344 | C--- GDD = k*COTG(DELTA), X=k^2 | |
345 | C--- J=1,2,3 corresp. to S=0,1,2 | |
346 | IMPLICIT REAL*8 (A-H,O-Z) | |
347 | COMMON/FSI_AADD/AADD(20,3) | |
348 | COMMON/FSI_C/C(10),AM,AMS,DM | |
349 | COMMON/FSI_CONS/PI,PI2,SPI,DR,W | |
350 | COMPLEX*16 C | |
351 | E=X/2/AM | |
352 | ER=DSQRT(E) | |
353 | IF(J.EQ.1)THEN | |
354 | GDD=ER*(AADD(1,1)*DEXP(-E/AADD(2,1))-AADD(3,1)) | |
355 | GDD=GDD/DR ! from degree to radian | |
356 | TAND=DTAN(GDD) | |
357 | IF(TAND.EQ.0.D0)TAND=1.D-10 | |
358 | GDD=DSQRT(X)/TAND | |
359 | END IF | |
360 | IF(J.EQ.2)THEN | |
361 | GDD=1.D10 | |
362 | END IF | |
363 | IF(J.EQ.3)THEN | |
364 | GDD=ER*(AADD(1,3)+AADD(2,3)*E) | |
365 | GDD=GDD/DR ! from degree to radian | |
366 | TAND=DTAN(GDD) | |
367 | IF(TAND.EQ.0.D0)TAND=1.D-10 | |
368 | GDD=DSQRT(X)/TAND | |
369 | END IF | |
370 | RETURN | |
371 | END | |
372 | BLOCK DATA | |
373 | IMPLICIT REAL*8 (A-H,O-Z) | |
374 | COMMON/FSI_AAPI/AAPI(20,2)/FSI_AAND/AAND(20,4) | |
375 | COMMON/FSI_AADD/AADD(20,3)/FSI_AAPIN/AAPIN(20,2) | |
376 | COMMON/FSI_AAKK/AAKK(9)/FSI_AAPAP/AAPAPR(3,2),AAPAPI(3,2) | |
377 | C---Parameters for GPIPI (I,J), J=1,2 -> isospin=0,2 | |
378 | DATA AAPI/.2600D00, .2500D00, .3480D00,-.0637D00, 16*0.D0, | |
379 | 1 -.0280D00,-.0820D00, .2795D00,-.0086D00, 16*0.D0/ | |
380 | C---Parameters for GPIN (I,J), J=1,2 -> piN isospin=1/2,3/2 | |
381 | DATA AAPIN/ .12265D1, .1563D2, 18*0.D0, | |
382 | 1 -.750D0, .7688D2, 18*0.D0/ | |
383 | C---Parameters for GND (I,J), J=1(2) corresp. to nd(pd), S=1/2, | |
384 | C--- J=3(4) corresp. to nd(pd), S=3/2 | |
385 | DATA AAND/-.3295D1,-.8819D3, .4537D4, .28645D5, 16*0.D0, | |
386 | 1 -.13837D2, .11505D2, .0D0, .10416D2, 16*0.D0, | |
387 | 2 -.32180D2, .1014D2, .0D0, .0D0, 16*0.D0, | |
388 | 3 -.60213D2, .1333D2, .0D0,-.70309D2, 16*0.D0/ | |
389 | DATA AADD/ .10617D4, .3194D-2, .56849D3, 17*0.D0, | |
390 | 1 20*0.D0, | |
391 | 2 -.1085D4, .1987D5, 18*0.D0/ | |
392 | C--- AAKK= m_K^2, m_pi^2, m_eta^2, m_S*^2, m_delta^2, | |
393 | C--- gam(S*-->KK-b), gam(S*-->pipi), gam(delta-->KK-b), | |
394 | C--- gam(delta-->pi eta) | |
395 | DATA AAKK/.247677D00,.01947977D00,.2997015D00,.9604D00, | |
396 | 1 .96511D00, | |
397 | cc 2 .792D00, .199D00, .333D00, .222D00/ ! Martin (77) | |
398 | 2 .094D00, .110D00, .333D00, .222D00/ ! Morgan (93) | |
399 | C---Parameters for PAP (I,J), j=1,2 -> isospin I=0,2 | |
400 | C--- i=1-3 -> a_singlet, a_triplet, d [fm] | |
401 | C--- Im a_IS (I=isospin, S=spin) are fixed by atomic data and | |
402 | C n-bar survival time up to one free parameter, e.g. Im a_00 | |
403 | C--- Batty (89), Kerbikov (93): | |
404 | C--- Ima_10=1.96-Ima_00, Ima_01=0.367-Ima_00/3, Ima_11=0.453+Ima_00/3 | |
405 | C--- In DATA we put Ima_00=0.3. | |
406 | C--- Re a_IS are fixed by atomic data up to three free parameters | |
407 | C--- Batty (89): | |
408 | C--- Rea_aver(pp-bar)=Re[(a_00+a_10)+3(a_01+a_11)]/8=-0.9 | |
409 | C--- In DATA we used Rea_IS from Paris potential Pignone (94) | |
410 | C--- rescaled by 1.67 to satisfy the atomic constraint. | |
411 | C--- Effective radius is is taken independent of IS from the phase | |
412 | C--- shift fit by Pirner et al. (91). | |
413 | DATA AAPAPR/-0.94D0, -1.98D0, .1D0, | |
414 | 1 -1.40D0, 0.37D0, .1D0/ ! Re | |
415 | DATA AAPAPI/ 0.3 D0, .267D0,-.01D0, | |
416 | 1 1.66D0, .553D0,-.01D0/ ! Im | |
417 | END | |
418 | SUBROUTINE CKKB ! calculates KK-b scattering amplitude, | |
419 | ! saturated by S*(980) and delta(982) resonances | |
420 | IMPLICIT REAL*8 (A-H,O-Z) | |
421 | COMMON/FSI_PRF/PPX,PPY,PPZ,AK,AKS, | |
422 | 1 X,Y,Z,T,RP,RPS | |
423 | COMMON/FSI_AAKK/AAKK(9) | |
424 | COMMON/FSI_C/C(10),AM,AMS,DM | |
425 | COMPLEX*16 C | |
426 | S4=AKS+AAKK(1) | |
427 | S=4*S4 | |
428 | AKPIPI=DSQRT(S4-AAKK(2)) | |
429 | EETA2=(S+AAKK(3)-AAKK(2))**2/4/S | |
430 | AKPIETA=DSQRT(EETA2-AAKK(3)) | |
431 | C(1)=AAKK(6)/2/DCMPLX(AAKK(4)-S, | |
432 | ,-AK*AAKK(6)-AKPIPI*AAKK(7)) | |
433 | C(1)=C(1)+AAKK(8)/2/DCMPLX(AAKK(5)-S, | |
434 | ,-AK*AAKK(8)-AKPIETA*AAKK(9)) | |
435 | RETURN | |
436 | END | |
437 | SUBROUTINE CPAP ! calculates pp-bar scattering amplitude | |
438 | ! accounting for nn-bar->pp-bar channel | |
439 | IMPLICIT REAL*8 (A-H,O-Z) | |
440 | COMMON/FSI_ACH/HPR,AC,ACH,ACHR,ISPIN,MSPIN | |
441 | COMMON/FSI_PRF/PPX,PPY,PPZ,AK,AKS, | |
442 | 1 X,Y,Z,T,RP,RPS | |
443 | COMMON/FSI_AAPAP/AAPAPR(3,2),AAPAPI(3,2) | |
444 | COMMON/FSI_C/C(10),AM,AMS,DM | |
445 | COMMON/FSI_2CHA/AK2,AK2S,AAK,HCP2,AMU2_AMU1 ! k* (kappa) for 2-nd channel | |
446 | COMPLEX*16 C | |
447 | DATA AM2/.93956563D0/ | |
448 | AMU2_AMU1=AM2/AM ! AM2=2*mu(nn-bar), AM=2*mu(pp-bar) | |
449 | AK2S0=AMU2_AMU1*AKS | |
450 | AK2S =AK2S0-2*AM2*(AM2-AM) | |
451 | IF(AK2S.GE.0.D0)THEN | |
452 | AK2=DCMPLX(DSQRT(AK2S),0.D0) ! k2 | |
453 | ELSE | |
454 | AK2=DCMPLX(0.D0,DSQRT(-AK2S)) ! kappa2 | |
455 | ENDIF | |
456 | C(10)=C(6+(ISPIN-1)*2)+ | |
457 | + DCMPLX(AAPAPR(3,ISPIN)*AKS/2-0.016D0-HCP2, | |
458 | , AAPAPI(3,ISPIN)*AKS/2-AAK) ! (1/f)11 | |
459 | C(5)=C(6+(ISPIN-1)*2)+ | |
460 | + DCMPLX(AAPAPR(3,ISPIN)*AK2S0/2, | |
461 | , AAPAPI(3,ISPIN)*AK2S0/2) | |
462 | IF(AK2S.GE.0.D0)THEN | |
463 | C(5)=C(5)-DCMPLX(0.D0,AK2) | |
464 | ELSE | |
465 | C(5)=C(5)+DCMPLX(AK2,0.D0) ! (1/f)22 | |
466 | ENDIF | |
467 | C(10)=C(10)*C(5)-C(7+(ISPIN-1)*2)*C(7+(ISPIN-1)*2) | |
468 | C(ISPIN)=C(5)/C(10) ! f11 | |
469 | C(ISPIN+2)=-C(7+(ISPIN-1)*2)/C(10) ! f12 | |
470 | RETURN | |
471 | END | |
472 | ||
473 | SUBROUTINE FSIIN(I_ITEST,I_ICH,I_IQS,I_ISI,I_I3C) | |
474 | C SUBROUTINE FSIINI | |
475 | C---Note: | |
476 | C-- ICH= 0 (1) if the Coulomb interaction is absent (present); | |
477 | C-- ISPIN= JJ= 1,2,..,MSPIN denote increasing values of the pair | |
478 | C-- total spin S. | |
479 | C-- To calculate the CF of two particles (with masses m1, m2 and | |
480 | C-- charges C1, C2) the following information is required: | |
481 | C-- AM= twice the reduced mass= 2*m1*m2/(m1+m2) in GeV/c^2, | |
482 | C-- DM= (m1-m2)/(m1+m2), required if NS=2; | |
483 | C-- AC= Bohr radius= 2*137.036*0.1973/(C1*C2*AMH) in fm; | |
484 | C-- AC > 1.D9 if C1*C2= 0, AC < 0 if C1*C2 < 0; | |
485 | C-- MSPIN= MSPINH(LL)= number of the values of the total pair spin S; | |
486 | C-- FD= FDH(LL,JJ), RD= RDH(LL,JJ)= scattering length and effective | |
487 | C-- radius for each value of the total pair spin S, JJ= 1,..,MSPIN; ; | |
488 | C-- the corresponding square well parameters EB= EBH(LL,JJ), RB= | |
489 | C-- RBH(LL,JJ) (required if NS=1) may be calculated by sear.f; | |
490 | C-- if the effective range approximation is not valid (as is the case, | |
491 | C-- e.g., for two-pion system) a code for calculation of the scattering | |
492 | C-- amplitude should be supplemented; | |
493 | C-- RHO= RHOH(LL,JJ), SF= SFH(LL,JJ), SE= SEH(LL) are spin factors; | |
494 | C-- RHO= the probability that the spins j1 and j2 of the two particles | |
495 | C-- will combine in a total spin S; | |
496 | C-- RHO= (2*S+1)/[(2j1+1)*(2j2+1)] for unpolarized particles; | |
497 | C-- RHO= (1-P1*P2)/4 and (3+P1*P2)/4 correspond to S=0 and 1 in the | |
498 | C-- case of spin-1/2 particles with polarizations P1 and P2; | |
499 | C----------------------------------------------------------------------- | |
500 | IMPLICIT REAL*8 (A-H,O-Z) | |
501 | COMMON/FSI_POC/AMN,AM1,AM2,CN,C1,C2,AC1,AC2 | |
502 | COMMON/FSI_PRF/PPX,PPY,PPZ,AK,AKS, | |
503 | 1 X,Y,Z,T,RP,RPS | |
504 | COMMON/FSI_SPIN/RHO(10) | |
505 | COMMON/FSI_ACH/HPR,AC,ACH,ACHR,ISPIN,MSPIN | |
506 | COMMON/FSI_NS/LL,NS,ICH,ISI,IQS,I3C,I3S | |
507 | COMMON/FSI_FD/FD(10),RD(10) | |
508 | COMMON/FSI_C/C(10),AM,AMS,DM | |
509 | COMMON/FSI_CONS/PI,PI2,SPI,DR,W | |
510 | COMPLEX*16 C | |
511 | COMMON/FSI_AA/AA | |
512 | COMMON/FSI_AAPI/AAPI(20,2)/FSI_AAND/AAND(20,4) | |
513 | COMMON/FSI_AAPIN/AAPIN(20,2) | |
514 | COMMON/FSI_AAPAP/AAPAPR(3,2),AAPAPI(3,2) | |
515 | COMMON/FSI_SW/RB(10),EB(10),BK(10),CDK(10),SDK(10), | |
516 | 1 SBKRB(10),SDKK(10) | |
517 | COMMON/FSI_FDH/FDH(30,10),RDH(30,10),EBH(30,10),RBH(30,10) | |
518 | COMMON/FSI_RHOH/RHOH(30,10) | |
519 | COMMON/FSI_AMCH/AM1H(30),AM2H(30),C1H(30),C2H(30),MSPINH(30) | |
520 | C============= declarations pour l'appel de READ_FILE()============ | |
521 | c CHARACTER*10 KEY | |
522 | c CHARACTER*8 CH8 | |
523 | c INTEGER*4 INT4 | |
524 | c REAL*8 REAL8 | |
525 | c INTEGER*4 IERR | |
526 | C | |
527 | C--- mass of the first and second particle | |
528 | DATA AM1H/.93956563D0,.93827231D0,.93956563D0,3.72737978D0, | |
529 | C .13957D0,.13498D0,.13957D0, .93956563D0, .93827231D0, | |
530 | C 4*.13957D0,4*.493677D0, | |
531 | C 2*1.87561339D0,2*2.80892165D0,2*.497672D0, | |
532 | C 1.87561339D0,3*.93827231D0,.93956563D0, | |
533 | C 1.115684D0,.93827231D0/ | |
534 | DATA AM2H/.93956563D0,.93827231D0,.93827231D0,3.72737978D0, | |
535 | C .13957D0,.13498D0,.13957D0, 2*1.87561339D0, | |
536 | C 2*.493677D0,2*.93827231D0, | |
537 | C 2*.493677D0,2*.93827231D0, | |
538 | C 1.87561339D0,3.72737978D0,2.80892165D0,3.72737978D0, | |
539 | C 2*.497672D0,2*2.80892165D0,3.72737978D0, | |
540 | C 3*1.115684D0,.93827231D0/ | |
541 | c--------|---------|---------|---------|---------|---------|---------|---------- | |
542 | C--- charge of the first and second particle | |
543 | DATA C1H/0.D0,1.D0,0.D0,2.D0, 1.D0,0.D0,1.D0,0.D0,1.D0, | |
544 | C 3*1.D0,-1.D0,3*1.D0,-1.D0, | |
545 | C 4*1.D0,2*0.D0,4*1.D0,2*0.D0, 1.D0/ | |
546 | DATA C2H/0.D0,1.D0,1.D0,2.D0,-1.D0,0.D0,3*1.D0, | |
547 | C -1.D0,3*1.D0,-1.D0,3*1.D0, | |
548 | C 1.D0,2.D0,1.D0,2.D0,2*0.D0,2*1.D0,2.D0,3*0.D0,-1.D0/ | |
549 | C---MSPIN vs (LL) | |
550 | DATA MSPINH/3*2,4*1,2*2,8*1,3,1,2,1,2*1,2*2,1,3*2, 2/ | |
551 | C---Spin factors <RHO vs (LL,ISPIN) | |
552 | DATA RHOH/3*.25D0, 4*1.D0, 2*.3333D0, 8*1.D0, | |
553 | 1 .1111D0,1.D0,.25D0,1.D0,2*1.D0, | |
554 | 1 .3333D0,.25D0,1.D0,3*.25D0, .25D0, | |
555 | 2 3*.75D0, 4*0.D0, 2*.6667D0, 8*0.D0, | |
556 | 2 .3333D0,.0D0,.75D0,.0D0,2*0.D0, | |
557 | 2 .6667D0,.75D0,0.D0,3*.75D0, .75D0, | |
558 | 3 17*.0D0,.5556D0,3*0.D0, 8*0.D0,1*0.D0,210*0.D0/ | |
559 | C---Scattering length FD and effective radius RD in fm vs (LL,ISPIN) | |
560 | DATA FDH/ | |
561 | 1 17.0D0,7.8D0,23.7D0,2230.1218D0,.225D0,.081D0,-.063D0, | |
562 | 1 -.65D0,-2.73D0, | |
563 | 1 .137D0,-.071D0,-.148D0,.112D0,2*1.D-6,-.360D0, | |
564 | 1 2*1.D-6,1.344D0,6*1.D-6,-5.628D0,2.18D0,2.40D0, | |
565 | 1 2.81D0, ! ND potential | |
566 | C 1 0.50D0, ! NSC97e potential lam-lam | |
567 | 1 1*0.001D0, | |
568 | C c 2 -10.8D0,2*-5.4D0,4*0.D0,-6.35D0,-11.88D0,8*0.D0,9*0.D0, | |
569 | 2 3*-5.4D0,4*0.D0,-6.35D0,-11.88D0,8*0.D0,9*0.D0, | |
570 | 2 1.93D0,1.84D0, | |
571 | 2 0.50D0, ! triplet f0 lam-lam=singlet f0 ND | |
572 | ! not contributing in s-wave FSI approx. | |
573 | 2 1*0.001D0, | |
574 | 3 240*0.D0/ | |
575 | c--------|---------|---------|---------|---------|---------|---------|---------- | |
576 | DATA RDH/ | |
577 | 1 2.7D0,2.8D0,2.7D0,1.12139906D0,-44.36D0,64.0D0,784.9D0, | |
578 | 1 477.9D0, 2.27D0, 9*0.D0,-69.973D0, 6*0.D0,3.529D0, | |
579 | 1 3.19D0,3.15D0, | |
580 | 1 2.95D0, ! ND potential lam-lam | |
581 | C 1 10.6D0, ! NSC97e potential lam-lam | |
582 | 1 1*0.D0, | |
583 | 2 3*1.7D0,4*0.D0,2.0D0,2.63D0, 17*0.D0,3.35D0,3.37D0, | |
584 | 2 2.95D0, ! triplet d0 lam-lam=singlet d0 ND | |
585 | ! not contributing in s-wave approx. | |
586 | 2 1*0.D0, | |
587 | 3 240*0.D0/ | |
588 | C--- Corresponding square well parameters RB (width in fm) and | |
589 | C-- EB =SQRT(-AM*U) (in GeV/c); U is the well height | |
590 | DATA RBH/2.545739D0, 2.779789D0, 2.585795D0, 5.023544D0, | |
591 | 1 .124673D0, .3925180D0,.09D0, 2.D0, 4.058058D0, 17*0.D0, | |
592 | 1 2.252623D0, 2.278575D0, | |
593 | 1 2.234089D0, ! ND potential lam-lam | |
594 | C 1 3.065796D0, ! NSC97e potential lam-lam | |
595 | 1 1*0.001D0, | |
596 | 2 3*2.003144D0, | |
597 | 2 4*0.D0, 2.D0, 4.132163D0, 17*0.D0, | |
598 | 2 2.272703D0, 2.256355D0, | |
599 | 2 2.234089D0, ! triplet potential lam-lam=singlet ND | |
600 | ! not contributing in s-wave FSI approx. | |
601 | 2 1*0.001D0, | |
602 | 3 240*0.D0/ | |
603 | DATA EBH/.1149517D0, .1046257D0, .1148757D0, .1186010D0, | |
604 | 1 .7947389D0,2.281208D0,8.7D0,.4D0,.1561219D0,17*0.D0, | |
605 | 1 .1013293D0, .1020966D0, | |
606 | 1 .1080476D0, ! ND potential lam-lam | |
607 | C 1 .04115994D0, ! NSC97e potential lam-lam | |
608 | 1 1*0.001D0, | |
609 | 2 3*.1847221D0, | |
610 | 2 4*0.D0, .4D0, .1150687D0, 17*0.D0, | |
611 | 2 .09736083D0, .09708310D0, | |
612 | 2 .1080476D0, ! triplet potential lam-lam= singlet ND | |
613 | ! not contributing in s-wave FSI approx. | |
614 | 2 1*0.001D0, | |
615 | 3 240*0.D0/ | |
616 | ||
617 | C++----- add to be able to call several time------- | |
618 | integer ifirst | |
619 | data ifirst/0/ | |
620 | ifirst=ifirst+1 | |
621 | ||
622 | C=======< constants >======================== | |
623 | W=1/.1973D0 ! from fm to 1/GeV | |
624 | PI=4*DATAN(1.D0) | |
625 | PI2=2*PI | |
626 | SPI=DSQRT(PI) | |
627 | DR=180.D0/PI ! from radian to degree | |
628 | AC1=1.D10 | |
629 | AC2=1.D10 | |
630 | C=======< condition de calculs >============= | |
631 | NUNIT=11 ! for IBM in Nantes | |
632 | C NUNIT=4 ! for SUN in Prague | |
633 | C++ CALL readint4(NUNIT,'ITEST ',ITEST) | |
634 | C++ CALL readint4(NUNIT,'NS ',NS) | |
635 | ITEST=I_ITEST | |
636 | IF(ITEST.EQ.1)THEN | |
637 | C++ CALL readint4(NUNIT,'ICH ',ICH) | |
638 | C++ CALL readint4(NUNIT,'IQS ',IQS) | |
639 | C++ CALL readint4(NUNIT,'ISI ',ISI) | |
640 | C++ CALL readint4(NUNIT,'I3C ',I3C) | |
641 | ICH=I_ICH | |
642 | IQS=I_IQS | |
643 | ISI=I_ISI | |
644 | I3C=I_I3C | |
645 | ENDIF | |
646 | C============================================ | |
647 | IF (IFIRST.LE.1) THEN | |
648 | DO 3 J1=1,30 | |
649 | DO 3 J2=1,10 | |
650 | FDH(J1,J2)=FDH(J1,J2)*W | |
651 | RDH(J1,J2)=RDH(J1,J2)*W | |
652 | 3 RBH(J1,J2)=RBH(J1,J2)*W | |
653 | C print *,"FD,RD,EB,RB: ",FDH(J1,J2),RDH(J1,J2),EBH(J1,J2),RBH(J1,J2) | |
654 | ||
655 | ENDIF | |
656 | C=================================== | |
657 | RETURN | |
658 | END | |
659 | C | |
660 | SUBROUTINE LLINI(lll,I_NS,I_ITEST) | |
661 | C===> Initialisation for a given LL value. | |
662 | C =========================================== | |
663 | IMPLICIT REAL*8 (A-H,O-Z) | |
664 | COMMON/FSI_POC/AMN,AM1,AM2,CN,C1,C2,AC1,AC2 | |
665 | COMMON/FSI_SPIN/RHO(10) | |
666 | COMMON/FSI_ACH/HPR,AC,ACH,ACHR,ISPIN,MSPIN | |
667 | COMMON/FSI_NS/LL,NS,ICH,ISI,IQS,I3C,I3S | |
668 | COMMON/FSI_FD/FD(10),RD(10) | |
669 | COMMON/FSI_C/C(10),AM,AMS,DM | |
670 | COMMON/FSI_CONS/PI,PI2,SPI,DR,W | |
671 | COMPLEX*16 C | |
672 | COMMON/FSI_AA/AA | |
673 | COMMON/FSI_PRF/PPX,PPY,PPZ,AK,AKS, | |
674 | 1 X,Y,Z,T,RP,RPS | |
675 | COMMON/FSI_AAPI/AAPI(20,2)/FSI_AAND/AAND(20,4) | |
676 | COMMON/FSI_AAPIN/AAPIN(20,2) | |
677 | COMMON/FSI_SW/RB(10),EB(10),BK(10),CDK(10),SDK(10), | |
678 | 1 SBKRB(10),SDKK(10) | |
679 | COMMON/FSI_FDH/FDH(30,10),RDH(30,10),EBH(30,10),RBH(30,10) | |
680 | COMMON/FSI_RHOH/RHOH(30,10) | |
681 | COMMON/FSI_AMCH/AM1H(30),AM2H(30),C1H(30),C2H(30),MSPINH(30) | |
682 | COMMON/FSI_AAKK/AAKK(9)/FSI_AAPAP/AAPAPR(3,2),AAPAPI(3,2) | |
683 | ||
684 | C++----- add to be able to call several time------- | |
685 | integer ifirst | |
686 | data ifirst/0/ | |
687 | ifirst=ifirst+1 | |
688 | ||
689 | C===> LL - Initialisation ======================================== | |
690 | C---- Setting particle masses and charges | |
691 | LL=lll | |
692 | NS=I_NS | |
693 | AM1=AM1H(LL) | |
694 | AM2=AM2H(LL) | |
695 | C1=C1H(LL) | |
696 | C2=C2H(LL) | |
697 | C print *,"llini: ",AM1,AM2,C1,C2 | |
698 | C---> Switches: | |
699 | C ISI=1(0) the strong interaction between the two particles ON (OFF) | |
700 | C IQS=1(0) the quantum statistics ON (OFF); | |
701 | C should be OFF for nonidentical particles | |
702 | C I3C=1(0) the Coulomb interaction with the nucleus ON (OFF) | |
703 | C I3S=1(0) the strong interaction with the nucleus ON (OFF) | |
704 | C ICH=1(0) if C1*C2 is different from 0 (is equal to 0) | |
705 | C- To switch off the Coulomb force between the two particles | |
706 | C put ICH=0 and substitute the strong amplitude parameters by | |
707 | C the ones not affected by Coulomb interaction | |
708 | C---- -------------------------------------------------------------------- | |
709 | IF (I_ITEST.NE.1) THEN | |
710 | ICH=0 | |
711 | IF(C1*C2.NE.0.D0) ICH=1 | |
712 | IQS=0 | |
713 | IF(C1+AM1.EQ.C2+AM2) IQS=1 | |
714 | I3S=0 ! only this option is available | |
715 | ISI=1 | |
716 | I3C=1 | |
717 | ENDIF | |
718 | C---> Calcul. twice the reduced mass (AM), the relative | |
719 | C mass difference (DM) and the Bohr radius (AC) | |
720 | AM=2*AM1*AM2/(AM1+AM2) | |
721 | AMS=AM*AM | |
722 | DM=(AM1-AM2)/(AM1+AM2) | |
723 | AC=1.D10 | |
724 | C12=C1*C2 | |
725 | IF(C12.NE.0.D0)AC=2*137.036D0/(C12*AM) | |
726 | C---Setting spin factors | |
727 | MSPIN=MSPINH(LL) | |
728 | C print *,"MSPIN: ",MSPIN | |
729 | MSP=MSPIN | |
730 | DO 91 ISPIN=1,10 | |
731 | 91 RHO(ISPIN)=RHOH(LL,ISPIN) | |
732 | C 91 print *,"RHO: ",ISPIN,RHO(ISPIN) | |
733 | C---> Integration limit AA in the spherical wave approximation | |
734 | AA=0.D0 | |
735 | cc IF(NS.EQ.2.OR.NS.EQ.4)AA=.5D0 !!in 1/GeV --> 0.1 fm | |
736 | IF(NS.EQ.2.OR.NS.EQ.4)AA=6.D0 !!in 1/GeV --> 1.2 fm | |
737 | C---> Setting scatt. length (FD), eff. radius (RD) and, if possible, | |
738 | C-- also the corresp. square well parameters (EB, RB) | |
739 | DO 55 JJ=1,MSP | |
740 | ISPIN=JJ | |
741 | FD(JJ)=FDH(LL,JJ) | |
742 | RD(JJ)=RDH(LL,JJ) | |
743 | EB(JJ)=EBH(LL,JJ) | |
744 | RB(JJ)=RBH(LL,JJ) | |
745 | C print *,"FD,RD,EB,RB: ",FD(JJ),RD(JJ),EB(JJ),RB(JJ) | |
746 | C---Resets FD and RD for a nucleon-deuteron system (LL=8,9) | |
747 | IF(LL.EQ.8.OR.LL.EQ.9)THEN | |
748 | JH=LL-7+2*JJ-2 | |
749 | FD(JJ)=AAND(1,JH) | |
750 | RD(JJ)=AAND(2,JH)-2*AAND(3,JH)/AAND(1,JH) | |
751 | ENDIF | |
752 | C---Resets FD and RD for a pion-pion system (LL=5,6,7) | |
753 | IF(LL.EQ.5.OR.LL.EQ.6.OR.LL.EQ.7)THEN | |
754 | IF(LL.EQ.7)FD(JJ)=AAPI(1,2)/AM | |
755 | IF(LL.EQ.5)FD(JJ)=(.6667D0*AAPI(1,1)+.3333D0*AAPI(1,2))/AM | |
756 | IF(LL.EQ.6)FD(JJ)=(.3333D0*AAPI(1,1)+.6667D0*AAPI(1,2))/AM | |
757 | AKS=0.D0 | |
758 | DAKS=1.D-5 | |
759 | AKSH=AKS+DAKS | |
760 | AKH=DSQRT(AKSH) | |
761 | GPI1H=GPIPI(AKSH,1) | |
762 | GPI2H=GPIPI(AKSH,2) | |
763 | H=1/FD(JJ) | |
764 | IF(LL.EQ.7)C(JJ)=1/DCMPLX(GPI2H,-AKH) | |
765 | IF(LL.EQ.5) | |
766 | + C(JJ)=.6667D0/DCMPLX(GPI1H,-AKH)+.3333D0/DCMPLX(GPI2H,-AKH) | |
767 | IF(LL.EQ.6) | |
768 | + C(JJ)=.3333D0/DCMPLX(GPI1H,-AKH)+.6667D0/DCMPLX(GPI2H,-AKH) | |
769 | HH=DREAL(1/C(JJ)) | |
770 | RD(JJ)=2*(HH-H)/DAKS | |
771 | ENDIF | |
772 | C---Resets FD and RD for a pion-nucleon system (LL=12,13) | |
773 | IF(LL.EQ.12.OR.LL.EQ.13)THEN | |
774 | IF(LL.EQ.12)FD(JJ)=AAPIN(1,2) | |
775 | IF(LL.EQ.13)FD(JJ)=(.6667D0*AAPIN(1,1)+.3333D0*AAPIN(1,2)) | |
776 | AKS=0.D0 | |
777 | DAKS=1.D-5 | |
778 | AKSH=AKS+DAKS | |
779 | AKH=DSQRT(AKSH) | |
780 | GPI1H=GPIN(AKSH,1) | |
781 | GPI2H=GPIN(AKSH,2) | |
782 | H=1/FD(JJ) | |
783 | IF(LL.EQ.12)C(JJ)=1/DCMPLX(GPI2H,-AKH) | |
784 | IF(LL.EQ.13) | |
785 | + C(JJ)=.6667D0/DCMPLX(GPI1H,-AKH)+.3333D0/DCMPLX(GPI2H,-AKH) | |
786 | HH=DREAL(1/C(JJ)) | |
787 | RD(JJ)=2*(HH-H)/DAKS | |
788 | ENDIF | |
789 | C---fm to 1/GeV for pp-bar system | |
790 | IF(LL.EQ.30)THEN | |
791 | IF(IFIRST.LE.1)THEN | |
792 | DO 4 I3=1,3 | |
793 | AAPAPR(I3,JJ)=AAPAPR(I3,JJ)*W | |
794 | 4 AAPAPI(I3,JJ)=AAPAPI(I3,JJ)*W | |
795 | C 4 print *,"AAPAPR,AAPAPI: ",AAPAPR(I3,JJ),AAPAPI(I3,JJ) | |
796 | C--- Calculates complex elements M11=M22=C(6), M12=M21=C(7) for I=0 | |
797 | C--- at k*=0 M11=M22=C(8), M12=M21=C(9) for I=1 | |
798 | C(7+(JJ-1)*2)=2*DCMPLX(AAPAPR(1,JJ),AAPAPI(1,JJ))* | |
799 | * DCMPLX(AAPAPR(2,JJ),AAPAPI(2,JJ)) ! 2a_0Sa_1S | |
800 | C(6+(JJ-1)*2)=DCMPLX(AAPAPR(1,JJ)+AAPAPR(2,JJ), | |
801 | , AAPAPI(1,JJ)+AAPAPI(2,JJ))/ | |
802 | / C(7+(JJ-1)*2) ! M11=M22 | |
803 | C(7+(JJ-1)*2)=-DCMPLX(AAPAPR(1,JJ)-AAPAPR(2,JJ), | |
804 | , AAPAPI(1,JJ)-AAPAPI(2,JJ))/ | |
805 | / C(7+(JJ-1)*2) ! M12=M21 | |
806 | ENDIF | |
807 | ENDIF | |
808 | C---Calculation continues for any system (any LL) | |
809 | 55 CONTINUE | |
810 | RETURN | |
811 | END | |
812 | C======================================================= | |
813 | C | |
814 | ||
815 | c++ This routine is used to init mass and charge of the nucleus. | |
816 | ||
817 | SUBROUTINE FSINUCL(R_AMN,R_CN) | |
818 | ||
819 | IMPLICIT REAL*8 (A-H,O-Z) | |
820 | COMMON/FSI_POC/AMN,AM1,AM2,CN,C1,C2,AC1,AC2 | |
821 | ||
822 | AMN=R_AMN | |
823 | CN=R_CN | |
824 | ||
825 | RETURN | |
826 | END | |
827 | ||
828 | C====================================================== | |
829 | C | |
830 | ||
831 | SUBROUTINE FSIMOMENTUM(PP1,PP2) | |
832 | ||
833 | IMPLICIT REAL*8 (A-H,O-Z) | |
834 | COMMON/FSI_MOM/P1X,P1Y,P1Z,E1,P1, ! particle momenta in NRF | |
835 | 1 P2X,P2Y,P2Z,E2,P2 | |
836 | ||
837 | ||
838 | REAL*8 PP1(3),PP2(3) | |
839 | c Print *,"momentum",pp1,pp2 | |
840 | P1X=PP1(1) | |
841 | P1Y=PP1(2) | |
842 | P1Z=PP1(3) | |
843 | P2X=PP2(1) | |
844 | P2Y=PP2(2) | |
845 | P2Z=PP2(3) | |
846 | RETURN | |
847 | END | |
848 | ||
849 | ||
850 | ||
851 | C====================================================== | |
852 | C | |
853 | ||
854 | SUBROUTINE FSIPOSITION(XT1,XT2) | |
855 | ||
856 | IMPLICIT REAL*8 (A-H,O-Z) | |
857 | COMMON/FSI_COOR/X1,Y1,Z1,T1,R1, !4-coord. of emis. points in NRF | |
858 | 1 X2,Y2,Z2,T2,R2 | |
859 | ||
860 | REAL*8 XT1(4),XT2(4) | |
861 | clc print *,'fsi',xt1,xt2 | |
862 | X1=XT1(1) | |
863 | Y1=XT1(2) | |
864 | Z1=XT1(3) | |
865 | T1=XT1(4) | |
866 | X2=XT2(1) | |
867 | Y2=XT2(2) | |
868 | Z2=XT2(3) | |
869 | T2=XT2(4) | |
870 | RETURN | |
871 | END | |
872 | ||
873 | ||
874 | C====================================================== | |
875 | C====================================================== | |
876 | C | |
877 | subroutine BoostToPrf() | |
878 | IMPLICIT REAL*8 (A-H,O-Z) | |
879 | COMMON/FSI_CVK/V,CVK | |
880 | COMMON/FSI_MOM/P1X,P1Y,P1Z,E1,P1, !part. momenta in NRF | |
881 | 1 P2X,P2Y,P2Z,E2,P2 | |
882 | COMMON/FSI_PRF/PPX,PPY,PPZ,AK,AKS, | |
883 | 1 X,Y,Z,T,RP,RPS | |
884 | COMMON/FSI_COOR/X1,Y1,Z1,T1,R1, ! 4-coord. of emis. points in NRF | |
885 | 1 X2,Y2,Z2,T2,R2 | |
886 | COMMON/FSI_P12/P12X,P12Y,P12Z,E12,P12,AM12,EPM | |
887 | ||
888 | XS=X1-X2 | |
889 | YS=Y1-Y2 | |
890 | ZS=Z1-Z2 | |
891 | TS=T1-T2 | |
892 | RS12=XS*P12X+YS*P12Y+ZS*P12Z | |
893 | H1=(RS12/EPM-TS)/AM12 | |
894 | X=XS+P12X*H1 | |
895 | Y=YS+P12Y*H1 | |
896 | Z=ZS+P12Z*H1 | |
897 | T=(E12*TS-RS12)/AM12 | |
898 | RPS=X*X+Y*Y+Z*Z | |
899 | RP=DSQRT(RPS) | |
900 | CW WRITE(6,38)'RP ',RP,'X ',X,Y,Z,T | |
901 | 38 FORMAT(A7,E11.4,A7,4E11.4) | |
902 | ||
903 | CVK=(P12X*PPX+P12Y*PPY+P12Z*PPZ)/(P12*AK) | |
904 | V=P12/E12 | |
905 | return | |
906 | end | |
907 | ||
908 | SUBROUTINE FSIWF(WEI) | |
909 | C==> Prepares necessary quantities and call VZ(WEI) to calculate | |
910 | C the weight due to FSI | |
911 | IMPLICIT REAL*8 (A-H,O-Z) | |
912 | COMMON/FSI_CVK/V,CVK | |
913 | COMMON/FSI_MOM/P1X,P1Y,P1Z,E1,P1, !part. momenta in NRF | |
914 | 1 P2X,P2Y,P2Z,E2,P2 | |
915 | COMMON/FSI_PRF/PPX,PPY,PPZ,AK,AKS, | |
916 | 1 X,Y,Z,T,RP,RPS | |
917 | COMMON/FSI_COOR/X1,Y1,Z1,T1,R1, ! 4-coord. of emis. points in NRF | |
918 | 1 X2,Y2,Z2,T2,R2 | |
919 | COMMON/FSI_POC/AMN,AM1,AM2,CN,C1,C2,AC1,AC2 | |
920 | COMMON/FSI_SPIN/RHO(10) | |
921 | COMMON/FSI_BP/B,P | |
922 | COMMON/FSI_ETA/ETA | |
923 | COMMON/FSI_ACH/HPR,AC,ACH,ACHR,ISPIN,MSPIN | |
924 | COMMON/FSI_SW/RB(10),EB(10),BK(10),CDK(10),SDK(10), | |
925 | 1 SBKRB(10),SDKK(10) | |
926 | COMMON/FSI_NS/LL,NS,ICH,ISI,IQS,I3C,I3S | |
927 | COMMON/FSI_RR/F(10) | |
928 | COMMON/FSI_FD/FD(10),RD(10) | |
929 | COMMON/FSI_C/C(10),AM,AMS,DM | |
930 | COMPLEX*16 C,F | |
931 | COMMON/FSI_AA/AA | |
932 | COMMON/FSI_SHH/SH,CHH | |
933 | COMMON/FSI_AAPI/AAPI(20,2)/FSI_AAND/AAND(20,4) | |
934 | COMMON/FSI_AAPIN/AAPIN(20,2) | |
935 | COMMON/FSI_P12/P12X,P12Y,P12Z,E12,P12,AM12,EPM | |
936 | COMMON/FSI_2CHA/AK2,AK2S,AAK,HCP2,AMU2_AMU1 ! k* (kappa) for 2-nd channel | |
937 | C==>calculating relative 4-coordinates of the particles in PRF | |
938 | C- {T,X,Y,Z} from the relative coordinates {TS,XS,YS,ZS} in NRF | |
939 | XS=X1-X2 | |
940 | YS=Y1-Y2 | |
941 | ZS=Z1-Z2 | |
942 | TS=T1-T2 | |
943 | RS12=XS*P12X+YS*P12Y+ZS*P12Z | |
944 | H1=(RS12/EPM-TS)/AM12 | |
945 | X=XS+P12X*H1 | |
946 | Y=YS+P12Y*H1 | |
947 | Z=ZS+P12Z*H1 | |
948 | T=(E12*TS-RS12)/AM12 | |
949 | RPS=X*X+Y*Y+Z*Z | |
950 | RP=DSQRT(RPS) | |
951 | CW WRITE(6,38)'RP ',RP,'X ',X,Y,Z,T | |
952 | 38 FORMAT(A7,E11.4,A7,4E11.4) | |
953 | ||
954 | CVK=(P12X*PPX+P12Y*PPY+P12Z*PPZ)/(P12*AK) | |
955 | V=P12/E12 | |
956 | ||
957 | C ACH=1.D0 | |
958 | IF(ICH.EQ.0)GOTO 21 | |
959 | XH=AC*AK | |
960 | ACH=ACP(XH) | |
961 | ACHR=DSQRT(ACH) | |
962 | ETA=0.D0 | |
963 | IF(XH.NE.0.D0)ETA=1/XH | |
964 | C---HCP, HPR needed (e.g. in GST) if ICH=1 | |
965 | HCP=HC(XH) | |
966 | HPR=HCP+.1544313298D0 | |
967 | C AAK=ACH*AK ! | |
968 | C HCP2=2*HCP/AC ! needed to calculate C(JJ) for charged particles | |
969 | 21 CONTINUE | |
970 | MSP=MSPIN | |
971 | DO 30 JJ=1,MSP | |
972 | ISPIN=JJ | |
973 | IF(NS.NE.1)GOTO22 | |
974 | C---Calc. quantities for the square well potential; | |
975 | C-- for LL=6-26 the square well potential is not possible or available | |
976 | IF(LL.EQ.4)GOTO 22 | |
977 | BK(JJ)=DSQRT(EB(JJ)**2+AKS) | |
978 | XRA=2*RB(JJ)/AC | |
979 | HRA=BK(JJ)*RB(JJ) | |
980 | CALL SEQ(XRA,HRA) | |
981 | SBKRB(JJ)=HRA*B | |
982 | HRA=AK*RB(JJ) | |
983 | CALL GST(XRA,HRA) | |
984 | SDK(JJ)=SH | |
985 | CDK(JJ)=CHH | |
986 | SDKK(JJ)=RB(JJ) | |
987 | IF(AK.NE.0.D0)SDKK(JJ)=SH/AK | |
988 | IF(ICH.EQ.1)SDK(JJ)=ACH*SDK(JJ) | |
989 | 22 CONTINUE | |
990 | C----------------------------------------------------------------------- | |
991 | C---Calc. the strong s-wave scattering amplitude = C(JJ) | |
992 | C-- divided by Coulomb penetration factor squared (if ICH=1) | |
993 | IF(NS.NE.1)GOTO 230 | |
994 | IF(LL.NE.4)GOTO 230 ! SW scat. amplitude used for alfa-alfa only | |
995 | GAK=G(AK) | |
996 | AKACH=AK | |
997 | IF(ICH.EQ.1)AKACH=AK*ACH | |
998 | C(JJ)=1/DCMPLX(GAK,-AKACH) ! amplitude for the SW-potential | |
999 | GOTO 30 | |
1000 | 230 IF(LL.EQ.5.OR.LL.EQ.6.OR.LL.EQ.7)GOTO20 ! pipi | |
1001 | IF(LL.EQ.12.OR.LL.EQ.13)GOTO20 ! piN | |
1002 | IF(LL.EQ.8.OR.LL.EQ.9.OR.LL.EQ.18)GOTO20 ! Nd, dd | |
1003 | IF(LL.EQ.14.OR.LL.EQ.17.OR.LL.EQ.23)GOTO27 ! K+K-, K-p, K0K0-b | |
1004 | IF(LL.EQ.30)GOTO 28 ! pp-bar | |
1005 | A1=RD(JJ)*FD(JJ)*AKS | |
1006 | A2=1+.5D0*A1 | |
1007 | IF(ICH.EQ.1)A2=A2-2*HCP*FD(JJ)/AC | |
1008 | AKF=AK*FD(JJ) | |
1009 | IF(ICH.EQ.1)AKF=AKF*ACH | |
1010 | C(JJ)=FD(JJ)/DCMPLX(A2,-AKF) | |
1011 | GOTO30 | |
1012 | 20 CONTINUE | |
1013 | C---Calc. scatt. ampl. C(JJ) for pipi, piN and Nd, dd | |
1014 | JH=LL-7+2*JJ-2 | |
1015 | IF(LL.EQ.8.OR.LL.EQ.9)GPI2=GND(AKS,JH) | |
1016 | IF(LL.EQ.18)GPI2=GDD(AKS,JJ) | |
1017 | IF(LL.EQ.5.OR.LL.EQ.6.OR.LL.EQ.7)GPI2=GPIPI(AKS,2) | |
1018 | IF(LL.EQ.12.OR.LL.EQ.13)GPI2=GPIN(AKS,2) | |
1019 | C(JJ)=1.D0/DCMPLX(GPI2,-AK) !pi+pi+, nd, pd, pi+p, dd | |
1020 | IF(LL.NE.5.AND.LL.NE.6.AND.LL.NE.13)GOTO27 | |
1021 | IF(LL.EQ.5.OR.LL.EQ.6)GPI1=GPIPI(AKS,1) | |
1022 | IF(LL.EQ.13)GPI1=GPIN(AKS,1) | |
1023 | IF(LL.EQ.5.OR.LL.EQ.13) | |
1024 | c C(JJ)=.6667D0/DCMPLX(GPI1,-AK)+.3333D0*C(JJ) !pi+pi-,pi-p | |
1025 | IF(LL.EQ.6)C(JJ)=.3333D0/DCMPLX(GPI1,-AK)+.6667D0*C(JJ) !pi0pi0 | |
1026 | 27 CONTINUE | |
1027 | C---Calc. K+K-, K0K0-b or K-p s-wave scatt. ampl. | |
1028 | IF(LL.EQ.14.OR.LL.EQ.23)CALL CKKB | |
1029 | c IF(LL.EQ.17)C(JJ)=DCMPLX(-3.29D0,3.55D0) ! Martin'76 (K-p) | |
1030 | c IF(LL.EQ.17)C(JJ)=DCMPLX(3.29D0,3.55D0) ! Martin'76 (K-p) WRONG SIGN!!! | |
1031 | IF(LL.EQ.17)C(JJ)=DCMPLX(-2.585D0,4.156D0) ! Borasoy'04 (K-p) | |
1032 | c IF(LL.EQ.17)C(JJ)=DCMPLX(-3.371D0,3.244D0) ! Martin'81 (K-p) | |
1033 | C---Calc. pi+pi-, pi+pi+, pd, pi+p, pi-p, K+K- or K-p s-wave scatt. ampl. | |
1034 | C-- divided by Coulomb penetration factor squared (if ICH=1) | |
1035 | IF(ICH.EQ.0)GOTO 30 | |
1036 | AAK=ACH*AK ! | |
1037 | HCP2=2*HCP/AC ! needed to calculate C(JJ) for charged particles | |
1038 | C(JJ)=1/(1/C(JJ)-HCP2+DCMPLX(0.D0,AK-AAK)) | |
1039 | GOTO 30 | |
1040 | 28 CONTINUE | |
1041 | C---Calc. pp-bar s-wave scatt. ampl. | |
1042 | CALL CPAP | |
1043 | 30 CONTINUE | |
1044 | C*********************************************************************** | |
1045 | CALL VZ(WEI) | |
1046 | RETURN | |
1047 | END | |
1048 | SUBROUTINE VZ(WEI) | |
1049 | C==> Calculates the weight WEI due to FSI | |
1050 | IMPLICIT REAL*8 (A-H,O-Z) | |
1051 | COMMON/FSI_JR/JRAT | |
1052 | COMMON/FSI_PRF/PPX,PPY,PPZ,AK,AKS, | |
1053 | 1 X,Y,Z,T,RP,RPS | |
1054 | COMMON/FSI_SPIN/RHO(10) | |
1055 | COMMON/FSI_ETA/ETA | |
1056 | COMMON/FSI_AA/AA | |
1057 | COMMON/FSI_FFF/F12,F21 | |
1058 | COMMON/FSI_ACH/HPR,AC,ACH,ACHR,ISPIN,MSPIN | |
1059 | COMMON/FSI_NS/LL,NS,ICH,ISI,IQS,I3C,I3S | |
1060 | COMMON/FSI_FD/FD(10),RD(10) | |
1061 | COMMON/FSI_RR/F(10) | |
1062 | COMMON/FSI_C/C(10),AM,AMS,DM | |
1063 | COMMON/FSI_COULPH/EIDC | |
1064 | COMPLEX*16 F,C,G,PSI12,PSI21 | |
1065 | COMPLEX*16 F12,F21 | |
1066 | COMPLEX*16 EIDC | |
1067 | COMPLEX*8 Z8,CGAMMA | |
1068 | COMMON/FSI_FFPN/FF12,FF21 | |
1069 | COMPLEX*16 FF12,FF21 | |
1070 | COMMON/FSI_2CHA/AK2,AK2S,AAK,HCP2,AMU2_AMU1 ! k* (kappa) for 2-nd channel | |
1071 | WEI=0.D0 | |
1072 | IF(JRAT.EQ.1)GOTO 11 | |
1073 | RHOS=AK*RP | |
1074 | HS=X*PPX+Y*PPY+Z*PPZ | |
1075 | IF(RHOS.LT.15.D0.AND.RHOS+DABS(HS).LT.20.D0)GOTO 2 | |
1076 | C---Calc. EIDC=exp(i*Coul.Ph.); | |
1077 | C-- used in calc. of hypergeom. f-s in SEQA, FAS at k*R > 15, 20 | |
1078 | Z8=CMPLX(1.,SNGL(ETA)) | |
1079 | Z8=CGAMMA(Z8) | |
1080 | EIDC=Z8/CABS(Z8) | |
1081 | 2 CALL FF(RHOS,HS) | |
1082 | 11 MSP=MSPIN | |
1083 | IF(ISI.EQ.0)GOTO 4 ! the strong interaction ON (OFF) if ISI=1(0) | |
1084 | IF(RP.LT.AA)GOTO 4 | |
1085 | IF(JRAT.NE.1) CALL FIRT | |
1086 | IF(IQS.EQ.0)GOTO 5 ! the quantum statistics ON (OFF) if IQS=1(0) | |
1087 | JSIGN=-1 | |
1088 | DO 1 JJ=1,MSP | |
1089 | JSIGN=-JSIGN | |
1090 | G=F(JJ)*C(JJ) | |
1091 | IF(ICH.EQ.1)G=G*ACHR | |
1092 | PSI12=FF12*(F12+G) | |
1093 | PSI21=FF21*(F21+G) | |
1094 | G=PSI12+JSIGN*PSI21 | |
1095 | 1 WEI=WEI+RHO(JJ)*(DREAL(G)**2+DIMAG(G)**2) | |
1096 | GOTO 8 | |
1097 | 5 DO 6 JJ=1,MSP | |
1098 | G=F(JJ)*C(JJ) | |
1099 | IF(ICH.EQ.1)G=G*ACHR | |
1100 | CW WRITE(6,38)'JJ ',JJ,'F ',DREAL(F(JJ)),DIMAG(F(JJ)) | |
1101 | CW WRITE(6,38)'JJ ',JJ,'C ',DREAL(C(JJ)),DIMAG(C(JJ)) | |
1102 | CW WRITE(6,38)'JJ ',JJ,'G ',DREAL(G),DIMAG(G) | |
1103 | CW WRITE(6,38)'JJ ',JJ,'F12+G ',DREAL(F12+G),DIMAG(F12+G) | |
1104 | CW WRITE(6,38)'JJ ',JJ,'F21+G ',DREAL(F21+G),DIMAG(F21+G) | |
1105 | 38 FORMAT(A7,I3,A7,2E11.4) | |
1106 | PSI12=FF12*(F12+G) | |
1107 | 6 WEI=WEI+RHO(JJ)*(DREAL(PSI12)**2+DIMAG(PSI12)**2) | |
1108 | c--- Account for nn-bar->pp-bar channel --------------------------- | |
1109 | IF(LL.EQ.30)THEN | |
1110 | DO 61 JJ=1,MSP | |
1111 | HH=RHO(JJ)*(DREAL(C(JJ+2))**2+DIMAG(C(JJ+2))**2)* | |
1112 | * AMU2_AMU1*ACH/RPS | |
1113 | IF(AK2S.LT.0)HH=HH*DEXP(-2*RP*AK2) | |
1114 | 61 WEI=WEI+HH | |
1115 | ENDIF | |
1116 | c------------------------------------------------------------------ | |
1117 | RETURN | |
1118 | 4 PSI12=FF12*F12 | |
1119 | IF(IQS.EQ.0)GOTO 50 ! the quantum statistics ON (OFF) if IQS=1(0) | |
1120 | PSI21=FF21*F21 | |
1121 | JSIGN=-1 | |
1122 | DO 3 JJ=1,MSP | |
1123 | JSIGN=-JSIGN | |
1124 | G=PSI12+JSIGN*PSI21 | |
1125 | 3 WEI=WEI+RHO(JJ)*(DREAL(G)**2+DIMAG(G)**2) | |
1126 | GOTO 8 | |
1127 | 50 WEI=DREAL(PSI12)**2+DIMAG(PSI12)**2 | |
1128 | RETURN | |
1129 | 8 WEI=WEI/2 | |
1130 | RETURN | |
1131 | END | |
1132 | SUBROUTINE FIRT | |
1133 | C---CALC. THE F(JJ) | |
1134 | C-- F(JJ)*C(JJ)= DEVIATION OF THE BETHE-SALPETER AMPL. FROM PLANE WAVE | |
1135 | IMPLICIT REAL*8 (A-H,O-Z) | |
1136 | COMMON/FSI_PRF/PPX,PPY,PPZ,AK,AKS, | |
1137 | 1 X,Y,Z,T,RP,RPS | |
1138 | COMMON/FSI_SHH/SH,CHH | |
1139 | COMMON/FSI_BP/B,P | |
1140 | COMMON/FSI_ACH/HPR,AC,ACH,ACHR,ISPIN,MSPIN | |
1141 | COMMON/FSI_C/C(10),AM,AMS,DM | |
1142 | COMMON/FSI_SW/RB(10),EB(10),BK(10),CDK(10),SDK(10), | |
1143 | 1 SBKRB(10),SDKK(10) | |
1144 | COMMON/FSI_NS/LL,NS,ICH,ISI,IQS,I3C,I3S | |
1145 | COMMON/FSI_RR/F(10) | |
1146 | EQUIVALENCE(RSS,RP),(TSS,T) | |
1147 | COMPLEX*16 F,C,CH1 | |
1148 | MSP=MSPIN | |
1149 | DO 10 JJ=1,MSP | |
1150 | IF(JJ.GT.1)GOTO 3 | |
1151 | XRA=2*RSS/AC | |
1152 | IF(AK.NE.0.D0)GOTO2 | |
1153 | SHK=1.D0 | |
1154 | SH=.0D0 | |
1155 | SHH=SH | |
1156 | CHH=1/RSS | |
1157 | GOTO3 | |
1158 | 2 H=AK*RSS | |
1159 | CALL GST(XRA,H) | |
1160 | SH=SH/RSS | |
1161 | CHH=CHH/RSS | |
1162 | SHH=SH | |
1163 | IF(ICH.EQ.1) SHH=ACH*SH | |
1164 | 3 IF(NS.EQ.2)GOTO1 | |
1165 | C---F= ASYMPTOTIC FORMULA (T= 0 APPROX.); NS= 4 | |
1166 | 6 F(JJ)=DCMPLX(CHH,SHH) | |
1167 | IF(NS.NE.1)GOTO 10 | |
1168 | C---F INSIDE THE SQUARE-WELL (T= 0 APPROX.); NS= 1 | |
1169 | IF(RSS.GE.RB(JJ)) GOTO 10 | |
1170 | IF(AK.NE.0.D0.AND.JJ.EQ.1)SHK=SH/AK | |
1171 | H=BK(JJ)*RSS | |
1172 | CALL GST(XRA,H) | |
1173 | SKR=B*BK(JJ) | |
1174 | F(JJ)=DCMPLX(CDK(JJ),SDK(JJ))*SKR | |
1175 | CH1=(SDKK(JJ)*SKR-SHK*SBKRB(JJ))/C(JJ) | |
1176 | F(JJ)=(F(JJ)+CH1)/SBKRB(JJ) | |
1177 | GOTO 10 | |
1178 | 1 CONTINUE | |
1179 | C---F= ASYMPTOTIC FORMULA (T= 0 NOT REQUIRED); NS= 2 | |
1180 | IF(JJ.GT.1)GOTO 8 | |
1181 | IF(TSS.EQ.0.D0)GOTO6 | |
1182 | TSSA=DABS(TSS) | |
1183 | IF(DM.NE.0.D0)GOTO 11 | |
1184 | H=AM*.5D0/TSSA | |
1185 | IF(AK.NE.0.D0)GOTO4 | |
1186 | HM=H*RPS | |
1187 | IF(HM.GE.3.D15)GOTO6 | |
1188 | FS1=DFRSIN(HM) | |
1189 | FC1=DFRCOS(HM) | |
1190 | FC2=FC1 | |
1191 | FS2=FS1 | |
1192 | GOTO5 | |
1193 | 4 CONTINUE | |
1194 | H1=AK*TSSA/AM | |
1195 | HM=H*(RSS-H1)**2 | |
1196 | HP=H*(RSS+H1)**2 | |
1197 | IF(HP.GE.3.D15)GOTO6 | |
1198 | FS1=DFRSIN(HM) | |
1199 | FC1=DFRCOS(HM) | |
1200 | FS2=DFRSIN(HP) | |
1201 | FC2=DFRCOS(HP) | |
1202 | GOTO 5 | |
1203 | 11 CONTINUE | |
1204 | FS1=0.D0 | |
1205 | FS2=0.D0 | |
1206 | FC1=0.D0 | |
1207 | FC2=0.D0 | |
1208 | DO 13 I=1,2 | |
1209 | IF(I.EQ.1)TSSH=TSSA*(1+DM) | |
1210 | IF(I.EQ.2)TSSH=TSSA*(1-DM) | |
1211 | H=AM*.5D0/TSSH | |
1212 | IF(AK.NE.0.D0)GOTO 12 | |
1213 | HM=H*RPS | |
1214 | IF(HM.GE.3.D15)GOTO6 | |
1215 | FS1=FS1+DFRSIN(HM)/2 | |
1216 | FC1=FC1+DFRCOS(HM)/2 | |
1217 | IF(I.EQ.1)GOTO 13 | |
1218 | FC2=FC1 | |
1219 | FS2=FS1 | |
1220 | GOTO 13 | |
1221 | 12 CONTINUE | |
1222 | H1=AK*TSSH/AM | |
1223 | HM=H*(RSS-H1)**2 | |
1224 | HP=H*(RSS+H1)**2 | |
1225 | IF(HP.GE.3.D15)GOTO6 | |
1226 | FS1=FS1+DFRSIN(HM)/2 | |
1227 | FC1=FC1+DFRCOS(HM)/2 | |
1228 | FS2=FS2+DFRSIN(HP)/2 | |
1229 | FC2=FC2+DFRCOS(HP)/2 | |
1230 | 13 CONTINUE | |
1231 | 5 C12=FC1+FS2 | |
1232 | S12=FS1+FC2 | |
1233 | A12=FS1-FC2 | |
1234 | A21=FS2-FC1 | |
1235 | A2=.5D0*(CHH*(A12+A21)+SH*(A12-A21))+SHH | |
1236 | A1=.5D0*(CHH*(C12+S12)+SH*(C12-S12)) | |
1237 | F(JJ)=.3989422D0*DCMPLX(A1,A2) | |
1238 | GOTO 10 | |
1239 | 8 F(JJ)=F(1) | |
1240 | 10 CONTINUE | |
1241 | RETURN | |
1242 | END | |
1243 | FUNCTION EXF(X) | |
1244 | IMPLICIT REAL*8 (A-H,O-Z) | |
1245 | IF(X.LT.-15.D0) GO TO 1 | |
1246 | EXF=DEXP(X) | |
1247 | RETURN | |
1248 | 1 EXF=.0D0 | |
1249 | RETURN | |
1250 | END | |
1251 | SUBROUTINE SEQ(X,H) | |
1252 | C---CALC. FUNCTIONS B, P (EQS. (17) OF G-K-L-L); | |
1253 | C-- NEEDED TO CALC. THE CONFLUENT HYPERGEOMETRIC FUNCTION GST. | |
1254 | IMPLICIT REAL*8 (A-H,O-Z) | |
1255 | COMMON/FSI_BP/B,P | |
1256 | DIMENSION BH(3),PH(3) | |
1257 | DATA ERR/1.D-7/ | |
1258 | BH(1)=1.D0 | |
1259 | PH(1)=1.D0 | |
1260 | PH(2)=.0D0 | |
1261 | BH(2)=.5D0*X | |
1262 | B=1+BH(2) | |
1263 | P=1.D0 | |
1264 | HS=H*H | |
1265 | J=0 | |
1266 | 2 J=J+1 | |
1267 | BH(3)=(X*BH(2)-HS*BH(1))/((J+1)*(J+2)) | |
1268 | PH(3)=(X*PH(2)-HS*PH(1)-(2*J+1)*X*BH(2))/(J*(J+1)) | |
1269 | B=B+BH(3) | |
1270 | P=P+PH(3) | |
1271 | Z=DABS(BH(2))+DABS(BH(3))+DABS(PH(2))+DABS(PH(3)) | |
1272 | IF(Z.LT.ERR)RETURN | |
1273 | BH(1)=BH(2) | |
1274 | BH(2)=BH(3) | |
1275 | PH(1)=PH(2) | |
1276 | PH(2)=PH(3) | |
1277 | GOTO 2 | |
1278 | END | |
1279 | SUBROUTINE SEQA(X,H) | |
1280 | C---CALC. FUNCTIONS CHH=REAL(GST), SH=IMAG(GST)/ACH, B=SH/H | |
1281 | C-- IN THE ASYMPTOTIC REGION H=K*R >> 1. | |
1282 | IMPLICIT REAL*8 (A-H,O-Z) | |
1283 | COMMON/FSI_BP/B,P | |
1284 | COMMON/FSI_SHH/SH,CHH | |
1285 | COMMON/FSI_ETA/ETA | |
1286 | COMMON/FSI_ACH/HPR,AC,ACH,ACHR,ISPIN,MSPIN | |
1287 | COMMON/FSI_COULPH/EIDC | |
1288 | COMPLEX*16 EIDC,GST | |
1289 | ARG=H-ETA*DLOG(2*H) | |
1290 | GST=DCMPLX(DCOS(ARG),DSIN(ARG)) | |
1291 | GST=ACHR*EIDC*GST | |
1292 | CHH=DREAL(GST) | |
1293 | SH=DIMAG(GST)/ACH | |
1294 | B=SH/H | |
1295 | RETURN | |
1296 | END | |
1297 | SUBROUTINE FF(RHO,H) | |
1298 | C---Calc. F12, F21; | |
1299 | C-- F12= FF0* plane wave, FF0=F*ACHR, | |
1300 | C---F is the confluent hypergeometric function, | |
1301 | C-- ACHR=sqrt(ACH), where ACH is the Coulomb factor | |
1302 | IMPLICIT REAL*8 (A-H,O-Z) | |
1303 | COMMON/FSI_ACH/HPR,AC,ACH,ACHR,ISPIN,MSPIN | |
1304 | COMMON/FSI_NS/LL,NS,ICH,ISI,IQS,I3C,I3S | |
1305 | COMMON/FSI_ETA/ETA | |
1306 | COMMON/FSI_FFF/F12,F21 | |
1307 | COMPLEX*16 FF0,F12,F21 | |
1308 | C=DCOS(H) | |
1309 | S=DSIN(H) | |
1310 | F12=DCMPLX(C,-S) | |
1311 | F21=DCMPLX(C,S) | |
1312 | IF(ICH.EQ.0)RETURN | |
1313 | RHOP=RHO+H | |
1314 | RHOM=RHO-H | |
1315 | F12=FF0(RHO,H)*F12 | |
1316 | F21=FF0(RHO,-H)*F21 | |
1317 | RETURN | |
1318 | END | |
1319 | FUNCTION FAS(RKS) | |
1320 | C-- FAS=F*ACHR | |
1321 | C---F is the confluent hypergeometric function at k*r >> 1 | |
1322 | C-- ACHR=sqrt(ACH), where ACH is the Coulomb factor | |
1323 | IMPLICIT REAL*8 (A-H,O-Z) | |
1324 | COMPLEX*16 FAS,EIDC,ZZ1 | |
1325 | COMMON/FSI_ACH/HPR,AC,ACH,ACHR,ISPIN,MSPIN | |
1326 | COMMON/FSI_ETA/ETA | |
1327 | COMMON/FSI_COULPH/EIDC | |
1328 | D1=DLOG(RKS)*ETA | |
1329 | D2=ETA*ETA/RKS | |
1330 | ZZ1=DCMPLX(DCOS(D1),DSIN(D1))/EIDC | |
1331 | FAS=DCMPLX(1.D0,-D2)*ZZ1 | |
1332 | FAS=FAS-DCMPLX(DCOS(RKS),DSIN(RKS))*ETA/RKS/ZZ1 | |
1333 | RETURN | |
1334 | END | |
1335 | FUNCTION FF0(RHO,H) | |
1336 | C-- FF0=F*ACHR | |
1337 | C-- F is the confluent hypergeometric function | |
1338 | C-- (Eq. (15) of G-K-L-L), F= 1 at r* << AC | |
1339 | C-- ACHR=sqrt(ACH), where ACH is the Coulomb factor | |
1340 | IMPLICIT REAL*8 (A-H,O-Z) | |
1341 | COMMON/FSI_ACH/HPR,AC,ACH,ACHR,ISPIN,MSPIN | |
1342 | COMMON/FSI_NS/LL,NS,ICH,ISI,IQS,I3C,I3S | |
1343 | COMMON/FSI_ETA/ETA | |
1344 | COMPLEX*16 ALF,ALF1,Z,S,A,FF0,FAS | |
1345 | DATA ERR/1.D-5/ | |
1346 | S=DCMPLX(1.D0,0.D0) | |
1347 | FF0=S | |
1348 | RHOP=RHO+H | |
1349 | CC GOTO 5 ! rejects the approx. calcul. of hyperg. f-ion F | |
1350 | IF(RHOP.LT.20.D0)GOTO5 | |
1351 | FF0=FAS(RHOP) ! approx. calc. | |
1352 | RETURN | |
1353 | 5 ALF=DCMPLX(.0D0,-ETA) | |
1354 | ALF1=ALF-1 | |
1355 | Z=DCMPLX(.0D0,RHOP) | |
1356 | J=0 | |
1357 | 3 J=J+1 | |
1358 | A=(ALF1+J)/(J*J) | |
1359 | S=S*A*Z | |
1360 | FF0=FF0+S | |
1361 | ZR=DABS(DREAL(S)) | |
1362 | ZI=DABS(DIMAG(S)) | |
1363 | IF((ZR+ZI).GT.ERR)GOTO3 | |
1364 | FF0=FF0*ACHR | |
1365 | RETURN | |
1366 | END | |
1367 | FUNCTION HC(XA) | |
1368 | C---HC = h-function of Landau-Lifshitz: h(x)=Re[psi(1-i/x)]+ln(x) | |
1369 | C-- psi(x) is the digamma function (the logarithmic derivative of | |
1370 | C-- the gamma function) | |
1371 | IMPLICIT REAL*8 (A-H,O-Z) | |
1372 | DIMENSION BN(15) | |
1373 | DATA BN/.8333333333D-1,.8333333333D-2,.396825396825D-2, | |
1374 | 1 .4166666667D-2,.7575757576D-2,.2109279609D-1, | |
1375 | 2 .8333333333D-1,.4432598039D0 ,.305395433D1, | |
1376 | 3 .2645621212D2, .2814601449D3, .3607510546D4, | |
1377 | 4 .5482758333D5, .9749368235D6, .200526958D8/ | |
1378 | X=DABS(XA) | |
1379 | IF(X.LT..33D0) GOTO 1 | |
1380 | CC IF(X.GE.3.5D0) GO TO 2 | |
1381 | S=.0D0 | |
1382 | N=0 | |
1383 | 3 N=N+1 | |
1384 | DS=1.D0/N/((N*X)**2+1) | |
1385 | S=S+DS | |
1386 | IF(DS.GT.0.1D-12) GOTO 3 | |
1387 | C---Provides 7 digit accuracy | |
1388 | HC=S-.5772156649D0+DLOG(X) | |
1389 | RETURN | |
1390 | CC 2 HC=1.2D0/X**2+DLOG(X)-.5772156649 D0 | |
1391 | CC RETURN | |
1392 | 1 X2=X*X | |
1393 | XP=X2 | |
1394 | HC=0.D0 | |
1395 | IMA=9 | |
1396 | IF(X.LT.0.1D0)IMA=3 | |
1397 | DO 4 I=1,IMA | |
1398 | HC=HC+XP*BN(I) | |
1399 | 4 XP=X2*XP | |
1400 | RETURN | |
1401 | END | |
1402 | FUNCTION ACP(X) | |
1403 | C--- ACP = COULOMB PENETRATION FACTOR | |
1404 | IMPLICIT REAL*8 (A-H,O-Z) | |
1405 | IF(X.LT.0.05D0.AND.X.GE.0.D0) GO TO 1 | |
1406 | Y=6.2831853D0/X | |
1407 | ACP=Y/(EXF(Y)-1) | |
1408 | RETURN | |
1409 | 1 ACP=1.D-6 | |
1410 | RETURN | |
1411 | END | |
1412 | SUBROUTINE GST(X,H) | |
1413 | C---CALC. THE CONFL. HYPERGEOM. F-N = CHH+i*SH | |
1414 | C-- AND THE COULOMB F-S B, P (CALLS SEQ OR SEQA). | |
1415 | IMPLICIT REAL*8 (A-H,O-Z) | |
1416 | COMMON/FSI_ACH/HPR,AC,ACH,ACHR,ISPIN,MSPIN | |
1417 | COMMON/FSI_NS/LL,NS,ICH,ISI,IQS,I3C,I3S | |
1418 | COMMON/FSI_SHH/SH,CHH | |
1419 | COMMON/FSI_BP/B,P | |
1420 | 1 IF(ICH.EQ.1)GOTO 2 | |
1421 | 3 SH=DSIN(H) | |
1422 | CHH=DCOS(H) | |
1423 | B=1.D0 | |
1424 | IF(H.NE.0.D0)B=SH/H | |
1425 | P=CHH | |
1426 | RETURN | |
1427 | 2 CONTINUE | |
1428 | IF(H.GT.15.D0)GOTO4 ! comment out if you want to reject | |
1429 | ! the approximate calculation of hyperg. f-ion G | |
1430 | CALL SEQ(X,H) ! exact calculation | |
1431 | SH=H*B | |
1432 | CHH=P+B*X*(DLOG(DABS(X))+HPR) | |
1433 | RETURN | |
1434 | 4 CALL SEQA(X,H) | |
1435 | RETURN | |
1436 | END | |
1437 | FUNCTION FF1(RHO,H) | |
1438 | C---FF1=FF0; used for particle-nucleus system | |
1439 | C-- FF0=F12*ACHR | |
1440 | C-- F12 is the confluent hypergeometric function | |
1441 | C-- (Eq. (15) of G-K-L-L), F12= 1 at r* << AC | |
1442 | C-- ACHR=sqrt(ACH), where ACH is the Coulomb factor | |
1443 | IMPLICIT REAL*8 (A-H,O-Z) | |
1444 | COMMON/FSI_ACH/HPR,AC,ACH,ACHR,ISPIN,MSPIN | |
1445 | COMMON/FSI_NS/LL,NS,ICH,ISI,IQS,I3C,I3S | |
1446 | COMMON/FSI_ETA/ETA | |
1447 | COMMON/FSI_COULPH/EIDC | |
1448 | COMMON/FSI_ICH1/ICH1 | |
1449 | COMPLEX*16 FF0,FF1 | |
1450 | COMPLEX*16 EIDC | |
1451 | COMPLEX*8 Z8,CGAMMA | |
1452 | FF1=DCMPLX(1.D0,0.D0) | |
1453 | IF(ICH1.EQ.0)GOTO 2 | |
1454 | IF(RHO.LT.15.D0.AND.RHO+H.LT.20.D0)GOTO 2 | |
1455 | C---Calc. EIDC=exp(i*Coul.Ph.); | |
1456 | C-- used in calc. of hypergeom. f-s in SEQA, FAS at k*R > 15, 20 | |
1457 | Z8=CMPLX(1.,SNGL(ETA)) | |
1458 | Z8=CGAMMA(Z8) | |
1459 | EIDC=Z8/CABS(Z8) | |
1460 | 2 FF1=FF0(RHO,H) | |
1461 | RETURN | |
1462 | END | |
1463 | ||
1464 | FUNCTION G(AK) | |
1465 | C---Used to calculate SW scattering amplitude for alpa-alpha system | |
1466 | C-- and for sear.f (square well potential search) | |
1467 | C---NOTE THAT SCATT. AMPL.= 1/CMPLX(G(AK),-AK*ACH) | |
1468 | IMPLICIT REAL*8 (A-H,O-Z) | |
1469 | COMMON/FSI_SW/RB(10),EB(10),BK(10),CDK(10),SDK(10), | |
1470 | 1 SBKRB(10),SDKK(10) | |
1471 | COMMON/FSI_NS/LL,NS,ICH,ISI,IQS,I3C,I3S | |
1472 | COMMON/FSI_ACH/HPR,AC,ACH,ACHR,JJ,MSPIN | |
1473 | COMMON/FSI_BP/B,P/FSI_DERIV/BPR,PPR/FSI_SHH/SH,CHH | |
1474 | COMMON/FSI_DAK/DAK,HAC,IFUN | |
1475 | HAC=.0D0 | |
1476 | ACH=1.D0 | |
1477 | IF(ICH.EQ.0)GOTO 1 | |
1478 | XH=AC*AK | |
1479 | HCP=HC(XH) | |
1480 | HPR=HCP+.1544313298D0 | |
1481 | ACH=ACP(XH) | |
1482 | HAC=2*HCP/AC | |
1483 | 1 AKS=AK**2 | |
1484 | BK(JJ)=DSQRT(AKS+EB(JJ)**2) ! kappa=kp | |
1485 | X=2*RB(JJ)/AC | |
1486 | H=BK(JJ)*RB(JJ) ! kp*d | |
1487 | CALL GST(X,H) | |
1488 | BRHO=B ! B(kp,d) | |
1489 | SBKRB(JJ)=SH ! kp*d*B(kp,d) | |
1490 | CALL DERIW(X,H) | |
1491 | BRHOP=BPR ! B'(kp,d)= dB(kp,r)/dln(r) at r=d | |
1492 | H=AK*RB(JJ) | |
1493 | CALL GST(X,H) | |
1494 | CDK(JJ)=CHH ! ReG(k,d) | |
1495 | BRHOS=B ! B(k,d) | |
1496 | PRHOS=P ! P(k,d) | |
1497 | SDK(JJ)=SH | |
1498 | IF(ICH.EQ.0)GOTO 2 | |
1499 | SDK(JJ)=ACH*SH ! ImG(k,d) | |
1500 | IF(AK.EQ.0.D0.AND.AC.LT.0.D0)SDK(JJ)=3.14159*X*B | |
1501 | 2 SDKK(JJ)=RB(JJ) | |
1502 | IF(AK.NE.0.D0)SDKK(JJ)=SH/AK ! d*B(k,d) | |
1503 | CALL DERIW(X,H) ! PPR=P'(k,d)= dP(k,r)/dln(r) at r=d | |
1504 | ZZ=PPR-PRHOS | |
1505 | IF(ICH.EQ.1)ZZ=ZZ+X*(BRHOS+BPR*(DLOG(DABS(X))+HPR)) | |
1506 | C ZZ= P'(k,d)-P(k,d)+x*{B(k,d)+B'(k,d)*[ln!x!+2*C-1+h(k*ac)]} | |
1507 | GG=(BRHOP*CDK(JJ)-BRHO*ZZ)/RB(JJ) | |
1508 | C GG= [B'(kp,d)*ReG(k,d)-B(kp,d)*ZZ]/d | |
1509 | G=GG/(BRHO*BPR-BRHOP*BRHOS) | |
1510 | C G= GG/[B(kp,d)*B'(k,d)-B'(kp,d)*B(k,d)] | |
1511 | RETURN | |
1512 | END | |
1513 | SUBROUTINE DERIW(X,H) | |
1514 | C---CALLED BY F-N G(AK) | |
1515 | IMPLICIT REAL*8 (A-H,O-Z) | |
1516 | COMMON/FSI_NS/LL,NS,ICH,ISI,IQS,I3C,I3S | |
1517 | COMMON/FSI_BP/B,P/FSI_DERIV/BPR,PPR | |
1518 | HH=.1D-3 | |
1519 | CALL GST(X,H-HH) | |
1520 | Q1=P | |
1521 | B1=B | |
1522 | CALL GST(X,H+HH) | |
1523 | HHH=HH+HH | |
1524 | BPR=H*(B-B1)/HHH | |
1525 | PPR=H*(P-Q1)/HHH | |
1526 | IF(ICH.EQ.0)RETURN | |
1527 | CALL GST(X-HH,H) | |
1528 | Q1=P | |
1529 | B1=B | |
1530 | CALL GST(X+HH,H) | |
1531 | BPR=BPR+X*(B-B1)/HHH | |
1532 | PPR=PPR+X*(P-Q1)/HHH | |
1533 | RETURN | |
1534 | END | |
1535 | C================================================================ | |
1536 | ||
1537 | SUBROUTINE READ_FILE(KEY,CH8,INT4,REAL8,IERR,NUNIT) | |
1538 | C ========== | |
1539 | C | |
1540 | C Routine to read one parameter of the program in the file | |
1541 | C DATA NUNIT defined in FSI3B EXEC | |
1542 | C NUNIT=11 for IBM in Nantes, 4 for SUN in Prague | |
1543 | C | |
1544 | C INPUT : KEY (CHARACTER*10) : | |
1545 | C OUTPUT : case of KEY : CH8 : (CHARACTER*8) | |
1546 | C INT4 : (INTEGER*4) | |
1547 | C REAL8 : (REAL*8) | |
1548 | C (only one of them) | |
1549 | C IERR (INTEGER) : 0 : no error | |
1550 | C 1 : key not found | |
1551 | ||
1552 | CHARACTER*10 KEY,TEST | |
1553 | CHARACTER*4 TYPE | |
1554 | CHARACTER*8 CH8 | |
1555 | INTEGER*4 INT4 | |
1556 | REAL*8 REAL8 | |
1557 | INTEGER*4 IERR | |
1558 | ||
1559 | IERR=0 | |
1560 | REWIND(NUNIT) | |
1561 | 1 READ(NUNIT,FMT='(A10,2X,A4)')TEST,TYPE | |
1562 | IF (TEST.EQ.KEY) THEN | |
1563 | BACKSPACE(NUNIT) | |
1564 | IF (TYPE.EQ.'CHAR') READ(NUNIT,FMT='(18X,A8,54X)')CH8 | |
1565 | IF (TYPE.EQ.'INT4') READ(NUNIT,FMT='(18X,I8,54X)')INT4 | |
1566 | IF (TYPE.EQ.'REA8') READ(NUNIT,FMT='(18X,F10.5,52X)')REAL8 | |
1567 | ELSE | |
1568 | IF (TEST.NE.'* E.O.F. *') THEN | |
1569 | GOTO 1 | |
1570 | ELSE | |
1571 | IERR=1 | |
1572 | ENDIF | |
1573 | ENDIF | |
1574 | c IF(IERR.EQ.1)STOP | |
1575 | RETURN | |
1576 | END | |
1577 |