qrupdate-ng 1.2.0
Loading...
Searching...
No Matches
qrupdate.f90
Go to the documentation of this file.
1! Copyright (C) 2026 Martin Köhler <koehlerm(AT)mpi-magdeburg.mpg.de>
2!
3! This file is part of qrupdate-ng.
4!
5! qrupdate is free software; you can redistribute it and/or modify
6! it under the terms of the GNU General Public License as published by
7! the Free Software Foundation; either version 3 of the License, or
8! (at your option) any later version.
9!
10! This program is distributed in the hope that it will be useful,
11! but WITHOUT ANY WARRANTY; without even the implied warranty of
12! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13! GNU General Public License for more details.
14!
15! You should have received a copy of the GNU General Public License
16! along with this software; see the file COPYING. If not, see
17! <http://www.gnu.org/licenses/>.
18!
19
21 use iso_fortran_env
22 implicit none
23
24 interface
25 subroutine caxcpy(n, a, x, incx, y, incy)
26 use iso_fortran_env
27 integer, intent(in) :: n
28 complex(real32), intent(in) :: a
29 complex(real32), intent(in) :: x
30 integer, intent(in) :: incx
31 complex(real32), intent(inout) :: y
32 integer, intent(in) :: incy
33 end subroutine caxcpy
34 end interface
35
36 interface
37 subroutine cch1dn(n, R, ldr, u, rw, info)
38 use iso_fortran_env
39 integer, intent(in) :: n
40 complex(real32), intent(inout) :: R
41 integer, intent(in) :: ldr
42 complex(real32), intent(inout) :: u
43 real(real32), intent(out) :: rw
44 integer, intent(out) :: info
45 end subroutine cch1dn
46 end interface
47
48 interface
49 subroutine cch1up(n, R, ldr, u, w)
50 use iso_fortran_env
51 integer, intent(in) :: n
52 complex(real32), intent(inout) :: R
53 integer, intent(in) :: ldr
54 complex(real32), intent(inout) :: u
55 real(real32), intent(out) :: w
56 end subroutine cch1up
57 end interface
58
59 interface
60 subroutine cchdex(n, R, ldr, j, rw)
61 use iso_fortran_env
62 integer, intent(in) :: n
63 complex(real32), intent(inout) :: R
64 integer, intent(in) :: ldr
65 integer, intent(in) :: j
66 real(real32), intent(out) :: rw
67 end subroutine cchdex
68 end interface
69
70 interface
71 subroutine cchinx(n, R, ldr, j, u, rw, info)
72 use iso_fortran_env
73 integer, intent(in) :: n
74 complex(real32), intent(inout) :: R
75 integer, intent(in) :: ldr
76 integer, intent(in) :: j
77 complex(real32), intent(inout) :: u
78 real(real32), intent(out) :: rw
79 integer, intent(out) :: info
80 end subroutine cchinx
81 end interface
82
83 interface
84 subroutine cchshx(n, R, ldr, i, j, w, rw)
85 use iso_fortran_env
86 integer, intent(in) :: n
87 complex(real32), intent(inout) :: R
88 integer, intent(in) :: ldr
89 integer, intent(in) :: i
90 integer, intent(in) :: j
91 complex(real32), intent(out) :: w
92 real(real32), intent(out) :: rw
93 end subroutine cchshx
94 end interface
95
96 interface
97 subroutine cgqvec(m, n, Q, ldq, u)
98 use iso_fortran_env
99 integer, intent(in) :: m
100 integer, intent(in) :: n
101 complex(real32), intent(in) :: Q
102 integer, intent(in) :: ldq
103 complex(real32), intent(out) :: u
104 end subroutine cgqvec
105 end interface
106
107 interface
108 subroutine clu1up(m, n, L, ldl, R, ldr, u, v)
109 use iso_fortran_env
110 integer, intent(in) :: m
111 integer, intent(in) :: n
112 complex(real32), intent(inout) :: L
113 integer, intent(in) :: ldl
114 complex(real32), intent(inout) :: R
115 integer, intent(in) :: ldr
116 complex(real32), intent(inout) :: u
117 complex(real32), intent(inout) :: v
118 end subroutine clu1up
119 end interface
120
121 interface
122 subroutine clup1up(m, n, L, ldl, R, ldr, p, u, v, w)
123 use iso_fortran_env
124 integer, intent(in) :: m
125 integer, intent(in) :: n
126 complex(real32), intent(inout) :: L
127 integer, intent(in) :: ldl
128 complex(real32), intent(inout) :: R
129 integer, intent(in) :: ldr
130 integer, intent(in) :: p
131 complex(real32), intent(in) :: u
132 complex(real32), intent(in) :: v
133 complex(real32), intent(out) :: w
134 end subroutine clup1up
135 end interface
136
137 interface
138 subroutine cqhqr(m, n, R, ldr, c, s)
139 use iso_fortran_env
140 integer, intent(in) :: m
141 integer, intent(in) :: n
142 complex(real32), intent(inout) :: R
143 integer, intent(in) :: ldr
144 real(real32), intent(out) :: c
145 complex(real32), intent(out) :: s
146 end subroutine cqhqr
147 end interface
148
149 interface
150 subroutine cqr1up(m, n, k, Q, ldq, R, ldr, u, v, w, rw)
151 use iso_fortran_env
152 integer, intent(in) :: m
153 integer, intent(in) :: n
154 integer, intent(in) :: k
155 complex(real32), intent(inout) :: Q
156 integer, intent(in) :: ldq
157 complex(real32), intent(inout) :: R
158 integer, intent(in) :: ldr
159 complex(real32), intent(inout) :: u
160 complex(real32), intent(inout) :: v
161 complex(real32), intent(out) :: w
162 real(real32), intent(out) :: rw
163 end subroutine cqr1up
164 end interface
165
166 interface
167 subroutine cqrdec(m, n, k, Q, ldq, R, ldr, j, rw)
168 use iso_fortran_env
169 integer, intent(in) :: m
170 integer, intent(in) :: n
171 integer, intent(in) :: k
172 complex(real32), intent(inout) :: Q
173 integer, intent(in) :: ldq
174 complex(real32), intent(inout) :: R
175 integer, intent(in) :: ldr
176 integer, intent(in) :: j
177 real(real32), intent(out) :: rw
178 end subroutine cqrdec
179 end interface
180
181 interface
182 subroutine cqrder(m, n, Q, ldq, R, ldr, j, w, rw)
183 use iso_fortran_env
184 integer, intent(in) :: m
185 integer, intent(in) :: n
186 complex(real32), intent(inout) :: Q
187 integer, intent(in) :: ldq
188 complex(real32), intent(inout) :: R
189 integer, intent(in) :: ldr
190 integer, intent(in) :: j
191 complex(real32), intent(out) :: w
192 real(real32), intent(out) :: rw
193 end subroutine cqrder
194 end interface
195
196 interface
197 subroutine cqrinc(m, n, k, Q, ldq, R, ldr, j, x, rw)
198 use iso_fortran_env
199 integer, intent(in) :: m
200 integer, intent(in) :: n
201 integer, intent(in) :: k
202 complex(real32), intent(inout) :: Q
203 integer, intent(in) :: ldq
204 complex(real32), intent(inout) :: R
205 integer, intent(in) :: ldr
206 integer, intent(in) :: j
207 complex(real32), intent(in) :: x
208 real(real32), intent(out) :: rw
209 end subroutine cqrinc
210 end interface
211
212 interface
213 subroutine cqrinr(m, n, Q, ldq, R, ldr, j, x, rw)
214 use iso_fortran_env
215 integer, intent(in) :: m
216 integer, intent(in) :: n
217 complex(real32), intent(inout) :: Q
218 integer, intent(in) :: ldq
219 complex(real32), intent(inout) :: R
220 integer, intent(in) :: ldr
221 integer, intent(in) :: j
222 complex(real32), intent(inout) :: x
223 real(real32), intent(out) :: rw
224 end subroutine cqrinr
225 end interface
226
227 interface
228 subroutine cqrot(dir, m, n, Q, ldq, c, s)
229 use iso_fortran_env
230 character, intent(in) :: dir
231 integer, intent(in) :: m
232 integer, intent(in) :: n
233 complex(real32), intent(inout) :: Q
234 integer, intent(in) :: ldq
235 real(real32), intent(in) :: c
236 complex(real32), intent(in) :: s
237 end subroutine cqrot
238 end interface
239
240 interface
241 subroutine cqrqh(m, n, R, ldr, c, s)
242 use iso_fortran_env
243 integer, intent(in) :: m
244 integer, intent(in) :: n
245 complex(real32), intent(inout) :: R
246 integer, intent(in) :: ldr
247 real(real32), intent(in) :: c
248 complex(real32), intent(in) :: s
249 end subroutine cqrqh
250 end interface
251
252 interface
253 subroutine cqrshc(m, n, k, Q, ldq, R, ldr, i, j, w, rw)
254 use iso_fortran_env
255 integer, intent(in) :: m
256 integer, intent(in) :: n
257 integer, intent(in) :: k
258 complex(real32), intent(inout) :: Q
259 integer, intent(in) :: ldq
260 complex(real32), intent(inout) :: R
261 integer, intent(in) :: ldr
262 integer, intent(in) :: i
263 integer, intent(in) :: j
264 complex(real32), intent(out) :: w
265 real(real32), intent(out) :: rw
266 end subroutine cqrshc
267 end interface
268
269 interface
270 subroutine cqrtv1(n, u, w)
271 use iso_fortran_env
272 integer, intent(in) :: n
273 complex(real32), intent(inout) :: u
274 real(real32), intent(out) :: w
275 end subroutine cqrtv1
276 end interface
277
278 interface
279 subroutine dch1dn(n, R, ldr, u, w, info)
280 use iso_fortran_env
281 integer, intent(in) :: n
282 real(real64), intent(inout) :: R
283 integer, intent(in) :: ldr
284 real(real64), intent(inout) :: u
285 real(real64), intent(out) :: w
286 integer, intent(out) :: info
287 end subroutine dch1dn
288 end interface
289
290 interface
291 subroutine dch1up(n, R, ldr, u, w)
292 use iso_fortran_env
293 integer, intent(in) :: n
294 real(real64), intent(inout) :: R
295 integer, intent(in) :: ldr
296 real(real64), intent(inout) :: u
297 real(real64), intent(out) :: w
298 end subroutine dch1up
299 end interface
300
301 interface
302 subroutine dchdex(n, R, ldr, j, w)
303 use iso_fortran_env
304 integer, intent(in) :: n
305 real(real64), intent(inout) :: R
306 integer, intent(in) :: ldr
307 integer, intent(in) :: j
308 real(real64), intent(out) :: w
309 end subroutine dchdex
310 end interface
311
312 interface
313 subroutine dchinx(n, R, ldr, j, u, w, info)
314 use iso_fortran_env
315 integer, intent(in) :: n
316 real(real64), intent(inout) :: R
317 integer, intent(in) :: ldr
318 integer, intent(in) :: j
319 real(real64), intent(inout) :: u
320 real(real64), intent(out) :: w
321 integer, intent(out) :: info
322 end subroutine dchinx
323 end interface
324
325 interface
326 subroutine dchshx(n, R, ldr, i, j, w)
327 use iso_fortran_env
328 integer, intent(in) :: n
329 real(real64), intent(inout) :: R
330 integer, intent(in) :: ldr
331 integer, intent(in) :: i
332 integer, intent(in) :: j
333 real(real64), intent(out) :: w
334 end subroutine dchshx
335 end interface
336
337 interface
338 subroutine dgqvec(m, n, Q, ldq, u)
339 use iso_fortran_env
340 integer, intent(in) :: m
341 integer, intent(in) :: n
342 real(real64), intent(in) :: Q
343 integer, intent(in) :: ldq
344 real(real64), intent(out) :: u
345 end subroutine dgqvec
346 end interface
347
348 interface
349 subroutine dlu1up(m, n, L, ldl, R, ldr, u, v)
350 use iso_fortran_env
351 integer, intent(in) :: m
352 integer, intent(in) :: n
353 real(real64), intent(inout) :: L
354 integer, intent(in) :: ldl
355 real(real64), intent(inout) :: R
356 integer, intent(in) :: ldr
357 real(real64), intent(inout) :: u
358 real(real64), intent(inout) :: v
359 end subroutine dlu1up
360 end interface
361
362 interface
363 subroutine dlup1up(m, n, L, ldl, R, ldr, p, u, v, w)
364 use iso_fortran_env
365 integer, intent(in) :: m
366 integer, intent(in) :: n
367 real(real64), intent(inout) :: L
368 integer, intent(in) :: ldl
369 real(real64), intent(inout) :: R
370 integer, intent(in) :: ldr
371 integer, intent(in) :: p
372 real(real64), intent(in) :: u
373 real(real64), intent(in) :: v
374 real(real64), intent(out) :: w
375 end subroutine dlup1up
376 end interface
377
378 interface
379 subroutine dqhqr(m, n, R, ldr, c, s)
380 use iso_fortran_env
381 integer, intent(in) :: m
382 integer, intent(in) :: n
383 real(real64), intent(inout) :: R
384 integer, intent(in) :: ldr
385 real(real64), intent(out) :: c
386 real(real64), intent(out) :: s
387 end subroutine dqhqr
388 end interface
389
390 interface
391 subroutine dqr1up(m, n, k, Q, ldq, R, ldr, u, v, w)
392 use iso_fortran_env
393 integer, intent(in) :: m
394 integer, intent(in) :: n
395 integer, intent(in) :: k
396 real(real64), intent(inout) :: Q
397 integer, intent(in) :: ldq
398 real(real64), intent(inout) :: R
399 integer, intent(in) :: ldr
400 real(real64), intent(inout) :: u
401 real(real64), intent(inout) :: v
402 real(real64), intent(out) :: w
403 end subroutine dqr1up
404 end interface
405
406 interface
407 subroutine dqrdec(m, n, k, Q, ldq, R, ldr, j, w)
408 use iso_fortran_env
409 integer, intent(in) :: m
410 integer, intent(in) :: n
411 integer, intent(in) :: k
412 real(real64), intent(inout) :: Q
413 integer, intent(in) :: ldq
414 real(real64), intent(inout) :: R
415 integer, intent(in) :: ldr
416 integer, intent(in) :: j
417 real(real64), intent(out) :: w
418 end subroutine dqrdec
419 end interface
420
421 interface
422 subroutine dqrder(m, n, Q, ldq, R, ldr, j, w)
423 use iso_fortran_env
424 integer, intent(in) :: m
425 integer, intent(in) :: n
426 real(real64), intent(inout) :: Q
427 integer, intent(in) :: ldq
428 real(real64), intent(inout) :: R
429 integer, intent(in) :: ldr
430 integer, intent(in) :: j
431 real(real64), intent(out) :: w
432 end subroutine dqrder
433 end interface
434
435 interface
436 subroutine dqrinc(m, n, k, Q, ldq, R, ldr, j, x, w)
437 use iso_fortran_env
438 integer, intent(in) :: m
439 integer, intent(in) :: n
440 integer, intent(in) :: k
441 real(real64), intent(inout) :: Q
442 integer, intent(in) :: ldq
443 real(real64), intent(inout) :: R
444 integer, intent(in) :: ldr
445 integer, intent(in) :: j
446 real(real64), intent(in) :: x
447 real(real64), intent(out) :: w
448 end subroutine dqrinc
449 end interface
450
451 interface
452 subroutine dqrinr(m, n, Q, ldq, R, ldr, j, x, w)
453 use iso_fortran_env
454 integer, intent(in) :: m
455 integer, intent(in) :: n
456 real(real64), intent(inout) :: Q
457 integer, intent(in) :: ldq
458 real(real64), intent(inout) :: R
459 integer, intent(in) :: ldr
460 integer, intent(in) :: j
461 real(real64), intent(inout) :: x
462 real(real64), intent(out) :: w
463 end subroutine dqrinr
464 end interface
465
466 interface
467 subroutine dqrot(dir, m, n, Q, ldq, c, s)
468 use iso_fortran_env
469 character, intent(in) :: dir
470 integer, intent(in) :: m
471 integer, intent(in) :: n
472 real(real64), intent(inout) :: Q
473 integer, intent(in) :: ldq
474 real(real64), intent(in) :: c
475 real(real64), intent(in) :: s
476 end subroutine dqrot
477 end interface
478
479 interface
480 subroutine dqrqh(m, n, R, ldr, c, s)
481 use iso_fortran_env
482 integer, intent(in) :: m
483 integer, intent(in) :: n
484 real(real64), intent(inout) :: R
485 integer, intent(in) :: ldr
486 real(real64), intent(in) :: c
487 real(real64), intent(in) :: s
488 end subroutine dqrqh
489 end interface
490
491 interface
492 subroutine dqrshc(m, n, k, Q, ldq, R, ldr, i, j, w)
493 use iso_fortran_env
494 integer, intent(in) :: m
495 integer, intent(in) :: n
496 integer, intent(in) :: k
497 real(real64), intent(inout) :: Q
498 integer, intent(in) :: ldq
499 real(real64), intent(inout) :: R
500 integer, intent(in) :: ldr
501 integer, intent(in) :: i
502 integer, intent(in) :: j
503 real(real64), intent(out) :: w
504 end subroutine dqrshc
505 end interface
506
507 interface
508 subroutine dqrtv1(n, u, w)
509 use iso_fortran_env
510 integer, intent(in) :: n
511 real(real64), intent(inout) :: u
512 real(real64), intent(out) :: w
513 end subroutine dqrtv1
514 end interface
515
516 interface
517 subroutine sch1dn(n, R, ldr, u, w, info)
518 use iso_fortran_env
519 integer, intent(in) :: n
520 real(real32), intent(inout) :: R
521 integer, intent(in) :: ldr
522 real(real32), intent(inout) :: u
523 real(real32), intent(out) :: w
524 integer, intent(out) :: info
525 end subroutine sch1dn
526 end interface
527
528 interface
529 subroutine sch1up(n, R, ldr, u, w)
530 use iso_fortran_env
531 integer, intent(in) :: n
532 real(real32), intent(inout) :: R
533 integer, intent(in) :: ldr
534 real(real32), intent(inout) :: u
535 real(real32), intent(out) :: w
536 end subroutine sch1up
537 end interface
538
539 interface
540 subroutine schdex(n, R, ldr, j, w)
541 use iso_fortran_env
542 integer, intent(in) :: n
543 real(real32), intent(inout) :: R
544 integer, intent(in) :: ldr
545 integer, intent(in) :: j
546 real(real32), intent(out) :: w
547 end subroutine schdex
548 end interface
549
550 interface
551 subroutine schinx(n, R, ldr, j, u, w, info)
552 use iso_fortran_env
553 integer, intent(in) :: n
554 real(real32), intent(inout) :: R
555 integer, intent(in) :: ldr
556 integer, intent(in) :: j
557 real(real32), intent(inout) :: u
558 real(real32), intent(out) :: w
559 integer, intent(out) :: info
560 end subroutine schinx
561 end interface
562
563 interface
564 subroutine schshx(n, R, ldr, i, j, w)
565 use iso_fortran_env
566 integer, intent(in) :: n
567 real(real32), intent(inout) :: R
568 integer, intent(in) :: ldr
569 integer, intent(in) :: i
570 integer, intent(in) :: j
571 real(real32), intent(out) :: w
572 end subroutine schshx
573 end interface
574
575 interface
576 subroutine sgqvec(m, n, Q, ldq, u)
577 use iso_fortran_env
578 integer, intent(in) :: m
579 integer, intent(in) :: n
580 real(real32), intent(in) :: Q
581 integer, intent(in) :: ldq
582 real(real32), intent(out) :: u
583 end subroutine sgqvec
584 end interface
585
586 interface
587 subroutine slu1up(m, n, L, ldl, R, ldr, u, v)
588 use iso_fortran_env
589 integer, intent(in) :: m
590 integer, intent(in) :: n
591 real(real32), intent(inout) :: L
592 integer, intent(in) :: ldl
593 real(real32), intent(inout) :: R
594 integer, intent(in) :: ldr
595 real(real32), intent(inout) :: u
596 real(real32), intent(inout) :: v
597 end subroutine slu1up
598 end interface
599
600 interface
601 subroutine slup1up(m, n, L, ldl, R, ldr, p, u, v, w)
602 use iso_fortran_env
603 integer, intent(in) :: m
604 integer, intent(in) :: n
605 real(real32), intent(inout) :: L
606 integer, intent(in) :: ldl
607 real(real32), intent(inout) :: R
608 integer, intent(in) :: ldr
609 integer, intent(in) :: p
610 real(real32), intent(in) :: u
611 real(real32), intent(in) :: v
612 real(real32), intent(out) :: w
613 end subroutine slup1up
614 end interface
615
616 interface
617 subroutine sqhqr(m, n, R, ldr, c, s)
618 use iso_fortran_env
619 integer, intent(in) :: m
620 integer, intent(in) :: n
621 real(real32), intent(inout) :: R
622 integer, intent(in) :: ldr
623 real(real32), intent(out) :: c
624 real(real32), intent(out) :: s
625 end subroutine sqhqr
626 end interface
627
628 interface
629 subroutine sqr1up(m, n, k, Q, ldq, R, ldr, u, v, w)
630 use iso_fortran_env
631 integer, intent(in) :: m
632 integer, intent(in) :: n
633 integer, intent(in) :: k
634 real(real32), intent(inout) :: Q
635 integer, intent(in) :: ldq
636 real(real32), intent(inout) :: R
637 integer, intent(in) :: ldr
638 real(real32), intent(inout) :: u
639 real(real32), intent(inout) :: v
640 real(real32), intent(out) :: w
641 end subroutine sqr1up
642 end interface
643
644 interface
645 subroutine sqrdec(m, n, k, Q, ldq, R, ldr, j, w)
646 use iso_fortran_env
647 integer, intent(in) :: m
648 integer, intent(in) :: n
649 integer, intent(in) :: k
650 real(real32), intent(inout) :: Q
651 integer, intent(in) :: ldq
652 real(real32), intent(inout) :: R
653 integer, intent(in) :: ldr
654 integer, intent(in) :: j
655 real(real32), intent(out) :: w
656 end subroutine sqrdec
657 end interface
658
659 interface
660 subroutine sqrder(m, n, Q, ldq, R, ldr, j, w)
661 use iso_fortran_env
662 integer, intent(in) :: m
663 integer, intent(in) :: n
664 real(real32), intent(inout) :: Q
665 integer, intent(in) :: ldq
666 real(real32), intent(inout) :: R
667 integer, intent(in) :: ldr
668 integer, intent(in) :: j
669 real(real32), intent(out) :: w
670 end subroutine sqrder
671 end interface
672
673 interface
674 subroutine sqrinc(m, n, k, Q, ldq, R, ldr, j, x, w)
675 use iso_fortran_env
676 integer, intent(in) :: m
677 integer, intent(in) :: n
678 integer, intent(in) :: k
679 real(real32), intent(inout) :: Q
680 integer, intent(in) :: ldq
681 real(real32), intent(inout) :: R
682 integer, intent(in) :: ldr
683 integer, intent(in) :: j
684 real(real32), intent(in) :: x
685 real(real32), intent(out) :: w
686 end subroutine sqrinc
687 end interface
688
689 interface
690 subroutine sqrinr(m, n, Q, ldq, R, ldr, j, x, w)
691 use iso_fortran_env
692 integer, intent(in) :: m
693 integer, intent(in) :: n
694 real(real32), intent(inout) :: Q
695 integer, intent(in) :: ldq
696 real(real32), intent(inout) :: R
697 integer, intent(in) :: ldr
698 integer, intent(in) :: j
699 real(real32), intent(inout) :: x
700 real(real32), intent(out) :: w
701 end subroutine sqrinr
702 end interface
703
704 interface
705 subroutine sqrot(dir, m, n, Q, ldq, c, s)
706 use iso_fortran_env
707 character, intent(in) :: dir
708 integer, intent(in) :: m
709 integer, intent(in) :: n
710 real(real32), intent(inout) :: Q
711 integer, intent(in) :: ldq
712 real(real32), intent(in) :: c
713 real(real32), intent(in) :: s
714 end subroutine sqrot
715 end interface
716
717 interface
718 subroutine sqrqh(m, n, R, ldr, c, s)
719 use iso_fortran_env
720 integer, intent(in) :: m
721 integer, intent(in) :: n
722 real(real32), intent(inout) :: R
723 integer, intent(in) :: ldr
724 real(real32), intent(in) :: c
725 real(real32), intent(in) :: s
726 end subroutine sqrqh
727 end interface
728
729 interface
730 subroutine sqrshc(m, n, k, Q, ldq, R, ldr, i, j, w)
731 use iso_fortran_env
732 integer, intent(in) :: m
733 integer, intent(in) :: n
734 integer, intent(in) :: k
735 real(real32), intent(inout) :: Q
736 integer, intent(in) :: ldq
737 real(real32), intent(inout) :: R
738 integer, intent(in) :: ldr
739 integer, intent(in) :: i
740 integer, intent(in) :: j
741 real(real32), intent(out) :: w
742 end subroutine sqrshc
743 end interface
744
745 interface
746 subroutine sqrtv1(n, u, w)
747 use iso_fortran_env
748 integer, intent(in) :: n
749 real(real32), intent(inout) :: u
750 real(real32), intent(out) :: w
751 end subroutine sqrtv1
752 end interface
753
754 interface
755 subroutine zaxcpy(n, a, x, incx, y, incy)
756 use iso_fortran_env
757 integer, intent(in) :: n
758 complex(real32), intent(in) :: a
759 complex(real32), intent(in) :: x
760 integer, intent(in) :: incx
761 complex(real32), intent(inout) :: y
762 integer, intent(in) :: incy
763 end subroutine zaxcpy
764 end interface
765
766 interface
767 subroutine zch1dn(n, R, ldr, u, rw, info)
768 use iso_fortran_env
769 integer, intent(in) :: n
770 complex(real32), intent(inout) :: R
771 integer, intent(in) :: ldr
772 complex(real32), intent(inout) :: u
773 real(real64), intent(out) :: rw
774 integer, intent(out) :: info
775 end subroutine zch1dn
776 end interface
777
778 interface
779 subroutine zch1up(n, R, ldr, u, w)
780 use iso_fortran_env
781 integer, intent(in) :: n
782 complex(real32), intent(inout) :: R
783 integer, intent(in) :: ldr
784 complex(real32), intent(inout) :: u
785 real(real64), intent(out) :: w
786 end subroutine zch1up
787 end interface
788
789 interface
790 subroutine zchdex(n, R, ldr, j, rw)
791 use iso_fortran_env
792 integer, intent(in) :: n
793 complex(real32), intent(inout) :: R
794 integer, intent(in) :: ldr
795 integer, intent(in) :: j
796 real(real64), intent(out) :: rw
797 end subroutine zchdex
798 end interface
799
800 interface
801 subroutine zchinx(n, R, ldr, j, u, rw, info)
802 use iso_fortran_env
803 integer, intent(in) :: n
804 complex(real32), intent(inout) :: R
805 integer, intent(in) :: ldr
806 integer, intent(in) :: j
807 complex(real32), intent(inout) :: u
808 real(real64), intent(out) :: rw
809 integer, intent(out) :: info
810 end subroutine zchinx
811 end interface
812
813 interface
814 subroutine zchshx(n, R, ldr, i, j, w, rw)
815 use iso_fortran_env
816 integer, intent(in) :: n
817 complex(real32), intent(inout) :: R
818 integer, intent(in) :: ldr
819 integer, intent(in) :: i
820 integer, intent(in) :: j
821 complex(real32), intent(out) :: w
822 real(real64), intent(out) :: rw
823 end subroutine zchshx
824 end interface
825
826 interface
827 subroutine zgqvec(m, n, Q, ldq, u)
828 use iso_fortran_env
829 integer, intent(in) :: m
830 integer, intent(in) :: n
831 complex(real32), intent(in) :: Q
832 integer, intent(in) :: ldq
833 complex(real32), intent(out) :: u
834 end subroutine zgqvec
835 end interface
836
837 interface
838 subroutine zlu1up(m, n, L, ldl, R, ldr, u, v)
839 use iso_fortran_env
840 integer, intent(in) :: m
841 integer, intent(in) :: n
842 complex(real32), intent(inout) :: L
843 integer, intent(in) :: ldl
844 complex(real32), intent(inout) :: R
845 integer, intent(in) :: ldr
846 complex(real32), intent(inout) :: u
847 complex(real32), intent(inout) :: v
848 end subroutine zlu1up
849 end interface
850
851 interface
852 subroutine zlup1up(m, n, L, ldl, R, ldr, p, u, v, w)
853 use iso_fortran_env
854 integer, intent(in) :: m
855 integer, intent(in) :: n
856 complex(real32), intent(inout) :: L
857 integer, intent(in) :: ldl
858 complex(real32), intent(inout) :: R
859 integer, intent(in) :: ldr
860 integer, intent(in) :: p
861 complex(real32), intent(in) :: u
862 complex(real32), intent(in) :: v
863 complex(real32), intent(out) :: w
864 end subroutine zlup1up
865 end interface
866
867 interface
868 subroutine zqhqr(m, n, R, ldr, c, s)
869 use iso_fortran_env
870 integer, intent(in) :: m
871 integer, intent(in) :: n
872 complex(real32), intent(inout) :: R
873 integer, intent(in) :: ldr
874 real(real64), intent(out) :: c
875 complex(real32), intent(out) :: s
876 end subroutine zqhqr
877 end interface
878
879 interface
880 subroutine zqr1up(m, n, k, Q, ldq, R, ldr, u, v, w, rw)
881 use iso_fortran_env
882 integer, intent(in) :: m
883 integer, intent(in) :: n
884 integer, intent(in) :: k
885 complex(real32), intent(inout) :: Q
886 integer, intent(in) :: ldq
887 complex(real32), intent(inout) :: R
888 integer, intent(in) :: ldr
889 complex(real32), intent(inout) :: u
890 complex(real32), intent(inout) :: v
891 complex(real32), intent(out) :: w
892 real(real64), intent(out) :: rw
893 end subroutine zqr1up
894 end interface
895
896 interface
897 subroutine zqrdec(m, n, k, Q, ldq, R, ldr, j, rw)
898 use iso_fortran_env
899 integer, intent(in) :: m
900 integer, intent(in) :: n
901 integer, intent(in) :: k
902 complex(real32), intent(inout) :: Q
903 integer, intent(in) :: ldq
904 complex(real32), intent(inout) :: R
905 integer, intent(in) :: ldr
906 integer, intent(in) :: j
907 real(real64), intent(out) :: rw
908 end subroutine zqrdec
909 end interface
910
911 interface
912 subroutine zqrder(m, n, Q, ldq, R, ldr, j, w, rw)
913 use iso_fortran_env
914 integer, intent(in) :: m
915 integer, intent(in) :: n
916 complex(real32), intent(inout) :: Q
917 integer, intent(in) :: ldq
918 complex(real32), intent(inout) :: R
919 integer, intent(in) :: ldr
920 integer, intent(in) :: j
921 complex(real32), intent(out) :: w
922 real(real64), intent(out) :: rw
923 end subroutine zqrder
924 end interface
925
926 interface
927 subroutine zqrinc(m, n, k, Q, ldq, R, ldr, j, x, rw)
928 use iso_fortran_env
929 integer, intent(in) :: m
930 integer, intent(in) :: n
931 integer, intent(in) :: k
932 complex(real32), intent(inout) :: Q
933 integer, intent(in) :: ldq
934 complex(real32), intent(inout) :: R
935 integer, intent(in) :: ldr
936 integer, intent(in) :: j
937 complex(real32), intent(in) :: x
938 real(real64), intent(out) :: rw
939 end subroutine zqrinc
940 end interface
941
942 interface
943 subroutine zqrinr(m, n, Q, ldq, R, ldr, j, x, rw)
944 use iso_fortran_env
945 integer, intent(in) :: m
946 integer, intent(in) :: n
947 complex(real32), intent(inout) :: Q
948 integer, intent(in) :: ldq
949 complex(real32), intent(inout) :: R
950 integer, intent(in) :: ldr
951 integer, intent(in) :: j
952 complex(real32), intent(inout) :: x
953 real(real64), intent(out) :: rw
954 end subroutine zqrinr
955 end interface
956
957 interface
958 subroutine zqrot(dir, m, n, Q, ldq, c, s)
959 use iso_fortran_env
960 character, intent(in) :: dir
961 integer, intent(in) :: m
962 integer, intent(in) :: n
963 complex(real32), intent(inout) :: Q
964 integer, intent(in) :: ldq
965 real(real64), intent(in) :: c
966 complex(real32), intent(in) :: s
967 end subroutine zqrot
968 end interface
969
970 interface
971 subroutine zqrqh(m, n, R, ldr, c, s)
972 use iso_fortran_env
973 integer, intent(in) :: m
974 integer, intent(in) :: n
975 complex(real32), intent(inout) :: R
976 integer, intent(in) :: ldr
977 real(real64), intent(in) :: c
978 complex(real32), intent(in) :: s
979 end subroutine zqrqh
980 end interface
981
982 interface
983 subroutine zqrshc(m, n, k, Q, ldq, R, ldr, i, j, w, rw)
984 use iso_fortran_env
985 integer, intent(in) :: m
986 integer, intent(in) :: n
987 integer, intent(in) :: k
988 complex(real32), intent(inout) :: Q
989 integer, intent(in) :: ldq
990 complex(real32), intent(inout) :: R
991 integer, intent(in) :: ldr
992 integer, intent(in) :: i
993 integer, intent(in) :: j
994 complex(real32), intent(out) :: w
995 real(real64), intent(out) :: rw
996 end subroutine zqrshc
997 end interface
998
999 interface
1000 subroutine zqrtv1(n, u, w)
1001 use iso_fortran_env
1002 integer, intent(in) :: n
1003 complex(real32), intent(inout) :: u
1004 real(real64), intent(out) :: w
1005 end subroutine zqrtv1
1006 end interface
1007
1008end module qrupdate