mendeleiev_mod.f95
mendeleiev_mod.f95 !-----------------------------------------------------------------------------
! This file is part of QmcMol A GNU QMC program for molecules.
! Copyright (C) 2002 CNRS - U.P.M.C. Paris 6 - FRANCE
! R. Assaraf, M. Caffarel, F. Colonna, X. Krokidis, B. Levy,
! P. Pernod, and P. Reinhardt - qmcmol@lct.jussieu.fr
! http://www.lct.jussieu.fr/QmcMol
! QmcMol is free software; you can redistribute it and/or modify it
! under the terms of the GNU General Public License as published by the Free
! Software Foundation; either version 2, or (at your option) any later
! version. QmcMol is distributed in the hope that it will be useful,but
! WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
! or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
! for more details. You should have received a copy of the GNU General
! Public License along with QmcMol; see the file COPYING. If not,
! write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
! Boston, MA 02111-1307, USA.
!-----------------------------------------------------------------------------
module mendeleiev_mod
use control_mod
use strings_mod
implicit none
type element
character(len=max_len_atom_symbol) :: name
character(len=6) :: type ! fake
real(dp) :: mass
real(dp) :: zed
real(dp) :: covrad
end type
integer(i4b), parameter :: n_mendeleiev = 104
type (element), pointer :: mendeleiev(:) => NULL ()
contains
! ===============================================================================
subroutine mendeleiev_init
! -------------------------------------------------------------------------------
!
! Name : mendeleiev_init
!
! Description : fills mendeleiev array
!
! Authors:X. Krokidis
! Date :11 Oct 2000
! -------------------------------------------------------------------------------
implicit none
! i/o:
! local:
character(len=max_string_len_routine_name) :: l_here
! begin:
l_here ='mendeleiev_init'
call enter (l_here)
if(debug)write (logf,*)trim(l_here),'-d: n_mendeleiev=',n_mendeleiev
! allocate mendeleiev periodic table
! Improve allocate (mendeleiev(0:n_mendeleiev-1), stat=all_err)
allocate (mendeleiev(n_mendeleiev), stat = all_err)
if (all_err /= 0) then
write (logf,'(4a)') trim(l_here), &
': allocation failed for object >mendeleiev<'
write (logf,'(2a,i10)') trim(l_here), &
': dimensions are ',n_mendeleiev
call die (l_here, 'allocation failed')
end if
mendeleiev%name = NOT_INIT_S
mendeleiev%mass = NOT_INIT_DP
mendeleiev%zed = NOT_INIT_DP
mendeleiev%covrad = NOT_INIT_DP
mendeleiev(1)%name = 'H '
mendeleiev(1)%mass = 1.0079d0
mendeleiev(1)%zed = 1.d0
mendeleiev(1)%covrad = 0.69920d+00
mendeleiev(2)%name = 'HE'
mendeleiev(2)%mass = 4.0026d0
mendeleiev(2)%zed = 2.d0
mendeleiev(2)%covrad = 0.94480d+00
mendeleiev(3)%name = 'LI'
mendeleiev(3)%mass = 6.941d0
mendeleiev(3)%zed = 3.d0
mendeleiev(3)%covrad = 2.5510d+00
mendeleiev(4)%name = 'BE'
mendeleiev(4)%mass = 9.0122d0
mendeleiev(4)%zed = 4.d0
mendeleiev(4)%covrad = 2.3620d+00
mendeleiev(5)%name = 'B '
mendeleiev(5)%mass = 10.811d0
mendeleiev(5)%zed = 5.d0
mendeleiev(5)%covrad = 1.7010d+00
mendeleiev(6)%name = 'C '
mendeleiev(6)%mass = 12.011d0
mendeleiev(6)%zed = 6.d0
mendeleiev(6)%covrad = 1.4550d+00
mendeleiev(7)%name = 'N '
mendeleiev(7)%mass = 14.0067d0
mendeleiev(7)%zed = 7.d0
mendeleiev(7)%covrad = 1.4170d+00
mendeleiev(8)%name = 'O '
mendeleiev(8)%mass = 15.9994d0
mendeleiev(8)%zed = 8.d0
mendeleiev(8)%covrad = 1.3790d+00
mendeleiev(9)%name = 'F '
mendeleiev(9)%mass = 18.9984d0
mendeleiev(9)%zed = 9.d0
mendeleiev(9)%covrad = 1.3420d+00
mendeleiev(10)%name = 'NE'
mendeleiev(10)%mass = 20.179d0
mendeleiev(10)%zed = 10.d0
mendeleiev(10)%covrad = 1.2280d+00
mendeleiev(11)%name = 'NA'
mendeleiev(11)%mass = 22.9898d0
mendeleiev(11)%zed = 11.d0
mendeleiev(11)%covrad = 2.9100d+00
mendeleiev(12)%name = 'MG'
mendeleiev(12)%mass = 24.305d0
mendeleiev(12)%zed = 12.d0
mendeleiev(12)%covrad = 2.7400d+00
mendeleiev(13)%name = 'AL'
mendeleiev(13)%mass = 24.305d0
mendeleiev(13)%zed = 13.d0
mendeleiev(13)%covrad = 2.4570d+00
mendeleiev(14)%name = 'SI'
mendeleiev(14)%mass = 26.9815d0
mendeleiev(14)%zed = 14.d0
mendeleiev(14)%covrad = 2.2300d+00
mendeleiev(15)%name = 'P '
mendeleiev(15)%mass = 28.0855d0
mendeleiev(15)%zed = 15.d0
mendeleiev(15)%covrad = 2.0790d+00
mendeleiev(16)%name = 'S '
mendeleiev(16)%mass = 32.066d0
mendeleiev(16)%zed = 16.d0
mendeleiev(16)%covrad = 1.9270d+00
mendeleiev(17)%name = 'CL'
mendeleiev(17)%mass = 35.453d0
mendeleiev(17)%zed = 17.d0
mendeleiev(17)%covrad = 1.8710d+00
mendeleiev(18)%name = 'AR'
mendeleiev(18)%mass = 39.948d0
mendeleiev(18)%zed = 18.d0
mendeleiev(18)%covrad = 1.7950d+00
mendeleiev(19)%name = 'K '
mendeleiev(19)%mass = 39.0983d0 !Is it correct?
mendeleiev(19)%zed = 19.d0
mendeleiev(19)%covrad = 1.628d+00
mendeleiev(20)%name = 'CA'
mendeleiev(20)%mass = 40.078d0
mendeleiev(20)%zed = 20.d0
mendeleiev(20)%covrad = 1.628d+00
mendeleiev(21)%name = 'SC'
mendeleiev(21)%mass = 44.9559d0
mendeleiev(21)%zed = 21.d0
mendeleiev(21)%covrad = 1.628d+00
mendeleiev(22)%name = 'TI'
mendeleiev(22)%mass = 47.88d0
mendeleiev(22)%zed = 22.d0
mendeleiev(22)%covrad = 1.628d+00
mendeleiev(23)%name = 'V '
mendeleiev(23)%mass = 50.9415d0
mendeleiev(23)%zed = 23.d0
mendeleiev(23)%covrad = 1.628d+00
mendeleiev(24)%name = 'CR'
mendeleiev(24)%mass = 51.996d0
mendeleiev(24)%zed = 24.d0
mendeleiev(24)%covrad = 1.628d+00
mendeleiev(25)%name = 'MN'
mendeleiev(25)%mass = 54.938d0
mendeleiev(25)%zed = 25.d0
mendeleiev(25)%covrad = 1.628d+00
mendeleiev(26)%name = 'FE'
mendeleiev(26)%mass = 55.847d0
mendeleiev(26)%zed = 26.d0
mendeleiev(26)%covrad = 1.628d+00
mendeleiev(27)%name = 'CO'
mendeleiev(27)%mass = 58.9332d0
mendeleiev(27)%zed = 27.d0
mendeleiev(27)%covrad = 1.628d+00
mendeleiev(28)%name = 'NI'
mendeleiev(28)%mass = 58.69d0
mendeleiev(28)%zed = 28.d0
mendeleiev(28)%covrad = 1.628d+00
mendeleiev(29)%name = 'CU'
mendeleiev(29)%mass = 63.546d0
mendeleiev(29)%zed = 29.d0
mendeleiev(29)%covrad = 1.628d+00
mendeleiev(30)%name = 'ZN'
mendeleiev(30)%mass = 65.39d0
mendeleiev(30)%zed = 30.d0
mendeleiev(30)%covrad = 1.628d+00
mendeleiev(31)%name = 'GA'
mendeleiev(31)%mass = 69.723d0
mendeleiev(31)%zed = 31.d0
mendeleiev(31)%covrad = 1.628d+00
mendeleiev(32)%name = 'GE'
mendeleiev(32)%mass = 72.59d0
mendeleiev(32)%zed = 32.d0
mendeleiev(32)%covrad = 1.628d+00
mendeleiev(33)%name = 'AS'
mendeleiev(33)%mass = 74.0216d0
mendeleiev(33)%zed = 33.d0
mendeleiev(33)%covrad = 1.628d+00
mendeleiev(34)%name = 'SE'
mendeleiev(34)%mass = 78.96d0
mendeleiev(34)%zed = 34.d0
mendeleiev(34)%covrad = 1.628d+00
mendeleiev(35)%name = 'BR'
mendeleiev(35)%mass = 79.904d0
mendeleiev(35)%zed = 35.d0
mendeleiev(35)%covrad = 1.628d+00
mendeleiev(36)%name = 'KR'
mendeleiev(36)%mass = 83.80d0
mendeleiev(36)%zed = 36.d0
mendeleiev(36)%covrad = 1.628d+00
mendeleiev(37)%name = 'RB'
mendeleiev(37)%mass = 85.4678d0
mendeleiev(37)%zed = 37.d0
mendeleiev(37)%covrad = 1.628d+00
mendeleiev(38)%name = 'SR'
mendeleiev(38)%mass = 87.62d0
mendeleiev(38)%zed = 38.d0
mendeleiev(38)%covrad = 1.628d+00
mendeleiev(39)%name = 'Y '
mendeleiev(39)%mass = 88.9059d0
mendeleiev(39)%zed = 39.d0
mendeleiev(39)%covrad = 1.628d+00
mendeleiev(40)%name = 'ZR'
mendeleiev(40)%mass = 91.224d0
mendeleiev(40)%zed = 40.d0
mendeleiev(40)%covrad = 1.628d+00
mendeleiev(41)%name = 'NB'
mendeleiev(41)%mass = 92.9064d0
mendeleiev(41)%zed = 41.d0
mendeleiev(41)%covrad = 1.628d+00
mendeleiev(42)%name = 'MO'
mendeleiev(42)%mass = 95.94d0
mendeleiev(42)%zed = 42.d0
mendeleiev(42)%covrad = 1.628d+00
mendeleiev(43)%name = 'TC'
mendeleiev(43)%mass = 98.9062d0
mendeleiev(43)%zed = 43.d0
mendeleiev(43)%covrad = 1.628d+00
mendeleiev(44)%name = 'RU'
mendeleiev(44)%mass = 101.07d0
mendeleiev(44)%zed = 44.d0
mendeleiev(44)%covrad = 1.628d+00
mendeleiev(45)%name = 'RH'
mendeleiev(45)%mass = 102.9055d0
mendeleiev(45)%zed = 45.d0
mendeleiev(45)%covrad = 1.628d+00
mendeleiev(46)%name = 'PD'
mendeleiev(46)%mass = 106.42d0
mendeleiev(46)%zed = 46.d0
mendeleiev(46)%covrad = 1.628d+00
mendeleiev(47)%name = 'AG'
mendeleiev(47)%mass = 107.868d0
mendeleiev(47)%zed = 47.d0
mendeleiev(47)%covrad = 1.628d+00
mendeleiev(48)%name = 'CD'
mendeleiev(48)%mass = 112.41d0
mendeleiev(48)%zed = 48.d0
mendeleiev(48)%covrad = 1.628d+00
mendeleiev(49)%name = 'IN'
mendeleiev(49)%mass = 114.82d0
mendeleiev(49)%zed = 49.d0
mendeleiev(49)%covrad = 1.628d+00
mendeleiev(50)%name = 'SN'
mendeleiev(50)%mass = 118.710d0
mendeleiev(50)%zed = 50.d0
mendeleiev(50)%covrad = 1.628d+00
mendeleiev(51)%name = 'SB'
mendeleiev(51)%mass = 121.75d0
mendeleiev(51)%zed = 51.d0
mendeleiev(51)%covrad = 1.628d+00
mendeleiev(52)%name = 'TE'
mendeleiev(52)%mass = 127.60d0
mendeleiev(52)%zed = 52.d0
mendeleiev(52)%covrad = 1.628d+00
mendeleiev(53)%name = 'I '
mendeleiev(53)%mass = 126.9045d0
mendeleiev(53)%zed = 53.d0
mendeleiev(53)%covrad = 1.628d+00
mendeleiev(54)%name = 'XE'
mendeleiev(54)%mass = 131.29d0
mendeleiev(54)%zed = 54.d0
mendeleiev(54)%covrad = 1.628d+00
! mendeleiev(ii)%name = '--'
! mendeleiev(ii)%mass = d0
! mendeleiev(ii)%zed = .d0
! mendeleiev(ii)%covrad = 1.628d+00
mendeleiev(80)%name = 'HG'
mendeleiev(80)%mass = 0.d0
mendeleiev(80)%zed = 80.d0
mendeleiev(80)%covrad = 1.628d+00
mendeleiev(81)%name = 'TL'
mendeleiev(81)%mass = 0.d0
mendeleiev(81)%zed = 81.d0
mendeleiev(81)%covrad = 1.628d+00
mendeleiev(82)%name = 'PB'
mendeleiev(82)%mass = 0.d0
mendeleiev(82)%zed = 82.d0
mendeleiev(82)%covrad = 1.628d+00
mendeleiev(83)%name = 'BI'
mendeleiev(83)%mass = 0.d0
mendeleiev(83)%zed = 83.d0
mendeleiev(83)%covrad = 1.628d+00
mendeleiev(84)%name = 'PO'
mendeleiev(84)%mass = 0.d0
mendeleiev(84)%zed = 84.d0
mendeleiev(84)%covrad = 1.628d+00
mendeleiev(85)%name = 'AT'
mendeleiev(85)%mass = 0.d0
mendeleiev(85)%zed = 85.d0
mendeleiev(85)%covrad = 1.628d+00
mendeleiev(86)%name = 'RN'
mendeleiev(86)%mass = 0.d0
mendeleiev(86)%zed = 86.d0
mendeleiev(86)%covrad = 1.628d+00
mendeleiev(87)%name = 'FR'
mendeleiev(87)%mass = 0.d0
mendeleiev(87)%zed = 87.d0
mendeleiev(87)%covrad = 1.628d+00
mendeleiev(88)%name = 'RA'
mendeleiev(88)%mass = 0.d0
mendeleiev(88)%zed = 88.d0
mendeleiev(88)%covrad = 1.628d+00
mendeleiev(89)%name = 'AC'
mendeleiev(89)%mass = 0.d0
mendeleiev(89)%zed = 89.d0
mendeleiev(89)%covrad = 1.628d+00
mendeleiev(90)%name = 'TH'
mendeleiev(90)%mass = 0.d0
mendeleiev(90)%zed = 90.d0
mendeleiev(90)%covrad = 1.628d+00
mendeleiev(91)%name = 'PA'
mendeleiev(91)%mass = 0.d0
mendeleiev(91)%zed = 91.d0
mendeleiev(91)%covrad = 1.628d+00
mendeleiev(92)%name = 'U '
mendeleiev(92)%mass = 0.d0
mendeleiev(92)%zed = 92.d0
mendeleiev(92)%covrad = 1.628d+00
mendeleiev(93)%name = 'NP'
mendeleiev(93)%mass = 0.d0
mendeleiev(93)%zed = 93.d0
mendeleiev(93)%covrad = 1.628d+00
mendeleiev(94)%name = 'PU'
mendeleiev(94)%mass = 0.d0
mendeleiev(94)%zed = 94.d0
mendeleiev(94)%covrad = 1.628d+00
mendeleiev(95)%name = 'AM'
mendeleiev(95)%mass = 0.d0
mendeleiev(95)%zed = 100.d0
mendeleiev(95)%covrad = 1.628d+00
mendeleiev(96)%name = 'CM'
mendeleiev(96)%mass = 0.d0
mendeleiev(96)%zed = 100.d0
mendeleiev(96)%covrad = 1.628d+00
mendeleiev(97)%name = 'BK'
mendeleiev(97)%mass = 0.d0
mendeleiev(97)%zed = 100.d0
mendeleiev(97)%covrad = 1.628d+00
mendeleiev(98)%name = 'CF'
mendeleiev(98)%mass = 0.d0
mendeleiev(98)%zed = 98.d0
mendeleiev(98)%covrad = 1.628d+00
mendeleiev(99)%name = 'ES'
mendeleiev(99)%mass = 0.d0
mendeleiev(99)%zed = 99.d0
mendeleiev(99)%covrad = 1.628d+00
mendeleiev(100)%name = 'FM'
mendeleiev(100)%mass = 0.d0
mendeleiev(100)%zed = 100.d0
mendeleiev(100)%covrad = 1.628d+00
mendeleiev(101)%name = 'MD'
mendeleiev(101)%mass = 0.d0
mendeleiev(101)%zed = 101.d0
mendeleiev(101)%covrad = 1.628d+00
mendeleiev(102)%name = 'NO'
mendeleiev(102)%mass = 0.d0
mendeleiev(102)%zed = 102.d0
mendeleiev(102)%covrad = 1.628d+00
mendeleiev(103)%name = 'LR'
mendeleiev(103)%mass = 0.d0
mendeleiev(103)%zed = 103.d0
mendeleiev(103)%covrad = 1.628d+00
mendeleiev(104)%name = 'X '
mendeleiev(104)%mass = 0.d0
mendeleiev(104)%zed = 0.d0
mendeleiev(104)%covrad = 1.628d+00
call exit (l_here)
end subroutine mendeleiev_init
! ===============================================================================
subroutine check_asso_mendeleiev (object_name, object, routine_name, routine)
! -------------------------------------------------------------------------------
!
! Name : check_asso_mendeleiev
!
!
! Description : (object_name, object, routine_name, routine)
! Description : builds object mendeleiev if not associated
!
! Authors:F.Colonna
! Date :21 Sep 2000
! -------------------------------------------------------------------------------
implicit none
! i/o
character(len=*), intent (in) :: object_name, routine_name
type (element), pointer :: object(:)
external :: routine
! local:
character(len=max_string_len_routine_name) :: l_here
! begin:
l_here ='check_asso_mendeleiev'
call enter (l_here)
if(debug)write (logf,*)trim(l_here), &
'-d: object_name >',trim(object_name),'<'
if(.not.associated(object)) then
if(debug .or. trace_level > 0) then
write (logf,'(4a)') trim(l_here), &
': object >',trim(object_name),'< not yet created'
write (logf,'(4a)') trim(l_here), &
': calling routine >',trim(routine_name),'<'
end if
call routine
end if
call exit (l_here)
end subroutine check_asso_mendeleiev
end module mendeleiev_mod
back to top