source: PSPA/parmelaPSPA/trunk/output.f @ 315

Last change on this file since 315 was 12, checked in by lemeur, 12 years ago

parmela pspa initial

File size: 4.3 KB
Line 
1      subroutine output(ne,nbuffer,outcor,nsize,mt)
2c------------------------------------------------------------------------
3      save
4c
5      include 'param_sz.h'
6      include 'constcom.h'
7      include 'coordcom.h'
8      include 'ncordscom.h'
9      include 'outcom.h'
10      include 'syscom.h'
11      include 'tstepcom.h'
12      include 'ucom.h'
13c
14      common/back/bmax,byz0,byzs,pzowmin,pzowmax,iback
15      common/cout7/corout7(6,imaa),bgs,nelal,nbufl,iout7
16      common/ct/var,rp,dzmin,dzmax,wrm,dwbm,xrmsbg,yrmsbg,
17     1xsmax,xpsmax,ysmax,ypsmax,istat,nebm
18      dimension outcor(8,nsize)
19c--------------------------------------------------------------------------
20c*
21      data iflagb/0/
22      if(ne.gt.0) then
23          print *,' element of ref. part. is ',ne
24      endif
25      if (iflagb.ne.0)go to 9
26      iflagb=1
27      write(nnout,*)' '
28      write(nnout, 5)
29    5 format('  ne   np   ref phase      zr    zr-zmin zmax-zr'
30     * , '   Wr     Wmin    Wmax')
31      write(nnout,6)
32    6 format('                 deg       cm      deg     deg  '
33     * , '   MeV     MeV     MeV')
34    9 continue
35c     for snap-shot
36      if(cord(7,1).le.5.) then
37           do 3 i=1,ngood
38           write(nsnap) wt,(cord(j,i),j=1,6,2)
39    3      continue
40      endif
41      if (ne.ne.0) go to 20
42      rp=wt
43      prm=amod(wt,360.)
44      np=ngood
45      zr=cord(5,1)
46      zmin=zr
47      zmax=zr
48      bgmax=cord(6,1)
49      bgmin=bgmax
50      xsmin=cord(1,1)
51      xsmax=xsmin
52      xpsmin=cord(2,1)
53      xpsmax=xpsmin
54      ysmin=cord(3,1)
55      ysmax=ysmin
56      ypsmin=cord(4,1)
57      ypsmax=ypsmin
58      do 15 n=1,ngood
59      if(cord(1,n).lt.xsmin)xsmin=cord(1,n)
60      if(cord(1,n).gt.xsmax)xsmax=cord(1,n)
61      if(cord(2,n).lt.xpsmin)xpsmin=cord(2,n)
62      if(cord(2,n).gt.xpsmax)xpsmax=cord(2,n)
63      if(cord(3,n).lt.ysmin)ysmin=cord(3,n)
64      if(cord(3,n).gt.ysmax)ysmax=cord(3,n)
65      if(cord(4,n).lt.ypsmin)ypsmin=cord(4,n)
66      if(cord(5,n).lt.ypsmax)ypsmax=cord(4,n)
67      if(cord(5,n).lt.zmin)zmin=cord(5,n)
68      if(cord(5,n).gt.zmax)zmax=cord(5,n)
69      if(cord(6,n).lt.bgmin)bgmin=cord(6,n)
70      if(cord(6,n).gt.bgmax)bgmax=cord(6,n)
71   15 continue
72      wrm=(sqrt(1.+cord(6,1)**2)-1.)*erest
73      wmin=(sqrt(1.+bgmin**2)-1.)*erest
74      wmax=(sqrt(1.+bgmax**2)-1.)*erest
75      dzmin=zr-zmin
76      dzmax=zmax-zr
77      go to 30
78   20 continue
79      np=nbuffer
80      rp=pr(ne)
81      prm=amod(rp,360.)
82      zr=zloc(ne)
83      zmin=rp
84      zmax=rp
85      wrm=wr(ne)
86      wmin=wrm
87      wmax=wrm
88      xsmin=outcor(1,1)
89      xsmax=xsmin
90      xpsmin=outcor(2,1)
91      xpsmax=xpsmin
92      ysmin=outcor(3,1)
93      ysmax=ysmin
94      ypsmin=outcor(4,1)
95      ypsmax=ypsmin
96      if(nbuffer.gt.nsize)then
97      write(ndiag,*)'nbuf greater than nsize in output',nbuffer,nsize
98      nbuffer=nsize
99      endif
100      do 25 n=1,nbuffer
101      if(outcor(1,n).lt.xsmin)xsmin=outcor(1,n)
102      if(outcor(1,n).gt.xsmax)xsmax=outcor(1,n)
103      if(outcor(2,n).lt.xpsmin)xpsmin=outcor(2,n)
104      if(outcor(2,n).gt.xpsmax)xpsmax=outcor(2,n)
105      if(outcor(3,n).lt.ysmin)ysmin=outcor(2,n)
106      if(outcor(3,n).gt.ysmax)ysmax=outcor(3,n)
107      if(outcor(4,n).lt.ypsmin)ypsmin=outcor(4,n)
108      if(outcor(5,n).lt.zmin)zmin=outcor(5,n)
109      if(outcor(5,n).gt.zmax)zmax=outcor(5,n)
110      if(outcor(6,n).lt.wmin)wmin=outcor(6,n)
111      if(outcor(6,n).gt.wmax)wmax=outcor(6,n)
112   25 continue
113      dzmin=rp-zmin
114      dzmax=zmax-rp
115   30 continue
116      dwbm=wmax-wmin
117      nebm=ne
118      write(nnout, 35)ne,np,rp,prm,zr,dzmin,dzmax,wrm,wmin,wmax
119   35 format(i4,i5,f8.1,'(',f4.0,')',3f8.1,3f8.3)
120      do 5994 ii=1,nbuffer
121      do 5995 iii=1,6
122      if(ne.eq.0) then
123      corout7(iii,ii)=cord(iii,ii)
124      else
125      corout7(iii,ii)=outcor(iii,ii)
126      endif
127 5995 continue
128 5994 continue
129      bgs=sqrt(wrm/erest*(2.+wrm/erest))
130      nbufl=nbuffer
131      nelal=ne
132      if(ne.gt.0) then
133      iout7=iout7+1
134      call outlaldp ! output
135      iout7=iout7+1
136      else
137      endif
138      nsub=optcon(1)
139      if(nsub.eq.1)call out1(ne,nbuffer,outcor,nsize)
140      if(nsub.eq.2)call out2(ne,nbuffer,outcor,nsize)
141      if(nsub.eq.3)call out3(ne,nbuffer,outcor,nsize)
142      if(nsub.eq.4)call out4(ne,nbuffer,outcor,nsize)
143      if(nsub.eq.5)call out5(ne,nbuffer,outcor,nsize)
144      if(nsub.eq.6)call out6dp(1,1)
145      return
146      end
147c++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*
Note: See TracBrowser for help on using the repository browser.