https://www.cdslab.org/paramonte/fortran/2
Current view: top level - main - pm_mathRoot@routines.F90 (source / functions) Hit Total Coverage
Test: ParaMonte 2.0.0 :: Serial Fortran - Code Coverage Report Lines: 152 152 100.0 %
Date: 2024-04-08 03:18:57 Functions: 112 112 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
       2             : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
       3             : !!!!                                                                                                                            !!!!
       4             : !!!!    ParaMonte: Parallel Monte Carlo and Machine Learning Library.                                                           !!!!
       5             : !!!!                                                                                                                            !!!!
       6             : !!!!    Copyright (C) 2012-present, The Computational Data Science Lab                                                          !!!!
       7             : !!!!                                                                                                                            !!!!
       8             : !!!!    This file is part of the ParaMonte library.                                                                             !!!!
       9             : !!!!                                                                                                                            !!!!
      10             : !!!!    LICENSE                                                                                                                 !!!!
      11             : !!!!                                                                                                                            !!!!
      12             : !!!!       https://github.com/cdslaborg/paramonte/blob/main/LICENSE.md                                                          !!!!
      13             : !!!!                                                                                                                            !!!!
      14             : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      15             : !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      16             : 
      17             : !>  \brief
      18             : !>  This file contains procedure implementations of [pm_mathRoot](@ref pm_mathRoot).
      19             : !>
      20             : !>  \finmain
      21             : !>
      22             : !>  \author
      23             : !>  \AmirShahmoradi, Oct 16, 2009, 11:14 AM, Michigan
      24             : 
      25             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      26             : 
      27             : submodule (pm_mathRoot) routines ! LCOV_EXCL_LINE
      28             : 
      29             : #if CHECK_ENABLED
      30             :     use pm_err, only: getFine
      31             :     use pm_val2str, only: getStr
      32             :     use pm_err, only: setAsserted
      33             : #define CHECK_ASSERTION(LINE,ASSERTION,MSG) \
      34             : call setAsserted(ASSERTION,getFine(__FILE__,LINE)//MODULE_NAME//MSG);
      35             : #else
      36             : #define CHECK_ASSERTION(LINE,ASSERTION,MSG)
      37             : #endif
      38             : 
      39             :     implicit none
      40             : 
      41             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      42             : 
      43             : contains
      44             : 
      45             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      46             : 
      47             : #define getRoot_ENABLED 1
      48             : 
      49             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      50             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      51             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      52             : 
      53             : #define Def_ENABLED 1
      54             : 
      55             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      56             : 
      57             : #define RK_ENABLED 1
      58             : 
      59             : #if RK5_ENABLED
      60             :     module procedure getRootDef_RK5
      61             :         use pm_kind, only: RKC => RK5
      62             : #include "pm_mathRoot@routines.inc.F90"
      63             :     end procedure
      64             : #endif
      65             : 
      66             : #if RK4_ENABLED
      67       24005 :     module procedure getRootDef_RK4
      68             :         use pm_kind, only: RKC => RK4
      69             : #include "pm_mathRoot@routines.inc.F90"
      70       24005 :     end procedure
      71             : #endif
      72             : 
      73             : #if RK3_ENABLED
      74       24000 :     module procedure getRootDef_RK3
      75             :         use pm_kind, only: RKC => RK3
      76             : #include "pm_mathRoot@routines.inc.F90"
      77       24000 :     end procedure
      78             : #endif
      79             : 
      80             : #if RK2_ENABLED
      81       24001 :     module procedure getRootDef_RK2
      82             :         use pm_kind, only: RKC => RK2
      83             : #include "pm_mathRoot@routines.inc.F90"
      84       24001 :     end procedure
      85             : #endif
      86             : 
      87             : #if RK1_ENABLED
      88       24000 :     module procedure getRootDef_RK1
      89             :         use pm_kind, only: RKC => RK1
      90             : #include "pm_mathRoot@routines.inc.F90"
      91       24000 :     end procedure
      92             : #endif
      93             : 
      94             : #undef RK_ENABLED
      95             : 
      96             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
      97             : 
      98             : #undef Def_ENABLED
      99             : 
     100             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     101             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     102             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     103             : 
     104             : #define False_ENABLED 1
     105             : 
     106             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     107             : 
     108             : #define RK_ENABLED 1
     109             : 
     110             : #if RK5_ENABLED
     111             :     module procedure getRootFalse_RK5
     112             :         use pm_kind, only: RKC => RK5
     113             : #include "pm_mathRoot@routines.inc.F90"
     114             :     end procedure
     115             : #endif
     116             : 
     117             : #if RK4_ENABLED
     118         803 :     module procedure getRootFalse_RK4
     119             :         use pm_kind, only: RKC => RK4
     120             : #include "pm_mathRoot@routines.inc.F90"
     121         803 :     end procedure
     122             : #endif
     123             : 
     124             : #if RK3_ENABLED
     125         800 :     module procedure getRootFalse_RK3
     126             :         use pm_kind, only: RKC => RK3
     127             : #include "pm_mathRoot@routines.inc.F90"
     128         800 :     end procedure
     129             : #endif
     130             : 
     131             : #if RK2_ENABLED
     132         800 :     module procedure getRootFalse_RK2
     133             :         use pm_kind, only: RKC => RK2
     134             : #include "pm_mathRoot@routines.inc.F90"
     135         800 :     end procedure
     136             : #endif
     137             : 
     138             : #if RK1_ENABLED
     139         800 :     module procedure getRootFalse_RK1
     140             :         use pm_kind, only: RKC => RK1
     141             : #include "pm_mathRoot@routines.inc.F90"
     142         800 :     end procedure
     143             : #endif
     144             : 
     145             : #undef RK_ENABLED
     146             : 
     147             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     148             : 
     149             : #undef False_ENABLED
     150             : 
     151             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     152             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     153             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     154             : 
     155             : #define Bisection_ENABLED 1
     156             : 
     157             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     158             : 
     159             : #define RK_ENABLED 1
     160             : 
     161             : #if RK5_ENABLED
     162             :     module procedure getRootBisection_RK5
     163             :         use pm_kind, only: RKC => RK5
     164             : #include "pm_mathRoot@routines.inc.F90"
     165             :     end procedure
     166             : #endif
     167             : 
     168             : #if RK4_ENABLED
     169         803 :     module procedure getRootBisection_RK4
     170             :         use pm_kind, only: RKC => RK4
     171             : #include "pm_mathRoot@routines.inc.F90"
     172         803 :     end procedure
     173             : #endif
     174             : 
     175             : #if RK3_ENABLED
     176         800 :     module procedure getRootBisection_RK3
     177             :         use pm_kind, only: RKC => RK3
     178             : #include "pm_mathRoot@routines.inc.F90"
     179         800 :     end procedure
     180             : #endif
     181             : 
     182             : #if RK2_ENABLED
     183         800 :     module procedure getRootBisection_RK2
     184             :         use pm_kind, only: RKC => RK2
     185             : #include "pm_mathRoot@routines.inc.F90"
     186         800 :     end procedure
     187             : #endif
     188             : 
     189             : #if RK1_ENABLED
     190         800 :     module procedure getRootBisection_RK1
     191             :         use pm_kind, only: RKC => RK1
     192             : #include "pm_mathRoot@routines.inc.F90"
     193         800 :     end procedure
     194             : #endif
     195             : 
     196             : #undef RK_ENABLED
     197             : 
     198             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     199             : 
     200             : #undef Bisection_ENABLED
     201             : 
     202             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     203             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     204             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     205             : 
     206             : #define Secant_ENABLED 1
     207             : 
     208             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     209             : 
     210             : #define RK_ENABLED 1
     211             : 
     212             : #if RK5_ENABLED
     213             :     module procedure getRootSecant_RK5
     214             :         use pm_kind, only: RKC => RK5
     215             : #include "pm_mathRoot@routines.inc.F90"
     216             :     end procedure
     217             : #endif
     218             : 
     219             : #if RK4_ENABLED
     220         803 :     module procedure getRootSecant_RK4
     221             :         use pm_kind, only: RKC => RK4
     222             : #include "pm_mathRoot@routines.inc.F90"
     223         803 :     end procedure
     224             : #endif
     225             : 
     226             : #if RK3_ENABLED
     227         800 :     module procedure getRootSecant_RK3
     228             :         use pm_kind, only: RKC => RK3
     229             : #include "pm_mathRoot@routines.inc.F90"
     230         800 :     end procedure
     231             : #endif
     232             : 
     233             : #if RK2_ENABLED
     234         800 :     module procedure getRootSecant_RK2
     235             :         use pm_kind, only: RKC => RK2
     236             : #include "pm_mathRoot@routines.inc.F90"
     237         800 :     end procedure
     238             : #endif
     239             : 
     240             : #if RK1_ENABLED
     241         800 :     module procedure getRootSecant_RK1
     242             :         use pm_kind, only: RKC => RK1
     243             : #include "pm_mathRoot@routines.inc.F90"
     244         800 :     end procedure
     245             : #endif
     246             : 
     247             : #undef RK_ENABLED
     248             : 
     249             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     250             : 
     251             : #undef Secant_ENABLED
     252             : 
     253             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     254             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     255             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     256             : 
     257             : #define Brent_ENABLED 1
     258             : 
     259             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     260             : 
     261             : #define RK_ENABLED 1
     262             : 
     263             : #if RK5_ENABLED
     264             :     module procedure getRootBrent_RK5
     265             :         use pm_kind, only: RKC => RK5
     266             : #include "pm_mathRoot@routines.inc.F90"
     267             :     end procedure
     268             : #endif
     269             : 
     270             : #if RK4_ENABLED
     271       25608 :     module procedure getRootBrent_RK4
     272             :         use pm_kind, only: RKC => RK4
     273             : #include "pm_mathRoot@routines.inc.F90"
     274       25608 :     end procedure
     275             : #endif
     276             : 
     277             : #if RK3_ENABLED
     278       25600 :     module procedure getRootBrent_RK3
     279             :         use pm_kind, only: RKC => RK3
     280             : #include "pm_mathRoot@routines.inc.F90"
     281       25600 :     end procedure
     282             : #endif
     283             : 
     284             : #if RK2_ENABLED
     285       25601 :     module procedure getRootBrent_RK2
     286             :         use pm_kind, only: RKC => RK2
     287             : #include "pm_mathRoot@routines.inc.F90"
     288       25601 :     end procedure
     289             : #endif
     290             : 
     291             : #if RK1_ENABLED
     292       25600 :     module procedure getRootBrent_RK1
     293             :         use pm_kind, only: RKC => RK1
     294             : #include "pm_mathRoot@routines.inc.F90"
     295       25600 :     end procedure
     296             : #endif
     297             : 
     298             : #undef RK_ENABLED
     299             : 
     300             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     301             : 
     302             : #undef Brent_ENABLED
     303             : 
     304             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     305             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     306             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     307             : 
     308             : #define Ridders_ENABLED 1
     309             : 
     310             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     311             : 
     312             : #define RK_ENABLED 1
     313             : 
     314             : #if RK5_ENABLED
     315             :     module procedure getRootRidders_RK5
     316             :         use pm_kind, only: RKC => RK5
     317             : #include "pm_mathRoot@routines.inc.F90"
     318             :     end procedure
     319             : #endif
     320             : 
     321             : #if RK4_ENABLED
     322         803 :     module procedure getRootRidders_RK4
     323             :         use pm_kind, only: RKC => RK4
     324             : #include "pm_mathRoot@routines.inc.F90"
     325         803 :     end procedure
     326             : #endif
     327             : 
     328             : #if RK3_ENABLED
     329         800 :     module procedure getRootRidders_RK3
     330             :         use pm_kind, only: RKC => RK3
     331             : #include "pm_mathRoot@routines.inc.F90"
     332         800 :     end procedure
     333             : #endif
     334             : 
     335             : #if RK2_ENABLED
     336         800 :     module procedure getRootRidders_RK2
     337             :         use pm_kind, only: RKC => RK2
     338             : #include "pm_mathRoot@routines.inc.F90"
     339         800 :     end procedure
     340             : #endif
     341             : 
     342             : #if RK1_ENABLED
     343         800 :     module procedure getRootRidders_RK1
     344             :         use pm_kind, only: RKC => RK1
     345             : #include "pm_mathRoot@routines.inc.F90"
     346         800 :     end procedure
     347             : #endif
     348             : 
     349             : #undef RK_ENABLED
     350             : 
     351             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     352             : 
     353             : #undef Ridders_ENABLED
     354             : 
     355             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     356             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     357             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     358             : 
     359             : #define TOMS748_ENABLED 1
     360             : 
     361             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     362             : 
     363             : #define RK_ENABLED 1
     364             : 
     365             : #if RK5_ENABLED
     366             :     module procedure getRootTOMS748_RK5
     367             :         use pm_kind, only: RKC => RK5
     368             : #include "pm_mathRoot@routines.inc.F90"
     369             :     end procedure
     370             : #endif
     371             : 
     372             : #if RK4_ENABLED
     373         803 :     module procedure getRootTOMS748_RK4
     374             :         use pm_kind, only: RKC => RK4
     375             : #include "pm_mathRoot@routines.inc.F90"
     376         803 :     end procedure
     377             : #endif
     378             : 
     379             : #if RK3_ENABLED
     380         800 :     module procedure getRootTOMS748_RK3
     381             :         use pm_kind, only: RKC => RK3
     382             : #include "pm_mathRoot@routines.inc.F90"
     383         800 :     end procedure
     384             : #endif
     385             : 
     386             : #if RK2_ENABLED
     387         800 :     module procedure getRootTOMS748_RK2
     388             :         use pm_kind, only: RKC => RK2
     389             : #include "pm_mathRoot@routines.inc.F90"
     390         800 :     end procedure
     391             : #endif
     392             : 
     393             : #if RK1_ENABLED
     394         800 :     module procedure getRootTOMS748_RK1
     395             :         use pm_kind, only: RKC => RK1
     396             : #include "pm_mathRoot@routines.inc.F90"
     397         800 :     end procedure
     398             : #endif
     399             : 
     400             : #undef RK_ENABLED
     401             : 
     402             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     403             : 
     404             : #undef TOMS748_ENABLED
     405             : 
     406             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     407             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     408             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     409             : 
     410             : #define Newton_ENABLED 1
     411             : 
     412             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     413             : 
     414             : #define RK_ENABLED 1
     415             : 
     416             : #if RK5_ENABLED
     417             :     module procedure getRootNewton_RK5
     418             :         use pm_kind, only: RKC => RK5
     419             : #include "pm_mathRoot@routines.inc.F90"
     420             :     end procedure
     421             : #endif
     422             : 
     423             : #if RK4_ENABLED
     424        1603 :     module procedure getRootNewton_RK4
     425             :         use pm_kind, only: RKC => RK4
     426             : #include "pm_mathRoot@routines.inc.F90"
     427        1603 :     end procedure
     428             : #endif
     429             : 
     430             : #if RK3_ENABLED
     431        1600 :     module procedure getRootNewton_RK3
     432             :         use pm_kind, only: RKC => RK3
     433             : #include "pm_mathRoot@routines.inc.F90"
     434        1600 :     end procedure
     435             : #endif
     436             : 
     437             : #if RK2_ENABLED
     438        1600 :     module procedure getRootNewton_RK2
     439             :         use pm_kind, only: RKC => RK2
     440             : #include "pm_mathRoot@routines.inc.F90"
     441        1600 :     end procedure
     442             : #endif
     443             : 
     444             : #if RK1_ENABLED
     445        1600 :     module procedure getRootNewton_RK1
     446             :         use pm_kind, only: RKC => RK1
     447             : #include "pm_mathRoot@routines.inc.F90"
     448        1600 :     end procedure
     449             : #endif
     450             : 
     451             : #undef RK_ENABLED
     452             : 
     453             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     454             : 
     455             : #undef Newton_ENABLED
     456             : 
     457             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     458             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     459             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     460             : 
     461             : #define Halley_ENABLED 1
     462             : 
     463             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     464             : 
     465             : #define RK_ENABLED 1
     466             : 
     467             : #if RK5_ENABLED
     468             :     module procedure getRootHalley_RK5
     469             :         use pm_kind, only: RKC => RK5
     470             : #include "pm_mathRoot@routines.inc.F90"
     471             :     end procedure
     472             : #endif
     473             : 
     474             : #if RK4_ENABLED
     475        1603 :     module procedure getRootHalley_RK4
     476             :         use pm_kind, only: RKC => RK4
     477             : #include "pm_mathRoot@routines.inc.F90"
     478        1603 :     end procedure
     479             : #endif
     480             : 
     481             : #if RK3_ENABLED
     482        1600 :     module procedure getRootHalley_RK3
     483             :         use pm_kind, only: RKC => RK3
     484             : #include "pm_mathRoot@routines.inc.F90"
     485        1600 :     end procedure
     486             : #endif
     487             : 
     488             : #if RK2_ENABLED
     489        1600 :     module procedure getRootHalley_RK2
     490             :         use pm_kind, only: RKC => RK2
     491             : #include "pm_mathRoot@routines.inc.F90"
     492        1600 :     end procedure
     493             : #endif
     494             : 
     495             : #if RK1_ENABLED
     496        1600 :     module procedure getRootHalley_RK1
     497             :         use pm_kind, only: RKC => RK1
     498             : #include "pm_mathRoot@routines.inc.F90"
     499        1600 :     end procedure
     500             : #endif
     501             : 
     502             : #undef RK_ENABLED
     503             : 
     504             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     505             : 
     506             : #undef Halley_ENABLED
     507             : 
     508             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     509             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     510             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     511             : 
     512             : #define Schroder_ENABLED 1
     513             : 
     514             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     515             : 
     516             : #define RK_ENABLED 1
     517             : 
     518             : #if RK5_ENABLED
     519             :     module procedure getRootSchroder_RK5
     520             :         use pm_kind, only: RKC => RK5
     521             : #include "pm_mathRoot@routines.inc.F90"
     522             :     end procedure
     523             : #endif
     524             : 
     525             : #if RK4_ENABLED
     526        1603 :     module procedure getRootSchroder_RK4
     527             :         use pm_kind, only: RKC => RK4
     528             : #include "pm_mathRoot@routines.inc.F90"
     529        1603 :     end procedure
     530             : #endif
     531             : 
     532             : #if RK3_ENABLED
     533        1600 :     module procedure getRootSchroder_RK3
     534             :         use pm_kind, only: RKC => RK3
     535             : #include "pm_mathRoot@routines.inc.F90"
     536        1600 :     end procedure
     537             : #endif
     538             : 
     539             : #if RK2_ENABLED
     540        1600 :     module procedure getRootSchroder_RK2
     541             :         use pm_kind, only: RKC => RK2
     542             : #include "pm_mathRoot@routines.inc.F90"
     543        1600 :     end procedure
     544             : #endif
     545             : 
     546             : #if RK1_ENABLED
     547        1600 :     module procedure getRootSchroder_RK1
     548             :         use pm_kind, only: RKC => RK1
     549             : #include "pm_mathRoot@routines.inc.F90"
     550        1600 :     end procedure
     551             : #endif
     552             : 
     553             : #undef RK_ENABLED
     554             : 
     555             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     556             : 
     557             : #undef Schroder_ENABLED
     558             : 
     559             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     560             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     561             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     562             : 
     563             : #undef getRoot_ENABLED
     564             : 
     565             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     566             : 
     567             : #define setRoot_ENABLED 1
     568             : 
     569             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     570             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     571             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     572             : 
     573             : #define False_ENABLED 1
     574             : 
     575             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     576             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     577             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     578             : 
     579             : #define Fixed_ENABLED 1
     580             : 
     581             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     582             : 
     583             : #define RK_ENABLED 1
     584             : 
     585             : #if RK5_ENABLED
     586             :     module procedure setRootFalseFixed_RK5
     587             :         use pm_kind, only: RKC => RK5
     588             : #include "pm_mathRoot@routines.inc.F90"
     589             :     end procedure
     590             : #endif
     591             : 
     592             : #if RK4_ENABLED
     593         506 :     module procedure setRootFalseFixed_RK4
     594             :         use pm_kind, only: RKC => RK4
     595             : #include "pm_mathRoot@routines.inc.F90"
     596             :     end procedure
     597             : #endif
     598             : 
     599             : #if RK3_ENABLED
     600         500 :     module procedure setRootFalseFixed_RK3
     601             :         use pm_kind, only: RKC => RK3
     602             : #include "pm_mathRoot@routines.inc.F90"
     603             :     end procedure
     604             : #endif
     605             : 
     606             : #if RK2_ENABLED
     607         500 :     module procedure setRootFalseFixed_RK2
     608             :         use pm_kind, only: RKC => RK2
     609             : #include "pm_mathRoot@routines.inc.F90"
     610             :     end procedure
     611             : #endif
     612             : 
     613             : #if RK1_ENABLED
     614         500 :     module procedure setRootFalseFixed_RK1
     615             :         use pm_kind, only: RKC => RK1
     616             : #include "pm_mathRoot@routines.inc.F90"
     617             :     end procedure
     618             : #endif
     619             : 
     620             : #undef RK_ENABLED
     621             : 
     622             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     623             : 
     624             : #undef Fixed_ENABLED
     625             : 
     626             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     627             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     628             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     629             : 
     630             : #define Niter_ENABLED 1
     631             : 
     632             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     633             : 
     634             : #define RK_ENABLED 1
     635             : 
     636             : #if RK5_ENABLED
     637             :     module procedure setRootFalseNiter_RK5
     638             :         use pm_kind, only: RKC => RK5
     639             : #include "pm_mathRoot@routines.inc.F90"
     640             :     end procedure
     641             : #endif
     642             : 
     643             : #if RK4_ENABLED
     644         500 :     module procedure setRootFalseNiter_RK4
     645             :         use pm_kind, only: RKC => RK4
     646             : #include "pm_mathRoot@routines.inc.F90"
     647             :     end procedure
     648             : #endif
     649             : 
     650             : #if RK3_ENABLED
     651         500 :     module procedure setRootFalseNiter_RK3
     652             :         use pm_kind, only: RKC => RK3
     653             : #include "pm_mathRoot@routines.inc.F90"
     654             :     end procedure
     655             : #endif
     656             : 
     657             : #if RK2_ENABLED
     658         500 :     module procedure setRootFalseNiter_RK2
     659             :         use pm_kind, only: RKC => RK2
     660             : #include "pm_mathRoot@routines.inc.F90"
     661             :     end procedure
     662             : #endif
     663             : 
     664             : #if RK1_ENABLED
     665         500 :     module procedure setRootFalseNiter_RK1
     666             :         use pm_kind, only: RKC => RK1
     667             : #include "pm_mathRoot@routines.inc.F90"
     668             :     end procedure
     669             : #endif
     670             : 
     671             : #undef RK_ENABLED
     672             : 
     673             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     674             : 
     675             : #undef Niter_ENABLED
     676             : 
     677             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     678             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     679             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     680             : 
     681             : #undef False_ENABLED
     682             : 
     683             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     684             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     685             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     686             : 
     687             : #define Bisection_ENABLED 1
     688             : 
     689             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     690             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     691             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     692             : 
     693             : #define Fixed_ENABLED 1
     694             : 
     695             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     696             : 
     697             : #define RK_ENABLED 1
     698             : 
     699             : #if RK5_ENABLED
     700             :     module procedure setRootBisectionFixed_RK5
     701             :         use pm_kind, only: RKC => RK5
     702             : #include "pm_mathRoot@routines.inc.F90"
     703             :     end procedure
     704             : #endif
     705             : 
     706             : #if RK4_ENABLED
     707         506 :     module procedure setRootBisectionFixed_RK4
     708             :         use pm_kind, only: RKC => RK4
     709             : #include "pm_mathRoot@routines.inc.F90"
     710             :     end procedure
     711             : #endif
     712             : 
     713             : #if RK3_ENABLED
     714         500 :     module procedure setRootBisectionFixed_RK3
     715             :         use pm_kind, only: RKC => RK3
     716             : #include "pm_mathRoot@routines.inc.F90"
     717             :     end procedure
     718             : #endif
     719             : 
     720             : #if RK2_ENABLED
     721         500 :     module procedure setRootBisectionFixed_RK2
     722             :         use pm_kind, only: RKC => RK2
     723             : #include "pm_mathRoot@routines.inc.F90"
     724             :     end procedure
     725             : #endif
     726             : 
     727             : #if RK1_ENABLED
     728         500 :     module procedure setRootBisectionFixed_RK1
     729             :         use pm_kind, only: RKC => RK1
     730             : #include "pm_mathRoot@routines.inc.F90"
     731             :     end procedure
     732             : #endif
     733             : 
     734             : #undef RK_ENABLED
     735             : 
     736             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     737             : 
     738             : #undef Fixed_ENABLED
     739             : 
     740             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     741             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     742             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     743             : 
     744             : #define Niter_ENABLED 1
     745             : 
     746             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     747             : 
     748             : #define RK_ENABLED 1
     749             : 
     750             : #if RK5_ENABLED
     751             :     module procedure setRootBisectionNiter_RK5
     752             :         use pm_kind, only: RKC => RK5
     753             : #include "pm_mathRoot@routines.inc.F90"
     754             :     end procedure
     755             : #endif
     756             : 
     757             : #if RK4_ENABLED
     758         500 :     module procedure setRootBisectionNiter_RK4
     759             :         use pm_kind, only: RKC => RK4
     760             : #include "pm_mathRoot@routines.inc.F90"
     761             :     end procedure
     762             : #endif
     763             : 
     764             : #if RK3_ENABLED
     765         500 :     module procedure setRootBisectionNiter_RK3
     766             :         use pm_kind, only: RKC => RK3
     767             : #include "pm_mathRoot@routines.inc.F90"
     768             :     end procedure
     769             : #endif
     770             : 
     771             : #if RK2_ENABLED
     772         500 :     module procedure setRootBisectionNiter_RK2
     773             :         use pm_kind, only: RKC => RK2
     774             : #include "pm_mathRoot@routines.inc.F90"
     775             :     end procedure
     776             : #endif
     777             : 
     778             : #if RK1_ENABLED
     779         500 :     module procedure setRootBisectionNiter_RK1
     780             :         use pm_kind, only: RKC => RK1
     781             : #include "pm_mathRoot@routines.inc.F90"
     782             :     end procedure
     783             : #endif
     784             : 
     785             : #undef RK_ENABLED
     786             : 
     787             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     788             : 
     789             : #undef Niter_ENABLED
     790             : 
     791             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     792             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     793             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     794             : 
     795             : #undef Bisection_ENABLED
     796             : 
     797             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     798             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     799             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     800             : 
     801             : #define Secant_ENABLED 1
     802             : 
     803             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     804             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     805             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     806             : 
     807             : #define Fixed_ENABLED 1
     808             : 
     809             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     810             : 
     811             : #define RK_ENABLED 1
     812             : 
     813             : #if RK5_ENABLED
     814             :     module procedure setRootSecantFixed_RK5
     815             :         use pm_kind, only: RKC => RK5
     816             : #include "pm_mathRoot@routines.inc.F90"
     817             :     end procedure
     818             : #endif
     819             : 
     820             : #if RK4_ENABLED
     821         506 :     module procedure setRootSecantFixed_RK4
     822             :         use pm_kind, only: RKC => RK4
     823             : #include "pm_mathRoot@routines.inc.F90"
     824             :     end procedure
     825             : #endif
     826             : 
     827             : #if RK3_ENABLED
     828         500 :     module procedure setRootSecantFixed_RK3
     829             :         use pm_kind, only: RKC => RK3
     830             : #include "pm_mathRoot@routines.inc.F90"
     831             :     end procedure
     832             : #endif
     833             : 
     834             : #if RK2_ENABLED
     835         500 :     module procedure setRootSecantFixed_RK2
     836             :         use pm_kind, only: RKC => RK2
     837             : #include "pm_mathRoot@routines.inc.F90"
     838             :     end procedure
     839             : #endif
     840             : 
     841             : #if RK1_ENABLED
     842         500 :     module procedure setRootSecantFixed_RK1
     843             :         use pm_kind, only: RKC => RK1
     844             : #include "pm_mathRoot@routines.inc.F90"
     845             :     end procedure
     846             : #endif
     847             : 
     848             : #undef RK_ENABLED
     849             : 
     850             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     851             : 
     852             : #undef Fixed_ENABLED
     853             : 
     854             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     855             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     856             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     857             : 
     858             : #define Niter_ENABLED 1
     859             : 
     860             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     861             : 
     862             : #define RK_ENABLED 1
     863             : 
     864             : #if RK5_ENABLED
     865             :     module procedure setRootSecantNiter_RK5
     866             :         use pm_kind, only: RKC => RK5
     867             : #include "pm_mathRoot@routines.inc.F90"
     868             :     end procedure
     869             : #endif
     870             : 
     871             : #if RK4_ENABLED
     872         500 :     module procedure setRootSecantNiter_RK4
     873             :         use pm_kind, only: RKC => RK4
     874             : #include "pm_mathRoot@routines.inc.F90"
     875             :     end procedure
     876             : #endif
     877             : 
     878             : #if RK3_ENABLED
     879         500 :     module procedure setRootSecantNiter_RK3
     880             :         use pm_kind, only: RKC => RK3
     881             : #include "pm_mathRoot@routines.inc.F90"
     882             :     end procedure
     883             : #endif
     884             : 
     885             : #if RK2_ENABLED
     886         500 :     module procedure setRootSecantNiter_RK2
     887             :         use pm_kind, only: RKC => RK2
     888             : #include "pm_mathRoot@routines.inc.F90"
     889             :     end procedure
     890             : #endif
     891             : 
     892             : #if RK1_ENABLED
     893         500 :     module procedure setRootSecantNiter_RK1
     894             :         use pm_kind, only: RKC => RK1
     895             : #include "pm_mathRoot@routines.inc.F90"
     896             :     end procedure
     897             : #endif
     898             : 
     899             : #undef RK_ENABLED
     900             : 
     901             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     902             : 
     903             : #undef Niter_ENABLED
     904             : 
     905             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     906             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     907             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     908             : 
     909             : #undef Secant_ENABLED
     910             : 
     911             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     912             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     913             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     914             : 
     915             : #define Brent_ENABLED 1
     916             : 
     917             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     918             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     919             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     920             : 
     921             : #define Fixed_ENABLED 1
     922             : 
     923             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     924             : 
     925             : #define RK_ENABLED 1
     926             : 
     927             : #if RK5_ENABLED
     928             :     module procedure setRootBrentFixed_RK5
     929             :         use pm_kind, only: RKC => RK5
     930             : #include "pm_mathRoot@routines.inc.F90"
     931             :     end procedure
     932             : #endif
     933             : 
     934             : #if RK4_ENABLED
     935        4911 :     module procedure setRootBrentFixed_RK4
     936             :         use pm_kind, only: RKC => RK4
     937             : #include "pm_mathRoot@routines.inc.F90"
     938             :     end procedure
     939             : #endif
     940             : 
     941             : #if RK3_ENABLED
     942        4900 :     module procedure setRootBrentFixed_RK3
     943             :         use pm_kind, only: RKC => RK3
     944             : #include "pm_mathRoot@routines.inc.F90"
     945             :     end procedure
     946             : #endif
     947             : 
     948             : #if RK2_ENABLED
     949        4901 :     module procedure setRootBrentFixed_RK2
     950             :         use pm_kind, only: RKC => RK2
     951             : #include "pm_mathRoot@routines.inc.F90"
     952             :     end procedure
     953             : #endif
     954             : 
     955             : #if RK1_ENABLED
     956        4900 :     module procedure setRootBrentFixed_RK1
     957             :         use pm_kind, only: RKC => RK1
     958             : #include "pm_mathRoot@routines.inc.F90"
     959             :     end procedure
     960             : #endif
     961             : 
     962             : #undef RK_ENABLED
     963             : 
     964             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     965             : 
     966             : #undef Fixed_ENABLED
     967             : 
     968             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     969             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     970             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     971             : 
     972             : #define Niter_ENABLED 1
     973             : 
     974             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
     975             : 
     976             : #define RK_ENABLED 1
     977             : 
     978             : #if RK5_ENABLED
     979             :     module procedure setRootBrentNiter_RK5
     980             :         use pm_kind, only: RKC => RK5
     981             : #include "pm_mathRoot@routines.inc.F90"
     982             :     end procedure
     983             : #endif
     984             : 
     985             : #if RK4_ENABLED
     986       20900 :     module procedure setRootBrentNiter_RK4
     987             :         use pm_kind, only: RKC => RK4
     988             : #include "pm_mathRoot@routines.inc.F90"
     989             :     end procedure
     990             : #endif
     991             : 
     992             : #if RK3_ENABLED
     993       20900 :     module procedure setRootBrentNiter_RK3
     994             :         use pm_kind, only: RKC => RK3
     995             : #include "pm_mathRoot@routines.inc.F90"
     996             :     end procedure
     997             : #endif
     998             : 
     999             : #if RK2_ENABLED
    1000       20900 :     module procedure setRootBrentNiter_RK2
    1001             :         use pm_kind, only: RKC => RK2
    1002             : #include "pm_mathRoot@routines.inc.F90"
    1003             :     end procedure
    1004             : #endif
    1005             : 
    1006             : #if RK1_ENABLED
    1007       20900 :     module procedure setRootBrentNiter_RK1
    1008             :         use pm_kind, only: RKC => RK1
    1009             : #include "pm_mathRoot@routines.inc.F90"
    1010             :     end procedure
    1011             : #endif
    1012             : 
    1013             : #undef RK_ENABLED
    1014             : 
    1015             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1016             : 
    1017             : #undef Niter_ENABLED
    1018             : 
    1019             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1020             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1021             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1022             : 
    1023             : #undef Brent_ENABLED
    1024             : 
    1025             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1026             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1027             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1028             : 
    1029             : #define Ridders_ENABLED 1
    1030             : 
    1031             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1032             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1033             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1034             : 
    1035             : #define Fixed_ENABLED 1
    1036             : 
    1037             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1038             : 
    1039             : #define RK_ENABLED 1
    1040             : 
    1041             : #if RK5_ENABLED
    1042             :     module procedure setRootRiddersFixed_RK5
    1043             :         use pm_kind, only: RKC => RK5
    1044             : #include "pm_mathRoot@routines.inc.F90"
    1045             :     end procedure
    1046             : #endif
    1047             : 
    1048             : #if RK4_ENABLED
    1049         506 :     module procedure setRootRiddersFixed_RK4
    1050             :         use pm_kind, only: RKC => RK4
    1051             : #include "pm_mathRoot@routines.inc.F90"
    1052             :     end procedure
    1053             : #endif
    1054             : 
    1055             : #if RK3_ENABLED
    1056         500 :     module procedure setRootRiddersFixed_RK3
    1057             :         use pm_kind, only: RKC => RK3
    1058             : #include "pm_mathRoot@routines.inc.F90"
    1059             :     end procedure
    1060             : #endif
    1061             : 
    1062             : #if RK2_ENABLED
    1063         500 :     module procedure setRootRiddersFixed_RK2
    1064             :         use pm_kind, only: RKC => RK2
    1065             : #include "pm_mathRoot@routines.inc.F90"
    1066             :     end procedure
    1067             : #endif
    1068             : 
    1069             : #if RK1_ENABLED
    1070         500 :     module procedure setRootRiddersFixed_RK1
    1071             :         use pm_kind, only: RKC => RK1
    1072             : #include "pm_mathRoot@routines.inc.F90"
    1073             :     end procedure
    1074             : #endif
    1075             : 
    1076             : #undef RK_ENABLED
    1077             : 
    1078             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1079             : 
    1080             : #undef Fixed_ENABLED
    1081             : 
    1082             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1083             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1084             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1085             : 
    1086             : #define Niter_ENABLED 1
    1087             : 
    1088             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1089             : 
    1090             : #define RK_ENABLED 1
    1091             : 
    1092             : #if RK5_ENABLED
    1093             :     module procedure setRootRiddersNiter_RK5
    1094             :         use pm_kind, only: RKC => RK5
    1095             : #include "pm_mathRoot@routines.inc.F90"
    1096             :     end procedure
    1097             : #endif
    1098             : 
    1099             : #if RK4_ENABLED
    1100         500 :     module procedure setRootRiddersNiter_RK4
    1101             :         use pm_kind, only: RKC => RK4
    1102             : #include "pm_mathRoot@routines.inc.F90"
    1103             :     end procedure
    1104             : #endif
    1105             : 
    1106             : #if RK3_ENABLED
    1107         500 :     module procedure setRootRiddersNiter_RK3
    1108             :         use pm_kind, only: RKC => RK3
    1109             : #include "pm_mathRoot@routines.inc.F90"
    1110             :     end procedure
    1111             : #endif
    1112             : 
    1113             : #if RK2_ENABLED
    1114         500 :     module procedure setRootRiddersNiter_RK2
    1115             :         use pm_kind, only: RKC => RK2
    1116             : #include "pm_mathRoot@routines.inc.F90"
    1117             :     end procedure
    1118             : #endif
    1119             : 
    1120             : #if RK1_ENABLED
    1121         500 :     module procedure setRootRiddersNiter_RK1
    1122             :         use pm_kind, only: RKC => RK1
    1123             : #include "pm_mathRoot@routines.inc.F90"
    1124             :     end procedure
    1125             : #endif
    1126             : 
    1127             : #undef RK_ENABLED
    1128             : 
    1129             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1130             : 
    1131             : #undef Niter_ENABLED
    1132             : 
    1133             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1134             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1135             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1136             : 
    1137             : #undef Ridders_ENABLED
    1138             : 
    1139             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1140             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1141             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1142             : 
    1143             : #define TOMS748_ENABLED 1
    1144             : 
    1145             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1146             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1147             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1148             : 
    1149             : #define Fixed_ENABLED 1
    1150             : 
    1151             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1152             : 
    1153             : #define RK_ENABLED 1
    1154             : 
    1155             : #if RK5_ENABLED
    1156             :     module procedure setRootTOMS748Fixed_RK5
    1157             :         use pm_kind, only: RKC => RK5
    1158             : #include "pm_mathRoot@routines.inc.F90"
    1159             :     end procedure
    1160             : #endif
    1161             : 
    1162             : #if RK4_ENABLED
    1163         506 :     module procedure setRootTOMS748Fixed_RK4
    1164             :         use pm_kind, only: RKC => RK4
    1165             : #include "pm_mathRoot@routines.inc.F90"
    1166             :     end procedure
    1167             : #endif
    1168             : 
    1169             : #if RK3_ENABLED
    1170         500 :     module procedure setRootTOMS748Fixed_RK3
    1171             :         use pm_kind, only: RKC => RK3
    1172             : #include "pm_mathRoot@routines.inc.F90"
    1173             :     end procedure
    1174             : #endif
    1175             : 
    1176             : #if RK2_ENABLED
    1177         500 :     module procedure setRootTOMS748Fixed_RK2
    1178             :         use pm_kind, only: RKC => RK2
    1179             : #include "pm_mathRoot@routines.inc.F90"
    1180             :     end procedure
    1181             : #endif
    1182             : 
    1183             : #if RK1_ENABLED
    1184         500 :     module procedure setRootTOMS748Fixed_RK1
    1185             :         use pm_kind, only: RKC => RK1
    1186             : #include "pm_mathRoot@routines.inc.F90"
    1187             :     end procedure
    1188             : #endif
    1189             : 
    1190             : #undef RK_ENABLED
    1191             : 
    1192             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1193             : 
    1194             : #undef Fixed_ENABLED
    1195             : 
    1196             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1197             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1198             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1199             : 
    1200             : #define Niter_ENABLED 1
    1201             : 
    1202             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1203             : 
    1204             : #define RK_ENABLED 1
    1205             : 
    1206             : #if RK5_ENABLED
    1207             :     module procedure setRootTOMS748Niter_RK5
    1208             :         use pm_kind, only: RKC => RK5
    1209             : #include "pm_mathRoot@routines.inc.F90"
    1210             :     end procedure
    1211             : #endif
    1212             : 
    1213             : #if RK4_ENABLED
    1214         500 :     module procedure setRootTOMS748Niter_RK4
    1215             :         use pm_kind, only: RKC => RK4
    1216             : #include "pm_mathRoot@routines.inc.F90"
    1217             :     end procedure
    1218             : #endif
    1219             : 
    1220             : #if RK3_ENABLED
    1221         500 :     module procedure setRootTOMS748Niter_RK3
    1222             :         use pm_kind, only: RKC => RK3
    1223             : #include "pm_mathRoot@routines.inc.F90"
    1224             :     end procedure
    1225             : #endif
    1226             : 
    1227             : #if RK2_ENABLED
    1228         500 :     module procedure setRootTOMS748Niter_RK2
    1229             :         use pm_kind, only: RKC => RK2
    1230             : #include "pm_mathRoot@routines.inc.F90"
    1231             :     end procedure
    1232             : #endif
    1233             : 
    1234             : #if RK1_ENABLED
    1235         500 :     module procedure setRootTOMS748Niter_RK1
    1236             :         use pm_kind, only: RKC => RK1
    1237             : #include "pm_mathRoot@routines.inc.F90"
    1238             :     end procedure
    1239             : #endif
    1240             : 
    1241             : #undef RK_ENABLED
    1242             : 
    1243             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1244             : 
    1245             : #undef Niter_ENABLED
    1246             : 
    1247             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1248             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1249             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1250             : 
    1251             : #undef TOMS748_ENABLED
    1252             : 
    1253             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1254             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1255             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1256             : 
    1257             : #define Newton_ENABLED 1
    1258             : 
    1259             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1260             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1261             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1262             : 
    1263             : #define Fixed_ENABLED 1
    1264             : 
    1265             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1266             : 
    1267             : #define RK_ENABLED 1
    1268             : 
    1269             : #if RK5_ENABLED
    1270             :     module procedure setRootNewtonFixed_RK5
    1271             :         use pm_kind, only: RKC => RK5
    1272             : #include "pm_mathRoot@routines.inc.F90"
    1273             :     end procedure
    1274             : #endif
    1275             : 
    1276             : #if RK4_ENABLED
    1277         906 :     module procedure setRootNewtonFixed_RK4
    1278             :         use pm_kind, only: RKC => RK4
    1279             : #include "pm_mathRoot@routines.inc.F90"
    1280             :     end procedure
    1281             : #endif
    1282             : 
    1283             : #if RK3_ENABLED
    1284         900 :     module procedure setRootNewtonFixed_RK3
    1285             :         use pm_kind, only: RKC => RK3
    1286             : #include "pm_mathRoot@routines.inc.F90"
    1287             :     end procedure
    1288             : #endif
    1289             : 
    1290             : #if RK2_ENABLED
    1291         900 :     module procedure setRootNewtonFixed_RK2
    1292             :         use pm_kind, only: RKC => RK2
    1293             : #include "pm_mathRoot@routines.inc.F90"
    1294             :     end procedure
    1295             : #endif
    1296             : 
    1297             : #if RK1_ENABLED
    1298         900 :     module procedure setRootNewtonFixed_RK1
    1299             :         use pm_kind, only: RKC => RK1
    1300             : #include "pm_mathRoot@routines.inc.F90"
    1301             :     end procedure
    1302             : #endif
    1303             : 
    1304             : #undef RK_ENABLED
    1305             : 
    1306             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1307             : 
    1308             : #undef Fixed_ENABLED
    1309             : 
    1310             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1311             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1312             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1313             : 
    1314             : #define Niter_ENABLED 1
    1315             : 
    1316             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1317             : 
    1318             : #define RK_ENABLED 1
    1319             : 
    1320             : #if RK5_ENABLED
    1321             :     module procedure setRootNewtonNiter_RK5
    1322             :         use pm_kind, only: RKC => RK5
    1323             : #include "pm_mathRoot@routines.inc.F90"
    1324             :     end procedure
    1325             : #endif
    1326             : 
    1327             : #if RK4_ENABLED
    1328         900 :     module procedure setRootNewtonNiter_RK4
    1329             :         use pm_kind, only: RKC => RK4
    1330             : #include "pm_mathRoot@routines.inc.F90"
    1331             :     end procedure
    1332             : #endif
    1333             : 
    1334             : #if RK3_ENABLED
    1335         900 :     module procedure setRootNewtonNiter_RK3
    1336             :         use pm_kind, only: RKC => RK3
    1337             : #include "pm_mathRoot@routines.inc.F90"
    1338             :     end procedure
    1339             : #endif
    1340             : 
    1341             : #if RK2_ENABLED
    1342         900 :     module procedure setRootNewtonNiter_RK2
    1343             :         use pm_kind, only: RKC => RK2
    1344             : #include "pm_mathRoot@routines.inc.F90"
    1345             :     end procedure
    1346             : #endif
    1347             : 
    1348             : #if RK1_ENABLED
    1349         900 :     module procedure setRootNewtonNiter_RK1
    1350             :         use pm_kind, only: RKC => RK1
    1351             : #include "pm_mathRoot@routines.inc.F90"
    1352             :     end procedure
    1353             : #endif
    1354             : 
    1355             : #undef RK_ENABLED
    1356             : 
    1357             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1358             : 
    1359             : #undef Niter_ENABLED
    1360             : 
    1361             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1362             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1363             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1364             : 
    1365             : #undef Newton_ENABLED
    1366             : 
    1367             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1368             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1369             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1370             : 
    1371             : #define Halley_ENABLED 1
    1372             : 
    1373             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1374             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1375             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1376             : 
    1377             : #define Fixed_ENABLED 1
    1378             : 
    1379             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1380             : 
    1381             : #define RK_ENABLED 1
    1382             : 
    1383             : #if RK5_ENABLED
    1384             :     module procedure setRootHalleyFixed_RK5
    1385             :         use pm_kind, only: RKC => RK5
    1386             : #include "pm_mathRoot@routines.inc.F90"
    1387             :     end procedure
    1388             : #endif
    1389             : 
    1390             : #if RK4_ENABLED
    1391         906 :     module procedure setRootHalleyFixed_RK4
    1392             :         use pm_kind, only: RKC => RK4
    1393             : #include "pm_mathRoot@routines.inc.F90"
    1394             :     end procedure
    1395             : #endif
    1396             : 
    1397             : #if RK3_ENABLED
    1398         900 :     module procedure setRootHalleyFixed_RK3
    1399             :         use pm_kind, only: RKC => RK3
    1400             : #include "pm_mathRoot@routines.inc.F90"
    1401             :     end procedure
    1402             : #endif
    1403             : 
    1404             : #if RK2_ENABLED
    1405         900 :     module procedure setRootHalleyFixed_RK2
    1406             :         use pm_kind, only: RKC => RK2
    1407             : #include "pm_mathRoot@routines.inc.F90"
    1408             :     end procedure
    1409             : #endif
    1410             : 
    1411             : #if RK1_ENABLED
    1412         900 :     module procedure setRootHalleyFixed_RK1
    1413             :         use pm_kind, only: RKC => RK1
    1414             : #include "pm_mathRoot@routines.inc.F90"
    1415             :     end procedure
    1416             : #endif
    1417             : 
    1418             : #undef RK_ENABLED
    1419             : 
    1420             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1421             : 
    1422             : #undef Fixed_ENABLED
    1423             : 
    1424             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1425             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1426             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1427             : 
    1428             : #define Niter_ENABLED 1
    1429             : 
    1430             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1431             : 
    1432             : #define RK_ENABLED 1
    1433             : 
    1434             : #if RK5_ENABLED
    1435             :     module procedure setRootHalleyNiter_RK5
    1436             :         use pm_kind, only: RKC => RK5
    1437             : #include "pm_mathRoot@routines.inc.F90"
    1438             :     end procedure
    1439             : #endif
    1440             : 
    1441             : #if RK4_ENABLED
    1442         900 :     module procedure setRootHalleyNiter_RK4
    1443             :         use pm_kind, only: RKC => RK4
    1444             : #include "pm_mathRoot@routines.inc.F90"
    1445             :     end procedure
    1446             : #endif
    1447             : 
    1448             : #if RK3_ENABLED
    1449         900 :     module procedure setRootHalleyNiter_RK3
    1450             :         use pm_kind, only: RKC => RK3
    1451             : #include "pm_mathRoot@routines.inc.F90"
    1452             :     end procedure
    1453             : #endif
    1454             : 
    1455             : #if RK2_ENABLED
    1456         900 :     module procedure setRootHalleyNiter_RK2
    1457             :         use pm_kind, only: RKC => RK2
    1458             : #include "pm_mathRoot@routines.inc.F90"
    1459             :     end procedure
    1460             : #endif
    1461             : 
    1462             : #if RK1_ENABLED
    1463         900 :     module procedure setRootHalleyNiter_RK1
    1464             :         use pm_kind, only: RKC => RK1
    1465             : #include "pm_mathRoot@routines.inc.F90"
    1466             :     end procedure
    1467             : #endif
    1468             : 
    1469             : #undef RK_ENABLED
    1470             : 
    1471             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1472             : 
    1473             : #undef Niter_ENABLED
    1474             : 
    1475             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1476             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1477             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1478             : 
    1479             : #undef Halley_ENABLED
    1480             : 
    1481             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1482             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1483             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1484             : 
    1485             : #define Schroder_ENABLED 1
    1486             : 
    1487             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1488             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1489             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1490             : 
    1491             : #define Fixed_ENABLED 1
    1492             : 
    1493             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1494             : 
    1495             : #define RK_ENABLED 1
    1496             : 
    1497             : #if RK5_ENABLED
    1498             :     module procedure setRootSchroderFixed_RK5
    1499             :         use pm_kind, only: RKC => RK5
    1500             : #include "pm_mathRoot@routines.inc.F90"
    1501             :     end procedure
    1502             : #endif
    1503             : 
    1504             : #if RK4_ENABLED
    1505         906 :     module procedure setRootSchroderFixed_RK4
    1506             :         use pm_kind, only: RKC => RK4
    1507             : #include "pm_mathRoot@routines.inc.F90"
    1508             :     end procedure
    1509             : #endif
    1510             : 
    1511             : #if RK3_ENABLED
    1512         900 :     module procedure setRootSchroderFixed_RK3
    1513             :         use pm_kind, only: RKC => RK3
    1514             : #include "pm_mathRoot@routines.inc.F90"
    1515             :     end procedure
    1516             : #endif
    1517             : 
    1518             : #if RK2_ENABLED
    1519         900 :     module procedure setRootSchroderFixed_RK2
    1520             :         use pm_kind, only: RKC => RK2
    1521             : #include "pm_mathRoot@routines.inc.F90"
    1522             :     end procedure
    1523             : #endif
    1524             : 
    1525             : #if RK1_ENABLED
    1526         900 :     module procedure setRootSchroderFixed_RK1
    1527             :         use pm_kind, only: RKC => RK1
    1528             : #include "pm_mathRoot@routines.inc.F90"
    1529             :     end procedure
    1530             : #endif
    1531             : 
    1532             : #undef RK_ENABLED
    1533             : 
    1534             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1535             : 
    1536             : #undef Fixed_ENABLED
    1537             : 
    1538             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1539             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1540             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1541             : 
    1542             : #define Niter_ENABLED 1
    1543             : 
    1544             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1545             : 
    1546             : #define RK_ENABLED 1
    1547             : 
    1548             : #if RK5_ENABLED
    1549             :     module procedure setRootSchroderNiter_RK5
    1550             :         use pm_kind, only: RKC => RK5
    1551             : #include "pm_mathRoot@routines.inc.F90"
    1552             :     end procedure
    1553             : #endif
    1554             : 
    1555             : #if RK4_ENABLED
    1556         900 :     module procedure setRootSchroderNiter_RK4
    1557             :         use pm_kind, only: RKC => RK4
    1558             : #include "pm_mathRoot@routines.inc.F90"
    1559             :     end procedure
    1560             : #endif
    1561             : 
    1562             : #if RK3_ENABLED
    1563         900 :     module procedure setRootSchroderNiter_RK3
    1564             :         use pm_kind, only: RKC => RK3
    1565             : #include "pm_mathRoot@routines.inc.F90"
    1566             :     end procedure
    1567             : #endif
    1568             : 
    1569             : #if RK2_ENABLED
    1570         900 :     module procedure setRootSchroderNiter_RK2
    1571             :         use pm_kind, only: RKC => RK2
    1572             : #include "pm_mathRoot@routines.inc.F90"
    1573             :     end procedure
    1574             : #endif
    1575             : 
    1576             : #if RK1_ENABLED
    1577         900 :     module procedure setRootSchroderNiter_RK1
    1578             :         use pm_kind, only: RKC => RK1
    1579             : #include "pm_mathRoot@routines.inc.F90"
    1580             :     end procedure
    1581             : #endif
    1582             : 
    1583             : #undef RK_ENABLED
    1584             : 
    1585             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1586             : 
    1587             : #undef Niter_ENABLED
    1588             : 
    1589             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1590             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1591             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1592             : 
    1593             : #undef Schroder_ENABLED
    1594             : 
    1595             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1596             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1597             :     !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1598             : 
    1599             : #undef setRoot_ENABLED
    1600             : 
    1601             : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1602             : 
    1603             : end submodule routines

ParaMonte: Parallel Monte Carlo and Machine Learning Library 
The Computational Data Science Lab
© Copyright 2012 - 2024