37       IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
 
   40       parameter(conv=.38935d0)
 
   41       parameter(pi=3.141592654d0,
 
   45       parameter(thousa = 1000.d0)
 
   48       COMMON /outlev/ioutpo,ioutpa,iouxev,ioucol
 
   51       COMMON /pomtyp/ipim,icon,isig,lmax,mmax,
nmax,difel,difnu
 
   52       common/pompar/alfa,alfap,
a,c,ak
 
   53       COMMON /sigma/sigsof,bs,zsof,sighar,bh,zhar,sigtrp,bt,ztrp,
 
   57       CHARACTER*8 projty,targty
 
   60       COMMON /user1/
title,projty,targty
 
   61       COMMON /user2/cmener,sdfrac,ptlar,istruf,isingd,idubld
 
   63       COMMON /strufu/istrum,istrut
 
   65       common/collis/
s,ijproj,ijtar,ptthr,ptthr2,iophrd,ijprlu,ijtalu
 
   66       COMMON /haqqap/ aqqal,aqqpd,nqqal,nqqpd
 
   70       dimension xsqsj(21),xxhhj4(21)
 
   75       DATA xsqsj/0.005,0.01,0.02,0.035,0.053,
 
   76      * 0.1,0.2,0.35,0.54,1.,2.,5.,
 
   77      *10.,20.,40.,100.,200.,400.,1000.,2000.,4000./
 
   80       DATA sqs/1.,2.,3.,4.,5.,10.,20.,30.,40.,100.,200.,500.,1000./
 
   89       go to(10,20,30,40,50,60,70,80,90,100),isig
 
   92       WRITE(6,*)
' This value of ISIG no longer available ISIG=',isig
 
   98       WRITE(6,*)
' This value of ISIG no longer available ISIG=',isig
 
  103       WRITE(6,*)
' This value of ISIG no longer available ISIG=',isig
 
  110       WRITE(6,*)
' This value of ISIG no longer available ISIG=',isig
 
  117       WRITE(6,*)
' This value of ISIG no longer available ISIG=',isig
 
  124       WRITE(6,*)
' This value of ISIG no longer available ISIG=',isig
 
  131       WRITE(6,*)
' This value of ISIG no longer available ISIG=',isig
 
  136       WRITE(6,*)
' This value of ISIG no longer available ISIG=',isig
 
  140       WRITE(6,*)
' This value of ISIG no longer available ISIG=',isig
 
  169       IF(abs(ptthr-three).LT.eps) 
THEN 
  170         WRITE(6,*)
' PTTHR=3. not available in dpmjet25' 
  171           WRITE(6,*) 
' WARNING: no model parameter set available' 
  172           WRITE(6,*) 
' for this combination of PTCUT and ISTRUF' 
  173           WRITE(6,*) 
' (initialization using default values)' 
  184       IF(abs(ptthr-two).LT.eps) 
THEN 
  185         WRITE(6,*)
' PTTHR=2. not available in dpmjet25' 
  186           WRITE(6,*) 
' WARNING: no model parameter set available' 
  187           WRITE(6,*) 
' for this combination of PTCUT and ISTRUF' 
  188           WRITE(6,*) 
' (initialization using default values)' 
  205         WRITE(6,*)
' ISTRUT=1 (PTTHR=2.1+0.15*(LOG10(ECM/50.))**3)',
 
  206      *  
'not available in dpmjet25' 
  207         ptthr=2.1+0.15*(log10(ecm/50.))**3
 
  209           WRITE(6,*) 
' WARNING: no model parameter set available' 
  210           WRITE(6,*) 
' for this combination of PTCUT and ISTRUF' 
  211           WRITE(6,*) 
' (initialization using default values)' 
  231         ptthr=2.5+0.12*(log10(ecm/50.))**3
 
  233         IF( istruf.EQ.9 ) 
THEN 
  234         WRITE(6,*)
' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
 
  235      *  
'and ISTRUF= ',istruf ,
' not available in dpmjet25' 
  237         ELSEIF( istruf.EQ.10 ) 
THEN 
  238         WRITE(6,*)
' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
 
  239      *  
'and ISTRUF= ',istruf ,
' not available in dpmjet25' 
  241         ELSEIF( istruf.EQ.11 ) 
THEN 
  242         WRITE(6,*)
' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
 
  243      *  
'and ISTRUF= ',istruf ,
' not available in dpmjet25' 
  245         ELSEIF( istruf.EQ.12 ) 
THEN 
  246         WRITE(6,*)
' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
 
  247      *  
'and ISTRUF= ',istruf ,
' not available in dpmjet25' 
  249         ELSEIF( istruf.EQ.13 ) 
THEN 
  250         WRITE(6,*)
' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
 
  251      *  
'and ISTRUF= ',istruf ,
' not available in dpmjet25' 
  253         ELSEIF( istruf.EQ.14 ) 
THEN 
  254         WRITE(6,*)
' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
 
  255      *  
'and ISTRUF= ',istruf ,
' not available in dpmjet25' 
  257         ELSEIF( istruf.EQ.15 ) 
THEN 
  258         WRITE(6,*)
' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
 
  259      *  
'and ISTRUF= ',istruf ,
' not available in dpmjet25' 
  262         ELSEIF( istruf.EQ.16 ) 
THEN 
  263         WRITE(6,*)
' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
 
  264      *  
'and ISTRUF= ',istruf ,
' not available in dpmjet25' 
  267         ELSEIF( istruf.EQ.17 ) 
THEN 
  268         WRITE(6,*)
' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
 
  269      *  
'and ISTRUF= ',istruf ,
' not available in dpmjet25' 
  271         ELSEIF( istruf.EQ.18 ) 
THEN 
  272         WRITE(6,*)
' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
 
  273      *  
'and ISTRUF= ',istruf ,
' not available in dpmjet25' 
  275         ELSEIF( istruf.EQ.19 ) 
THEN 
  276         WRITE(6,*)
' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
 
  277      *  
'and ISTRUF= ',istruf ,
' not available in dpmjet25' 
  279         ELSEIF( istruf.EQ.20 ) 
THEN 
  280         WRITE(6,*)
' ISTRUT=2 (PTTHR=2.5+0.12*(LOG10(ECM/50.))**3)',
 
  281      *  
'and ISTRUF= ',istruf ,
' not available in dpmjet25' 
  284     ELSEIF( istruf.EQ.21 ) 
THEN 
  293     ELSEIF( istruf.EQ.22 ) 
THEN 
  302     ELSEIF( istruf.EQ.23 ) 
THEN 
  312           WRITE(6,*) 
' WARNING: no model parameter set available' 
  313           WRITE(6,*) 
' for this combination of PTCUT and ISTRUF' 
  314           WRITE(6,*) 
' (initialization using default values)' 
  344       sigsof=
a*
s**(alfa-1.)
 
  350       IF(istruf.EQ.21)ak=2.
 
  353      *               sighar=ak*0.1*(
s-2450.)**0.35
 
  354       IF(ecm.GE.thousa*xsqsj(2)) 
THEN 
  357           IF(ecm.LT.xsqsj(iii)*thousa.AND.
 
  358      *       ecm.GE.thousa*xsqsj(i))
THEN 
  359             dsq=ecm-thousa*xsqsj(i)
 
  360             ddsq=thousa*(xsqsj(iii)-xsqsj(i))
 
  361             dhs=(xxhhj4(iii)-xxhhj4(i))
 
  362             sighar=ak*(xxhhj4(i)+dhs*dsq/ddsq)*0.5
 
  378       bsdca=bsdoca+2.*alsca*alns
 
  379       sigtrp=g3ca*gaca*
log(
s/10.)/(8.*3.14*bsdca)
 
  380       IF (sigtrp.LT.0.d0)sigtrp=0.01
 
  383       alo1sq=(
log(
s/400.))**2
 
  384       alo2sq=(
log(25./
s))**2
 
  385       alo3sq=(
log(5./20.))**2
 
  386       sigloo=
a*gaca**2*(alo1sq+alo2sq-2.*alo3sq)/(32.*3.14*bddca)
 
  393       WRITE(6,
'(2(/1X,A))') 
'SELECTED PARAMETERS:',
 
  394      &                     
'====================' 
  395       WRITE(6,
'(1X,A,E12.3)')   
'  ALFA   ',alfa
 
  396       WRITE(6,
'(1X,A,E12.3)')   
'  ALFAP  ',alfap
 
  397       WRITE(6,
'(1X,A,E12.3)')   
'  A      ',
a 
  398       WRITE(6,
'(1X,A,2E12.3)')  
'  BS,BSOO',bs,bsoo*conv
 
  399       WRITE(6,
'(1X,A,2E12.3)')  
'  BH,BHOO',bh,bhoo*conv
 
  400       WRITE(6,
'(1X,A,E12.3)')   
'  GACA   ',gaca
 
  401       WRITE(6,
'(1X,A,E12.3,/)') 
'  AK     ',ak
 
  426       IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
 
  429       CHARACTER*8 projty,targty
 
  432       COMMON /user1/
title,projty,targty
 
  433       COMMON /user2/cmener,sdfrac,ptlar,istruf,isingd,idubld
 
  435       common/collis/
s,ijproj,ijtar,ptthr,ptthr2,iophrd,ijprlu,ijtalu
 
  436       COMMON /strufu/istrum,istrut
 
  441       parameter(epsil=1.
d-4,
 
  446      &   0.000000
e+00,0.137854
e-04, .02, .13, .37, 1.32,
 
  447      &   3.88, 8.02, 13.15, 24.32, 43.43, 79.69, 113.13,
 
  448      &   147.5, 180.47, 221.01, 250.37,
 
  449      &   279.4, 320.1, 349.6, 381.6,
 
  451      &       .000000
e+00, .494767
e-05, .02, .14, .41, 
 
  452      &    1.48, 4.17, 7.92, 11.90, 19.03, 28.59, 42.36,
 
  453      &   52.78, 62.86, 72.65, 85.61, 95.97,
 
  454      &   96.,  96.,  96.,  96.,
 
  457      &      0.517461
e-05, .02, .14, .42, 1.49, 4.14, 
 
  458      &    7.87, 11.93, 19.58, 30.67, 48.39, 63.08, 
 
  459      &    78.1, 93.28, 114.33, 132.24,
 
  460      &   133.,  133.,  133.,  133.,
 
  463      &      0.717097
e-05, .03, .19, .54, 1.91, 5.33, 10.11,
 
  464      &     16.16, 24.21, 36.41, 54.21, 67.92, 81.44,
 
  465      &     94.81,112.9, 127.63,
 
  466      &    128.,  128.,  128.,  128.,   
 
  469      &      0.761464
e-05, .02, .17, .47, 1.56, 4.19, 
 
  470      &     7.76, 11.48, 18.11, 26.97, 39.82, 49.86, 59.35, 
 
  471      &     68.88, 81.65, 91.94,
 
  472      &    92.,  92.,  92.,  92.,
 
  475      &       .620779
e-05, .02, .12, .34, 1.19, 3.27, 
 
  476      &      6.16, 9.27, 14.99, 23.2, 36.85, 49.45, 
 
  477      &      64.43, 82.38, 112.06, 140.36,
 
  478      &    141.,  141.,  141.,  141.,
 
  481      &       .620779
e-05, .01, .05, .14, 0.55, 1.87, 
 
  482      &      4.29,  7.49, 14.81, 27.8, 55.99, 77.49, 
 
  483      &     105.98,138.48, 189.33, 236.37,
 
  484      &    294.,  395.,  496.,  629.,
 
  487      &       .620779
e-05, .01, .10, .31, 1.16, 3.76, 
 
  488      &      8.31, 14.16, 27.11, 49.3, 90.93,129.77, 
 
  489      &     174.16,223.83, 300.20, 370.00,
 
  490      &    455.,  600.,  746.,  936.,
 
  493      &       .620779
e-05, .01, .08, .27, 1.17, 4.15, 
 
  494      &      9.60, 16.75, 32.88, 61.1,125.98,169.87, 
 
  495      &     233.75,308.22, 426.95, 537.90,
 
  496      &    673.,  898., 1112., 1379./
 
  499       IF( abs(ptthr-three).LT.epsil )     
THEN 
  500           WRITE(6,*) 
' ERROR RDXSEC: invalid pdf No. ',istruf
 
  502       ELSEIF( abs(ptthr-two).LT.epsil ) 
THEN 
  503           WRITE(6,*) 
' ERROR RDXSEC: invalid pdf No. ',istruf
 
  505       ELSEIF( istrut.EQ.1 ) 
THEN 
  506           WRITE(6,*) 
' ERROR RDXSEC: invalid pdf No. ',istruf
 
  508       ELSEIF( istrut.EQ.2 ) 
THEN 
  509         IF( (istruf.GE.9).AND.(istruf.LE.20) ) 
THEN 
  510           WRITE(6,*) 
' ERROR RDXSEC: invalid pdf No. ',istruf
 
  512         ELSEIF( (istruf.GE.21).AND.(istruf.LE.23) ) 
THEN 
  514             nxs = 21*(istruf-15)+i
 
  518           WRITE(6,*) 
' ERROR RDXSEC: invalid pdf No. ',istruf
 
  522         WRITE(6,*) 
' ERROR RDXSEC: PTCUT ',ptthr,
' not supported ***' 
  550       IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
 
  552       parameter( 
zero=0.d0, 
one=1.d0)
 
  553       parameter(conv=0.38935d0)
 
  554       parameter(pi=3.141592654d0)
 
  555       parameter(mxpa25=30,mxpa26=mxpa25+1,mxpa13=13)
 
  557       parameter(mxpa50=250,mxpa51=mxpa50+1)
 
  564       parameter(mxlmn=5,lsqrt=.true.)
 
  565       DOUBLE PRECISION dtiny
 
  569       parameter(tiny=1.2
d-38,dtiny=1.
d-70,tin=1.
d-22,tinexp=-700.d0)
 
  572       parameter(tinyex  = -48.d0)
 
  575       COMMON /polmn/plmn(0:mxpa25,0:mxpa50,0:mxpa13),
 
  576      *              plmncu(0:mxpa25,0:mxpa50,0:mxpa13)
 
  577       COMMON /polmn0/pdifr,phard,psoft,alfah,betah,
 
  578      *              sigtot,sigqel,sigel,sigine,sighin,sigd,sigdd
 
  581       COMMON /pomtyp/ipim,icon,isig,lmax,mmax,
nmax,difel,difnu
 
  582       COMMON /sigma/sigsof,bs,zsof,sighar,bh,zhar,sigtrp,bt,ztrp,
 
  584       common/pompar/alfa,alfap,
a,c,ak
 
  585       COMMON /singdi/silmsd,sigdi
 
  587       COMMON /outlev/ioutpo,ioutpa,iouxev,ioucol
 
  590       CHARACTER*8 projty,targty
 
  593       COMMON /user1/
title,projty,targty
 
  594       COMMON /user2/cmener,sdfrac,ptlar,istruf,isingd,idubld
 
  596       DOUBLE PRECISION sig,sigp,sigm,sign,sigo
 
  597       dimension sig(0:mxpa25,0:mxpa50,0:mxpa13),
 
  598      &sigp(0:mxpa25,0:mxpa50,0:mxpa13),sigm(0:mxpa25,0:mxpa50,0:mxpa13),
 
  599      &sign(0:mxpa25,0:mxpa50,0:mxpa13),sigo(0:mxpa25,0:mxpa50,0:mxpa13)
 
  600       dimension xpnt(mxpa96),wght(mxpa96),
 
  601      &ssoft(0:mxpa25),shard(0:mxpa50),strpl(0:mxpa25)
 
  603       dimension fak(0:mxpa13),cmbin(0:mxpa13,0:mxpa13)
 
  605      &       expsop,expsoh,exmsop,exmsoh,exnsop,exnsoh,exosop,exosoh,
 
  606      &       exphap,exphah,exmhap,exmhah,exnhap,exnhah,exohap,exohah,
 
  607      &       exptrp,exptrh,exmtrp,exmtrh,exntrp,exntrh,exotrp,exotrh,
 
  608      &       explop,exploh,exmlop,exmloh,exnlop,exnloh,exolop,exoloh,
 
  609      &       expexh,exmexh,exnexh,exoexh,expexp,exmexp,exnexp,exoexp
 
  610       DOUBLE PRECISION  fapsof,famsof,fansof,faosof,
 
  611      &                  faphar,famhar,fanhar,faohar,
 
  612      &                  faptrp,famtrp,fantrp,faotrp,
 
  613      &                  faploo,famloo,fanloo,faoloo
 
  614       DOUBLE PRECISION  denom,denomi,xpntk,wghtk,rmxlmn
 
  615      &                  ,sigsum,siginl,sighri
 
  620       IF(icon/10.EQ.4) 
nmax=2
 
  621       IF(icon/10.EQ.5) 
nmax=1
 
  624       IF( 
nmax.GT.mxpa13) 
THEN 
  625         WRITE(6,*)
' arrays limit NMAX set to' , mxpa13
 
  628       IF( mmax.GT.mxpa50) 
THEN 
  629         WRITE(6,*)
' arrays limit MMAX set to' , mxpa50
 
  632       IF( lmax.GT.mxpa25) 
THEN 
  633         WRITE(6,*)
' arrays limit LMAX set to' , mxpa25
 
  641         nnmaxi=(mxpa13-nmaxi)/(1+nmaxi)
 
  644       ELSEIF( 
nmax.EQ.2)
THEN 
  648       ELSEIF( 
nmax.EQ.1)
THEN 
  652       ELSEIF( 
nmax.LE.0)
THEN 
  671       IF(icon/10.EQ.4) 
nmax=2
 
  672       IF(icon/10.EQ.5) 
nmax=1
 
  725       IF(alalam.LE.1.
d-2) 
THEN 
  734       IF(ecm.LT.2000.d0)
THEN 
  744       IF(ioutpo.GE.0) 
WRITE (6,*) 
' ALAM,REDU= ',alam,redu
 
  750       zharp=(1.+alam)**2*zhar
 
  751       zsofp=(1.+alam)**2*zsof
 
  752       zloop=(1.+alam)**2*zloo * redu
 
  753       zharm=(1.-alam)**2*zhar
 
  754       zsofm=(1.-alam)**2*zsof
 
  755       zloom=(1.-alam)**2*zloo * redu
 
  756       zharn=(1.-alam**2)*zhar
 
  757       zsofn=(1.-alam**2)*zsof
 
  758       zloon=(1.-alam**2)*zloo * redu
 
  759       zharo=(1.-alam**2)*zhar
 
  760       zsofo=(1.-alam**2)*zsof
 
  761       zlooo=(1.-alam**2)*zloo * redu
 
  763       ztrpp=(1.+alam)**3*ztrp * redu
 
  764       ztrpm=(1.-alam)**3*ztrp * redu
 
  765       ztrpn=(1.-alam**2)*(1.+alam)*ztrp * redu
 
  766       ztrpo=(1.-alam**2)*(1.-alam)*ztrp * redu
 
  777           fapsof=fapsof* 
sqrt( zsofp/float(l))
 
  778           famsof=famsof* 
sqrt( zsofm/float(l))
 
  779           fansof=fansof* 
sqrt( zsofn/float(l))
 
  780           faosof=faosof* 
sqrt( zsofo/float(l))
 
  781           IF (    fapsof .LT.dtiny )     fapsof=0.
 
  782           IF (    famsof .LT.dtiny )     famsof=0.
 
  783           IF (    fansof .LT.dtiny )     fansof=0.
 
  784           IF (    faosof .LT.dtiny )     faosof=0.
 
  785         ELSEIF(.NOT.lsqrt) 
THEN 
  786           fapsof=fapsof*zsofp/float(l)
 
  787           famsof=famsof*zsofm/float(l)
 
  788           fansof=fansof*zsofn/float(l)
 
  789           faosof=faosof*zsofo/float(l)
 
  790           IF (fapsof.LT.dtiny )     fapsof=0.
 
  791           IF (famsof.LT.dtiny )     famsof=0.
 
  792           IF (fansof.LT.dtiny )     fansof=0.
 
  793           IF (faosof.LT.dtiny )     faosof=0.
 
  803             faphar=faphar* 
sqrt( zharp/float(m) )
 
  804             famhar=famhar* 
sqrt( zharm/float(m) )
 
  805             fanhar=fanhar* 
sqrt( zharn/float(m) )
 
  806             faohar=faohar* 
sqrt( zharo/float(m) )
 
  807             IF (    fapsof*faphar .LT.dtiny )     faphar=0.
 
  808             IF (    famsof*famhar .LT.dtiny )     famhar=0.
 
  809             IF (    fansof*fanhar .LT.dtiny )     fanhar=0.
 
  810             IF (    faosof*faohar .LT.dtiny )     faohar=0.
 
  811           ELSEIF(.NOT.lsqrt) 
THEN 
  812             faphar=faphar*zharp/float(m)
 
  813             famhar=famhar*zharm/float(m)
 
  814             fanhar=fanhar*zharn/float(m)
 
  815             faohar=faohar*zharo/float(m)
 
  816             IF (fapsof*faphar.LT.dtiny )     faphar=0.
 
  817             IF (famsof*famhar.LT.dtiny )     famhar=0.
 
  818             IF (fansof*fanhar.LT.dtiny )     fanhar=0.
 
  819             IF (faosof*faohar.LT.dtiny )     faohar=0.
 
  828                faptrp=-faptrp* 
sqrt( ztrpp/float(
n) )
 
  829                famtrp=-famtrp* 
sqrt( ztrpm/float(
n) )
 
  830                fantrp=-fantrp* 
sqrt( ztrpn/float(
n) )
 
  831                faotrp=-faotrp* 
sqrt( ztrpo/float(
n) )
 
  832                IF (abs(faptrp*fapsof*faphar).LT.dtiny )     faptrp=0.
 
  833                IF (abs(famtrp*famsof*famhar).LT.dtiny )     famtrp=0.
 
  834                IF (abs(fantrp*fansof*fanhar).LT.dtiny )     fantrp=0.
 
  835                IF (abs(faotrp*faosof*faohar).LT.dtiny )     faotrp=0.
 
  836             ELSEIF(.NOT.lsqrt) 
THEN 
  837                faptrp=-faptrp*ztrpp/float(
n)
 
  838                famtrp=-famtrp*ztrpm/float(
n)
 
  839                fantrp=-fantrp*ztrpn/float(
n)
 
  840                faotrp=-faotrp*ztrpo/float(
n)
 
  841                IF (abs(faptrp*fapsof*faphar).LT.dtiny )     faptrp=0.
 
  842                IF (abs(famtrp*famsof*famhar).LT.dtiny )     famtrp=0.
 
  843                IF (abs(fantrp*fansof*fanhar).LT.dtiny )     fantrp=0.
 
  844                IF (abs(faotrp*faosof*faohar).LT.dtiny )     faotrp=0.
 
  850               IF( 
nmax.LE.2   .AND. 
n.EQ.1 .AND. nn.EQ.1 ) go to 750
 
  857                 faploo=-faploo* 
sqrt( zloop/float(nn))
 
  858                 famloo=-famloo* 
sqrt( zloom/float(nn))
 
  859                 fanloo=-fanloo* 
sqrt( zloon/float(nn))
 
  860                 faoloo=-faoloo* 
sqrt( zlooo/float(nn))
 
  861                 IF(abs(faploo*faptrp*fapsof*faphar).LT.dtiny )faploo=0.
 
  862                 IF(abs(famloo*famtrp*famsof*famhar).LT.dtiny )famloo=0.
 
  863                 IF(abs(fanloo*fantrp*fansof*fanhar).LT.dtiny )fanloo=0.
 
  864                 IF(abs(faoloo*faotrp*faosof*faohar).LT.dtiny )faoloo=0.
 
  865               ELSEIF(.NOT.lsqrt) 
THEN 
  866                 faploo=-faploo*zloop/float(nn)
 
  867                 famloo=-famloo*zloom/float(nn)
 
  868                 fanloo=-fanloo*zloon/float(nn)
 
  869                 faoloo=-faoloo*zlooo/float(nn)
 
  870                 IF(abs(faploo*faptrp*fapsof*faphar).LT.dtiny )faploo=0.
 
  871                 IF(abs(famloo*famtrp*famsof*famhar).LT.dtiny )famloo=0.
 
  872                 IF(abs(fanloo*fantrp*fansof*fanhar).LT.dtiny )fanloo=0.
 
  873                 IF(abs(faoloo*faotrp*faosof*faohar).LT.dtiny )faoloo=0.
 
  877           IF(l.EQ.0.AND.m.EQ.0.AND.
n.EQ.0.AND.nn.EQ.0) go to 750
 
  879           denom=dble(m)/dble(bh)+dble(l)/dble(bs)+dble(
n)/dble(bt)
 
  885             IF ( (m+l+
n+nn) .LE. mxlmn  ) 
THEN 
  890               rmxlmn = dble(m+l+
n+nn) /dble(mxlmn)
 
  892               wghtk= dble(wght(k)) * xpntk**(rmxlmn-1.)
 
  893               denomi= denom / rmxlmn
 
  896             exposp=-zsofp*xpntk**(1./(denomi*dble(bs)))
 
  897             exposm=-zsofm*xpntk**(1./(denomi*dble(bs)))
 
  898             exposn=-zsofn*xpntk**(1./(denomi*dble(bs)))
 
  899             exposo=-zsofo*xpntk**(1./(denomi*dble(bs)))
 
  901             expohp=-zharp*xpntk**(1./(denomi*dble(bh)))
 
  902             expohm=-zharm*xpntk**(1./(denomi*dble(bh)))
 
  903             expohn=-zharn*xpntk**(1./(denomi*dble(bh)))
 
  904             expoho=-zharo*xpntk**(1./(denomi*dble(bh)))
 
  906             expotp=+ztrpp*xpntk**(1./(denomi*dble(bt)))
 
  907             expotm=+ztrpm*xpntk**(1./(denomi*dble(bt)))
 
  908             expotn=+ztrpn*xpntk**(1./(denomi*dble(bt)))
 
  909             expoto=+ztrpo*xpntk**(1./(denomi*dble(bt)))
 
  911             expolp=+zloop*xpntk**(1./(denomi*dble(bt)))
 
  912             expolm=+zloom*xpntk**(1./(denomi*dble(bt)))
 
  913             expoln=+zloon*xpntk**(1./(denomi*dble(bt)))
 
  914             expolo=+zlooo*xpntk**(1./(denomi*dble(bt)))
 
  918      *         
' K=',k,
' EXPOS/H=',exposp,expohp,
' DENOMI/BH=',denomi,bh
 
  920      *         
' K=',k,
' EXPOS/H=',exposm,expohm,
' DENOMI/BH=',denomi,bh
 
  922      *         
' K=',k,
' EXPOS/H=',exposn,expohn,
' DENOMI/BH=',denomi,bh
 
  924      *          
' K=',k,
'XPNT=',xpntk,
'WGHT=',wghtk,
'DENO=',denomi
 
  930             IF(     exposp .GT. tinexp) 
THEN 
  931               expsoh=
exp(0.5d00*exposp)
 
  932               exmsoh=
exp(0.5d00*exposm)
 
  933               exnsoh=
exp(0.5d00*exposn)
 
  934               exosoh=
exp(0.5d00*exposo)
 
  946             IF(    expohp .GT. tinexp) 
THEN 
  947               exphah=
exp(0.5d00*expohp)
 
  948               exmhah=
exp(0.5d00*expohm)
 
  949               exnhah=
exp(0.5d00*expohn)
 
  950               exohah=
exp(0.5d00*expoho)
 
  963               IF( expotp .GT. tinexp) 
THEN 
  964                 exptrh=
exp(0.5d00*expotp)
 
  965                 exmtrh=
exp(0.5d00*expotm)
 
  966                 exntrh=
exp(0.5d00*expotn)
 
  967                 exotrh=
exp(0.5d00*expoto)
 
  978             ELSEIF( 
nmax.LE.2) 
THEN 
  979                 exptrh= 1 + 0.5*expotp
 
  980                 exmtrh= 1 + 0.5*expotm
 
  981                 exntrh= 1 + 0.5*expotn
 
  982                 exotrh= 1 + 0.5*expoto
 
  990               IF( expolp .GT. tinexp) 
THEN 
  991                 exploh=
exp(0.5d00*expolp)
 
  992                 exmloh=
exp(0.5d00*expolm)
 
  993                 exnloh=
exp(0.5d00*expoln)
 
  994                 exoloh=
exp(0.5d00*expolo)
 
 1005             ELSEIF( 
nmax.EQ.2 ) 
THEN 
 1006                 exploh= 1 + 0.5*expolp
 
 1007                 exmloh= 1 + 0.5*expolm
 
 1008                 exnloh= 1 + 0.5*expoln
 
 1009                 exoloh= 1 + 0.5*expolo
 
 1014             ELSEIF( 
nmax.LE.1 ) 
THEN 
 1025             expexh = expsoh *exphah *exptrh *exploh
 
 1026             exmexh = exmsoh *exmhah *exmtrh *exmloh
 
 1027             exnexh = exnsoh *exnhah *exntrh *exnloh
 
 1028             exoexh = exosoh *exohah *exotrh *exoloh
 
 1029             expexp = expsop *exphap *exptrp *explop
 
 1030             exmexp = exmsop *exmhap *exmtrp *exmlop
 
 1031             exnexp = exnsop *exnhap *exntrp *exnlop
 
 1032             exoexp = exosop *exohap *exotrp *exolop
 
 1034             IF( ( 
nmax.LE.2  .AND.  
n.EQ.1 ) .OR.
 
 1035      *          ( 
nmax.EQ.2  .AND. nn.EQ.1 ) .OR.
 
 1037                sigp(l,m,nnn)=sigp(l,m,nnn)+expsop *exphap *wghtk
 
 1038                sigm(l,m,nnn)=sigm(l,m,nnn)+exmsop *exmhap *wghtk
 
 1039                sign(l,m,nnn)=sign(l,m,nnn)+exnsop *exnhap *wghtk
 
 1040                sigo(l,m,nnn)=sigo(l,m,nnn)+exosop *exohap *wghtk
 
 1042                sigp(l,m,nnn)=sigp(l,m,nnn)+expexp*wghtk
 
 1043                sigm(l,m,nnn)=sigm(l,m,nnn)+exmexp*wghtk
 
 1044                sign(l,m,nnn)=sign(l,m,nnn)+exnexp*wghtk
 
 1045                sigo(l,m,nnn)=sigo(l,m,nnn)+exoexp*wghtk
 
 1050             IF(l.EQ.1.AND.m.EQ.0.AND.
n.EQ.0.AND.nn.EQ.0) 
THEN 
 1052               IF ( (m+l+
n+nn) .GT. mxlmn  ) 
THEN 
 1053                 WRITE(6,*)
' MXLMN too low ' , mxlmn,m,l,
n,nn
 
 1056               wghfac = wghtk/xpntk *pi4/denomi
 
 1057               IF     ( 
nmax.GE.3 ) 
THEN 
 1058                 sigele = sigele + wghfac *
 
 1059      *              0.0625*(   1.-expexh   +  1.-exmexh
 
 1060      *                        +1.-exnexh   +  1.-exoexh )**2
 
 1062                 silmsd = silmsd + wghfac *
 
 1063      *                0.125*(expexh -exmexh)**2
 
 1064                 silmdd = silmdd + wghfac *
 
 1065      *                0.0625*(expexh+exmexh-exnexh-exoexh)**2
 
 1066               ELSEIF( 
nmax.LE.2 ) 
THEN 
 1067                 sigele = sigele + wghfac *
 
 1068      *           0.0625*( (   1.-expexh   +  1.-exmexh
 
 1069      *                       +1.-exnexh   +  1.-exoexh
 
 1072      *                      +(1.-exptrh)*(1-exploh) *expsoh *exphah
 
 1073      *                      +(1.-exmtrh)*(1-exmloh) *exmsoh *exmhah
 
 1074      *                      +(1.-exntrh)*(1-exnloh) *exnsoh *exnhah
 
 1075      *                      +(1.-exotrh)*(1-exoloh) *exosoh *exohah)**2
 
 1077      *                   - (  (2.-exptrh-exploh) *expsoh *exphah
 
 1078      *                       +(2.-exmtrh-exmloh) *exmsoh *exmhah
 
 1079      *                       +(2.-exntrh-exnloh) *exnsoh *exnhah
 
 1080      *                       +(2.-exotrh-exoloh) *exosoh *exohah ) **2)
 
 1082                 silmsd = silmsd + wghfac *
 
 1083      *            0.125*( ( expexh -exmexh
 
 1085      *                     -(1.-exptrh)*(1-exploh) *expsoh*exphah
 
 1086      *                     +(1.-exmtrh)*(1-exmloh) *exmsoh*exmhah )**2
 
 1088      *                     -(  (2.-exptrh-exploh) *expsoh *exphah
 
 1089      *                        -(2.-exmtrh-exmloh) *exmsoh*exmhah ) **2)
 
 1090                 silmdd = silmdd + wghfac *
 
 1091      *           0.0625*( (expexh+exmexh-exnexh-exoexh
 
 1093      *                   -(1.-exptrh)*(1-exploh) *expsoh *exphah
 
 1094      *                   -(1.-exmtrh)*(1-exmloh) *exmsoh *exmhah
 
 1095      *                   +(1.-exntrh)*(1-exnloh) *exnsoh *exnhah
 
 1096      *                   +(1.-exotrh)*(1-exoloh) *exosoh *exohah)**2
 
 1098      *                - (  (2.-exptrh-exploh) *expsoh *exphah
 
 1099      *                    +(2.-exmtrh-exmloh) *exmsoh *exmhah
 
 1100      *                    -(2.-exntrh-exnloh) *exnsoh *exnhah
 
 1101      *                    -(2.-exotrh-exoloh) *exosoh *exohah ) **2)
 
 1103               IF( 
nmax.NE.2 ) 
THEN 
 1104                 sigtot=sigtot+2.*wghfac*
 
 1105      *              0.25*(  1.-expexh  +  1.-exmexh +
 
 1106      *                      1.-exnexh  +  1.-exoexh  )
 
 1107                 sigine = sigine +  wghfac *
 
 1108      *              0.25*(  1.-expexp  +  1.-exmexp +
 
 1109      *                      1.-exnexp  +  1.-exoexp  )
 
 1111                 sigsin=sigsin+ wghfac *
 
 1112      *              0.25*(    (exphap-expexp)
 
 1115      *                       +(exohap-exoexp) )
 
 1117                 sighin=sighin+ wghfac*
 
 1118      *              0.25*(  1.-exphap  +  1.-exmhap +
 
 1119      *                      1.-exnhap  +  1.-exohap  )
 
 1120               ELSEIF(  
nmax.EQ.2  ) 
THEN 
 1121                 sigtot=sigtot+2.*wghfac*
 
 1122      *              0.25*(  1.-expexh  +  1.-exmexh +
 
 1123      *                      1.-exnexh  +  1.-exoexh
 
 1126      *                      +(1.-exptrh)*(1-exploh) *expsoh *exphah
 
 1127      *                      +(1.-exmtrh)*(1-exmloh) *exmsoh *exmhah
 
 1128      *                      +(1.-exntrh)*(1-exnloh) *exnsoh *exnhah
 
 1129      *                      +(1.-exotrh)*(1-exoloh) *exosoh *exohah )
 
 1130                 sigine = sigine +  wghfac *
 
 1131      *              0.25*(  1.-expexp  +  1.-exmexp +
 
 1132      *                      1.-exnexp  +  1.-exoexp
 
 1135      *                      +(1.-exptrp)*(1-explop) *expsop *exphap
 
 1136      *                      +(1.-exmtrp)*(1-exmlop) *exmsop *exmhap
 
 1137      *                      +(1.-exntrp)*(1-exnlop) *exnsop *exnhap
 
 1138      *                      +(1.-exotrp)*(1-exolop) *exosop *exohap )
 
 1140                 sigsin=sigsin+ wghfac *
 
 1141      *              0.25*(    (exphap-expexp)
 
 1146      *                      +(1.-exptrp)*(1-explop) *expsop *exphap
 
 1147      *                      +(1.-exmtrp)*(1-exmlop) *exmsop *exmhap
 
 1148      *                      +(1.-exntrp)*(1-exnlop) *exnsop *exnhap
 
 1149      *                      +(1.-exotrp)*(1-exolop) *exosop *exohap)
 
 1151                 sighin=sighin+ wghfac*
 
 1152      *              0.25*(  1.-exphap  +  1.-exmhap +
 
 1153      *                      1.-exnhap  +  1.-exohap  )
 
 1157               IF( 
nmax.GE.3 ) 
THEN 
 1158                 sighmd=sighmd + wghfac  *
 
 1159      *                       0.25*( (exptrp-1.)*expexp
 
 1160      *                             +(exmtrp-1.)*exmexp
 
 1161      *                             +(exntrp-1.)*exnexp
 
 1162      *                             +(exotrp-1.)*exoexp)
 
 1164                 sighmd=sighmd + wghfac  *
 
 1165      *                       0.25*( expotp * expsop*exphap
 
 1166      *                             +expotm * exmsop*exmhap
 
 1167      *                             +expotn * exnsop*exnhap
 
 1168      *                             +expoto * exosop*exohap )
 
 1170               IF( 
nmax.GE.3  ) 
THEN 
 1171                 sihmdd=sihmdd + wghfac  *
 
 1172      *                       0.25*( (explop-1.)*expexp
 
 1173      *                             +(exmlop-1.)*exmexp
 
 1174      *                             +(exnlop-1.)*exnexp
 
 1175      *                             +(exolop-1.)*exoexp)
 
 1176               ELSEIF (
nmax.EQ.2 ) 
THEN 
 1177                 sihmdd=sihmdd + wghfac  *
 
 1178      *                       0.25*( expolp * expsop*exphap
 
 1179      *                             +expolm * exmsop*exmhap
 
 1180      *                             +expoln * exnsop*exnhap
 
 1181      *                             +expolo * exosop*exohap )
 
 1196           IF(abs(faphar*fapsof*faptrp*faploo*sigp(l,m,nnn)).LT.dtiny)
 
 1200             sigp(l,m,nnn)=faphar*fapsof*faptrp*faploo*sigp(l,m,nnn)
 
 1201      *         * abs(faphar*fapsof*faptrp*faploo)/denomi*pi4
 
 1202           ELSEIF(.NOT.lsqrt) 
THEN 
 1203             sigp(l,m,nnn)=faphar*fapsof*faptrp*faploo*sigp(l,m,nnn)
 
 1206           IF(abs(famhar*famsof*famtrp*famloo*sigm(l,m,nnn)).LT.dtiny)
 
 1210             sigm(l,m,nnn)=famhar*famsof*famtrp*famloo*sigm(l,m,nnn)
 
 1211      *           * abs( famhar*famsof*famtrp*famloo)/denomi*pi4
 
 1212           ELSEIF(.NOT.lsqrt) 
THEN 
 1213             sigm(l,m,nnn)=famhar*famsof*famtrp*famloo*sigm(l,m,nnn)
 
 1216           IF(abs(fanhar*fansof*fantrp*fanloo*sign(l,m,nnn)).LT.dtiny)
 
 1220             sign(l,m,nnn)=fanhar*fansof*fantrp*fanloo*sign(l,m,nnn)
 
 1221      *           * abs( fanhar*fansof*fantrp*fanloo)/denomi*pi4
 
 1222           ELSEIF(.NOT.lsqrt) 
THEN 
 1223             sign(l,m,nnn)=fanhar*fansof*fantrp*fanloo*sign(l,m,nnn)
 
 1226           IF(abs(faohar*faosof*faotrp*faoloo*sigo(l,m,nnn)).LT.dtiny)
 
 1230             sigo(l,m,nnn)=faohar*faosof*faotrp*faoloo*sigo(l,m,nnn)
 
 1231      *          * abs( faohar*faosof*faotrp*faoloo/denomi)*pi4
 
 1232           ELSEIF(.NOT.lsqrt) 
THEN 
 1233             sigo(l,m,nnn)=faohar*faosof*faotrp*faoloo*sigo(l,m,nnn)
 
 1244       nnnmax=nmaxi+(nmaxi+1)*nnmaxi
 
 1248           sig(l,m,nnn)=(sigp(l,m,nnn)+sigm(l,m,nnn)+
 
 1249      *                  sign(l,m,nnn)+sigo(l,m,nnn) )/4.
 
 1260             IF( 
nmax.LE.2 .AND. 
n.EQ.1 .AND. nn.EQ.1 ) go to 4
 
 1262             sigsum=sigsum + sig(l,m,nnn)
 
 1264             IF(m.EQ.0.OR.l.GE.1) sigsme=sigsme + sig(l,m,nnn)
 
 1265             shard(m)=shard(m)+sig(l,m,nnn)
 
 1266             ssoft(l)=ssoft(l)+sig(l,m,nnn)
 
 1267             strpl(
n)=strpl(
n)+sig(l,m,nnn)
 
 1268             siginl = siginl + sig(l,m,nnn)
 
 1269             IF(m.GE.1) sighri = sighri + sig(l,m,nnn)
 
 1270             IF(l.EQ.0.AND.m.EQ.0.AND.nn.EQ.0.AND.
n.GE.1) 
THEN 
 1271               sigdi = sigdi  + (-1)**
n*sig(l,m,nnn)
 
 1272             ELSEIF(l.EQ.0.AND.m.EQ.0.AND.
n.EQ.0.AND.nn.GE.1) 
THEN 
 1273               sigddi= sigddi + (-1)**nn*sig(l,m,nnn)
 
 1279       siglmd=silmsd+silmdd
 
 1280       sithmd=sighmd+sihmdd
 
 1281       sigd = siglmd + sithmd
 
 1282       slhmdd =  
sqrt(abs(silmdd*sihmdd))
 
 1283       sigdd= silmdd + sihmdd + slhmdd
 
 1289       IF(lentry.EQ.1.AND.ioutpo.LE.1) 
RETURN 
 1292       WRITE(6,*)
'  --- properties of events ---' 
 1294       WRITE(6,*)
'  Energy=',ecm
 
 1296       WRITE(6,*)
'  max.contributing soft/hard/diffr./doubl.diffr. cuts' 
 1297       WRITE(6,*)
'                     LMAXI=  MMAXI=  NMAXI=   NNMAXI=' 
 1298       WRITE(6,
'(15X,4I9)')              lmaxi,mmaxi,nmaxi,nnmaxi
 
 1299       WRITE(6,*)
'  methode used:  ' 
 1300       WRITE(6,*)
'                     ISIG=   ICON=   IPIM=     ' 
 1301       WRITE(6,
'(15X,3I9)')                     isig,icon,ipim
 
 1303       WRITE(6,*)
'  --- bare cross section and eikonal constants ---' 
 1307       WRITE(6,*)
'    ALFA =',alfa,
' ALFAP =',alfap,
' A =',
a 
 1308       WRITE(6,*)
'    C =',c,
' AK =',ak
 
 1309       WRITE(6,*)
'    ALALAM =',alalam
 
 1311       WRITE(6,*)
'     SIGSOF=',sigsof,
'  BS=',bs,
'  ZSOF=',zsof
 
 1312       WRITE(6,*)
'     SIGHAR=',sighar,
'  BH=',bh,
'  ZHAR=',zhar
 
 1313       WRITE(6,*)
'     SIGTRP=',sigtrp,
'  BT=',bt,
'  ZTRP=',ztrp
 
 1314       WRITE(6,*)
'     SIGLOO=',sigloo,
'  BT=',bt,
'  ZLOO=',zloo
 
 1316       WRITE(6,*)
'  --- observable cross sections ---' 
 1318       WRITE(6,*)
'     TOTAL X-SECTION         = ',sigtot
 
 1319       WRITE(6,*)
'     ELASTIC X-SECTION       = ',sigele
 
 1320       WRITE(6,*)
'     INELASTIC X-SECTION-LMD = ',sigine
 
 1321       WRITE(6,*)
'     INELASTIC X-SECTION     = ',sigin
 
 1322       WRITE(6,*)
'     HARD INEL. X-SECTION    = ',sighin
 
 1324       WRITE(6,*)
'  LOW MASS SING./DOUB.DIFFR.X-SECTION= ',silmsd,silmdd
 
 1325       WRITE(6,*)
'  => LOW MASS TOTAL DIFFRACTIV.X-SECTION=     ',siglmd
 
 1326       WRITE(6,*)
'  HIGH MASS SING./DOUB.DIFFR.X-SECTION= ',sigdi,sigddi
 
 1327       WRITE(6,*)
'  => HIGH MASS TOTAL DIFFRACTIV.X-SECTION=    ',sithmd
 
 1328       WRITE(6,*)
'  ESTIMAT.MIXED (LM+HM) DOUBL.DIFFRAC.X.SEC.= ',slhmdd
 
 1330       WRITE(6,*)
'     DIFFRACTIVE  X-SECTION =    ',sigd
 
 1331       WRITE(6,*)
'     DOUBLY DIFFRACTIVE X-SECT. =',sigdd
 
 1334       IF(ioutpo.GE.0) 
THEN 
 1335        WRITE(6,*)
'  --- observ. x-sections, altern. calculated ---' 
 1336        WRITE(6,*)
'     ELASTIC X-SECTION   = ',sigel
 
 1337        WRITE(6,*)
'     INELASTIC X-SECTION-LMD = ',siginl
 
 1338        WRITE(6,*)
'     HARD INEL. X-SECTION= ',sighri
 
 1339        WRITE(6,*)
'  HIGH MASS SING./DOUB.DIFFR.X-SECT.=',sighmd,sihmdd
 
 1340       WRITE(6,*)
'     X-SECTION FOR (L,M,N,NN)= 1000 0100 0010 0001' 
 1341       WRITE(6,*)
'            ',sig(1,0,0),sig(0,1,0)
 
 1342      *                        ,sig(0,0,1),sig(0,0,2)
 
 1346       IF(ioutpo.GE.2) 
THEN 
 1349          IF( nmaxi.LT.2)nnmaxp=1
 
 1353  48          
WRITE(6,101)(sig(l,m,
n),m=0,7)
 
 1356  50          
WRITE(6,101)(sig(l,m,
n),m=8,15)
 
 1359      &       
'  # CUT-POMERON  SSOFT X-SECT.  SHARD X-SECT.' 
 1361  58          
WRITE (6,103)l,ssoft(l),shard(l)
 
 1379           cmbin(i,j)=fak(i)/(fak(j)*fak(i-j))
 
 1385        IF(icon.EQ.44.OR.icon.EQ.46.OR.icon.EQ.48.
 
 1386      *                             or.icon.EQ.54) 
THEN 
 1389            plmntm=sig(l,m,0)/(sigsum+tin)
 
 1390            plmn(l,m,0) =  plmntm + plmn(l,m,0)
 
 1393            plmntm=sig(l,m,1)/(sigsum+tin)
 
 1395            IF(l+2.LE.lmaxi) 
THEN 
 1396                plmn(l+2,m,0) = (-2.)* plmntm + plmn(l+2,m,0)
 
 1397                plmn(l+1,m,0) =  4.  * plmntm + plmn(l+1,m,0)
 
 1399                plmn(lmaxi,m,0) = (-2.)* plmntm + plmn(lmaxi,m,0)
 
 1400                plmn(lmaxi,m,0) =  4.  * plmntm + plmn(lmaxi,m,0)
 
 1402            IF(l.EQ.0 .AND. m.EQ.0) 
THEN 
 1403              plmn(l  ,m,1) = (-1.)* plmntm + plmn(l  ,m,1)
 
 1405              plmn(l  ,m,0) = (-1.)* plmntm + plmn(l  ,m,0)
 
 1408            plmntm=sig(l,m,2)/(sigsum+tin)
 
 1410            IF(l+2.LE.lmaxi) 
THEN 
 1411                plmn(l+2,m,0) = (-2.)* plmntm + plmn(l+2,m,0)
 
 1412                plmn(l+1,m,0) =  4.  * plmntm + plmn(l+1,m,0)
 
 1414                plmn(lmaxi,m,0) = (-2.)* plmntm + plmn(lmaxi,m,0)
 
 1415                plmn(lmaxi,m,0) =  4.  * plmntm + plmn(lmaxi,m,0)
 
 1417            IF(l.EQ.0 .AND. m.EQ.0) 
THEN 
 1418              plmn(l  ,m,2) = (-1.)* plmntm + plmn(l  ,m,2)
 
 1420              plmn(l  ,m,0) = (-1.)* plmntm + plmn(l  ,m,0)
 
 1426            IF(
nmax.LE.2 .AND. 
n.EQ.1 .AND. nn.EQ.1) go to 51
 
 1430            plmntm=sig(l,m,nnn)/(sigsum+tin)
 
 1435            DO 511  n1cut=0,
n-n0cut
 
 1439              cmb1=cmbin(
n-n2cut,n1cut)
 
 1443            DO 511  nn1cut=0,nn-nn0cut
 
 1444                  nn2cut=nn-nn0cut-nn1cut
 
 1446              cmbn0=cmbin(nn,nn2cut)
 
 1447              cmbn1=cmbin(nn-nn2cut,nn1cut)
 
 1458                l2str=l2str + n1cut + nn1cut +  n2cut + nn2cut
 
 1461                  nl2str= n2cut + nn2cut
 
 1462                ELSEIF(
nmax.GE.3)
THEN 
 1464                  l2str=l2str+n2cut+nn2cut
 
 1466                IF((icon.EQ.26.OR.icon.EQ.36.OR.icon.EQ.46.OR.icon.EQ.56)
 
 1467      &           .AND. (l2str.GE.1.OR.m2str.GE.1))
THEN 
 1468                  l2str=l2str +  nl2str
 
 1475                IF(l2str.GT.lmaxi) l2str=lmaxi
 
 1476                IF(m2str.GT.lmaxi) m2str=lmaxi
 
 1477                nnnstr =n2str +(nmaxi+1)*nn2str
 
 1478      *                       +(nnmaxi+1)*(nmaxi+1)*nl2str
 
 1479                IF(nnnstr.GT.mxpa13) nnnstr=mxpa13
 
 1482                plmn(l2str,m2str,nnnstr) =  plmntm
 
 1483      *             *cmb0*cmb1 * (-2)**n2cut * (4)**n1cut * (-1)**n0cut
 
 1484      *             *cmbn0*cmbn1*(-2)**nn2cut* (4)**nn1cut* (-1)**nn0cut
 
 1485      &           +  plmn(l2str,m2str,nnnstr)
 
 1492        IF(abs(tmmp-1.d0).GT..03d0)
THEN 
 1494      &     
' NORMALISATION ERROR SUM PLM before LMD reatribution=',tmmp
 
 1501         plmfac= (sigsum+tin) / (sigsum+tin +siglmd)
 
 1502         plmn(0,0,1)= plmn(0,0,1) +
 
 1503      &      ( silmsd - slhmdd ) / (sigsum+tin)
 
 1504         plmn(0,0,2)= plmn(0,0,2) +
 
 1505      &      ( silmdd + slhmdd ) / (sigsum+tin)
 
 1523         IF(
nmax.LE.2 .AND. 
n+nn+nl.GE.2) go to 6
 
 1524         nnn =
n +(nmaxi+1)*nn +(nnmaxi+1)*(nmaxi+1)* nl
 
 1527            IF(nl.EQ.0)tmmp1  = tmmp1  + sig(l,m,nnn)
 
 1528            tmmp  = tmmp  + sig(l,m,nnn)
 
 1529            plmn(l,m,nnn)=plmn(l,m,nnn) * plmfac
 
 1530            tmp  = 
tmp  + plmn(l,m,nnn)
 
 1532            IF(plmn(l,m,nnn).LT.-.000005d0)
 
 1533      &             
WRITE(6,*)
' 0>PLMN',plmn(l,m,nnn),l,m,
n,nn,nl
 
 1534            avsofn=avsofn+plmn(l,m,nnn)*l
 
 1535            avharn=avharn+plmn(l,m,nnn)*m
 
 1536            avdifn=avdifn+plmn(l,m,nnn)*
n 
 1537            avddfn=avddfn+plmn(l,m,nnn)*nn
 
 1538            avdlfn=avdlfn+plmn(l,m,nnn)*nl
 
 1539            IF (m.EQ.0)psoft=psoft+plmn(l,m,nnn)
 
 1542        IF(abs(
tmp-1.d0).GT..01d0)
THEN 
 1544      &     
' NORMALISATION ERROR SUM PLM before M reatribution=',
tmp 
 1548        IF(abs(tmmp-1.d0).GT..01d0 .OR.abs(tmmp1-1.d0).GT..01d0)
THEN 
 1550      &     
' NORMALISATION ERROR TMMP,TMMP1=',tmmp,tmmp1
 
 1560         IF(
nmax.LE.2 .AND. 
n+nn+nl.GE.2) go to 61
 
 1561         nnn =
n +(nmaxi+1)*nn +(nnmaxi+1)*(nmaxi+1)* nl
 
 1568            IF (l.EQ.0.AND.m.GE.1)
THEN 
 1569              plmn(1,m,nnn)=plmn(1,m,nnn)+plmn(0,m,nnn)
 
 1573            temp  = temp  + plmn(l,m,nnn)
 
 1574            plmncu(l,m,nnn)=temp
 
 1577           IF(ioutpo.GE.3)
WRITE (6,*)
' M,(L,PLMN(L,M,N),L=0,LMAX)' 
 1578           IF(ioutpo.GE.3)
WRITE (6,106) m,(l,plmn(l,m,
n),l=0,lmaxi)
 
 1579           IF(ioutpo.GE.2)
WRITE (6,*)
' M,(L,PLMNCU(L,M,N),L=0,LMAX/2)' 
 1580           IF(ioutpo.GE.2)
WRITE (6,106) m,(l,plmncu(l,m,
n),l=0,lmaxi/2)
 
 1581   106     
FORMAT (i3,9(i3,e11.2))
 
 1586        IF(abs(temp-1.d0).GT..01d0)
THEN 
 1587           WRITE(6,*)
' NORMALISATION ERROR SUM PLM=',temp
 
 1588           plmfac=1./(temp+tin)
 
 1592          IF(ioutpo.GE.1)
WRITE (6,*)
 
 1593      &   
'(((L,M,N,PLMN(L,M,N),N=0,2),M=0,5),L=0,7)' 
 1594          IF(ioutpo.GE.1)
WRITE (6,1106)
 
 1595      &   (((l,m,
n,plmn(l,m,
n),
n=0,2),m=0,5),l=0,7)
 
 1596          IF(ioutpo.GE.1)
WRITE (6,*)
 
 1597      &   
'(((L,M,N,SIG(L,M,N),N=0,2),M=0,5),L=0,7)' 
 1598          IF(ioutpo.GE.1)
WRITE (6,1106)
 
 1599      &   (((l,m,
n,sig(l,m,
n),
n=0,2),m=0,5),l=0,7)
 
 1600  1106    
FORMAT (1
x,3(i5,i5,i5,g12.5))
 
 1603       alfah=sighin/(sigine+0.00001)
 
 1605       WRITE(6,116)avsofn,avharn,avdifn,avddfn,avdlfn,
 
 1606      &        phard,psoft,alfah,betah
 
 1607   116 
FORMAT(/
'--- various averages:'/
 
 1608      &       /
'    AVSOFN=    AVHARN=    AVDIFN=    AVDDFN=    AVDLFN=' 
 1610      &       /
'    PHARD=     PSOFT=     ALFAH=     BETAH= ' 
 1612       IF(ioutpo.GE.1)
WRITE(6,*)
'SIGSUM=SIGINL-LMD',sigsum
 
 1614         IF(ioutpo.GE.1)
WRITE(6,610) sigtot,sigine,sigd,sigdd,sighin
 
 1615   610    
FORMAT (
' SIGTOT,SIGINE,SIGD,SIGDD,SIGHIN= '/
' ',5e18.6)
 
 1617 101   
FORMAT(
' ',10e10.3)
 
 1619 103   
FORMAT(
' ',5
x,i4,5
x,2e15.3)
 
 1628       SUBROUTINE samplx(L2STR,M2STR,N2STR,NN2STR,NL2STR)
 
 1637       IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
 
 1639       parameter(mxpa25=30,mxpa26=mxpa25+1,mxpa13=13)
 
 1641       parameter(mxpa50=250,mxpa51=mxpa50+1)
 
 1645       COMMON /outlev/ioutpo,ioutpa,iouxev,ioucol
 
 1646       COMMON /pomtyp/ipim,icon,isig,lmax,mmax,
nmax,difel,difnu
 
 1648       COMMON /polmn/plmn(0:mxpa25,0:mxpa50,0:mxpa13),
 
 1649      *              plmncu(0:mxpa25,0:mxpa50,0:mxpa13)
 
 1650       COMMON /polmn0/pdifr,phard,psoft,alfah,betah,
 
 1651      *              sigtot,sigqel,sigel,sigine,sighin,sigd,sigdd
 
 1653       parameter(pi=3.141592654d0)
 
 1663       ELSEIF(ipim.EQ.2) 
THEN 
 1666           nnmaxi=(13-nmaxi)/(1+nmaxi)
 
 1669         ELSEIF( 
nmax.EQ.2)
THEN 
 1673         ELSEIF( 
nmax.EQ.1)
THEN 
 1683       IF (
x.LE.plmncu(0,0,0) .AND. nprint.LT.100)
THEN 
 1684         WRITE(6,*) 
' No generator of elastic events ' 
 1685         WRITE(6,*) 
' PLMNCU (0,0,0)  =!= 0 = ',plmncu(0,0,0)
 
 1693         nnn =
n +(nmaxi+1)*nn +(nnmaxi+1)*(nmaxi+1)* nl
 
 1697           IF (
x.LE.plmncu(l,m,nnn)) 
THEN 
 1711       IF(nprint.LT.100)  
WRITE(6,*)
' RAR.IN SAMPLM,PLMNCU,RND=',
 
 1712      &  plmncu(lmax, mmax,nnn),
x,nprint
 
 1713       IF( plmncu(lmax,mmax,nnn) .GT. 0.1d0 ) 
RETURN 
 1714       IF( plmncu(lmax,0,0) .GT. 0.1d0 ) 
RETURN 
 1715       WRITE(6,*)
' RAR.IN SAMPLM- PROBLEM SEEMS BAD, DECIDE TO STOP' 
 1731       IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
 
 1734       COMMON /outlev/ioutpo,ioutpa,iouxev,ioucol
 
 1735       COMMON /pomtyp/ipim,icon,isig,lmax,mmax,
nmax,difel,difnu
 
 1737       parameter(mxpa25=30,mxpa26=mxpa25+1,mxpa13=13)
 
 1739       parameter(mxpa50=250,mxpa51=mxpa50+1)
 
 1742       COMMON /polmn/plmn(0:mxpa25,0:mxpa50,0:mxpa13),
 
 1743      *              plmncu(0:mxpa25,0:mxpa50,0:mxpa13)
 
 1744       COMMON /polmn0/pdifr,phard,psoft,alfah,betah,
 
 1745      *              sigtot,sigqel,sigel,sigine,sighin,sigd,sigdd
 
 1747       parameter(pi=3.141592654d0)
 
 1752       IF (
x.LE.plmncu(0,0,0))
THEN 
 1753         WRITE(6,*) 
' No generator of elastic events ' 
 1754         WRITE(6,*) 
' PLMNCU (0,0,0)  =!= 0 = ',plmncu(0,0,0)
 
 1763           IF (
x.LE.plmncu(l,m,
n)) 
THEN 
 1774       WRITE(6,*)
' RAR.IN SAMPLM,PLMNCU,RND=',plmncu(lmax,mmax,
nmax),
x 
 1775       IF( plmncu(lmax,mmax,
nmax) .GT. 0.1d0 ) 
RETURN 
 1776       IF( plmncu(lmax,0,0) .GT. 0.1d0 ) 
RETURN 
 1777       WRITE(6,*)
' RAR.IN SAMPLM- PROBLEM SEEMS BAD, DECIDE TO STOP' 
 1845       IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
 
 1849       parameter(mxpa25=30,mxpa26=mxpa25+1,mxpa13=13)
 
 1851       parameter(mxpa50=250,mxpa51=mxpa50+1)
 
 1854       COMMON /polmn/plmn(0:mxpa25,0:mxpa50,0:mxpa13),
 
 1855      *              plmncu(0:mxpa25,0:mxpa50,0:mxpa13)
 
 1856       COMMON /polmn0/pdifr,phard,psoft,alfah,betah,
 
 1857      *              sigtot,sigqel,sigel,sigine,sighin,sigd,sigdd
 
 1860       COMMON /histoo/as(50,9),aecm(50,9),asig(50,9),alos(50,9),
 
 1861      *    aloecm(50,9),ndislm(0:mxpa25,0:mxpa50,0:mxpa13)
 
 1863       COMMON /outlev/ioutpo,ioutpa,iouxev,ioucol
 
 1868       common/pompar/alfa,alfap,
a,c,ak
 
 1873       COMMON /sigma/sigsof,bs,zsof,sighar,bh,zhar,sigtrp,bt,ztrp,
 
 1878       COMMON /pomtyp/ipim,icon,isig,lmax,mmax,
nmax,difel,difnu
 
 1879       COMMON /alala/alalam
 
 1880       common/collis/ss,ijproj,ijtar,ptthr,ptthr2,iophrd,ijprlu,ijtalu
 
 1883       parameter(pi=3.141592654d0)
 
 1899      *
' ------ testing the energy dependence of x-sections ----------' 
 1901           IF(ioutpo.GT.-1) 
WRITE(6,*)
 
 1902      *
'          (as function of ALAM i.e.a low mass diffr.parameter)' 
 1903           WRITE(6,*)
' -----------------------------------------------' 
 1907           IF(ioutpo.GT.-1 .OR. iijj.EQ.6)
THEN 
 1911             IF(ioutpo.GT.-1) 
WRITE(6,1008)alalam
 
 1912  1008       
FORMAT (
' ALAM= ',f10.3)
 
 1934               nnmaxi=(13-nmaxi)/(1+nmaxi)
 
 1937             ELSEIF( 
nmax.EQ.2)
THEN 
 1941             ELSEIF( 
nmax.EQ.1)
THEN 
 1948           IF(ipim.LT.1.AND.ipim.GT.9)
THEN 
 1949                  WRITE(6,*) 
'RETURN caused by IPIM=',ipim
 
 1958      *    (
'--- sample distribution for L soft and M hard inelastic' 
 1959      *   , 
' pomerons (string pairs)--- ' 
 1960      *    / 20
x,
'at ECM  = ',f10.2,
' S  = ',f12.1)
 
 1968           IF(icon.EQ.12)go to 100
 
 1971               CALL 
samplx(l2str,m2str,n2str,nn2str,nl2str)
 
 1972                  nnnstr =n2str +(nmaxi+1)*nn2str
 
 1973      *                         +(nnmaxi+1)*(nmaxi+1)*nl2str
 
 1974               ndislm(l2str,m2str,nnnstr)=ndislm(l2str,m2str,nnnstr)+1
 
 1976               CALL 
samplm(l2str,m2str,n2str)
 
 1977               ndislm(l2str,m2str,n2str)=ndislm(l2str,m2str,n2str)+1
 
 1982      *      
'                    with no diffractive contribution' 
 1985      *   
'     ....... vertical: NSTR, horizontal MSTR .........' 
 1986             DO 3344 l=0,min(20,lmaxi)
 
 1987  3344          
WRITE(6,34)l,(ndislm(l,m,0),m=0,20)
 
 1992                WRITE(6,*)
'               WITH NSTR=',
n 
 1993                DO 334 l=0,min(20,lmaxi)
 
 1994                  WRITE(6,34)l,(ndislm(l,m,
n),m=0,20)
 
 1998               jmpa50 = 
int(mxpa50/25)
 
 2000               WRITE(6,*) 
'WIDE PLOT 0<L<',mxpa25,
' 0<M<' 
 2001      &                   ,mxpa50,
' IN STEPS OF ',jmpa50
 
 2004                 WRITE(6,35)l,(ndislm(l,m,
n),m=0,mxpa50,jmpa50)
 
 2009    34         
FORMAT (i5,
':',21i4)
 
 2032       IMPLICIT DOUBLE PRECISION(
a-h,o-
z)
 
 2036       COMMON /outlev/ioutpo,ioutpa,iouxev,ioucol
 
 2038       parameter(mxpa25=30,mxpa26=mxpa25+1,mxpa13=13)
 
 2039       parameter( 
zero=0.d0, 
one=1.d0)
 
 2041       parameter(mxpa50=250,mxpa51=mxpa50+1)
 
 2044       COMMON /polmn/plmn(0:mxpa25,0:mxpa50,0:mxpa13),
 
 2045      *              plmncu(0:mxpa25,0:mxpa50,0:mxpa13)
 
 2046       COMMON /polmn0/pdifr,phard,psoft,alfah,betah,
 
 2047      *              sigtot,sigqel,sigel,sigine,sighin,sigd,sigdd
 
 2050       COMMON /pomtyp/ipim,icon,isig,lmax,mmax,
nmax,difel,difnu
 
 2051       common/pompar/alfa,alfap,
a,c,ak
 
 2052       COMMON /sigma/sigsof,bs,zsof,sighar,bh,zhar,sigtrp,bt,ztrp,
 
 2055       COMMON /topdr/itopd,idumtp
 
 2058       COMMON /histoo/as(50,9),aecm(50,9),asig(50,9),alos(50,9),
 
 2059      *    aloecm(50,9),ndislm(0:mxpa25,0:mxpa50,0:mxpa13)
 
 2061       parameter(pi=3.141592654d0)
 
 2068       IF(ioutpo.GT.-1)istep=7
 
 2079           alos(i,iii)=log10(
s)
 
 2080           aloecm(i,iii)=log10(ecm)
 
 2088           IF(i.EQ.1 .AND. ioutpo.GE.0 ) 
WRITE(6,*)
 
 2089      &     
' s-dep. by integr.with Y,PHI,LMD' 
 2092           IF(i.EQ.1 .AND. ioutpo.GE.0 ) 
WRITE(6,*)
 
 2093      &      
' s-dep. by integr.with Y,PHI,LMD  (DEFAULT)' 
 2105         asig(i,7)=sigtot-sigine
 
 2106         asig(i,8)=sigine-sighin
 
 2108         WRITE (6,1007)ecm,sigtot,sigine,sigel,sigd
 
 2109  1007   
FORMAT (
' ECM,SIGTOT,SIGINE,SIGEL,SIGD',f10.1,4e14.3)
 
 2117   991 
FORMAT (//
' shown as line printer plott'/
' with'/
 
 2119      1 
'  (*) SIGTOT total x-section',
 
 2120      2 
'  (2) SIGINE inelastic x-section'/
 
 2121      3 
'  (3) SIGHIN hard inelastic cross section, one or more jets',
 
 2122      4 
'  (4) SIGSOF   input soft x-section'/
 
 2123      5 
'  (5) SIGHAR   input hard x-sections',
 
 2124      6 
'  (6) SIGTRP   input diffractive x-section (triple pomeron)'/
 
 2125      7 
'  (7) SIGTOT-SIGINE  elastic x-section',
 
 2126      8 
'  (8) SIGINE-SIGHIN  non-hard inelastic x-section, (no jets)'/
 
 2127      9 
'  (9) SIGD   diffractive xross section '/
 
 2128      * 
'  are plotted against LOG(10)of(CMENERGY)' //)
 
 2134       IF (itopd.EQ.1) 
THEN 
 2136    95   
FORMAT(
' NEW FRAME'/
' SET FONT DUPLEX'/
' SET SCALE X LOG'/
 
 2137      *  
' SET LIMITS X FROM 1.0 TO 1E5 Y FROM 0. TO 200'/
 
 2138      *  
' TITLE TOP < TOTAL,INEL. AND HARD (MINIJET) CROSS SECT.<'/
 
 2139      *  
' TITLE BOTTOM <C.M.ENERGY [GEV]<'/
 
 2140      *  
' TITLE < DUAL UNITARIZATION OF SOFT AND HARD CROSS SECTIONS<'/
 
 2141      *  
' TITLE LEFT LINES=-1 <CROSS SECTION [MB]<'/
 
 2142      *  
' TITLE 3 8.5 < SOLID = TOTAL X.S. <'/
 
 2143      *  
' TITLE  < DASHED= INELASTIC X.S. <'/
 
 2144      *  
' TITLE  < DOTTED= HARD X.S.<'/
 
 2145      *  
' TITLE  < DOT-DASH= HARD INPUT X.S. <'/
 
 2146      *  
' TITLE  < DOT-DASH= ELASTIC X.S. <')
 
 2149           IF (iuu.EQ.4)go to 94
 
 2150           IF (iuu.EQ.6)go to 94
 
 2151           IF (iuu.EQ.1) 
WRITE(7,97)
 
 2152    97           
FORMAT (
' SET TEXTURE SOLID')
 
 2153           IF (iuu.EQ.2) 
WRITE(7,98)
 
 2154    98           
FORMAT (
' SET TEXTURE DASHES')
 
 2155           IF (iuu.EQ.3) 
WRITE(7,99)
 
 2156    99           
FORMAT (
' SET TEXTURE DOTS')
 
 2157           IF (iuu.EQ.5) 
WRITE(7,197)
 
 2158   197           
FORMAT (
' SET TEXTURE DOTDASH')
 
 2160             WRITE(7,92)aecm(iu,iuu),asig(iu,iuu)
 
DOUBLE PRECISION function rndm(RDUMMY)
 
subroutine gset(AX, BX, NX, Z, W)
 
typedef int(XMLCALL *XML_NotStandaloneHandler)(void *userData)
 
subroutine samplm(L2STR, M2STR, N2STR)
 
subroutine samplx(L2STR, M2STR, N2STR, NN2STR, NL2STR)
 
subroutine plot(X, Y, N, M, MM, XO, DX, YO, DY)
 
subroutine title(NA, NB, NCA, NCB)
 
static c2_log_p< float_type > & log()
make a *new object 
 
static c2_sqrt_p< float_type > & sqrt()
make a *new object 
 
static c2_exp_p< float_type > & exp()
make a *new object