ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/branches/development/src/utils/interpolation.F90
(Generate patch)

Comparing trunk/src/utils/interpolation.F90 (file contents):
Revision 939 by gezelter, Thu Apr 20 18:24:24 2006 UTC vs.
Revision 1390 by gezelter, Wed Nov 25 20:02:06 2009 UTC

# Line 6 | Line 6
6   !! redistribute this software in source and binary code form, provided
7   !! that the following conditions are met:
8   !!
9 < !! 1. Acknowledgement of the program authors must be made in any
10 < !!    publication of scientific results based in part on use of the
11 < !!    program.  An acceptable form of acknowledgement is citation of
12 < !!    the article in which the program was described (Matthew
13 < !!    A. Meineke, Charles F. Vardeman II, Teng Lin, Christopher
14 < !!    J. Fennell and J. Daniel Gezelter, "OOPSE: An Object-Oriented
15 < !!    Parallel Simulation Engine for Molecular Dynamics,"
16 < !!    J. Comput. Chem. 26, pp. 252-271 (2005))
17 < !!
18 < !! 2. Redistributions of source code must retain the above copyright
9 > !! 1. Redistributions of source code must retain the above copyright
10   !!    notice, this list of conditions and the following disclaimer.
11   !!
12 < !! 3. Redistributions in binary form must reproduce the above copyright
12 > !! 2. Redistributions in binary form must reproduce the above copyright
13   !!    notice, this list of conditions and the following disclaimer in the
14   !!    documentation and/or other materials provided with the
15   !!    distribution.
# Line 38 | Line 29
29   !! University of Notre Dame has been advised of the possibility of
30   !! such damages.
31   !!
32 + !! SUPPORT OPEN SCIENCE!  If you use OpenMD or its source code in your
33 + !! research, please cite the appropriate papers when you publish your
34 + !! work.  Good starting points are:
35 + !!                                                                      
36 + !! [1]  Meineke, et al., J. Comp. Chem. 26, 252-271 (2005).            
37 + !! [2]  Fennell & Gezelter, J. Chem. Phys. 124, 234104 (2006).          
38 + !! [3]  Sun, Lin & Gezelter, J. Chem. Phys. 128, 24107 (2008).          
39 + !! [4]  Vardeman & Gezelter, in progress (2009).
40   !!
41 + !!
42   !!  interpolation.F90
43   !!
44   !!  Created by Charles F. Vardeman II on 03 Apr 2006.
# Line 46 | Line 46
46   !!  PURPOSE: Generic Spline interpolation routines.
47   !!
48   !! @author Charles F. Vardeman II
49 < !! @version $Id: interpolation.F90,v 1.7 2006-04-20 18:24:24 gezelter Exp $
49 > !! @version $Id: interpolation.F90,v 1.10 2009-11-25 20:02:05 gezelter Exp $
50  
51  
52   module interpolation
# Line 224 | Line 224 | contains
224      cs%b(n) = cs%b(n-1) + h(n-1) * (2.0_dp*cs%c(n-1) + h(n-1)*3.0_dp*cs%d(n-1))
225  
226      if (isUniform) then
227 <       cs%dx_i = 1.0d0 / (x(2) - x(1))
227 >       cs%dx_i = 1.0_dp / (x(2) - x(1))
228      endif
229  
230      return
# Line 252 | Line 252 | contains
252  
253      type(cubicSpline) :: this
254      
255 <    if(associated(this%x)) then
256 <       deallocate(this%x)
257 <       this%x => null()
255 >    if(associated(this%d)) then
256 >       deallocate(this%d)
257 >       this%d => null()
258      end if
259      if(associated(this%c)) then
260         deallocate(this%c)
261         this%c => null()
262      end if
263 +    if(associated(this%b)) then
264 +       deallocate(this%b)
265 +       this%b => null()
266 +    end if
267 +    if(associated(this%y)) then
268 +       deallocate(this%y)
269 +       this%y => null()
270 +    end if
271 +    if(associated(this%x)) then
272 +       deallocate(this%x)
273 +       this%x => null()
274 +    end if
275      
276      this%n = 0
277      
# Line 310 | Line 322 | contains
322      !  Find the interval J = [ cs%x(J), cs%x(J+1) ] that contains
323      !  or is nearest to xval.
324      
325 <    j = MAX(1, MIN(cs%n-1, idint((xval-cs%x(1)) * cs%dx_i) + 1))
325 >    j = MAX(1, MIN(cs%n-1, int((xval-cs%x(1)) * cs%dx_i) + 1))
326      
327      dx = xval - cs%x(j)
328      yval = cs%y(j) + dx*(cs%b(j) + dx*(cs%c(j) + dx*cs%d(j)))
# Line 332 | Line 344 | contains
344      !  or is nearest to xval.
345  
346  
347 <    j = MAX(1, MIN(cs%n-1, idint((xval-cs%x(1)) * cs%dx_i) + 1))
347 >    j = MAX(1, MIN(cs%n-1, int((xval-cs%x(1)) * cs%dx_i) + 1))
348      
349      dx = xval - cs%x(j)
350      yval = cs%y(j) + dx*(cs%b(j) + dx*(cs%c(j) + dx*cs%d(j)))
351  
352 <    dydx = cs%b(j) + dx*(2.0d0 * cs%c(j) + 3.0d0 * dx * cs%d(j))
352 >    dydx = cs%b(j) + dx*(2.0_dp * cs%c(j) + 3.0_dp * dx * cs%d(j))
353        
354      return
355    end subroutine lookupUniformSpline1d

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines