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_matrixMulAdd](@ref pm_matrixMulAdd).
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_matrixMulAdd) routines ! LCOV_EXCL_LINE
28 :
29 : #if CHECK_ENABLED
30 : ! \bug Bypass Intel `ifort` 2022 compiler bug for too many use statements in submodule procedures.
31 : use pm_err, only: getFine
32 : use pm_val2str, only: getStr
33 : use pm_err, only: setAsserted
34 : #define CHECK_ASSERTION(LINE,ASSERTION,MSG) \
35 : call setAsserted(ASSERTION,getFine(__FILE__,LINE)//MODULE_NAME//MSG);
36 : #else
37 : #define CHECK_ASSERTION(LINE,ASSERTION,MSG) continue;
38 : #endif
39 :
40 : !use pm_arrayReverse, only: getReversed
41 : implicit none
42 :
43 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
44 :
45 : contains
46 :
47 : #define setMatMulAdd_ENABLED 1
48 :
49 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
50 :
51 : #define gemv_ENABLED 1
52 :
53 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
54 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
55 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
56 :
57 : #define SFA_ENABLED 1
58 : #define SFB_ENABLED 1
59 :
60 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
61 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
62 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
63 :
64 : #define ASS_ENABLED 1
65 :
66 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
67 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
68 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
69 :
70 : #define TNB_ENABLED 1
71 :
72 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
73 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
74 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
75 :
76 : #define TNA_ENABLED 1
77 :
78 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
79 :
80 : #define IK_ENABLED 1
81 :
82 : #if IK5_ENABLED
83 136 : module procedure gemv_ASS_SFA_SFB_TNA_TNB_IK5
84 : use pm_kind, only: IKC => IK5
85 : #include "pm_matrixMulAdd@routines.inc.F90"
86 : end procedure
87 : #endif
88 :
89 : #if IK4_ENABLED
90 141 : module procedure gemv_ASS_SFA_SFB_TNA_TNB_IK4
91 : use pm_kind, only: IKC => IK4
92 : #include "pm_matrixMulAdd@routines.inc.F90"
93 : end procedure
94 : #endif
95 :
96 : #if IK3_ENABLED
97 151 : module procedure gemv_ASS_SFA_SFB_TNA_TNB_IK3
98 : use pm_kind, only: IKC => IK3
99 : #include "pm_matrixMulAdd@routines.inc.F90"
100 : end procedure
101 : #endif
102 :
103 : #if IK2_ENABLED
104 133 : module procedure gemv_ASS_SFA_SFB_TNA_TNB_IK2
105 : use pm_kind, only: IKC => IK2
106 : #include "pm_matrixMulAdd@routines.inc.F90"
107 : end procedure
108 : #endif
109 :
110 : #if IK1_ENABLED
111 146 : module procedure gemv_ASS_SFA_SFB_TNA_TNB_IK1
112 : use pm_kind, only: IKC => IK1
113 : #include "pm_matrixMulAdd@routines.inc.F90"
114 : end procedure
115 : #endif
116 :
117 : #undef IK_ENABLED
118 :
119 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
120 :
121 : #define CK_ENABLED 1
122 :
123 : #if CK5_ENABLED
124 : module procedure gemv_ASS_SFA_SFB_TNA_TNB_CK5
125 : use pm_kind, only: CKC => CK5
126 : #include "pm_matrixMulAdd@routines.inc.F90"
127 : end procedure
128 : #endif
129 :
130 : #if CK4_ENABLED
131 141 : module procedure gemv_ASS_SFA_SFB_TNA_TNB_CK4
132 : use pm_kind, only: CKC => CK4
133 : #include "pm_matrixMulAdd@routines.inc.F90"
134 : end procedure
135 : #endif
136 :
137 : #if CK3_ENABLED
138 152 : module procedure gemv_ASS_SFA_SFB_TNA_TNB_CK3
139 : use pm_kind, only: CKC => CK3
140 : #include "pm_matrixMulAdd@routines.inc.F90"
141 : end procedure
142 : #endif
143 :
144 : #if CK2_ENABLED
145 130 : module procedure gemv_ASS_SFA_SFB_TNA_TNB_CK2
146 : use pm_kind, only: CKC => CK2
147 : #define DISPATCH_ENABLED 1
148 : #include "pm_matrixMulAdd@routines.inc.F90"
149 : #undef DISPATCH_ENABLED
150 : end procedure
151 : #endif
152 :
153 : #if CK1_ENABLED
154 144 : module procedure gemv_ASS_SFA_SFB_TNA_TNB_CK1
155 : use pm_kind, only: CKC => CK1
156 : #define DISPATCH_ENABLED 1
157 : #include "pm_matrixMulAdd@routines.inc.F90"
158 : #undef DISPATCH_ENABLED
159 : end procedure
160 : #endif
161 :
162 : #undef CK_ENABLED
163 :
164 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
165 :
166 : #define RK_ENABLED 1
167 :
168 : #if RK5_ENABLED
169 : module procedure gemv_ASS_SFA_SFB_TNA_TNB_RK5
170 : use pm_kind, only: RKC => RK5
171 : #include "pm_matrixMulAdd@routines.inc.F90"
172 : end procedure
173 : #endif
174 :
175 : #if RK4_ENABLED
176 133 : module procedure gemv_ASS_SFA_SFB_TNA_TNB_RK4
177 : use pm_kind, only: RKC => RK4
178 : #include "pm_matrixMulAdd@routines.inc.F90"
179 : end procedure
180 : #endif
181 :
182 : #if RK3_ENABLED
183 144 : module procedure gemv_ASS_SFA_SFB_TNA_TNB_RK3
184 : use pm_kind, only: RKC => RK3
185 : #include "pm_matrixMulAdd@routines.inc.F90"
186 : end procedure
187 : #endif
188 :
189 : #if RK2_ENABLED
190 125 : module procedure gemv_ASS_SFA_SFB_TNA_TNB_RK2
191 : use pm_kind, only: RKC => RK2
192 : #define DISPATCH_ENABLED 1
193 : #include "pm_matrixMulAdd@routines.inc.F90"
194 : #undef DISPATCH_ENABLED
195 : end procedure
196 : #endif
197 :
198 : #if RK1_ENABLED
199 145 : module procedure gemv_ASS_SFA_SFB_TNA_TNB_RK1
200 : use pm_kind, only: RKC => RK1
201 : #define DISPATCH_ENABLED 1
202 : #include "pm_matrixMulAdd@routines.inc.F90"
203 : #undef DISPATCH_ENABLED
204 : end procedure
205 : #endif
206 :
207 : #undef RK_ENABLED
208 :
209 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
210 :
211 : #undef TNA_ENABLED
212 :
213 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
214 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
215 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
216 :
217 : #define TSA_ENABLED 1
218 :
219 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
220 :
221 : #define IK_ENABLED 1
222 :
223 : #if IK5_ENABLED
224 136 : module procedure gemv_ASS_SFA_SFB_TSA_TNB_IK5
225 : use pm_kind, only: IKC => IK5
226 : #include "pm_matrixMulAdd@routines.inc.F90"
227 : end procedure
228 : #endif
229 :
230 : #if IK4_ENABLED
231 141 : module procedure gemv_ASS_SFA_SFB_TSA_TNB_IK4
232 : use pm_kind, only: IKC => IK4
233 : #include "pm_matrixMulAdd@routines.inc.F90"
234 : end procedure
235 : #endif
236 :
237 : #if IK3_ENABLED
238 150 : module procedure gemv_ASS_SFA_SFB_TSA_TNB_IK3
239 : use pm_kind, only: IKC => IK3
240 : #include "pm_matrixMulAdd@routines.inc.F90"
241 : end procedure
242 : #endif
243 :
244 : #if IK2_ENABLED
245 133 : module procedure gemv_ASS_SFA_SFB_TSA_TNB_IK2
246 : use pm_kind, only: IKC => IK2
247 : #include "pm_matrixMulAdd@routines.inc.F90"
248 : end procedure
249 : #endif
250 :
251 : #if IK1_ENABLED
252 146 : module procedure gemv_ASS_SFA_SFB_TSA_TNB_IK1
253 : use pm_kind, only: IKC => IK1
254 : #include "pm_matrixMulAdd@routines.inc.F90"
255 : end procedure
256 : #endif
257 :
258 : #undef IK_ENABLED
259 :
260 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
261 :
262 : #define CK_ENABLED 1
263 :
264 : #if CK5_ENABLED
265 : module procedure gemv_ASS_SFA_SFB_TSA_TNB_CK5
266 : use pm_kind, only: CKC => CK5
267 : #include "pm_matrixMulAdd@routines.inc.F90"
268 : end procedure
269 : #endif
270 :
271 : #if CK4_ENABLED
272 141 : module procedure gemv_ASS_SFA_SFB_TSA_TNB_CK4
273 : use pm_kind, only: CKC => CK4
274 : #include "pm_matrixMulAdd@routines.inc.F90"
275 : end procedure
276 : #endif
277 :
278 : #if CK3_ENABLED
279 152 : module procedure gemv_ASS_SFA_SFB_TSA_TNB_CK3
280 : use pm_kind, only: CKC => CK3
281 : #include "pm_matrixMulAdd@routines.inc.F90"
282 : end procedure
283 : #endif
284 :
285 : #if CK2_ENABLED
286 130 : module procedure gemv_ASS_SFA_SFB_TSA_TNB_CK2
287 : use pm_kind, only: CKC => CK2
288 : #define DISPATCH_ENABLED 1
289 : #include "pm_matrixMulAdd@routines.inc.F90"
290 : #undef DISPATCH_ENABLED
291 : end procedure
292 : #endif
293 :
294 : #if CK1_ENABLED
295 144 : module procedure gemv_ASS_SFA_SFB_TSA_TNB_CK1
296 : use pm_kind, only: CKC => CK1
297 : #define DISPATCH_ENABLED 1
298 : #include "pm_matrixMulAdd@routines.inc.F90"
299 : #undef DISPATCH_ENABLED
300 : end procedure
301 : #endif
302 :
303 : #undef CK_ENABLED
304 :
305 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
306 :
307 : #define RK_ENABLED 1
308 :
309 : #if RK5_ENABLED
310 : module procedure gemv_ASS_SFA_SFB_TSA_TNB_RK5
311 : use pm_kind, only: RKC => RK5
312 : #include "pm_matrixMulAdd@routines.inc.F90"
313 : end procedure
314 : #endif
315 :
316 : #if RK4_ENABLED
317 132 : module procedure gemv_ASS_SFA_SFB_TSA_TNB_RK4
318 : use pm_kind, only: RKC => RK4
319 : #include "pm_matrixMulAdd@routines.inc.F90"
320 : end procedure
321 : #endif
322 :
323 : #if RK3_ENABLED
324 144 : module procedure gemv_ASS_SFA_SFB_TSA_TNB_RK3
325 : use pm_kind, only: RKC => RK3
326 : #include "pm_matrixMulAdd@routines.inc.F90"
327 : end procedure
328 : #endif
329 :
330 : #if RK2_ENABLED
331 125 : module procedure gemv_ASS_SFA_SFB_TSA_TNB_RK2
332 : use pm_kind, only: RKC => RK2
333 : #define DISPATCH_ENABLED 1
334 : #include "pm_matrixMulAdd@routines.inc.F90"
335 : #undef DISPATCH_ENABLED
336 : end procedure
337 : #endif
338 :
339 : #if RK1_ENABLED
340 144 : module procedure gemv_ASS_SFA_SFB_TSA_TNB_RK1
341 : use pm_kind, only: RKC => RK1
342 : #define DISPATCH_ENABLED 1
343 : #include "pm_matrixMulAdd@routines.inc.F90"
344 : #undef DISPATCH_ENABLED
345 : end procedure
346 : #endif
347 :
348 : #undef RK_ENABLED
349 :
350 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
351 :
352 : #undef TSA_ENABLED
353 :
354 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
355 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
356 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
357 :
358 : #define THA_ENABLED 1
359 :
360 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
361 :
362 : #define IK_ENABLED 1
363 :
364 : #if IK5_ENABLED
365 136 : module procedure gemv_ASS_SFA_SFB_THA_TNB_IK5
366 : use pm_kind, only: IKC => IK5
367 : #include "pm_matrixMulAdd@routines.inc.F90"
368 : end procedure
369 : #endif
370 :
371 : #if IK4_ENABLED
372 141 : module procedure gemv_ASS_SFA_SFB_THA_TNB_IK4
373 : use pm_kind, only: IKC => IK4
374 : #include "pm_matrixMulAdd@routines.inc.F90"
375 : end procedure
376 : #endif
377 :
378 : #if IK3_ENABLED
379 149 : module procedure gemv_ASS_SFA_SFB_THA_TNB_IK3
380 : use pm_kind, only: IKC => IK3
381 : #include "pm_matrixMulAdd@routines.inc.F90"
382 : end procedure
383 : #endif
384 :
385 : #if IK2_ENABLED
386 133 : module procedure gemv_ASS_SFA_SFB_THA_TNB_IK2
387 : use pm_kind, only: IKC => IK2
388 : #include "pm_matrixMulAdd@routines.inc.F90"
389 : end procedure
390 : #endif
391 :
392 : #if IK1_ENABLED
393 146 : module procedure gemv_ASS_SFA_SFB_THA_TNB_IK1
394 : use pm_kind, only: IKC => IK1
395 : #include "pm_matrixMulAdd@routines.inc.F90"
396 : end procedure
397 : #endif
398 :
399 : #undef IK_ENABLED
400 :
401 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
402 :
403 : #define CK_ENABLED 1
404 :
405 : #if CK5_ENABLED
406 : module procedure gemv_ASS_SFA_SFB_THA_TNB_CK5
407 : use pm_kind, only: CKC => CK5
408 : #include "pm_matrixMulAdd@routines.inc.F90"
409 : end procedure
410 : #endif
411 :
412 : #if CK4_ENABLED
413 141 : module procedure gemv_ASS_SFA_SFB_THA_TNB_CK4
414 : use pm_kind, only: CKC => CK4
415 : #include "pm_matrixMulAdd@routines.inc.F90"
416 : end procedure
417 : #endif
418 :
419 : #if CK3_ENABLED
420 152 : module procedure gemv_ASS_SFA_SFB_THA_TNB_CK3
421 : use pm_kind, only: CKC => CK3
422 : #include "pm_matrixMulAdd@routines.inc.F90"
423 : end procedure
424 : #endif
425 :
426 : #if CK2_ENABLED
427 130 : module procedure gemv_ASS_SFA_SFB_THA_TNB_CK2
428 : use pm_kind, only: CKC => CK2
429 : #define DISPATCH_ENABLED 1
430 : #include "pm_matrixMulAdd@routines.inc.F90"
431 : #undef DISPATCH_ENABLED
432 : end procedure
433 : #endif
434 :
435 : #if CK1_ENABLED
436 144 : module procedure gemv_ASS_SFA_SFB_THA_TNB_CK1
437 : use pm_kind, only: CKC => CK1
438 : #define DISPATCH_ENABLED 1
439 : #include "pm_matrixMulAdd@routines.inc.F90"
440 : #undef DISPATCH_ENABLED
441 : end procedure
442 : #endif
443 :
444 : #undef CK_ENABLED
445 :
446 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
447 :
448 : #define RK_ENABLED 1
449 :
450 : #if RK5_ENABLED
451 : module procedure gemv_ASS_SFA_SFB_THA_TNB_RK5
452 : use pm_kind, only: RKC => RK5
453 : #include "pm_matrixMulAdd@routines.inc.F90"
454 : end procedure
455 : #endif
456 :
457 : #if RK4_ENABLED
458 131 : module procedure gemv_ASS_SFA_SFB_THA_TNB_RK4
459 : use pm_kind, only: RKC => RK4
460 : #include "pm_matrixMulAdd@routines.inc.F90"
461 : end procedure
462 : #endif
463 :
464 : #if RK3_ENABLED
465 144 : module procedure gemv_ASS_SFA_SFB_THA_TNB_RK3
466 : use pm_kind, only: RKC => RK3
467 : #include "pm_matrixMulAdd@routines.inc.F90"
468 : end procedure
469 : #endif
470 :
471 : #if RK2_ENABLED
472 125 : module procedure gemv_ASS_SFA_SFB_THA_TNB_RK2
473 : use pm_kind, only: RKC => RK2
474 : #define DISPATCH_ENABLED 1
475 : #include "pm_matrixMulAdd@routines.inc.F90"
476 : #undef DISPATCH_ENABLED
477 : end procedure
478 : #endif
479 :
480 : #if RK1_ENABLED
481 143 : module procedure gemv_ASS_SFA_SFB_THA_TNB_RK1
482 : use pm_kind, only: RKC => RK1
483 : #define DISPATCH_ENABLED 1
484 : #include "pm_matrixMulAdd@routines.inc.F90"
485 : #undef DISPATCH_ENABLED
486 : end procedure
487 : #endif
488 :
489 : #undef RK_ENABLED
490 :
491 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
492 :
493 : #undef THA_ENABLED
494 :
495 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
496 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
497 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
498 :
499 : #undef TNB_ENABLED
500 :
501 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
502 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
503 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
504 :
505 : #undef ASS_ENABLED
506 :
507 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
508 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
509 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
510 :
511 : #define EXP_ENABLED 1
512 :
513 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
514 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
515 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
516 :
517 : #define TNB_ENABLED 1
518 :
519 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
520 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
521 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
522 :
523 : #define TNA_ENABLED 1
524 :
525 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
526 :
527 : #define IK_ENABLED 1
528 :
529 : #if IK5_ENABLED
530 100 : module procedure gemv_EXP_SFA_SFB_TNA_TNB_IK5
531 : use pm_kind, only: IKC => IK5
532 : #include "pm_matrixMulAdd@routines.inc.F90"
533 : end procedure
534 : #endif
535 :
536 : #if IK4_ENABLED
537 100 : module procedure gemv_EXP_SFA_SFB_TNA_TNB_IK4
538 : use pm_kind, only: IKC => IK4
539 : #include "pm_matrixMulAdd@routines.inc.F90"
540 : end procedure
541 : #endif
542 :
543 : #if IK3_ENABLED
544 102 : module procedure gemv_EXP_SFA_SFB_TNA_TNB_IK3
545 : use pm_kind, only: IKC => IK3
546 : #include "pm_matrixMulAdd@routines.inc.F90"
547 : end procedure
548 : #endif
549 :
550 : #if IK2_ENABLED
551 100 : module procedure gemv_EXP_SFA_SFB_TNA_TNB_IK2
552 : use pm_kind, only: IKC => IK2
553 : #include "pm_matrixMulAdd@routines.inc.F90"
554 : end procedure
555 : #endif
556 :
557 : #if IK1_ENABLED
558 100 : module procedure gemv_EXP_SFA_SFB_TNA_TNB_IK1
559 : use pm_kind, only: IKC => IK1
560 : #include "pm_matrixMulAdd@routines.inc.F90"
561 : end procedure
562 : #endif
563 :
564 : #undef IK_ENABLED
565 :
566 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
567 :
568 : #define CK_ENABLED 1
569 :
570 : #if CK5_ENABLED
571 : module procedure gemv_EXP_SFA_SFB_TNA_TNB_CK5
572 : use pm_kind, only: CKC => CK5
573 : #include "pm_matrixMulAdd@routines.inc.F90"
574 : end procedure
575 : #endif
576 :
577 : #if CK4_ENABLED
578 100 : module procedure gemv_EXP_SFA_SFB_TNA_TNB_CK4
579 : use pm_kind, only: CKC => CK4
580 : #include "pm_matrixMulAdd@routines.inc.F90"
581 : end procedure
582 : #endif
583 :
584 : #if CK3_ENABLED
585 100 : module procedure gemv_EXP_SFA_SFB_TNA_TNB_CK3
586 : use pm_kind, only: CKC => CK3
587 : #include "pm_matrixMulAdd@routines.inc.F90"
588 : end procedure
589 : #endif
590 :
591 : #if CK2_ENABLED
592 100 : module procedure gemv_EXP_SFA_SFB_TNA_TNB_CK2
593 : use pm_kind, only: CKC => CK2
594 : #define DISPATCH_ENABLED 1
595 : #include "pm_matrixMulAdd@routines.inc.F90"
596 : #undef DISPATCH_ENABLED
597 : end procedure
598 : #endif
599 :
600 : #if CK1_ENABLED
601 101 : module procedure gemv_EXP_SFA_SFB_TNA_TNB_CK1
602 : use pm_kind, only: CKC => CK1
603 : #define DISPATCH_ENABLED 1
604 : #include "pm_matrixMulAdd@routines.inc.F90"
605 : #undef DISPATCH_ENABLED
606 : end procedure
607 : #endif
608 :
609 : #undef CK_ENABLED
610 :
611 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
612 :
613 : #define RK_ENABLED 1
614 :
615 : #if RK5_ENABLED
616 : module procedure gemv_EXP_SFA_SFB_TNA_TNB_RK5
617 : use pm_kind, only: RKC => RK5
618 : #include "pm_matrixMulAdd@routines.inc.F90"
619 : end procedure
620 : #endif
621 :
622 : #if RK4_ENABLED
623 102 : module procedure gemv_EXP_SFA_SFB_TNA_TNB_RK4
624 : use pm_kind, only: RKC => RK4
625 : #include "pm_matrixMulAdd@routines.inc.F90"
626 : end procedure
627 : #endif
628 :
629 : #if RK3_ENABLED
630 100 : module procedure gemv_EXP_SFA_SFB_TNA_TNB_RK3
631 : use pm_kind, only: RKC => RK3
632 : #include "pm_matrixMulAdd@routines.inc.F90"
633 : end procedure
634 : #endif
635 :
636 : #if RK2_ENABLED
637 100 : module procedure gemv_EXP_SFA_SFB_TNA_TNB_RK2
638 : use pm_kind, only: RKC => RK2
639 : #define DISPATCH_ENABLED 1
640 : #include "pm_matrixMulAdd@routines.inc.F90"
641 : #undef DISPATCH_ENABLED
642 : end procedure
643 : #endif
644 :
645 : #if RK1_ENABLED
646 102 : module procedure gemv_EXP_SFA_SFB_TNA_TNB_RK1
647 : use pm_kind, only: RKC => RK1
648 : #define DISPATCH_ENABLED 1
649 : #include "pm_matrixMulAdd@routines.inc.F90"
650 : #undef DISPATCH_ENABLED
651 : end procedure
652 : #endif
653 :
654 : #undef RK_ENABLED
655 :
656 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
657 :
658 : #undef TNA_ENABLED
659 :
660 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
661 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
662 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
663 :
664 : #define TSA_ENABLED 1
665 :
666 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
667 :
668 : #define IK_ENABLED 1
669 :
670 : #if IK5_ENABLED
671 100 : module procedure gemv_EXP_SFA_SFB_TSA_TNB_IK5
672 : use pm_kind, only: IKC => IK5
673 : #include "pm_matrixMulAdd@routines.inc.F90"
674 : end procedure
675 : #endif
676 :
677 : #if IK4_ENABLED
678 100 : module procedure gemv_EXP_SFA_SFB_TSA_TNB_IK4
679 : use pm_kind, only: IKC => IK4
680 : #include "pm_matrixMulAdd@routines.inc.F90"
681 : end procedure
682 : #endif
683 :
684 : #if IK3_ENABLED
685 101 : module procedure gemv_EXP_SFA_SFB_TSA_TNB_IK3
686 : use pm_kind, only: IKC => IK3
687 : #include "pm_matrixMulAdd@routines.inc.F90"
688 : end procedure
689 : #endif
690 :
691 : #if IK2_ENABLED
692 100 : module procedure gemv_EXP_SFA_SFB_TSA_TNB_IK2
693 : use pm_kind, only: IKC => IK2
694 : #include "pm_matrixMulAdd@routines.inc.F90"
695 : end procedure
696 : #endif
697 :
698 : #if IK1_ENABLED
699 100 : module procedure gemv_EXP_SFA_SFB_TSA_TNB_IK1
700 : use pm_kind, only: IKC => IK1
701 : #include "pm_matrixMulAdd@routines.inc.F90"
702 : end procedure
703 : #endif
704 :
705 : #undef IK_ENABLED
706 :
707 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
708 :
709 : #define CK_ENABLED 1
710 :
711 : #if CK5_ENABLED
712 : module procedure gemv_EXP_SFA_SFB_TSA_TNB_CK5
713 : use pm_kind, only: CKC => CK5
714 : #include "pm_matrixMulAdd@routines.inc.F90"
715 : end procedure
716 : #endif
717 :
718 : #if CK4_ENABLED
719 100 : module procedure gemv_EXP_SFA_SFB_TSA_TNB_CK4
720 : use pm_kind, only: CKC => CK4
721 : #include "pm_matrixMulAdd@routines.inc.F90"
722 : end procedure
723 : #endif
724 :
725 : #if CK3_ENABLED
726 100 : module procedure gemv_EXP_SFA_SFB_TSA_TNB_CK3
727 : use pm_kind, only: CKC => CK3
728 : #include "pm_matrixMulAdd@routines.inc.F90"
729 : end procedure
730 : #endif
731 :
732 : #if CK2_ENABLED
733 100 : module procedure gemv_EXP_SFA_SFB_TSA_TNB_CK2
734 : use pm_kind, only: CKC => CK2
735 : #define DISPATCH_ENABLED 1
736 : #include "pm_matrixMulAdd@routines.inc.F90"
737 : #undef DISPATCH_ENABLED
738 : end procedure
739 : #endif
740 :
741 : #if CK1_ENABLED
742 101 : module procedure gemv_EXP_SFA_SFB_TSA_TNB_CK1
743 : use pm_kind, only: CKC => CK1
744 : #define DISPATCH_ENABLED 1
745 : #include "pm_matrixMulAdd@routines.inc.F90"
746 : #undef DISPATCH_ENABLED
747 : end procedure
748 : #endif
749 :
750 : #undef CK_ENABLED
751 :
752 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
753 :
754 : #define RK_ENABLED 1
755 :
756 : #if RK5_ENABLED
757 : module procedure gemv_EXP_SFA_SFB_TSA_TNB_RK5
758 : use pm_kind, only: RKC => RK5
759 : #include "pm_matrixMulAdd@routines.inc.F90"
760 : end procedure
761 : #endif
762 :
763 : #if RK4_ENABLED
764 101 : module procedure gemv_EXP_SFA_SFB_TSA_TNB_RK4
765 : use pm_kind, only: RKC => RK4
766 : #include "pm_matrixMulAdd@routines.inc.F90"
767 : end procedure
768 : #endif
769 :
770 : #if RK3_ENABLED
771 100 : module procedure gemv_EXP_SFA_SFB_TSA_TNB_RK3
772 : use pm_kind, only: RKC => RK3
773 : #include "pm_matrixMulAdd@routines.inc.F90"
774 : end procedure
775 : #endif
776 :
777 : #if RK2_ENABLED
778 100 : module procedure gemv_EXP_SFA_SFB_TSA_TNB_RK2
779 : use pm_kind, only: RKC => RK2
780 : #define DISPATCH_ENABLED 1
781 : #include "pm_matrixMulAdd@routines.inc.F90"
782 : #undef DISPATCH_ENABLED
783 : end procedure
784 : #endif
785 :
786 : #if RK1_ENABLED
787 101 : module procedure gemv_EXP_SFA_SFB_TSA_TNB_RK1
788 : use pm_kind, only: RKC => RK1
789 : #define DISPATCH_ENABLED 1
790 : #include "pm_matrixMulAdd@routines.inc.F90"
791 : #undef DISPATCH_ENABLED
792 : end procedure
793 : #endif
794 :
795 : #undef RK_ENABLED
796 :
797 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
798 :
799 : #undef TSA_ENABLED
800 :
801 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
802 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
803 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
804 :
805 : #define THA_ENABLED 1
806 :
807 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
808 :
809 : #define IK_ENABLED 1
810 :
811 : #if IK5_ENABLED
812 100 : module procedure gemv_EXP_SFA_SFB_THA_TNB_IK5
813 : use pm_kind, only: IKC => IK5
814 : #include "pm_matrixMulAdd@routines.inc.F90"
815 : end procedure
816 : #endif
817 :
818 : #if IK4_ENABLED
819 100 : module procedure gemv_EXP_SFA_SFB_THA_TNB_IK4
820 : use pm_kind, only: IKC => IK4
821 : #include "pm_matrixMulAdd@routines.inc.F90"
822 : end procedure
823 : #endif
824 :
825 : #if IK3_ENABLED
826 100 : module procedure gemv_EXP_SFA_SFB_THA_TNB_IK3
827 : use pm_kind, only: IKC => IK3
828 : #include "pm_matrixMulAdd@routines.inc.F90"
829 : end procedure
830 : #endif
831 :
832 : #if IK2_ENABLED
833 100 : module procedure gemv_EXP_SFA_SFB_THA_TNB_IK2
834 : use pm_kind, only: IKC => IK2
835 : #include "pm_matrixMulAdd@routines.inc.F90"
836 : end procedure
837 : #endif
838 :
839 : #if IK1_ENABLED
840 100 : module procedure gemv_EXP_SFA_SFB_THA_TNB_IK1
841 : use pm_kind, only: IKC => IK1
842 : #include "pm_matrixMulAdd@routines.inc.F90"
843 : end procedure
844 : #endif
845 :
846 : #undef IK_ENABLED
847 :
848 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
849 :
850 : #define CK_ENABLED 1
851 :
852 : #if CK5_ENABLED
853 : module procedure gemv_EXP_SFA_SFB_THA_TNB_CK5
854 : use pm_kind, only: CKC => CK5
855 : #include "pm_matrixMulAdd@routines.inc.F90"
856 : end procedure
857 : #endif
858 :
859 : #if CK4_ENABLED
860 100 : module procedure gemv_EXP_SFA_SFB_THA_TNB_CK4
861 : use pm_kind, only: CKC => CK4
862 : #include "pm_matrixMulAdd@routines.inc.F90"
863 : end procedure
864 : #endif
865 :
866 : #if CK3_ENABLED
867 100 : module procedure gemv_EXP_SFA_SFB_THA_TNB_CK3
868 : use pm_kind, only: CKC => CK3
869 : #include "pm_matrixMulAdd@routines.inc.F90"
870 : end procedure
871 : #endif
872 :
873 : #if CK2_ENABLED
874 100 : module procedure gemv_EXP_SFA_SFB_THA_TNB_CK2
875 : use pm_kind, only: CKC => CK2
876 : #define DISPATCH_ENABLED 1
877 : #include "pm_matrixMulAdd@routines.inc.F90"
878 : #undef DISPATCH_ENABLED
879 : end procedure
880 : #endif
881 :
882 : #if CK1_ENABLED
883 101 : module procedure gemv_EXP_SFA_SFB_THA_TNB_CK1
884 : use pm_kind, only: CKC => CK1
885 : #define DISPATCH_ENABLED 1
886 : #include "pm_matrixMulAdd@routines.inc.F90"
887 : #undef DISPATCH_ENABLED
888 : end procedure
889 : #endif
890 :
891 : #undef CK_ENABLED
892 :
893 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
894 :
895 : #define RK_ENABLED 1
896 :
897 : #if RK5_ENABLED
898 : module procedure gemv_EXP_SFA_SFB_THA_TNB_RK5
899 : use pm_kind, only: RKC => RK5
900 : #include "pm_matrixMulAdd@routines.inc.F90"
901 : end procedure
902 : #endif
903 :
904 : #if RK4_ENABLED
905 100 : module procedure gemv_EXP_SFA_SFB_THA_TNB_RK4
906 : use pm_kind, only: RKC => RK4
907 : #include "pm_matrixMulAdd@routines.inc.F90"
908 : end procedure
909 : #endif
910 :
911 : #if RK3_ENABLED
912 100 : module procedure gemv_EXP_SFA_SFB_THA_TNB_RK3
913 : use pm_kind, only: RKC => RK3
914 : #include "pm_matrixMulAdd@routines.inc.F90"
915 : end procedure
916 : #endif
917 :
918 : #if RK2_ENABLED
919 100 : module procedure gemv_EXP_SFA_SFB_THA_TNB_RK2
920 : use pm_kind, only: RKC => RK2
921 : #define DISPATCH_ENABLED 1
922 : #include "pm_matrixMulAdd@routines.inc.F90"
923 : #undef DISPATCH_ENABLED
924 : end procedure
925 : #endif
926 :
927 : #if RK1_ENABLED
928 100 : module procedure gemv_EXP_SFA_SFB_THA_TNB_RK1
929 : use pm_kind, only: RKC => RK1
930 : #define DISPATCH_ENABLED 1
931 : #include "pm_matrixMulAdd@routines.inc.F90"
932 : #undef DISPATCH_ENABLED
933 : end procedure
934 : #endif
935 :
936 : #undef RK_ENABLED
937 :
938 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
939 :
940 : #undef THA_ENABLED
941 :
942 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
943 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
944 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
945 :
946 : #undef TNB_ENABLED
947 :
948 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
949 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
950 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
951 :
952 : #undef EXP_ENABLED
953 :
954 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
955 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
956 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
957 :
958 : #undef SFA_ENABLED
959 : #undef SFB_ENABLED
960 :
961 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
962 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
963 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
964 :
965 : #undef gemv_ENABLED
966 :
967 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
968 :
969 : #define spmv_ENABLED 1
970 :
971 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
972 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
973 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
974 :
975 : #define CSA_ENABLED 1
976 : #define CNB_ENABLED 1
977 : #define SFB_ENABLED 1
978 :
979 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
980 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
981 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
982 :
983 : #define ASS_ENABLED 1
984 :
985 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
986 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
987 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
988 :
989 : #define SUA_ENABLED 1
990 :
991 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
992 :
993 : #define IK_ENABLED 1
994 :
995 : #if IK5_ENABLED
996 141 : module procedure spmv_ASS_CSA_SUA_CNB_SFB_IK5
997 : use pm_kind, only: IKC => IK5
998 : #include "pm_matrixMulAdd@routines.inc.F90"
999 : end procedure
1000 : #endif
1001 :
1002 : #if IK4_ENABLED
1003 144 : module procedure spmv_ASS_CSA_SUA_CNB_SFB_IK4
1004 : use pm_kind, only: IKC => IK4
1005 : #include "pm_matrixMulAdd@routines.inc.F90"
1006 : end procedure
1007 : #endif
1008 :
1009 : #if IK3_ENABLED
1010 134 : module procedure spmv_ASS_CSA_SUA_CNB_SFB_IK3
1011 : use pm_kind, only: IKC => IK3
1012 : #include "pm_matrixMulAdd@routines.inc.F90"
1013 : end procedure
1014 : #endif
1015 :
1016 : #if IK2_ENABLED
1017 130 : module procedure spmv_ASS_CSA_SUA_CNB_SFB_IK2
1018 : use pm_kind, only: IKC => IK2
1019 : #include "pm_matrixMulAdd@routines.inc.F90"
1020 : end procedure
1021 : #endif
1022 :
1023 : #if IK1_ENABLED
1024 153 : module procedure spmv_ASS_CSA_SUA_CNB_SFB_IK1
1025 : use pm_kind, only: IKC => IK1
1026 : #include "pm_matrixMulAdd@routines.inc.F90"
1027 : end procedure
1028 : #endif
1029 :
1030 : #undef IK_ENABLED
1031 :
1032 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1033 :
1034 : #define CK_ENABLED 1
1035 :
1036 : #if CK5_ENABLED
1037 : module procedure spmv_ASS_CSA_SUA_CNB_SFB_CK5
1038 : use pm_kind, only: CKC => CK5
1039 : #include "pm_matrixMulAdd@routines.inc.F90"
1040 : end procedure
1041 : #endif
1042 :
1043 : #if CK4_ENABLED
1044 142 : module procedure spmv_ASS_CSA_SUA_CNB_SFB_CK4
1045 : use pm_kind, only: CKC => CK4
1046 : #include "pm_matrixMulAdd@routines.inc.F90"
1047 : end procedure
1048 : #endif
1049 :
1050 : #if CK3_ENABLED
1051 139 : module procedure spmv_ASS_CSA_SUA_CNB_SFB_CK3
1052 : use pm_kind, only: CKC => CK3
1053 : #include "pm_matrixMulAdd@routines.inc.F90"
1054 : end procedure
1055 : #endif
1056 :
1057 : #if CK2_ENABLED
1058 132 : module procedure spmv_ASS_CSA_SUA_CNB_SFB_CK2
1059 : use pm_kind, only: CKC => CK2
1060 : #include "pm_matrixMulAdd@routines.inc.F90"
1061 : end procedure
1062 : #endif
1063 :
1064 : #if CK1_ENABLED
1065 150 : module procedure spmv_ASS_CSA_SUA_CNB_SFB_CK1
1066 : use pm_kind, only: CKC => CK1
1067 : #include "pm_matrixMulAdd@routines.inc.F90"
1068 : end procedure
1069 : #endif
1070 :
1071 : #undef CK_ENABLED
1072 :
1073 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1074 :
1075 : #define RK_ENABLED 1
1076 :
1077 : #if RK5_ENABLED
1078 : module procedure spmv_ASS_CSA_SUA_CNB_SFB_RK5
1079 : use pm_kind, only: RKC => RK5
1080 : #include "pm_matrixMulAdd@routines.inc.F90"
1081 : end procedure
1082 : #endif
1083 :
1084 : #if RK4_ENABLED
1085 138 : module procedure spmv_ASS_CSA_SUA_CNB_SFB_RK4
1086 : use pm_kind, only: RKC => RK4
1087 : #include "pm_matrixMulAdd@routines.inc.F90"
1088 : end procedure
1089 : #endif
1090 :
1091 : #if RK3_ENABLED
1092 140 : module procedure spmv_ASS_CSA_SUA_CNB_SFB_RK3
1093 : use pm_kind, only: RKC => RK3
1094 : #include "pm_matrixMulAdd@routines.inc.F90"
1095 : end procedure
1096 : #endif
1097 :
1098 : #if RK2_ENABLED
1099 131 : module procedure spmv_ASS_CSA_SUA_CNB_SFB_RK2
1100 : use pm_kind, only: RKC => RK2
1101 : #define DISPATCH_ENABLED 1
1102 : #include "pm_matrixMulAdd@routines.inc.F90"
1103 : #undef DISPATCH_ENABLED
1104 : end procedure
1105 : #endif
1106 :
1107 : #if RK1_ENABLED
1108 150 : module procedure spmv_ASS_CSA_SUA_CNB_SFB_RK1
1109 : use pm_kind, only: RKC => RK1
1110 : #define DISPATCH_ENABLED 1
1111 : #include "pm_matrixMulAdd@routines.inc.F90"
1112 : #undef DISPATCH_ENABLED
1113 : end procedure
1114 : #endif
1115 :
1116 : #undef RK_ENABLED
1117 :
1118 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1119 :
1120 : #undef SUA_ENABLED
1121 :
1122 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1123 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1124 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1125 :
1126 : #define SLA_ENABLED 1
1127 :
1128 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1129 :
1130 : #define IK_ENABLED 1
1131 :
1132 : #if IK5_ENABLED
1133 141 : module procedure spmv_ASS_CSA_SLA_CNB_SFB_IK5
1134 : use pm_kind, only: IKC => IK5
1135 : #include "pm_matrixMulAdd@routines.inc.F90"
1136 : end procedure
1137 : #endif
1138 :
1139 : #if IK4_ENABLED
1140 144 : module procedure spmv_ASS_CSA_SLA_CNB_SFB_IK4
1141 : use pm_kind, only: IKC => IK4
1142 : #include "pm_matrixMulAdd@routines.inc.F90"
1143 : end procedure
1144 : #endif
1145 :
1146 : #if IK3_ENABLED
1147 134 : module procedure spmv_ASS_CSA_SLA_CNB_SFB_IK3
1148 : use pm_kind, only: IKC => IK3
1149 : #include "pm_matrixMulAdd@routines.inc.F90"
1150 : end procedure
1151 : #endif
1152 :
1153 : #if IK2_ENABLED
1154 130 : module procedure spmv_ASS_CSA_SLA_CNB_SFB_IK2
1155 : use pm_kind, only: IKC => IK2
1156 : #include "pm_matrixMulAdd@routines.inc.F90"
1157 : end procedure
1158 : #endif
1159 :
1160 : #if IK1_ENABLED
1161 153 : module procedure spmv_ASS_CSA_SLA_CNB_SFB_IK1
1162 : use pm_kind, only: IKC => IK1
1163 : #include "pm_matrixMulAdd@routines.inc.F90"
1164 : end procedure
1165 : #endif
1166 :
1167 : #undef IK_ENABLED
1168 :
1169 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1170 :
1171 : #define CK_ENABLED 1
1172 :
1173 : #if CK5_ENABLED
1174 : module procedure spmv_ASS_CSA_SLA_CNB_SFB_CK5
1175 : use pm_kind, only: CKC => CK5
1176 : #include "pm_matrixMulAdd@routines.inc.F90"
1177 : end procedure
1178 : #endif
1179 :
1180 : #if CK4_ENABLED
1181 142 : module procedure spmv_ASS_CSA_SLA_CNB_SFB_CK4
1182 : use pm_kind, only: CKC => CK4
1183 : #include "pm_matrixMulAdd@routines.inc.F90"
1184 : end procedure
1185 : #endif
1186 :
1187 : #if CK3_ENABLED
1188 139 : module procedure spmv_ASS_CSA_SLA_CNB_SFB_CK3
1189 : use pm_kind, only: CKC => CK3
1190 : #include "pm_matrixMulAdd@routines.inc.F90"
1191 : end procedure
1192 : #endif
1193 :
1194 : #if CK2_ENABLED
1195 132 : module procedure spmv_ASS_CSA_SLA_CNB_SFB_CK2
1196 : use pm_kind, only: CKC => CK2
1197 : #include "pm_matrixMulAdd@routines.inc.F90"
1198 : end procedure
1199 : #endif
1200 :
1201 : #if CK1_ENABLED
1202 150 : module procedure spmv_ASS_CSA_SLA_CNB_SFB_CK1
1203 : use pm_kind, only: CKC => CK1
1204 : #include "pm_matrixMulAdd@routines.inc.F90"
1205 : end procedure
1206 : #endif
1207 :
1208 : #undef CK_ENABLED
1209 :
1210 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1211 :
1212 : #define RK_ENABLED 1
1213 :
1214 : #if RK5_ENABLED
1215 : module procedure spmv_ASS_CSA_SLA_CNB_SFB_RK5
1216 : use pm_kind, only: RKC => RK5
1217 : #include "pm_matrixMulAdd@routines.inc.F90"
1218 : end procedure
1219 : #endif
1220 :
1221 : #if RK4_ENABLED
1222 138 : module procedure spmv_ASS_CSA_SLA_CNB_SFB_RK4
1223 : use pm_kind, only: RKC => RK4
1224 : #include "pm_matrixMulAdd@routines.inc.F90"
1225 : end procedure
1226 : #endif
1227 :
1228 : #if RK3_ENABLED
1229 140 : module procedure spmv_ASS_CSA_SLA_CNB_SFB_RK3
1230 : use pm_kind, only: RKC => RK3
1231 : #include "pm_matrixMulAdd@routines.inc.F90"
1232 : end procedure
1233 : #endif
1234 :
1235 : #if RK2_ENABLED
1236 131 : module procedure spmv_ASS_CSA_SLA_CNB_SFB_RK2
1237 : use pm_kind, only: RKC => RK2
1238 : #define DISPATCH_ENABLED 1
1239 : #include "pm_matrixMulAdd@routines.inc.F90"
1240 : #undef DISPATCH_ENABLED
1241 : end procedure
1242 : #endif
1243 :
1244 : #if RK1_ENABLED
1245 150 : module procedure spmv_ASS_CSA_SLA_CNB_SFB_RK1
1246 : use pm_kind, only: RKC => RK1
1247 : #define DISPATCH_ENABLED 1
1248 : #include "pm_matrixMulAdd@routines.inc.F90"
1249 : #undef DISPATCH_ENABLED
1250 : end procedure
1251 : #endif
1252 :
1253 : #undef RK_ENABLED
1254 :
1255 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1256 :
1257 : #undef SLA_ENABLED
1258 :
1259 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1260 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1261 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1262 :
1263 : #undef ASS_ENABLED
1264 :
1265 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1266 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1267 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1268 :
1269 : #define EXP_ENABLED 1
1270 :
1271 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1272 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1273 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1274 :
1275 : #define SUA_ENABLED 1
1276 :
1277 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1278 :
1279 : #define IK_ENABLED 1
1280 :
1281 : #if IK5_ENABLED
1282 100 : module procedure spmv_EXP_CSA_SUA_CNB_SFB_IK5
1283 : use pm_kind, only: IKC => IK5
1284 : #include "pm_matrixMulAdd@routines.inc.F90"
1285 : end procedure
1286 : #endif
1287 :
1288 : #if IK4_ENABLED
1289 100 : module procedure spmv_EXP_CSA_SUA_CNB_SFB_IK4
1290 : use pm_kind, only: IKC => IK4
1291 : #include "pm_matrixMulAdd@routines.inc.F90"
1292 : end procedure
1293 : #endif
1294 :
1295 : #if IK3_ENABLED
1296 100 : module procedure spmv_EXP_CSA_SUA_CNB_SFB_IK3
1297 : use pm_kind, only: IKC => IK3
1298 : #include "pm_matrixMulAdd@routines.inc.F90"
1299 : end procedure
1300 : #endif
1301 :
1302 : #if IK2_ENABLED
1303 100 : module procedure spmv_EXP_CSA_SUA_CNB_SFB_IK2
1304 : use pm_kind, only: IKC => IK2
1305 : #include "pm_matrixMulAdd@routines.inc.F90"
1306 : end procedure
1307 : #endif
1308 :
1309 : #if IK1_ENABLED
1310 100 : module procedure spmv_EXP_CSA_SUA_CNB_SFB_IK1
1311 : use pm_kind, only: IKC => IK1
1312 : #include "pm_matrixMulAdd@routines.inc.F90"
1313 : end procedure
1314 : #endif
1315 :
1316 : #undef IK_ENABLED
1317 :
1318 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1319 :
1320 : #define CK_ENABLED 1
1321 :
1322 : #if CK5_ENABLED
1323 : module procedure spmv_EXP_CSA_SUA_CNB_SFB_CK5
1324 : use pm_kind, only: CKC => CK5
1325 : #include "pm_matrixMulAdd@routines.inc.F90"
1326 : end procedure
1327 : #endif
1328 :
1329 : #if CK4_ENABLED
1330 100 : module procedure spmv_EXP_CSA_SUA_CNB_SFB_CK4
1331 : use pm_kind, only: CKC => CK4
1332 : #include "pm_matrixMulAdd@routines.inc.F90"
1333 : end procedure
1334 : #endif
1335 :
1336 : #if CK3_ENABLED
1337 100 : module procedure spmv_EXP_CSA_SUA_CNB_SFB_CK3
1338 : use pm_kind, only: CKC => CK3
1339 : #include "pm_matrixMulAdd@routines.inc.F90"
1340 : end procedure
1341 : #endif
1342 :
1343 : #if CK2_ENABLED
1344 100 : module procedure spmv_EXP_CSA_SUA_CNB_SFB_CK2
1345 : use pm_kind, only: CKC => CK2
1346 : #include "pm_matrixMulAdd@routines.inc.F90"
1347 : end procedure
1348 : #endif
1349 :
1350 : #if CK1_ENABLED
1351 100 : module procedure spmv_EXP_CSA_SUA_CNB_SFB_CK1
1352 : use pm_kind, only: CKC => CK1
1353 : #include "pm_matrixMulAdd@routines.inc.F90"
1354 : end procedure
1355 : #endif
1356 :
1357 : #undef CK_ENABLED
1358 :
1359 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1360 :
1361 : #define RK_ENABLED 1
1362 :
1363 : #if RK5_ENABLED
1364 : module procedure spmv_EXP_CSA_SUA_CNB_SFB_RK5
1365 : use pm_kind, only: RKC => RK5
1366 : #include "pm_matrixMulAdd@routines.inc.F90"
1367 : end procedure
1368 : #endif
1369 :
1370 : #if RK4_ENABLED
1371 100 : module procedure spmv_EXP_CSA_SUA_CNB_SFB_RK4
1372 : use pm_kind, only: RKC => RK4
1373 : #include "pm_matrixMulAdd@routines.inc.F90"
1374 : end procedure
1375 : #endif
1376 :
1377 : #if RK3_ENABLED
1378 100 : module procedure spmv_EXP_CSA_SUA_CNB_SFB_RK3
1379 : use pm_kind, only: RKC => RK3
1380 : #include "pm_matrixMulAdd@routines.inc.F90"
1381 : end procedure
1382 : #endif
1383 :
1384 : #if RK2_ENABLED
1385 100 : module procedure spmv_EXP_CSA_SUA_CNB_SFB_RK2
1386 : use pm_kind, only: RKC => RK2
1387 : #define DISPATCH_ENABLED 1
1388 : #include "pm_matrixMulAdd@routines.inc.F90"
1389 : #undef DISPATCH_ENABLED
1390 : end procedure
1391 : #endif
1392 :
1393 : #if RK1_ENABLED
1394 100 : module procedure spmv_EXP_CSA_SUA_CNB_SFB_RK1
1395 : use pm_kind, only: RKC => RK1
1396 : #define DISPATCH_ENABLED 1
1397 : #include "pm_matrixMulAdd@routines.inc.F90"
1398 : #undef DISPATCH_ENABLED
1399 : end procedure
1400 : #endif
1401 :
1402 : #undef RK_ENABLED
1403 :
1404 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1405 :
1406 : #undef SUA_ENABLED
1407 :
1408 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1409 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1410 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1411 :
1412 : #define SLA_ENABLED 1
1413 :
1414 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1415 :
1416 : #define IK_ENABLED 1
1417 :
1418 : #if IK5_ENABLED
1419 100 : module procedure spmv_EXP_CSA_SLA_CNB_SFB_IK5
1420 : use pm_kind, only: IKC => IK5
1421 : #include "pm_matrixMulAdd@routines.inc.F90"
1422 : end procedure
1423 : #endif
1424 :
1425 : #if IK4_ENABLED
1426 100 : module procedure spmv_EXP_CSA_SLA_CNB_SFB_IK4
1427 : use pm_kind, only: IKC => IK4
1428 : #include "pm_matrixMulAdd@routines.inc.F90"
1429 : end procedure
1430 : #endif
1431 :
1432 : #if IK3_ENABLED
1433 100 : module procedure spmv_EXP_CSA_SLA_CNB_SFB_IK3
1434 : use pm_kind, only: IKC => IK3
1435 : #include "pm_matrixMulAdd@routines.inc.F90"
1436 : end procedure
1437 : #endif
1438 :
1439 : #if IK2_ENABLED
1440 100 : module procedure spmv_EXP_CSA_SLA_CNB_SFB_IK2
1441 : use pm_kind, only: IKC => IK2
1442 : #include "pm_matrixMulAdd@routines.inc.F90"
1443 : end procedure
1444 : #endif
1445 :
1446 : #if IK1_ENABLED
1447 100 : module procedure spmv_EXP_CSA_SLA_CNB_SFB_IK1
1448 : use pm_kind, only: IKC => IK1
1449 : #include "pm_matrixMulAdd@routines.inc.F90"
1450 : end procedure
1451 : #endif
1452 :
1453 : #undef IK_ENABLED
1454 :
1455 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1456 :
1457 : #define CK_ENABLED 1
1458 :
1459 : #if CK5_ENABLED
1460 : module procedure spmv_EXP_CSA_SLA_CNB_SFB_CK5
1461 : use pm_kind, only: CKC => CK5
1462 : #include "pm_matrixMulAdd@routines.inc.F90"
1463 : end procedure
1464 : #endif
1465 :
1466 : #if CK4_ENABLED
1467 100 : module procedure spmv_EXP_CSA_SLA_CNB_SFB_CK4
1468 : use pm_kind, only: CKC => CK4
1469 : #include "pm_matrixMulAdd@routines.inc.F90"
1470 : end procedure
1471 : #endif
1472 :
1473 : #if CK3_ENABLED
1474 100 : module procedure spmv_EXP_CSA_SLA_CNB_SFB_CK3
1475 : use pm_kind, only: CKC => CK3
1476 : #include "pm_matrixMulAdd@routines.inc.F90"
1477 : end procedure
1478 : #endif
1479 :
1480 : #if CK2_ENABLED
1481 100 : module procedure spmv_EXP_CSA_SLA_CNB_SFB_CK2
1482 : use pm_kind, only: CKC => CK2
1483 : #include "pm_matrixMulAdd@routines.inc.F90"
1484 : end procedure
1485 : #endif
1486 :
1487 : #if CK1_ENABLED
1488 100 : module procedure spmv_EXP_CSA_SLA_CNB_SFB_CK1
1489 : use pm_kind, only: CKC => CK1
1490 : #include "pm_matrixMulAdd@routines.inc.F90"
1491 : end procedure
1492 : #endif
1493 :
1494 : #undef CK_ENABLED
1495 :
1496 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1497 :
1498 : #define RK_ENABLED 1
1499 :
1500 : #if RK5_ENABLED
1501 : module procedure spmv_EXP_CSA_SLA_CNB_SFB_RK5
1502 : use pm_kind, only: RKC => RK5
1503 : #include "pm_matrixMulAdd@routines.inc.F90"
1504 : end procedure
1505 : #endif
1506 :
1507 : #if RK4_ENABLED
1508 100 : module procedure spmv_EXP_CSA_SLA_CNB_SFB_RK4
1509 : use pm_kind, only: RKC => RK4
1510 : #include "pm_matrixMulAdd@routines.inc.F90"
1511 : end procedure
1512 : #endif
1513 :
1514 : #if RK3_ENABLED
1515 100 : module procedure spmv_EXP_CSA_SLA_CNB_SFB_RK3
1516 : use pm_kind, only: RKC => RK3
1517 : #include "pm_matrixMulAdd@routines.inc.F90"
1518 : end procedure
1519 : #endif
1520 :
1521 : #if RK2_ENABLED
1522 100 : module procedure spmv_EXP_CSA_SLA_CNB_SFB_RK2
1523 : use pm_kind, only: RKC => RK2
1524 : #define DISPATCH_ENABLED 1
1525 : #include "pm_matrixMulAdd@routines.inc.F90"
1526 : #undef DISPATCH_ENABLED
1527 : end procedure
1528 : #endif
1529 :
1530 : #if RK1_ENABLED
1531 100 : module procedure spmv_EXP_CSA_SLA_CNB_SFB_RK1
1532 : use pm_kind, only: RKC => RK1
1533 : #define DISPATCH_ENABLED 1
1534 : #include "pm_matrixMulAdd@routines.inc.F90"
1535 : #undef DISPATCH_ENABLED
1536 : end procedure
1537 : #endif
1538 :
1539 : #undef RK_ENABLED
1540 :
1541 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1542 :
1543 : #undef SLA_ENABLED
1544 :
1545 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1546 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1547 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1548 :
1549 : #undef EXP_ENABLED
1550 :
1551 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1552 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1553 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1554 :
1555 : #undef CNB_ENABLED
1556 : #undef SFB_ENABLED
1557 : #undef CSA_ENABLED
1558 :
1559 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1560 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1561 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1562 :
1563 : #undef spmv_ENABLED
1564 :
1565 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1566 :
1567 : #define hpmv_ENABLED 1
1568 :
1569 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1570 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1571 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1572 :
1573 : #define CHA_ENABLED 1
1574 : #define CNB_ENABLED 1
1575 : #define SFB_ENABLED 1
1576 :
1577 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1578 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1579 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1580 :
1581 : #define ASS_ENABLED 1
1582 :
1583 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1584 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1585 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1586 :
1587 : #define SUA_ENABLED 1
1588 :
1589 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1590 :
1591 : #define IK_ENABLED 1
1592 :
1593 : #if IK5_ENABLED
1594 141 : module procedure hpmv_ASS_CHA_SUA_CNB_SFB_IK5
1595 : use pm_kind, only: IKC => IK5
1596 : #include "pm_matrixMulAdd@routines.inc.F90"
1597 : end procedure
1598 : #endif
1599 :
1600 : #if IK4_ENABLED
1601 144 : module procedure hpmv_ASS_CHA_SUA_CNB_SFB_IK4
1602 : use pm_kind, only: IKC => IK4
1603 : #include "pm_matrixMulAdd@routines.inc.F90"
1604 : end procedure
1605 : #endif
1606 :
1607 : #if IK3_ENABLED
1608 134 : module procedure hpmv_ASS_CHA_SUA_CNB_SFB_IK3
1609 : use pm_kind, only: IKC => IK3
1610 : #include "pm_matrixMulAdd@routines.inc.F90"
1611 : end procedure
1612 : #endif
1613 :
1614 : #if IK2_ENABLED
1615 130 : module procedure hpmv_ASS_CHA_SUA_CNB_SFB_IK2
1616 : use pm_kind, only: IKC => IK2
1617 : #include "pm_matrixMulAdd@routines.inc.F90"
1618 : end procedure
1619 : #endif
1620 :
1621 : #if IK1_ENABLED
1622 153 : module procedure hpmv_ASS_CHA_SUA_CNB_SFB_IK1
1623 : use pm_kind, only: IKC => IK1
1624 : #include "pm_matrixMulAdd@routines.inc.F90"
1625 : end procedure
1626 : #endif
1627 :
1628 : #undef IK_ENABLED
1629 :
1630 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1631 :
1632 : #define CK_ENABLED 1
1633 :
1634 : #if CK5_ENABLED
1635 : module procedure hpmv_ASS_CHA_SUA_CNB_SFB_CK5
1636 : use pm_kind, only: CKC => CK5
1637 : #include "pm_matrixMulAdd@routines.inc.F90"
1638 : end procedure
1639 : #endif
1640 :
1641 : #if CK4_ENABLED
1642 142 : module procedure hpmv_ASS_CHA_SUA_CNB_SFB_CK4
1643 : use pm_kind, only: CKC => CK4
1644 : #include "pm_matrixMulAdd@routines.inc.F90"
1645 : end procedure
1646 : #endif
1647 :
1648 : #if CK3_ENABLED
1649 139 : module procedure hpmv_ASS_CHA_SUA_CNB_SFB_CK3
1650 : use pm_kind, only: CKC => CK3
1651 : #include "pm_matrixMulAdd@routines.inc.F90"
1652 : end procedure
1653 : #endif
1654 :
1655 : #if CK2_ENABLED
1656 132 : module procedure hpmv_ASS_CHA_SUA_CNB_SFB_CK2
1657 : use pm_kind, only: CKC => CK2
1658 : #define DISPATCH_ENABLED 1
1659 : #include "pm_matrixMulAdd@routines.inc.F90"
1660 : #undef DISPATCH_ENABLED
1661 : end procedure
1662 : #endif
1663 :
1664 : #if CK1_ENABLED
1665 150 : module procedure hpmv_ASS_CHA_SUA_CNB_SFB_CK1
1666 : use pm_kind, only: CKC => CK1
1667 : #define DISPATCH_ENABLED 1
1668 : #include "pm_matrixMulAdd@routines.inc.F90"
1669 : #undef DISPATCH_ENABLED
1670 : end procedure
1671 : #endif
1672 :
1673 : #undef CK_ENABLED
1674 :
1675 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1676 :
1677 : #define RK_ENABLED 1
1678 :
1679 : #if RK5_ENABLED
1680 : module procedure hpmv_ASS_CHA_SUA_CNB_SFB_RK5
1681 : use pm_kind, only: RKC => RK5
1682 : #include "pm_matrixMulAdd@routines.inc.F90"
1683 : end procedure
1684 : #endif
1685 :
1686 : #if RK4_ENABLED
1687 138 : module procedure hpmv_ASS_CHA_SUA_CNB_SFB_RK4
1688 : use pm_kind, only: RKC => RK4
1689 : #include "pm_matrixMulAdd@routines.inc.F90"
1690 : end procedure
1691 : #endif
1692 :
1693 : #if RK3_ENABLED
1694 140 : module procedure hpmv_ASS_CHA_SUA_CNB_SFB_RK3
1695 : use pm_kind, only: RKC => RK3
1696 : #include "pm_matrixMulAdd@routines.inc.F90"
1697 : end procedure
1698 : #endif
1699 :
1700 : #if RK2_ENABLED
1701 131 : module procedure hpmv_ASS_CHA_SUA_CNB_SFB_RK2
1702 : use pm_kind, only: RKC => RK2
1703 : #include "pm_matrixMulAdd@routines.inc.F90"
1704 : end procedure
1705 : #endif
1706 :
1707 : #if RK1_ENABLED
1708 150 : module procedure hpmv_ASS_CHA_SUA_CNB_SFB_RK1
1709 : use pm_kind, only: RKC => RK1
1710 : #include "pm_matrixMulAdd@routines.inc.F90"
1711 : end procedure
1712 : #endif
1713 :
1714 : #undef RK_ENABLED
1715 :
1716 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1717 :
1718 : #undef SUA_ENABLED
1719 :
1720 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1721 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1722 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1723 :
1724 : #define SLA_ENABLED 1
1725 :
1726 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1727 :
1728 : #define IK_ENABLED 1
1729 :
1730 : #if IK5_ENABLED
1731 141 : module procedure hpmv_ASS_CHA_SLA_CNB_SFB_IK5
1732 : use pm_kind, only: IKC => IK5
1733 : #include "pm_matrixMulAdd@routines.inc.F90"
1734 : end procedure
1735 : #endif
1736 :
1737 : #if IK4_ENABLED
1738 144 : module procedure hpmv_ASS_CHA_SLA_CNB_SFB_IK4
1739 : use pm_kind, only: IKC => IK4
1740 : #include "pm_matrixMulAdd@routines.inc.F90"
1741 : end procedure
1742 : #endif
1743 :
1744 : #if IK3_ENABLED
1745 134 : module procedure hpmv_ASS_CHA_SLA_CNB_SFB_IK3
1746 : use pm_kind, only: IKC => IK3
1747 : #include "pm_matrixMulAdd@routines.inc.F90"
1748 : end procedure
1749 : #endif
1750 :
1751 : #if IK2_ENABLED
1752 130 : module procedure hpmv_ASS_CHA_SLA_CNB_SFB_IK2
1753 : use pm_kind, only: IKC => IK2
1754 : #include "pm_matrixMulAdd@routines.inc.F90"
1755 : end procedure
1756 : #endif
1757 :
1758 : #if IK1_ENABLED
1759 153 : module procedure hpmv_ASS_CHA_SLA_CNB_SFB_IK1
1760 : use pm_kind, only: IKC => IK1
1761 : #include "pm_matrixMulAdd@routines.inc.F90"
1762 : end procedure
1763 : #endif
1764 :
1765 : #undef IK_ENABLED
1766 :
1767 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1768 :
1769 : #define CK_ENABLED 1
1770 :
1771 : #if CK5_ENABLED
1772 : module procedure hpmv_ASS_CHA_SLA_CNB_SFB_CK5
1773 : use pm_kind, only: CKC => CK5
1774 : #include "pm_matrixMulAdd@routines.inc.F90"
1775 : end procedure
1776 : #endif
1777 :
1778 : #if CK4_ENABLED
1779 142 : module procedure hpmv_ASS_CHA_SLA_CNB_SFB_CK4
1780 : use pm_kind, only: CKC => CK4
1781 : #include "pm_matrixMulAdd@routines.inc.F90"
1782 : end procedure
1783 : #endif
1784 :
1785 : #if CK3_ENABLED
1786 139 : module procedure hpmv_ASS_CHA_SLA_CNB_SFB_CK3
1787 : use pm_kind, only: CKC => CK3
1788 : #include "pm_matrixMulAdd@routines.inc.F90"
1789 : end procedure
1790 : #endif
1791 :
1792 : #if CK2_ENABLED
1793 132 : module procedure hpmv_ASS_CHA_SLA_CNB_SFB_CK2
1794 : use pm_kind, only: CKC => CK2
1795 : #define DISPATCH_ENABLED 1
1796 : #include "pm_matrixMulAdd@routines.inc.F90"
1797 : #undef DISPATCH_ENABLED
1798 : end procedure
1799 : #endif
1800 :
1801 : #if CK1_ENABLED
1802 150 : module procedure hpmv_ASS_CHA_SLA_CNB_SFB_CK1
1803 : use pm_kind, only: CKC => CK1
1804 : #define DISPATCH_ENABLED 1
1805 : #include "pm_matrixMulAdd@routines.inc.F90"
1806 : #undef DISPATCH_ENABLED
1807 : end procedure
1808 : #endif
1809 :
1810 : #undef CK_ENABLED
1811 :
1812 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1813 :
1814 : #define RK_ENABLED 1
1815 :
1816 : #if RK5_ENABLED
1817 : module procedure hpmv_ASS_CHA_SLA_CNB_SFB_RK5
1818 : use pm_kind, only: RKC => RK5
1819 : #include "pm_matrixMulAdd@routines.inc.F90"
1820 : end procedure
1821 : #endif
1822 :
1823 : #if RK4_ENABLED
1824 138 : module procedure hpmv_ASS_CHA_SLA_CNB_SFB_RK4
1825 : use pm_kind, only: RKC => RK4
1826 : #include "pm_matrixMulAdd@routines.inc.F90"
1827 : end procedure
1828 : #endif
1829 :
1830 : #if RK3_ENABLED
1831 140 : module procedure hpmv_ASS_CHA_SLA_CNB_SFB_RK3
1832 : use pm_kind, only: RKC => RK3
1833 : #include "pm_matrixMulAdd@routines.inc.F90"
1834 : end procedure
1835 : #endif
1836 :
1837 : #if RK2_ENABLED
1838 131 : module procedure hpmv_ASS_CHA_SLA_CNB_SFB_RK2
1839 : use pm_kind, only: RKC => RK2
1840 : #include "pm_matrixMulAdd@routines.inc.F90"
1841 : end procedure
1842 : #endif
1843 :
1844 : #if RK1_ENABLED
1845 150 : module procedure hpmv_ASS_CHA_SLA_CNB_SFB_RK1
1846 : use pm_kind, only: RKC => RK1
1847 : #include "pm_matrixMulAdd@routines.inc.F90"
1848 : end procedure
1849 : #endif
1850 :
1851 : #undef RK_ENABLED
1852 :
1853 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1854 :
1855 : #undef SLA_ENABLED
1856 :
1857 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1858 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1859 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1860 :
1861 : #undef ASS_ENABLED
1862 :
1863 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1864 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1865 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1866 :
1867 : #define EXP_ENABLED 1
1868 :
1869 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1870 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1871 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1872 :
1873 : #define SUA_ENABLED 1
1874 :
1875 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1876 :
1877 : #define IK_ENABLED 1
1878 :
1879 : #if IK5_ENABLED
1880 100 : module procedure hpmv_EXP_CHA_SUA_CNB_SFB_IK5
1881 : use pm_kind, only: IKC => IK5
1882 : #include "pm_matrixMulAdd@routines.inc.F90"
1883 : end procedure
1884 : #endif
1885 :
1886 : #if IK4_ENABLED
1887 100 : module procedure hpmv_EXP_CHA_SUA_CNB_SFB_IK4
1888 : use pm_kind, only: IKC => IK4
1889 : #include "pm_matrixMulAdd@routines.inc.F90"
1890 : end procedure
1891 : #endif
1892 :
1893 : #if IK3_ENABLED
1894 100 : module procedure hpmv_EXP_CHA_SUA_CNB_SFB_IK3
1895 : use pm_kind, only: IKC => IK3
1896 : #include "pm_matrixMulAdd@routines.inc.F90"
1897 : end procedure
1898 : #endif
1899 :
1900 : #if IK2_ENABLED
1901 100 : module procedure hpmv_EXP_CHA_SUA_CNB_SFB_IK2
1902 : use pm_kind, only: IKC => IK2
1903 : #include "pm_matrixMulAdd@routines.inc.F90"
1904 : end procedure
1905 : #endif
1906 :
1907 : #if IK1_ENABLED
1908 100 : module procedure hpmv_EXP_CHA_SUA_CNB_SFB_IK1
1909 : use pm_kind, only: IKC => IK1
1910 : #include "pm_matrixMulAdd@routines.inc.F90"
1911 : end procedure
1912 : #endif
1913 :
1914 : #undef IK_ENABLED
1915 :
1916 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1917 :
1918 : #define CK_ENABLED 1
1919 :
1920 : #if CK5_ENABLED
1921 : module procedure hpmv_EXP_CHA_SUA_CNB_SFB_CK5
1922 : use pm_kind, only: CKC => CK5
1923 : #include "pm_matrixMulAdd@routines.inc.F90"
1924 : end procedure
1925 : #endif
1926 :
1927 : #if CK4_ENABLED
1928 100 : module procedure hpmv_EXP_CHA_SUA_CNB_SFB_CK4
1929 : use pm_kind, only: CKC => CK4
1930 : #include "pm_matrixMulAdd@routines.inc.F90"
1931 : end procedure
1932 : #endif
1933 :
1934 : #if CK3_ENABLED
1935 100 : module procedure hpmv_EXP_CHA_SUA_CNB_SFB_CK3
1936 : use pm_kind, only: CKC => CK3
1937 : #include "pm_matrixMulAdd@routines.inc.F90"
1938 : end procedure
1939 : #endif
1940 :
1941 : #if CK2_ENABLED
1942 100 : module procedure hpmv_EXP_CHA_SUA_CNB_SFB_CK2
1943 : use pm_kind, only: CKC => CK2
1944 : #define DISPATCH_ENABLED 1
1945 : #include "pm_matrixMulAdd@routines.inc.F90"
1946 : #undef DISPATCH_ENABLED
1947 : end procedure
1948 : #endif
1949 :
1950 : #if CK1_ENABLED
1951 100 : module procedure hpmv_EXP_CHA_SUA_CNB_SFB_CK1
1952 : use pm_kind, only: CKC => CK1
1953 : #define DISPATCH_ENABLED 1
1954 : #include "pm_matrixMulAdd@routines.inc.F90"
1955 : #undef DISPATCH_ENABLED
1956 : end procedure
1957 : #endif
1958 :
1959 : #undef CK_ENABLED
1960 :
1961 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1962 :
1963 : #define RK_ENABLED 1
1964 :
1965 : #if RK5_ENABLED
1966 : module procedure hpmv_EXP_CHA_SUA_CNB_SFB_RK5
1967 : use pm_kind, only: RKC => RK5
1968 : #include "pm_matrixMulAdd@routines.inc.F90"
1969 : end procedure
1970 : #endif
1971 :
1972 : #if RK4_ENABLED
1973 100 : module procedure hpmv_EXP_CHA_SUA_CNB_SFB_RK4
1974 : use pm_kind, only: RKC => RK4
1975 : #include "pm_matrixMulAdd@routines.inc.F90"
1976 : end procedure
1977 : #endif
1978 :
1979 : #if RK3_ENABLED
1980 100 : module procedure hpmv_EXP_CHA_SUA_CNB_SFB_RK3
1981 : use pm_kind, only: RKC => RK3
1982 : #include "pm_matrixMulAdd@routines.inc.F90"
1983 : end procedure
1984 : #endif
1985 :
1986 : #if RK2_ENABLED
1987 100 : module procedure hpmv_EXP_CHA_SUA_CNB_SFB_RK2
1988 : use pm_kind, only: RKC => RK2
1989 : #include "pm_matrixMulAdd@routines.inc.F90"
1990 : end procedure
1991 : #endif
1992 :
1993 : #if RK1_ENABLED
1994 100 : module procedure hpmv_EXP_CHA_SUA_CNB_SFB_RK1
1995 : use pm_kind, only: RKC => RK1
1996 : #include "pm_matrixMulAdd@routines.inc.F90"
1997 : end procedure
1998 : #endif
1999 :
2000 : #undef RK_ENABLED
2001 :
2002 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2003 :
2004 : #undef SUA_ENABLED
2005 :
2006 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2007 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2008 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2009 :
2010 : #define SLA_ENABLED 1
2011 :
2012 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2013 :
2014 : #define IK_ENABLED 1
2015 :
2016 : #if IK5_ENABLED
2017 100 : module procedure hpmv_EXP_CHA_SLA_CNB_SFB_IK5
2018 : use pm_kind, only: IKC => IK5
2019 : #include "pm_matrixMulAdd@routines.inc.F90"
2020 : end procedure
2021 : #endif
2022 :
2023 : #if IK4_ENABLED
2024 100 : module procedure hpmv_EXP_CHA_SLA_CNB_SFB_IK4
2025 : use pm_kind, only: IKC => IK4
2026 : #include "pm_matrixMulAdd@routines.inc.F90"
2027 : end procedure
2028 : #endif
2029 :
2030 : #if IK3_ENABLED
2031 100 : module procedure hpmv_EXP_CHA_SLA_CNB_SFB_IK3
2032 : use pm_kind, only: IKC => IK3
2033 : #include "pm_matrixMulAdd@routines.inc.F90"
2034 : end procedure
2035 : #endif
2036 :
2037 : #if IK2_ENABLED
2038 100 : module procedure hpmv_EXP_CHA_SLA_CNB_SFB_IK2
2039 : use pm_kind, only: IKC => IK2
2040 : #include "pm_matrixMulAdd@routines.inc.F90"
2041 : end procedure
2042 : #endif
2043 :
2044 : #if IK1_ENABLED
2045 100 : module procedure hpmv_EXP_CHA_SLA_CNB_SFB_IK1
2046 : use pm_kind, only: IKC => IK1
2047 : #include "pm_matrixMulAdd@routines.inc.F90"
2048 : end procedure
2049 : #endif
2050 :
2051 : #undef IK_ENABLED
2052 :
2053 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2054 :
2055 : #define CK_ENABLED 1
2056 :
2057 : #if CK5_ENABLED
2058 : module procedure hpmv_EXP_CHA_SLA_CNB_SFB_CK5
2059 : use pm_kind, only: CKC => CK5
2060 : #include "pm_matrixMulAdd@routines.inc.F90"
2061 : end procedure
2062 : #endif
2063 :
2064 : #if CK4_ENABLED
2065 100 : module procedure hpmv_EXP_CHA_SLA_CNB_SFB_CK4
2066 : use pm_kind, only: CKC => CK4
2067 : #include "pm_matrixMulAdd@routines.inc.F90"
2068 : end procedure
2069 : #endif
2070 :
2071 : #if CK3_ENABLED
2072 100 : module procedure hpmv_EXP_CHA_SLA_CNB_SFB_CK3
2073 : use pm_kind, only: CKC => CK3
2074 : #include "pm_matrixMulAdd@routines.inc.F90"
2075 : end procedure
2076 : #endif
2077 :
2078 : #if CK2_ENABLED
2079 100 : module procedure hpmv_EXP_CHA_SLA_CNB_SFB_CK2
2080 : use pm_kind, only: CKC => CK2
2081 : #define DISPATCH_ENABLED 1
2082 : #include "pm_matrixMulAdd@routines.inc.F90"
2083 : #undef DISPATCH_ENABLED
2084 : end procedure
2085 : #endif
2086 :
2087 : #if CK1_ENABLED
2088 100 : module procedure hpmv_EXP_CHA_SLA_CNB_SFB_CK1
2089 : use pm_kind, only: CKC => CK1
2090 : #define DISPATCH_ENABLED 1
2091 : #include "pm_matrixMulAdd@routines.inc.F90"
2092 : #undef DISPATCH_ENABLED
2093 : end procedure
2094 : #endif
2095 :
2096 : #undef CK_ENABLED
2097 :
2098 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2099 :
2100 : #define RK_ENABLED 1
2101 :
2102 : #if RK5_ENABLED
2103 : module procedure hpmv_EXP_CHA_SLA_CNB_SFB_RK5
2104 : use pm_kind, only: RKC => RK5
2105 : #include "pm_matrixMulAdd@routines.inc.F90"
2106 : end procedure
2107 : #endif
2108 :
2109 : #if RK4_ENABLED
2110 100 : module procedure hpmv_EXP_CHA_SLA_CNB_SFB_RK4
2111 : use pm_kind, only: RKC => RK4
2112 : #include "pm_matrixMulAdd@routines.inc.F90"
2113 : end procedure
2114 : #endif
2115 :
2116 : #if RK3_ENABLED
2117 100 : module procedure hpmv_EXP_CHA_SLA_CNB_SFB_RK3
2118 : use pm_kind, only: RKC => RK3
2119 : #include "pm_matrixMulAdd@routines.inc.F90"
2120 : end procedure
2121 : #endif
2122 :
2123 : #if RK2_ENABLED
2124 100 : module procedure hpmv_EXP_CHA_SLA_CNB_SFB_RK2
2125 : use pm_kind, only: RKC => RK2
2126 : #include "pm_matrixMulAdd@routines.inc.F90"
2127 : end procedure
2128 : #endif
2129 :
2130 : #if RK1_ENABLED
2131 100 : module procedure hpmv_EXP_CHA_SLA_CNB_SFB_RK1
2132 : use pm_kind, only: RKC => RK1
2133 : #include "pm_matrixMulAdd@routines.inc.F90"
2134 : end procedure
2135 : #endif
2136 :
2137 : #undef RK_ENABLED
2138 :
2139 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2140 :
2141 : #undef SLA_ENABLED
2142 :
2143 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2144 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2145 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2146 :
2147 : #undef EXP_ENABLED
2148 :
2149 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2150 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2151 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2152 :
2153 : #undef CNB_ENABLED
2154 : #undef SFB_ENABLED
2155 : #undef CHA_ENABLED
2156 :
2157 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2158 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2159 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2160 :
2161 : #undef hpmv_ENABLED
2162 :
2163 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2164 :
2165 : #define symv_ENABLED 1
2166 :
2167 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2168 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2169 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2170 :
2171 : #define CSA_ENABLED 1
2172 : #define CNB_ENABLED 1
2173 : #define SFB_ENABLED 1
2174 :
2175 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2176 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2177 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2178 :
2179 : #define ASS_ENABLED 1
2180 :
2181 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2182 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2183 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2184 :
2185 : #define SUA_ENABLED 1
2186 :
2187 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2188 :
2189 : #define IK_ENABLED 1
2190 :
2191 : #if IK5_ENABLED
2192 143 : module procedure symv_ASS_CSA_SUA_CNB_SFB_IK5
2193 : use pm_kind, only: IKC => IK5
2194 : #include "pm_matrixMulAdd@routines.inc.F90"
2195 : end procedure
2196 : #endif
2197 :
2198 : #if IK4_ENABLED
2199 149 : module procedure symv_ASS_CSA_SUA_CNB_SFB_IK4
2200 : use pm_kind, only: IKC => IK4
2201 : #include "pm_matrixMulAdd@routines.inc.F90"
2202 : end procedure
2203 : #endif
2204 :
2205 : #if IK3_ENABLED
2206 147 : module procedure symv_ASS_CSA_SUA_CNB_SFB_IK3
2207 : use pm_kind, only: IKC => IK3
2208 : #include "pm_matrixMulAdd@routines.inc.F90"
2209 : end procedure
2210 : #endif
2211 :
2212 : #if IK2_ENABLED
2213 132 : module procedure symv_ASS_CSA_SUA_CNB_SFB_IK2
2214 : use pm_kind, only: IKC => IK2
2215 : #include "pm_matrixMulAdd@routines.inc.F90"
2216 : end procedure
2217 : #endif
2218 :
2219 : #if IK1_ENABLED
2220 144 : module procedure symv_ASS_CSA_SUA_CNB_SFB_IK1
2221 : use pm_kind, only: IKC => IK1
2222 : #include "pm_matrixMulAdd@routines.inc.F90"
2223 : end procedure
2224 : #endif
2225 :
2226 : #undef IK_ENABLED
2227 :
2228 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2229 :
2230 : #define CK_ENABLED 1
2231 :
2232 : #if CK5_ENABLED
2233 : module procedure symv_ASS_CSA_SUA_CNB_SFB_CK5
2234 : use pm_kind, only: CKC => CK5
2235 : #include "pm_matrixMulAdd@routines.inc.F90"
2236 : end procedure
2237 : #endif
2238 :
2239 : #if CK4_ENABLED
2240 139 : module procedure symv_ASS_CSA_SUA_CNB_SFB_CK4
2241 : use pm_kind, only: CKC => CK4
2242 : #include "pm_matrixMulAdd@routines.inc.F90"
2243 : end procedure
2244 : #endif
2245 :
2246 : #if CK3_ENABLED
2247 143 : module procedure symv_ASS_CSA_SUA_CNB_SFB_CK3
2248 : use pm_kind, only: CKC => CK3
2249 : #include "pm_matrixMulAdd@routines.inc.F90"
2250 : end procedure
2251 : #endif
2252 :
2253 : #if CK2_ENABLED
2254 145 : module procedure symv_ASS_CSA_SUA_CNB_SFB_CK2
2255 : use pm_kind, only: CKC => CK2
2256 : #include "pm_matrixMulAdd@routines.inc.F90"
2257 : end procedure
2258 : #endif
2259 :
2260 : #if CK1_ENABLED
2261 138 : module procedure symv_ASS_CSA_SUA_CNB_SFB_CK1
2262 : use pm_kind, only: CKC => CK1
2263 : #include "pm_matrixMulAdd@routines.inc.F90"
2264 : end procedure
2265 : #endif
2266 :
2267 : #undef CK_ENABLED
2268 :
2269 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2270 :
2271 : #define RK_ENABLED 1
2272 :
2273 : #if RK5_ENABLED
2274 : module procedure symv_ASS_CSA_SUA_CNB_SFB_RK5
2275 : use pm_kind, only: RKC => RK5
2276 : #include "pm_matrixMulAdd@routines.inc.F90"
2277 : end procedure
2278 : #endif
2279 :
2280 : #if RK4_ENABLED
2281 135 : module procedure symv_ASS_CSA_SUA_CNB_SFB_RK4
2282 : use pm_kind, only: RKC => RK4
2283 : #include "pm_matrixMulAdd@routines.inc.F90"
2284 : end procedure
2285 : #endif
2286 :
2287 : #if RK3_ENABLED
2288 144 : module procedure symv_ASS_CSA_SUA_CNB_SFB_RK3
2289 : use pm_kind, only: RKC => RK3
2290 : #include "pm_matrixMulAdd@routines.inc.F90"
2291 : end procedure
2292 : #endif
2293 :
2294 : #if RK2_ENABLED
2295 129 : module procedure symv_ASS_CSA_SUA_CNB_SFB_RK2
2296 : use pm_kind, only: RKC => RK2
2297 : #define DISPATCH_ENABLED 1
2298 : #include "pm_matrixMulAdd@routines.inc.F90"
2299 : #undef DISPATCH_ENABLED
2300 : end procedure
2301 : #endif
2302 :
2303 : #if RK1_ENABLED
2304 142 : module procedure symv_ASS_CSA_SUA_CNB_SFB_RK1
2305 : use pm_kind, only: RKC => RK1
2306 : #define DISPATCH_ENABLED 1
2307 : #include "pm_matrixMulAdd@routines.inc.F90"
2308 : #undef DISPATCH_ENABLED
2309 : end procedure
2310 : #endif
2311 :
2312 : #undef RK_ENABLED
2313 :
2314 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2315 :
2316 : #undef SUA_ENABLED
2317 :
2318 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2319 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2320 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2321 :
2322 : #define SLA_ENABLED 1
2323 :
2324 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2325 :
2326 : #define IK_ENABLED 1
2327 :
2328 : #if IK5_ENABLED
2329 143 : module procedure symv_ASS_CSA_SLA_CNB_SFB_IK5
2330 : use pm_kind, only: IKC => IK5
2331 : #include "pm_matrixMulAdd@routines.inc.F90"
2332 : end procedure
2333 : #endif
2334 :
2335 : #if IK4_ENABLED
2336 149 : module procedure symv_ASS_CSA_SLA_CNB_SFB_IK4
2337 : use pm_kind, only: IKC => IK4
2338 : #include "pm_matrixMulAdd@routines.inc.F90"
2339 : end procedure
2340 : #endif
2341 :
2342 : #if IK3_ENABLED
2343 147 : module procedure symv_ASS_CSA_SLA_CNB_SFB_IK3
2344 : use pm_kind, only: IKC => IK3
2345 : #include "pm_matrixMulAdd@routines.inc.F90"
2346 : end procedure
2347 : #endif
2348 :
2349 : #if IK2_ENABLED
2350 132 : module procedure symv_ASS_CSA_SLA_CNB_SFB_IK2
2351 : use pm_kind, only: IKC => IK2
2352 : #include "pm_matrixMulAdd@routines.inc.F90"
2353 : end procedure
2354 : #endif
2355 :
2356 : #if IK1_ENABLED
2357 144 : module procedure symv_ASS_CSA_SLA_CNB_SFB_IK1
2358 : use pm_kind, only: IKC => IK1
2359 : #include "pm_matrixMulAdd@routines.inc.F90"
2360 : end procedure
2361 : #endif
2362 :
2363 : #undef IK_ENABLED
2364 :
2365 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2366 :
2367 : #define CK_ENABLED 1
2368 :
2369 : #if CK5_ENABLED
2370 : module procedure symv_ASS_CSA_SLA_CNB_SFB_CK5
2371 : use pm_kind, only: CKC => CK5
2372 : #include "pm_matrixMulAdd@routines.inc.F90"
2373 : end procedure
2374 : #endif
2375 :
2376 : #if CK4_ENABLED
2377 139 : module procedure symv_ASS_CSA_SLA_CNB_SFB_CK4
2378 : use pm_kind, only: CKC => CK4
2379 : #include "pm_matrixMulAdd@routines.inc.F90"
2380 : end procedure
2381 : #endif
2382 :
2383 : #if CK3_ENABLED
2384 143 : module procedure symv_ASS_CSA_SLA_CNB_SFB_CK3
2385 : use pm_kind, only: CKC => CK3
2386 : #include "pm_matrixMulAdd@routines.inc.F90"
2387 : end procedure
2388 : #endif
2389 :
2390 : #if CK2_ENABLED
2391 145 : module procedure symv_ASS_CSA_SLA_CNB_SFB_CK2
2392 : use pm_kind, only: CKC => CK2
2393 : #include "pm_matrixMulAdd@routines.inc.F90"
2394 : end procedure
2395 : #endif
2396 :
2397 : #if CK1_ENABLED
2398 138 : module procedure symv_ASS_CSA_SLA_CNB_SFB_CK1
2399 : use pm_kind, only: CKC => CK1
2400 : #include "pm_matrixMulAdd@routines.inc.F90"
2401 : end procedure
2402 : #endif
2403 :
2404 : #undef CK_ENABLED
2405 :
2406 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2407 :
2408 : #define RK_ENABLED 1
2409 :
2410 : #if RK5_ENABLED
2411 : module procedure symv_ASS_CSA_SLA_CNB_SFB_RK5
2412 : use pm_kind, only: RKC => RK5
2413 : #include "pm_matrixMulAdd@routines.inc.F90"
2414 : end procedure
2415 : #endif
2416 :
2417 : #if RK4_ENABLED
2418 135 : module procedure symv_ASS_CSA_SLA_CNB_SFB_RK4
2419 : use pm_kind, only: RKC => RK4
2420 : #include "pm_matrixMulAdd@routines.inc.F90"
2421 : end procedure
2422 : #endif
2423 :
2424 : #if RK3_ENABLED
2425 144 : module procedure symv_ASS_CSA_SLA_CNB_SFB_RK3
2426 : use pm_kind, only: RKC => RK3
2427 : #include "pm_matrixMulAdd@routines.inc.F90"
2428 : end procedure
2429 : #endif
2430 :
2431 : #if RK2_ENABLED
2432 129 : module procedure symv_ASS_CSA_SLA_CNB_SFB_RK2
2433 : use pm_kind, only: RKC => RK2
2434 : #define DISPATCH_ENABLED 1
2435 : #include "pm_matrixMulAdd@routines.inc.F90"
2436 : #undef DISPATCH_ENABLED
2437 : end procedure
2438 : #endif
2439 :
2440 : #if RK1_ENABLED
2441 142 : module procedure symv_ASS_CSA_SLA_CNB_SFB_RK1
2442 : use pm_kind, only: RKC => RK1
2443 : #define DISPATCH_ENABLED 1
2444 : #include "pm_matrixMulAdd@routines.inc.F90"
2445 : #undef DISPATCH_ENABLED
2446 : end procedure
2447 : #endif
2448 :
2449 : #undef RK_ENABLED
2450 :
2451 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2452 :
2453 : #undef SLA_ENABLED
2454 :
2455 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2456 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2457 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2458 :
2459 : #undef ASS_ENABLED
2460 :
2461 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2462 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2463 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2464 :
2465 : #define EXP_ENABLED 1
2466 :
2467 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2468 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2469 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2470 :
2471 : #define SUA_ENABLED 1
2472 :
2473 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2474 :
2475 : #define IK_ENABLED 1
2476 :
2477 : #if IK5_ENABLED
2478 100 : module procedure symv_EXP_CSA_SUA_CNB_SFB_IK5
2479 : use pm_kind, only: IKC => IK5
2480 : #include "pm_matrixMulAdd@routines.inc.F90"
2481 : end procedure
2482 : #endif
2483 :
2484 : #if IK4_ENABLED
2485 100 : module procedure symv_EXP_CSA_SUA_CNB_SFB_IK4
2486 : use pm_kind, only: IKC => IK4
2487 : #include "pm_matrixMulAdd@routines.inc.F90"
2488 : end procedure
2489 : #endif
2490 :
2491 : #if IK3_ENABLED
2492 100 : module procedure symv_EXP_CSA_SUA_CNB_SFB_IK3
2493 : use pm_kind, only: IKC => IK3
2494 : #include "pm_matrixMulAdd@routines.inc.F90"
2495 : end procedure
2496 : #endif
2497 :
2498 : #if IK2_ENABLED
2499 100 : module procedure symv_EXP_CSA_SUA_CNB_SFB_IK2
2500 : use pm_kind, only: IKC => IK2
2501 : #include "pm_matrixMulAdd@routines.inc.F90"
2502 : end procedure
2503 : #endif
2504 :
2505 : #if IK1_ENABLED
2506 100 : module procedure symv_EXP_CSA_SUA_CNB_SFB_IK1
2507 : use pm_kind, only: IKC => IK1
2508 : #include "pm_matrixMulAdd@routines.inc.F90"
2509 : end procedure
2510 : #endif
2511 :
2512 : #undef IK_ENABLED
2513 :
2514 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2515 :
2516 : #define CK_ENABLED 1
2517 :
2518 : #if CK5_ENABLED
2519 : module procedure symv_EXP_CSA_SUA_CNB_SFB_CK5
2520 : use pm_kind, only: CKC => CK5
2521 : #include "pm_matrixMulAdd@routines.inc.F90"
2522 : end procedure
2523 : #endif
2524 :
2525 : #if CK4_ENABLED
2526 100 : module procedure symv_EXP_CSA_SUA_CNB_SFB_CK4
2527 : use pm_kind, only: CKC => CK4
2528 : #include "pm_matrixMulAdd@routines.inc.F90"
2529 : end procedure
2530 : #endif
2531 :
2532 : #if CK3_ENABLED
2533 100 : module procedure symv_EXP_CSA_SUA_CNB_SFB_CK3
2534 : use pm_kind, only: CKC => CK3
2535 : #include "pm_matrixMulAdd@routines.inc.F90"
2536 : end procedure
2537 : #endif
2538 :
2539 : #if CK2_ENABLED
2540 100 : module procedure symv_EXP_CSA_SUA_CNB_SFB_CK2
2541 : use pm_kind, only: CKC => CK2
2542 : #include "pm_matrixMulAdd@routines.inc.F90"
2543 : end procedure
2544 : #endif
2545 :
2546 : #if CK1_ENABLED
2547 100 : module procedure symv_EXP_CSA_SUA_CNB_SFB_CK1
2548 : use pm_kind, only: CKC => CK1
2549 : #include "pm_matrixMulAdd@routines.inc.F90"
2550 : end procedure
2551 : #endif
2552 :
2553 : #undef CK_ENABLED
2554 :
2555 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2556 :
2557 : #define RK_ENABLED 1
2558 :
2559 : #if RK5_ENABLED
2560 : module procedure symv_EXP_CSA_SUA_CNB_SFB_RK5
2561 : use pm_kind, only: RKC => RK5
2562 : #include "pm_matrixMulAdd@routines.inc.F90"
2563 : end procedure
2564 : #endif
2565 :
2566 : #if RK4_ENABLED
2567 100 : module procedure symv_EXP_CSA_SUA_CNB_SFB_RK4
2568 : use pm_kind, only: RKC => RK4
2569 : #include "pm_matrixMulAdd@routines.inc.F90"
2570 : end procedure
2571 : #endif
2572 :
2573 : #if RK3_ENABLED
2574 100 : module procedure symv_EXP_CSA_SUA_CNB_SFB_RK3
2575 : use pm_kind, only: RKC => RK3
2576 : #include "pm_matrixMulAdd@routines.inc.F90"
2577 : end procedure
2578 : #endif
2579 :
2580 : #if RK2_ENABLED
2581 100 : module procedure symv_EXP_CSA_SUA_CNB_SFB_RK2
2582 : use pm_kind, only: RKC => RK2
2583 : #define DISPATCH_ENABLED 1
2584 : #include "pm_matrixMulAdd@routines.inc.F90"
2585 : #undef DISPATCH_ENABLED
2586 : end procedure
2587 : #endif
2588 :
2589 : #if RK1_ENABLED
2590 101 : module procedure symv_EXP_CSA_SUA_CNB_SFB_RK1
2591 : use pm_kind, only: RKC => RK1
2592 : #define DISPATCH_ENABLED 1
2593 : #include "pm_matrixMulAdd@routines.inc.F90"
2594 : #undef DISPATCH_ENABLED
2595 : end procedure
2596 : #endif
2597 :
2598 : #undef RK_ENABLED
2599 :
2600 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2601 :
2602 : #undef SUA_ENABLED
2603 :
2604 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2605 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2606 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2607 :
2608 : #define SLA_ENABLED 1
2609 :
2610 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2611 :
2612 : #define IK_ENABLED 1
2613 :
2614 : #if IK5_ENABLED
2615 100 : module procedure symv_EXP_CSA_SLA_CNB_SFB_IK5
2616 : use pm_kind, only: IKC => IK5
2617 : #include "pm_matrixMulAdd@routines.inc.F90"
2618 : end procedure
2619 : #endif
2620 :
2621 : #if IK4_ENABLED
2622 100 : module procedure symv_EXP_CSA_SLA_CNB_SFB_IK4
2623 : use pm_kind, only: IKC => IK4
2624 : #include "pm_matrixMulAdd@routines.inc.F90"
2625 : end procedure
2626 : #endif
2627 :
2628 : #if IK3_ENABLED
2629 100 : module procedure symv_EXP_CSA_SLA_CNB_SFB_IK3
2630 : use pm_kind, only: IKC => IK3
2631 : #include "pm_matrixMulAdd@routines.inc.F90"
2632 : end procedure
2633 : #endif
2634 :
2635 : #if IK2_ENABLED
2636 100 : module procedure symv_EXP_CSA_SLA_CNB_SFB_IK2
2637 : use pm_kind, only: IKC => IK2
2638 : #include "pm_matrixMulAdd@routines.inc.F90"
2639 : end procedure
2640 : #endif
2641 :
2642 : #if IK1_ENABLED
2643 100 : module procedure symv_EXP_CSA_SLA_CNB_SFB_IK1
2644 : use pm_kind, only: IKC => IK1
2645 : #include "pm_matrixMulAdd@routines.inc.F90"
2646 : end procedure
2647 : #endif
2648 :
2649 : #undef IK_ENABLED
2650 :
2651 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2652 :
2653 : #define CK_ENABLED 1
2654 :
2655 : #if CK5_ENABLED
2656 : module procedure symv_EXP_CSA_SLA_CNB_SFB_CK5
2657 : use pm_kind, only: CKC => CK5
2658 : #include "pm_matrixMulAdd@routines.inc.F90"
2659 : end procedure
2660 : #endif
2661 :
2662 : #if CK4_ENABLED
2663 100 : module procedure symv_EXP_CSA_SLA_CNB_SFB_CK4
2664 : use pm_kind, only: CKC => CK4
2665 : #include "pm_matrixMulAdd@routines.inc.F90"
2666 : end procedure
2667 : #endif
2668 :
2669 : #if CK3_ENABLED
2670 100 : module procedure symv_EXP_CSA_SLA_CNB_SFB_CK3
2671 : use pm_kind, only: CKC => CK3
2672 : #include "pm_matrixMulAdd@routines.inc.F90"
2673 : end procedure
2674 : #endif
2675 :
2676 : #if CK2_ENABLED
2677 100 : module procedure symv_EXP_CSA_SLA_CNB_SFB_CK2
2678 : use pm_kind, only: CKC => CK2
2679 : #include "pm_matrixMulAdd@routines.inc.F90"
2680 : end procedure
2681 : #endif
2682 :
2683 : #if CK1_ENABLED
2684 100 : module procedure symv_EXP_CSA_SLA_CNB_SFB_CK1
2685 : use pm_kind, only: CKC => CK1
2686 : #include "pm_matrixMulAdd@routines.inc.F90"
2687 : end procedure
2688 : #endif
2689 :
2690 : #undef CK_ENABLED
2691 :
2692 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2693 :
2694 : #define RK_ENABLED 1
2695 :
2696 : #if RK5_ENABLED
2697 : module procedure symv_EXP_CSA_SLA_CNB_SFB_RK5
2698 : use pm_kind, only: RKC => RK5
2699 : #include "pm_matrixMulAdd@routines.inc.F90"
2700 : end procedure
2701 : #endif
2702 :
2703 : #if RK4_ENABLED
2704 100 : module procedure symv_EXP_CSA_SLA_CNB_SFB_RK4
2705 : use pm_kind, only: RKC => RK4
2706 : #include "pm_matrixMulAdd@routines.inc.F90"
2707 : end procedure
2708 : #endif
2709 :
2710 : #if RK3_ENABLED
2711 100 : module procedure symv_EXP_CSA_SLA_CNB_SFB_RK3
2712 : use pm_kind, only: RKC => RK3
2713 : #include "pm_matrixMulAdd@routines.inc.F90"
2714 : end procedure
2715 : #endif
2716 :
2717 : #if RK2_ENABLED
2718 100 : module procedure symv_EXP_CSA_SLA_CNB_SFB_RK2
2719 : use pm_kind, only: RKC => RK2
2720 : #define DISPATCH_ENABLED 1
2721 : #include "pm_matrixMulAdd@routines.inc.F90"
2722 : #undef DISPATCH_ENABLED
2723 : end procedure
2724 : #endif
2725 :
2726 : #if RK1_ENABLED
2727 101 : module procedure symv_EXP_CSA_SLA_CNB_SFB_RK1
2728 : use pm_kind, only: RKC => RK1
2729 : #define DISPATCH_ENABLED 1
2730 : #include "pm_matrixMulAdd@routines.inc.F90"
2731 : #undef DISPATCH_ENABLED
2732 : end procedure
2733 : #endif
2734 :
2735 : #undef RK_ENABLED
2736 :
2737 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2738 :
2739 : #undef SLA_ENABLED
2740 :
2741 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2742 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2743 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2744 :
2745 : #undef EXP_ENABLED
2746 :
2747 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2748 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2749 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2750 :
2751 : #undef CNB_ENABLED
2752 : #undef SFB_ENABLED
2753 : #undef CSA_ENABLED
2754 :
2755 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2756 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2757 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2758 :
2759 : #undef symv_ENABLED
2760 :
2761 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2762 :
2763 : #define hemv_ENABLED 1
2764 :
2765 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2766 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2767 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2768 :
2769 : #define CHA_ENABLED 1
2770 : #define CNB_ENABLED 1
2771 : #define SFB_ENABLED 1
2772 :
2773 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2774 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2775 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2776 :
2777 : #define ASS_ENABLED 1
2778 :
2779 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2780 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2781 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2782 :
2783 : #define SUA_ENABLED 1
2784 :
2785 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2786 :
2787 : #define IK_ENABLED 1
2788 :
2789 : #if IK5_ENABLED
2790 143 : module procedure hemv_ASS_CHA_SUA_CNB_SFB_IK5
2791 : use pm_kind, only: IKC => IK5
2792 : #include "pm_matrixMulAdd@routines.inc.F90"
2793 : end procedure
2794 : #endif
2795 :
2796 : #if IK4_ENABLED
2797 149 : module procedure hemv_ASS_CHA_SUA_CNB_SFB_IK4
2798 : use pm_kind, only: IKC => IK4
2799 : #include "pm_matrixMulAdd@routines.inc.F90"
2800 : end procedure
2801 : #endif
2802 :
2803 : #if IK3_ENABLED
2804 147 : module procedure hemv_ASS_CHA_SUA_CNB_SFB_IK3
2805 : use pm_kind, only: IKC => IK3
2806 : #include "pm_matrixMulAdd@routines.inc.F90"
2807 : end procedure
2808 : #endif
2809 :
2810 : #if IK2_ENABLED
2811 132 : module procedure hemv_ASS_CHA_SUA_CNB_SFB_IK2
2812 : use pm_kind, only: IKC => IK2
2813 : #include "pm_matrixMulAdd@routines.inc.F90"
2814 : end procedure
2815 : #endif
2816 :
2817 : #if IK1_ENABLED
2818 144 : module procedure hemv_ASS_CHA_SUA_CNB_SFB_IK1
2819 : use pm_kind, only: IKC => IK1
2820 : #include "pm_matrixMulAdd@routines.inc.F90"
2821 : end procedure
2822 : #endif
2823 :
2824 : #undef IK_ENABLED
2825 :
2826 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2827 :
2828 : #define CK_ENABLED 1
2829 :
2830 : #if CK5_ENABLED
2831 : module procedure hemv_ASS_CHA_SUA_CNB_SFB_CK5
2832 : use pm_kind, only: CKC => CK5
2833 : #include "pm_matrixMulAdd@routines.inc.F90"
2834 : end procedure
2835 : #endif
2836 :
2837 : #if CK4_ENABLED
2838 139 : module procedure hemv_ASS_CHA_SUA_CNB_SFB_CK4
2839 : use pm_kind, only: CKC => CK4
2840 : #include "pm_matrixMulAdd@routines.inc.F90"
2841 : end procedure
2842 : #endif
2843 :
2844 : #if CK3_ENABLED
2845 143 : module procedure hemv_ASS_CHA_SUA_CNB_SFB_CK3
2846 : use pm_kind, only: CKC => CK3
2847 : #include "pm_matrixMulAdd@routines.inc.F90"
2848 : end procedure
2849 : #endif
2850 :
2851 : #if CK2_ENABLED
2852 145 : module procedure hemv_ASS_CHA_SUA_CNB_SFB_CK2
2853 : use pm_kind, only: CKC => CK2
2854 : #define DISPATCH_ENABLED 1
2855 : #include "pm_matrixMulAdd@routines.inc.F90"
2856 : #undef DISPATCH_ENABLED
2857 : end procedure
2858 : #endif
2859 :
2860 : #if CK1_ENABLED
2861 139 : module procedure hemv_ASS_CHA_SUA_CNB_SFB_CK1
2862 : use pm_kind, only: CKC => CK1
2863 : #define DISPATCH_ENABLED 1
2864 : #include "pm_matrixMulAdd@routines.inc.F90"
2865 : #undef DISPATCH_ENABLED
2866 : end procedure
2867 : #endif
2868 :
2869 : #undef CK_ENABLED
2870 :
2871 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2872 :
2873 : #define RK_ENABLED 1
2874 :
2875 : #if RK5_ENABLED
2876 : module procedure hemv_ASS_CHA_SUA_CNB_SFB_RK5
2877 : use pm_kind, only: RKC => RK5
2878 : #include "pm_matrixMulAdd@routines.inc.F90"
2879 : end procedure
2880 : #endif
2881 :
2882 : #if RK4_ENABLED
2883 135 : module procedure hemv_ASS_CHA_SUA_CNB_SFB_RK4
2884 : use pm_kind, only: RKC => RK4
2885 : #include "pm_matrixMulAdd@routines.inc.F90"
2886 : end procedure
2887 : #endif
2888 :
2889 : #if RK3_ENABLED
2890 144 : module procedure hemv_ASS_CHA_SUA_CNB_SFB_RK3
2891 : use pm_kind, only: RKC => RK3
2892 : #include "pm_matrixMulAdd@routines.inc.F90"
2893 : end procedure
2894 : #endif
2895 :
2896 : #if RK2_ENABLED
2897 129 : module procedure hemv_ASS_CHA_SUA_CNB_SFB_RK2
2898 : use pm_kind, only: RKC => RK2
2899 : #include "pm_matrixMulAdd@routines.inc.F90"
2900 : end procedure
2901 : #endif
2902 :
2903 : #if RK1_ENABLED
2904 141 : module procedure hemv_ASS_CHA_SUA_CNB_SFB_RK1
2905 : use pm_kind, only: RKC => RK1
2906 : #include "pm_matrixMulAdd@routines.inc.F90"
2907 : end procedure
2908 : #endif
2909 :
2910 : #undef RK_ENABLED
2911 :
2912 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2913 :
2914 : #undef SUA_ENABLED
2915 :
2916 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2917 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2918 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2919 :
2920 : #define SLA_ENABLED 1
2921 :
2922 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2923 :
2924 : #define IK_ENABLED 1
2925 :
2926 : #if IK5_ENABLED
2927 143 : module procedure hemv_ASS_CHA_SLA_CNB_SFB_IK5
2928 : use pm_kind, only: IKC => IK5
2929 : #include "pm_matrixMulAdd@routines.inc.F90"
2930 : end procedure
2931 : #endif
2932 :
2933 : #if IK4_ENABLED
2934 149 : module procedure hemv_ASS_CHA_SLA_CNB_SFB_IK4
2935 : use pm_kind, only: IKC => IK4
2936 : #include "pm_matrixMulAdd@routines.inc.F90"
2937 : end procedure
2938 : #endif
2939 :
2940 : #if IK3_ENABLED
2941 147 : module procedure hemv_ASS_CHA_SLA_CNB_SFB_IK3
2942 : use pm_kind, only: IKC => IK3
2943 : #include "pm_matrixMulAdd@routines.inc.F90"
2944 : end procedure
2945 : #endif
2946 :
2947 : #if IK2_ENABLED
2948 132 : module procedure hemv_ASS_CHA_SLA_CNB_SFB_IK2
2949 : use pm_kind, only: IKC => IK2
2950 : #include "pm_matrixMulAdd@routines.inc.F90"
2951 : end procedure
2952 : #endif
2953 :
2954 : #if IK1_ENABLED
2955 144 : module procedure hemv_ASS_CHA_SLA_CNB_SFB_IK1
2956 : use pm_kind, only: IKC => IK1
2957 : #include "pm_matrixMulAdd@routines.inc.F90"
2958 : end procedure
2959 : #endif
2960 :
2961 : #undef IK_ENABLED
2962 :
2963 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2964 :
2965 : #define CK_ENABLED 1
2966 :
2967 : #if CK5_ENABLED
2968 : module procedure hemv_ASS_CHA_SLA_CNB_SFB_CK5
2969 : use pm_kind, only: CKC => CK5
2970 : #include "pm_matrixMulAdd@routines.inc.F90"
2971 : end procedure
2972 : #endif
2973 :
2974 : #if CK4_ENABLED
2975 139 : module procedure hemv_ASS_CHA_SLA_CNB_SFB_CK4
2976 : use pm_kind, only: CKC => CK4
2977 : #include "pm_matrixMulAdd@routines.inc.F90"
2978 : end procedure
2979 : #endif
2980 :
2981 : #if CK3_ENABLED
2982 143 : module procedure hemv_ASS_CHA_SLA_CNB_SFB_CK3
2983 : use pm_kind, only: CKC => CK3
2984 : #include "pm_matrixMulAdd@routines.inc.F90"
2985 : end procedure
2986 : #endif
2987 :
2988 : #if CK2_ENABLED
2989 145 : module procedure hemv_ASS_CHA_SLA_CNB_SFB_CK2
2990 : use pm_kind, only: CKC => CK2
2991 : #define DISPATCH_ENABLED 1
2992 : #include "pm_matrixMulAdd@routines.inc.F90"
2993 : #undef DISPATCH_ENABLED
2994 : end procedure
2995 : #endif
2996 :
2997 : #if CK1_ENABLED
2998 139 : module procedure hemv_ASS_CHA_SLA_CNB_SFB_CK1
2999 : use pm_kind, only: CKC => CK1
3000 : #define DISPATCH_ENABLED 1
3001 : #include "pm_matrixMulAdd@routines.inc.F90"
3002 : #undef DISPATCH_ENABLED
3003 : end procedure
3004 : #endif
3005 :
3006 : #undef CK_ENABLED
3007 :
3008 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3009 :
3010 : #define RK_ENABLED 1
3011 :
3012 : #if RK5_ENABLED
3013 : module procedure hemv_ASS_CHA_SLA_CNB_SFB_RK5
3014 : use pm_kind, only: RKC => RK5
3015 : #include "pm_matrixMulAdd@routines.inc.F90"
3016 : end procedure
3017 : #endif
3018 :
3019 : #if RK4_ENABLED
3020 135 : module procedure hemv_ASS_CHA_SLA_CNB_SFB_RK4
3021 : use pm_kind, only: RKC => RK4
3022 : #include "pm_matrixMulAdd@routines.inc.F90"
3023 : end procedure
3024 : #endif
3025 :
3026 : #if RK3_ENABLED
3027 144 : module procedure hemv_ASS_CHA_SLA_CNB_SFB_RK3
3028 : use pm_kind, only: RKC => RK3
3029 : #include "pm_matrixMulAdd@routines.inc.F90"
3030 : end procedure
3031 : #endif
3032 :
3033 : #if RK2_ENABLED
3034 129 : module procedure hemv_ASS_CHA_SLA_CNB_SFB_RK2
3035 : use pm_kind, only: RKC => RK2
3036 : #include "pm_matrixMulAdd@routines.inc.F90"
3037 : end procedure
3038 : #endif
3039 :
3040 : #if RK1_ENABLED
3041 141 : module procedure hemv_ASS_CHA_SLA_CNB_SFB_RK1
3042 : use pm_kind, only: RKC => RK1
3043 : #include "pm_matrixMulAdd@routines.inc.F90"
3044 : end procedure
3045 : #endif
3046 :
3047 : #undef RK_ENABLED
3048 :
3049 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3050 :
3051 : #undef SLA_ENABLED
3052 :
3053 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3054 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3055 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3056 :
3057 : #undef ASS_ENABLED
3058 :
3059 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3060 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3061 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3062 :
3063 : #define EXP_ENABLED 1
3064 :
3065 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3066 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3067 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3068 :
3069 : #define SUA_ENABLED 1
3070 :
3071 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3072 :
3073 : #define IK_ENABLED 1
3074 :
3075 : #if IK5_ENABLED
3076 100 : module procedure hemv_EXP_CHA_SUA_CNB_SFB_IK5
3077 : use pm_kind, only: IKC => IK5
3078 : #include "pm_matrixMulAdd@routines.inc.F90"
3079 : end procedure
3080 : #endif
3081 :
3082 : #if IK4_ENABLED
3083 100 : module procedure hemv_EXP_CHA_SUA_CNB_SFB_IK4
3084 : use pm_kind, only: IKC => IK4
3085 : #include "pm_matrixMulAdd@routines.inc.F90"
3086 : end procedure
3087 : #endif
3088 :
3089 : #if IK3_ENABLED
3090 100 : module procedure hemv_EXP_CHA_SUA_CNB_SFB_IK3
3091 : use pm_kind, only: IKC => IK3
3092 : #include "pm_matrixMulAdd@routines.inc.F90"
3093 : end procedure
3094 : #endif
3095 :
3096 : #if IK2_ENABLED
3097 100 : module procedure hemv_EXP_CHA_SUA_CNB_SFB_IK2
3098 : use pm_kind, only: IKC => IK2
3099 : #include "pm_matrixMulAdd@routines.inc.F90"
3100 : end procedure
3101 : #endif
3102 :
3103 : #if IK1_ENABLED
3104 100 : module procedure hemv_EXP_CHA_SUA_CNB_SFB_IK1
3105 : use pm_kind, only: IKC => IK1
3106 : #include "pm_matrixMulAdd@routines.inc.F90"
3107 : end procedure
3108 : #endif
3109 :
3110 : #undef IK_ENABLED
3111 :
3112 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3113 :
3114 : #define CK_ENABLED 1
3115 :
3116 : #if CK5_ENABLED
3117 : module procedure hemv_EXP_CHA_SUA_CNB_SFB_CK5
3118 : use pm_kind, only: CKC => CK5
3119 : #include "pm_matrixMulAdd@routines.inc.F90"
3120 : end procedure
3121 : #endif
3122 :
3123 : #if CK4_ENABLED
3124 100 : module procedure hemv_EXP_CHA_SUA_CNB_SFB_CK4
3125 : use pm_kind, only: CKC => CK4
3126 : #include "pm_matrixMulAdd@routines.inc.F90"
3127 : end procedure
3128 : #endif
3129 :
3130 : #if CK3_ENABLED
3131 100 : module procedure hemv_EXP_CHA_SUA_CNB_SFB_CK3
3132 : use pm_kind, only: CKC => CK3
3133 : #include "pm_matrixMulAdd@routines.inc.F90"
3134 : end procedure
3135 : #endif
3136 :
3137 : #if CK2_ENABLED
3138 100 : module procedure hemv_EXP_CHA_SUA_CNB_SFB_CK2
3139 : use pm_kind, only: CKC => CK2
3140 : #define DISPATCH_ENABLED 1
3141 : #include "pm_matrixMulAdd@routines.inc.F90"
3142 : #undef DISPATCH_ENABLED
3143 : end procedure
3144 : #endif
3145 :
3146 : #if CK1_ENABLED
3147 101 : module procedure hemv_EXP_CHA_SUA_CNB_SFB_CK1
3148 : use pm_kind, only: CKC => CK1
3149 : #define DISPATCH_ENABLED 1
3150 : #include "pm_matrixMulAdd@routines.inc.F90"
3151 : #undef DISPATCH_ENABLED
3152 : end procedure
3153 : #endif
3154 :
3155 : #undef CK_ENABLED
3156 :
3157 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3158 :
3159 : #define RK_ENABLED 1
3160 :
3161 : #if RK5_ENABLED
3162 : module procedure hemv_EXP_CHA_SUA_CNB_SFB_RK5
3163 : use pm_kind, only: RKC => RK5
3164 : #include "pm_matrixMulAdd@routines.inc.F90"
3165 : end procedure
3166 : #endif
3167 :
3168 : #if RK4_ENABLED
3169 100 : module procedure hemv_EXP_CHA_SUA_CNB_SFB_RK4
3170 : use pm_kind, only: RKC => RK4
3171 : #include "pm_matrixMulAdd@routines.inc.F90"
3172 : end procedure
3173 : #endif
3174 :
3175 : #if RK3_ENABLED
3176 100 : module procedure hemv_EXP_CHA_SUA_CNB_SFB_RK3
3177 : use pm_kind, only: RKC => RK3
3178 : #include "pm_matrixMulAdd@routines.inc.F90"
3179 : end procedure
3180 : #endif
3181 :
3182 : #if RK2_ENABLED
3183 100 : module procedure hemv_EXP_CHA_SUA_CNB_SFB_RK2
3184 : use pm_kind, only: RKC => RK2
3185 : #include "pm_matrixMulAdd@routines.inc.F90"
3186 : end procedure
3187 : #endif
3188 :
3189 : #if RK1_ENABLED
3190 100 : module procedure hemv_EXP_CHA_SUA_CNB_SFB_RK1
3191 : use pm_kind, only: RKC => RK1
3192 : #include "pm_matrixMulAdd@routines.inc.F90"
3193 : end procedure
3194 : #endif
3195 :
3196 : #undef RK_ENABLED
3197 :
3198 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3199 :
3200 : #undef SUA_ENABLED
3201 :
3202 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3203 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3204 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3205 :
3206 : #define SLA_ENABLED 1
3207 :
3208 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3209 :
3210 : #define IK_ENABLED 1
3211 :
3212 : #if IK5_ENABLED
3213 100 : module procedure hemv_EXP_CHA_SLA_CNB_SFB_IK5
3214 : use pm_kind, only: IKC => IK5
3215 : #include "pm_matrixMulAdd@routines.inc.F90"
3216 : end procedure
3217 : #endif
3218 :
3219 : #if IK4_ENABLED
3220 100 : module procedure hemv_EXP_CHA_SLA_CNB_SFB_IK4
3221 : use pm_kind, only: IKC => IK4
3222 : #include "pm_matrixMulAdd@routines.inc.F90"
3223 : end procedure
3224 : #endif
3225 :
3226 : #if IK3_ENABLED
3227 100 : module procedure hemv_EXP_CHA_SLA_CNB_SFB_IK3
3228 : use pm_kind, only: IKC => IK3
3229 : #include "pm_matrixMulAdd@routines.inc.F90"
3230 : end procedure
3231 : #endif
3232 :
3233 : #if IK2_ENABLED
3234 100 : module procedure hemv_EXP_CHA_SLA_CNB_SFB_IK2
3235 : use pm_kind, only: IKC => IK2
3236 : #include "pm_matrixMulAdd@routines.inc.F90"
3237 : end procedure
3238 : #endif
3239 :
3240 : #if IK1_ENABLED
3241 100 : module procedure hemv_EXP_CHA_SLA_CNB_SFB_IK1
3242 : use pm_kind, only: IKC => IK1
3243 : #include "pm_matrixMulAdd@routines.inc.F90"
3244 : end procedure
3245 : #endif
3246 :
3247 : #undef IK_ENABLED
3248 :
3249 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3250 :
3251 : #define CK_ENABLED 1
3252 :
3253 : #if CK5_ENABLED
3254 : module procedure hemv_EXP_CHA_SLA_CNB_SFB_CK5
3255 : use pm_kind, only: CKC => CK5
3256 : #include "pm_matrixMulAdd@routines.inc.F90"
3257 : end procedure
3258 : #endif
3259 :
3260 : #if CK4_ENABLED
3261 100 : module procedure hemv_EXP_CHA_SLA_CNB_SFB_CK4
3262 : use pm_kind, only: CKC => CK4
3263 : #include "pm_matrixMulAdd@routines.inc.F90"
3264 : end procedure
3265 : #endif
3266 :
3267 : #if CK3_ENABLED
3268 100 : module procedure hemv_EXP_CHA_SLA_CNB_SFB_CK3
3269 : use pm_kind, only: CKC => CK3
3270 : #include "pm_matrixMulAdd@routines.inc.F90"
3271 : end procedure
3272 : #endif
3273 :
3274 : #if CK2_ENABLED
3275 100 : module procedure hemv_EXP_CHA_SLA_CNB_SFB_CK2
3276 : use pm_kind, only: CKC => CK2
3277 : #define DISPATCH_ENABLED 1
3278 : #include "pm_matrixMulAdd@routines.inc.F90"
3279 : #undef DISPATCH_ENABLED
3280 : end procedure
3281 : #endif
3282 :
3283 : #if CK1_ENABLED
3284 101 : module procedure hemv_EXP_CHA_SLA_CNB_SFB_CK1
3285 : use pm_kind, only: CKC => CK1
3286 : #define DISPATCH_ENABLED 1
3287 : #include "pm_matrixMulAdd@routines.inc.F90"
3288 : #undef DISPATCH_ENABLED
3289 : end procedure
3290 : #endif
3291 :
3292 : #undef CK_ENABLED
3293 :
3294 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3295 :
3296 : #define RK_ENABLED 1
3297 :
3298 : #if RK5_ENABLED
3299 : module procedure hemv_EXP_CHA_SLA_CNB_SFB_RK5
3300 : use pm_kind, only: RKC => RK5
3301 : #include "pm_matrixMulAdd@routines.inc.F90"
3302 : end procedure
3303 : #endif
3304 :
3305 : #if RK4_ENABLED
3306 100 : module procedure hemv_EXP_CHA_SLA_CNB_SFB_RK4
3307 : use pm_kind, only: RKC => RK4
3308 : #include "pm_matrixMulAdd@routines.inc.F90"
3309 : end procedure
3310 : #endif
3311 :
3312 : #if RK3_ENABLED
3313 100 : module procedure hemv_EXP_CHA_SLA_CNB_SFB_RK3
3314 : use pm_kind, only: RKC => RK3
3315 : #include "pm_matrixMulAdd@routines.inc.F90"
3316 : end procedure
3317 : #endif
3318 :
3319 : #if RK2_ENABLED
3320 100 : module procedure hemv_EXP_CHA_SLA_CNB_SFB_RK2
3321 : use pm_kind, only: RKC => RK2
3322 : #include "pm_matrixMulAdd@routines.inc.F90"
3323 : end procedure
3324 : #endif
3325 :
3326 : #if RK1_ENABLED
3327 100 : module procedure hemv_EXP_CHA_SLA_CNB_SFB_RK1
3328 : use pm_kind, only: RKC => RK1
3329 : #include "pm_matrixMulAdd@routines.inc.F90"
3330 : end procedure
3331 : #endif
3332 :
3333 : #undef RK_ENABLED
3334 :
3335 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3336 :
3337 : #undef SLA_ENABLED
3338 :
3339 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3340 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3341 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3342 :
3343 : #undef EXP_ENABLED
3344 :
3345 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3346 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3347 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3348 :
3349 : #undef CNB_ENABLED
3350 : #undef SFB_ENABLED
3351 : #undef CHA_ENABLED
3352 :
3353 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3354 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3355 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3356 :
3357 : #undef hemv_ENABLED
3358 :
3359 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3360 :
3361 : #define symm_ENABLED 1
3362 :
3363 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3364 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3365 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3366 :
3367 : #define ASS_ENABLED 1
3368 :
3369 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3370 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3371 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3372 :
3373 : #define CNB_ENABLED 1
3374 : #define SFB_ENABLED 1
3375 :
3376 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3377 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3378 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3379 :
3380 : #define SUA_ENABLED 1
3381 :
3382 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3383 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3384 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3385 :
3386 : #define CSA_ENABLED 1
3387 :
3388 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3389 :
3390 : #define IK_ENABLED 1
3391 :
3392 : #if IK5_ENABLED
3393 139 : module procedure symm_ASS_CSA_SUA_CNB_SFB_IK5
3394 : use pm_kind, only: IKC => IK5
3395 : #include "pm_matrixMulAdd@routines.inc.F90"
3396 : end procedure
3397 : #endif
3398 :
3399 : #if IK4_ENABLED
3400 140 : module procedure symm_ASS_CSA_SUA_CNB_SFB_IK4
3401 : use pm_kind, only: IKC => IK4
3402 : #include "pm_matrixMulAdd@routines.inc.F90"
3403 : end procedure
3404 : #endif
3405 :
3406 : #if IK3_ENABLED
3407 151 : module procedure symm_ASS_CSA_SUA_CNB_SFB_IK3
3408 : use pm_kind, only: IKC => IK3
3409 : #include "pm_matrixMulAdd@routines.inc.F90"
3410 : end procedure
3411 : #endif
3412 :
3413 : #if IK2_ENABLED
3414 126 : module procedure symm_ASS_CSA_SUA_CNB_SFB_IK2
3415 : use pm_kind, only: IKC => IK2
3416 : #include "pm_matrixMulAdd@routines.inc.F90"
3417 : end procedure
3418 : #endif
3419 :
3420 : #if IK1_ENABLED
3421 152 : module procedure symm_ASS_CSA_SUA_CNB_SFB_IK1
3422 : use pm_kind, only: IKC => IK1
3423 : #include "pm_matrixMulAdd@routines.inc.F90"
3424 : end procedure
3425 : #endif
3426 :
3427 : #undef IK_ENABLED
3428 :
3429 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3430 :
3431 : #define CK_ENABLED 1
3432 :
3433 : #if CK5_ENABLED
3434 : module procedure symm_ASS_CSA_SUA_CNB_SFB_CK5
3435 : use pm_kind, only: CKC => CK5
3436 : #include "pm_matrixMulAdd@routines.inc.F90"
3437 : end procedure
3438 : #endif
3439 :
3440 : #if CK4_ENABLED
3441 138 : module procedure symm_ASS_CSA_SUA_CNB_SFB_CK4
3442 : use pm_kind, only: CKC => CK4
3443 : #include "pm_matrixMulAdd@routines.inc.F90"
3444 : end procedure
3445 : #endif
3446 :
3447 : #if CK3_ENABLED
3448 144 : module procedure symm_ASS_CSA_SUA_CNB_SFB_CK3
3449 : use pm_kind, only: CKC => CK3
3450 : #include "pm_matrixMulAdd@routines.inc.F90"
3451 : end procedure
3452 : #endif
3453 :
3454 : #if CK2_ENABLED
3455 142 : module procedure symm_ASS_CSA_SUA_CNB_SFB_CK2
3456 : use pm_kind, only: CKC => CK2
3457 : #include "pm_matrixMulAdd@routines.inc.F90"
3458 : end procedure
3459 : #endif
3460 :
3461 : #if CK1_ENABLED
3462 145 : module procedure symm_ASS_CSA_SUA_CNB_SFB_CK1
3463 : use pm_kind, only: CKC => CK1
3464 : #include "pm_matrixMulAdd@routines.inc.F90"
3465 : end procedure
3466 : #endif
3467 :
3468 : #undef CK_ENABLED
3469 :
3470 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3471 :
3472 : #define RK_ENABLED 1
3473 :
3474 : #if RK5_ENABLED
3475 : module procedure symm_ASS_CSA_SUA_CNB_SFB_RK5
3476 : use pm_kind, only: RKC => RK5
3477 : #include "pm_matrixMulAdd@routines.inc.F90"
3478 : end procedure
3479 : #endif
3480 :
3481 : #if RK4_ENABLED
3482 135 : module procedure symm_ASS_CSA_SUA_CNB_SFB_RK4
3483 : use pm_kind, only: RKC => RK4
3484 : #include "pm_matrixMulAdd@routines.inc.F90"
3485 : end procedure
3486 : #endif
3487 :
3488 : #if RK3_ENABLED
3489 154 : module procedure symm_ASS_CSA_SUA_CNB_SFB_RK3
3490 : use pm_kind, only: RKC => RK3
3491 : #include "pm_matrixMulAdd@routines.inc.F90"
3492 : end procedure
3493 : #endif
3494 :
3495 : #if RK2_ENABLED
3496 131 : module procedure symm_ASS_CSA_SUA_CNB_SFB_RK2
3497 : use pm_kind, only: RKC => RK2
3498 : #include "pm_matrixMulAdd@routines.inc.F90"
3499 : end procedure
3500 : #endif
3501 :
3502 : #if RK1_ENABLED
3503 150 : module procedure symm_ASS_CSA_SUA_CNB_SFB_RK1
3504 : use pm_kind, only: RKC => RK1
3505 : #include "pm_matrixMulAdd@routines.inc.F90"
3506 : end procedure
3507 : #endif
3508 :
3509 : #undef RK_ENABLED
3510 :
3511 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3512 :
3513 : #undef CSA_ENABLED
3514 :
3515 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3516 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3517 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3518 :
3519 : #undef SUA_ENABLED
3520 :
3521 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3522 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3523 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3524 :
3525 : #define SLA_ENABLED 1
3526 :
3527 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3528 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3529 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3530 :
3531 : #define CSA_ENABLED 1
3532 :
3533 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3534 :
3535 : #define IK_ENABLED 1
3536 :
3537 : #if IK5_ENABLED
3538 139 : module procedure symm_ASS_CSA_SLA_CNB_SFB_IK5
3539 : use pm_kind, only: IKC => IK5
3540 : #include "pm_matrixMulAdd@routines.inc.F90"
3541 : end procedure
3542 : #endif
3543 :
3544 : #if IK4_ENABLED
3545 140 : module procedure symm_ASS_CSA_SLA_CNB_SFB_IK4
3546 : use pm_kind, only: IKC => IK4
3547 : #include "pm_matrixMulAdd@routines.inc.F90"
3548 : end procedure
3549 : #endif
3550 :
3551 : #if IK3_ENABLED
3552 151 : module procedure symm_ASS_CSA_SLA_CNB_SFB_IK3
3553 : use pm_kind, only: IKC => IK3
3554 : #include "pm_matrixMulAdd@routines.inc.F90"
3555 : end procedure
3556 : #endif
3557 :
3558 : #if IK2_ENABLED
3559 126 : module procedure symm_ASS_CSA_SLA_CNB_SFB_IK2
3560 : use pm_kind, only: IKC => IK2
3561 : #include "pm_matrixMulAdd@routines.inc.F90"
3562 : end procedure
3563 : #endif
3564 :
3565 : #if IK1_ENABLED
3566 152 : module procedure symm_ASS_CSA_SLA_CNB_SFB_IK1
3567 : use pm_kind, only: IKC => IK1
3568 : #include "pm_matrixMulAdd@routines.inc.F90"
3569 : end procedure
3570 : #endif
3571 :
3572 : #undef IK_ENABLED
3573 :
3574 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3575 :
3576 : #define CK_ENABLED 1
3577 :
3578 : #if CK5_ENABLED
3579 : module procedure symm_ASS_CSA_SLA_CNB_SFB_CK5
3580 : use pm_kind, only: CKC => CK5
3581 : #include "pm_matrixMulAdd@routines.inc.F90"
3582 : end procedure
3583 : #endif
3584 :
3585 : #if CK4_ENABLED
3586 138 : module procedure symm_ASS_CSA_SLA_CNB_SFB_CK4
3587 : use pm_kind, only: CKC => CK4
3588 : #include "pm_matrixMulAdd@routines.inc.F90"
3589 : end procedure
3590 : #endif
3591 :
3592 : #if CK3_ENABLED
3593 144 : module procedure symm_ASS_CSA_SLA_CNB_SFB_CK3
3594 : use pm_kind, only: CKC => CK3
3595 : #include "pm_matrixMulAdd@routines.inc.F90"
3596 : end procedure
3597 : #endif
3598 :
3599 : #if CK2_ENABLED
3600 142 : module procedure symm_ASS_CSA_SLA_CNB_SFB_CK2
3601 : use pm_kind, only: CKC => CK2
3602 : #include "pm_matrixMulAdd@routines.inc.F90"
3603 : end procedure
3604 : #endif
3605 :
3606 : #if CK1_ENABLED
3607 145 : module procedure symm_ASS_CSA_SLA_CNB_SFB_CK1
3608 : use pm_kind, only: CKC => CK1
3609 : #include "pm_matrixMulAdd@routines.inc.F90"
3610 : end procedure
3611 : #endif
3612 :
3613 : #undef CK_ENABLED
3614 :
3615 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3616 :
3617 : #define RK_ENABLED 1
3618 :
3619 : #if RK5_ENABLED
3620 : module procedure symm_ASS_CSA_SLA_CNB_SFB_RK5
3621 : use pm_kind, only: RKC => RK5
3622 : #include "pm_matrixMulAdd@routines.inc.F90"
3623 : end procedure
3624 : #endif
3625 :
3626 : #if RK4_ENABLED
3627 135 : module procedure symm_ASS_CSA_SLA_CNB_SFB_RK4
3628 : use pm_kind, only: RKC => RK4
3629 : #include "pm_matrixMulAdd@routines.inc.F90"
3630 : end procedure
3631 : #endif
3632 :
3633 : #if RK3_ENABLED
3634 154 : module procedure symm_ASS_CSA_SLA_CNB_SFB_RK3
3635 : use pm_kind, only: RKC => RK3
3636 : #include "pm_matrixMulAdd@routines.inc.F90"
3637 : end procedure
3638 : #endif
3639 :
3640 : #if RK2_ENABLED
3641 131 : module procedure symm_ASS_CSA_SLA_CNB_SFB_RK2
3642 : use pm_kind, only: RKC => RK2
3643 : #include "pm_matrixMulAdd@routines.inc.F90"
3644 : end procedure
3645 : #endif
3646 :
3647 : #if RK1_ENABLED
3648 150 : module procedure symm_ASS_CSA_SLA_CNB_SFB_RK1
3649 : use pm_kind, only: RKC => RK1
3650 : #include "pm_matrixMulAdd@routines.inc.F90"
3651 : end procedure
3652 : #endif
3653 :
3654 : #undef RK_ENABLED
3655 :
3656 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3657 :
3658 : #undef CSA_ENABLED
3659 :
3660 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3661 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3662 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3663 :
3664 : #undef SLA_ENABLED
3665 :
3666 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3667 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3668 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3669 :
3670 : #undef CNB_ENABLED
3671 : #undef SFB_ENABLED
3672 :
3673 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3674 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3675 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3676 :
3677 : #define CNA_ENABLED 1
3678 : #define SFA_ENABLED 1
3679 :
3680 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3681 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3682 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3683 :
3684 : #define SUB_ENABLED 1
3685 :
3686 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3687 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3688 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3689 :
3690 : #define CSB_ENABLED 1
3691 :
3692 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3693 :
3694 : #define IK_ENABLED 1
3695 :
3696 : #if IK5_ENABLED
3697 139 : module procedure symm_ASS_CNA_SFA_CSB_SUB_IK5
3698 : use pm_kind, only: IKC => IK5
3699 : #include "pm_matrixMulAdd@routines.inc.F90"
3700 : end procedure
3701 : #endif
3702 :
3703 : #if IK4_ENABLED
3704 140 : module procedure symm_ASS_CNA_SFA_CSB_SUB_IK4
3705 : use pm_kind, only: IKC => IK4
3706 : #include "pm_matrixMulAdd@routines.inc.F90"
3707 : end procedure
3708 : #endif
3709 :
3710 : #if IK3_ENABLED
3711 151 : module procedure symm_ASS_CNA_SFA_CSB_SUB_IK3
3712 : use pm_kind, only: IKC => IK3
3713 : #include "pm_matrixMulAdd@routines.inc.F90"
3714 : end procedure
3715 : #endif
3716 :
3717 : #if IK2_ENABLED
3718 126 : module procedure symm_ASS_CNA_SFA_CSB_SUB_IK2
3719 : use pm_kind, only: IKC => IK2
3720 : #include "pm_matrixMulAdd@routines.inc.F90"
3721 : end procedure
3722 : #endif
3723 :
3724 : #if IK1_ENABLED
3725 152 : module procedure symm_ASS_CNA_SFA_CSB_SUB_IK1
3726 : use pm_kind, only: IKC => IK1
3727 : #include "pm_matrixMulAdd@routines.inc.F90"
3728 : end procedure
3729 : #endif
3730 :
3731 : #undef IK_ENABLED
3732 :
3733 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3734 :
3735 : #define CK_ENABLED 1
3736 :
3737 : #if CK5_ENABLED
3738 : module procedure symm_ASS_CNA_SFA_CSB_SUB_CK5
3739 : use pm_kind, only: CKC => CK5
3740 : #include "pm_matrixMulAdd@routines.inc.F90"
3741 : end procedure
3742 : #endif
3743 :
3744 : #if CK4_ENABLED
3745 138 : module procedure symm_ASS_CNA_SFA_CSB_SUB_CK4
3746 : use pm_kind, only: CKC => CK4
3747 : #include "pm_matrixMulAdd@routines.inc.F90"
3748 : end procedure
3749 : #endif
3750 :
3751 : #if CK3_ENABLED
3752 144 : module procedure symm_ASS_CNA_SFA_CSB_SUB_CK3
3753 : use pm_kind, only: CKC => CK3
3754 : #include "pm_matrixMulAdd@routines.inc.F90"
3755 : end procedure
3756 : #endif
3757 :
3758 : #if CK2_ENABLED
3759 142 : module procedure symm_ASS_CNA_SFA_CSB_SUB_CK2
3760 : use pm_kind, only: CKC => CK2
3761 : #include "pm_matrixMulAdd@routines.inc.F90"
3762 : end procedure
3763 : #endif
3764 :
3765 : #if CK1_ENABLED
3766 145 : module procedure symm_ASS_CNA_SFA_CSB_SUB_CK1
3767 : use pm_kind, only: CKC => CK1
3768 : #include "pm_matrixMulAdd@routines.inc.F90"
3769 : end procedure
3770 : #endif
3771 :
3772 : #undef CK_ENABLED
3773 :
3774 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3775 :
3776 : #define RK_ENABLED 1
3777 :
3778 : #if RK5_ENABLED
3779 : module procedure symm_ASS_CNA_SFA_CSB_SUB_RK5
3780 : use pm_kind, only: RKC => RK5
3781 : #include "pm_matrixMulAdd@routines.inc.F90"
3782 : end procedure
3783 : #endif
3784 :
3785 : #if RK4_ENABLED
3786 135 : module procedure symm_ASS_CNA_SFA_CSB_SUB_RK4
3787 : use pm_kind, only: RKC => RK4
3788 : #include "pm_matrixMulAdd@routines.inc.F90"
3789 : end procedure
3790 : #endif
3791 :
3792 : #if RK3_ENABLED
3793 154 : module procedure symm_ASS_CNA_SFA_CSB_SUB_RK3
3794 : use pm_kind, only: RKC => RK3
3795 : #include "pm_matrixMulAdd@routines.inc.F90"
3796 : end procedure
3797 : #endif
3798 :
3799 : #if RK2_ENABLED
3800 131 : module procedure symm_ASS_CNA_SFA_CSB_SUB_RK2
3801 : use pm_kind, only: RKC => RK2
3802 : #include "pm_matrixMulAdd@routines.inc.F90"
3803 : end procedure
3804 : #endif
3805 :
3806 : #if RK1_ENABLED
3807 150 : module procedure symm_ASS_CNA_SFA_CSB_SUB_RK1
3808 : use pm_kind, only: RKC => RK1
3809 : #include "pm_matrixMulAdd@routines.inc.F90"
3810 : end procedure
3811 : #endif
3812 :
3813 : #undef RK_ENABLED
3814 :
3815 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3816 :
3817 : #undef CSB_ENABLED
3818 :
3819 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3820 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3821 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3822 :
3823 : #undef SUB_ENABLED
3824 :
3825 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3826 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3827 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3828 :
3829 : #define SLB_ENABLED 1
3830 :
3831 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3832 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3833 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3834 :
3835 : #define CSB_ENABLED 1
3836 :
3837 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3838 :
3839 : #define IK_ENABLED 1
3840 :
3841 : #if IK5_ENABLED
3842 139 : module procedure symm_ASS_CNA_SFA_CSB_SLB_IK5
3843 : use pm_kind, only: IKC => IK5
3844 : #include "pm_matrixMulAdd@routines.inc.F90"
3845 : end procedure
3846 : #endif
3847 :
3848 : #if IK4_ENABLED
3849 140 : module procedure symm_ASS_CNA_SFA_CSB_SLB_IK4
3850 : use pm_kind, only: IKC => IK4
3851 : #include "pm_matrixMulAdd@routines.inc.F90"
3852 : end procedure
3853 : #endif
3854 :
3855 : #if IK3_ENABLED
3856 151 : module procedure symm_ASS_CNA_SFA_CSB_SLB_IK3
3857 : use pm_kind, only: IKC => IK3
3858 : #include "pm_matrixMulAdd@routines.inc.F90"
3859 : end procedure
3860 : #endif
3861 :
3862 : #if IK2_ENABLED
3863 126 : module procedure symm_ASS_CNA_SFA_CSB_SLB_IK2
3864 : use pm_kind, only: IKC => IK2
3865 : #include "pm_matrixMulAdd@routines.inc.F90"
3866 : end procedure
3867 : #endif
3868 :
3869 : #if IK1_ENABLED
3870 152 : module procedure symm_ASS_CNA_SFA_CSB_SLB_IK1
3871 : use pm_kind, only: IKC => IK1
3872 : #include "pm_matrixMulAdd@routines.inc.F90"
3873 : end procedure
3874 : #endif
3875 :
3876 : #undef IK_ENABLED
3877 :
3878 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3879 :
3880 : #define CK_ENABLED 1
3881 :
3882 : #if CK5_ENABLED
3883 : module procedure symm_ASS_CNA_SFA_CSB_SLB_CK5
3884 : use pm_kind, only: CKC => CK5
3885 : #include "pm_matrixMulAdd@routines.inc.F90"
3886 : end procedure
3887 : #endif
3888 :
3889 : #if CK4_ENABLED
3890 138 : module procedure symm_ASS_CNA_SFA_CSB_SLB_CK4
3891 : use pm_kind, only: CKC => CK4
3892 : #include "pm_matrixMulAdd@routines.inc.F90"
3893 : end procedure
3894 : #endif
3895 :
3896 : #if CK3_ENABLED
3897 144 : module procedure symm_ASS_CNA_SFA_CSB_SLB_CK3
3898 : use pm_kind, only: CKC => CK3
3899 : #include "pm_matrixMulAdd@routines.inc.F90"
3900 : end procedure
3901 : #endif
3902 :
3903 : #if CK2_ENABLED
3904 142 : module procedure symm_ASS_CNA_SFA_CSB_SLB_CK2
3905 : use pm_kind, only: CKC => CK2
3906 : #include "pm_matrixMulAdd@routines.inc.F90"
3907 : end procedure
3908 : #endif
3909 :
3910 : #if CK1_ENABLED
3911 145 : module procedure symm_ASS_CNA_SFA_CSB_SLB_CK1
3912 : use pm_kind, only: CKC => CK1
3913 : #include "pm_matrixMulAdd@routines.inc.F90"
3914 : end procedure
3915 : #endif
3916 :
3917 : #undef CK_ENABLED
3918 :
3919 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3920 :
3921 : #define RK_ENABLED 1
3922 :
3923 : #if RK5_ENABLED
3924 : module procedure symm_ASS_CNA_SFA_CSB_SLB_RK5
3925 : use pm_kind, only: RKC => RK5
3926 : #include "pm_matrixMulAdd@routines.inc.F90"
3927 : end procedure
3928 : #endif
3929 :
3930 : #if RK4_ENABLED
3931 135 : module procedure symm_ASS_CNA_SFA_CSB_SLB_RK4
3932 : use pm_kind, only: RKC => RK4
3933 : #include "pm_matrixMulAdd@routines.inc.F90"
3934 : end procedure
3935 : #endif
3936 :
3937 : #if RK3_ENABLED
3938 154 : module procedure symm_ASS_CNA_SFA_CSB_SLB_RK3
3939 : use pm_kind, only: RKC => RK3
3940 : #include "pm_matrixMulAdd@routines.inc.F90"
3941 : end procedure
3942 : #endif
3943 :
3944 : #if RK2_ENABLED
3945 131 : module procedure symm_ASS_CNA_SFA_CSB_SLB_RK2
3946 : use pm_kind, only: RKC => RK2
3947 : #include "pm_matrixMulAdd@routines.inc.F90"
3948 : end procedure
3949 : #endif
3950 :
3951 : #if RK1_ENABLED
3952 150 : module procedure symm_ASS_CNA_SFA_CSB_SLB_RK1
3953 : use pm_kind, only: RKC => RK1
3954 : #include "pm_matrixMulAdd@routines.inc.F90"
3955 : end procedure
3956 : #endif
3957 :
3958 : #undef RK_ENABLED
3959 :
3960 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3961 :
3962 : #undef CSB_ENABLED
3963 :
3964 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3965 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3966 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3967 :
3968 : #undef SLB_ENABLED
3969 :
3970 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3971 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3972 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3973 :
3974 : #undef CNA_ENABLED
3975 : #undef SFA_ENABLED
3976 :
3977 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3978 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3979 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3980 :
3981 : #undef ASS_ENABLED
3982 :
3983 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3984 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3985 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3986 :
3987 : #define EXP_ENABLED 1
3988 :
3989 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3990 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3991 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3992 :
3993 : #define CNB_ENABLED 1
3994 : #define SFB_ENABLED 1
3995 :
3996 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3997 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3998 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3999 :
4000 : #define SUA_ENABLED 1
4001 :
4002 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4003 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4004 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4005 :
4006 : #define CSA_ENABLED 1
4007 :
4008 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4009 :
4010 : #define IK_ENABLED 1
4011 :
4012 : #if IK5_ENABLED
4013 100 : module procedure symm_EXP_CSA_SUA_CNB_SFB_IK5
4014 : use pm_kind, only: IKC => IK5
4015 : #include "pm_matrixMulAdd@routines.inc.F90"
4016 : end procedure
4017 : #endif
4018 :
4019 : #if IK4_ENABLED
4020 100 : module procedure symm_EXP_CSA_SUA_CNB_SFB_IK4
4021 : use pm_kind, only: IKC => IK4
4022 : #include "pm_matrixMulAdd@routines.inc.F90"
4023 : end procedure
4024 : #endif
4025 :
4026 : #if IK3_ENABLED
4027 100 : module procedure symm_EXP_CSA_SUA_CNB_SFB_IK3
4028 : use pm_kind, only: IKC => IK3
4029 : #include "pm_matrixMulAdd@routines.inc.F90"
4030 : end procedure
4031 : #endif
4032 :
4033 : #if IK2_ENABLED
4034 100 : module procedure symm_EXP_CSA_SUA_CNB_SFB_IK2
4035 : use pm_kind, only: IKC => IK2
4036 : #include "pm_matrixMulAdd@routines.inc.F90"
4037 : end procedure
4038 : #endif
4039 :
4040 : #if IK1_ENABLED
4041 100 : module procedure symm_EXP_CSA_SUA_CNB_SFB_IK1
4042 : use pm_kind, only: IKC => IK1
4043 : #include "pm_matrixMulAdd@routines.inc.F90"
4044 : end procedure
4045 : #endif
4046 :
4047 : #undef IK_ENABLED
4048 :
4049 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4050 :
4051 : #define CK_ENABLED 1
4052 :
4053 : #if CK5_ENABLED
4054 : module procedure symm_EXP_CSA_SUA_CNB_SFB_CK5
4055 : use pm_kind, only: CKC => CK5
4056 : #include "pm_matrixMulAdd@routines.inc.F90"
4057 : end procedure
4058 : #endif
4059 :
4060 : #if CK4_ENABLED
4061 100 : module procedure symm_EXP_CSA_SUA_CNB_SFB_CK4
4062 : use pm_kind, only: CKC => CK4
4063 : #include "pm_matrixMulAdd@routines.inc.F90"
4064 : end procedure
4065 : #endif
4066 :
4067 : #if CK3_ENABLED
4068 100 : module procedure symm_EXP_CSA_SUA_CNB_SFB_CK3
4069 : use pm_kind, only: CKC => CK3
4070 : #include "pm_matrixMulAdd@routines.inc.F90"
4071 : end procedure
4072 : #endif
4073 :
4074 : #if CK2_ENABLED
4075 100 : module procedure symm_EXP_CSA_SUA_CNB_SFB_CK2
4076 : use pm_kind, only: CKC => CK2
4077 : #include "pm_matrixMulAdd@routines.inc.F90"
4078 : end procedure
4079 : #endif
4080 :
4081 : #if CK1_ENABLED
4082 100 : module procedure symm_EXP_CSA_SUA_CNB_SFB_CK1
4083 : use pm_kind, only: CKC => CK1
4084 : #include "pm_matrixMulAdd@routines.inc.F90"
4085 : end procedure
4086 : #endif
4087 :
4088 : #undef CK_ENABLED
4089 :
4090 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4091 :
4092 : #define RK_ENABLED 1
4093 :
4094 : #if RK5_ENABLED
4095 : module procedure symm_EXP_CSA_SUA_CNB_SFB_RK5
4096 : use pm_kind, only: RKC => RK5
4097 : #include "pm_matrixMulAdd@routines.inc.F90"
4098 : end procedure
4099 : #endif
4100 :
4101 : #if RK4_ENABLED
4102 100 : module procedure symm_EXP_CSA_SUA_CNB_SFB_RK4
4103 : use pm_kind, only: RKC => RK4
4104 : #include "pm_matrixMulAdd@routines.inc.F90"
4105 : end procedure
4106 : #endif
4107 :
4108 : #if RK3_ENABLED
4109 100 : module procedure symm_EXP_CSA_SUA_CNB_SFB_RK3
4110 : use pm_kind, only: RKC => RK3
4111 : #include "pm_matrixMulAdd@routines.inc.F90"
4112 : end procedure
4113 : #endif
4114 :
4115 : #if RK2_ENABLED
4116 100 : module procedure symm_EXP_CSA_SUA_CNB_SFB_RK2
4117 : use pm_kind, only: RKC => RK2
4118 : #include "pm_matrixMulAdd@routines.inc.F90"
4119 : end procedure
4120 : #endif
4121 :
4122 : #if RK1_ENABLED
4123 101 : module procedure symm_EXP_CSA_SUA_CNB_SFB_RK1
4124 : use pm_kind, only: RKC => RK1
4125 : #include "pm_matrixMulAdd@routines.inc.F90"
4126 : end procedure
4127 : #endif
4128 :
4129 : #undef RK_ENABLED
4130 :
4131 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4132 :
4133 : #undef CSA_ENABLED
4134 :
4135 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4136 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4137 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4138 :
4139 : #undef SUA_ENABLED
4140 :
4141 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4142 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4143 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4144 :
4145 : #define SLA_ENABLED 1
4146 :
4147 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4148 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4149 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4150 :
4151 : #define CSA_ENABLED 1
4152 :
4153 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4154 :
4155 : #define IK_ENABLED 1
4156 :
4157 : #if IK5_ENABLED
4158 100 : module procedure symm_EXP_CSA_SLA_CNB_SFB_IK5
4159 : use pm_kind, only: IKC => IK5
4160 : #include "pm_matrixMulAdd@routines.inc.F90"
4161 : end procedure
4162 : #endif
4163 :
4164 : #if IK4_ENABLED
4165 100 : module procedure symm_EXP_CSA_SLA_CNB_SFB_IK4
4166 : use pm_kind, only: IKC => IK4
4167 : #include "pm_matrixMulAdd@routines.inc.F90"
4168 : end procedure
4169 : #endif
4170 :
4171 : #if IK3_ENABLED
4172 100 : module procedure symm_EXP_CSA_SLA_CNB_SFB_IK3
4173 : use pm_kind, only: IKC => IK3
4174 : #include "pm_matrixMulAdd@routines.inc.F90"
4175 : end procedure
4176 : #endif
4177 :
4178 : #if IK2_ENABLED
4179 100 : module procedure symm_EXP_CSA_SLA_CNB_SFB_IK2
4180 : use pm_kind, only: IKC => IK2
4181 : #include "pm_matrixMulAdd@routines.inc.F90"
4182 : end procedure
4183 : #endif
4184 :
4185 : #if IK1_ENABLED
4186 100 : module procedure symm_EXP_CSA_SLA_CNB_SFB_IK1
4187 : use pm_kind, only: IKC => IK1
4188 : #include "pm_matrixMulAdd@routines.inc.F90"
4189 : end procedure
4190 : #endif
4191 :
4192 : #undef IK_ENABLED
4193 :
4194 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4195 :
4196 : #define CK_ENABLED 1
4197 :
4198 : #if CK5_ENABLED
4199 : module procedure symm_EXP_CSA_SLA_CNB_SFB_CK5
4200 : use pm_kind, only: CKC => CK5
4201 : #include "pm_matrixMulAdd@routines.inc.F90"
4202 : end procedure
4203 : #endif
4204 :
4205 : #if CK4_ENABLED
4206 100 : module procedure symm_EXP_CSA_SLA_CNB_SFB_CK4
4207 : use pm_kind, only: CKC => CK4
4208 : #include "pm_matrixMulAdd@routines.inc.F90"
4209 : end procedure
4210 : #endif
4211 :
4212 : #if CK3_ENABLED
4213 100 : module procedure symm_EXP_CSA_SLA_CNB_SFB_CK3
4214 : use pm_kind, only: CKC => CK3
4215 : #include "pm_matrixMulAdd@routines.inc.F90"
4216 : end procedure
4217 : #endif
4218 :
4219 : #if CK2_ENABLED
4220 100 : module procedure symm_EXP_CSA_SLA_CNB_SFB_CK2
4221 : use pm_kind, only: CKC => CK2
4222 : #include "pm_matrixMulAdd@routines.inc.F90"
4223 : end procedure
4224 : #endif
4225 :
4226 : #if CK1_ENABLED
4227 100 : module procedure symm_EXP_CSA_SLA_CNB_SFB_CK1
4228 : use pm_kind, only: CKC => CK1
4229 : #include "pm_matrixMulAdd@routines.inc.F90"
4230 : end procedure
4231 : #endif
4232 :
4233 : #undef CK_ENABLED
4234 :
4235 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4236 :
4237 : #define RK_ENABLED 1
4238 :
4239 : #if RK5_ENABLED
4240 : module procedure symm_EXP_CSA_SLA_CNB_SFB_RK5
4241 : use pm_kind, only: RKC => RK5
4242 : #include "pm_matrixMulAdd@routines.inc.F90"
4243 : end procedure
4244 : #endif
4245 :
4246 : #if RK4_ENABLED
4247 100 : module procedure symm_EXP_CSA_SLA_CNB_SFB_RK4
4248 : use pm_kind, only: RKC => RK4
4249 : #include "pm_matrixMulAdd@routines.inc.F90"
4250 : end procedure
4251 : #endif
4252 :
4253 : #if RK3_ENABLED
4254 100 : module procedure symm_EXP_CSA_SLA_CNB_SFB_RK3
4255 : use pm_kind, only: RKC => RK3
4256 : #include "pm_matrixMulAdd@routines.inc.F90"
4257 : end procedure
4258 : #endif
4259 :
4260 : #if RK2_ENABLED
4261 100 : module procedure symm_EXP_CSA_SLA_CNB_SFB_RK2
4262 : use pm_kind, only: RKC => RK2
4263 : #include "pm_matrixMulAdd@routines.inc.F90"
4264 : end procedure
4265 : #endif
4266 :
4267 : #if RK1_ENABLED
4268 101 : module procedure symm_EXP_CSA_SLA_CNB_SFB_RK1
4269 : use pm_kind, only: RKC => RK1
4270 : #include "pm_matrixMulAdd@routines.inc.F90"
4271 : end procedure
4272 : #endif
4273 :
4274 : #undef RK_ENABLED
4275 :
4276 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4277 :
4278 : #undef CSA_ENABLED
4279 :
4280 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4281 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4282 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4283 :
4284 : #undef SLA_ENABLED
4285 :
4286 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4287 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4288 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4289 :
4290 : #undef CNB_ENABLED
4291 : #undef SFB_ENABLED
4292 :
4293 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4294 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4295 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4296 :
4297 : #define CNA_ENABLED 1
4298 : #define SFA_ENABLED 1
4299 :
4300 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4301 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4302 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4303 :
4304 : #define SUB_ENABLED 1
4305 :
4306 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4307 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4308 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4309 :
4310 : #define CSB_ENABLED 1
4311 :
4312 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4313 :
4314 : #define IK_ENABLED 1
4315 :
4316 : #if IK5_ENABLED
4317 100 : module procedure symm_EXP_CNA_SFA_CSB_SUB_IK5
4318 : use pm_kind, only: IKC => IK5
4319 : #include "pm_matrixMulAdd@routines.inc.F90"
4320 : end procedure
4321 : #endif
4322 :
4323 : #if IK4_ENABLED
4324 100 : module procedure symm_EXP_CNA_SFA_CSB_SUB_IK4
4325 : use pm_kind, only: IKC => IK4
4326 : #include "pm_matrixMulAdd@routines.inc.F90"
4327 : end procedure
4328 : #endif
4329 :
4330 : #if IK3_ENABLED
4331 100 : module procedure symm_EXP_CNA_SFA_CSB_SUB_IK3
4332 : use pm_kind, only: IKC => IK3
4333 : #include "pm_matrixMulAdd@routines.inc.F90"
4334 : end procedure
4335 : #endif
4336 :
4337 : #if IK2_ENABLED
4338 100 : module procedure symm_EXP_CNA_SFA_CSB_SUB_IK2
4339 : use pm_kind, only: IKC => IK2
4340 : #include "pm_matrixMulAdd@routines.inc.F90"
4341 : end procedure
4342 : #endif
4343 :
4344 : #if IK1_ENABLED
4345 100 : module procedure symm_EXP_CNA_SFA_CSB_SUB_IK1
4346 : use pm_kind, only: IKC => IK1
4347 : #include "pm_matrixMulAdd@routines.inc.F90"
4348 : end procedure
4349 : #endif
4350 :
4351 : #undef IK_ENABLED
4352 :
4353 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4354 :
4355 : #define CK_ENABLED 1
4356 :
4357 : #if CK5_ENABLED
4358 : module procedure symm_EXP_CNA_SFA_CSB_SUB_CK5
4359 : use pm_kind, only: CKC => CK5
4360 : #include "pm_matrixMulAdd@routines.inc.F90"
4361 : end procedure
4362 : #endif
4363 :
4364 : #if CK4_ENABLED
4365 100 : module procedure symm_EXP_CNA_SFA_CSB_SUB_CK4
4366 : use pm_kind, only: CKC => CK4
4367 : #include "pm_matrixMulAdd@routines.inc.F90"
4368 : end procedure
4369 : #endif
4370 :
4371 : #if CK3_ENABLED
4372 100 : module procedure symm_EXP_CNA_SFA_CSB_SUB_CK3
4373 : use pm_kind, only: CKC => CK3
4374 : #include "pm_matrixMulAdd@routines.inc.F90"
4375 : end procedure
4376 : #endif
4377 :
4378 : #if CK2_ENABLED
4379 100 : module procedure symm_EXP_CNA_SFA_CSB_SUB_CK2
4380 : use pm_kind, only: CKC => CK2
4381 : #include "pm_matrixMulAdd@routines.inc.F90"
4382 : end procedure
4383 : #endif
4384 :
4385 : #if CK1_ENABLED
4386 101 : module procedure symm_EXP_CNA_SFA_CSB_SUB_CK1
4387 : use pm_kind, only: CKC => CK1
4388 : #include "pm_matrixMulAdd@routines.inc.F90"
4389 : end procedure
4390 : #endif
4391 :
4392 : #undef CK_ENABLED
4393 :
4394 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4395 :
4396 : #define RK_ENABLED 1
4397 :
4398 : #if RK5_ENABLED
4399 : module procedure symm_EXP_CNA_SFA_CSB_SUB_RK5
4400 : use pm_kind, only: RKC => RK5
4401 : #include "pm_matrixMulAdd@routines.inc.F90"
4402 : end procedure
4403 : #endif
4404 :
4405 : #if RK4_ENABLED
4406 100 : module procedure symm_EXP_CNA_SFA_CSB_SUB_RK4
4407 : use pm_kind, only: RKC => RK4
4408 : #include "pm_matrixMulAdd@routines.inc.F90"
4409 : end procedure
4410 : #endif
4411 :
4412 : #if RK3_ENABLED
4413 100 : module procedure symm_EXP_CNA_SFA_CSB_SUB_RK3
4414 : use pm_kind, only: RKC => RK3
4415 : #include "pm_matrixMulAdd@routines.inc.F90"
4416 : end procedure
4417 : #endif
4418 :
4419 : #if RK2_ENABLED
4420 100 : module procedure symm_EXP_CNA_SFA_CSB_SUB_RK2
4421 : use pm_kind, only: RKC => RK2
4422 : #include "pm_matrixMulAdd@routines.inc.F90"
4423 : end procedure
4424 : #endif
4425 :
4426 : #if RK1_ENABLED
4427 101 : module procedure symm_EXP_CNA_SFA_CSB_SUB_RK1
4428 : use pm_kind, only: RKC => RK1
4429 : #include "pm_matrixMulAdd@routines.inc.F90"
4430 : end procedure
4431 : #endif
4432 :
4433 : #undef RK_ENABLED
4434 :
4435 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4436 :
4437 : #undef CSB_ENABLED
4438 :
4439 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4440 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4441 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4442 :
4443 : #undef SUB_ENABLED
4444 :
4445 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4446 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4447 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4448 :
4449 : #define SLB_ENABLED 1
4450 :
4451 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4452 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4453 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4454 :
4455 : #define CSB_ENABLED 1
4456 :
4457 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4458 :
4459 : #define IK_ENABLED 1
4460 :
4461 : #if IK5_ENABLED
4462 100 : module procedure symm_EXP_CNA_SFA_CSB_SLB_IK5
4463 : use pm_kind, only: IKC => IK5
4464 : #include "pm_matrixMulAdd@routines.inc.F90"
4465 : end procedure
4466 : #endif
4467 :
4468 : #if IK4_ENABLED
4469 100 : module procedure symm_EXP_CNA_SFA_CSB_SLB_IK4
4470 : use pm_kind, only: IKC => IK4
4471 : #include "pm_matrixMulAdd@routines.inc.F90"
4472 : end procedure
4473 : #endif
4474 :
4475 : #if IK3_ENABLED
4476 100 : module procedure symm_EXP_CNA_SFA_CSB_SLB_IK3
4477 : use pm_kind, only: IKC => IK3
4478 : #include "pm_matrixMulAdd@routines.inc.F90"
4479 : end procedure
4480 : #endif
4481 :
4482 : #if IK2_ENABLED
4483 100 : module procedure symm_EXP_CNA_SFA_CSB_SLB_IK2
4484 : use pm_kind, only: IKC => IK2
4485 : #include "pm_matrixMulAdd@routines.inc.F90"
4486 : end procedure
4487 : #endif
4488 :
4489 : #if IK1_ENABLED
4490 100 : module procedure symm_EXP_CNA_SFA_CSB_SLB_IK1
4491 : use pm_kind, only: IKC => IK1
4492 : #include "pm_matrixMulAdd@routines.inc.F90"
4493 : end procedure
4494 : #endif
4495 :
4496 : #undef IK_ENABLED
4497 :
4498 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4499 :
4500 : #define CK_ENABLED 1
4501 :
4502 : #if CK5_ENABLED
4503 : module procedure symm_EXP_CNA_SFA_CSB_SLB_CK5
4504 : use pm_kind, only: CKC => CK5
4505 : #include "pm_matrixMulAdd@routines.inc.F90"
4506 : end procedure
4507 : #endif
4508 :
4509 : #if CK4_ENABLED
4510 100 : module procedure symm_EXP_CNA_SFA_CSB_SLB_CK4
4511 : use pm_kind, only: CKC => CK4
4512 : #include "pm_matrixMulAdd@routines.inc.F90"
4513 : end procedure
4514 : #endif
4515 :
4516 : #if CK3_ENABLED
4517 100 : module procedure symm_EXP_CNA_SFA_CSB_SLB_CK3
4518 : use pm_kind, only: CKC => CK3
4519 : #include "pm_matrixMulAdd@routines.inc.F90"
4520 : end procedure
4521 : #endif
4522 :
4523 : #if CK2_ENABLED
4524 100 : module procedure symm_EXP_CNA_SFA_CSB_SLB_CK2
4525 : use pm_kind, only: CKC => CK2
4526 : #include "pm_matrixMulAdd@routines.inc.F90"
4527 : end procedure
4528 : #endif
4529 :
4530 : #if CK1_ENABLED
4531 100 : module procedure symm_EXP_CNA_SFA_CSB_SLB_CK1
4532 : use pm_kind, only: CKC => CK1
4533 : #include "pm_matrixMulAdd@routines.inc.F90"
4534 : end procedure
4535 : #endif
4536 :
4537 : #undef CK_ENABLED
4538 :
4539 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4540 :
4541 : #define RK_ENABLED 1
4542 :
4543 : #if RK5_ENABLED
4544 : module procedure symm_EXP_CNA_SFA_CSB_SLB_RK5
4545 : use pm_kind, only: RKC => RK5
4546 : #include "pm_matrixMulAdd@routines.inc.F90"
4547 : end procedure
4548 : #endif
4549 :
4550 : #if RK4_ENABLED
4551 100 : module procedure symm_EXP_CNA_SFA_CSB_SLB_RK4
4552 : use pm_kind, only: RKC => RK4
4553 : #include "pm_matrixMulAdd@routines.inc.F90"
4554 : end procedure
4555 : #endif
4556 :
4557 : #if RK3_ENABLED
4558 100 : module procedure symm_EXP_CNA_SFA_CSB_SLB_RK3
4559 : use pm_kind, only: RKC => RK3
4560 : #include "pm_matrixMulAdd@routines.inc.F90"
4561 : end procedure
4562 : #endif
4563 :
4564 : #if RK2_ENABLED
4565 100 : module procedure symm_EXP_CNA_SFA_CSB_SLB_RK2
4566 : use pm_kind, only: RKC => RK2
4567 : #include "pm_matrixMulAdd@routines.inc.F90"
4568 : end procedure
4569 : #endif
4570 :
4571 : #if RK1_ENABLED
4572 101 : module procedure symm_EXP_CNA_SFA_CSB_SLB_RK1
4573 : use pm_kind, only: RKC => RK1
4574 : #include "pm_matrixMulAdd@routines.inc.F90"
4575 : end procedure
4576 : #endif
4577 :
4578 : #undef RK_ENABLED
4579 :
4580 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4581 :
4582 : #undef CSB_ENABLED
4583 :
4584 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4585 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4586 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4587 :
4588 : #undef SLB_ENABLED
4589 :
4590 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4591 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4592 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4593 :
4594 : #undef CNA_ENABLED
4595 : #undef SFA_ENABLED
4596 :
4597 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4598 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4599 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4600 :
4601 : #undef EXP_ENABLED
4602 :
4603 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4604 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4605 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4606 :
4607 : #undef symm_ENABLED
4608 :
4609 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4610 :
4611 : #define hemm_ENABLED 1
4612 :
4613 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4614 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4615 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4616 :
4617 : #define ASS_ENABLED 1
4618 :
4619 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4620 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4621 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4622 :
4623 : #define CNB_ENABLED 1
4624 : #define SFB_ENABLED 1
4625 :
4626 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4627 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4628 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4629 :
4630 : #define SUA_ENABLED 1
4631 :
4632 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4633 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4634 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4635 :
4636 : #define CHA_ENABLED 1
4637 :
4638 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4639 :
4640 : #define IK_ENABLED 1
4641 :
4642 : #if IK5_ENABLED
4643 139 : module procedure hemm_ASS_CHA_SUA_CNB_SFB_IK5
4644 : use pm_kind, only: IKC => IK5
4645 : #include "pm_matrixMulAdd@routines.inc.F90"
4646 : end procedure
4647 : #endif
4648 :
4649 : #if IK4_ENABLED
4650 140 : module procedure hemm_ASS_CHA_SUA_CNB_SFB_IK4
4651 : use pm_kind, only: IKC => IK4
4652 : #include "pm_matrixMulAdd@routines.inc.F90"
4653 : end procedure
4654 : #endif
4655 :
4656 : #if IK3_ENABLED
4657 151 : module procedure hemm_ASS_CHA_SUA_CNB_SFB_IK3
4658 : use pm_kind, only: IKC => IK3
4659 : #include "pm_matrixMulAdd@routines.inc.F90"
4660 : end procedure
4661 : #endif
4662 :
4663 : #if IK2_ENABLED
4664 126 : module procedure hemm_ASS_CHA_SUA_CNB_SFB_IK2
4665 : use pm_kind, only: IKC => IK2
4666 : #include "pm_matrixMulAdd@routines.inc.F90"
4667 : end procedure
4668 : #endif
4669 :
4670 : #if IK1_ENABLED
4671 152 : module procedure hemm_ASS_CHA_SUA_CNB_SFB_IK1
4672 : use pm_kind, only: IKC => IK1
4673 : #include "pm_matrixMulAdd@routines.inc.F90"
4674 : end procedure
4675 : #endif
4676 :
4677 : #undef IK_ENABLED
4678 :
4679 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4680 :
4681 : #define CK_ENABLED 1
4682 :
4683 : #if CK5_ENABLED
4684 : module procedure hemm_ASS_CHA_SUA_CNB_SFB_CK5
4685 : use pm_kind, only: CKC => CK5
4686 : #include "pm_matrixMulAdd@routines.inc.F90"
4687 : end procedure
4688 : #endif
4689 :
4690 : #if CK4_ENABLED
4691 138 : module procedure hemm_ASS_CHA_SUA_CNB_SFB_CK4
4692 : use pm_kind, only: CKC => CK4
4693 : #include "pm_matrixMulAdd@routines.inc.F90"
4694 : end procedure
4695 : #endif
4696 :
4697 : #if CK3_ENABLED
4698 144 : module procedure hemm_ASS_CHA_SUA_CNB_SFB_CK3
4699 : use pm_kind, only: CKC => CK3
4700 : #include "pm_matrixMulAdd@routines.inc.F90"
4701 : end procedure
4702 : #endif
4703 :
4704 : #if CK2_ENABLED
4705 142 : module procedure hemm_ASS_CHA_SUA_CNB_SFB_CK2
4706 : use pm_kind, only: CKC => CK2
4707 : #include "pm_matrixMulAdd@routines.inc.F90"
4708 : end procedure
4709 : #endif
4710 :
4711 : #if CK1_ENABLED
4712 145 : module procedure hemm_ASS_CHA_SUA_CNB_SFB_CK1
4713 : use pm_kind, only: CKC => CK1
4714 : #include "pm_matrixMulAdd@routines.inc.F90"
4715 : end procedure
4716 : #endif
4717 :
4718 : #undef CK_ENABLED
4719 :
4720 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4721 :
4722 : #define RK_ENABLED 1
4723 :
4724 : #if RK5_ENABLED
4725 : module procedure hemm_ASS_CHA_SUA_CNB_SFB_RK5
4726 : use pm_kind, only: RKC => RK5
4727 : #include "pm_matrixMulAdd@routines.inc.F90"
4728 : end procedure
4729 : #endif
4730 :
4731 : #if RK4_ENABLED
4732 135 : module procedure hemm_ASS_CHA_SUA_CNB_SFB_RK4
4733 : use pm_kind, only: RKC => RK4
4734 : #include "pm_matrixMulAdd@routines.inc.F90"
4735 : end procedure
4736 : #endif
4737 :
4738 : #if RK3_ENABLED
4739 154 : module procedure hemm_ASS_CHA_SUA_CNB_SFB_RK3
4740 : use pm_kind, only: RKC => RK3
4741 : #include "pm_matrixMulAdd@routines.inc.F90"
4742 : end procedure
4743 : #endif
4744 :
4745 : #if RK2_ENABLED
4746 131 : module procedure hemm_ASS_CHA_SUA_CNB_SFB_RK2
4747 : use pm_kind, only: RKC => RK2
4748 : #include "pm_matrixMulAdd@routines.inc.F90"
4749 : end procedure
4750 : #endif
4751 :
4752 : #if RK1_ENABLED
4753 149 : module procedure hemm_ASS_CHA_SUA_CNB_SFB_RK1
4754 : use pm_kind, only: RKC => RK1
4755 : #include "pm_matrixMulAdd@routines.inc.F90"
4756 : end procedure
4757 : #endif
4758 :
4759 : #undef RK_ENABLED
4760 :
4761 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4762 :
4763 : #undef CHA_ENABLED
4764 :
4765 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4766 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4767 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4768 :
4769 : #undef SUA_ENABLED
4770 :
4771 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4772 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4773 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4774 :
4775 : #define SLA_ENABLED 1
4776 :
4777 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4778 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4779 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4780 :
4781 : #define CHA_ENABLED 1
4782 :
4783 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4784 :
4785 : #define IK_ENABLED 1
4786 :
4787 : #if IK5_ENABLED
4788 139 : module procedure hemm_ASS_CHA_SLA_CNB_SFB_IK5
4789 : use pm_kind, only: IKC => IK5
4790 : #include "pm_matrixMulAdd@routines.inc.F90"
4791 : end procedure
4792 : #endif
4793 :
4794 : #if IK4_ENABLED
4795 140 : module procedure hemm_ASS_CHA_SLA_CNB_SFB_IK4
4796 : use pm_kind, only: IKC => IK4
4797 : #include "pm_matrixMulAdd@routines.inc.F90"
4798 : end procedure
4799 : #endif
4800 :
4801 : #if IK3_ENABLED
4802 151 : module procedure hemm_ASS_CHA_SLA_CNB_SFB_IK3
4803 : use pm_kind, only: IKC => IK3
4804 : #include "pm_matrixMulAdd@routines.inc.F90"
4805 : end procedure
4806 : #endif
4807 :
4808 : #if IK2_ENABLED
4809 126 : module procedure hemm_ASS_CHA_SLA_CNB_SFB_IK2
4810 : use pm_kind, only: IKC => IK2
4811 : #include "pm_matrixMulAdd@routines.inc.F90"
4812 : end procedure
4813 : #endif
4814 :
4815 : #if IK1_ENABLED
4816 152 : module procedure hemm_ASS_CHA_SLA_CNB_SFB_IK1
4817 : use pm_kind, only: IKC => IK1
4818 : #include "pm_matrixMulAdd@routines.inc.F90"
4819 : end procedure
4820 : #endif
4821 :
4822 : #undef IK_ENABLED
4823 :
4824 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4825 :
4826 : #define CK_ENABLED 1
4827 :
4828 : #if CK5_ENABLED
4829 : module procedure hemm_ASS_CHA_SLA_CNB_SFB_CK5
4830 : use pm_kind, only: CKC => CK5
4831 : #include "pm_matrixMulAdd@routines.inc.F90"
4832 : end procedure
4833 : #endif
4834 :
4835 : #if CK4_ENABLED
4836 138 : module procedure hemm_ASS_CHA_SLA_CNB_SFB_CK4
4837 : use pm_kind, only: CKC => CK4
4838 : #include "pm_matrixMulAdd@routines.inc.F90"
4839 : end procedure
4840 : #endif
4841 :
4842 : #if CK3_ENABLED
4843 144 : module procedure hemm_ASS_CHA_SLA_CNB_SFB_CK3
4844 : use pm_kind, only: CKC => CK3
4845 : #include "pm_matrixMulAdd@routines.inc.F90"
4846 : end procedure
4847 : #endif
4848 :
4849 : #if CK2_ENABLED
4850 142 : module procedure hemm_ASS_CHA_SLA_CNB_SFB_CK2
4851 : use pm_kind, only: CKC => CK2
4852 : #include "pm_matrixMulAdd@routines.inc.F90"
4853 : end procedure
4854 : #endif
4855 :
4856 : #if CK1_ENABLED
4857 145 : module procedure hemm_ASS_CHA_SLA_CNB_SFB_CK1
4858 : use pm_kind, only: CKC => CK1
4859 : #include "pm_matrixMulAdd@routines.inc.F90"
4860 : end procedure
4861 : #endif
4862 :
4863 : #undef CK_ENABLED
4864 :
4865 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4866 :
4867 : #define RK_ENABLED 1
4868 :
4869 : #if RK5_ENABLED
4870 : module procedure hemm_ASS_CHA_SLA_CNB_SFB_RK5
4871 : use pm_kind, only: RKC => RK5
4872 : #include "pm_matrixMulAdd@routines.inc.F90"
4873 : end procedure
4874 : #endif
4875 :
4876 : #if RK4_ENABLED
4877 135 : module procedure hemm_ASS_CHA_SLA_CNB_SFB_RK4
4878 : use pm_kind, only: RKC => RK4
4879 : #include "pm_matrixMulAdd@routines.inc.F90"
4880 : end procedure
4881 : #endif
4882 :
4883 : #if RK3_ENABLED
4884 154 : module procedure hemm_ASS_CHA_SLA_CNB_SFB_RK3
4885 : use pm_kind, only: RKC => RK3
4886 : #include "pm_matrixMulAdd@routines.inc.F90"
4887 : end procedure
4888 : #endif
4889 :
4890 : #if RK2_ENABLED
4891 131 : module procedure hemm_ASS_CHA_SLA_CNB_SFB_RK2
4892 : use pm_kind, only: RKC => RK2
4893 : #include "pm_matrixMulAdd@routines.inc.F90"
4894 : end procedure
4895 : #endif
4896 :
4897 : #if RK1_ENABLED
4898 149 : module procedure hemm_ASS_CHA_SLA_CNB_SFB_RK1
4899 : use pm_kind, only: RKC => RK1
4900 : #include "pm_matrixMulAdd@routines.inc.F90"
4901 : end procedure
4902 : #endif
4903 :
4904 : #undef RK_ENABLED
4905 :
4906 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4907 :
4908 : #undef CHA_ENABLED
4909 :
4910 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4911 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4912 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4913 :
4914 : #undef SLA_ENABLED
4915 :
4916 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4917 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4918 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4919 :
4920 : #undef CNB_ENABLED
4921 : #undef SFB_ENABLED
4922 :
4923 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4924 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4925 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4926 :
4927 : #define CNA_ENABLED 1
4928 : #define SFA_ENABLED 1
4929 :
4930 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4931 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4932 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4933 :
4934 : #define SUB_ENABLED 1
4935 :
4936 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4937 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4938 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4939 :
4940 : #define CHB_ENABLED 1
4941 :
4942 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4943 :
4944 : #define IK_ENABLED 1
4945 :
4946 : #if IK5_ENABLED
4947 139 : module procedure hemm_ASS_CNA_SFA_CHB_SUB_IK5
4948 : use pm_kind, only: IKC => IK5
4949 : #include "pm_matrixMulAdd@routines.inc.F90"
4950 : end procedure
4951 : #endif
4952 :
4953 : #if IK4_ENABLED
4954 140 : module procedure hemm_ASS_CNA_SFA_CHB_SUB_IK4
4955 : use pm_kind, only: IKC => IK4
4956 : #include "pm_matrixMulAdd@routines.inc.F90"
4957 : end procedure
4958 : #endif
4959 :
4960 : #if IK3_ENABLED
4961 151 : module procedure hemm_ASS_CNA_SFA_CHB_SUB_IK3
4962 : use pm_kind, only: IKC => IK3
4963 : #include "pm_matrixMulAdd@routines.inc.F90"
4964 : end procedure
4965 : #endif
4966 :
4967 : #if IK2_ENABLED
4968 126 : module procedure hemm_ASS_CNA_SFA_CHB_SUB_IK2
4969 : use pm_kind, only: IKC => IK2
4970 : #include "pm_matrixMulAdd@routines.inc.F90"
4971 : end procedure
4972 : #endif
4973 :
4974 : #if IK1_ENABLED
4975 152 : module procedure hemm_ASS_CNA_SFA_CHB_SUB_IK1
4976 : use pm_kind, only: IKC => IK1
4977 : #include "pm_matrixMulAdd@routines.inc.F90"
4978 : end procedure
4979 : #endif
4980 :
4981 : #undef IK_ENABLED
4982 :
4983 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4984 :
4985 : #define CK_ENABLED 1
4986 :
4987 : #if CK5_ENABLED
4988 : module procedure hemm_ASS_CNA_SFA_CHB_SUB_CK5
4989 : use pm_kind, only: CKC => CK5
4990 : #include "pm_matrixMulAdd@routines.inc.F90"
4991 : end procedure
4992 : #endif
4993 :
4994 : #if CK4_ENABLED
4995 138 : module procedure hemm_ASS_CNA_SFA_CHB_SUB_CK4
4996 : use pm_kind, only: CKC => CK4
4997 : #include "pm_matrixMulAdd@routines.inc.F90"
4998 : end procedure
4999 : #endif
5000 :
5001 : #if CK3_ENABLED
5002 144 : module procedure hemm_ASS_CNA_SFA_CHB_SUB_CK3
5003 : use pm_kind, only: CKC => CK3
5004 : #include "pm_matrixMulAdd@routines.inc.F90"
5005 : end procedure
5006 : #endif
5007 :
5008 : #if CK2_ENABLED
5009 142 : module procedure hemm_ASS_CNA_SFA_CHB_SUB_CK2
5010 : use pm_kind, only: CKC => CK2
5011 : #include "pm_matrixMulAdd@routines.inc.F90"
5012 : end procedure
5013 : #endif
5014 :
5015 : #if CK1_ENABLED
5016 145 : module procedure hemm_ASS_CNA_SFA_CHB_SUB_CK1
5017 : use pm_kind, only: CKC => CK1
5018 : #include "pm_matrixMulAdd@routines.inc.F90"
5019 : end procedure
5020 : #endif
5021 :
5022 : #undef CK_ENABLED
5023 :
5024 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5025 :
5026 : #define RK_ENABLED 1
5027 :
5028 : #if RK5_ENABLED
5029 : module procedure hemm_ASS_CNA_SFA_CHB_SUB_RK5
5030 : use pm_kind, only: RKC => RK5
5031 : #include "pm_matrixMulAdd@routines.inc.F90"
5032 : end procedure
5033 : #endif
5034 :
5035 : #if RK4_ENABLED
5036 135 : module procedure hemm_ASS_CNA_SFA_CHB_SUB_RK4
5037 : use pm_kind, only: RKC => RK4
5038 : #include "pm_matrixMulAdd@routines.inc.F90"
5039 : end procedure
5040 : #endif
5041 :
5042 : #if RK3_ENABLED
5043 154 : module procedure hemm_ASS_CNA_SFA_CHB_SUB_RK3
5044 : use pm_kind, only: RKC => RK3
5045 : #include "pm_matrixMulAdd@routines.inc.F90"
5046 : end procedure
5047 : #endif
5048 :
5049 : #if RK2_ENABLED
5050 131 : module procedure hemm_ASS_CNA_SFA_CHB_SUB_RK2
5051 : use pm_kind, only: RKC => RK2
5052 : #include "pm_matrixMulAdd@routines.inc.F90"
5053 : end procedure
5054 : #endif
5055 :
5056 : #if RK1_ENABLED
5057 149 : module procedure hemm_ASS_CNA_SFA_CHB_SUB_RK1
5058 : use pm_kind, only: RKC => RK1
5059 : #include "pm_matrixMulAdd@routines.inc.F90"
5060 : end procedure
5061 : #endif
5062 :
5063 : #undef RK_ENABLED
5064 :
5065 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5066 :
5067 : #undef CHB_ENABLED
5068 :
5069 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5070 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5071 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5072 :
5073 : #undef SUB_ENABLED
5074 :
5075 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5076 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5077 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5078 :
5079 : #define SLB_ENABLED 1
5080 :
5081 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5082 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5083 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5084 :
5085 : #define CHB_ENABLED 1
5086 :
5087 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5088 :
5089 : #define IK_ENABLED 1
5090 :
5091 : #if IK5_ENABLED
5092 139 : module procedure hemm_ASS_CNA_SFA_CHB_SLB_IK5
5093 : use pm_kind, only: IKC => IK5
5094 : #include "pm_matrixMulAdd@routines.inc.F90"
5095 : end procedure
5096 : #endif
5097 :
5098 : #if IK4_ENABLED
5099 140 : module procedure hemm_ASS_CNA_SFA_CHB_SLB_IK4
5100 : use pm_kind, only: IKC => IK4
5101 : #include "pm_matrixMulAdd@routines.inc.F90"
5102 : end procedure
5103 : #endif
5104 :
5105 : #if IK3_ENABLED
5106 151 : module procedure hemm_ASS_CNA_SFA_CHB_SLB_IK3
5107 : use pm_kind, only: IKC => IK3
5108 : #include "pm_matrixMulAdd@routines.inc.F90"
5109 : end procedure
5110 : #endif
5111 :
5112 : #if IK2_ENABLED
5113 126 : module procedure hemm_ASS_CNA_SFA_CHB_SLB_IK2
5114 : use pm_kind, only: IKC => IK2
5115 : #include "pm_matrixMulAdd@routines.inc.F90"
5116 : end procedure
5117 : #endif
5118 :
5119 : #if IK1_ENABLED
5120 152 : module procedure hemm_ASS_CNA_SFA_CHB_SLB_IK1
5121 : use pm_kind, only: IKC => IK1
5122 : #include "pm_matrixMulAdd@routines.inc.F90"
5123 : end procedure
5124 : #endif
5125 :
5126 : #undef IK_ENABLED
5127 :
5128 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5129 :
5130 : #define CK_ENABLED 1
5131 :
5132 : #if CK5_ENABLED
5133 : module procedure hemm_ASS_CNA_SFA_CHB_SLB_CK5
5134 : use pm_kind, only: CKC => CK5
5135 : #include "pm_matrixMulAdd@routines.inc.F90"
5136 : end procedure
5137 : #endif
5138 :
5139 : #if CK4_ENABLED
5140 138 : module procedure hemm_ASS_CNA_SFA_CHB_SLB_CK4
5141 : use pm_kind, only: CKC => CK4
5142 : #include "pm_matrixMulAdd@routines.inc.F90"
5143 : end procedure
5144 : #endif
5145 :
5146 : #if CK3_ENABLED
5147 144 : module procedure hemm_ASS_CNA_SFA_CHB_SLB_CK3
5148 : use pm_kind, only: CKC => CK3
5149 : #include "pm_matrixMulAdd@routines.inc.F90"
5150 : end procedure
5151 : #endif
5152 :
5153 : #if CK2_ENABLED
5154 142 : module procedure hemm_ASS_CNA_SFA_CHB_SLB_CK2
5155 : use pm_kind, only: CKC => CK2
5156 : #include "pm_matrixMulAdd@routines.inc.F90"
5157 : end procedure
5158 : #endif
5159 :
5160 : #if CK1_ENABLED
5161 145 : module procedure hemm_ASS_CNA_SFA_CHB_SLB_CK1
5162 : use pm_kind, only: CKC => CK1
5163 : #include "pm_matrixMulAdd@routines.inc.F90"
5164 : end procedure
5165 : #endif
5166 :
5167 : #undef CK_ENABLED
5168 :
5169 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5170 :
5171 : #define RK_ENABLED 1
5172 :
5173 : #if RK5_ENABLED
5174 : module procedure hemm_ASS_CNA_SFA_CHB_SLB_RK5
5175 : use pm_kind, only: RKC => RK5
5176 : #include "pm_matrixMulAdd@routines.inc.F90"
5177 : end procedure
5178 : #endif
5179 :
5180 : #if RK4_ENABLED
5181 135 : module procedure hemm_ASS_CNA_SFA_CHB_SLB_RK4
5182 : use pm_kind, only: RKC => RK4
5183 : #include "pm_matrixMulAdd@routines.inc.F90"
5184 : end procedure
5185 : #endif
5186 :
5187 : #if RK3_ENABLED
5188 154 : module procedure hemm_ASS_CNA_SFA_CHB_SLB_RK3
5189 : use pm_kind, only: RKC => RK3
5190 : #include "pm_matrixMulAdd@routines.inc.F90"
5191 : end procedure
5192 : #endif
5193 :
5194 : #if RK2_ENABLED
5195 131 : module procedure hemm_ASS_CNA_SFA_CHB_SLB_RK2
5196 : use pm_kind, only: RKC => RK2
5197 : #include "pm_matrixMulAdd@routines.inc.F90"
5198 : end procedure
5199 : #endif
5200 :
5201 : #if RK1_ENABLED
5202 149 : module procedure hemm_ASS_CNA_SFA_CHB_SLB_RK1
5203 : use pm_kind, only: RKC => RK1
5204 : #include "pm_matrixMulAdd@routines.inc.F90"
5205 : end procedure
5206 : #endif
5207 :
5208 : #undef RK_ENABLED
5209 :
5210 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5211 :
5212 : #undef CHB_ENABLED
5213 :
5214 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5215 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5216 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5217 :
5218 : #undef SLB_ENABLED
5219 :
5220 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5221 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5222 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5223 :
5224 : #undef CNA_ENABLED
5225 : #undef SFA_ENABLED
5226 :
5227 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5228 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5229 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5230 :
5231 : #undef ASS_ENABLED
5232 :
5233 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5234 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5235 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5236 :
5237 : #define EXP_ENABLED 1
5238 :
5239 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5240 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5241 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5242 :
5243 : #define CNB_ENABLED 1
5244 : #define SFB_ENABLED 1
5245 :
5246 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5247 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5248 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5249 :
5250 : #define SUA_ENABLED 1
5251 :
5252 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5253 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5254 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5255 :
5256 : #define CHA_ENABLED 1
5257 :
5258 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5259 :
5260 : #define IK_ENABLED 1
5261 :
5262 : #if IK5_ENABLED
5263 100 : module procedure hemm_EXP_CHA_SUA_CNB_SFB_IK5
5264 : use pm_kind, only: IKC => IK5
5265 : #include "pm_matrixMulAdd@routines.inc.F90"
5266 : end procedure
5267 : #endif
5268 :
5269 : #if IK4_ENABLED
5270 100 : module procedure hemm_EXP_CHA_SUA_CNB_SFB_IK4
5271 : use pm_kind, only: IKC => IK4
5272 : #include "pm_matrixMulAdd@routines.inc.F90"
5273 : end procedure
5274 : #endif
5275 :
5276 : #if IK3_ENABLED
5277 100 : module procedure hemm_EXP_CHA_SUA_CNB_SFB_IK3
5278 : use pm_kind, only: IKC => IK3
5279 : #include "pm_matrixMulAdd@routines.inc.F90"
5280 : end procedure
5281 : #endif
5282 :
5283 : #if IK2_ENABLED
5284 100 : module procedure hemm_EXP_CHA_SUA_CNB_SFB_IK2
5285 : use pm_kind, only: IKC => IK2
5286 : #include "pm_matrixMulAdd@routines.inc.F90"
5287 : end procedure
5288 : #endif
5289 :
5290 : #if IK1_ENABLED
5291 100 : module procedure hemm_EXP_CHA_SUA_CNB_SFB_IK1
5292 : use pm_kind, only: IKC => IK1
5293 : #include "pm_matrixMulAdd@routines.inc.F90"
5294 : end procedure
5295 : #endif
5296 :
5297 : #undef IK_ENABLED
5298 :
5299 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5300 :
5301 : #define CK_ENABLED 1
5302 :
5303 : #if CK5_ENABLED
5304 : module procedure hemm_EXP_CHA_SUA_CNB_SFB_CK5
5305 : use pm_kind, only: CKC => CK5
5306 : #include "pm_matrixMulAdd@routines.inc.F90"
5307 : end procedure
5308 : #endif
5309 :
5310 : #if CK4_ENABLED
5311 100 : module procedure hemm_EXP_CHA_SUA_CNB_SFB_CK4
5312 : use pm_kind, only: CKC => CK4
5313 : #include "pm_matrixMulAdd@routines.inc.F90"
5314 : end procedure
5315 : #endif
5316 :
5317 : #if CK3_ENABLED
5318 100 : module procedure hemm_EXP_CHA_SUA_CNB_SFB_CK3
5319 : use pm_kind, only: CKC => CK3
5320 : #include "pm_matrixMulAdd@routines.inc.F90"
5321 : end procedure
5322 : #endif
5323 :
5324 : #if CK2_ENABLED
5325 100 : module procedure hemm_EXP_CHA_SUA_CNB_SFB_CK2
5326 : use pm_kind, only: CKC => CK2
5327 : #include "pm_matrixMulAdd@routines.inc.F90"
5328 : end procedure
5329 : #endif
5330 :
5331 : #if CK1_ENABLED
5332 100 : module procedure hemm_EXP_CHA_SUA_CNB_SFB_CK1
5333 : use pm_kind, only: CKC => CK1
5334 : #include "pm_matrixMulAdd@routines.inc.F90"
5335 : end procedure
5336 : #endif
5337 :
5338 : #undef CK_ENABLED
5339 :
5340 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5341 :
5342 : #define RK_ENABLED 1
5343 :
5344 : #if RK5_ENABLED
5345 : module procedure hemm_EXP_CHA_SUA_CNB_SFB_RK5
5346 : use pm_kind, only: RKC => RK5
5347 : #include "pm_matrixMulAdd@routines.inc.F90"
5348 : end procedure
5349 : #endif
5350 :
5351 : #if RK4_ENABLED
5352 100 : module procedure hemm_EXP_CHA_SUA_CNB_SFB_RK4
5353 : use pm_kind, only: RKC => RK4
5354 : #include "pm_matrixMulAdd@routines.inc.F90"
5355 : end procedure
5356 : #endif
5357 :
5358 : #if RK3_ENABLED
5359 100 : module procedure hemm_EXP_CHA_SUA_CNB_SFB_RK3
5360 : use pm_kind, only: RKC => RK3
5361 : #include "pm_matrixMulAdd@routines.inc.F90"
5362 : end procedure
5363 : #endif
5364 :
5365 : #if RK2_ENABLED
5366 100 : module procedure hemm_EXP_CHA_SUA_CNB_SFB_RK2
5367 : use pm_kind, only: RKC => RK2
5368 : #include "pm_matrixMulAdd@routines.inc.F90"
5369 : end procedure
5370 : #endif
5371 :
5372 : #if RK1_ENABLED
5373 100 : module procedure hemm_EXP_CHA_SUA_CNB_SFB_RK1
5374 : use pm_kind, only: RKC => RK1
5375 : #include "pm_matrixMulAdd@routines.inc.F90"
5376 : end procedure
5377 : #endif
5378 :
5379 : #undef RK_ENABLED
5380 :
5381 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5382 :
5383 : #undef CHA_ENABLED
5384 :
5385 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5386 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5387 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5388 :
5389 : #undef SUA_ENABLED
5390 :
5391 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5392 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5393 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5394 :
5395 : #define SLA_ENABLED 1
5396 :
5397 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5398 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5399 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5400 :
5401 : #define CHA_ENABLED 1
5402 :
5403 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5404 :
5405 : #define IK_ENABLED 1
5406 :
5407 : #if IK5_ENABLED
5408 100 : module procedure hemm_EXP_CHA_SLA_CNB_SFB_IK5
5409 : use pm_kind, only: IKC => IK5
5410 : #include "pm_matrixMulAdd@routines.inc.F90"
5411 : end procedure
5412 : #endif
5413 :
5414 : #if IK4_ENABLED
5415 100 : module procedure hemm_EXP_CHA_SLA_CNB_SFB_IK4
5416 : use pm_kind, only: IKC => IK4
5417 : #include "pm_matrixMulAdd@routines.inc.F90"
5418 : end procedure
5419 : #endif
5420 :
5421 : #if IK3_ENABLED
5422 100 : module procedure hemm_EXP_CHA_SLA_CNB_SFB_IK3
5423 : use pm_kind, only: IKC => IK3
5424 : #include "pm_matrixMulAdd@routines.inc.F90"
5425 : end procedure
5426 : #endif
5427 :
5428 : #if IK2_ENABLED
5429 100 : module procedure hemm_EXP_CHA_SLA_CNB_SFB_IK2
5430 : use pm_kind, only: IKC => IK2
5431 : #include "pm_matrixMulAdd@routines.inc.F90"
5432 : end procedure
5433 : #endif
5434 :
5435 : #if IK1_ENABLED
5436 100 : module procedure hemm_EXP_CHA_SLA_CNB_SFB_IK1
5437 : use pm_kind, only: IKC => IK1
5438 : #include "pm_matrixMulAdd@routines.inc.F90"
5439 : end procedure
5440 : #endif
5441 :
5442 : #undef IK_ENABLED
5443 :
5444 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5445 :
5446 : #define CK_ENABLED 1
5447 :
5448 : #if CK5_ENABLED
5449 : module procedure hemm_EXP_CHA_SLA_CNB_SFB_CK5
5450 : use pm_kind, only: CKC => CK5
5451 : #include "pm_matrixMulAdd@routines.inc.F90"
5452 : end procedure
5453 : #endif
5454 :
5455 : #if CK4_ENABLED
5456 100 : module procedure hemm_EXP_CHA_SLA_CNB_SFB_CK4
5457 : use pm_kind, only: CKC => CK4
5458 : #include "pm_matrixMulAdd@routines.inc.F90"
5459 : end procedure
5460 : #endif
5461 :
5462 : #if CK3_ENABLED
5463 100 : module procedure hemm_EXP_CHA_SLA_CNB_SFB_CK3
5464 : use pm_kind, only: CKC => CK3
5465 : #include "pm_matrixMulAdd@routines.inc.F90"
5466 : end procedure
5467 : #endif
5468 :
5469 : #if CK2_ENABLED
5470 100 : module procedure hemm_EXP_CHA_SLA_CNB_SFB_CK2
5471 : use pm_kind, only: CKC => CK2
5472 : #include "pm_matrixMulAdd@routines.inc.F90"
5473 : end procedure
5474 : #endif
5475 :
5476 : #if CK1_ENABLED
5477 100 : module procedure hemm_EXP_CHA_SLA_CNB_SFB_CK1
5478 : use pm_kind, only: CKC => CK1
5479 : #include "pm_matrixMulAdd@routines.inc.F90"
5480 : end procedure
5481 : #endif
5482 :
5483 : #undef CK_ENABLED
5484 :
5485 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5486 :
5487 : #define RK_ENABLED 1
5488 :
5489 : #if RK5_ENABLED
5490 : module procedure hemm_EXP_CHA_SLA_CNB_SFB_RK5
5491 : use pm_kind, only: RKC => RK5
5492 : #include "pm_matrixMulAdd@routines.inc.F90"
5493 : end procedure
5494 : #endif
5495 :
5496 : #if RK4_ENABLED
5497 100 : module procedure hemm_EXP_CHA_SLA_CNB_SFB_RK4
5498 : use pm_kind, only: RKC => RK4
5499 : #include "pm_matrixMulAdd@routines.inc.F90"
5500 : end procedure
5501 : #endif
5502 :
5503 : #if RK3_ENABLED
5504 100 : module procedure hemm_EXP_CHA_SLA_CNB_SFB_RK3
5505 : use pm_kind, only: RKC => RK3
5506 : #include "pm_matrixMulAdd@routines.inc.F90"
5507 : end procedure
5508 : #endif
5509 :
5510 : #if RK2_ENABLED
5511 100 : module procedure hemm_EXP_CHA_SLA_CNB_SFB_RK2
5512 : use pm_kind, only: RKC => RK2
5513 : #include "pm_matrixMulAdd@routines.inc.F90"
5514 : end procedure
5515 : #endif
5516 :
5517 : #if RK1_ENABLED
5518 100 : module procedure hemm_EXP_CHA_SLA_CNB_SFB_RK1
5519 : use pm_kind, only: RKC => RK1
5520 : #include "pm_matrixMulAdd@routines.inc.F90"
5521 : end procedure
5522 : #endif
5523 :
5524 : #undef RK_ENABLED
5525 :
5526 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5527 :
5528 : #undef CHA_ENABLED
5529 :
5530 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5531 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5532 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5533 :
5534 : #undef SLA_ENABLED
5535 :
5536 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5537 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5538 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5539 :
5540 : #undef CNB_ENABLED
5541 : #undef SFB_ENABLED
5542 :
5543 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5544 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5545 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5546 :
5547 : #define CNA_ENABLED 1
5548 : #define SFA_ENABLED 1
5549 :
5550 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5551 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5552 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5553 :
5554 : #define SUB_ENABLED 1
5555 :
5556 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5557 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5558 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5559 :
5560 : #define CHB_ENABLED 1
5561 :
5562 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5563 :
5564 : #define IK_ENABLED 1
5565 :
5566 : #if IK5_ENABLED
5567 100 : module procedure hemm_EXP_CNA_SFA_CHB_SUB_IK5
5568 : use pm_kind, only: IKC => IK5
5569 : #include "pm_matrixMulAdd@routines.inc.F90"
5570 : end procedure
5571 : #endif
5572 :
5573 : #if IK4_ENABLED
5574 100 : module procedure hemm_EXP_CNA_SFA_CHB_SUB_IK4
5575 : use pm_kind, only: IKC => IK4
5576 : #include "pm_matrixMulAdd@routines.inc.F90"
5577 : end procedure
5578 : #endif
5579 :
5580 : #if IK3_ENABLED
5581 100 : module procedure hemm_EXP_CNA_SFA_CHB_SUB_IK3
5582 : use pm_kind, only: IKC => IK3
5583 : #include "pm_matrixMulAdd@routines.inc.F90"
5584 : end procedure
5585 : #endif
5586 :
5587 : #if IK2_ENABLED
5588 100 : module procedure hemm_EXP_CNA_SFA_CHB_SUB_IK2
5589 : use pm_kind, only: IKC => IK2
5590 : #include "pm_matrixMulAdd@routines.inc.F90"
5591 : end procedure
5592 : #endif
5593 :
5594 : #if IK1_ENABLED
5595 100 : module procedure hemm_EXP_CNA_SFA_CHB_SUB_IK1
5596 : use pm_kind, only: IKC => IK1
5597 : #include "pm_matrixMulAdd@routines.inc.F90"
5598 : end procedure
5599 : #endif
5600 :
5601 : #undef IK_ENABLED
5602 :
5603 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5604 :
5605 : #define CK_ENABLED 1
5606 :
5607 : #if CK5_ENABLED
5608 : module procedure hemm_EXP_CNA_SFA_CHB_SUB_CK5
5609 : use pm_kind, only: CKC => CK5
5610 : #include "pm_matrixMulAdd@routines.inc.F90"
5611 : end procedure
5612 : #endif
5613 :
5614 : #if CK4_ENABLED
5615 100 : module procedure hemm_EXP_CNA_SFA_CHB_SUB_CK4
5616 : use pm_kind, only: CKC => CK4
5617 : #include "pm_matrixMulAdd@routines.inc.F90"
5618 : end procedure
5619 : #endif
5620 :
5621 : #if CK3_ENABLED
5622 100 : module procedure hemm_EXP_CNA_SFA_CHB_SUB_CK3
5623 : use pm_kind, only: CKC => CK3
5624 : #include "pm_matrixMulAdd@routines.inc.F90"
5625 : end procedure
5626 : #endif
5627 :
5628 : #if CK2_ENABLED
5629 100 : module procedure hemm_EXP_CNA_SFA_CHB_SUB_CK2
5630 : use pm_kind, only: CKC => CK2
5631 : #include "pm_matrixMulAdd@routines.inc.F90"
5632 : end procedure
5633 : #endif
5634 :
5635 : #if CK1_ENABLED
5636 100 : module procedure hemm_EXP_CNA_SFA_CHB_SUB_CK1
5637 : use pm_kind, only: CKC => CK1
5638 : #include "pm_matrixMulAdd@routines.inc.F90"
5639 : end procedure
5640 : #endif
5641 :
5642 : #undef CK_ENABLED
5643 :
5644 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5645 :
5646 : #define RK_ENABLED 1
5647 :
5648 : #if RK5_ENABLED
5649 : module procedure hemm_EXP_CNA_SFA_CHB_SUB_RK5
5650 : use pm_kind, only: RKC => RK5
5651 : #include "pm_matrixMulAdd@routines.inc.F90"
5652 : end procedure
5653 : #endif
5654 :
5655 : #if RK4_ENABLED
5656 100 : module procedure hemm_EXP_CNA_SFA_CHB_SUB_RK4
5657 : use pm_kind, only: RKC => RK4
5658 : #include "pm_matrixMulAdd@routines.inc.F90"
5659 : end procedure
5660 : #endif
5661 :
5662 : #if RK3_ENABLED
5663 100 : module procedure hemm_EXP_CNA_SFA_CHB_SUB_RK3
5664 : use pm_kind, only: RKC => RK3
5665 : #include "pm_matrixMulAdd@routines.inc.F90"
5666 : end procedure
5667 : #endif
5668 :
5669 : #if RK2_ENABLED
5670 100 : module procedure hemm_EXP_CNA_SFA_CHB_SUB_RK2
5671 : use pm_kind, only: RKC => RK2
5672 : #include "pm_matrixMulAdd@routines.inc.F90"
5673 : end procedure
5674 : #endif
5675 :
5676 : #if RK1_ENABLED
5677 100 : module procedure hemm_EXP_CNA_SFA_CHB_SUB_RK1
5678 : use pm_kind, only: RKC => RK1
5679 : #include "pm_matrixMulAdd@routines.inc.F90"
5680 : end procedure
5681 : #endif
5682 :
5683 : #undef RK_ENABLED
5684 :
5685 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5686 :
5687 : #undef CHB_ENABLED
5688 :
5689 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5690 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5691 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5692 :
5693 : #undef SUB_ENABLED
5694 :
5695 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5696 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5697 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5698 :
5699 : #define SLB_ENABLED 1
5700 :
5701 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5702 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5703 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5704 :
5705 : #define CHB_ENABLED 1
5706 :
5707 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5708 :
5709 : #define IK_ENABLED 1
5710 :
5711 : #if IK5_ENABLED
5712 100 : module procedure hemm_EXP_CNA_SFA_CHB_SLB_IK5
5713 : use pm_kind, only: IKC => IK5
5714 : #include "pm_matrixMulAdd@routines.inc.F90"
5715 : end procedure
5716 : #endif
5717 :
5718 : #if IK4_ENABLED
5719 100 : module procedure hemm_EXP_CNA_SFA_CHB_SLB_IK4
5720 : use pm_kind, only: IKC => IK4
5721 : #include "pm_matrixMulAdd@routines.inc.F90"
5722 : end procedure
5723 : #endif
5724 :
5725 : #if IK3_ENABLED
5726 100 : module procedure hemm_EXP_CNA_SFA_CHB_SLB_IK3
5727 : use pm_kind, only: IKC => IK3
5728 : #include "pm_matrixMulAdd@routines.inc.F90"
5729 : end procedure
5730 : #endif
5731 :
5732 : #if IK2_ENABLED
5733 100 : module procedure hemm_EXP_CNA_SFA_CHB_SLB_IK2
5734 : use pm_kind, only: IKC => IK2
5735 : #include "pm_matrixMulAdd@routines.inc.F90"
5736 : end procedure
5737 : #endif
5738 :
5739 : #if IK1_ENABLED
5740 100 : module procedure hemm_EXP_CNA_SFA_CHB_SLB_IK1
5741 : use pm_kind, only: IKC => IK1
5742 : #include "pm_matrixMulAdd@routines.inc.F90"
5743 : end procedure
5744 : #endif
5745 :
5746 : #undef IK_ENABLED
5747 :
5748 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5749 :
5750 : #define CK_ENABLED 1
5751 :
5752 : #if CK5_ENABLED
5753 : module procedure hemm_EXP_CNA_SFA_CHB_SLB_CK5
5754 : use pm_kind, only: CKC => CK5
5755 : #include "pm_matrixMulAdd@routines.inc.F90"
5756 : end procedure
5757 : #endif
5758 :
5759 : #if CK4_ENABLED
5760 100 : module procedure hemm_EXP_CNA_SFA_CHB_SLB_CK4
5761 : use pm_kind, only: CKC => CK4
5762 : #include "pm_matrixMulAdd@routines.inc.F90"
5763 : end procedure
5764 : #endif
5765 :
5766 : #if CK3_ENABLED
5767 100 : module procedure hemm_EXP_CNA_SFA_CHB_SLB_CK3
5768 : use pm_kind, only: CKC => CK3
5769 : #include "pm_matrixMulAdd@routines.inc.F90"
5770 : end procedure
5771 : #endif
5772 :
5773 : #if CK2_ENABLED
5774 100 : module procedure hemm_EXP_CNA_SFA_CHB_SLB_CK2
5775 : use pm_kind, only: CKC => CK2
5776 : #include "pm_matrixMulAdd@routines.inc.F90"
5777 : end procedure
5778 : #endif
5779 :
5780 : #if CK1_ENABLED
5781 101 : module procedure hemm_EXP_CNA_SFA_CHB_SLB_CK1
5782 : use pm_kind, only: CKC => CK1
5783 : #include "pm_matrixMulAdd@routines.inc.F90"
5784 : end procedure
5785 : #endif
5786 :
5787 : #undef CK_ENABLED
5788 :
5789 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5790 :
5791 : #define RK_ENABLED 1
5792 :
5793 : #if RK5_ENABLED
5794 : module procedure hemm_EXP_CNA_SFA_CHB_SLB_RK5
5795 : use pm_kind, only: RKC => RK5
5796 : #include "pm_matrixMulAdd@routines.inc.F90"
5797 : end procedure
5798 : #endif
5799 :
5800 : #if RK4_ENABLED
5801 100 : module procedure hemm_EXP_CNA_SFA_CHB_SLB_RK4
5802 : use pm_kind, only: RKC => RK4
5803 : #include "pm_matrixMulAdd@routines.inc.F90"
5804 : end procedure
5805 : #endif
5806 :
5807 : #if RK3_ENABLED
5808 100 : module procedure hemm_EXP_CNA_SFA_CHB_SLB_RK3
5809 : use pm_kind, only: RKC => RK3
5810 : #include "pm_matrixMulAdd@routines.inc.F90"
5811 : end procedure
5812 : #endif
5813 :
5814 : #if RK2_ENABLED
5815 100 : module procedure hemm_EXP_CNA_SFA_CHB_SLB_RK2
5816 : use pm_kind, only: RKC => RK2
5817 : #include "pm_matrixMulAdd@routines.inc.F90"
5818 : end procedure
5819 : #endif
5820 :
5821 : #if RK1_ENABLED
5822 100 : module procedure hemm_EXP_CNA_SFA_CHB_SLB_RK1
5823 : use pm_kind, only: RKC => RK1
5824 : #include "pm_matrixMulAdd@routines.inc.F90"
5825 : end procedure
5826 : #endif
5827 :
5828 : #undef RK_ENABLED
5829 :
5830 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5831 :
5832 : #undef CHB_ENABLED
5833 :
5834 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5835 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5836 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5837 :
5838 : #undef SLB_ENABLED
5839 :
5840 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5841 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5842 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5843 :
5844 : #undef CNA_ENABLED
5845 : #undef SFA_ENABLED
5846 :
5847 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5848 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5849 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5850 :
5851 : #undef EXP_ENABLED
5852 :
5853 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5854 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5855 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5856 :
5857 : #undef hemm_ENABLED
5858 :
5859 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5860 :
5861 : #define gemm_ENABLED 1
5862 :
5863 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5864 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5865 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5866 :
5867 : #define SFA_ENABLED 1
5868 : #define SFB_ENABLED 1
5869 :
5870 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5871 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5872 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5873 :
5874 : #define ASS_ENABLED 1
5875 :
5876 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5877 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5878 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5879 :
5880 : #define TNB_ENABLED 1
5881 :
5882 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5883 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5884 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5885 :
5886 : #define TNA_ENABLED 1
5887 :
5888 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5889 :
5890 : #define IK_ENABLED 1
5891 :
5892 : #if IK5_ENABLED
5893 130 : module procedure gemm_ASS_SFA_SFB_TNA_TNB_IK5
5894 : use pm_kind, only: IKC => IK5
5895 : #include "pm_matrixMulAdd@routines.inc.F90"
5896 : end procedure
5897 : #endif
5898 :
5899 : #if IK4_ENABLED
5900 139 : module procedure gemm_ASS_SFA_SFB_TNA_TNB_IK4
5901 : use pm_kind, only: IKC => IK4
5902 : #include "pm_matrixMulAdd@routines.inc.F90"
5903 : end procedure
5904 : #endif
5905 :
5906 : #if IK3_ENABLED
5907 134 : module procedure gemm_ASS_SFA_SFB_TNA_TNB_IK3
5908 : use pm_kind, only: IKC => IK3
5909 : #include "pm_matrixMulAdd@routines.inc.F90"
5910 : end procedure
5911 : #endif
5912 :
5913 : #if IK2_ENABLED
5914 117 : module procedure gemm_ASS_SFA_SFB_TNA_TNB_IK2
5915 : use pm_kind, only: IKC => IK2
5916 : #include "pm_matrixMulAdd@routines.inc.F90"
5917 : end procedure
5918 : #endif
5919 :
5920 : #if IK1_ENABLED
5921 151 : module procedure gemm_ASS_SFA_SFB_TNA_TNB_IK1
5922 : use pm_kind, only: IKC => IK1
5923 : #include "pm_matrixMulAdd@routines.inc.F90"
5924 : end procedure
5925 : #endif
5926 :
5927 : #undef IK_ENABLED
5928 :
5929 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5930 :
5931 : #define CK_ENABLED 1
5932 :
5933 : #if CK5_ENABLED
5934 : module procedure gemm_ASS_SFA_SFB_TNA_TNB_CK5
5935 : use pm_kind, only: CKC => CK5
5936 : #include "pm_matrixMulAdd@routines.inc.F90"
5937 : end procedure
5938 : #endif
5939 :
5940 : #if CK4_ENABLED
5941 139 : module procedure gemm_ASS_SFA_SFB_TNA_TNB_CK4
5942 : use pm_kind, only: CKC => CK4
5943 : #include "pm_matrixMulAdd@routines.inc.F90"
5944 : end procedure
5945 : #endif
5946 :
5947 : #if CK3_ENABLED
5948 148 : module procedure gemm_ASS_SFA_SFB_TNA_TNB_CK3
5949 : use pm_kind, only: CKC => CK3
5950 : #include "pm_matrixMulAdd@routines.inc.F90"
5951 : end procedure
5952 : #endif
5953 :
5954 : #if CK2_ENABLED
5955 141 : module procedure gemm_ASS_SFA_SFB_TNA_TNB_CK2
5956 : use pm_kind, only: CKC => CK2
5957 : #define DISPATCH_ENABLED 1
5958 : #include "pm_matrixMulAdd@routines.inc.F90"
5959 : #undef DISPATCH_ENABLED
5960 : end procedure
5961 : #endif
5962 :
5963 : #if CK1_ENABLED
5964 153 : module procedure gemm_ASS_SFA_SFB_TNA_TNB_CK1
5965 : use pm_kind, only: CKC => CK1
5966 : #define DISPATCH_ENABLED 1
5967 : #include "pm_matrixMulAdd@routines.inc.F90"
5968 : #undef DISPATCH_ENABLED
5969 : end procedure
5970 : #endif
5971 :
5972 : #undef CK_ENABLED
5973 :
5974 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5975 :
5976 : #define RK_ENABLED 1
5977 :
5978 : #if RK5_ENABLED
5979 : module procedure gemm_ASS_SFA_SFB_TNA_TNB_RK5
5980 : use pm_kind, only: RKC => RK5
5981 : #include "pm_matrixMulAdd@routines.inc.F90"
5982 : end procedure
5983 : #endif
5984 :
5985 : #if RK4_ENABLED
5986 128 : module procedure gemm_ASS_SFA_SFB_TNA_TNB_RK4
5987 : use pm_kind, only: RKC => RK4
5988 : #include "pm_matrixMulAdd@routines.inc.F90"
5989 : end procedure
5990 : #endif
5991 :
5992 : #if RK3_ENABLED
5993 143 : module procedure gemm_ASS_SFA_SFB_TNA_TNB_RK3
5994 : use pm_kind, only: RKC => RK3
5995 : #include "pm_matrixMulAdd@routines.inc.F90"
5996 : end procedure
5997 : #endif
5998 :
5999 : #if RK2_ENABLED
6000 128 : module procedure gemm_ASS_SFA_SFB_TNA_TNB_RK2
6001 : use pm_kind, only: RKC => RK2
6002 : #define DISPATCH_ENABLED 1
6003 : #include "pm_matrixMulAdd@routines.inc.F90"
6004 : #undef DISPATCH_ENABLED
6005 : end procedure
6006 : #endif
6007 :
6008 : #if RK1_ENABLED
6009 145 : module procedure gemm_ASS_SFA_SFB_TNA_TNB_RK1
6010 : use pm_kind, only: RKC => RK1
6011 : #define DISPATCH_ENABLED 1
6012 : #include "pm_matrixMulAdd@routines.inc.F90"
6013 : #undef DISPATCH_ENABLED
6014 : end procedure
6015 : #endif
6016 :
6017 : #undef RK_ENABLED
6018 :
6019 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6020 :
6021 : #undef TNA_ENABLED
6022 : #undef TNB_ENABLED
6023 :
6024 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6025 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6026 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6027 :
6028 : #define TSA_ENABLED 1
6029 : #define TNB_ENABLED 1
6030 :
6031 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6032 :
6033 : #define IK_ENABLED 1
6034 :
6035 : #if IK5_ENABLED
6036 130 : module procedure gemm_ASS_SFA_SFB_TSA_TNB_IK5
6037 : use pm_kind, only: IKC => IK5
6038 : #include "pm_matrixMulAdd@routines.inc.F90"
6039 : end procedure
6040 : #endif
6041 :
6042 : #if IK4_ENABLED
6043 139 : module procedure gemm_ASS_SFA_SFB_TSA_TNB_IK4
6044 : use pm_kind, only: IKC => IK4
6045 : #include "pm_matrixMulAdd@routines.inc.F90"
6046 : end procedure
6047 : #endif
6048 :
6049 : #if IK3_ENABLED
6050 134 : module procedure gemm_ASS_SFA_SFB_TSA_TNB_IK3
6051 : use pm_kind, only: IKC => IK3
6052 : #include "pm_matrixMulAdd@routines.inc.F90"
6053 : end procedure
6054 : #endif
6055 :
6056 : #if IK2_ENABLED
6057 117 : module procedure gemm_ASS_SFA_SFB_TSA_TNB_IK2
6058 : use pm_kind, only: IKC => IK2
6059 : #include "pm_matrixMulAdd@routines.inc.F90"
6060 : end procedure
6061 : #endif
6062 :
6063 : #if IK1_ENABLED
6064 151 : module procedure gemm_ASS_SFA_SFB_TSA_TNB_IK1
6065 : use pm_kind, only: IKC => IK1
6066 : #include "pm_matrixMulAdd@routines.inc.F90"
6067 : end procedure
6068 : #endif
6069 :
6070 : #undef IK_ENABLED
6071 :
6072 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6073 :
6074 : #define CK_ENABLED 1
6075 :
6076 : #if CK5_ENABLED
6077 : module procedure gemm_ASS_SFA_SFB_TSA_TNB_CK5
6078 : use pm_kind, only: CKC => CK5
6079 : #include "pm_matrixMulAdd@routines.inc.F90"
6080 : end procedure
6081 : #endif
6082 :
6083 : #if CK4_ENABLED
6084 139 : module procedure gemm_ASS_SFA_SFB_TSA_TNB_CK4
6085 : use pm_kind, only: CKC => CK4
6086 : #include "pm_matrixMulAdd@routines.inc.F90"
6087 : end procedure
6088 : #endif
6089 :
6090 : #if CK3_ENABLED
6091 148 : module procedure gemm_ASS_SFA_SFB_TSA_TNB_CK3
6092 : use pm_kind, only: CKC => CK3
6093 : #include "pm_matrixMulAdd@routines.inc.F90"
6094 : end procedure
6095 : #endif
6096 :
6097 : #if CK2_ENABLED
6098 141 : module procedure gemm_ASS_SFA_SFB_TSA_TNB_CK2
6099 : use pm_kind, only: CKC => CK2
6100 : #define DISPATCH_ENABLED 1
6101 : #include "pm_matrixMulAdd@routines.inc.F90"
6102 : #undef DISPATCH_ENABLED
6103 : end procedure
6104 : #endif
6105 :
6106 : #if CK1_ENABLED
6107 152 : module procedure gemm_ASS_SFA_SFB_TSA_TNB_CK1
6108 : use pm_kind, only: CKC => CK1
6109 : #define DISPATCH_ENABLED 1
6110 : #include "pm_matrixMulAdd@routines.inc.F90"
6111 : #undef DISPATCH_ENABLED
6112 : end procedure
6113 : #endif
6114 :
6115 : #undef CK_ENABLED
6116 :
6117 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6118 :
6119 : #define RK_ENABLED 1
6120 :
6121 : #if RK5_ENABLED
6122 : module procedure gemm_ASS_SFA_SFB_TSA_TNB_RK5
6123 : use pm_kind, only: RKC => RK5
6124 : #include "pm_matrixMulAdd@routines.inc.F90"
6125 : end procedure
6126 : #endif
6127 :
6128 : #if RK4_ENABLED
6129 128 : module procedure gemm_ASS_SFA_SFB_TSA_TNB_RK4
6130 : use pm_kind, only: RKC => RK4
6131 : #include "pm_matrixMulAdd@routines.inc.F90"
6132 : end procedure
6133 : #endif
6134 :
6135 : #if RK3_ENABLED
6136 143 : module procedure gemm_ASS_SFA_SFB_TSA_TNB_RK3
6137 : use pm_kind, only: RKC => RK3
6138 : #include "pm_matrixMulAdd@routines.inc.F90"
6139 : end procedure
6140 : #endif
6141 :
6142 : #if RK2_ENABLED
6143 128 : module procedure gemm_ASS_SFA_SFB_TSA_TNB_RK2
6144 : use pm_kind, only: RKC => RK2
6145 : #define DISPATCH_ENABLED 1
6146 : #include "pm_matrixMulAdd@routines.inc.F90"
6147 : #undef DISPATCH_ENABLED
6148 : end procedure
6149 : #endif
6150 :
6151 : #if RK1_ENABLED
6152 145 : module procedure gemm_ASS_SFA_SFB_TSA_TNB_RK1
6153 : use pm_kind, only: RKC => RK1
6154 : #define DISPATCH_ENABLED 1
6155 : #include "pm_matrixMulAdd@routines.inc.F90"
6156 : #undef DISPATCH_ENABLED
6157 : end procedure
6158 : #endif
6159 :
6160 : #undef RK_ENABLED
6161 :
6162 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6163 :
6164 : #undef TSA_ENABLED
6165 : #undef TNB_ENABLED
6166 :
6167 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6168 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6169 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6170 :
6171 : #define THA_ENABLED 1
6172 : #define TNB_ENABLED 1
6173 :
6174 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6175 :
6176 : #define IK_ENABLED 1
6177 :
6178 : #if IK5_ENABLED
6179 130 : module procedure gemm_ASS_SFA_SFB_THA_TNB_IK5
6180 : use pm_kind, only: IKC => IK5
6181 : #include "pm_matrixMulAdd@routines.inc.F90"
6182 : end procedure
6183 : #endif
6184 :
6185 : #if IK4_ENABLED
6186 139 : module procedure gemm_ASS_SFA_SFB_THA_TNB_IK4
6187 : use pm_kind, only: IKC => IK4
6188 : #include "pm_matrixMulAdd@routines.inc.F90"
6189 : end procedure
6190 : #endif
6191 :
6192 : #if IK3_ENABLED
6193 133 : module procedure gemm_ASS_SFA_SFB_THA_TNB_IK3
6194 : use pm_kind, only: IKC => IK3
6195 : #include "pm_matrixMulAdd@routines.inc.F90"
6196 : end procedure
6197 : #endif
6198 :
6199 : #if IK2_ENABLED
6200 117 : module procedure gemm_ASS_SFA_SFB_THA_TNB_IK2
6201 : use pm_kind, only: IKC => IK2
6202 : #include "pm_matrixMulAdd@routines.inc.F90"
6203 : end procedure
6204 : #endif
6205 :
6206 : #if IK1_ENABLED
6207 151 : module procedure gemm_ASS_SFA_SFB_THA_TNB_IK1
6208 : use pm_kind, only: IKC => IK1
6209 : #include "pm_matrixMulAdd@routines.inc.F90"
6210 : end procedure
6211 : #endif
6212 :
6213 : #undef IK_ENABLED
6214 :
6215 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6216 :
6217 : #define CK_ENABLED 1
6218 :
6219 : #if CK5_ENABLED
6220 : module procedure gemm_ASS_SFA_SFB_THA_TNB_CK5
6221 : use pm_kind, only: CKC => CK5
6222 : #include "pm_matrixMulAdd@routines.inc.F90"
6223 : end procedure
6224 : #endif
6225 :
6226 : #if CK4_ENABLED
6227 139 : module procedure gemm_ASS_SFA_SFB_THA_TNB_CK4
6228 : use pm_kind, only: CKC => CK4
6229 : #include "pm_matrixMulAdd@routines.inc.F90"
6230 : end procedure
6231 : #endif
6232 :
6233 : #if CK3_ENABLED
6234 148 : module procedure gemm_ASS_SFA_SFB_THA_TNB_CK3
6235 : use pm_kind, only: CKC => CK3
6236 : #include "pm_matrixMulAdd@routines.inc.F90"
6237 : end procedure
6238 : #endif
6239 :
6240 : #if CK2_ENABLED
6241 141 : module procedure gemm_ASS_SFA_SFB_THA_TNB_CK2
6242 : use pm_kind, only: CKC => CK2
6243 : #define DISPATCH_ENABLED 1
6244 : #include "pm_matrixMulAdd@routines.inc.F90"
6245 : #undef DISPATCH_ENABLED
6246 : end procedure
6247 : #endif
6248 :
6249 : #if CK1_ENABLED
6250 153 : module procedure gemm_ASS_SFA_SFB_THA_TNB_CK1
6251 : use pm_kind, only: CKC => CK1
6252 : #define DISPATCH_ENABLED 1
6253 : #include "pm_matrixMulAdd@routines.inc.F90"
6254 : #undef DISPATCH_ENABLED
6255 : end procedure
6256 : #endif
6257 :
6258 : #undef CK_ENABLED
6259 :
6260 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6261 :
6262 : #define RK_ENABLED 1
6263 :
6264 : #if RK5_ENABLED
6265 : module procedure gemm_ASS_SFA_SFB_THA_TNB_RK5
6266 : use pm_kind, only: RKC => RK5
6267 : #include "pm_matrixMulAdd@routines.inc.F90"
6268 : end procedure
6269 : #endif
6270 :
6271 : #if RK4_ENABLED
6272 128 : module procedure gemm_ASS_SFA_SFB_THA_TNB_RK4
6273 : use pm_kind, only: RKC => RK4
6274 : #include "pm_matrixMulAdd@routines.inc.F90"
6275 : end procedure
6276 : #endif
6277 :
6278 : #if RK3_ENABLED
6279 143 : module procedure gemm_ASS_SFA_SFB_THA_TNB_RK3
6280 : use pm_kind, only: RKC => RK3
6281 : #include "pm_matrixMulAdd@routines.inc.F90"
6282 : end procedure
6283 : #endif
6284 :
6285 : #if RK2_ENABLED
6286 128 : module procedure gemm_ASS_SFA_SFB_THA_TNB_RK2
6287 : use pm_kind, only: RKC => RK2
6288 : #define DISPATCH_ENABLED 1
6289 : #include "pm_matrixMulAdd@routines.inc.F90"
6290 : #undef DISPATCH_ENABLED
6291 : end procedure
6292 : #endif
6293 :
6294 : #if RK1_ENABLED
6295 145 : module procedure gemm_ASS_SFA_SFB_THA_TNB_RK1
6296 : use pm_kind, only: RKC => RK1
6297 : #define DISPATCH_ENABLED 1
6298 : #include "pm_matrixMulAdd@routines.inc.F90"
6299 : #undef DISPATCH_ENABLED
6300 : end procedure
6301 : #endif
6302 :
6303 : #undef RK_ENABLED
6304 :
6305 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6306 :
6307 : #undef THA_ENABLED
6308 :
6309 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6310 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6311 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6312 :
6313 : #undef TNB_ENABLED
6314 :
6315 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6316 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6317 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6318 :
6319 : #define TSB_ENABLED 1
6320 :
6321 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6322 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6323 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6324 :
6325 : #define TNA_ENABLED 1
6326 :
6327 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6328 :
6329 : #define IK_ENABLED 1
6330 :
6331 : #if IK5_ENABLED
6332 130 : module procedure gemm_ASS_SFA_SFB_TNA_TSB_IK5
6333 : use pm_kind, only: IKC => IK5
6334 : #include "pm_matrixMulAdd@routines.inc.F90"
6335 : end procedure
6336 : #endif
6337 :
6338 : #if IK4_ENABLED
6339 139 : module procedure gemm_ASS_SFA_SFB_TNA_TSB_IK4
6340 : use pm_kind, only: IKC => IK4
6341 : #include "pm_matrixMulAdd@routines.inc.F90"
6342 : end procedure
6343 : #endif
6344 :
6345 : #if IK3_ENABLED
6346 133 : module procedure gemm_ASS_SFA_SFB_TNA_TSB_IK3
6347 : use pm_kind, only: IKC => IK3
6348 : #include "pm_matrixMulAdd@routines.inc.F90"
6349 : end procedure
6350 : #endif
6351 :
6352 : #if IK2_ENABLED
6353 117 : module procedure gemm_ASS_SFA_SFB_TNA_TSB_IK2
6354 : use pm_kind, only: IKC => IK2
6355 : #include "pm_matrixMulAdd@routines.inc.F90"
6356 : end procedure
6357 : #endif
6358 :
6359 : #if IK1_ENABLED
6360 151 : module procedure gemm_ASS_SFA_SFB_TNA_TSB_IK1
6361 : use pm_kind, only: IKC => IK1
6362 : #include "pm_matrixMulAdd@routines.inc.F90"
6363 : end procedure
6364 : #endif
6365 :
6366 : #undef IK_ENABLED
6367 :
6368 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6369 :
6370 : #define CK_ENABLED 1
6371 :
6372 : #if CK5_ENABLED
6373 : module procedure gemm_ASS_SFA_SFB_TNA_TSB_CK5
6374 : use pm_kind, only: CKC => CK5
6375 : #include "pm_matrixMulAdd@routines.inc.F90"
6376 : end procedure
6377 : #endif
6378 :
6379 : #if CK4_ENABLED
6380 139 : module procedure gemm_ASS_SFA_SFB_TNA_TSB_CK4
6381 : use pm_kind, only: CKC => CK4
6382 : #include "pm_matrixMulAdd@routines.inc.F90"
6383 : end procedure
6384 : #endif
6385 :
6386 : #if CK3_ENABLED
6387 148 : module procedure gemm_ASS_SFA_SFB_TNA_TSB_CK3
6388 : use pm_kind, only: CKC => CK3
6389 : #include "pm_matrixMulAdd@routines.inc.F90"
6390 : end procedure
6391 : #endif
6392 :
6393 : #if CK2_ENABLED
6394 141 : module procedure gemm_ASS_SFA_SFB_TNA_TSB_CK2
6395 : use pm_kind, only: CKC => CK2
6396 : #define DISPATCH_ENABLED 1
6397 : #include "pm_matrixMulAdd@routines.inc.F90"
6398 : #undef DISPATCH_ENABLED
6399 : end procedure
6400 : #endif
6401 :
6402 : #if CK1_ENABLED
6403 152 : module procedure gemm_ASS_SFA_SFB_TNA_TSB_CK1
6404 : use pm_kind, only: CKC => CK1
6405 : #define DISPATCH_ENABLED 1
6406 : #include "pm_matrixMulAdd@routines.inc.F90"
6407 : #undef DISPATCH_ENABLED
6408 : end procedure
6409 : #endif
6410 :
6411 : #undef CK_ENABLED
6412 :
6413 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6414 :
6415 : #define RK_ENABLED 1
6416 :
6417 : #if RK5_ENABLED
6418 : module procedure gemm_ASS_SFA_SFB_TNA_TSB_RK5
6419 : use pm_kind, only: RKC => RK5
6420 : #include "pm_matrixMulAdd@routines.inc.F90"
6421 : end procedure
6422 : #endif
6423 :
6424 : #if RK4_ENABLED
6425 128 : module procedure gemm_ASS_SFA_SFB_TNA_TSB_RK4
6426 : use pm_kind, only: RKC => RK4
6427 : #include "pm_matrixMulAdd@routines.inc.F90"
6428 : end procedure
6429 : #endif
6430 :
6431 : #if RK3_ENABLED
6432 143 : module procedure gemm_ASS_SFA_SFB_TNA_TSB_RK3
6433 : use pm_kind, only: RKC => RK3
6434 : #include "pm_matrixMulAdd@routines.inc.F90"
6435 : end procedure
6436 : #endif
6437 :
6438 : #if RK2_ENABLED
6439 128 : module procedure gemm_ASS_SFA_SFB_TNA_TSB_RK2
6440 : use pm_kind, only: RKC => RK2
6441 : #define DISPATCH_ENABLED 1
6442 : #include "pm_matrixMulAdd@routines.inc.F90"
6443 : #undef DISPATCH_ENABLED
6444 : end procedure
6445 : #endif
6446 :
6447 : #if RK1_ENABLED
6448 145 : module procedure gemm_ASS_SFA_SFB_TNA_TSB_RK1
6449 : use pm_kind, only: RKC => RK1
6450 : #define DISPATCH_ENABLED 1
6451 : #include "pm_matrixMulAdd@routines.inc.F90"
6452 : #undef DISPATCH_ENABLED
6453 : end procedure
6454 : #endif
6455 :
6456 : #undef RK_ENABLED
6457 :
6458 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6459 :
6460 : #undef TNA_ENABLED
6461 : #undef TSB_ENABLED
6462 :
6463 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6464 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6465 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6466 :
6467 : #define TSA_ENABLED 1
6468 : #define TSB_ENABLED 1
6469 :
6470 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6471 :
6472 : #define IK_ENABLED 1
6473 :
6474 : #if IK5_ENABLED
6475 130 : module procedure gemm_ASS_SFA_SFB_TSA_TSB_IK5
6476 : use pm_kind, only: IKC => IK5
6477 : #include "pm_matrixMulAdd@routines.inc.F90"
6478 : end procedure
6479 : #endif
6480 :
6481 : #if IK4_ENABLED
6482 139 : module procedure gemm_ASS_SFA_SFB_TSA_TSB_IK4
6483 : use pm_kind, only: IKC => IK4
6484 : #include "pm_matrixMulAdd@routines.inc.F90"
6485 : end procedure
6486 : #endif
6487 :
6488 : #if IK3_ENABLED
6489 133 : module procedure gemm_ASS_SFA_SFB_TSA_TSB_IK3
6490 : use pm_kind, only: IKC => IK3
6491 : #include "pm_matrixMulAdd@routines.inc.F90"
6492 : end procedure
6493 : #endif
6494 :
6495 : #if IK2_ENABLED
6496 117 : module procedure gemm_ASS_SFA_SFB_TSA_TSB_IK2
6497 : use pm_kind, only: IKC => IK2
6498 : #include "pm_matrixMulAdd@routines.inc.F90"
6499 : end procedure
6500 : #endif
6501 :
6502 : #if IK1_ENABLED
6503 151 : module procedure gemm_ASS_SFA_SFB_TSA_TSB_IK1
6504 : use pm_kind, only: IKC => IK1
6505 : #include "pm_matrixMulAdd@routines.inc.F90"
6506 : end procedure
6507 : #endif
6508 :
6509 : #undef IK_ENABLED
6510 :
6511 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6512 :
6513 : #define CK_ENABLED 1
6514 :
6515 : #if CK5_ENABLED
6516 : module procedure gemm_ASS_SFA_SFB_TSA_TSB_CK5
6517 : use pm_kind, only: CKC => CK5
6518 : #include "pm_matrixMulAdd@routines.inc.F90"
6519 : end procedure
6520 : #endif
6521 :
6522 : #if CK4_ENABLED
6523 139 : module procedure gemm_ASS_SFA_SFB_TSA_TSB_CK4
6524 : use pm_kind, only: CKC => CK4
6525 : #include "pm_matrixMulAdd@routines.inc.F90"
6526 : end procedure
6527 : #endif
6528 :
6529 : #if CK3_ENABLED
6530 148 : module procedure gemm_ASS_SFA_SFB_TSA_TSB_CK3
6531 : use pm_kind, only: CKC => CK3
6532 : #include "pm_matrixMulAdd@routines.inc.F90"
6533 : end procedure
6534 : #endif
6535 :
6536 : #if CK2_ENABLED
6537 141 : module procedure gemm_ASS_SFA_SFB_TSA_TSB_CK2
6538 : use pm_kind, only: CKC => CK2
6539 : #define DISPATCH_ENABLED 1
6540 : #include "pm_matrixMulAdd@routines.inc.F90"
6541 : #undef DISPATCH_ENABLED
6542 : end procedure
6543 : #endif
6544 :
6545 : #if CK1_ENABLED
6546 152 : module procedure gemm_ASS_SFA_SFB_TSA_TSB_CK1
6547 : use pm_kind, only: CKC => CK1
6548 : #define DISPATCH_ENABLED 1
6549 : #include "pm_matrixMulAdd@routines.inc.F90"
6550 : #undef DISPATCH_ENABLED
6551 : end procedure
6552 : #endif
6553 :
6554 : #undef CK_ENABLED
6555 :
6556 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6557 :
6558 : #define RK_ENABLED 1
6559 :
6560 : #if RK5_ENABLED
6561 : module procedure gemm_ASS_SFA_SFB_TSA_TSB_RK5
6562 : use pm_kind, only: RKC => RK5
6563 : #include "pm_matrixMulAdd@routines.inc.F90"
6564 : end procedure
6565 : #endif
6566 :
6567 : #if RK4_ENABLED
6568 128 : module procedure gemm_ASS_SFA_SFB_TSA_TSB_RK4
6569 : use pm_kind, only: RKC => RK4
6570 : #include "pm_matrixMulAdd@routines.inc.F90"
6571 : end procedure
6572 : #endif
6573 :
6574 : #if RK3_ENABLED
6575 143 : module procedure gemm_ASS_SFA_SFB_TSA_TSB_RK3
6576 : use pm_kind, only: RKC => RK3
6577 : #include "pm_matrixMulAdd@routines.inc.F90"
6578 : end procedure
6579 : #endif
6580 :
6581 : #if RK2_ENABLED
6582 128 : module procedure gemm_ASS_SFA_SFB_TSA_TSB_RK2
6583 : use pm_kind, only: RKC => RK2
6584 : #define DISPATCH_ENABLED 1
6585 : #include "pm_matrixMulAdd@routines.inc.F90"
6586 : #undef DISPATCH_ENABLED
6587 : end procedure
6588 : #endif
6589 :
6590 : #if RK1_ENABLED
6591 145 : module procedure gemm_ASS_SFA_SFB_TSA_TSB_RK1
6592 : use pm_kind, only: RKC => RK1
6593 : #define DISPATCH_ENABLED 1
6594 : #include "pm_matrixMulAdd@routines.inc.F90"
6595 : #undef DISPATCH_ENABLED
6596 : end procedure
6597 : #endif
6598 :
6599 : #undef RK_ENABLED
6600 :
6601 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6602 :
6603 : #undef TSA_ENABLED
6604 : #undef TSB_ENABLED
6605 :
6606 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6607 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6608 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6609 :
6610 : #define THA_ENABLED 1
6611 : #define TSB_ENABLED 1
6612 :
6613 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6614 :
6615 : #define IK_ENABLED 1
6616 :
6617 : #if IK5_ENABLED
6618 130 : module procedure gemm_ASS_SFA_SFB_THA_TSB_IK5
6619 : use pm_kind, only: IKC => IK5
6620 : #include "pm_matrixMulAdd@routines.inc.F90"
6621 : end procedure
6622 : #endif
6623 :
6624 : #if IK4_ENABLED
6625 139 : module procedure gemm_ASS_SFA_SFB_THA_TSB_IK4
6626 : use pm_kind, only: IKC => IK4
6627 : #include "pm_matrixMulAdd@routines.inc.F90"
6628 : end procedure
6629 : #endif
6630 :
6631 : #if IK3_ENABLED
6632 133 : module procedure gemm_ASS_SFA_SFB_THA_TSB_IK3
6633 : use pm_kind, only: IKC => IK3
6634 : #include "pm_matrixMulAdd@routines.inc.F90"
6635 : end procedure
6636 : #endif
6637 :
6638 : #if IK2_ENABLED
6639 117 : module procedure gemm_ASS_SFA_SFB_THA_TSB_IK2
6640 : use pm_kind, only: IKC => IK2
6641 : #include "pm_matrixMulAdd@routines.inc.F90"
6642 : end procedure
6643 : #endif
6644 :
6645 : #if IK1_ENABLED
6646 151 : module procedure gemm_ASS_SFA_SFB_THA_TSB_IK1
6647 : use pm_kind, only: IKC => IK1
6648 : #include "pm_matrixMulAdd@routines.inc.F90"
6649 : end procedure
6650 : #endif
6651 :
6652 : #undef IK_ENABLED
6653 :
6654 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6655 :
6656 : #define CK_ENABLED 1
6657 :
6658 : #if CK5_ENABLED
6659 : module procedure gemm_ASS_SFA_SFB_THA_TSB_CK5
6660 : use pm_kind, only: CKC => CK5
6661 : #include "pm_matrixMulAdd@routines.inc.F90"
6662 : end procedure
6663 : #endif
6664 :
6665 : #if CK4_ENABLED
6666 139 : module procedure gemm_ASS_SFA_SFB_THA_TSB_CK4
6667 : use pm_kind, only: CKC => CK4
6668 : #include "pm_matrixMulAdd@routines.inc.F90"
6669 : end procedure
6670 : #endif
6671 :
6672 : #if CK3_ENABLED
6673 148 : module procedure gemm_ASS_SFA_SFB_THA_TSB_CK3
6674 : use pm_kind, only: CKC => CK3
6675 : #include "pm_matrixMulAdd@routines.inc.F90"
6676 : end procedure
6677 : #endif
6678 :
6679 : #if CK2_ENABLED
6680 141 : module procedure gemm_ASS_SFA_SFB_THA_TSB_CK2
6681 : use pm_kind, only: CKC => CK2
6682 : #define DISPATCH_ENABLED 1
6683 : #include "pm_matrixMulAdd@routines.inc.F90"
6684 : #undef DISPATCH_ENABLED
6685 : end procedure
6686 : #endif
6687 :
6688 : #if CK1_ENABLED
6689 152 : module procedure gemm_ASS_SFA_SFB_THA_TSB_CK1
6690 : use pm_kind, only: CKC => CK1
6691 : #define DISPATCH_ENABLED 1
6692 : #include "pm_matrixMulAdd@routines.inc.F90"
6693 : #undef DISPATCH_ENABLED
6694 : end procedure
6695 : #endif
6696 :
6697 : #undef CK_ENABLED
6698 :
6699 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6700 :
6701 : #define RK_ENABLED 1
6702 :
6703 : #if RK5_ENABLED
6704 : module procedure gemm_ASS_SFA_SFB_THA_TSB_RK5
6705 : use pm_kind, only: RKC => RK5
6706 : #include "pm_matrixMulAdd@routines.inc.F90"
6707 : end procedure
6708 : #endif
6709 :
6710 : #if RK4_ENABLED
6711 128 : module procedure gemm_ASS_SFA_SFB_THA_TSB_RK4
6712 : use pm_kind, only: RKC => RK4
6713 : #include "pm_matrixMulAdd@routines.inc.F90"
6714 : end procedure
6715 : #endif
6716 :
6717 : #if RK3_ENABLED
6718 143 : module procedure gemm_ASS_SFA_SFB_THA_TSB_RK3
6719 : use pm_kind, only: RKC => RK3
6720 : #include "pm_matrixMulAdd@routines.inc.F90"
6721 : end procedure
6722 : #endif
6723 :
6724 : #if RK2_ENABLED
6725 128 : module procedure gemm_ASS_SFA_SFB_THA_TSB_RK2
6726 : use pm_kind, only: RKC => RK2
6727 : #define DISPATCH_ENABLED 1
6728 : #include "pm_matrixMulAdd@routines.inc.F90"
6729 : #undef DISPATCH_ENABLED
6730 : end procedure
6731 : #endif
6732 :
6733 : #if RK1_ENABLED
6734 145 : module procedure gemm_ASS_SFA_SFB_THA_TSB_RK1
6735 : use pm_kind, only: RKC => RK1
6736 : #define DISPATCH_ENABLED 1
6737 : #include "pm_matrixMulAdd@routines.inc.F90"
6738 : #undef DISPATCH_ENABLED
6739 : end procedure
6740 : #endif
6741 :
6742 : #undef RK_ENABLED
6743 :
6744 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6745 :
6746 : #undef THA_ENABLED
6747 :
6748 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6749 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6750 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6751 :
6752 : #undef TSB_ENABLED
6753 :
6754 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6755 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6756 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6757 :
6758 : #define THB_ENABLED 1
6759 :
6760 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6761 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6762 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6763 :
6764 : #define TNA_ENABLED 1
6765 :
6766 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6767 :
6768 : #define IK_ENABLED 1
6769 :
6770 : #if IK5_ENABLED
6771 130 : module procedure gemm_ASS_SFA_SFB_TNA_THB_IK5
6772 : use pm_kind, only: IKC => IK5
6773 : #include "pm_matrixMulAdd@routines.inc.F90"
6774 : end procedure
6775 : #endif
6776 :
6777 : #if IK4_ENABLED
6778 139 : module procedure gemm_ASS_SFA_SFB_TNA_THB_IK4
6779 : use pm_kind, only: IKC => IK4
6780 : #include "pm_matrixMulAdd@routines.inc.F90"
6781 : end procedure
6782 : #endif
6783 :
6784 : #if IK3_ENABLED
6785 133 : module procedure gemm_ASS_SFA_SFB_TNA_THB_IK3
6786 : use pm_kind, only: IKC => IK3
6787 : #include "pm_matrixMulAdd@routines.inc.F90"
6788 : end procedure
6789 : #endif
6790 :
6791 : #if IK2_ENABLED
6792 117 : module procedure gemm_ASS_SFA_SFB_TNA_THB_IK2
6793 : use pm_kind, only: IKC => IK2
6794 : #include "pm_matrixMulAdd@routines.inc.F90"
6795 : end procedure
6796 : #endif
6797 :
6798 : #if IK1_ENABLED
6799 151 : module procedure gemm_ASS_SFA_SFB_TNA_THB_IK1
6800 : use pm_kind, only: IKC => IK1
6801 : #include "pm_matrixMulAdd@routines.inc.F90"
6802 : end procedure
6803 : #endif
6804 :
6805 : #undef IK_ENABLED
6806 :
6807 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6808 :
6809 : #define CK_ENABLED 1
6810 :
6811 : #if CK5_ENABLED
6812 : module procedure gemm_ASS_SFA_SFB_TNA_THB_CK5
6813 : use pm_kind, only: CKC => CK5
6814 : #include "pm_matrixMulAdd@routines.inc.F90"
6815 : end procedure
6816 : #endif
6817 :
6818 : #if CK4_ENABLED
6819 139 : module procedure gemm_ASS_SFA_SFB_TNA_THB_CK4
6820 : use pm_kind, only: CKC => CK4
6821 : #include "pm_matrixMulAdd@routines.inc.F90"
6822 : end procedure
6823 : #endif
6824 :
6825 : #if CK3_ENABLED
6826 148 : module procedure gemm_ASS_SFA_SFB_TNA_THB_CK3
6827 : use pm_kind, only: CKC => CK3
6828 : #include "pm_matrixMulAdd@routines.inc.F90"
6829 : end procedure
6830 : #endif
6831 :
6832 : #if CK2_ENABLED
6833 141 : module procedure gemm_ASS_SFA_SFB_TNA_THB_CK2
6834 : use pm_kind, only: CKC => CK2
6835 : #define DISPATCH_ENABLED 1
6836 : #include "pm_matrixMulAdd@routines.inc.F90"
6837 : #undef DISPATCH_ENABLED
6838 : end procedure
6839 : #endif
6840 :
6841 : #if CK1_ENABLED
6842 152 : module procedure gemm_ASS_SFA_SFB_TNA_THB_CK1
6843 : use pm_kind, only: CKC => CK1
6844 : #define DISPATCH_ENABLED 1
6845 : #include "pm_matrixMulAdd@routines.inc.F90"
6846 : #undef DISPATCH_ENABLED
6847 : end procedure
6848 : #endif
6849 :
6850 : #undef CK_ENABLED
6851 :
6852 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6853 :
6854 : #define RK_ENABLED 1
6855 :
6856 : #if RK5_ENABLED
6857 : module procedure gemm_ASS_SFA_SFB_TNA_THB_RK5
6858 : use pm_kind, only: RKC => RK5
6859 : #include "pm_matrixMulAdd@routines.inc.F90"
6860 : end procedure
6861 : #endif
6862 :
6863 : #if RK4_ENABLED
6864 128 : module procedure gemm_ASS_SFA_SFB_TNA_THB_RK4
6865 : use pm_kind, only: RKC => RK4
6866 : #include "pm_matrixMulAdd@routines.inc.F90"
6867 : end procedure
6868 : #endif
6869 :
6870 : #if RK3_ENABLED
6871 143 : module procedure gemm_ASS_SFA_SFB_TNA_THB_RK3
6872 : use pm_kind, only: RKC => RK3
6873 : #include "pm_matrixMulAdd@routines.inc.F90"
6874 : end procedure
6875 : #endif
6876 :
6877 : #if RK2_ENABLED
6878 128 : module procedure gemm_ASS_SFA_SFB_TNA_THB_RK2
6879 : use pm_kind, only: RKC => RK2
6880 : #define DISPATCH_ENABLED 1
6881 : #include "pm_matrixMulAdd@routines.inc.F90"
6882 : #undef DISPATCH_ENABLED
6883 : end procedure
6884 : #endif
6885 :
6886 : #if RK1_ENABLED
6887 145 : module procedure gemm_ASS_SFA_SFB_TNA_THB_RK1
6888 : use pm_kind, only: RKC => RK1
6889 : #define DISPATCH_ENABLED 1
6890 : #include "pm_matrixMulAdd@routines.inc.F90"
6891 : #undef DISPATCH_ENABLED
6892 : end procedure
6893 : #endif
6894 :
6895 : #undef RK_ENABLED
6896 :
6897 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6898 :
6899 : #undef TNA_ENABLED
6900 : #undef THB_ENABLED
6901 :
6902 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6903 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6904 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6905 :
6906 : #define TSA_ENABLED 1
6907 : #define THB_ENABLED 1
6908 :
6909 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6910 :
6911 : #define IK_ENABLED 1
6912 :
6913 : #if IK5_ENABLED
6914 130 : module procedure gemm_ASS_SFA_SFB_TSA_THB_IK5
6915 : use pm_kind, only: IKC => IK5
6916 : #include "pm_matrixMulAdd@routines.inc.F90"
6917 : end procedure
6918 : #endif
6919 :
6920 : #if IK4_ENABLED
6921 139 : module procedure gemm_ASS_SFA_SFB_TSA_THB_IK4
6922 : use pm_kind, only: IKC => IK4
6923 : #include "pm_matrixMulAdd@routines.inc.F90"
6924 : end procedure
6925 : #endif
6926 :
6927 : #if IK3_ENABLED
6928 133 : module procedure gemm_ASS_SFA_SFB_TSA_THB_IK3
6929 : use pm_kind, only: IKC => IK3
6930 : #include "pm_matrixMulAdd@routines.inc.F90"
6931 : end procedure
6932 : #endif
6933 :
6934 : #if IK2_ENABLED
6935 117 : module procedure gemm_ASS_SFA_SFB_TSA_THB_IK2
6936 : use pm_kind, only: IKC => IK2
6937 : #include "pm_matrixMulAdd@routines.inc.F90"
6938 : end procedure
6939 : #endif
6940 :
6941 : #if IK1_ENABLED
6942 151 : module procedure gemm_ASS_SFA_SFB_TSA_THB_IK1
6943 : use pm_kind, only: IKC => IK1
6944 : #include "pm_matrixMulAdd@routines.inc.F90"
6945 : end procedure
6946 : #endif
6947 :
6948 : #undef IK_ENABLED
6949 :
6950 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6951 :
6952 : #define CK_ENABLED 1
6953 :
6954 : #if CK5_ENABLED
6955 : module procedure gemm_ASS_SFA_SFB_TSA_THB_CK5
6956 : use pm_kind, only: CKC => CK5
6957 : #include "pm_matrixMulAdd@routines.inc.F90"
6958 : end procedure
6959 : #endif
6960 :
6961 : #if CK4_ENABLED
6962 139 : module procedure gemm_ASS_SFA_SFB_TSA_THB_CK4
6963 : use pm_kind, only: CKC => CK4
6964 : #include "pm_matrixMulAdd@routines.inc.F90"
6965 : end procedure
6966 : #endif
6967 :
6968 : #if CK3_ENABLED
6969 148 : module procedure gemm_ASS_SFA_SFB_TSA_THB_CK3
6970 : use pm_kind, only: CKC => CK3
6971 : #include "pm_matrixMulAdd@routines.inc.F90"
6972 : end procedure
6973 : #endif
6974 :
6975 : #if CK2_ENABLED
6976 141 : module procedure gemm_ASS_SFA_SFB_TSA_THB_CK2
6977 : use pm_kind, only: CKC => CK2
6978 : #define DISPATCH_ENABLED 1
6979 : #include "pm_matrixMulAdd@routines.inc.F90"
6980 : #undef DISPATCH_ENABLED
6981 : end procedure
6982 : #endif
6983 :
6984 : #if CK1_ENABLED
6985 152 : module procedure gemm_ASS_SFA_SFB_TSA_THB_CK1
6986 : use pm_kind, only: CKC => CK1
6987 : #define DISPATCH_ENABLED 1
6988 : #include "pm_matrixMulAdd@routines.inc.F90"
6989 : #undef DISPATCH_ENABLED
6990 : end procedure
6991 : #endif
6992 :
6993 : #undef CK_ENABLED
6994 :
6995 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6996 :
6997 : #define RK_ENABLED 1
6998 :
6999 : #if RK5_ENABLED
7000 : module procedure gemm_ASS_SFA_SFB_TSA_THB_RK5
7001 : use pm_kind, only: RKC => RK5
7002 : #include "pm_matrixMulAdd@routines.inc.F90"
7003 : end procedure
7004 : #endif
7005 :
7006 : #if RK4_ENABLED
7007 128 : module procedure gemm_ASS_SFA_SFB_TSA_THB_RK4
7008 : use pm_kind, only: RKC => RK4
7009 : #include "pm_matrixMulAdd@routines.inc.F90"
7010 : end procedure
7011 : #endif
7012 :
7013 : #if RK3_ENABLED
7014 143 : module procedure gemm_ASS_SFA_SFB_TSA_THB_RK3
7015 : use pm_kind, only: RKC => RK3
7016 : #include "pm_matrixMulAdd@routines.inc.F90"
7017 : end procedure
7018 : #endif
7019 :
7020 : #if RK2_ENABLED
7021 128 : module procedure gemm_ASS_SFA_SFB_TSA_THB_RK2
7022 : use pm_kind, only: RKC => RK2
7023 : #define DISPATCH_ENABLED 1
7024 : #include "pm_matrixMulAdd@routines.inc.F90"
7025 : #undef DISPATCH_ENABLED
7026 : end procedure
7027 : #endif
7028 :
7029 : #if RK1_ENABLED
7030 145 : module procedure gemm_ASS_SFA_SFB_TSA_THB_RK1
7031 : use pm_kind, only: RKC => RK1
7032 : #define DISPATCH_ENABLED 1
7033 : #include "pm_matrixMulAdd@routines.inc.F90"
7034 : #undef DISPATCH_ENABLED
7035 : end procedure
7036 : #endif
7037 :
7038 : #undef RK_ENABLED
7039 :
7040 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7041 :
7042 : #undef TSA_ENABLED
7043 : #undef THB_ENABLED
7044 :
7045 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7046 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7047 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7048 :
7049 : #define THA_ENABLED 1
7050 : #define THB_ENABLED 1
7051 :
7052 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7053 :
7054 : #define IK_ENABLED 1
7055 :
7056 : #if IK5_ENABLED
7057 130 : module procedure gemm_ASS_SFA_SFB_THA_THB_IK5
7058 : use pm_kind, only: IKC => IK5
7059 : #include "pm_matrixMulAdd@routines.inc.F90"
7060 : end procedure
7061 : #endif
7062 :
7063 : #if IK4_ENABLED
7064 139 : module procedure gemm_ASS_SFA_SFB_THA_THB_IK4
7065 : use pm_kind, only: IKC => IK4
7066 : #include "pm_matrixMulAdd@routines.inc.F90"
7067 : end procedure
7068 : #endif
7069 :
7070 : #if IK3_ENABLED
7071 133 : module procedure gemm_ASS_SFA_SFB_THA_THB_IK3
7072 : use pm_kind, only: IKC => IK3
7073 : #include "pm_matrixMulAdd@routines.inc.F90"
7074 : end procedure
7075 : #endif
7076 :
7077 : #if IK2_ENABLED
7078 117 : module procedure gemm_ASS_SFA_SFB_THA_THB_IK2
7079 : use pm_kind, only: IKC => IK2
7080 : #include "pm_matrixMulAdd@routines.inc.F90"
7081 : end procedure
7082 : #endif
7083 :
7084 : #if IK1_ENABLED
7085 151 : module procedure gemm_ASS_SFA_SFB_THA_THB_IK1
7086 : use pm_kind, only: IKC => IK1
7087 : #include "pm_matrixMulAdd@routines.inc.F90"
7088 : end procedure
7089 : #endif
7090 :
7091 : #undef IK_ENABLED
7092 :
7093 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7094 :
7095 : #define CK_ENABLED 1
7096 :
7097 : #if CK5_ENABLED
7098 : module procedure gemm_ASS_SFA_SFB_THA_THB_CK5
7099 : use pm_kind, only: CKC => CK5
7100 : #include "pm_matrixMulAdd@routines.inc.F90"
7101 : end procedure
7102 : #endif
7103 :
7104 : #if CK4_ENABLED
7105 139 : module procedure gemm_ASS_SFA_SFB_THA_THB_CK4
7106 : use pm_kind, only: CKC => CK4
7107 : #include "pm_matrixMulAdd@routines.inc.F90"
7108 : end procedure
7109 : #endif
7110 :
7111 : #if CK3_ENABLED
7112 148 : module procedure gemm_ASS_SFA_SFB_THA_THB_CK3
7113 : use pm_kind, only: CKC => CK3
7114 : #include "pm_matrixMulAdd@routines.inc.F90"
7115 : end procedure
7116 : #endif
7117 :
7118 : #if CK2_ENABLED
7119 141 : module procedure gemm_ASS_SFA_SFB_THA_THB_CK2
7120 : use pm_kind, only: CKC => CK2
7121 : #define DISPATCH_ENABLED 1
7122 : #include "pm_matrixMulAdd@routines.inc.F90"
7123 : #undef DISPATCH_ENABLED
7124 : end procedure
7125 : #endif
7126 :
7127 : #if CK1_ENABLED
7128 152 : module procedure gemm_ASS_SFA_SFB_THA_THB_CK1
7129 : use pm_kind, only: CKC => CK1
7130 : #define DISPATCH_ENABLED 1
7131 : #include "pm_matrixMulAdd@routines.inc.F90"
7132 : #undef DISPATCH_ENABLED
7133 : end procedure
7134 : #endif
7135 :
7136 : #undef CK_ENABLED
7137 :
7138 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7139 :
7140 : #define RK_ENABLED 1
7141 :
7142 : #if RK5_ENABLED
7143 : module procedure gemm_ASS_SFA_SFB_THA_THB_RK5
7144 : use pm_kind, only: RKC => RK5
7145 : #include "pm_matrixMulAdd@routines.inc.F90"
7146 : end procedure
7147 : #endif
7148 :
7149 : #if RK4_ENABLED
7150 128 : module procedure gemm_ASS_SFA_SFB_THA_THB_RK4
7151 : use pm_kind, only: RKC => RK4
7152 : #include "pm_matrixMulAdd@routines.inc.F90"
7153 : end procedure
7154 : #endif
7155 :
7156 : #if RK3_ENABLED
7157 143 : module procedure gemm_ASS_SFA_SFB_THA_THB_RK3
7158 : use pm_kind, only: RKC => RK3
7159 : #include "pm_matrixMulAdd@routines.inc.F90"
7160 : end procedure
7161 : #endif
7162 :
7163 : #if RK2_ENABLED
7164 128 : module procedure gemm_ASS_SFA_SFB_THA_THB_RK2
7165 : use pm_kind, only: RKC => RK2
7166 : #define DISPATCH_ENABLED 1
7167 : #include "pm_matrixMulAdd@routines.inc.F90"
7168 : #undef DISPATCH_ENABLED
7169 : end procedure
7170 : #endif
7171 :
7172 : #if RK1_ENABLED
7173 145 : module procedure gemm_ASS_SFA_SFB_THA_THB_RK1
7174 : use pm_kind, only: RKC => RK1
7175 : #define DISPATCH_ENABLED 1
7176 : #include "pm_matrixMulAdd@routines.inc.F90"
7177 : #undef DISPATCH_ENABLED
7178 : end procedure
7179 : #endif
7180 :
7181 : #undef RK_ENABLED
7182 :
7183 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7184 :
7185 : #undef THA_ENABLED
7186 :
7187 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7188 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7189 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7190 :
7191 : #undef THB_ENABLED
7192 :
7193 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7194 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7195 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7196 :
7197 : #undef ASS_ENABLED
7198 :
7199 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7200 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7201 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7202 :
7203 : #define EXP_ENABLED 1
7204 :
7205 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7206 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7207 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7208 :
7209 : #define TNB_ENABLED 1
7210 :
7211 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7212 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7213 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7214 :
7215 : #define TNA_ENABLED 1
7216 :
7217 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7218 :
7219 : #define IK_ENABLED 1
7220 :
7221 : #if IK5_ENABLED
7222 100 : module procedure gemm_EXP_SFA_SFB_TNA_TNB_IK5
7223 : use pm_kind, only: IKC => IK5
7224 : #include "pm_matrixMulAdd@routines.inc.F90"
7225 : end procedure
7226 : #endif
7227 :
7228 : #if IK4_ENABLED
7229 100 : module procedure gemm_EXP_SFA_SFB_TNA_TNB_IK4
7230 : use pm_kind, only: IKC => IK4
7231 : #include "pm_matrixMulAdd@routines.inc.F90"
7232 : end procedure
7233 : #endif
7234 :
7235 : #if IK3_ENABLED
7236 101 : module procedure gemm_EXP_SFA_SFB_TNA_TNB_IK3
7237 : use pm_kind, only: IKC => IK3
7238 : #include "pm_matrixMulAdd@routines.inc.F90"
7239 : end procedure
7240 : #endif
7241 :
7242 : #if IK2_ENABLED
7243 100 : module procedure gemm_EXP_SFA_SFB_TNA_TNB_IK2
7244 : use pm_kind, only: IKC => IK2
7245 : #include "pm_matrixMulAdd@routines.inc.F90"
7246 : end procedure
7247 : #endif
7248 :
7249 : #if IK1_ENABLED
7250 100 : module procedure gemm_EXP_SFA_SFB_TNA_TNB_IK1
7251 : use pm_kind, only: IKC => IK1
7252 : #include "pm_matrixMulAdd@routines.inc.F90"
7253 : end procedure
7254 : #endif
7255 :
7256 : #undef IK_ENABLED
7257 :
7258 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7259 :
7260 : #define CK_ENABLED 1
7261 :
7262 : #if CK5_ENABLED
7263 : module procedure gemm_EXP_SFA_SFB_TNA_TNB_CK5
7264 : use pm_kind, only: CKC => CK5
7265 : #include "pm_matrixMulAdd@routines.inc.F90"
7266 : end procedure
7267 : #endif
7268 :
7269 : #if CK4_ENABLED
7270 100 : module procedure gemm_EXP_SFA_SFB_TNA_TNB_CK4
7271 : use pm_kind, only: CKC => CK4
7272 : #include "pm_matrixMulAdd@routines.inc.F90"
7273 : end procedure
7274 : #endif
7275 :
7276 : #if CK3_ENABLED
7277 100 : module procedure gemm_EXP_SFA_SFB_TNA_TNB_CK3
7278 : use pm_kind, only: CKC => CK3
7279 : #include "pm_matrixMulAdd@routines.inc.F90"
7280 : end procedure
7281 : #endif
7282 :
7283 : #if CK2_ENABLED
7284 100 : module procedure gemm_EXP_SFA_SFB_TNA_TNB_CK2
7285 : use pm_kind, only: CKC => CK2
7286 : #define DISPATCH_ENABLED 1
7287 : #include "pm_matrixMulAdd@routines.inc.F90"
7288 : #undef DISPATCH_ENABLED
7289 : end procedure
7290 : #endif
7291 :
7292 : #if CK1_ENABLED
7293 101 : module procedure gemm_EXP_SFA_SFB_TNA_TNB_CK1
7294 : use pm_kind, only: CKC => CK1
7295 : #define DISPATCH_ENABLED 1
7296 : #include "pm_matrixMulAdd@routines.inc.F90"
7297 : #undef DISPATCH_ENABLED
7298 : end procedure
7299 : #endif
7300 :
7301 : #undef CK_ENABLED
7302 :
7303 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7304 :
7305 : #define RK_ENABLED 1
7306 :
7307 : #if RK5_ENABLED
7308 : module procedure gemm_EXP_SFA_SFB_TNA_TNB_RK5
7309 : use pm_kind, only: RKC => RK5
7310 : #include "pm_matrixMulAdd@routines.inc.F90"
7311 : end procedure
7312 : #endif
7313 :
7314 : #if RK4_ENABLED
7315 100 : module procedure gemm_EXP_SFA_SFB_TNA_TNB_RK4
7316 : use pm_kind, only: RKC => RK4
7317 : #include "pm_matrixMulAdd@routines.inc.F90"
7318 : end procedure
7319 : #endif
7320 :
7321 : #if RK3_ENABLED
7322 100 : module procedure gemm_EXP_SFA_SFB_TNA_TNB_RK3
7323 : use pm_kind, only: RKC => RK3
7324 : #include "pm_matrixMulAdd@routines.inc.F90"
7325 : end procedure
7326 : #endif
7327 :
7328 : #if RK2_ENABLED
7329 100 : module procedure gemm_EXP_SFA_SFB_TNA_TNB_RK2
7330 : use pm_kind, only: RKC => RK2
7331 : #define DISPATCH_ENABLED 1
7332 : #include "pm_matrixMulAdd@routines.inc.F90"
7333 : #undef DISPATCH_ENABLED
7334 : end procedure
7335 : #endif
7336 :
7337 : #if RK1_ENABLED
7338 101 : module procedure gemm_EXP_SFA_SFB_TNA_TNB_RK1
7339 : use pm_kind, only: RKC => RK1
7340 : #define DISPATCH_ENABLED 1
7341 : #include "pm_matrixMulAdd@routines.inc.F90"
7342 : #undef DISPATCH_ENABLED
7343 : end procedure
7344 : #endif
7345 :
7346 : #undef RK_ENABLED
7347 :
7348 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7349 :
7350 : #undef TNA_ENABLED
7351 : #undef TNB_ENABLED
7352 :
7353 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7354 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7355 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7356 :
7357 : #define TSA_ENABLED 1
7358 : #define TNB_ENABLED 1
7359 :
7360 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7361 :
7362 : #define IK_ENABLED 1
7363 :
7364 : #if IK5_ENABLED
7365 100 : module procedure gemm_EXP_SFA_SFB_TSA_TNB_IK5
7366 : use pm_kind, only: IKC => IK5
7367 : #include "pm_matrixMulAdd@routines.inc.F90"
7368 : end procedure
7369 : #endif
7370 :
7371 : #if IK4_ENABLED
7372 100 : module procedure gemm_EXP_SFA_SFB_TSA_TNB_IK4
7373 : use pm_kind, only: IKC => IK4
7374 : #include "pm_matrixMulAdd@routines.inc.F90"
7375 : end procedure
7376 : #endif
7377 :
7378 : #if IK3_ENABLED
7379 100 : module procedure gemm_EXP_SFA_SFB_TSA_TNB_IK3
7380 : use pm_kind, only: IKC => IK3
7381 : #include "pm_matrixMulAdd@routines.inc.F90"
7382 : end procedure
7383 : #endif
7384 :
7385 : #if IK2_ENABLED
7386 100 : module procedure gemm_EXP_SFA_SFB_TSA_TNB_IK2
7387 : use pm_kind, only: IKC => IK2
7388 : #include "pm_matrixMulAdd@routines.inc.F90"
7389 : end procedure
7390 : #endif
7391 :
7392 : #if IK1_ENABLED
7393 100 : module procedure gemm_EXP_SFA_SFB_TSA_TNB_IK1
7394 : use pm_kind, only: IKC => IK1
7395 : #include "pm_matrixMulAdd@routines.inc.F90"
7396 : end procedure
7397 : #endif
7398 :
7399 : #undef IK_ENABLED
7400 :
7401 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7402 :
7403 : #define CK_ENABLED 1
7404 :
7405 : #if CK5_ENABLED
7406 : module procedure gemm_EXP_SFA_SFB_TSA_TNB_CK5
7407 : use pm_kind, only: CKC => CK5
7408 : #include "pm_matrixMulAdd@routines.inc.F90"
7409 : end procedure
7410 : #endif
7411 :
7412 : #if CK4_ENABLED
7413 100 : module procedure gemm_EXP_SFA_SFB_TSA_TNB_CK4
7414 : use pm_kind, only: CKC => CK4
7415 : #include "pm_matrixMulAdd@routines.inc.F90"
7416 : end procedure
7417 : #endif
7418 :
7419 : #if CK3_ENABLED
7420 100 : module procedure gemm_EXP_SFA_SFB_TSA_TNB_CK3
7421 : use pm_kind, only: CKC => CK3
7422 : #include "pm_matrixMulAdd@routines.inc.F90"
7423 : end procedure
7424 : #endif
7425 :
7426 : #if CK2_ENABLED
7427 100 : module procedure gemm_EXP_SFA_SFB_TSA_TNB_CK2
7428 : use pm_kind, only: CKC => CK2
7429 : #define DISPATCH_ENABLED 1
7430 : #include "pm_matrixMulAdd@routines.inc.F90"
7431 : #undef DISPATCH_ENABLED
7432 : end procedure
7433 : #endif
7434 :
7435 : #if CK1_ENABLED
7436 100 : module procedure gemm_EXP_SFA_SFB_TSA_TNB_CK1
7437 : use pm_kind, only: CKC => CK1
7438 : #define DISPATCH_ENABLED 1
7439 : #include "pm_matrixMulAdd@routines.inc.F90"
7440 : #undef DISPATCH_ENABLED
7441 : end procedure
7442 : #endif
7443 :
7444 : #undef CK_ENABLED
7445 :
7446 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7447 :
7448 : #define RK_ENABLED 1
7449 :
7450 : #if RK5_ENABLED
7451 : module procedure gemm_EXP_SFA_SFB_TSA_TNB_RK5
7452 : use pm_kind, only: RKC => RK5
7453 : #include "pm_matrixMulAdd@routines.inc.F90"
7454 : end procedure
7455 : #endif
7456 :
7457 : #if RK4_ENABLED
7458 100 : module procedure gemm_EXP_SFA_SFB_TSA_TNB_RK4
7459 : use pm_kind, only: RKC => RK4
7460 : #include "pm_matrixMulAdd@routines.inc.F90"
7461 : end procedure
7462 : #endif
7463 :
7464 : #if RK3_ENABLED
7465 100 : module procedure gemm_EXP_SFA_SFB_TSA_TNB_RK3
7466 : use pm_kind, only: RKC => RK3
7467 : #include "pm_matrixMulAdd@routines.inc.F90"
7468 : end procedure
7469 : #endif
7470 :
7471 : #if RK2_ENABLED
7472 100 : module procedure gemm_EXP_SFA_SFB_TSA_TNB_RK2
7473 : use pm_kind, only: RKC => RK2
7474 : #define DISPATCH_ENABLED 1
7475 : #include "pm_matrixMulAdd@routines.inc.F90"
7476 : #undef DISPATCH_ENABLED
7477 : end procedure
7478 : #endif
7479 :
7480 : #if RK1_ENABLED
7481 100 : module procedure gemm_EXP_SFA_SFB_TSA_TNB_RK1
7482 : use pm_kind, only: RKC => RK1
7483 : #define DISPATCH_ENABLED 1
7484 : #include "pm_matrixMulAdd@routines.inc.F90"
7485 : #undef DISPATCH_ENABLED
7486 : end procedure
7487 : #endif
7488 :
7489 : #undef RK_ENABLED
7490 :
7491 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7492 :
7493 : #undef TSA_ENABLED
7494 : #undef TNB_ENABLED
7495 :
7496 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7497 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7498 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7499 :
7500 : #define THA_ENABLED 1
7501 : #define TNB_ENABLED 1
7502 :
7503 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7504 :
7505 : #define IK_ENABLED 1
7506 :
7507 : #if IK5_ENABLED
7508 100 : module procedure gemm_EXP_SFA_SFB_THA_TNB_IK5
7509 : use pm_kind, only: IKC => IK5
7510 : #include "pm_matrixMulAdd@routines.inc.F90"
7511 : end procedure
7512 : #endif
7513 :
7514 : #if IK4_ENABLED
7515 100 : module procedure gemm_EXP_SFA_SFB_THA_TNB_IK4
7516 : use pm_kind, only: IKC => IK4
7517 : #include "pm_matrixMulAdd@routines.inc.F90"
7518 : end procedure
7519 : #endif
7520 :
7521 : #if IK3_ENABLED
7522 100 : module procedure gemm_EXP_SFA_SFB_THA_TNB_IK3
7523 : use pm_kind, only: IKC => IK3
7524 : #include "pm_matrixMulAdd@routines.inc.F90"
7525 : end procedure
7526 : #endif
7527 :
7528 : #if IK2_ENABLED
7529 100 : module procedure gemm_EXP_SFA_SFB_THA_TNB_IK2
7530 : use pm_kind, only: IKC => IK2
7531 : #include "pm_matrixMulAdd@routines.inc.F90"
7532 : end procedure
7533 : #endif
7534 :
7535 : #if IK1_ENABLED
7536 100 : module procedure gemm_EXP_SFA_SFB_THA_TNB_IK1
7537 : use pm_kind, only: IKC => IK1
7538 : #include "pm_matrixMulAdd@routines.inc.F90"
7539 : end procedure
7540 : #endif
7541 :
7542 : #undef IK_ENABLED
7543 :
7544 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7545 :
7546 : #define CK_ENABLED 1
7547 :
7548 : #if CK5_ENABLED
7549 : module procedure gemm_EXP_SFA_SFB_THA_TNB_CK5
7550 : use pm_kind, only: CKC => CK5
7551 : #include "pm_matrixMulAdd@routines.inc.F90"
7552 : end procedure
7553 : #endif
7554 :
7555 : #if CK4_ENABLED
7556 161 : module procedure gemm_EXP_SFA_SFB_THA_TNB_CK4
7557 : use pm_kind, only: CKC => CK4
7558 : #include "pm_matrixMulAdd@routines.inc.F90"
7559 : end procedure
7560 : #endif
7561 :
7562 : #if CK3_ENABLED
7563 140 : module procedure gemm_EXP_SFA_SFB_THA_TNB_CK3
7564 : use pm_kind, only: CKC => CK3
7565 : #include "pm_matrixMulAdd@routines.inc.F90"
7566 : end procedure
7567 : #endif
7568 :
7569 : #if CK2_ENABLED
7570 163 : module procedure gemm_EXP_SFA_SFB_THA_TNB_CK2
7571 : use pm_kind, only: CKC => CK2
7572 : #define DISPATCH_ENABLED 1
7573 : #include "pm_matrixMulAdd@routines.inc.F90"
7574 : #undef DISPATCH_ENABLED
7575 : end procedure
7576 : #endif
7577 :
7578 : #if CK1_ENABLED
7579 156 : module procedure gemm_EXP_SFA_SFB_THA_TNB_CK1
7580 : use pm_kind, only: CKC => CK1
7581 : #define DISPATCH_ENABLED 1
7582 : #include "pm_matrixMulAdd@routines.inc.F90"
7583 : #undef DISPATCH_ENABLED
7584 : end procedure
7585 : #endif
7586 :
7587 : #undef CK_ENABLED
7588 :
7589 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7590 :
7591 : #define RK_ENABLED 1
7592 :
7593 : #if RK5_ENABLED
7594 : module procedure gemm_EXP_SFA_SFB_THA_TNB_RK5
7595 : use pm_kind, only: RKC => RK5
7596 : #include "pm_matrixMulAdd@routines.inc.F90"
7597 : end procedure
7598 : #endif
7599 :
7600 : #if RK4_ENABLED
7601 164 : module procedure gemm_EXP_SFA_SFB_THA_TNB_RK4
7602 : use pm_kind, only: RKC => RK4
7603 : #include "pm_matrixMulAdd@routines.inc.F90"
7604 : end procedure
7605 : #endif
7606 :
7607 : #if RK3_ENABLED
7608 143 : module procedure gemm_EXP_SFA_SFB_THA_TNB_RK3
7609 : use pm_kind, only: RKC => RK3
7610 : #include "pm_matrixMulAdd@routines.inc.F90"
7611 : end procedure
7612 : #endif
7613 :
7614 : #if RK2_ENABLED
7615 156 : module procedure gemm_EXP_SFA_SFB_THA_TNB_RK2
7616 : use pm_kind, only: RKC => RK2
7617 : #define DISPATCH_ENABLED 1
7618 : #include "pm_matrixMulAdd@routines.inc.F90"
7619 : #undef DISPATCH_ENABLED
7620 : end procedure
7621 : #endif
7622 :
7623 : #if RK1_ENABLED
7624 162 : module procedure gemm_EXP_SFA_SFB_THA_TNB_RK1
7625 : use pm_kind, only: RKC => RK1
7626 : #define DISPATCH_ENABLED 1
7627 : #include "pm_matrixMulAdd@routines.inc.F90"
7628 : #undef DISPATCH_ENABLED
7629 : end procedure
7630 : #endif
7631 :
7632 : #undef RK_ENABLED
7633 :
7634 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7635 :
7636 : #undef THA_ENABLED
7637 :
7638 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7639 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7640 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7641 :
7642 : #undef TNB_ENABLED
7643 :
7644 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7645 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7646 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7647 :
7648 : #define TSB_ENABLED 1
7649 :
7650 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7651 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7652 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7653 :
7654 : #define TNA_ENABLED 1
7655 :
7656 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7657 :
7658 : #define IK_ENABLED 1
7659 :
7660 : #if IK5_ENABLED
7661 100 : module procedure gemm_EXP_SFA_SFB_TNA_TSB_IK5
7662 : use pm_kind, only: IKC => IK5
7663 : #include "pm_matrixMulAdd@routines.inc.F90"
7664 : end procedure
7665 : #endif
7666 :
7667 : #if IK4_ENABLED
7668 100 : module procedure gemm_EXP_SFA_SFB_TNA_TSB_IK4
7669 : use pm_kind, only: IKC => IK4
7670 : #include "pm_matrixMulAdd@routines.inc.F90"
7671 : end procedure
7672 : #endif
7673 :
7674 : #if IK3_ENABLED
7675 101 : module procedure gemm_EXP_SFA_SFB_TNA_TSB_IK3
7676 : use pm_kind, only: IKC => IK3
7677 : #include "pm_matrixMulAdd@routines.inc.F90"
7678 : end procedure
7679 : #endif
7680 :
7681 : #if IK2_ENABLED
7682 100 : module procedure gemm_EXP_SFA_SFB_TNA_TSB_IK2
7683 : use pm_kind, only: IKC => IK2
7684 : #include "pm_matrixMulAdd@routines.inc.F90"
7685 : end procedure
7686 : #endif
7687 :
7688 : #if IK1_ENABLED
7689 100 : module procedure gemm_EXP_SFA_SFB_TNA_TSB_IK1
7690 : use pm_kind, only: IKC => IK1
7691 : #include "pm_matrixMulAdd@routines.inc.F90"
7692 : end procedure
7693 : #endif
7694 :
7695 : #undef IK_ENABLED
7696 :
7697 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7698 :
7699 : #define CK_ENABLED 1
7700 :
7701 : #if CK5_ENABLED
7702 : module procedure gemm_EXP_SFA_SFB_TNA_TSB_CK5
7703 : use pm_kind, only: CKC => CK5
7704 : #include "pm_matrixMulAdd@routines.inc.F90"
7705 : end procedure
7706 : #endif
7707 :
7708 : #if CK4_ENABLED
7709 100 : module procedure gemm_EXP_SFA_SFB_TNA_TSB_CK4
7710 : use pm_kind, only: CKC => CK4
7711 : #include "pm_matrixMulAdd@routines.inc.F90"
7712 : end procedure
7713 : #endif
7714 :
7715 : #if CK3_ENABLED
7716 100 : module procedure gemm_EXP_SFA_SFB_TNA_TSB_CK3
7717 : use pm_kind, only: CKC => CK3
7718 : #include "pm_matrixMulAdd@routines.inc.F90"
7719 : end procedure
7720 : #endif
7721 :
7722 : #if CK2_ENABLED
7723 100 : module procedure gemm_EXP_SFA_SFB_TNA_TSB_CK2
7724 : use pm_kind, only: CKC => CK2
7725 : #define DISPATCH_ENABLED 1
7726 : #include "pm_matrixMulAdd@routines.inc.F90"
7727 : #undef DISPATCH_ENABLED
7728 : end procedure
7729 : #endif
7730 :
7731 : #if CK1_ENABLED
7732 100 : module procedure gemm_EXP_SFA_SFB_TNA_TSB_CK1
7733 : use pm_kind, only: CKC => CK1
7734 : #define DISPATCH_ENABLED 1
7735 : #include "pm_matrixMulAdd@routines.inc.F90"
7736 : #undef DISPATCH_ENABLED
7737 : end procedure
7738 : #endif
7739 :
7740 : #undef CK_ENABLED
7741 :
7742 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7743 :
7744 : #define RK_ENABLED 1
7745 :
7746 : #if RK5_ENABLED
7747 : module procedure gemm_EXP_SFA_SFB_TNA_TSB_RK5
7748 : use pm_kind, only: RKC => RK5
7749 : #include "pm_matrixMulAdd@routines.inc.F90"
7750 : end procedure
7751 : #endif
7752 :
7753 : #if RK4_ENABLED
7754 100 : module procedure gemm_EXP_SFA_SFB_TNA_TSB_RK4
7755 : use pm_kind, only: RKC => RK4
7756 : #include "pm_matrixMulAdd@routines.inc.F90"
7757 : end procedure
7758 : #endif
7759 :
7760 : #if RK3_ENABLED
7761 100 : module procedure gemm_EXP_SFA_SFB_TNA_TSB_RK3
7762 : use pm_kind, only: RKC => RK3
7763 : #include "pm_matrixMulAdd@routines.inc.F90"
7764 : end procedure
7765 : #endif
7766 :
7767 : #if RK2_ENABLED
7768 100 : module procedure gemm_EXP_SFA_SFB_TNA_TSB_RK2
7769 : use pm_kind, only: RKC => RK2
7770 : #define DISPATCH_ENABLED 1
7771 : #include "pm_matrixMulAdd@routines.inc.F90"
7772 : #undef DISPATCH_ENABLED
7773 : end procedure
7774 : #endif
7775 :
7776 : #if RK1_ENABLED
7777 101 : module procedure gemm_EXP_SFA_SFB_TNA_TSB_RK1
7778 : use pm_kind, only: RKC => RK1
7779 : #define DISPATCH_ENABLED 1
7780 : #include "pm_matrixMulAdd@routines.inc.F90"
7781 : #undef DISPATCH_ENABLED
7782 : end procedure
7783 : #endif
7784 :
7785 : #undef RK_ENABLED
7786 :
7787 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7788 :
7789 : #undef TNA_ENABLED
7790 : #undef TSB_ENABLED
7791 :
7792 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7793 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7794 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7795 :
7796 : #define TSA_ENABLED 1
7797 : #define TSB_ENABLED 1
7798 :
7799 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7800 :
7801 : #define IK_ENABLED 1
7802 :
7803 : #if IK5_ENABLED
7804 100 : module procedure gemm_EXP_SFA_SFB_TSA_TSB_IK5
7805 : use pm_kind, only: IKC => IK5
7806 : #include "pm_matrixMulAdd@routines.inc.F90"
7807 : end procedure
7808 : #endif
7809 :
7810 : #if IK4_ENABLED
7811 100 : module procedure gemm_EXP_SFA_SFB_TSA_TSB_IK4
7812 : use pm_kind, only: IKC => IK4
7813 : #include "pm_matrixMulAdd@routines.inc.F90"
7814 : end procedure
7815 : #endif
7816 :
7817 : #if IK3_ENABLED
7818 100 : module procedure gemm_EXP_SFA_SFB_TSA_TSB_IK3
7819 : use pm_kind, only: IKC => IK3
7820 : #include "pm_matrixMulAdd@routines.inc.F90"
7821 : end procedure
7822 : #endif
7823 :
7824 : #if IK2_ENABLED
7825 100 : module procedure gemm_EXP_SFA_SFB_TSA_TSB_IK2
7826 : use pm_kind, only: IKC => IK2
7827 : #include "pm_matrixMulAdd@routines.inc.F90"
7828 : end procedure
7829 : #endif
7830 :
7831 : #if IK1_ENABLED
7832 100 : module procedure gemm_EXP_SFA_SFB_TSA_TSB_IK1
7833 : use pm_kind, only: IKC => IK1
7834 : #include "pm_matrixMulAdd@routines.inc.F90"
7835 : end procedure
7836 : #endif
7837 :
7838 : #undef IK_ENABLED
7839 :
7840 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7841 :
7842 : #define CK_ENABLED 1
7843 :
7844 : #if CK5_ENABLED
7845 : module procedure gemm_EXP_SFA_SFB_TSA_TSB_CK5
7846 : use pm_kind, only: CKC => CK5
7847 : #include "pm_matrixMulAdd@routines.inc.F90"
7848 : end procedure
7849 : #endif
7850 :
7851 : #if CK4_ENABLED
7852 100 : module procedure gemm_EXP_SFA_SFB_TSA_TSB_CK4
7853 : use pm_kind, only: CKC => CK4
7854 : #include "pm_matrixMulAdd@routines.inc.F90"
7855 : end procedure
7856 : #endif
7857 :
7858 : #if CK3_ENABLED
7859 100 : module procedure gemm_EXP_SFA_SFB_TSA_TSB_CK3
7860 : use pm_kind, only: CKC => CK3
7861 : #include "pm_matrixMulAdd@routines.inc.F90"
7862 : end procedure
7863 : #endif
7864 :
7865 : #if CK2_ENABLED
7866 100 : module procedure gemm_EXP_SFA_SFB_TSA_TSB_CK2
7867 : use pm_kind, only: CKC => CK2
7868 : #define DISPATCH_ENABLED 1
7869 : #include "pm_matrixMulAdd@routines.inc.F90"
7870 : #undef DISPATCH_ENABLED
7871 : end procedure
7872 : #endif
7873 :
7874 : #if CK1_ENABLED
7875 100 : module procedure gemm_EXP_SFA_SFB_TSA_TSB_CK1
7876 : use pm_kind, only: CKC => CK1
7877 : #define DISPATCH_ENABLED 1
7878 : #include "pm_matrixMulAdd@routines.inc.F90"
7879 : #undef DISPATCH_ENABLED
7880 : end procedure
7881 : #endif
7882 :
7883 : #undef CK_ENABLED
7884 :
7885 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7886 :
7887 : #define RK_ENABLED 1
7888 :
7889 : #if RK5_ENABLED
7890 : module procedure gemm_EXP_SFA_SFB_TSA_TSB_RK5
7891 : use pm_kind, only: RKC => RK5
7892 : #include "pm_matrixMulAdd@routines.inc.F90"
7893 : end procedure
7894 : #endif
7895 :
7896 : #if RK4_ENABLED
7897 100 : module procedure gemm_EXP_SFA_SFB_TSA_TSB_RK4
7898 : use pm_kind, only: RKC => RK4
7899 : #include "pm_matrixMulAdd@routines.inc.F90"
7900 : end procedure
7901 : #endif
7902 :
7903 : #if RK3_ENABLED
7904 100 : module procedure gemm_EXP_SFA_SFB_TSA_TSB_RK3
7905 : use pm_kind, only: RKC => RK3
7906 : #include "pm_matrixMulAdd@routines.inc.F90"
7907 : end procedure
7908 : #endif
7909 :
7910 : #if RK2_ENABLED
7911 100 : module procedure gemm_EXP_SFA_SFB_TSA_TSB_RK2
7912 : use pm_kind, only: RKC => RK2
7913 : #define DISPATCH_ENABLED 1
7914 : #include "pm_matrixMulAdd@routines.inc.F90"
7915 : #undef DISPATCH_ENABLED
7916 : end procedure
7917 : #endif
7918 :
7919 : #if RK1_ENABLED
7920 100 : module procedure gemm_EXP_SFA_SFB_TSA_TSB_RK1
7921 : use pm_kind, only: RKC => RK1
7922 : #define DISPATCH_ENABLED 1
7923 : #include "pm_matrixMulAdd@routines.inc.F90"
7924 : #undef DISPATCH_ENABLED
7925 : end procedure
7926 : #endif
7927 :
7928 : #undef RK_ENABLED
7929 :
7930 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7931 :
7932 : #undef TSA_ENABLED
7933 : #undef TSB_ENABLED
7934 :
7935 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7936 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7937 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7938 :
7939 : #define THA_ENABLED 1
7940 : #define TSB_ENABLED 1
7941 :
7942 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7943 :
7944 : #define IK_ENABLED 1
7945 :
7946 : #if IK5_ENABLED
7947 100 : module procedure gemm_EXP_SFA_SFB_THA_TSB_IK5
7948 : use pm_kind, only: IKC => IK5
7949 : #include "pm_matrixMulAdd@routines.inc.F90"
7950 : end procedure
7951 : #endif
7952 :
7953 : #if IK4_ENABLED
7954 100 : module procedure gemm_EXP_SFA_SFB_THA_TSB_IK4
7955 : use pm_kind, only: IKC => IK4
7956 : #include "pm_matrixMulAdd@routines.inc.F90"
7957 : end procedure
7958 : #endif
7959 :
7960 : #if IK3_ENABLED
7961 100 : module procedure gemm_EXP_SFA_SFB_THA_TSB_IK3
7962 : use pm_kind, only: IKC => IK3
7963 : #include "pm_matrixMulAdd@routines.inc.F90"
7964 : end procedure
7965 : #endif
7966 :
7967 : #if IK2_ENABLED
7968 100 : module procedure gemm_EXP_SFA_SFB_THA_TSB_IK2
7969 : use pm_kind, only: IKC => IK2
7970 : #include "pm_matrixMulAdd@routines.inc.F90"
7971 : end procedure
7972 : #endif
7973 :
7974 : #if IK1_ENABLED
7975 100 : module procedure gemm_EXP_SFA_SFB_THA_TSB_IK1
7976 : use pm_kind, only: IKC => IK1
7977 : #include "pm_matrixMulAdd@routines.inc.F90"
7978 : end procedure
7979 : #endif
7980 :
7981 : #undef IK_ENABLED
7982 :
7983 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7984 :
7985 : #define CK_ENABLED 1
7986 :
7987 : #if CK5_ENABLED
7988 : module procedure gemm_EXP_SFA_SFB_THA_TSB_CK5
7989 : use pm_kind, only: CKC => CK5
7990 : #include "pm_matrixMulAdd@routines.inc.F90"
7991 : end procedure
7992 : #endif
7993 :
7994 : #if CK4_ENABLED
7995 100 : module procedure gemm_EXP_SFA_SFB_THA_TSB_CK4
7996 : use pm_kind, only: CKC => CK4
7997 : #include "pm_matrixMulAdd@routines.inc.F90"
7998 : end procedure
7999 : #endif
8000 :
8001 : #if CK3_ENABLED
8002 100 : module procedure gemm_EXP_SFA_SFB_THA_TSB_CK3
8003 : use pm_kind, only: CKC => CK3
8004 : #include "pm_matrixMulAdd@routines.inc.F90"
8005 : end procedure
8006 : #endif
8007 :
8008 : #if CK2_ENABLED
8009 100 : module procedure gemm_EXP_SFA_SFB_THA_TSB_CK2
8010 : use pm_kind, only: CKC => CK2
8011 : #define DISPATCH_ENABLED 1
8012 : #include "pm_matrixMulAdd@routines.inc.F90"
8013 : #undef DISPATCH_ENABLED
8014 : end procedure
8015 : #endif
8016 :
8017 : #if CK1_ENABLED
8018 100 : module procedure gemm_EXP_SFA_SFB_THA_TSB_CK1
8019 : use pm_kind, only: CKC => CK1
8020 : #define DISPATCH_ENABLED 1
8021 : #include "pm_matrixMulAdd@routines.inc.F90"
8022 : #undef DISPATCH_ENABLED
8023 : end procedure
8024 : #endif
8025 :
8026 : #undef CK_ENABLED
8027 :
8028 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8029 :
8030 : #define RK_ENABLED 1
8031 :
8032 : #if RK5_ENABLED
8033 : module procedure gemm_EXP_SFA_SFB_THA_TSB_RK5
8034 : use pm_kind, only: RKC => RK5
8035 : #include "pm_matrixMulAdd@routines.inc.F90"
8036 : end procedure
8037 : #endif
8038 :
8039 : #if RK4_ENABLED
8040 100 : module procedure gemm_EXP_SFA_SFB_THA_TSB_RK4
8041 : use pm_kind, only: RKC => RK4
8042 : #include "pm_matrixMulAdd@routines.inc.F90"
8043 : end procedure
8044 : #endif
8045 :
8046 : #if RK3_ENABLED
8047 100 : module procedure gemm_EXP_SFA_SFB_THA_TSB_RK3
8048 : use pm_kind, only: RKC => RK3
8049 : #include "pm_matrixMulAdd@routines.inc.F90"
8050 : end procedure
8051 : #endif
8052 :
8053 : #if RK2_ENABLED
8054 100 : module procedure gemm_EXP_SFA_SFB_THA_TSB_RK2
8055 : use pm_kind, only: RKC => RK2
8056 : #define DISPATCH_ENABLED 1
8057 : #include "pm_matrixMulAdd@routines.inc.F90"
8058 : #undef DISPATCH_ENABLED
8059 : end procedure
8060 : #endif
8061 :
8062 : #if RK1_ENABLED
8063 100 : module procedure gemm_EXP_SFA_SFB_THA_TSB_RK1
8064 : use pm_kind, only: RKC => RK1
8065 : #define DISPATCH_ENABLED 1
8066 : #include "pm_matrixMulAdd@routines.inc.F90"
8067 : #undef DISPATCH_ENABLED
8068 : end procedure
8069 : #endif
8070 :
8071 : #undef RK_ENABLED
8072 :
8073 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8074 :
8075 : #undef THA_ENABLED
8076 :
8077 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8078 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8079 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8080 :
8081 : #undef TSB_ENABLED
8082 :
8083 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8084 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8085 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8086 :
8087 : #define THB_ENABLED 1
8088 :
8089 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8090 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8091 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8092 :
8093 : #define TNA_ENABLED 1
8094 :
8095 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8096 :
8097 : #define IK_ENABLED 1
8098 :
8099 : #if IK5_ENABLED
8100 100 : module procedure gemm_EXP_SFA_SFB_TNA_THB_IK5
8101 : use pm_kind, only: IKC => IK5
8102 : #include "pm_matrixMulAdd@routines.inc.F90"
8103 : end procedure
8104 : #endif
8105 :
8106 : #if IK4_ENABLED
8107 100 : module procedure gemm_EXP_SFA_SFB_TNA_THB_IK4
8108 : use pm_kind, only: IKC => IK4
8109 : #include "pm_matrixMulAdd@routines.inc.F90"
8110 : end procedure
8111 : #endif
8112 :
8113 : #if IK3_ENABLED
8114 100 : module procedure gemm_EXP_SFA_SFB_TNA_THB_IK3
8115 : use pm_kind, only: IKC => IK3
8116 : #include "pm_matrixMulAdd@routines.inc.F90"
8117 : end procedure
8118 : #endif
8119 :
8120 : #if IK2_ENABLED
8121 100 : module procedure gemm_EXP_SFA_SFB_TNA_THB_IK2
8122 : use pm_kind, only: IKC => IK2
8123 : #include "pm_matrixMulAdd@routines.inc.F90"
8124 : end procedure
8125 : #endif
8126 :
8127 : #if IK1_ENABLED
8128 100 : module procedure gemm_EXP_SFA_SFB_TNA_THB_IK1
8129 : use pm_kind, only: IKC => IK1
8130 : #include "pm_matrixMulAdd@routines.inc.F90"
8131 : end procedure
8132 : #endif
8133 :
8134 : #undef IK_ENABLED
8135 :
8136 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8137 :
8138 : #define CK_ENABLED 1
8139 :
8140 : #if CK5_ENABLED
8141 : module procedure gemm_EXP_SFA_SFB_TNA_THB_CK5
8142 : use pm_kind, only: CKC => CK5
8143 : #include "pm_matrixMulAdd@routines.inc.F90"
8144 : end procedure
8145 : #endif
8146 :
8147 : #if CK4_ENABLED
8148 161 : module procedure gemm_EXP_SFA_SFB_TNA_THB_CK4
8149 : use pm_kind, only: CKC => CK4
8150 : #include "pm_matrixMulAdd@routines.inc.F90"
8151 : end procedure
8152 : #endif
8153 :
8154 : #if CK3_ENABLED
8155 140 : module procedure gemm_EXP_SFA_SFB_TNA_THB_CK3
8156 : use pm_kind, only: CKC => CK3
8157 : #include "pm_matrixMulAdd@routines.inc.F90"
8158 : end procedure
8159 : #endif
8160 :
8161 : #if CK2_ENABLED
8162 163 : module procedure gemm_EXP_SFA_SFB_TNA_THB_CK2
8163 : use pm_kind, only: CKC => CK2
8164 : #define DISPATCH_ENABLED 1
8165 : #include "pm_matrixMulAdd@routines.inc.F90"
8166 : #undef DISPATCH_ENABLED
8167 : end procedure
8168 : #endif
8169 :
8170 : #if CK1_ENABLED
8171 155 : module procedure gemm_EXP_SFA_SFB_TNA_THB_CK1
8172 : use pm_kind, only: CKC => CK1
8173 : #define DISPATCH_ENABLED 1
8174 : #include "pm_matrixMulAdd@routines.inc.F90"
8175 : #undef DISPATCH_ENABLED
8176 : end procedure
8177 : #endif
8178 :
8179 : #undef CK_ENABLED
8180 :
8181 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8182 :
8183 : #define RK_ENABLED 1
8184 :
8185 : #if RK5_ENABLED
8186 : module procedure gemm_EXP_SFA_SFB_TNA_THB_RK5
8187 : use pm_kind, only: RKC => RK5
8188 : #include "pm_matrixMulAdd@routines.inc.F90"
8189 : end procedure
8190 : #endif
8191 :
8192 : #if RK4_ENABLED
8193 164 : module procedure gemm_EXP_SFA_SFB_TNA_THB_RK4
8194 : use pm_kind, only: RKC => RK4
8195 : #include "pm_matrixMulAdd@routines.inc.F90"
8196 : end procedure
8197 : #endif
8198 :
8199 : #if RK3_ENABLED
8200 143 : module procedure gemm_EXP_SFA_SFB_TNA_THB_RK3
8201 : use pm_kind, only: RKC => RK3
8202 : #include "pm_matrixMulAdd@routines.inc.F90"
8203 : end procedure
8204 : #endif
8205 :
8206 : #if RK2_ENABLED
8207 156 : module procedure gemm_EXP_SFA_SFB_TNA_THB_RK2
8208 : use pm_kind, only: RKC => RK2
8209 : #define DISPATCH_ENABLED 1
8210 : #include "pm_matrixMulAdd@routines.inc.F90"
8211 : #undef DISPATCH_ENABLED
8212 : end procedure
8213 : #endif
8214 :
8215 : #if RK1_ENABLED
8216 162 : module procedure gemm_EXP_SFA_SFB_TNA_THB_RK1
8217 : use pm_kind, only: RKC => RK1
8218 : #define DISPATCH_ENABLED 1
8219 : #include "pm_matrixMulAdd@routines.inc.F90"
8220 : #undef DISPATCH_ENABLED
8221 : end procedure
8222 : #endif
8223 :
8224 : #undef RK_ENABLED
8225 :
8226 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8227 :
8228 : #undef TNA_ENABLED
8229 : #undef THB_ENABLED
8230 :
8231 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8232 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8233 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8234 :
8235 : #define TSA_ENABLED 1
8236 : #define THB_ENABLED 1
8237 :
8238 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8239 :
8240 : #define IK_ENABLED 1
8241 :
8242 : #if IK5_ENABLED
8243 100 : module procedure gemm_EXP_SFA_SFB_TSA_THB_IK5
8244 : use pm_kind, only: IKC => IK5
8245 : #include "pm_matrixMulAdd@routines.inc.F90"
8246 : end procedure
8247 : #endif
8248 :
8249 : #if IK4_ENABLED
8250 100 : module procedure gemm_EXP_SFA_SFB_TSA_THB_IK4
8251 : use pm_kind, only: IKC => IK4
8252 : #include "pm_matrixMulAdd@routines.inc.F90"
8253 : end procedure
8254 : #endif
8255 :
8256 : #if IK3_ENABLED
8257 100 : module procedure gemm_EXP_SFA_SFB_TSA_THB_IK3
8258 : use pm_kind, only: IKC => IK3
8259 : #include "pm_matrixMulAdd@routines.inc.F90"
8260 : end procedure
8261 : #endif
8262 :
8263 : #if IK2_ENABLED
8264 100 : module procedure gemm_EXP_SFA_SFB_TSA_THB_IK2
8265 : use pm_kind, only: IKC => IK2
8266 : #include "pm_matrixMulAdd@routines.inc.F90"
8267 : end procedure
8268 : #endif
8269 :
8270 : #if IK1_ENABLED
8271 100 : module procedure gemm_EXP_SFA_SFB_TSA_THB_IK1
8272 : use pm_kind, only: IKC => IK1
8273 : #include "pm_matrixMulAdd@routines.inc.F90"
8274 : end procedure
8275 : #endif
8276 :
8277 : #undef IK_ENABLED
8278 :
8279 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8280 :
8281 : #define CK_ENABLED 1
8282 :
8283 : #if CK5_ENABLED
8284 : module procedure gemm_EXP_SFA_SFB_TSA_THB_CK5
8285 : use pm_kind, only: CKC => CK5
8286 : #include "pm_matrixMulAdd@routines.inc.F90"
8287 : end procedure
8288 : #endif
8289 :
8290 : #if CK4_ENABLED
8291 100 : module procedure gemm_EXP_SFA_SFB_TSA_THB_CK4
8292 : use pm_kind, only: CKC => CK4
8293 : #include "pm_matrixMulAdd@routines.inc.F90"
8294 : end procedure
8295 : #endif
8296 :
8297 : #if CK3_ENABLED
8298 100 : module procedure gemm_EXP_SFA_SFB_TSA_THB_CK3
8299 : use pm_kind, only: CKC => CK3
8300 : #include "pm_matrixMulAdd@routines.inc.F90"
8301 : end procedure
8302 : #endif
8303 :
8304 : #if CK2_ENABLED
8305 100 : module procedure gemm_EXP_SFA_SFB_TSA_THB_CK2
8306 : use pm_kind, only: CKC => CK2
8307 : #define DISPATCH_ENABLED 1
8308 : #include "pm_matrixMulAdd@routines.inc.F90"
8309 : #undef DISPATCH_ENABLED
8310 : end procedure
8311 : #endif
8312 :
8313 : #if CK1_ENABLED
8314 100 : module procedure gemm_EXP_SFA_SFB_TSA_THB_CK1
8315 : use pm_kind, only: CKC => CK1
8316 : #define DISPATCH_ENABLED 1
8317 : #include "pm_matrixMulAdd@routines.inc.F90"
8318 : #undef DISPATCH_ENABLED
8319 : end procedure
8320 : #endif
8321 :
8322 : #undef CK_ENABLED
8323 :
8324 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8325 :
8326 : #define RK_ENABLED 1
8327 :
8328 : #if RK5_ENABLED
8329 : module procedure gemm_EXP_SFA_SFB_TSA_THB_RK5
8330 : use pm_kind, only: RKC => RK5
8331 : #include "pm_matrixMulAdd@routines.inc.F90"
8332 : end procedure
8333 : #endif
8334 :
8335 : #if RK4_ENABLED
8336 100 : module procedure gemm_EXP_SFA_SFB_TSA_THB_RK4
8337 : use pm_kind, only: RKC => RK4
8338 : #include "pm_matrixMulAdd@routines.inc.F90"
8339 : end procedure
8340 : #endif
8341 :
8342 : #if RK3_ENABLED
8343 100 : module procedure gemm_EXP_SFA_SFB_TSA_THB_RK3
8344 : use pm_kind, only: RKC => RK3
8345 : #include "pm_matrixMulAdd@routines.inc.F90"
8346 : end procedure
8347 : #endif
8348 :
8349 : #if RK2_ENABLED
8350 100 : module procedure gemm_EXP_SFA_SFB_TSA_THB_RK2
8351 : use pm_kind, only: RKC => RK2
8352 : #define DISPATCH_ENABLED 1
8353 : #include "pm_matrixMulAdd@routines.inc.F90"
8354 : #undef DISPATCH_ENABLED
8355 : end procedure
8356 : #endif
8357 :
8358 : #if RK1_ENABLED
8359 100 : module procedure gemm_EXP_SFA_SFB_TSA_THB_RK1
8360 : use pm_kind, only: RKC => RK1
8361 : #define DISPATCH_ENABLED 1
8362 : #include "pm_matrixMulAdd@routines.inc.F90"
8363 : #undef DISPATCH_ENABLED
8364 : end procedure
8365 : #endif
8366 :
8367 : #undef RK_ENABLED
8368 :
8369 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8370 :
8371 : #undef TSA_ENABLED
8372 : #undef THB_ENABLED
8373 :
8374 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8375 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8376 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8377 :
8378 : #define THA_ENABLED 1
8379 : #define THB_ENABLED 1
8380 :
8381 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8382 :
8383 : #define IK_ENABLED 1
8384 :
8385 : #if IK5_ENABLED
8386 100 : module procedure gemm_EXP_SFA_SFB_THA_THB_IK5
8387 : use pm_kind, only: IKC => IK5
8388 : #include "pm_matrixMulAdd@routines.inc.F90"
8389 : end procedure
8390 : #endif
8391 :
8392 : #if IK4_ENABLED
8393 100 : module procedure gemm_EXP_SFA_SFB_THA_THB_IK4
8394 : use pm_kind, only: IKC => IK4
8395 : #include "pm_matrixMulAdd@routines.inc.F90"
8396 : end procedure
8397 : #endif
8398 :
8399 : #if IK3_ENABLED
8400 100 : module procedure gemm_EXP_SFA_SFB_THA_THB_IK3
8401 : use pm_kind, only: IKC => IK3
8402 : #include "pm_matrixMulAdd@routines.inc.F90"
8403 : end procedure
8404 : #endif
8405 :
8406 : #if IK2_ENABLED
8407 100 : module procedure gemm_EXP_SFA_SFB_THA_THB_IK2
8408 : use pm_kind, only: IKC => IK2
8409 : #include "pm_matrixMulAdd@routines.inc.F90"
8410 : end procedure
8411 : #endif
8412 :
8413 : #if IK1_ENABLED
8414 100 : module procedure gemm_EXP_SFA_SFB_THA_THB_IK1
8415 : use pm_kind, only: IKC => IK1
8416 : #include "pm_matrixMulAdd@routines.inc.F90"
8417 : end procedure
8418 : #endif
8419 :
8420 : #undef IK_ENABLED
8421 :
8422 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8423 :
8424 : #define CK_ENABLED 1
8425 :
8426 : #if CK5_ENABLED
8427 : module procedure gemm_EXP_SFA_SFB_THA_THB_CK5
8428 : use pm_kind, only: CKC => CK5
8429 : #include "pm_matrixMulAdd@routines.inc.F90"
8430 : end procedure
8431 : #endif
8432 :
8433 : #if CK4_ENABLED
8434 100 : module procedure gemm_EXP_SFA_SFB_THA_THB_CK4
8435 : use pm_kind, only: CKC => CK4
8436 : #include "pm_matrixMulAdd@routines.inc.F90"
8437 : end procedure
8438 : #endif
8439 :
8440 : #if CK3_ENABLED
8441 100 : module procedure gemm_EXP_SFA_SFB_THA_THB_CK3
8442 : use pm_kind, only: CKC => CK3
8443 : #include "pm_matrixMulAdd@routines.inc.F90"
8444 : end procedure
8445 : #endif
8446 :
8447 : #if CK2_ENABLED
8448 100 : module procedure gemm_EXP_SFA_SFB_THA_THB_CK2
8449 : use pm_kind, only: CKC => CK2
8450 : #define DISPATCH_ENABLED 1
8451 : #include "pm_matrixMulAdd@routines.inc.F90"
8452 : #undef DISPATCH_ENABLED
8453 : end procedure
8454 : #endif
8455 :
8456 : #if CK1_ENABLED
8457 100 : module procedure gemm_EXP_SFA_SFB_THA_THB_CK1
8458 : use pm_kind, only: CKC => CK1
8459 : #define DISPATCH_ENABLED 1
8460 : #include "pm_matrixMulAdd@routines.inc.F90"
8461 : #undef DISPATCH_ENABLED
8462 : end procedure
8463 : #endif
8464 :
8465 : #undef CK_ENABLED
8466 :
8467 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8468 :
8469 : #define RK_ENABLED 1
8470 :
8471 : #if RK5_ENABLED
8472 : module procedure gemm_EXP_SFA_SFB_THA_THB_RK5
8473 : use pm_kind, only: RKC => RK5
8474 : #include "pm_matrixMulAdd@routines.inc.F90"
8475 : end procedure
8476 : #endif
8477 :
8478 : #if RK4_ENABLED
8479 100 : module procedure gemm_EXP_SFA_SFB_THA_THB_RK4
8480 : use pm_kind, only: RKC => RK4
8481 : #include "pm_matrixMulAdd@routines.inc.F90"
8482 : end procedure
8483 : #endif
8484 :
8485 : #if RK3_ENABLED
8486 100 : module procedure gemm_EXP_SFA_SFB_THA_THB_RK3
8487 : use pm_kind, only: RKC => RK3
8488 : #include "pm_matrixMulAdd@routines.inc.F90"
8489 : end procedure
8490 : #endif
8491 :
8492 : #if RK2_ENABLED
8493 100 : module procedure gemm_EXP_SFA_SFB_THA_THB_RK2
8494 : use pm_kind, only: RKC => RK2
8495 : #define DISPATCH_ENABLED 1
8496 : #include "pm_matrixMulAdd@routines.inc.F90"
8497 : #undef DISPATCH_ENABLED
8498 : end procedure
8499 : #endif
8500 :
8501 : #if RK1_ENABLED
8502 100 : module procedure gemm_EXP_SFA_SFB_THA_THB_RK1
8503 : use pm_kind, only: RKC => RK1
8504 : #define DISPATCH_ENABLED 1
8505 : #include "pm_matrixMulAdd@routines.inc.F90"
8506 : #undef DISPATCH_ENABLED
8507 : end procedure
8508 : #endif
8509 :
8510 : #undef RK_ENABLED
8511 :
8512 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8513 :
8514 : #undef THA_ENABLED
8515 :
8516 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8517 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8518 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8519 :
8520 : #undef THB_ENABLED
8521 :
8522 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8523 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8524 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8525 :
8526 : #undef EXP_ENABLED
8527 :
8528 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8529 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8530 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8531 :
8532 : #undef SFA_ENABLED
8533 : #undef SFB_ENABLED
8534 :
8535 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8536 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8537 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8538 :
8539 : #undef gemm_ENABLED
8540 :
8541 : !%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
8542 :
8543 : #undef setMatMulAdd_ENABLED
8544 :
8545 : #undef CHECK_ASSERTION
8546 :
8547 : end submodule routines
|