(git:374b731)
Loading...
Searching...
No Matches
uff_vdw_radii_table.F
Go to the documentation of this file.
1!--------------------------------------------------------------------------------------------------!
2! CP2K: A general program to perform molecular dynamics simulations !
3! Copyright 2000-2024 CP2K developers group <https://cp2k.org> !
4! !
5! SPDX-License-Identifier: GPL-2.0-or-later !
6!--------------------------------------------------------------------------------------------------!
7
8! **************************************************************************************************
9!> \brief provides a table for UFF vdW radii:
10!> Rappe et al. J. Am. Chem. Soc. 114, 10024 (1992)
11!> \par History
12!> created 2015/10/28
13!> \author Lianheng Tong (lianheng.tong [AT] kcl.ac.uk)
14! **************************************************************************************************
16
17 USE kinds, ONLY: dp
18#include "base/base_uses.f90"
19
20 IMPLICIT NONE
21
22 PRIVATE
23
24 PUBLIC :: get_uff_vdw_radius
25
26 CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'uff_vdw_radii_table'
27
28 INTEGER, PARAMETER :: NELEMENTS = 118
29 REAL(KIND=dp), PARAMETER :: nan = -1.0_dp
30 ! the table: units are in Angstrom, in the order of z
31 REAL(KIND=dp), DIMENSION(NELEMENTS), PARAMETER :: uff_vdw_radius = &
32 (/ &
33 1.443_dp, & ! 1 H
34 1.181_dp, & ! 2 He
35 1.226_dp, & ! 3 Li
36 1.373_dp, & ! 4 Be
37 2.042_dp, & ! 5 B
38 1.926_dp, & ! 6 C
39 1.830_dp, & ! 7 N
40 1.750_dp, & ! 8 O
41 1.682_dp, & ! 9 F
42 1.621_dp, & ! 10 Ne
43 1.492_dp, & ! 11 Na
44 1.510_dp, & ! 12 Mg
45 2.250_dp, & ! 13 Al
46 2.148_dp, & ! 14 Si
47 2.074_dp, & ! 15 P
48 2.017_dp, & ! 16 S
49 1.973_dp, & ! 17 Cl
50 1.934_dp, & ! 18 Ar
51 1.906_dp, & ! 19 K
52 1.700_dp, & ! 20 Ca
53 1.647_dp, & ! 21 Sc
54 1.587_dp, & ! 22 Ti
55 1.572_dp, & ! 23 V
56 1.511_dp, & ! 24 Cr
57 1.481_dp, & ! 25 Mn
58 1.456_dp, & ! 26 Fe
59 1.436_dp, & ! 27 Co
60 1.417_dp, & ! 28 Ni
61 1.748_dp, & ! 29 Cu
62 1.382_dp, & ! 30 Zn
63 2.191_dp, & ! 31 Ga
64 2.140_dp, & ! 32 Ge
65 2.115_dp, & ! 33 As
66 2.103_dp, & ! 34 Se
67 2.094_dp, & ! 35 Br
68 2.071_dp, & ! 36 Kr
69 2.057_dp, & ! 37 Rb
70 1.821_dp, & ! 38 Sr
71 1.673_dp, & ! 39 Y
72 1.562_dp, & ! 40 Zr
73 1.582_dp, & ! 41 Nb
74 1.526_dp, & ! 42 Mo
75 1.499_dp, & ! 43 Tc
76 1.482_dp, & ! 44 Ru
77 1.464_dp, & ! 45 Rh
78 1.450_dp, & ! 46 Pd
79 1.574_dp, & ! 47 Ag
80 1.424_dp, & ! 48 Cd
81 2.231_dp, & ! 49 In
82 2.196_dp, & ! 50 Sn
83 2.210_dp, & ! 51 Sb
84 2.235_dp, & ! 52 Te
85 2.250_dp, & ! 53 I
86 2.202_dp, & ! 54 Xe
87 2.259_dp, & ! 55 Cs
88 1.852_dp, & ! 56 Ba
89 1.761_dp, & ! 57 La
90 1.778_dp, & ! 58 Ce
91 1.803_dp, & ! 59 Pr
92 1.788_dp, & ! 60 Nd
93 1.774_dp, & ! 61 Pm
94 1.760_dp, & ! 62 Sm
95 1.747_dp, & ! 63 Eu
96 1.684_dp, & ! 64 Gd
97 1.725_dp, & ! 65 Tb
98 1.714_dp, & ! 66 Dy
99 1.705_dp, & ! 67 Ho
100 1.695_dp, & ! 68 Er
101 1.687_dp, & ! 69 Tm
102 1.678_dp, & ! 70 Yb
103 1.820_dp, & ! 71 Lu
104 1.570_dp, & ! 72 Hf
105 1.585_dp, & ! 73 Ta
106 1.534_dp, & ! 74 W
107 1.477_dp, & ! 75 Re
108 1.560_dp, & ! 76 Os
109 1.420_dp, & ! 77 Ir
110 1.377_dp, & ! 78 Pt
111 1.646_dp, & ! 79 Au
112 1.352_dp, & ! 80 Hg
113 2.174_dp, & ! 81 Tl
114 2.149_dp, & ! 82 Pb
115 2.185_dp, & ! 83 Bi
116 2.354_dp, & ! 84 Po
117 2.375_dp, & ! 85 At
118 2.382_dp, & ! 86 Rn
119 2.450_dp, & ! 87 Fr
120 1.838_dp, & ! 88 Ra
121 1.739_dp, & ! 89 Ac
122 1.698_dp, & ! 90 Th
123 1.712_dp, & ! 91 Pa
124 1.697_dp, & ! 92 U
125 1.712_dp, & ! 93 Np
126 1.712_dp, & ! 94 Pu
127 1.690_dp, & ! 95 Am
128 1.663_dp, & ! 96 Cm
129 1.670_dp, & ! 97 Bk
130 1.656_dp, & ! 98 Cf
131 1.649_dp, & ! 99 Es
132 1.643_dp, & !100 Fm
133 1.637_dp, & !101 Md
134 1.624_dp, & !102 No
135 1.618_dp, & !103 Lr
136 nan, & !104 Rf
137 nan, & !105 Db
138 nan, & !106 Sg
139 nan, & !107 Bh
140 nan, & !108 Hs
141 nan, & !109 Mt
142 nan, & !110 Ds
143 nan, & !111 Rg
144 nan, & !112 Cn
145 nan, & !113 Uut
146 nan, & !114 Fl
147 nan, & !115 Uup
148 nan, & !116 Lv
149 nan, & !117 Uus
150 nan & !118 Uuo
151 /)
152
153CONTAINS
154
155! **************************************************************************************************
156!> \brief get UFF vdW radius for a given element
157!> \param z : on input, atomic number
158!> \param radius : on output, UFF vdW radius, 0.0 if element not in table
159!> \param found : on output, T if element is in table, F if not
160!> \author Lianheng Tong (lianheng.tong [AT] kcl.ac.uk)
161! **************************************************************************************************
162 PURE SUBROUTINE get_uff_vdw_radius(z, radius, found)
163 INTEGER, INTENT(IN) :: z
164 REAL(kind=dp), INTENT(OUT) :: radius
165 LOGICAL, INTENT(OUT) :: found
166
167 IF (uff_vdw_radius(z) == nan) THEN
168 radius = 0.0_dp
169 found = .false.
170 ELSE
171 radius = uff_vdw_radius(z)
172 found = .true.
173 END IF
174 END SUBROUTINE get_uff_vdw_radius
175
176END MODULE uff_vdw_radii_table
Defines the basic variable types.
Definition kinds.F:23
integer, parameter, public dp
Definition kinds.F:34
provides a table for UFF vdW radii: Rappe et al. J. Am. Chem. Soc. 114, 10024 (1992)
pure subroutine, public get_uff_vdw_radius(z, radius, found)
get UFF vdW radius for a given element