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_matrixDet](@ref pm_matrixDet).
19 : !>
20 : !> \finmain
21 : !>
22 : !> \author
23 : !> \AmirShahmoradi, Apr 21, 2017, 1:54 AM, Institute for Computational Engineering and Sciences (ICES), The University of Texas at Austin
24 :
25 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
26 :
27 : submodule (pm_matrixDet) 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) continue;
37 : #endif
38 :
39 : use pm_matrixChol, only: setMatChol, iteration
40 : use pm_matrixCopy, only: setMatCopy, rdpack
41 : use pm_matrixLUP, only: setMatLUP
42 : implicit none
43 :
44 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
45 :
46 : contains
47 :
48 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
49 :
50 : #define getMatDet_ENABLED 1
51 :
52 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
53 :
54 : #define CK_ENABLED 1
55 :
56 : #if CK5_ENABLED
57 : module procedure getMatDet_CK5
58 : use pm_kind, only: TKC => CK5
59 : #include "pm_matrixDet@routines.inc.F90"
60 : end procedure
61 : #endif
62 :
63 : #if CK4_ENABLED
64 30 : module procedure getMatDet_CK4
65 : use pm_kind, only: TKC => CK4
66 : #include "pm_matrixDet@routines.inc.F90"
67 30 : end procedure
68 : #endif
69 :
70 : #if CK3_ENABLED
71 0 : module procedure getMatDet_CK3
72 : use pm_kind, only: TKC => CK3
73 : #include "pm_matrixDet@routines.inc.F90"
74 0 : end procedure
75 : #endif
76 :
77 : #if CK2_ENABLED
78 15 : module procedure getMatDet_CK2
79 : use pm_kind, only: TKC => CK2
80 : #include "pm_matrixDet@routines.inc.F90"
81 15 : end procedure
82 : #endif
83 :
84 : #if CK1_ENABLED
85 0 : module procedure getMatDet_CK1
86 : use pm_kind, only: TKC => CK1
87 : #include "pm_matrixDet@routines.inc.F90"
88 0 : end procedure
89 : #endif
90 :
91 : #undef CK_ENABLED
92 :
93 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
94 :
95 : #define RK_ENABLED 1
96 :
97 : #if RK5_ENABLED
98 : module procedure getMatDet_RK5
99 : use pm_kind, only: TKC => RK5
100 : #include "pm_matrixDet@routines.inc.F90"
101 : end procedure
102 : #endif
103 :
104 : #if RK4_ENABLED
105 30 : module procedure getMatDet_RK4
106 : use pm_kind, only: TKC => RK4
107 : #include "pm_matrixDet@routines.inc.F90"
108 30 : end procedure
109 : #endif
110 :
111 : #if RK3_ENABLED
112 0 : module procedure getMatDet_RK3
113 : use pm_kind, only: TKC => RK3
114 : #include "pm_matrixDet@routines.inc.F90"
115 0 : end procedure
116 : #endif
117 :
118 : #if RK2_ENABLED
119 0 : module procedure getMatDet_RK2
120 : use pm_kind, only: TKC => RK2
121 : #include "pm_matrixDet@routines.inc.F90"
122 0 : end procedure
123 : #endif
124 :
125 : #if RK1_ENABLED
126 55 : module procedure getMatDet_RK1
127 : use pm_kind, only: TKC => RK1
128 : #include "pm_matrixDet@routines.inc.F90"
129 55 : end procedure
130 : #endif
131 :
132 : #undef RK_ENABLED
133 :
134 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
135 :
136 : #undef getMatDet_ENABLED
137 :
138 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
139 :
140 : #define setMatDet_ENABLED 1
141 :
142 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
143 :
144 : #define CK_ENABLED 1
145 :
146 : #if CK5_ENABLED
147 : module procedure setMatDet_CK5
148 : use pm_kind, only: TKC => CK5
149 : #include "pm_matrixDet@routines.inc.F90"
150 : end procedure
151 : #endif
152 :
153 : #if CK4_ENABLED
154 10 : module procedure setMatDet_CK4
155 : use pm_kind, only: TKC => CK4
156 : #include "pm_matrixDet@routines.inc.F90"
157 : end procedure
158 : #endif
159 :
160 : #if CK3_ENABLED
161 0 : module procedure setMatDet_CK3
162 : use pm_kind, only: TKC => CK3
163 : #include "pm_matrixDet@routines.inc.F90"
164 : end procedure
165 : #endif
166 :
167 : #if CK2_ENABLED
168 0 : module procedure setMatDet_CK2
169 : use pm_kind, only: TKC => CK2
170 : #include "pm_matrixDet@routines.inc.F90"
171 : end procedure
172 : #endif
173 :
174 : #if CK1_ENABLED
175 0 : module procedure setMatDet_CK1
176 : use pm_kind, only: TKC => CK1
177 : #include "pm_matrixDet@routines.inc.F90"
178 : end procedure
179 : #endif
180 :
181 : #undef CK_ENABLED
182 :
183 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
184 :
185 : #define RK_ENABLED 1
186 :
187 : #if RK5_ENABLED
188 : module procedure setMatDet_RK5
189 : use pm_kind, only: TKC => RK5
190 : #include "pm_matrixDet@routines.inc.F90"
191 : end procedure
192 : #endif
193 :
194 : #if RK4_ENABLED
195 10 : module procedure setMatDet_RK4
196 : use pm_kind, only: TKC => RK4
197 : #include "pm_matrixDet@routines.inc.F90"
198 : end procedure
199 : #endif
200 :
201 : #if RK3_ENABLED
202 0 : module procedure setMatDet_RK3
203 : use pm_kind, only: TKC => RK3
204 : #include "pm_matrixDet@routines.inc.F90"
205 : end procedure
206 : #endif
207 :
208 : #if RK2_ENABLED
209 0 : module procedure setMatDet_RK2
210 : use pm_kind, only: TKC => RK2
211 : #include "pm_matrixDet@routines.inc.F90"
212 : end procedure
213 : #endif
214 :
215 : #if RK1_ENABLED
216 0 : module procedure setMatDet_RK1
217 : use pm_kind, only: TKC => RK1
218 : #include "pm_matrixDet@routines.inc.F90"
219 : end procedure
220 : #endif
221 :
222 : #undef RK_ENABLED
223 :
224 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
225 :
226 : #undef setMatDet_ENABLED
227 :
228 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
229 :
230 : #define getMatDetSqrt_ENABLED 1
231 :
232 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
233 :
234 : #define CK_ENABLED 1
235 :
236 : #if CK5_ENABLED
237 : module procedure getMatDetSqrt_CK5
238 : use pm_kind, only: TKC => CK5
239 : #include "pm_matrixDet@routines.inc.F90"
240 : end procedure
241 : #endif
242 :
243 : #if CK4_ENABLED
244 0 : module procedure getMatDetSqrt_CK4
245 : use pm_kind, only: TKC => CK4
246 : #include "pm_matrixDet@routines.inc.F90"
247 0 : end procedure
248 : #endif
249 :
250 : #if CK3_ENABLED
251 0 : module procedure getMatDetSqrt_CK3
252 : use pm_kind, only: TKC => CK3
253 : #include "pm_matrixDet@routines.inc.F90"
254 0 : end procedure
255 : #endif
256 :
257 : #if CK2_ENABLED
258 0 : module procedure getMatDetSqrt_CK2
259 : use pm_kind, only: TKC => CK2
260 : #include "pm_matrixDet@routines.inc.F90"
261 0 : end procedure
262 : #endif
263 :
264 : #if CK1_ENABLED
265 8 : module procedure getMatDetSqrt_CK1
266 : use pm_kind, only: TKC => CK1
267 : #include "pm_matrixDet@routines.inc.F90"
268 8 : end procedure
269 : #endif
270 :
271 : #undef CK_ENABLED
272 :
273 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
274 :
275 : #define RK_ENABLED 1
276 :
277 : #if RK5_ENABLED
278 : module procedure getMatDetSqrt_RK5
279 : use pm_kind, only: TKC => RK5
280 : #include "pm_matrixDet@routines.inc.F90"
281 : end procedure
282 : #endif
283 :
284 : #if RK4_ENABLED
285 0 : module procedure getMatDetSqrt_RK4
286 : use pm_kind, only: TKC => RK4
287 : #include "pm_matrixDet@routines.inc.F90"
288 0 : end procedure
289 : #endif
290 :
291 : #if RK3_ENABLED
292 0 : module procedure getMatDetSqrt_RK3
293 : use pm_kind, only: TKC => RK3
294 : #include "pm_matrixDet@routines.inc.F90"
295 0 : end procedure
296 : #endif
297 :
298 : #if RK2_ENABLED
299 0 : module procedure getMatDetSqrt_RK2
300 : use pm_kind, only: TKC => RK2
301 : #include "pm_matrixDet@routines.inc.F90"
302 0 : end procedure
303 : #endif
304 :
305 : #if RK1_ENABLED
306 40 : module procedure getMatDetSqrt_RK1
307 : use pm_kind, only: TKC => RK1
308 : #include "pm_matrixDet@routines.inc.F90"
309 40 : end procedure
310 : #endif
311 :
312 : #undef RK_ENABLED
313 :
314 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
315 :
316 : #undef getMatDetSqrt_ENABLED
317 :
318 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
319 :
320 : #define setMatDetSqrt_ENABLED 1
321 :
322 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
323 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
324 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
325 :
326 : #define ONO_ENABLED 1
327 :
328 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
329 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
330 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
331 :
332 : #define UXD_ENABLED 1
333 :
334 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
335 :
336 : #define CK_ENABLED 1
337 :
338 : #if CK5_ENABLED
339 : module procedure setMatDetSqrt_UXD_ONO_CK5
340 : use pm_kind, only: TKC => CK5
341 : #include "pm_matrixDet@routines.inc.F90"
342 : end procedure
343 : #endif
344 :
345 : #if CK4_ENABLED
346 0 : module procedure setMatDetSqrt_UXD_ONO_CK4
347 : use pm_kind, only: TKC => CK4
348 : #include "pm_matrixDet@routines.inc.F90"
349 : end procedure
350 : #endif
351 :
352 : #if CK3_ENABLED
353 0 : module procedure setMatDetSqrt_UXD_ONO_CK3
354 : use pm_kind, only: TKC => CK3
355 : #include "pm_matrixDet@routines.inc.F90"
356 : end procedure
357 : #endif
358 :
359 : #if CK2_ENABLED
360 0 : module procedure setMatDetSqrt_UXD_ONO_CK2
361 : use pm_kind, only: TKC => CK2
362 : #include "pm_matrixDet@routines.inc.F90"
363 : end procedure
364 : #endif
365 :
366 : #if CK1_ENABLED
367 6 : module procedure setMatDetSqrt_UXD_ONO_CK1
368 : use pm_kind, only: TKC => CK1
369 : #include "pm_matrixDet@routines.inc.F90"
370 : end procedure
371 : #endif
372 :
373 : #undef CK_ENABLED
374 :
375 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
376 :
377 : #define RK_ENABLED 1
378 :
379 : #if RK5_ENABLED
380 : module procedure setMatDetSqrt_UXD_ONO_RK5
381 : use pm_kind, only: TKC => RK5
382 : #include "pm_matrixDet@routines.inc.F90"
383 : end procedure
384 : #endif
385 :
386 : #if RK4_ENABLED
387 0 : module procedure setMatDetSqrt_UXD_ONO_RK4
388 : use pm_kind, only: TKC => RK4
389 : #include "pm_matrixDet@routines.inc.F90"
390 : end procedure
391 : #endif
392 :
393 : #if RK3_ENABLED
394 0 : module procedure setMatDetSqrt_UXD_ONO_RK3
395 : use pm_kind, only: TKC => RK3
396 : #include "pm_matrixDet@routines.inc.F90"
397 : end procedure
398 : #endif
399 :
400 : #if RK2_ENABLED
401 0 : module procedure setMatDetSqrt_UXD_ONO_RK2
402 : use pm_kind, only: TKC => RK2
403 : #include "pm_matrixDet@routines.inc.F90"
404 : end procedure
405 : #endif
406 :
407 : #if RK1_ENABLED
408 30 : module procedure setMatDetSqrt_UXD_ONO_RK1
409 : use pm_kind, only: TKC => RK1
410 : #include "pm_matrixDet@routines.inc.F90"
411 : end procedure
412 : #endif
413 :
414 : #undef RK_ENABLED
415 :
416 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
417 :
418 : #undef UXD_ENABLED
419 :
420 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
421 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
422 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
423 :
424 : #define XLD_ENABLED 1
425 :
426 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
427 :
428 : #define CK_ENABLED 1
429 :
430 : #if CK5_ENABLED
431 : module procedure setMatDetSqrt_XLD_ONO_CK5
432 : use pm_kind, only: TKC => CK5
433 : #include "pm_matrixDet@routines.inc.F90"
434 : end procedure
435 : #endif
436 :
437 : #if CK4_ENABLED
438 0 : module procedure setMatDetSqrt_XLD_ONO_CK4
439 : use pm_kind, only: TKC => CK4
440 : #include "pm_matrixDet@routines.inc.F90"
441 : end procedure
442 : #endif
443 :
444 : #if CK3_ENABLED
445 0 : module procedure setMatDetSqrt_XLD_ONO_CK3
446 : use pm_kind, only: TKC => CK3
447 : #include "pm_matrixDet@routines.inc.F90"
448 : end procedure
449 : #endif
450 :
451 : #if CK2_ENABLED
452 0 : module procedure setMatDetSqrt_XLD_ONO_CK2
453 : use pm_kind, only: TKC => CK2
454 : #include "pm_matrixDet@routines.inc.F90"
455 : end procedure
456 : #endif
457 :
458 : #if CK1_ENABLED
459 2 : module procedure setMatDetSqrt_XLD_ONO_CK1
460 : use pm_kind, only: TKC => CK1
461 : #include "pm_matrixDet@routines.inc.F90"
462 : end procedure
463 : #endif
464 :
465 : #undef CK_ENABLED
466 :
467 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
468 :
469 : #define RK_ENABLED 1
470 :
471 : #if RK5_ENABLED
472 : module procedure setMatDetSqrt_XLD_ONO_RK5
473 : use pm_kind, only: TKC => RK5
474 : #include "pm_matrixDet@routines.inc.F90"
475 : end procedure
476 : #endif
477 :
478 : #if RK4_ENABLED
479 0 : module procedure setMatDetSqrt_XLD_ONO_RK4
480 : use pm_kind, only: TKC => RK4
481 : #include "pm_matrixDet@routines.inc.F90"
482 : end procedure
483 : #endif
484 :
485 : #if RK3_ENABLED
486 0 : module procedure setMatDetSqrt_XLD_ONO_RK3
487 : use pm_kind, only: TKC => RK3
488 : #include "pm_matrixDet@routines.inc.F90"
489 : end procedure
490 : #endif
491 :
492 : #if RK2_ENABLED
493 0 : module procedure setMatDetSqrt_XLD_ONO_RK2
494 : use pm_kind, only: TKC => RK2
495 : #include "pm_matrixDet@routines.inc.F90"
496 : end procedure
497 : #endif
498 :
499 : #if RK1_ENABLED
500 10 : module procedure setMatDetSqrt_XLD_ONO_RK1
501 : use pm_kind, only: TKC => RK1
502 : #include "pm_matrixDet@routines.inc.F90"
503 : end procedure
504 : #endif
505 :
506 : #undef RK_ENABLED
507 :
508 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
509 :
510 : #undef XLD_ENABLED
511 :
512 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
513 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
514 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
515 :
516 : #undef ONO_ENABLED
517 :
518 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
519 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
520 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
521 :
522 : #define OTH_ENABLED 1
523 :
524 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
525 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
526 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
527 :
528 : #define UXD_ENABLED 1
529 :
530 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
531 :
532 : #define CK_ENABLED 1
533 :
534 : #if CK5_ENABLED
535 : module procedure setMatDetSqrt_UXD_OTH_CK5
536 : use pm_kind, only: TKC => CK5
537 : #include "pm_matrixDet@routines.inc.F90"
538 : end procedure
539 : #endif
540 :
541 : #if CK4_ENABLED
542 0 : module procedure setMatDetSqrt_UXD_OTH_CK4
543 : use pm_kind, only: TKC => CK4
544 : #include "pm_matrixDet@routines.inc.F90"
545 : end procedure
546 : #endif
547 :
548 : #if CK3_ENABLED
549 0 : module procedure setMatDetSqrt_UXD_OTH_CK3
550 : use pm_kind, only: TKC => CK3
551 : #include "pm_matrixDet@routines.inc.F90"
552 : end procedure
553 : #endif
554 :
555 : #if CK2_ENABLED
556 0 : module procedure setMatDetSqrt_UXD_OTH_CK2
557 : use pm_kind, only: TKC => CK2
558 : #include "pm_matrixDet@routines.inc.F90"
559 : end procedure
560 : #endif
561 :
562 : #if CK1_ENABLED
563 2 : module procedure setMatDetSqrt_UXD_OTH_CK1
564 : use pm_kind, only: TKC => CK1
565 : #include "pm_matrixDet@routines.inc.F90"
566 : end procedure
567 : #endif
568 :
569 : #undef CK_ENABLED
570 :
571 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
572 :
573 : #define RK_ENABLED 1
574 :
575 : #if RK5_ENABLED
576 : module procedure setMatDetSqrt_UXD_OTH_RK5
577 : use pm_kind, only: TKC => RK5
578 : #include "pm_matrixDet@routines.inc.F90"
579 : end procedure
580 : #endif
581 :
582 : #if RK4_ENABLED
583 0 : module procedure setMatDetSqrt_UXD_OTH_RK4
584 : use pm_kind, only: TKC => RK4
585 : #include "pm_matrixDet@routines.inc.F90"
586 : end procedure
587 : #endif
588 :
589 : #if RK3_ENABLED
590 0 : module procedure setMatDetSqrt_UXD_OTH_RK3
591 : use pm_kind, only: TKC => RK3
592 : #include "pm_matrixDet@routines.inc.F90"
593 : end procedure
594 : #endif
595 :
596 : #if RK2_ENABLED
597 0 : module procedure setMatDetSqrt_UXD_OTH_RK2
598 : use pm_kind, only: TKC => RK2
599 : #include "pm_matrixDet@routines.inc.F90"
600 : end procedure
601 : #endif
602 :
603 : #if RK1_ENABLED
604 10 : module procedure setMatDetSqrt_UXD_OTH_RK1
605 : use pm_kind, only: TKC => RK1
606 : #include "pm_matrixDet@routines.inc.F90"
607 : end procedure
608 : #endif
609 :
610 : #undef RK_ENABLED
611 :
612 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
613 :
614 : #undef UXD_ENABLED
615 :
616 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
617 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
618 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
619 :
620 : #define XLD_ENABLED 1
621 :
622 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
623 :
624 : #define CK_ENABLED 1
625 :
626 : #if CK5_ENABLED
627 : module procedure setMatDetSqrt_XLD_OTH_CK5
628 : use pm_kind, only: TKC => CK5
629 : #include "pm_matrixDet@routines.inc.F90"
630 : end procedure
631 : #endif
632 :
633 : #if CK4_ENABLED
634 0 : module procedure setMatDetSqrt_XLD_OTH_CK4
635 : use pm_kind, only: TKC => CK4
636 : #include "pm_matrixDet@routines.inc.F90"
637 : end procedure
638 : #endif
639 :
640 : #if CK3_ENABLED
641 0 : module procedure setMatDetSqrt_XLD_OTH_CK3
642 : use pm_kind, only: TKC => CK3
643 : #include "pm_matrixDet@routines.inc.F90"
644 : end procedure
645 : #endif
646 :
647 : #if CK2_ENABLED
648 0 : module procedure setMatDetSqrt_XLD_OTH_CK2
649 : use pm_kind, only: TKC => CK2
650 : #include "pm_matrixDet@routines.inc.F90"
651 : end procedure
652 : #endif
653 :
654 : #if CK1_ENABLED
655 2 : module procedure setMatDetSqrt_XLD_OTH_CK1
656 : use pm_kind, only: TKC => CK1
657 : #include "pm_matrixDet@routines.inc.F90"
658 : end procedure
659 : #endif
660 :
661 : #undef CK_ENABLED
662 :
663 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
664 :
665 : #define RK_ENABLED 1
666 :
667 : #if RK5_ENABLED
668 : module procedure setMatDetSqrt_XLD_OTH_RK5
669 : use pm_kind, only: TKC => RK5
670 : #include "pm_matrixDet@routines.inc.F90"
671 : end procedure
672 : #endif
673 :
674 : #if RK4_ENABLED
675 0 : module procedure setMatDetSqrt_XLD_OTH_RK4
676 : use pm_kind, only: TKC => RK4
677 : #include "pm_matrixDet@routines.inc.F90"
678 : end procedure
679 : #endif
680 :
681 : #if RK3_ENABLED
682 0 : module procedure setMatDetSqrt_XLD_OTH_RK3
683 : use pm_kind, only: TKC => RK3
684 : #include "pm_matrixDet@routines.inc.F90"
685 : end procedure
686 : #endif
687 :
688 : #if RK2_ENABLED
689 0 : module procedure setMatDetSqrt_XLD_OTH_RK2
690 : use pm_kind, only: TKC => RK2
691 : #include "pm_matrixDet@routines.inc.F90"
692 : end procedure
693 : #endif
694 :
695 : #if RK1_ENABLED
696 10 : module procedure setMatDetSqrt_XLD_OTH_RK1
697 : use pm_kind, only: TKC => RK1
698 : #include "pm_matrixDet@routines.inc.F90"
699 : end procedure
700 : #endif
701 :
702 : #undef RK_ENABLED
703 :
704 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
705 :
706 : #undef XLD_ENABLED
707 :
708 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
709 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
710 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
711 :
712 : #undef OTH_ENABLED
713 :
714 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
715 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
716 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
717 :
718 : #undef setMatDetSqrt_ENABLED
719 :
720 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
721 :
722 : #define getMatDetSqrtLog_ENABLED 1
723 :
724 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
725 :
726 : #define CK_ENABLED 1
727 :
728 : #if CK5_ENABLED
729 : module procedure getMatDetSqrtLog_CK5
730 : use pm_kind, only: TKC => CK5
731 : #include "pm_matrixDet@routines.inc.F90"
732 : end procedure
733 : #endif
734 :
735 : #if CK4_ENABLED
736 0 : module procedure getMatDetSqrtLog_CK4
737 : use pm_kind, only: TKC => CK4
738 : #include "pm_matrixDet@routines.inc.F90"
739 0 : end procedure
740 : #endif
741 :
742 : #if CK3_ENABLED
743 0 : module procedure getMatDetSqrtLog_CK3
744 : use pm_kind, only: TKC => CK3
745 : #include "pm_matrixDet@routines.inc.F90"
746 0 : end procedure
747 : #endif
748 :
749 : #if CK2_ENABLED
750 0 : module procedure getMatDetSqrtLog_CK2
751 : use pm_kind, only: TKC => CK2
752 : #include "pm_matrixDet@routines.inc.F90"
753 0 : end procedure
754 : #endif
755 :
756 : #if CK1_ENABLED
757 8 : module procedure getMatDetSqrtLog_CK1
758 : use pm_kind, only: TKC => CK1
759 : #include "pm_matrixDet@routines.inc.F90"
760 8 : end procedure
761 : #endif
762 :
763 : #undef CK_ENABLED
764 :
765 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
766 :
767 : #define RK_ENABLED 1
768 :
769 : #if RK5_ENABLED
770 : module procedure getMatDetSqrtLog_RK5
771 : use pm_kind, only: TKC => RK5
772 : #include "pm_matrixDet@routines.inc.F90"
773 : end procedure
774 : #endif
775 :
776 : #if RK4_ENABLED
777 0 : module procedure getMatDetSqrtLog_RK4
778 : use pm_kind, only: TKC => RK4
779 : #include "pm_matrixDet@routines.inc.F90"
780 0 : end procedure
781 : #endif
782 :
783 : #if RK3_ENABLED
784 0 : module procedure getMatDetSqrtLog_RK3
785 : use pm_kind, only: TKC => RK3
786 : #include "pm_matrixDet@routines.inc.F90"
787 0 : end procedure
788 : #endif
789 :
790 : #if RK2_ENABLED
791 250002 : module procedure getMatDetSqrtLog_RK2
792 : use pm_kind, only: TKC => RK2
793 : #include "pm_matrixDet@routines.inc.F90"
794 250002 : end procedure
795 : #endif
796 :
797 : #if RK1_ENABLED
798 44 : module procedure getMatDetSqrtLog_RK1
799 : use pm_kind, only: TKC => RK1
800 : #include "pm_matrixDet@routines.inc.F90"
801 44 : end procedure
802 : #endif
803 :
804 : #undef RK_ENABLED
805 :
806 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
807 :
808 : #undef getMatDetSqrtLog_ENABLED
809 :
810 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
811 :
812 : #define setMatDetSqrtLog_ENABLED 1
813 :
814 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
815 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
816 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
817 :
818 : #define ONO_ENABLED 1
819 :
820 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
821 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
822 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
823 :
824 : #define UXD_ENABLED 1
825 :
826 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
827 :
828 : #define CK_ENABLED 1
829 :
830 : #if CK5_ENABLED
831 : module procedure setMatDetSqrtLog_UXD_ONO_CK5
832 : use pm_kind, only: TKC => CK5
833 : #include "pm_matrixDet@routines.inc.F90"
834 : end procedure
835 : #endif
836 :
837 : #if CK4_ENABLED
838 0 : module procedure setMatDetSqrtLog_UXD_ONO_CK4
839 : use pm_kind, only: TKC => CK4
840 : #include "pm_matrixDet@routines.inc.F90"
841 : end procedure
842 : #endif
843 :
844 : #if CK3_ENABLED
845 0 : module procedure setMatDetSqrtLog_UXD_ONO_CK3
846 : use pm_kind, only: TKC => CK3
847 : #include "pm_matrixDet@routines.inc.F90"
848 : end procedure
849 : #endif
850 :
851 : #if CK2_ENABLED
852 0 : module procedure setMatDetSqrtLog_UXD_ONO_CK2
853 : use pm_kind, only: TKC => CK2
854 : #include "pm_matrixDet@routines.inc.F90"
855 : end procedure
856 : #endif
857 :
858 : #if CK1_ENABLED
859 6 : module procedure setMatDetSqrtLog_UXD_ONO_CK1
860 : use pm_kind, only: TKC => CK1
861 : #include "pm_matrixDet@routines.inc.F90"
862 : end procedure
863 : #endif
864 :
865 : #undef CK_ENABLED
866 :
867 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
868 :
869 : #define RK_ENABLED 1
870 :
871 : #if RK5_ENABLED
872 : module procedure setMatDetSqrtLog_UXD_ONO_RK5
873 : use pm_kind, only: TKC => RK5
874 : #include "pm_matrixDet@routines.inc.F90"
875 : end procedure
876 : #endif
877 :
878 : #if RK4_ENABLED
879 0 : module procedure setMatDetSqrtLog_UXD_ONO_RK4
880 : use pm_kind, only: TKC => RK4
881 : #include "pm_matrixDet@routines.inc.F90"
882 : end procedure
883 : #endif
884 :
885 : #if RK3_ENABLED
886 0 : module procedure setMatDetSqrtLog_UXD_ONO_RK3
887 : use pm_kind, only: TKC => RK3
888 : #include "pm_matrixDet@routines.inc.F90"
889 : end procedure
890 : #endif
891 :
892 : #if RK2_ENABLED
893 250002 : module procedure setMatDetSqrtLog_UXD_ONO_RK2
894 : use pm_kind, only: TKC => RK2
895 : #include "pm_matrixDet@routines.inc.F90"
896 : end procedure
897 : #endif
898 :
899 : #if RK1_ENABLED
900 35 : module procedure setMatDetSqrtLog_UXD_ONO_RK1
901 : use pm_kind, only: TKC => RK1
902 : #include "pm_matrixDet@routines.inc.F90"
903 : end procedure
904 : #endif
905 :
906 : #undef RK_ENABLED
907 :
908 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
909 :
910 : #undef UXD_ENABLED
911 :
912 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
913 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
914 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
915 :
916 : #define XLD_ENABLED 1
917 :
918 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
919 :
920 : #define CK_ENABLED 1
921 :
922 : #if CK5_ENABLED
923 : module procedure setMatDetSqrtLog_XLD_ONO_CK5
924 : use pm_kind, only: TKC => CK5
925 : #include "pm_matrixDet@routines.inc.F90"
926 : end procedure
927 : #endif
928 :
929 : #if CK4_ENABLED
930 0 : module procedure setMatDetSqrtLog_XLD_ONO_CK4
931 : use pm_kind, only: TKC => CK4
932 : #include "pm_matrixDet@routines.inc.F90"
933 : end procedure
934 : #endif
935 :
936 : #if CK3_ENABLED
937 0 : module procedure setMatDetSqrtLog_XLD_ONO_CK3
938 : use pm_kind, only: TKC => CK3
939 : #include "pm_matrixDet@routines.inc.F90"
940 : end procedure
941 : #endif
942 :
943 : #if CK2_ENABLED
944 0 : module procedure setMatDetSqrtLog_XLD_ONO_CK2
945 : use pm_kind, only: TKC => CK2
946 : #include "pm_matrixDet@routines.inc.F90"
947 : end procedure
948 : #endif
949 :
950 : #if CK1_ENABLED
951 2 : module procedure setMatDetSqrtLog_XLD_ONO_CK1
952 : use pm_kind, only: TKC => CK1
953 : #include "pm_matrixDet@routines.inc.F90"
954 : end procedure
955 : #endif
956 :
957 : #undef CK_ENABLED
958 :
959 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
960 :
961 : #define RK_ENABLED 1
962 :
963 : #if RK5_ENABLED
964 : module procedure setMatDetSqrtLog_XLD_ONO_RK5
965 : use pm_kind, only: TKC => RK5
966 : #include "pm_matrixDet@routines.inc.F90"
967 : end procedure
968 : #endif
969 :
970 : #if RK4_ENABLED
971 0 : module procedure setMatDetSqrtLog_XLD_ONO_RK4
972 : use pm_kind, only: TKC => RK4
973 : #include "pm_matrixDet@routines.inc.F90"
974 : end procedure
975 : #endif
976 :
977 : #if RK3_ENABLED
978 0 : module procedure setMatDetSqrtLog_XLD_ONO_RK3
979 : use pm_kind, only: TKC => RK3
980 : #include "pm_matrixDet@routines.inc.F90"
981 : end procedure
982 : #endif
983 :
984 : #if RK2_ENABLED
985 0 : module procedure setMatDetSqrtLog_XLD_ONO_RK2
986 : use pm_kind, only: TKC => RK2
987 : #include "pm_matrixDet@routines.inc.F90"
988 : end procedure
989 : #endif
990 :
991 : #if RK1_ENABLED
992 10 : module procedure setMatDetSqrtLog_XLD_ONO_RK1
993 : use pm_kind, only: TKC => RK1
994 : #include "pm_matrixDet@routines.inc.F90"
995 : end procedure
996 : #endif
997 :
998 : #undef RK_ENABLED
999 :
1000 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1001 :
1002 : #undef XLD_ENABLED
1003 :
1004 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1005 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1006 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1007 :
1008 : #undef ONO_ENABLED
1009 :
1010 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1011 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1012 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1013 :
1014 : #define OTH_ENABLED 1
1015 :
1016 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1017 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1018 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1019 :
1020 : #define UXD_ENABLED 1
1021 :
1022 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1023 :
1024 : #define CK_ENABLED 1
1025 :
1026 : #if CK5_ENABLED
1027 : module procedure setMatDetSqrtLog_UXD_OTH_CK5
1028 : use pm_kind, only: TKC => CK5
1029 : #include "pm_matrixDet@routines.inc.F90"
1030 : end procedure
1031 : #endif
1032 :
1033 : #if CK4_ENABLED
1034 0 : module procedure setMatDetSqrtLog_UXD_OTH_CK4
1035 : use pm_kind, only: TKC => CK4
1036 : #include "pm_matrixDet@routines.inc.F90"
1037 : end procedure
1038 : #endif
1039 :
1040 : #if CK3_ENABLED
1041 0 : module procedure setMatDetSqrtLog_UXD_OTH_CK3
1042 : use pm_kind, only: TKC => CK3
1043 : #include "pm_matrixDet@routines.inc.F90"
1044 : end procedure
1045 : #endif
1046 :
1047 : #if CK2_ENABLED
1048 0 : module procedure setMatDetSqrtLog_UXD_OTH_CK2
1049 : use pm_kind, only: TKC => CK2
1050 : #include "pm_matrixDet@routines.inc.F90"
1051 : end procedure
1052 : #endif
1053 :
1054 : #if CK1_ENABLED
1055 2 : module procedure setMatDetSqrtLog_UXD_OTH_CK1
1056 : use pm_kind, only: TKC => CK1
1057 : #include "pm_matrixDet@routines.inc.F90"
1058 : end procedure
1059 : #endif
1060 :
1061 : #undef CK_ENABLED
1062 :
1063 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1064 :
1065 : #define RK_ENABLED 1
1066 :
1067 : #if RK5_ENABLED
1068 : module procedure setMatDetSqrtLog_UXD_OTH_RK5
1069 : use pm_kind, only: TKC => RK5
1070 : #include "pm_matrixDet@routines.inc.F90"
1071 : end procedure
1072 : #endif
1073 :
1074 : #if RK4_ENABLED
1075 0 : module procedure setMatDetSqrtLog_UXD_OTH_RK4
1076 : use pm_kind, only: TKC => RK4
1077 : #include "pm_matrixDet@routines.inc.F90"
1078 : end procedure
1079 : #endif
1080 :
1081 : #if RK3_ENABLED
1082 0 : module procedure setMatDetSqrtLog_UXD_OTH_RK3
1083 : use pm_kind, only: TKC => RK3
1084 : #include "pm_matrixDet@routines.inc.F90"
1085 : end procedure
1086 : #endif
1087 :
1088 : #if RK2_ENABLED
1089 0 : module procedure setMatDetSqrtLog_UXD_OTH_RK2
1090 : use pm_kind, only: TKC => RK2
1091 : #include "pm_matrixDet@routines.inc.F90"
1092 : end procedure
1093 : #endif
1094 :
1095 : #if RK1_ENABLED
1096 12 : module procedure setMatDetSqrtLog_UXD_OTH_RK1
1097 : use pm_kind, only: TKC => RK1
1098 : #include "pm_matrixDet@routines.inc.F90"
1099 : end procedure
1100 : #endif
1101 :
1102 : #undef RK_ENABLED
1103 :
1104 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1105 :
1106 : #undef UXD_ENABLED
1107 :
1108 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1109 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1110 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1111 :
1112 : #define XLD_ENABLED 1
1113 :
1114 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1115 :
1116 : #define CK_ENABLED 1
1117 :
1118 : #if CK5_ENABLED
1119 : module procedure setMatDetSqrtLog_XLD_OTH_CK5
1120 : use pm_kind, only: TKC => CK5
1121 : #include "pm_matrixDet@routines.inc.F90"
1122 : end procedure
1123 : #endif
1124 :
1125 : #if CK4_ENABLED
1126 0 : module procedure setMatDetSqrtLog_XLD_OTH_CK4
1127 : use pm_kind, only: TKC => CK4
1128 : #include "pm_matrixDet@routines.inc.F90"
1129 : end procedure
1130 : #endif
1131 :
1132 : #if CK3_ENABLED
1133 0 : module procedure setMatDetSqrtLog_XLD_OTH_CK3
1134 : use pm_kind, only: TKC => CK3
1135 : #include "pm_matrixDet@routines.inc.F90"
1136 : end procedure
1137 : #endif
1138 :
1139 : #if CK2_ENABLED
1140 0 : module procedure setMatDetSqrtLog_XLD_OTH_CK2
1141 : use pm_kind, only: TKC => CK2
1142 : #include "pm_matrixDet@routines.inc.F90"
1143 : end procedure
1144 : #endif
1145 :
1146 : #if CK1_ENABLED
1147 2 : module procedure setMatDetSqrtLog_XLD_OTH_CK1
1148 : use pm_kind, only: TKC => CK1
1149 : #include "pm_matrixDet@routines.inc.F90"
1150 : end procedure
1151 : #endif
1152 :
1153 : #undef CK_ENABLED
1154 :
1155 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1156 :
1157 : #define RK_ENABLED 1
1158 :
1159 : #if RK5_ENABLED
1160 : module procedure setMatDetSqrtLog_XLD_OTH_RK5
1161 : use pm_kind, only: TKC => RK5
1162 : #include "pm_matrixDet@routines.inc.F90"
1163 : end procedure
1164 : #endif
1165 :
1166 : #if RK4_ENABLED
1167 0 : module procedure setMatDetSqrtLog_XLD_OTH_RK4
1168 : use pm_kind, only: TKC => RK4
1169 : #include "pm_matrixDet@routines.inc.F90"
1170 : end procedure
1171 : #endif
1172 :
1173 : #if RK3_ENABLED
1174 0 : module procedure setMatDetSqrtLog_XLD_OTH_RK3
1175 : use pm_kind, only: TKC => RK3
1176 : #include "pm_matrixDet@routines.inc.F90"
1177 : end procedure
1178 : #endif
1179 :
1180 : #if RK2_ENABLED
1181 0 : module procedure setMatDetSqrtLog_XLD_OTH_RK2
1182 : use pm_kind, only: TKC => RK2
1183 : #include "pm_matrixDet@routines.inc.F90"
1184 : end procedure
1185 : #endif
1186 :
1187 : #if RK1_ENABLED
1188 10 : module procedure setMatDetSqrtLog_XLD_OTH_RK1
1189 : use pm_kind, only: TKC => RK1
1190 : #include "pm_matrixDet@routines.inc.F90"
1191 : end procedure
1192 : #endif
1193 :
1194 : #undef RK_ENABLED
1195 :
1196 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1197 :
1198 : #undef XLD_ENABLED
1199 :
1200 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1201 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1202 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1203 :
1204 : #undef OTH_ENABLED
1205 :
1206 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1207 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1208 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1209 :
1210 : #undef setMatDetSqrtLog_ENABLED
1211 :
1212 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1213 :
1214 : #undef CHECK_ASSERTION
1215 :
1216 250051 : end submodule routines
|