1! 2! Copyright (C) 2001-2020 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!--------------------------------------------------------------------------- 9FUNCTION set_hubbard_n( psd ) RESULT( hubbard_n ) 10 !--------------------------------------------------------------------------- 11 ! 12 USE io_global, ONLY : stdout 13 ! 14 IMPLICIT NONE 15 ! 16 INTEGER :: hubbard_n 17 CHARACTER(LEN=2), INTENT(IN) :: psd 18 ! 19 ! 20 SELECT CASE( TRIM(ADJUSTL(psd)) ) 21 ! 22 ! ... transition metals, 4-th row 23 ! 24 CASE( 'Ti', 'V', 'Cr', 'Mn', 'Fe', 'Co', 'Ni', 'Cu', 'Zn') 25 hubbard_n=3 26 ! 27 ! ... transition metals, 5-th row 28 ! 29 CASE( 'Zr', 'Nb', 'Mo', 'Tc', 'Ru', 'Rh', 'Pd', 'Ag', 'Cd') 30 hubbard_n=4 31 ! 32 ! ... transition metals, 6-th row 33 ! 34 CASE( 'Hf', 'Ta', 'W', 'Re', 'Os', 'Ir', 'Pt', 'Au', 'Hg' ) 35 ! 36 hubbard_n = 5 37 ! 38 ! 39 ! ... rare earths (lanthanoid) 40 ! 41 CASE('Ce','Pr','Nd','Pm','Sm','Eu','Gd','Tb','Dy','Ho','Er','Tm','Yb','Lu' ) 42 ! 43 hubbard_n = 4 44 ! ... rare earths (actinoids ) 45 CASE ('Th','Pa','U', 'Np','Pu','Am','Cm','Bk','Cf','Es','Fm','Md','No','Lr' ) 46 ! 47 hubbard_n = 5 48 ! 49 ! 50 ! ... other elements 51 ! 52 CASE( 'H' ) 53 ! 54 hubbard_n = 1 55 ! 56 CASE( 'C', 'N', 'O' ) 57 ! 58 hubbard_n = 2 59 ! 60 CASE( 'Ga' ) 61 ! 62 hubbard_n = 3 63 ! 64 CASE ( 'In', 'As' ) 65 ! 66 hubbard_n = 4 67 ! 68 CASE DEFAULT 69 ! 70 hubbard_n = -1 71 ! 72 WRITE( stdout, '(/,"psd = ",A,/)' ) psd 73 ! 74 CALL errore( 'set_hubbard_n', 'pseudopotential not yet inserted', 1 ) 75 ! 76 END SELECT 77 ! 78 RETURN 79 ! 80END FUNCTION set_hubbard_n 81!--------------------------------------------------------------------------- 82 83!--------------------------------------------------------------------------- 84FUNCTION set_hubbard_n_back( psd ) RESULT( hubbard_n_back ) 85 !--------------------------------------------------------------------------- 86 ! 87 ! IT: Note, currently this routine is not used anywhere. The data reported 88 ! here is not complete. 89 ! 90 USE io_global, ONLY : stdout 91 ! 92 IMPLICIT NONE 93 ! 94 INTEGER :: hubbard_n_back 95 CHARACTER(LEN=2), INTENT(IN) :: psd 96 ! 97 ! 98 SELECT CASE( TRIM(ADJUSTL(psd)) ) 99 ! 100 ! ... transition metals 101 ! 102 103 CASE( 'H', 'He', 'Li', 'Be', 'Na', 'Mg', 'K', 'Ca', 'Rb', 'Sr', 'Cs', 'Ba',& 104 'Fr', 'Ra' ) 105 ! 106 hubbard_n_back = -1 ! no background states 107 ! 108 CASE( 'Se' ) 109 ! 110 hubbard_n_back = 3 111 ! 112 CASE( 'Zn' ) 113 ! 114 hubbard_n_back = 3 115 ! 116 CASE DEFAULT 117 ! 118 hubbard_n_back = -1 119 ! 120 WRITE( stdout, '(/,"psd = ",A,/)' ) psd 121 ! 122 CALL errore( 'set_hubbard_n_back', 'pseudopotential not yet inserted', 1 ) 123 ! 124 END SELECT 125 ! 126 RETURN 127 ! 128END FUNCTION set_hubbard_n_back 129