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