anchor.diff:  
   ! For calculation of dE/dX due to ionization
   
  -      double precision rho(4),z(4),Ime(4),anuc_cry2(4) !Daniele: material parameters for dE/dX calculation  
  +      double precision rho(4),z(4),Ime(4),anuc_cry2(4) !Daniele: material parameters for dE/dX calculation
         double precision k,re,me,mp !Daniele: parameters for dE/dX calculation (const,electron radius,el. mass, prot.mass)
   
         real emr_cry(4) !nuclear radius for Ruth scatt.
   
         common/ion/rho,z,Ime,k,re,me,mp,anuc_cry2,emr_cry
   
  -      data (rho(i),i=1,4)/2.33d0,0.0d0,0.0d0,0.0d0/  !material density [g/cm^3] 
  +      data (rho(i),i=1,4)/2.33d0,0.0d0,0.0d0,0.0d0/  !material density [g/cm^3]
         data (z(i),i=1,4)/14.0d0,0.0d0,0.0d0,0.0d0/    !atomic number
         data (Ime(i),i=1,4)/173.0d-6,0.0d0,0.0d0,0.0d0/!mean exitation energy [MeV]
         data (anuc_cry2(i),i=1,4)/28.08d0,0.0d0,0.0d0,0.0d0/     !implemented only Si
  
positive.code:                  PROC_dan=5
                 elseif (PROC(1:2).eq.'DC')then
                   PROC_dan=6
                 elseif (PROC(1:3).eq.'pne')then                
                   PROC_dan=7
                 elseif (PROC(1:3).eq.'ppe')then                
                   PROC_dan=8
                 elseif (PROC(1:4).eq.'diff')then  
                   PROC_dan=9
                 elseif (PROC(1:4).eq.'ruth')then  
                   PROC_dan=10
                 elseif (PROC(1:4).eq.'TRVR')then
                   PROC_dan=100
  
negative.code:         end do
          u(ii2) = s
        end do
  !
        c  =   362436./16777216.
        cd =  7654321./16777216.
        cm = 16777213./16777216.
  !
        return
        END
  !.**************************************************************************
  !
  !.**************************************************************************
        subroutine RNDMIN(uin,cin,cdin,cmin,iin,jin)
        REAL uin(97),cin,cdin,cmin
        REAL u,c,cd,cm
        COMMON/RANDOM/ u(97),c,cd,cm,i,j
  !
        do kkk = 1,97
          u(kkk) = uin(kkk)
        end do
  !
        c  = cin
        cd = cdin
        cm = cmin
        i  = iin
        j  = jin
  !
        return
        END
  !.**************************************************************************
  !
  !.**************************************************************************
        subroutine RNDMOU(UOUT,COUT,CDOUT,CMOUT,IOUT,JOUT)
        REAL uout(97),cout,cdout,cmout
        REAL u,c,cd,cm
        COMMON/RANDOM/ u(97),c,cd,cm,i,j
  !
        do kkk = 1,97
          uout(kkk) = u(kkk)
        end do
  !
        COUT  = C
        CDOUT = CD
        CMOUT = CM
        IOUT  = I
        JOUT  = J
  !
        return
        END
  !.**************************************************************************
  !
  !.**************************************************************************
        subroutine RNDMTE(IO)
  !
  !.    *******************************************************************
  !.    *  SUBROUTINE RNDMTE(IO)
  !.    *******************************************************************
  !
        REAL uu(97)
        REAL u(6),x(6),d(6)
        DATA u / 6533892.0 , 14220222.0 ,  7275067.0 ,  6172232.0 ,  8354498.0 , 10633180.0 /
  !
        call RNDMOU(UU,CC,CCD,CCM,II,JJ)
        call RNDMST(12,34,56,78)
  !
        do ii1 = 1,20000
          xx = rndm4()
        end do
  !
        sd = 0.0
        do ii2 = 1,6
          x(II2)  = 4096.*(4096.*rndm4())
          d(II2)  = x(II2)-u(II2)
          sd = sd+d(II2)
        end do
  !
        call RNDMIN(uu,cc,ccd,ccm,ii,jj)
        if (IO.EQ.1 .OR. SD .NE. 0.) write(6,10) (u(I),x(I),d(I),i=1,6)
  !
   10   format('  === TEST OF THE RANDOM-GENERATOR ===',/, &
       &       '    EXPECTED VALUE    CALCULATED VALUE     DIFFERENCE',/, &
       &       6(F17.1,F20.1,F15.3,/), &
       &       '  === END OF TEST ;', &
       &       '  GENERATOR HAS THE SAME STATUS AS BEFORE CALLING RNDMTE')
        return
        END
  
  