LCOV - code coverage report
Current view: top level - shared/common/src/32_util - m_atomdata.F90 (source / functions) Coverage Total Hit
Test: coverage.info Lines: 75.0 % 172 129
Test Date: 2026-11-08 02:25:56 Functions: 71.4 % 7 5
Branches: 70.7 % 164 116

             Branch data     Line data    Source code
       1                 :             : !!****m* ABINIT/m_atomdata
       2                 :             : !! NAME
       3                 :             : !!  m_atomdata
       4                 :             : !!
       5                 :             : !! FUNCTION
       6                 :             : !!   Atomic data
       7                 :             : !!
       8                 :             : !! COPYRIGHT
       9                 :             : !!  Copyright (C) 2000-2026 ABINIT group (XG, MJV, MT, MG)
      10                 :             : !!  This file is distributed under the terms of the
      11                 :             : !!  GNU General Public License, see ~abinit/COPYING
      12                 :             : !!  or http://www.gnu.org/copyleft/gpl.txt .
      13                 :             : !!
      14                 :             : !! TODO
      15                 :             : !!  * Use module global lookup table.
      16                 :             : !!
      17                 :             : !! SOURCE
      18                 :             : 
      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)
      42                 :             : !!***
      43                 :             : 
      44                 :             : !----------------------------------------------------------------------
      45                 :             : 
      46                 :             : !!****t* m_atomdata/atomdata_t
      47                 :             : !! NAME
      48                 :             : !! atomdata_t
      49                 :             : !!
      50                 :             : !! FUNCTION
      51                 :             : !!  Record with the atomic data (symbol, covalent radius, atomic mass) for a given atomic specie
      52                 :             : !!
      53                 :             : !! SOURCE
      54                 :             : 
      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
      65                 :             : !!***
      66                 :             : 
      67                 :             : ! *************************************************************************
      68                 :             : 
      69                 :             : contains
      70                 :             : 
      71                 :             : !!****f* ABINIT/atomdata_from_znucl
      72                 :             : !! NAME
      73                 :             : !! atomdata_from_znucl
      74                 :             : !!
      75                 :             : !! FUNCTION
      76                 :             : !! Return atomic data : symbol, covalent radius, atomic mass
      77                 :             : !! Atomic masses are those recommended by the commission on Atomic Weights and
      78                 :             : !! Isotopic Abundances, Inorganic Chemistry Division, IUPAC, in
      79                 :             : !! Pure Appl. Chem. 60, 841 (1988) [[cite:IUPAC1988]]. For Tc, Pm, Po to Ac, Pa and beyond U,
      80                 :             : !! none of the isotopes has a half-life greater than 3.0d10 years, and
      81                 :             : !! the values provided here do not come from that source.
      82                 :             : !!
      83                 :             : !! INPUTS
      84                 :             : !! znucl=atomic number (a real(dp) number ! the nearest integer is selected in the routine ...)
      85                 :             : !!
      86                 :             : !! OUTPUT
      87                 :             : !! amu=atomic mass (Masses beyond element 103 are fixed at 260)
      88                 :             : !! rcov=covalent radius   (Elements beyond 86 have an estimated covalent radius)
      89                 :             : !! character(len=2) symbol=atomic symbol
      90                 :             : !!
      91                 :             : !! SOURCE
      92                 :             : 
      93                 :      204863 : 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                 :      204863 :  nucl=nint(znucl)
     109                 :         323 :  select case (nucl)
     110                 :             :    case(0)
     111                 :         323 :      amu=one         ; rcov=one/Bohr_Ang    ; symbol='no'
     112                 :             :    case(1)
     113                 :       85164 :      amu=1.00794d0   ; rcov=0.32d0/Bohr_Ang ; symbol=' H'
     114                 :             :    case(2)
     115                 :        2063 :      amu=4.002602d0  ; rcov=0.93d0/Bohr_Ang ; symbol='He'
     116                 :             :    case(3)
     117                 :        1703 :      amu=6.941d0     ; rcov=1.23d0/Bohr_Ang ; symbol='Li'
     118                 :             :    case(4)
     119                 :         754 :      amu=9.012182d0  ; rcov=0.90d0/Bohr_Ang ; symbol='Be'
     120                 :             :    case(5)
     121                 :        6097 :      amu=10.811d0    ; rcov=0.80d0/Bohr_Ang ; symbol=' B'
     122                 :             :    case(6)
     123                 :        8809 :      amu=12.011d0    ; rcov=0.77d0/Bohr_Ang ; symbol=' C'
     124                 :             :    case(7)
     125                 :        1263 :      amu=14.00674d0  ; rcov=0.74d0/Bohr_Ang ; symbol=' N'
     126                 :             :    case(8)
     127                 :        9224 :      amu=15.9994d0   ; rcov=0.73d0/Bohr_Ang ; symbol=' O'
     128                 :             :    case(9)
     129                 :         901 :      amu=18.9984032d0; rcov=0.72d0/Bohr_Ang ; symbol=' F'
     130                 :             : 
     131                 :             :    case(10)
     132                 :         108 :      amu=20.1797d0   ; rcov=0.71d0/Bohr_Ang ; symbol='Ne'
     133                 :             :    case(11)
     134                 :         973 :      amu=22.989768d0 ; rcov=1.54d0/Bohr_Ang ; symbol='Na'
     135                 :             :    case(12)
     136                 :        3934 :      amu=24.3050d0   ; rcov=1.36d0/Bohr_Ang ; symbol='Mg'
     137                 :             :    case(13)
     138                 :       21459 :      amu=26.981539d0 ; rcov=1.18d0/Bohr_Ang ; symbol='Al'
     139                 :             :    case(14)
     140                 :       30774 :      amu=28.0855d0   ; rcov=1.11d0/Bohr_Ang ; symbol='Si'
     141                 :             :    case(15)
     142                 :        4958 :      amu=30.973762d0 ; rcov=1.06d0/Bohr_Ang ; symbol=' P'
     143                 :             :    case(16)
     144                 :         130 :      amu=32.066d0    ; rcov=1.02d0/Bohr_Ang ; symbol=' S'
     145                 :             :    case(17)
     146                 :         285 :      amu=35.4527d0   ; rcov=0.99d0/Bohr_Ang ; symbol='Cl'
     147                 :             :    case(18)
     148                 :         319 :      amu=39.948d0    ; rcov=0.98d0/Bohr_Ang ; symbol='Ar'
     149                 :             :    case(19)
     150                 :          56 :      amu=39.0983d0   ; rcov=2.03d0/Bohr_Ang ; symbol=' K'
     151                 :             : 
     152                 :             :    case(20)
     153                 :         247 :      amu=40.078d0    ; rcov=1.74d0/Bohr_Ang ; symbol='Ca'
     154                 :             :    case(21)
     155                 :          53 :      amu=44.955910d0 ; rcov=1.44d0/Bohr_Ang ; symbol='Sc'
     156                 :             :    case(22)
     157                 :        1317 :      amu=47.88d0     ; rcov=1.32d0/Bohr_Ang ; symbol='Ti'
     158                 :             :    case(23)
     159                 :         313 :      amu=50.9415d0   ; rcov=1.22d0/Bohr_Ang ; symbol=' V'
     160                 :             :    case(24)
     161                 :         297 :      amu=51.9961d0   ; rcov=1.18d0/Bohr_Ang ; symbol='Cr'
     162                 :             :    case(25)
     163                 :         335 :      amu=54.93805d0  ; rcov=1.17d0/Bohr_Ang ; symbol='Mn'
     164                 :             :    case(26)
     165                 :        3513 :      amu=55.847d0    ; rcov=1.17d0/Bohr_Ang ; symbol='Fe'
     166                 :             :    case(27)
     167                 :          28 :      amu=58.93320d0  ; rcov=1.16d0/Bohr_Ang ; symbol='Co'
     168                 :             :    case(28)
     169                 :        1488 :      amu=58.69d0     ; rcov=1.15d0/Bohr_Ang ; symbol='Ni'
     170                 :             :    case(29)
     171                 :         145 :      amu=63.546d0    ; rcov=1.17d0/Bohr_Ang ; symbol='Cu'
     172                 :             : 
     173                 :             :    case(30)
     174                 :          55 :      amu=65.39d0     ; rcov=1.25d0/Bohr_Ang ; symbol='Zn'
     175                 :             :    case(31)
     176                 :        1521 :      amu=69.723d0    ; rcov=1.26d0/Bohr_Ang ; symbol='Ga'
     177                 :             :    case(32)
     178                 :        1027 :      amu=72.61d0     ; rcov=1.22d0/Bohr_Ang ; symbol='Ge'
     179                 :             :    case(33)
     180                 :        3406 :      amu=74.92159d0  ; rcov=1.20d0/Bohr_Ang ; symbol='As'
     181                 :             :    case(34)
     182                 :          28 :      amu=78.96d0     ; rcov=1.16d0/Bohr_Ang ; symbol='Se'
     183                 :             :    case(35)
     184                 :          19 :      amu=79.904d0    ; rcov=1.14d0/Bohr_Ang ; symbol='Br'
     185                 :             :    case(36)
     186                 :          10 :      amu=83.80d0     ; rcov=1.12d0/Bohr_Ang ; symbol='Kr'
     187                 :             :    case(37)
     188                 :          15 :      amu=85.4678d0   ; rcov=2.16d0/Bohr_Ang ; symbol='Rb'
     189                 :             :    case(38)
     190                 :         293 :      amu=87.62d0     ; rcov=1.91d0/Bohr_Ang ; symbol='Sr'
     191                 :             :    case(39)
     192                 :           8 :      amu=88.90585d0  ; rcov=1.62d0/Bohr_Ang ; symbol=' Y'
     193                 :             : 
     194                 :             :    case(40)
     195                 :          71 :      amu=91.224d0    ; rcov=1.45d0/Bohr_Ang ; symbol='Zr'
     196                 :             :    case(41)
     197                 :         334 :      amu=92.90638d0  ; rcov=1.34d0/Bohr_Ang ; symbol='Nb'
     198                 :             :    case(42)
     199                 :        1011 :      amu=95.94d0     ; rcov=1.30d0/Bohr_Ang ; symbol='Mo'
     200                 :             :    case(43)
     201                 :           3 :      amu=98.9062d0   ; rcov=1.27d0/Bohr_Ang ; symbol='Tc'
     202                 :             :    case(44)
     203                 :         119 :      amu=101.07d0    ; rcov=1.25d0/Bohr_Ang ; symbol='Ru'
     204                 :             :    case(45)
     205                 :           0 :      amu=102.9055d0  ; rcov=1.25d0/Bohr_Ang ; symbol='Rh'
     206                 :             :    case(46)
     207                 :           0 :      amu=106.42d0    ; rcov=1.28d0/Bohr_Ang ; symbol='Pd'
     208                 :             :    case(47)
     209                 :          14 :      amu=107.8682d0  ; rcov=1.34d0/Bohr_Ang ; symbol='Ag'
     210                 :             :    case(48)
     211                 :           0 :      amu=112.411d0   ; rcov=1.48d0/Bohr_Ang ; symbol='Cd'
     212                 :             :    case(49)
     213                 :          62 :      amu=114.82d0    ; rcov=1.44d0/Bohr_Ang ; symbol='In'
     214                 :             : 
     215                 :             :    case(50)
     216                 :         243 :      amu=118.710d0   ; rcov=1.41d0/Bohr_Ang ; symbol='Sn'
     217                 :             :    case(51)
     218                 :          54 :      amu=121.753d0   ; rcov=1.40d0/Bohr_Ang ; symbol='Sb'
     219                 :             :    case(52)
     220                 :         351 :      amu=127.60d0    ; rcov=1.36d0/Bohr_Ang ; symbol='Te'
     221                 :             :    case(53)
     222                 :         474 :      amu=126.90447d0 ; rcov=1.33d0/Bohr_Ang ; symbol=' I'
     223                 :             :    case(54)
     224                 :           0 :      amu=131.29d0    ; rcov=1.31d0/Bohr_Ang ; symbol='Xe'
     225                 :             :    case(55)
     226                 :           0 :      amu=132.90543d0 ; rcov=2.35d0/Bohr_Ang ; symbol='Cs'
     227                 :             :    case(56)
     228                 :         150 :      amu=137.327d0   ; rcov=1.98d0/Bohr_Ang ; symbol='Ba'
     229                 :             :    case(57)
     230                 :          16 :      amu=138.9055d0  ; rcov=1.69d0/Bohr_Ang ; symbol='La'
     231                 :             :    case(58)
     232                 :          72 :      amu=140.115d0   ; rcov=1.65d0/Bohr_Ang ; symbol='Ce'
     233                 :             :    case(59)
     234                 :           0 :      amu=140.90765d0 ; rcov=1.65d0/Bohr_Ang ; symbol='Pr'
     235                 :             : 
     236                 :             :    case(60)
     237                 :          10 :      amu=144.24d0    ; rcov=1.64d0/Bohr_Ang ; symbol='Nd'
     238                 :             :    case(61)
     239                 :           0 :      amu=147.91d0    ; rcov=1.64d0/Bohr_Ang ; symbol='Pm'
     240                 :             :    case(62)
     241                 :           0 :      amu=150.36d0    ; rcov=1.62d0/Bohr_Ang ; symbol='Sm'
     242                 :             :    case(63)
     243                 :          64 :      amu=151.965d0   ; rcov=1.85d0/Bohr_Ang ; symbol='Eu'
     244                 :             :    case(64)
     245                 :          45 :      amu=157.25d0    ; rcov=1.61d0/Bohr_Ang ; symbol='Gd'
     246                 :             :    case(65)
     247                 :           0 :      amu=158.92534d0 ; rcov=1.59d0/Bohr_Ang ; symbol='Tb'
     248                 :             :    case(66)
     249                 :           0 :      amu=162.50d0    ; rcov=1.59d0/Bohr_Ang ; symbol='Dy'
     250                 :             :    case(67)
     251                 :           0 :      amu=164.93032d0 ; rcov=1.57d0/Bohr_Ang ; symbol='Ho'
     252                 :             :    case(68)
     253                 :           0 :      amu=167.26d0    ; rcov=1.57d0/Bohr_Ang ; symbol='Er'
     254                 :             :    case(69)
     255                 :           0 :      amu=168.93421d0 ; rcov=1.56d0/Bohr_Ang ; symbol='Tm'
     256                 :             : 
     257                 :             :    case(70)
     258                 :          59 :      amu=173.04d0    ; rcov=1.70d0/Bohr_Ang ; symbol='Yb'
     259                 :             :    case(71)
     260                 :          18 :      amu=174.967d0   ; rcov=1.56d0/Bohr_Ang ; symbol='Lu'
     261                 :             :    case(72)
     262                 :           7 :      amu=178.49d0    ; rcov=1.44d0/Bohr_Ang ; symbol='Hf'
     263                 :             :    case(73)
     264                 :          78 :      amu=180.9479d0  ; rcov=1.34d0/Bohr_Ang ; symbol='Ta'
     265                 :             :    case(74)
     266                 :           0 :      amu=183.85d0    ; rcov=1.30d0/Bohr_Ang ; symbol=' W'
     267                 :             :    case(75)
     268                 :           0 :      amu=186.207d0   ; rcov=1.28d0/Bohr_Ang ; symbol='Re'
     269                 :             :    case(76)
     270                 :          10 :      amu=190.2d0     ; rcov=1.26d0/Bohr_Ang ; symbol='Os'
     271                 :             :    case(77)
     272                 :          31 :      amu=192.22d0    ; rcov=1.27d0/Bohr_Ang ; symbol='Ir'
     273                 :             :    case(78)
     274                 :          58 :      amu=195.08d0    ; rcov=1.30d0/Bohr_Ang ; symbol='Pt'
     275                 :             :    case(79)
     276                 :        1391 :      amu=196.96654d0 ; rcov=1.34d0/Bohr_Ang ; symbol='Au'
     277                 :             : 
     278                 :             :    case(80)
     279                 :           0 :      amu=200.59d0    ; rcov=1.49d0/Bohr_Ang ; symbol='Hg'
     280                 :             :    case(81)
     281                 :           0 :      amu=204.3833d0  ; rcov=1.48d0/Bohr_Ang ; symbol='Tl'
     282                 :             :    case(82)
     283                 :         150 :      amu=207.2d0     ; rcov=1.47d0/Bohr_Ang ; symbol='Pb'
     284                 :             :    case(83)
     285                 :        4429 :      amu=208.98037d0 ; rcov=1.46d0/Bohr_Ang ; symbol='Bi'
     286                 :             :    case(84)
     287                 :           0 :      amu=209.0d0     ; rcov=1.46d0/Bohr_Ang ; symbol='Po'
     288                 :             :    case(85)
     289                 :           0 :      amu=210.0d0     ; rcov=1.45d0/Bohr_Ang ; symbol='At'
     290                 :             :    case(86)
     291                 :           0 :      amu=222.0d0     ; rcov=1.45d0/Bohr_Ang ; symbol='Rn'
     292                 :             :    case(87)
     293                 :           0 :      amu=223.0d0     ; rcov=2.50d0/Bohr_Ang ; symbol='Fr'
     294                 :             :    case(88)
     295                 :           0 :      amu=226.0254d0  ; rcov=2.10d0/Bohr_Ang ; symbol='Ra'
     296                 :             :    case(89)
     297                 :           0 :      amu=230.0d0     ; rcov=1.85d0/Bohr_Ang ; symbol='Ac'
     298                 :             : 
     299                 :             :    case(90)
     300                 :           0 :      amu=232.0381d0  ; rcov=1.65d0/Bohr_Ang ; symbol='Th'
     301                 :             :    case(91)
     302                 :           0 :      amu=231.0359d0  ; rcov=1.50d0/Bohr_Ang ; symbol='Pa'
     303                 :             :    case(92)
     304                 :        2004 :      amu=238.0289d0  ; rcov=1.42d0/Bohr_Ang ; symbol=' U'
     305                 :             :    case(93)
     306                 :           0 :      amu=237.0482d0  ; rcov=1.42d0/Bohr_Ang ; symbol='Np'
     307                 :             :    case(94)
     308                 :         120 :      amu=242.0d0     ; rcov=1.42d0/Bohr_Ang ; symbol='Pu'
     309                 :             :    case(95)
     310                 :           0 :      amu=243.0d0     ; rcov=1.42d0/Bohr_Ang ; symbol='Am'
     311                 :             :    case(96)
     312                 :           0 :      amu=247.0d0     ; rcov=1.42d0/Bohr_Ang ; symbol='Cm'
     313                 :             :    case(97)
     314                 :           0 :      amu=247.0d0     ; rcov=1.42d0/Bohr_Ang ; symbol='Bk'
     315                 :             :    case(98)
     316                 :           0 :      amu=249.0d0     ; rcov=1.42d0/Bohr_Ang ; symbol='Cf'
     317                 :             :    case(99)
     318                 :           0 :      amu=254.0d0     ; rcov=1.42d0/Bohr_Ang ; symbol='Es'
     319                 :             : 
     320                 :             :    case(100)
     321                 :           0 :      amu=253.0d0     ; rcov=1.42d0/Bohr_Ang ; symbol='Fm'
     322                 :             :    case(101)
     323                 :           0 :      amu=256.0d0     ; rcov=1.42d0/Bohr_Ang ; symbol='Md'
     324                 :             :    case(102)
     325                 :           0 :      amu=254.0d0     ; rcov=1.42d0/Bohr_Ang ; symbol='No'
     326                 :             :    case(103)
     327                 :           0 :      amu=257.0d0     ; rcov=1.42d0/Bohr_Ang ; symbol='Lr'
     328                 :             :    case(104:)
     329   [ +  +  +  +  :      204863 :      amu=260.0d0     ; rcov=1.42d0/Bohr_Ang ; symbol='Xx'
          +  +  +  +  +  
          +  +  +  +  +  
          +  +  +  +  +  
          +  +  +  +  +  
          +  +  +  +  +  
          +  +  +  +  +  
          +  +  +  +  +  
          +  +  +  +  +  
          +  -  -  +  -  
          +  +  +  +  +  
          -  -  +  +  +  
          -  +  -  -  +  
          +  -  -  -  -  
          -  +  +  +  +  
          -  -  +  +  +  
          +  -  -  +  +  
          -  -  -  -  -  
          -  -  -  +  -  
          +  -  -  -  -  
          -  -  -  -  -  
                   -  - ]
     330                 :             : 
     331                 :             :  end select
     332                 :             : 
     333                 :      204863 :  atom%znucl = znucl
     334                 :      204863 :  atom%amu = amu
     335                 :      204863 :  atom%rcov = rcov
     336                 :      204863 :  atom%symbol = symbol
     337                 :             : 
     338                 :      204863 : end subroutine atomdata_from_znucl
     339                 :             : !!***
     340                 :             : 
     341                 :             : !!****f* m_atomdata/atomdata_from_symbol
     342                 :             : !! NAME
     343                 :             : !! atomdata_from_symbol
     344                 :             : !!
     345                 :             : !! FUNCTION
     346                 :             : !!
     347                 :             : !! INPUTS
     348                 :             : !!
     349                 :             : !! OUTPUT
     350                 :             : !!
     351                 :             : !! SOURCE
     352                 :             : 
     353                 :         178 : 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                 :           0 :    amu=     260.0d0     ; rcov=1.42d0/Bohr_Ang ; znucl=104
     577                 :             :  case default
     578         [ #  # ]:           0 :    ABI_ERROR(sjoin("Unknown element symbol: `",trim(symbol), "`"))
     579                 :             :  end select
     580                 :             : 
     581                 :         178 :  atom%znucl = znucl
     582                 :         178 :  atom%amu = amu
     583                 :         178 :  atom%rcov = rcov
     584         [ -  + ]:         178 :  atom%symbol = symbol
     585                 :             : 
     586         [ +  - ]:         178 : end subroutine atomdata_from_symbol
     587                 :             : !!***
     588                 :             : 
     589                 :             : !----------------------------------------------------------------------
     590                 :             : 
     591                 :             : !!****f* m_atomdata/znucl2symbol
     592                 :             : !! NAME
     593                 :             : !!
     594                 :             : !! FUNCTION
     595                 :             : !!   Return the symbol from znucl
     596                 :             : !!
     597                 :             : !! INPUTS
     598                 :             : !! znucl=atomic number
     599                 :             : !!
     600                 :             : !! OUTPUT
     601                 :             : !!
     602                 :             : !! SOURCE
     603                 :             : 
     604                 :        9369 : 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                 :        9369 :  call atomdata_from_znucl(atom, znucl)
     617                 :        9369 :  symbol = atom%symbol
     618                 :             : 
     619                 :        9369 : end function znucl2symbol
     620                 :             : !!***
     621                 :             : 
     622                 :             : !----------------------------------------------------------------------
     623                 :             : 
     624                 :             : !!****f* m_atomdata/symbol2znucl
     625                 :             : !! NAME
     626                 :             : !!
     627                 :             : !! FUNCTION
     628                 :             : !!   Return znucl from the symbol
     629                 :             : !!
     630                 :             : !! OUTPUT
     631                 :             : !!
     632                 :             : !! SOURCE
     633                 :             : 
     634                 :         150 : 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                 :         150 :  call atomdata_from_symbol(atom, symbol)
     647                 :         150 :  znucl = atom%znucl
     648                 :             : 
     649                 :         150 : end function symbol2znucl
     650                 :             : !!***
     651                 :             : 
     652                 :             : !!****f* m_atomdata/atom_length
     653                 :             : !! NAME
     654                 :             : !! atom_length
     655                 :             : !!
     656                 :             : !! FUNCTION
     657                 :             : !! Return atomic decay length for one given type of atom.
     658                 :             : !! This length is used to generate an approximate atomic gaussian density
     659                 :             : !! in reciprocal space:   n^AT(G)=exp[-(2pi.length.G)^2]
     660                 :             : !!
     661                 :             : !! INPUTS
     662                 :             : !! densty=parameter for initialisation of the density of this atom type
     663                 :             : !!        if densty>0, returned decay length if densty !
     664                 :             : !! zion=charge on current type of atom (real number)
     665                 :             : !! znucl=atomic number, for current type of atom
     666                 :             : !!
     667                 :             : !! OUTPUT
     668                 :             : !! length=decay lenth
     669                 :             : !!
     670                 :             : !! SOURCE
     671                 :             : 
     672                 :        4985 : 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         [ +  + ]:        4985 :  if(abs(densty)>tol10)then
     690                 :             :    length=densty
     691                 :             :  else
     692                 :             : 
     693                 :             : !  Count the number of core electrons.
     694                 :        4924 :    coreel=znucl-zion
     695                 :             : !  Round the number of valence electrons
     696                 :        4924 :    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         [ +  + ]:        4924 :    if (nval==0) then
     702                 :             :      length=zero
     703                 :             : 
     704                 :             : !    Bare ions : adjusted on 1h and 2he only
     705         [ +  + ]:        4922 :    else if(coreel<0.5)then
     706         [ +  + ]:        6150 :      data_length(1:4)=(/ .6_dp,.4_dp,.3_dp,.25_dp /)
     707                 :        1230 :      length=.2_dp
     708         [ +  + ]:        1230 :      if(nval<=4)length=data_length(nval)
     709                 :             : 
     710                 :             : !    1s2 core : adjusted on 3li, 6c, 7n, and 8o
     711         [ +  + ]:        3692 :    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         [ +  + ]:       13698 : &     .5_dp, .4_dp, .35_dp /)
     714                 :        1522 :      length=.3_dp
     715         [ +  - ]:        1522 :      if(nval<=8)length=data_length(nval)
     716                 :             : 
     717                 :             : !    Ne core (1s2 2s2 2p6) : adjusted on 11na, 13al, 14si and 17cl
     718         [ +  + ]:        2170 :    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         [ +  + ]:       18447 : &     .9_dp, .8_dp, .7_dp , .7_dp, .7_dp  /)
     721                 :        1677 :      length=.6_dp
     722         [ +  + ]:        1677 :      if(nval<=10)length=data_length(nval)
     723                 :             : 
     724                 :             : !    Mg core (1s2 2s2 2p6 3s2) : adjusted on 19k, and on coreel==10
     725         [ +  + ]:         493 :    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         [ +  + ]:          22 : &     .8_dp, .7_dp, .6_dp , .6_dp, .6_dp  /)
     728                 :           2 :      length=.5_dp
     729         [ +  - ]:           2 :      if(nval<=10)length=data_length(nval)
     730                 :             : 
     731                 :             : !    Ar core (Ne + 3s2 3p6) : adjusted on 20ca, 25mn and 30zn
     732         [ +  + ]:         491 :    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         [ +  + ]:         806 : &     .65_dp, .65_dp /)
     736                 :          62 :      length=.6_dp
     737         [ -  + ]:          62 :      if(nval<=12)length=data_length(nval)
     738                 :             : 
     739                 :             : !    Full 3rd shell core (Ar + 3d10) : adjusted on 31ga, 34se and 38sr
     740         [ +  + ]:         429 :    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         [ +  + ]:        2295 : &     .85_dp, .80_dp, .8_dp , .75_dp         /)
     744                 :         153 :      length=.7_dp
     745         [ -  + ]:         153 :      if(nval<=14)length=data_length(nval)
     746                 :             : 
     747                 :             : !    Krypton core (Ar + 3d10 4s2 4p6) : adjusted on 39y, 42mo and 48cd
     748         [ +  + ]:         276 :    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         [ +  + ]:         221 : &     .80_dp, .75_dp /)
     752                 :          17 :      length=.7_dp
     753         [ -  + ]:          17 :      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         [ +  + ]:        3367 : &     .85_dp, .85_dp /)
     760                 :         259 :      length=.8_dp
     761         [ +  + ]:         259 :      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                 :        4985 : end function atom_length
     773                 :             : !!***
     774                 :             : 
     775                 :             : !!****f* m_atomdata/atom_gauss
     776                 :             : !! NAME
     777                 :             : !! atom_gauss
     778                 :             : !!
     779                 :             : !! FUNCTION
     780                 :             : !! Approximate the atomic density with a gaussian. Used to approximate densities with
     781                 :             : !! atomic-like quantities if the pseudopotential does not provide the valence charge density.
     782                 :             : !!
     783                 :             : !! INPUTS
     784                 :             : !! ntypat=Number of type of atoms.
     785                 :             : !! densty(ntypat,3)=parameter for initialisation of the density of this atom type
     786                 :             : !!                  if densty>0, returned decay length if densty!
     787                 :             : !! ziontypat(ntypat)=charge on current type of atom (real number)
     788                 :             : !! znucltypat=atomic number, for current type of atom
     789                 :             : !!
     790                 :             : !! OUTPUT
     791                 :             : !! gauss(2,ntypat)=Gaussian parameters.
     792                 :             : !!
     793                 :             : !! SOURCE
     794                 :             : 
     795                 :           0 : 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         [ #  # ]:           0 :  do itypat=1,ntypat
     811                 :           0 :    gauss(1,itypat) = ziontypat(itypat)
     812                 :           0 :    gauss(2,itypat) = atom_length(densty(itypat,1), ziontypat(itypat), znucltypat(itypat))
     813                 :             :  end do
     814                 :             : 
     815                 :           0 : end subroutine atom_gauss
     816                 :             : !!***
     817                 :             : 
     818                 :           0 : end module m_atomdata
     819                 :             : !!***
        

Generated by: LCOV version 2.3-1