anchor.diff:              x = x + 0.5*(s_length-Sdech)*xp
               y = y + 0.5*(s_length-Sdech)*yp
             else
  -            PROC='CH'
               iProc = proc_CH
               xpin=XP
               ypin=YP
  
positive.code:       endif
  
        if ( ichoix .eq. 3 ) then   !p-p elastic
          PROC='ch_ppe'
          iProc = proc_ch_ppe
          t = -log(dble(rndm4()))/bpp
        endif
  
        if ( ichoix .eq. 4 ) then   !single diffractive
          PROC='ch_diff'
          iProc = proc_ch_diff
          xm2 = exp( dble(rndm4()) * xln15s )
          PC = PC  *(1.d0 - xm2/ecmsq)
  
negative.code:         s=s/2
          x=x0+xp*s
          y=y0+yp*s
          iProc = proc_AM
          CALL CALC_ION_LOSS_CRY(IS,is2,PC,AM_Length,DESt)
          CALL MOVE_AM_(IS,is2,NAM,Am_Length,DESt,DLYi(IS2),dlri(is2),xp,yp,PC)
  