1!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2! Copyright 2010. Los Alamos National Security, LLC. This material was ! 3! produced under U.S. Government contract DE-AC52-06NA25396 for Los Alamos ! 4! National Laboratory (LANL), which is operated by Los Alamos National ! 5! Security, LLC for the U.S. Department of Energy. The U.S. Government has ! 6! rights to use, reproduce, and distribute this software. NEITHER THE ! 7! GOVERNMENT NOR LOS ALAMOS NATIONAL SECURITY, LLC MAKES ANY WARRANTY, ! 8! EXPRESS OR IMPLIED, OR ASSUMES ANY LIABILITY FOR THE USE OF THIS ! 9! SOFTWARE. If software is modified to produce derivative works, such ! 10! modified software should be clearly marked, so as not to confuse it ! 11! with the version available from LANL. ! 12! ! 13! Additionally, this program is free software; you can redistribute it ! 14! and/or modify it under the terms of the GNU General Public License as ! 15! published by the Free Software Foundation; version 2.0 of the License. ! 16! Accordingly, this program is distributed in the hope that it will be ! 17! useful, but WITHOUT ANY WARRANTY; without even the implied warranty of ! 18! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General ! 19! Public License for more details. ! 20!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 21 22SUBROUTINE DEALLOCATEALL 23 24 USE SETUPARRAY 25 USE UNIVARRAY 26 USE PPOTARRAY 27 USE NEBLISTARRAY 28 USE MDARRAY 29 USE KSPACEARRAY 30 USE CONSTANTS_MOD 31 USE SPINARRAY 32 USE RESTARTARRAY 33 USE SPARSEARRAY 34 USE XBOARRAY 35 USE COULOMBARRAY 36 USE DIAGARRAY 37 USE MDARRAY 38 USE NONOARRAY 39 USE PUREARRAY 40 USE VIRIALARRAY 41 42 IMPLICIT NONE 43 IF (EXISTERROR) RETURN 44 45 IF( ALLOCATED( ATELE )) DEALLOCATE( ATELE ) 46 IF( ALLOCATED( BASIS )) DEALLOCATE( BASIS ) 47 IF( ALLOCATED( BTYPE )) DEALLOCATE( BTYPE ) 48 IF( ALLOCATED( ELE )) DEALLOCATE( ELE ) 49 IF( ALLOCATED( ELE1 )) DEALLOCATE( ELE1 ) 50 IF( ALLOCATED( ELE2 )) DEALLOCATE( ELE2 ) 51 IF( ALLOCATED( PPELE1 )) DEALLOCATE( PPELE1 ) 52 IF( ALLOCATED( PPELE2 )) DEALLOCATE( PPELE2 ) 53 IF( ALLOCATED( PPELE )) DEALLOCATE( PPELE ) 54 IF( ALLOCATED( DIAG_ZWORK )) DEALLOCATE( DIAG_ZWORK ) 55 IF( ALLOCATED( HK )) DEALLOCATE( HK ) 56 IF( ALLOCATED( HK0 )) DEALLOCATE( HK0 ) 57 IF( ALLOCATED( HKDIAG )) DEALLOCATE( HKDIAG ) 58 IF( ALLOCATED( KBO )) DEALLOCATE( KBO ) 59 IF( ALLOCATED( KEVECS )) DEALLOCATE( KEVECS ) 60 IF( ALLOCATED( KF )) DEALLOCATE( KF ) 61 IF( ALLOCATED( KHTMP )) DEALLOCATE( KHTMP ) 62 IF( ALLOCATED( KORTHOH )) DEALLOCATE( KORTHOH ) 63 IF( ALLOCATED( KXMAT )) DEALLOCATE( KXMAT ) 64 IF( ALLOCATED( SK )) DEALLOCATE( SK ) 65 IF( ALLOCATED( ZBO )) DEALLOCATE( ZBO ) 66 IF( ALLOCATED( ZHEEVD_WORK )) DEALLOCATE( ZHEEVD_WORK ) 67 IF( ALLOCATED( ZHJJ )) DEALLOCATE( ZHJJ ) 68 IF( ALLOCATED( DIAG_IWORK )) DEALLOCATE( DIAG_IWORK ) 69 IF( ALLOCATED( ELEMPOINTER )) DEALLOCATE( ELEMPOINTER ) 70 IF( ALLOCATED( IFAIL )) DEALLOCATE( IFAIL ) 71 IF( ALLOCATED( MATINDLIST )) DEALLOCATE( MATINDLIST ) 72 IF( ALLOCATED( MOLID )) DEALLOCATE( MOLID ) 73 IF( ALLOCATED( NEBCOUL )) DEALLOCATE(NEBCOUL) 74 IF( ALLOCATED( NEBPP )) DEALLOCATE( NEBPP ) 75 IF( ALLOCATED( NEBTB )) DEALLOCATE( NEBTB ) 76 IF( ALLOCATED( NONO_IWORK )) DEALLOCATE( NONO_IWORK ) 77 IF( ALLOCATED( PPTABLENGTH )) DEALLOCATE( PPTABLENGTH ) 78 IF( ALLOCATED( RX )) DEALLOCATE( RX ) 79 IF( ALLOCATED( RXTMP )) DEALLOCATE( RXTMP ) 80 IF( ALLOCATED( SIGNLIST )) DEALLOCATE( SIGNLIST ) 81 IF( ALLOCATED( SPININDLIST )) DEALLOCATE( SPININDLIST ) 82 IF( ALLOCATED( TOTNEBCOUL )) DEALLOCATE( TOTNEBCOUL ) 83 IF( ALLOCATED( TOTNEBPP )) DEALLOCATE( TOTNEBPP ) 84 IF( ALLOCATED( TOTNEBTB )) DEALLOCATE( TOTNEBTB ) 85 IF( ALLOCATED( XB )) DEALLOCATE( XB ) 86 IF( ALLOCATED( ZHEEVD_IWORK )) DEALLOCATE( ZHEEVD_IWORK ) 87 IF( ALLOCATED( ATOCC )) DEALLOCATE( ATOCC ) 88 IF( ALLOCATED( BO )) DEALLOCATE( BO ) 89 IF( ALLOCATED( BOND )) DEALLOCATE( BOND ) 90 IF( ALLOCATED( BOZERO )) DEALLOCATE( BOZERO ) 91 IF( ALLOCATED( BO_PADDED )) DEALLOCATE( BO_PADDED ) 92 IF( ALLOCATED( CHEMPOT_PNK )) DEALLOCATE( CHEMPOT_PNK ) 93 IF( ALLOCATED( COSLIST )) DEALLOCATE( COSLIST ) 94 IF( ALLOCATED( COULOMBV )) DEALLOCATE( COULOMBV ) 95 IF( ALLOCATED( CPLIST )) DEALLOCATE( CPLIST ) 96 IF( ALLOCATED( CR )) DEALLOCATE( CR ) 97 IF( ALLOCATED( DELTAQ )) DEALLOCATE( DELTAQ ) 98 IF( ALLOCATED( DELTASPIN )) DEALLOCATE( DELTASPIN ) 99 IF( ALLOCATED( DIAG_RWORK )) DEALLOCATE( DIAG_RWORK ) 100 IF( ALLOCATED( DIAG_WORK )) DEALLOCATE( DIAG_WORK ) 101 IF( ALLOCATED( DOWNEVALS )) DEALLOCATE( DOWNEVALS ) 102 IF( ALLOCATED( DOWNEVECS )) DEALLOCATE( DOWNEVECS ) 103 IF( ALLOCATED( EHIST )) DEALLOCATE( EHIST ) 104 IF( ALLOCATED( EVALS )) DEALLOCATE( EVALS ) 105 IF( ALLOCATED( EVECS )) DEALLOCATE( EVECS ) 106 IF( ALLOCATED( F )) DEALLOCATE( F ) 107 IF( ALLOCATED( FCOUL )) DEALLOCATE( FCOUL ) 108 IF( ALLOCATED( FPP )) DEALLOCATE( FPP ) 109 IF( ALLOCATED( FPUL )) DEALLOCATE( FPUL ) 110 IF( ALLOCATED( FRANPREV )) DEALLOCATE( FRANPREV ) 111 IF( ALLOCATED( FSCOUL )) DEALLOCATE( FSCOUL ) 112 IF( ALLOCATED( FSSPIN )) DEALLOCATE( FSSPIN ) 113 IF( ALLOCATED( FPLUSD )) DEALLOCATE( FPLUSD ) 114 IF( ALLOCATED( FTOT )) DEALLOCATE( FTOT ) 115 IF( ALLOCATED( H )) DEALLOCATE( H ) 116 IF( ALLOCATED( H0 )) DEALLOCATE( H0 ) 117 IF( ALLOCATED( H2VECT )) DEALLOCATE( H2VECT ) 118 IF( ALLOCATED( HDIAG )) DEALLOCATE( HDIAG ) 119 IF( ALLOCATED( HDOWN )) DEALLOCATE( HDOWN ) 120 IF( ALLOCATED( HED )) DEALLOCATE( HED ) 121 IF( ALLOCATED( HEF )) DEALLOCATE( HEF ) 122 IF( ALLOCATED( HEP )) DEALLOCATE( HEP ) 123 IF( ALLOCATED( HES )) DEALLOCATE( HES ) 124 IF( ALLOCATED( HJJ )) DEALLOCATE( HJJ ) 125 IF( ALLOCATED( HR0 )) DEALLOCATE( HR0 ) 126 IF( ALLOCATED( HUBBARDU )) DEALLOCATE( HUBBARDU ) 127 IF( ALLOCATED( HUP )) DEALLOCATE( HUP ) 128 IF( ALLOCATED( KEVALS )) DEALLOCATE( KEVALS ) 129 IF( ALLOCATED( LCNSHIFT )) DEALLOCATE( LCNSHIFT ) 130 IF( ALLOCATED( MASS )) DEALLOCATE( MASS ) 131 IF( ALLOCATED( MYCHARGE )) DEALLOCATE( MYCHARGE ) 132 IF( ALLOCATED( NONOTMP )) DEALLOCATE( NONOTMP ) 133 IF( ALLOCATED( NONO_EVALS )) DEALLOCATE( NONO_EVALS ) 134 IF( ALLOCATED( NONO_WORK )) DEALLOCATE( NONO_WORK ) 135 IF( ALLOCATED( OLDDELTAQS )) DEALLOCATE( OLDDELTAQS ) 136 IF( ALLOCATED( OLDDELTASPIN )) DEALLOCATE( OLDDELTASPIN ) 137 IF( ALLOCATED( ORTHOH )) DEALLOCATE( ORTHOH ) 138 IF( ALLOCATED( ORTHOHDOWN )) DEALLOCATE( ORTHOHDOWN ) 139 IF( ALLOCATED( ORTHOHUP )) DEALLOCATE( ORTHOHUP ) 140 IF( ALLOCATED( ORTHORHO )) DEALLOCATE( ORTHORHO ) 141 IF( ALLOCATED( OVERL )) DEALLOCATE( OVERL ) 142 IF( ALLOCATED( PAIR )) DEALLOCATE( PAIR ) 143 IF( ALLOCATED( PHIST )) DEALLOCATE( PHIST ) 144 IF( ALLOCATED( PHISTX )) DEALLOCATE( PHISTX ) 145 IF( ALLOCATED( PHISTY )) DEALLOCATE( PHISTY ) 146 IF( ALLOCATED( PHISTZ )) DEALLOCATE( PHISTZ ) 147 IF( ALLOCATED( PNK )) DEALLOCATE( PNK ) 148 IF( ALLOCATED( POTCOEF )) DEALLOCATE( POTCOEF ) 149 IF( ALLOCATED( PPR )) DEALLOCATE( PPR ) 150 IF( ALLOCATED( PPSPL )) DEALLOCATE( PPSPL ) 151 IF( ALLOCATED( PPVAL )) DEALLOCATE( PPVAL ) 152 IF( ALLOCATED( QLIST )) DEALLOCATE( QLIST ) 153 IF( ALLOCATED( RESPCHI )) DEALLOCATE( RESPCHI ) 154 IF( ALLOCATED( RHODOWN )) DEALLOCATE( RHODOWN ) 155 IF( ALLOCATED( RHODOWNZERO )) DEALLOCATE( RHODOWNZERO ) 156 IF( ALLOCATED( RHOUP )) DEALLOCATE( RHOUP ) 157 IF( ALLOCATED( RHOUPZERO )) DEALLOCATE( RHOUPZERO ) 158 IF( ALLOCATED( SH2 )) DEALLOCATE( SH2 ) 159 IF( ALLOCATED( SINLIST )) DEALLOCATE( SINLIST ) 160 IF( ALLOCATED( SMAT )) DEALLOCATE( SMAT ) 161 IF( ALLOCATED( SPINLIST )) DEALLOCATE( SPINLIST ) 162 IF( ALLOCATED( SPINTMP )) DEALLOCATE( SPINTMP ) 163 IF( ALLOCATED( SPIN_PNK )) DEALLOCATE( SPIN_PNK ) 164 IF( ALLOCATED( THIST )) DEALLOCATE( THIST ) 165 IF( ALLOCATED( TMPBODIAG )) DEALLOCATE( TMPBODIAG ) 166 IF( ALLOCATED( TMPRHODOWN )) DEALLOCATE( TMPRHODOWN ) 167 IF( ALLOCATED( TMPRHOUP )) DEALLOCATE( TMPRHOUP ) 168 IF( ALLOCATED( TWOXX2 )) DEALLOCATE( TWOXX2 ) 169 IF( ALLOCATED( UMAT )) DEALLOCATE( UMAT ) 170 IF( ALLOCATED( UPEVALS )) DEALLOCATE( UPEVALS ) 171 IF( ALLOCATED( UPEVECS )) DEALLOCATE( UPEVECS ) 172 IF( ALLOCATED( V )) DEALLOCATE( V ) 173 IF( ALLOCATED( VHIST )) DEALLOCATE( VHIST ) 174 IF( ALLOCATED( WDD )) DEALLOCATE( WDD ) 175 IF( ALLOCATED( WFF )) DEALLOCATE( WFF ) 176 IF( ALLOCATED( WORK )) DEALLOCATE( WORK ) 177 IF( ALLOCATED( WPP )) DEALLOCATE( WPP ) 178 IF( ALLOCATED( WSS )) DEALLOCATE( WSS ) 179 IF( ALLOCATED( X2 )) DEALLOCATE( X2 ) 180 IF( ALLOCATED( X2DOWN )) DEALLOCATE( X2DOWN ) 181 IF( ALLOCATED( X2HRHO )) DEALLOCATE( X2HRHO ) 182 IF( ALLOCATED( X2UP )) DEALLOCATE( X2UP ) 183 IF( ALLOCATED( XMAT )) DEALLOCATE( XMAT ) 184 IF( ALLOCATED( ZHEEVD_RWORK )) DEALLOCATE( ZHEEVD_RWORK ) 185 IF( ALLOCATED( FSLCN )) DEALLOCATE( FSLCN ) 186 IF( ALLOCATED( ORTHOBO)) DEALLOCATE(ORTHOBO) 187 188 189 ! Stuff for the tabulated integrals 190 IF( ALLOCATED( TABR )) DEALLOCATE( TABR ) 191 IF( ALLOCATED( TABH )) DEALLOCATE( TABH ) 192 IF( ALLOCATED( TABS )) DEALLOCATE( TABS ) 193 IF( ALLOCATED( LENTABINT )) DEALLOCATE( LENTABINT ) 194 IF( ALLOCATED( HSPL )) DEALLOCATE( HSPL ) 195 IF( ALLOCATED( SSPL )) DEALLOCATE( SSPL ) 196 IF( ALLOCATED( HCUT )) DEALLOCATE( HCUT ) 197 IF( ALLOCATED( SCUT )) DEALLOCATE( SCUT ) 198 199 IF ( ALLOCATED(PPELE1) ) DEALLOCATE( PPELE1 ) 200 IF ( ALLOCATED(PPELE2) ) DEALLOCATE( PPELE2 ) 201 IF ( ALLOCATED(PPRK) ) DEALLOCATE( PPRK ) 202 IF ( ALLOCATED(PPAK) ) DEALLOCATE( PPAK ) 203 IF ( ALLOCATED(PPNK) ) DEALLOCATE( PPNK ) 204 205 ! For the dispersion correction 206 IF (ALLOCATED(PPELE)) DEALLOCATE(PPELE) 207 IF (ALLOCATED(RZERO)) DEALLOCATE(RZERO) 208 IF (ALLOCATED(C6)) DEALLOCATE(C6) 209 210 RETURN 211 212END SUBROUTINE DEALLOCATEALL 213