1 SUBROUTINE GAMMA0(ng,mg,eg,glthr,ff)
4 C K+ 12.90 KOLOSOV V.N.
10 include 'comwlgen.for'
14 dimension e3na3(3,3),ijdd(2)
23 IF(EM.LT.GLTHR) GOTO 1
24 c IF(EM.LT.GmTHR(m)) GOTO 1
25 if(iflgmthr.eq.0) then
27 c write (*,*) ' Warning !! no glass thresholds now !'
31 call findpik(m,iokpik,e3na3,ff)
35 if(iokpik.eq.0) goto 1
39 if(e3na3(1,2).gt.e3na3(3,2)) ijdd(1)=-1
40 if(e3na3(2,1).gt.e3na3(2,3)) ijdd(2)=-1
54 call adgmnew(m,ee,xx,yy,see,sxx,syy,ijdd)
64 COMMON /SVGAMMA/KGsv,MWsv(ngp),IDsv(ngp),JDsv(ngp),svE(ngp),
66 , svXW(ngp),svYW(ngp),svES(nsps,ngp),svET(nsps,ngp),
68 , IGDEVsv(ngp),svZGDEV(ngp),svsigexy(3,ngp),
69 , svEmimx(2,nsps,ngp),
70 , kgfixsv,svigfix(ngp),svcgfix(3,ngp),svsgfix(3,ngp),
72 , svwsw(nsps,ngp),svh1w(ngp),svh0w(ngp)
86 sves(kn,kgsv+k)=es(kn,k)
87 svet(kn,kgsv+k)=et(kn,k)
88 svemimx(1,kn,kgsv+k)=emimx(1,kn,k)
89 svemimx(2,kn,kgsv+k)=emimx(2,kn,k)
90 svwsw(kn,kgsv+k)=wsw(kn,k)
92 issdsv(kgsv+k)=issd(k)
93 igdevsv(kgsv+k)=igdev(k)
94 svzgdev(kgsv+k)=zgdev(k)
95 call ucopy(sigexy(1,k),svsigexy(1,kgsv+k),3)
118 emimx(1,kn,k)=svemimx(1,kn,k)
119 emimx(2,kn,k)=svemimx(2,kn,k)
120 wsw(kn,k)=svwsw(kn,k)
125 call ucopy(sigexy(1,k),svsigexy(1,k),3)
129 SUBROUTINE findpik(m,iokpik,e3na3,ffls)
132 include 'comwlgen.for'
133 include 'comalwl.for'
144 c ALL arround less then em
147 c if(em.lt.wl(ms)) goto 1
155 IF(EM.LE.WL(ILS)) GOTO 1
158 IF(EM.LT.WL(IRS)) GOTO 1
161 IF(EM.LT.WL(IUS)) GOTO 1
164 IF(EM.LE.WL(IDS)) GOTO 1
168 IF(EM.LE.WL(ILS)/ff) GOTO 1
171 IF(EM.LT.WL(IRUS)/ff) GOTO 1
174 IF(EM.LT.WL(ILDS)/ff) GOTO 1
177 IF(EM.LE.WL(IRDS)/ff) GOTO 1
181 c new gamma in standart case
184 NLS=IBITS(NKS(M),0,2)
185 NRS=IBITS(NKS(M),2,2)
186 NUS=IBITS(NKS(M),4,2)
187 NDS=IBITS(NKS(M),6,2)
188 NLUS=IBITS(NKS(M),8,1)
189 NRUS=IBITS(NKS(M),9,1)
190 NLDS=IBITS(NKS(M),10,1)
191 NRDS=IBITS(NKS(M),11,1)
197 IF(EM.LE.WL(ILS)) GOTO 1
204 IF(EM.LT.WL(IRS)) GOTO 1
211 IF(EM.LE.WL(IUS)) GOTO 1
218 IF(EM.LE.WL(IDS)) GOTO 1
226 IF(EM.LE.WL(ILUS)/ff) GOTO 1
233 IF(EM.LT.WL(IRUS)/ff) GOTO 1
240 IF(EM.LE.WL(ILDS)/ff) GOTO 1
247 IF(EM.LE.WL(IRDS)/ff) GOTO 1
270 subroutine adgmnew(m,ee,xx,yy,see,sxx,syy,ijdd)
272 include 'comwlgen.for'
273 include 'comalwl.for'
282 c set wall marker to gamma
285 if(m.gt.madwl(iw).and.m.le.madwl(iw+1)) then
291 c gamma coord och. grubo
295 zgdev(kg)=zmidlshower(ee,m)
308 subroutine filraxay(k)
309 include 'comalwl.for'
311 include 'comwlgen.for'
315 c write (*,*) ' FILRAXAY WARNING dz=4600. eto SMESHNO !!! '
320 c dz=xyzwall(3,iw)-xyzvtx(3)
328 raxay(4,k)=-x(1,m)/dz
329 raxay(5,k)=-x(2,m)/dz
330 c raxay(4,k)=xw(k)/dz
331 c raxay(5,k)=yw(k)/dz
337 include 'comalwl.for'
340 common /comdevpar/sigmaph,sigmapd,sigphsq,sigpdsq
342 c write (*,*) ' filwt0 '
348 write (*,*) ' filwt0 OK !!! '
351 write (*,*) ' filwt0 ne nado !!! '
359 include 'comalwl.for'
362 common /comdevpar/sigmaph,sigmapd,sigphsq,sigpdsq
366 c write (*,*) ' filwt '
382 WLT(MS)=WLT(MS)+ET(N,K)
383 c swlt(ms)=swlt(ms)+(emimx(2,n,k)-emimx(1,n,k))**2/4.
384 swlt(ms)=swlt(ms)+dispeces(n,k)
392 include 'comalwl.for'
415 include 'comalwl.for'
425 ES(N,K)=WL(MN)*ET(N,K)/WLT(MN)
433 subroutine simplfite0
434 include 'comalwl.for'
444 sum1=sum1+es(n,k)*en/disp
448 c write (*,*) ' k, e_old, e_new ',k,e(k),enew
456 C K+ 12.90 KOLOSOV V.N.
458 C E,X,Y GAMMA CALCULATION
460 include 'comalwl.for'
462 COMMON /COORF/CFUN(200)
463 DIMENSION EEE(9),NNN(9),KEY(3,3)
477 NNN(2)=IBITS(NKS(M),0,2)
478 NNN(3)=IBITS(NKS(M),2,2)
479 NNN(4)=IBITS(NKS(M),4,2)
480 NNN(5)=IBITS(NKS(M),6,2)
481 NNN(6)=IBITS(NKS(M),8,1)
482 NNN(7)=IBITS(NKS(M),9,1)
483 NNN(8)=IBITS(NKS(M),10,1)
484 NNN(9)=IBITS(NKS(M),11,1)
489 EEE(I)=EEE(I)+ES(L,N)
531 if(el.eq.0.and.ed.eq.0) then
532 write (*,*) ' ECGAM giagnostic EG=0 '
533 write(*,*) ' KG,ng,id,jd ',kg,n,id(n),jd(n)
534 write(*,*) ' egam',(es(i,n),i=1,9)
545 c write (*,*) ' ax,ay ',ax,ay
546 xx=coornew(el,e4(n)-el,ax,m)
547 yy=coornew(ed,e4(n)-ed,ay,m)
549 c write (*,*) ' xx,yy ',xx,yy
550 c put cell center if too far
551 IF(XX.LT.-DHx) XX=-DHx
552 IF(XX.GT. DHx) XX= DHx
553 IF(YY.LT.-DHy) YY=-DHy
554 IF(YY.GT. DHy) YY= DHy
563 corr=1.076+0.163*xxc-0.00955*xxc**2-0.0013215*xxc**3
566 corr=1.076+0.163*xxc-0.00955*xxc**2-0.0013215*xxc**3
574 corr=1.076+0.163*xxc-0.00955*xxc**2-0.0013215*xxc**3
577 corr=1.076+0.163*xxc-0.00955*xxc**2-0.0013215*xxc**3
593 subroutine betterthanfit
594 include 'comalwl.for'
597 include 'comwlgen.for'
598 c ADD energy out 3*3 cells for crystalls only
603 rm=sqrt(dxm**2+dym**2)
604 e(k)=e(k)*(1.+0.01*rm/15.)
606 e(k)=ee*(1.+0.03*exp(-ee))
612 include 'comalwl.for'
614 common /comdevpar/sigmaph,sigmapd,sigphsq,sigpdsq
630 et(n,k)=e(k)*ampcelnew(e(k),raxay(1,k),x(1,ms),d(1,ms),ms)
632 if(et(n,k).le.0) then
634 write (*,*) ' et=0!! kg,k,m,n,e(k) ',kg,k,m,n,e(k)
642 = (sigwlgam0(et(n,k),e(k)))**2+sigmphsq*et(n,k)
644 sigmaes0(n,k)=sqrt(dispeces(n,k))
653 subroutine killgm(kkg)
657 include 'comalwl.for'
678 emimx(1,kn,k)=emimx(1,kn,k+1)
679 emimx(2,kn,k)=emimx(2,kn,k+1)
680 wsw(kn,k)=wsw(kn,k+1)
685 call ucopy(sigexy(1,k+1),sigexy(1,k),3)
686 call ucopy(raxay(1,k+1),raxay(1,k),5)
692 subroutine concatgm(k1,k2)
696 include 'comalwl.for'
698 if(k1.gt.kg.or.k1.le.0) return
699 if(k2.gt.kg.or.k2.le.0) return
701 xnew=(xw(k1)*e(k1)+xw(k2)*e(k2))/enew
702 ynew=(yw(k1)*e(k1)+yw(k2)*e(k2))/enew
710 if(xnew.lt.x(1,mw(k2))) id(k2)=-1
711 if(ynew.lt.x(2,mw(k2))) jd(k2)=-1