--- trunk/OOPSE/libmdtools/calc_LJ_FF.F90 2003/07/16 16:40:03 623 +++ trunk/OOPSE/libmdtools/calc_LJ_FF.F90 2003/07/16 21:30:56 626 @@ -2,7 +2,7 @@ !! Corresponds to the force field defined in lj_FF.cpp !! @author Charles F. Vardeman II !! @author Matthew Meineke -!! @version $Id: calc_LJ_FF.F90,v 1.9 2003-07-16 16:40:03 chuckv Exp $, $Date: 2003-07-16 16:40:03 $, $Name: not supported by cvs2svn $, $Revision: 1.9 $ +!! @version $Id: calc_LJ_FF.F90,v 1.10 2003-07-16 21:30:54 mmeineke Exp $, $Date: 2003-07-16 21:30:54 $, $Name: not supported by cvs2svn $, $Revision: 1.10 $ module lj use definitions @@ -22,6 +22,8 @@ module lj integer, save :: LJ_Mixing_Policy real(kind=DP), save :: LJ_rcut + logical, save :: havePolicy = .false., haveCut = .false. + !! Logical has lj force field module been initialized? @@ -29,7 +31,7 @@ module lj !! Public methods and data public :: init_LJ_FF - public :: LJ_new_rcut + public :: setCutoffLJ public :: do_lj_pair type :: lj_mixed_params @@ -45,17 +47,17 @@ module lj real ( kind = dp ) :: delta = 0.0_dp + end type lj_mixed_params type (lj_mixed_params), dimension(:,:), pointer :: ljMixed contains - subroutine init_LJ_FF(mix_Policy, rcut, status) + subroutine init_LJ_FF(mix_Policy, status) integer, intent(in) :: mix_Policy integer, intent(out) :: status integer :: myStatus - real(kind=dp) :: rcut if (mix_Policy == LB_MIXING_RULE) then LJ_Mixing_Policy = LB_MIXING_RULE @@ -68,38 +70,44 @@ contains return endif endif - - LJ_rcut = rcut - status = 0 - call createMixingList(myStatus) - if (myStatus /= 0) then - status = -1 - return + havePolicy = .true. + + if (haveCut) then + status = 0 + call createMixingList(myStatus) + if (myStatus /= 0) then + status = -1 + return + end if + + LJ_FF_initialized = .true. end if - - LJ_FF_initialized = .true. - + end subroutine init_LJ_FF - subroutine LJ_new_rcut(rcut, status) + subroutine setCutoffLJ(rcut, status) integer :: status, myStatus real(kind=dp) :: rcut status = 0 - if ( rcut .ne. LJ_rcut ) then - LJ_rcut = rcut + LJ_rcut = rcut + haveCut = .true. + + if (havePolicy) then + status = 0 call createMixingList(myStatus) if (myStatus /= 0) then status = -1 return end if - endif + + LJ_FF_initialized = .true. + end if - return - end subroutine LJ_new_rcut + end subroutine setCutoffLJ subroutine createMixingList(status) integer :: nAtypes