1!
2! Copyright (C) 2002-2007 Quantum ESPRESSO group
3! This file is distributed under the terms of the
4! GNU General Public License. See the file `License'
5! in the root directory of the present distribution,
6! or http://www.gnu.org/copyleft/gpl.txt .
7!
8!  AB INITIO COSTANT PRESSURE MOLECULAR DYNAMICS
9!  ----------------------------------------------
10!  Car-Parrinello Parallel Program
11!  Carlo Cavazzoni - Gerardo Ballabio
12!  SISSA, Trieste, Italy - 1997-99
13!  Last modified: Tue Nov  2 08:03:11 MET 1999
14!  ----------------------------------------------
15
16
17MODULE pseudopotential
18
19  ! ...   declare modules
20
21  USE kinds,   ONLY: DP
22  USE splines, ONLY: spline_data
23
24  IMPLICIT NONE
25  SAVE
26
27  !  declare module-scope variables
28
29  TYPE (spline_data), ALLOCATABLE ::  vps_sp(:)
30  TYPE (spline_data), ALLOCATABLE :: dvps_sp(:)
31  !
32  TYPE (spline_data), ALLOCATABLE :: rhoc1_sp(:)
33  TYPE (spline_data), ALLOCATABLE :: rhocp_sp(:)
34  !
35  REAL(DP), ALLOCATABLE :: xgtab(:)
36
37  LOGICAL               :: tpstab = .TRUE.
38
39!  ----------------------------------------------
40
41CONTAINS
42
43!  ----------------------------------------------
44
45      SUBROUTINE deallocate_pseudopotential
46
47          USE splines,      ONLY: kill_spline
48          USE local_pseudo, ONLY: deallocate_local_pseudo
49          USE uspp,         ONLY: dvan
50
51          INTEGER :: i, j
52
53          CALL deallocate_local_pseudo()
54          !
55          IF( ALLOCATED( dvan ) ) DEALLOCATE( dvan )
56          IF( ALLOCATED( xgtab ) )  DEALLOCATE( xgtab )
57          !
58          IF( ALLOCATED( vps_sp  ) ) THEN
59            DO i = 1, size(vps_sp)
60              CALL kill_spline(vps_sp(i),'a')
61            END DO
62            DEALLOCATE(vps_sp)
63          END IF
64          !
65          IF( ALLOCATED(dvps_sp) ) THEN
66            DO i = 1, size(dvps_sp)
67              CALL kill_spline(dvps_sp(i),'a')
68            END DO
69            DEALLOCATE(dvps_sp)
70          END IF
71          !
72          IF( ALLOCATED(rhoc1_sp) ) THEN
73            DO i = 1, size(rhoc1_sp)
74              CALL kill_spline(rhoc1_sp(i),'a')
75            END DO
76            DEALLOCATE(rhoc1_sp)
77          END IF
78          !
79          IF( ALLOCATED(rhocp_sp) ) THEN
80            DO i = 1, size(rhocp_sp)
81              CALL kill_spline(rhocp_sp(i),'a')
82            END DO
83            DEALLOCATE(rhocp_sp)
84          END IF
85          !
86          RETURN
87        END SUBROUTINE deallocate_pseudopotential
88
89
90END MODULE pseudopotential
91
92!  ----------------------------------------------
93