LCOV - code coverage report
Current view: top level - src/pw - lazy.F (source / functions) Hit Total Coverage
Test: CP2K Regtests (git:3add494) Lines: 26 117 22.2 %
Date: 2024-05-01 06:49:23 Functions: 1 1 100.0 %

          Line data    Source code
       1             : !--------------------------------------------------------------------------------------------------!
       2             : !   CP2K: A general program to perform molecular dynamics simulations                              !
       3             : !   Copyright 2000-2024 CP2K developers group <https://cp2k.org>                                   !
       4             : !                                                                                                  !
       5             : !   SPDX-License-Identifier: GPL-2.0-or-later                                                      !
       6             : !--------------------------------------------------------------------------------------------------!
       7             : 
       8             : ! **************************************************************************************************
       9             : !> \brief Filters for interpolating scaling functions .
      10             : !> \author Florian Schiffmann (09.2007,fschiff)
      11             : ! **************************************************************************************************
      12             : MODULE lazy
      13             : 
      14             :    USE kinds,                           ONLY: dp
      15             : #include "../base/base_uses.f90"
      16             : 
      17             :    IMPLICIT NONE
      18             : 
      19             :    PRIVATE
      20             : 
      21             :    CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'lazy'
      22             : 
      23             : ! *** Public data types ***
      24             : 
      25             :    PUBLIC :: lazy_arrays
      26             : 
      27             : CONTAINS
      28             : 
      29             : ! **************************************************************************************************
      30             : !> \brief ...
      31             : !> \param itype ...
      32             : !> \param m ...
      33             : !> \param ch ...
      34             : !> \param cg ...
      35             : !> \param cgt ...
      36             : !> \param cht ...
      37             : !> \par History
      38             : !>      09.2007 created [Florian Schiffmann]
      39             : !> \author fschiff
      40             : ! **************************************************************************************************
      41       41825 :    SUBROUTINE lazy_arrays(itype, m, ch, cg, cgt, cht)
      42             :       INTEGER, INTENT(in)                                :: itype, m
      43             :       REAL(KIND=dp), DIMENSION(:), POINTER               :: ch, cg, cgt, cht
      44             : 
      45             :       INTEGER                                            :: i
      46             : 
      47      125475 :       ALLOCATE (ch(-m:m))
      48      125475 :       ALLOCATE (cg(-m:m))
      49      125475 :       ALLOCATE (cgt(-m:m))
      50      125475 :       ALLOCATE (cht(-m:m))
      51             : 
      52       41825 :       SELECT CASE (itype)
      53             :       CASE (8)
      54             : 
      55           0 :          DO i = -m, m
      56           0 :             ch(i) = 0._dp
      57           0 :             cht(i) = 0._dp
      58           0 :             cg(i) = 0._dp
      59           0 :             cgt(i) = 0._dp
      60             :          END DO
      61             : 
      62             :          ! The normalization is chosen such that a constant function remains the same constant
      63             :          ! on each level of the transform
      64             : 
      65           0 :          ch(-7) = -5._dp/2048._dp
      66           0 :          ch(-6) = 0._dp
      67           0 :          ch(-5) = 49._dp/2048._dp
      68           0 :          ch(-4) = 0._dp
      69           0 :          ch(-3) = -245._dp/2048._dp
      70           0 :          ch(-2) = 0._dp
      71           0 :          ch(-1) = 1225._dp/2048._dp
      72           0 :          ch(0) = 1._dp
      73           0 :          ch(1) = 1225._dp/2048._dp
      74           0 :          ch(2) = 0._dp
      75           0 :          ch(3) = -245._dp/2048._dp
      76           0 :          ch(4) = 0._dp
      77           0 :          ch(5) = 49._dp/2048._dp
      78           0 :          ch(6) = 0._dp
      79           0 :          ch(7) = -5._dp/2048._dp
      80             :          !
      81           0 :          cht(0) = 1._dp
      82             : 
      83             :          ! g coefficients from h coefficients
      84           0 :          DO i = -m, m - 1
      85           0 :             cg(i + 1) = cht(-i)*(-1)**(i + 1)
      86           0 :             cgt(i + 1) = ch(-i)*(-1)**(i + 1)
      87             :          END DO
      88             : 
      89             :       CASE (14)
      90             :          ch = (/ &
      91             :               0._dp, 0._dp, 0._dp, 0.0000275373458862304687_dp, 0._dp, -0.000423073768615722656_dp, 0._dp, &
      92             :               0.00310254096984863281_dp, 0._dp, -0.0146262645721435547_dp, 0._dp, &
      93             :               0.0511919260025024414_dp, 0._dp, -0.153575778007507324_dp, 0._dp, 0.614303112030029297_dp, &
      94             :               1._dp, 0.614303112030029297_dp, 0._dp, -0.153575778007507324_dp, 0._dp, &
      95             :               0.0511919260025024414_dp, 0._dp, -0.0146262645721435547_dp, 0._dp, &
      96             :               0.00310254096984863281_dp, 0._dp, -0.000423073768615722656_dp, 0._dp, &
      97             :               0.0000275373458862304687_dp, 0._dp, 0._dp, 0._dp &
      98       38930 :               /)
      99             : 
     100       38930 :          DO i = -m, m
     101       37785 :             cht(i) = 0._dp
     102       37785 :             cg(i) = 0._dp
     103       38930 :             cgt(i) = 0._dp
     104             :          END DO
     105             : 
     106             :          ! the normalization is chosen such that a constant function remains the same constant
     107             :          ! on each level of the transform
     108             : 
     109        1145 :          cht(0) = 1._dp
     110             : 
     111             :          ! g coefficients from h coefficients
     112       37785 :          DO i = -m, m - 1
     113       36640 :             cg(i + 1) = cht(-i)*(-1)**(i + 1)
     114       37785 :             cgt(i + 1) = ch(-i)*(-1)**(i + 1)
     115             :          END DO
     116             : 
     117             :       CASE (16)
     118             :          ch = (/ &
     119             :               0._dp, 0._dp, 0._dp, -6.39259815216064453e-6_dp, 0._dp, 0.000110641121864318848_dp, 0._dp, &
     120             :               -0.000915303826332092285_dp, 0._dp, 0.00484772026538848877_dp, 0._dp, &
     121             :               -0.0186983495950698853_dp, 0._dp, 0.0575909167528152466_dp, 0._dp, &
     122             :               -0.159974768757820129_dp, 0._dp, 0.617045536637306213_dp, 1._dp, 0.617045536637306213_dp, &
     123             :               0._dp, -0.159974768757820129_dp, 0._dp, 0.0575909167528152466_dp, 0._dp, &
     124             :               -0.0186983495950698853_dp, 0._dp, 0.00484772026538848877_dp, 0._dp, &
     125             :               -0.000915303826332092285_dp, 0._dp, 0.000110641121864318848_dp, 0._dp, &
     126             :               -6.39259815216064453e-6_dp, 0._dp, 0._dp, 0._dp &
     127           0 :               /)
     128             : 
     129           0 :          DO i = -m, m
     130           0 :             cht(i) = 0._dp
     131           0 :             cg(i) = 0._dp
     132           0 :             cgt(i) = 0._dp
     133             :          END DO
     134             : 
     135             :          ! the normalization is chosen such that a constant function remains the same constant
     136             :          ! on each level of the transform
     137             : 
     138           0 :          cht(0) = 1._dp
     139             : 
     140             :          ! g coefficients from h coefficients
     141           0 :          DO i = -m, m - 1
     142           0 :             cg(i + 1) = cht(-i)*(-1)**(i + 1)
     143           0 :             cgt(i + 1) = ch(-i)*(-1)**(i + 1)
     144             :          END DO
     145             : 
     146             :       CASE (20)
     147             :          ch = (/ &
     148             :               0._dp, 0._dp, 0._dp, &
     149             :               -3.53757059201598167e-7_dp, 0._dp, 7.51213519833981991e-6_dp, 0._dp, &
     150             :               -0.0000766237790230661631_dp, 0._dp, 0.000501001632073894143_dp, 0._dp, &
     151             :               -0.00236837135162204504_dp, 0._dp, 0.00868402828928083181_dp, 0._dp, &
     152             :               -0.0260520848678424954_dp, 0._dp, 0.0677354206563904881_dp, 0._dp, &
     153             :               -0.16933855164097622_dp, 0._dp, 0.620908022683579475_dp, 1._dp, 0.620908022683579475_dp, &
     154             :               0._dp, -0.16933855164097622_dp, 0._dp, 0.0677354206563904881_dp, 0._dp, &
     155             :               -0.0260520848678424954_dp, 0._dp, 0.00868402828928083181_dp, 0._dp, &
     156             :               -0.00236837135162204504_dp, 0._dp, 0.000501001632073894143_dp, 0._dp, &
     157             :               -0.0000766237790230661631_dp, 0._dp, 7.51213519833981991e-6_dp, 0._dp, &
     158             :               -3.53757059201598167e-7_dp, &
     159           0 :               0._dp, 0._dp, 0._dp/)
     160             : 
     161             :          !******** coefficients for wavelet transform *********************
     162           0 :          DO i = -m, m
     163           0 :             cht(i) = 0._dp
     164           0 :             cg(i) = 0._dp
     165           0 :             cgt(i) = 0._dp
     166             :          END DO
     167             : 
     168             :          ! the normalization is chosen such that a constant function remains the same constant
     169             :          ! on each level of the transform
     170             : 
     171           0 :          cht(0) = 1._dp
     172             : 
     173             :          ! g coefficients from h coefficients
     174           0 :          DO i = -m, m - 1
     175           0 :             cg(i + 1) = cht(-i)*(-1)**(i + 1)
     176           0 :             cgt(i + 1) = ch(-i)*(-1)**(i + 1)
     177             :          END DO
     178             : 
     179             :       CASE (24)
     180             :          ch = (/ &
     181             :               0._dp, 0._dp, 0._dp, &
     182             :               -2.00495833269087598e-8_dp, 0._dp, 5.0505855142546352e-7_dp, 0._dp, &
     183             :               -6.14044870417274069e-6_dp, 0._dp, 0.0000480399810385279125_dp, 0._dp, &
     184             :               -0.000272226559218324837_dp, 0._dp, 0.00119360875964957813_dp, 0._dp, &
     185             :               -0.00423188560239395883_dp, 0._dp, 0.0125613112325027032_dp, 0._dp, &
     186             :               -0.032300514597864094_dp, 0._dp, 0.0753678673950162192_dp, 0._dp, &
     187             :               -0.175858357255037845_dp, 0._dp, 0.623497812086043268_dp, 1._dp, 0.623497812086043268_dp, &
     188             :               0._dp, -0.175858357255037845_dp, 0._dp, 0.0753678673950162192_dp, 0._dp, &
     189             :               -0.032300514597864094_dp, 0._dp, 0.0125613112325027032_dp, 0._dp, &
     190             :               -0.00423188560239395883_dp, 0._dp, 0.00119360875964957813_dp, 0._dp, &
     191             :               -0.000272226559218324837_dp, 0._dp, 0.0000480399810385279125_dp, 0._dp, &
     192             :               -6.14044870417274069e-6_dp, 0._dp, 5.0505855142546352e-7_dp, 0._dp, &
     193             :               -2.00495833269087598e-8_dp, &
     194           0 :               0._dp, 0._dp, 0._dp/)
     195             : 
     196             :          !******** coefficients for wavelet transform *********************
     197           0 :          DO i = -m, m
     198           0 :             cht(i) = 0._dp
     199           0 :             cg(i) = 0._dp
     200           0 :             cgt(i) = 0._dp
     201             :          END DO
     202             : 
     203             :          ! the normalization is chosen such that a constant function remains the same constant
     204             :          ! on each level of the transform
     205             : 
     206           0 :          cht(0) = 1._dp
     207             : 
     208             :          ! g coefficients from h coefficients
     209           0 :          DO i = -m, m - 1
     210           0 :             cg(i + 1) = cht(-i)*(-1)**(i + 1)
     211           0 :             cgt(i + 1) = ch(-i)*(-1)**(i + 1)
     212             :          END DO
     213             : 
     214             :       CASE (30)
     215             :          ch = (/ &
     216             :               0._dp, 0._dp, 0._dp, &
     217             :               2.78364831185484718e-10_dp, 0._dp, -8.6705490009997277e-9_dp, 0._dp, &
     218             :               1.31098700895115883e-7_dp, 0._dp, -1.28248729136526407e-6_dp, 0._dp, &
     219             :               9.13008809805271326e-6_dp, 0._dp, -0.000050455750015554468_dp, 0._dp, &
     220             :               0.000225566882422478798_dp, 0._dp, -0.00083996810502084962_dp, 0._dp, &
     221             :               0.0026652834101623113_dp, 0._dp, -0.00734972091893243418_dp, 0._dp, &
     222             :               0.0179659844685015058_dp, 0._dp, -0.039898484988490357_dp, 0._dp, &
     223             :               0.0837868184758297496_dp, 0._dp, -0.18261229667809048_dp, 0._dp, 0.626099302896310217_dp, &
     224             :               1._dp, 0.626099302896310217_dp, 0._dp, -0.18261229667809048_dp, 0._dp, &
     225             :               0.0837868184758297496_dp, 0._dp, -0.039898484988490357_dp, 0._dp, &
     226             :               0.0179659844685015058_dp, 0._dp, -0.00734972091893243418_dp, 0._dp, &
     227             :               0.0026652834101623113_dp, 0._dp, -0.00083996810502084962_dp, 0._dp, &
     228             :               0.000225566882422478798_dp, 0._dp, -0.000050455750015554468_dp, 0._dp, &
     229             :               9.13008809805271326e-6_dp, 0._dp, -1.28248729136526407e-6_dp, 0._dp, &
     230             :               1.31098700895115883e-7_dp, 0._dp, -8.6705490009997277e-9_dp, 0._dp, &
     231             :               2.78364831185484718e-10_dp, &
     232           0 :               0._dp, 0._dp, 0._dp/)
     233             : 
     234             :          !******** coefficients for wavelet transform *********************
     235           0 :          DO i = -m, m
     236           0 :             cht(i) = 0._dp
     237           0 :             cg(i) = 0._dp
     238           0 :             cgt(i) = 0._dp
     239             :          END DO
     240             : 
     241             :          ! the normalization is chosen such that a constant function remains the same constant
     242             :          ! on each level of the transform
     243             : 
     244           0 :          cht(0) = 1._dp
     245             : 
     246             :          ! g coefficients from h coefficients
     247           0 :          DO i = -m, m - 1
     248           0 :             cg(i + 1) = cht(-i)*(-1)**(i + 1)
     249           0 :             cgt(i + 1) = ch(-i)*(-1)**(i + 1)
     250             :          END DO
     251             : 
     252             :       CASE (40)
     253             :          ch = (/ &
     254             :               0._dp, 0._dp, 0._dp, &
     255             :               -2.33895335687458837e-13_dp, 0._dp, 9.61499474542229436e-12_dp, 0._dp, &
     256             :               -1.9312403731519637e-10_dp, 0._dp, 2.52621846791090201e-9_dp, 0._dp, &
     257             :               -2.42028027409528354e-8_dp, 0._dp, 1.81103730854716044e-7_dp, 0._dp, &
     258             :               -1.10227332483179024e-6_dp, 0._dp, 5.61214589957214346e-6_dp, 0._dp, &
     259             :               -0.0000244006343459658411_dp, 0._dp, 0.0000920510703104425647_dp, 0._dp, &
     260             :               -0.000305221969976730609_dp, 0._dp, 0.000899343879450152758_dp, 0._dp, &
     261             :               -0.00237826492565707063_dp, 0._dp, 0.00569939227746221067_dp, 0._dp, &
     262             :               -0.0125090557778066702_dp, 0._dp, 0.0254814099177543281_dp, 0._dp, &
     263             :               -0.0491427191270976329_dp, 0._dp, 0.0930820915230908105_dp, 0._dp, &
     264             :               -0.189611667917407207_dp, 0._dp, 0.628712372568244948_dp, 1._dp, 0.628712372568244948_dp, &
     265             :               0._dp, -0.189611667917407207_dp, 0._dp, 0.0930820915230908105_dp, 0._dp, &
     266             :               -0.0491427191270976329_dp, 0._dp, 0.0254814099177543281_dp, 0._dp, &
     267             :               -0.0125090557778066702_dp, 0._dp, 0.00569939227746221067_dp, 0._dp, &
     268             :               -0.00237826492565707063_dp, 0._dp, 0.000899343879450152758_dp, 0._dp, &
     269             :               -0.000305221969976730609_dp, 0._dp, 0.0000920510703104425647_dp, 0._dp, &
     270             :               -0.0000244006343459658411_dp, 0._dp, 5.61214589957214346e-6_dp, 0._dp, &
     271             :               -1.10227332483179024e-6_dp, 0._dp, 1.81103730854716044e-7_dp, 0._dp, &
     272             :               -2.42028027409528354e-8_dp, 0._dp, 2.52621846791090201e-9_dp, 0._dp, &
     273             :               -1.9312403731519637e-10_dp, 0._dp, 9.61499474542229436e-12_dp, 0._dp, &
     274             :               -2.33895335687458837e-13_dp, &
     275     3498480 :               0._dp, 0._dp, 0._dp/)
     276             : 
     277             :          !******** coefficients for wavelet transform *********************
     278     3498480 :          DO i = -m, m
     279     3457800 :             cht(i) = 0._dp
     280     3457800 :             cg(i) = 0._dp
     281     3498480 :             cgt(i) = 0._dp
     282             :          END DO
     283             : 
     284             :          ! the normalization is chosen such that a constant function remains the same constant
     285             :          ! on each level of the transform
     286             : 
     287       40680 :          cht(0) = 1._dp
     288             : 
     289             :          ! g coefficients from h coefficients
     290     3457800 :          DO i = -m, m - 1
     291     3417120 :             cg(i + 1) = cht(-i)*(-1)**(i + 1)
     292     3457800 :             cgt(i + 1) = ch(-i)*(-1)**(i + 1)
     293             :          END DO
     294             : 
     295             :       CASE (50)
     296             :          !******** coefficients for wavelet transform *********************
     297             : 
     298             :          ch(-m:0) = (/0._dp, 0._dp, 0._dp, &
     299             :                       2.03510990661269603e-16_dp, 0._dp, -1.03963806080363471e-14_dp, 0._dp, &
     300             :                       2.60602607241444435e-13_dp, 0._dp, -4.27267065360972853e-12_dp, 0._dp, &
     301             :                       5.15325765417075794e-11_dp, 0._dp, -4.87577454971540944e-10_dp, 0._dp, &
     302             :                       3.76884194923947865e-9_dp, 0._dp, -2.44743981275102471e-8_dp, 0._dp, &
     303             :                       1.36277898664545694e-7_dp, 0._dp, -6.60874540835592558e-7_dp, 0._dp, &
     304             :                       2.82580838150391301e-6_dp, 0._dp, -0.0000107609066649189415_dp, 0._dp, &
     305             :                       0.0000368023007940227798_dp, 0._dp, -0.000113853271687194218_dp, 0._dp, &
     306             :                       0.000320647989649649023_dp, 0._dp, -0.00082693428909646327_dp, 0._dp, &
     307             :                       0.00196396893660410027_dp, 0._dp, -0.00432073166052902059_dp, 0._dp, &
     308             :                       0.008863039303649273_dp, 0._dp, -0.0170899753079935742_dp, 0._dp, &
     309             :                       0.0313316213979882195_dp, 0._dp, -0.0556296135025505121_dp, 0._dp, &
     310             :                       0.0991218567863627306_dp, 0._dp, -0.193934067625492299_dp, 0._dp, &
     311           0 :                       0.630285719782849972_dp, 1._dp/)
     312             :          ch(1:m) = (/ &
     313             :                    0.630285719782849972_dp, 0._dp, -0.193934067625492299_dp, 0._dp, &
     314             :                    0.0991218567863627306_dp, 0._dp, -0.0556296135025505121_dp, 0._dp, &
     315             :                    0.0313316213979882195_dp, 0._dp, -0.0170899753079935742_dp, 0._dp, &
     316             :                    0.008863039303649273_dp, 0._dp, -0.00432073166052902059_dp, 0._dp, &
     317             :                    0.00196396893660410027_dp, 0._dp, -0.00082693428909646327_dp, 0._dp, &
     318             :                    0.000320647989649649023_dp, 0._dp, -0.000113853271687194218_dp, 0._dp, &
     319             :                    0.0000368023007940227798_dp, 0._dp, -0.0000107609066649189415_dp, 0._dp, &
     320             :                    2.82580838150391301e-6_dp, 0._dp, -6.60874540835592558e-7_dp, 0._dp, &
     321             :                    1.36277898664545694e-7_dp, 0._dp, -2.44743981275102471e-8_dp, 0._dp, &
     322             :                    3.76884194923947865e-9_dp, 0._dp, -4.87577454971540944e-10_dp, 0._dp, &
     323             :                    5.15325765417075794e-11_dp, 0._dp, -4.27267065360972853e-12_dp, 0._dp, &
     324             :                    2.60602607241444435e-13_dp, 0._dp, -1.03963806080363471e-14_dp, 0._dp, &
     325             :                    2.03510990661269603e-16_dp, &
     326           0 :                    0._dp, 0._dp, 0._dp/)
     327           0 :          DO i = -m, m
     328           0 :             cht(i) = 0._dp
     329           0 :             cg(i) = 0._dp
     330           0 :             cgt(i) = 0._dp
     331             :          END DO
     332             : 
     333             :          ! the normalization is chosen such that a constant function remains the same constant
     334             :          ! on each level of the transform
     335             : 
     336           0 :          cht(0) = 1._dp
     337             : 
     338             :          ! g coefficients from h coefficients
     339           0 :          DO i = -m, m - 1
     340           0 :             cg(i + 1) = cht(-i)*(-1)**(i + 1)
     341           0 :             cgt(i + 1) = ch(-i)*(-1)**(i + 1)
     342             :          END DO
     343             : 
     344             :       CASE (60)
     345             :          !******** coefficients for wavelet transform *********************
     346             :          ch(-m:0) = (/ &
     347             :                     0._dp, 0._dp, 0._dp, &
     348             :                     -1.80960777804178984e-19_dp, 0._dp, 1.10513064480060885e-17_dp, 0._dp, &
     349             :                     -3.32141991973710259e-16_dp, 0._dp, 6.54883738891560793e-15_dp, 0._dp, &
     350             :                     -9.5279163579909433e-14_dp, 0._dp, 1.09084919935365698e-12_dp, 0._dp, &
     351             :                     -1.02354148279779304e-11_dp, 0._dp, 8.09410105920413478e-11_dp, 0._dp, &
     352             :                     -5.50587106934234749e-10_dp, 0._dp, 3.27218841600752522e-9_dp, 0._dp, &
     353             :                     -1.71999647508087864e-8_dp, 0._dp, 8.07595396530604197e-8_dp, 0._dp, &
     354             :                     -3.41497481961512632e-7_dp, 0._dp, 1.30947169656570694e-6_dp, 0._dp, &
     355             :                     -4.58013372208926991e-6_dp, 0._dp, 0.0000146880150398035208_dp, 0._dp, &
     356             :                     -0.0000433840444231233622_dp, 0._dp, 0.000118515001353520526_dp, 0._dp, &
     357             :                     -0.000300581525171972349_dp, 0._dp, 0.000710396937937769235_dp, 0._dp, &
     358             :                     -0.00157035112596770041_dp, 0._dp, 0.00325946830347917649_dp, 0._dp, &
     359             :                     -0.00638065613347741822_dp, 0._dp, 0.0118436928230099234_dp, 0._dp, &
     360             :                     -0.0209956372771539552_dp, 0._dp, 0.0359258682297967678_dp, 0._dp, &
     361             :                     -0.0604028333973506096_dp, 0._dp, 0.103355959368799932_dp, 0._dp, &
     362           0 :                     -0.196868494035809394_dp, 0._dp, 0.631336894666561161_dp, 1._dp/)
     363             :          ch(1:m) = (/0.631336894666561161_dp, &
     364             :                      0._dp, -0.196868494035809394_dp, 0._dp, 0.103355959368799932_dp, 0._dp, &
     365             :                      -0.0604028333973506096_dp, 0._dp, 0.0359258682297967678_dp, 0._dp, &
     366             :                      -0.0209956372771539552_dp, 0._dp, 0.0118436928230099234_dp, 0._dp, &
     367             :                      -0.00638065613347741822_dp, 0._dp, 0.00325946830347917649_dp, 0._dp, &
     368             :                      -0.00157035112596770041_dp, 0._dp, 0.000710396937937769235_dp, 0._dp, &
     369             :                      -0.000300581525171972349_dp, 0._dp, 0.000118515001353520526_dp, 0._dp, &
     370             :                      -0.0000433840444231233622_dp, 0._dp, 0.0000146880150398035208_dp, 0._dp, &
     371             :                      -4.58013372208926991e-6_dp, 0._dp, 1.30947169656570694e-6_dp, 0._dp, &
     372             :                      -3.41497481961512632e-7_dp, 0._dp, 8.07595396530604197e-8_dp, 0._dp, &
     373             :                      -1.71999647508087864e-8_dp, 0._dp, 3.27218841600752522e-9_dp, 0._dp, &
     374             :                      -5.50587106934234749e-10_dp, 0._dp, 8.09410105920413478e-11_dp, 0._dp, &
     375             :                      -1.02354148279779304e-11_dp, 0._dp, 1.09084919935365698e-12_dp, 0._dp, &
     376             :                      -9.5279163579909433e-14_dp, 0._dp, 6.54883738891560793e-15_dp, 0._dp, &
     377             :                      -3.32141991973710259e-16_dp, 0._dp, 1.10513064480060885e-17_dp, 0._dp, &
     378             :                      -1.80960777804178984e-19_dp, &
     379           0 :                      0._dp, 0._dp, 0._dp/)
     380             : 
     381           0 :          DO i = -m, m
     382           0 :             cht(i) = 0._dp
     383           0 :             cg(i) = 0._dp
     384           0 :             cgt(i) = 0._dp
     385             :          END DO
     386             : 
     387             :          ! the normalization is chosen such that a constant function remains the same constant
     388             :          ! on each level of the transform
     389             : 
     390           0 :          cht(0) = 1._dp
     391             : 
     392             :          ! g coefficients from h coefficients
     393           0 :          DO i = -m, m - 1
     394           0 :             cg(i + 1) = cht(-i)*(-1)**(i + 1)
     395           0 :             cgt(i + 1) = ch(-i)*(-1)**(i + 1)
     396             :          END DO
     397             : 
     398             :       CASE (100)
     399             :          !******** coefficients for wavelet transform *********************
     400             :          ch(-m:-m + 22) = (/ &
     401             :                           0._dp, 0._dp, 0._dp, &
     402             :                           -1.2683805626484815e-31_dp, 0._dp, 1.28158741180595538e-29_dp, 0._dp, &
     403             :                           -6.41198417717232202e-28_dp, 0._dp, 2.11779334023809847e-26_dp, 0._dp, &
     404             :                           -5.19441179715542395e-25_dp, 0._dp, 1.00911662890805933e-23_dp, 0._dp, &
     405             :                           -1.61729304931893186e-22_dp, 0._dp, 2.19924673311587861e-21_dp, 0._dp, &
     406           0 :                           -2.59007672484430282e-20_dp, 0._dp, 2.68351845030850743e-19_dp, 0._dp/)
     407             :          ch(-m + 23:0) = (/ &
     408             :                          -2.47631006363911635e-18_dp, 0._dp, 2.05560047903738218e-17_dp, 0._dp, &
     409             :                          -1.54763876066192241e-16_dp, 0._dp, 1.06410357358472536e-15_dp, 0._dp, &
     410             :                          -6.72076683598079057e-15_dp, 0._dp, 3.91882394735691508e-14_dp, 0._dp, &
     411             :                          -2.1187969775075261e-13_dp, 0._dp, 1.06630135673478305e-12_dp, 0._dp, &
     412             :                          -5.01180443685748998e-12_dp, 0._dp, 2.20666419683207691e-11_dp, 0._dp, &
     413             :                          -9.1258654919835045e-11_dp, 0._dp, 3.55352205999457932e-10_dp, 0._dp, &
     414             :                          -1.30569909741619005e-9_dp, 0._dp, 4.53620646231137398e-9_dp, 0._dp, &
     415             :                          -1.49279735540769725e-8_dp, 0._dp, 4.66118357913015673e-8_dp, 0._dp, &
     416             :                          -1.38309751701521672e-7_dp, 0._dp, 3.90568525175243503e-7_dp, 0._dp, &
     417             :                          -1.05103157937523999e-6_dp, 0._dp, 2.69873794098621337e-6_dp, 0._dp, &
     418             :                          -6.61998110310293365e-6_dp, 0._dp, 0.0000155312721433740143_dp, 0._dp, &
     419             :                          -0.0000348898934935080536_dp, 0._dp, 0.0000751302114254144957_dp, 0._dp, &
     420             :                          -0.000155250095336387829_dp, 0._dp, 0.000308205854288494064_dp, 0._dp, &
     421             :                          -0.000588508297900663563_dp, 0._dp, 0.00108221904295030132_dp, 0._dp, &
     422             :                          -0.00191926718143360074_dp, 0._dp, 0.00328782888345707184_dp, 0._dp, &
     423             :                          -0.00545087420152093489_dp, 0._dp, 0.00876675750345045625_dp, 0._dp, &
     424             :                          -0.0137206712673049998_dp, 0._dp, 0.0209859998811194541_dp, 0._dp, &
     425             :                          -0.031565718829452402_dp, 0._dp, 0.0471537281279474153_dp, 0._dp, &
     426             :                          -0.0711699126403181485_dp, 0._dp, 0.112357606764076737_dp, 0._dp, &
     427           0 :                          -0.202867901101805219_dp, 0._dp, 0.633444670787269357_dp, 1._dp/)
     428             :          ch(1:80) = (/0.633444670787269357_dp, &
     429             :                       0._dp, -0.202867901101805219_dp, 0._dp, 0.112357606764076737_dp, 0._dp, &
     430             :                       -0.0711699126403181485_dp, 0._dp, 0.0471537281279474153_dp, 0._dp, &
     431             :                       -0.031565718829452402_dp, 0._dp, 0.0209859998811194541_dp, 0._dp, &
     432             :                       -0.0137206712673049998_dp, 0._dp, 0.00876675750345045625_dp, 0._dp, &
     433             :                       -0.00545087420152093489_dp, 0._dp, 0.00328782888345707184_dp, 0._dp, &
     434             :                       -0.00191926718143360074_dp, 0._dp, 0.00108221904295030132_dp, 0._dp, &
     435             :                       -0.000588508297900663563_dp, 0._dp, 0.000308205854288494064_dp, 0._dp, &
     436             :                       -0.000155250095336387829_dp, 0._dp, 0.0000751302114254144957_dp, 0._dp, &
     437             :                       -0.0000348898934935080536_dp, 0._dp, 0.0000155312721433740143_dp, 0._dp, &
     438             :                       -6.61998110310293365e-6_dp, 0._dp, 2.69873794098621337e-6_dp, 0._dp, &
     439             :                       -1.05103157937523999e-6_dp, 0._dp, 3.90568525175243503e-7_dp, 0._dp, &
     440             :                       -1.38309751701521672e-7_dp, 0._dp, 4.66118357913015673e-8_dp, 0._dp, &
     441             :                       -1.49279735540769725e-8_dp, 0._dp, 4.53620646231137398e-9_dp, 0._dp, &
     442             :                       -1.30569909741619005e-9_dp, 0._dp, 3.55352205999457932e-10_dp, 0._dp, &
     443             :                       -9.1258654919835045e-11_dp, 0._dp, 2.20666419683207691e-11_dp, 0._dp, &
     444             :                       -5.01180443685748998e-12_dp, 0._dp, 1.06630135673478305e-12_dp, 0._dp, &
     445             :                       -2.1187969775075261e-13_dp, 0._dp, 3.91882394735691508e-14_dp, 0._dp, &
     446             :                       -6.72076683598079057e-15_dp, 0._dp, 1.06410357358472536e-15_dp, 0._dp, &
     447             :                       -1.54763876066192241e-16_dp, 0._dp, 2.05560047903738218e-17_dp, 0._dp, &
     448           0 :                       -2.47631006363911635e-18_dp, 0._dp/)
     449             :          ch(81:m) = (/2.68351845030850743e-19_dp, 0._dp, &
     450             :                       -2.59007672484430282e-20_dp, 0._dp, 2.19924673311587861e-21_dp, 0._dp, &
     451             :                       -1.61729304931893186e-22_dp, 0._dp, 1.00911662890805933e-23_dp, 0._dp, &
     452             :                       -5.19441179715542395e-25_dp, 0._dp, 2.11779334023809847e-26_dp, 0._dp, &
     453             :                       -6.41198417717232202e-28_dp, 0._dp, 1.28158741180595538e-29_dp, 0._dp, &
     454             :                       -1.2683805626484815e-31_dp, &
     455           0 :                       0._dp, 0._dp, 0._dp/)
     456             : 
     457           0 :          DO i = -m, m
     458           0 :             cht(i) = 0._dp
     459           0 :             cg(i) = 0._dp
     460           0 :             cgt(i) = 0._dp
     461             :          END DO
     462             : 
     463             :          ! the normalization is chosen such that a constant function remains the same constant
     464             :          ! on each level of the transform
     465             : 
     466           0 :          cht(0) = 1._dp
     467             : 
     468             :          ! g coefficients from h coefficients
     469       41825 :          DO i = -m, m - 1
     470           0 :             cg(i + 1) = cht(-i)*(-1)**(i + 1)
     471           0 :             cgt(i + 1) = ch(-i)*(-1)**(i + 1)
     472             :          END DO
     473             : 
     474             :       END SELECT
     475             : 
     476       41825 :    END SUBROUTINE lazy_arrays
     477             : END MODULE lazy

Generated by: LCOV version 1.15