TABLE OF CONTENTS


ABINIT/atomdata_from_znucl [ Functions ]

[ Top ] [ 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 ]

[ Top ] [ 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