TABLE OF CONTENTS
- ABINIT/atomdata_from_znucl
- ABINIT/m_atomdata
- m_atomdata/atom_gauss
- m_atomdata/atom_length
- m_atomdata/atomdata_from_symbol
- m_atomdata/atomdata_t
- m_atomdata/symbol2znucl
- m_atomdata/znucl2symbol
ABINIT/atomdata_from_znucl [ Functions ]
NAME
atomdata_from_znucl
FUNCTION
Return atomic data : symbol, covalent radius, atomic mass Atomic masses are those recommended by the commission on Atomic Weights and Isotopic Abundances, Inorganic Chemistry Division, IUPAC, in Pure Appl. Chem. 60, 841 (1988) [[cite:IUPAC1988]]. For Tc, Pm, Po to Ac, Pa and beyond U, none of the isotopes has a half-life greater than 3.0d10 years, and the values provided here do not come from that source.
INPUTS
znucl=atomic number (a real(dp) number ! the nearest integer is selected in the routine ...)
OUTPUT
amu=atomic mass (Masses beyond element 103 are fixed at 260) rcov=covalent radius (Elements beyond 86 have an estimated covalent radius) character(len=2) symbol=atomic symbol
SOURCE
93 subroutine atomdata_from_znucl(atom,znucl) 94 95 !Arguments ------------------------------------ 96 !scalars 97 real(dp),intent(in) :: znucl 98 type(atomdata_t),intent(out) :: atom 99 100 !Local variables------------------------------- 101 !scalars 102 integer :: nucl 103 real(dp) :: amu,rcov 104 character(len=2) :: symbol 105 106 ! ************************************************************************* 107 108 nucl=nint(znucl) 109 select case (nucl) 110 case(0) 111 amu=one ; rcov=one/Bohr_Ang ; symbol='no' 112 case(1) 113 amu=1.00794d0 ; rcov=0.32d0/Bohr_Ang ; symbol=' H' 114 case(2) 115 amu=4.002602d0 ; rcov=0.93d0/Bohr_Ang ; symbol='He' 116 case(3) 117 amu=6.941d0 ; rcov=1.23d0/Bohr_Ang ; symbol='Li' 118 case(4) 119 amu=9.012182d0 ; rcov=0.90d0/Bohr_Ang ; symbol='Be' 120 case(5) 121 amu=10.811d0 ; rcov=0.80d0/Bohr_Ang ; symbol=' B' 122 case(6) 123 amu=12.011d0 ; rcov=0.77d0/Bohr_Ang ; symbol=' C' 124 case(7) 125 amu=14.00674d0 ; rcov=0.74d0/Bohr_Ang ; symbol=' N' 126 case(8) 127 amu=15.9994d0 ; rcov=0.73d0/Bohr_Ang ; symbol=' O' 128 case(9) 129 amu=18.9984032d0; rcov=0.72d0/Bohr_Ang ; symbol=' F' 130 131 case(10) 132 amu=20.1797d0 ; rcov=0.71d0/Bohr_Ang ; symbol='Ne' 133 case(11) 134 amu=22.989768d0 ; rcov=1.54d0/Bohr_Ang ; symbol='Na' 135 case(12) 136 amu=24.3050d0 ; rcov=1.36d0/Bohr_Ang ; symbol='Mg' 137 case(13) 138 amu=26.981539d0 ; rcov=1.18d0/Bohr_Ang ; symbol='Al' 139 case(14) 140 amu=28.0855d0 ; rcov=1.11d0/Bohr_Ang ; symbol='Si' 141 case(15) 142 amu=30.973762d0 ; rcov=1.06d0/Bohr_Ang ; symbol=' P' 143 case(16) 144 amu=32.066d0 ; rcov=1.02d0/Bohr_Ang ; symbol=' S' 145 case(17) 146 amu=35.4527d0 ; rcov=0.99d0/Bohr_Ang ; symbol='Cl' 147 case(18) 148 amu=39.948d0 ; rcov=0.98d0/Bohr_Ang ; symbol='Ar' 149 case(19) 150 amu=39.0983d0 ; rcov=2.03d0/Bohr_Ang ; symbol=' K' 151 152 case(20) 153 amu=40.078d0 ; rcov=1.74d0/Bohr_Ang ; symbol='Ca' 154 case(21) 155 amu=44.955910d0 ; rcov=1.44d0/Bohr_Ang ; symbol='Sc' 156 case(22) 157 amu=47.88d0 ; rcov=1.32d0/Bohr_Ang ; symbol='Ti' 158 case(23) 159 amu=50.9415d0 ; rcov=1.22d0/Bohr_Ang ; symbol=' V' 160 case(24) 161 amu=51.9961d0 ; rcov=1.18d0/Bohr_Ang ; symbol='Cr' 162 case(25) 163 amu=54.93805d0 ; rcov=1.17d0/Bohr_Ang ; symbol='Mn' 164 case(26) 165 amu=55.847d0 ; rcov=1.17d0/Bohr_Ang ; symbol='Fe' 166 case(27) 167 amu=58.93320d0 ; rcov=1.16d0/Bohr_Ang ; symbol='Co' 168 case(28) 169 amu=58.69d0 ; rcov=1.15d0/Bohr_Ang ; symbol='Ni' 170 case(29) 171 amu=63.546d0 ; rcov=1.17d0/Bohr_Ang ; symbol='Cu' 172 173 case(30) 174 amu=65.39d0 ; rcov=1.25d0/Bohr_Ang ; symbol='Zn' 175 case(31) 176 amu=69.723d0 ; rcov=1.26d0/Bohr_Ang ; symbol='Ga' 177 case(32) 178 amu=72.61d0 ; rcov=1.22d0/Bohr_Ang ; symbol='Ge' 179 case(33) 180 amu=74.92159d0 ; rcov=1.20d0/Bohr_Ang ; symbol='As' 181 case(34) 182 amu=78.96d0 ; rcov=1.16d0/Bohr_Ang ; symbol='Se' 183 case(35) 184 amu=79.904d0 ; rcov=1.14d0/Bohr_Ang ; symbol='Br' 185 case(36) 186 amu=83.80d0 ; rcov=1.12d0/Bohr_Ang ; symbol='Kr' 187 case(37) 188 amu=85.4678d0 ; rcov=2.16d0/Bohr_Ang ; symbol='Rb' 189 case(38) 190 amu=87.62d0 ; rcov=1.91d0/Bohr_Ang ; symbol='Sr' 191 case(39) 192 amu=88.90585d0 ; rcov=1.62d0/Bohr_Ang ; symbol=' Y' 193 194 case(40) 195 amu=91.224d0 ; rcov=1.45d0/Bohr_Ang ; symbol='Zr' 196 case(41) 197 amu=92.90638d0 ; rcov=1.34d0/Bohr_Ang ; symbol='Nb' 198 case(42) 199 amu=95.94d0 ; rcov=1.30d0/Bohr_Ang ; symbol='Mo' 200 case(43) 201 amu=98.9062d0 ; rcov=1.27d0/Bohr_Ang ; symbol='Tc' 202 case(44) 203 amu=101.07d0 ; rcov=1.25d0/Bohr_Ang ; symbol='Ru' 204 case(45) 205 amu=102.9055d0 ; rcov=1.25d0/Bohr_Ang ; symbol='Rh' 206 case(46) 207 amu=106.42d0 ; rcov=1.28d0/Bohr_Ang ; symbol='Pd' 208 case(47) 209 amu=107.8682d0 ; rcov=1.34d0/Bohr_Ang ; symbol='Ag' 210 case(48) 211 amu=112.411d0 ; rcov=1.48d0/Bohr_Ang ; symbol='Cd' 212 case(49) 213 amu=114.82d0 ; rcov=1.44d0/Bohr_Ang ; symbol='In' 214 215 case(50) 216 amu=118.710d0 ; rcov=1.41d0/Bohr_Ang ; symbol='Sn' 217 case(51) 218 amu=121.753d0 ; rcov=1.40d0/Bohr_Ang ; symbol='Sb' 219 case(52) 220 amu=127.60d0 ; rcov=1.36d0/Bohr_Ang ; symbol='Te' 221 case(53) 222 amu=126.90447d0 ; rcov=1.33d0/Bohr_Ang ; symbol=' I' 223 case(54) 224 amu=131.29d0 ; rcov=1.31d0/Bohr_Ang ; symbol='Xe' 225 case(55) 226 amu=132.90543d0 ; rcov=2.35d0/Bohr_Ang ; symbol='Cs' 227 case(56) 228 amu=137.327d0 ; rcov=1.98d0/Bohr_Ang ; symbol='Ba' 229 case(57) 230 amu=138.9055d0 ; rcov=1.69d0/Bohr_Ang ; symbol='La' 231 case(58) 232 amu=140.115d0 ; rcov=1.65d0/Bohr_Ang ; symbol='Ce' 233 case(59) 234 amu=140.90765d0 ; rcov=1.65d0/Bohr_Ang ; symbol='Pr' 235 236 case(60) 237 amu=144.24d0 ; rcov=1.64d0/Bohr_Ang ; symbol='Nd' 238 case(61) 239 amu=147.91d0 ; rcov=1.64d0/Bohr_Ang ; symbol='Pm' 240 case(62) 241 amu=150.36d0 ; rcov=1.62d0/Bohr_Ang ; symbol='Sm' 242 case(63) 243 amu=151.965d0 ; rcov=1.85d0/Bohr_Ang ; symbol='Eu' 244 case(64) 245 amu=157.25d0 ; rcov=1.61d0/Bohr_Ang ; symbol='Gd' 246 case(65) 247 amu=158.92534d0 ; rcov=1.59d0/Bohr_Ang ; symbol='Tb' 248 case(66) 249 amu=162.50d0 ; rcov=1.59d0/Bohr_Ang ; symbol='Dy' 250 case(67) 251 amu=164.93032d0 ; rcov=1.57d0/Bohr_Ang ; symbol='Ho' 252 case(68) 253 amu=167.26d0 ; rcov=1.57d0/Bohr_Ang ; symbol='Er' 254 case(69) 255 amu=168.93421d0 ; rcov=1.56d0/Bohr_Ang ; symbol='Tm' 256 257 case(70) 258 amu=173.04d0 ; rcov=1.70d0/Bohr_Ang ; symbol='Yb' 259 case(71) 260 amu=174.967d0 ; rcov=1.56d0/Bohr_Ang ; symbol='Lu' 261 case(72) 262 amu=178.49d0 ; rcov=1.44d0/Bohr_Ang ; symbol='Hf' 263 case(73) 264 amu=180.9479d0 ; rcov=1.34d0/Bohr_Ang ; symbol='Ta' 265 case(74) 266 amu=183.85d0 ; rcov=1.30d0/Bohr_Ang ; symbol=' W' 267 case(75) 268 amu=186.207d0 ; rcov=1.28d0/Bohr_Ang ; symbol='Re' 269 case(76) 270 amu=190.2d0 ; rcov=1.26d0/Bohr_Ang ; symbol='Os' 271 case(77) 272 amu=192.22d0 ; rcov=1.27d0/Bohr_Ang ; symbol='Ir' 273 case(78) 274 amu=195.08d0 ; rcov=1.30d0/Bohr_Ang ; symbol='Pt' 275 case(79) 276 amu=196.96654d0 ; rcov=1.34d0/Bohr_Ang ; symbol='Au' 277 278 case(80) 279 amu=200.59d0 ; rcov=1.49d0/Bohr_Ang ; symbol='Hg' 280 case(81) 281 amu=204.3833d0 ; rcov=1.48d0/Bohr_Ang ; symbol='Tl' 282 case(82) 283 amu=207.2d0 ; rcov=1.47d0/Bohr_Ang ; symbol='Pb' 284 case(83) 285 amu=208.98037d0 ; rcov=1.46d0/Bohr_Ang ; symbol='Bi' 286 case(84) 287 amu=209.0d0 ; rcov=1.46d0/Bohr_Ang ; symbol='Po' 288 case(85) 289 amu=210.0d0 ; rcov=1.45d0/Bohr_Ang ; symbol='At' 290 case(86) 291 amu=222.0d0 ; rcov=1.45d0/Bohr_Ang ; symbol='Rn' 292 case(87) 293 amu=223.0d0 ; rcov=2.50d0/Bohr_Ang ; symbol='Fr' 294 case(88) 295 amu=226.0254d0 ; rcov=2.10d0/Bohr_Ang ; symbol='Ra' 296 case(89) 297 amu=230.0d0 ; rcov=1.85d0/Bohr_Ang ; symbol='Ac' 298 299 case(90) 300 amu=232.0381d0 ; rcov=1.65d0/Bohr_Ang ; symbol='Th' 301 case(91) 302 amu=231.0359d0 ; rcov=1.50d0/Bohr_Ang ; symbol='Pa' 303 case(92) 304 amu=238.0289d0 ; rcov=1.42d0/Bohr_Ang ; symbol=' U' 305 case(93) 306 amu=237.0482d0 ; rcov=1.42d0/Bohr_Ang ; symbol='Np' 307 case(94) 308 amu=242.0d0 ; rcov=1.42d0/Bohr_Ang ; symbol='Pu' 309 case(95) 310 amu=243.0d0 ; rcov=1.42d0/Bohr_Ang ; symbol='Am' 311 case(96) 312 amu=247.0d0 ; rcov=1.42d0/Bohr_Ang ; symbol='Cm' 313 case(97) 314 amu=247.0d0 ; rcov=1.42d0/Bohr_Ang ; symbol='Bk' 315 case(98) 316 amu=249.0d0 ; rcov=1.42d0/Bohr_Ang ; symbol='Cf' 317 case(99) 318 amu=254.0d0 ; rcov=1.42d0/Bohr_Ang ; symbol='Es' 319 320 case(100) 321 amu=253.0d0 ; rcov=1.42d0/Bohr_Ang ; symbol='Fm' 322 case(101) 323 amu=256.0d0 ; rcov=1.42d0/Bohr_Ang ; symbol='Md' 324 case(102) 325 amu=254.0d0 ; rcov=1.42d0/Bohr_Ang ; symbol='No' 326 case(103) 327 amu=257.0d0 ; rcov=1.42d0/Bohr_Ang ; symbol='Lr' 328 case(104:) 329 amu=260.0d0 ; rcov=1.42d0/Bohr_Ang ; symbol='Xx' 330 331 end select 332 333 atom%znucl = znucl 334 atom%amu = amu 335 atom%rcov = rcov 336 atom%symbol = symbol 337 338 end subroutine atomdata_from_znucl
ABINIT/m_atomdata [ Modules ]
NAME
m_atomdata
FUNCTION
Atomic data
COPYRIGHT
Copyright (C) 2000-2024 ABINIT group (XG, MJV, MT, MG) This file is distributed under the terms of the GNU General Public License, see ~abinit/COPYING or http://www.gnu.org/copyleft/gpl.txt .
TODO
* Use module global lookup table.
SOURCE
19 #if defined HAVE_CONFIG_H 20 #include "config.h" 21 #endif 22 23 #include "abi_common.h" 24 25 module m_atomdata 26 27 use defs_basis 28 use m_errors 29 use m_abicore 30 31 use m_fstrings, only : sjoin 32 33 implicit none 34 35 private 36 37 ! Utilities 38 public :: symbol2znucl ! Symbol --> znucl 39 public :: znucl2symbol ! znucl --> symbol 40 public :: atom_length ! Return atomic decay length for one given type of atom. 41 public :: atom_gauss ! Approximate the atomic density with a gaussian (used to initialize densities)
m_atomdata/atom_gauss [ Functions ]
[ Top ] [ m_atomdata ] [ Functions ]
NAME
atom_gauss
FUNCTION
Approximate the atomic density with a gaussian. Used to approximate densities with atomic-like quantities if the pseudopotential does not provide the valence charge density.
INPUTS
ntypat=Number of type of atoms. densty(ntypat,3)=parameter for initialisation of the density of this atom type if densty>0, returned decay length if densty! ziontypat(ntypat)=charge on current type of atom (real number) znucltypat=atomic number, for current type of atom
OUTPUT
gauss(2,ntypat)=Gaussian parameters.
SOURCE
795 subroutine atom_gauss(ntypat, densty, ziontypat, znucltypat, gauss) 796 797 !Arguments ------------------------------------ 798 !scalars 799 integer,intent(in) :: ntypat 800 !arrays 801 real(dp),intent(in) :: densty(ntypat,4),ziontypat(ntypat),znucltypat(ntypat) 802 real(dp),intent(out) :: gauss(2,ntypat) 803 804 !Local variables------------------------------- 805 !scalars 806 integer :: itypat 807 808 ! ************************************************************************* 809 810 do itypat=1,ntypat 811 gauss(1,itypat) = ziontypat(itypat) 812 gauss(2,itypat) = atom_length(densty(itypat,1), ziontypat(itypat), znucltypat(itypat)) 813 end do 814 815 end subroutine atom_gauss
m_atomdata/atom_length [ Functions ]
[ Top ] [ m_atomdata ] [ Functions ]
NAME
atom_length
FUNCTION
Return atomic decay length for one given type of atom. This length is used to generate an approximate atomic gaussian density in reciprocal space: n^AT(G)=exp[-(2pi.length.G)^2]
INPUTS
densty=parameter for initialisation of the density of this atom type if densty>0, returned decay length if densty ! zion=charge on current type of atom (real number) znucl=atomic number, for current type of atom
OUTPUT
length=decay lenth
SOURCE
672 function atom_length(densty,zion,znucl) result(length) 673 674 !Arguments ------------------------------------ 675 !scalars 676 real(dp),intent(in) :: densty,zion,znucl 677 real(dp) :: length 678 679 !Local variables------------------------------- 680 !scalars 681 integer :: nval 682 real(dp) :: coreel 683 !arrays 684 real(dp) :: data_length(16) 685 686 ! ************************************************************************* 687 688 !Either use the input value, or the default value, tabulated now. 689 if(abs(densty)>tol10)then 690 length=densty 691 else 692 693 ! Count the number of core electrons. 694 coreel=znucl-zion 695 ! Round the number of valence electrons 696 nval=nint(zion) 697 698 ! For each set of core electron numbers, there are different decay lengths, 699 ! they start from nval=1, and proceed by group of 5, until a default is used 700 701 if (nval==0) then 702 length=zero 703 704 ! Bare ions : adjusted on 1h and 2he only 705 else if(coreel<0.5)then 706 data_length(1:4)=(/ .6_dp,.4_dp,.3_dp,.25_dp /) 707 length=.2_dp 708 if(nval<=4)length=data_length(nval) 709 710 ! 1s2 core : adjusted on 3li, 6c, 7n, and 8o 711 else if(coreel<2.5)then 712 data_length(1:8)=(/ 1.8_dp,1.4_dp,1.0_dp ,.7_dp,.6_dp,& 713 & .5_dp, .4_dp, .35_dp /) 714 length=.3_dp 715 if(nval<=8)length=data_length(nval) 716 717 ! Ne core (1s2 2s2 2p6) : adjusted on 11na, 13al, 14si and 17cl 718 else if(coreel<10.5)then 719 data_length(1:10)=(/ 2.0_dp,1.6_dp,1.25_dp,1.1_dp,1.0_dp,& 720 & .9_dp, .8_dp, .7_dp , .7_dp, .7_dp /) 721 length=.6_dp 722 if(nval<=10)length=data_length(nval) 723 724 ! Mg core (1s2 2s2 2p6 3s2) : adjusted on 19k, and on coreel==10 725 else if(coreel<12.5)then 726 data_length(1:10)=(/ 1.9_dp,1.5_dp,1.15_dp,1.0_dp,0.9_dp,& 727 & .8_dp, .7_dp, .6_dp , .6_dp, .6_dp /) 728 length=.5_dp 729 if(nval<=10)length=data_length(nval) 730 731 ! Ar core (Ne + 3s2 3p6) : adjusted on 20ca, 25mn and 30zn 732 else if(coreel<18.5)then 733 data_length(1:12)=(/ 2.0_dp ,1.8_dp ,1.5_dp,1.2_dp ,1.0_dp,& 734 & .9_dp , .85_dp, .8_dp, .75_dp, .7_dp,& 735 & .65_dp, .65_dp /) 736 length=.6_dp 737 if(nval<=12)length=data_length(nval) 738 739 ! Full 3rd shell core (Ar + 3d10) : adjusted on 31ga, 34se and 38sr 740 else if(coreel<28.5)then 741 data_length(1:14)=(/ 1.5_dp ,1.25_dp,1.15_dp,1.05_dp,1.00_dp,& 742 & .95_dp, .95_dp, .9_dp , .9_dp , .85_dp,& 743 & .85_dp, .80_dp, .8_dp , .75_dp /) 744 length=.7_dp 745 if(nval<=14)length=data_length(nval) 746 747 ! Krypton core (Ar + 3d10 4s2 4p6) : adjusted on 39y, 42mo and 48cd 748 else if(coreel<36.5)then 749 data_length(1:12)=(/ 2.0_dp ,2.00_dp,1.60_dp,1.40_dp,1.25_dp,& 750 & 1.10_dp,1.00_dp, .95_dp, .90_dp, .85_dp,& 751 & .80_dp, .75_dp /) 752 length=.7_dp 753 if(nval<=12)length=data_length(nval) 754 755 ! For the remaining elements, consider a function of nval only 756 else 757 data_length(1:12)=(/ 2.0_dp ,2.00_dp,1.55_dp,1.25_dp,1.15_dp,& 758 & 1.10_dp,1.05_dp,1.0_dp , .95_dp , .9_dp,& 759 & .85_dp, .85_dp /) 760 length=.8_dp 761 if(nval<=12)length=data_length(nval) 762 763 end if 764 765 end if ! End the choice between default and no-default 766 767 !DEBUG 768 !Here, use the previous default 769 !length=1.2_dp 770 !ENDDEBUG 771 772 end function atom_length
m_atomdata/atomdata_from_symbol [ Functions ]
[ Top ] [ m_atomdata ] [ Functions ]
NAME
atomdata_from_symbol
FUNCTION
INPUTS
OUTPUT
SOURCE
353 subroutine atomdata_from_symbol(atom, symbol) 354 355 !Arguments ------------------------------------ 356 !scalars 357 character(len=*),intent(in) :: symbol 358 type(atomdata_t),intent(out) :: atom 359 360 !Local variables------------------------------- 361 !scalars 362 real(dp) :: znucl,amu,rcov 363 364 ! ************************************************************************* 365 366 select case (symbol) 367 case('no') 368 amu= one ; rcov=one/Bohr_Ang ; znucl=0 369 case(' H', 'H ') 370 amu= 1.00794d0 ; rcov=0.32d0/Bohr_Ang ; znucl=1 371 case('He') 372 amu= 4.002602d0 ; rcov=0.93d0/Bohr_Ang ; znucl=2 373 case('Li') 374 amu= 6.941d0 ; rcov=1.23d0/Bohr_Ang ; znucl=3 375 case('Be') 376 amu= 9.012182d0 ; rcov=0.90d0/Bohr_Ang ; znucl=4 377 case(' B', 'B ') 378 amu= 10.811d0 ; rcov=0.80d0/Bohr_Ang ; znucl=5 379 case(' C', 'C ') 380 amu= 12.011d0 ; rcov=0.77d0/Bohr_Ang ; znucl=6 381 case(' N', 'N ') 382 amu= 14.00674d0 ; rcov=0.74d0/Bohr_Ang ; znucl=7 383 case(' O', 'O ') 384 amu= 15.9994d0 ; rcov=0.73d0/Bohr_Ang ; znucl=8 385 case(' F', 'F ') 386 amu= 18.9984032d0; rcov=0.72d0/Bohr_Ang ; znucl=9 387 case('Ne') 388 amu= 20.1797d0 ; rcov=0.71d0/Bohr_Ang ; znucl=10 389 case('Na') 390 amu= 22.989768d0 ; rcov=1.54d0/Bohr_Ang ; znucl= 11 391 case('Mg') 392 amu= 24.3050d0 ; rcov=1.36d0/Bohr_Ang ; znucl=12 393 case('Al') 394 amu= 26.981539d0 ; rcov=1.18d0/Bohr_Ang ; znucl=13 395 case('Si') 396 amu= 28.0855d0 ; rcov=1.11d0/Bohr_Ang ; znucl=14 397 case(' P', 'P ') 398 amu= 30.973762d0 ; rcov=1.06d0/Bohr_Ang ; znucl=15 399 case(' S', 'S ') 400 amu= 32.066d0 ; rcov=1.02d0/Bohr_Ang ; znucl=16 401 case('Cl') 402 amu= 35.4527d0 ; rcov=0.99d0/Bohr_Ang ; znucl=17 403 case('Ar') 404 amu= 39.948d0 ; rcov=0.98d0/Bohr_Ang ; znucl=18 405 case(' K', 'K ') 406 amu= 39.0983d0 ; rcov=2.03d0/Bohr_Ang ; znucl=19 407 case('Ca') 408 amu= 40.078d0 ; rcov=1.74d0/Bohr_Ang ; znucl=20 409 case('Sc') 410 amu= 44.955910d0 ; rcov=1.44d0/Bohr_Ang ; znucl=21 411 case('Ti') 412 amu= 47.88d0 ; rcov=1.32d0/Bohr_Ang ; znucl=22 413 case(' V', 'V ') 414 amu= 50.9415d0 ; rcov=1.22d0/Bohr_Ang ; znucl=23 415 case('Cr') 416 amu= 51.9961d0 ; rcov=1.18d0/Bohr_Ang ; znucl=24 417 case('Mn') 418 amu= 54.93805d0 ; rcov=1.17d0/Bohr_Ang ; znucl=25 419 case('Fe') 420 amu= 55.847d0 ; rcov=1.17d0/Bohr_Ang ; znucl=26 421 case('Co') 422 amu= 58.93320d0 ; rcov=1.16d0/Bohr_Ang ; znucl=27 423 case('Ni') 424 amu= 58.69d0 ; rcov=1.15d0/Bohr_Ang ; znucl=28 425 case('Cu') 426 amu= 63.546d0 ; rcov=1.17d0/Bohr_Ang ; znucl=29 427 case('Zn') 428 amu= 65.39d0 ; rcov=1.25d0/Bohr_Ang ; znucl=30 429 case('Ga') 430 amu= 69.723d0 ; rcov=1.26d0/Bohr_Ang ; znucl=31 431 case('Ge') 432 amu= 72.61d0 ; rcov=1.22d0/Bohr_Ang ; znucl=32 433 case('As') 434 amu= 74.92159d0 ; rcov=1.20d0/Bohr_Ang ; znucl=33 435 case('Se') 436 amu= 78.96d0 ; rcov=1.16d0/Bohr_Ang ; znucl=34 437 case('Br') 438 amu= 79.904d0 ; rcov=1.14d0/Bohr_Ang ; znucl=35 439 case('Kr') 440 amu= 83.80d0 ; rcov=1.12d0/Bohr_Ang ; znucl=36 441 case('Rb') 442 amu= 85.4678d0 ; rcov=2.16d0/Bohr_Ang ; znucl=37 443 case('Sr') 444 amu= 87.62d0 ; rcov=1.91d0/Bohr_Ang ; znucl=38 445 case(' Y', 'Y ') 446 amu= 88.90585d0 ; rcov=1.62d0/Bohr_Ang ; znucl=39 447 case('Zr') 448 amu= 91.224d0 ; rcov=1.45d0/Bohr_Ang ; znucl=40 449 case('Nb') 450 amu= 92.90638d0 ; rcov=1.34d0/Bohr_Ang ; znucl=41 451 case('Mo') 452 amu= 95.94d0 ; rcov=1.30d0/Bohr_Ang ; znucl=42 453 case('Tc') 454 amu= 98.9062d0 ; rcov=1.27d0/Bohr_Ang ; znucl=43 455 case('Ru') 456 amu= 101.07d0 ; rcov=1.25d0/Bohr_Ang ; znucl=44 457 case('Rh') 458 amu= 102.9055d0 ; rcov=1.25d0/Bohr_Ang ; znucl=45 459 case('Pd') 460 amu= 106.42d0 ; rcov=1.28d0/Bohr_Ang ; znucl=46 461 case('Ag') 462 amu= 107.8682d0 ; rcov=1.34d0/Bohr_Ang ; znucl=47 463 case('Cd') 464 amu= 112.411d0 ; rcov=1.48d0/Bohr_Ang ; znucl=48 465 case('In') 466 amu= 114.82d0 ; rcov=1.44d0/Bohr_Ang ; znucl=49 467 case('Sn') 468 amu= 118.710d0 ; rcov=1.41d0/Bohr_Ang ; znucl=50 469 case('Sb') 470 amu= 121.753d0 ; rcov=1.40d0/Bohr_Ang ; znucl=51 471 case('Te') 472 amu= 127.60d0 ; rcov=1.36d0/Bohr_Ang ; znucl=52 473 case(' I', 'I ') 474 amu= 126.90447d0 ; rcov=1.33d0/Bohr_Ang ; znucl=53 475 case('Xe') 476 amu= 131.29d0 ; rcov=1.31d0/Bohr_Ang ; znucl=54 477 case('Cs') 478 amu= 132.90543d0 ; rcov=2.35d0/Bohr_Ang ; znucl=55 479 case('Ba') 480 amu= 137.327d0 ; rcov=1.98d0/Bohr_Ang ; znucl=56 481 case('La') 482 amu= 138.9055d0 ; rcov=1.69d0/Bohr_Ang ; znucl=57 483 case('Ce') 484 amu= 140.115d0 ; rcov=1.65d0/Bohr_Ang ; znucl=58 485 case('Pr') 486 amu= 140.90765d0 ; rcov=1.65d0/Bohr_Ang ; znucl=59 487 case('Nd') 488 amu= 144.24d0 ; rcov=1.64d0/Bohr_Ang ; znucl=60 489 case('Pm') 490 amu= 147.91d0 ; rcov=1.64d0/Bohr_Ang ; znucl=61 491 case('Sm') 492 amu= 150.36d0 ; rcov=1.62d0/Bohr_Ang ; znucl=62 493 case('Eu') 494 amu= 151.965d0 ; rcov=1.85d0/Bohr_Ang ; znucl=63 495 case('Gd') 496 amu= 157.25d0 ; rcov=1.61d0/Bohr_Ang ; znucl=64 497 case('Tb') 498 amu= 158.92534d0 ; rcov=1.59d0/Bohr_Ang ; znucl=65 499 case('Dy') 500 amu= 162.50d0 ; rcov=1.59d0/Bohr_Ang ; znucl=66 501 case('Ho') 502 amu= 164.93032d0 ; rcov=1.57d0/Bohr_Ang ; znucl=67 503 case('Er') 504 amu= 167.26d0 ; rcov=1.57d0/Bohr_Ang ; znucl=68 505 case('Tm') 506 amu= 168.93421d0 ; rcov=1.56d0/Bohr_Ang ; znucl=69 507 case('Yb') 508 amu= 173.04d0 ; rcov=1.70d0/Bohr_Ang ; znucl=70 509 case('Lu') 510 amu= 174.967d0 ; rcov=1.56d0/Bohr_Ang ; znucl=71 511 case('Hf') 512 amu= 178.49d0 ; rcov=1.44d0/Bohr_Ang ; znucl=72 513 case('Ta') 514 amu= 180.9479d0 ; rcov=1.34d0/Bohr_Ang ; znucl=73 515 case(' W', 'W ') 516 amu= 183.85d0 ; rcov=1.30d0/Bohr_Ang ; znucl=74 517 case('Re') 518 amu= 186.207d0 ; rcov=1.28d0/Bohr_Ang ; znucl=75 519 case('Os') 520 amu= 190.2d0 ; rcov=1.26d0/Bohr_Ang ; znucl=76 521 case('Ir') 522 amu= 192.22d0 ; rcov=1.27d0/Bohr_Ang ; znucl=77 523 case('Pt') 524 amu= 195.08d0 ; rcov=1.30d0/Bohr_Ang ; znucl=78 525 case('Au') 526 amu= 196.96654d0 ; rcov=1.34d0/Bohr_Ang ; znucl=79 527 case('Hg') 528 amu= 200.59d0 ; rcov=1.49d0/Bohr_Ang ; znucl=80 529 case('Tl') 530 amu= 204.3833d0 ; rcov=1.48d0/Bohr_Ang ; znucl=81 531 case('Pb') 532 amu= 207.2d0 ; rcov=1.47d0/Bohr_Ang ; znucl=82 533 case('Bi') 534 amu= 208.98037d0 ; rcov=1.46d0/Bohr_Ang ; znucl=83 535 case('Po') 536 amu= 209.0d0 ; rcov=1.46d0/Bohr_Ang ; znucl=84 537 case('At') 538 amu= 210.0d0 ; rcov=1.45d0/Bohr_Ang ; znucl=85 539 case('Rn') 540 amu= 222.0d0 ; rcov=1.45d0/Bohr_Ang ; znucl=86 541 case('Fr') 542 amu= 223.0d0 ; rcov=2.50d0/Bohr_Ang ; znucl=87 543 case('Ra') 544 amu= 226.0254d0 ; rcov=2.10d0/Bohr_Ang ; znucl=88 545 case('Ac') 546 amu= 230.0d0 ; rcov=1.85d0/Bohr_Ang ; znucl=89 547 case('Th') 548 amu= 232.0381d0 ; rcov=1.65d0/Bohr_Ang ; znucl=90 549 case('Pa') 550 amu= 231.0359d0 ; rcov=1.50d0/Bohr_Ang ; znucl=91 551 case(' U', 'U ') 552 amu= 238.0289d0 ; rcov=1.42d0/Bohr_Ang ; znucl=92 553 case('Np') 554 amu= 237.0482d0 ; rcov=1.42d0/Bohr_Ang ; znucl=93 555 case('Pu') 556 amu= 242.0d0 ; rcov=1.42d0/Bohr_Ang ; znucl=94 557 case('Am') 558 amu= 243.0d0 ; rcov=1.42d0/Bohr_Ang ; znucl=95 559 case('Cm') 560 amu= 247.0d0 ; rcov=1.42d0/Bohr_Ang ; znucl=96 561 case('Bk') 562 amu= 247.0d0 ; rcov=1.42d0/Bohr_Ang ; znucl=97 563 case('Cf') 564 amu= 249.0d0 ; rcov=1.42d0/Bohr_Ang ; znucl=98 565 case('Es') 566 amu= 254.0d0 ; rcov=1.42d0/Bohr_Ang ; znucl=89 567 case('Fm') 568 amu= 253.0d0 ; rcov=1.42d0/Bohr_Ang ; znucl=100 569 case('Md') 570 amu= 256.0d0 ; rcov=1.42d0/Bohr_Ang ; znucl=101 571 case('No') 572 amu= 254.0d0 ; rcov=1.42d0/Bohr_Ang ; znucl=102 573 case('Lr') 574 amu= 257.0d0 ; rcov=1.42d0/Bohr_Ang ; znucl=103 575 case('Xx') 576 amu= 260.0d0 ; rcov=1.42d0/Bohr_Ang ; znucl=104 577 case default 578 ABI_ERROR(sjoin("Unknown element symbol: `",trim(symbol), "`")) 579 end select 580 581 atom%znucl = znucl 582 atom%amu = amu 583 atom%rcov = rcov 584 atom%symbol = symbol 585 586 end subroutine atomdata_from_symbol
m_atomdata/atomdata_t [ Types ]
[ Top ] [ m_atomdata ] [ Types ]
NAME
atomdata_t
FUNCTION
Record with the atomic data (symbol, covalent radius, atomic mass) for a given atomic specie
SOURCE
55 type,public :: atomdata_t 56 real(dp) :: znucl ! Atomic number (real to treat alchemy) 57 real(dp) :: amu ! Atomic mass 58 real(dp) :: rcov ! Covalent radius 59 character(len=2) :: symbol ! Atomic symbol 60 end type atomdata_t 61 62 63 public :: atomdata_from_znucl ! Return atomic data from znucl 64 public :: atomdata_from_symbol ! Return atomic data from symbol
m_atomdata/symbol2znucl [ Functions ]
[ Top ] [ m_atomdata ] [ Functions ]
NAME
FUNCTION
Return znucl from the symbol
OUTPUT
SOURCE
634 function symbol2znucl(symbol) result(znucl) 635 636 !Arguments ------------------------------------ 637 !scalars 638 real(dp) :: znucl 639 character(len=*),intent(in) :: symbol 640 641 !Local variables 642 type(atomdata_t) :: atom 643 644 ! ************************************************************************* 645 646 call atomdata_from_symbol(atom, symbol) 647 znucl = atom%znucl 648 649 end function symbol2znucl
m_atomdata/znucl2symbol [ Functions ]
[ Top ] [ m_atomdata ] [ Functions ]
NAME
FUNCTION
Return the symbol from znucl
INPUTS
znucl=atomic number
OUTPUT
SOURCE
604 function znucl2symbol(znucl) result(symbol) 605 606 !Arguments ------------------------------------ 607 !scalars 608 real(dp),intent(in) :: znucl 609 character(len=2) :: symbol 610 611 !Local variables 612 type(atomdata_t) :: atom 613 614 ! ************************************************************************* 615 616 call atomdata_from_znucl(atom, znucl) 617 symbol = atom%symbol 618 619 end function znucl2symbol