19 #include "../base/base_uses.f90"
21 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'orbital_symbols'
24 CHARACTER(LEN=1),
PARAMETER,
DIMENSION(0:11) ::
l_sym = (/
"s",
"p",
"d", &
44 INTEGER,
INTENT(IN) :: n
45 INTEGER,
DIMENSION(3),
INTENT(IN) :: lxyz
46 CHARACTER(LEN=12) :: symbol
48 CHARACTER(LEN=1),
DIMENSION(3),
PARAMETER :: xyz = (/
"x",
"y",
"z"/)
54 IF ((n > 0) .AND. (n < 100))
THEN
55 WRITE (symbol(1:2),
"(I2)") n
57 cpabort(
"Invalid principal quantum number specified")
62 IF ((l >= 0) .AND. (l <= 11))
THEN
63 symbol(3:3) =
l_sym(l)
65 cpabort(
"Invalid angular momentum quantum number specified")
72 symbol(ipos:ipos) = xyz(i)
75 IF (lxyz(i) < 10)
THEN
76 WRITE (symbol(ipos:ipos),
"(I1)") lxyz(i)
78 ELSE IF (lxyz(i) < 100)
THEN
79 WRITE (symbol(ipos:ipos + 1),
"(I2)") lxyz(i)
82 cpabort(
"Invalid magnetic quantum number specified")
107 INTEGER,
INTENT(IN) :: n, l, m
108 CHARACTER(LEN=6) :: symbol
110 CHARACTER(LEN=1),
DIMENSION(-1:1),
PARAMETER :: yzx = (/
"y",
"z",
"x"/)
118 ELSE IF ((n > 0) .AND. (n < 100))
THEN
119 WRITE (symbol(1:2),
"(I2)") n
122 cpabort(
"Invalid principal quantum number specified")
125 IF ((l >= 0) .AND. (l <= 11))
THEN
126 symbol(i:i) =
l_sym(l)
129 cpabort(
"Invalid angular momentum quantum number specified")
132 IF (abs(m) <= l)
THEN
137 WRITE (symbol(i:i),
"(I1)") m
138 ELSE IF (abs(m) < 10)
THEN
139 WRITE (symbol(i:i + 1),
"(SP,I2)") m
140 ELSE IF (abs(m) < 100)
THEN
141 WRITE (symbol(i:i + 2),
"(SP,I3)") m
145 cpabort(
"Invalid magnetic quantum number specified")
character(len=12) function, public cgf_symbol(n, lxyz)
Build a Cartesian orbital symbol (orbital labels for printing).
character(len=6) function, public sgf_symbol(n, l, m)
Build a spherical orbital symbol (orbital labels for printing).
character(len=1), dimension(0:11), parameter, public l_sym