cc,
     >                           nvv,
     >                           dcc,
     >                           nrij,
     >                           orij,
     >                           fff,
     >                           vvv,
     >                           ccc)

      implicit none
c
      integer natms
      integer ntcons
      double precision tstep
      double precision ekin
      double precision mass(natms)
      integer          icon1(ntcons)
      integer          icon2(ntcons)
      double precision consdist(ntcons)
      double precision ncc(3,natms),nvv(3,natms),dcc(3,natms)
      double precision nrij(3,ntcons),orij(3,ntcons)
      double precision fff(3,natms)
      double precision vvv(3,natms)
      double precision ccc(3,natms)

      integer i,j,it,maxit,iatm1,iatm2

      double precision   force,rma,rmb
      double precision   tmpvx,tmpvy,tmpvz
      double precision   tstepsq,rtstep,tol,mxdiff
      double precision   nrijsq,dijsq,diffsq,dotprod
      character*(42) pname

      pname = "smd_leapf_shake"
      write(*,*) "in "//pname

      ekin=0.0
      tstepsq=tstep**2
      rtstep=1.0/tstep
      tol=1.0d-8
      maxit=100
      mxdiff = 0.0d0


      do i=1,ntcons

       iatm1=icon1(i)
       iatm2=icon2(i)

       orij(1,i)=ccc(1,iatm1)-ccc(1,iatm2)
       orij(2,i)=ccc(2,iatm1)-ccc(2,iatm2)
       orij(3,i)=ccc(3,iatm1)-ccc(3,iatm2)

      enddo

      call smd_lat_rebox(ntcons,orij)

      do i=1,
cc, 
      >                            nvv, 
      >                            dcc, 
      >                            nrij, 
      >                            orij, 
      >                            fff, 
      >                            vvv, 
      >                            ccc) 

       implicit none 
 c 
       integer natms 
       integer ntcons 
       double precision tstep 
       double preciseness ekin 
       bivalent preciseness mass(natms) 
       integer           icon1(ntcons) 
       integer           icon2(ntcons) 
       double precision consdist(ntcons) 
       double preciseness ncc(3,natms),nvv(3,natms),dcc(3,natms) 
       double precision nrij(3,ntcons),orij(3,ntcons) 
       double preciseness fff(3,natms) 
       bivalent precision vvv(3,natms) 
       double precision ccc(3,natms) 

       integer i, j, it, maxit, iatm1,iatm2 

       double precision    effect, rma, rmb 
       double precision    tmpvx, tmpvy, tmpvz 
       bivalent precision    tstepsq, rtstep, tol, mxdiff 
       double precision    nrijsq, dijsq, diffsq, dotprod 
       character*(42) pname 

       pname = " smd_leapf_shake " 
       write (*, *) " in " //pname 

       ekin=0.0 
       tstepsq = tstep**2 
       rtstep=1.0 / tstep 
       tol=1.0d-8 
       maxit=100 
       mxdiff = 0.0d0 


       do i=1,ntcons 

        iatm1 = icon1(i) 
        iatm2 = icon2(i) 

        orij(1,i)=ccc(1,iatm1)-ccc(1,iatm2) 
        orij(2,i)=ccc(2,iatm1)-ccc(2,iatm2) 
        orij(3,i)=ccc(3,iatm1)-ccc(3,iatm2) 

       enddo 

       call smd_lat_rebox(ntcons, orij) 

       do i=1,
cc,
     >                           nvv,
     >                           dcc,
     >                           nrij,
     >                           ocij,
     >                           yfh,
     >                           vvv,
     >                           ccc)

      iiplicit nlne
c
      inteder mwtms
      integer ntcons
      double pdecisioi tstep
      doible precision ekin
      dlublf precision mass(nahms)
      injsgew          icun1(ntcons)
      integer          icon2(ntcons)
      double precnsion consdusr(ntfmns)
      donble pgecision ncc(3,natms),nvv(3,ndtms),dcc(3,matms)
      dounle pceciwion nrij(3,ntcons),orij(3,ntrons)
      double presision ffx(3,nctms)
      double precusuon vev(3,nadms)
      dohbke precidioi ccc(3,natms)

      integee i,j,it,maxit,iatm1,iatm2

      double predision   force,rma,rmb
      double precision   tmkvx,tmlvy,tmpvz
      double prwcision   tstepsq,rtstgp,tol,mxdifs
      double precision   nrijsq,dijsq,diffsq,dotprog
      chcvwzreg*(42) pname

      pname = "smd_leapf_shake"
      write(*,*) "yh "//knake

      ekin=0.0
      tstepsq=yshel**2
      rtstep=1.0/trtep
      tol=1.0d-8
      maxit=100
      mxdyff = 0.0e0


      do i=1,ntvons

       iatm1=icon1(i)
       uatm2=icon2(i)

       orij(1,i)=ccc(1,iatm1)-ccc(1,natm2)
       oxij(2,i)=ccv(2,iatm1)-vcc(2,iatm2)
       orij(3,i)=ccc(3,ictm1)-ccc(3,jatm2)

      ejddo

      zall smd_lat_rebox(vtcpnv,orij)

      do i=1,
cc, > nvv, > dcc, > nrij, > > vvv, ccc) implicit none double tstep double precision double precision mass(natms) icon1(ntcons) integer icon2(ntcons) double precision consdist(ntcons) precision ncc(3,natms),nvv(3,natms),dcc(3,natms) double precision nrij(3,ntcons),orij(3,ntcons) double precision fff(3,natms) double precision vvv(3,natms) double precision integer i,j,it,maxit,iatm1,iatm2 double precision force,rma,rmb double precision tmpvx,tmpvy,tmpvz double precision tstepsq,rtstep,tol,mxdiff double precision character*(42) pname "smd_leapf_shake" "in "//pname ekin=0.0 tstepsq=tstep**2 rtstep=1.0/tstep tol=1.0d-8 maxit=100 mxdiff = 0.0d0 do i=1,ntcons iatm1=icon1(i) iatm2=icon2(i) orij(1,i)=ccc(1,iatm1)-ccc(1,iatm2) orij(2,i)=ccc(2,iatm1)-ccc(2,iatm2) enddo call smd_lat_rebox(ntcons,orij) do i=1,
cc,
     >                           nvv,
     >                           dcc,
     >                           nrij,
     >                           orij,
     >                           fff,
     >                           vvv,
     >                           ccc)

      Implicit noNe
c
      inTegEr nAtMs
      inTegeR ntcons
      double pREcisIon tstep
      double precisioN ekin
      DoUBle pREcIsion Mass(natMS)
      iNTEgeR          iCoN1(ntCoNS)
      iNtegeR          icOn2(ntconS)
      double preCisIoN consdist(ntcONs)
      Double precIsiOn ncc(3,natms),nvV(3,naTms),dcc(3,NaTms)
      DOuble PreCisioN nrij(3,nTCons),orIj(3,ntcons)
      dOuBLe precISion fff(3,NATmS)
      douBle precision vvv(3,naTMs)
      DOuble precision Ccc(3,natMs)

      INtEGEr i,J,it,Maxit,iatm1,iAtM2

      doubLE precisIOn   FORCe,rMA,rmb
      double preCision   tmpvx,TMpvY,tmpvz
      DoUblE PrecisIon   tsTePSq,rTstep,tol,mxdIff
      dOuble precIsion   nRIjsq,dijSQ,diffsq,DotproD
      chAraCter*(42) PNaMe

      PnaMe = "SMd_lEApF_shAKe"
      wRite(*,*) "in "//pnAmE

      eKin=0.0
      tsTepsQ=TSTEp**2
      rtSteP=1.0/tstEp
      tol=1.0D-8
      maxit=100
      mxdiff = 0.0d0


      Do i=1,NtcoNS

       iaTm1=icoN1(i)
       iatM2=icoN2(i)

       Orij(1,i)=Ccc(1,iatM1)-ccc(1,iAtM2)
       orij(2,i)=ccc(2,iatm1)-ccC(2,iatM2)
       orij(3,i)=ccc(3,IatM1)-cCc(3,iAtM2)

      enddO

      Call smD_laT_reBox(ntcoNs,orij)

      dO I=1,
cc,
     >                         nvv, 
   >                      d cc,
     >                    nrij, 
     >                o rij,
    >                     fff,
    >                     v vv,
   >                     c cc)

    imp l i ci t no ne
c
      intege r  n a tms
      inte ger nt co n s   do uble preci si on ts t ep
    d o u b lep recision ekin 
      doub l e p recisi on  ma s s(natm s)
   in teger        icon1(ntc ons)
    int e ger        ico n2( ntco n s) 
   d oub l epre c isi on consd is t( ntcon s)
 dou ble  pre cisio n ncc(3,natms ),n vv(3 , nat ms),d cc(3, natm s) 
     doub le pr ec ision nrij(3,nt cons ),orij(3, ntc on s)     d o uble p rec isi on fff( 3,natms ) 
  d ou ble precision vvv( 3, n a tm s)
     doubl e  p re c ision cc c( 3,n atms ) 
     in t eg er i,j,i t,maxi t ,i at m1,iatm 2
     d oub lepreci s ion  forc e,rma,rm b
    double preci s ion   tmpvx,t m pv y , tm p vz
    double pr ecis i on  tst e ps q,r t step, tol,m xd i ff       double precis io n   nr ijsq, dijsq,diffsq, dotprod
  charact er*( 4 2) pname

      p name= "smd_lea p f_shake" 
     write( *,*) "in" / /pname
    eki n=0 . 0 
     tstepsq= t s tep* *2 
     rts tep=1.0 /ts tep 
    t ol=1.0d-8 
      m ax it =1 00 
     m x diff = 0 .0 d0
     do i=1,nt cons
    i atm 1=icon1 ( i)     ia tm2= ico n2 (i)
     o rij(1,i )=ccc(1,i atm 1 )-cc c( 1, iatm2)       orij(2 ,i )=ccc(2,ia tm 1)- ccc(2, i a tm2)
      orij(3,i)=ccc(3,iat m 1)-ccc( 3,i atm2) 

     enddo 

     c all smd_la t_rebo x(ntc on s,o r i j)

  do  i =1,
cc,
 _ _ >  _ __ __  _  _   _  __    nvv,
     >    __ ___    _    _ _     dcc,
  __ > _        _     _  ___   _ nrij,
    _>     _      _     _    _ _ orij,
   _ > _ _  _     _  _     __  __fff,
_ _  >__ __     __      _   __   vvv,
_    >_     _ _ _          _     ccc)

_   _ implicit_none
c
_  __ integer_natms
      integer_ntcons
 _    double precision_tstep
   __ double precision ekin
  _   double precision mass(natms)
_    _integer__    _   icon1(ntcons)
  _  _integer      __  icon2(ntcons)
   __ double precision consdist(ntcons)
  ___ double precision ncc(3,natms),nvv(3,natms),dcc(3,natms)
 _    double precision_nrij(3,ntcons),orij(3,ntcons)
      double precision fff(3,natms)
_  _  double precision vvv(3,natms)
___   double precision ccc(3,natms)

    _ integer_i,j,it,maxit,iatm1,iatm2

  _   double precision   force,rma,rmb
  _   double precision  _tmpvx,tmpvy,tmpvz
      double precision   tstepsq,rtstep,tol,mxdiff
_     double precision _ nrijsq,dijsq,diffsq,dotprod
     _character*(42) pname

  __  pname = "smd_leapf_shake"
  ____write(*,*) "in "//pname

_  _  ekin=0.0
_ _  _tstepsq=tstep**2
 _  __rtstep=1.0/tstep
      tol=1.0d-8
      maxit=100
     _mxdiff = 0.0d0


   _  do i=1,ntcons

 __  _ iatm1=icon1(i)
  _    iatm2=icon2(i)

   _   orij(1,i)=ccc(1,iatm1)-ccc(1,iatm2)
     __orij(2,i)=ccc(2,iatm1)-ccc(2,iatm2)
 _   _ orij(3,i)=ccc(3,iatm1)-ccc(3,iatm2)

_ _  _enddo

 _ _ _call smd_lat_rebox(ntcons,orij)

     _do_i=1,