(git:b195825)
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 
153 CONTAINS
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 
176 END 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