LCOV - code coverage report
Current view: top level - src - qs_dispersion_cnum.F (source / functions) Coverage Total Hit
Test: CP2K Regtests (git:92574dc) Lines: 97.8 % 180 176
Test Date: 2026-09-24 01:27:39 Functions: 92.9 % 14 13

            Line data    Source code
       1              : !--------------------------------------------------------------------------------------------------!
       2              : !   CP2K: A general program to perform molecular dynamics simulations                              !
       3              : !   Copyright 2000-2026 CP2K developers group <https://cp2k.org>                                   !
       4              : !                                                                                                  !
       5              : !   SPDX-License-Identifier: GPL-2.0-or-later                                                      !
       6              : !--------------------------------------------------------------------------------------------------!
       7              : 
       8              : ! **************************************************************************************************
       9              : !> \brief Coordination number routines for dispersion pairpotentials
      10              : !> \author JGH
      11              : ! **************************************************************************************************
      12              : MODULE qs_dispersion_cnum
      13              : 
      14              :    USE kinds,                           ONLY: dp
      15              :    USE mathconstants,                   ONLY: oorootpi
      16              :    USE memory_utilities,                ONLY: reallocate
      17              :    USE message_passing,                 ONLY: mp_para_env_type
      18              :    USE particle_types,                  ONLY: particle_type
      19              :    USE physcon,                         ONLY: bohr
      20              :    USE qs_dispersion_types,             ONLY: qs_dispersion_type
      21              :    USE qs_environment_types,            ONLY: get_qs_env,&
      22              :                                               qs_environment_type
      23              :    USE qs_kind_types,                   ONLY: get_qs_kind,&
      24              :                                               qs_kind_type
      25              :    USE qs_neighbor_list_types,          ONLY: get_iterator_info,&
      26              :                                               neighbor_list_iterate,&
      27              :                                               neighbor_list_iterator_create,&
      28              :                                               neighbor_list_iterator_p_type,&
      29              :                                               neighbor_list_iterator_release,&
      30              :                                               neighbor_list_set_p_type
      31              : 
      32              : !$ USE OMP_LIB, ONLY: omp_get_max_threads, &
      33              : !$                    omp_get_thread_num, &
      34              : !$                    omp_lock_kind, &
      35              : !$                    omp_init_lock, omp_set_lock, &
      36              : !$                    omp_unset_lock, omp_destroy_lock
      37              : 
      38              : #include "./base/base_uses.f90"
      39              : 
      40              :    IMPLICIT NONE
      41              : 
      42              :    PRIVATE
      43              : 
      44              :    CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'qs_dispersion_cnum'
      45              : 
      46              :    PUBLIC :: exclude_d3_kind_pair, setcn, setr0ab, setrcov, seten
      47              : 
      48              :    TYPE dcnum_type
      49              :       INTEGER                                :: neighbors = -1
      50              :       INTEGER, DIMENSION(:), POINTER         :: nlist => NULL()
      51              :       REAL(KIND=dp), DIMENSION(:), POINTER   :: dvals => NULL()
      52              :       REAL(KIND=dp), DIMENSION(:, :), POINTER :: rik => NULL()
      53              :    END TYPE dcnum_type
      54              : 
      55              :    PUBLIC :: d3_cnumber, dcnum_type, dcnum_distribute
      56              :    PUBLIC :: cnumber_init, cnumber_release, get_cn_radius
      57              : 
      58              : ! **************************************************************************************************
      59              : 
      60              : CONTAINS
      61              : 
      62              : ! **************************************************************************************************
      63              : !> \brief ...
      64              : !> \param rout ...
      65              : !> \param rcov ...
      66              : !> \param r2r4 ...
      67              : ! **************************************************************************************************
      68          522 :    SUBROUTINE setr0ab(rout, rcov, r2r4)
      69              :       ! set cut-off radii
      70              :       REAL(KIND=dp), DIMENSION(:, :)                     :: rout
      71              :       REAL(KIND=dp), DIMENSION(:)                        :: rcov, r2r4
      72              : 
      73              :       REAL(KIND=dp), DIMENSION(490), PARAMETER :: r0ab_0001_0490 = [2.1823_dp, 1.8547_dp, 1.7347_dp&
      74              :          , 2.9086_dp, 2.5732_dp, 3.4956_dp, 2.3550_dp, 2.5095_dp, 2.9802_dp, 3.0982_dp, 2.5141_dp, &
      75              :          2.3917_dp, 2.9977_dp, 2.9484_dp, 3.2160_dp, 2.4492_dp, 2.2527_dp, 3.1933_dp, 3.0214_dp, &
      76              :          2.9531_dp, 2.9103_dp, 2.3667_dp, 2.1328_dp, 2.8784_dp, 2.7660_dp, 2.7776_dp, 2.7063_dp, &
      77              :          2.6225_dp, 2.1768_dp, 2.0625_dp, 2.6395_dp, 2.6648_dp, 2.6482_dp, 2.5697_dp, 2.4846_dp, &
      78              :          2.4817_dp, 2.0646_dp, 1.9891_dp, 2.5086_dp, 2.6908_dp, 2.6233_dp, 2.4770_dp, 2.3885_dp, &
      79              :          2.3511_dp, 2.2996_dp, 1.9892_dp, 1.9251_dp, 2.4190_dp, 2.5473_dp, 2.4994_dp, 2.4091_dp, &
      80              :          2.3176_dp, 2.2571_dp, 2.1946_dp, 2.1374_dp, 2.9898_dp, 2.6397_dp, 3.6031_dp, 3.1219_dp, &
      81              :          3.7620_dp, 3.2485_dp, 2.9357_dp, 2.7093_dp, 2.5781_dp, 2.4839_dp, 3.7082_dp, 2.5129_dp, &
      82              :          2.7321_dp, 3.1052_dp, 3.2962_dp, 3.1331_dp, 3.2000_dp, 2.9586_dp, 3.0822_dp, 2.8582_dp, &
      83              :          2.7120_dp, 3.2570_dp, 3.4839_dp, 2.8766_dp, 2.7427_dp, 3.2776_dp, 3.2363_dp, 3.5929_dp, &
      84              :          3.2826_dp, 3.0911_dp, 2.9369_dp, 2.9030_dp, 2.7789_dp, 3.3921_dp, 3.3970_dp, 4.0106_dp, &
      85              :          2.8884_dp, 2.6605_dp, 3.7513_dp, 3.1613_dp, 3.3605_dp, 3.3325_dp, 3.0991_dp, 2.9297_dp, &
      86              :          2.8674_dp, 2.7571_dp, 3.8129_dp, 3.3266_dp, 3.7105_dp, 3.7917_dp, 2.8304_dp, 2.5538_dp, &
      87              :          3.3932_dp, 3.1193_dp, 3.1866_dp, 3.1245_dp, 3.0465_dp, 2.8727_dp, 2.7664_dp, 2.6926_dp, &
      88              :          3.4608_dp, 3.2984_dp, 3.5142_dp, 3.5418_dp, 3.5017_dp, 2.6190_dp, 2.4797_dp, 3.1331_dp, &
      89              :          3.0540_dp, 3.0651_dp, 2.9879_dp, 2.9054_dp, 2.8805_dp, 2.7330_dp, 2.6331_dp, 3.2096_dp, &
      90              :          3.5668_dp, 3.3684_dp, 3.3686_dp, 3.3180_dp, 3.3107_dp, 2.4757_dp, 2.4019_dp, 2.9789_dp, &
      91              :          3.1468_dp, 2.9768_dp, 2.8848_dp, 2.7952_dp, 2.7457_dp, 2.6881_dp, 2.5728_dp, 3.0574_dp, &
      92              :          3.3264_dp, 3.3562_dp, 3.2529_dp, 3.1916_dp, 3.1523_dp, 3.1046_dp, 2.3725_dp, 2.3289_dp, &
      93              :          2.8760_dp, 2.9804_dp, 2.9093_dp, 2.8040_dp, 2.7071_dp, 2.6386_dp, 2.5720_dp, 2.5139_dp, &
      94              :          2.9517_dp, 3.1606_dp, 3.2085_dp, 3.1692_dp, 3.0982_dp, 3.0352_dp, 2.9730_dp, 2.9148_dp, &
      95              :          3.2147_dp, 2.8315_dp, 3.8724_dp, 3.4621_dp, 3.8823_dp, 3.3760_dp, 3.0746_dp, 2.8817_dp, &
      96              :          2.7552_dp, 2.6605_dp, 3.9740_dp, 3.6192_dp, 3.6569_dp, 3.9586_dp, 3.6188_dp, 3.3917_dp, &
      97              :          3.2479_dp, 3.1434_dp, 4.2411_dp, 2.7597_dp, 3.0588_dp, 3.3474_dp, 3.6214_dp, 3.4353_dp, &
      98              :          3.4729_dp, 3.2487_dp, 3.3200_dp, 3.0914_dp, 2.9403_dp, 3.4972_dp, 3.7993_dp, 3.6773_dp, &
      99              :          3.8678_dp, 3.5808_dp, 3.8243_dp, 3.5826_dp, 3.4156_dp, 3.8765_dp, 4.1035_dp, 2.7361_dp, &
     100              :          2.9765_dp, 3.2475_dp, 3.5004_dp, 3.4185_dp, 3.4378_dp, 3.2084_dp, 3.2787_dp, 3.0604_dp, &
     101              :          2.9187_dp, 3.4037_dp, 3.6759_dp, 3.6586_dp, 3.8327_dp, 3.5372_dp, 3.7665_dp, 3.5310_dp, &
     102              :          3.3700_dp, 3.7788_dp, 3.9804_dp, 3.8903_dp, 2.6832_dp, 2.9060_dp, 3.2613_dp, 3.4359_dp, &
     103              :          3.3538_dp, 3.3860_dp, 3.1550_dp, 3.2300_dp, 3.0133_dp, 2.8736_dp, 3.4024_dp, 3.6142_dp, &
     104              :          3.5979_dp, 3.5295_dp, 3.4834_dp, 3.7140_dp, 3.4782_dp, 3.3170_dp, 3.7434_dp, 3.9623_dp, &
     105              :          3.8181_dp, 3.7642_dp, 2.6379_dp, 2.8494_dp, 3.1840_dp, 3.4225_dp, 3.2771_dp, 3.3401_dp, &
     106              :          3.1072_dp, 3.1885_dp, 2.9714_dp, 2.8319_dp, 3.3315_dp, 3.5979_dp, 3.5256_dp, 3.4980_dp, &
     107              :          3.4376_dp, 3.6714_dp, 3.4346_dp, 3.2723_dp, 3.6859_dp, 3.8985_dp, 3.7918_dp, 3.7372_dp, &
     108              :          3.7211_dp, 2.9230_dp, 2.6223_dp, 3.4161_dp, 2.8999_dp, 3.0557_dp, 3.3308_dp, 3.0555_dp, &
     109              :          2.8508_dp, 2.7385_dp, 2.6640_dp, 3.5263_dp, 3.0277_dp, 3.2990_dp, 3.7721_dp, 3.5017_dp, &
     110              :          3.2751_dp, 3.1368_dp, 3.0435_dp, 3.7873_dp, 3.2858_dp, 3.2140_dp, 3.1727_dp, 3.2178_dp, &
     111              :          3.4414_dp, 2.5490_dp, 2.7623_dp, 3.0991_dp, 3.3252_dp, 3.1836_dp, 3.2428_dp, 3.0259_dp, &
     112              :          3.1225_dp, 2.9032_dp, 2.7621_dp, 3.2490_dp, 3.5110_dp, 3.4429_dp, 3.3845_dp, 3.3574_dp, &
     113              :          3.6045_dp, 3.3658_dp, 3.2013_dp, 3.6110_dp, 3.8241_dp, 3.7090_dp, 3.6496_dp, 3.6333_dp, &
     114              :          3.0896_dp, 3.5462_dp, 2.4926_dp, 2.7136_dp, 3.0693_dp, 3.2699_dp, 3.1272_dp, 3.1893_dp, &
     115              :          2.9658_dp, 3.0972_dp, 2.8778_dp, 2.7358_dp, 3.2206_dp, 3.4566_dp, 3.3896_dp, 3.3257_dp, &
     116              :          3.2946_dp, 3.5693_dp, 3.3312_dp, 3.1670_dp, 3.5805_dp, 3.7711_dp, 3.6536_dp, 3.5927_dp, &
     117              :          3.5775_dp, 3.0411_dp, 3.4885_dp, 3.4421_dp, 2.4667_dp, 2.6709_dp, 3.0575_dp, 3.2357_dp, &
     118              :          3.0908_dp, 3.1537_dp, 2.9235_dp, 3.0669_dp, 2.8476_dp, 2.7054_dp, 3.2064_dp, 3.4519_dp, &
     119              :          3.3593_dp, 3.2921_dp, 3.2577_dp, 3.2161_dp, 3.2982_dp, 3.1339_dp, 3.5606_dp, 3.7582_dp, &
     120              :          3.6432_dp, 3.5833_dp, 3.5691_dp, 3.0161_dp, 3.4812_dp, 3.4339_dp, 3.4327_dp, 2.4515_dp, &
     121              :          2.6338_dp, 3.0511_dp, 3.2229_dp, 3.0630_dp, 3.1265_dp, 2.8909_dp, 3.0253_dp, 2.8184_dp, &
     122              :          2.6764_dp, 3.1968_dp, 3.4114_dp, 3.3492_dp, 3.2691_dp, 3.2320_dp, 3.1786_dp, 3.2680_dp, &
     123              :          3.1036_dp, 3.5453_dp, 3.7259_dp, 3.6090_dp, 3.5473_dp, 3.5327_dp, 3.0018_dp, 3.4413_dp, &
     124              :          3.3907_dp, 3.3593_dp, 3.3462_dp, 2.4413_dp, 2.6006_dp, 3.0540_dp, 3.1987_dp, 3.0490_dp, &
     125              :          3.1058_dp, 2.8643_dp, 2.9948_dp, 2.7908_dp, 2.6491_dp, 3.1950_dp, 3.3922_dp, 3.3316_dp, &
     126              :          3.2585_dp, 3.2136_dp, 3.1516_dp, 3.2364_dp, 3.0752_dp, 3.5368_dp, 3.7117_dp, 3.5941_dp, &
     127              :          3.5313_dp, 3.5164_dp, 2.9962_dp, 3.4225_dp, 3.3699_dp, 3.3370_dp, 3.3234_dp, 3.3008_dp, &
     128              :          2.4318_dp, 2.5729_dp, 3.0416_dp, 3.1639_dp, 3.0196_dp, 3.0843_dp, 2.8413_dp, 2.7436_dp, &
     129              :          2.7608_dp, 2.6271_dp, 3.1811_dp, 3.3591_dp, 3.3045_dp, 3.2349_dp, 3.1942_dp, 3.1291_dp, &
     130              :          3.2111_dp, 3.0534_dp, 3.5189_dp, 3.6809_dp, 3.5635_dp, 3.5001_dp, 3.4854_dp, 2.9857_dp, &
     131              :          3.3897_dp, 3.3363_dp, 3.3027_dp, 3.2890_dp, 3.2655_dp, 3.2309_dp, 2.8502_dp, 2.6934_dp, &
     132              :          3.2467_dp, 3.1921_dp, 3.5663_dp, 3.2541_dp, 3.0571_dp, 2.9048_dp, 2.8657_dp, 2.7438_dp, &
     133              :          3.3547_dp, 3.3510_dp, 3.9837_dp, 3.6871_dp, 3.4862_dp, 3.3389_dp, 3.2413_dp, 3.1708_dp, &
     134              :          3.6096_dp, 3.6280_dp, 3.6860_dp, 3.5568_dp, 3.4836_dp, 3.2868_dp, 3.3994_dp]
     135              :       REAL(KIND=dp), DIMENSION(490), PARAMETER :: r0ab_0491_0980 = [3.3476_dp, 3.3170_dp, 3.2950_dp&
     136              :          , 3.2874_dp, 3.2606_dp, 3.9579_dp, 2.9226_dp, 2.6838_dp, 3.7867_dp, 3.1732_dp, 3.3872_dp, &
     137              :          3.3643_dp, 3.1267_dp, 2.9541_dp, 2.8505_dp, 2.7781_dp, 3.8475_dp, 3.3336_dp, 3.7359_dp, &
     138              :          3.8266_dp, 3.5733_dp, 3.3959_dp, 3.2775_dp, 3.1915_dp, 3.9878_dp, 3.8816_dp, 3.5810_dp, &
     139              :          3.5364_dp, 3.5060_dp, 3.8097_dp, 3.3925_dp, 3.3348_dp, 3.3019_dp, 3.2796_dp, 3.2662_dp, &
     140              :          3.2464_dp, 3.7136_dp, 3.8619_dp, 2.9140_dp, 2.6271_dp, 3.4771_dp, 3.1774_dp, 3.2560_dp, &
     141              :          3.1970_dp, 3.1207_dp, 2.9406_dp, 2.8322_dp, 2.7571_dp, 3.5455_dp, 3.3514_dp, 3.5837_dp, &
     142              :          3.6177_dp, 3.5816_dp, 3.3902_dp, 3.2604_dp, 3.1652_dp, 3.7037_dp, 3.6283_dp, 3.5858_dp, &
     143              :          3.5330_dp, 3.4884_dp, 3.5789_dp, 3.4094_dp, 3.3473_dp, 3.3118_dp, 3.2876_dp, 3.2707_dp, &
     144              :          3.2521_dp, 3.5570_dp, 3.6496_dp, 3.6625_dp, 2.7300_dp, 2.5870_dp, 3.2471_dp, 3.1487_dp, &
     145              :          3.1667_dp, 3.0914_dp, 3.0107_dp, 2.9812_dp, 2.8300_dp, 2.7284_dp, 3.3259_dp, 3.3182_dp, &
     146              :          3.4707_dp, 3.4748_dp, 3.4279_dp, 3.4182_dp, 3.2547_dp, 3.1353_dp, 3.5116_dp, 3.9432_dp, &
     147              :          3.8828_dp, 3.8303_dp, 3.7880_dp, 3.3760_dp, 3.7218_dp, 3.3408_dp, 3.3059_dp, 3.2698_dp, &
     148              :          3.2446_dp, 3.2229_dp, 3.4422_dp, 3.5023_dp, 3.5009_dp, 3.5268_dp, 2.6026_dp, 2.5355_dp, &
     149              :          3.1129_dp, 3.2863_dp, 3.1029_dp, 3.0108_dp, 2.9227_dp, 2.8694_dp, 2.8109_dp, 2.6929_dp, &
     150              :          3.1958_dp, 3.4670_dp, 3.4018_dp, 3.3805_dp, 3.3218_dp, 3.2815_dp, 3.2346_dp, 3.0994_dp, &
     151              :          3.3937_dp, 3.7266_dp, 3.6697_dp, 3.6164_dp, 3.5730_dp, 3.2522_dp, 3.5051_dp, 3.4686_dp, &
     152              :          3.4355_dp, 3.4084_dp, 3.3748_dp, 3.3496_dp, 3.3692_dp, 3.4052_dp, 3.3910_dp, 3.3849_dp, &
     153              :          3.3662_dp, 2.5087_dp, 2.4814_dp, 3.0239_dp, 3.1312_dp, 3.0535_dp, 2.9457_dp, 2.8496_dp, &
     154              :          2.7780_dp, 2.7828_dp, 2.6532_dp, 3.1063_dp, 3.3143_dp, 3.3549_dp, 3.3120_dp, 3.2421_dp, &
     155              :          3.1787_dp, 3.1176_dp, 3.0613_dp, 3.3082_dp, 3.5755_dp, 3.5222_dp, 3.4678_dp, 3.4231_dp, &
     156              :          3.1684_dp, 3.3528_dp, 3.3162_dp, 3.2827_dp, 3.2527_dp, 3.2308_dp, 3.2029_dp, 3.3173_dp, &
     157              :          3.3343_dp, 3.3092_dp, 3.2795_dp, 3.2452_dp, 3.2096_dp, 3.2893_dp, 2.8991_dp, 4.0388_dp, &
     158              :          3.6100_dp, 3.9388_dp, 3.4475_dp, 3.1590_dp, 2.9812_dp, 2.8586_dp, 2.7683_dp, 4.1428_dp, &
     159              :          3.7911_dp, 3.8225_dp, 4.0372_dp, 3.7059_dp, 3.4935_dp, 3.3529_dp, 3.2492_dp, 4.4352_dp, &
     160              :          4.0826_dp, 3.9733_dp, 3.9254_dp, 3.8646_dp, 3.9315_dp, 3.7837_dp, 3.7465_dp, 3.7211_dp, &
     161              :          3.7012_dp, 3.6893_dp, 3.6676_dp, 3.7736_dp, 4.0660_dp, 3.7926_dp, 3.6158_dp, 3.5017_dp, &
     162              :          3.4166_dp, 4.6176_dp, 2.8786_dp, 3.1658_dp, 3.5823_dp, 3.7689_dp, 3.5762_dp, 3.5789_dp, &
     163              :          3.3552_dp, 3.4004_dp, 3.1722_dp, 3.0212_dp, 3.7241_dp, 3.9604_dp, 3.8500_dp, 3.9844_dp, &
     164              :          3.7035_dp, 3.9161_dp, 3.6751_dp, 3.5075_dp, 4.1151_dp, 4.2877_dp, 4.1579_dp, 4.1247_dp, &
     165              :          4.0617_dp, 3.4874_dp, 3.9848_dp, 3.9280_dp, 3.9079_dp, 3.8751_dp, 3.8604_dp, 3.8277_dp, &
     166              :          3.8002_dp, 3.9981_dp, 3.7544_dp, 4.0371_dp, 3.8225_dp, 3.6718_dp, 4.3092_dp, 4.4764_dp, &
     167              :          2.8997_dp, 3.0953_dp, 3.4524_dp, 3.6107_dp, 3.6062_dp, 3.5783_dp, 3.3463_dp, 3.3855_dp, &
     168              :          3.1746_dp, 3.0381_dp, 3.6019_dp, 3.7938_dp, 3.8697_dp, 3.9781_dp, 3.6877_dp, 3.8736_dp, &
     169              :          3.6451_dp, 3.4890_dp, 3.9858_dp, 4.1179_dp, 4.0430_dp, 3.9563_dp, 3.9182_dp, 3.4002_dp, &
     170              :          3.8310_dp, 3.7716_dp, 3.7543_dp, 3.7203_dp, 3.7053_dp, 3.6742_dp, 3.8318_dp, 3.7631_dp, &
     171              :          3.7392_dp, 3.9892_dp, 3.7832_dp, 3.6406_dp, 4.1701_dp, 4.3016_dp, 4.2196_dp, 2.8535_dp, &
     172              :          3.0167_dp, 3.3978_dp, 3.5363_dp, 3.5393_dp, 3.5301_dp, 3.2960_dp, 3.3352_dp, 3.1287_dp, &
     173              :          2.9967_dp, 3.6659_dp, 3.7239_dp, 3.8070_dp, 3.7165_dp, 3.6368_dp, 3.8162_dp, 3.5885_dp, &
     174              :          3.4336_dp, 3.9829_dp, 4.0529_dp, 3.9584_dp, 3.9025_dp, 3.8607_dp, 3.3673_dp, 3.7658_dp, &
     175              :          3.7035_dp, 3.6866_dp, 3.6504_dp, 3.6339_dp, 3.6024_dp, 3.7708_dp, 3.7283_dp, 3.6896_dp, &
     176              :          3.9315_dp, 3.7250_dp, 3.5819_dp, 4.1457_dp, 4.2280_dp, 4.1130_dp, 4.0597_dp, 3.0905_dp, &
     177              :          2.7998_dp, 3.6448_dp, 3.0739_dp, 3.2996_dp, 3.5262_dp, 3.2559_dp, 3.0518_dp, 2.9394_dp, &
     178              :          2.8658_dp, 3.7514_dp, 3.2295_dp, 3.5643_dp, 3.7808_dp, 3.6931_dp, 3.4723_dp, 3.3357_dp, &
     179              :          3.2429_dp, 4.0280_dp, 3.5589_dp, 3.4636_dp, 3.4994_dp, 3.4309_dp, 3.6177_dp, 3.2946_dp, &
     180              :          3.2376_dp, 3.2050_dp, 3.1847_dp, 3.1715_dp, 3.1599_dp, 3.5555_dp, 3.8111_dp, 3.7693_dp, &
     181              :          3.5718_dp, 3.4498_dp, 3.3662_dp, 4.1608_dp, 3.7417_dp, 3.6536_dp, 3.6154_dp, 3.8596_dp, &
     182              :          3.0301_dp, 2.7312_dp, 3.5821_dp, 3.0473_dp, 3.2137_dp, 3.4679_dp, 3.1975_dp, 2.9969_dp, &
     183              :          2.8847_dp, 2.8110_dp, 3.6931_dp, 3.2076_dp, 3.4943_dp, 3.5956_dp, 3.6379_dp, 3.4190_dp, &
     184              :          3.2808_dp, 3.1860_dp, 3.9850_dp, 3.5105_dp, 3.4330_dp, 3.3797_dp, 3.4155_dp, 3.6033_dp, &
     185              :          3.2737_dp, 3.2145_dp, 3.1807_dp, 3.1596_dp, 3.1461_dp, 3.1337_dp, 3.4812_dp, 3.6251_dp, &
     186              :          3.7152_dp, 3.5201_dp, 3.3966_dp, 3.3107_dp, 4.1128_dp, 3.6899_dp, 3.6082_dp, 3.5604_dp, &
     187              :          3.7834_dp, 3.7543_dp, 2.9189_dp, 2.6777_dp, 3.4925_dp, 2.9648_dp, 3.1216_dp, 3.2940_dp, &
     188              :          3.0975_dp, 2.9757_dp, 2.8493_dp, 2.7638_dp, 3.6085_dp, 3.1214_dp, 3.4006_dp, 3.4793_dp, &
     189              :          3.5147_dp, 3.3806_dp, 3.2356_dp, 3.1335_dp, 3.9144_dp, 3.4183_dp, 3.3369_dp, 3.2803_dp, &
     190              :          3.2679_dp, 3.4871_dp, 3.1714_dp, 3.1521_dp, 3.1101_dp, 3.0843_dp, 3.0670_dp, 3.0539_dp, &
     191              :          3.3890_dp, 3.5086_dp, 3.5895_dp, 3.4783_dp, 3.3484_dp, 3.2559_dp, 4.0422_dp, 3.5967_dp, &
     192              :          3.5113_dp, 3.4576_dp, 3.6594_dp, 3.6313_dp, 3.5690_dp, 2.8578_dp, 2.6334_dp, 3.4673_dp, &
     193              :          2.9245_dp, 3.0732_dp, 3.2435_dp, 3.0338_dp, 2.9462_dp, 2.8143_dp, 2.7240_dp, 3.5832_dp, &
     194              :          3.0789_dp, 3.3617_dp, 3.4246_dp, 3.4505_dp, 3.3443_dp, 3.1964_dp, 3.0913_dp, 3.8921_dp, &
     195              :          3.3713_dp, 3.2873_dp, 3.2281_dp, 3.2165_dp, 3.4386_dp, 3.1164_dp, 3.1220_dp, 3.0761_dp, &
     196              :          3.0480_dp, 3.0295_dp, 3.0155_dp, 3.3495_dp, 3.4543_dp, 3.5260_dp, 3.4413_dp]
     197              :       REAL(KIND=dp), DIMENSION(490), PARAMETER :: r0ab_0981_1470 = [3.3085_dp, 3.2134_dp, 4.0170_dp&
     198              :          , 3.5464_dp, 3.4587_dp, 3.4006_dp, 3.6027_dp, 3.5730_dp, 3.4945_dp, 3.4623_dp, 2.8240_dp, &
     199              :          2.5960_dp, 3.4635_dp, 2.9032_dp, 3.0431_dp, 3.2115_dp, 2.9892_dp, 2.9148_dp, 2.7801_dp, &
     200              :          2.6873_dp, 3.5776_dp, 3.0568_dp, 3.3433_dp, 3.3949_dp, 3.4132_dp, 3.3116_dp, 3.1616_dp, &
     201              :          3.0548_dp, 3.8859_dp, 3.3719_dp, 3.2917_dp, 3.2345_dp, 3.2274_dp, 3.4171_dp, 3.1293_dp, &
     202              :          3.0567_dp, 3.0565_dp, 3.0274_dp, 3.0087_dp, 2.9939_dp, 3.3293_dp, 3.4249_dp, 3.4902_dp, &
     203              :          3.4091_dp, 3.2744_dp, 3.1776_dp, 4.0078_dp, 3.5374_dp, 3.4537_dp, 3.3956_dp, 3.5747_dp, &
     204              :          3.5430_dp, 3.4522_dp, 3.4160_dp, 3.3975_dp, 2.8004_dp, 2.5621_dp, 3.4617_dp, 2.9154_dp, &
     205              :          3.0203_dp, 3.1875_dp, 2.9548_dp, 2.8038_dp, 2.7472_dp, 2.6530_dp, 3.5736_dp, 3.0584_dp, &
     206              :          3.3304_dp, 3.3748_dp, 3.3871_dp, 3.2028_dp, 3.1296_dp, 3.0214_dp, 3.8796_dp, 3.3337_dp, &
     207              :          3.2492_dp, 3.1883_dp, 3.1802_dp, 3.4050_dp, 3.0756_dp, 3.0478_dp, 3.0322_dp, 3.0323_dp, &
     208              :          3.0163_dp, 3.0019_dp, 3.3145_dp, 3.4050_dp, 3.4656_dp, 3.3021_dp, 3.2433_dp, 3.1453_dp, &
     209              :          3.9991_dp, 3.5017_dp, 3.4141_dp, 3.3520_dp, 3.5583_dp, 3.5251_dp, 3.4243_dp, 3.3851_dp, &
     210              :          3.3662_dp, 3.3525_dp, 2.7846_dp, 2.5324_dp, 3.4652_dp, 2.8759_dp, 3.0051_dp, 3.1692_dp, &
     211              :          2.9273_dp, 2.7615_dp, 2.7164_dp, 2.6212_dp, 3.5744_dp, 3.0275_dp, 3.3249_dp, 3.3627_dp, &
     212              :          3.3686_dp, 3.1669_dp, 3.0584_dp, 2.9915_dp, 3.8773_dp, 3.3099_dp, 3.2231_dp, 3.1600_dp, &
     213              :          3.1520_dp, 3.4023_dp, 3.0426_dp, 3.0099_dp, 2.9920_dp, 2.9809_dp, 2.9800_dp, 2.9646_dp, &
     214              :          3.3068_dp, 3.3930_dp, 3.4486_dp, 3.2682_dp, 3.1729_dp, 3.1168_dp, 3.9952_dp, 3.4796_dp, &
     215              :          3.3901_dp, 3.3255_dp, 3.5530_dp, 3.5183_dp, 3.4097_dp, 3.3683_dp, 3.3492_dp, 3.3360_dp, &
     216              :          3.3308_dp, 2.5424_dp, 2.6601_dp, 3.2555_dp, 3.2807_dp, 3.1384_dp, 3.1737_dp, 2.9397_dp, &
     217              :          2.8429_dp, 2.8492_dp, 2.7225_dp, 3.3875_dp, 3.4910_dp, 3.4520_dp, 3.3608_dp, 3.3036_dp, &
     218              :          3.2345_dp, 3.2999_dp, 3.1487_dp, 3.7409_dp, 3.8392_dp, 3.7148_dp, 3.6439_dp, 3.6182_dp, &
     219              :          3.1753_dp, 3.5210_dp, 3.4639_dp, 3.4265_dp, 3.4075_dp, 3.3828_dp, 3.3474_dp, 3.4071_dp, &
     220              :          3.3754_dp, 3.3646_dp, 3.3308_dp, 3.4393_dp, 3.2993_dp, 3.8768_dp, 3.9891_dp, 3.8310_dp, &
     221              :          3.7483_dp, 3.3417_dp, 3.3019_dp, 3.2250_dp, 3.1832_dp, 3.1578_dp, 3.1564_dp, 3.1224_dp, &
     222              :          3.4620_dp, 2.9743_dp, 2.8058_dp, 3.4830_dp, 3.3474_dp, 3.6863_dp, 3.3617_dp, 3.1608_dp, &
     223              :          3.0069_dp, 2.9640_dp, 2.8427_dp, 3.5885_dp, 3.5219_dp, 4.1314_dp, 3.8120_dp, 3.6015_dp, &
     224              :          3.4502_dp, 3.3498_dp, 3.2777_dp, 3.8635_dp, 3.8232_dp, 3.8486_dp, 3.7215_dp, 3.6487_dp, &
     225              :          3.4724_dp, 3.5627_dp, 3.5087_dp, 3.4757_dp, 3.4517_dp, 3.4423_dp, 3.4139_dp, 4.1028_dp, &
     226              :          3.8388_dp, 3.6745_dp, 3.5562_dp, 3.4806_dp, 3.4272_dp, 4.0182_dp, 3.9991_dp, 4.0007_dp, &
     227              :          3.9282_dp, 3.7238_dp, 3.6498_dp, 3.5605_dp, 3.5211_dp, 3.5009_dp, 3.4859_dp, 3.4785_dp, &
     228              :          3.5621_dp, 4.2623_dp, 3.0775_dp, 2.8275_dp, 4.0181_dp, 3.3385_dp, 3.5379_dp, 3.5036_dp, &
     229              :          3.2589_dp, 3.0804_dp, 3.0094_dp, 2.9003_dp, 4.0869_dp, 3.5088_dp, 3.9105_dp, 3.9833_dp, &
     230              :          3.7176_dp, 3.5323_dp, 3.4102_dp, 3.3227_dp, 4.2702_dp, 4.0888_dp, 3.7560_dp, 3.7687_dp, &
     231              :          3.6681_dp, 3.6405_dp, 3.5569_dp, 3.4990_dp, 3.4659_dp, 3.4433_dp, 3.4330_dp, 3.4092_dp, &
     232              :          3.8867_dp, 4.0190_dp, 3.7961_dp, 3.6412_dp, 3.5405_dp, 3.4681_dp, 4.3538_dp, 4.2136_dp, &
     233              :          3.9381_dp, 3.8912_dp, 3.9681_dp, 3.7909_dp, 3.6774_dp, 3.6262_dp, 3.5999_dp, 3.5823_dp, &
     234              :          3.5727_dp, 3.5419_dp, 4.0245_dp, 4.1874_dp, 3.0893_dp, 2.7917_dp, 3.7262_dp, 3.3518_dp, &
     235              :          3.4241_dp, 3.5433_dp, 3.2773_dp, 3.0890_dp, 2.9775_dp, 2.9010_dp, 3.8048_dp, 3.5362_dp, &
     236              :          3.7746_dp, 3.7911_dp, 3.7511_dp, 3.5495_dp, 3.4149_dp, 3.3177_dp, 4.0129_dp, 3.8370_dp, &
     237              :          3.7739_dp, 3.7125_dp, 3.7152_dp, 3.7701_dp, 3.5813_dp, 3.5187_dp, 3.4835_dp, 3.4595_dp, &
     238              :          3.4439_dp, 3.4242_dp, 3.7476_dp, 3.8239_dp, 3.8346_dp, 3.6627_dp, 3.5479_dp, 3.4639_dp, &
     239              :          4.1026_dp, 3.9733_dp, 3.9292_dp, 3.8667_dp, 3.9513_dp, 3.8959_dp, 3.7698_dp, 3.7089_dp, &
     240              :          3.6765_dp, 3.6548_dp, 3.6409_dp, 3.5398_dp, 3.8759_dp, 3.9804_dp, 4.0150_dp, 2.9091_dp, &
     241              :          2.7638_dp, 3.5066_dp, 3.3377_dp, 3.3481_dp, 3.2633_dp, 3.1810_dp, 3.1428_dp, 2.9872_dp, &
     242              :          2.8837_dp, 3.5929_dp, 3.5183_dp, 3.6729_dp, 3.6596_dp, 3.6082_dp, 3.5927_dp, 3.4224_dp, &
     243              :          3.2997_dp, 3.8190_dp, 4.1865_dp, 4.1114_dp, 4.0540_dp, 3.6325_dp, 3.5697_dp, 3.5561_dp, &
     244              :          3.5259_dp, 3.4901_dp, 3.4552_dp, 3.4315_dp, 3.4091_dp, 3.6438_dp, 3.6879_dp, 3.6832_dp, &
     245              :          3.7043_dp, 3.5557_dp, 3.4466_dp, 3.9203_dp, 4.2919_dp, 4.2196_dp, 4.1542_dp, 3.7573_dp, &
     246              :          3.7039_dp, 3.6546_dp, 3.6151_dp, 3.5293_dp, 3.4849_dp, 3.4552_dp, 3.5192_dp, 3.7673_dp, &
     247              :          3.8359_dp, 3.8525_dp, 3.8901_dp, 2.7806_dp, 2.7209_dp, 3.3812_dp, 3.4958_dp, 3.2913_dp, &
     248              :          3.1888_dp, 3.0990_dp, 3.0394_dp, 2.9789_dp, 2.8582_dp, 3.4716_dp, 3.6883_dp, 3.6105_dp, &
     249              :          3.5704_dp, 3.5059_dp, 3.4619_dp, 3.4138_dp, 3.2742_dp, 3.7080_dp, 3.9773_dp, 3.9010_dp, &
     250              :          3.8409_dp, 3.7944_dp, 3.4465_dp, 3.7235_dp, 3.6808_dp, 3.6453_dp, 3.6168_dp, 3.5844_dp, &
     251              :          3.5576_dp, 3.5772_dp, 3.5959_dp, 3.5768_dp, 3.5678_dp, 3.5486_dp, 3.4228_dp, 3.8107_dp, &
     252              :          4.0866_dp, 4.0169_dp, 3.9476_dp, 3.6358_dp, 3.5800_dp, 3.5260_dp, 3.4838_dp, 3.4501_dp, &
     253              :          3.4204_dp, 3.3553_dp, 3.6487_dp, 3.6973_dp, 3.7398_dp, 3.7405_dp, 3.7459_dp, 3.7380_dp, &
     254              :          2.6848_dp, 2.6740_dp, 3.2925_dp, 3.3386_dp, 3.2473_dp, 3.1284_dp, 3.0301_dp, 2.9531_dp, &
     255              :          2.9602_dp, 2.8272_dp, 3.3830_dp, 3.5358_dp, 3.5672_dp, 3.5049_dp, 3.4284_dp, 3.3621_dp, &
     256              :          3.3001_dp, 3.2451_dp, 3.6209_dp, 3.8299_dp, 3.7543_dp, 3.6920_dp, 3.6436_dp, 3.3598_dp, &
     257              :          3.5701_dp, 3.5266_dp, 3.4904_dp, 3.4590_dp, 3.4364_dp, 3.4077_dp, 3.5287_dp, 3.5280_dp, &
     258              :          3.4969_dp, 3.4650_dp, 3.4304_dp, 3.3963_dp, 3.7229_dp, 3.9402_dp, 3.8753_dp]
     259              :       REAL(KIND=dp), DIMENSION(490), PARAMETER :: r0ab_1471_1960 = [3.8035_dp, 3.5499_dp, 3.4913_dp&
     260              :          , 3.4319_dp, 3.3873_dp, 3.3520_dp, 3.3209_dp, 3.2948_dp, 3.5052_dp, 3.6465_dp, 3.6696_dp, &
     261              :          3.6577_dp, 3.6388_dp, 3.6142_dp, 3.5889_dp, 3.3968_dp, 3.0122_dp, 4.2241_dp, 3.7887_dp, &
     262              :          4.0049_dp, 3.5384_dp, 3.2698_dp, 3.1083_dp, 2.9917_dp, 2.9057_dp, 4.3340_dp, 3.9900_dp, &
     263              :          4.6588_dp, 4.1278_dp, 3.8125_dp, 3.6189_dp, 3.4851_dp, 3.3859_dp, 4.6531_dp, 4.3134_dp, &
     264              :          4.2258_dp, 4.1309_dp, 4.0692_dp, 4.0944_dp, 3.9850_dp, 3.9416_dp, 3.9112_dp, 3.8873_dp, &
     265              :          3.8736_dp, 3.8473_dp, 4.6027_dp, 4.1538_dp, 3.8994_dp, 3.7419_dp, 3.6356_dp, 3.5548_dp, &
     266              :          4.8353_dp, 4.5413_dp, 4.3891_dp, 4.3416_dp, 4.3243_dp, 4.2753_dp, 4.2053_dp, 4.1790_dp, &
     267              :          4.1685_dp, 4.1585_dp, 4.1536_dp, 4.0579_dp, 4.1980_dp, 4.4564_dp, 4.2192_dp, 4.0528_dp, &
     268              :          3.9489_dp, 3.8642_dp, 5.0567_dp, 3.0630_dp, 3.3271_dp, 4.0432_dp, 4.0046_dp, 4.1555_dp, &
     269              :          3.7426_dp, 3.5130_dp, 3.5174_dp, 3.2884_dp, 3.1378_dp, 4.1894_dp, 4.2321_dp, 4.1725_dp, &
     270              :          4.1833_dp, 3.8929_dp, 4.0544_dp, 3.8118_dp, 3.6414_dp, 4.6373_dp, 4.6268_dp, 4.4750_dp, &
     271              :          4.4134_dp, 4.3458_dp, 3.8582_dp, 4.2583_dp, 4.1898_dp, 4.1562_dp, 4.1191_dp, 4.1069_dp, &
     272              :          4.0639_dp, 4.1257_dp, 4.1974_dp, 3.9532_dp, 4.1794_dp, 3.9660_dp, 3.8130_dp, 4.8160_dp, &
     273              :          4.8272_dp, 4.6294_dp, 4.5840_dp, 4.0770_dp, 4.0088_dp, 3.9103_dp, 3.8536_dp, 3.8324_dp, &
     274              :          3.7995_dp, 3.7826_dp, 4.2294_dp, 4.3380_dp, 4.4352_dp, 4.1933_dp, 4.4580_dp, 4.2554_dp, &
     275              :          4.1072_dp, 5.0454_dp, 5.1814_dp, 3.0632_dp, 3.2662_dp, 3.6432_dp, 3.8088_dp, 3.7910_dp, &
     276              :          3.7381_dp, 3.5093_dp, 3.5155_dp, 3.3047_dp, 3.1681_dp, 3.7871_dp, 3.9924_dp, 4.0637_dp, &
     277              :          4.1382_dp, 3.8591_dp, 4.0164_dp, 3.7878_dp, 3.6316_dp, 4.1741_dp, 4.3166_dp, 4.2395_dp, &
     278              :          4.1831_dp, 4.1107_dp, 3.5857_dp, 4.0270_dp, 3.9676_dp, 3.9463_dp, 3.9150_dp, 3.9021_dp, &
     279              :          3.8708_dp, 4.0240_dp, 4.1551_dp, 3.9108_dp, 4.1337_dp, 3.9289_dp, 3.7873_dp, 4.3666_dp, &
     280              :          4.5080_dp, 4.4232_dp, 4.3155_dp, 3.8461_dp, 3.8007_dp, 3.6991_dp, 3.6447_dp, 3.6308_dp, &
     281              :          3.5959_dp, 3.5749_dp, 4.0359_dp, 4.3124_dp, 4.3539_dp, 4.1122_dp, 4.3772_dp, 4.1785_dp, &
     282              :          4.0386_dp, 4.7004_dp, 4.8604_dp, 4.6261_dp, 2.9455_dp, 3.2470_dp, 3.6108_dp, 3.8522_dp, &
     283              :          3.6625_dp, 3.6598_dp, 3.4411_dp, 3.4660_dp, 3.2415_dp, 3.0944_dp, 3.7514_dp, 4.0397_dp, &
     284              :          3.9231_dp, 4.0561_dp, 3.7860_dp, 3.9845_dp, 3.7454_dp, 3.5802_dp, 4.1366_dp, 4.3581_dp, &
     285              :          4.2351_dp, 4.2011_dp, 4.1402_dp, 3.5381_dp, 4.0653_dp, 4.0093_dp, 3.9883_dp, 3.9570_dp, &
     286              :          3.9429_dp, 3.9112_dp, 3.8728_dp, 4.0682_dp, 3.8351_dp, 4.1054_dp, 3.8928_dp, 3.7445_dp, &
     287              :          4.3415_dp, 4.5497_dp, 4.3833_dp, 4.3122_dp, 3.8051_dp, 3.7583_dp, 3.6622_dp, 3.6108_dp, &
     288              :          3.5971_dp, 3.5628_dp, 3.5408_dp, 4.0780_dp, 4.0727_dp, 4.2836_dp, 4.0553_dp, 4.3647_dp, &
     289              :          4.1622_dp, 4.0178_dp, 4.5802_dp, 4.9125_dp, 4.5861_dp, 4.6201_dp, 2.9244_dp, 3.2241_dp, &
     290              :          3.5848_dp, 3.8293_dp, 3.6395_dp, 3.6400_dp, 3.4204_dp, 3.4499_dp, 3.2253_dp, 3.0779_dp, &
     291              :          3.7257_dp, 4.0170_dp, 3.9003_dp, 4.0372_dp, 3.7653_dp, 3.9672_dp, 3.7283_dp, 3.5630_dp, &
     292              :          4.1092_dp, 4.3347_dp, 4.2117_dp, 4.1793_dp, 4.1179_dp, 3.5139_dp, 4.0426_dp, 3.9867_dp, &
     293              :          3.9661_dp, 3.9345_dp, 3.9200_dp, 3.8883_dp, 3.8498_dp, 4.0496_dp, 3.8145_dp, 4.0881_dp, &
     294              :          3.8756_dp, 3.7271_dp, 4.3128_dp, 4.5242_dp, 4.3578_dp, 4.2870_dp, 3.7796_dp, 3.7318_dp, &
     295              :          3.6364_dp, 3.5854_dp, 3.5726_dp, 3.5378_dp, 3.5155_dp, 4.0527_dp, 4.0478_dp, 4.2630_dp, &
     296              :          4.0322_dp, 4.3449_dp, 4.1421_dp, 3.9975_dp, 4.5499_dp, 4.8825_dp, 4.5601_dp, 4.5950_dp, &
     297              :          4.5702_dp, 2.9046_dp, 3.2044_dp, 3.5621_dp, 3.8078_dp, 3.6185_dp, 3.6220_dp, 3.4019_dp, &
     298              :          3.4359_dp, 3.2110_dp, 3.0635_dp, 3.7037_dp, 3.9958_dp, 3.8792_dp, 4.0194_dp, 3.7460_dp, &
     299              :          3.9517_dp, 3.7128_dp, 3.5474_dp, 4.0872_dp, 4.3138_dp, 4.1906_dp, 4.1593_dp, 4.0973_dp, &
     300              :          3.4919_dp, 4.0216_dp, 3.9657_dp, 3.9454_dp, 3.9134_dp, 3.8986_dp, 3.8669_dp, 3.8289_dp, &
     301              :          4.0323_dp, 3.7954_dp, 4.0725_dp, 3.8598_dp, 3.7113_dp, 4.2896_dp, 4.5021_dp, 4.3325_dp, &
     302              :          4.2645_dp, 3.7571_dp, 3.7083_dp, 3.6136_dp, 3.5628_dp, 3.5507_dp, 3.5155_dp, 3.4929_dp, &
     303              :          4.0297_dp, 4.0234_dp, 4.2442_dp, 4.0112_dp, 4.3274_dp, 4.1240_dp, 3.9793_dp, 4.5257_dp, &
     304              :          4.8568_dp, 4.5353_dp, 4.5733_dp, 4.5485_dp, 4.5271_dp, 2.8878_dp, 3.1890_dp, 3.5412_dp, &
     305              :          3.7908_dp, 3.5974_dp, 3.6078_dp, 3.3871_dp, 3.4243_dp, 3.1992_dp, 3.0513_dp, 3.6831_dp, &
     306              :          3.9784_dp, 3.8579_dp, 4.0049_dp, 3.7304_dp, 3.9392_dp, 3.7002_dp, 3.5347_dp, 4.0657_dp, &
     307              :          4.2955_dp, 4.1705_dp, 4.1424_dp, 4.0800_dp, 3.4717_dp, 4.0043_dp, 3.9485_dp, 3.9286_dp, &
     308              :          3.8965_dp, 3.8815_dp, 3.8500_dp, 3.8073_dp, 4.0180_dp, 3.7796_dp, 4.0598_dp, 3.8470_dp, &
     309              :          3.6983_dp, 4.2678_dp, 4.4830_dp, 4.3132_dp, 4.2444_dp, 3.7370_dp, 3.6876_dp, 3.5935_dp, &
     310              :          3.5428_dp, 3.5314_dp, 3.4958_dp, 3.4730_dp, 4.0117_dp, 4.0043_dp, 4.2287_dp, 3.9939_dp, &
     311              :          4.3134_dp, 4.1096_dp, 3.9646_dp, 4.5032_dp, 4.8356_dp, 4.5156_dp, 4.5544_dp, 4.5297_dp, &
     312              :          4.5083_dp, 4.4896_dp, 2.8709_dp, 3.1737_dp, 3.5199_dp, 3.7734_dp, 3.5802_dp, 3.5934_dp, &
     313              :          3.3724_dp, 3.4128_dp, 3.1877_dp, 3.0396_dp, 3.6624_dp, 3.9608_dp, 3.8397_dp, 3.9893_dp, &
     314              :          3.7145_dp, 3.9266_dp, 3.6877_dp, 3.5222_dp, 4.0448_dp, 4.2771_dp, 4.1523_dp, 4.1247_dp, &
     315              :          4.0626_dp, 3.4530_dp, 3.9866_dp, 3.9310_dp, 3.9115_dp, 3.8792_dp, 3.8641_dp, 3.8326_dp, &
     316              :          3.7892_dp, 4.0025_dp, 3.7636_dp, 4.0471_dp, 3.8343_dp, 3.6854_dp, 4.2464_dp, 4.4635_dp, &
     317              :          4.2939_dp, 4.2252_dp, 3.7169_dp, 3.6675_dp, 3.5739_dp, 3.5235_dp, 3.5126_dp, 3.4768_dp, &
     318              :          3.4537_dp, 3.9932_dp, 3.9854_dp, 4.2123_dp, 3.9765_dp, 4.2992_dp, 4.0951_dp, 3.9500_dp, &
     319              :          4.4811_dp, 4.8135_dp, 4.4959_dp, 4.5351_dp, 4.5105_dp, 4.4891_dp, 4.4705_dp, 4.4515_dp, &
     320              :          2.8568_dp, 3.1608_dp, 3.5050_dp, 3.7598_dp, 3.5665_dp, 3.5803_dp, 3.3601_dp]
     321              :       REAL(KIND=dp), DIMENSION(490), PARAMETER :: r0ab_1961_2450 = [3.4031_dp, 3.1779_dp, 3.0296_dp&
     322              :          , 3.6479_dp, 3.9471_dp, 3.8262_dp, 3.9773_dp, 3.7015_dp, 3.9162_dp, 3.6771_dp, 3.5115_dp, &
     323              :          4.0306_dp, 4.2634_dp, 4.1385_dp, 4.1116_dp, 4.0489_dp, 3.4366_dp, 3.9732_dp, 3.9176_dp, &
     324              :          3.8983_dp, 3.8659_dp, 3.8507_dp, 3.8191_dp, 3.7757_dp, 3.9907_dp, 3.7506_dp, 4.0365_dp, &
     325              :          3.8235_dp, 3.6745_dp, 4.2314_dp, 4.4490_dp, 4.2792_dp, 4.2105_dp, 3.7003_dp, 3.6510_dp, &
     326              :          3.5578_dp, 3.5075_dp, 3.4971_dp, 3.4609_dp, 3.4377_dp, 3.9788_dp, 3.9712_dp, 4.1997_dp, &
     327              :          3.9624_dp, 4.2877_dp, 4.0831_dp, 3.9378_dp, 4.4655_dp, 4.7974_dp, 4.4813_dp, 4.5209_dp, &
     328              :          4.4964_dp, 4.4750_dp, 4.4565_dp, 4.4375_dp, 4.4234_dp, 2.6798_dp, 3.0151_dp, 3.2586_dp, &
     329              :          3.5292_dp, 3.5391_dp, 3.4902_dp, 3.2887_dp, 3.3322_dp, 3.1228_dp, 2.9888_dp, 3.4012_dp, &
     330              :          3.7145_dp, 3.7830_dp, 3.6665_dp, 3.5898_dp, 3.8077_dp, 3.5810_dp, 3.4265_dp, 3.7726_dp, &
     331              :          4.0307_dp, 3.9763_dp, 3.8890_dp, 3.8489_dp, 3.2706_dp, 3.7595_dp, 3.6984_dp, 3.6772_dp, &
     332              :          3.6428_dp, 3.6243_dp, 3.5951_dp, 3.7497_dp, 3.6775_dp, 3.6364_dp, 3.9203_dp, 3.7157_dp, &
     333              :          3.5746_dp, 3.9494_dp, 4.2076_dp, 4.1563_dp, 4.0508_dp, 3.5329_dp, 3.4780_dp, 3.3731_dp, &
     334              :          3.3126_dp, 3.2846_dp, 3.2426_dp, 3.2135_dp, 3.7491_dp, 3.9006_dp, 3.8332_dp, 3.8029_dp, &
     335              :          4.1436_dp, 3.9407_dp, 3.7998_dp, 4.1663_dp, 4.5309_dp, 4.3481_dp, 4.2911_dp, 4.2671_dp, &
     336              :          4.2415_dp, 4.2230_dp, 4.2047_dp, 4.1908_dp, 4.1243_dp, 2.5189_dp, 2.9703_dp, 3.3063_dp, &
     337              :          3.6235_dp, 3.4517_dp, 3.3989_dp, 3.2107_dp, 3.2434_dp, 3.0094_dp, 2.8580_dp, 3.4253_dp, &
     338              :          3.8157_dp, 3.7258_dp, 3.6132_dp, 3.5297_dp, 3.7566_dp, 3.5095_dp, 3.3368_dp, 3.7890_dp, &
     339              :          4.1298_dp, 4.0190_dp, 3.9573_dp, 3.9237_dp, 3.2677_dp, 3.8480_dp, 3.8157_dp, 3.7656_dp, &
     340              :          3.7317_dp, 3.7126_dp, 3.6814_dp, 3.6793_dp, 3.6218_dp, 3.5788_dp, 3.8763_dp, 3.6572_dp, &
     341              :          3.5022_dp, 3.9737_dp, 4.3255_dp, 4.1828_dp, 4.1158_dp, 3.5078_dp, 3.4595_dp, 3.3600_dp, &
     342              :          3.3088_dp, 3.2575_dp, 3.2164_dp, 3.1856_dp, 3.8522_dp, 3.8665_dp, 3.8075_dp, 3.7772_dp, &
     343              :          4.1391_dp, 3.9296_dp, 3.7772_dp, 4.2134_dp, 4.7308_dp, 4.3787_dp, 4.3894_dp, 4.3649_dp, &
     344              :          4.3441_dp, 4.3257_dp, 4.3073_dp, 4.2941_dp, 4.1252_dp, 4.2427_dp, 3.0481_dp, 2.9584_dp, &
     345              :          3.6919_dp, 3.5990_dp, 3.8881_dp, 3.4209_dp, 3.1606_dp, 3.1938_dp, 2.9975_dp, 2.8646_dp, &
     346              :          3.8138_dp, 3.7935_dp, 3.7081_dp, 3.9155_dp, 3.5910_dp, 3.4808_dp, 3.4886_dp, 3.3397_dp, &
     347              :          4.1336_dp, 4.1122_dp, 3.9888_dp, 3.9543_dp, 3.8917_dp, 3.5894_dp, 3.8131_dp, 3.7635_dp, &
     348              :          3.7419_dp, 3.7071_dp, 3.6880_dp, 3.6574_dp, 3.6546_dp, 3.9375_dp, 3.6579_dp, 3.5870_dp, &
     349              :          3.6361_dp, 3.5039_dp, 4.3149_dp, 4.2978_dp, 4.1321_dp, 4.1298_dp, 3.8164_dp, 3.7680_dp, &
     350              :          3.7154_dp, 3.6858_dp, 3.6709_dp, 3.6666_dp, 3.6517_dp, 3.8174_dp, 3.8608_dp, 4.1805_dp, &
     351              :          3.9102_dp, 3.8394_dp, 3.8968_dp, 3.7673_dp, 4.5274_dp, 4.6682_dp, 4.3344_dp, 4.3639_dp, &
     352              :          4.3384_dp, 4.3162_dp, 4.2972_dp, 4.2779_dp, 4.2636_dp, 4.0253_dp, 4.1168_dp, 4.1541_dp, &
     353              :          2.8136_dp, 3.0951_dp, 3.4635_dp, 3.6875_dp, 3.4987_dp, 3.5183_dp, 3.2937_dp, 3.3580_dp, &
     354              :          3.1325_dp, 2.9832_dp, 3.6078_dp, 3.8757_dp, 3.7616_dp, 3.9222_dp, 3.6370_dp, 3.8647_dp, &
     355              :          3.6256_dp, 3.4595_dp, 3.9874_dp, 4.1938_dp, 4.0679_dp, 4.0430_dp, 3.9781_dp, 3.3886_dp, &
     356              :          3.9008_dp, 3.8463_dp, 3.8288_dp, 3.7950_dp, 3.7790_dp, 3.7472_dp, 3.7117_dp, 3.9371_dp, &
     357              :          3.6873_dp, 3.9846_dp, 3.7709_dp, 3.6210_dp, 4.1812_dp, 4.3750_dp, 4.2044_dp, 4.1340_dp, &
     358              :          3.6459_dp, 3.5929_dp, 3.5036_dp, 3.4577_dp, 3.4528_dp, 3.4146_dp, 3.3904_dp, 3.9014_dp, &
     359              :          3.9031_dp, 4.1443_dp, 3.8961_dp, 4.2295_dp, 4.0227_dp, 3.8763_dp, 4.4086_dp, 4.7097_dp, &
     360              :          4.4064_dp, 4.4488_dp, 4.4243_dp, 4.4029_dp, 4.3842_dp, 4.3655_dp, 4.3514_dp, 4.1162_dp, &
     361              :          4.2205_dp, 4.1953_dp, 4.2794_dp, 2.8032_dp, 3.0805_dp, 3.4519_dp, 3.6700_dp, 3.4827_dp, &
     362              :          3.5050_dp, 3.2799_dp, 3.3482_dp, 3.1233_dp, 2.9747_dp, 3.5971_dp, 3.8586_dp, 3.7461_dp, &
     363              :          3.9100_dp, 3.6228_dp, 3.8535_dp, 3.6147_dp, 3.4490_dp, 3.9764_dp, 4.1773_dp, 4.0511_dp, &
     364              :          4.0270_dp, 3.9614_dp, 3.3754_dp, 3.8836_dp, 3.8291_dp, 3.8121_dp, 3.7780_dp, 3.7619_dp, &
     365              :          3.7300_dp, 3.6965_dp, 3.9253_dp, 3.6734_dp, 3.9733_dp, 3.7597_dp, 3.6099_dp, 4.1683_dp, &
     366              :          4.3572_dp, 4.1862_dp, 4.1153_dp, 3.6312_dp, 3.5772_dp, 3.4881_dp, 3.4429_dp, 3.4395_dp, &
     367              :          3.4009_dp, 3.3766_dp, 3.8827_dp, 3.8868_dp, 4.1316_dp, 3.8807_dp, 4.2164_dp, 4.0092_dp, &
     368              :          3.8627_dp, 4.3936_dp, 4.6871_dp, 4.3882_dp, 4.4316_dp, 4.4073_dp, 4.3858_dp, 4.3672_dp, &
     369              :          4.3485_dp, 4.3344_dp, 4.0984_dp, 4.2036_dp, 4.1791_dp, 4.2622_dp, 4.2450_dp, 2.7967_dp, &
     370              :          3.0689_dp, 3.4445_dp, 3.6581_dp, 3.4717_dp, 3.4951_dp, 3.2694_dp, 3.3397_dp, 3.1147_dp, &
     371              :          2.9661_dp, 3.5898_dp, 3.8468_dp, 3.7358_dp, 3.9014_dp, 3.6129_dp, 3.8443_dp, 3.6054_dp, &
     372              :          3.4396_dp, 3.9683_dp, 4.1656_dp, 4.0394_dp, 4.0158_dp, 3.9498_dp, 3.3677_dp, 3.8718_dp, &
     373              :          3.8164_dp, 3.8005_dp, 3.7662_dp, 3.7500_dp, 3.7181_dp, 3.6863_dp, 3.9170_dp, 3.6637_dp, &
     374              :          3.9641_dp, 3.7503_dp, 3.6004_dp, 4.1590_dp, 4.3448_dp, 4.1739_dp, 4.1029_dp, 3.6224_dp, &
     375              :          3.5677_dp, 3.4785_dp, 3.4314_dp, 3.4313_dp, 3.3923_dp, 3.3680_dp, 3.8698_dp, 3.8758_dp, &
     376              :          4.1229_dp, 3.8704_dp, 4.2063_dp, 3.9987_dp, 3.8519_dp, 4.3832_dp, 4.6728_dp, 4.3759_dp, &
     377              :          4.4195_dp, 4.3952_dp, 4.3737_dp, 4.3551_dp, 4.3364_dp, 4.3223_dp, 4.0861_dp, 4.1911_dp, &
     378              :          4.1676_dp, 4.2501_dp, 4.2329_dp, 4.2208_dp, 2.7897_dp, 3.0636_dp, 3.4344_dp, 3.6480_dp, &
     379              :          3.4626_dp, 3.4892_dp, 3.2626_dp, 3.3344_dp, 3.1088_dp, 2.9597_dp, 3.5804_dp, 3.8359_dp, &
     380              :          3.7251_dp, 3.8940_dp, 3.6047_dp, 3.8375_dp, 3.5990_dp, 3.4329_dp, 3.9597_dp, 4.1542_dp, &
     381              :          4.0278_dp, 4.0048_dp, 3.9390_dp, 3.3571_dp, 3.8608_dp, 3.8056_dp, 3.7899_dp, 3.7560_dp, &
     382              :          3.7400_dp, 3.7081_dp, 3.6758_dp, 3.9095_dp, 3.6552_dp, 3.9572_dp, 3.7436_dp]
     383              :       REAL(KIND=dp), DIMENSION(490), PARAMETER :: r0ab_2451_2940 = [3.5933_dp, 4.1508_dp, 4.3337_dp&
     384              :          , 4.1624_dp, 4.0916_dp, 3.6126_dp, 3.5582_dp, 3.4684_dp, 3.4212_dp, 3.4207_dp, 3.3829_dp, &
     385              :          3.3586_dp, 3.8604_dp, 3.8658_dp, 4.1156_dp, 3.8620_dp, 4.1994_dp, 3.9917_dp, 3.8446_dp, &
     386              :          4.3750_dp, 4.6617_dp, 4.3644_dp, 4.4083_dp, 4.3840_dp, 4.3625_dp, 4.3439_dp, 4.3253_dp, &
     387              :          4.3112_dp, 4.0745_dp, 4.1807_dp, 4.1578_dp, 4.2390_dp, 4.2218_dp, 4.2097_dp, 4.1986_dp, &
     388              :          2.8395_dp, 3.0081_dp, 3.3171_dp, 3.4878_dp, 3.5360_dp, 3.5145_dp, 3.2809_dp, 3.3307_dp, &
     389              :          3.1260_dp, 2.9940_dp, 3.4741_dp, 3.6675_dp, 3.7832_dp, 3.6787_dp, 3.6156_dp, 3.8041_dp, &
     390              :          3.5813_dp, 3.4301_dp, 3.8480_dp, 3.9849_dp, 3.9314_dp, 3.8405_dp, 3.8029_dp, 3.2962_dp, &
     391              :          3.7104_dp, 3.6515_dp, 3.6378_dp, 3.6020_dp, 3.5849_dp, 3.5550_dp, 3.7494_dp, 3.6893_dp, &
     392              :          3.6666_dp, 3.9170_dp, 3.7150_dp, 3.5760_dp, 4.0268_dp, 4.1596_dp, 4.1107_dp, 3.9995_dp, &
     393              :          3.5574_dp, 3.5103_dp, 3.4163_dp, 3.3655_dp, 3.3677_dp, 3.3243_dp, 3.2975_dp, 3.7071_dp, &
     394              :          3.9047_dp, 3.8514_dp, 3.8422_dp, 3.8022_dp, 3.9323_dp, 3.7932_dp, 4.2343_dp, 4.4583_dp, &
     395              :          4.3115_dp, 4.2457_dp, 4.2213_dp, 4.1945_dp, 4.1756_dp, 4.1569_dp, 4.1424_dp, 4.0620_dp, &
     396              :          4.0494_dp, 3.9953_dp, 4.0694_dp, 4.0516_dp, 4.0396_dp, 4.0280_dp, 4.0130_dp, 2.9007_dp, &
     397              :          2.9674_dp, 3.8174_dp, 3.5856_dp, 3.6486_dp, 3.5339_dp, 3.2832_dp, 3.3154_dp, 3.1144_dp, &
     398              :          2.9866_dp, 3.9618_dp, 3.8430_dp, 3.9980_dp, 3.8134_dp, 3.6652_dp, 3.7985_dp, 3.5756_dp, &
     399              :          3.4207_dp, 4.4061_dp, 4.2817_dp, 4.1477_dp, 4.0616_dp, 3.9979_dp, 3.6492_dp, 3.8833_dp, &
     400              :          3.8027_dp, 3.7660_dp, 3.7183_dp, 3.6954_dp, 3.6525_dp, 3.9669_dp, 3.8371_dp, 3.7325_dp, &
     401              :          3.9160_dp, 3.7156_dp, 3.5714_dp, 4.6036_dp, 4.4620_dp, 4.3092_dp, 4.2122_dp, 3.8478_dp, &
     402              :          3.7572_dp, 3.6597_dp, 3.5969_dp, 3.5575_dp, 3.5386_dp, 3.5153_dp, 3.7818_dp, 4.1335_dp, &
     403              :          4.0153_dp, 3.9177_dp, 3.8603_dp, 3.9365_dp, 3.7906_dp, 4.7936_dp, 4.7410_dp, 4.5461_dp, &
     404              :          4.5662_dp, 4.5340_dp, 4.5059_dp, 4.4832_dp, 4.4604_dp, 4.4429_dp, 4.2346_dp, 4.4204_dp, &
     405              :          4.3119_dp, 4.3450_dp, 4.3193_dp, 4.3035_dp, 4.2933_dp, 4.1582_dp, 4.2450_dp, 2.8559_dp, &
     406              :          2.9050_dp, 3.8325_dp, 3.5442_dp, 3.5077_dp, 3.4905_dp, 3.2396_dp, 3.2720_dp, 3.0726_dp, &
     407              :          2.9467_dp, 3.9644_dp, 3.8050_dp, 3.8981_dp, 3.7762_dp, 3.6216_dp, 3.7531_dp, 3.5297_dp, &
     408              :          3.3742_dp, 4.3814_dp, 4.2818_dp, 4.1026_dp, 4.0294_dp, 3.9640_dp, 3.6208_dp, 3.8464_dp, &
     409              :          3.7648_dp, 3.7281_dp, 3.6790_dp, 3.6542_dp, 3.6117_dp, 3.8650_dp, 3.8010_dp, 3.6894_dp, &
     410              :          3.8713_dp, 3.6699_dp, 3.5244_dp, 4.5151_dp, 4.4517_dp, 4.2538_dp, 4.1483_dp, 3.8641_dp, &
     411              :          3.7244_dp, 3.6243_dp, 3.5589_dp, 3.5172_dp, 3.4973_dp, 3.4715_dp, 3.7340_dp, 4.0316_dp, &
     412              :          3.9958_dp, 3.8687_dp, 3.8115_dp, 3.8862_dp, 3.7379_dp, 4.7091_dp, 4.7156_dp, 4.5199_dp, &
     413              :          4.5542_dp, 4.5230_dp, 4.4959_dp, 4.4750_dp, 4.4529_dp, 4.4361_dp, 4.1774_dp, 4.3774_dp, &
     414              :          4.2963_dp, 4.3406_dp, 4.3159_dp, 4.3006_dp, 4.2910_dp, 4.1008_dp, 4.1568_dp, 4.0980_dp, &
     415              :          2.8110_dp, 2.8520_dp, 3.7480_dp, 3.5105_dp, 3.4346_dp, 3.3461_dp, 3.1971_dp, 3.2326_dp, &
     416              :          3.0329_dp, 2.9070_dp, 3.8823_dp, 3.7928_dp, 3.8264_dp, 3.7006_dp, 3.5797_dp, 3.7141_dp, &
     417              :          3.4894_dp, 3.3326_dp, 4.3048_dp, 4.2217_dp, 4.0786_dp, 3.9900_dp, 3.9357_dp, 3.6331_dp, &
     418              :          3.8333_dp, 3.7317_dp, 3.6957_dp, 3.6460_dp, 3.6197_dp, 3.5779_dp, 3.7909_dp, 3.7257_dp, &
     419              :          3.6476_dp, 3.5729_dp, 3.6304_dp, 3.4834_dp, 4.4368_dp, 4.3921_dp, 4.2207_dp, 4.1133_dp, &
     420              :          3.8067_dp, 3.7421_dp, 3.6140_dp, 3.5491_dp, 3.5077_dp, 3.4887_dp, 3.4623_dp, 3.6956_dp, &
     421              :          3.9568_dp, 3.8976_dp, 3.8240_dp, 3.7684_dp, 3.8451_dp, 3.6949_dp, 4.6318_dp, 4.6559_dp, &
     422              :          4.4533_dp, 4.4956_dp, 4.4641_dp, 4.4366_dp, 4.4155_dp, 4.3936_dp, 4.3764_dp, 4.1302_dp, &
     423              :          4.3398_dp, 4.2283_dp, 4.2796_dp, 4.2547_dp, 4.2391_dp, 4.2296_dp, 4.0699_dp, 4.1083_dp, &
     424              :          4.0319_dp, 3.9855_dp, 2.7676_dp, 2.8078_dp, 3.6725_dp, 3.4804_dp, 3.3775_dp, 3.2411_dp, &
     425              :          3.1581_dp, 3.1983_dp, 2.9973_dp, 2.8705_dp, 3.8070_dp, 3.7392_dp, 3.7668_dp, 3.6263_dp, &
     426              :          3.5402_dp, 3.6807_dp, 3.4545_dp, 3.2962_dp, 4.2283_dp, 4.1698_dp, 4.0240_dp, 3.9341_dp, &
     427              :          3.8711_dp, 3.5489_dp, 3.7798_dp, 3.7000_dp, 3.6654_dp, 3.6154_dp, 3.5882_dp, 3.5472_dp, &
     428              :          3.7289_dp, 3.6510_dp, 3.6078_dp, 3.5355_dp, 3.5963_dp, 3.4480_dp, 4.3587_dp, 4.3390_dp, &
     429              :          4.1635_dp, 4.0536_dp, 3.7193_dp, 3.6529_dp, 3.5512_dp, 3.4837_dp, 3.4400_dp, 3.4191_dp, &
     430              :          3.3891_dp, 3.6622_dp, 3.8934_dp, 3.8235_dp, 3.7823_dp, 3.7292_dp, 3.8106_dp, 3.6589_dp, &
     431              :          4.5535_dp, 4.6013_dp, 4.3961_dp, 4.4423_dp, 4.4109_dp, 4.3835_dp, 4.3625_dp, 4.3407_dp, &
     432              :          4.3237_dp, 4.0863_dp, 4.2835_dp, 4.1675_dp, 4.2272_dp, 4.2025_dp, 4.1869_dp, 4.1774_dp, &
     433              :          4.0126_dp, 4.0460_dp, 3.9815_dp, 3.9340_dp, 3.8955_dp, 2.6912_dp, 2.7604_dp, 3.6037_dp, &
     434              :          3.4194_dp, 3.3094_dp, 3.1710_dp, 3.0862_dp, 3.1789_dp, 2.9738_dp, 2.8427_dp, 3.7378_dp, &
     435              :          3.6742_dp, 3.6928_dp, 3.5512_dp, 3.4614_dp, 3.4087_dp, 3.4201_dp, 3.2607_dp, 4.1527_dp, &
     436              :          4.0977_dp, 3.9523_dp, 3.8628_dp, 3.8002_dp, 3.4759_dp, 3.7102_dp, 3.6466_dp, 3.6106_dp, &
     437              :          3.5580_dp, 3.5282_dp, 3.4878_dp, 3.6547_dp, 3.5763_dp, 3.5289_dp, 3.5086_dp, 3.5593_dp, &
     438              :          3.4099_dp, 4.2788_dp, 4.2624_dp, 4.0873_dp, 3.9770_dp, 3.6407_dp, 3.5743_dp, 3.5178_dp, &
     439              :          3.4753_dp, 3.3931_dp, 3.3694_dp, 3.3339_dp, 3.6002_dp, 3.8164_dp, 3.7478_dp, 3.7028_dp, &
     440              :          3.6952_dp, 3.7669_dp, 3.6137_dp, 4.4698_dp, 4.5488_dp, 4.3168_dp, 4.3646_dp, 4.3338_dp, &
     441              :          4.3067_dp, 4.2860_dp, 4.2645_dp, 4.2478_dp, 4.0067_dp, 4.2349_dp, 4.0958_dp, 4.1543_dp, &
     442              :          4.1302_dp, 4.1141_dp, 4.1048_dp, 3.9410_dp, 3.9595_dp, 3.8941_dp, 3.8465_dp, 3.8089_dp, &
     443              :          3.7490_dp, 2.7895_dp, 2.5849_dp, 3.6484_dp, 3.0162_dp, 3.1267_dp, 3.2125_dp, 3.0043_dp, &
     444              :          2.9572_dp, 2.8197_dp, 2.7261_dp, 3.7701_dp, 3.2446_dp, 3.5239_dp, 3.4696_dp]
     445              :       REAL(KIND=dp), DIMENSION(490), PARAMETER :: r0ab_2941_3430 = [3.4261_dp, 3.3508_dp, 3.1968_dp&
     446              :          , 3.0848_dp, 4.1496_dp, 3.6598_dp, 3.5111_dp, 3.4199_dp, 3.3809_dp, 3.5382_dp, 3.2572_dp, &
     447              :          3.2100_dp, 3.1917_dp, 3.1519_dp, 3.1198_dp, 3.1005_dp, 3.5071_dp, 3.5086_dp, 3.5073_dp, &
     448              :          3.4509_dp, 3.3120_dp, 3.2082_dp, 4.2611_dp, 3.8117_dp, 3.6988_dp, 3.5646_dp, 3.6925_dp, &
     449              :          3.6295_dp, 3.5383_dp, 3.4910_dp, 3.4625_dp, 3.4233_dp, 3.4007_dp, 3.2329_dp, 3.6723_dp, &
     450              :          3.6845_dp, 3.6876_dp, 3.6197_dp, 3.4799_dp, 3.3737_dp, 4.4341_dp, 4.0525_dp, 3.9011_dp, &
     451              :          3.8945_dp, 3.8635_dp, 3.8368_dp, 3.8153_dp, 3.7936_dp, 3.7758_dp, 3.4944_dp, 3.4873_dp, &
     452              :          3.9040_dp, 3.7110_dp, 3.6922_dp, 3.6799_dp, 3.6724_dp, 3.5622_dp, 3.6081_dp, 3.5426_dp, &
     453              :          3.4922_dp, 3.4498_dp, 3.3984_dp, 3.4456_dp, 2.7522_dp, 2.5524_dp, 3.5742_dp, 2.9508_dp, &
     454              :          3.0751_dp, 3.0158_dp, 2.9644_dp, 2.8338_dp, 2.7891_dp, 2.6933_dp, 3.6926_dp, 3.1814_dp, &
     455              :          3.4528_dp, 3.4186_dp, 3.3836_dp, 3.2213_dp, 3.1626_dp, 3.0507_dp, 4.0548_dp, 3.5312_dp, &
     456              :          3.4244_dp, 3.3409_dp, 3.2810_dp, 3.4782_dp, 3.1905_dp, 3.1494_dp, 3.1221_dp, 3.1128_dp, &
     457              :          3.0853_dp, 3.0384_dp, 3.4366_dp, 3.4562_dp, 3.4638_dp, 3.3211_dp, 3.2762_dp, 3.1730_dp, &
     458              :          4.1632_dp, 3.6825_dp, 3.5822_dp, 3.4870_dp, 3.6325_dp, 3.5740_dp, 3.4733_dp, 3.4247_dp, &
     459              :          3.3969_dp, 3.3764_dp, 3.3525_dp, 3.1984_dp, 3.5989_dp, 3.6299_dp, 3.6433_dp, 3.4937_dp, &
     460              :          3.4417_dp, 3.3365_dp, 4.3304_dp, 3.9242_dp, 3.7793_dp, 3.7623_dp, 3.7327_dp, 3.7071_dp, &
     461              :          3.6860_dp, 3.6650_dp, 3.6476_dp, 3.3849_dp, 3.3534_dp, 3.8216_dp, 3.5870_dp, 3.5695_dp, &
     462              :          3.5584_dp, 3.5508_dp, 3.4856_dp, 3.5523_dp, 3.4934_dp, 3.4464_dp, 3.4055_dp, 3.3551_dp, &
     463              :          3.3888_dp, 3.3525_dp, 2.7202_dp, 2.5183_dp, 3.4947_dp, 2.8731_dp, 3.0198_dp, 3.1457_dp, &
     464              :          2.9276_dp, 2.7826_dp, 2.7574_dp, 2.6606_dp, 3.6090_dp, 3.0581_dp, 3.3747_dp, 3.3677_dp, &
     465              :          3.3450_dp, 3.1651_dp, 3.1259_dp, 3.0147_dp, 3.9498_dp, 3.3857_dp, 3.2917_dp, 3.2154_dp, &
     466              :          3.1604_dp, 3.4174_dp, 3.0735_dp, 3.0342_dp, 3.0096_dp, 3.0136_dp, 2.9855_dp, 2.9680_dp, &
     467              :          3.3604_dp, 3.4037_dp, 3.4243_dp, 3.2633_dp, 3.1810_dp, 3.1351_dp, 4.0557_dp, 3.5368_dp, &
     468              :          3.4526_dp, 3.3699_dp, 3.5707_dp, 3.5184_dp, 3.4085_dp, 3.3595_dp, 3.3333_dp, 3.3143_dp, &
     469              :          3.3041_dp, 3.1094_dp, 3.5193_dp, 3.5745_dp, 3.6025_dp, 3.4338_dp, 3.3448_dp, 3.2952_dp, &
     470              :          4.2158_dp, 3.7802_dp, 3.6431_dp, 3.6129_dp, 3.5853_dp, 3.5610_dp, 3.5406_dp, 3.5204_dp, &
     471              :          3.5036_dp, 3.2679_dp, 3.2162_dp, 3.7068_dp, 3.4483_dp, 3.4323_dp, 3.4221_dp, 3.4138_dp, &
     472              :          3.3652_dp, 3.4576_dp, 3.4053_dp, 3.3618_dp, 3.3224_dp, 3.2711_dp, 3.3326_dp, 3.2950_dp, &
     473              :          3.2564_dp, 2.5315_dp, 2.6104_dp, 3.2734_dp, 3.2299_dp, 3.1090_dp, 2.9942_dp, 2.9159_dp, &
     474              :          2.8324_dp, 2.8350_dp, 2.7216_dp, 3.3994_dp, 3.4475_dp, 3.4354_dp, 3.3438_dp, 3.2807_dp, &
     475              :          3.2169_dp, 3.2677_dp, 3.1296_dp, 3.7493_dp, 3.8075_dp, 3.6846_dp, 3.6104_dp, 3.5577_dp, &
     476              :          3.2052_dp, 3.4803_dp, 3.4236_dp, 3.3845_dp, 3.3640_dp, 3.3365_dp, 3.3010_dp, 3.3938_dp, &
     477              :          3.3624_dp, 3.3440_dp, 3.3132_dp, 3.4035_dp, 3.2754_dp, 3.8701_dp, 3.9523_dp, 3.8018_dp, &
     478              :          3.7149_dp, 3.3673_dp, 3.3199_dp, 3.2483_dp, 3.2069_dp, 3.1793_dp, 3.1558_dp, 3.1395_dp, &
     479              :          3.4097_dp, 3.5410_dp, 3.5228_dp, 3.5116_dp, 3.4921_dp, 3.4781_dp, 3.4690_dp, 4.0420_dp, &
     480              :          4.1759_dp, 4.0078_dp, 4.0450_dp, 4.0189_dp, 3.9952_dp, 3.9770_dp, 3.9583_dp, 3.9434_dp, &
     481              :          3.7217_dp, 3.8228_dp, 3.7826_dp, 3.8640_dp, 3.8446_dp, 3.8314_dp, 3.8225_dp, 3.6817_dp, &
     482              :          3.7068_dp, 3.6555_dp, 3.6159_dp, 3.5831_dp, 3.5257_dp, 3.2133_dp, 3.1689_dp, 3.1196_dp, &
     483              :          3.3599_dp, 2.9852_dp, 2.7881_dp, 3.5284_dp, 3.3493_dp, 3.6958_dp, 3.3642_dp, 3.1568_dp, &
     484              :          3.0055_dp, 2.9558_dp, 2.8393_dp, 3.6287_dp, 3.5283_dp, 4.1511_dp, 3.8259_dp, 3.6066_dp, &
     485              :          3.4527_dp, 3.3480_dp, 3.2713_dp, 3.9037_dp, 3.8361_dp, 3.8579_dp, 3.7311_dp, 3.6575_dp, &
     486              :          3.5176_dp, 3.5693_dp, 3.5157_dp, 3.4814_dp, 3.4559_dp, 3.4445_dp, 3.4160_dp, 4.1231_dp, &
     487              :          3.8543_dp, 3.6816_dp, 3.5602_dp, 3.4798_dp, 3.4208_dp, 4.0542_dp, 4.0139_dp, 4.0165_dp, &
     488              :          3.9412_dp, 3.7698_dp, 3.6915_dp, 3.6043_dp, 3.5639_dp, 3.5416_dp, 3.5247_dp, 3.5153_dp, &
     489              :          3.5654_dp, 4.2862_dp, 4.0437_dp, 3.8871_dp, 3.7741_dp, 3.6985_dp, 3.6413_dp, 4.2345_dp, &
     490              :          4.3663_dp, 4.3257_dp, 4.0869_dp, 4.0612_dp, 4.0364_dp, 4.0170_dp, 3.9978_dp, 3.9834_dp, &
     491              :          3.9137_dp, 3.8825_dp, 3.8758_dp, 3.9143_dp, 3.8976_dp, 3.8864_dp, 3.8768_dp, 3.9190_dp, &
     492              :          4.1613_dp, 4.0566_dp, 3.9784_dp, 3.9116_dp, 3.8326_dp, 3.7122_dp, 3.6378_dp, 3.5576_dp, &
     493              :          3.5457_dp, 4.3127_dp, 3.1160_dp, 2.8482_dp, 4.0739_dp, 3.3599_dp, 3.5698_dp, 3.5366_dp, &
     494              :          3.2854_dp, 3.1039_dp, 2.9953_dp, 2.9192_dp, 4.1432_dp, 3.5320_dp, 3.9478_dp, 4.0231_dp, &
     495              :          3.7509_dp, 3.5604_dp, 3.4340_dp, 3.3426_dp, 4.3328_dp, 3.8288_dp, 3.7822_dp, 3.7909_dp, &
     496              :          3.6907_dp, 3.6864_dp, 3.5793_dp, 3.5221_dp, 3.4883_dp, 3.4649_dp, 3.4514_dp, 3.4301_dp, &
     497              :          3.9256_dp, 4.0596_dp, 3.8307_dp, 3.6702_dp, 3.5651_dp, 3.4884_dp, 4.4182_dp, 4.2516_dp, &
     498              :          3.9687_dp, 3.9186_dp, 3.9485_dp, 3.8370_dp, 3.7255_dp, 3.6744_dp, 3.6476_dp, 3.6295_dp, &
     499              :          3.6193_dp, 3.5659_dp, 4.0663_dp, 4.2309_dp, 4.0183_dp, 3.8680_dp, 3.7672_dp, 3.6923_dp, &
     500              :          4.5240_dp, 4.4834_dp, 4.1570_dp, 4.3204_dp, 4.2993_dp, 4.2804_dp, 4.2647_dp, 4.2481_dp, &
     501              :          4.2354_dp, 3.8626_dp, 3.8448_dp, 4.2267_dp, 4.1799_dp, 4.1670_dp, 3.8738_dp, 3.8643_dp, &
     502              :          3.8796_dp, 4.0575_dp, 4.0354_dp, 3.9365_dp, 3.8611_dp, 3.7847_dp, 3.7388_dp, 3.6826_dp, &
     503              :          3.6251_dp, 3.5492_dp, 4.0889_dp, 4.2764_dp, 3.1416_dp, 2.8325_dp, 3.7735_dp, 3.3787_dp, &
     504              :          3.4632_dp, 3.5923_dp, 3.3214_dp, 3.1285_dp, 3.0147_dp, 2.9366_dp, 3.8527_dp, 3.5602_dp, &
     505              :          3.8131_dp, 3.8349_dp, 3.7995_dp, 3.5919_dp, 3.4539_dp, 3.3540_dp, 4.0654_dp, 3.8603_dp, &
     506              :          3.7972_dp, 3.7358_dp, 3.7392_dp, 3.8157_dp, 3.6055_dp, 3.5438_dp, 3.5089_dp]
     507              :       REAL(KIND=dp), DIMENSION(490), PARAMETER :: r0ab_3431_3920 = [3.4853_dp, 3.4698_dp, 3.4508_dp&
     508              :          , 3.7882_dp, 3.8682_dp, 3.8837_dp, 3.7055_dp, 3.5870_dp, 3.5000_dp, 4.1573_dp, 4.0005_dp, &
     509              :          3.9568_dp, 3.8936_dp, 3.9990_dp, 3.9433_dp, 3.8172_dp, 3.7566_dp, 3.7246_dp, 3.7033_dp, &
     510              :          3.6900_dp, 3.5697_dp, 3.9183_dp, 4.0262_dp, 4.0659_dp, 3.8969_dp, 3.7809_dp, 3.6949_dp, &
     511              :          4.2765_dp, 4.2312_dp, 4.1401_dp, 4.0815_dp, 4.0580_dp, 4.0369_dp, 4.0194_dp, 4.0017_dp, &
     512              :          3.9874_dp, 3.8312_dp, 3.8120_dp, 3.9454_dp, 3.9210_dp, 3.9055_dp, 3.8951_dp, 3.8866_dp, &
     513              :          3.8689_dp, 3.9603_dp, 3.9109_dp, 3.9122_dp, 3.8233_dp, 3.7438_dp, 3.7436_dp, 3.6981_dp, &
     514              :          3.6555_dp, 3.5452_dp, 3.9327_dp, 4.0658_dp, 4.1175_dp, 2.9664_dp, 2.8209_dp, 3.5547_dp, &
     515              :          3.3796_dp, 3.3985_dp, 3.3164_dp, 3.2364_dp, 3.1956_dp, 3.0370_dp, 2.9313_dp, 3.6425_dp, &
     516              :          3.5565_dp, 3.7209_dp, 3.7108_dp, 3.6639_dp, 3.6484_dp, 3.4745_dp, 3.3492_dp, 3.8755_dp, &
     517              :          4.2457_dp, 3.7758_dp, 3.7161_dp, 3.6693_dp, 3.6155_dp, 3.5941_dp, 3.5643_dp, 3.5292_dp, &
     518              :          3.4950_dp, 3.4720_dp, 3.4503_dp, 3.6936_dp, 3.7392_dp, 3.7388_dp, 3.7602_dp, 3.6078_dp, &
     519              :          3.4960_dp, 3.9800_dp, 4.3518_dp, 4.2802_dp, 3.8580_dp, 3.8056_dp, 3.7527_dp, 3.7019_dp, &
     520              :          3.6615_dp, 3.5768_dp, 3.5330_dp, 3.5038_dp, 3.5639_dp, 3.8192_dp, 3.8883_dp, 3.9092_dp, &
     521              :          3.9478_dp, 3.7995_dp, 3.6896_dp, 4.1165_dp, 4.5232_dp, 4.4357_dp, 4.4226_dp, 4.4031_dp, &
     522              :          4.3860_dp, 4.3721_dp, 4.3580_dp, 4.3466_dp, 4.2036_dp, 4.2037_dp, 3.8867_dp, 4.2895_dp, &
     523              :          4.2766_dp, 4.2662_dp, 4.2598_dp, 3.8408_dp, 3.9169_dp, 3.8681_dp, 3.8250_dp, 3.7855_dp, &
     524              :          3.7501_dp, 3.6753_dp, 3.5499_dp, 3.4872_dp, 3.5401_dp, 3.8288_dp, 3.9217_dp, 3.9538_dp, &
     525              :          4.0054_dp, 2.8388_dp, 2.7890_dp, 3.4329_dp, 3.5593_dp, 3.3488_dp, 3.2486_dp, 3.1615_dp, &
     526              :          3.1000_dp, 3.0394_dp, 2.9165_dp, 3.5267_dp, 3.7479_dp, 3.6650_dp, 3.6263_dp, 3.5658_dp, &
     527              :          3.5224_dp, 3.4762_dp, 3.3342_dp, 3.7738_dp, 4.0333_dp, 3.9568_dp, 3.8975_dp, 3.8521_dp, &
     528              :          3.4929_dp, 3.7830_dp, 3.7409_dp, 3.7062_dp, 3.6786_dp, 3.6471_dp, 3.6208_dp, 3.6337_dp, &
     529              :          3.6519_dp, 3.6363_dp, 3.6278_dp, 3.6110_dp, 3.4825_dp, 3.8795_dp, 4.1448_dp, 4.0736_dp, &
     530              :          4.0045_dp, 3.6843_dp, 3.6291_dp, 3.5741_dp, 3.5312_dp, 3.4974_dp, 3.4472_dp, 3.4034_dp, &
     531              :          3.7131_dp, 3.7557_dp, 3.7966_dp, 3.8005_dp, 3.8068_dp, 3.8015_dp, 3.6747_dp, 4.0222_dp, &
     532              :          4.3207_dp, 4.2347_dp, 4.2191_dp, 4.1990_dp, 4.1811_dp, 4.1666_dp, 4.1521_dp, 4.1401_dp, &
     533              :          3.9970_dp, 3.9943_dp, 3.9592_dp, 4.0800_dp, 4.0664_dp, 4.0559_dp, 4.0488_dp, 3.9882_dp, &
     534              :          4.0035_dp, 3.9539_dp, 3.9138_dp, 3.8798_dp, 3.8355_dp, 3.5359_dp, 3.4954_dp, 3.3962_dp, &
     535              :          3.5339_dp, 3.7595_dp, 3.8250_dp, 3.8408_dp, 3.8600_dp, 3.8644_dp, 2.7412_dp, 2.7489_dp, &
     536              :          3.3374_dp, 3.3950_dp, 3.3076_dp, 3.1910_dp, 3.0961_dp, 3.0175_dp, 3.0280_dp, 2.8929_dp, &
     537              :          3.4328_dp, 3.5883_dp, 3.6227_dp, 3.5616_dp, 3.4894_dp, 3.4241_dp, 3.3641_dp, 3.3120_dp, &
     538              :          3.6815_dp, 3.8789_dp, 3.8031_dp, 3.7413_dp, 3.6939_dp, 3.4010_dp, 3.6225_dp, 3.5797_dp, &
     539              :          3.5443_dp, 3.5139_dp, 3.4923_dp, 3.4642_dp, 3.5860_dp, 3.5849_dp, 3.5570_dp, 3.5257_dp, &
     540              :          3.4936_dp, 3.4628_dp, 3.7874_dp, 3.9916_dp, 3.9249_dp, 3.8530_dp, 3.5932_dp, 3.5355_dp, &
     541              :          3.4757_dp, 3.4306_dp, 3.3953_dp, 3.3646_dp, 3.3390_dp, 3.5637_dp, 3.7053_dp, 3.7266_dp, &
     542              :          3.7177_dp, 3.6996_dp, 3.6775_dp, 3.6558_dp, 3.9331_dp, 4.1655_dp, 4.0879_dp, 4.0681_dp, &
     543              :          4.0479_dp, 4.0299_dp, 4.0152_dp, 4.0006_dp, 3.9883_dp, 3.8500_dp, 3.8359_dp, 3.8249_dp, &
     544              :          3.9269_dp, 3.9133_dp, 3.9025_dp, 3.8948_dp, 3.8422_dp, 3.8509_dp, 3.7990_dp, 3.7570_dp, &
     545              :          3.7219_dp, 3.6762_dp, 3.4260_dp, 3.3866_dp, 3.3425_dp, 3.5294_dp, 3.7022_dp, 3.7497_dp, &
     546              :          3.7542_dp, 3.7494_dp, 3.7370_dp, 3.7216_dp, 3.3286_dp, 3.5286_dp, 4.5857_dp, 4.2143_dp, &
     547              :          3.9714_dp, 3.9428_dp, 3.8857_dp, 3.7714_dp, 3.7857_dp, 3.8286_dp, 4.8714_dp, 4.6571_dp, &
     548              :          4.4857_dp, 4.3571_dp, 4.4429_dp, 4.3286_dp, 4.2857_dp, 4.2428_dp, 5.3857_dp, 5.0714_dp, &
     549              :          4.7714_dp, 4.6143_dp, 4.6000_dp, 4.4429_dp, 4.4000_dp, 4.3571_dp, 4.3000_dp, 4.2857_dp, &
     550              :          4.3143_dp, 4.4286_dp, 4.4714_dp, 4.4286_dp, 4.5143_dp, 4.4429_dp, 4.5000_dp, 4.5429_dp, &
     551              :          5.5714_dp, 5.2572_dp, 4.9714_dp, 4.8572_dp, 4.7571_dp, 4.6428_dp, 4.5143_dp, 4.4857_dp, &
     552              :          4.4857_dp, 4.4143_dp, 4.5143_dp, 4.6286_dp, 4.7000_dp, 4.6714_dp, 4.6714_dp, 4.6286_dp, &
     553              :          4.7571_dp, 4.7429_dp, 5.8571_dp, 5.3857_dp, 5.1857_dp, 4.9714_dp, 5.1286_dp, 5.1143_dp, &
     554              :          5.1000_dp, 5.0857_dp, 5.0286_dp, 5.0428_dp, 5.0286_dp, 5.0143_dp, 5.0000_dp, 5.0000_dp, &
     555              :          4.9857_dp, 5.0571_dp, 4.9571_dp, 4.8286_dp, 4.7429_dp, 4.6286_dp, 4.5572_dp, 4.5286_dp, &
     556              :          4.4572_dp, 4.4714_dp, 4.4857_dp, 4.7571_dp, 4.7286_dp, 4.7286_dp, 4.8143_dp, 4.7429_dp, &
     557              :          4.8429_dp, 4.9000_dp, 5.7428_dp, 3.0429_dp, 3.2429_dp, 4.3000_dp, 3.9286_dp, 3.6857_dp, &
     558              :          3.6571_dp, 3.6000_dp, 3.4857_dp, 3.5000_dp, 3.5428_dp, 4.5857_dp, 4.3714_dp, 4.2000_dp, &
     559              :          4.0714_dp, 4.1572_dp, 4.0429_dp, 4.0000_dp, 3.9571_dp, 5.1000_dp, 4.7857_dp, 4.4857_dp, &
     560              :          4.3286_dp, 4.3143_dp, 4.1572_dp, 4.1143_dp, 4.0714_dp, 4.0143_dp, 4.0000_dp, 4.0286_dp, &
     561              :          4.1429_dp, 4.1857_dp, 4.1429_dp, 4.2285_dp, 4.1572_dp, 4.2143_dp, 4.2571_dp, 5.2857_dp, &
     562              :          4.9714_dp, 4.6857_dp, 4.5714_dp, 4.4714_dp, 4.3571_dp, 4.2285_dp, 4.2000_dp, 4.2000_dp, &
     563              :          4.1286_dp, 4.2285_dp, 4.3429_dp, 4.4143_dp, 4.3857_dp, 4.3857_dp, 4.3429_dp, 4.4714_dp, &
     564              :          4.4572_dp, 5.5714_dp, 5.1000_dp, 4.9000_dp, 4.6857_dp, 4.8429_dp, 4.8286_dp, 4.8143_dp, &
     565              :          4.8000_dp, 4.7429_dp, 4.7571_dp, 4.7429_dp, 4.7286_dp, 4.7143_dp, 4.7143_dp, 4.7000_dp, &
     566              :          4.7714_dp, 4.6714_dp, 4.5429_dp, 4.4572_dp, 4.3429_dp, 4.2714_dp, 4.2428_dp, 4.1715_dp, &
     567              :          4.1857_dp, 4.2000_dp, 4.4714_dp, 4.4429_dp, 4.4429_dp, 4.5286_dp, 4.4572_dp, 4.5572_dp, &
     568              :          4.6143_dp, 5.4571_dp, 5.1714_dp, 2.8428_dp, 3.0429_dp, 4.1000_dp, 3.7286_dp]
     569              :       REAL(KIND=dp), DIMENSION(490), PARAMETER :: r0ab_3921_4410 = [3.4857_dp, 3.4572_dp, 3.4000_dp&
     570              :          , 3.2857_dp, 3.3000_dp, 3.3429_dp, 4.3857_dp, 4.1715_dp, 4.0000_dp, 3.8714_dp, 3.9571_dp, &
     571              :          3.8428_dp, 3.8000_dp, 3.7572_dp, 4.9000_dp, 4.5857_dp, 4.2857_dp, 4.1286_dp, 4.1143_dp, &
     572              :          3.9571_dp, 3.9143_dp, 3.8714_dp, 3.8143_dp, 3.8000_dp, 3.8286_dp, 3.9428_dp, 3.9857_dp, &
     573              :          3.9428_dp, 4.0286_dp, 3.9571_dp, 4.0143_dp, 4.0571_dp, 5.0857_dp, 4.7714_dp, 4.4857_dp, &
     574              :          4.3714_dp, 4.2714_dp, 4.1572_dp, 4.0286_dp, 4.0000_dp, 4.0000_dp, 3.9286_dp, 4.0286_dp, &
     575              :          4.1429_dp, 4.2143_dp, 4.1857_dp, 4.1857_dp, 4.1429_dp, 4.2714_dp, 4.2571_dp, 5.3714_dp, &
     576              :          4.9000_dp, 4.7000_dp, 4.4857_dp, 4.6428_dp, 4.6286_dp, 4.6143_dp, 4.6000_dp, 4.5429_dp, &
     577              :          4.5572_dp, 4.5429_dp, 4.5286_dp, 4.5143_dp, 4.5143_dp, 4.5000_dp, 4.5714_dp, 4.4714_dp, &
     578              :          4.3429_dp, 4.2571_dp, 4.1429_dp, 4.0714_dp, 4.0429_dp, 3.9714_dp, 3.9857_dp, 4.0000_dp, &
     579              :          4.2714_dp, 4.2428_dp, 4.2428_dp, 4.3286_dp, 4.2571_dp, 4.3571_dp, 4.4143_dp, 5.2572_dp, &
     580              :          4.9714_dp, 4.7714_dp, 2.7143_dp, 2.9143_dp, 3.9714_dp, 3.6000_dp, 3.3572_dp, 3.3286_dp, &
     581              :          3.2714_dp, 3.1571_dp, 3.1714_dp, 3.2143_dp, 4.2571_dp, 4.0429_dp, 3.8714_dp, 3.7429_dp, &
     582              :          3.8286_dp, 3.7143_dp, 3.6714_dp, 3.6286_dp, 4.7714_dp, 4.4572_dp, 4.1572_dp, 4.0000_dp, &
     583              :          3.9857_dp, 3.8286_dp, 3.7857_dp, 3.7429_dp, 3.6857_dp, 3.6714_dp, 3.7000_dp, 3.8143_dp, &
     584              :          3.8571_dp, 3.8143_dp, 3.9000_dp, 3.8286_dp, 3.8857_dp, 3.9286_dp, 4.9571_dp, 4.6428_dp, &
     585              :          4.3571_dp, 4.2428_dp, 4.1429_dp, 4.0286_dp, 3.9000_dp, 3.8714_dp, 3.8714_dp, 3.8000_dp, &
     586              :          3.9000_dp, 4.0143_dp, 4.0857_dp, 4.0571_dp, 4.0571_dp, 4.0143_dp, 4.1429_dp, 4.1286_dp, &
     587              :          5.2429_dp, 4.7714_dp, 4.5714_dp, 4.3571_dp, 4.5143_dp, 4.5000_dp, 4.4857_dp, 4.4714_dp, &
     588              :          4.4143_dp, 4.4286_dp, 4.4143_dp, 4.4000_dp, 4.3857_dp, 4.3857_dp, 4.3714_dp, 4.4429_dp, &
     589              :          4.3429_dp, 4.2143_dp, 4.1286_dp, 4.0143_dp, 3.9428_dp, 3.9143_dp, 3.8428_dp, 3.8571_dp, &
     590              :          3.8714_dp, 4.1429_dp, 4.1143_dp, 4.1143_dp, 4.2000_dp, 4.1286_dp, 4.2285_dp, 4.2857_dp, &
     591              :          5.1286_dp, 4.8429_dp, 4.6428_dp, 4.5143_dp, 2.6286_dp, 2.8286_dp, 3.8857_dp, 3.5143_dp, &
     592              :          3.2714_dp, 3.2429_dp, 3.1857_dp, 3.0715_dp, 3.0857_dp, 3.1285_dp, 4.1715_dp, 3.9571_dp, &
     593              :          3.7857_dp, 3.6571_dp, 3.7429_dp, 3.6286_dp, 3.5857_dp, 3.5428_dp, 4.6857_dp, 4.3714_dp, &
     594              :          4.0714_dp, 3.9143_dp, 3.9000_dp, 3.7429_dp, 3.7000_dp, 3.6571_dp, 3.6000_dp, 3.5857_dp, &
     595              :          3.6143_dp, 3.7286_dp, 3.7714_dp, 3.7286_dp, 3.8143_dp, 3.7429_dp, 3.8000_dp, 3.8428_dp, &
     596              :          4.8714_dp, 4.5572_dp, 4.2714_dp, 4.1572_dp, 4.0571_dp, 3.9428_dp, 3.8143_dp, 3.7857_dp, &
     597              :          3.7857_dp, 3.7143_dp, 3.8143_dp, 3.9286_dp, 4.0000_dp, 3.9714_dp, 3.9714_dp, 3.9286_dp, &
     598              :          4.0571_dp, 4.0429_dp, 5.1571_dp, 4.6857_dp, 4.4857_dp, 4.2714_dp, 4.4286_dp, 4.4143_dp, &
     599              :          4.4000_dp, 4.3857_dp, 4.3286_dp, 4.3429_dp, 4.3286_dp, 4.3143_dp, 4.3000_dp, 4.3000_dp, &
     600              :          4.2857_dp, 4.3571_dp, 4.2571_dp, 4.1286_dp, 4.0429_dp, 3.9286_dp, 3.8571_dp, 3.8286_dp, &
     601              :          3.7572_dp, 3.7714_dp, 3.7857_dp, 4.0571_dp, 4.0286_dp, 4.0286_dp, 4.1143_dp, 4.0429_dp, &
     602              :          4.1429_dp, 4.2000_dp, 5.0428_dp, 4.7571_dp, 4.5572_dp, 4.4286_dp, 4.3429_dp, 2.6429_dp, &
     603              :          2.8428_dp, 3.9000_dp, 3.5286_dp, 3.2857_dp, 3.2571_dp, 3.2000_dp, 3.0857_dp, 3.1000_dp, &
     604              :          3.1428_dp, 4.1857_dp, 3.9714_dp, 3.8000_dp, 3.6714_dp, 3.7572_dp, 3.6429_dp, 3.6000_dp, &
     605              :          3.5571_dp, 4.7000_dp, 4.3857_dp, 4.0857_dp, 3.9286_dp, 3.9143_dp, 3.7572_dp, 3.7143_dp, &
     606              :          3.6714_dp, 3.6143_dp, 3.6000_dp, 3.6286_dp, 3.7429_dp, 3.7857_dp, 3.7429_dp, 3.8286_dp, &
     607              :          3.7572_dp, 3.8143_dp, 3.8571_dp, 4.8857_dp, 4.5714_dp, 4.2857_dp, 4.1715_dp, 4.0714_dp, &
     608              :          3.9571_dp, 3.8286_dp, 3.8000_dp, 3.8000_dp, 3.7286_dp, 3.8286_dp, 3.9428_dp, 4.0143_dp, &
     609              :          3.9857_dp, 3.9857_dp, 3.9428_dp, 4.0714_dp, 4.0571_dp, 5.1714_dp, 4.7000_dp, 4.5000_dp, &
     610              :          4.2857_dp, 4.4429_dp, 4.4286_dp, 4.4143_dp, 4.4000_dp, 4.3429_dp, 4.3571_dp, 4.3429_dp, &
     611              :          4.3286_dp, 4.3143_dp, 4.3143_dp, 4.3000_dp, 4.3714_dp, 4.2714_dp, 4.1429_dp, 4.0571_dp, &
     612              :          3.9428_dp, 3.8714_dp, 3.8428_dp, 3.7714_dp, 3.7857_dp, 3.8000_dp, 4.0714_dp, 4.0429_dp, &
     613              :          4.0429_dp, 4.1286_dp, 4.0571_dp, 4.1572_dp, 4.2143_dp, 5.0571_dp, 4.7714_dp, 4.5714_dp, &
     614              :          4.4429_dp, 4.3571_dp, 4.3714_dp, 2.6572_dp, 2.8571_dp, 3.9143_dp, 3.5428_dp, 3.3000_dp, &
     615              :          3.2714_dp, 3.2143_dp, 3.1000_dp, 3.1143_dp, 3.1571_dp, 4.2000_dp, 3.9857_dp, 3.8143_dp, &
     616              :          3.6857_dp, 3.7714_dp, 3.6571_dp, 3.6143_dp, 3.5714_dp, 4.7143_dp, 4.4000_dp, 4.1000_dp, &
     617              :          3.9428_dp, 3.9286_dp, 3.7714_dp, 3.7286_dp, 3.6857_dp, 3.6286_dp, 3.6143_dp, 3.6429_dp, &
     618              :          3.7572_dp, 3.8000_dp, 3.7572_dp, 3.8428_dp, 3.7714_dp, 3.8286_dp, 3.8714_dp, 4.9000_dp, &
     619              :          4.5857_dp, 4.3000_dp, 4.1857_dp, 4.0857_dp, 3.9714_dp, 3.8428_dp, 3.8143_dp, 3.8143_dp, &
     620              :          3.7429_dp, 3.8428_dp, 3.9571_dp, 4.0286_dp, 4.0000_dp, 4.0000_dp, 3.9571_dp, 4.0857_dp, &
     621              :          4.0714_dp, 5.1857_dp, 4.7143_dp, 4.5143_dp, 4.3000_dp, 4.4572_dp, 4.4429_dp, 4.4286_dp, &
     622              :          4.4143_dp, 4.3571_dp, 4.3714_dp, 4.3571_dp, 4.3429_dp, 4.3286_dp, 4.3286_dp, 4.3143_dp, &
     623              :          4.3857_dp, 4.2857_dp, 4.1572_dp, 4.0714_dp, 3.9571_dp, 3.8857_dp, 3.8571_dp, 3.7857_dp, &
     624              :          3.8000_dp, 3.8143_dp, 4.0857_dp, 4.0571_dp, 4.0571_dp, 4.1429_dp, 4.0714_dp, 4.1715_dp, &
     625              :          4.2285_dp, 5.0714_dp, 4.7857_dp, 4.5857_dp, 4.4572_dp, 4.3714_dp, 4.3857_dp, 4.4000_dp, &
     626              :          2.6714_dp, 2.8714_dp, 3.9286_dp, 3.5571_dp, 3.3143_dp, 3.2857_dp, 3.2286_dp, 3.1143_dp, &
     627              :          3.1285_dp, 3.1714_dp, 4.2143_dp, 4.0000_dp, 3.8286_dp, 3.7000_dp, 3.7857_dp, 3.6714_dp, &
     628              :          3.6286_dp, 3.5857_dp, 4.7286_dp, 4.4143_dp, 4.1143_dp, 3.9571_dp, 3.9428_dp, 3.7857_dp, &
     629              :          3.7429_dp, 3.7000_dp, 3.6429_dp, 3.6286_dp, 3.6571_dp, 3.7714_dp, 3.8143_dp, 3.7714_dp, &
     630              :          3.8571_dp, 3.7857_dp, 3.8428_dp, 3.8857_dp, 4.9143_dp, 4.6000_dp, 4.3143_dp]
     631              :       REAL(KIND=dp), DIMENSION(946), PARAMETER :: r0ab_4411_5356 = [4.2000_dp, 4.1000_dp, 3.9857_dp&
     632              :          , 3.8571_dp, 3.8286_dp, 3.8286_dp, 3.7572_dp, 3.8571_dp, 3.9714_dp, 4.0429_dp, 4.0143_dp, &
     633              :          4.0143_dp, 3.9714_dp, 4.1000_dp, 4.0857_dp, 5.2000_dp, 4.7286_dp, 4.5286_dp, 4.3143_dp, &
     634              :          4.4714_dp, 4.4572_dp, 4.4429_dp, 4.4286_dp, 4.3714_dp, 4.3857_dp, 4.3714_dp, 4.3571_dp, &
     635              :          4.3429_dp, 4.3429_dp, 4.3286_dp, 4.4000_dp, 4.3000_dp, 4.1715_dp, 4.0857_dp, 3.9714_dp, &
     636              :          3.9000_dp, 3.8714_dp, 3.8000_dp, 3.8143_dp, 3.8286_dp, 4.1000_dp, 4.0714_dp, 4.0714_dp, &
     637              :          4.1572_dp, 4.0857_dp, 4.1857_dp, 4.2428_dp, 5.0857_dp, 4.8000_dp, 4.6000_dp, 4.4714_dp, &
     638              :          4.3857_dp, 4.4000_dp, 4.4143_dp, 4.4286_dp, 2.5857_dp, 2.7857_dp, 3.8428_dp, 3.4714_dp, &
     639              :          3.2286_dp, 3.2000_dp, 3.1428_dp, 3.0286_dp, 3.0429_dp, 3.0857_dp, 4.1286_dp, 3.9143_dp, &
     640              :          3.7429_dp, 3.6143_dp, 3.7000_dp, 3.5857_dp, 3.5428_dp, 3.5000_dp, 4.6428_dp, 4.3286_dp, &
     641              :          4.0286_dp, 3.8714_dp, 3.8571_dp, 3.7000_dp, 3.6571_dp, 3.6143_dp, 3.5571_dp, 3.5428_dp, &
     642              :          3.5714_dp, 3.6857_dp, 3.7286_dp, 3.6857_dp, 3.7714_dp, 3.7000_dp, 3.7572_dp, 3.8000_dp, &
     643              :          4.8286_dp, 4.5143_dp, 4.2285_dp, 4.1143_dp, 4.0143_dp, 3.9000_dp, 3.7714_dp, 3.7429_dp, &
     644              :          3.7429_dp, 3.6714_dp, 3.7714_dp, 3.8857_dp, 3.9571_dp, 3.9286_dp, 3.9286_dp, 3.8857_dp, &
     645              :          4.0143_dp, 4.0000_dp, 5.1143_dp, 4.6428_dp, 4.4429_dp, 4.2285_dp, 4.3857_dp, 4.3714_dp, &
     646              :          4.3571_dp, 4.3429_dp, 4.2857_dp, 4.3000_dp, 4.2857_dp, 4.2714_dp, 4.2571_dp, 4.2571_dp, &
     647              :          4.2428_dp, 4.3143_dp, 4.2143_dp, 4.0857_dp, 4.0000_dp, 3.8857_dp, 3.8143_dp, 3.7857_dp, &
     648              :          3.7143_dp, 3.7286_dp, 3.7429_dp, 4.0143_dp, 3.9857_dp, 3.9857_dp, 4.0714_dp, 4.0000_dp, &
     649              :          4.1000_dp, 4.1572_dp, 5.0000_dp, 4.7143_dp, 4.5143_dp, 4.3857_dp, 4.3000_dp, 4.3143_dp, &
     650              :          4.3286_dp, 4.3429_dp, 4.2571_dp, 2.5857_dp, 2.7857_dp, 3.8428_dp, 3.4714_dp, 3.2286_dp, &
     651              :          3.2000_dp, 3.1428_dp, 3.0286_dp, 3.0429_dp, 3.0857_dp, 4.1286_dp, 3.9143_dp, 3.7429_dp, &
     652              :          3.6143_dp, 3.7000_dp, 3.5857_dp, 3.5428_dp, 3.5000_dp, 4.6428_dp, 4.3286_dp, 4.0286_dp, &
     653              :          3.8714_dp, 3.8571_dp, 3.7000_dp, 3.6571_dp, 3.6143_dp, 3.5571_dp, 3.5428_dp, 3.5714_dp, &
     654              :          3.6857_dp, 3.7286_dp, 3.6857_dp, 3.7714_dp, 3.7000_dp, 3.7572_dp, 3.8000_dp, 4.8286_dp, &
     655              :          4.5143_dp, 4.2285_dp, 4.1143_dp, 4.0143_dp, 3.9000_dp, 3.7714_dp, 3.7429_dp, 3.7429_dp, &
     656              :          3.6714_dp, 3.7714_dp, 3.8857_dp, 3.9571_dp, 3.9286_dp, 3.9286_dp, 3.8857_dp, 4.0143_dp, &
     657              :          4.0000_dp, 5.1143_dp, 4.6428_dp, 4.4429_dp, 4.2285_dp, 4.3857_dp, 4.3714_dp, 4.3571_dp, &
     658              :          4.3429_dp, 4.2857_dp, 4.3000_dp, 4.2857_dp, 4.2714_dp, 4.2571_dp, 4.2571_dp, 4.2428_dp, &
     659              :          4.3143_dp, 4.2143_dp, 4.0857_dp, 4.0000_dp, 3.8857_dp, 3.8143_dp, 3.7857_dp, 3.7143_dp, &
     660              :          3.7286_dp, 3.7429_dp, 4.0143_dp, 3.9857_dp, 3.9857_dp, 4.0714_dp, 4.0000_dp, 4.1000_dp, &
     661              :          4.1572_dp, 5.0000_dp, 4.7143_dp, 4.5143_dp, 4.3857_dp, 4.3000_dp, 4.3143_dp, 4.3286_dp, &
     662              :          4.3429_dp, 4.2571_dp, 4.2571_dp, 2.6143_dp, 2.8143_dp, 3.8714_dp, 3.5000_dp, 3.2571_dp, &
     663              :          3.2286_dp, 3.1714_dp, 3.0572_dp, 3.0715_dp, 3.1143_dp, 4.1572_dp, 3.9428_dp, 3.7714_dp, &
     664              :          3.6429_dp, 3.7286_dp, 3.6143_dp, 3.5714_dp, 3.5286_dp, 4.6714_dp, 4.3571_dp, 4.0571_dp, &
     665              :          3.9000_dp, 3.8857_dp, 3.7286_dp, 3.6857_dp, 3.6429_dp, 3.5857_dp, 3.5714_dp, 3.6000_dp, &
     666              :          3.7143_dp, 3.7572_dp, 3.7143_dp, 3.8000_dp, 3.7286_dp, 3.7857_dp, 3.8286_dp, 4.8572_dp, &
     667              :          4.5429_dp, 4.2571_dp, 4.1429_dp, 4.0429_dp, 3.9286_dp, 3.8000_dp, 3.7714_dp, 3.7714_dp, &
     668              :          3.7000_dp, 3.8000_dp, 3.9143_dp, 3.9857_dp, 3.9571_dp, 3.9571_dp, 3.9143_dp, 4.0429_dp, &
     669              :          4.0286_dp, 5.1429_dp, 4.6714_dp, 4.4714_dp, 4.2571_dp, 4.4143_dp, 4.4000_dp, 4.3857_dp, &
     670              :          4.3714_dp, 4.3143_dp, 4.3286_dp, 4.3143_dp, 4.3000_dp, 4.2857_dp, 4.2857_dp, 4.2714_dp, &
     671              :          4.3429_dp, 4.2428_dp, 4.1143_dp, 4.0286_dp, 3.9143_dp, 3.8428_dp, 3.8143_dp, 3.7429_dp, &
     672              :          3.7572_dp, 3.7714_dp, 4.0429_dp, 4.0143_dp, 4.0143_dp, 4.1000_dp, 4.0286_dp, 4.1286_dp, &
     673              :          4.1857_dp, 5.0286_dp, 4.7429_dp, 4.5429_dp, 4.4143_dp, 4.3286_dp, 4.3429_dp, 4.3571_dp, &
     674              :          4.3714_dp, 4.2857_dp, 4.2857_dp, 4.3143_dp, 2.6143_dp, 2.8143_dp, 3.8714_dp, 3.5000_dp, &
     675              :          3.2571_dp, 3.2286_dp, 3.1714_dp, 3.0572_dp, 3.0715_dp, 3.1143_dp, 4.1572_dp, 3.9428_dp, &
     676              :          3.7714_dp, 3.6429_dp, 3.7286_dp, 3.6143_dp, 3.5714_dp, 3.5286_dp, 4.6714_dp, 4.3571_dp, &
     677              :          4.0571_dp, 3.9000_dp, 3.8857_dp, 3.7286_dp, 3.6857_dp, 3.6429_dp, 3.5857_dp, 3.5714_dp, &
     678              :          3.6000_dp, 3.7143_dp, 3.7572_dp, 3.7143_dp, 3.8000_dp, 3.7286_dp, 3.7857_dp, 3.8286_dp, &
     679              :          4.8572_dp, 4.5429_dp, 4.2571_dp, 4.1429_dp, 4.0429_dp, 3.9286_dp, 3.8000_dp, 3.7714_dp, &
     680              :          3.7714_dp, 3.7000_dp, 3.8000_dp, 3.9143_dp, 3.9857_dp, 3.9571_dp, 3.9571_dp, 3.9143_dp, &
     681              :          4.0429_dp, 4.0286_dp, 5.1429_dp, 4.6714_dp, 4.4714_dp, 4.2571_dp, 4.4143_dp, 4.4000_dp, &
     682              :          4.3857_dp, 4.3714_dp, 4.3143_dp, 4.3286_dp, 4.3143_dp, 4.3000_dp, 4.2857_dp, 4.2857_dp, &
     683              :          4.2714_dp, 4.3429_dp, 4.2428_dp, 4.1143_dp, 4.0286_dp, 3.9143_dp, 3.8428_dp, 3.8143_dp, &
     684              :          3.7429_dp, 3.7572_dp, 3.7714_dp, 4.0429_dp, 4.0143_dp, 4.0143_dp, 4.1000_dp, 4.0286_dp, &
     685              :          4.1286_dp, 4.1857_dp, 5.0286_dp, 4.7429_dp, 4.5429_dp, 4.4143_dp, 4.3286_dp, 4.3429_dp, &
     686              :          4.3571_dp, 4.3714_dp, 4.2857_dp, 4.2857_dp, 4.3143_dp, 4.3143_dp, 2.5714_dp, 2.7714_dp, &
     687              :          3.8286_dp, 3.4572_dp, 3.2143_dp, 3.1857_dp, 3.1285_dp, 3.0143_dp, 3.0286_dp, 3.0715_dp, &
     688              :          4.1143_dp, 3.9000_dp, 3.7286_dp, 3.6000_dp, 3.6857_dp, 3.5714_dp, 3.5286_dp, 3.4857_dp, &
     689              :          4.6286_dp, 4.3143_dp, 4.0143_dp, 3.8571_dp, 3.8428_dp, 3.6857_dp, 3.6429_dp, 3.6000_dp, &
     690              :          3.5428_dp, 3.5286_dp, 3.5571_dp, 3.6714_dp, 3.7143_dp, 3.6714_dp, 3.7572_dp, 3.6857_dp, &
     691              :          3.7429_dp, 3.7857_dp, 4.8143_dp, 4.5000_dp, 4.2143_dp, 4.1000_dp, 4.0000_dp, 3.8857_dp, &
     692              :          3.7572_dp, 3.7286_dp, 3.7286_dp, 3.6571_dp, 3.7572_dp, 3.8714_dp, 3.9428_dp, 3.9143_dp, &
     693              :          3.9143_dp, 3.8714_dp, 4.0000_dp, 3.9857_dp, 5.1000_dp, 4.6286_dp, 4.4286_dp, 4.2143_dp, &
     694              :          4.3714_dp, 4.3571_dp, 4.3429_dp, 4.3286_dp, 4.2714_dp, 4.2857_dp, 4.2714_dp, 4.2571_dp, &
     695              :          4.2428_dp, 4.2428_dp, 4.2285_dp, 4.3000_dp, 4.2000_dp, 4.0714_dp, 3.9857_dp, 3.8714_dp, &
     696              :          3.8000_dp, 3.7714_dp, 3.7000_dp, 3.7143_dp, 3.7286_dp, 4.0000_dp, 3.9714_dp, 3.9714_dp, &
     697              :          4.0571_dp, 3.9857_dp, 4.0857_dp, 4.1429_dp, 4.9857_dp, 4.7000_dp, 4.5000_dp, 4.3714_dp, &
     698              :          4.2857_dp, 4.3000_dp, 4.3143_dp, 4.3286_dp, 4.2428_dp, 4.2428_dp, 4.2714_dp, 4.2714_dp, &
     699              :          4.2285_dp, 2.6000_dp, 2.8000_dp, 3.8571_dp, 3.4857_dp, 3.2429_dp, 3.2143_dp, 3.1571_dp, &
     700              :          3.0429_dp, 3.0572_dp, 3.1000_dp, 4.1429_dp, 3.9286_dp, 3.7572_dp, 3.6286_dp, 3.7143_dp, &
     701              :          3.6000_dp, 3.5571_dp, 3.5143_dp, 4.6571_dp, 4.3429_dp, 4.0429_dp, 3.8857_dp, 3.8714_dp, &
     702              :          3.7143_dp, 3.6714_dp, 3.6286_dp, 3.5714_dp, 3.5571_dp, 3.5857_dp, 3.7000_dp, 3.7429_dp, &
     703              :          3.7000_dp, 3.7857_dp, 3.7143_dp, 3.7714_dp, 3.8143_dp, 4.8429_dp, 4.5286_dp, 4.2428_dp, &
     704              :          4.1286_dp, 4.0286_dp, 3.9143_dp, 3.7857_dp, 3.7572_dp, 3.7572_dp, 3.6857_dp, 3.7857_dp, &
     705              :          3.9000_dp, 3.9714_dp, 3.9428_dp, 3.9428_dp, 3.9000_dp, 4.0286_dp, 4.0143_dp, 5.1286_dp, &
     706              :          4.6571_dp, 4.4572_dp, 4.2428_dp, 4.4000_dp, 4.3857_dp, 4.3714_dp, 4.3571_dp, 4.3000_dp, &
     707              :          4.3143_dp, 4.3000_dp, 4.2857_dp, 4.2714_dp, 4.2714_dp, 4.2571_dp, 4.3286_dp, 4.2285_dp, &
     708              :          4.1000_dp, 4.0143_dp, 3.9000_dp, 3.8286_dp, 3.8000_dp, 3.7286_dp, 3.7429_dp, 3.7572_dp, &
     709              :          4.0286_dp, 4.0000_dp, 4.0000_dp, 4.0857_dp, 4.0143_dp, 4.1143_dp, 4.1715_dp, 5.0143_dp, &
     710              :          4.7286_dp, 4.5286_dp, 4.4000_dp, 4.3143_dp, 4.3286_dp, 4.3429_dp, 4.3571_dp, 4.2714_dp, &
     711              :          4.2714_dp, 4.3000_dp, 4.3000_dp, 4.2571_dp, 4.2857_dp, 2.6857_dp, 2.8857_dp, 3.9428_dp, &
     712              :          3.5714_dp, 3.3286_dp, 3.3000_dp, 3.2429_dp, 3.1285_dp, 3.1428_dp, 3.1857_dp, 4.2285_dp, &
     713              :          4.0143_dp, 3.8428_dp, 3.7143_dp, 3.8000_dp, 3.6857_dp, 3.6429_dp, 3.6000_dp, 4.7429_dp, &
     714              :          4.4286_dp, 4.1286_dp, 3.9714_dp, 3.9571_dp, 3.8000_dp, 3.7572_dp, 3.7143_dp, 3.6571_dp, &
     715              :          3.6429_dp, 3.6714_dp, 3.7857_dp, 3.8286_dp, 3.7857_dp, 3.8714_dp, 3.8000_dp, 3.8571_dp, &
     716              :          3.9000_dp, 4.9285_dp, 4.6143_dp, 4.3286_dp, 4.2143_dp, 4.1143_dp, 4.0000_dp, 3.8714_dp, &
     717              :          3.8428_dp, 3.8428_dp, 3.7714_dp, 3.8714_dp, 3.9857_dp, 4.0571_dp, 4.0286_dp, 4.0286_dp, &
     718              :          3.9857_dp, 4.1143_dp, 4.1000_dp, 5.2143_dp, 4.7429_dp, 4.5429_dp, 4.3286_dp, 4.4857_dp, &
     719              :          4.4714_dp, 4.4572_dp, 4.4429_dp, 4.3857_dp, 4.4000_dp, 4.3857_dp, 4.3714_dp, 4.3571_dp, &
     720              :          4.3571_dp, 4.3429_dp, 4.4143_dp, 4.3143_dp, 4.1857_dp, 4.1000_dp, 3.9857_dp, 3.9143_dp, &
     721              :          3.8857_dp, 3.8143_dp, 3.8286_dp, 3.8428_dp, 4.1143_dp, 4.0857_dp, 4.0857_dp, 4.1715_dp, &
     722              :          4.1000_dp, 4.2000_dp, 4.2571_dp, 5.1000_dp, 4.8143_dp, 4.6143_dp, 4.4857_dp, 4.4000_dp, &
     723              :          4.4143_dp, 4.4286_dp, 4.4429_dp, 4.3571_dp, 4.3571_dp, 4.3857_dp, 4.3857_dp, 4.3429_dp, &
     724              :          4.3714_dp, 4.4572_dp, 2.7143_dp, 2.9143_dp, 3.9714_dp, 3.6000_dp, 3.3572_dp, 3.3286_dp, &
     725              :          3.2714_dp, 3.1571_dp, 3.1714_dp, 3.2143_dp, 4.2571_dp, 4.0429_dp, 3.8714_dp, 3.7429_dp, &
     726              :          3.8286_dp, 3.7143_dp, 3.6714_dp, 3.6286_dp, 4.7714_dp, 4.4572_dp, 4.1572_dp, 4.0000_dp, &
     727              :          3.9857_dp, 3.8286_dp, 3.7857_dp, 3.7429_dp, 3.6857_dp, 3.6714_dp, 3.7000_dp, 3.8143_dp, &
     728              :          3.8571_dp, 3.8143_dp, 3.9000_dp, 3.8286_dp, 3.8857_dp, 3.9286_dp, 4.9571_dp, 4.6428_dp, &
     729              :          4.3571_dp, 4.2428_dp, 4.1429_dp, 4.0286_dp, 3.9000_dp, 3.8714_dp, 3.8714_dp, 3.8000_dp, &
     730              :          3.9000_dp, 4.0143_dp, 4.0857_dp, 4.0571_dp, 4.0571_dp, 4.0143_dp, 4.1429_dp, 4.1286_dp, &
     731              :          5.2429_dp, 4.7714_dp, 4.5714_dp, 4.3571_dp, 4.5143_dp, 4.5000_dp, 4.4857_dp, 4.4714_dp, &
     732              :          4.4143_dp, 4.4286_dp, 4.4143_dp, 4.4000_dp, 4.3857_dp, 4.3857_dp, 4.3714_dp, 4.4429_dp, &
     733              :          4.3429_dp, 4.2143_dp, 4.1286_dp, 4.0143_dp, 3.9428_dp, 3.9143_dp, 3.8428_dp, 3.8571_dp, &
     734              :          3.8714_dp, 4.1429_dp, 4.1143_dp, 4.1143_dp, 4.2000_dp, 4.1286_dp, 4.2285_dp, 4.2857_dp, &
     735              :          5.1286_dp, 4.8429_dp, 4.6428_dp, 4.5143_dp, 4.4286_dp, 4.4429_dp, 4.4572_dp, 4.4714_dp, &
     736              :          4.3857_dp, 4.3857_dp, 4.4143_dp, 4.4143_dp, 4.3714_dp, 4.4000_dp, 4.4857_dp, 4.5143_dp, &
     737              :          2.5286_dp, 2.7286_dp, 3.7857_dp, 3.4143_dp, 3.1714_dp, 3.1428_dp, 3.0857_dp, 2.9714_dp, &
     738              :          2.9857_dp, 3.0286_dp, 4.0714_dp, 3.8571_dp, 3.6857_dp, 3.5571_dp, 3.6429_dp, 3.5286_dp, &
     739              :          3.4857_dp, 3.4429_dp, 4.5857_dp, 4.2714_dp, 3.9714_dp, 3.8143_dp, 3.8000_dp, 3.6429_dp, &
     740              :          3.6000_dp, 3.5571_dp, 3.5000_dp, 3.4857_dp, 3.5143_dp, 3.6286_dp, 3.6714_dp, 3.6286_dp, &
     741              :          3.7143_dp, 3.6429_dp, 3.7000_dp, 3.7429_dp, 4.7714_dp, 4.4572_dp, 4.1715_dp, 4.0571_dp, &
     742              :          3.9571_dp, 3.8428_dp, 3.7143_dp, 3.6857_dp, 3.6857_dp, 3.6143_dp, 3.7143_dp, 3.8286_dp, &
     743              :          3.9000_dp, 3.8714_dp, 3.8714_dp, 3.8286_dp, 3.9571_dp, 3.9428_dp, 5.0571_dp, 4.5857_dp, &
     744              :          4.3857_dp, 4.1715_dp, 4.3286_dp, 4.3143_dp, 4.3000_dp, 4.2857_dp, 4.2285_dp, 4.2428_dp, &
     745              :          4.2285_dp, 4.2143_dp, 4.2000_dp, 4.2000_dp, 4.1857_dp, 4.2571_dp, 4.1572_dp, 4.0286_dp, &
     746              :          3.9428_dp, 3.8286_dp, 3.7572_dp, 3.7286_dp, 3.6571_dp, 3.6714_dp, 3.6857_dp, 3.9571_dp, &
     747              :          3.9286_dp, 3.9286_dp, 4.0143_dp, 3.9428_dp, 4.0429_dp, 4.1000_dp, 4.9428_dp, 4.6571_dp, &
     748              :          4.4572_dp, 4.3286_dp, 4.2428_dp, 4.2571_dp, 4.2714_dp, 4.2857_dp, 4.2000_dp, 4.2000_dp, &
     749              :          4.2285_dp, 4.2285_dp, 4.1857_dp, 4.2143_dp, 4.3000_dp, 4.3286_dp, 4.1429_dp]
     750              : 
     751              :       INTEGER                                            :: i, j, k
     752              :       REAL(KIND=dp), DIMENSION(5356)                     :: r0ab
     753              : 
     754              :       ! Use concatenation as a workaround for the precommit behavior and compiler
     755              :       ! warning: Limit of 255 continuations exceeded in statement
     756              :       r0ab(:) = [r0ab_0001_0490(:), r0ab_0491_0980(:), r0ab_0981_1470(:), r0ab_1471_1960(:), &
     757              :                  r0ab_1961_2450(:), r0ab_2451_2940(:), r0ab_2941_3430(:), r0ab_3431_3920(:), &
     758          522 :                  r0ab_3921_4410(:), r0ab_4411_5356(:)]
     759          522 :       k = 0
     760        54288 :       DO i = 1, SIZE(rout, 1)
     761      2850120 :          DO j = 1, i
     762      2795832 :             k = k + 1
     763      2795832 :             rout(i, j) = r0ab(k)*bohr
     764      2849598 :             rout(j, i) = r0ab(k)*bohr
     765              :          END DO
     766              :       END DO
     767              : 
     768          522 :       CALL setrcov(rcov)
     769              : 
     770              :       ! PBE0/def2-QZVP atomic values
     771              :       r2r4(1:70) = [ &
     772              :                    8.0589_dp, 3.4698_dp, 29.0974_dp, 14.8517_dp, 11.8799_dp, 7.8715_dp, 5.5588_dp &
     773              :                    , 4.7566_dp, 3.8025_dp, 3.1036_dp, 26.1552_dp, 17.2304_dp, 17.7210_dp, 12.7442_dp &
     774              :                    , 9.5361_dp, 8.1652_dp, 6.7463_dp, 5.6004_dp, 29.2012_dp, 22.3934_dp, 19.0598_dp &
     775              :                    , 16.8590_dp, 15.4023_dp, 12.5589_dp, 13.4788_dp, 12.2309_dp, 11.2809_dp, 10.5569_dp &
     776              :                    , 10.1428_dp, 9.4907_dp, 13.4606_dp, 10.8544_dp, 8.9386_dp, 8.1350_dp, 7.1251_dp &
     777              :                    , 6.1971_dp, 30.0162_dp, 24.4103_dp, 20.3537_dp, 17.4780_dp, 13.5528_dp, 11.8451_dp &
     778              :                    , 11.0355_dp, 10.1997_dp, 9.5414_dp, 9.0061_dp, 8.6417_dp, 8.9975_dp, 14.0834_dp &
     779              :                    , 11.8333_dp, 10.0179_dp, 9.3844_dp, 8.4110_dp, 7.5152_dp, 32.7622_dp, 27.5708_dp &
     780              :                    , 23.1671_dp, 21.6003_dp, 20.9615_dp, 20.4562_dp, 20.1010_dp, 19.7475_dp, 19.4828_dp &
     781              :                    , 15.6013_dp, 19.2362_dp, 17.4717_dp, 17.8321_dp, 17.4237_dp, 17.1954_dp, 17.1631_dp &
     782        37062 :                    ]
     783              :       r2r4(71:103) = [ &
     784              :                      14.5716_dp, 15.8758_dp, 13.8989_dp, 12.4834_dp, 11.4421_dp, 10.2671_dp, 8.3549_dp &
     785              :                      , 7.8496_dp, 7.3278_dp, 7.4820_dp, 13.5124_dp, 11.6554_dp, 10.0959_dp, 9.7340_dp &
     786              :                      , 8.8584_dp, 8.0125_dp, 29.8135_dp, 26.3157_dp, 19.1885_dp, 15.8542_dp, 16.1305_dp &
     787              :                      , 15.6161_dp, 15.1226_dp, 16.1576_dp, 14.6510_dp, 14.7178_dp, 13.9108_dp, 13.5623_dp &
     788              :                      , 13.2326_dp, 12.9189_dp, 12.6133_dp, 12.3142_dp, 14.8326_dp &
     789        17748 :                      ]
     790              : 
     791          522 :    END SUBROUTINE setr0ab
     792              : 
     793              : ! **************************************************************************************************
     794              : !> \brief ...
     795              : !> \param rcov ...
     796              : ! **************************************************************************************************
     797         1730 :    SUBROUTINE setrcov(rcov)
     798              :       ! set cut-off radii
     799              :       REAL(KIND=dp), DIMENSION(:)                        :: rcov
     800              : 
     801              :       ! covalent radii (taken from Pyykko and Atsumi, Chem. Eur. J. 15, 2009, 188-197)
     802              :       ! values for metals decreased by 10 %
     803              :       ! TODO: specify kind dp and fix regtest results (a lot)
     804              :       rcov(1:70) = [ &
     805              :                    0.32, 0.46, 1.20, 0.94, 0.77, 0.75, 0.71 &
     806              :                    , 0.63, 0.64, 0.67, 1.40, 1.25, 1.13, 1.04 &
     807              :                    , 1.10, 1.02, 0.99, 0.96, 1.76, 1.54, 1.33 &
     808              :                    , 1.22, 1.21, 1.10, 1.07, 1.04, 1.00, 0.99 &
     809              :                    , 1.01, 1.09, 1.12, 1.09, 1.15, 1.10, 1.14 &
     810              :                    , 1.17, 1.89, 1.67, 1.47, 1.39, 1.32, 1.24 &
     811              :                    , 1.15, 1.13, 1.13, 1.08, 1.15, 1.23, 1.28 &
     812              :                    , 1.26, 1.26, 1.23, 1.32, 1.31, 2.09, 1.76 &
     813              :                    , 1.62, 1.47, 1.58, 1.57, 1.56, 1.55, 1.51 &
     814              :                    , 1.52, 1.51, 1.50, 1.49, 1.49, 1.48, 1.53 &
     815       122830 :                    ]
     816              :       rcov(71:103) = [ &
     817              :                      1.46, 1.37, 1.31, 1.23, 1.18, 1.16, 1.11 &
     818              :                      , 1.12, 1.13, 1.32, 1.30, 1.30, 1.36, 1.31 &
     819              :                      , 1.38, 1.42, 2.01, 1.81, 1.67, 1.58, 1.52 &
     820              :                      , 1.53, 1.54, 1.55, 1.49, 1.49, 1.51, 1.51 &
     821              :                      , 1.48, 1.50, 1.56, 1.58, 1.45 &
     822        58820 :                      ]
     823              : 
     824         1730 :    END SUBROUTINE setrcov
     825              : 
     826              : ! **************************************************************************************************
     827              : !> \brief ...
     828              : !> \param cnout ...
     829              : ! **************************************************************************************************
     830         1260 :    SUBROUTINE setcn(cnout)
     831              :       ! default coordination numbers
     832              :       REAL(KIND=dp), DIMENSION(:)                        :: cnout
     833              : 
     834              :       INTEGER                                            :: n
     835              :       REAL(KIND=dp), DIMENSION(104)                      :: cn
     836              : 
     837              :       cn(1:104) = [ &
     838              :             1.0_dp, 0.0_dp, 1.0_dp, 2.0_dp, 3.0_dp, 4.0_dp, 3.0_dp, 2.0_dp, 1.0_dp, 0.0_dp, 1.0_dp, 2.0_dp, 3.0_dp, 4.0_dp, 5.0_dp &
     839              :           , 2.0_dp, 1.0_dp, 0.0_dp, 1.0_dp, 2.0_dp, 3.0_dp, 4.0_dp, 5.0_dp, 3.0_dp, 2.0_dp, 3.0_dp, 2.0_dp, 2.0_dp, 2.0_dp, 2.0_dp &
     840              :           , 3.0_dp, 4.0_dp, 3.0_dp, 4.0_dp, 1.0_dp, 0.0_dp, 1.0_dp, 2.0_dp, 3.0_dp, 4.0_dp, 5.0_dp, 6.0_dp, 7.0_dp, 4.0_dp, 3.0_dp &
     841              :           , 2.0_dp, 1.0_dp, 2.0_dp, 3.0_dp, 2.0_dp, 3.0_dp, 4.0_dp, 1.0_dp, 0.0_dp, 1.0_dp, 2.0_dp, 3.0_dp, 3.0_dp, 3.0_dp, 3.0_dp &
     842              :           , 3.0_dp, 3.0_dp, 3.0_dp, 3.0_dp, 3.0_dp, 3.0_dp, 3.0_dp, 3.0_dp, 3.0_dp, 3.0_dp, 3.0_dp, 4.0_dp, 5.0_dp, 6.0_dp, 7.0_dp &
     843              :           , 4.0_dp, 4.0_dp, 4.0_dp, 3.0_dp, 2.0_dp, 1.0_dp, 2.0_dp, 3.0_dp, 4.0_dp, 1.0_dp, 0.0_dp, 1.0_dp, 2.0_dp, 3.0_dp, 4.0_dp &
     844              :                   , 5.0_dp, 6.0_dp, 5.0_dp, 4.0_dp, 3.0_dp, 3.0_dp, 3.0_dp, 3.0_dp, 3.0_dp, 3.0_dp, 3.0_dp, 2.0_dp, 3.0_dp, 3.0_dp &
     845         1260 :                   ]
     846              : 
     847       131040 :       cnout = 0._dp
     848         1260 :       n = MIN(SIZE(cn), SIZE(cnout))
     849       131040 :       cnout(1:n) = cn(1:n)
     850              : 
     851         1260 :    END SUBROUTINE setcn
     852              : 
     853              : ! **************************************************************************************************
     854              : !> \brief ...
     855              : !> \param enout ...
     856              : ! **************************************************************************************************
     857         1260 :    SUBROUTINE seten(enout)
     858              :       ! Element Pauling Electronegativity
     859              :       REAL(KIND=dp), DIMENSION(:)                        :: enout
     860              : 
     861              :       INTEGER                                            :: n
     862              :       REAL(KIND=dp), DIMENSION(104)                      :: en
     863              : 
     864              :       en(1:104) = [2.20_dp, 3.00_dp, & ! 2
     865              :                    0.98_dp, 1.57_dp, 2.04_dp, 2.55_dp, 3.04_dp, 3.44_dp, 3.98_dp, 4.50_dp, & ! 10
     866              :                    0.93_dp, 1.31_dp, 1.61_dp, 1.90_dp, 2.19_dp, 2.58_dp, 3.16_dp, 3.50_dp, & ! 18
     867              :                    0.82_dp, 1.00_dp, 1.36_dp, 1.54_dp, 1.63_dp, 1.66_dp, 1.55_dp, 1.83_dp, &
     868              :                    1.88_dp, 1.91_dp, 1.90_dp, 1.65_dp, 1.81_dp, 2.01_dp, 2.18_dp, 2.55_dp, 2.96_dp, 3.00_dp, & ! 36
     869              :                    0.82_dp, 0.95_dp, 1.22_dp, 1.33_dp, 1.60_dp, 2.16_dp, 1.90_dp, 2.20_dp, &
     870              :                    2.28_dp, 2.20_dp, 1.93_dp, 1.69_dp, 1.78_dp, 1.96_dp, 2.05_dp, 2.10_dp, 2.66_dp, 2.60_dp, & ! 54
     871              :                    0.79_dp, 0.89_dp, 1.10_dp, &
     872              :                    1.12_dp, 1.13_dp, 1.14_dp, 1.15_dp, 1.17_dp, 1.18_dp, 1.20_dp, 1.21_dp, &
     873              :                    1.22_dp, 1.23_dp, 1.24_dp, 1.25_dp, 1.26_dp, 1.27_dp, & ! Lanthanides
     874              :                    1.30_dp, 1.50_dp, 2.36_dp, 1.90_dp, 2.20_dp, 2.20_dp, 2.28_dp, 2.54_dp, &
     875              :                    2.00_dp, 2.04_dp, 2.33_dp, 2.02_dp, 2.00_dp, 2.20_dp, 2.20_dp, & ! 86
     876              :                    0.70_dp, 0.89_dp, 1.10_dp, &
     877              :                    1.30_dp, 1.50_dp, 1.38_dp, 1.36_dp, 1.28_dp, 1.30_dp, 1.30_dp, 1.30_dp, &
     878              :                    1.30_dp, 1.30_dp, 1.30_dp, 1.30_dp, 1.30_dp, 1.50_dp, & !  Actinides
     879         1260 :                    1.50_dp]
     880              : 
     881       131040 :       enout = 0._dp
     882         1260 :       n = MIN(SIZE(en), SIZE(enout))
     883       131040 :       enout(1:n) = en(1:n)
     884              : 
     885         1260 :    END SUBROUTINE seten
     886              : 
     887              : ! **************************************************************************************************
     888              : !> \brief ...
     889              : !> \param rab ...
     890              : !> \param rcovab ...
     891              : !> \param k1 ...
     892              : !> \param cnab ...
     893              : !> \param dcnab ...
     894              : ! **************************************************************************************************
     895       571328 :    SUBROUTINE cnparam_d3(rab, rcovab, k1, cnab, dcnab)
     896              : 
     897              :       REAL(KIND=dp), INTENT(IN)                          :: rab, rcovab, k1
     898              :       REAL(KIND=dp), INTENT(OUT)                         :: cnab, dcnab
     899              : 
     900              :       REAL(KIND=dp)                                      :: dfz, ee, ff, fz, rr
     901              : 
     902              :       ! covalent distance in Bohr
     903       571328 :       rr = rcovab/rab
     904              :       ! counting function exponential has a better long-range behavior
     905              :       ! than MHGs inverse damping
     906              :       ! factor k2 already included into rcov
     907       571328 :       ee = EXP(-k1*(rr - 1.0_dp))
     908              :       ! force the function to zero using a second step function
     909       571328 :       fz = 0.5_dp*(1.0_dp - TANH(rab - 2.0_dp*rcovab))
     910       571328 :       dfz = 0.5_dp*((TANH(rab - 2.0_dp*rcovab))**2 - 1.0_dp)
     911       571328 :       ff = 1.0_dp/(1.0_dp + ee)
     912       571328 :       cnab = ff*fz
     913       571328 :       dcnab = -fz*ff*ff*k1*rr/rab*ee + ff*dfz
     914              : 
     915       571328 :    END SUBROUTINE cnparam_d3
     916              : 
     917              : ! **************************************************************************************************
     918              : !> \brief ...
     919              : !> \param dcnum ...
     920              : !> \param para_env ...
     921              : ! **************************************************************************************************
     922         1622 :    SUBROUTINE dcnum_distribute(dcnum, para_env)
     923              : 
     924              :       TYPE(dcnum_type), DIMENSION(:)                     :: dcnum
     925              :       TYPE(mp_para_env_type), POINTER                    :: para_env
     926              : 
     927              :       INTEGER                                            :: i, ia, ipe, jn, n, natom, ntmax, ntot
     928         1622 :       INTEGER, ALLOCATABLE, DIMENSION(:)                 :: list, nloc
     929         1622 :       REAL(KIND=dp), ALLOCATABLE, DIMENSION(:)           :: dvals
     930         1622 :       REAL(KIND=dp), ALLOCATABLE, DIMENSION(:, :)        :: rik
     931              : 
     932              :       ! we only have to do something if this is a parallel run
     933         1622 :       IF (para_env%num_pe > 1) THEN
     934         1418 :          natom = SIZE(dcnum)
     935              :          !pack my dcnum data
     936         4254 :          ALLOCATE (nloc(natom))
     937        16484 :          DO ia = 1, natom
     938        16484 :             nloc(ia) = dcnum(ia)%neighbors
     939              :          END DO
     940        16484 :          ntot = SUM(nloc)
     941         1418 :          ntmax = ntot
     942         1418 :          CALL para_env%max(ntmax)
     943         9596 :          ALLOCATE (list(ntmax), dvals(ntmax), rik(3, ntmax))
     944         1418 :          list = 0
     945         1418 :          dvals = 0._dp
     946         1418 :          rik = 0._dp
     947         1418 :          i = 0
     948        16484 :          DO ia = 1, natom
     949       114156 :             DO jn = 1, nloc(ia)
     950        97672 :                i = i + 1
     951        97672 :                list(i) = dcnum(ia)%nlist(jn)
     952        97672 :                dvals(i) = dcnum(ia)%dvals(jn)
     953       405754 :                rik(1:3, i) = dcnum(ia)%rik(1:3, jn)
     954              :             END DO
     955              :          END DO
     956         2836 :          DO ipe = 1, para_env%num_pe - 1
     957              :             !send/receive packed data
     958         1418 :             CALL para_env%shift(nloc)
     959              :             !unpack received data
     960         1418 :             CALL para_env%shift(list)
     961         1418 :             CALL para_env%shift(dvals)
     962         1418 :             CALL para_env%shift(rik)
     963              :             !add data to local dcnum
     964         1418 :             i = 0
     965        17902 :             DO ia = 1, natom
     966        15066 :                n = dcnum(ia)%neighbors + nloc(ia)
     967        15066 :                IF (n > SIZE(dcnum(ia)%nlist)) THEN
     968         3703 :                   CALL reallocate(dcnum(ia)%nlist, 1, 2*n)
     969         3703 :                   CALL reallocate(dcnum(ia)%dvals, 1, 2*n)
     970         3703 :                   CALL reallocate(dcnum(ia)%rik, 1, 3, 1, 2*n)
     971              :                END IF
     972       112738 :                DO jn = 1, nloc(ia)
     973        97672 :                   i = i + 1
     974        97672 :                   n = dcnum(ia)%neighbors + jn
     975        97672 :                   dcnum(ia)%nlist(n) = list(i)
     976        97672 :                   dcnum(ia)%dvals(n) = dvals(i)
     977       405754 :                   dcnum(ia)%rik(1:3, n) = rik(1:3, i)
     978              :                END DO
     979        16484 :                dcnum(ia)%neighbors = dcnum(ia)%neighbors + nloc(ia)
     980              :             END DO
     981              :          END DO
     982         1418 :          DEALLOCATE (nloc)
     983         1418 :          DEALLOCATE (list, dvals, rik)
     984              :       END IF
     985              : 
     986         1622 :    END SUBROUTINE dcnum_distribute
     987              : 
     988              : ! **************************************************************************************************
     989              : !> \brief ...
     990              : !> \param dispersion_env ...
     991              : !> \return ...
     992              : ! **************************************************************************************************
     993          686 :    FUNCTION get_cn_radius(dispersion_env) RESULT(rcut)
     994              :       TYPE(qs_dispersion_type), POINTER                  :: dispersion_env
     995              :       REAL(KIND=dp)                                      :: rcut
     996              : 
     997              :       INTEGER                                            :: i
     998              :       REAL(KIND=dp)                                      :: cnab, cnfun, dcnab, den, rcov
     999              : 
    1000          686 :       cnfun = dispersion_env%cnfun
    1001          686 :       rcut = 0.0_dp
    1002        71344 :       rcov = 1.5_dp*MAXVAL(dispersion_env%rcov)
    1003        76146 :       DO i = 1, 250
    1004        76146 :          rcut = rcut + 0.1_dp
    1005        76146 :          IF (cnfun == 1) THEN
    1006            0 :             CALL cnparam_d3(rcut, rcov, dispersion_env%k1, cnab, dcnab)
    1007        76146 :          ELSE IF (cnfun == 2) THEN
    1008            0 :             CALL modcn_d3(rcut, rcov, cnab, dcnab)
    1009        76146 :          ELSE IF (cnfun == 3) THEN
    1010        76146 :             den = 0.0_dp
    1011        76146 :             CALL cn_d4per(rcut, rcov, den, cnab, dcnab)
    1012              :          ELSE
    1013            0 :             CPABORT("cnfun in get_cn_radius")
    1014              :          END IF
    1015        76146 :          IF (cnab < 10._dp*dispersion_env%eps_cn) EXIT
    1016              :       END DO
    1017              : 
    1018          686 :    END FUNCTION get_cn_radius
    1019              : 
    1020              : ! **************************************************************************************************
    1021              : !> \brief ...
    1022              : !> \param qs_env ...
    1023              : !> \param dispersion_env ...
    1024              : !> \param cnumbers ...
    1025              : !> \param dcnum ...
    1026              : !> \param exclude ...
    1027              : !> \param atomnumber ...
    1028              : !> \param derivatives ...
    1029              : !> \param cnfun ...
    1030              : ! **************************************************************************************************
    1031        13232 :    SUBROUTINE d3_cnumber(qs_env, dispersion_env, cnumbers, dcnum, exclude, atomnumber, &
    1032              :                          derivatives, cnfun)
    1033              : 
    1034              :       TYPE(qs_environment_type), POINTER                 :: qs_env
    1035              :       TYPE(qs_dispersion_type), POINTER                  :: dispersion_env
    1036              :       REAL(KIND=dp), DIMENSION(:), INTENT(INOUT)         :: cnumbers
    1037              :       TYPE(dcnum_type), DIMENSION(:), INTENT(INOUT)      :: dcnum
    1038              :       LOGICAL, DIMENSION(:), INTENT(IN)                  :: exclude
    1039              :       INTEGER, DIMENSION(:), INTENT(IN)                  :: atomnumber
    1040              :       LOGICAL, INTENT(IN)                                :: derivatives
    1041              :       INTEGER, INTENT(IN)                                :: cnfun
    1042              : 
    1043              :       CHARACTER(LEN=*), PARAMETER                        :: routineN = 'd3_cnumber'
    1044              : 
    1045              :       INTEGER                                            :: handle, iatom, ikind, jatom, jkind, &
    1046              :                                                             mepos, natom, ni, nj, num_pe, za, zb
    1047              :       LOGICAL                                            :: exclude_pair
    1048              :       REAL(KIND=dp)                                      :: cnab, dcnab, den, eps_cn, rcc, rcovab
    1049              :       REAL(KIND=dp), DIMENSION(3)                        :: rij
    1050              :       TYPE(neighbor_list_iterator_p_type), &
    1051        13232 :          DIMENSION(:), POINTER                           :: nl_iterator
    1052              :       TYPE(neighbor_list_set_p_type), DIMENSION(:), &
    1053        13232 :          POINTER                                         :: sab_cn
    1054        13232 :       TYPE(particle_type), DIMENSION(:), POINTER         :: particle_set
    1055              : 
    1056        13232 : !$    INTEGER(kind=omp_lock_kind), ALLOCATABLE, DIMENSION(:) :: locks
    1057              : !$    INTEGER                                            :: lock, number_of_locks
    1058              : 
    1059        13232 :       CALL timeset(routineN, handle)
    1060              : 
    1061              :       ! Calculate coordination numbers
    1062        13232 :       NULLIFY (particle_set)
    1063        13232 :       CALL get_qs_env(qs_env=qs_env, particle_set=particle_set)
    1064        13232 :       natom = SIZE(particle_set)
    1065              : 
    1066        13232 :       eps_cn = dispersion_env%eps_cn
    1067        13232 :       sab_cn => dispersion_env%sab_cn
    1068              :       num_pe = 1
    1069        13232 : !$    num_pe = omp_get_max_threads()
    1070        13232 :       CALL neighbor_list_iterator_create(nl_iterator, sab_cn, nthread=num_pe)
    1071        13232 : !$    number_of_locks = natom
    1072              : 
    1073              : !$OMP PARALLEL DEFAULT( NONE )                                        &
    1074              : !$OMP           SHARED( locks, number_of_locks, nl_iterator           &
    1075              : !$OMP                 , exclude, atomnumber, eps_cn                   &
    1076              : !$OMP                 , dispersion_env, derivatives                   &
    1077              : !$OMP                 , dcnum, cnumbers, cnfun                        &
    1078              : !$OMP                 )                                               &
    1079              : !$OMP          PRIVATE( mepos                                         &
    1080              : !$OMP                 , ikind, jkind, iatom, jatom, rij, rcc          &
    1081              : !$OMP                 , za, zb, rcovab, cnab, dcnab, den              &
    1082              : !$OMP                 , ni, nj, exclude_pair                          &
    1083        13232 : !$OMP                 )
    1084              : 
    1085              : !$OMP SINGLE
    1086              : !$    ALLOCATE (locks(number_of_locks))
    1087              : !$OMP END SINGLE
    1088              : 
    1089              : !$OMP DO
    1090              : !$    DO lock = 1, number_of_locks
    1091              : !$       call omp_init_lock(locks(lock))
    1092              : !$    END DO
    1093              : !$OMP END DO
    1094              : 
    1095              :       mepos = 0
    1096              : !$    mepos = omp_get_thread_num()
    1097              :       DO WHILE (neighbor_list_iterate(nl_iterator, mepos=mepos) == 0)
    1098              : 
    1099              :          CALL get_iterator_info(nl_iterator, mepos=mepos, ikind=ikind, jkind=jkind, iatom=iatom, jatom=jatom, r=rij)
    1100              :          IF (exclude(ikind) .OR. exclude(jkind)) CYCLE
    1101              :          IF (dispersion_env%nd3_exclude_pair > 0) THEN
    1102              :             CALL exclude_d3_kind_pair(dispersion_env%d3_exclude_pair, ikind, jkind, exclude=exclude_pair)
    1103              :             IF (exclude_pair) CYCLE
    1104              :          END IF
    1105              : 
    1106              :          rcc = SQRT(rij(1)*rij(1) + rij(2)*rij(2) + rij(3)*rij(3))
    1107              :          IF (rcc > 1.e-6_dp) THEN
    1108              :             za = atomnumber(ikind)
    1109              :             zb = atomnumber(jkind)
    1110              :             rcovab = dispersion_env%rcov(za) + dispersion_env%rcov(zb)
    1111              :             IF (cnfun == 1) THEN
    1112              :                CALL cnparam_d3(rcc, rcovab, dispersion_env%k1, cnab, dcnab)
    1113              :             ELSE IF (cnfun == 2) THEN
    1114              :                CALL modcn_d3(rcc, rcovab, cnab, dcnab)
    1115              :             ELSE IF (cnfun == 3) THEN
    1116              :                den = ABS(dispersion_env%eneg(za) - dispersion_env%eneg(zb))
    1117              :                CALL cn_d4per(rcc, rcovab, den, cnab, dcnab)
    1118              :             ELSE
    1119              :                CPABORT("cnfun in d3_cnumber")
    1120              :             END IF
    1121              :             IF (cnab > eps_cn) THEN
    1122              : !$OMP ATOMIC
    1123              :                cnumbers(iatom) = cnumbers(iatom) + cnab
    1124              :                IF (iatom /= jatom) THEN
    1125              : !$OMP ATOMIC
    1126              :                   cnumbers(jatom) = cnumbers(jatom) + cnab
    1127              :                END IF
    1128              :             END IF
    1129              :             IF (derivatives .AND. cnab > eps_cn) THEN
    1130              : !$             CALL omp_set_lock(locks(iatom))
    1131              :                dcnum(iatom)%neighbors = dcnum(iatom)%neighbors + 1
    1132              :                ni = dcnum(iatom)%neighbors
    1133              :                IF (ni > SIZE(dcnum(iatom)%nlist)) THEN
    1134              :                   CALL reallocate(dcnum(iatom)%nlist, 1, 2*ni)
    1135              :                   CALL reallocate(dcnum(iatom)%dvals, 1, 2*ni)
    1136              :                   CALL reallocate(dcnum(iatom)%rik, 1, 3, 1, 2*ni)
    1137              :                END IF
    1138              :                dcnum(iatom)%nlist(ni) = jatom
    1139              :                dcnum(iatom)%dvals(ni) = dcnab
    1140              :                dcnum(iatom)%rik(1:3, ni) = rij(1:3)
    1141              : !$             CALL omp_unset_lock(locks(iatom))
    1142              : 
    1143              :                IF (iatom /= jatom) THEN
    1144              : !$                CALL omp_set_lock(locks(jatom))
    1145              :                   dcnum(jatom)%neighbors = dcnum(jatom)%neighbors + 1
    1146              :                   nj = dcnum(jatom)%neighbors
    1147              :                   IF (nj > SIZE(dcnum(jatom)%dvals)) THEN
    1148              :                      CALL reallocate(dcnum(jatom)%nlist, 1, 2*nj)
    1149              :                      CALL reallocate(dcnum(jatom)%dvals, 1, 2*nj)
    1150              :                      CALL reallocate(dcnum(jatom)%rik, 1, 3, 1, 2*nj)
    1151              :                   END IF
    1152              :                   dcnum(jatom)%nlist(nj) = iatom
    1153              :                   dcnum(jatom)%dvals(nj) = dcnab
    1154              :                   dcnum(jatom)%rik(1:3, nj) = -rij(1:3)
    1155              : !$                CALL omp_unset_lock(locks(jatom))
    1156              :                END IF
    1157              :             END IF
    1158              :          END IF
    1159              :       END DO
    1160              : 
    1161              : !$OMP BARRIER        ! Wait for all threads to finish the loop before locks can be freed
    1162              : !$OMP DO
    1163              : !$    DO lock = 1, number_of_locks
    1164              : !$       call omp_destroy_lock(locks(lock))
    1165              : !$    END DO
    1166              : !$OMP END DO
    1167              : !$OMP SINGLE
    1168              : !$    DEALLOCATE (locks)
    1169              : !$OMP END SINGLE NOWAIT
    1170              : 
    1171              : !$OMP END PARALLEL
    1172        13232 :       CALL neighbor_list_iterator_release(nl_iterator)
    1173              : 
    1174        13232 :       CALL timestop(handle)
    1175              : 
    1176        26464 :    END SUBROUTINE d3_cnumber
    1177              : 
    1178              : ! **************************************************************************************************
    1179              : !> \brief ...
    1180              : !> \param rab ...
    1181              : !> \param rcovab ...
    1182              : !> \param cnab ...
    1183              : !> \param dcnab ...
    1184              : ! **************************************************************************************************
    1185       113922 :    SUBROUTINE modcn_d3(rab, rcovab, cnab, dcnab)
    1186              : 
    1187              :       REAL(KIND=dp), INTENT(IN)                          :: rab, rcovab
    1188              :       REAL(KIND=dp), INTENT(OUT)                         :: cnab, dcnab
    1189              : 
    1190              :       REAL(KIND=dp)                                      :: ee, k1, rr
    1191              : 
    1192       113922 :       rr = rab/rcovab
    1193       113922 :       k1 = 7.5_dp
    1194       113922 :       ee = ERF(-k1*(rr - 1.0_dp))
    1195       113922 :       cnab = 0.5_dp*(1.0_dp + ee)
    1196       113922 :       dcnab = -k1*oorootpi/rcovab*EXP(-k1*k1*(rr - 1.0_dp)**2)
    1197              : 
    1198       113922 :    END SUBROUTINE modcn_d3
    1199              : 
    1200              : ! **************************************************************************************************
    1201              : !> \brief ...
    1202              : !> \param rab ...
    1203              : !> \param rcovab ...
    1204              : !> \param den ...
    1205              : !> \param cnab ...
    1206              : !> \param dcnab ...
    1207              : ! **************************************************************************************************
    1208        76662 :    SUBROUTINE cn_d4per(rab, rcovab, den, cnab, dcnab)
    1209              : 
    1210              :       REAL(KIND=dp), INTENT(IN)                          :: rab, rcovab, den
    1211              :       REAL(KIND=dp), INTENT(OUT)                         :: cnab, dcnab
    1212              : 
    1213              :       REAL(KIND=dp), PARAMETER                           :: k0 = 7.5_dp, k1 = 4.10451_dp, &
    1214              :                                                             k2 = 19.08857_dp, k3 = 2*11.28174_dp**2
    1215              : 
    1216              :       REAL(KIND=dp)                                      :: dee, dij, ee, rr
    1217              : 
    1218        76662 :       rr = rab/rcovab
    1219        76662 :       dij = k1*EXP(-((den + k2)**2)/k3)
    1220        76662 :       ee = ERF(-k0*(rr - 1.0_dp))
    1221        76662 :       cnab = 0.5_dp*dij*(1.0_dp + ee)
    1222        76662 :       dee = -2.0_dp*k0/rcovab*oorootpi*EXP(-k0*k0*(rr - 1.0_dp)**2)
    1223        76662 :       dcnab = 0.5_dp*dij*dee
    1224              : 
    1225        76662 :    END SUBROUTINE cn_d4per
    1226              : 
    1227              : ! **************************************************************************************************
    1228              : !> \brief ...
    1229              : !> \param exclude_list List of kind pairs to exclude
    1230              : !> \param za first kind
    1231              : !> \param zb second kind
    1232              : !> \param zc third kind in case of the three-body term
    1233              : !> \param exclude whether to exclude the interaction or not
    1234              : ! **************************************************************************************************
    1235         5422 :    SUBROUTINE exclude_d3_kind_pair(exclude_list, za, zb, zc, exclude)
    1236              : 
    1237              :       INTEGER, DIMENSION(:, :), INTENT(IN)               :: exclude_list
    1238              :       INTEGER, INTENT(in)                                :: za, zb
    1239              :       INTEGER, INTENT(in), OPTIONAL                      :: zc
    1240              :       LOGICAL, INTENT(out)                               :: exclude
    1241              : 
    1242              :       CHARACTER(LEN=*), PARAMETER :: routineN = 'exclude_d3_kind_pair'
    1243              : 
    1244              :       INTEGER                                            :: handle, i
    1245              : 
    1246         5422 :       CALL timeset(routineN, handle)
    1247         5422 :       exclude = .FALSE.
    1248        13112 :       DO i = 1, SIZE(exclude_list, 1)
    1249        10752 :          IF (exclude_list(i, 1) == za .AND. exclude_list(i, 2) == zb .OR. &
    1250              :              exclude_list(i, 1) == zb .AND. exclude_list(i, 2) == za) THEN
    1251          256 :             exclude = .TRUE.
    1252          256 :             EXIT
    1253              :          END IF
    1254        12856 :          IF (PRESENT(zc)) THEN
    1255              :             IF (exclude_list(i, 1) == za .AND. exclude_list(i, 2) == zc .OR. &
    1256              :                 exclude_list(i, 1) == zc .AND. exclude_list(i, 2) == za .OR. &
    1257        10140 :                 exclude_list(i, 1) == zb .AND. exclude_list(i, 2) == zc .OR. &
    1258              :                 exclude_list(i, 1) == zc .AND. exclude_list(i, 2) == zb) THEN
    1259         2806 :                exclude = .TRUE.
    1260         2806 :                EXIT
    1261              :             END IF
    1262              :          END IF
    1263              :       END DO
    1264              : 
    1265         5422 :       CALL timestop(handle)
    1266              : 
    1267         5422 :    END SUBROUTINE exclude_d3_kind_pair
    1268              : 
    1269              : ! **************************************************************************************************
    1270              : !> \brief ...
    1271              : !> \param qs_env ...
    1272              : !> \param cnumbers ...
    1273              : !> \param dcnum ...
    1274              : !> \param ftype ...
    1275              : !> \param derivatives ...
    1276              : !> \param disp_env ...
    1277              : ! **************************************************************************************************
    1278         7390 :    SUBROUTINE cnumber_init(qs_env, cnumbers, dcnum, ftype, derivatives, disp_env)
    1279              : 
    1280              :       TYPE(qs_environment_type), POINTER                 :: qs_env
    1281              :       REAL(KIND=dp), ALLOCATABLE, DIMENSION(:)           :: cnumbers
    1282              :       TYPE(dcnum_type), ALLOCATABLE, DIMENSION(:)        :: dcnum
    1283              :       INTEGER, INTENT(IN)                                :: ftype
    1284              :       LOGICAL, INTENT(IN)                                :: derivatives
    1285              :       TYPE(qs_dispersion_type), OPTIONAL, POINTER        :: disp_env
    1286              : 
    1287              :       INTEGER                                            :: iatom, ikind, natom, nkind, za
    1288         7390 :       INTEGER, ALLOCATABLE, DIMENSION(:)                 :: atomnumber
    1289              :       LOGICAL                                            :: floating_a, ghost_a
    1290         7390 :       LOGICAL, ALLOCATABLE, DIMENSION(:)                 :: exclude
    1291              :       TYPE(mp_para_env_type), POINTER                    :: para_env
    1292              :       TYPE(qs_dispersion_type), POINTER                  :: dispersion_env
    1293         7390 :       TYPE(qs_kind_type), DIMENSION(:), POINTER          :: qs_kind_set
    1294              : 
    1295              :       CALL get_qs_env(qs_env=qs_env, qs_kind_set=qs_kind_set, &
    1296              :                       dispersion_env=dispersion_env, &
    1297              :                       para_env=para_env, &
    1298         7390 :                       nkind=nkind, natom=natom)
    1299         7390 :       IF (PRESENT(disp_env)) dispersion_env => disp_env
    1300              : 
    1301         7390 :       CALL cnumber_release(cnumbers, dcnum, derivatives)
    1302              : 
    1303        22170 :       ALLOCATE (cnumbers(natom))
    1304         7390 :       cnumbers = 0._dp
    1305         7390 :       IF (derivatives) THEN
    1306         7900 :          ALLOCATE (dcnum(natom))
    1307         6384 :          dcnum(:)%neighbors = 0
    1308         6384 :          DO iatom = 1, natom
    1309         6384 :             ALLOCATE (dcnum(iatom)%nlist(10), dcnum(iatom)%dvals(10), dcnum(iatom)%rik(3, 10))
    1310              :          END DO
    1311              :       ELSE
    1312        13264 :          ALLOCATE (dcnum(1))
    1313              :       END IF
    1314              : 
    1315        29560 :       ALLOCATE (exclude(nkind), atomnumber(nkind))
    1316        25008 :       DO ikind = 1, nkind
    1317        17618 :          CALL get_qs_kind(qs_kind_set(ikind), zatom=za, ghost=ghost_a, floating=floating_a)
    1318        17618 :          exclude(ikind) = ghost_a .OR. floating_a
    1319        42626 :          atomnumber(ikind) = za
    1320              :       END DO
    1321              : 
    1322              :       CALL d3_cnumber(qs_env, dispersion_env, cnumbers, dcnum, exclude, atomnumber, &
    1323         7390 :                       derivatives, ftype)
    1324              : 
    1325         7390 :       CALL para_env%sum(cnumbers)
    1326         7390 :       IF (derivatives) THEN
    1327          758 :          CALL dcnum_distribute(dcnum, para_env)
    1328              :       END IF
    1329              : 
    1330         7390 :       DEALLOCATE (exclude, atomnumber)
    1331              : 
    1332         7390 :    END SUBROUTINE cnumber_init
    1333              : 
    1334              : ! **************************************************************************************************
    1335              : !> \brief ...
    1336              : !> \param cnumbers ...
    1337              : !> \param dcnum ...
    1338              : !> \param derivatives ...
    1339              : ! **************************************************************************************************
    1340        14780 :    SUBROUTINE cnumber_release(cnumbers, dcnum, derivatives)
    1341              : 
    1342              :       REAL(KIND=dp), ALLOCATABLE, DIMENSION(:)           :: cnumbers
    1343              :       TYPE(dcnum_type), ALLOCATABLE, DIMENSION(:)        :: dcnum
    1344              :       LOGICAL, INTENT(IN)                                :: derivatives
    1345              : 
    1346              :       INTEGER                                            :: iatom, natom
    1347              : 
    1348              :       ! deallocate coordination numbers
    1349        14780 :       IF (ALLOCATED(cnumbers)) DEALLOCATE (cnumbers)
    1350        14780 :       IF (ALLOCATED(dcnum)) THEN
    1351         7390 :          IF (derivatives) THEN
    1352          758 :             natom = SIZE(dcnum)
    1353         6384 :             DO iatom = 1, natom
    1354         6384 :                DEALLOCATE (dcnum(iatom)%nlist, dcnum(iatom)%dvals, dcnum(iatom)%rik)
    1355              :             END DO
    1356              :          END IF
    1357         7390 :          DEALLOCATE (dcnum)
    1358              :       END IF
    1359              : 
    1360        14780 :    END SUBROUTINE cnumber_release
    1361              : 
    1362            0 : END MODULE qs_dispersion_cnum
        

Generated by: LCOV version 2.0-1