1 | subroutine outlaldp |
---|
2 | c from SLAC modified LAL |
---|
3 | c type 2 plots x-xprime, y-yprime, x-y,x and y profiles |
---|
4 | c and prints normalized rms, 100% and 90% emittance for |
---|
5 | c x-xp and y-yp |
---|
6 | c xmax and ymax in cm |
---|
7 | c xpmax and ypmax in mrads. |
---|
8 | c------------------------------------------------------------------------- |
---|
9 | c |
---|
10 | include 'param_sz.h' |
---|
11 | include 'constcom.h' |
---|
12 | include 'ncordscom.h' |
---|
13 | include 'ucom.h' |
---|
14 | c |
---|
15 | double precision hor(imaa),vrt(imaa),x(imaa) |
---|
16 | double precision gam |
---|
17 | double precision xrms,yrms,x90,x100,y90,y100 |
---|
18 | double precision a,b |
---|
19 | common/cout7/corout7(6,imaa),spbgs,ne,nbufl,iout7 |
---|
20 | common/ct/var,rp,dzmin,dzmax,wrm,dwbm,xrmsbg,yrmsbg, |
---|
21 | 1xsmax,xpsmax,ysmax,ypsmax,istat,nebm |
---|
22 | c-------------------------------------------------------------------------- |
---|
23 | c* |
---|
24 | itest=0 |
---|
25 | if(iout7.eq.1) then |
---|
26 | write(nemit,*) ' ' |
---|
27 | if(itest.eq.1) then |
---|
28 | write(nemit,*)' units betagamma mm-mrad normalized emittance' |
---|
29 | write(nemit,*) ' ' |
---|
30 | itest=1 |
---|
31 | else |
---|
32 | write(nemit,*) ' units mm-mrad unormalized emittance' |
---|
33 | write(nemit,*)' ' |
---|
34 | endif |
---|
35 | write(nemit,370) |
---|
36 | write(nemit,330) |
---|
37 | else |
---|
38 | endif |
---|
39 | nbufe=nbufl |
---|
40 | c plot xprime vs x |
---|
41 | n=0 |
---|
42 | do 10 n10=1,nbufe |
---|
43 | gam=corout7(6,n10)/erest |
---|
44 | x(n10)=dsqrt(gam*(2.+gam)) |
---|
45 | if(x(n10).eq.0.) go to 10 |
---|
46 | n=n+1 |
---|
47 | hor(n)=corout7(1,n10) |
---|
48 | vrt(n)=corout7(2,n10)*1000. |
---|
49 | 10 continue |
---|
50 | if (n.lt.50) go to 30 |
---|
51 | c calculate rms,maxe,90%e and save all three. |
---|
52 | do 15 np=1,n |
---|
53 | vrt(np)=x(np)*vrt(np) |
---|
54 | 15 continue |
---|
55 | nt90=1 |
---|
56 | call emit90dp(nt90,n,hor,vrt,a,b,x90,x100,xrms) |
---|
57 | aax=a |
---|
58 | bbx=b |
---|
59 | c plot yprime vs y |
---|
60 | 30 continue |
---|
61 | do 40 np=1,n |
---|
62 | hor(np)=corout7(3,np) |
---|
63 | vrt(np)=corout7(4,np)*1000. |
---|
64 | 40 continue |
---|
65 | if (n.lt.50) go to 60 |
---|
66 | do 45 np=1,n |
---|
67 | vrt(np)=x(np)*vrt(np) |
---|
68 | 45 continue |
---|
69 | nt90=2 |
---|
70 | call emit90dp(nt90,n,hor,vrt,a,b,y90,y100,yrms) |
---|
71 | aay=a |
---|
72 | bby=b |
---|
73 | xrms=xrms*10. |
---|
74 | yrms=yrms*10. |
---|
75 | x90=x90*10. |
---|
76 | x100=x100*10. |
---|
77 | y90=y90*10. |
---|
78 | y100=y100*10. |
---|
79 | if(itest.eq.1) then |
---|
80 | write(nemit, 350) ne,npoints,n,xrms,x90,x100,yrms,y90,y100,spbgs |
---|
81 | else |
---|
82 | endif |
---|
83 | if(spbgs.eq.0) then |
---|
84 | write(nemit,*) 'Value of bgs in outlal',spbgs |
---|
85 | return |
---|
86 | else |
---|
87 | endif |
---|
88 | xrms=xrms/spbgs |
---|
89 | yrms=yrms/spbgs |
---|
90 | x90=x90/spbgs |
---|
91 | x100=x100/spbgs |
---|
92 | y90=y90/spbgs |
---|
93 | y100=y100/spbgs |
---|
94 | xrmsbg=4.*spbgs*xrms |
---|
95 | yrmsbg=4.*spbgs*yrms |
---|
96 | write(nemit, 350)ne,npoints,n,xrms,x90,x100,yrms,y90,y100,spbgs |
---|
97 | if(istat.eq.1.and.nebm.ne.0) then |
---|
98 | write(nstat)var,nebm,n,rp,dzmin,dzmax,wrm,dwbm,xrmsbg,yrmsbg, |
---|
99 | 1 xsmax,xpsmax,ysmax,ypsmax |
---|
100 | endif |
---|
101 | if(itest.eq.1) then |
---|
102 | write(nemit,*) |
---|
103 | *' Parametres des ellipses alpha sans unite beta cm/rad' |
---|
104 | write(nemit,*) ' alpha_x beta_x ',aax,bbx |
---|
105 | write(nemit,*) ' alpha_y beta_y ',aay,bby |
---|
106 | endif |
---|
107 | go to 99 |
---|
108 | 60 continue |
---|
109 | write(nemit,*) ' ' |
---|
110 | write(nemit,9013) n,ne |
---|
111 | 9013 format(' Emittance not calculated np =',i3,' < 50 in element',i4) |
---|
112 | return |
---|
113 | 99 continue |
---|
114 | return |
---|
115 | c |
---|
116 | 370 format (/' Emittances are calculated in double precision'/) |
---|
117 | c change format 330 - 04/94 |
---|
118 | 330 format (' nel part part rms,n emax,n emax,n', |
---|
119 | 1 ' rms,n emax,n emax,n bg'/ |
---|
120 | 2 ' no. in out x x,90% x,100%', |
---|
121 | 3 ' y y,90% y,100%') |
---|
122 | 350 format (i4,i6,i6,6f9.3,f7.4) |
---|
123 | 360 format (f9.2,i4,3f8.2,2f8.3,2f9.2) |
---|
124 | end |
---|
125 | c++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++* |
---|