1! 2! Copyright (C) 2002-2005 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! 9!---------------------------------------------------------------------------- 10SUBROUTINE deallocate_modules_var() 11 !---------------------------------------------------------------------------- 12 ! 13 USE uspp, ONLY : beta, dbeta, qq_nt 14 USE core, ONLY : rhocb 15 ! 16 USE core, ONLY : deallocate_core 17 USE uspp, ONLY : deallocate_uspp 18 USE electrons_base, ONLY : deallocate_elct 19 USE efield_module, ONLY : deallocate_efield 20 USE ensemble_dft, ONLY : deallocate_ensemble_dft 21 USE cg_module, ONLY : deallocate_cg 22 USE gvect, ONLY : deallocate_gvect 23 USE gvecw, ONLY : deallocate_gvecw 24 USE smallbox_gvec, ONLY : deallocate_smallbox_gvec 25 USE local_pseudo, ONLY : deallocate_local_pseudo 26 USE qgb_mod, ONLY : deallocate_qgb_mod 27 USE betax, ONLY : deallocate_betax 28 USE wavefunctions, ONLY : deallocate_wavefunctions 29 USE wannier_module, ONLY : deallocate_wannier 30 USE fft_types, ONLY : fft_type_descriptor, fft_type_deallocate 31 USE fft_smallbox_type, ONLY : fft_box_deallocate 32 USE fft_base, ONLY : dfftp, dffts, dfftb 33 USE electrons_module, ONLY : deallocate_electrons 34 USE ions_base, ONLY : deallocate_ions_base 35 ! USE polarization, ONLY : deallocate_polarization ! obsolescent 36 USE cp_main_variables, ONLY : deallocate_mainvar 37 USE pseudopotential, ONLY : deallocate_pseudopotential 38 USE ions_nose, ONLY : ions_nose_deallocate 39 USE metagga_cp, ONLY : deallocate_metagga 40 USE ions_positions, ONLY : deallocate_ions_positions 41 USE kohn_sham_states, ONLY : ks_states_closeup 42 USE ldaU_cp, ONLY : deallocate_lda_plus_u 43 USE step_penalty, ONLY : deallocate_step_pen 44 USE fft_base, ONLY : pstickdealloc 45 46 ! 47 IMPLICIT NONE 48 ! 49 ! 50 IF ( ALLOCATED( beta ) ) DEALLOCATE( beta ) 51 IF ( ALLOCATED( qq_nt ) ) DEALLOCATE( qq_nt ) 52 IF ( ALLOCATED( rhocb ) ) DEALLOCATE( rhocb ) 53 IF ( ALLOCATED( dbeta ) ) DEALLOCATE( dbeta ) 54 ! 55 CALL deallocate_mainvar() 56 CALL deallocate_ions_positions() 57 CALL deallocate_efield( ) 58 CALL deallocate_ensemble_dft() 59 CALL deallocate_cg( ) 60 CALL deallocate_core() 61 CALL deallocate_uspp() 62 CALL deallocate_gvect(.TRUE.) ! Value .true. is hard coded in init.f90:195, 63 ! here it prevents double free of gg variable. 64 CALL deallocate_gvecw() 65 CALL deallocate_smallbox_gvec( ) 66 CALL deallocate_local_pseudo() 67 CALL deallocate_qgb_mod() 68 CALL deallocate_betax() 69 ! 70 CALL fft_type_deallocate( dfftp ) 71 CALL fft_type_deallocate( dffts ) 72 CALL fft_box_deallocate( dfftb ) 73 CALL pstickdealloc( ) 74 ! 75 CALL deallocate_ions_base() 76 ! 77 CALL deallocate_wavefunctions() 78 CALL deallocate_wannier() 79 ! 80 CALL deallocate_elct() 81 CALL deallocate_electrons() 82 ! CALL deallocate_polarization() ! obsolescent 83 CALL deallocate_pseudopotential() 84 ! 85 CALL deallocate_metagga() 86 CALL ions_nose_deallocate() 87 CALL ks_states_closeup() 88 ! 89 CALL deallocate_lda_plus_u() 90 CALL deallocate_step_pen() 91 ! 92 RETURN 93 ! 94END SUBROUTINE deallocate_modules_var 95