ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-4/src/UseTheForce/doForces.F90
(Generate patch)

Comparing trunk/OOPSE-4/src/UseTheForce/doForces.F90 (file contents):
Revision 2715 by chrisfen, Sun Apr 16 02:51:16 2006 UTC vs.
Revision 2717 by gezelter, Mon Apr 17 21:49:12 2006 UTC

# Line 45 | Line 45
45  
46   !! @author Charles F. Vardeman II
47   !! @author Matthew Meineke
48 < !! @version $Id: doForces.F90,v 1.77 2006-04-16 02:51:16 chrisfen Exp $, $Date: 2006-04-16 02:51:16 $, $Name: not supported by cvs2svn $, $Revision: 1.77 $
48 > !! @version $Id: doForces.F90,v 1.78 2006-04-17 21:49:12 gezelter Exp $, $Date: 2006-04-17 21:49:12 $, $Name: not supported by cvs2svn $, $Revision: 1.78 $
49  
50  
51   module doForces
# Line 585 | Line 585 | contains
585       localError = 0
586       call setLJDefaultCutoff( defaultRcut, defaultDoShift )
587       call setElectrostaticCutoffRadius( defaultRcut, defaultRsw )
588 <     call setCutoffEAM( defaultRcut, localError)
589 <     if (localError /= 0) then
590 <       write(errMsg, *) 'An error has occured in setting the EAM cutoff'
591 <       call handleError("setCutoffs", errMsg)
592 <     end if
588 >     call setCutoffEAM( defaultRcut )
589 >     call setCutoffSC( defaultRcut )
590       call set_switch(GROUP_SWITCH, defaultRsw, defaultRcut)
591       call setHmatDangerousRcutValue(defaultRcut)
592  
# Line 665 | Line 662 | contains
662      if (VisitCutoffsAfterComputing) then
663         call set_switch(GROUP_SWITCH, largestRcut, largestRcut)      
664         call setHmatDangerousRcutValue(largestRcut)
665 +       call setLJsplineRmax(largestRcut)
666 +       call setCutoffEAM(largestRcut)
667 +       call setCutoffSC(largestRcut)
668 +       VisitCutoffsAfterComputing = .false.
669      endif
670  
671  
# Line 975 | Line 976 | contains
976                     rCut = gtypeCutoffMap(groupToGtypeRow(i),groupToGtypeCol(j))%rCut
977                     if (loop .eq. PAIR_LOOP) then
978                        vij = 0.0d0
979 <                      fij(1:3) = 0.0d0
979 >                      fij(1) = 0.0_dp
980 >                      fij(2) = 0.0_dp
981 >                      fij(3) = 0.0_dp
982                     endif
983                    
984                     call get_switch(rgrpsq, sw, dswdr, rgrp, &
# Line 994 | Line 997 | contains
997                           if (skipThisPair(atom1, atom2))  cycle inner
998                          
999                           if ((n_in_i .eq. 1).and.(n_in_j .eq. 1)) then
1000 <                            d_atm(1:3) = d_grp(1:3)
1000 >                            d_atm(1) = d_grp(1)
1001 >                            d_atm(2) = d_grp(2)
1002 >                            d_atm(3) = d_grp(3)
1003                              ratmsq = rgrpsq
1004                           else
1005   #ifdef IS_MPI
# Line 1027 | Line 1032 | contains
1032                                   d_grp, rgrp, rCut)
1033   #endif
1034                              vij = vij + vpair
1035 <                            fij(1:3) = fij(1:3) + fpair(1:3)
1035 >                            fij(1) = fij(1) + fpair(1)
1036 >                            fij(2) = fij(2) + fpair(2)
1037 >                            fij(3) = fij(3) + fpair(3)
1038                           endif
1039                        enddo inner
1040                     enddo
# Line 1387 | Line 1394 | contains
1394      real( kind = dp ) :: d(3), scaled(3)
1395      integer i
1396  
1397 <    d(1:3) = q_j(1:3) - q_i(1:3)
1397 >    d(1) = q_j(1) - q_i(1)
1398 >    d(2) = q_j(2) - q_i(2)
1399 >    d(3) = q_j(3) - q_i(3)
1400  
1401      ! Wrap back into periodic box if necessary
1402      if ( SIM_uses_PBC ) then
# Line 1410 | Line 1419 | contains
1419         else
1420            ! calc the scaled coordinates.
1421  
1413          do i = 1, 3
1414             scaled(i) = d(i) * HmatInv(i,i)
1422  
1423 <             ! wrap the scaled coordinates
1423 >          scaled(1) = d(1) * HmatInv(1,1)
1424 >          scaled(2) = d(2) * HmatInv(2,2)
1425 >          scaled(3) = d(3) * HmatInv(3,3)
1426 >          
1427 >          ! wrap the scaled coordinates
1428 >          
1429 >          scaled(1) = scaled(1) - dnint(scaled(1))
1430 >          scaled(2) = scaled(2) - dnint(scaled(2))
1431 >          scaled(3) = scaled(3) - dnint(scaled(3))
1432  
1433 <             scaled(i) = scaled(i) - anint(scaled(i))
1433 >          ! calc the wrapped real coordinates from the wrapped scaled
1434 >          ! coordinates
1435  
1436 <             ! calc the wrapped real coordinates from the wrapped scaled
1437 <             ! coordinates
1436 >          d(1) = scaled(1)*Hmat(1,1)
1437 >          d(2) = scaled(2)*Hmat(2,2)
1438 >          d(3) = scaled(3)*Hmat(3,3)
1439  
1423             d(i) = scaled(i)*Hmat(i,i)
1424          enddo
1440         endif
1441  
1442      endif
1443  
1444 <    r_sq = dot_product(d,d)
1444 >    r_sq = d(1)*d(1) + d(2)*d(2) + d(3)*d(3)
1445  
1446    end subroutine get_interatomic_vector
1447  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines