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
|